19129311827723891011991168395487602828624390503458757662106476404472342761792307560075254414772857099045419139587907592279446152938642120131474866957124456140398881696814713797026267454466120440611477614163918062415786739274531418927810756678716910667942296081913837582196010428021559461503006976135513072871911674496083137710815045849067336296126551318871830739747404581828935511856337735472124308285930924386546810984409389234311105682083100662223135086856041402011336916768729619099910812292431121744107399195354379115890686493064176470628914857387103864887685461014127879717833096362717798707217859785703943198147031197923867063788162604061680853577181723085796532784092558853642627309854903455986093816020040289775023149646742478718917623050680648275603104931727855774487761319090804471985585405406418970932203773372411616085554545511102801001095510893694563097430810135771358493458911314254879634687843233956104469494212617664328361366841555977173713972871898947757143280682118509070018873281952887655672607551277625631440611517811717778303873609732080925442310934934371904620012320195277619016285094829334022762177921490332394380475693613734626850585285715132918071267391440017486000083802855543600118427892329365488832184687102708471549086602698960162863200145492723017261094738327707095249475834490439313092452915322027218931817483785344269601546991387394058684721262788592900256379369020410104456404493812528262867589236783169886469302862162307285820782320204603978292353746375235937914414255237525957594671262491992042757205798671894000139665164327435925938923144642317888966436335484878840359839636937277580453704281812936507528524961758876789662995374682458048598974472043897150508405234886225385650135182189852625729880851837389271628046992705371225231869746795564840776129951973838464331758852285620423219785305445622784717089339388732574117596752037208173037758421921709127950259151305217676342897285916392949113628616642730580014802708485179114341302968214095663596375014432464392990176610412686123069302662551648570456957860972759750905746681533554550088318708175380119097181937976124474953154571313959388635920325426747235847047160170851756787193065799430952368898469411188821000863880160253320995923982930856867798871323012667964990522923541718953642421139339695975825218652271863734545753843811386588873726843734468728190972867517707944614650534968986916632596789818454837823234653649466537339965967950166556867512343532666152202913833846779340585708774149058884059085840945931156602709907930983343500927275832938859173431859890957574739665211995779766076277241649152127321002758390816797225462872492150395585769795003078121910475380625302084872771983029705349602822348761907267527976167747376308622043949658359066974181080293538823932919806040457677713908008952977193457363847107376574588050562893296508693630487373851288248107937195863630265279240791663877272114908397881803755625479082887906010855467076626933737515424216709916785868600066435695404569023285455278829643298780174773647681961944290680755778652318952024230565786816207947897345399508616671385870579456337113943960987176375187113583915666345523306204470208766055149248020117030830989896605625093812002833986721804616758888542386015416614622371828098392913897946087609668202466273966225405529838390531346524817063730235437815381506473339259850867106403052499514282595887845855624498896682973274945776894955368072425670274009695814097968178366913423696011890398492624093965164693393250221723830554669338860909508639042497591334724420362520060751662143034494965643266935941019964825887880292610134879786113681421083370840277529345848932279561196682444730672803270465288454885955432627050761941950637574582626966198228379600354462783602834128374599460633744150594039770398520724257990590274579058203699274617613433265765409031333878182485828855069414032371264159408553219513999783134616078549064337575438627795962650116768698988234490266797739569404734271747513316055838720584801433759583047206985784834350125704207523221547723286527325469252196697051803272045173411784078374601826247607543304021337400442330981398978444024250320375637633345487256973875038654443650319120399221726468730007206376867941054899353091186892036443701257449021670825177206443316829772600263953797651461497985816642960239734929865240786782055105716464226574882282815543237389105577051969886368712624351775289861098805489830853879807896132356645598227886137494878454192882482556062715533139803848545320716227947101955517337281161582332003387052951654294363335740052200581242922249103371325484054497132200625227435788369319100767540483445085389834394778100297928787807331715461258537540944805457407726866662385577145481295774853144360091869195901090975314793093820861303186675895920789654373679010412307961466407623783741438511846385877770445519544949206096002098893403714899592713633077671160109442490360440508808991976823345799076237572678882660558589345462889547271390881651584022477131446228769667265356357373418865684093488228524834382631536306851193788169881603469578382495192365671575543794420494906314816910544495206574285081427187381360850793491136264286207168793177190967183223045070872547474319347888056476350321765505922415686935662233279882700399239570703228066605563093087366767321870948235089583770912642747836631105996421700921809505064851102935626070273976485958395404613600011600662417847294247603387121002619303445760162294468870520766442426593467837218216630489411554881855484778504462141284433669330282219241325990184576947464103463429454789733030295294591984637053681868440245436136255247210450337109469425044052697049084258555796344522087649992553889870965524209665755076845040100953821345976434885645127673875955045851923077340076847210108647374547605168740240743545190112355954938140298298257808658120136790563431774191551976619992430080398427991340253800304821919329857629292134517629554781515115827987780665903913697575759385222423012043811029366385580307594724829730481984315304139688616403751144511084547953087014979769245338011330305823323587727357679477510668153413127672201084231796102547372146523232613639708168554754936519852991877164864063573326544257112389638417121276458535028034052564016497759655963218511085456946494310040066592412817889949809861570583537970446212934060511243862489441746742773588932202073429819555086754821370827382416642074898860625287681268276334844804190241650602822718187254146487801856453693649274817010019693247276068089815199524596617043387497445919496183471106598504377549231741626698368294631402797428350992884910637823620841416275289005483054813777719989774492131693337672922826632566951824417976296186818538898369950479063282176329042544768543093570820345754450532454292742765391544582391051202160792284889566024043613197925070205533306311312025314549199368679248611384983969356904656160700746831643419886026669799370391350621698405741798008380318040141125385991839164272320827822109252828352868146347157293085631646338820206075352900364052256682751866305449786717600368205554356449573247939178179622543570779102239501333477977904582016906722299333046091513232197987365189822481586084383255023652667501016592537190392987311033061748203214071855687916885784452252877207451869456072209810480618978435677190937067284325091785002969708013646000398410520532700955618292018329767157841496673389422410837335132158589844384848929893561285894676091082320167388315883187153417308897168250251801132211020700323511052602256396858184465668422861303129476418034696657172828589986971252198318090931016790556127870948542927635452327894492558919657650497460092799761625880718136388042168688865241539335771280182772698599696266008924611301367325943118466317113742258608786834263924755872930161673569662425297128480613733543109971557995610525230995212013625328002121012742466974426544250572807027270235299431358724209668115042366982764811635726319802726526276526869772152278929932593745971650073948273677036064147391208509537113372891534797802964924945212844190449006346430364003324571779797130574845707467281233596707233064316684511833288499635056604142517912155787478337415265085903065365266687163179031397201267849894695652437457517862036353023863282437589163963115196664820140688252151417838732037125162087863704329180089192973820816183362194847129780171051549211218099293400536401697047014588773008078991756791889664132504664802658921750023463694718582823000442974953157106532823099376003931717749230062498368207634205990384895838805901636310710149316768708090460951653900813414131407887857370180459657326288510743589678022738807087181454025897145634867190720637331580183317023386720181096217356190339121998718808461848400635338359686556755947920556067490116809385274647515074313778296188899053708730169699393695410770118727620512998784004948930027397476236501606723928644716932002124205967263978347724199404911306092993808850867858644401899919010638027064940984013954869187880591664059127056789898022501610551123559690565345763600257550788860473282616269055000705336503889940743124844349575145795995903240033158120794976515022388732831079194531219460585898806440839294161133667286330866150241619067224388561378161018012756684365244681689078504948983501585928901588399671415204226688550785567045835049395197292860772094117677393180256415441168096791329889137992654146001638512889508839427783922268818490491157032972341024374221030165243850023428794033428915912426311846846590031391142426935801007029176378830964677410421527676163419317472119745815947968553464477336671066750705518208174743900110048018082770251777566431886658987413573879072466259682294905528269268039626918170093463212321344250275950491440119070952249259133283140788186144098654627516870119114372699414791042128190493262821461829084299535178555681422267713996967588490558433468458152892753107601327180574802192367008095847547705719099167632582315865231751517161931144594340658367492043572026950016256904264980377357739316377448563182090515873436119677517125772501055979906573497180327747495120458495172384184472956146085359575283052927622493922850260119790802315308148392505689291529862437132136929491937836281677617991796075192897161357221422043422251017447561021076759142029330482142502053554242030807995469977526717543084714708378860927450814986625912772268339267837018528879088456445750870870127325753580842144055879959404421664232256181355836778068669131347211094779328414056453408226802220075178237189657246542302513064399297076189737820979494907823881396315608177916896698358325407217239105496582259551638456207638615579902194915849114678990912061414012260667339715865167878434647220008792272257469104323985638735815335976909938048397128505084072322656923447066644414760131764907865658131385395953603270104073637261076832649164213960900343666509630164611572509495564589509072900027449304345309806591144137686592408006232611775341508039376160188110220900239118632860611483180210822242371473748124041752929712792636359767908312351683035621191996451040004429091233422173484556023022757839515542795770090565289226067800048787658770991039973283203482151647518875623462060119349587973316901701671462905566891511613051732166888720238909390401332843491733428047797721840359205774550185539215496148086244148382476684261624608171017822074667579791239847032608353166087366656734898089565632230884622363834070290934484715604661231728672789084325942388620447240569959880155208030194328383765980864351153092750943393665111898272676692243995322794860921494102985777710435084146868424957530182023736254169548367241864463493101725388127069950277635080207289053094611410461777562842449352393031260479398561122400363187229563435193752797000733167243677934228459551966605204443131057219669956263399944358538393234525095918989401711070602776572481746263309696246119064761797898613209717632933012243418285761536509519597101825297348263691911203482490440834623197580611956180332435600890331970093895007530153311512100538901644054486785402323212374519926473730722132113534511090344867128330218223504193042269976354659649364425734212455555060651611865432567246333615648847428095120768184363185168850642449741896833907478281868764185745791254268607750218712545514541102929560079268707163998336431453209727553009419165307433661403393936080290081218588347418672806179191212557269309720834162592372154146640200812241890322188807020540047045826798911598023366160573555679554474690817120292146062456418441822803050056539677555631251377634161739671806124663279715130259056654237570191366561227980110538814110195995764845250559469191841470242677432516722394680035626238472553516045490740459371424195496449274263712135780673611683510442228371938820122461219118527537250246526128386833496257627809367497741598936611896127260792458349386175239130343196538893751241942812178706992741500032436483505084708059017937554191619868415656824233534083766735714710826091137770954126218166239365452964016706274032575286759117855021960500559689881342994686901677337161051013269973524086170504429615355570067909656374185615735375873165486992706681856262930459039187267214474600026636515000754172503406136764136892221724309817487604317049766772692723185075616597657384381838414580629733573775603141318491419469570822328797858886863232122410628392444798044176937730213392999834007715473326853263787303438246991437980735871402030039058746475296534763434611483772997641616723768220066064701235477682083366556888818218637717268072994683774599486616877417946385385002762833979149654971201810062549533387579633779022274389076986789275415976270030503661056500663110409918877430813259956043513587627310458919913776230635268408012765509465306243307341404220443811407828734369272024265920759117175240098040353583116508319593009987489315993109634570618611776272820797564090402196575048385323544216468461566137618873822479700437204707126817404812590020818658523818980936315886529607325376829301380067621394349794903046810274798100684001482971050883012067712111985367557298905738533256603996623186192893006915508344144932382235317718250156228524395143377112105858400665514470722035443011346670004262816028615646574141666663568565574636240887189223075618320285775584012019590125135227441740723726752603516896048793524333600823958064250627154556148404954205852371024580770733738399909720020388753927253389959892027451549587806848964039502735431281394100724326388799059181872340049120147593148790179860708789647229298067678798229986167832652279763260031785408468367837957570529246926265320728943820965582461869708583083553398124047146556549416395209109379938919664180302980646178430268031483395191941140250329708845966383674219703430929577239917193712551650143385580764761477761797617627659311880782725064261835149933845752399584157354324449053234978258946800890776555508991401258835632928658912423625338876748786526716139170784317675167092490150594507460741037895920025833491222029841585862788705851198947997345069013627884060840125213074509514665873287421918443048458797118047809662481943488759159818099299655445220880427919968838251040034133029997645442503729926957638714069878049538484082946923112660180222716305499887155165899770103256655631652662052921398949539179111085131811494668241860824648864637102696904525711098496215751522741204475394912527738371508813529779096749312504851640013214399431456968862085440690913958634585661507350376703486742878764724271580737702918976211999516781548773097655110071269752261037286860025920288679234772578391409638850620391939837231333402497770774366996937894445352590358352136978374058927308211638280887873211440136963969559147324439281197574084360899635573316822489887739426776409657359075419266130774129575523016094291203784684820021808614633773279659393254419280143672646616620602741715783084973730446387127869230823108863171423860721559863978350217978704981189550377456225082729683482202192654973333150321063497734836432919908231161821038119568678458904108141238325461410684656593653311575947511528662126786816394518886897914878233943435534717136405308823942348433017163115751627144592185969149522952912762884888514768494535092347800555586911496978897671728252715785558064515470660921204133283507194236158599566332394662309753785050606849416671310516952363456145685106037046314876937022514943442400805574659150901938470720240546589650008097741526477744331955983463113263660845339846239981522652754318313866050199174267852308591144876966749158354080296410351338497859405634878070923149332233514301961342070677728489590005726733993846657685338071294261012403155807536631987476605059063105845232554569773221870441936039498683043379324300272489244108920426006066786767152342171130899407345100812605377751984221704374023434504599355541333305901663482566521078903961388825297229318320573859463164536843760922609991565764142425013196060704561396546840299200668321682784563676133184244658119436339954785034662621351879015721689292997447274261654688995490735730919357885648136008840553643168022355138176188276952788709779502104071338985267788948201735318983976812524663995050697341200764611824364776364490947728489375956192783865958241741742866656965963793180508779542570810216393504398789711352437822971398078877930187658373390859340441200862908628234888283561236938311486472084623666029660611434129009032662414467677317721581015993089165719151044104314469672659772553743169349228328715185363245639380018171514641675699206970330738876154756738996193772829764461125226734997986925395872164376750038137247718792295894624759497959224082348415069663292860666587044206399967895245739947595982071431348627660884544543111404703963933958027795691117753516191445268898647276780795915898242014372607538469262996702415070259686294709643437846437032376111579791272665563166815325939196861954791443784327398793168728352548612191862239915587697821410475324310562481649803864084867558888666498302922458557586248355624505699020088977823431183868366479259654428172043529951034472591500227039237440031328202520599593569014468325323902801222112474338440861364976489986702249290831362226420751268639900831548345860423077281048659729230700415805663071261725562516635029374707383189321443011730915364099208824399174577094691127376246856360727373125373356412749011312947808280708797789727460514316704370036002026031469642415016112561931674421528210816065440074233947987669809393653670328223903094566158311906611282491379558765239405880176060765640470690291160432974520214081289702606294870176319089750037882528902314382298867699697360982319435213104543218765131646734561976203380941553892466440647527436103174764093208100252517114431316441906316992637324747295476426756355387182229937490331520483961846824059936789564173944843595107871935395756331708344509972390694994762714524799645972505287258584830153422665674861007757836908541791455063326810742061580269179295194458263822742990018529774653079369055891596685077687559548503179210993222141656846372505768636319025980200537102563950875724317682801962010564211758667427470692621265961459484007597278381875223639342301796687086968592929866456547245486628145771680891410193334737306300660708898368122455406175612290531211049603570404637401662792662636354401885445994727704672596856147270377021919329466147145198272571247262865207308309709798014041171561574682480709254084910592767850449434681994000701722726162005541496529355047443327971172684619928166780298402954679227051362870341300308248590856728295876137563071778146859289596574408410423273422300732955414090606317917653894115697189843011280921972341202407446071868736118108837140663531800752095523576493018829023764358654292703586431540294431405159592928355575767583918673313954248113424053895581186652682488975938516663670465293595981163856502949520312532440852308169642868770997343057231223769966723891172223286364982837914685824163877496671190759192466527051172513841766213160884356967927904470711603611684105363052173878362648387227198846621451313094305004220677417891803550420982827188353537201304468924006068636433493651960277894034027991009180232641622841164419752748155677065234728988439903392044091523449496710897116705415145146736721782856632876074108442858282544832711047853683105199348075983280673340660002183017201808801855934687134832771708283430041264262582649092424759721597353201404585918173664537802451446487552545091858618249224780272615788648498416627606190759113566790802576253395305788724123884520863021269511452973680575097111802354382950653760646219674683868350141156791376152221608159951926429402511494378150991774767669047854103124085432927367788824036800958880773286342469395483803996177814725491137703652772620602896422291797169367129299322085563966945670340257711816845844635708171404230688158591730047376205335590373162644437734774525691653995498259009547218773738993515883507289713390075729959405199687187639165586672558213213507392314531137514675402314755953142242600777224308697119316496298376976724073733684230860690622584596560557913235674695805666766195019495056872417246410544774173474582793761823466224846015673854837766761480223759024688160212182790675773921895821677152289858548526429248723496354689113841193286151137959201099504160780106116794313298173778995478422978133067736573736686125062592907760446859536033044521762364929823061326735289183847543302730853046360777899235554466164482722201853352810902662872988938967690605296997079625125277895834612330648355378182747321623136598814940144147541280448291038743500928224890539856717220672061883990700291273315334740584493082446618394645361117799857118250738486999489012976339141217408698102488877704738930128885628389195725369760277927229067886319701286416688237719732073065105635404197175783343991337163744375778261689662201732973401877863999957033478790826673504758377187358965322032458019665289868793477859515481496987024963639001469528928739800918583746760799179867515363470771334615193475538372654557667667581060233316662465986304756216474715582026665279756975002487156927693650122750183966615923525371788215905638810470828388682141245271194685711172085217752365463685942153174126844606947453255019347199898324958966215047981021211624722451262425632817223390686729449899025232694584240186123628424280139630010564434240637502029530560619887623784699721138421429567732892282037855521744564008222212732773924007833069590445045663627346964271740894258378030915416449966842200801105956028765941302435078639733174208724167675206561978761335330936604714376136419512774822483712831265834610978125464987776072502676351224346671603186222083591718701656576437703248725725482386469362354455536761290425883289944171302695191143440137858855096781168991032356069955756849158525436107617684262812298571789616043935004982790130193600478255865484338896590119470014217799033265917330895709011456889476002700682076305921149869558563251140151020612402594729604985135020224070829853571646765894104797643920382878357357550119202776300707767616008335922266378928367241731933543369074929109862534297155714925720704347103415582350399664199425854871708430530647276904773712235200524459651798900539188022908228395499973853601369627033770842958222130190036897584915746596793072284598144022045745382417295892098780534313862479773116103890547962486941048711455047102262558552137486404244070637997901651074748309491597455148150992250806697449148221514350924976884843164406991899009339333899749859558690815946796808581508115964350100259273596863955375633975257657527987640740239518562260857390341854653791640790901505771383573265350175172130760522742222938952788945215754242151764177354954830626498162028717676174453949941429891740117969264301624514301860982778973939039457490595970142085778364684052391814820581705811903765181972131756301214186926320563743644987211117998170086263195007773009255595397357321272203246122239657729191124877925561013390038615583110645264480407265368931948572309469298833025412746369244022821702190015130050966311544319815962064842608138162132798446611752701614046853851247015725249151539184429624471573607329687692278198393442787225490721371321454058964484743968388486675048159240586017157836108916726391709220795410413417227938893485603881086055901647724854001388725140541236603793976963509597257298640938740789112600743694586276021226924216254264760788941022643362490993353383067060674982042299844951908571606066081181214176751373874899926946699039600295777654842222548723516072353776723349431034703538234154171726363575965911720660156843136582999463902262192860855829495941816357514335196914761941485809342649442557781633558398660765173850547065865818850123532087520455777299673831177968901694623852236876025746210300490218226841542091917114059059164624663689743162154095694254452902417309432288130566346889339218895219367461024994333479764460669987446732257196024432674202187932354698763126070648542567615449086163252352581695220698684934977258863571709028317756801016040177777882489661263150401973405093429991006845635985029490171154936893329907969364353794969304603558916919499159374399608759375488727193971857475518694249167271360263473004410148821059618487389656373460574428852941156662976612385004632313929715726706294214424162516638617328403004087892502833906805843588021078201864920082765923091604424554740241077645176271049621267424961629585106892703964140389680904795064625967669560204746754188999239644105891087012247851943809092840426085823721614807495801881447533624963747565750980024273116472786932600606738656127681479894155401195187783535172487708161984122353941290709220432562765329681395881841743678774682423525635466174107641138913282829348001270768173850328722795475556550194215178355118428755115664272304345508518250457071980711028956123744922988382710792060799153652576656360185183920788169984645442139997343517826080345378668001143703458633183574461787053288560899588268398044938359901384444843679185799476418679328820718019180850697719573280151676452950061056132274809811414194468366334114481065067134674172150993465295380282849229847125943194340739518455746220902469902126458945209125697557922859132750343247436967057289445946725710140871137501780694151324058768867789460645248692350850676273109165922940311006668547672703881719492941950180993722834018449494565484401417518098921139233941728831873314444713874769316224406564586128031303501751794977053196950587622369744809934116164666077988014503747341840600995907645425627586997793561510937917175203706508644236489525376605650595030517520784938458744464216448668297390803473281282893980724652418681082052545964865661328941138497660246696203242785465565175882984083775198035533030972724588380840198789240919794152315884110274982079630631771865529316637133593013170459930544160862386451248387286504465024717134546788073171310508501645415453128356088358439270503852973241646965035967034971413456129437103073360096656683812025491650948640322003114529432380745712406846057511149500035411204753362810358403207169425369496246435262988881929821940675960190583229569070207279690432866115345682464797152851013496626439587742540835850082718732478627494759871350653473250505072612272773870909105181438143950674965577161315579695584259444822937544444003578391805416874816342920120092347274582413883599146505709275096047017575341989274829690551096709958240909434828350777878592438451166679462740788171817449285458880846732616081218180109675602180009328799462878851234552225262699038895483605796729916415903119526761315887036488099320923125351711258805321725341531708931925288982612471216399219199492914575384061016530002251841148242634371937801817218150721475760255743371275155492870854572200687097954888045586661706688149613599995060601021709606244253384250414301110446371356867673856332244691053789041905325732324707872400184155455383013820486938471386726981293632673396022480418456144151381220052602982403070112833527629061919017984902109965805769705204726279436876030431057944380181023732067315807702325008355670036582123474313254661205654990878857834077533994584444903355199718349809649034357241522364571116129820955977110431270053680449409788368631103770248384873589010048438973967745026281875244654451215324428528771417419072358660943584884837058322941983531632926620341729045019889933803209148806432185211533451233671349306962626406675980085185984333822673568688656184920644844420695875623131268226280534812681822149445721885380723168025510902683888642362960814210505845966331123021319418655263254137532787748691144800964942763476898911051755421257598529592878605865079749158594094509055110423349171701927693003494614029028289273370483381353999497371847719200404837790185785299691064335346851145739283802171196431115194788620930559647243655556933054035817840836849817776987562036954616639286238403592750671293336516646002344682134101644887357961395307252586197144293705249393900615127589337236664517190657323967745512674835575937225973317132098024444536017051882383952806547982631717065903196027782043179477418962182736011883587094814921863351329563883748242011348152417254655658302171637567779031717759827560549415869338045066561282950778989530098848327241069253577385039770733685969309561147776714160683004382885561674068388024095912831068122698312132018229342352963265188372216356122567624624292925034013590756919949508291836339938570713332795812453201729226093199190762134431457107952130706353163164033965452655169179365636604877335750586240668177621154516092825998913842156921676137111554214937626334266959918428037012187268295689793732733906514126595766505790842044287629948472459723994761623635172729547826606103212853451438858564280317391621264169239608433902781983286204473962000169808121745627245396811276217355604118582686118216384352745063925033960068184647214415080973621047621434426901726881817192096350005241956349622444415415552184224579906325817435558148466954239520053418275094242718149028177839391213875570853299202128278415433439065794680455572555207058643177486950952651629724219072379028741379321530595960760436735107177921253153989624763286002637852707853920256645437920937923848400449099549917122494043517221297445279851418717690719778594693308740175692694146516351853153628267730707444267872506258855131485760646498366373907938303087402880194551528148369482382464907696380526407037756508600243059123100664689201279226602944369005749584350024759759935394003162640608542914569223246584623493041007671358151943696862026446419520402542218318016078612996886692336288834306454614525069531423151012621536058020156958534941261931342367467790149962092170668372688782174008616575642262748807274728418652596251603420497869519800607460860803157186593761687706065215620596466343951792355523967414237622766093301968285815463137994329560020469630774427584433959355087802893294466325308773689032017421004114214111188161443035908345620260686102947606098301720090978878797519547446750743544243883891703858228018483426604913497136685459872952838539368344087317244445103628227328436528919812001497837164183295576527870777860412131264663035038349588287243528777246886299936349779754677181845244046484568815821162287131223992552321161521058333246949097503144968408052848355135744592395074720116158367619183047739485964096520069517239394620175692515265995043561599612319189927667850402163869244791591618308298455661084509176185157752104153193821033144824805241051892938545305016370955447268069850824147717387949270999924949848621184500487565199599966013563157414800208792827722022063361695796515973871562623240284388902321046153268021094725078414947660171593647159120325026126965176116332983735741608687946867471784044432391940953710594107052302107697320505299241335961729183642412307467080218108193089069454374044863623640180348529826523719020656236875624452644399702252353441014160604630337234153136450252862446567405861387736998643649782403436691537708423441261295951609644377605984254165253950328169573766365954643808621756552351704244321910152683575356285981956900303485038343125141082749425430719775786881902431508233009440144620281326595009389624470725268884622757309019623483767319977379599802930544548133543328096024505127399008421476093650701587692050347349031206879252576681321104209622336750785483210835951436310395121622173195870684487452628200933416713793970283687675678232367780318619317862190898485877577558013216384555747601937734397692342087298082502317259216294580768629021127791020848918405931533686948613571868452611663107108634717225881875877166517591316096904348732583320505830961149186955408274865384809329632427547850992022631240901614970745742609321891456725998027855720040377354942652028176276683425363151805868452933437512025890398905195721621745002898281323150870168424758335971144975505278704888786134429645431553769527148701044897657888440315444544349996857301701820081970695673157816139438850088148833632788692409146843694894299721697392921197001405114999050413887918896604829443360415495143251542761529482574439050693835413273157788935353993274592992380092383348703366985442009866959940807489225329693128684634655915640806361794486808436357653716646536056568685082827715101358390026242729034239971943967799033276334503888235900736728452743353388059843065092203079068564558247067970595872448943076587241774330138669318231455104983575253214391501853876444013792714970850977715424724897197429682343853162620735634141835763400578738914689263069917480276621102259695079351706630276839633335759306366710457412700801185867804349402062929578976580206540019411849210958907812874267005613599795760385400125423675810172980817019782046418045667913344759167330666735635181198960078079452579675415162195821311549938983395936291597167420742260281526235423486506020726013900460617837775417856788656241374221559332726722150934372419973546290022337888225091910788184417832512673440495008064636698115922659353275319535470178263445824298994297544665534125028285242393907390206813471829285873967187456480250019533988899918970212751083444811015106076500249636093050982851080556257638642582038565535593352641847796668895191844891225550272945920432332380293991927182454268889730055048072375609331462529084759930671305743411836747698118975698530239840980546066845348023721076862930341080950291402967697621663076723230604031044160221922252942962785265375276814045127444915649180298161477495747920010868570080768671564471011676545504000464123272014787719813898540770953918342340496987949719066551726019931890190797701770817328664353338487553721432347628029423607270620013659280583383390583987614120171955607098062634612966701578103070383255810457016828414034415280726241785009361449365440681036325300925534654050074186730386963833299331025448694568130181354921423825844876960152457254571286413516876703021678647594736312147148925700673688006906272865877034326039887964067725303654466822278065780460956467867341870627329857365399084812132517380107202790799485411875087078800645110975707932696296511688603750549418370765552348220403884115555752053155351596453257161319167049973517892252528599458691765459034733174179508811777181902468132731266454683326992437165526134707783200634368125620066772500457400436931322970079104254434954201462910261485716505713951758264533298973152699012925442434696719904885387919936738034839972353840305951643455591997386740290507867468064463975373225227365000727654057123678184182493767478174501117607596137579252507338416870821863605100420313787873853089381946725385343576233184279827257206082915751884929524964559104349924216183459199639810296775545414602913056930533800418596752911969620657613045295887244321903917234674875203414826668056095966463794225075149960777717887262458407276465625890247375142248939478198450126415871295716870948806392914274426886602901307076411978441591393274963049136232411094538211278211724988256264935685237527379695126181922756968910320630024009272272953263389676404655376399365995653523892966285215563935638719122924709757381696321202746170959955671105751251889308113389487425588568579258089075469881380649222578400890324541114677792013136993324981188030212155481816487802748046356526151560475569244073709089000035826616517291795554380154943853880280906617327392371145942495271930789018786292827083219557941251613398858359711464735205999417824625789824781437129094217196725789114762482455033459263087058266327289852766355892261857588588747217689149651281579347134229153172448106752559285969849182875871873768246514383201295957482349769980555075152494459716752079228375463815101456998303125607122543059068095501490731473978310212043092795187088445819597531322146217334072762785163412799282491425387242600023905589996793323858382893536699474941957836917439524022468203148817148622613661352295475855681698329381495922121837546427621443161302498683217377059938893993270479811519236993578533182861913407169196093136761836665487264752036678322490526430812871358938052101652670601872621683851885550309906447842327711607391160351049287824524580898380494473095377673799258971392602697466119905637524388775918014916012928815686474302419724359844377230596827981171599872345646239856465566694715255916718971326886631862764196496039111812396655212214267520656546945039226330176385804118603232985970325327789310425712580321701749859692890273165919086940597156002450843209892698313948996236592366415855007812895646469684081474973363296083657073722881173106566420098808559015054573640702548468308576959987537321323083578852096712748644867525208741232292947796839975751383276910646713648931902937426081678033229695555855431294178752610407593233341554371694378558695789111699706928780671090551063255397712732781329464598692103012285076759764407303019509935630576398510994437358090646634092834780061975950955910517700687721244545853973983967568146394228650317079769656310708588920702238321502763587873528399108974901052634850343663725144084087715475353193923249591966420113492198993640764111908586547091604974112591596715128267940089960849707465208552292005630420273646208209053523046085605466239013769846507869563824219119846053533691463105805840794185542595076141513568472039685170477731208776935004562859376939122902625550493949598571983749891322872559756570413800974336120020687243058428141845313776624794939350330209450588815870180874097570839539547573656977087244810906314175301585992376202527533401104162362178258283635017645969661142464723062509627449342464809229464527678266921053208782391006541838917430812163063631528044522242499899418087104543098774683282990707539082318715026793230877405803331503485783748689213427251313108819075395373302484152647236079150105792253138383550383771886811614176942538820214933824134848165766687218520569542522001109133043435440730644536504037693666016345686845855130160303460581842216260437160453429996017460135092690965708249179279399096896172710063759618177756061657678928975184882225130311588095348885717883010926681792751253623823909798802832888311082203645895793066557193439634471286835146778920165474180436878447557328202492917294992152122321720410115070931860580923788104678349434717716488561013697129111810034589011374856609543147556954089948195875470539172688728421107690584170613992456177535673325908268196527627002384277392246564674579523609812057826810172208226395151869736776169034277180734273349926199004786263246008094826694589069487191983389202504919131418717218186130419922448792835903974180577037561773251929875691710133065348193840840825963423568880436169962300785396572317321847798908972959661571522600201932292186942111062779881007783582297961931712704607852012439788936651467887201388650264563651892238040250052553146159075511587811866215815720434249413852659573062416564441024218475784184836125479944203398197815609412866381081776620345050325560927010833641198199901474341573962839686841014170188582532557410680468524227348994076415262872962369410484986564210915497629603721847232044515995409071028160586590431561468549763536914662660111981843667633163392891368794542333962653345213086700423369475301214597188711437043455198905173929480293680627116084331820762459924110954180249615809070306134175082697634448589900303767249824630674852192413639506296680365026182885193191693422046025078621897367961926363494551058889799795108910592407805433093168003313580733722981738212884352326833334872113588860024998238289862937274419908922594500462101021058256960926048904926701022412158354934748374348954535896229073405790155254923352757155638654865782015840429463093028387275063249849961824544739841711081709501691614397217365130376347230416677167175121433498429223094089295277200868226156607903553465235195843041460289533840110217563427753042237248757912590935050769404801711164933189736865079572000596249294228443728731553775579908611308701852696219434858458297095346785018815881970074141433048430405235574271870917113241614414823301431990888495467430560099369536455573560730690730649971988357537582317087007164206844711083241884960416506178584484917056713793960714948599498097560434591252049195046217196327822290918909796919468569579574336536738613937171179117496476742563277501346800472803672426030194423854403685421330148228887471542617735814300993135612520949867205728291087341702919203817023368461890327944997054496544499784669836366283866442789306516974432216529365613159852893615824063124297022204529606622190071074089538017678065131725983356251768648535793356500519920578955330725083068546426693227077502538566094689430840844777063324012146454961598346832825757620929248204098660308206705197778962048826503325296100825362095737365596095887645356646777166704694038590632012535742289719977769810516944044319564554911774427208096364503021513091299544345766476039900867599814008327507419341227837929973446444067323207976292030683614028791490009744880486015473288457135556870918580828187845544966824045038036248171484756140823702747540618279164242404664845201069104274897952466339358726905473823149657777455302525447151433151406745558997876390632408698703511009132265301678223559938935667330195263795021175328822441628034043520532884169144936073053531555518459742211377499605240006566789115335085626790176824377083310002966965345796603037633201563741286068038630285789961272880944746623279359553316475781917281761876648396634585752270593694946945830649460354410256116338837300079291118319948641780298586772081305597082650510581736289716163664704362324844199096710474392021025351174694422128418960026465348009589401246373665055589046388215501385701268027616174715491270633414134031479133227103075759753850454458679116203261980077421586523914168311407667559722498270138699061020765635436295034260794770495771651244410104786862178048440697115839995811524962922317800179825543742995133734922197550512568673148351984747452591698628019506576261974785388394178186003601586235620884337149863648189646196290972231194138757133238587264772867611881596610448885626421107958395672791662416154121280492190576664470261934864501959549810647865144232649075474309719334788667381287722666002886541255118865342050198644031108241160267668096153486448003882839019063734472314657793395965435492358388003555027925071329142078781355339688687588935695405673692275351053092243159532294867955349533330894153409176687871543315243929300741955883318379924145084006085756818827535017162971485825764590305942188189910522857970283959119219411331660330470892149263249660678941994989886477344169257669822791763891579084268332347100377841399560306789701974525904336849391596605134787102429665760341113086125977779514337688022818114329652036718604921636614731577417454586509188716876793602671636591282942196756500139252118481633563951631233805294767186585019400619279855759129775305601429741581679697458182714997663522658542760656594082778041512854754989309122036420521672935996720578191132228330667533355280682883452523348372223283278485900978801751030889347059665687746734927290980636929501467516074051740267364182230270945170093143665611832381933912215337446970516003249343526211130952460213247170495988906113103030642542684174498812959785804555201446429246952133173518397794866464442202106007590165568067751408302177423980143120205148766518932107724392391624083183237682219917932069259399435155101972216373760060611360611254392180558740774044805736744925630275192667541236404414595495987447640129003699853537676855269735034702846671362709650638077147718357282234380857018654627532286550404339780639844805314415430269227172769426673330619244726182350721109786268547004991590236840801778702595473822068932388990723967450877235594616887901181535637279666054179429383780909885398356138743380361191946716522876611984985755775928168332961346696067065700776343356309337023319354389014284474947552402734316336191240396337859042563259620012458964503663953951713808666506966318348517969511544409799373678201889518247032828597104965061861611638327494522091236976604580639069890139745895248930013915951080483637155544215076915554198519008945574278760017962291122454534117615851122517213304308013875518693024904375169895015186635688241526147986416846181179355026682814531690627718480986108221990494869190315957123505101411346161239958398298849856077038530071609837818942343198769119958406895096493301629895589133313536535089069921559577104231148592715125915232523796352463382591681129128384317562666446887042739929734436780818862005606001679367140915563061019494323767809753180821586116271428884035970918942914339663557266269323821351203887655153286913950796531165834945312894639120851622101405535820534568184345298849353956873119683703307035377802766830774562595870874312481299624391138423578322412118748944745395741718362074662779313305058629513268418395430781322136581607573131776687466606311648276917317625536953047035547687808123864018460499236180138769027235788195803056979906506258776959498394458913713724995864449063754705150130388601972954379512113687915692673090359562204403484447866262960557984023948502705192620301342939440479027563975437749267554284461462192528313182176722943359890492709959767843213175393934694766037548894442981525700597074699806086797133403234939430015590302581899709000056277321759639929875288808543366591756905383132133851694564721309721549786775452964344004136707518355690808736245569282728708394313076688376327967616049103872851690477740182650877793078044343569515948893513724944779458636247834767728307790576196591739986252559158775520959496130582848937477952017771153194434783075245446451867429366113833122804686016696048712668728548531282998886180594074834160422063535448345459485731565757814835991447202697115303170952609598727606912635966962908587903934677477587223572665384566097627708899893918450163524467566825152336822740275368146107589570792670012314221812137514028702679373112998959867046999288241270521172365687040649318496397699477784962167016901396079576495657153127130044399239014745858918876568653858177612773402287338911591822235859852878247608643631675810545575836469326676563188861038292382097704992244004607379665875264018167543758942146531262139849991901488107455456858252863399997298458427877763682680713285273069765724328594064301519822454934394101236250224942035015922556674259668516142319624114856114347886331280458454580030852979924686890401781155042143029621766424068542430018383145783808764931817785142280207757121816028193024473327578641809088162346195452611794246420482810451169545081668177877581920413952110958748060888044720444616940838625959851077001613282872840214835827805981018438217016506453844026060467215371069394916419841745684111615778707549177495016608430506495312431863882961123710225773181473162592251481534899596486346029377251495127629664473431792544783538610292567629227421226702458059042050055243487356289891112263499650688315076815429001542958444677762054360020101952270670667148538134700792914401790518733233499329315330966240102811312648674063508662845530981325953543297806433356930306474131287014166382115791976537989145495070667926922702649500644034870792736733176157908178681740253586859051738019884212388836180604202313464111053096034615085328309506954815738411020553089903324450658257893683836834010183880261287852935685600350422020280622679155058672643036169853036747000081002056583839231927804556696041434519169688060214936103600942574417761871629614632177533159425983121362108770296194737905210576862371322375747114977876712386870402487284992744553173483925226560296720663212900531831337921790315163580272168447486776318539526171118433600802363938147788925545125511099054965460426377712270550617239081549318553257414684968655221403622208856158152530684138446201078381055863139667541272703921410044562435814300070899260360242402697199272215156296532832633151428869361743631726059911413380167574378105578700729531059316023691640459987182404644158877830243667974738570907597582140940040475652735400067052452097173190249680978373834894408732460451990460164072965975392873096147671120576100677864562839675550557254276046084721675547744041651646876562520500647083332518313309733269090215303091246586800262393953625623563196047689743782169159601038588497843859076611307485755274034960898869785291268257091238071765347201650104276670583146975408709892828353419104889644543543719052847689852945162180104452368570132783314415748344468954166160474951734017827243389879918279884559338413842461345035391247683319543694273845247046582517011766705374744042555047799661129381167597968558421444105357985198101141077292718282272385040021270033541164695943469544925797472076314059090228497233727935500213612292006508091116433134530934068757927722933521837962040720811069388753550830160398263451074648171029539315761307512343859608215461337318965589953513672830240660141458657427959944187366287024406873279947328388608761672847476253102572714249797498757267999989885699188188656260179771574076740296241015802314788935294445420571799114717920891690206452979942687747025401914169413331643310985652309396773410702982013946135195105521501490699663406406237629541162562912757447364145411072148282964206665375344174293569004379298726851376171837153161596487596045423241975442649473388672896376727465910489262817949695136054509540611636463913065559990428509310234968583779906416334239450517456102334110378318340128410752853049789041860333123987808942599948061393740025886339715493321721950020055685600246748011187577605554962893796717044389010513561890944878538788122257657446240042413550041854665866572064161994162109332340409532592844844947024523892029533133342419428721112632697509150733648471807401860982818773496201924440379641945931549861618293406392723092594451129285513784019381842092209495507113035841779270041791445911934107456254211752631620295865146941146060845241372973253311486567874935591213291820166467715799605106253850436919725296687056005349263797872465475566374213052534428863243902700141333030407626669813635091341390084202718241008029179892156555639225882245286663984929991764018640716440492190374831851061788922868781885871851207088733240350290405546688456179309141692755015868050487858309023878507639945116707993895187760845693213494051445737095877156211600447965279630252578622820746857321210338249381378166677293270249594847009591012715304131055823493017263919651909682352662417758741802730239075776592970885232635485348470451482658126830105480027989032151325923527333209936440609538722985412381465469698627769776514449308474435727854565452985911192636411216632119463247114613473281833859388048155757361102697130841489844332584992424381167455286091510665275482534994938813245091405045572270688745016637542478005018496133826730995660690575973019969705469354217688695268026345051207572294602724159207930719587742261838978831167755114033725046810366030354930460375283891510240251886233106123640225465049462432897630848024679696282137532643857974839165517316173137123876322661392065646076552489221431361107045960320164404512474462913695410979135944830559056311039584548584262113483493183079436661771387456636738601342239209974855523899552578064616247496057166196359775649144305157020559320252468071589702093328903577395711719613317284399934836540126102937917267077076853319288701667738384714780325181186190016587483915663486696688521227147324733917155620209773886165376836230910337904888066292550452603499795424912841836962003631564092378592009055342347108405661672243349132249920182277979574171527907767560909010208537612688241031777607472956851540125982388708314928581882934433087665491717261080006837488228932421457880580569165272447039725970291526429582882517664678615426475106841943608449574570930298121321371696503392235759573941043997482654315154331299098398142492134960356979700791956591738076221166120327454112284917584602109449374932351423355846980636566000583126752618736018898889089025383662005520570774487844598462370003640615339448317780202473307078971564493428507342409507052720785225925056940202993258275672758478043331597825777747374382049002469505362873159785770091727967709425726071410392133111084471284920322058091841196394935118820943723539610699560966849051178137705653902836209078379265318197330952805402378251639926491313009982106504152176747594298960922607714776559171751538251176598766190715349434934969603823906826704747570357189079928912794005231861440048677327339344207260063641172112539370444610963998441990404212439458977965975049072334998111843321014751401483016888316056805862895994715847894852099093494340036062528239568389179060817935121752268914966629694690191137519991856249549473437522683073817326270094008708822384721121690089413143288171042081633081853357872673885179799429265183920857432618865576993095527701108682644918058588121903381687515034338258055201562821436495452112398139088528417207761941296897338928913263638368107474421279117062828833931930747745249516520776451161390790418718580188558307639445554443905151583152605687667646854539409535318773545519985620031997295825486372906774311870666591957601404579274810683743881824394396734276092144474888911115651366926985080354058382176412250590169705537698587522480917887212356168354063421545133512103199741595661546844691364084873476311948350444690473734145235863986972755196947635793862987804762466607955396485856991997473534657071595252801848754790195756803177406305377020995613570648045785155221113277055288473049774115214998420261263794750742852440960465484477155620312397348491914084154085158143811420379490820897839534307447261877011143583526983602678976984282745441768833951981704627358350998244259291664372786961636071482981364059888270367290001631179960213734312667650056027479524453565359116008786242492847127133648685451136711161451604431549306060520766603139196999717128419761314091940323572963614638805872835561063784861839019083736755580465940138626460575980527348994738209591815136178168562630306927626611884300452726204951857079274051778837540933829702941927545677314634741574180702444544674414683248460060254846700290010582305452400520455431784631129218957161414604619165927536045008357334814415866530742570516822864792718400703209337222624888852768580994140889321756641772013506093302522171413269227330340821146469808363133497121619565293994913757416558768101588328926989466401120830925912940824485086762160445981534945116690293179332173801443574075067874630421398461265510912359605144561600994557301573138037741366102149683868924041862552565278523338823119237592297671781892329527165861087072166816311886105289457661387251507147690659658261223390264801091301595530679850756389063346864700487627112749875386014128839236565035679714315990291006965310227382021032224662522673774684874098682659132155168178643526247530980082597374321715055015313354048328527094153899488528821905658064515403580183899148896120086892157773462068815467774620489464669430362419998557718421544643457933801788484855123005479536430284442350822892536525205032585130092972419563501511092520472167429186652231716469197759117616626725550553905294406079446952477565269931141309227348477903216418252625859309854993281090436824005282756565659236085282400033799636356961065578093655602921262524542819706468245174868530860591080659879027539375361793633065823552963735784554653833897652880706999791406047761802967590637952398458553938952407499538307573572823899435339260202490515832349434099573850112656220204132703030663176194530964710317281896391771678247838013967553872813043850496566346864463900263412593519771874395034076107057699530366741056840318463704181407011770490861239433415708864122237550168125542964737739266501669971695670668400163681626738147335457052054857258295958585772048923636140506929688210077997753512550928040411152777976805260153289133572530970003785955687213328809753453631334965574659345776085101648931592450743583794542579164342445096207991110925446319560462698579324959090226454476446789193923387689401275336734338951652615836468551560589899770546371954906671810173516691738588138277848361217793541811958947312698774542699513141517764491865100616617730499003557694278524673414341936932780418364926189923373393942123050516732620683136035179827472266718999961020159844008939550727092239667121366158821221850330198079663572377520294946295713282659900901714410529661106254406264189538936740759881250757629791092022956260438845568843924462137194518830134506206195626527299990119924759567919493013901933817842023171654527215763041538223063201329764337554099300108998797570961715038748342322130820071632286731112507931671425782640442763033109902537816544254721625317248538335172099655607361456534346745789404473232427629587688171168247033891646927993582004341748846097677083073939989270167937772643856107315799570129395381270549177887377958577105474529704573064578992660259834950858705273247007608428076113966454628654633073963717998106902985442980787152755468039717873266915595959251802153183281796568971611199748430728846363569226120496279552860868605252709269020328413813140925113341095589369206527714047855284335298068940372466936842882083825367589721936828094335207031877019881832767212926751463165673527058113390958192709904542335159849585030971410946938753836379621020429809970084698733151711049680063968333138879888292438992201161187885977821382587379554144465308068870802210938899218051910053051275496652677113435145113582914260675676735131022574304699903242802644898123809493554760134618567143028881028675630900249837929177748106639283259610416354532802732384096942915588592782850966268108073626675316047100585784001030295586740100939422194870567121786249443593389933268554566478924553534495993782889639945712173623132072037779102283203318167249151045064714606097989817467113928358613907372139459453144438461332060616750713039553893789204113645533488817108334169859908151256744533916672380890536479856777908468155235835856061913519816853151002946057995010753824209026384447433179694116168868415803858725816958290006119995030902093271000118114409331919965857849003189070583739816355378235339493649870335768411591750689173599788400443953122549591356134952496390849667767338860809328605061258796037002571424348551271598903093547620077092204570824607764039237926784421289767727800302842702132717003531316653825192135106023493917741217644898667627216436782227706166313745583469493455712882790712067543996707071578236239304225352472718616723563482934228728678983265233228338573288883365883075169199271182445424718280896933908461209290677590545343596676507154800017765442763028749957528855864424717797115117831937810402331709138640142638486017263682462574183816588378525003531539183338672002305550611023929365511016847646034982516393093613009773092881749626604799747789036453764962049755197052199657830884215248907743976526362896856362426904239172123575710433951881524471373118681488269078163014028338009689296864423961977883711714574778286570230262991174380926976571842886414708901738037153575435578804969334415839498601798979740413715312737373060700681238827558563319804574264540103011867867267407155023007360962897173593659409004141773691735745402831118780887756866255960490136798666732321533706949734397900551650658306485077804633780125093194421300452597334943009190495352609140091444897681118308059698478133538249852776333034185134077868548463640938343503184410537511514932778748772725802533560604016694622275200403310914635822598529222858473982557875384608629333127472716212808846971874293494617156176838020401901891140834815241623269329458343684182956348799559001893910588901099954718845870956890253361048814203276463361937908553430212264126942545582568671535998167764407310248510275286799697467501012754105771180789833766400997836162662609590917144088952026035661278890858318691767163389862442958684856090168353246764029069253920971158952000224530678071550092671104471152895266803007155386757846496472876633720635700918877164730033618588271749049971073696344953244175264427922842267635504703682929045366666964080185585127556851598705098107782093419208159327809614264022669881126043480584508122830102420627032461369170836027324708599453442702359528659839019038703664499870701886913247085489497957937887244309938089253789320230185664552441689126262187294305428333917079390633259573628794017799860130870204786242963390027880517909363944774111289917408067798028494329414779923257724545896742599144957195661407318894882537412468801959587783318705165079295988350237026871010106076487559535037020283394448248040950713166075924400229763335887199298077764096258272901876133401610030459040873339398856119708112711061070949486667802670847034565371376515763976995654604447776727319704173661869924344365595084502695059085838833698368344417228281586403113367211810413362414863041055989646041199248712035358849631254625981359153250162401514062455850475541748318143711057685117282738238592470233816963640642447955384276695741660491585896277700705740364155044950349745674132114840497946489713522453417761562551893018138404426283792910994247403279004974812404754238870728635516687993998287081652654858476061359852377856125232964557851402826774424979399418008539059135583162294008877534725560360451771621094288168624124366723113026904015933835081064146605990904827113063055575503489163169511675660439911774300067045767113589353031108116448938072570205629891134388120047132396747555400440544060470318467390115127172029332537051261155463823852043012203405999748975614123480689515793270150497322856742835394835627238418546503863069716275261112696381617848923297617141614182708917410788743424923420156546123323078538291797268349487887382873936523209437209768249580895628973380149829197186299020570240422419138081327148756408115084268792655891109331254824650805958920724034600601788844655217174585012567142832905157838144782144326279670041978400097153516471973241766534214436023818308601282700467396802253124335493215020902055669542724657354330780335558422460032485565727456298208208845151533808594353265430476255652275270240089995395324923735147397720771151599216896294142146235763207458707492928649062957212623877786390443689509882584972708237556171129134482350419195567159291244955146625535719204756775688956763952313233180124302098221608156097832660256208089349673478881111733852329631630318976090350437673749505691327353465622990007885185218024140388558798506984907035391058143016471846139165740381783814171090392014345179505098788695542357167002240329715706170529565072811114603729649547878681332348609863172310351571553493725240395742795960475444265306502183660016107304371376810663615564031367918756625654155599774248824733179099613949024188449191321711861291821913242078313572533938084479403273409774693304292971930952747610793786564903123823864703562816773520674073235537115834755621715874535512121532056072012036591365772874230573907401076865604360017409399492658036812509350070308424628159501071920549141568111598899028533407459872501596120433337992333998308485619256980709957696501415019599393457049783060698128472527020124995515711309035979108137341887504123607666702813627811141832833343684934975776894413729557911220428650859768438178579977115242688606782745011081373678035379791606106292693329159136850796445232971902495895765810403622359152081024645560971887027193269894886207577464348189231339710493538901260892048911327963927874615187812060726625445137386531517705510120457517630286379945706211137619589253523961934031685791622901668298821443747494628237634806386980033402015658830114273811446251716129040655438770519591050224570534890009956184287177101179421094806095799947795259318805384259408592183986074476871993926173424499046939244426221758018392685530613392799701891233775538863225016690139079279429826719148796006796212353806037112040939254313565174218658775977140439500977803072432733442624415790263501524360324305445496656847690465961338864897959298451115521004113422924656586030512098404292981012274297492177798529322549670885855978270714617138327870507235017914702931628288830973828309434785808062773336592020273186305227953787741584476362789640079137877573877904496318162035282820548405020678538466658318358277436132269462892698983774291107646028851688844704829879388048887989262057736362150689206786593873209978705027842790989328497812074757942994354048159801859273030106797261362384379351569690532329147218572312663075822575892326243293544114990860054447314282922357844427889122895661893305828551391615354672743717360379632908147463126891786198007915531992013935615965016115409354302307332165617838081165124794007983062331802284429154834905795528125292100159035384229666461829336554852494789560277515022020461479642911849323182064184845806092460425068817488631574737150959139252857761953477191049533155942470993445040289534400139153974556273129483361127998910322017616531963876146431016649744215373994674922654919317451171491529952226572407066973049296619929918767710621206664623372759630412164063317340947906102973967277066976562969832497357174428705045969140580455678789289647485051465711572450649349473661077495273641579765509169326213139305259540246339681243070049640871615595264721191633402026232689195168394931306311183476086867792388699142992774625490045260842928955953166710723052449240389417620976210615280381075808202144734430389509840106275037027623068326684132703059521150864231795681849168319680937186632833981800149323670226774327349820592557585742560044091187677703195057523630601962688498179099600920017131776228144206671443413212161404990880023858970007351843377186540641701826237774718936356193696423420605846567078979852938330270305005343913541875096765156546930091419139740267916812212954357002523169004562347360490413202646550251181499597732095836108726790614500163299780183399376418639212146212873263469366698220465659965030273707137627542721453717675394976766689685366197128590441336794660365909470690045892327912086907321325079126041049202889585938836593974607674176152742879284755503888077131354163373915275990549346679487926899763265595579413171364428921934491472752474296042114678918717384838185453479289049024663065009612603570813580712193011918209362426858057747604171719417405316209366347747524710989392412243524212298741753889566275862769542158371713399272960110059885814376758241780426959741756979792991953774632019179500286509063465125624151762438937276806006666105672531720510666900104261514494396958523801085583552338514093941947769198225218536622284620312913669303637994942864846901359790347872996713672145236302249937421419983741464565906081457066812066448307323572882642734572889470169429283589333002043734083736709505115790597554927999250014710091125794298362254918891513547325122285632228025471271361192610737792063916072441873702416256881120665540491341995145387291519219579949138557272706782810393784562284586895344829822733922708270350315927926735768380357829697308219585086506808515859204142906296568472581445340039664219780989206601955322272063861858756146080247951774210861058332582324921217585492441735134806325210584869710006641558774725233343921230666447172317878578945786629860856933532282534384128522895150699012674613674779391364684912898803641413081647397511190951477592241608981287503599717197359541146583430713881109407624096321043041837126978511444545993685948375580303212826182113920814686291364193475141331423044433606292387805194268367009720159465638405147444200814963725692825713563536426306745283902426907845276569411888313332310370005316565002380103248118900953066606692758677894006059253832970835839774138360775385469128956326255545069955832139153700331250588613568452481291312399941138958861987821805999956603432775958057415228562175404506063224800182176993691792922054220869479418334075438135943677855759969234210728794458401706072932343014504859046449889648607060901982488742655369544975789361155199021588673433353091897270847167993784473885239450303871561725928964444622744411037176136388768303974812588609309120068049834672073001662294744229439904934443727936867418929238605250158429832323448914115741178860895898947852194223397933965172542594123990884695226188509308827019623202648495546022171818415283865565485853609005674989464547106804679629840229288818632543815764762234088834686748864268632128471299350095172662774747472243185702596582463506838887220677935904580557514236609030723247752487777589298626630648111615463672550732378915951197800016122553145116268239419174897558290628155640433858939775110898845977428294749089985620114869508291773862235487875383575982410942392478513036658427479455138595540579109112882801866097174589939760383293823178543919354395841173208245248516488431600755242778771710646694819787014175401027785941848695842206615462759526968386408856869476725274935493846997331818381635983137713703857237696893289481864448201129113330965839180434056754738479276177319714883653134144041298537980873269079751048395152975148450793965004981012065627027329462400899000122110463096556084887240320923005705003741645587394681072839528266336106199975131044948963725947226386866767955786918754257547283124295371219021561550267039876418016589223312576677486543264975051693077896385437041088720631952890065884735922556165151916030589907309768899101896923295097192778623606615473216444995995461266307073851046155269249785954070453962968087368653719244676814551868735711020229397412607383714026622839398867324300858061373493946977195834663467921631000146803750518587829398755606528181881128909913236534382027080662741142206889682704186861317740455968839579657927974651282433699270514335230431802788732331103303377489805927780167329026949415252918852613762183311680826831883479909129642836568216310953674863757450367439242831922095509046299702114429188851996073325501731187217373266674197903214152148808250002790641991441714109709476211599337639841178703487540294559679567959026651826271393902246467212327773391821856650867287519585041094767447967342859605256578621656186401664095438105429953876777855007592446395469344440642670657916087723051551326344341943983546879453963536721871007180123604434628505797471318905123812081206760707710299136054347894170275956301603201471381256975104079795593461796428754067754369310497438466934678243453223525069477847949432749420257749039417020417486817556513287893083724159341544678920745961508942001872290180021180678371676123909211161523618818820565572952697780256164660547878461447046141683967985973049505583156359242427203753593640664914387577056139621760846882201033164500075494104203682542247555949017028709357309922904893493684367211000247684044814757428538812441176329343089535954714479190740969322686472158480009448869380174039625435456858640811621869302002468515310009199779615881980856306872549356974413986610734401029295464538780863339531216193368930929900097136933782734578416086300588013380139563723867615875601005014462385477540843395515211688955664324030132152171007725721664396992148528881058343042420130779305015703623337824276356339112281119127575059286570158940660390482224699486917049249629384979980032352786543160322413681584877143827554197215420367348241766412508009303155742101871953792511111669476296560987085574124591865907166928629745627522389287218592574135109433604891824354998372293566402653277062246579244522487624596984494360168719335938584377858989895242539485641306466484769399717058260618637086447845029800365977576302058916184709874411597302865046893085464708952728240683367027846269070126155000698091844543862077693411914846524423339800370427754247481651588544360117693607103964192797790685107372233714616630344158070692880140860090576364290841032969378799567261180921051335001734900333274882047404779294918198359053613604520909961511822853907130274678390432105158497940569035914684062190685143311345755201888276719329379792121861051199981303842886007896038256252246244444992010815173257258937550453544664702592217512175088926891888038129876870717607333942822560453145164733850575124980950907049089484063379639189012278437897728106532056112446264520779639195581727793305266607358719949044891489533246991438328792187268180919961819749549952082182085844834503918466184770183425824087043843061075660215264553457733030090230092257689068809651809520330088563234851300965649448886914947600566952681730350607151858657565023692988470120907678130307608893964381132755218157590658016515507573719120745086166366390833920459962644739092792099759521163785540876355520708577636673691073979518323554344672141492082558159957339454741910722049585711964524368131643916566157368844543811468359736307446254828917443133188287778789931294177913073655346089826887474488493185375719979824920553739426052521081139234130538827037252579564196133141889520053574670490065422547486092238759552448760230068926651339124529333837273038900411713592550025568691793525974528951023217363092114209831791191861269104284506509444957611476830777773352002500456897650327609899582365353897121978865775703656518437039410231985330224206616409768637006567199646746975756538659529510642318437067149012483831822457054419186749663123733062608592377020045347963285831090623345688693240966933640062130937597664053592057103615271964720401347696690645558668462369587461892043394104708396159104570512153129752153548221203934646728269298811358310669326521863104973656874341776990492426736974225627653049521503849381491755101438338204563540406768934722383180741742466953594471301792819864576878093852767115268184835865625517161784128913818501718165683898771295684691749988210630493720629183489799080644744614369041541196414194204395308703380040881037818895208468183491396485615047707831152102831096370821886625667860433468041409632549192461201843524884685489696232169235160230635946306506993881678116259042775962152637747560887154179657141367617307920003779915787210016089143355673923981348143573230643350111973084963050781609396972934126736582534192678801739708252309065923335386899195716644284412390134815575310367483347682661341951374560554555901173431433212584232778385197282918297865397083669022887240320927632423974349565135312881270204330404832481031636676422724301806501688522572833955625634142572469810337555338683250916435199694484297680177254147509352676075782860972069811670982285635602416523575680563303895365291856326202743634330610725856061597407261245192088993182779483455063408885148519344165755021018430320135147374592299831982835234465257045971618994428996959929788607254000810111247217166450394880404531181851999438087637744055731593199176162198503278086912917822644103225862703125817337897491958393504070223546756732995181787565404784500482658458725785560692784310711161738577421614936262485437840123633383999925866898622248362749056464921237785905516528545991364723321893681030858209639026678702735311387837628528018738593624504340645863137134747027943902369668056249913866485694392871118525547331766780500776757176189626074939099980565121549599386184993032420610214226169124413495559399767676300599483072696642793035987000901055253985781460875368038680214250362901980348100648607447718543540423717772818749679789173271754923676496553170284106316013157657264948390085959202641454205845557380178752820730481340148977639291025487451501705700362846580890699468451769118857326613109032285330278427275666954704169364823443395912286647215939779939663622480297676135185069211550939096190217915723081149082446032847949200156945998706485894824269086638802913867145828901186312269484611595250199809884952318549845378877825101583797691656864568712975102431569237121461523478080382422419288752092181681470812695445852437183897887075372821331215688392051800008306919028075957309600698933109654716542199696393567006058384357417473698913521699831778378647949769181563541080473852408266996369542417247685166049069289447035173556276665302817629050148228236927857088052755931406683007977278326775353748649791131245762083675155322909463243825737352804953359418963669333412929549705295965423578193589752411800142793002052848866690926055005514545872289712739733349168821082601082452952867316136878685609018057754884131812572842876225604036836295669104038411132954977219059373137832557004175435660086939106477571531498558438193192092036763844180791691264506013231266715099774770588345910910640446004727196310558306553146749324834144672096976957179755521302557315383343687903775095852788549495978073039907720988868775758874240134763550199671972849701013147531899372065102249054373350833348205370554940040800819767852502358402589572641095019172777006260826282365375388351928505769411225802539265719974475726340069875034471105377353976139433473086660158088282046539924170082056444722196855133216793345188369915798187994184585488519912817934704043801134098311992531668322863372758087524015648867855911077595569904179796215313523389615206629875736855955519451078171872965565810319631753583825209964025264760035382386346905649079121637474051259326901427032721549620113862907410053752513246744481446364037030509860970542029068143330078054692437572348218941393444012682876316346548826329614017350573192741966123486680024743514123019540248815750270407106044865204634244580900792848019858985431248155532350622850164509051276687799479763683889634845699698995086748250114867101245817945628631818689484150955524541953329977119710807178125040757936305196829738323740217846039260234111627727032951419348763367427638579377948483059919863467336597566638221803016902754706510215832390117509489977378432259079569713317012373780212351340868437869729851990034748732937181845717627345779640268460785534401943680077985084827770684375700131024040845360465044928973214245203819596654853611388341750610705254887414215730684415746450667589831736289028168384384513662423382695107118658685500555206183728811280565717351405059627068308118986213706032375839461084894738363774832419916208159850133404062039596075604839446098480428909229343375338275191347640851118229272562309049948588280273345861078378064204456352061990794694914527492564734561288998417625774614609401453149293307278138146066832311737787542075634621446970815600121689313255006814688144876923275774479454782864557819788277637922122475434926835587963293528322541873923481509435718492872186559625588370067717359002549506716748370608031695179355401787105434501460496937985394741626315908474333904688564155566260240115824046567157738082135271177518935581918487983329891844967271966652568570132152815893311448150489973419028006412503256076375726367034330017130837296909698500587852931838290659828251703905559799876904852943622950627273130594538207103741598136356543729363842779554349168455230769158538564562099395961432023942400669119156766909651128595579569103856799758702143718487858507186262747464977503319114672554219377664797552836759101926235498039640921383157849733342725530566250059805987830579591148260461516211057742360375306358452721211319016836714751453478628718901861053017500739580203181179430444624543192005955963966642998156439164070495851364409687603370269301277293049369022303789687583250700362232300638408786117631007801839905045044203831864254645338701604235047760673920052352095093875155624921298550540439918667800218376140550807702525468985178242416805174322159560689630589471930844394392544148233803294061156284222697559004188543896900871069470966846248416738496618960224034794037563885182469393241239414605879764364127738203390635295614741478491866789672525050077694094166663649957649771501881124451498880759210863780853255707017454251049855896387199130183120373712124804743576063298189289303260209289032998006757880444280454962641006311842528467260640713890215461819485128917892440917570321321841914568153982166353925751911249263008950426730967770628372426864223933048154816266007899407078478085003806406239300764034341079144888532371958400128110999483773721882505185313306957511625136268081848112510718736630510265747717046229148461138382373478573248534945537875907139587209018888686735520270939658970347258046345951469848393071784421788794507466839329013996088088308028194556066778718975430546968402492780490298740061918519795469692066162345828048459511569975355156555986835352233108487445461093113504237610287282421319061999814167661585067237258289385648295215802297379549184990181358577450776268260017148982653188251914667392798519612915943901481525412615388918327853026906807766352675993518322735402041321162033328999635255093360951021084179957275334721367255900194577145690236058397773393094849026605282668293622418856162778389036495795889042459134087599277704361273330875945917863157565146170419610025668521452795165622667406542006988611508512227302978763142789684831960418551812876146199236653750870767434885270267308247978046712131430149566843742767301115332523718968922856753241140449453852973183649494666788376991872648660138981681645767012540016192011139695704459149445550055866257771964362788603017780302762344512154900374822012836365212363116798502881868184114241543583171988826561583246102267461126829682575393088168490641819436833360204873692380066305887293642891255690030463410899831312311174699220436605146351582661978548489798404153239697208334732468096933496184377638638153473790568104506694892443822420414801882222546772236735680487092009826045297159626279777205261881764179649103975272359420290936891505505188595883734286914487938259370506617196810261661161506964833974800571893402012249287737084798592829052836046728880790309848739010528437503399191338145842707913989899611262444459677915878656595774420451723057465698100373923330505334194699821798698725253793683893847938465066822487880144224894935381355358789583528567496038142233118071127484995488570523841254476394585624724142750586905696390041807230353193097026467718553049186894555342598419096860998327430603226523629550399653196543816203410860345861044853260487152381360255445094389204761044172609796755513247211684296739230920627378732894416333915886653956817092051905776461423271809954254263155460782503385167351563271281580763242277986826801655373761280631087749126612976759740394920672123529330465262231854074191881936645736790765645466523636989601107034991107669415130333751772549220728186098204389909594445204685041757254989894631320505015760352923935437761646755028090894043279349807795228014751172555415401268072361510120406360636579840027961952028839293202676248338179568012212045164917963444230424006774281917301138979427495430725320688118957771305995685125776019297609135620085448193051000693328188632243577264387340850973393163453926816065070067881284244144025856923829409523506709701030632663127944801748668219882214857218081091404209799140043943649060107112035213278786497062384484434250812400285477910193154247127223129052863598547938124141400758914048343250754915515320515798672497620559855923446155275353795597017537092278018808099700742746284203965156675612977076203235250020843813928078032724445327112840518812533560399958724306310637511044463632131446351351699696287153761249664384634706597765554771964515532555440778822169524594549052236406010147653619049441867019215204611385059365616994471637500833986090567666302820003369886776944917100747520126578427931023808241087932804407791901619838333331158604558887715333906955733098926128820216872451033149192379978457812976050537280461301403782086475055951976084612429665669581655610213589536832920790459481367355217723956824620044322247467575927984280940632859326645916901961212727731563926730278440929560082195959476429052111208441596853862093555542676912647460197716380433745407487700500314339416115997530781040714124643810321806148570679394842474951423448317257114628221234373174729871948500745389595896792854280737822464352452052484972444132773737299806064683107858752289202820801146901442673315612339096897378918367026880481918736133684717628232731187981535025292764333968758149768095592238529634440054589844354652001438032725971787783279091916943733813986699982015534611154895890203505887814966760286234138670759966249619644167355289109737700082438635424226416600690532025623225276420903836508424476838338805771971519143701091386838990051976260849642832899587113113004163996408798985958855055370833934346909971320117694539262177275353059819063601387057204625194750586300449423827922483163276480674109827482415705806212001531450999587438991097708989872437393900400768977661975028862657387460193687919104421773744177886720186801424441745566263567985879972221029201417632375536892087648692186598021716378213663672931923326770542288740879085956410876850276025230343217334342017308562416536683882333216283586996014702179526001396493636572309612517796340638994961188693603138786314456771252233843300022046070631002651047183033987532661331002212784568430605367115948959920484817789880729005178618917702655097988150831674988732413898533778686221421005742402324678321955341211966018698440382117098844445727924529233433309442514490927338741244863913297255841122440144783580963922742754694431757056271528696983929230215087218751918682725789231965240105493964142606813341614364249720779633836661528108647397495635730820144554321831890255430144564979530765134370982655532475513656789026675871133991541272471232189313392439085477025915529394675184601867668529346070538880454608063951609926279989630904871075431606479620733770115440259859777571036689696249289884145577982310088587248175181033855117935817345031155853559075218630281108910847603028114743999947781408222143805376985499737924681781206280171660690227074773361378671991534213986437748572109268052897392216429667673206459103495839311279097278131230362586771918508451430902348047190390909730804850226772779047966935161016176096626887523095736001505193708024473844554088926423384487195817880549458161453613357351798451893238012248153630797255638812848444733026339371822782403707161430626558646990291329252864179605398141106935335560398161239245362746410900281706199563766333527999445389473361313901014815526604347052529058702855610101537106909769180949040486684461751135168718330369390359255382456018249087444797269207866495401211188936441833820288107029777743703966991498828382911599112536341149501367701534152373139878679138180569115859019603537752369385315985476456406991624282999027781580298263059223600669366389336005755281994830953270427720337603620703106022136376199533625392262898662528539638197123309731892307015112939162164118729136310449012439857008066284178865675844372183995976386991553926702191457282699608233907076848279170599577014806399425211990256176391428347726710814144222705666832288756676680409924171956102785881258037233933331891547375594112082640268275072230799035898037268488728116238699884600997041713209494141264108977665409634003480776968420262095756480969891485077323643833125024072404569575067825703945836677548294045263609330435058497751671793536434971312227165933181187024022883404484166676737858060227740201992151386616256828261349194112561724123924914363917946030382659394065494797721506389025429371963250918025845622989582138271358520556125707929462297699751435384002854632740110113834999474777544009686389976681759198237580100442724410792279628123636809346297398337878254524045841516574134352514728827431919411711500966304402552126358096936719971302734678891889713276768618345274966829869067703100797308901795940278267645465264099103157181970242292497860969505344358935415158209198441359239234667004228373989543536841378323251135175105637287923844347145160892133994243036365080115695916296478585029142119022438733094159597290355582585203632686599688898927006784489679878845255866785110883530415797921514751534512733660262515195644764219873151171835291206738180314129207181310026215516179989892062891077793895046020466009391621372198438518643003970465818626793858795129689020577840111539466365190986218947276056704394166116311141717073961008289692285122156894104902178511286530728209087350882190184819150433206091932051113486068022843831001993153899494586469796410151007677502005745722590183065280963495388216507868740764281390038188984842852055585699521944246784402605078988509137154632421116109782516722028660219621507111287160534004316852282393896636585179890733571297705899393379015434578561262524463279567842311341089819131912101355887526625714952051734475128611325732278956162269250794073497554858762057303122535808238533901038331987077338742110960846234553891135046883011688532532426810807581906693429923835106491908921823981075050114772985425164323272812415486614877364310815504940361081454465892420738809360905943964486381954442703942235100279799799246447550097477210693960779680450703678292505935577620791315796491248009030531182017935150556954840488594985078545279793645146724297617911318617290615618602939278438795219582717724326399272301581229004632722149042303317931394958976189506019546925584322831765116874243868112308062259634383248089613939870898543535794665254542975985865650768321512592321397420082872348524091153792125610832431557867835279141587052034075336017490734717541449294008188540736244986470642215731290459690186046544030245844396072677034373329255324489332464667351290376829231069746219446896207795278670819130730267864360586650869811335008197492748506891077108122971791108870297312767983645851149958777058144195265502399063316613025673524651174743787873200982312662309893951006641360556539069818901093439569892716025189119871488330079717579519057036289401807108620839398292626064744145097989080834544310898937162645580454616236087532430370893435164960736841187036960857488237945809770924542504900604194117985903933871323682412250375044670205545401215968835351927112328841014315451644179511026295687295795636925824175177241600084901504106815257994273734888545340802649500777367276061074631397557035410012127822507319714427030686838277529856083268070590476679102319694491096292340862320450795150677504631500384597126601410324932460768165245684311918747598166265529588443787785129398064001429003460547361255310781570754757897102996590291859180893012725375487226882832889052017162017537372612436856050139882478457078108074863127440487076863225647156228086276262281525126221946508210354367421759202567942119180092020463127944021251235924172326098671589865708518669462797609696434964591814273593782671213966338869981443653206426733509431716990189790582618524926822068438005637759950714745211543980567169928891014555019929124710540098695850213872125579358574384937084717748512347333934202350641479767067829830052486977742514565539951682638014429257062131123459938314365758435453235056305253337161771388385811378410508257831746105447214459153033348380313244483421982114609410617333725130354490497246837435161586465135668003595998267630238801200761633943375895063316278496042988102986986878697488305589591741196786879831995271971158982008094631504444259613058566297970276203248901447520419033672391510655102729647334061685920562745235891961744554747643398451220587443699735016342999680552825723019486738555606974206370196081262039174314226499145582470924140587662296003727546349725209032802065070761202007914252666790537858181413758652773343351218923299820687209296078077235575958107507645114979286794009853340650968161341859245559373377221370778418323811391638379386475535933676896873984384628010745369944227609301309267418886831252882580423154450107960122881386010767960278428440777809956496814732742579256247077423783960510467277926410162447561095706965880792829664160455592190444282915025349465420259273179226530571255597400429725521428048968568731744438573988142502514452515102961938866286913013980397490574258562930420642886557400000914817586828141311316028239348626059464041198364095333119122911569830589055660214488826184548001347194855575136320514580857298425906414314161631746655909005678926310502631559593060016546801317851798858797674623097265190188001615725921421304268285621269145300740635381308233112797971724059596226934048476219983000333866518228564399241462007517840030761007822590884940160179859558673594069899368870046226549513357376383264009420895068289697135055402097201089982882114755755839418506682656462996780191082549279023846591544216482898147901499740815892989963688530686468202397454775841398052660563186561896264426775200196271651592677756383077890485940716456839876310580080674816829151128887178405967288685410299212049671836481398837673119432412607070180206564823103011794188838447262532388307185210668018069378008477002924567721207710305203056037248328680757497191503165349543704958566345306211687157204771138418089691647687760037458161773322328071725720339234748233610150602613774335136397071710998442190990692176703599405056606850166665664392293736471757518396736021738509837695344720588918957880865685817202208040489853946581387357180563825289887259877831370107528239701124573674941884946752263240927594925508298714783048579996764211854254640513793661355952642184859330935389913873442135259022321635268169266992375987185001034831705788447731566230744109452804122702687288452963840154062463977494791825694318347682838460345126600078363399731846802651951209774680013010321540735563882651855662009746986341070739962513640961731387816422585828884798015332130946117571764072143277016328831677868085886934709437737972319825355963263526267808057802440384102016041551855317942343341028776900573977644552218211154274017523494039567388664322529696347035945022957482964687518239991668928138705119697072406323629986910325577059628223839760248621231663333691887902267821845381072492212291345391931990210777421690062821602606488622395508197538785420374022722019141392389899123321673791872833118148341557198477465551805630810634800867671476535857541040857943457677915110015462332057988816093124661853937754980273315195013366872851995229004476674480062280967341379066390219556032517162604456114520590024293714149129733431588225435256292515837414694514005819294999389276623490690547086550989913255356371557606504501631860550337091373593049011698109036774652979281431177663277296156933112750936572857546471362955575240831413346911075713687918133941435500066633008942035047909000798392239028874284604543335490777613426769144606944602173884226895135599543221821529613246657424433293697736889839154377848772736071940403155618830171940402228922283679458022682550038798320333231305838718572891478623136693777414674309182065646154581736054986602572015831572718408882207255429444061721395184251514726142279119477317109527255425291415977364092905854231738459613809477950574915799760734615422192108748247352190973836075062808577069913767708866977965794542922937726357511005638340598633279785892491496714667747158716584948739226434539350992552346241541765011399589746669645148315085643377841300658506781376873985490383457815184284327462282402907422991677680138267804009721748958840901610783044877727815296037566710857813714937843109194412565673388967848794740601059445831899670237091370148957152955963427892142084136711020978540313579589497023656771957012915217973425361424587211847342120864937314942117437302334823489014511970211516055542733076945667148960320564707409646188840190022915244981878224580246513900366292205164743946638065269209051329991806783431778796240638495051394164602057958886941182156775356840173071549779507919262799606060419666349189969683190345400765632803613643454007078727152739617607525828520638041743403906563896006869064986275292594764231772914679960900974401313631950378780968613751125222466446828571174771046825143603340909465368116330817244893145271371822235554512413257783095958025309884845202411605860390532862031935325227617216724951717041083150998457510239360184297746585007554924986003317931395201196532319845324919170222327540867925932433764938151654255328072609299013726743654465841861996546799439360276085680485511900080707865654805241277046477321353933372602485605719058578676981298793609629247408484727295130321084968722775375749694574575876121561528937565313010529822759315568800403867072813972721429873312197438373076970886117264062760796248352512917540017656929379992492115173392360227078905695572106895654161491153381947309805501354595710297157020329427483088075042768360269644777458767645211750430568284340760587318755240437125169027914901076497727804555544604595384879067579451620190701322589547287026584371614771144921582082177720484451058283699249944333708903459954472299791221376895231578421732235794159948640494067217422614470995309878119547606631938999577986109903242151055335942409123147845212876268298904554802353070617459418364123738295369570043561600386618143513757192957218653859348140910658191110008024863554985351748651488581530452221186138272781284150561177596077293249236551745478446421860737019057002482076274436750392260253189311834101312055906648187838974009948598373188839278979379870234367158727910049612369135018358805322257337445725869409782093439534307456670447008236391424129389550841374617914329424453444146742450624657990884852109386550737680307622764958925989991818216459157179213793684486344312077446801813812803319266027605601967169160804946600909089238562758814551892357804242884357347753413558305621585917054346135448306616440336060264234506842961132881230645902179709924216264341937324106584589611571835451443140197912540164153318868296091196236292726816481911519453753317659104260975656465634271353577095078141502049688129864383327242060228661907210225250437176108843884020886443770314842075200406273968536619653227828394130963150670908824180107894802950932581973801431600970806963498249116039536462426978936087686994859712772121552029399254938260099377247118308805872145583901601347855108800257457221615736205228697801687013051781879544930680469650707227924515618156494608222760378596618072039085394682819341650432201382018953078749766350467179880176849926786408069162307097219198807916071662506916637961974211882635052594740578020874609317644741971470353276238723195518944939956381985395108660744416591136947188979559155789218614084492115124330352613711797783979953293742939822157533589083602930801217833928252239337016069730378884091169854324690953756539458717548558258663228627574651569284784662017268847151037196218634356945042758168797827466924078807317419681660571090530021005193654654911196833280271051112903886922683109565755950439113197945314675374459388647355324136590450229110645952538979545506457084246152757915597722314244208083588302366726157842721142605028957187780936873836249976155736283394427283523734005743579397850714741738104710285001789459993066225623706278868503733062331821274675182951205925582404410799913003550934697278467352377756325507225280745052937474220305469466572739248259144805197227015489207091958330951509665494060146556049329963777172685041948743252349373889642217664412496183274224912247917655780189948340810119520184341186856919836246849749677149049916035901622711496516035497363324750532085593138330397178867652474779989361361416654285164724060313693721392206051403229321870650729106036650796410739012682378869611534368655538681216901173195200273171294692993536616084028734283495727220263064270651600390334740329964712597215653986078001273067234537159928739446127891980408358894531908078921101101091195803157322287990625643851047357666315570709697437985736860122304984101667113162870442750101530776337616269881886760055403790507885908846917867264434016658678260406506402593493870076521623324811111228032853306972296520747109587332263447480498530756010617180740860938493440691476983234488243980001400620607979451251278433945177675396774086367020686148126473600997638811982346808620448117382296852730172982286768088058307001033905669272082680655839507316666495243228278644855627194977634989896483898794237559724612711594248799118713276414349457812765074586917947162106729773499446051405786594649908152151881927101362869212010159123951884167275608111985917093898269360644117340448199083280809725571693215091723900459501690457139959340231300615534606998231271768375772578372659742039249559249980840667667819271886904327597250950980165355363947204601209608109770317483325158551998758062857057604704814869324336232570787704221426517844965880609919745599751816042870844216463440888972247166479335524117487678296441330199665500853054002652492241379607129412145973031380622249556184157689491713572220122709057068076863875259981614441522399253992191308549022910779940076936544682067777034587488373095838725602661023925352136235260162401146312192777684016469838485885975596896867264730882610931428144115002352226998719488660215760742145681788169719207329203307592909094232684541445745856950011015782847365850181409058008309010979077474193316440387979057621512529703188021025452685456999951366767159323905735056282528331646963960327771367517867090168109984139765311606626296874118012398824742413278241944301227422244167028473306810773588567690042536720160669831161044034439141998084145663434154268918788262149563681389897111038009843002508642326690593828843619354847140684570958581577085235708395025898589130914880241234302666690452304957494660717493260189220988998802138893252519028032777459713233454049865985677069562416061148115886129279056969605367539399259980694832202928804100403898249481968859790836397828278708068804383480442070642276116674405514713054756013933632268884831974553746271945422354957331750898133674554062039428116398058705860017516322019285199560246069175780267482920185900390326729165060177671670072057010163130421634693833302144108812932026511453685382279491448869094340726164317810706772913885711369781170845023399709928244803389639256042155967621301000871471951046470553924676599958214937952170132582282435440726712183887893537751822664278683713031174540643539885599177384961018614146870744416044553851931000710703169954546071288603079598272288372289103737885204439061004066370558745782152432923612204990063888420166977503095761797992954500424513149311107173511952566197289758682267542738635085799922962792663732280932364617886279064788661764200350678423843090896265177679506024464582751455709011831435627050883968866596737263865911394321427385500706153400224207873572006368149036905228530009234629275050496354399541330698736080965191842987623159101298551639519160094954541816404899983402866517372522146451533843719962159273283804500467827000690333231269565134145286135644050422530835043484387184504615211266545840790506456702721101436831027955137101116939793693505892904741612520705461826590097133280326724068470617131865333190604717117380380455062040709574419141676816445562533740451107141036278920320346636916892003054276725456087878912810507122539584252199662557996845406258351745701307190985001702804743669919184951080245776156602234563151386749107717065023888571264882585084044693162436000034901409362261944750135529167723057797784607124258478839206239032290293975161044285583016178159959796134999923522975316494089543891614012497390477950110817839382672220296882725628239138513003262071869586539601444529754405831297420594820631779531046694870948526560904326922749918752947471147146760856053492804982928864886313827444632338074555454293932870517323075422660822828579131654235662256817973114220567495906119401401091718563953686426425184432601016600949450564159568160049067045879863812969529807623797213660042623630155668041767082936621140923180228174232662497803423401705920138176139239262829833628221642015591817181792476864553365548976235059146305495920180198137662306892289878577777290851587786960774370769603505372877626174363560781761458444602725342592075056268313401323568809815993239044084351205967071288117767264984414653030056718583686894428470742739538776868337850745175995712527608739237157546847860553002933008341998941604800405830371064781498771935061594910231422051106170358768032504130494172906007045066584033207031325429495390775530381851704160949179493120798272873076071775206265164096364596933156173788877341555896241503869308109291772352774993111761927951849305696256967440040893265764722914701597544759827945562858464846646405839631938865911634592069828803905678182441149658024668684241958415008802971398821926678912612686385074067564172807328717550977487924135254786155678496638641652100372036650019761537265539538555044537821079238801614047175478485721092276655620044152359056952615806163406048347348007622452266427305319793518514700181788106305144145859922612520908673632379869090215058194085248654298554781251713917287083345218079320264611756663200770616973612886003081858457564126617203936651017082794133593739052256287227660048893932963704605536722888872186505115988594697977306824844038018150645117065839618617503256230260989516932286446492813976071509858975235451007542264038267078635001182890580608777200617368354664441715083645478067006399532875050342278335822275809374985539093707446285507528289962906571216332913906572958043736468852428747206555558553458950488539919378562003136622867591726913153810740976134570771620509455387591567010114962988861725616072147503646207259288409938701450041966134915252932315649181686835516147552815604287706384692258558182846751329016216232465574592586845919746654726052779140961012542056890782013079164613016578621462637774282717872738297893710220724457291064857911907908587911369346429829537739307883736677536224797716684876708848486275031979372813924034518037660321303504089605898117169737691955089282895890131215679866654037565007585971821667080244257390259902423719919991107507770538018675505086936052816647748522366451751418491874854470464450517168133071479488638902300683045658524607655208945021297348569187952815121891302809437302711771196132533385825527825761601039386602899920611485732543998170781504016519189151772257093133917176579899174869593272600565007466120792746176330386929293607543330204873324114569324484652517059298805099744313629710830652718806734088343119766136770587247644033905126015650166716336613937612984061046731548075371672817200495836660971280486848038317828905181714831079090619211251944063898201757904145624566294427416612060266883917118101594293126718658866459000670790003626539672423502901582493290941810131608779172268932744973277152880158466077239537504071273645484571210283725403813773232637327531626252982027765484719289464090833384674509045879942217847875807475230618696340961467866376743746781530131962684168630566373888941569672922890136989225170613333189808821847921295732745656860610333956526439045377763734469708708146159600990872984478451902836599426142624177078603783891090530455787294946446940182343032443902919622442240100711280961672535357806313348361047770826670144701227019613373749462977226911064502120862919168662925337566698415209279388567629378302460553554356777226012994865530271916172021476595928161707443004722859220624085927607837787501658599524543455579925576364303605969952673024192949606082924612534858149981781446659409158021681836620772090899584339712737766652179908634021597814460882739816265059933251659238438537312901437374414543613829190628177909155442127930869462299154331629210830104580060288836962604356034754978700359214396614296061847899368624931948903859409095028721746354807915712476789224709021528383599167395758283677196482135262025207941688575819590787084948749925655714920096482128116334030756815391776331380300955968699747270983461306631120543373164720839161746685967942411061981111512692055788772593234331933684104764673407456339395171908326526847944853987328978645466802952053748146155866801084775887221301519682989121715622990896737032697295098797535508667978644177301635843717661450488263918361242993909826018478170145144167186178248845993571551070889933533350501664485041104932719032170353541717253841174508575152514077930607402281532310243484697864928702554534940524094981566050251226491167066807614348287891650388792999925442964315778486637600193476886609241080690836587922683498275562555306753373560634169441254290162137331479099866387120377519702666315943881170501981436003618588572898269903506272782861757704596413266266983691517589652856517147238821138250088228637993340368694511945323433318022016887508965706277908271782867736459619674320641498520102563962236770638149342087006904217658978947207811754499995975964134721875384480583257693555016360521224945166416568294147954725782883172902287278259295629467924827607325319226234125092106416468614191197516075616914920544634630009804688779884751885168351558926760244894908162972348434536711023823401901023985468284909363211934193000833679438586190516339092611576929794796767971181746837055463017041068628351823276122865598627336469318769997245289236299635954058878169372314463573643039540535412975598233232472630987773470405045782932241693523287044667306849332594685133451481003325087276011904795544943296371103780232700609343560515501994752245974157996836469271627612797581646506420267229502101375114959359344719433490738974737047989007451859684961189606377400700661945781291799334737948371327472952631729545619862060678227410763597455320908481828496397951207709646265569097624832188635484169192587575797543166274141934092601439107087194601985353303515031324523053126229452174277641293971746659458857175660058208940507287173745996059175311171343878497657462462449331875549190838556055961570106493011672539710531769223508269276975808482317507102714521082184404119520641375714420397649330824551254396928878365617742512678983235688202370761600462912988470748293165005822331326624677153593065094513736336148582435442289313333217720719980475115969379636707882476502609502156372147741146165546498240495767603045594840567378940369286410473776852134275445174012663336021960864689854525347318630582382336704768051549757314266154838946745334877643006018798492210831555405327993111830591863345649359161559198427741141185176626199904285013506430751112806992217942143743703226750994969978122884706099979522207470448608194901817037890713501969204443981822787444817211535272008019980256754320186992826625846158304188358575768958255392699340769671733896696314465835450902475112483281468016666187367855564274240877959314777770250485648503708564007986709722591124173879037875938275138943232432945486037817584179193137448114624624062783185917373717897405367196058237847374643253130744844822753337681393259305046478420734298400915224637938939501479610697300283491951657862941789563658834126808088312042396493188693230645402661784426809575739682626898127711206092251038249148443805806931660707936143145162506764486181459339606875683044247435164886755220689164008391466953347360270033483299974156487283976250532543597630315731508903349202427482241062464909986852370359738882506012221244323678596963085337824119390283296283911777821485989499822969835858541400559920367350036054446561900576222894390202582093334834560134801063434200995439401216658904297157380127104356017838929919973151441835294871803788570132787460538842129817217666648476422545787274167376895542291781519047410804586784623217465677852505056016999194071713223977311726439231413482127125596778352621390489569686812208656384932093765800519306187170052740235279536718715463993060927461943887215239294821248783674603365990473944557797860800430942280095945068657267031842252999477034104728116768842215705005042925163388351240105328012009602478413911353839591800575058377312958791955179127644276916340225059417421994427397103929179326716366977021882302083550399664837631323773837567691846358650493136695895883113287690516806386144246448209242037484479657589858646591093930441286857095447725185221887561488728727414905619866756792927149605134540934769714602566212067139189493241765995347920164349989349018428184874348152169569701099414204187414550501870978475250271273504485478616064058353367243216364008333198451716821108373663294653823651804865599794956902744971685708160576963829635164232952646280367512844532080178570981788171471308771787654796910012096312455632755072759561903399269250115626531856834938981619157099905117779275294741812332747832030487451914132711874779495450792473006384846171156059277015166779520802859343213142211124753909484037873777936409997646458147177865379257066572856816185716654106362653345044124833802833980589512375736299356673489618467179421461784443029997589254120361198142746356451070335829424874157295177943826845392455068645133189752974641298056924748040875653506934062092344771090016351483073685483781714572209046780002112400628178870748326665866005166402360728487911481160310753651708589823416192999037489764608206245732430149757800190892134415107325290316425061107977963692275390363162793159275768365016067835950154513235962500890566527506843296371916590036440042218441422632295842717539097717861732430998674485964545810035756519311559247101651777948870245981233784809858517073881964550300222520843613649027280140141848172624166314855236890271043173714036586838916598949962110842750170599780738037433613711374007886188460581572487040956109770773833106020092055100533172934573613243732965551645453801711803458579252296150295761393158835665712347788463513034527187718098324953310090791298507767362183782747676523362931832890253565601130732852602554652693559951593253199421907683688659237656257620983970372785634178106732491254903109991319635961130784769757589567429574755941746089277033880384286449109039602356459457016150894067270486760004197059385927717017811528508869231187820208990555441914203932910751843043451460934182378355072192150691217575230124424196792225642816217229474600207707971855007728185669158666715965600055189774977251628481584217539119668422475598868168086592894178041882600343618052982706804460932241657933457689282004851014221262799040186587193488435879503614845953400784560530696331894772666762879653098429708903630090493256806829567521350631977583616159932096671520880846004940779544259248267415221808417107303916824664811427401027645544539108649337147956872783861523519654412360472178992756475715068279534595275026669767641079056138931460251762827328079797417119780711963370432434108919005103522390489409052476047618064465757060030463518807025792203754200234275248762751191109970729274761447673415136160609290816399394240442083646031462856999772143962448325298553107090938396595770828143424640895908638381207427473852086738952380360194027119747360616862683873366710619055298676168513054575264339528333808709242164189550103552431403216342076348757581129450178006260193375984349372985174514208051761782878540210567051925927502101756427382220683358161536181009347697295831812764645197395573501858710253321543590496489541813180621436703112834867837857027955603901745412932843792978634713610628364086716576645515638510436364307830232406574871360714121401272530992127919496462175652678841179204002389896251740444537687557318848240589410513559030365364022032332212332385513355345898966687289283632323346498834544534001858671259087314771865353052888733869180546347805838354011856387580601507385720511693793324515253469969343923351770066121411660932105496155940982911892480985002584158260860497671347138539518508734256561274330255970947856896697977578602210008957427630114805586379306834240597110453912992256293871733424324572862113798284548644359210157206126364561765764456273194141296343158655625469394852675280263147605948028071170874255477912836086327008175138031605331335335846691904859757573546533763621763459387541906073621405489300135991433404052646133968614110059105587487846731291816930057077877287323213340928786281667150136301795253174923349444035928192024374806591933034699276785579555235453934238002297033118246020463908946878566211458690229753141888731183099188703015240482792396337385858406589407198893135107158412536725814324224622057749021596019598652897664801537834135557741962857385955272131917875704927669879015248055637756702616692145060051381541539720725827641869480181625449002264702971635661442089428273170513499295517504414336835599748978709182735302287432217813318440655760621997198616140049732353835215310989585990015779863633137243381093091120268247725642269350061214166171749145153229995481378371453599021739797874281713326447071855626359651837326771582229756204784808952296977652396568232599849845252712252919732786720132011426128159153157615215736841193182659098533115301099974629445105967502636305849533670574796700265070149571477434944742194047187592782530484263872808871159629123832719849530504539267117756116175827799435122646309780056305451988412143406805476664630266674115561339544184770335778327602837126222703150620822337218654896581554789736940064177125346333076398464681493396455758101878001280153290353751651664065027173678825669432098117092772703521690898987941771098355705208964561984248199985916150644533399303301335173181026409746818250162132729440390259365446985999317925942112529423856102188845163106574700361946630486789558123583717174310397409229606779745098451721036178751227803600759036734739207127879408113684970792437062513427107205964199398505041756004733501043170165589933721470983517114036737543272437373443703516914308600834154594230112016666049015791783748360740328570121721665048191499212455557171901882446485870315481266804275816548583795984249048336325194093180674964125552146544530266297767331378565708527960237622681919242633619759705219037851499362494365489941965076325520530200347460775079920732647083656153256265843399523996533596672727306061317989592028418579975867628512563864232181522286896796086652917230035273947448990563870130540316941068128320918718944284941359790875547681892873800563392342541968254323160728123784146137778639549372332990166182575635078610432416043822614564862815256844954447025256338630235258154870595985625765612600937297685962236060687533759239738679661346854024903989249935751416740666497187617548642762225501600953238900639605657907462031979461095812680428533600107445257158237555840301516529365070927725871545304065168376070606926184387367671217275125288156125500193678643442358849900781626713442918124909191632008994017316147412070508460899301003573998475230091256786880626383970509782546259355638240921625391217061802769414823060143921726983695100705483578899163752929102363321326212302863381674652179671097878392775414235425765592429992086647740048916123676964554670926697620610761637667131710494821449100386408811656929818156956017392385818915733548144442356766133252929770774563446257660948132775411224712053268883417043314243503299656964609006292510215409474811168636313718644202191861531624172234652488637696621184026003014648609223387912662753084169011305006470979499386075212178679820309421556914488801877912455327549549962407302831970581963535706554732357389811417139878593815532422424502943415163896842168495390581011072147595688714529333915465833773276397521735075221769596211986738307719438249643056963049299362002180575965376043691064496604041377319996939714942110183038410202526399401431803539798745132103398007920873634542268759792962237710892189963239398668745634256304850787625671155011209768478503326112232004048874278910219123523062067460224934123426989250651600166360242884054332004303126052108114677288195486152005103990122796557987606364936266503066634773466458896194066255266325094064841877323261820733238663381973093213928461611470328598346262215657171121815538134320640594852435988095956273457152102312521764443320960399517645078970017096208031960515592509088950989094854365662920933150932366720347040136845881871424580013620765029816943630395873501978838720551313414288116790559521816394660155401670549083261965878197273495477137950823900266862349351281159484335269154542176325504080656597324227232489351029716379459043303559741016233499898637118286943475471518925728653071941221446154589689443962371886887374382181092301975403707375959598750714787077390201761068419669976982932426238884645938644551022165852479593551488221538587113034341170016965295138598331861052868366667501811113120237122853972496170523131825140401907917138565363632223637648254179252698445335221226112794711559349389493377646527264157348994109525064300164302400136369418322373597627534018858478589859589013728354897940097131474449667618029295886210649361016061523842113679249655062980552230011757083128731358823647530813227197673250903615242118886320837059020714876328497526131473623351907025381856807855110573510679714116916685072921803429571263331271611277960169958925856634637645386237686055927910735697331902839860087743602978543317523256357782811281643782299936928776096413941499554812372230563930012485339728861745612999598210992989595975969305812502201525144205940563088705489588490830845634505307009901551427645624518825854056075709848019011375498393060374811089916459968802928162291150409490845081228494866093603958429678266056938198805924406357693286188917856404987146470616639845564647806399455869815865893502859894415967579001980756976297054026240745091202597998631992516271532645654033427890516375916195972960455545798837464956983010625895606218126142749544428416350754559611087188274452530957633649336223955402585737868554581862569425609607741070855824262304408333825144777729956740593836501332098296857668873927592526917067488831081304574829863189552779911583779605579998689245266188855097896349392579370886412898548287348285502216251593063665085666423849438309060733165497225894548705286332104707529031529928096470757869284374256969678329105912837322360014306417591649480419013539128185944228440080805586476222276128729496585030203831563933501690111372581592303368377674622498910519649617528567113754963900484893987899010960977663941424652181890988273434344372312639273657966036835496042158965370271552895677138089894495184818713466656215046714837070266047384341038498486752605837053965317415156901494865567348989359291195296374422010150114389920053893831384532500419677977582592439972226562283547621342220303619025039666502948117934738279714338701709060372372199430723208094306177596012364915930155981152643910099602167630074317182174691763448402423379846921554884526200831723555028144921443900179711410782618047602467937589937171121393972543736368379093666154533784627195267392150224961772189216387216715883057797794505168592607048730616869093730466319848350694843467222800801545368953898698887828971497001644157180466202925132040959271917954682041022612034961833314129719960041894235021369479836956371089870281696002679724429544761541315595753246630540602464536255760471757006767393385514713658280605599562932984688661927836699582036049219287725850922718544924606504922114510086130151876527338933635852470021363581674760038642687826991517063255417714905652719405594164451681006623683135208917956011578143240958126680693318967374156443049823436076888006378009861767750986552235769115549809371571628495127086432969942853690987286311046154119601398794387385207137575223840000700515704183572090151949235435009689174379806503193164402309685704506870650559927965885700425603991899978876427848194022580725857165185110445497254674451246657517653691097290900460981682207730776333191648684505158000105342770586183163613905136971591116772498024226710639627977767880251647766080091254152930704306643328502176608419093404606692807409819145878232239479189718274275028895162362502635778999666827610886195040667056900772673875061251222019518461838275613974315805629862483360148457819069651208727364733179561887721303710501518872293558571413145136596472015867147588605451510778877823271254503277398169152661598985141376650126952375344252522373997554927369428722444884910534380014712982825907077532941919039315314984025585621448223759291291018479027144411182353695486074785701786624288799419572372829144533839682395566109073299288617210125331852273467055802021395174462124081879753456190933622269782972692950818326724116602580879507389188860412381568550897226136032628722438664759075172919292882603294511155456904369139181940013639384083210800590774705312913845644202342284382912484350933139548227091772974493332978526502403228091873874724025125861456360772827536525200828110388972153695184990697285036965453545273077849216015059402485634219245860908695521258911433130466571507210596681638034019922242072879631447886095580487921795779413002440884717917618423310042516010840157478107311487926706417334019356997090721388874267581646432559206727258912262966412028965399242074070341218629121471525794977483508907304854086213302104094188076776766233205770492108321347969240310632538985947685201069301315777299721154238358196598526457309225347783064593301962855444585901710187422507635266174467943654625196380880453212946714992428786198583949621813559684807170194603241976971157023308479786292840484141423525852085350956092938950849514186008680072134640945391682085400681553883096736161907914130754210531267845937786063550434038502258732772160641219556585142759135179957229278587654017524056859322712296969509109018890771077576062237187843172513640839039721332066179340690867729160809365125231033644362220978287497508279259268000698309853378419824486800627206171990780806012947485933557159026646810813000660036825185374024572244317989480199745721316607561585184410385854093472252338858205477976706446648857675061827063714604069536375175734173524753984250359547966778918379801537566015134268745283944419658913067498471625285843067954327520818092932759742854535002860398103997604894404495756111851152635390548112760659331125786207968546453863140343041401711542479939416324150908761972311043359102386013407032772534140242090367632659044271456202476168618376586775163360201844006919018035120640851157047465870564033875351358298803361390817680460652641108119665738347918475232051097840298821057610057458724583255399277381345162913991822114360045550490275002588227918802722893169227262756847479596495853938513160879474865317713015555467933828826641697523881281514464253830148631295013422411176333434359986452517294728085246434183272020956456666764126912274649855234588155750954833720854828617392373670754717165128201542346994061729828314413522921577812720955416950268606255092530388602092696719655950719920953505158526441634401286162225083261892119783737345111552651439711988273840661046003784046656628952951197122069177419492343617122928767415756330020909440840800888706945030153715199536644909954412616827763640160812800645248642696271477480838714153233548557343004399174914276948966559801014373403485934758653977507821098516170426412703261796787331812684367036478103848327970909459527027447119609364015663929513551452510621553711044531835767245195886658976206501057990540792156085700875309668119047362488616271798364841556612643695525269948579510999270267221128536825341060492416828360371938770677168789801374739665202504080254616627516288664496866386976211545135671450417314453223389180369358535623132753623837142512387658464320213459799952999944002884395075502826022274700702344357069439279119298822259229741052816842654597192492453022118751257104725440632136651110220424253845133958782693701314373104653260711783107467339722214940971129594065083752781801464450824972843610034429989710412919214445873257950315554566524997626380761899760601395716817064621708477522665191024164860952417235895090745881400833980689076928548488055534766922783326926358319338259763294933379838078264718065611084703770964041338645227274570998327829036370611472122135469081087393830645711849393808948925258308132591246130878050644055471366917795571405026584374249326498127011165149695222704279963539939160798752205288519172531341125220978994231648169971347121586824162294768373577568763941145256837833093276282903723825340788512851822398751792418215347421983350381024644114435412572011512286424125218493033107631267260278520551003791380647718382109090569043527025824853049360789844089024186337791259018368693311430676561573737897936469896604039626090621275305238618169459522281553987163017331794146545249740314467317042765602429450455843007539886116497560703645880089431753371490652799890132952813029888053724784840291544630784870471623434053747769809100618155853094635970593152609319895761232317830505546070380306366350761838498121633078696495483262874220016814387647506730233304907809066765626922735005696649128559546148338349591334797078705902781655940254388867476865140523307905108844742676802084262733231872026387882150236549246032804170667807233898836297646466193037137110354215248549038674264499406529480383396594125106801965394500482169307364599087338828480106002758803714289592570364344111263536920205431588776506478266783410497062143948749129465244622968061303687591504777459080833102513117615771370387523555042571698476731275186488883690987590094108212584274043403744697769084346936605441303592628143722323810930423458678631135467893192230172537590038276797575977265535155088084443720029990558056599966514404843963580722068984390487878819719095302756653895436795941660469606270515626300374464002645603575658294095959257618138599674438659379368595811338129303671553956150587841216541499788257047897960432892366462719975888812601553708339328615305920656157661803410240466014986356452622685510224023983972234596860868093062011653087683112893545439064390384540328490670953309197033522275500440321004181631694585272838660131796317685052807921102190076404551574526472349560243945595814449312364490989013813764920690154428809133251729098201411229645090588429960101563858663338695378630094211415435245554324719279502905248006772254097135978173417417704658357617241858258306489320942331274080528656165622492342362662292724015768534067436126280802277172574640954388091792286342343702066943683904028610270582148797401599655824484915492797305978319040727983852569838363227776477168624895379102402571340838341413353592657211767222082828424336379359741209608257362640437655961255076728545852542188900478062586849728386459669537564534138542702720726573972768453862833804199335315799273830018626951354513488044390436904944627545908838495565767810232251480765303824722078093457226154733256068311167175771757791393442212912616397607266625973881048671653956667984804673107726824742127838715209622394411256957832882491361024816236717730810053713691279185908032535146562088538740168134790509473908467546928370427849112580380198285726898392337732331206423762242724324608126127545188550155063420092381283226348832895660218442126134644689859630700748423303352979863277481555244480490424361713062415108020964987234664954627409259856790373480584693421980475863876026227547157718135829531859089001378603256317031528767512267159902350329748900572733481742358276041936487442050595829703752228800583678264201494611723718778093963922889768648663091742737590592946415743321779999667131216842395202686394705998505143623442915195486816226074000619492362119713184695660293338612364909574825170040553758955565549644686162152149871027616182564111557884731449199473356513887054129207403372848136992991975791173834922620018820010519726774750336834449281489546070989494409171985546796429608901916577405111785980008592011707837636856744042291472019517826230218364658669729082476625293192418018324844322689536558225302980267661382453172605334214003999675851539474614041823565514849561664648115760464886592075480547901138013922438709472985911385295505148375036582562305622588911348433658390285569689647235822881737636681928408483908738656498763049028862295157976521690373436742258412131622308919535440927282073932293308205996982738245998897409959385837949301014100175695129854867778311757063947857620818263236573592288249131295240846716401672861784043987517706126913035726926706099916622998841327852456481574899834462230669903960869125670213376773119216689627276942952836391873718940302010881084077765932967749607372300482246608169204005653432912431343508425277851608494979543146361882281813056623692694378804764952746215345607139779043500353364914314639886784663587437518593269750713895172546469584014914278812016203554278099656773448763538191920989735148027580383007565838682503958805693775381835573419717502833214146558476270210368787556004303866373305772660282823856330287262310020067221327128216453058297216176237896367173839324493323375912166091524252476836372717339874425103712732566186607734382043020561243424424673986032713344873443412063188574386571250978045207636062167472514587867215227771879975069530121181654005484218957445080959199450270323619565245265254250581940962864110988388609452980065194049621863504630665122554982005407471865729514010636672348265392239361686203855231794857529077318500800283710254434108562582263688833018599736137385115827903296335261507570738552603844570968360272372467307541984097958670204313304161208944625633192170350674434336629830480722905839296100450118942806019204543666322489186500877761046716284303395883588894520782624353264458962917477311968629757286278296234975591462664620169209099763264343912937928063837834586703767734082668669305593098005575179642620136401736119384793397880494800245887525900501428072099013118744462410716456553189129083352876892854119919194788512481681650187460687460395199568456486103995541671651013997483290864276750220941730862980589004315108322227325003588541470389649240118223452182136226479765788912515426772591259752501084415033409969721327307233425707327947549450426450743838559886550882291107372773368511083656256136532627499899850287138161605185011805209619232737610035054424039560142473491868690370066666974820546238308676845007545147196731647091170353488672691926234122922538939229581457973017099768408839882791049672090734500395993555519232059259676105938143428736913259479260901688712205862289331789833275325474744902716208941776896147727649427337889609128024095009462328470889351313476250981257829954554837406988730168333094756157361729680717246369953434503446740421967194864147530539760974357359942812606835565585070339538475270510749759770860012813303964426852028215410231344778669541993462871398309948677117411530444061755026160784173490048162440528375663016442102538047928463725410966767998730364722937230042469268830005202407213794754802315366933584405390618662232761512151482816473206858143373617862546291955207737896589047076472199126937151595339880739204366653257016035379035926602630447476159390770734824610994368420379116514192123449226635962087932856114775075289891055620038310208297538642729056731641398465083007383474007340294213222679442467702370323646719037165645586258695173170885277162903534540736986793670234925163406716258379940370329967093050185167818999740017375846371070730387469737926422141248118520530998937201404421978185421511324501116031891119013108663952068428526934591370405391002515866578201864242699434944988299390993782946050260051409104556499706421319898953912484845593376066013912406002816545249684308244825707503439244398510608975018130914014053358375415607621703482138483283258801277056755261476135110779839086520452548217868552768483508364029832277322666161469465122750269311855756458284386351719310974018372810041940329213663132402021613603004816454798896108612196959644449205853239296298840006584736065911455442916622730074179702826482681007754294538422521314847532689468049560846176289752503641399953158675785731714040156807442540496744426549289359489382789915054882141780809934002099825692750965007622922757631909801259826141525701106946267779049956390046351117977672047576040516235744492309329711683311624800699747768216479862571559864034430045912953544665736821602442760187948301222712906214515267815318473388421753480322479847235253008985994180879851749494155775667283608912543225674834891291239977396387783617555729308223861893481644816342069746717834614206725305690072936602709877745904122025412363087673126636255535593698711447206999020354024709147427074112647724195861906302801384577976007707525232102832117560251262200540502819540680961146557479139464243663168600190791495142609250109064151801454270964038130909911862872825813815651245612814149173176626998592795712609834845044711386443910105820753754241929283579213326728076624022282473288875508561414147697174038843716824312651770039719333628948820459383948966443371520178420302950439921433761912815902377472814515616831265048026995912081827361884400307368267523901136648412045093104488325596963692977469244020199449408861545588925447415991426257134630083440839595410680134824124794898121451938254532789490348606005375386865018612207064604324478328787759242555673221602815399401719519781323147229470383127101244335280698236097377474089407649267178956089402626838324263626017006058316993112373749486076614905999210494651705691668278113868955509295831215062289282053064803378034967972851439889756649190764088544895549661547422544144232009238213336309660615846340874581902125104299386096367339992380374293590713024075412168335422063749127364736976582177763737197303960142346323726571587145373741652058650855166783432355907926249559044084944595348869148432387507310933708827706612797449021916583962060963865646947907946627363276785079154019535784388319425569474554859793460042837237311813653557227440311629516311928977451742395234259954270138936374911044501341380436980676624055965032177716827846032328294759522277266766178701064404622690991915428800570601586848099156789901177405768669804227556280850978202391874999880546121080497712942738234678069067441065920487547655183096488515080279288319691451829315150780641872733556320909069414866624098912762187594520938908045363046068801058479370071363185715032432430882765430614190289878135743827197612446366412106408321639916872383807377207239597281096695757508576919911012973696790463057039653219373823420271299512312816126512774743612492344207000612626870530980293894618677134828436398568907182528576785536515934965185141077428498509493417250285015120027507306673482164548916417738227635360759924963449987058565267735454332725044979508081982383676654720328879373900099913479728493855363769579932447307721287268484001375136542724892933474778489958324267779032659780515036666972560627186899705281500415330356866341997040536964413614674303160889897487681923431160666560757711727470638219101698189068903103376215135451778431888550082825139356252336250803307743896530097627907145873130987521508264303286934484835600887499946069972403059298262226865825974873189010583967602549386367219254217670534003464110423336477028660954027328489596487793270873949777104732370768265599550341045229892263055621599854828575533834989217296332178703848388527708735088079789541892196019311398871343419533081148303237644290869535121167773489049802144141295181634990217105739209513690681504760515949565865101111019526967511980531733542441053728224945059657757822470264379757770420241973650200831155675527562376256854363431940882922781449585014596330125306208813596568416342050345592759048855592833488443686277074103765108491663728366485325407610045434165623203860573211841309978030583396308471022839911619155983647335062602431619447636263734991804444137390105973555606013835753737879980794005798175165162817495048407977676816587837066845164936075019695914467626465927244912545189253619225867566472493047340485535156869658785745791041189620555027124687574655204560394082341605810179201877512224330180593245845820607015220987532512366535278732338699344035935115010773937323100736202507686053411783449730474190191972034480393453132826078507961083610165594195927409272078441811130338977671467948925640864555747205866707433276046603285139902201493790596416755800231341232736920005981785150580418669380899634765882344475302017402265241222727396955369640261074547434013929766609515937009230640594885449042286037969933683046689461126310430569443818691963959870297584835540162432404983832228622603453120975688512442697459226651945294579905130273113982193267059964898058176873701914834572232261280566537155088647472087628327975291703679845464574672789751006350451630622955037897364887602273667078041391987139337743958671620361971935488804413645876575541397858035872799167017974067893411143648937114627459579452818733291750696109317481795967105589544944879646036758451490865169729951473936103171525722114802647501194556416765322721772752720072438966079106628232077902791660071516684600033716237507790770034901916210727954618282295477563544436705408052036597300795731812156613280518680790737239060600956229007424067224942650988889409728558952596690615634549745530508640114919733925520734493158164860352414338178923689364490966116530734845677514413257775158353836893243554085520739976982900429257079476093528714134331815101592726947359717981876714803603169017258726786986549686048949841202594093075274461981562619120213590249202327877612400367874444053386701797812765225986094154344195570924855241319946551258384948498053396396031970315693848195069172480131198802316945971935444246452670091944737146306926315775963618169230992836521482215804322288887973658794747207315119503169234798347248274684111906690695616827971821904741602602074422478113866041529333494445280961439161451950495238213087605976823978245303375705336579514009134578558104043330736205776579847650185388311814846804737064363353650556449845407681174155413792758353959452658510982254426824300626054703314324469519086426913959409011939763480813361630229472654141696647360032842999397740033901503380173095969556171846285069494890699849104870551724375782862351684546828333714995545745312554905657608898100159589647550272942803142033869015197987314182187484414709224479082694660357842196881739083155496660812802359665149788860891999250424738680197008969575658050773345992887439952422038372655552816278498990918199901244795850131561300869002338495348751619491782399017826310361232757153477823753241824947193202454951628462130554240087745053160977687977379200016162401096319066802516764156268790590092212311198933146685448941998487046438305120005045354452702624721539957453805570270591967642206473483281148005453518491444734323764395155325442710164954160594067117717701775888706619426044959506938449080914122576838469850557763800142400802805247378857989106903587084468589019907765545314642819773056429246782034821525065386490370071645295041358816898532149793011962232413574934571617118910710353985140346200225293965217222701047256303029393759488129703737777496380454955926689494098596591288152297815694163426623963057195886212929387616003331461649702838283931017535400435865368509947726388795021003501615268055276644664691606493772705971293594266071122081907376249156503656588214955863438699195468530101990731269305091845917018343130296421861563794347918385989528583815778477061139484211000165241637674226137202714807048622677676262455979214871252589868622117705791321783229414139341418948316812804251157725923336586405703410615988133246443648793718053813087490260819084554970068408015839373128951581375368723837589823020514598838150533762515452857443835634956632660153563511787258132628031756876896213211448761132660043434184422725534506870221254400888334731462247466624242447104222567200955678870586145278004560787602180760143863419403039368529821201927074205094907076974473713696002132949846316967903661364365353705587164942703712732350560939304832393500375016162186606233288092077017024419465359823937214149068682078896616986015192263973293507867360199540935647631548069828989217332772104144021462335738909646773772615881163790989833802010067972905796966608601738191562884223488593793088129235388281922272970306692206931644435088675780623952168308840027998214591614601217751373956118602867497540578501587696534279536359907759306069167714139142782158855526056773214091828814034749759097830056254084152213336218186172736548844923889907716449484013401105913211365823299318394005663561092830990120258011655843748452543710520602012865947006301612187337471781925155919684442414430387237156927135917168735629955559071902219006411966215051527073681330573695319727435133164713429260064548736150968438504127672719608446591481386910706215029615516654644738966067523350195267118359633503490665905570270173286892588218218827209377413249623624295522271996903186475781942765058811065266787996700406721347318063595082320051171138615792100046697647701213902193862449416866838366188848497381820538269209947372131922918127005768611615647629699109772030338264426959700447857857506973160529849170067154825897068853431241942394658192730021537780654950831445315519117733001741298669228739838887421452107599230975284849843649288399489278115145722426522483931730244962821431669748975429770806853645409919755982717901798318370996340576393146277734828078719440972434442516244943976847474300373065398245014884514015582219910491927643696774396657922735633774088229212626903080980571058400370761708120434562146456344683739264023336876917160650494186636422995804284101420803596632903304346218161243075434030591366911014281758857575720267612398279135375423781893794713309611399347805591412305299915872955993761344338245566277541303926447350074073496779207616557706915101906441621217158447788891270118200827580528686041639217262070351560127393390456396970160728248008070986386841655900352230451614320435193814234101577499093831708617300049455428064083723212489498789526167938332148267185347087883561784895709398350811727525118865235729095257728237292511109836600037821069698372874925750176376438896785022452907784921580302109746977711250919101112709217642324781893654466699701789718410658969836720304817537297231839113427017332861992961797747392715178352128746768985504999238002447160826621509494338699132079036238827520782788940793551803297031733832062218703044034825207352923729568081602537992984469643501153584478824487245469047134418253431809565768846492723056847098043171422517946136091556643971174612788922765167638379218697354608329161862737869376420286295701884661968969614689328894648717961550186929400490995137609646525149856939944228712521737816165342255405648505563114802206441460574273971718641632202970635516512301117946072463595906524024611827522811874842091579660911646174574896888754158658343082653148110022766980249609121078735227224518502757701289511067789815817367585789603128928059137026913557295487115176393893539827336971932623624617247234723146265439467622464060811356967395703510634395230190628983586788008659579661541804324848342016172646667594249085440263865079047089817168478758802500022305358270338162707533317167073762360961951056279253145498021366898672936981144297875446103122240516538603797058377764622835418338402315431597409324626233662382348628112793569963539390496112277548256715391431704664959114413181176078496318496686216017959751467598078654720029955899403096989240874615038259146090213057194774052159614262914425933171652398660753425080101013907529133292244325084446105641963813762154453781651193209470511535181550530696511691450649143025830155760086014333546786936945786222593581678661858885382097096554762365753700617726421455902260783103426769017502095991899650705107498293729428091695721170932009317358869788865354878327338051164458674164270153162237971951675595792234156791084998911004743611386152710663533125744040262959365458576665548428788992853592579625761721678693461587926702299547186093884689023698598418076449779872452394822008606397812017332827345707997698459219733929819567309626495405375992422927794896660230110797162975096278880764010872380289560573780884994256473132807845175972410004183136271013598425831078225021458936026441642082725382388365510323648870899681662663335697693834170486233781104863929177844165674866317066114967612787282605869341985998684669535844262203394701826242360457524425007715952372647851613477783404338145938946236782027864930077337557638723348407962486719462444437236104834455235992542460671232064894484108455775677684610283100525437018875602786616690026660352926941246458175741289035413183849023294048289797792463626329476085149442414697279481097393035062745913425652634606123601591182382692696555340221686127189302817752679639556699486487466637085560892284393284356006963498847178296290039607039991209437302931384233737385368547308177037994858558164264173200189688330005424740668147956682545339242090435521785591771974061780606270936604669487307788175542951532575112850714759789281181728477918256431731652293348785582585924535145395879207995645340097118828833147215435872950921284176478434375874900584801316841511146871475540669512478133533899448677496647730941910482437157727045696864559366924084595100171861466532958108898839725224606938096541883522389485254862527827366386430397261832901395314159598883736145700488444877968973230187307328792193879291747583236565972625259985060090110903142008868177650067872822397809449306462603919836175583190589970012778140769974875906548693952939597295219951431174718642086110593552334804761776424736374229239491571310946360831471076613398623211665925325504730209292369168687196462608482698547189020887455903840435827254001628823866101635535809451106534094094597194632599178912308157846939338864264661230659029517197497526735629133688901767643235070918522009171014780621258536670167804001413589819779949256889377165056502458657597421384130076314146279459015150195628643323594870957134997767460646416242466874653108898244231690263379729315440275051630000884966978643357161650174361702970008263907373191997745783512326928165834311933556664438197589414333989620679233659532305867811587257439157559500103818940347157360806786755221484349919754062547517651199649972773782222336331775130559578831769410421327060851435598091377736549311748182136319550420886723436345379637403782550293542275823868441149163943019804210274824769537867669512583038609851521708048523369691200743407898274615994182380131701221532137744575151425483507484469771562039029637867619890329246516044218697003771785590031958732453586678128733222517290893365063180753420673424787438708250370997526495772051971051646496213303646805243835063940801861909559886864898665780724768240650956169058439702446901953883694900361731030503854522294908359518860301896379592684511954781115952954090503336422478389651165850715089937389133250113926838479659745623151857246325943780003725361246501291557143124240700783795330503594288080214771671407123003417076751184028441743121338718831062635273511618553029662338156039633155876328974103746298228562300626267475717593728915733962175814664504765258473118761000216754714682592825727897566000563343288567155137476464601522321850616484819920106510956890951977164333639009270305216696366972494328677115292312297486634138162104731846347283907537927462746442691993987488588614219786996278741349342029624154242778632106561377951519255855838353559080946631207531280453406915397280296410371683638914150188626583674702005952475771022125986170534931072235380349106285740371866899469545435104345194803072078271970976206506752092107606622983475651711057901456600535158674110027329454462759777917146612400415061718378800028970688363204157880184417289932548550685511029404834867294680158321922612700017583777896482960330213206510208487625443531448252389312770597295164500616793936026457916658560495461132748796871229309657811423873767464651658192369647817822098994224124955750264408934774091111549699632651126920710111637694355732876375397830994132900274047948959040940111836209886988702107995913680463388955470208818076983939079806006290872034424393289554010454579660817558035557757160727075496913154157110371973961011717351146027106871279157807717809067251837321819647921977678350348605784340260040566117829572173512300850525588839224159542327356732715828919922953289336762213951178988989879942028008879905383311255522274785719238131746250298171726181300137281052166681524318076174775366730212883511414687735362058148029782035162130547144423253911374727546602202509007917577110188166007177052336362418237109418818174372726775352975441329319160191084971046944578635966135632345111674604984150814386140776122168509853260287688711799075977367305253220657833345065089189693861375015923709256694087742919869733223004668037861352638481060914279464042076518438345061359069612901270944303361853537993498965316058442847803006485186527645759628203568267160678836768684013718737272874841139501771482875632323279626266332515001332178257378418016158879634719751846570826986961794863390962440020960537871989459338999481547193901601090356094507583822511395054780856904918362129522233491573551587169785174434117014365523300491356752796124182662788935325117337755580775101017704511948743966426999501577634382575697643517557392055158375331966090552265796903575988669076719594403373330823983833055690929056232498264083166064183989823507573771683844435081523965895020335316590620576001045931783417529636069484431250369516536334554266587990120722193293025648003581274150232221735221939283060007952473436604597413029506126241816077412151396741222197989878292752723524081201482411359318618734327012830235703911812109915498023476786178884108799011804181685601896577685285798381446659481286178647016780931035726802853599280441373820633675803962134636211366744072716328384523443274078940721692007924550785992278342791194442514193980391008760507778988315438222049648679219443429379628483063472121626068242773319240125430713779698322756305891406386947456312196858008967494538137289860350630804347034537086504596550987508407187084047139192448834252178701192193919770127199666837000293564161852033375567214174532554453581992570352994948453821953339604163147446219672330074366339940434519494810134202785342211494872297609398061935136032285380182590846480595949904544757423802508943543250467571948174305420283881814253577582472813879015610560123350985151057322073658910230103886184067190065567531045424228083022241398804964058673771111100168083298578141786325730362725506760752547043394455552983818463275445017400946828511074804037675107568993491251067872182740792214696645689700850173095202419377415699930677865117444375230575150232581141327265956478944649948550435316053978967651072233866314996467638046990609917890106199293489608819012481125496015121190601473759329225451289019535969294972406085463033527085280356682648083666503384113595670878977006808122342302824351042034263901227301891287617524066594343353314081677630237459253655512327430885553080980600611888205829583485934351551487241880845542603643281417085019152522321753919972736186509344677224951781648163915859695420564056154746990915539223616985993487557456187463516484270773823783092377295407716277586642623395151912860879304810400027577987574835774475525038680792578031010453195455129408456241297174538980477845774863409563533600224527402363932477978603908555586375183080571016657731891295254837546351604630195081253395921608989310092403076900235114598953988998683413401301733780548326757119893470413416488447642348532037966215867929142074402213644113444468969962496427547808903814305413126730481417500353172557246382190867507971540915588448018624533168272419763115817267767471935207002299703600018789906716553503980769300365747415621201583068740739315571162183132629053183782863774419710521145624574847482517978646906773955753324090608890209059409379367781511055341233461680607982632017114516593313797258426479957002240370386079764531610404821325652522514782923632876046565762819117663131651837082925127424917779275521414895038261050595386460457038150150945864841362802578975912850995538833759316759464129728385327947455989858130532367737736834392465181725262908474605376710721710251330100142124675866218579814470327968720199156221165403114688342521754379667598267288906731658860473190037649577794961743137059102616852045171620233578956585055191982775071770110151287693509670314450246168492602323830667972060540863321517994475563814290421095357605463463891180250423937062776380181152908238549729669541506982190453796424550547969382903190428788186964607612929795788823082272017508592489162084970379412246191200551137965593955592618315431336577358358051698902605404276781553699483815249716668082967115013264170572735171346699796837637220245445336915626593752510332470575376996812361830565245755846652085290180489485376774919860549809794146965701002249678111600243979118126748607850952350358198815361832820557709284940444671640416698744738236287454551219664399367737340924402862769405200820770253870868689724568906618422612004955336401709158348146701480629595532959305359991171132514116838101609400099874620458790045934669255386657793263031602324559116709099076095907703420936164394508932450750689041237395471979881324430280494563037907699905141656932698827347546865132889751704659229287481331848735831774313563465975041447157247483627405032687591511061341883714551764603713442952268139528891333462879356358921786797147197854733682348024427811153839301975275167620306860352724264255656520701094162319497630287955249810824352900475671556905384931470884142911283564123589386041052177884567197148775453797743350079519552297299631846031325605615958474406016482149469849600959895583582518248998306462784307941936577490299185917866595822845779211296216596923548324645608791433406959097790087548515151835499690526857798019729134926573722595419067382890367247441542310927221903963643805542735167067038712716267458394595723553652329000145589086979728411823457462270623935172476613474789422061434353171466242313502073940119975912883789254080532335260271061490676063264865873985569261578468274809706912987479713753926426581478848321217675830688401790670770718762591992917516928750477334324804299388273827309817681660656383472831345535363526846033204543280967892546822953913917583466460676300269273421506485170987215102383949772086471295620262354419220081198179085213221656354856377060986558203159356307458475413184470350904759230124265651800211783668569053359122537101368026523016159198822657212897637390101368104395630780910179734381291800570411519615973732575716886750838529953419599531060026215677644939891179528193885564875564932941987098216766660887763840454664021441793930463579295640211724806841291275801789937810362097027680705814534242180358245750157582476622197782870866918064014349808457278032637046003625798731336610994471251598721781718982818578048631102693025088785648363105212284242199019477655643070961882521610666957214632950204976316406570436209994380292893271382199543601679382184974199094667741457104977476893846249303772739926789183282675018645307764165450515250334545921834615851659478264438483469048269571596319271729875457312733067754323978846810919941432669090026047529247401803422106443416703603810172694484584254719686142770003372574808609853522587928089029597102962472647404423728592675281285924290862844364172817507587166645027078444614034122594567431489970426672649205295560403715924292899620080705461240679402848374078523097757109468811076548070011496813781306528971444579187453045349011536322541900518293413815533843365038066268989668332720492626470755889640885263824821942395036521010746910100510592712647801723049052735533271032452871330698522760231178956820821557394757152179118190556412213627371064130909605205750339888217165423495796299753245975055688845916917953541945572771249453765083125973700917805221347701641576943538272612984838484169047037832191063420937697280831001179817663186755740047645578067488812275078841184670773918098310176146267395796204369149565159372033094859719319645420986704611913506469335113302046907835046266219282618008789666517971560693320718421372123173701235073019883830877603691880968914127663102252128322116246693242543006838195545615510325649381342414348408375306022955091768017944855888672003902833061893291804025080066582434986638538823791202462811231419684049037781769188467404757669884205056370094955836312668815298968947160059669798080412974543104612893213991521599413208847857487341532170950545313919469596945763449915936160214713046704847805000946102421917138393634734786240711240258485243617849018939331304056642874096857519211671397824152716549319627080785898401678448867863269261637457049351252731936388937638865796388986296214341207705172712572053439138628232755986660467684236478473312140559773621707588114500723455202435723525339775506182054410041203325558087334487312026657300624054363514187649136450921802010085704485180451847750782954410769859860310694048429338938520370177048026261584658174711810852483041895597312111397269852606832931591000539366635903289255014270453411631357589115975494941460579257016730737902580920640332154911567786495108066227969264248683255970316958073436511930510294401462355157349702627777129873025788004841743455001720270476547106406490306439199344612836900997402457387062403361432286412926791409409501426593729816131154371155791009179215608217368247458872593416814916525183078674373097993701598462872472867414708967725751120329772331055286654031014275306259572576929773661529586152729461565736701786366548239015966047963540880035151789815674740533831555463994157347574422568826846889254778262831986692790207796398035378294236015760680855692096617095508236522167790800195665274352859640873874993802345390661229220475667745317926603957189582040091430588961313542636193166723127519980534032105270123885140421231421129042429402831807256735691662443931062198677492737570530689220449103137829739174706626986129323337330376321027266974311491866207742259260849430534377554684341198940604108715558222222043222281005719676005910568538626276768665831315829967690559977301542056942595563164768693715543336681983625341567038714022149221683265212401501901572356030656399084942230184717771591662304901068604778224806773448216575260209564826740634133157924654713299506920949055839878462636062086374834758878051439442244894420253525756228363982752719403668925002806517586191014635752063448083600519260618060711119711317084730956758541085476737898804346792671282365653124848883553292198162257928098023308080576130739664519413581678372779657765289499574885334437569327223640707816971352519236450504989322273441224178852107071735281290033117830297031682408430370659520563163797637977993782176261030799278388431838288012781736455060078949049765486574393937022715800760089406060565833885205166472419893268106930697243957199368335340423363082835474484306921687813705309118816562922206060625737809109319037771831504345991812534841518623084643156861883916101126049365866826566023736465966523780658006179499855682784553415141144503127197407984739742061629709250428809005952695898783597570321355610421477477752709252236482315039383436422389202328850945897566282333802670654493558928437114122704206255070025319162086320154587663738103021602375545118332709103068650489959088799298144964459702704904153116244469890046332454878267517964445448132314660627288796140908491229824370734644905338200948422152147887612450742941831657384765179278093539393445405022337260764769684302122662836873395429026565824401145026460357317269562037679675990418319151426189749746214495460683707843748418953536313847572558529036472134709141153498334594129744427339416677429718575056820965413858491722229587172497856748805586368616354526181591940369459637808726756960063240556067507378917542565831626127260134219658842532115353333768017277485798739226026159740492612769637543405550070472900686707028162626711544252574518474908426024070512775147594234630168003211692742257610916114897943342655383643657304759987079841835543541982009885549365430879617202779624071773668093436674345590467032432354850938992986074437652447026246209845125818959630031033863627256441197260289786566666173188766059265654021492232147847717346786059823534530085917529532261757434366575969914633557219005552245719144991222180399112258753273540373041866938228872375590861031261284916022268930086132085258163718346762421200508547077297340590176862773027295585774966179448916405447339449015947851750448464882834952845415511188952122091353682569711310949734520389702379317462565104121353640389254253070977788327050018662990384688498554643529166775284159488434427699344821714591577125556483801383415475011897484635806472795571584839737013720068792039290251077086938200367819772187654466764666961763885130501761622636406470877350811611203653345470531962910051335121319786230143135598463184391898508189728325755904854724452241170240344649015454573938158908143926576839538071850615696562874505814349515369693582522057501446416468393080685136081481864438633555773973280997681789146315190016699537511986714324217217255830659364949854503415130577061697549123111504482628609193109527914592556869155156741671889727067936204154859785719899551210713407787613123837634446953897610707967761796421678027807082300308977832964708614245910596935671547583564401627505484745584559117954739542684257712754315419545485340874824013221846124468376827135901048378784062997230975535526662142558344092665343364944485419267975113053552081778113562835924496728853244434980197415781821720886528097614956132320858470054502580908392440957381325283385703551193673436980313772555545323607176535039324691427717411586542158050097764966682624820009474459464839288766109151047766080869703217673275690742732672853122436752459963683663621333259300148426430778286374757708125271871584390951007202357203390159668850943529919388784901017644713021438775611054759068284880614159495844308287116974896185914464580494950127480528821095368257007202987934210111684750617209129087242928952946618036266399322561620477247238061055749585007271633090363207860600931124537215051655792950674255520328477785296091557845048920995494892377944324476167799639148583807386835937031977984514797055090348036558638232480874781987683453630030253021511502703164747608467876393484447287604096524579680499676880234766161698210354528123365275752910174920388676326047832557923334346290418779476397357554023381290372088470140162920457321919152600846409650667721157977766426622168875271827000899333780975517498319233899386628699398796935351413465427997333114037133351665872523584332200505067575949839423691297215463083073570840856643538904616230575239230588090352514596826294417799883508640447183512758741999504688055774961173088144805832168093817863176595515585387418148092840093514209515647471898902519615751837601311075460985241219026107881553051075169077872070667551753124329959776496397810748642041232118917164949456856307152433171448927033093903674810173764133564929218193655021117765724900794397186617778529198919751487402792438505347470782546535274725039909082299825773011742676224133032502896380766043650548817576803250613267926889152763901411412866688740096461045595419360679489958986900702412295182744200392880806108137101481530825865661665149016607241924341257463229306446932329984938869916403093090593095947361374818007329056690423828612170616723736430436795415236916921607296500276856776214809729202197781847194953301101263705466312906170932484233315822199475627077059174487110530548646645054985063693624982637137865747594330741077733650677005105798616417988894594015651518555974458505293831248527037108397003069627901134413949318920867449173701433126293812439681080472293171687628820613058829464728102949443120948628532109199452254170178373104383648629841932941551853416964360111628945850066976032038097680559271273151664021946584901337595441597075752042188271147544483576348912094271112414780110559837478294593192982573804600598311276325447064439593829926733042315925506154199496851637136279921127483704598433112093107214053461064951287479619566896117342938292197593412230282914048868410791019187951705861630899080321186350858426671216133289840006470953336247014579315893689245405275730525654600540402790402321640918770970584956333801287413036049766601743641189258801763656823700289257244616438899953680324489719237294502144324090639983779830125532346499586263204948247508178766289261550504823316793373743009635071831416589492536649868472178919510109455923078904263071651051749850674643248056010615468627796493313074447701387587185509991227294900072037459745732854159756051103983803127712752062389345369608579662080266178105020272516532196969680137717814169262240689828151192049580811782436233001411462774356043623667936808634195926097209732175121123641758458542069349099275228103724904473508169775115234219307118018156213782200799692039672145201256576325441261844750909828614912442568154412473921806167313574058200765166371352813397858979215650849853636171997059932044175729343635603942437056776303885718673635270900350528393507373492048245509882789379470527937645357092051075710564658841040989940314800088909139770862540675648356233589520245317075690093685517085171046232905984121398612854307606215763072617645827389497163085909405513988745422971363251440907928803498978275232875311943863954822270594066394996118151705970748430717302309233217455719230361534793153051036016064979317048806109757064840909557052323311651933108471764646167912638703237553344508913994445605178567850929721975187963610747112243666410989763273188992623697662284293564024284096983187292086008909158660358715377240035615516109867838789508730219558131473384135881195236103671668672177056866451198557663532750011895621551441799629908251164921513759618929992048843556913883792262933947349250846754435420000215885975661045894243312194509225098029458548619247499425527147686238784478287290711713769066374424093750547160776009215643993745182028035016927232324239053708279110687634461294986980975170442246083209499298248985426661136124776764572968156914126171757175126175964217663412796312942685565130669477576300077101067637288243087611271640225595735724300167148907030849766884125126354083214913073050430403422890481573690735584299070955129466021104325319205892370744205566505635688732534059313183779290871922203041462092028970975536898863170190114970454340171872642532099752589477057993827761155666266330189892195853192338051593013223498653416958475091918131244644964890876209848193836733484156169227367088525102747104283896187141595581254288049211557833327271595756907363154963238719440873066881421086175131407418259205615882676718105960503611772406733198836329379471930132594507846945408976136875566022255884628536330656005548619864802638903190247551904751873357193602265833426880566952500309969044898734282730802736187429891583693816818045357947956073969646724205512426869446125196739326444042246778758814629400794680262071951569366869655816639829967572781675178352768538414147892619146969520894137767341928526495144151140286423741965639685772390073917053575941600862208728759564185117793647153821447052223542857631781799763338907550631070796215191879679088068457972260117020573297768890402541615930710788093072158031166277580516553521411969114971117220477547186654173238988815919789622245150195951604740630088958600216900852782043818928527778755624864444419171602717717839910200175404820736920312002186064847957961121162898958931620003048182235894833876318910852742852487629622870181351482855601067619212169947057921878794000704590716835880954953205414273842440285760690801067729327137913385946625972857869238289158614987790839927051893682484983564499443961362740522487127044971820202670645496935562705153733827700809360032399236202306481622677598174177740102380071608149270628195581138381021807313371718314907145514555908437684414330165699494831995667806499591260604308433015885904544294385740750466488347933943922811583638768410431196155914841642035344076766304504010042159890930678349291927102984586950083956832241632214466531429168460549490914890105647853808325306033465108144085920181456904604668474653169754570623146721646495235243533165002083620711851657758878000174505568954602009553237260743855818279004231149021700422685562308693939299046807472442900724059049650350500695124095806973270125940472879634735251527064763978690388957462359689749192989022998515294316885903821811032968821894558774566826845821878603605273092850483603373758606557072103066740578231193608183472264176608244222821819630567155597133733639193707786597785194987935047721987235262078249009992333083677755196661409558409688263901910109846550568508304867841711144935535132253242707364291073315629678840453815841000698253920582342800910873655340835374765845161174733631305789868418650173627345065323590416577364913038051684124812500477748695430702227361690923507440465744556697388424538221230481645322872374459218548951861729268044053257318926716768949895664095293270753591734634851108007896543613855259052685721489353463753005049165054858491644987627724624638294232970113080647585274111564577651696966906197323270690991183366140750996476598870143551009860820367249180671704689272561166955997116096445068643149041722416173652711223575823035115144811487525254311314091514824655348717292880587614308861291679641297208166004196957589253159427445984225056399235066647715055715665176940772389169512853175113485957685547754108061957098785874778276597420037075210647749151767030314944953142336677820748043546448704307994668954194065285172084631480107241584710383110111133988212695522813735198327321432839446347710647267551230433801093209765014326092629232955523273887079844365465656094654373135401490923389721607050099838840413015380450958444346786510228001623664082071105941346208421228081141258233399966655269223739966760974246626812935418629944108951841431628310659380471577835506731490501304270382282235896656013820960836210273665310604455879929318729071210574271611615133963953172227599937042836816462981588892738361644637003980130321346462218482314275405449374655160594117211986693440456814759576420706652872263772512180104527945452557469828377407677009545129148688819373306646067135682637231374631388838226628298935324992977657124947288880726377543718171092745845233913021962563125175224980212564999036850798475425924141297326224530550663694213252304680215476270146946166254901200451631841741631252744026631573253969343255029005766588872693891908871715001182659617478566160815537942329628104404099657504849985140079934173913533680468631368335343560444298200647651960269144542001366427276355302943640986949916048419135075659777484990376600865936994364150504197806119369176148035970426897965781750360613899638830728396462467132998907327016644361668431898207339445544129170126486082064337592859432788565458270712935067747283394493895906213158318946629511876418744397157552969939289011558543112169958198585299511935777831417144070859482071156926060350464176452817076998874061356694616775123725248322635567630884498853773008641423507576111728642345153706568890907059219606075718279270806563400287809810360730214392772376878922764829172478848786338612724891118592084282268832223525167297116097060460922302298347712839734713049011127917442341926610969253395232559530117878469533025829069093149765556508974178683375833485019179178139466007531940274835117088117056973676742721103085939049102653995271029402329853398285788482558728662006285541250297061220286370959245940007400833459687736816482429458567674471870307343752110875175832148061943148588751869224470930686136436217111700841351266589375257899028750416618127080079975343496589109339978707051582421765170150627110536949390684678340389146276614127942268258751342432127478968436093734596534310485469047198235538965420438616966216428835339117849534677798150227777734832351748030953893841124879478241952664012548576663644393011549931268955542106612625394192603678620904071433212674953921565893142402654489621167675968762350365605790354720360713181938038805411390329285595115162907592753063868796863622841570445791544649274099013641161481939788826880566420254074065952159785966471515584902381922308269405544594982344947758687271168925278389414064675361654871250996509402914648355187600347207901975608984485540143088130126361465261330579793903384684949890983187348441014000950048552107796739172742747079438856909353254407856084117775676802553450265154064920260127009251702038289538186722702815876507760474952254384749518924970521443557102405516513118747620941812031598575486344492554350197825132656675917689941461978316018859737678600842672521214654369220098381984605005644845741194563530611399754847957378102277489143391277022873936209732823815300226400629987716103545431621266909175936253720147647893725507816423458882925314422387969197830751230666803351880510754981549620405031288539169616269108865647844857950410009030132755383107665673234272769864567222796838906919715841906213847996248271530897567677982721090893212743133779934347039936641183745323382959532431787052910527895793895108307045832885210047411382853804074501986672382451402172530233478272471165362306427103733951647331771632892867566719425767557650537410275410053247361450501718629664825793723219238000074978932681653870571928923690864839450397003001024690072753109610411608163986920743390347800827670401865649643124007944024136399157383116863959200569191774880141158091862904280222357357278115408245151157969578641488367502823455962667145523265169252663171204187849314026274335264148562823343229858770198271924452560936679409494206132635892528184104825109793956586776898594576690013555987632685052316825621407720179834405924839766105083484145678918340296001006420424405546158433799458351781025888903850043459153404681249298531027926713727621700689744416318227557310814654126765252777872654969288343697565603221190737331049797733886365866959143667458781432752423936358678814384596360753492186854654042107371860474425064424687130779259286907381663948283592737102102653357960371140729610137840848172940565999577405673445150411252132555117866278203543444775370901473021637310292660490037543101797917262085876205569130366638631904705059662562323947061139294652982058900265854181574333356949925394658961499063365670987192741116288411484389293832750915764716477565900288454018873119006644909200758488740428480690495256853698170124411557810578945673900544221175781689470104029250874082469774219215540137910297912703616651070211084607572126096431929406585638851400710065127287491519215599361752333079596067619402060935931660611851775088146175043670046522714965791752308686254733721427141308233223990971239560126321192021913216843754806940699312542127057881069289634456310534998734008357812719384535905886969187876812519472401422892209477372350269275979859424840528549502242328514516069472701631291184765792018756973131387173716295034590747051325505515278633368705606157994783996165723511822892756105491476763809854348388361646262076676687470605424106507452070269974792162140775257445781797412647177659325698763097609152396378742143537120297307914041777543114930750705970320340490955202199698803708067953646990601271240965830259564494266057056842257515289777396359576857986144749456140334880146335943130048301177845659655051865787121644737604703011512341714791899338946359333119733917710029214814834085241491907910153669553141070129488219645826008002193236501762830187006004950067618972513127803925272548119116464663436446593851705062190462361084440745159750500338519564841581949618014173321725393401811180969639317641063505679559696994417331690431553626274392549306922703312021291002787555081674023226300411961858807683253083963392735798254457886102421518587877542385100785160316406443642450084327143904649616108913203375206121674393523796621786459365280126323792171041000778581652132499927581300777480280128199402277924416110815872735180800271053168938831418514016824368809008960242857877080172760244794325168472947277017644131040416513695148166143207217089616874605532323520704005664995302656193255554373015443682027547495996149188922611142796052495855454864831285570704174979697852449278655252920848376034545302003584900176835062002864565825290438092278644235809055861245376601534627632049736760771280371051230681537179259093916899868619477647669329155122652941766099949401166320439286828540855960045442266001063613603292561002781723747240702361146787110069867012206918019324815788712834451684778252522423577400666969975145873995409588561789670377251878412533662395907650310565027980302923727226804003647521989607812704529800915374562779509767122374218896468053710451728930938879945412108197623228232149887813476893366444892601660857175698036281457071817815635351100388430496064689850163100838779388536339251437791025866663708868834438835911856591752570012205226170142706136602553632125933378428981023400625054131756843335295593411060134100170060915050003841100068124626887125189810908090964602669827386831063185907543127203853397529344258189648358721357420302839040165181960884542392652016483337194790031499023602430076488607138681726766586501658470757290229889117829672421782180297532062237887550493125294079216782179963869922066313836663191924368818358442580173127330488373086587947725210816285637797785219340875385069015340494830718026775033352500945834414355009829374669557817866121826447499756965610487170980648907938447535024921326767144297470725978747529032253393376325442523733333335227681441671423915245758516422486102925652595692642483607526548291286109388831687241066400866063210466766318291654315065153405249738153907845816673769110420818975505860078844503272950156704228944828983779917407211383650135091749476317491722356036367295201598605523906657950072402185361730799222126398835336886371600943450923774955967609684861183502667499336869097935981196386351752288768531925800333562504542559842322642416059418517308995771089747127840488947588636503576940773258723635544161626682560268558984580302251363056684571099939690765015613000179516118950505124452363223381095323318652794453248643494188490637865733881453492291385690886900473000915871542264823640397432372471427325451257833092806711886505070269336943032760912043594702733504933199329750705889655620650128197403301945288215739614262382047757829277931916782566523955712678969602021483713443132536138435768688098425225614584417951930304982092146063264087662090565619861702253401905677814444127428066424791806967165509748541123576044717081351292122084955557586687255456781505444261639484691307996011242637162903644032646011859444567863292962894063548016794966224814676298632419697413353126067243174434437724922190337108005945838881580724953089211087585810449053172250431906859389799619885257470604007642876339463518610134338268846517334531593539689765811756885042163819712225788048651761581225384447558700489828230684528749374083080736753749587580231796539640400838255452296790538534957146219928143045874130548129093975023469550269804692131317708405149069758407949398411260131551630623638908215688372061698095029431674531234525009449507043488463764767545650391227903422159616457298030560648518092978985727193159281699410768829481594915684727506355545151489853862131146877142061657598312700849652202943673365847799750098230125371205004430788595376344552083621269300190316516048991201340646276101855828620575336694109246174411220474820833847138796227069409518715595761125811022859208691166922018406295744468403575774964196957186597062757612558863547772886594566291663047114359421830974058528896932080140458238590935828333536375608139590950976836871537489523900116650690827776377553830831727589735554953638459686630426595981197675890882844446637465080670477774603049577160147092110937349077333771020472373391842643793380525143130351570701306898068788517650232833341234127027207378502393434460983967216966875443290088907295544113906837212265305077953602426961654354523788821410331984058480074522399133401514740412034943033515477019082918986807836164801858066016074399084208820495288502127456060156848206496960444158147622268408830358617737341669770434981432542811685347373407006979355653786516050742655208055022623012793158014639554546686866278796505022012379582276688851309707244351919512756766354823821327443636304793263240744454034657478489260507612164552134861869524949472107105737992276860590585059308573384657014229106582778654245998081317653430939434073499568158025233424228522884708270574999819908313421459746427586770149857817273040708239661577483804201784253136986621834104997034440665996680379887691895341633926833896727409730250387576338868707578073464901343533825691679820529359718595821187469228119382277920000314773395175716167842726728811114042228890760723746156768485040022933840299020985383285273513954348262310574087603096126258135222779378720740508354848168269719424562959985962609052380581870034816594692732943887420824102184485966160901910783757776250294682957503667200993388602304553311910370444101965214555419845355860743506881505317999626884130410520159336432192953459258061776199495887061364582069033057457310520521829985290175146788050716967359805614862053248229164067796901888192715272249979464764498090987648711821660320265162225055096030963544709565707277918706844751292380337690873087839798025127907117443039755977517069076727144385382960010819475684246937585239084393185310938551357507827732937166333864700936381775717797026951896162228759355513369526458817891840611354716644604197372295567133101900576911598099578127354610156410815433874806509036061886791656547330512540129221270008411944550962960277348014548699909977736224406513045816557164756682077564340016378092896577179038109629013029884935769651872578695683100796099253571693736891838970188306785481793957568486697333292229276352432233313035785093883301912130455166719948653569444450353745136688187219537858251883812158961864299758589306133857344667726758508517326425028363887472589728718549087370930736824150829428491880112570971354756366127533941876370439928754705783138038960951115030484319150852305597613301257452893436118313919146822064819422585555231838670613428370843334992884545470400996091504145540202140616874834240871861003748660473622909687608551389298020867651491181524651156287404846701666342237371050289054608298559048105118355137576599710348346928037936779396569111285060386178285178151658299516906402959964335614425982480458795508774388021419449362277954519873960471362994560647352421229924316804567893516786199876014300182176747023941072579509599442771693326096775894908217172179842750318036281642540259080153122342235368640888618956828023753195857827424882104148775227422513389054104568945976755619141891254121064660442996600373235937163018433722604698746637852168572229345898089504040664232600140527438640983037226278271808858740599257914855248314375832446843048496338059157724622985323255060632885806362297632962685715119002330062758796743253478845363507982415075919656960255070131392918769052500165830322517738580973476411688283221809397426466851168264767944829056632248997958937854735009787972206258276684290404918870395420150143761163439278965518463458447751756510150721517108576989166471479450990481092190438820403153632059570728481153885162050913899981581981664114251847378433314263464931300905141653772191537908736190332993620820653191930941508741675868882241819631082777981947810034141058026421393813433554184183998921969496727600387297556582937985259472443668943766100567929181537956852179888544728934165920888883613189686319434141895936170458672441794465301697144713775909925162830607955025108718151558093470558104812412863313599753575162933735525149525576350349087541412808119917672639383616684836621938317001703264918692886134119557140373195636686019828536259299864550985392839607296560610480525244912241253131938800018385517659083544160275016061313281104304122324554679486980440992020357426585560202534384103002036061737400917282203298554553393161658147382958934862375121900358756868785451158063908573884348681238843294203759672844842590466524416258301952563387144885324327800639536077805816505211563186147721585109288469977783270011861470906786776934418715175459759793457259545772902624880932417294563675690160445025305580384686762360330693870955291063159346088192217191060189328871368509937727290462614608882138334632084357565908787411523638160454478734264020559749694130078658603426847670891866814862843417877631175843873144597585300694801089183766419669652465015907779496587238988272034677786705578467481208706836805599736001152436548757261368848660067704793681896884637735940517780950243787996499235606538173802980767231987594407193314128470996579692767267552621393738729333785130110343483546118076912091958974931038910903805264519023877668598542224151014694463018938909809649145794694691200627387697158153021196107032892099456050580830634797323190110084725807143312571999413051948690956017081124549942883806128617498813412658288493540201440186564059669149670538398246708798276039944561411230494555667547530590088995347300055085830465208002537230902230106744231325807263890876351057103742153905566415257990017482474632889478823030670680925949802924391753426073582885070569998700952781239984769652190100896533225595915721610281672909429396071330940767657061864516322075290705913635976454318402877078410480820504298225833163440818485542775348421592695021590255119672198624972668741441817738738539987942422298492372651380635337700331160821932415715900591794761041020966423050061996884949623707815706700700137849804601717303984042419470728123830866350892572641273958872362182889921992779957384871721797183998929017889084381392493452213001152783118224837382771151040973222984053962925034222913945913228275993859031670739826292064985334954818396636320040467614536365970539260107511536299499990248045415318050916656665172846413225358272410929359750503031755571625015300273162350795566783154003929031372472648183074424059067575846974350704732675167635464058838861382484841579329312373497217838953736214933204734851348667093732639256220821634214408352496246222671776739473087967709638286076702924239308537564353628041322801056554213717858188246931075086270860636388216549795284103981752334900915938320977244678995826037453091679382732874942540535940308274031647145661244351366348662170659713131517338626769724732527046973685108543002283718063845318763908456773646955051838517522915427346266555800037602699524139782727258913873242912988238308289880317991503213283454878128210577453142861875419741556254422305989882224827276082256216632630478135394864554475490050061911654326161024531624264457235801025339537321845202894816681290345901971969141447569009719471968739428519501120710507192652662175341536690052525766729277265388446590090508011833849875656204165620925742828922855974229393368923696729699218683442297788024374597997829216305501299731019632784265119832828555039055342242782873456053699247120450844877054066642284372398610874641254800936554200625278818100938909905661738496555806437995846526715361238662168862689212175324333498626870335391404464975241788503563369314687842660491085478984294057011133126096849105679417652634240191312773731821948321391649958332324739353024920274815181028465657094967221242051971827667454931534675359565238433571589958319618971453525406034758231428887763982850437167722110193313424600228682970634719345049660840917920927316283347941664070392801542192734434310265345675825982623320161566458784049218998648537907688490326831882955211278235726011883959716507739795278530393921940614371302916398714553662958181803300509066529825173895762636366822360395781163774300973619982073802017060869417685611913003842006124138136093117400719671479740670569023782931289750252409720977810347151577572504228185834009386090349645406261585622263823384749735227564782018205938837423790479916456140623652232365253668002395964626142464580008865051962630789368552332400681651204814168291113416411230122095451023360887961015091276550450547018482185670366090307835856551474533387994197366090822657135522525226448599935343393502215636849622553443617322875401631920473572138222090875390592584418231922055919790210335844297952314220941805284452392684668690430956084418492876267511288845093547405513092571541451681922027865680182862903408325628757776011463654283007881730084465025678303787900322656212142043678865773805323145982092839658266551512051488469381617157227738648421701245945452754296843734525014740343637737923630659852575700044515149476771616332543073129058706538159694515640922506377813062231243860073892706145137355578994778306430525125981502467195672320741056263428277214456189190743926396873347531600872654547366985450301433122296250598912063844224209649749951519612618736966871572574285055015195274096841989012654273022793151834378545574962337992285909942048601210892651924169210944756838294510212105275781582461639896068698074842989669719874412139752066394500463480927396536435755214944152050461200403688807470134149677346772518295890166958034781584665298777619177959323583219570351565674169102411186734505960234737809557579742399232443347795517990230535885354539730763336419872067140065801666830726154688839118053574519638662658471089101767260378342001141808023446552503852624141177388357200974067982513527455634339965997794247216291359678387313978223339764967483398899348691978613407907141736656917424018887535101299679897850491738158512287302465160015084612634057302213332223103289548194928035500658563084661239851958286395862716890670325008037048530384532892700855103570544365677742528504369733743811720521441663180132882671831814766423393566073312454824142585272494903417585117511893991921992762820163977606387461556611297886774537784947252756154047795658351599526274425556177813226423793136067041378575957495329306062900938833346256132954536615771673687877729794784393751074294339991727293343806532343132399555463152292847547437303107482118591547360519688479569915066802200438766507159658907241242675537634112512312938460967548882119750312220714690038127004448714155163959313401296104517221113856667366233374640070373736346168229779637140351118459941052062651551248857952222904768020858084043870325131173609993602829401712769228513735109716713753477064590218179921506526019787238544433149682599895159435863585700371499376956852594743659650951935482584862251861997531814757326235618316513361415264759005255974467654974373202532874998933496072461043883766295290533734508797796764576280409643521802260764816762027494121053808104439059955929742486422905338913236604855668822593329433113160009210435481797783703481374480386232486807711120762193888961169978402351969716607832759383313075280977726339790081510711791664263826449321068653010808383063861531777043779678742210554263034637699239130850909347685681351136873791498115437161505089310274483059009149507558094816562041148123247971303173199130259630249262465449073917859405029208438835006586615180294323821573143525905441266473490043037222116699055538376864753877391561101817931059681266901374740749675892991181935142169642793787588616185830618724480795990185562866869626295414267255592385631700303232099614224287453693718612318764108128936021037946633420359676577492311269790526977449115865432031349822565162179584164193667399359748091428526765174733089241015832528748864240201620557509123248304776213762887118959236986880657418969444531130081038233182734669664657387168467250155693088126620530072403428339492218986702381803100078935002284976782408077079572897360589306862046403042607002663532000300186090143586240501586938271340141751695509709647061538584562465290071729152987287246742904213104088262535251885779856018374292290566643392933809061496939308635766896236162454347421970099159686589455020719713324447616737637977082540201011187888275882121319516645833211383138622609691487749845523535754812166932017974991016236147830874668401778083562324383016068523999901388849863607790204778125013308166787330048082549411526653534948788791161690127689038203422002274485175594412100776587474741829841201440094486544287142038544844353252153669075541948180362244338799807442693733038018644801986694489453061351639345827363379019332620090752013779750265695612739613951247006463240758657228991020479438935099913747748623814786392283419096038512928161013975144580015538972661775820662212252414675333904033565244850634923658020270570840040612311270557385156104631847135945121482079008906007135424815004668807323725731838404253445121322183999352835074404400210447605922805386997485488521375003392963518782862403358855037819874617019854333489781610797339790793455163279585726792736491027658803331442299238556503836820455083502765591871073276704631491302614567026124844374309736527709559070763054678474321278178509405970105761253669658573755925751415360169667177255075549138320549637830649514357309267316244361948406906050186358449911871285675503138544865130067334335132084051646330542259798014289097745679058708753871676283388261828899047510260902688831566335586487561715826509779841340822809750046811131654181807754205508891822217097727789219507582248114578158169819369870172678338495768056337457414968069223826237386412131572949473916576047186908858640520841578958499252141311085171964479657949242045802393314485471219524218697905369999162916968118408603989338221304358925435110603497781827324430853029491756454290372216356927286040036639734384034397665375263331756397133721682196941653662732788341871337662172939795265682564554476386321623161967265583622204903221544396318672347767814690573498373064664024353143590681115384636049098328995843155651049800735258965313915143888713498419589699608096066218703109448360130707325095519924434722533666624984787781907089966930374149206304604619467404606966837240176240810472856882959492771353039367811599837079855815721461798676654260706995871591771985627999738972296779388421349755653381197940041235644147766725420659886461223740993870738960540561761991103963482163017466918021495473289427847001274311337987223788291328699619320240573531219429161422516181575695790231753817151373741848650078782000405514504352128029414489092314165309107309428571498713859718034259008327459472131230825217212386120230940339116699483088597646944990145601838507317444359666034384767663915080647384549216991861893267763561631890581174197075996960016049849812233918053294960287463394281371444754872309551903893320988029996071436237843769379840453719235441746818578696321504282912587321270981250331580483976109079735404093372049768019581323756981826559361813341983759900216868579521519363316327316363032118863243418477106685665966773221272915619952548149010661436622539719882618310587884199390444590119744768345515337825448743625649456279835387054494159041313750974638498066647524794550057789972971126545244630585608499701971286583636213642745486914186630469542129720126846372988492415232386172440770029543181752805205131449670909897283341061271556293471474249724555898980446312251862827732424186934293721228752728023661617400006505391650082650363593270988285357029857525146832269075756991640149514797842351950505046965567185661319370909882182454166992454598704359478858356082372442307081596471922810573900247926514975329488676415982785956303241400524207481293200429099709810946579887331015511523997555001200432394913307710511277055101320906607298354710234662368648716335345278050222545485816433852772471783236640611606576888221973675671313583897944258269321264361645323553142975503881306215386081031627909320833068288853619360851518221872621595015547509002605653332514582227916046863068403500399873781382162647928260346592833604336458356439992582137325355421255480544356159652379618903390423766906708996431399049767430706991342187970094370984971877312656953707270730272089710080929644962282713935748721324710571527685117055908193829826782532959610521415469977995695222066681606269057244486533206682017386286211997533707784405494156532769170310258321356348541449584098705648659720878474024115966994813568260866793578234484725053410725853289616885662141025055957072810926943687535941976924265158102531922274857543632629104412480576501711770295389857496186076788795566397248332563886042612563896269394295321575160796191677462813404702136046606953900590122447445302834888738626661866658922600086395795590190148497757244316188236153935679101319775683246284886032405468760752248649477297097129776378084520995894652809003371723612943975553520004039828575081416424655135765549742664074905717529566645545284537679569158096897010822090495088151738322458010187872874099081571131631921234420958616083646208729251278679281974447196917332122581657255015302098044875179040728943338583768632203586673711691599951459038943298980668178402667762574862679169319796254059075971428180433665603891014981960338714473724658239524205907178099718057562330422734796720425917860892592843278967427915781669553513329750522440029166582973059272199447161635944667245646297203829412941051479897616013173215564007373543733029011412021782977927353863059345996690115923093210905393888339200476414235386262745362801155381784766589750227480184045298077617922467757716419713381544298502044034605326648950085757094283051971650111585032011232940544089703087681315086855557102356042331482655352286141266692020728983524839841364126962398569919427600508617297479483999380030950507496734375944529704991166324992248726429987998512681306417690084818501409617895632361522894487345478662486042735231724979422026829130115293591760540697306322773977032268018955558306248577939067495304006809903157704342671845537218439532070148844976080184983369249874564441012315674082433942352676364988410187635386302478146261399536432763301583678464403274163633933725848401215931978496889708522746857333730683282609834056388057357663163748975115233082387696918722459438264060113636117798218110960687141305584373775091370813433206209382980443738092975177277401392136633749749144041317303425041621343635854059778354728396813379752224726712864705994293626138463004251344134254438785139052327933091580698099938581065512598531469831956316773679542076617459629001429204664923293964165944742062745416272892896509137319471790085939565411493906773472294418712150526851292823525984681885769391427408533404389824425207249952040183024277348649392581455389314127790710026342557715550914065182383701849617120169708490908026310902011912009204932161351335838219073158080528844611446841036793375174316763314430967226909010982483372167381207614500319643349988191539325627412871197485239031146674334085791743759843493688318669478505321787291016977677352512342591800437582190231486246535342231896600552720218968353951483567263915697907176286092981900946944853638995878727092790487626239947704710405241423373848805538488520908752461174092136730010428208101707024380002183519063115363571541045392884641228733800415127381491377709864462609224846962468828387409313791765648014264160607065692104262595079857330623748938479917301609004969655945575445334331695453978083262778224154321728555013581180129700778098274569977900585550483194104627508430637773495571552201629943890230110964610000440681610282837892605524100096760053849139902217214254039235319144005568405196034334983364861076372630858756672091379043363264974727825399436913068870728644218167992864144900747076583373858477740944742307508005615340625083326393611184714128937831804358452756227785182045574246389841558360920352687586284592985976786263256061549675774923893000025674698087718988519903520557371072023743651371695561047522099046110682011671302757168208521937822894408240181208741174073289847386346409264034938697114782121397637418414434880232025839634533095231111764524686448307814322540823500348043434655395021563920843589830752887476428302001293521763482132933481435379493040931199778787389551931715632425565727213834600684368088327511759524769518925212651317023126367856699539479099857844213698831515098098555759494144545365082564854982250619315946975854130693908616811148484227508389236570877345756903472917810543861768303739826553807333164371280856003650185330796926343359936627584883199789764580993997792707701369579928740991236745416508764799622640062047855348372627361157714449508358113310303982143196299910562768940805131752923370452412342606485806384744060287216374766113506079351366095640503752881305174821473160965880459662681464085496194270721566378916529284533042630229268875688410595522554449827557767291545408986084306248161538808397205065804639155781617746139917197625598602116075823240164018500977157621774794170998166231266672757173027700968486072781404410769700835578158694845693936474383217350818177150540511622514536797295419875804536083751470036447770369935742335226994286991441480034426691417040112644441363278429627668691750598651824146693805115244537740793909515237986925657903560666382948343329740255829234070625003185973033912259895624516027719845208960683208194007739606675264560144780268023238100233660614009672572816661822342772659126695972835756120793092356936914205405972468890592413326987971374179456213859623512775103782616691996396317036187194507262649979745141517054388152622583073013396279569235362272261446305114567442591044346421954219934165640671512379122726683404842847019734654952243101965066423089562968337534032486146298517970355388272936274393301826455502919935415806307552260550738646143505291083899001845759806295890563769059497244603701879856876967179765342600441859522182888177895303742527454981294783703324088601897630984397295862206386712225135535406412586906964194758078053433007028769329562136303630054237191168739378438594505558351454697099392462860207075521618477400816131057613685281745145990910970650616281112434989464580132317762580024434216043161167193583572871580780051340556117847223257776716176462174483413097567924858458273792469007272344150291885693043878284269292005468577737986671365752294497703135298222922873167911979332584093192433963208633923677146095737298493126109558616065568473397769394340341768852469592682690287417953391138557553664973640501613785551306310596493203954463513138730362538521817375437243741376945794931018400729822963865907454208821822840318776259040992207698196801480500785483174623762543608376500568632408699710883954883589619911380087771482224644010002873549185022549475808329430633563795816725813164647561647764413413308398396343928824152471666778289114455539356839263314491782884750826313639201052220928675557015154374792631093650196700268436561415760415150857102975245593478048147727443305916786867585381726014482752121324692525008769318377425246814658519063541328196841467574684232629817242984992085959796297833127031639544498156052786751348153852132460696759104816331232061339314785378822444196520767568109330950860035307938478215077692407992273668713311538179845808330542769661505257264984584812933999336508138293133900716861134350509961742446521993668949282065361018902248898975585752331867310971962018936938215708787976098362088227429183707355554416638005414024035024392418277795620271780124820978226959229374358143823125242161861627466104822028643819581239226991402426253632924877643918024503732901993288448945382959157707576299781524510209889612909486036563994482594655782836329912802924578950916148288379845746951518889763664349821000899629382307998162792196474692269336891929552313658653903100948048596439298783522433167430651880754472801208010529925379072437559672982699507024975826592565038344843766580381168519814027354386458350641783466042966749260933792810095311480273968485989399737189959590956265578663036495474134675484437627054234719569543738428893610761336863322225773199724755626931230800532064628420879750423799479506183821909029116997432186004572646935981969120551327597364528315585628292974152143595775908415639018033245268877861222081040675109335505318253539228402139345183685104456851262260848054416533753879019078470718157430471487718477066542698699511954707474721819221069851608819051587223604742000250085996031085236928974965257732536546631064471102107262512598491593744831705795292993596744337109864123934121393985961601774341245303940915901648205697403227499607283519279501545739457286128587082885791246323494396437185217218153361977179872669572360305214299501199851623475671336076609269399385776238672988770266095760235965050619486747716286263148943092965715698092394195331466975512531851964760533602934314773117757267378505315921988015616832932978516882047987742152812734443346983160582432014166686545610729457239476151823769373111267319745027664499636843122323341749696616083315327282212417878727229529112083533927607302831933385740688323248840335604763967810186229477954659266344038471712753384757809575349626160399020735345806407581287750100016753298320455321508640375090397871068121253552127780802264741494877728837925090655495846568304641152286582359658236013375674380288121444438007303902771460330826096694017096069689180114073338003798164103983222782502713357289844503247509612334168196776960526148651988058786285561684273680464661194575024372130647056018086216218090117858356511677637484013688496105989663647809467221861306191286439862149061736842226180535254127173319215319443624421442983460490257081994170186381726029037798512678721236348996349691714426852359603311288052703962805747770377618926443274435583939777902599699554159078415430604771970634334439884024023948731860441689361751084437332734204274701287747273899138315928819469682139822101154970610926840823586171119846400331553910796768554431054758146162495749393183921108612159923714498564329463561521375525761309581755783691403721454921339449697487051711811717059700472582164222612980244161161561424786888151383232081806026165650588974433208322012916516218386425453255128461023278983091163029962887701385313213415861050151120300587148592184481864238613267033887183857732835443101863342321735223205907600306715484774880949643089125115658663482517222810059085808656749680229611077000359725135778279865569666029535399661737323861132880089385443554961920204857244463623367849234301049132333699055324007083195356030131306517850874152155425457290531556835360293545269472451784933565249211476159869904273448535023124335511138234258296710311003601948598454275993942767311114449643007972243233690104317892555311576933282884408364710581327469800164781785707629441881182671606002267527815247208324433556179183175861231528957162099225579502632231981796792673571604030267410560722699353214456625319600351479329041215531811825454213736798064104140930771235281149941272330841722413637276815973046613641420418342461464840824123194801865910349557147294340613553881366707150380724937325199141219152189115267880200451760991958009146342136655740769668822790492354054752376476717635292169027916030305191313593303858421392684999030776425590935191146200966938313720911272728587849166718017140674886667689182599057449559428426742751856444195240725239574896267986291192211248222200932489793916295815507275888722816071403880504054424356378379640468702885433918625972359452718988886097130203432331244420589425028841331857303719047538071207190994156285307610242880554207917513358398587516377849145759421813321035637937860325681393200343892185864655742533697991796591257953847399086141694454340214367957866584081137428463164477739647573020320182317398560655501658160218984297859868686386169766585681563836294888178178493337467257894174233975615757664043557462915315441812838780833225710335139208394197880000063120744456849521565312219936521187863426743436089115784892853708839014761745579528935407545514954736539886219414390889308530727989108038514562779084560423377978507976261186648650678447304456600905737622605311939048310693365121562958490061177805752510553553838714694123758359807351930487427513469128044304275467740621184590815900051114095000158708534791357139060419446304815146862413512898739210958441656553509008166985687601014554289032285643548051049022342564857469814241048189669076506170083382387549102921936181666749740426161495016788204178782931046831341944611472051038056545285602195760011046681486255295956657065095936756049298075079846327721311980508805957865311917511294924272440301824135305117729967749518282284414273633574208552498346561668104422577641261934092454123225415186889049545074403722675934020239415479629562454439444021079964777892667471746411648910560912258135120965010327622209651383826921718979378247455457626823169668016274887914066365473405960060771840067138686049114761209658119052425913309719498162669494119358842150641612447680234520611129983268694423741107179116149691438694718725253562711757258854355131669423022963479052287484794581013891735194099999356605165947313592198146023079514886254952072921304936044766553704632503506447191673706176279305024545760668003569454362472089178006249182657264421883966312285214874258774188442896227158066350588023004662050356631093790577878729291181326869368268694707500778211018794112874186952563842515092269106846159181140863012024103492452684822032166587621015118615173898988821960495528249796435118881732073069998792147064077548676295668892320806466174121979514968505274816483153227908407056611706282735887918731569523918318864268789374524744824014831936909931050924368436792761683392007477643114838751994986017053311008845826678846928661860648452923235044289054416271776255398179480831392288077376982493178638838527341719899115639046321079250816369949944160663023404229031956570942364974715618723622793108297035245263363527381616591472568623620141475266048261814817568248183641061513081339192523384360801016973517740367398765767748901841122646729904025281710995033280971286138852007276636586851725842409733464831373288292073231846719721447539323116316345221263865975121553805027515233055127057176279182137734954081568052045631549433611004449136982028894589260292923926364880231477202813027859156760593443079590364743870517829499173740453528918829321199058049094570986688412845083433394451870756321156714021198109801182671461233250380130424882213987647804618806052583154444594590290590089832344169768898161498798616130526373070985803721027140043544055225456760073376703640359505838295609423011848830137579941963911123043798833734370309348368953277883286638521922304431291137912553023366998374486935927136857317124140869563830231820528060648669098424859107932803708617758615339287523208210835435756066055726741326365429716386867928277338944878167141371418430419011888394808728426554049220281293285317402877423611205067743778082758118791607977872806017471067871579200134185239748306276863705905643738723970677580866738871956739561909724340421837790194582909249562035049032853978819997573668980028818517606852754262391100896384102101958942446266000732451349499058688301027127829806002049586571595801374347357052092893476853796920483635416725974606061763134505085701893379450275445706543984239459028976894998489069380236263926215483531141085722301306331171618168162173466026979529255077502362249574537148084736052440957378845721236248832163369734592120886629415351247895343444483500482428070911296643884551242308431868794932179833740443539549853675024324991652660912502076947264666192056258912678306488771279963530753337919630465346512936908956871879494395968137345364951425203038762829360957556678928155910875119156930280276532275749677840383883773439934723261215808490004748062545461255800443012129509418159446970041092538636051953229114478464907520877740377070019424968878145758671955318249385764392868026220867868313367067196755326792297216699043502162132329920337355129593521519457929595901031014707329760657100167450802205256839225817175242022848370746204877375484529197227296040813480755050442568590434831529432810865068626713810855574221856677257435951645548961386550521584501351353948027011109309399216056952535351117727406276125870005696931216078825942891468828235663518366173807191241771349793183067937080690141421673788527795799381386240068975946647107751971060289651989123767761914687262950770332266896223083750772799227085731830092868117446581070057793441625436540114838397109419277275430819468500348007174284004142794496877732149579773517672854332766532132945631733435519725708852413964791605670520805101897218554588785749436037130608030592556602219530426407681429916091221156219560430203557072214594122244399912046667914120966029744384218794767754306650916078492688938674825330861955046317206007981908179430497301485311307965125314149167192551574770367778507710760384949064074410861233931083798144955896625312274598022966951738321006518012700635931523171344204106072900110770389144895470677956241993017841087563628051281217235438671061619605333769731652095468409129442859580219650015701846087303012221131920536921485765265032159768036233865581478602075950385277661395150021372350271132939882590371431891508905339965495616212544761657753659895403673415378722130880431255396981205999679675695494006309879454224687064611085507651410134678417159884314754497399490363800770944961457833654382900681318422280839399723531751801066075291714104909316463811668413123516102262861071858888442683764857721684438362676488976948191403453454252214326153378755036050550511598422477910485702552795906861575626496919480961572228398181531435679811187634486884070792729042371703518100488668338845454899803213702262207226878549950589010502750275585885203786851725106107724598676844234899578459298349935295238814319673863362164905044481378398334204709168285053986990396392519344304958825440536900093528434118510462791004763268261702224391135332597824102116545924236300044178105701311260519718111301802848044028111978872945748067318737553661305094656611882904780665331987320705799424835016038249119657621502402190859372524667018959831710946123092853802801266214772781214982474720215988558452000677350823398757318859143138269486968237896829960907180237755487463885384486194011236510742240752032504461051299344593948931018999809553603734267631595341628916679042961035310489037594516187069403302121099977913203849221122773140148108594719228465087888603742287059039188249448051801944332068631860065353472963448841456972977203691353705983379742325862403295282960919716878052460401000080101070070198132483238942890488407902466351023932586679094826117178717510037062353704636396191466868350186594202547719983561525429518870672355454811347627931692763979963828259046224731669777980515801296130122172681838117363790902321883013041497076337439149861161298267174484132141050284147019530721309727137683155990180481026865411023078478153309906411105244361331817363021474940863477619932274370687081577690445885984211709573266972965649238821223570120563330954947058214949956162687724468636582052056184083353396910131809531752348816002116860376909439564119407863931894436964743405942878816213128515684239914568516715759134366736621447277989553318251339577598307670033549392273899652106635589884416856544514091730246060591688602131168249548613291809411532386697076015936459292867029810344492820426319924875304770221092737787082211206119702827418085064570264528003453981953531774758300869859070848503414540994288227032327490454357773740129319173222326504516594533696492095727614126212769298436140836797069006814676524751775528898792464573790424419699825486355420046990776470162066733227483945741019270195025722703100284900682374370495409381236840717204885486276397452846159284445979213757182750684616865010404230175428477141462614957887050956628846764828770984971286607014194832556654889910853853544959605630767520239533754077628045270352720524158942537560880450079029639683934206258589132957195852020122279338152583049186822496330734506780634216197232771255409304033237057512704307272246153258068131843002219233123399330737576459066028392827614003922875148970716108402134918917508067799783857035133278096131408771034948779091466472292476569945664884958158838353580173251211464470374951581215516593766141381592124009646298844291372918607469305128305622163132104541983998085379533065534312367110855675250871628812954702542273461079992649164323588313346711656443719675737628293070106613065990174093806647042172208264983357409364129459137525344503003389634177136986054255723077827820540101974600436745401648726748984633675493172816996406134493946427044317147654049492703777742670493369976856518946954574650868235155487652295569587819442469923705652542359144824222101452518288434003231710737077402724890889712293587081601136026093257989316242969844665374978184714718847149798066267521747183958757355240699016361716572083856993116825659639708138683682014544769588985541065008236361624227342404161967281661397237411451480366474536158985982955790509591762018972533912032381864043823859183648046163088278446230508172777640534363364858702891147571794363979768525609546016230116228294584307103633081443735489490854610872729499887276255036734896487096739315636376837180495349144202304096091169000999159532255366191938996846699044843286593332542946959772516118416130411123173332332100826998806622538474944403451773860813626471253925082255010970926610363144979206713765716117230212629788896495995169928359047397046878499256865217034887374573077229718161135734955298563129012249319984321772758414465258591466644841292010880252967830697726232515826993733401570985863441417232038027398433904824858155757816710620323206251491502334543980997266489583345464157580486591064579312201864779183151701325371489787060136871002255955585197333717801685951185072733583873383400438515555179967169722960214737153878645666482084741103707192160362826845635082687987494390250898521703567565087870386622887567918258235476781689169572247552653945088537696399603579707277984980086981414092065211884795483714003049308542072772661234225985778797099322674062568414201005972912845268789755987513780501335972767408360459119130694111381174837958173279385540489116409687659736215046341205343959472639452983817963200933933550297058948937963252021610430269215719126684584583617745939757528505767829440445131597088481030581474881316786609776728603389299141271464953450442152235579673923141833157286640743600944684401952171034258907654436875923421593619743895516489100007987723841782644196538425158607267168626263165519441519555612058841628785989643525088254979863312585660314309065276891688309918566827521034200753460307684601916596517905627770569910099412273332745951058409448568098066708016269407512075109043845043520551443080424829459986453054264333523140387951890107560441465305911019909145676013068346149521463498980612990840227444363515886884822989752954386076185761168171740096070606829284663053071204984653246273488530932250364125896710378640770190753016284117483989313685617348557487976887935273483395292368350075921816307437336683096694080267092770073186702987378809268698602880581859503987404924865768222017328431985534579254012958441195939731827877203074075960393271774700015951599049485731942176587114220127218087438285974853638408753894798573500903136931942921291444056641723034935073014663071231198803027133461054967370726636377702945982055429842855170606763093620543739023006727620473130703137072358697689414356193879989065202566635103223408318295260167758383508532821147124458544355659478023642920231741273498416782150524084738441742889311533108124872916708459674276555933517173392983270584624321253540926878444588398428833521118809409989645207372727487514460048834726836460846394624789631302175103668538985287513228343944279721151167199008651051670640298738725723293401092975069938191080335795982554078671552036746484193479151547589982994982876788220620992592203729446527947355689066382563312842870934269333635708646325355183837297359200710834248991861901807443592421315557266543385429605532228264542882984403732130445592537944964744314816422436170460311136068195948778700051064546538763638504937768689545704328706895975502017566803461877266779218507825774293587179580288946207026429058845145546560765579582371188010024307688377142671389083126634684523888122265540401358076090644316616227298800803311888706713062116249284279319214200232204979826836669929483840334261702158856702282652989950073541308731276987682215799660747023089954214641578426044042381008575113247953407917671239711159615897984113285928936564009425217247340999631472522116790837613609333666487418425151809890024503475270113384665606683794218702509863842219723149826841440779261703878664971740079608231095268307772505059834827527507871504694183243709760367710146650714883990960159969920004516364647818428321359095515008286528176103406538668141163495948757929901337307079797490445958785755954455490615883100884926681676456568853886672121369353409202334774843415036482393851750041947882568566257364488671375166440448014768300899965120627813238466270232068797620688984355966792538803813977224086530926603381243781858177991751910030703095788507685685983271024201540890576481241938744314203097309790217563225819731942789457189360995842809871816612393429776871496663877872658159585567884365617667443982016027202718506044753715646482573078657595531838270192082208430684491902764202695120495337941613506460929751184814615195132538740484099887711669730263557092334919876839333846136466641735567919530216600988777171823282070348648922045809724090892066984014574291426173254529107006730296014307988495695127137386656661062827284280763804822219042272392735098063350869685436790652110411572903376573539982195821174050130620252581704819960031906857585608007308130234224605807407061852485819654447646279909735597290411547039168703922818823661060669462387647662457284171220455838729910452762913804109113378391003839234064846130528638146028501328626479398524520219302740735989764388319003789184338584143550272334845439660724131481542296142344055907611561167682003347247954471349261593658327734034442983564496865877891302719573016998484471159629046128018022482616326984169457459867831373614509344440332353254103737666551331519750806277115703116697267529713454296655815484270591381478358714549468775991231078692281626811150540749299056964993304298591908239696681056399063314381878470644272316859275351809659467446462638969355216858563661387183316072710713568058627042075595126268552791684145427599896830088684316644025618933655742542512410010541454869190736323234182233398758444908676853187793550614867789385893103481200439643447979780232536063304552455295447873916856715744246342685846593272795051698147834448126547518656893016735712400689728847279614679390122915625893359415743146375271257015411151966397020905592066813741702604571878357062124901792093518484746103202042073244054112803673381058475648747979129665561335431150272649275677013746864314525836329123839578298390985786786442795805575496562593136775118439694908439791503284149391212236559960407520733758812006900367493688269087074944051239148019655573654979856353939955204703865146248579064092654215758831549770783825530440563767705204093967575305228426283454615821180073781178092314599314250333791213121083287294178691289316608033696059169521094068671369687693204384634436004416071269388944446162129627891278837127650292908793186716851621369751803139422446530975259348861990960823137396273080689478985923738859643958043457069456383986478240269062835743906785800330895561751162153153141071130503020891063194535909398245564858484474679859244956948742222004074180920398845924893056570526770652043116631770933831584645288594013972910068936320796537036235475866793826927490970492205622158913091256271342058417054140602634543758128426513924510189002191539024452687460819402867357554244021412664600458892968087726497786246961133948195625689357359815163419019007055543769459558622923496715984035276407528399140218700282229657010945357721238343975863130580488611238764200524783824443425750075914821691596389467786513653090516743164016155189609329157351333799435502809259764451592188665049205509168446494730205894520172671755461908536758306009432218061300645383175486980013538915542036078709819805707075095531160362009006677183595141585421996812045151960782418746512965453871650456622666573542336584666488071655082839410413932972323456399587689686910209028153022774225295188709640062271554153232384458070533768123743257738957288659182226282997409884490533420692278223604333592108446821604520482136310371873537469923040445913925806637856471537307939868532967149564894089328530986113893129748353751757540366868290093562754463398739561878547002508469655884491075559082756483033473627008430511832063904307579814467117853783914907291656548844833920163412220661997574761645874442361569916260851018682794853303112519267137443604308775359641554644160787702425771908320905065073289537974002751985314363746443100720432075788057747193852910745652321468187452493774211337921464051905388845260281240578895843293017715506139897065375821541392444391644998103248119544065786350708657246682093181586199562299368512405016817423674118042369304016344799556248357437024338013365481895830617410155230754375220817319717237518446711592038393657346050322250453367201648414681426915929654109782943461899948646336026357438441312212119180355847676522837011847444015148424048037903169199786686110886991390059532730855986008319236204159009576118070127768215069755171559363384094502442966363460970503094317044848892125845340306316873157458156678406496085558941325409151700341770489258459255344334968796194438576495955560886578499815158316032997624890899264414793115685797368680943325214168401398246475363722746662791436545475989319627906181757258108832185350090194198315348156065656347372930312685400440233175528486379161354065676395339651601424034950987432487272585827937340300967102297783516425924494103293571955626160367191015106150418829048322288898228855052606732346577584367765388618758594520511211988422386185465267504109293816001417376196549879749641718103769238222478338450637550443560415674263853439586940588196552578484534350894580332723206204165148930060719235681564094094206126624523733703250231966579091217282134478232882085820773392372159199782733384787472364751400541530762844822520518559639743509413764106020952385853269694124207806016631715309209858897806642286607907934381348674138598406564558211249357000790004189835658827706108393266640804423136790132788265809245104213061262660357614594211797663949644826096029382990451386814741938639359870749459460705813927038723823299102030502073388293613502149457702993646894562652815594751032016885150154594369839438614507068564568505621468164034253385504142112509196730868206851981309252652778515212538136256644528548931451320827822020404372168951998511202325792924610868881754456129480497104041211648687424279724547847716814876897571471300455663277043030838052947943833836873226211214887128084137598349969327780500442809414039524417894549362908175141179419610586462433800492959609238523819877305516846401426761608218561604029706551615738904406144614604490795793812545608136188092675314439100797999088863574174256660002864541439175405089483674472373569687494000075653171113822648284906361731440799733916891533154312361795014711607644896070937693540263543946655786658025562756606181595705461848746494831053058289091266465071914167171801551707842269194933413933969280853440724971077713208405413810365287507772280528843822352190401973815885232873683688444587189832936223356723282362441298003333590770681823215812818639725059645539455270741240605533494115667903244320799276506084268463794495454853338020835596571622758641473140147545725356050116100549886400190534286988922911467787916050452491948528361247299324452633131797076066777967003644172701789220609963447779385411002805876670111117365030806945039781356950884539124553810954843940986810435032414564938951191733709231198978971315737196608513417482973049969915427747221961154607257371598332244757177369441500205500209466342569302398768713537892818603671681267343087391442081181723984412174481093266130168225964884197095399515370364507691656607612427913660869212431617923544110049834888602076233671544410821735835649003673033904995836087264913541863292759748951800747153543146186121680738436581892505999063434906457063941743808193048749643001032094446189080820921568516072019577926222611933169602392549904504023961362274465464836317950824308504320642887508286985651108329023602368763846597365490595806825784316905410377010070892355577229973455300162336430121931954584733939981859209237478966854487629093952361269120646881876389369736400430552639424311281414306073657412020079102319663897969127772041316656866802222878166746502917609742970917459462132832058598083508907716185043882837738011654684986390623696861011058879836957709860967179999653107282910822865765126863151680331575613798749054843175082958371603180647835106752057727940022505639609883358588994309858925950399849263335235619626978756243036873966287868323000005748656997658298411752955999989206068378482019492257630166675863250103228581922595605138761446035650404446589836496340997068427183272283406683829802200404297587963311833560024791622567108684500051480023377645079785248256977766365881225835964404923867218453377927422175877011747572257505848457581485808046188292960506572424752781297846217675054495880696764858212032867149509353824237480360580511165425111393090667112446030686502505402575498815080314528050788522601350600794024539584680218409352669307682211610323950304479042778695015595117603592895419971319374430436777884476326048931428267257017136775715294711813576921103712853450438375889506313810839233878044158172883549198842788982667607113046352438930014111389134764263575674896389684393569280816307551903580898364420006361335652255446507722018306756042596904738974123479695541690088804163713655378956427034682212391285631697025840355557222952831290468430693134620997659741902409950371601766835801896541976432187161922083396654115278183397701181766254535209925379098123888636393428776546556012634710150510678121071832042060886402123614861644382455494533994673230728297609942307599201104935155764782663902776285467203909433719767137947111896138683331554190869721957627987982149796318522941118004350208605547257044864713133007618443437391871981620217736721774533078093069507934168312875230445338942453102968249312618276173560520288204125048228029927924836209327590106086004583030185137827913122156021195814127258416694472763257172423899930727528889512481708182459649027425406649118043396862647049000336533448737943415153582166247224154308229356863843362752526910120881636509631111598736664631184756471506829845670215187051504140765404404843002207078792297555531975618272874440803101744963929250087564943052754350807417858271116072400512129713931668306654785509166622160176470509957406238306898735187426855555832113610236088048632166286276008121856015221208909851448894844435512518262463700673002760789470418075730303597900747361419191853756160437129991640491061654344317937634024506928148572839640923116013475168110473674734710164214355553070654688257646481657615687249701274843795055747612368340089898678529752888147001277069968644127831098843200078004763505597408569101201724094727387645464497343372442594800401365801420518751012074259101682630716666870189801518012939014464355395995792979991025635013405616825476307699156862324083164768613389675142754867035913554488606793124458520942637026076464961047610401688458448846992655972806218350837982610207167193097037988964328569222683929388549680162794472639256990361042004547256628322035360553493141990548120325564260283921631657264614114164090914935015313835621730488367465097997298497338246106008245494772114828912370792207168431686719930879826357555471389098995495416942953060947511057591809693182901090658960175069792812687589029023026807920979604227718805761969517121585534992850221347345798784624668548533286578872385972136467198847746535454017234087836557286903914112551737727845552542897152247981898709276607357712619441843603238108372912906911314981065975987520367520454090861231371777208165641676807844064809741580155724799284347003895781661922835351242261559855288876628136214154039537540157493279221070166501656572314724366498536852318991383128524673020093327616348540948889808306169122387962090877911302747297574203200673033693583094408457466626218665263325174462306861929338843941070502357280674213571018025464795278554633724310188860949874395770377350221590893097666991830259928678891870554472854674828142325592861691274505226309995132324732146322310285160249330780288792311688980591953692004152352603598947352324538644779953144950420934531571417812038243295501910843309947327217775861331043907386509812543212199584234062148376998571578834680832924243666485245153771613653553669314172901662641611006754367240306019097647563169611370902912800941345599794164235819212711269927501827160938805597129517630819385764301034457758064338740490545799138041680306526327372620193546515365614863788536701816399633715677139663833002014833666580086627825371528741386095129437111699861553055339897085482729330549765156320614204467056762714953517732134233693565568812874067388876513691643115675644486981386474432600726368051852373759555496465670272141949209225053998998092030175310193081414225072202153152047068874142914460319704304685019550680025268852290285610818362527711570755285769999442049742684174804054093688239371495534472129835163063795671378317287276903187951796009406287070660954350460103156999865983885784211436396882051572780634796931728086794445628475055804794086460718120724042211445641038766539202675029439792973900005057130512383284101347035419972651444388855836775831045041423444285848632346110386399198383897382590316155554044841699284258572312850466372042152260638404490332481629467567687124381625034135762863535695938690193289975010928269383875300463521809283358085702446108203207118928783327039904923623545641669973453580474937020893205009867343466645363793352539063356555792953634001063391641549562769637009738611337298989205073060256099753374719127029427677527710827528970555214249604548246630518611547368146636844977340809192623248403186051317419588978001840059313080964954591083751273785068790299391984890658041676016694866694666565799117905407446704204069524736265637656817912989076828229802718063831977794123430876806880430377820145363615356743823863351111620311490372971296841269472374171236012643032317309450379743999219768488490279765967359966855714651963717190376197729740279055074090719366802830353755685828871176033360657820558939069450410470195954052041501200559495102409881848747099994351939738775770878062937997007499702010146036689530085383111735597956545758320480839033016489417846798313306567959763583593036753211596438482790428447818503767641913138069052455846620160666100892176194192527290958607657486026523488330185880726846863779825223832975277925352449738540052733100924603506086274323628514596141735411758056654841821685917667316927104671479862358129762918598460213969144102984987650004457156971786242987156025880346767320626659923864441189904562754899609371568601340789053225062521370179876629465222275403187153903355424815374009762971388309937876872832221426783831081255609947328400986503874305282893974516724468182597870505445831903586467513436830665187776161940596195467320877279759100590639823222559715281795280805185348950957491792632103612748327327859249178388415311180271162148593689319794317185853172874909640279995366771378789488769529800784563248886398592348555174537959328401522149630960010159048073179621865151089548322067892457079049434478662659629122716810868459925088335361015871365903368150456470112809279376774603106762628179002372516171929250866817718427316787251703195080383882579365381220632080379048777110745357321179749177668721026067441022274215298613860120426418742800820956965869653620071553389638839654845804694919982138155644431080649480363800495328367724776523600545246600425044020065866110750719195756539167283544482410260623431460188199997575603644600422624603659364684205552029451049018538849512149632073990730102910021322436416941435911355352478978343166842581510275107492984435059763284111807475774305566250593739102492811595152690694508936383472782848112145190074755019810546704753746754182719579944183893990355882280947887332080974002270358719059187036121311497120191373476943560295806495770009378035768102322129779572993824163944895222923156494207600658278644560041325995064179892327204847306651693544069502944528427884019423714487032044536332767174934447556067605827862428542786634128241534240498529400427491382110903805623602087238671067280328893332219781020107137129421782519546975641712085288479347447794878745246895764294125047205664875765848486854470849559517015550036414951171456569418593039617946209620549595809079957920232928482685719557331078486317765114495548309981770494420724181483316870625910491578387342718348247145866144085605094420904110557058218913429151890442839375486752364430812343919469352834674202588678667120816795726612434344597639071737083991369344785546778445750224034093377526178938326380076219296879902262910325090450062333210489364370595435801304913093937813886535464172769107724637120834432267367840162690765979288457810620045895446019514385425749104749339718350614100614905395508491564991690269067254754144846387371968664688659449138701747263862563153842953089209772940278749512009488874015743535128327470633458052752365745051747628853905845524059269332665755976249102776685036373797961897648411370717050539228333478811414873955590728553743125109287642534331646027655585469987010827526558033265607039479583360550540135470466892611020224866518678530671148481572483814989251780759368154808588251533724641700138795394784255629627947676111935802743326863085183337733144491084749410629751133455886417367797280813341711914779283985644077119640228039172521691841498273936950101508098128020655432845354310730053280353441203700917440447507931626664968683203635380451586851376086629836566726708383739843916459127780952118537819691590991699192755490565024577698837679704397609086275085842903022299424284719324259544069406590214550168460875524708140922895378563868340751109066574686371050202251235776497133033585912830180071500872072812377046971758960469271958947927453163672915333892520155152650347836890441234998814161876483487219086180123656060391113220512351990254330926804956533491192423916618981963636896651672076976837559785282329049723388532623512598275095768170731089040677707378861520472284123246816207091749294184193735692959862509355162603231035790468168602569460520161361909950965552647714218115775710664207237393594059765588961757429476609518007890232946162706079267042000120094763626544976612690139889843290763762621467793747920245234839958262845731759647693908666875490237074042447924644630327071116373381670923819345035535114714627016662514807871712078980729278669316314872679163522153148540568807826509920806563073308832034268211062798629756663123712022775358656376363938069964135663493613375451516572814443740249215451361148068534467506623145521066043080408370842339168181288903631516904281341035002849012229121296989921818515959307546228554109819389794983470258991082655344702002703473641089749910673954206732992593238709453302469277471147789873185268947683788216037164432760044424984725377279637514158359980264349978165374351615514977022440347681062257815770317387004746537023232352346967149739736996058213184045223025584888084273195022090801121234225913733074079623264748441855676336735230078303698017207328259230360219269776665468872280458480841213037272342637012666082517701465210350805458290495992381860035833102985841053117671570090676166271814615046148793588406526802205864461539947612927663460321434308348591983237056937910431403408672250888975244453981002319938779329597262685277341360830717812240310574124927641861269533061502771905971064457129574858466911264569617834753579221543263340994057565741298647539400744812651169727306725177277223257315605507786283325304167896895955004002215368295832131732676957803006899933964759546338476281619677755700064877749873596201532764335836561267779183767322392522606478965686607664754829276358136207646642397806978078267517602059145645258979877650085816745781706271103389964973577669535238324823676616002049213803201992872535608977722127288137538043241177809431709922730948655916781591546388007704156723306194433791584241125031490717916409995616830651789085607815604908684829113668875953999775061121079410300921980514182446180695994303416755300443799938219960011247139006369659505648250745132224506877129346115654515006656098819302240421426779547543394202899373275134318169406936300523070372603987403017611066466931053863352053132026842173950520803678717201569736514209617474902730797056070298519395516267827999445548054185930599333290607669770291184644130906316170381833556472488891131563562040380574140638161380215958835496142711035721069388265002851834096691153904475794994999242744387845035048821920148591535799510022946670813629113475038829380746926016004790370450810808584318089009401026128153428061693311371534404551915984646737400792602290621179021153186412623116519570466425196419754500538198557659235605751010704182687968097218956745006501293689846742437415410459998678644358907405357978270466130102707925483378740447536833506877892526755448513806961321193068158208132382023383622512010386070449544993922346833764305032797449433135128045022460458100720649468360194686542650577264744349849690652481614485733058223077123249069637484003909163184908063692647628411583615740382048501048072930493957835135746751987221216482642209271654456185997856824032723149516067847436081511273801242238074407561275518220586012847949671033657127316211701470174588698195816760575509248307547558445311122702103642304490379083729525372912869779609103413171451210797099298328218796275333436864345333012869278019087463373749975474699238107088277082995960063642046786040846766128709837946394870773510354498499024493534194397335552315982410489767054085664396120839136047485542969554021646015595164400190114956846894769733268134953478432036165351483837645898423662713215449930935025745621520056388334192033258220748069673330101295601446320388375315829862419705769231393190211464180685711103502991441832492715748623411116188045330964863692634945967980829723381223745815579695206611898932975724536733248019092668195341284625754958951233146278560417333149471032555026670037579586159340980526653077159583308027659560715825298425596211547372046775292192941573827701814878497011110660145197838904695145797055725313391287548796147249733656581340129461626042013988153680498907718798806677702202001826753006187930264308017897465806313438142156740915515591261172438204434713073636519270850694966202704364619211094546742411193672869623302888953041490272306276080609943024912691856409669747626239366492379585695379116766169827626523050370613119251102309199276027792995126923523199451610961802969495211713234450822710929188632402232940529267509048536058574000538803883237742287627000729328169583702344078526692371609495145216225632881856296702186684216847215178043347794936131882124915626014656037019236162248030324081379075145181623502250677492627454476030725517604769797770027141349260674031871418412948827604181195365837985288858848734783536564839519106354688146052030702421539696280594515211463214183643060240964358363763764815610925918025364357513162918903155966966387260874289257332403926387476879016681169012761807774280094683832575428484568399133401998083298759705981342864747938553777038405446648823332683894983689520113011206832640161284642930563731684405382075915785386448702609718944491706390277701004474929603686076868780985045804058898887426630750073043899558089246233412847892124806143130750891140487078977764788059584797692096408269806726630809344768755643310490780610830027547442424166324007019315720199401326529147015135005970229938515262121005331748498998235528807050626166368658589734673186899962594032507570800408001308442232110342561795831190455030497507461645101508306872920863097666269144925426783476084062936794315670923179866999431216199168576418236747174177811295460316222043455324584123219725202100982285696183136046964677326343697904519824860372696692892785141807312366925631930086744143792964146727275737974975960174043348298139304348249334380658773061243281122201348117264054634500864852672817398898245346227556943029300002057158936926592742834222026309716702758390102140703057578396353616409627515258361334903184303054229002409530597566563763792531914219862153275120577950343483721586486492118072755441013242833981419456277329788000088205287087562352887871284432082671052995544096319753076389777214650119837844131783363774380966097829629566336627292327331279656839769141908541856126131587105186494293120699930554514595470964117876282626251690549983323964141821644891563522928179347874942144817124790416877773617081785039107232701689726892927404268009455248158070441968141503521144374747208261622048269191331562550641989656968300079074343856921654438360337722636792308821476213441796850933076023585038089596567232540062156717254929317595666421184398502597131159499792689766744821488906962344099915450848225804822345538333500897588268052640194954806992104471261074991707069771694665573052229460249906988938939712204905788712756283206883307830282965535500687443709500398158172266782186281893206438213476767722198975363843462223723534262804129913114454133524563531278040932429864441218234309989828194780759876904465135361243471074729236913964482706392091322995836191540605749050341542956049114133057084834853585660435522970253400395899223774371559090953617200531192964985510717888168994196052472508831327392057192045052312772217834533681077008918129354162694658125996760455167728143504077610473091035211074982826889524398285800233755468271368602828687401126039218729756067827632677166004964539262374319284418307334772976865631625303741280553122120134297221289183574194261125884851551632112832390484444840404336450545617866883502195147563339965577745389838704639115965632292222695422768822039850020386094033812647093783934669668707475027559042049597211354481982355264417167046567590263168530045955464217700192200041780178090323065671605175705200974529665005013404089744657473698515474030227955382449978472645806598750886150035386362014314366839717078115084722812694415832719758875750173543798254571783236374040007962763559312668969430923413810737901678880847377225120810341047566996490426261342145811823487604889659016275839509967561311994245065259069207095894949208817452224212227829964431928150964338708958114134334717856212113098059811778354671025578297238055007263771615074788174153050969958841192465088049001238342157369346893168372707744671862382773290219445842127850974672502551281311569100100289651244226560980256470255768595767329434279533004943665956179356264510626095577316591156256350728053770918196198999737670401752940510400091616861320578160674186902185972610315089487361358385894964984640345332704592982495217231886090276859042618612534883625699626745289317303849410788505633378892061550261017280449451707395314968166955803814538930446192759412242780007534928333624227533133453629281619254106763612899947713580059014947800747524297221682693839743437918833252644975805153636509820064084347175793998954634745611600544317605793214473413267165947645997508055370803245103496490336443176791071826109381832485027911755171213097083289462363635082974306662448358054677400252351218618776756241408258809619157419311628348364303151318202234124943882799833568689650126814214121597920387902107394066708547827035816797280068073468892127263774028228234406804531131635138159447660668056189785421927661164099162965490007785689146319615602831632643584252482168329992501383802264717535749943652043504294676984048590155496120922182778624349402385950997706617689016876887560522031143995105142115395544122450415293775883536352533136734045304028421581073437207153321974001354962258108030739637249694877391058674739925176680605495526620757147488375072832766483413426601910477032863311990743308622414732635181701880041683012853957685940141181553529715206391870203364272640400482478031548057133841000006889183338181149757495982516591436443925052633963764045681983026827871870433752938684468426425965232295571232208952628139931740703673929458598126998109115192941994744857477650658101425874407132538999783215512620396589001512671598203942089254780529662426920488707947822296346595301684695170685959508812493927565584800062740400577993810371220290817030423904812121445916548369737004687632438476794634643341857917794761468245759953398119845850913867049212405137407355173365083253350778562657540434820319466694176884582843045695457260671831509664496462164115152370973457320484449510407855427684218895780548573428182412181736432850707994289123845835348747952754140237899990350413162731183314906277140000843115247402157670696735378143514409270123970159899825825804703911892896704935317066041450232236902891793265797597693115450290796963086124783936371226022965668081162448501968950780137807087078948799682587932802758926557835060366264572538333855539958534167831560217780457210087960008943930132656942346696570916611472537315736266375408716399870734490611002080263844037647714987739163161217435474375910996335838011925057278811949447703048775343332019782691772652856539501711334097749824884309621964565554239148935999331032816262680473300105716978460966802498073664693899821408056539542839518046851720333501366182980331686878603413916298509516373386761996401755328261469063798919783570493702357319646693359772414245721365265655139987563265965960867068662345277940010385135478079676496120027351506886740240159916163388449443519942016998756984272037427372315464922670707461482180447347201359351345935904999122218310496043239485751108667159820560016143682930494887626570550832907212173607726080915683859510784174814100645298846711755215962323601801027253886322726071284426009681314371605007561100615041077398338911612431469234047939761335810841644811655200803885146194532219915029831700666214600922669090237336464059889438325827528360152136034246492758427284153916486189347148442796729815004886256994484306973173802113349243088681759855185573368924986745849344420166294824936863120660788097181856676547099382217167757486487049847860459573645927140553279682750922633753540351516857334143364547956178404751055840371495612532613129984259835989151490254060038193278389903821640155126942610467803633777857806291139225567851118986931768560089853804913064952521255446094332258994824381040295853421953634018888421427822546661817979871860760085531091782854526163194436357757521066026983537284967504055675823872057520660486564059183225224055599120176209338129732789203765521095522546580685309584892664344360033435109368775612618998166018598774352505432841652523628320198006545027883309182118591222010335443065604461358720874854927648717432938707305933676146987415305785693306043869462620891239287484881640333080308230309802301137386717482847105566780800885688386397460621277912077232801701913288945908234594240695520422428353864494627054711487579517994902261246632187290185806415303225349838307161856232561673040554195431942539834165769257365693801590020994145317105458043768456164613030625532601380968887729781175053678310072685563053068843589574709213467500939317235501355513159284191269073011061582754808350110987374882816453692234446975869992726831370560378486861016809116637852579623131043274469942796457707325629986794900986629983404624495551370543243694614886969790807699132153558160623853922877879882083495542897650742251857664896199153233888959674305779030076086122760264037227699871382767696581376136845868102363344262412288474096969424948767798072362883746669820709859874163972987652705768215859683689405122926617488182366199653911136027188915703171047336856613043274850108432729721908226487947512220326274473806277895619796442161956583334956451999991920545946078454491024373408855580945005592869503034584588565059405505744716534452052610815778801093258237569025488581828199901076682576984663221349229872321165518852328293062481089636660536015533816046209605004738518880149479943447890987324776792985887116907578789976677900654997542185291067629531944843951347051711585235042070655950561944239334500823698116638448458161437031451135352905680102905725456937910022689912253593876398791565522869837068506965162126410621052396293851717230202493160254403721986164982409248903374892188380856804550217897872030522278090476412409920211538410012781877432920409193677202245853710113389213261218013485877352343959003592414552026656447581775236112425558939957659783717457114088405061724172033516708457643831115140212299944279642352897667016681101445120423374715271266851433407726056110038002052410932846361832448580874874252802171358371129888025316114737178110056556250589429693493071710488528917152520045959255057285140227060894242050516601424222529889422014216745467343204470947516361169937779172029961787248927385064927862364611263734173713425287409246663683296521504849418873459251508055812618736197490415430973737694410820240542896067560121311602287001054823526689037116069050569970182446488350814706563495557818245865836632838774580520032831561689117245389455159677218281049813047722856771851336317113912718674248572396609781429623075085097587390047899318622925502409174466921883488789687957939758515039264855598850125503338519171722983700240364557132457072913726040801014252499321062948241203639267496107884492826713128196698339296783643714682945569004094732217646006908153334659226626686458406611172848573404137596212607274862732620681651004937368124981065203194368454940200726722590634563709832549197618042628406452282570000783143239895726872851827759324018381308571826837680149487584895966536372382540781288111001621881729906484644472499106834084678520166944005865255816354380737724695330944586277385102340821583511831711482299563999092415130332622447640558827517533754336195458174548895640129330409131035369986666555037001269914646228404809033211607935073206192908088203945917907288753447756285566392120566650013252353406825269120963996419650827408344740559661948105449109989299180304231995784709770951376433747510603636278249315762766424583757550369107469554497591068362319698093653486555205350586808974372237973991544020397169114729391343009001127089772409901453590847335792982297692539866429780013051682564955149036648641437821543415648749438709927985066499605447255899885218804017508292447418730820978409116096963343720486349250850658200749985749565352348465601617933836360392199025150996044722029726246265267849186225272400294675484765352029410353940506046553701566684315768995381851304698377513038655800417659007494926103019568093018146598801274856911315260368700973531905661589870114035869271708041348409573054228222953236440133483216344433494620721940870043318021536729300640106070119615945678761976257464986994112675899638509443144475788209250585910606624176213471820747430338932153032843394918428582488599830819506375919705674436848335055478407490399843058890448991040833002284586126845324034230961465715155157898315311078113144390359395013147760556813144084990153625162289214177921457156913126708470978517251995872734048503563024272927287008162164050366198227845012735442178828040275214567930039709811677079292328009966777401534293817377469032441270750221089883955421733129099960654596497630478980831517351497322532276464266564969754730623955758587915058598530627386617351326322630645329740716698042325712031480946031916924850486678705824815228426873481853121769178332580081791756908212591445242873996684753150167262103292116142954483577237462158983954298117979254427371075860593530659434821551595614315809824837349278410662008406964888145382051370731184939006638987133749223372392695970864050025547201019626489833490179119331586287125917850640252949420852292230595003854996729667530229102243216816170594743854227813970302976400384673019518521448761918873804872276777597727647049672236868910306934844839678890573651306460200931542649495207294962761238606246154425266531573553087541136413231891360040095571997192393861067500909365238675003138488947656812176997789330876326995759441343737510273619155829091797472350192016608187709807253009167068352525285333892699157246567218705109425682658436313693267472658907335306957765867045824024015189034083084416582803252572001356407407755594416282375825993588141081332547075257901904860568855878520047826445713811961097597962417263278163323164736709369142572663528439126211314296483058021747519794090162299288186607791886001805517134197513057573437012189892816610639038462912360008342298445440921437609550541603122217894651006336322805282833771900166818959064472719879058108096503179815395550731880953748581074267287125677694554312130742916366926630699339078691637330897399972810821052023146046470540890671492051628833970382288906303049056132143432029440136565412904650343492135633770504762519827997857932546695272904240453136095093344677664370488877233093584522567868160915996051509603863509116150630257669837436398897044971230640772937913419801872310849529610937566450620676671232760718463447369997910717347242887973512581818197548481430774692160703534901814598444957570093477132581019236361474350220836676856505179452056265213579460347091544125209181031030774056465950246964327161579005775674118815905833912457804613867128046866062831552814225791213219343280985504036493409471846071526260934307816901390436160300733699710589082253058009947486554688029333812611435747599768900046245194040924428891995932841429226873486570263091900899653117876777430612861546420796286383242157303943646981609645812932480372141203955229214055918268690288265404818793024738333920367652813051216189755307169755198012968364861774541949514688323145380420176103974705761039898398141578052716554010024695648970092719209836232727104509638563783465194861420323448357658321384973781160202546505100805747094500217667827057818584546583507180243640385972872767997172546319512080483420302666921957944231062960704034452891819204078692685141851210590628752490833374162411023265993386485588985658370706150028177545532864540451638192227293807847223553768386279879004099826279941495042743996641534901980685097747455693622121022750226476769675063196469451838594263524539489943300332156491258795189258663350522247529703858225866614202132263132431260082913230632358787411918791104140815658196265188279580857080725250373316779860772120662769111321147788435328373582615123690738940951964957002362901737027240617190051545296515824699775230433834931989655952025009094010490121559835522387306728703923658439737030710549333168215186172345003547818273711791293283184174643694341998699221688528359468437592592299172929379025131878099997628270899138055837012206746113765105916825433785217738291281936660111139800975669992312279660892267606701493574188316328326255345979573534617049322909172177292014292317125239938288453891688278131876909729430782033835669534956525593632744107372155908440346328777488111501209707359111736892666628383129360780499501114525328218698899178379679855685907669075199293525837570493952567836256146948122906654041121380572098641328864602228510426867487233091211694413869758276536467832072432463534798607145767898029334262513453495724697636151717474659194980480779902955567256825713718837779759466139780728623843945098256655126416389030110273513167786823631555487462119402047212566511792893183528918929621350183623941895766435329605839943073485741314120012168249583918483203395894715867933632399438544363964778019033123531060477010978314733746702431000046051328048029891046959943291790246265851167601248313282036513364168411336817823107691341091332800764553964597565777178190579726335386950128572795448306600479334349414290736673944073489941311998637735567541225316942784602801583992760040361278895184654509295668355724554976691618804320967285068308369764114311383897128794076462922053807462034036275465800868408324140430826220168228195093169214013872770645102452368078288318178775851955356545704432423547588776895891442538421698067839463175295748782767679107243618359790887220007609508380306495457053107943599242443525999249828488644393892378640231934079845478491847562777031746304000482867024735089117478889313529172152329605350700071771501159293159472541127927714876799193819169218607028924482449026232248551467107098033009753303032971092819802287119179731544801781438177321860282062301076358971808795903024478064167622214781077899211822681451137143737370267468683065880767760480045422268594590501174253816974696491780446091257146937874487383352362840979952473113592794561070770084451136983416951670665219033625591173650053242342735421587669990113619883953178163809346146851896382851663229231240768315779541249549456470596328969740550048825741174525473988418592880847945551290297431452104489856847410246667563475978049698269496843480997766350137368092360927232517460639310339466011826523451184117995438635091307927437987388915106300904458313782993657411901352691472756421843682374616810792762112569459243873918213032317658685285528806456866877929040844908398773155256128262950565224081467795007511170737908086375142323936764360040295190692187460926601247574653085738515322946185050051955088288834082282443949238135275148927418209621281000469817049288883263230808250001536720526397679581003385822729076410033628443122347051837698465873098919123250512000182902316431402830554072221617545474277124584979828739323378043837198909966419732834123368821178671055242228413190977287656915496732074361714132769016286820679902814541694651097905616799108115186330376960247788481831803414771164751718682420004360352388186577335573793320266006995990317166317996291926072421604494825608545102450079507998978389186312928596530452397448470724761696565138542502019691377282161649166004544900040245267619930636778867832964131709642120664619426093230037060754611901712962821054112646341610282365081702301010613700501573813665524478770208602381023872501419234384189546719927103878775006468189472217371877069614323822004755050329080771972347644265539323553976510430723463627199550732904291744877415870492411537677387583853898668279891909358429327789279254181241421427071547664333025939676154175117374003754170308856779788651789162525245641335342890918198644887922453206889073098154800992885093107683072349695847240977264799642070796559651900064583370236332282242104335654795056406233111043461333397601113927209767803698234171949585754128409108352429567801788489537393565795300855073965582493284893889062817096760703880289570386963314822967885352948036806778603004329312603717064205704487271876329483282832843747997955701837963266965572067243645816355881961150779860748000380394947673908771835817135521678698639705292504416021721411861355522896402761072190419002106621789926784000881272827910997509778265201201497629767174465623881348849193866114255068678282266304490376212377324580849512266653519998493331048777951238351833438474560834105283107767731483469205240096577506700936990005294027541549883916991782891703212189853115263295668651842147781626191649222480508581525977541490512195000991556654961832745316270916897472826793904510230004366808941557723377478823210840467138423451287879893307480693730277069465765001236018827966833945426012616182114498127199491793404038138646049768459592721795227184467378417250371109078359521296200269444904972834477251647802125111611599785819091375930152104944627360806019818144824786456402758939577394748899785054236257512968777426394518640239123776032889756435502694847585371723914330738954619878363805933869823051624327005651841319044195262034220188608395917153768128099392484796083562116172576112177594301511524380535898672476826225848261251879277115177420584622272999130123438887273318285892800065484207090050022229675163079976378458554773324038454789232377678599730912965503381560971974037122398397275072801983070643408212270824130146043040419502206989601262373756643303176255629889829417023720971199831855131133413053743811419007009535918336046118327007715187786079544943185172000309107767384969546428282096548906243168358191952937799228220073599069415544526290756095449334854824880894436854324400163966870045562860298403715707490307175575624604618738614207238094834765506446513330677710996942150981695279020561830226890708060240584240190357361797947693811890167851156106144827486377145394985147433142811914998810426862292792825026605314636580219778854325430190277921172876798160635909644369579863759682482752133979054513580354839913598733648656129201276951227175786006475158711743673047356060495258671328250759176134621183218622649402156296798361227483795464762202189078416696465267527475407650514202404073874744971737869997255112983337530878253395761948745102328099043870481335492158664051039712668378829786059758965019516858627858384994767631331199514984752440615785994813923511667819118723223956558704399465808092492444055986115035329800450891384357847806581793608709616965687896762094320720557892151936196728690349772535962770473353239735886723779673675295538404886775559141645163528649105614831441830428598013463449144795586781109293456077321910608590690504247332189376540042681628857331387931465720361935365941144785918598956480713593374617881338190449667031358906409856469067758402014570386572973098076868625566753607597726946686631974970273034027566836394964092443662689591439214298466315273177822131658861018607373551233898366635046627079158387197561206876898811591328956768804901925947720038138941986742488975710697160196154420643903554975648873396283115392928648206316171558390377901777837366095834489553835695612936512277671848759024600333428246475335906928977559199256508667185378526638535848012294248140643083902567790818556543917100559134350053110466645071590567445011549114416222735223772747056493934083247250124113966755703368211880255597557040250471471830511992916039606343904288583418094621340347298294276379383270357419038399354462805445594031068405681155563686955453531718354902880034879119352404241717414500609517633112362569358116552589814795727444557210831094002876687080142589384813680151207418553429975290294345110168941322892952495391876881121740686940503184830023076213458092610191929519955553668675009881129253305671982263748867532656461162251757485291953353851935421742067079444701101353726039840179914306873538754700020851872882661674898288683858535368900136685229553831838580029774815946053051459250566465453579392160488070663549069330650796899927974855802496584374410554193793441279603587812414720722789494984075787450009357439127498260208887132032733705637710516389844543731313326337290320476279667282240329486459169868943743568644565764228866223180509624531129029762900837714734411631519923239716616730342643329792750604192169870863865663320424943024787776925649813012126320435280202583137530660218307762575161175207153909706704479912350617500695591866564950102441647580358778970204015142869205028028124990322113442174025117721083346934820291902596206728331404930161662757549668698306876893334819868493708737946740348827360830251690405360960433860041429764947468505255107026686858845354460446886026046255284924168669362223351748209956958736272427568864226703366837192759160594242380107283326118151676351800396779511373302745828891634622003917713608283079003752247390163323666553621096122211738563471357078269340568334523810245189150258099417083779611177123156901878409155322072329493066151682211017554429340681655588503199944514579658236104940845680702777229494387740076569462206799496813120009272061085401281871891109852515687394871991069275678027300887831761391303356827391693269228713124270592490416180911075928337393972294462396705828239759028657728412419852306434130083598525491212082989377177191924579369327665183909202381976841001457941559354168433130098536517044526803064206708664159956110857635053658998378269066263117089423229869582177871313943066017709439533067003966760101795823543108018309378522534008843602055296384491009792756215588532062289571350664974838737896059508613886604018546510742221470495649169856929446619093923056681879033565807679412005355033939437175919064284369290647023661658557863947721114245955138403503961430330005986434107708542034140036923023979191968923067250916153475021950033242483738753142459246554005149441718003677419344785899463088903775986330258421814494546320289572957924113350808184028322093624469934880166236550311164843020954330065616456137252440991341587905643540969502525418012004307906364345608445241162500047333616083741574895870910277888600528089630055494996637485341375718379621071824503166307298973216158592295066867936538880287590550929845172691063427195147526635172298301719498064426670726436458011247402219074184224859530549448517684134824894131035324965235703764477337242786249940613781594064691097317000443269407786756801093387246317151446162197911364030227662319416106694593076759353340625534418294669185097064448390271885470590736866532411136704563951754011414467409349561493132580404286696998299232512048643723019722197328589795257159070576912421913788592050497532971625812088188632563821236736956866109877192016678751346671208995467146466652082761338097194184387119788995909160030979090536131361271565965011901191862140504633441264623201151131508408344556714681305747350054339357065909055584795131480186705189834373496355018667322751690127638039691119313415648548664783099692113057690984166794839832001562622281045125879261900148495265907542654998377610871592211895459898500491301797078466680980335473263702683542800682482978911223446637262299866014682903096292661987957312563710139510985876201490153424911414715119161765874401176252018208072628215595812960472221807179556706772780902660488039037424797591399036553095386787999631206441692578118613958715822919207723534837454724437618840593059309462379224081089511828102232076558232362414193924445861387107081637372289121490749714489439913369974892484606384782093311550387574222892127862969783534603273074222065796419674026111318401176037110753478585395187013070555499423293049943324706205531893250990679207043232729569238227874292323274419172764683996891391303467756700150258219259000191395606242543246815443605054154505343764131982252264124887136266555980526500551983910863759681619171171440040530125281179728959278798650203978215891957546040210131243123303242017358908907983841362357335580607531274587513812553280979345225610440524958106206327115948485457723063223817322922596002098958499915836102481459504300788852784778036786731762649563405741554714765368016585672682818196417556102743325995794277992161179127721860102676175628708308549250237249463498632199246554625865421987058502349249518702988037152901780719670157794298773051786828810943191944320846667387229378548023836942671641803261424207636852641314333327346823477442261338912675199878353108658190456927842158482223324514030942578781522348325502294184273745234015563558415968292668015599738437613602180261355783640000836179364506302009772251309029288301395705982011236547143118982183895101024826455444065568636513723528421435443700447032192197553398827624307463595543593660962156583420617860734479506795241261818811896690351886693037558453225094921985497112059057742315166353115179467395434647588678064402846564800632639533435989096932302279683147057522680566434002558892030470220949013684365694485688863623149836650134723341439206017203350939568532685694886645433750450818495402867757971782760137166289356428454754960960330877482469813285062126760618977799778915309611769895609250831011088368748306546896214035187940245380979974713217128417767059989505018064059598649085384340270230700574820603546317390902511483352745159497547481766293392489896271622660798049106369853540789676510382000407070267044364215970669742462936483322480416056229295703289726938778190144593376895720148062036396665439545011112524614069872674457473115112344452230436736670757214243063380902090113573325441939678355599654345752053517392344513834083773346338282319440932993378695592403152999808587919225132890136457139547628319601134003035660592541959119618249458081616395843604306262308373010835915563952638032726171658769887011614541392867542901985016811736050915711448089251767709202929651478405070130613261389099206564009821077778753742237309585639940245205246624233975427967820613153366787334753262213486796380639294189560075540347544171947344909736628370403707771025749593079894977350326535281919148323546599522303834719620348829784616812980867767472567892922082818937674603081156311243555054866286925182801157121493621724615673492335068489521907511349064903297792106514309428617926706337771288406922241053213375493245834916715485378942276589143875341091043902292629152877587443402789437940655074396128413682330606358669418570484023633692558253574643823154002617185662580206918105229798768178652438191496801070294948932945063230060840849063420413762179636618050048140035964263699904628500988448174044505576784930504918824270563838201374511429532547905311931456888819312264127325418781169679705546858446015689758811776202899976812024908179342492986624901968853968538739215344988505771749932284520944426371112483950002694350747285069955187259542707972635725517389270071917622289392317895727067689926282004833279955213766350385112848486147677286865460230047550155863940946344602082361730059061732819650407291727942266306243147334216333080621093335969497936073540682276153904766152075792861936354462700526892825508455746975241606025816336031431811916232005535954649144720754355257829479057232436548435650450403800158628111663313117465117436723365557862826154362492035922981552589264608874153277751523147517462164903554623122838186955685610612606090319995664292669010395423491087468235543756468087305639607394886612864992218147297181276850847936758049023781491551182575271570381247576732662308127752404285001943298132891652168242614772810171913044581137595187857195339407477353831610097230221432866913804370700702077146834628645160648438705295644462391126669415723284901440522167740000371655364120770541246225532050884964584883190814888761850977632927455626918920493640070448008548923527747923108116165429408846556046668547840931203265926264009040168342121734231981305705155156891725286256758292301975561411602697318647761881036475485148565734430468858790823318241731385486205474277058183143602456973952505750836692508271395156558080422110414553532931115329012109489037547398875780666288501299674676569349792544259296503671951651533817318756687255909450781946984124847380018098221931472538773264007714422435324334264051885612175086181211891889694184050943816651259981816969213505624076472365676555922202340029963175304206054065388788934492562858234972368258144875893401432178907690699784858095921728630116375535704367466446513979703321949598740828388999246543553584908881590114753011170929444874736039781734424964820562181546511854363369710260591434217901445401775072802143214895880671115086615438582010440096845494681659165963830512712919255693612917557162877103470988699686833038937395683025313512562059661945926969044307759807045532436466648143405871861442833176740513186433236312224554338972777103966369535942451964192792729281911175668258902192383100230688331745097317858130441227821232133024297557349411495512508485460064894091355688775490285146944678616376270439839222054752242523493033555605702872192687070769287746289967741340399989520873322115687427165966133771554075153063915015651549038720575640187239134296377452361596822657487473297572083106100134859941371347191881939991616097143958371170358088899614037751841824722977387281233144768034992459943784681725799710276744887626686337613268666716476703683598734296426479830709071241017182716926769410801980867294293854838462858825777426332968990192839241809034058019341894380745446487568619886444368524517661140627533469363202138420098977185814642191594336245323758444530243547876970888486819854653387508571728908577927865952506137027595961039423716099122692432585466152317058645090746011005684237025256562037714823535200866481204970502878010394406084316884373396254826413810032012717100997204675332325355476587064747472410213795794326857671512767686989331940162924512038333995112074684947870061076034194598963132699448600299324996722821449932428896613409955439351311298661778672173884354615594573072187499234036634060441967545985446879185623870046268429967705599147903261771411514755195892548272355917219516887000277460074300835182147400565295609669455644566928851631682687969181618632548765199819469960432970745975151358375698011819680861426652253476636423506872577524481827029726863674954086185011857550105746555561012008548630552860701013784411273405165044967595458159875000967922117851090547049239824473870164508073011864593736770907931035075000480317156121559587457020860764374058776765214920820854269426202431287345224783175285911582985243899811423681149079545015258013030783925577036388551664521242918727281053115269088730949230885245203235498519466600934407371944384145642427078297247522740847936939064268510284859201876913428580468876679916398135238254628570155635893544870671063418076294712004399499342661449462837946359181418475911962043669458899482410435574809895399749331944095286281730603798779537361413611018117369384722889762279284735219987898021558213936893601979125253425856691889806284922662025996633763100551212432728265956112516293795620457651146464415047054039390926258119036607104795283255223877991561879202529754650192841628202094864417392395509544522248026093727568558339298161258803191989336921168175537684483491996735392538255620956689468384106555822480668508404854613504040025695551495453701689518926029777185308930988711727531343777598616583673584289337112209670007187525378753383976693699464887356128050935566628975534229855919643541170542035029336796125230398076325301893464756856233284212878968922294834437301347607719540503607467953367377502336059343571101050484363086298218563619841799122401183712436450628965481955430184555347924099507087582075097945925113428024886014380047575686445211108880762461714024894988531425611971046723955338204119391902722152678122432458991199320139025086218221845545316312036605496664453271130966590826774515704884109483784939184251300293619832880378335299497663031137031754938351354992220984895459199073488985591687013885242167009159209351087773185951896810776315714207023292020630200589989326178051375148432586983087955181407528308145368119434874400285402181017354184206880772661119706025376000117690150274615560899300209649320081087355215445379105025304270001051808065382521887987028991475701968276714860217248477533090419876845081837505127072122417673400929256902629508518787057989981231738267018071190737223026034444554915547671709004100185571962838901836246928917574007443604984736055111392179253255425140916527708311082623261361058192531795203857791754137361319178020786711511871065413722522035212524032546893905758550319255447947392850023773516943582158950807494971901665820822000404063498168653268005584077681735051714741647522249782556041775701630831837307876511346465745533008599729762832555725649867284202244164815635811141179025269683952784549272412893456211581173103548308452407572971442091115139514364826191427370025829576333326877483385076041758067777655229028502603022885403304042301617201481505544000445108314269666531634506314292101347863147827036242453576049405124237113762764637877476631608989450568098073312500724915526696129279605470846801230851627170413270508468374479105142739118389009587525225900540317367853745145025275869226460074363980931246228991796610499908490201036705201323743389562669869160879590352295975388001290815845468883002769942276945892189183561347767272363801890797410201573111577251812546383440922875350775690040590069272828247847935019320689393243358823165217823069090302757091026487972859768095648505372427944383550010578823617587556255630529561968853832135840868582504756692598148748999109128354208572202583942249769777597504883089346972079482266054197386450617631466435090240105951878239554653913386585133314351169685856030417596096635121582986802060136538927960611432078831702576441823816131631397460804705802737739407132795025006660489870476162906315718905479934874229777273205619997572654003486075180042885924534519963880604943664528999007330585611514123599743664660013162715970398076793692525279485765667823960585225493342341072888477216133917548069488839201085151356371074349954361044101784823107635093112702859864810275906535939729099071617820543416286324943136761653032460240279690714820903061093986078070742448275604172696899205474669782919053041455372373830258693481181049046834838930242348315023600764411181496228173053669247432619863098488962222315846100906994328060954785049627295681656587953329535261116310107001820151814658728741412303819951169653682212864619613093697717567982866526564547987891269974886442274119475676470545876060510592193749650822274984010167264598190536158562824461082768248958469840653205187686922150226901172161464843162001427293416993441532094135591996967233038122083800821542713537367605879873148399361635165256784697397163702629426314149980736505036254587496090566191273851650227910091893753437123099059031695269466467041264184195350296703320520569951056278744845693813052430755292185364951775997314548731449464852534901883373664748921896244255878629788432194903398487442889634979212019444803510569859135185522039690210640846754908403516997964414772235699990636119330279052796328974611543039819004694845488986267682548298721082579483774747283069859475567239364755933490440249429098456720601484132874981063402023685240536373258550555152251421013691577490335787939154108114867672735430575513301739733680058276440082446959475792301077808004153368624691890542589961641184296229896880490825070616168192969225546456271708885434071163307550366015620080871987392450471128699642761555672153069093313123771447590311056942644728365108947242491129939243612171923001177644446449923763364734144691808205180733657040554050698810849901742241750985667986425133253216258799584969314066208415155271675576336523776604042456449984496767496303207932777794434904777696404683927457102883866168231217333101196611415603099486994927580442200034344725183862458654119534155807397168312052181883088332206557239880934282588612300914533557491126611751837236361440307283875756981906671289928330888355067163559128561673748964792944699985462071900406495094374269899587301038763815148416542425721271903345272533794963279477857776678234638176757877864840566777281091183279512315027960142914002643254775792742056472428514437233416853601185364174153533713275077264247686422686894920013010711739047783371245241866197048794264362017891263532187946399942996562252750804176939996058813528146561571238549706832636015215335446678087884142158057381388825217276329041139413956749786738707969453456778799299981552387408650396855858876240965087133657507878469447223595678966083857222113133487356425231751920925936744052270146763708514147080424636596111542695222800367492830665504022423470861516676286966806646952027134107511472284959761679217518666230372139610654452075182535751281627111524974137929916004556614689429981590557566632279082354280307142524690757512707429585557234051656979284403044240008424186223631847364126463537367494645517049220449722603572543327784846642349936375123051176226698042767268364631239498009174414541701327197063190963253226530108919242858588069117738797087355690560762558760386069668022919186897104620212074192644802140379366981858006385039117817593640701723260781200195576163301364341591994305177303811855587296168951168597711100731000076251676280554262492780902922127533114757767422430597514494128047514983850865734966683090755884414362719908677397493073088609805477557334135795753270797975642931910389446676786303041283584969682283464338383329763391628164685908673705502031714500473220359598652545672476814759181496995060001202979483173871332894823615512515596194903503495932024173431095859236765407197752795865086467558782172559355378136793216303843788398810952006005374916796249868055070791589155947405702526792156731944948958666046049936463062553134579407073681502665276958847896667553622554882100463221344200575691343020912236609830543134618588989080656265517329235308623414831393418220554890316666781969694068631169495597767127962127559829675067010521274678567637525773403075774952434779046798090339063287701165827009908275428409069292845363363772092312859128556169708342411506507423255056203168920382927917250533097229384404659303260191640905269348739907370280417086888827018274179537231381922218958663282786955705376437262139541392903527760327185371079978067389853683507578156848264951775790948162873310393389531141408440710247063383128213526210177091384571009959916613635867695187664515342524339953407648976835041694022207768194448472064391900956144771523204273676824701356115323717382585953183595781124711257991977794851270244314595147355148736651265395377287830227899093260682025075448916686098594562072954371857561973559884053320646690159426661871701149707948301393804277450481749517554660626820424769828675269658305644911088439948074409678932268562044760005184002112839667560692020555217100891871202759923650966576924364656165987978386545883476030623945548796333769481680597259102487870044334032711316056463826549767019695591250136022005655861416138718093931184787492907246923012776716807992637782784790373601805242288193169559986025217903319561195650505619920450495094274400867288323597326447681829324423976464377694694161224682797897633956512281567006851549354614905260596846105286717879120340247671067066647124034140389090350144434810282829985462937533474210699551237393376372399754620145617749385567161953482377491795052197768433158143827568262890984302060172752385587045317496664011836411918179116679240721473597472819519877133622241801497006416644776860650991853799180713434363218327488153703190176398879004568000605324201534986225325155498913373763322399611493725747146447990276719099012997191984869128393772624314552974035570559185292793886596974571562625729850719616555936411408388226496632086302709782299243430339396621835980913811571784049225537663697367863169527901443714308617852877924562998375538709746769198569178563579147083589646390220448393352593502493364967328850624388494828430361131460157935590411665513036264736046210394996467850121052574881336288186179855938756388518760427112283102361060857271219216028054939099982623838726450687855113423397704973861245296176039575699919200825778380525938378740142309084743269083449998132255417078038728328052542856655584316405155628567625918026000291410074493662889872450484849453571250023608344439210206484198817762030147123620372169980167884795881091975865816901649541047797580425127945251485450704332034201550403898619838248017874321826658371388565210856122003445998790663614453125903040452585181567350377771822237357958987278248147448832086490168639031850011226535507482522550741168205271297644923250797986193063317996109422438457185997232644069929380025956845344792950611492976462027973477480212626329034915939552639824760875056000537943099019534822611977004267670848518266071969869371391049804816399068755107903154253683718523019445554098423869835705634270183719015728890297974626611869828732159138983044372822008750076818022423723957044215956236722455468775364018044998005596191399783655815940618138755348978000641318430527635347383728174813195415916462594409871733180405860543435828400015730066433587355402415987486811847959361140050282770604468752382857029590997195662256304683043371017847512608348585294531082519359803242312878501960606543446021802577241287472522518391029941234926088429162967610165126512991016035546123359114322866496769554720634892852006084779326190125610604895201364132935225805772706389505753471822657156198963170180122454536694916041469504304895578102777952900103375182461881363466026015200926881159978155347511968477334582720072301303977523493096739698996886385983996112103368657604346703650909812580636192824229436375299078200787790346887762493708722942467212541403936909260962965479763497404065370857280421960285479023922386488875499164708170465881486455651576130711821969088818583579108995671850396550045656396251307543834340756185714756289441347668454155470558528069042679669969652630516629675300927182434505523174209694426708376621116064020534350659186656291778668057745035254817009663761729007397898310408858751695796405023140494118410253137061734768284606272538343735253477835719523826743840876938258088745551322281333162478864297136937326725756296343032500112729693927199603199541688416007980040074790305124014962141941680326592045172742950057115401429465316603523832506190707021309405986185460702696891920001904928207266222857123887806627621792350556088291196185445705806551005947573353233395405072603463986634860304969984726480965821091329302345085359191514831739939661916224214844519341512073421219254112682120350341727697706788756398075082133266748556488675410316475442901570773390099972517750363089450007579582709936816356572028038936667454370890813968607546769242007505463516237900312991564328184884425983284161879458654566905228980966634500711869219582352807878617735601725195349444712811819653608010552629884175682661704135952201088068768233328602585635251867577004914822101530074021803532496557857563927315518597043100494800247521957894927117540612034692195287029403359664827972053334257277618324511528098977604954255160220492781046390482828777269941262982757741572457468713061344264499747192638262412390247607673774547496125415554797298681705953157826303443382213187568395738575271176078885060892912135997044717329456432732889756937186263337718380745454848057694104607781337057810701014714178607768239467530273487797447789214930435472123303168610142244656766262236639688005499051340803559425903352918952629114462720522017188134729482373190487707831633859730374993765340067751611075914828501591254204430768992245672373168896805263141698297711176569512733142727625207540230580959255354511303459255671428227706615170379285590305765313181941300829606395554451575550661933795278784565001930232058018418013472927374535458897929538286905764609896511190502929387170155782386534450825510693153056027104281129381165101264304402551481297617441760275113461043866607483999888981252876326444155303335706110541463110665025724232766736681690881206618841698859746116792681865178359907647413115849258828029228846603439071554859701779792083186536783349783861050530093597684209578934015666231470262545184158411239037282830188188300611681312752665770828721448548045082722786497244587326872918797729531747472351059927523475527957082825484393582453894054088095219448892279328146049259487157957293733294205872465066226704451574285595998934750611325854234706303853226851176092293964449343716277324937475647995534972531499844872165175380362889562450945890060319029511966222595227159254686191528736147304318937901467694352196190555496476499171205710191775876549814683788217255274207222070710107169625804767413758005511383373910547279318266912915430301285401791085270462386499628186922426846161770873022510653946071064775433300523043102532458773868612019728330553019473843324299318419373545139444369383579495783469099945333437987446781058866391280644741450379029315657988981723579155415592501537722938763844859681605022568785962626688211638750216312233149688514439221416706484122623101177267010025478677130178157025265216951583797278424509982771516324344267058649584389534062527421330432416015529634114442812476815521988333140607230641740036795200580173389176635877114297489415936984994598368476969824325099336649409676843883994498195948191254994746270467127433325743713612672758667112817018220619228099147767693242095912358507585710551647062182634026826474749211207085971755039103268467406219526474766415710683062605235355235172814832528786170337107721407645993496173847790080130556171456820873655637688889630274464665223213088685210639230067857365312805262212804382322458698477304570991621892953137463687058398660009944428598181934386693040922879202397010298152655522029707911905124922781330569000877657926527657106634557474548127704994780457080936355741610215185197651573324901249778054866507773323565239127977303665595417085709356865022982296740107003034992518641277444843954011882886371395488783037681613916103909695525979833492746491017461727172045425343302916373298010906348583677337516988990760747658498867380856238562784579173168359937321463734170169486373352210206661834622982731377747788696673610636225463162827219288655467468263150804298122382111796852497626998298727817059176809738280157765002723005728619560071353645217062397776742139993365574314483132896011145605753778995436226714353858173487404405928492285816776276063928130347587721369046209949225935034701872978650921034579245510521710764848268198157181771250613551485745996293297681411897418914205779680549945442188440822894686657638977422069209710679855262969139601673761919792381553401209313900670749320758577560098526557305849999985639807089286136388331843644053639600187788713963724150737366085488112588797724368898240158589097699780723989862679882171550089623431677208410633050808344157262697573447880482059843166887149316337412086675955757648953160429492092602874327248900288070173534983788163402448282264291583346427533603469587138559353273893243244848470257152775863477155337277566249861859607144355988390854070590986342185690821592682803191269619108171404513660911922394556178043102347431485393657888539712774583496623224087624070524500030872853837788234881313783262657853120609664742787090194135698879595789962256779816954516334063753412636837730331499327403019959320448582030276514639951036408128842456293494424515432825058560130556476438294723307854615291341519337908023675880793301806516887964982442394237810132952871215018625307583978790173979271725117416390832150278687031376762112793457587767909033850269473222792434719475254802942104830606348903906083674050311640449433913711053028002963124459305837664147624053472270899621066660071718848087996115048027093133735985079210292574310401823605544705319849620491237962069229497419215649756850446399953557033248151375195903331077009324899391424701460520697543587941264468358287007912992709677308492479914185975812632389564163382020078760320554142026714383701070949248278909500730601807555299611327074569649354543973873309962363487010674877334845991635857499563678873972628325143388969583535041663954597650661457781276316446757173804311315179722358533490537618013264746266538862864424449892116125208568281126015487644107136880912113327645085570919791415979134486370005017904066134092086743319643688106050454569129329875453897324598195989856025232359177924768648004417720060671423717702941111215282611137020325084274260738816509551451934828588916289468054920313483519278016913386188247461899979226217669787218671473200479835315543773731157129436169876331088443487986948109956624221716610048664193046606837545466993489928689691804916941885664176436428276814698424317781410078766638174840765962440311162232615623886171667596112867753628948037460768079247836114382320969403671446324321671396018022260899311718358171246846869698087231161792055905864121032730677020483139899775926723077714514538105953422347514894221892385164238484198046921292208677151285677514747117024397483298478684303966247460989494777540219730626923763618984922816439996921569776773122381891537422256499776095503275201241370573726611849933719362060317792769225838602088650132898763249188977911956931659666829839402638098616644863203105931009631343238625633329989754963713112878935132560785338606372819753086937760981146647694829954976648930887837811410748361794902026875156385118253635022103689927046016388722580153908343653925965529262344503989358256158961253268097067123140823331071135392891104463870895194950631110449895786600293201203010114089123450242953915564469874894205478840312536606663835420926017690885671947419830667435341722138570248904856960862322826848436449337713150602869673791413180118435052601930143216250370093654959193069971013283680138374194004182064462893434547465025182134780744049935737807636909362436281407829559946245270894920557729641262494166610539996379115668691523201036935113425800972360434373693113086591779326547810759288243934209311024995991926309833799240450569030937049135768864556364870550248401101848386113704129052117151096070913315738236653581070847908069194205739257024810841541982343723212789560093296311694691359608184662551884358234281744843941033866541275113889932949175451832103705549406122630922753785246371796896458731082837479716487721465252825793103918143488495180272902538602494944371597783325129499766324968285925846862740352882377059297182644027288774051342031729520894261671786070191002744174059867975171781837620201809169974340058299852723284863508275761596538625443011280901420614742141833364405687473042673179223403505813932676771636077497520240883433686651074683301839366846468662274365956351369186918959329585410203289729965390256961616091771450220541287431969139521044130188741053730285038157159846051309044665892086099232584157604820770734760918672583772275429451379221811009080995759002472519675756746429998948608175454838595642503594725725216015726065712012008635086375072847394620599904700299861413646786705212616378714253144253494589132861876574040767986433284524012970526258208343688257596655291957792624537934287739211534878699729743034282466648411244543003213851775054727546532255501080381482676202949450107986075509019281236730077015563878639617536927656395772035088163519614833786105924501744795369258133431796912434861723393965422812905957014897222737649925155841415015355511668551402095864155969672160895210424851120516123850326944619420727218954933771278453693494137845399912457933904387805909264722768638520034622960987258858169223290211214926918899496078261597296811920261760840215744106119087490189221079869790876996668994329236585753361906184419413240433772788626126861366458574078669170565851663371857178716185332581609564966164965289212918150076233418405433772524807345678997281669236135403834591022560597409525600878545562990161057273748019320678473761196182333115862827327482379872895840808657813848227604253441921907625439766128716495467962590130367337499111717494135606624397709341362828807844348891236117547696138402807127043867650577331778437797409271736189787345691472503177543035155465579002577668629142474127271137244710816106731035156488524572286568308655567090878715052687927647875629980265634180920610854566407730370736774344820534950141169425373925123933615307147101406892016296457359382688789645643885764125310919656659279264764755014647244716953530546565561476000728534250533124045430563810309918503925237916169048372975150494136171731239995247528904006894584108854344761826399311239489766625121381680551538315773662257720970905609538157722606896215222253068947289493183338164891524526531559121205609680359735076774115282595479614803715265935565330740782617059491247607464543539918895960706666074729262044907830551936610307740359433265413184230021880520461358199618728313456206359395446355272966852877431818769681782226211170604261557621307505409007032583580505609349612401823908294763902425680083274999242324128725186719526932329797392957233267893231618548032968258390883807467541271572276072292189375491019177175200249723042760859392907459383677284644060075185811344904002750987937280407082723746199088815676815428402177336019590681038563433453300520099338677564714679502391536840508380430959738815762978708128086042539443585088430825563581249522754101445871097432619502344873181718065643331295168067002797771744486216024605426246337452291035862090726145025651116191121437244803291435526098929491247335221950513581193285064321166471493944371968079414087181677776692745759743566924892751487674769388616709966443487652186286550397438814695157903442073662717467986048851223364533092949248862442220472500678441828473818374462725853183817859270494548548722218164187627641863535254593201851146980036410796620279636174095371258034016394765352919101029218350152437215197666995760629424490858921121278480776584940058398094686628033276758290436826124141052857489028263962591525181732833254317302027366638684281184589739085702159064042789422696542390230205882193620810203763106599162365303490114568816667249182847004116791462811240648387923912755047114185772906414969181497662807009672254742099387855721900090271910763305695848680097513835970492674953368756258026016925865972295514398639228084526045784822942555298668153027533136466869597749342494548301782895468013262530939562103888222593771548130980256596932207827774773373254514259054914620004486140545589768217067901731334003906565030467287957896584758209346146018252489895002423975926706960979005425302447078595747587688080816625678456236448910710318392487272304646436510136418476675656051282513636747252481126934917672591257590842262740817326293764533467050064016351331352572549332267025581931678516975742671337257095306520524803611658313230944535023113503391722666151644206953702639408074047911011801528124423053468028121894675661271055998035882614069980207365452392027430324053227180341507669987442496695179434187014463525747467129429817834648358722699674296102713350434234849234102956674726809873743370061928729525122238258766603341754579412445090276419896426851506930950112187450588819715443150167828684989460062644392148246635302804802799705003830322846285408778280259054182313325311043408460034859977687012950605185872442056674088461355610366882038130253123519127500350322067443995153810989882847513216932226057018313377161416922166511103851901087508144231214441630022032831972340373638332426592529484903743762130234749511378474829360547745880211742997554426260672336631599629104159432451947172686616561800350318251462480956412590945974480070280591668175432487191550701270800816131170092034146349803091998121145397944430017212620345244202795810235182118258179935792577950608932423975117150728016180122659999377529545583890802595746184815432798707506670827975673201245371381323678870148809985441088775116666941715703912653864504703757581646964528859290352148639696692097536840599645203295677122882923267320611594495345220410764293921162003714968870354336980494474310293797608642128126795795777286896969637407775763594464702916062009935605885266912654169245046297998745926730381405898693597438833524015938552680278111359145076723834484558723864750370500456046367855569320362159097468322457394442171934962654881535175913748019799195368512775480947658163330644068310565465905938521716685529014818016893661461742057391276847743147005842878677960880794561957838990029518406527858793183344081849935262477487762752449273647854244408235410574362753365387232579049329012980116600068148753661711096187478636193825103072573272972862384830260361011669808103976395709661235582129138868013653490401808589718778158881710802347055675129951614584572055547030585194983344350922012351692081915981332091345294288455372813818035560140025429770070200840880786082792178222656252873596720666032480407444433103208228277511966233684295251186793131063536748895843704123726448408912194977064554364004980959250656178815834617158871240482168488099393355197677801560353687779978392615992576004270745256700859512283155304167225517127621011600178654654991767984840993374763622011575968461081575792402482516175613322670469975039735106033132586472713094949135066241455538910737559079628521745794323923067188758808110328112299930840231137691232422202508222403135157446343009652430168817254479143651366606302102014006227935495921964490189467957609465055318351760210723685083786892964548205304685290306187903002086678251676448430425144268732780231395311037321146704741640956371719423945091339699595951398295339131744613704880564205821422039700627255547925395080449368948742185676707608029297267504597559574376925170278264592365166847826429609580394341201637018184573199438182143435277759426513335433528740125364181178039401598515641372294223036023855715085937064406872557874992307111185262695072080371633914962172522937836942358831250104074094888570651420005899041399391615044678077862073822458272245125897072976540257450835819019077379628526006507446165895646623154653043500102800114529221082825229157919854228301337825151093607711951853464889569247666071193763193916510946093428667662375041817973565493478135214745929495957997779382905758818992535817097104841824822005176065026854273467937644375029762253003938223968872861984047413448145755789871123062749535523384586015313427050204380625878416120026349373830662174132262215048327898820740551299075339193255977499924121528674241227607344650117952288525231436138418318122279068301147639341074974577007883827479426487882067861250362469297608666003798499385588312663079777192564392684804923424620990700771074646478017353831560597403601121965737933350637366726784388517259244467039753946047220276789217723617411055937130884979523591042547196076193119072680927400173301995868041389129221546654196523631546885217935377729108454985009037577117228355895808608187239846862206908044249875418856274512234726309205614306588958114087648612351690114758425596579440431139627696198242422916698165921230695270523036020460867680298669227206542358496789959438628223646334238955185966797011085120028651554084240873217480382610092703841540157203061184813972163740581460449244751738926000354983112568272357301810816741924326106471253916679602271266032349565948922155270150155876515202041790108161085467477607159337071448346821744434916305628212095587241092649001097878886025859013359277975705007510844620309347336863544477203353021173957422677286340833324958892178144737442541095733543341663863472717758317907955590159948771592993956040149742131800095529809639194702025399521498848971657067324444140565991621200679677321041079190952986452492849983005005712826952634282218648953696865289346784810743957817230100923916149424124033001999529653815835567318762047277921986239527489873474417939984535063512855414750977229385335198147618293910133450707905512336341928950763064082556081068848327220488905353376561961189100963786743261940317813813315673138116454658899551939826655274851511372999373281288798350278914310505980912998442070121627804108364762072305982144132090738133074554167634102078178464517021130923364270768107683831564324735362088243695930573429018242717894888572569750473539953079121492339807429482797624435546881522576439917132132358714966669886828577819960759919192575925700598434321299425537970954016543657651455991651557137935185022198008232362923990108620641159374738210456881685868008308477932839984126898908683642437329327938865347506121875271240594895533542680711831541755729913229538928978449487215617478416159489741260343046023482416763749190929187733883801072916841581632440181957040620129036427858624660138377958985488302739649156922846196439670651971676699850219433448193588871523519658635310865582647287814319274057006099231005102300403475254792782989265971785956114405161056262204514389404977409818127752214697124429042459518998018039105390643830411417206712897572886319544443391757350221792286475903303404068852314455099923410259483079112469815118651990219400094729867442002834581053213223022327559823470379304494607377870436171780290457599935580604383353114006710922226236012953126336940252315057650690238204411291913956805141698609297229211437616392709089784335475402729618155455885832887545807385486587750679091041201208808912152083613199739912921173754323308396789298871972129948328640277536752029113097158405272695225186345727578673621647701889226234466197727888414849309968687645651206787524052411491468979310666232363371878358637091923344989645408236321696092000218339491176828678482283282813865013733511779352193396645073752161233766673095419406928613426740882503082018925785260511453977508171427553098549437033437991106667427515891883167931324033899834339276731052308941449911834822119641646302307144107867377936442258070024757590685977626193486036648957673224187987565527722237539407829551025307344092727335246478249019464542034435922363918324305959900988108990572907929448965124143291322623969097139021440985217992763990876238346158153731961592703122981448577727389755178620377548853902268648897393340745578639456441272782695621024622872327615289560880461264279696498408015363598933330878654058266930444512151307927298545229440862800410356388356280681407950850902428835746642694077649540229831443507407674158782118112740424830328755201440830658395817082677484560719050015061928558324511477327507016331946017027353414104739032066896843247246776730553649198682548878192040391784575687874976516346878641461583888001514114116479886602459011762860610136592875212160981955702600004713987559315480347468720225040849142850862515273442299121641404860624532432330391456696902207987400631525618322995963732102716074684595986206237323037464564475495854003910476030657983655312602163389537796302019951618793930465822016354926287479910651381600321568908087941577407728479945886155190311813784660178022610710589192951526863387848086736429997970694245919347162161035378962478073848750269905534149188665074098867883651780873379367162523791780664804264015467146376100263825974369469326444327705401616279906047196443685786608804498529094385433951027542673859611034063481702294959525160344526611219863190935790655311108744598033054224729426663336302253199834583014579239503466470508862506607115453197950315094847217097372081909422529812636372276822920504278745913723804451360801563630417627106115237387344222099547503524831296156245724567231961594769568611301183991155299115551588323549561643204521985702436375674268671883471220058760575253130202132326509714030752166966626666192181451121447382173984191762069759768089751051481256744967893560789444816036893572639839125723989693784662499699595482733088680422210294690164487657605248710205475982536054927726324359056273896262201598565032809439562062665653758970308249887820804463286333151772136953949298709282483090332898063416382693565259375987471712056164408047618061520193492720581521956288764972259024394670830354972548601498249096749203809727310655103838373738523438453004472136080420735017545948344353881185107614614870908207866276135146808080781711241926603931350396410604011399757342960374008401136680026690267554037418984584414944108691364748294922027211337811313210685411562567437278557839943287246890125733998001861312578177521368088212524407214487726189900160269453122382239787263018984500209584329923315604862156689469625237748040219532922840932393822306602329013288272018388843040982753300521355535947860185157303413448844830746120587223223036778042197923988560947715525452918759493490337983245032376988056753285632880214147979526338269208250662218517813672279461010937291519636294072665382574299985970880724598105684868572903139394400281535887848326742747063838761045138643030780841395683123131208966967562865265292832049290404266439074898931898309344332743575153623612668762770049555824821790725629589712218155594510453321651636847409541968318662972938904522045186895294269553428693990181840846349879626482331591135461121992999366864816579546472058552741067366332237203266542914872042980998172079219050398473325173874891158125720532800924257451833011133328767303105325017751150478175640699216981858308759725450919038844580263857278097190721396481255117673968749343344999102039816698618308508037509925271750391970633550291648139928812251713191344913362843712367363153559722765573780660833593148050680463432773087416529463384649518821156379168163795564334484502023577061564329164034003848265524583589167084810881863051183767298935220573888795103938017010429017060449721497999333693994822607283814484156609275022457822299998063123576456729101145628187559057427568348602696271897731392214935814857151723649685845230562660206692855970193058883685853260267719365042523009463029576071362616319622708951570704380503843288050993174503964143011374526469415266731966611590222867482594174699064041327510645608469601978664106804148454642004847773582423617268415780551386085295725353300531050579342496335761921433970942338218590362108167642999716811599010276972001282164362171159246718035769400731249723231117290536738452476377154573392961276768143191075980192069769927433740794002533622747568749004610381467937752820453139289598587972174952093288446181013363478848273132910486927216948901481069809377012311858988220809895211117479546249787446810565875813745836368337397108588667964751618321033758920656460386699643923546553701868508886519961789103467227025165274995641260996758441412207417728033504546299575113661196510872190310247055642278649191842542051008756679692879461301597609247571148553652109244039108234160321760422591463708143248992450601738221657801452736783295862322661246669445292172319266639270816953196580244278113998219273783183231392780807973981172200343651334797286820960983496360998170233059841628504403258131606383347260570560603055246729028489293055648016760835124841140206939713560244614044489994144287121602194252402184645672464225213233341716726396563049436470334822910995702901442286447432561455820292184429044674645245129877781005399193649949895505860947019731552042766031164908074841130552295713179141468499562401327133532792327415578181232416612088272328093101554943299555584443581887254142232825072674121827395288655180682955940881040869805072602776539290683505534996162682816877117623111049544861697143376435893956190070794893091910378985892732180656747721437338805280268659419461861103248151422400086059906132511699953761272463809102100493389335210123824425100138957477780517375888851912154090102125347498807628421282859183166660311349799271159068907841857979095940328212467838559452385919575615468049966494160844753682155906537530248750353820032860688224451932320329507636302482297550671480404601328308979909526203404565352757261729498929751929820329518465754824444851002251617791230649266968640801264518504413064021476098518706046533863556625944783733601088434561929319453201908149977855676754030621714658581410663210632410312841581240342355485107756419138852755095411116830743633752521637776322618834719008760962312869592196691000177856104912026345212509953736361575210743765586258174624324402225359763201348421983387827748138983950378194215931826723422433887817198374044879098593941278003393316065444057299405539566667212687733583718699785067054322524892379002878140139710046638804596396379733106815969325557688903950553396804836676357780348075077888955056072679579729564709201703460846832698004271404514744819115491048455768395122650613790634342045434620209204581418371003127807694281497165840883588397700247206560484997383506952575050590562723925675379171517203570072991906137177118503133428548469191938692683379667037269817262043550383200110863999933516348998199769658261569370812689984236424783754386278553034132346724870830116748566037348372633028503469109822098012925598499577404424680335594487870630741845275590095354770325268997652403793048120479735004253274727456804074173226549094333759162449411147634851788744352536921709904177565431307601971319763698747763860179557913159444217586231759074863251774880274031891202063447052793938707073390266492741130708829497209622610962236364446188250540253386204136614121871146202709191995774029770313211499842372466727649115122552874145482534611130169634443838744351299767744695588774242881654188010508021967453505465571378556241457720698924799607365641833294412623280825323171402519941940008069535157803007022363788850129789651046349777671431785464209037771077866690446145785008462380921371571196175389827931367235359380938328524240018990468946719604673799019798406342223268079174215687951124966776897471344420875429892680343217064534825192963749780421454895929560983482218304783376061568299912088464162325136563606181329870697330571635558057282759044050567078648705842244955411958195094302303113357280269467016878363389013603854954582694318208578759179543436613297762898789820490354100021419759057894873948429485176035214746353680217588691230872852154901255541127554932203695025721893606141144014893507128874516677969501949090841714034658632279854519024510153977002707448502946055931136154718372541182970083969789325098911515942355176690979576554252881287873514960523783163728979653581769756522140893686495768536370726845352213115480325467922064372494436145463905351414830949113101365442420046631640189694404126227275464527525623566301009042122575582270841069965961696285844638122963824161862902204546401242618133495100840037770683648591788469007004743466863052609757887994105113680766028154395009531253939116267046281816708868919504015811712232664157479548362677045747877087559539116249209092913492730697851902469115993534753940705045829231047547588634808996982993171784381081225102218131616469321150616743151123060734721694174084787491371180823487814139563812644830459447678304871824194282999468219946358260443143922514665180735096674202990746540955039136416053595190333272762748239586260667390781760400078598769823947593597648288382301512952575425372634393389287280603761455559806064136501980527393446470232512896245616459002463297331212745876103874358465409250214025895965779378390816736675148068099619429620059968375657716135273528304982771320917911924013563000890143283847955491374750883453420602749885539568952385608221353252115094639584023682802893851125197581712068495942904613211433880186574497091418102460558944481969272796542065543255744873936577352069235052354472265301960050056802489459042798766785989843464617604655049142187856007863148847044131904484741824203583485236911758395324177576117110831418172667035949332991357927158382385501724288218102685178610994609798142637376522356301616984120734068098294911709040983311718071138222592215973818687877041458890384414264429835629098600895630190656694354187904989273857962228377594655051890888592443148264344854729360025017300573729733563965501662765403221412750360174992964483187258735981621157530775365769509908214155620205042930466695686654913866061436924794061938171526227482042565892525369404439575438408260196656893467769596944976761082558158234068275118285400236738623194280176839611938989239827915857851873807733950438750965450082609573238883684580858812875433312665709264163332551748021445925390341623373615667221756245276808444325000287989160220080138297072610197244160212946004885674525169746922587106900858347285201582784443073412504405225006370692563454803281806003016013693619112676125854174797544734369526982767230434678623510021645849974576295039474654248941895110970538310287067689975518571703740107321389882617859226192023141783272576042758253197554476181222920280743726423584837491798775201835776910294463376813691921318053505490459015171457876537004885983862391867752822501957980729056099839517681217977968340749681338924112035496377540807403450118536686882644797822250204157564237775179152531924256814105055418298297975712064869602925278133359749916041254486502445282522556298547901553569407265050511901338635983222061375946860419523188622930946249029386605178097648883762554333599069430759331658035222600816576685140603975250905396005294715666118406667674707542838730893567026691366244500269764057190646100033742566045538767521152383100608791103279249402265809881733735163161700103840718596044763858739022640037439395006319333201129970813448308238041658637056573195943187325454722011146032934684526067558514681936746288170594890527203323114593652900530722791416304792230770259593150014859074380867670923335106377961758904961977105251754226789621906517152021839135728985448953494317130583166676400766519600176687216183322470632567629082953652507562963293387833497776324335539730755611127448759672864526770065505902350663819906277468595559228298833025982724539137606191298959681087370868087389643372631287269434455994493525211562791096558877620397624398149706578238167700347748896718376731542896818458008659808543999839849996563395065051940976588081561760288404898397800765886972563437819625759489927630943324587249010923092468065264227220780865637304951006697921589881981440911722681256750937578909853829266584134593891613957599936171058315650933180320151423457947652209006805343228783785187027749708678212618350079143543829480754243193867353464518015197745650300420984834188315129330898270630366940703518824611687503266455271068522632262917578339020298928022604304194231938722728368325063898467366378123696365116825490940337692916843720191878370083128570967578030612643674400293458592593304297058287152641279239712921963845447909447177487624916450052418049818635452166751118209046148816636607360688275600441517426396070286156467331438437927871974344894812890236916650610100868879743249189689737841986891782954341307470581967273304948425781233141387566148184017665984839381050086163272001167847064845445613276398590304711121528512152888772314423663930474378236074678679437134927163742320013117300830370257673183979025124059112246952831067907239377494668969388200113787726305214889906490613857652297059121498268706515096825721406386678187747484972811043826815173797237529420100626315660665833617044887579010569787633900532241681297705749307835421590442518224711552076113762849869056580854315570138533462016629907587979664386503848022088172473761919419081791667523555651928257102103803730638474648835525285543103030930989148332232470350487826961386830552231719413936746224717405638217745472559444078749500606782678630264239516443278742244342811146378708511969583680050266868221736409483693026037900107464297516581903535365726505281091553858991143513886787915285453621907220453414608251794527141761986858615550751638392989877298142257808337488596902663078961867321608813778380355790949243678115926465262862780754043187260393595557399508149499152531210579949029423260552242469461170701059089039542134012772319083690261550017058432458421134814533784188079682409033051119933273580504140856868478614781468796289279098049182107654632443376883030600616936879354818841015563809086763303547683749167677611343957936297222438690055145789646236161615090079768861235113620095640038674862342692037908445813697349425911431028765230931516496815318560837848171591276859464298061895079140729841753920905263840156686795018998614763202114042697725812013075417735956143029614820851142186617247422412491429472046559016045935886195136363314350550691880025903955946327649532945612776432680857752916198370249116690729264760895372152124676706108562595878863424068887557578877629738007181958314145614021610862136914357834678188730714171214960252184944444773731331254753336961958194735523327212084881707856777656877235159928752393020822255574125934659960380592474000176834214786217672085626601894381409557030195622852974640585463254562184893209783240114918206572300320431455664977546178857731876624746543787230466087383601584389111696228741107665968060142422719716664359896011601343411892329704801181254549618895905075221962826716827175360293179977785084802354670058245239041404944744415301188333762776230013854149648457450232682150893656982121356593346213028870531025453943752036677215092285019170212764023635579513426947105186736653901228504617964360333704925569324594487520664303152000398176528159203606885914123492824334787296320785846743258022460615447539550276184978852124615392158544668845691910689142251803509947789141098996572493485879095217072393474360988858569544037237594152643782630328608023218789954540460051939536963304527717706037963307750627827349508263638823363734065097148840460505074017781672310202582220890833182697523270677923004582543123881043651057339493597588943199066777873153856913709363864292020971331019180228694101026129517265054137855605893873397003714621597944590685094472942511974626421512912528083189839602057906358379672804542750897239156299377282690006046671213193393641044182018869820504600111062609215820217142439391683847991926736010812845720410938296916500231365162848956764774366339367159879167567065315344179371478317989233153792483286569622847580306434667640382387171775475095935427559497904012600398505652132470660457454434929246849363834905721235550828201384728502183420306424699766864073874514775649865001011468708369665688026646525429529558077684355753402082573312483086969029543728503797439720548677544581794902316820868271100865496495085541672674398798076932450564868017742255411347563232007865999570027630768424835010693335888704776760453342728676007154999626504676387151175788011115591594835431612269787612838620226955566533287312746122974734519000247487562922711636159219576727228172982773114942236788144494776776411701467685928227086846897619320172039336163753123357132223046993940851307232322550541096661207373442144992796554891893336511658795808379897248158801417027442553688567671227782924133216146682029322129788639232062131274676077784205279874045516992846556501022397062000338666645463200009181971319718357001653854214052348358834300150813583958320020257081758911203426950499955671744281862907267589023013833074396867513042950861259201305240090713487794163082809649472075696146842417145130670234090515133091333457925722260955025897180350199469749514022093539540938967328253560111937368856858253743030810989766834690702881761194334015981323932464677248335860189133745737297237653011863217097361348080081256236075644321380656175277721178199410462176851156693044546753278352475593124480646690372835545309077397597354741445939941874026881636056963959027825658293184962089990893676289723025363977711485240542825772986617891637874689897646604384722641045509791945830602444000353871198281835288022329588143873295081666098070023628428904490354887232214888709762353999902261898609768237373663548621552612237923761150165516480228289242213003751022550770007266010285964503278133581947217334644750897528558864974391206724114279947695708203548992084073776233523394771836981341149203524307835462366668310313932579413228632793848168668667165604601041570981476022669777441421183355722388156912847325869487685554224836850076479434936604725574609627672603433362457012018556663205102670019255564025182724231968017096857858841398314899663563558340591638611417344232518842987623916340272486547059767942598901541275597375422310524879174553676394582841826476915645008409401904801363830808595220094970490898821059283977571380397229035970067919372231803965416651402073907822477248909364996290796971101670852657853338513788548057598991582478835088585244567137425996961340186358890477826605190347690020673004921294014864298690799684439511095223575415273871011639471106873302183062258286354919827431939122507329035222837827831834798886549622667903987919703592137077388690099640205097021180452569868915211627121051418669865724576026480235231934729618903378782190102561588252945600846905701805100271754273757594645713785570222439353185760897497434391350129913803417599479740468321307010871295037465967472841863414712340797877411541461918563352463248712387525206436880997508876685378745683715688993592985225966185409994611612948128639663883488742016157929984377756854913911521224244670513025849815127203934235979629756420436517932998688127907726501845213319217101219363900503213034466216635424557708965563383316919953772322417498203683568223345747277002037976150115128547753281240030598429541057644753448086796745407043701372850929930026605120784305026820887092998137822415149960439437172558087588506457661406921152012741656103069461292409108457800833260462217412283201658795687692779664610991878868830473184191675717089327596029438074000406091140821677055398421935874315074545680518554517374959103452825073024758108239629964092148569852608497870152880328612181516091047632204691852238563765320187318881070937946911283375217314240721696642752095686930405262902901365296849734821075222706288250100308660332513226699879510754430421664691382860048969011707556546356005379188887957177885871606736362305535665452463829373795621936582617184651516629203979192157226416415967245656408658190487686690101568812239584969700444687494815036949271734399156625867997092763307203023637351184838741745959138092315996517380281556333090373218136389476176277110938660109925551750451458337384759001932916919281988231424229508558384277973591149209203584606517333139684537156917193834399954396516549191983147504796854606454414925854087341711004753566411343457700883613234860479258820427604872818074616172023654940452430898887262522044677348119832775720741020759185166971810082847421148471443586140450578795319597057901778606815356243611094242625910858982235474711097280320018012990527475916133630051541045486170349120502433119864897501818549670990329791922745391188669365544945284883484812735704501611248248165969996361242838323179803622764927170789906406530414158324426281899065794482970096689188441237418150342979206395950119088457160424682537378517008454178022879942775251446940408627865997512379454655664158309147341689710843620676357149420938323407308315505641174128180537072290529507312283391229541282145471735231766627576046157475791062385344067807298207237296122017596681261077787722806908431050013985403915286878251461141271545140389932051044784025620525012866985268348325608843100165960933118441127612017565738419451253336913107676969348819729248634281886390943398444798626594161470454349300314979636832766276732237270945061835645959880970158467382058309412123721919527570108211386419617679429717991816484366023681015622350924283915952856725808558986177691423201148767858863698701400401981985237492768134567049774107821143895257137731540945779713279301497193984003501377753979196836649415893680529225923779368699300065991793036895469298341605457244267399031362137522033813992501013238855441847699049135607009405942554702436570119489771654809754030908778121771600304903710750284720328104635648838380116565604158209910696986019037095864487088622372882763650490653001115365532734427102220138424725728016404279917742832928355805807955016511189449909601226018462109610746271223964418386747480772721795984806169819573633153587166422934706834012215459555813948710788780761132708766916590077021504825889777547282865831048693784920679486008244421178370352747501851021796225199876033562008040423178555516291051696644236866363357615282031428392678123857060701405105576242431705610989326541141435979373888132032656401654402048538771351316398812851187451849353856825324941643214836463650794723326276155832918925326901795576614566110044033202242023394855825009040841376658718300340533958645850604773757277344180511661136446976633233404828783095856692546402780343262481690427809445126534842008825849730969996345977678365722881278544852540414435784672254486710097040731738943349362587733466157054344631146342235798574880109136644059391558040475882118269542889039727570966155072593124385611071158759206918349340897613804078791481729440840210919806513865948465038900325768667700185345049180373792480359546350896399163716198909397599302197462997368601112089326173683386498091027625062785889505546910091258504905378902561126130348293774937708813061026220961508450896441103101470193284861384444119691401107060901604342555117716288241469842209453910655985079869947565667798698955306778046722394142561840072015806511158403074102694651980437822938970810891418923270736597823744098472026388301296504049485360774310292822892434859305596127385117822142253783675201348313831892664311476350211989875548844629456303078957789630366659828032158643924283938055845015646195820099963578612559711135611079195064142999243657806524785388911422791124043134107443805764908318507530420969020119448063346225052406241231306526869243499042367731846319543891427565253768837439261838851681783487163715410011095540947486545291533011801838455792495100327732504391417611581037345733868236980806412094100644989229198017975835073893307008656698297319806837797874001046762321316479875313387210593994441352515229318768314695381454935553300982157860302828021990145984676111667638753516107041425121991790302494182232037228887043513959934169891987785957613283485830743159573931201715455571985602495201420946688865788879781477290695335710258674989189061132453048460516960016881382021243697825351997842282516438303354308031631086262447827107504211083224614972204434819213491353823117563909741107878450495417296530535914278112499025736757079626162858019787825296162375622158964790733172933202816661263185060978367092522991469358973609050086119084021513224758841069511042761619017849156182210458862684850137222038420982403450688235201129933668711520860457290214429743977323493576295268539877795499511751717439598110250986125004210401468867868695961902407151763551691854246295092775164192411427306695205142625172957148453347216498654421003818195875187872051457471485137804639403636263371534061327876763931218458676355106725528939707020623026956816335212909249209446201321517291727110043405141997268516905831163611545439091185843694280939823130154409426694991978298124757231711881443924277661122972612611028946104111283635819803652180178743219133654445788825532807498414944604059430580811495390668756534498230980951799811225000183395546210333794345773613596595711461750147935666350618785515637517065038497209414690935213321629412837480135032439077623507986672870971907929640175414594797541309757265641206413680336989526358767958356070925941950453503842075213591175084416721355345067111143759591302524693746032250412234633675730308911976162181413639020688899434354222367715978846619442952364055303429489148284877298090628779231266068461645525778648894670895178637842407066524254578664654049049746185081531152235254254839155383570177564584098873116354361624075810217737469760994124604370600028195572224051569149137353903793093569543707399770187333307947957475597178663606356496076662908829351434397216031863120932568002831717649224051973911328513053401664386668738472331241057911725993613855411963664889766496456774465073176949634951950531007492531709978862413241711897954448235155924436912434924723840531837159762970674007993712721481445448297149232582407193887500546175199470132221715667687918690122226115478297849168928151308214399933426420597122827213748929747996821743361690237498494394513107365332317650597196277079960768109944009131439100427292679233963800456038496034707737115658024457809465366264650586255734542207008268106028476347468344285522425817566415563644312691141318064610592497760105448057408430521410068387902225696184751002658168445428060997340776074364433535803840509201258089747258046583331519530109480166838935107074810274064753400488735911992031319631797003102030393970507336376188476056523381111181788005310424784681544837454273739019749064655896823151115485732316496251654321909213458689741578449659332940834639343599885003243688738120936107620483212546591043572328619401437344585224909575569738929541935767114790298546698434987375296757425071903580844946723759563637781629372606536589813665073773410748812920939390089629639341345066376774631408696482656906735040890496717843835881699025737738579971295100613154184302228091342341899066525686443393501272964793825305873761755008308093871852385859255180488866027081501461067628120739451474825576827049178674136039658653869203070553859442827840171872775595066475613487813262892733999471435816245563454581268927846202606407022613044108364332822503956689639676050870804247466163424324128686491891285557540869838038372884300392356440289662470973829664878032644453415697091117193319804075300779286473303075691453804070807553102976983337395003734683698958972906666183990084307049438477345035286273996468290165865482451804699480593887039592291488772935742639472972737946098328626563905340792761265720398750701911769512050412786474279205337272222221675988879973832695575044568798250254677022722101310528344253526762722288060092484720989641822347161846735460187659290137485770915803943387778000205002588486562124638444290802699898418331359355360212234122617973570045260723340158701557453197576313245900049642350733339429511974266662273166674728683915656722360532446617417484331841613379562927120465020189877807065838668273121553341417907298648685942357750654246454885153399768443380862092245351778397815893256265913219253013943138543934393749858308942643546785459178353238870662670741048590689777661908219556056290188476356633868973470211722928540637424236852541990282940621371941679913124103016495681507872758953543848428892542286279017604088708832667348920782403714620671915967726026590529139036231419967084497175625436445593921896247406374470787534205364353955575485274144811405578282714490347510612603878004306392698705539792076804806748439507513296120988001151814285442735921461994286165895824705550019652678848011626001367479243358987606507283539289580269789660176276049021573177386569992578933417102011826762894143483409444678903965333153861498746708214192544814519376507556469575633092493246317597049397610081807328337967755777281655754078252088503644067333880541711049208023084085674493729585878034959079350416531606811483694562219100741961762673316817605421291877014703519023161573380122536939894506138560519028129593790084001638756067979808593105830553651065474385637178799763622213066889344546081440973598463189832612313303582120085407917672503686128494918801776941857460786442116815538305999146840386270174136994481457430617525224236281055018517143284626504556194581837216577226630518846644102446654231582788594671525938662482810602525977223716482820306569744406552610497104504099504519834973465972583621549309184085359372703025016226841746478283278203014465504932915048438945119500866218407772809628545538755602491003222406913534205716000277073483750271993232405632108545092522574429728054405996441621317459121104370241775250319585122372390123781220029721033156646982448946240138102288457938795189796970509907082126384345051629383642764334935511544157980942824239602413850094526477727315159183571175472956675342641944379254359462914602324401595061057061409827379575290486725651972309257161823288301905698796931908644676678243429006544725407859474924286253613948999661140739555966781654105294716928020523806924290188647742631069592369383477384916980976236503433222766756368809185746059265921125944506687352799287791218522807631388365866991504839185146653821149776713619967412882770452394552542920261526009352967397065487488878716145182817792934620880701815872057223373993328591367774212657311563992174737349310133637437358058013055714894096728901521478274798498131427965841665151795090922421643726229512522911856390256851018419576470948183530201036682222763187822655878669172589002076593249579197047606335565677515568095020109298980231830595905191475542106549043854819041658163120971558208369937540217069908552317183929986135073715101302095500560707488881067508508207677723605595592974559135837557468813745497231689918167895748787703852725422673116843277479148687145507232442519870983398695591680072143382166714695451772025322042869443087736195627073783550596855394743371003236896919123789393440361434125419216125699889747584616755872192863836774363902952370419270478133820427999786338426158632464282734038018421547977781844298973717292625865275705668412483785644708888519750129894682482777806099225970835586294281651904529993371268270294455507798518637886008009608878680961773569582911299550597121617801333142803727867818486955568524898885214639366021711666555745126971897239446501774933658822590122296430480783731808001870556310808240678389185747345903011130218949997689537117856486702266292457043085053666683055500462687589517385207948308798274361350826161564705173117252522481338308091808402026363600846826133502028106895012079439593176005024457833489635082717966123313490661208175676765243302789524892537766373655343100997557721407617214654077018027782005655597661723045249858686214571525523496199968593204788059486902336183863466665696979875870943139058267776812567684234095609964525660932492302829035869012947526478734645915606410116861952290828326290211169687011951762505299892761484660003408261573470295074793445457776193116366294289623374352340463821050693673214688809284798590428940991853146993042193476531961253127448298257128891679521490292588202814533556948411978697037692607698178178908544995071400011894927226303345466506422726207126022290331823493837828127575701436622444893699452486926780032099535909060513755859874951722891835277176688962646301735003554779393121730696863331878543137159283295857060419056977576532968540644319791773936563735829069923343597938209110584237735049985484860028926872721276696478855290224906096820516957177391242052844721685995564056724674809482822740168114013805942500971893603425129520550615342028101622852291417510293950072698536065142823651489601054065628388574262350278168071448724075758566603955909740941303477440820951046622448346746474519690764911136116794339467841204387277232342178401457613581103878488691127897842579640460440149396523935666480974266052962082156241115813372573736684711882768154631266116622425034187739965139693041240227863239913959013438800923755292427481431841924733399429871939363890939540892287176185420660058260683807460797778413988800244288294089406283292164398310851520041306210770141239909498498818787058836137523923839479755207548378153858618643519913487983721144952034001751474880542712906368928793678007538977643348250125855512076260719444868134520642825296647701582800020838405789049593795897172137744915053086583555062206213039910685940781416504783286756911408614141857144117889977800001505204319512446933244760145819467186210419643096418727320353591809209837040027054592913984753241951956543132769452803084231505234755220041400082327146137924046949637833179639681452463306804382436415331387798684263188815946510164015533236086278021735725798832539119345992215801159060549790323034547826880999031712911591630854334378045967637781530047086292824544939900114743697689711231651085460892526243058646848567544444031306007412097994248674236523440218320343448631252653185472616490956949832047650302965577782896140837893464733914046154645187635850060728009485152400917806891573481126994251398664304718932187580388522385034686037873535087453578384006287537626025014939519732562334065759799441752183467845778159963613593756662399543704545355206880145180505504042534441582421480377058413930595320015240770000402641255062490036870750016197536160313041704791510980493607067473126122480392074506471966469654216103679796151642152806656948132550568090779834188739226883357546169156241383038824953813497199040523328298564273217111064832501407994617613863823304615833552246284300395770559765898146236523471001178928686099855651611623619271566103286585190912038276361273457681353850110242614100994840401178145299668514819650763356642476340088711954411176854154574946946739986866518461505487276815991850358751036230687748746892805930487591884449572641612976353244736759402473877992552387331820199053060765789668189576476363285623636183217513231297750125107166903930143967511913730123671158814491292643587813358916048066054631227118878133555639448623778313498737012399293227709733774164697337357869550790652541510439597992080780181670325258709457802749525112206694721305832600128806490167666646982925974660453963084312765334569296276514820394626509725833166895211635461702540546884883099398297261377204461835055232880258395049752727282804684383757022753325892690582756729416490980834965881845809213569272357761337120476542088508989272550133516984947780633824911897088120674583051717520879218184511570377054651784748873076455065465680266381819089905988396206148611740540627342545724234172217424068614486729672190348201012238036608262359819438034095329557781233754023223254568967440922176548986224360010391169765424124607371210402819870802240882965298360544028626269277427634483098931629328590726041656166767047252242526225195496031950706559515239680201506438617372927356928301682658638123506756232344768015310524901393701421800226806008919615570514988060940548777772982546361896818068160686576022081578634436984594810721054726500772842380478653359545153791274833866803933076404364098539316073725814459363183515657994430910744042209278380944339249362459269659527865051836614647285828307625658574273193308740179748955251188338710613486735682609646831191724654127876257832046510926828427971019628114000359276556139463195349045079703396230441175616545525089222188003636539064689989584783274981640385453339221137516398970277926015285236289107898197064232822277930322230871036848101481818386181282227113542962372848948102615732189171852076960319665994111012643041482031727790131772715374510083132605534770779737869143634556250452371071297377509385178144086665920177517717528854063332911830721746883462609597343627009285050920543154033060266165779475286384143902315151184459883671751781915399698430447055641943718864051945901956524515698356455234236349649260279655699811450603861907573308346199175645145092305688420840605581689556922400419839606488799949881817949104947077212521040707033580333057527506989404915415429574002303015062993436581036209486773136971558494687926325716853062496834529019009763633428037301558569760666539841778684308758563026005903003013369750367519443068869446015428234822872082026383244093846798706568821639259219847308261759834039529504461398254665883165264711833312583565199380973094126014989396175765310010258319108303002181340545188084012669309492906997351942748356864595178187419112888432991055376307221861382021428148231002357576599981294379032773068206066199477210088008912039750577562297700725320256071540731165742352541008198535880952739904179236523103221940776464653511739615057846481421889055392152898047536852308668218274038271822161699129742367963295951491644869090813472415602670276155483252230007363307151016912803004514519324640513201695151248525585957544907161057454396772892461695573663267271561619999108160452812925439210566405014044579895951154640464306491681135376474814348428520441975732223919630561675102427704697247657625057106068303307145605317330997355879920552549599987817710078346925448283231004089577683348056487558842755141822241719944557684421116958563804365362217284949101614003599223199494324553317231797601337152923363285048408284655971836186746956800535081363735303821559371407125731571829335388045991259399368400918159680720453265393204343331086590666275452133312194714710575676953017721125975950569213812021437136432648796972416653708191816254802511911584514595526487621564399802832609940023898951498987627900646751625787010943038770981245311833617868023416501257005060942000332630273273123456052616283032672581165702939752985711288064524411252907122137355941122095700838037255217808920745940469634318868642952067770667562788634574216620367056952392366679745615589698648811205358808607355446863068264677708920222442322888445158559656815768777574026520086981239764951433713836828102684764224700646357201898089705873907383489363692175095000143106100006179651448391430452072487718338780105438497469699005417707187911253684022650704221671339967706141699732265242820968561772749263817065588225383819192906624761715744159820808419392494680315500151120467572272204209587482188994466005489318880351936322609853877420625215708775919523684433901318500598358516639668396910648534296292674090936561331671452859139581521510773205504084379954163340568722103768985275721736645372180870824903419611852052257777146536175376027672645736024882634285788959577384141032277626290126204114757614421592255616520905110072081015409093700121170389969540988979777587598037889176778463489653882723420648341477461414619207360190683103355092842475669011542543899611448416857707417271032798417471060555456708587952291742546782536126447183077520496977394547965248488598727218674679440879229941874069222586716483652695648997866101843639749365619265203682186942609187151213424401837554717136449507623366407524076436080977590214989632069253674854745131669535910254269882055851241110882569886055223616724186194824353244847852221584683131227424461104181638646669375121765441242034510126070905245768517675525361395026279196720678796944877472871261524612417156617819324031832246347887068041228755903404312013508429843006319072317724631659109134007338893008095210373458803205918797401677681392411653006970406822768173226828037555682886524598507420507586857492217835425601778233737170264263161127760381343824543565748238892870216565736174227505201747660323434600249906776367543171642168389549469535023749599644638437153328706997772239792738718599127473198949165112929994287518915208133151894581242701668384885388919044691651792276577343485952537248310054741203993449532871698711831317046107773647776497084343740193847276747961940429912726701215301547214141330891142189358381795472769292168674963611072081721086177897906188772632174305090625135793304461515874236833471893184948217695207017982349550378132616590523927057513794457121343987663470696407236159135799324036247597652375093189430086763218144340065425609289729240909164150873912719521780138074011121126915521463273462656516708962533031506774964111140036722531013423112236229804753642361178038012256730138423459133871997962950934224465644824169392132494034996524499836183805676303908487789818767067163811614637022816754679392618874244034863675505629562360424063298263112968600788260209896335710743520979088018590103389590102377465063241700347051101263364325858980700504133772038193147249310245552579003711863049236166493037018020193196572856461577643282947006449265757298429937431079181674630595936936629657735965291023775086512388887348382044563055320191602845540363525384362887795337843682550309797214502749653976966937523238339689655938645061806106668088565904846483468177877189076954353309546171510983039419234522829304682255497747217385485651474764822790333286358651986253816521643967346413450624851009431732792435793830864912085355418232560627343663287095206794225209526666611172389649576976738376708341065943233094759071343772947830019780528275448390782813884286638871879861737124211409682534502720451930149390630557912352966599404181005076958567739150360270516131925714865548056334821987254058228758552764285673525901686676244264048596866413478679211254529023375564234455663468421196099249738617976469722405710038610198828536533035488327391839140575666788032296909603391222838251970792810662390577273372254846158853587732682451672111730383382805019762151957940396331314786189280014507699831529554549466541486609330771957343508744899352892146907783634667448306369168925003008597244497510850840006693836628805532804336202424205706897339764119786576975739394588814188550285009163539144372363072487943280577774883926419575132882736393491998297189428530687492999508875952757778033782916086156324272888663155622376860725511433928930429534312218029868455395578896856816062313626692128660389705663567595039058631813790253200059699756516444589564885728692191498263837200833576863889001720469027843262714615492851184519941031542208915486569924656205947816128888133639757840528751848874193259368556986759702809750056766081761554734243415288343890983579269244666973072341820230304748419072763524233160556410572815631193555888782698185201518787905566028468021978957652047944172588168874441253440228616078652031975934955175130762491838341623428779884383074805590124950785601814748447439125010755666493021102310476442382275736356561448691805952202678941885118245967711418748230243906269332757488436332414304762825199290859222945426204778124021937236974922756367506220416259443658151387603863863961665120755409619170853461065057320131071803499122113974598566894887055988486676556334643640709918000760392532837345880077928513749929422296593406968728160397659736715953971607901374114957108828159026980384413894948352036306397139173706270557274457075160520500529812277049203870730191772211746689219381176247617572643698158991446756034935340591433938253048095183657289537338289209234281050861635905655058393857487664473699295656455270293708513070607368983872629198480390285427337421242039152898092926681579950983683532143278220731757256564266062360562062912919020803599097609640683430708368819567216829469742031462599273353162044164775259942357977525346868153793910067801911246369653955575137208104658879483442280385860837389513087461560454496540821765281485667220676549707267101201630512172794206997622203965237649647864196920956774764411035842252990891505173018689523918327643712364392242745584873532727112152367208031806858761889749563471164917940435480473144178293973448905326750050075739086029378788036469152386262051574261954078927329055345278427682721830247558256936777902945789984323259012635948968394500677404079360212152149051136747758402920988288827210187604100113124506557231867793258492852075393960929514563673579129919397822182036134390672320088507979964529981695689351833371506092206424211361961724301051335188905747559182986154379894648813699654340086783549732891971229234044786200405730096631672614561738405214112505813743151363266211304082934471131877254371449867180773208133892525385945753136391213816351707006131451706395170801586802038793766501391761479320732319759576435686459655330766851448694335899441289769770384818630594653053741818105856503536927658697630297921093139016241224026870030166073386624231778087069128278480117241551876501748931523349663608548643512180823941484773646558918802402757402127221716738066005598978062261357074480561977094620179765020848514631512034166743034346989643860483150045482905866895747228691646718789181762159777152887638081586173674464261630733600555315141373638642522015494474776850838968390409158819998893185512475057934582028163315703666641387565187625188810643253073439737547963435319010726279579998277909103266859147793518633078034223217588477171658416457020623241010780378357495427504763028750310005816501858425456373796758357445204388697662813201414982917221026502327600252603889517157507107198673138860357674648054639201803698164120645595630318661140338292860697572484892378988557253642084940966853873221071515899193655259193374416975356783083796384429028657194882002849047695605017631187391081731068201469703181708487814093712720599123285196695803807274743830818279145158965402652369378318074996356128357651084543043413165799697588451663253572141882651917624667014526661575061404704661803304509377379000417929756071352708886203068014654987323139626272437973468764745303944402073268274431357376887075594442717682098124869077476545555172900186083775387739008084407357029404361381327155885179250363327439189180651896639709065056856133375666804527729051581035472358231637193770308635224078556934409545166440171493010314666049272866778632447927468908850549386590165348376895811998605113116693153876195712141383971265620404083254882118757482888285217885560453157121015237750310735304214256282634334695731826078666468066178218018463420202364246018965109529172348687156919509004996781041050360615065608725492068377986405673450791868845821674962936881564154268663042382151017561308150124594249098469265871130716197220228724836522198247767346644729859459958901551332062551328536956939209138737731381303539856444920282376078487981707297938852490668243575143843237347511386715087185734555199331700132364438436733583214632068942304372601244223841217201614805763574938630203243224874772218663364425016416607415236724584287161010333950254656955587196794379864964984404298694814654240991608849388322581526243137291613811228747660487365790326961385588644184277525467397258014444845408947542151874543566005208986329043869849211707380998430054421574191405417822794737491089736278254342957376546975380214891083825271014021356141006392926528035239194023540804304977225256172937179333455286091989159344911446594690038146304029007813566745614315884954580937897956128114261631153341153724942834641775269082638097726364001450475471620064764930723480567799725275577064710146754394952540738595888927986504827098675186563380257110297906898305588681068053153973342961120951380521954677210088411621874371722053979786226270629384823381238401185506723580595190587807799582615765864712822637928354828249150095491481587539921422836459977936214277334710670139893835501530212082339457429113041643261940466787301592609032403747826293732524932811930109592821705954257162164461986144472147964627059268562306706472196761469368034923863291765215245372631193945141568909850110966824608047788200178324987783896161844944033151782561801660280505761732932648721824632888008402820503783635610407978284995453524388900283034949304367641332368766615588759641468275919574272160636689865729980628341284106954917585837931788488390763977867072367685127245891204640899527387195724076266296372658873633971955526684181223402217592260527483559487107282653410089508304577335803108168481999895814665195490764385110588926256524652405148597847155306858394198230602959297941521594106829723813241925428205249995666093514249721759603600184344990853469798319234945536516314656050281976579683157400346856631311528684691992060992342187802757260279512569430484723340561248653449682332056802511448008620844377819185161955956528699934033974388448834525842395509767891660639793465903494463689894178101471118011327688716970367512319397728989042079782675078651585721486074550001019939959938690769156619406266293047841464260913202186331234859376051447722885642121189502709295450676331011157709747133401531196811206568939824791975641364207288949472608747830330504953186818439720071693354760290838550736386741103855537030458464833543842800219974783460556685741965908217538910523953426084511927767496327532954199214292336766974309311368048986862785372076650546389151348573580849593013829617754746131237304664106615050005071127369002264831515998740678466294552300605349850509588984199906818242725488722263187267252258783146277648154634528497043889218501116922331244825034123475010267520478838344867204192440107606770927202104407037320369353315073596826725797476299142636187391718579889629020175802777017881350016212228632512942761086874556685122155342012733793185358261890034203692685324132368059394624909951696905795079092314997837618095135141414663159669079878999292545022285574799826110280330086632076505343082322849598495600743753692963910918082717438028088795134085837066391844052200679894785990653618690545154343310647574246911085258903511664878625477073504084564400700324882086540947450546430061525287672112419397432982894929364902424941867191069800331001887469448742601582537970697014585233794704355778826465184041319797220622237413200070405493349601824066525673935557288538707089460770430396446578080591202501768142284243289841016240515895963347965599705709875243592843194255872930250602658780180620480269108965299599922800027072268124085951944937438190308283584335260906428003062386646439325931158036335339877067923438831660049655269511048483675850204683871519896066255817218242010609187103963904838532135613627211700039823798722930481453240321333370705341849870502408100614972067416980488652042921759191524548449581762826649289833388391504468078928695343067818298143870552387469711833005267548766446686035378502154636235973207862287441695742889161592600256305806506567191066833889234551779447805538967927473133027195197328829676597363573137620900946791124515728991261004145480540426480342327793230130005974398126460697124986228872871556287691599087636577237710336152120585260415658596638425605169485786827520276759631663368658396876342039790803974174633200942604316758628151403811942708407579939883904100062472063257526875430919393099499268773839598668869451528262788310388383425896863515096065145058480462364542158750305308026075132633070184570681564883434979374314740116667779348557911256014382139202086993812085856127405831053263969309940958400437069955368309659628426248262893784874642678347574762818743636627570491711071561973533457644272618350122030437675855965423173659059290984418853380255172235233436202223476649693968894961181363931115712756835499478048943294714935322838539954184608754276403849968051219487508679230826217842075789891502884774009816448490352160641180121531870238231914492079499857209358383398965454075504361737275302426414801452870980569024991583683911409439929945834883369656269285422114733191539872241166369286068687354795840313755955494384843967847918432415805501605802000467189563591897152228737235660043924572533474974099389628416347388203232950164502403876364858445887594989752950314466963671410519401907490907927124324969931286935232427176128942256055798552321194271290866074271119414792697080912450813370705363935063890180767575678778257610974004665463154414439800275035881996152236365884798729514774912181848004142636220195383721124278982767692881955679248961476348546516538345785514303240619889768165125199202534056719362881932113902961701277882448989852106372023741706650488786076971564665530652172414746628399572928364246800549430798038756565612297477344731516352724598832399135180998873757882350429683115107686805921021228096964978554919231873533923075947866504937731229160643392042014020331143184198747803322016110389861891615402880880763636805849539792664013900406591614978114518622305478322435513794106732126118943313157430150201622223309451348644052502784899723118025647832671645691462501528507433098491959802390709138172013325694234516826645083691374203373798536062025244670190670379066432766073297651683271877573475460281726368388379218463289256088013591140325827345258347996983871098346143382476836781394376407112865413603708144939095239653394040299479647807519236965981805023068330619835672242290545704148607514375178175181433542076990955622636345523395517912013343214792484951348129128341416479245592741754081692059567400105969421151229177380557525520232836342897772701310263577123668114817297733205511855607816260235904462009748838005306114762544128756030944742874315105735285338197471267240889186623349530134400470586962946434166437929104219515204607091619313450480249134623996020488788845317382598870568848687155100500519801044766400795954966491608520456506752942950126510621259995603198404170227931460405311655471095652110814307130689555091529512702852510570777222609546653630878227480178804397583337371466545784605217894265271368217185425023793021105606523148147327421825096706884173838574884349028794458276890346706953871507002431228782996204386436548454522860672163094920737388617377878808624139415878331532724952752619948613389212292241145417542785338303330218650116747346094789917020354249637916658125057629348689454202966980436825907344032802712233221312270139752046132960011607692781267844832619502636938131176972392863295476716018444677907062428342318452353797882539554333296872768007054865762735282966808160435469103531215401294150423818126131219822887466319578836575168065560053346207416255832593438042878604940682688890736017688165324402232349525302462250134701334295653895367025142916608155762312239732191044642305301845687589217038769870295662583676550738157260378966484149719323018986585003367007214314418570462367096145079694261630844918101883137505532596401226184529396236670900915743811033628561201944527370320751402032320317933750904504234792498695774301518638148565331243701090934723969746897855769515708188747176638991009723755199926900581152259538392949643095205729629370210183509099969192884479822249124525101717090887561440746732463687212068803253493624831613405438538637726089355259652162848020372552131388080839263842325720744085586315661607905182498985567075133147963078538945523098313704451536136296453084847067114718480865609785806325879227593184158104962614915891966819983885034078382354077654470500074005465531695026413197293368013212827590358352900557496894130524466940617967618763292406846637613139773563102123261632883478379389648921519652157683555414285971313135675255749829973906251279744645283393808007115497204186637674584478008062859849554500328623621847439482650815861119115495459464985863837314274559977012990874493134396163591254533083662510156856777706075341266461991225666699131949235361269547056404288172201235979391512631682207357135358772928408147755102194340703665461680733766352668157807539931882404032840715301284849459179269967650704494441097678690420908170661297959894128264430120222820200213414541962292583040292149927358306265474034428217032185682558848676069631605847418676486952332305112921813687095679287276794017765791115634684206746691942959731287220447038775658390433688150560817577953950465964994220466200310128894595301657957126072100637761739074889567643517675118820849520120265473999708960757983839104173248296837401520160624463292119765028409896949895051358942499661122185386587155377272698386258053428503860163616543547085224677947790717041556667791838139824645717837155274132648347004654952951892635601098932354056065469657442485223495764104948812898949470819313977385032568092930318529372431392158894521908370149619189594613625183577792742178656248504650061561249331419159702369891114180197876377510659344931132876055192509199805384340987038884962010591815204203199778167431006656862405260676745082926028185442724128290319939536362940598405897179439199393963837899622922715198959939582073003046924159151081770025402819798370121493233715994483544797674107902257817150677994741032389726825311739890693207458347575729243780259007171038675127697710685993118417658977367179871297881569110764520517109941760614641221669634737591978265537903034974905750833374863014079547196491986793826307454828381089702442430345633988325546305394042076835142491704706928598400656859031419898965035168663813430090170759977005927878113850559440692038560004055508512228649682019476098412046478547523470555717005670097942337816709681031507844752945962366746903422767647732903836718466197441126050698485403103061440432162589301182690571675389542576192870802209937452995575238718986525858734881921450075631682307171551938418415557532666076287517531889869608554796152384200493467405032784606427901562539178071174247002455709516556408363853402939930799461074794069311804408248353920996949125470978796910556212349426077874781294294077769207594165715228636350452042462959979461240811342932681350506304516817211848950533457160909741747473353601003508457791008703800292926325963732596409846386735606783384831992034859986293454249311922406974028167266455748366643388822882680237324008592533248010798167177078327491493522855611840996503937486752501999493239455023623416710394213533961776184533843931026478335862450328929719357189832724269776591772599712327176891046490359564066802235553363084433160261810282086803083024656450509013245909111854404352242622193002383933800604084987191300596775456683538620836402818486389467912441730251803187639773350738097776965829630938670598026770430991553983519012317586294251070296107521139896531741900574762853094993345123840260922104183940144101453956150687664449395329940772588922668132039308672413241565958350519886015688582509578101575395951811162193228642136415763475270057851766074079417919259790376406377680029552814431972861252569792295497972597002072063675399862708234566668465174958370108816019537455029613333008632429344143712470561486484001380159758920838671794957591276868119784200086367543282778996315706225921112153977413749009805666823118689632700208555858638865416693728944694111598352254351542324447511996532033888890035450747579006067937423598661395016678847339249744548936739903747414424867475136101012288223467856121413390519300292492979172330343634140161674899360879356597085308435235243080995180630238504959246365879623649207313890039542128144271802042048854346608746599911305594250976552377014310943714223176568728097039902114640236540433639696294012802825115452018679588768287844391915520335374704987340378570812606149755418638268269115696313051827411124472761267947472812812503621943570280422923824600274437277762450444493960005097459839017605663925731354537904723597068524661047408941627203868363028934069248928914310041926720920551571176540735175063124079496386983047395775590429542501815960434457740445872754687260262033653238982430361754039103055073308286672260412015200452305676062149594479837419945816210072429249382631451965376881803550036569504584217751035332549971207488556140604987783557064583592814566443901147552710812604465212837493554668537621480963081433471175300630262958984205530534600714491310507362868754261866340184634380268459734924722965321043283125224183790715620401647123811343571871088218874771000403724020449162349094531156502803137645149047699527249988044512425479446554108331813190865131839132221380741230739687419319194066415887432906178760998296229483881142737998255495933757255128233448686055191625675855377480655475242893923917148891426917217590611732408387663003575162723342823326057438662456979692117615388079600199289146314901331441685716410759353976854320346496970830606742976125807828893335396221256016856489185514998705022101719255500504512920192626226330377885499060642857164016995130095692792106129605445824655926229952512270328577920045967699236564756647838566976784924267083162800058897244495831511112861962161296895485285690591008740267006292853471121671603819673410109804127387726847972688513056971359150387095772776481946151416324725513098933354907164998476516776885572207022062828849291607781174182148573246625878655871899369119030153445176473623565319980725683184086715322274136822307078057799282123958630722057865574055934998997979830647017054163810926523660510259469431373212589074848175211241557630681524758510574228039778136147580583611739690518832292379685908098435167078629628434393651087179350990077448986525419191023527979442528502616931450319757513629568024284414679338398763492143986061191919347695269820721650629310899759039305685596868240238361014163189392856658370786425289384176245261893049130626116753815914906427309287625323590755887934011447015611265812917079930696942997565560848605343098056557474155797812582035878919957328389537541136885999860101179119750836466100017527807072324499631658718831004712866968476615518234850116344226635153925784331978964219291647825382260659278615545865217807461533846223805940181433567537589118673483260922169482118685937394226472517818978156347140676902915755977156053433110153157664051097392818918531796864266562450148778243680518447062611877595137871209555550048097246169229712858254560373868186826751422734238602233819720682749827772431673001594433931493920641239914025595042531342506992846648955749213236633500982888347979197847082190371727953510151881063846024185520707682102191583452792149526147653721281969466181874415234200957881944920632990761726081694448520961028523306663769256506785765368897409295058975051680657114606485197435025764253994578875464054534361691362193355258804529206055863493088391519146059036435954250800035337422106043765051798292540158479294059535134259561292615669638631832120619165000785958537057063649487568426649875081150167699153440341825186851336881668879964515394520190937491517808456222822134885506534271898561718186154181087998276556207339556461314645832443481214765321527423855320713628706090890899293328391571108949364721581951604929415703401706592646231352872254790698139364174623943236065927401241785949038216975804522256002810878492539744452085613676365783851373344323480979208630629822791057269839423377140099023988530002450902096494444321165953264991070944642552432316921402557618672481657010581431509083815035655045622257887901638014744701936422104753870921706174364220381834748666349652123809069479411495194324022193279768962927699434805541350353540382950991184308740159001391867007891506957817796085265500758908695976601170800612690509977463812571987667138524206318786505961389399107699845637794038003166766163399977239914957687527096444696659989485431589871775732804649890013853920813106323405704782733916535404558272784447168207221970018569160865384432896551077055475223966936601226057259548807126566986651408372260196430326324117026707927744320501788964614216832028050667729686688211221775520622519128424358847026900075292888489981852803917978301481960199908940037239521636323702072811420439652246247468330767212189542404542025528933256659291749791415020294782455632764646843178516682173548460258536243424166507145638535191265900592374034956698060722864365100853325017916232414907053086950209347527769389739078546925710309788325790441874166891523085402247241011008695446042203536097150241964227713218487101594511155981313701553707186043460389928618559808335704573209998200323799881416530340925812115492397791630019126616094676279686716007747533206752115874281977888484652804807437575322476239227288942326827093347598926303062998921853976802730228958833818493540906991838871058494619003414636383398110739030825613298882123509854885418719639361095111025470685508782596122141497782413313022313120653842434247786572363045181687889732678554180599165701291662451558492771763589241003309053856598660040689063378548704085888262797620718937380305482285016569562012058543354967450066067602697065697065569052957364649781286537495230929515611582279948191046197511334881447037445246199026283962169114377240838100469046462357334819649001073945786862240474441750490433617325700399020681227858560281496315120851694051932388464330823634502691333977569560951075792105583747168449116968262293403149605281294236117881045670508469794916736249570717042781011411585428881956637899738094519627701060875463257021818079688801518317983717526969877388868480684555606942253458626622580109096074664175716609212012397886668260702172411625241478457223439008631252002775769425753228301805869447901801325719338503424558285761206870848001049181276801878817380882624561051907231405858128193069125704382613551098091868837142777823782591280069835643287672308491687300431039602603191018395481731263564075645945625468575480981234459895196030884557890985538845917116161002014864812194058305298655321701279292613078003559936516848741837136791630943491757132774124953239317206235748651990220982743214740346065963767493053955873362347422650853987678403491825195375557461358641079465317912306758263629598812011247036999120970971714674833346685733458443727450326939440472476001865420595646423584801456917454470785965460764196982856731859451802298375377866461322476045606269278861399672022438519636215609835624537816024671533839463015702051139833453706246504072321681744096874497203626937600287320203326704364969472276340411742153881380794813045629521267958237674283896170303741965293638468009510210309705160023891184602518562424532297088899991868746360615647150009396621962842971529423063568078813386783343020549410489976246776288341834118894665595085173471175093640334222333883794824852885022425951787214649457855695639335912045395333226605674866776962727870117694829196334269060506098892463431096661359644341774591253170688756906572068289914507117499606526036487566149686864998607489776001199632253754704140956503853019372655987471576282754108353017635773504891496121117361248286046418612455469813401911349779606515919063737525863582043320551141462490452291635787946128519667660905736366669317768175467472638204072839020791799616069945243954102887634711438761626484156254939490662951382030532482393405534460129438040379575648544197193946954850628235721961680203753078341950357890357004802390305583006619631067148820146213721192081019565515875649178405765829760373710159668312611311056291465960333605732212502426753019546730921947366755831896153811896445221131526774571356942216200255000351629582399701161537254175896696744309927855813999325020887863883923689334097986784908771880145323375626809019190801287248383461487056596766517368495718774333314208082811457239464803183558539259986480643531939199162359711515922929032274152899835939549810052621863869476504936549548283191912799950756046588667630563515347845628842743622576874212110235098953487390727756458051239404225720942922724454204525947728786523967980431656177203408473585349598188673060384571262102720883407890395966014747878377848289664414198344575094133488810840359111946242075635249415191960039728987942393480843100144282342621052456712701238915398775109389207278615208040773002922823911429585198121636405000700291046192376939935025011505247710523662991923365251876636545615959115720698454550277292393819659242827749191781712599784798999265667156228968021266267931905202254138954560204412412621587439690682290361051690052808311944382693607077684893114452727312002659863378115144925569077624602774982883077013920468730741062425771110491419688587321095026645287344403000676503705752774232011082598284738989399836561560053996092972431526693066078727768580193710794495111805074603921106428866365728807753575889116772665680106419355535467436618394561749460831448644905837415797112959111720758331466818818504533746791818438013318651788076169713021149031052440755509914439480686110738521920447770681583492806992074255565686752567621870128856662109639696038728576115577319709000111463255778034948904517538026909038014007563244668253926611476482768408841064542616636523244820254736725067251655728262839684386610107706347523392320681493403962595700563346773626303550126575418638503503623720001900461247143315883526151660242006798503291360196269633966087076500967639191464589400554634073405464214719131294084565965524419471191329695411011890297956366034005097516298164156890199979803302028736697839418531867906979639060933107288544069663073317978028493461237821216086651513157962130074074607716578369439089907466709780945325457504721100236286175275710379474796609165504356562538077793818678633459178424907306578681636269857362194952357065773315473153094474393442656678029721457230056890305753103428876442235460077254023608158091630600701257731423911138034926949418709055903238082215565562364359090124178752793251364397469169684303628973232221021102790511684282244515166216831492303464410442732444837887445162376288886608508622817860895057326676928595591216120303609605712090009152036581000554421608744568313630093127793453455297788574462044538875160481416633294627459393607447074727035560322057503852360079058563948973986861771349734785792004991288703370948667994784257809336499801554604512915477823622296679379903180965536399281824746379948686275952522579395158442809018199731707566814522456324655591798674033020253541520832625555575579135839887843042028943512415657463164834114643407471189437247467392814819378966986537324465368834295949374437096502976813841559660039150577184130967034353157318365437896981988971612939431864270969750256727146386022007669979380933358580521269427586591660412142022839342638308001882224760498736051342400486130234730422831275121670441889564087827207704884545019253996848142619209899359415727164372162447061056941431952241309481665614045424994633717437965834274232301733244510699802296141253735488827789695462304362262632881531550986796953459848200930603036208679793665562086204108235941473439299836829278531698888631210165269702817150518196993566975711708467457122894464249395252100408689144864423184080244683405232727170997386814319865546424478312709400256997624985870772374626465424027900544117372891780081922089946519740980190819504422609501623599480730517854570478075447161131751925127904058154304969439645369933043408985472175093672311834573578821741747723078962795158073723579218918265863275759872159246949861512781409355414012753654936021507515576608664002249191798761943512882918254762243994560614861796201632913581820564037823460675152520835878519916064869318266005271231425748844807091524622661901897121747287307694537912806149051015893423193011711325655631814299485737923505323961779922677487601765976870171583956307795413822685119836739531973415335454796859271650805162085508334489229705485732269131434300205322293938877967501247952163891104367148658820234358489192322732336442788718335308732700871810358672606493578425418026333612345861689459734458209985532943208389152962606971330151037586775179427086498685679005196785321149172438125591791354926227512823491980282577339610148983338566990721016327254278998565124733087979793660019414087155478789910189475702855585647001554949270939699523498272498073662506849206264341806569876066812669378971718795037501623871459677037287311518217126011138293942542088228893820060361484750122440909672698919216538143466259699758185329498692527003362727015663623157570169807578376389395828350179271277590088998617053170665630146772209753020436619062749130349441379551191632597065837723721288906463890345310693687534498300886397657020359811994072249495507171420658783799911500549126158804758149949906747111210497693769242103691400186699204609852330127637671611292879597600933096377296656138675257665607156406438950999895846035572766668873158631683508350447202374097301568092304957144381510580063703030821410472706419791384532282186239695210875970224145910952552402844776200891966457074926266569886281819363423366574489980677402267960182745361143351891146742068297827883627920727499981037395822332191675219225428619156940860660658110864093045831001788039755342899234057669203052472501779978171428763967984760534611027988063985379235306133318503178642092733535370328566689481210275165708384888318161255209275981069627141981963073463097100569344775126600183703993511283268275226562291220105102915987168895054031018934894040012868845131950908431370150561683492022096513684728952170425592069300894148643502287311042782231007787022287445608559835779062771947466381087406054869055550806995097503650787983865132566089359922343166270672911682851225363150998292825486878493639929949942288464670013672707482047812029451165835587629747697506172341653333023222534755503620926581277816881410097488586235200360100298681156353922249871101271313596036764334785296857178250523527269169984323864475181809884694863643440632072608840980266431701199729249553597211596844486486657298549463164663234677348645852083726882107138366154718371574245771811829035867711622428946123729700663081321381827779979876196089267927863533335220507977018223911144382203812422957476885517423490201182328715341977722274894526184116618703717323417502274769476256481430613809762897202454557224930703999622370388122745015146205821693616915420037361483957107777059710308861192911588514249571943413634483710737704899164115384136417203762551342471446168317750724868712453208017402337250228938187288333114712824466108181493090623339116798637000899468769551281690974732462237573354562171123233062369906403716102440085797912740513046629143615416297995080780665535049498781880980040547641289153502830606701266072936806663022574654567137006552738851516863834012394187147977631867880847022466097244424182230172565126676720736146877995346798615273821616642778249432384051859310254454274696233185289889897533826102995042233560939448360676454701775406049177602289162445654972170120204162842517663547642076147547722500717457491836557499795650725736595013315164033164205643638306068706654085819175384681323784823672445573620800786236973168489892290199899755026076913409284854121676883994095412849996994194374353852225683610684252297597410905970394297470967688404729419726451035811254686723411959774920056799188194786479701893816132902688963764431026737512637665844223459285138038364536432613329242062000681149916809817700498108958807516279564281980990178233745987575687588591708543556220705281736922504623831432927187444053927234811266507995119334720106134917074049485279904361369988976106245760063371132603453335574071062586581667697048259420399678120349037241992592360114711784425255353551999172084108462647630218062479243808769866335992937313004155587991618638751430550187036614229944942175405572954335883006303789605410671082127885820549570658113604566128526577938470720966309668408242106515145303871190614771778971089717169359606128555048216534151957612952313918559122755532044629850375774684593976410841339382979161824493742334050004576639970184345634163655741716166146606666943129027028349746501349142714476360093772578613204645886320853992604528766299378081609332465261692431502410570148164934521105666829623022842994498477407401136834562738097159813243061174496538727314821175041394321369073852257157862106936005893230845104345601076651460730837389946573671630921305530227315245185266915432745246860398474365996904872672412067832086225991366270828291269449477984470974971824350419699032584415064315282439852959755293279416422535753207914247185233862456108744461093063066860236925464894488517401636037909839964246777442224310644548382098786203204939649181016943554098360478889531410025456258823792865846573801898759249543114941499270672960685480372054413269038877836473222980960548240552651440988945851021500635170289171888665853570796353039790016530739412888184852479625694836100007381245403033219534712212925907235092229395957953943394865418935446549883388498935784009110796801179794021156227857659602667394282240743830816834660797436191530773879802744480453010542727106227432373280193791767637158810574737315170955350655307513870629218067601895789598707806689682513705988835309632974383131477167703217169245166474528203844402455787101190242812608832918726612094977400060585732275662156343204003424356381281641194350812959974517806410217064118166786963527303213370474534021554224184018569911963439505219878441131716431577936949523469761055292795086109582613845405170941409313046601638159086322360023310785570141017998418829098463281700563034607784276403318933843824545159551248870749850591777631726801540587529540361596195510400956902319844147137095608378915265090706984886717449167419479048849179844966310437876342782120383596712881578599998891551043821989326300999867857132121039809868940330580139911232469035670716667571623853452055923783785459278580368718420181235710990871685093768566978582162768096960815762059648387543063076844518300281427286389613792319584806463960896245341166332741986534409153845308445181349523703566634669794918336475507386661279834095647266818934914975796581709602565346824943482761269561894589941953300964045167264241693096244563091504772511279114124555362031841152557094768920024392669950977772732880889242136542081850248173219984988783411840320055500519369862743997450643807574435387051365987070668959291142966008016776085876779991403107525177449206551547241750299227891159897292999609630306801823476854957877401140612690669411895780774307338434234673405675404125076389133054652459195132900056830927162495490229971448257280490202585184051987570957158953334621541369147873613920877877242314842022323187522404652230405682791931859763924622889978550809280280600314979564893899810916231762927238876708303430323643899900190513873123936525478733411538723420108937566771889466831966026861372483836943838185031316765080708812589114162331511443264929630100538559686788606040019244051294543170301763458622921846193891193779815305540070863446578132226606218599500311169425804234384827986881049266111311656776083766666106172418903046625320491132814235155842085524196830294843247153807017331888408465929143085682278561839710459228251003998658118196265224466905030354547706842462715330616465171986814003428373784750274542162802805735627232470225050472719192433230562282544236829078138478540171634279079598410092163970365001882832815856478849414559330839543918218381438602832334872049999265568126916298938623355073999965794494478955674886364387034786528006378914802834758108870232810836243374498574792188194689869437419971411884889976589641949716459291009547717674294538691453834830859512877907173340539464932834811665560632265450843343168619042922852115929975836529887005547100316822539548068245050303719271508548553553904453081274247045684588180427274325291988410327596266024654177443128709046968972415761377704399281783407780969884333996669790743684851547385452736177132937980538885883612601348563054947814842003063986493980599391549456030917894643803965380326662725773952198717891932526689638067787403128466791924901834816540901275402025867039038316133338675622926134622744767870415604750308534089735311866674350965824402769413519401752546134977067382987556736050752684072091666834178898272648545611350512936015988699027054409316281049771455891422967063308298323452967981915514265439763468696095803009032944044294429441360638581437335568127913596172360512380393357900407498893442764912493918146481047459184025419819046430552223323864440304676691298003944971221199135293637726875944005233833555249475600925444948800223509177492191694462004817750554330862115426388443973763367832441709357903902060222505247032895457888553281716192565905227545868904753415177359701767557585163050116000618657484314419884399381881030033202413607548825243858577100331979999583207431794840118137742879758067577721375557431820905435755422942029803191583806335668190032744848591157229552584904931719216584596419844260082591142368994368538061944405479679625100774784977934712178177487010553833291230026313069712061867876378172728602359027200537731046290258821611055794826471417825689118499000671159673576010533700316185098885268954554442540389920371721986071066710406304536797950606200541506026875340912987868333917727670393901004907372765927803123724232270877908153575890774545042287329422942416417283103194874447996334140646992430471838375843516744919435120194895053586653499356668159185221847839416409636473461176602932657329276731877565747235965276997488883743242601648009970397599903329241853275433726402229268105493728424372413759950228765693168794618832232913824376655395877028805550591242256223195508612616147529533109802653635578861789493793639251739031060719904317036240912666035022491488007623371342217951839845015141462561573583291036999166077079926664469935807001844161540190149496539859281063712105774153744074640898790489129086188077440341406424675417106016973611292053042167716700248225433226746468336485218849871913434929481336699553447803615484432444037975761236095252952540570179345073755296592643511231626018049479818598540247864271603126061239063378714702588239481922774405307011171567852780760910714175648621244625279064920488752738332965316350776881637617890117951845901820645222710730259297658058623778619479919287685923351410302705985222745301535657085786651426991110296427225243477506524019170657201087545670086798567229402384678622549656107209434261021871958242277658108043488203356434049674365204404702306996825528715629693872188469098650926028027957354982354200294839758187234723133532369509605745823932275159104486176144713081719500124960157080469829706987816275601808165357316525264375133124920050653810599448166614939310253687112692226400511598635344625142112456077535697936497350368515063996060670879872900110802677653245463232437600182652647905316765271378099872404994181928736319922766833129675063726889833948346279343568851407760079057133152452487342915008977851404572926695058371054735207828993568766624399063557743928993925970701966601404266375218172204480064125507550941892564062752731709866244477594139244345721468901263585762027597293259024307390979337822914309344100890530272693270302152386694410615180805921511530265667369636655772787398232379458761644828198907416449668341328291573911593999779965765199089938552962681349966475623753722466398789751920641023791875566293407072055711643477863949121083922674783219875740354221299976290612211882679529070894133258878324625061726654348999065281412637362031809455177284549752065403835025454251084488338922229766255688692499864834522135971125319820152797055624363626851145113292974182780718337672495093114150991523579078942686312730850725019030551064558581064973418966080964562104956279532797275164782961828501679153452751277423929831827788911593813877132180188976949012536678515395132360892553786659077384607499043759305025333342089975840950145047945439524307137732526554632629276015457468019124407246058570584300349066409880129342778233907071560828856303822375547074639626419361597992210206690374667122023296547062998788723570359641533242974075290166939926910357370468225589845679385687577529129838001881866417524150769921975997459598031585197324275453983000253092408895334088069190541548533543213344077217518294646887449517282790244618801307672534896062656482960836871337745920995669271927765551009418400054370194225113305292971394833099681278602603782806861040129131661035722846178513287934568538711988286679744169414722284208778382883588836610809377423422485188466254793431577844729382908340315440338431997035147752397839596777360691893246144357396451138685557671959067723189683471575147820595464008494779256522544930975030740880022290872267451589203964569118948712263309635280659882597428964672375651691394416161204983982205762351976621146480049048704059690934400585238983523390487709223324083194132473463256916908334137501655627009841068618583931660991371619101959439458544065375048583345827061940641146927297330631800218694165893120826973767002074502770874096058405846895595232164075190742575159351114304744355001015095045989826153331587628769885491266572427865955156011504954372331346532128817753602133297326726172778834825283202683578141906498032311277815617573854274167915169287470983873601466346931531351846219024187836401363471058927990488881060327650762842952321869591453276476581737124477903843347712839083301233823325341351935560945929275259770907194340102575738750150389952087638183156797709552407944363173900252957585872935292710100452473429456517314609561842020955777747651877246959948426459980374659782984005631319055139384571482499716288131659745551297044083215423269435473385112376860508453087249699103724854870513167738209800122521583693742588565851655344104013932940260256908048307597223304641423942684676216212532725016674496538294540668425150778663598913420260480317067155165489919474113278385074162588053303461070543264907688065802176469103756082671356505133182445047943132183654533866944413235579411187781009783174020850556462111964683823332643815341389701218665039020879592062033054461868595547845887384607942796023994509648516667914037712903073645418045943530298668956576185730219033194740783165041644942832857184100497029309602373471768995793377128746516525067998198254914447780901318744239534893089975505782808110811096982754285789581521173250914809736142045176293796798467671459959236065279426299601888062940721534364482522095916494284009380619063059679721289886884143545059503242882067547772754372977800014571999486225312243848577264769558048963179662031729929117380718324779635981327276956375996613150108396451896541398434453641091934617920767636776053633857544176583120390441487578727310487154506320619902944823067830020424980752131431537933597378159560472454418907874002091145178876783693903318624617751356960906714708494393552156447532903709495726499084507615288061253971795390546308154966510365140236960877073730542569738815575831743912411057683061947521561558303160873252908543626012098996751191368688254586559513332851132013870242774226930123660432060575456325738088248557462436548266717037903434746897094764425031964513856637054601726933795099818169999981884762953965667469367109185598975586668938037431452839188366788620158549916925743028337505290681192243474651719398594697013575512713717677825909500201015307320323332765216740538681133300982760498669058999099129235905165585203164427678099212656404470787627199437143083785470633467072855464545390303205673863923375798339123416555189314347112561000260910403584014169991060672661029836645539853294386243607454601170432050530735040234147594127411473801082062685006224011813357967937878390268213357970295689896369186832409692723455364981689477557150579469731208737946563817540355520961822875746209529387243028552154351969749551831652619681548712945819040694449318102110768162905540643840648541278831644903498906929739953713259995352534071995019878790257415497857110287254638011705877253304415712925009302808105525823428816015578902445009771900010687546911773268693719220005682887192154700440467391598672879703320564200686861131461014728447710194980233165470230347232383436213078461112754240669938398149476858158535712145540788986296673771927445813575038997014659362714631177058681430758348136529661373923344891326155100152712675131977954027981631639355988403361270244470776952462933967036273064575818649331205098892187918475918087196160626643190717564868894750168033403417827279176902564632688795187664424957648389387172103425200651831200932811285663571487100065610545684452069890304988726207105795805079021761898744533972464319159206728907763557907844040324337161946245775307013884053082811971607645562155914210629026447170348864869369058428821778112953122741208803699459583418797559970719383472485273194221187848296427963024760854402475347175248298488455103502981048280747161847316118835109924880745780542478480983537363789223647506779864340027744091211853258268822957619256114902577362413467923744694348009749522667058219302531374390423034938316329023844466571835347554277519895880482492276661875298038903805150795234165414237932648818143011709309384982941345060651795756954506099670683082210290022987047943243995523507759744457140210532013957141831923245558802228632578398476021497594050386565416854381452670243388365012282798821067920863674924908051033915243817280897598143687160829507483908826611273457549845753142241573429296314269119991675453467289403370056790697247833330334902291583130379615178678775630632271158967384244867568299451639049412801685209712900376970466742881489929623451012355804384031905117761513202625999489236985156130158045839438001712837509708911933100170994280125570145410217768441727251018184702557695849206014721012379711283391088631543426891023040599733231221104034057223457861834067647192449901062289447572735933744563128581381184255612715189397496791030726321738504311472105739047538672804625057481860846838320209693622535603397617350710446639079211790800013567431736514441910545818901319194758275133022857660301830533780890084391145570947325148486017710901816035256521221876985908091925975019166613973012041793609792668986255910138005513638464311648432863511255151539402787315907758884097487253487160320518228960707886873542803931958011871522611495151186435973143471563324598852879233947576236323442895376419657565435253438988302605443532741761220072389764157824086609709359439751915695303815129477675000970306176790940925056412826569601686194592702052320948504328051745113363477084440686116875742412352022911683389981891676560981890295039371482941291172511282905651832248451254781330364629483321375216151090223212446662403732556426160847916123148127116554466290239235236374710005812928166803755273234051401221136284478770116641161775841908571979813094389750385941133888131602798851158767444403685284722296815316735107499665114354848202545723100733249425364990765719214352180761779812509918345754502843659311773815042054416845052436656943828891309079890104121187999608436939103690034716278804232752188161522442962020120306081324734974015192756087334423757712334126908566495172878640605644667058519558661685819414265608262422656269003154329494249220215364659659604966038415437017970900066227895812366777248215372732637749572232621271416616377498677812838986901660310929918746841663739364688474203280613396078854295686853729870558902379373314611672731780528130517470087162854921801491144345130556586298303104487570505219873477102918578629171303829133444871751225084799087832701423507867124925391411507238571266430063747438275745078516268276345546640822244389233159758964329392947212116961208891032094990905108202652355048640321666481616201603812593210240267859822687296014696431432232000187431136986483863515735447557462267020572402928477700730378798586068502222393473311293352346829727104829879933256726903354511574717733224059263851775466633834752169141584664933426621025996753733094683491601435420888859451265581160597377776887427934739893956819542390515361549463240091461780284320057250283598558020252612981611286065464798190967921909562275371348249616912536048406118969705994025667505068959355806703753057884955471717979948504980013199087185438652906585858861426736440936727385608339505554769063794286787457442464811421313440049651036185102875102730348972326405095635416258131982676424370455454843408555911593510319996826256641294499793237027760902132664484349035424607666188737106308613553821593884224151330647482404482635052762877005649287508968413945278022468621247940122961184328627625643231923529610525156324462358383417096275940452861857461959791096747950925407183189964648488243744899886877390556897800142536429631319946476471838966300259281539573528072170115992637823130131901984686635206523125437601738266615253063142610410662472018073029657134799382327144101871598831702468717907412603580723512980316105167224226062672654626912930361357713926482221446782358163288887968001237369570281189570916787605499014321878630295111854788136859430500084975549338926362415089515634279867946771088429953237505979065298301547266033496365664252136619562923067555386635097141669351972180396253936652671440281916812895400434983328591940497005517988797342140095083564088733650045959501082242650209891941834510516746511677687553711158797531317232521139697285121622996237886966362802245902025449922480231428827612068006436450273465376051550243479454116570673622855557631431505092624969951268205319883943215349000292202397807825549336407694082394227596967786273524652557080871056537281394311575149826727503619806547914223966593190162592180386979885349176784834859642686211733123938741388299617750097428027850821044382909283352089095913519525246607869592478045997954340563218320609877248983725690426997769335936848200248385718518088705674312345552360667056836103787410863725195842341326612518480705918875101104468086281185249341227621559524769761521575069207142172528133726546808971311311197692259487446267026318913663257530930054982432100087298089473315680403789730380768502150438069794213061397152204121939031594508281568663932036040895158505598027254295260435435484855716291455372229376982556328746804468138180370380236966654759505767823603123728378140446450914135082617051199644154146957850960804501703280277244704096402853406894107495036220553906036882058373677506751024644382119284030424274503208013580450542232094194142352602810649414268546332299426522929584813151343950181290504223477440021842351390740872987626328732538050008175967113274257958579834965479156537015934182223724232465542231662629916940973447459552345562092705884998314250136704981024342575751986272975932323922916952990180869352181359526462153083751044973090295667262811565749657115765022482129115338488834337385888215250217914455407084639413593454113913173966870910407730866002793623137413033712820825720207879452524014771197127449308996237222818124640487310647306729099421083855164559620385616403430609930849462990844854742316622425125176823629700639174075901820473935436495177353721656670430088413715129558768987737583022310438649470950301210802123140773962132377585481586117906587607029317151704334357385579989947140756510942794850433850779354024172392725813147011968184172399252525383682346834618208748910105855765112541177264938710431803218308163261126801247615007446698227800336273409023127590777795014706845530961917828746322867566022247166043491673603751072690355383432414139514976934607754664410111963798497412020788639919326716334225529930324309406238455747584491181012893480019316462641695654698091209039037486101200057502559527470842536434918520628885484197358375163955627151777535946256202732096326449930371930758097387900107647920180235158863728335120651964193917275132878971320418669180072367816377044439815993190133451376904123915492427241189097186246520243326528569263842661018884210487041523203126406858786407357572762980086435615482954898022417976243228748592365469160846787519348686559934640713170773529781017573757625270080090960350540589355894721167778228942459402110272340552267087248003786448291289076485481357201068564344563724918404930148659290309479361119720596629105526441160481452241641150821347935648287067341009305825624215592614061282750240750152192182811893686955805167411475798718246744835155098001563436937197021532330917186180948359513981323716112031985010244924338986346315007205233517717541724009375032108859798297295948537147666913916383391406404685400325899798242213457749029537881506565630805885579450857666804647328911144481659656484893029406102809221058852230481539723770109223003478345588762158327141767362897209291839319181582122508516143356370935389736141220403278635277169805511948823801798278665315097338167691249585236146960208255711627310444002549244133547603413867955691880254802167468366310680718280105576600450945402610635537740334016994257132491752431284560738861468279584414634163610349663848335545651987393571849163810158456781507756873364124095126690149726358024627780488640746172498926065162065482669752366530389455116325999194710375379605946942173102980798211127292288753750069235407210493882349493707039710949699604427490473299185015371369288294692938241100142462402668135685803571173553516200600366920460294080676833635525137284016524066294745891275967920835197598539782499392589263342967452327515470284330351889455432860084215041135186379608630731873019385879333937368374183251948152872177130546072413873878362153063719989920761010149240066488908952579699750347928813650136064393412717098545729598565141653840744651917713069234506141609472422340121411667668470444487692108761167265090223727908272400805346384888716050285776882902910463880988618812892639356648318523129021717919686958865800043471539145036503405028639209981805416079071432792343649730104972151086555000449126451328211991600460069599079840622012753811357274662463038093374766266229082455318833032399121883920752838667983295280584263220464168242730749175423294203316268592203009517689425420779233248957782868405938589463289010447316861259125395414461281015364868691185804744215348775529764538100181843472776078454061575183717313900581973457343412801049671945085359121016596563477174359544788088594647510170480061711076702193478575649781732181213334975791865738905488782730008073011834725909453704885411592992031463382240662993554266786228769406253860945696635509128737756807550877247956782041231529290105286530245952233091424924170638329299107563222278695667030360564637372840019380840014171464872903290107245970187775582926011383629151648865436105311444973190389680019087155256318300314296975394635888126943948462934286729603378411334022822742463090486662608581838268090914832149854274801071352629633927726790278526806860314666506450376809262780627809087104039495639026676863884782004080311518196054018683461486270363359030749016665409170112622632374539538678352662024126808463821284841636004184556821951572946922643802265900253067997799666807785648531389030391600148431504832320177009496548896401955877249005584315868776988080685433705555181373135930040301169123788142435114551265141642666345257753063079946203109708427565591046405907134063961908875657204967915376173006931131681074254282477484022746892744610788153403642665379025874486383533090295264156160028779841122130865988033727666039224110980039327502585425773296295721520324270971090260857674622471355790973618654579922726399829143728265840863269504986272912788404125332110750530400269421196559417679966077709015720902367155955866262393113027908531621161323135600305150549741773949735172165883070132853882225614060536191595841855604132667209561596467911790777159332794869104728618367056153671690151184115647202797931869654954618048533316455448504282198883745521781490134393871517902865033737973024653850316003853046937362162413167990760457015662321695637692416846033344976889262476803243464263874115170968242609537814807880171645394940499507005116217972344693369450219792663643958671299149762911899932205837265513664290412276442838222334781083565014499042545027168664623061729971599284491785397020421558395560954273697858211887638649246294905259594887265610048274984612759803215779662175183473230148622744932204826093408203161352380580817305428675076022932066255603883816278723528588941306450239598410637119333666609858734370606342751198864494819154165200526377654168274806759145244577798977609717115748881096235936967718474228284005446313554004100637430131049413200051402791224920161597395312671716439943411942295523732965226042462001895602435685327385997497902598501017789206394585546531482709891532733590611617923516844145064174218397903070609010526983350011216014463375669433053664264463725385953324474513837315897863209886549850509925774316213215563032891477325150175249905670435185069610147571769499989753876477977004126937518068246512060249737316250747205398091457798974487387781338674522933441799542922780127110636237467712940854029968121821595457361646207239181869226700202206613143304093032005868489166049543555273638731485249585072577915273865688024657194873534796988757915503912974571862230435266679637924231771341905951452674692635006964660336879526969541463529626587603110993405652582510426626142822447246064393098488627680486798166841293986948205645637305194634876002478431601779680258782276126281416585361480254192368599111511709810868299329435311283614585048120651060359637328998958132922241013178093698139463709384879738574158999704209588721064556684114573377605353746195627884856622935038791901435756950646932767548650098723613423809060656006549875432011898952720414716861453998670383129745641480929335862109780081218279623106963718219125240130159376095839672775799330964779388085935836487251629244693940098121449338414005448626101293296993783693943394044858603335472295393583043020255452446095949898040576455852519300098473371057700868130368695123003220158914165901967033425231019458328120516495037784452274815135306232894605562104872584833975294322757772992309102710816582018831887302057499035702666966338357487817859608458056457480338857865551240484312079117396829971020790757316009254399802530292930930273920400918852167034777156334467756817003863165266126326313910474797784770954654786319612611769693724152529277480888967865690398862131066026070415344237730466831733488295949431050598025434414598646075421255880317460594753078473068033039777771306314071198621594969963648772814843595699544765995283444105841669712185082991365356557802744196287686354323580396259496081525016515397521187121006974435608926296087766506079320700512582499605814118928809746740867893638953438822235629732672516036693405935001024262259030568326519976119168553276125394295198590716325713177567970869316068308848477530197458213377528582728061196314454938556065275532072162884659755690286724183224407388341400749929424176461045627044158421528176691069096679760459360736400152752062225236417454000776069658036199829023940396201246503933125478335732711428637954781028344012573379117529286079015904932233037783153004317127549595313795405525915712017050909883734417112293672046304181168928536750501288067005225095707831574628856958338817103354397022615239087061698617941757036938235773827478087804451689851717300067792525256170875854315955132495052113252924081138056385916781158960399346739495414855096599190937118051022677492355086166985704202839879521151308685023739788389699326464203687917934602759980804033775337414782860750080609005309116972296591732770711484351145576106200090289499021715310511474253066718133656323713322648548009388034502741615849283363873223240400391762983711698290093573052099092441273060711026871171936587553393474469333673797789888260313810362148603826490778829951946425053760015460150771589661383139057535721241876915253066769853414273528710494333476081875813205902857409759295682550526605479117543844224555494472502954654103298560735414972947681840577583447974390478046283028930305674747263978467355066448688540386161738418318924251848433334247276403213649813570363272718379658123689272766668669090000277089057911838185775296766494696603706745552849618827810032894109192138009427769527421166661478266101297344593120538329896420294150399385834157981206924561687945371556380259648060051502322211863659859691484862556088057393469430168543126830704732340535023302609447013145166239415895786190393164251886214075195512788509229269497249595963842151653145755547378420379743168118084069480417082646141640029365883522354615952794191871751366382540339041632325223700881149309073357896725076895516821018742566448020999862027341168025697347090577524888205780803629616188941334930421326807204670693865776777986015653980901637824649387643894965640183421256801700283256540719110314559861458537287602078215819257995439657947111101998447415355082581848018701471580718767271663149980538046681498971580382963606421922862033000129560501145886531934158263126108973413866660680381671163490968571080620035773386416215612187115878757246547230283398897707957596701827526100762222134704853523500948426497037954334509021557957641121713741388420364895348587776894825439955325027398882233146766834430756689557549144743621543012140526622739265428177369728321933031885262856115480976757328100296294113257052813017076069947284546411452605086455091018692638600527586825135259494406617812284458414077695483574234367237253578790830943143023491679332626061595285843951047945431967585705499628254535108272148059617019872833290390857532932806927909871559225022035759594724834351445928577517984735005261965801795922359455410215889595533817245625039853582000311261724857163935581918134503142730199519253968038101580842374770453365154241218875981438054814287545866643541803915984663075424324806797202048437747397217279402910436590552577988262197847055696673628385336485507513181342843140105434911030369776260555859097276901750268677738850085771406748774100552477980811313479283950779088900869278880615603398043812435518732581758205351916957719714444258364989836719867154677106150601644569470987465639370124426073164147173101365499664410651860460814969137561384560857358379648305358326028072822590768323841860458589620907548886758687324714661743373723526860024728096523337659818573350974892098409790618004658536185588213334082516590044122007595772676378511680405695357819298415384462908112042515388870681703774729501401028181222697231272649200361589487219107344620220876046118572498233048512395221728594702063402066450836365469625652605504849288842097198045640187196417847357138665254484845498504033079171113141089687711165750083798463855774119412897030518681298987972895097293853155583467173687968416222004897883390694153147144708498553038830080443110437033514210785518006006327574433651332915402028897107284467441640868211308760229424963979181164557034565979569541226788969188368515445046128456133724091141971766483916771357410748349498472157784232924567039462517832608647262436316188467963756914655816978529799682443308713703653445347495507243950010713090816128150261187000034720977541349511959763988533386476213196948321034388081040219318378832676057738860880834802360419797388617212234196736518667977728853309020365671045323084203961576627387517680851406818829375529856684248570774759277710378095315572721067427054435101042635468619941270415160349547203288823892110622197108165124412713609526121007579480657340006966263814293353904971834696748574989738438216476955435280791084881302890559510347604493934511712115593259237851957132331275174576098779481045915923213150222162292313340309276419236226384382387272729104174828241332065923984437673049291316890811515177528322079091247528179701456220838834128758046454039971281721245698141233621815964432199585249838820371859394963924192840079247591859229776688430006239840083814014135079223768573555782763447879145490195214280095988435248895013239558406712065593740633879782464121763997855770524427958188865114545858707761613434442435333551399645009161389195738316574901602660914980433727726360189159627235925450562668551241387039224842986312772106868111568110338032714988917595891662381521139425603715055896241463215141085709992378588021306727176018971642487824346687786223093411905528684529228628459929123295520966599850998357051631836248760471124720119741306789995712788952857611687537443923362901476387204456624124154741665873443833740854302831138793508523348313226261949057967188274909564447629716153097420594589387466370961057908263793478681982539581988606921818435450786141157949610918602776005974180786887255624561502174514301812399852677838806202937246635407862290780685031064912100542470260402188663196475321286851452296928607759726158989509266974204789069353242847479490919403547910208679863478171359321244737954831577245140558824225629865952432017379225291641114077690748922952485668903836060220208287950736064676594597972870957153319015745469533183618429177756677497560355200919116693935365887960720897445632751041963682140445015009563223872328958277302126137978121830331620663480478123695169374103039790752313196086840659309671374280359163379812299658640751122300074782422250608828263511440264961083084890591656248772338759516934864143586387587650307369484866723880319405541437060564539948293216030663236482203528874253430847452920004843604172169474307137077467392804873821299590675470837094767066693946453079055331039129392741750906507465714598033802139137415216947337104198245708208959412132314092772149311270849847102300767009567189847710233907177233916305253462875967246641033176701070352387605919828281393408032949514280541727366670535057419634900967156403563426199639782086553953972349372200885364827556852462039924255439596328166074003247742491896513205442020041035342117584967333658195232295358436042368720606794339742373551093796161638577783429472331980375951154690116464802993730585354669624544359362177615999699327882840766753778533139897882878998277834794410510785645558159095258258025557848056103388288693321555781119562330239437827784116864790778540348169676611689012411708778484677103966702995024791400596710522211966349388535894976942442484033775592689439870898614990072610750451014027857052602204262482066970825534875209351710830531266774063691168934179981616243802472945788528492402613178519004860179938466679058171134799286756029449172551007169410140173344290049638975714912020474046595437115075175581175084469021814470864352560281859050464853883616647671337467734745481489779473453231204530358589564448351981670385889029732925303053230085146784346800802268772590661692218996052073932685507307901375582704262958800769514417087035819793813623726781121196991367707112387566185597568997746498083470825877324412128638267967257037646559240797135708700923309625740902263247339658369343060440046058541468442543223138466133690316349962476672990838868420872222387690618865775030919291707437946079516369695720510234635800375914009857326512342694139695117200916002028090609691088413040884392492105690342786446006113634283952829004420544398478993101142402189185442442994410121692340054569929610125045110812889605479905360901989708847015888779954029536808382782532691133031331478336155755795902048192697484473278235536299260014501908362873264134749432808231073564248956016906559616150158639743979900352250457675807251042902906188904877767430264803190532542113334199880635369998340526998836999182295452282073849232436125826652501213945892242454902399936170459875769223401607344757761147630997087795811366855074134079052738521111449318565012076266082037175089695520624783312966623238153424604512048790060873257833597120018612724372804186674213397634303581955439616961168038326076262313794101199442395406662750722129659257233760050007895629469138360843408899913442923529820031842382525364727182497671043518146947617631849689105006748283958502639896580517428176727122398076211396530457427394727359735018198478146290881134317931144443827967420289465074897718675996139624424220637578051504072657700423989755747307027960725723373079361282176654717071487461881829126967132000261324182487309959765363476773704489071200311279020858694951127104540592484642131662812333979813963077846817898582572408296196637134361090086439753268953862440451832510844928513485165658145791568430302381845917341980372035589563106570091575008037315727954281450278344177781912436679308557801268253156293064067671297414302962908600503214398766335604262707971774644725767247655379208441663019457559147882130645877647157537117738221796487959963689989302905879766949424029971557479822635067141706555011832269717298538486841633324120206496565997092949919942416539357200281170735141419138975590507319738826384864852099536934818593016156816085662712539431795512014828904602398852070725150085847050931333782366018228378524516543354399408114952964648206257307460916665203437757667535784200127867061380560297352782427274612659847935118215856945410583298985908547282499387153941654430576937841695610709559026304815638341834688452555591770354639245866127192935702188703453742397152614773695039257579903538277100967929875185061308925513985131177304369574764552608965666147772484660886465246618823371624612679271454785938871771530352868016903881001448452238337153950881720905823026298981348893428587717758233566041522212175610199680654909442113281011316180222195038546547490935893518784097483158374588161503352251961886627867480863382422765814125752108457250489771962102459716379741106345698737489694202867131687489222679317619894581683165842597092075640786687592432780867971177532445832555907786912703472873910569698790124308993143371618427804112173938134848819037859989882722106352358877363118991507923683568041762056127409456423555947660792226310891640093998027863891706416949979623188013789791228323685356080583614471006798508662089894958323766929296182330974666655497705733713468980721708940222114985314952555699719824568722108481655923192750471687375732648384523302983317642757814749057180270588431177134760105332857647387213618268763268260223005559114243032483210529615042071652328352025603049843888862179047779735244066281652656858199609644296043913900884574553244609300387643750133678725131499562292162087491438338269572273838655023154239893563580279254755169717356871860936521823501156848794717581510033208957179501661464514599722709125604616101403504479358193830537395681764583517628445250359080759708046513010465550597909213569566146101755183814577539531436098405242905796115508109259019854641033933379359583868738227494225418010955666961425342972773630478754964529913540100663678968421543288822506720208686767676573035443011596453737373414442961787088071965038752583080662756453916233592379178302035568178867100234551011716485538871659377926042077032747442300140720195823068737708176889527122389805863467429762666425595210327165279387941572129436398919059934683330598986018592847820802083029359329001711555285772639364974392073670716454056839017698173735601820811672921412340799331757746481123727612733898651335772400953940869067424925807197165330009885220508457084295235365860003203182816238383694874659297005917594627971877641789916293432824197063016473740488016542686074051272033346825614544080469597741536094183894330652593268915154884521932699274210241189789131023997287843429741125354449715555056828505442687637503641248565821465419283663832197317092343156566142792836791831303381203984177059588907146452847812553114483594132356128550644759872750398063861811569798790451908300029222637284874669129864521264958909944478811323419279375887605989486654714153219076653500343291475607003978200225508117261365798966681407143616964819660513791078616364638212291245239178107223149337241577970242326584326837718841704921168241555054157626726306924018565247526022964856494996175771524201024866915407512537777869899431419057379299520658950210864734540664791396751170580889400732973279176503189473123426749099149173946709537986442699276514779216295204274742787608570591235831863809485481180137769644043272235161277412996085241814821607941838836447424916366211771340559538208176079282870751327077148206494253402373225495972535792991663410815041494686031763047653014064321406220823980813200358681715017917497647345622012459839235006442262034172517500346989647020113385489473419229471951552256770407102738774716910816721665783920663279935746019776274208040978718483468512028023514353171937514386780930684873681643785812171533909833137319062591491581411884113951984168559846711460458005825637689203398917577469892104992570699467421679659916117219624934052321943550745885000325027731832451824617972494775984514844087554968012430818601912141338059120692903563584925075295819925307358966055057419033439089778745143613367106420168334701283551484188506993849791567906421586327369677156454330204418767174397448039994071346408293690371984881850741938076833517989707168244130066580417919098954590801828032448249237232245386324768850235914396978130524032551650623916267887124391298252898649933246436413659623297730681463031301315223853508191752590506063448911173613851990432999817225802654971759782563103542921370820361244520334638954069209656095110836203409792646947746300470207776329654845892499841425553078528046711661914157504453420711535641711779229347511468917678127040786170722711457982725215796594896608343965907234733139608277869389641394999559571044729967595783877123165314694699709021404856670017237451112888094090685558024741471215524351763235551237698278310368137992858079031954140239413154853675241759454832499869249823874692548603066299926254503992905554617106925149360097904659810760210816395968973595169479729373791850536550400134508609998062439610444660521651504367568778991983714747504730985511947456180772104610499579613870999069659568037202821699446529718006590072304316440812657333951564253453764542604109009374781113686309246778562041516142489394960906159508530753038927532914291294511057517046800563263572620091777632114109425068426974411979651044636479305382026746487974749721318053610274496943186677815592486247138450379571494648349242906131393787984685311895155152607395860835551690639529213247179675798971981294095104227103475477424540835363270709216605150820487364896445408801150238531171095866886054436118042859391861083433263835748760295361692311019527805436169214735634764588733087663160592737338385816501960257988158601385209299551158538255362927519345949647682897310696614848042477231301557549258272579794019664476638749421714537449980831077102257068598643003650976784095232228944565240803271743831174068912229713292957277265642087207279319541255088876823420744765825842679709978450286430022032571148863787998519646537557436330100692097204338845676193726768838969693090891313497911770810344497637466904978964720693396682823539847606727724403403099509209529258726758879055287468632999434196040930180900652318665852968391230099312797248618457285071166476559601674661392264796791525127972851340101743206865320443636362336290921141981043358755688812798033668639802960313185301703101647484860554288219308416862144461484449280939363081436764403408107552671443330006909788010389169864314829112792739735477919575180229149196845235322624570006808650175177873621084184683680160113339601533490198842250938287775204667632403203718052179002064934312297699559238007456109954517665703279212017632649753341133804381028261857501896255889183283392869982661067620546529971128418168123108512627838861944196692184559637206365466042609588582223154113791885393423453203860607435793619220002276084938749482440675142625835538182274800576581875996452990624372134861424871850680629088704395149468448685440657973232775392065407300351866134208014765851412466508971930391065636505733159847602856254898594054262796009322653731884087786225578162042198260275259502305287668022823977932107949018037615672677638761478165365940516123712410186404838268157971097314470490726807966281246839856659721144736830204729466399092752507103882155722707115558652358145410562668355032517373985906605648785497588594021660792038627334708232917144949475655838631355988819996730070991417871186147433780866913816868560763181833538464877356962691082182041795890664427914884553432599019416128869235180119047814267155902261586441995637407243110491509466283862459828537234537084427555407427789031382833132852951425075312858230025382345190032164994076185076490539170129909361440558009488361095335421373676862697096573289166701234581531371455789867836458204181544801961871611100701113329035047658942704448690734402506849752392929323103859842511668570436831375112418590504191981160012653483868023656942979056779864606502165037468344312092500753067515184772933526325014770834056859238321380312871560108216697827798819380011148591240594139594337210515634882960192689151167899839802760551544367025873427096551670596413370127756924491769718018333590409623719520194402282935805775177253387818601917604219262198342904298424140449214557247961929125420826295001473767473568691052506702475286573648267069826879516235371624929358933023859305809574346078496214679247456558696783445552543379173999645611176595913128030152929755646416346656740300624173178040199074505930888912959716203955826612315948030626845293781164783935595257956130657331532905216267895168289390233898781290216944474214312933284588883310916099048812520559078171321067268444227658356198614679735808356580972351299642970700565171693717253568198334763645582007267999454044846820119884508327106554587235472282365920497799046413977076774687131535905457885841201433182179531993492022348967709663422404084816719343938659704516756558549653483095415888013368355416030933232359343297222082024968561402618053973362522559991717401922688995638143351199300217757206942480579992450643404208620184555816910039455582515747210122250705327655526385770824532959521763581700579207999741286602237287985852928735847487668106678854398543413725669480775437517446898815124686994575377099911308452213833429135892958776429835466315480068476313981986567484220568632621360374312311692203274179927624315530343691246307975569905207691711862186342047495967061068724581205573125034161168989983804436846563266466785068650178794664126614033750988925076158772913675387763966695055835963137877630106274018117748850044258539100420944381473277398810899042291662312794686864022516819429345485786835045827981235398223318614249143603842778048858287746108274641206636257246422111825459728291099338116693357844483126555615214194884928530459365084915654569908729291272069864991067071261535465603926754944121430232224692599229317055418940488711928131709085605785902208586749045534601065576346930258816226622665755173714424272387481236423959551038536713324352733668261517731367566012022595206441247685885386752904153199431554251179584963914887967538505914575447874294733870301215770289610959098012988378192710667637488409322152723650865269967425424634303162756013686232388844534337195892611087563850841435005354087885287217012234148202875296855153206718988445482122898455526176739988689979982600211854907966963228371390843600855336512350505313880072987682793532807416653933940621621758251837504411759494547232511110708953384181201041038461341339824607824299015191152010305498309434174212996292903236024908105706576252431475229642033907669598171952278984276282557187180805468682563257728531572075694524724904781104226047828316463668709551390338467687768135674337183491519368939981420296824390802385985290113480454500048060509182858112182973851055894768648665178476919308010906407061067756908752551593812931719764494849469729896934700837157998941256776291042758611821386419011650918365634082642952787004035446841514430683080422498891814910427689108125565469461638603767931956886750447828037927617160877320414625009386636368613443619475375958705029891944582763611453012012359031723542700326853038116514205960579121315569793521592018619249850286498348225847622086020737451990187190374566139850418297807132609982278286760469465620844252097261059771656746902674797164603601290728746198514222789110022211387670410626776906277465049059809812332357130300842372230338457411096962654694961106799353909304594964833900911730663585903949562009983017546189338974031089340515298147395368231652765860006542751449396283801905503623609968175755988257892266520064199285263738695800610243640602958732176664701860490571617254246971317668754718886809377555035194382259813533872077981381498391753506047093629077068260430781683099159002372000963954943327065594260499086929704765647045533619201930873949527040093707388186750930133941929325674964199037701542943066912555585235538915496658333021247490913649007371625031420485678753536012929862402562639834246096177980987592180384870695382175309040594746781409094411562304565398041246219587492012636401324115988509056953597837235438738400934036916382365758894581910546028035390708356334063003963511152160284535254840167438096392076267349188835890517886262228933740102808056297798924198514240117970785091406879819323170479497479779894812707642374814898256015850592151067234815139788623056422119247041927750385746469326851004445605163286766131171421413262866748405714037787081652534717470593547714132646578268138635285577006653771217862938120261340634475093194646656760602105999345852256949515011015149188048693863207212871322609148547957848299920087086136139145758553461959591687848243846390630021168746420285192833439899169741129922144920172983260241782796953883814874377036958698270418679930854399637207949773865381147518278786117804149411981692022378706378796529550741188017405386810168497213144905476755633016141053622334775052772688534561001902510802493320517637628093267555753728542776940478763230522258776650493360833261097829299729021661486958212335117068338513373610863604724385404329397418374913497840348457427262361843381199574328552129404434012034433213958672978027425246617859778124186070152720685711393293870995409601574625378739686215533941348764435918565566957862681483911916680264530210127379969584272419124464052741809917810883643188243778778830668302314980968311198936180447608397385611701216497380880626667568539984883717129366599315767630753732547192336164174350609873498401322084511857532773669831128781146118333888853883145630059450249736480010903997806296908896266064129197442308783973782383522726322790274947525361332690551388376531640974842975790270191578535504689822151042677302705353377433096410908992255844806982993706393140564295131015575738613447689205745601875053870808968102843592207078560927261256237119473158221674275589976939202296792340946347412581869992660134493587339338607596205151781312236417467640713307508542868523874238635510925515116530345222712134763418850317639413180050544338252833977124589783870810442143645538672788902673743515006183085131076551414692606290770790385049240522135867006732112461034153596658910193137507432627900132022631083733904287877020917086818456559615620158055232635253340866605014850864826089619944285593866448659002654426303481270218218820983701738615145052191689410615406496435393689676382560598020099916551780823984159208476744586193098252307567222007398397652273141573835674453552310864549796686476891524616224410907317702557116596377778305217741074321009985071085874795050755785954605437452859775442965315901624865674767500171073366778430449699198763552015316888222253128837204275702723440782428462968490368778628242346615496608225951317339118025597147824001749423111266324352413608104755242458778536743536040065563134377279926455169724183686098137290209992391303477986085828787197418755729785110193269393844834736158929064106938827707342765280005484379931116996759714289679068168139727048214199554999274051815825141803048464093656236200937103342441220009015345020936422961797664273101928378345614867954940380366017755558430448484237980702283822809737190835628115110207725783931908461931526794394138864558990915842913443223853803118458300025829228849362660868183487809697945760579935126021091362012332442627735015502900737222457912519408012339111969975257432091943226659692690389060427951279432894096244061014733380364612014390614381884156453736762283357526590550030339971611214686960659975492582767320658197843434187196749646684447090926436128730445792973075959932384638450605760398325709251754852315873301817376835204940888059898051204199914189435057875885047851044731981313388071516297581028957057401692707502179655322693516592192274118531750766142661252083482449969843467625429020960556233758037065575227853640909604852971198779345678862029283316717743198639360045500417848019195976572759778737593463398858166407085712576636829276160757508878459987125046383231730491280647577039525684548305675882881215505345640529506601085444546844821452751856403668957645090168931239018617458266646377719999617877602175176607422631058686368965684753709034572071567948957573869321967733701022708908499777738231166004620640113545581429822685836522658476043920562809636217624936418686083717500206921974407869779016468137894538815952921209409214183988174661035578053803866845073708525928580666954210842742810199686671225901682935649341851493971625740185953498694300608302599084425988524101483588985633911774220978935119251587188895115341963315170385823779090364964487553808161826134741355747576952027975862384252718973288816997073303809461544682021325839198498337406565624538387911901157828158287668993225123377442600267692421437742770057867342920799895772796420713625573623433285265341737443769343851465998763050715073249889830021536362964893628198567183948724143478862273088751645810067113410363369763108046383434634253744624636522461624016305287540778099744986591628658442932657245910078166530985938652443843985687767116549206000847379205589487080733861391488008343515308301167570936651465889769971668435488994462017159789691878299024718020164193091268672435452836487448331710321942574794904618245026873671481312628285851651834439499043215834748923627543590435476588358526546384560099383667531090316362053785010866178081982043312565620612884066272120199308969877375865566611025831084073886962246893695937757789121945494850770604860304273689544669161326252981520131796544982478446314171324738393496233077585662974454402992874791726849403963262692063201419847773292349176408510212767894981461099896905737043885838828232961513210511877100149641407588721830138344146352124093820478679549026010624461768097049431186939816888645412919511042762127445544570954850630260702389597120990616261829788760590246975775533584699855282563013090341280896203293958791508422923786774203361765366202211900659363777939589592273883538517371070596096787771574687407899372528257913996854961371913278547318931512982311687850765225394075877439495868391827739792977378352922931062028416487146592710119278668255725085857914666945924073083390066785445325143161759495476640683580562879046131259631541204525589384826994715071160927777275653179941163717498877969121745893475647400642742770799102569525588619772547647327041514678640213235490503479218447933974927159822827489638110649698113283060966844734517618270867116170054425909893474983120946221847618695695217008875880510624337936500721730324582317893328975705144982074637038330702438005367210147003114970298273496568478877957154089368763872797661843967152613599947380074664239928572954136604699994780180371978721038786881546309714231900520758294663075661455235036392885200493335637312142275694944363184133706038719628604118246656948065782105711491603749214572044093367693031000512924046083864983844109836314274825339256428366108745301475120758102950341120856374968068294144232652277605234583213935269332267635671555711694718511060069882059582853387912546743559506478094331982541861828804257993915896891346712656582279254903990798104726333815654444123933341344938291576340464024528202291239910615797207657708269976569978019207737892445453925039962372050474980760631378073879277765434118480122357226697892546094221161635806407829126062299630568405962273577745589495885092633479191597146244471604951347834890734940098912753924500898337855268800850032085031261604053056559031075213232999933123152566830090333318593521430667383588950117552201482222415777263272939237930688800403955799200595685398607674411267167244484507972962215459938383797739859246922803155338067212781351206461638654674831714486541375957593231407593928510193218863558840013236445229661758285299770194662218321052904475483308055059622914736067263879984297723074271688116051027774741535273759562387966755697488234004992097183888353076914485959032345742271566895348327137821156270132910300240199703655596948304076052768265518545430574053908954079561120411115615716391741618264786763804767600941219979677502583471528343106048861718203910902828873226629129783851074714652993041956540320743231636992019980895108119229761175792048146651577620967899821990399176787678784073452934278017581507537153561236313935041230229415401331206980711791143689266895338297045382627010195634795112935494834755610733100240198611097359366317651112032383461938542866733399825244310704681325988290352658303854370615529163431768541288383898488720966584943347687741235375941111740767291158346686594877071470303498269727807871732131736667569751592444758440365031283452462650933697382496634887000344479426928062607430516695921462754387718637348314247373599986557583488719195675312619065096355558855489391545873858997831450151508352120797617351649243256876027611870924612303634654325057959844270306589583339743747440750583565761330732452105614835870727094511308946753939393698462343518992415882568989301156064242991946270324760169664770069794785936831151757251469230276849298878757671467065500277014519790429176854199780004374491601876823106129329009638460593157539473645163285952684977485005820630116611277489113295162059032441952356430502634527792957984238908643534204120279186202506532832350640830336387605477834159566516367538480786296390017116032410607641102023330021658328104051864967603186998295432551118087224818594921810340799627803101540250433420788154225526390904737703747297194559906434327905594289302950875696537238660322558973009971473051789077315321007058993756742175774504219336718406691767652452039545816416224315817204014930051515478834873469757393204724198743312460960903596158919297375409191596773311151660896798669998532381860500192298486156180429276400979745587735547261366613752170283433157762767384441724163031123585803515664395998778196168927398860375475439243375503056775233537633860195628473955165699268478019219908869446605945076732027542040212562097181577323071715193508268726109294640292754365718891567201429216711795338228081473496755589437560012407161453987369427245753893270110773494286716960025587530553978864113451234194115133446221440704101367600713130793716179514764080735980251923440992010730278475503502142382820452224108905971616151735102956691714869654189428094243511690839201249226552060548836900453817996661646670925296796304303882118530456228667536146226987794520385880854916248597438869719928918245153049985182797801474382986651742509000930450957834019560576482596413796322199282887551480686966274617918574031124005766254450542802656163274233911231022390059288609460240043535122315166522004823388290513336677277893813705462875263002540280151774155833474590012603232645902730216619083963360027825774882146401239416569067729969246031617650222838604374428972160267299254642369866825952070760293340163847430527725433022341978194117218306763510626547794278526498777366867145977431259727301969151454447459403636885132049343192596698807686401729670980246821377350684378751121255654324011733936225697502978884758892750028606423729946822866006362683044092248732476079479303309637355545139289693558823977500536315354527912266654084247531242552095418505961325576795978413662266428284362432737252508056688405456097879889395164357569685015931310689610209761251592128023710910636228673977206850988275787067604935698625815947061019564364523647174712560982097451344332081061917108459626927609397639323842103724033018419507806373406156788140836965245125626358487702469191506682702036155578470743361522751304767987184024600903005450635373566500459766571677750738306723405128462852824228394514987035300688919959091137589190814648330530939781841143839654180055380518569912007996783808496719509254515296788387104395408337360643839806613273864006154596103360722308457471208120752720960549979109899299329993652126456595513404419654649300240577109920357604652531061355881873360921056816245865636284848030543388110905763398469400051634364157850890881910962322227345130500923596928649259369564348852818149244112978682453520055897526711748260974364277043957758636917193991392066164803442175814240911776318256664215428030247401678727461972952872707172163842952112724010723919171574652669971354688746213464272215485538078054401133750156360822034035658218478958925057367916161932287184177584289313627529620963076896259621147226910011662239626153547012598281411444666257807749606286460741949592320942097251841503052681505649746456926862463379094544561781347767633119926757469597934752805260263733130706612795322720381006809558848282914000468605464517332572248916699061446603163045014963861833736950479852085430141553516228260447010848944860024724372677565037342316477067662800003068888411504454248699270181429866737610098104889264241258953754361831400139684426077537219697420634815381215778239809408404703058145869837704804941601933533979804587246439266462844666046671284498436110330980292374224848113699199791116931707296203100959364365827077546832878596893871220755303216498785862881700776361779577986689304535035948800824987955483002610739273578749295850395804045887127059332028659978793021092927685336045666034745102610880488868043234398382113343470702579293748328784095112303608565671126982549761559280402031617703861410859477212335621834380872760915353601618638321748686670395489590218824655875282212415448386493141602922471703707674403094456056760887508371741606366477221370277737219612961448488770963269080451400720881754897268774660220079693026045872904686240894063568727382109553651256530750919213459026857413085570268314326510821936520338126962560248176477371120266788111463037544034159529529106093252201052708485169025941391900750197831394936802056700313712340900043715200864409229955068779211539114354513563319584919071504723501531987635240196899521682199978205892812604512755514975396031230806035029945652678283965877056787840233318716638755803806429395050804189705482465181554780709537813719426843238623804619058490508554560744876796639589555202257856511239991333496789625655077739208518254220694874150720180172302775739029217374275865033874770350733102326591974787432301288787275911866678924158390369721307983301988609006166932137057978057722273486955668780641951517657964431375321774428311950221317473518667816581828565263354188459143253034972119125870152815875469886695041841646304268213949441283847404090650776587118624705012936313076739590385129939867081199591964300710717977799376216905811380716917835662918263623744077232732477849933833661712470518549616614506199173585097424970878628342344801073504952600822325067597151477496913203718076252804393332707454922520659321162392268876409343519590130439238437404484658453998749990361004411398438152357418884112332131434315282616115735538508212518156657670093340388931646619532941126706271225300796065684982919185206145399179427542917393878464992762946919678893057212328763205613186446509529191733892908989102792186411750063962466982838273646204529128982649903373435786105291069275265938391545656301000686429970622435536701459091114610324453198588013677877810633672022100929821410116752416222772973394935770262438516691675464206967233186584182435700245286415358586249798149929151980798246682418207547966946558834776159581791723183979184019256694177327811113462403626992062114991382492429822881921356660577908940213103171244931549086752124574976471143926669415200305078011512723013537862579891445549901236196359446304330827090827036752637178485991436355521678931101937804225551554742990952133873477206198383456454967950895301634824056487211362222976124417968299090806420400518954112767431844543307544986433123603101892917489681608422717796663316037811420484572395796401568931174650566557016818465053804116520475860259923789044447374831155354399599891631727099841481742383607008282560390158664369275709484746815467202283598641397019907125447046036166323343168340771950554838117596366866317471931114266927787618038181615696081620334613140956336105004840191807999429819453877973093726513450072833194107549162785669102003363646864909698360641522328126950326240310757604614702168518380917217339120931316563941606595887201711970489711617799235674667926283692101417467229040928748824274104459614464350819474761126364693164693081615889212774910183104836406070635430626196944634659788508461195651747501661083911162097189310985401315967312637576161198077007753177398322590153419717444752377903906519262065745726885313088298899732045975539296768510184772702692360400167956260458848234592318850136798160169861490953054365768335372327937944038064908937883269154912537578665346429736742319173876679557720760630194392429946696531049491935424404773489971823275742837175379997692306629609401904992933232243708998970900573075713607373972118580768594050242181124983357666397035176011945830561542653789757930874033529532959248184849231035246004947985259577452796367363597595766155553163892321898616572841850955149953937749545797972274226759096451399540781517374252901247807745401599187651693815734593335504778507298413324875720187542037222837462621919803305787972487183665709506144095500674961088156782385785276875143191730277990789373882022917993602790364494141959359850884492561032808331668718493954785322962555856703286711297222250954442745942276814238478483728524415477349425760820190289997358821249730785136142888486689228906005223728333455039064218344835303343873627943172207245142275215460424626093191774521399170362535897021566219405668898429473199085961423542833411731564307417988251643734478501108704544949658901111909203655018935663887979018253126788067893147600196713358792617263901821902565633465999608243999885706969037727628531511584259054459744668678471902592843548379479867731800363468988025705188494462558360370074292312538862004747958988018104715670759104297653427911908269078507457772494966810680529437240736798751495715716010208257441922742057203041032590998192811424392567208605319504512621482408325178157283134230691722480505360064485307461563375070585863536600190725303592711307711197869546469015194523202282182044126430561524775637906348044170150904596024553107252991463111915820580710096018635295582682149373560367333931338461502033629829503200039394137550354151874403658856340535189958573834591245386459558127579844519708686241140370253345006202375995739491679613172674637285794774754618550714044665986458443341487529155515914316952973240900974368030114146703815933528778319213587648924088214362552850910683972647469853219196749187400709573374604207378321942119645111109144436551855328426279168494905973826757022905345556907807688391416547921571644412371806382650316793333632270395454311392057091620129433466841935822125272838084368984758788509880507078787449472825266656072049184024822044221276444995219172876094553252752459531666055115778566247813207928930703351834513677329886807410697958535172686244131869446717464767789189815376514775547813995176634888257777185194889335641018905963220276988203484475335541991864142217938630920676803295308610985847675630686338683514385647479788465157293487113876955084271294962816712443048851476830623817723927164746420620493307735339783186116605281863873534585352812595698302313004477455849740438685201993673876259790558877212239447958174093889531188776937360289715030017693477855461460777294677580078556972037142120314609148171858588280190409197752667777877196482833626417592033330923669203557176795969095798362070636502169346048668064730363517749013008267835145148297443541252892197502271793245704565434867738385246448351509540893389037525092764162046891276280403709424452401158783233957416587218598029816671836400554775911972636568080728308785290299222694787442082099737902293556263468768129874570888140487446388315202497219749573720531507240947643621527778003475241514321235738751942308378297130618055216633246210445901081029998873220891349059343469361406457628435568441738900665191597808293892842116311619811992278491630512833795517190806103675765574747919962962793850348195093957930536468602188299957812538880113608839071458588000562516110059205088809668479468330306043826636839804606550771813813345374857647691319163165562058932378199782861893245006596213566321483206489466134893739026640696718919560721208214557338469666689072547875739957557473461662865732240291177860321581836574989937710958249712993941609653912652239820476687044943651109702388076126954912726385792670203224760836033418556197312551218515924077599353641516963116475899337213727002414304342746667262582929217896530185298698748512340929970425979935176693746625468396551266367883737818344057751704594523721865411321780054674489225534487766276126328908194010913557097735748045003530915663538244561924634267426951594787781994914635671845703441599215888386105721922804378311919338159567828398033340005432041988829578912913813821656421551999012750099960239361638031248139352137039920743390145435184772981795168376180896292712471036654028193965375922733589137506383191593327941985099563297359640960764153902720576402209925202608608245457818011324902187385976858958240079853178347718809070294466199673064783203537353795367055895455094592025020530495988181300033065343451890591076674877050060785355358120946761483492764055658399159978877854498414271460061622376887948226930561708746809875929866749932296400066493288188774189661528778933489229828114154683530479872801182631997250337337449773597931361718679707619641061371894082020908283976894680420278916956239538536263160720463728609362559862492445492447977186659504109526285410708017282012244613869474651330170190715129833804363184705745492006114737310355215974645481898687339163583723371208005112445764997457490388270063496249541525165769218345846197464307145928406101633533231180989733213169182923080998519209319996940266441528815988991574423122377426305853604244280650023431436562603304553139084907291671038416302538554927652460656406418597011035914631317892278346420134029942313338068516358296870429245883520564440877246361916696965408505584677075750886393420138402767599085865841578478084269426497988032578377492169667148209112679978415254301634344251640003379033169506191184621516489796345804608493979509597198285659161738634449457706650887882448115126314006494589594136154517910325349664921143935686131537496253518660402396576064083610952302507425054279064440628623394737668650024197070436543070364215812890764016575402556790832355056097222124466113646329514450784880519552831661755316875394633275696209621871408998037543065926528750344357459945628197791380149274182470720059401646078053275840462786099040240758466314559773406329663720164849015751476786142311187409697468543864224029219757796714007506940991014255656468728257943912515803708305804768464074782194224978022436315884216384578464361826298729790976961894662754074705708827965546492309127093674784184291426253807143481620597658649571019324895008066168465802590536354299272652020474725794165111937800190357233451497362456882655914434074435334234174738907640534471960825811562988008467233660889535764898034338910314509608612218804877859192598053269203149081541688548456927210832351525528836603513127175996654491362883620783432710952656730993020950051037826593969617706347476436030906936703137483375237019089075109396404399285612901621007186806776835113416578031500821428662343103416402131677748522815692468951117255437193386396831816226118285261851714311637049031068148634510600600047829836413757825481906613954391706355632164463164314192167894470517701366969381157504438221901969436356404558829751508242901606945356009240940811228136906495180265038577012767799472759533450351624993069176239386787594531892826127662565022352208571178487634144262392760817781629832658768150191468789311442797846392112019828975882758079979478756886308207347062896764485205891548503952047809486465619973230441567933440720436988408146433905362478878036212260814361978768840561273714161793923523736288706040236481539305116667276094013988029046517460295679544852514324739789393808282228735975033870835675983454261865394384000042509307921312040052071224377007291048539057677000617177883227945802010644224986994058709630170104849397787160442285561851614416001079023697424095282235652249333678841242220059242580147506719770280698015439738493927285226039629685803521154051744050773077176540897386606888255802673526896410447652260290763775281882068018210246179976115954837912954718500261629132466519798607322507995903454700189380475184795055771470166600565577814328946009505339427820528037788293444741806429919260054168424682832283165958174659120972158493830167644940831249285323220400311804242286313274749390465198950387488912402629639992499479814931846518809823760686165070484264512201558048674235627561565521116571122330584287956866953659889047640317702618559738309597292692191770938040526274353088382293704894105807040589282495459387144877791633116971612784854818481746840470054324096071462481666903643402060891500063230406751710742981776897596587717956901129617966715594690444453215532137574396607681950242835825543317376524252273773570685685795523619305783987798151325385783641574836459346930559821563852400427896990250943965900800555712663807434182124655676061789311757793198696065284578090977733527670047056903133307117350168685875422934551886304349237622031500135895234639727380195859967623581342486023423969134631865703326557965916924447581949014573600950725252176580499637434881756983812897222805484229595812907650590980538190096209116856754545505907334833167799858168654910416239208630261359597443446585300855897331636357245848357580902150247789948539706231506191003574172278144870239801727917039318755831143001440280711286046722464385884471010659476885472121178543241149064164493777667673747852945313631080031882532311878410240499983958275344227144671765894898257965483867452777830513140322017119917726042309504506821618684726965175874080325364115475770233848209510601325749547080800021309799480877209813677294351620704511114286395493829408761837090146354018878306175985913006458403969001566222217053599851141604512247030068140568862304706016627138045690140211015175479535068485640543972993307572838584037689480459446896226117647201274039699649419204717087539827756629445488343656299152506155600672255485089911430271507185122061902125826802402324852141713118457905587914089320838515148783116336002027422223952556289943193919830323625136843727374978919375624799423793360987118979591858576689249791847450283786681951719252974493738987311071197700050655147262391476976734791490202081488434540436785721949065672092743834370500202509054615745059403622189605998572389127118691031278111275697052153645422564067006497800533919323177832946067686119262625773005600026237335825716467226810013154273066911188063883307813091705826992769537227340623891789056331836506234726717200003761216813985455736925824772740683054096867631349141231423194961125464725685397418065019920976174331353593997347053796859593008913234445734910360977284617573608975295266678812762702784282245464262617065295729877822591359792260792214862006517477724881662967501819907619642433501502137501992538469545157171645690156249717177683117401164059580277742134345505162103241683777337606088146255113896521860628142342476393184831887830558507124298834314707604861119684503306612341422186349676660039126701587863911808424621467565996713881617300475846088003158642470266124495889929436193407273852896832849029246017626073302278196120612164018450476319311206546785722232663688062792582755559464560539792964556452243131254256642741505310629669795392317610813550798867054244222188413973114706345215219309118895795423334351221229120362212136512961349216626189920721618097775201479576061614867414913783951556893207328343523565565712551193000703542193473855752233174675720401413564829341135182262131946342885023618283264057306384217834301138616922567722828092484482218700550612717006532889071796013355785442150377569437228379431489409756348414341165539451834206612056059116372747378685931584963183870313636438521020234002812520553682441614393742727490647279908275302649602291712209114673466270085183678045597205289446910777186072811282749488503664702310818700820383574991126099091369848732987081896854484583255343116683225688642906760784957105899478546488809760387262714509489463009720775779699915054708228323467390664855764564405820237912326255265237069729658324811355258192659814755191325524941710384429239675342223796756222641680538559956232519935724704978854440694504493463587958301974177769768835613208830930164418960430313472935476957417835824991742357577220876526997945104587690867515527130574316190718749962104505242255896529364792691842291608769296125224082384965351915507434390241893022114859312777494372634494065925491399985358785318974030095675193323780809549109777399680472776983766753052099714477958966220958727589897210184662732649668294508800598049602377353974307394258293982070555119638735583188484997263027541771674901917522107686622911470667932929558259846711505195449057558608408462648427444048544524758076587743288217327688681227119812085288336006629069557699640100824778609740878801019876638035773352620025643591513989453574879315928845477837050636885902284640660684604021820537914486075965169026570045534682666550581894803418448163689068372857081144368162533983242241037828175250701057892189417635493892350956881241448298232316510890917600498612251146463996416781889065175748743793823313278319962122626006434795104701297479300837369655549480164744941505366226470249718819892345448800329282022735096598817812070360934961871328894295628098591220429830519289547949956851482096518929100846032681549140452338224300024301360993906087582884123229126384904912171147477111781388905587869156330960098325100830957359215337902664262121178618737354704623357522653753670221707810587688057782589098123346189283323613959462084650645523110420783986893375714766626554780460755268283585088890807685808863526282093841962131548544810991120085790709818441200875988290074627128596193715270562033376429885360378540684241415865785254306631482660242356662522063550602017840908596159619871475233880537081103810727530154795315989713661904739091265587922594442445372679367536730349268637583380896487424611499885209780476506703396680866338914344647301265115535414924934276858513571314654637020453915157515125367356885383761502518023162989538049862398262467300901882175939037818358421033968721281296782560241344780640301460013917932492217694961148239205735026142403423384834300760820126326493341089518185965509758135684578175482383629959391316494982799072348051304944032240092705547273692945455779583974167327422561956514152703065261934731149342697809546590879857769826931796701883368310002005881408051749773211448966459672463036799081734974201495329925743973946424529595660731462796236165420119451334804427004885634158043053257426630890910939066982416217997465560308397806281203600341765350874081707216213584451947362669508757724214759591841426968346026964519934554680086440571190390171506742894077936793209542700745994412966317712021685014128659876416376935759329124335900295711959186135447390683249478994796535954457883449266075772895061189250507500375022930970674631900831578156379519752583316162947186323236634338856875469368252620129848659354525135889836404023895214893907389193499480971987891947130242663969814096277838864813564294897558673177948503136285804334876913522945669954368221360533585360771181075862001583147991159769611375742927733677175835077388734501445146951528362255955256235833233533275525208176696311272230710568113676684484883698816012664533242081156640886187954782309355990412478458241897742181742002713149358801849967339266891399356570730047141372794894374301422947175256461728666009506480093247159221659372716804413555631310849473102510197889038279925698111087043287666348542549335464323827523752676753378359824472160227493328856183426997656938280121104939364721277543124181981136546921857785822360309304427228970047095754690848456061700881004788568032062342540825137623060093643287024897135265653063318336769329396026184772487940736461906684279615480658332785670097597348451406542030058439275223913393364856855191217457117805604861991232809669560286880955580936281130754304825167468525860394327890699245282135016207855691513529750721513771492784350428550717000908470909982403209748319087154595313196419825645281585458156798517558776263832469468268082974374966494734253766717309487284769642646964075474569658138620457828643757509555375848115785314672106706455033413652102680615764560250513735136958681729011887608201299859591747641485007697908101985969933786387774136085020528873540398177563175275528443419649725405332131463530689544725103759091914504335707324061229709489167443882261590839825047046599957113333612127469529219618570454230180199652974986214122115801935125899299972799299445869462118576949067215113152189843022748161574987945602955638075804675769899686536765614645383167326439086039299008260391266177685111702359677635828816427648452417473518305791517693828511239011154501449227586612072865753429419982960155797514169877646672085167454279416389989798398265889963060970861336492143016061684221280371635914619052057949093360366095735094607193220611851473078588722205069295772676565523565853612604451198822247133259205928834069274408767966059406703284207201388889923152954216934814234180796406496355647244667161774368918101417628165361945434087071707816466117704583941166489037866042222680292692980874911756165162170330366454625062171535718196298088273177531731663159498529508793046206893725293343316376144726035143558560978967982852597737273024063503135797351539674643605203150463852628753026533127863008480800115547080274031794794873764128912313402984433358037994270226555052841037292688874446480619723076591142421237939006489510548928853959369070202831056936423858227593200226771629191409502664939948269837341387934327446180432454178690472531615071377097211105550714756080316859400188949820982416095832388364996866097552241975617245468138658185115468833340183127687518210561464019927011891530673810429782442614011503199276157553551766259045049161245357305307754154935308832096792832000089767739861008710582707026319205472259669650752819927746681223721865201094536281388179641966604494259103983767709354659471630635302519478735789850214711945363909789331547903652454385558880591142804259647346856794726026827512994673692861332305160747736087302242114175028154159093581672886955709681565476459487323259534221861084389348129339851250744362992815379385884993731427762524171564952548489404154721171526651377878645023144690775785347478442040346116213853875274573852873414740402542855820443112806592921355328128942910365828730015057364751554506400931110669935625855327780006714846645163138909242896633489754686612151411326735651788829709731475224796840470023792530131678403068897836132542791134415787017917128999495720095024076852391644775824046787018613877172962130215398272549750524216547837230590369496778361157886611035351004336854435411653558463130078493137201864843264231202784798259804004335392489666242765525858647931202639628015284773197468240602547005923130192563510352488049731283108173846021386935231846744437594950853243014765081539803000126518758510986257816543807474619476856435212073940429668573449847558450383785337276870233853516630748464028196277207385196142833085815939616356363289972230532972538362478288393020732620545628521084901805247455541127884170811982232701658261497424123399701754387885932989970430725752135375953881859180018620904418162036727061306207040377809912460222115641950136883670184089906200588441209217190624736739686270407887325730201655540069501855455511722607487494243541991826912732598670113255911459384416668715494214853763728822973350842470442988309262203709671877115928152939902349820994435714472567206649445400317829210759166704405303371123145243213801820647877828892019437243187944918323531102732392820478231839507805767556008181179718964728129008511724897733559056293764320477517126493969623118570488705099090927007459987887209159982498232762962657649527871421175237214080926891370295490153743859629348814977491273322752114433732560047981170466091581555102686982364260736850090636660237031550241456003888849605004653471901141695006992244322436401472184195282314938159267751776546108743044827165881070760354480839091097956948881815235089010393004580630996965562530137700662568137161259925080494116315415259586595398285646903741125952441456498622272260106986751944840415074925836912658127324277105853264338728767975732948760835859160163391479186065302983868961309530884795055141667440320450667114211627309260875579156448282024444953986887090295464070533998161676112317735428938487353810914012724375963146262930178860670107287939094030895180166785097528215038175696557823780876245797431189247715503186821282372138068668813169365454162700260263864344207520507210185575697908927128551146452078390453593835862785083563577250982328063490378093132364307146689773476379269845117763771924155655510593203633263060375291938534503938519141091808507163026384596937100260029528696368441476491783413901637073939218042617550160864012337075386382095927715916984153927568571722386842888138596244725385107172848186578443829752466712348689977278413367441499983641866250980128869429885942620866968609520368538038041368460490019683310205049760935893896201648893252124295838854063708255122552955158432650136259794418218799054907692199964449210579027368911986919371175339451744192955891987898434369826889193159251535343066010648012927650080776299744744998871749912774534010296053137077742487531438800355486022055904328484203469969358978895583052348702576092030913255814027151122001983465162585921547214246070823526790204498634978253359695507842892384684257146017544314931721821347108532967472173629991152167153748574809617645790219948659082158655351112391056809945424388946097216973190833370068914361000759185157102319299897345655606348903003277656016818099771858451387062185782004104454950682378926005549132261298407323941150190315971368552209575291445396901099961787199950994065228685268461401590478874490335071134338808909619424867279948587199251690608011327140158803865932412040495500199842517742896323723556587830302744567577799783298586371169211368707708675894361564554171256624818522928042122482356635497919908519902029237152129829887625692111115097030200464013317658925782203673144975097028168348739548053983732108912118140902136790116438557454653710827704607284265615693541828413699379216632363942036558361650736195525638118442313388623523115125302031076324290746262708568162063892571656305208782817581873701244016680510611532120984068358710043009107605804125057557147376166796123567282719561855622632312957551997603498011970181791510906903742247124773567580545719025317171801967700287101422339726842943022026479945493005933347693146225945843834022744092514398241307809073705510313051807331471088129887885386041679336075817828962551938817474471096803956072455822242589988791162799240994350579470176021440993816232685218224460217457431888746862066099539511434064589749461764572477906496546590610641044991362264583222368711838735657811638051195476663044475856023458260473216093087499340982412897917976145870834274086330908579890494807226609234557593438063344305033999920635891067502246254281076532063105477515455808955075350093166969165879956987685832807128757083424414000725277449700777815525706615477700316524092671785366679274314255501594197271177173144109803202876815167978344066861772200413425088254749602626313129078903103480209583855304272170294957012702029611317581496161752535763483016927809334335084553490242883251367722802832038373911692299178621899797306441491750783062112023103772951806897936737198530125485908539104095996034136998087108398187663714499245105801961973186623588028129604187092791323542757164587287006674348209967159289393062236888367572459579577112828910309788128785313316236251270126587946546666468244924912410325739442686683712907208372752551942543905368283860323943073051864604324289530000220754417835322559546543557650678845144929704239580135178532296894503189512287565381303073877542714081652776394403861246040397875909230055549842241760561302049216871732097485042055469176528378684799631954429895603015119188985907467654087975829701889722143763825627043207952309661078761651565415533271425868466682779675962621405587679917151988533174821152775468101358032630062503174406139631570986732339824239054925126851255967348398287774573916824316689800146492248575821724167028488523860623713961888806544602612176563669536363785208018065721355024015971935809310454417834012118415870832540772837109632407728644962968628703023386741928133481622373225675407926848241934415432289153753841608307751415443455437281112328614638119589903741505753280432153595494881327639012742660916947559071599428828746853783601975634019933496806492200057408864031187751317481971035018556800377030119848875145955235239828683538636878701983046303842841266499510980242244224734545423172395507505853961770194883440665691909252445984119911353420807844308785056974549751574158969890378083491497315755694809951670493237234605627281013040299608982480146261923218835352393381020103688128236341281351415949572742507163498532525944767184352786350937601892536509890006669480335989676544708530771562336703964269047567200644171756107290384425285096190616170553457517576810516251151961152869166670660254108122950321889525970660066463385254809870531130526912454307697521065945969502866427910607958719416714518506764153915305990235484095598390930040748144428399684332248020516178329140916221383275061698520342888979160266976619727475066237090750752382888395659631573338243532969719074519334727598343948199249593745164169732335663112679563797265352798482462111301065719317349284206107386068645692364429418010741404440708470172818722366543320331942716235073386434931772079222308897706708418607787828366690136800753839345400835111549593351128341767299079151574735799265804799356783965941432430145723448893615643821053170629885457197168114991801284194373819948199649444230717763639752109726681536155695309999174385075018113445390118190829814468565878350741099786057008336902628611879397939735227376650306358008856647287950547389879950047131449312818281060569307010692589704068117954702388985477247389235360141478645489648476509577869480782666452251396880298181988471176283010187718839643172945138152425448224601428143747147619245812582066191725755814695277309476090158517376962828434349714331661549365476354426695576146409672980611847505498095507496597883752352608510395884984698570994924804241599854962050575419493833841319617377289430805503310794970465857796697778545169435209891924327326629631913787004648449954383377490512281325241016873780557907750085625469085987439918053269550465301074544433011251554064235689093355137284575083307632142490999850424141727604445221929656262110170274959745772448791484129145771950486056348866996931724831409507563415123574928972199602837560574622625314064488181498492087860640793358973932958503956529801749183858077549326593317864952219933234496313965041830120523253203198943157502297189923176813777841456547885592357535396977806063522392339154237257746732185689147764626958540829762703595352022770394340459599232148679938711187281289579311965281815478131423415604590738476806003947547075393719630912808332565744047338737950715593262341684547170795474889611890802428156224431969145353818111984194565723090356257661763664111257776226162742040358409140422012622575274653515891833401563245691791583348704292316376144684882554032273234955106453535372276892940704856242349973528018081215681869469410952447764931822898870433063174074953125683089855614696065969971533214553878745162472309667780727562706243588967778524582545539520400190312311265073480819732520563117451950709605776747714061972238945548529871683366963001584109892449280944776576133319792475716404697307117647667350800457600451585408099847907970619076304358646148790979223702850492936943419166800897938561827807374622312754211532871872360414740955503064576260382950399629027949151166276231371641417131119140702165849348132112269838334989534664381027925560706824026695165717643866561095580164177684329756629916292239496438117768636700259333793050669514217020396544173712907419868833362302704177322033454047666485671802082995226049748600154617121872967505144243081592604702459586055742446489443854277675465120847961010405463515448188380292488726482585332471497611975518989515553385557965668177144815098954225395777491178052548589745457830164280264061921814615383170282671761693186419715674082993403514131475599165597793578940095156508913294487416860121661426031355799153785074499739710141895402709897997894233391837128817363510545116861987896562761423516582118708630133944388582544988919240869993964305567719959740201864076212052185398526223677945529959671318899943636474490258696868564822062544400214465597613181306626246950723624413447335288678010081115472076825758202213432525270286601481675745866270939419286510116460433053469685339906163036751712454625786209046502296863478142100128999626063937999660058883526386159878983877599220281481260471050762406402142873834958639565440338686635545099702529096221438289692881034550647105066556606696506735780905101162056508438351324070149429798958529403898041714145781849485326011633939296588763201519672608520195061483254024150683845710092372639826834384813082906179658775030230953136076190665699831544668293015944236742540853952931919990961901626638438026129832741345582593639428255586419672602040802357348304383742569691268446538662947265231006786184307206426055077350652593147865506367658576248084491109576043116349519407235792725537241387844306739771844351330123123065314390863877406700481350658022454793201657031333023030880948608662880441286145809025536672976170868355983451510366294364189905379563989012952852581587530350333310510481890851260012298518362974774907267386770934277605621795257368628437521762351252176325303909958045442702765163677864884520316412511460881852459044307172641576915440631669451177049441852788800054604027156970106454282040162247923582566413409895701520109429145565026811233577838618739282675027036011720291464861302812477291477424982007300155768464708482103225051826866395143505480646136380984501422917130164947088917639474772581261248076396602900346882846970063583444369484326536906462184233392178553934360800803421342431323175521701342397435189342553787605065783513763512457657283569438903766859622623254700276002320422160688723910323409075367165466299619221012055385542115296793490529136390720216596656062908074399845976925925438863993942475736356826493999244805203362269725834382171926028828347418316022769072045485653296242389914175693758328420353081309736710833047189849526206518275095361275322430531364097363974550383014536599956644180089798418756534869863124037881943437988040754555687615270337256069336309031480521992977053229300918994673652226520233268150210789246902160326291253080990527920577506064678575666087168476080537044686144325307931543404373199491680000913395935150134700973013489246264053759794806470646320521730494144397830763679365666929432351224608073132047667458297861943863462926316025051219795640202257877768512135066849969502536132616634101527928140350591039500855041118056638548317706683520479092548363327400852091567534027952601303796428789902501281200982901105106980308565646762101800623218221191968563423225068355214556484006198285751593934480062802377064404037230255068746194052942534439014380873682969324189674124600105952881437942395749845503276045598757857650408800499567611365193938867245309960044392031974040191790396569453498677240834160579115201307788545835470559527673138444659848112213358141005760378376211456716217902232615797978891478586348749583508835243740516185648062042399677204488229650611209566929905179106511367555868164213221299752016469859790413580352594789885158883458858917666335340859639594232937853240067759975664427513967097694970382395698392140171278281188491501149953518549326265446738467541446785323198264769936077742132441974700411555629317706527177159904867501944344595179899167746545869545518099777713608590845704478546297550589926116976073760027031650149757742376278545071590330871729861463202719177429681819547653273755497125741654524794269261890875883597654288481723989937124410749024651099915689885592547050410289270193744813456408984620440798475135982525289832981310806358271839520725899514295641760168641353663219920627124157193036578233007304229603796204685445732886697193125779651755555381545880059497221880744933925182097819275582640838284147254142771351577567010140856141079798814283544457867216113423778476078635182656805428864788544914856386593334189719761721269340315289150069673611634243131502366315562993150880816465934499541303918705396830809854996839095882602118776088993163059572214877827210575430983787898420537793300695015333183612353000027426689874107513373216020804916216055873695466754746031494607611167923418879370067231742189447527466491463176133318638504295493187287444868985501001983482101096885722555383223069775892949385693873603077533006040086688849493238894020260325128935320936573201609432319624961281596969131633922985634592952127080672414984837753878996424709534436832720342571511572450369279708667048659562243449217394611429939712145038817593491767941783116344441200750910781059203102836804437468595189271700790445459507331633417573934650298795984514626075796693497993034114174581917163203936871145289985419773737243443890726118933998586108286556915443349568653479907219649821467437700277967797804882816277017539669423740632524966761776580230062050942683950196486401057563283192644758953041407332568241672095591185604619774982315578139073168484905318123715516892269235657208802534064601854590836870867936014651983646043530974193395210618859341404770693775405408829357619393606356538564596659559263126055520591370282685374920586346949069502643258132849872070421005931530518734575922706485735957175196362880691032580538788579933223571697018306943029314717813856421810612716510433762786741308861559077939898222154690880638150836302502261407586099152351174701693271184987628601864984920030967462912626413180087216098747933487147325208251404887921971527046763768236898090200784235257771298138258833770890042239133646912991697511728309757774768625869354400182153444504084298601934238177335947844274037579253335871561450980104751050732917308642152736754796377940761087303274905790859098955711118282048154775197205884078221320108646627824460461831722792594345041215140798913123690018601002780643584215963345834494660447543665022590621791573945714679241157292615242912386467288093699959837303673325351758850115977017373710766479285574443155042945080099749417604197138425859702021447189327543776559096263820127486017354607120642914240920796452317281382932372018828591635389583633649084875943788416966256943807922471758978850400843007294157929800679785227439794264068111669174896263447841758457639497878024260392058687319847584127456014706901046271504430868707399608323124979338267858598360263757674052864278365081514121127803582767202758430696705552173458963662516347988596602327283307116311376287811926046111949182053637417673194135977337777755576774237368480957406203490479297949674807575780348295474504182450684018093177485551344264365255121654909651680719540674461778416015326931017626471997934597833700733103599471587518285062760527880868548555004038724347204429885386646954934304574155319328380645021089403586864334845190743991026236549760938773835365144663162387888986996536685024337390378813237763292273395083823295149709876756085772395184728978564537013652726068047850403463301156665496064830730301840676188932997496288174642301963739771070784079201154035002888346743457788652665257492070798658327735835277928579579358232299971854116993683264974854375202145973433220930381058860848879510441652012257390175134662203612361065508172222860349975702831871024461103592678502073673440721504049085982759838076637331068565194006781048952850542144275150636396922978043279326666647439084714133642657656702664872720228434452319104825493668091907501276965360189875732136826683413265064118981795091180385991910880691185515222386820449686050973516596427132578950104272592309673318408817132220366215323008998752853734839074259584220758996650537759882872912999616368701008520821537794391817344577667430546724559389309099986377552641065036201537249442836417033698854421892613770766571143908309928630889091731088316800978745898367793026218176454019266591012530074333606585848935797997363808083037153034460615208632939923028924561360246454329360497547559314317519417071567027838998052508172709349472120415687773818690405500097674595123955062978515876879884050112638755641092393426845883197378295564448027943947744227642828341658754922641782916078188425926191075524474031001571750156683040722927123613559467256653336538395756728718082062325857966430043750453427083396295234856746309877592929868229835597485405299794900480591592992680322654500381505922555113288167110207143466561764273934235267440449708715639813852204724983877128057599411789020326682121646264601233115840150003053533290134641408025199098102438426885510745269435751040540844298369863990243635090271530301981356151794347721979861208406076114150464708068104496899067584291717329777586873175544109779563555361525694784361446537986964044306237375104765143383563075832592932692440666387769593897659301045054581453196945933032954915533140784617185185513465376329121239527379778611806769541942075906741571387790603291603078354095969606366849407821875371979615327268091968628539696440124485410587818616654916247258945387080799705516516696026924264033730544673678541114619878698747192180804825503204843986388401519952311826446678276842406582666656520019282734496279026559976501103851294738362910363422657837058081800007077020490377272193234586596431504709358724204917063342844495681453555697837268670692210817207833730070443842737049784551072774906548580737407116280781286416053667226273179684024720315756422464972940631936513961088462150376634465426678788475318410342499616100116864240240674893934939529251354136633550028176979880544363179300729685751983096859557255726615725596547642616932752911125358371812749759063186428906139367859789938579679054490316615387912411159880612720316594049260657032896516785913421626265214713616757520721278827564475284537858525226107179128117998614998224765495343060066766535615527643958374938532385414841512806025580600853383621250830300313898512627789401694670813848092169740721634680552471369331739729634858191103681838360898869799434432199375451467426024945188041394811892201133352807439745435058764322291984866169862843031523671121360051389372900832358508613117716112052080768025698086891481416318599871239158433051958149482448168029558819493695039614157439517861038924348537851418959683274747406362954383190212020633173532859451489833183075554999598397249394469110603457781477399063978562555869092903197783164564730354308937486585217204528012174450540184451448769636931458275440573538025940294418354334441356230335001089586268068553241870846869628663281556968923441770811995851533544073452072081249730175327998427342327602930648043598271210414887840020350499996438534801532299002879262695516992019439863649729471241052136334984267778799386566211211027422802211989724110407556438096019875586638726353055241277023922097900091151445991434431245234623226574953102487612722504452037149008265791200726513395757143590087756286219163654842407689007659422157831066649290807750637926785190523018328345908508462859880556308211302817329247795285272442320372796123056914998537554293831166162891574017841860364497933510061680766817028999101802852627255600963820196082454917975014282230016094507407997020321733333195890846602245975393947457336114267725278319001213237828809161074291963550561430139311476126827574022218830372312221248510848293466548161035392459505029623902322257508824584470739613513878499376973680989667496635749268888283999629609807714608767935731006829736715071542193540427440114591480800443591452295711403150980404345208866783957744290661904934242533611919923651759772710256589177405126604046958774837317482851947647420202218753805423867269283002440066132741255235106979133120947580004718808543440928381726857515358387148077945940977801700508561541626412938449849581590085630745796953471288891885609442419211291673420001128276188876390222734600451536941224457915234431223411679868007600390870150975026494894711115646998349254570728881420196893364087178386900396463288425221602228627969090564004383723247869142822735494519982448615479295686935911145875525554131846166904178112391213086942793748133196616981418670697848369260826637325950520848854851144162857557756507573072490584698048797814510496338946093794648927575761581579784419863493218669067434923790174993736103010526415069788483532576332073869399891691100235052617062350363123491712450846592639058493256228667615582576457171925551460910587912076591025128323131996815713569249613795544080281295525574084878906949598969002887071321350589634316030967247823541128003657817914721916919455090415038388487556726034142559563947716012987537974704621992010054776409265942633723755605924929520001299059856135641256945894941758472562698570184751493754675568887582813657358084532538100839153779776490684235408813916014670519705877261749105381678136819549373816302375864438750534441001874030631343029417747609117874378875251980668807075710678140421571962966846517712344767018275137321907212028441342068816114885494886381603374130200400551993270535371947606066782909094053824518407558963464801774537070133677902143902296889459438605041600591777474855694651952928365008881438689227080515607287820482101626913725931922682950307128302926780338694370883480882105875222153575772977316154604484852266022978766047920018510689145771500497343305273384365041516366780497833694506566674425908721191663890331339035389142709263677009984023382351148305564238301972250484636700602908238185176653862014575719293935046189156378464512780479182200188412334265654048997865199010343645773865706526826439695632481323735473761304693073315649067456327593663316367600038043913895071819426345462464029666527504113088210900716386356563437298525192807439761358968793630893096820276636013172143978042285964796079190718810907626434218393066951889175678022594729520134200819769242464958886088517868210309603132490552823914838612745686822705301154208439751276694213201193010557548782184657773241950025485584278435302531696003936989585672210760544888208827304226780402916986640848068473617125798403408340737626599659886919041873067718740851596135025149728453727812159407114588056993245824549753503213932048754794081373183899127476903384651868377427982932334314718405296367298174779131841599334719646105605854191991740175676215230405384855522596760830182570908234656996593350848714361090938550092240958995381560336025993377154443198210720223274826352286815416982836441696863599821462890286909021132591159240534737973378702759143316205760622480097428155098037205821558211183693132609337521075966358528156192708127129661971798890574761365315626947300875646134669712371953882740818138950307808481050180123560237640339896120514788140635245604162659811849529854433182195327822840692916053980468746137247225345872339891191582479939138935167111675724041626177353387736984741104710713751590289065258386027523640537890591125192830849915272586715364250055382914970726749038592539209862953344285141171569612722603132470971942873374596819328153167442255837691212540432959618119120687252820373931076575720044966358222361469665694533198902483486389255485290305420992700126822905309591197722414114267928461949086102679691039154380451236359894464367385953331402174950107796383826831294274933402113333022254186082347423636523406625495092381681670533752474853850690752124778776372278069156084076255110395397849662238590540535552633662046367142919547196960851753385322824622973302992364025360333677630317489392211949681469403692149647391026088221147052371923992222314094333829548582845014493949336526752935763433695865417395543262895661006203431495074234720742552036390377006788462023336785401774996978318533684006822495767524759928397388535544822433541222098575721690310053937630342763231576358907762093265400196221268961781756239736564469231700400198291909491647603265886855331054073189581676564226347914040334399211471564138381257341157542203267944414900084435940832860965703804256681595233367671390633936842674327554189732040104078389308918709294390134955919946154578971389104520590930016847316073339629508093012730076165958372459399115726346283186619288467457133282274913225096525061847172779441505405984969468553074241199090238629122058096895056371335224759911708470249775115430473831856535921381052353087948718419362654921882787485865925756424699843747495077390496996294509991353715287110738556044234094695826177340705837208825887978261049724486226963117338755194491255839777574729127991876055457547137246325382282521295367510177053569492582213987429233058875996460788694742486123999940910861937932666297297320135848007226874965705210048854225625634997299010642740525205120286877176553107498132628507449472885696810157290919912528171279270671386389735350700397978416044291101696750665204360393602936005094344617001389965942388157727729457383173716033194249855446608352981140206513134496456122066565789110277019886704540542025676411860274786393067527594404216989417022576484338936373947094677510525181367148792664327478284641265444826797445820825926766786295058401246203083657494131651801269173801921651563406915606926907078099705848630190808095246352471954006883255765368779106838732019952102461314662013749923920154259962276043289651708136021333826890179487453850180434437481194761768440484320713464379893040610195010875722616394854274649921538094918696120923430509761781400612779016239658703991901329805033520189160679334804989944127809999153083292957118184592136357720210480198063035463436159460960176342847993607268740351068559486503593605142656449746747504844750910476514376844074793507482787365800293935721669490631876518070196694973346972673873582106648901648108668574510678411252600938656086048451022477786085807910478935772884486383452263611207953312230793692611629532220180997530171202010042075849159066718266410810586015500114470518398196795237102951448175415028054563844611815471508658727867072226681810371091227337972951995321600197486257402704089971450945097252129936626093202840848179851857440575336508120025696580284357324978133275407871802883328897838043657351356648501373742106111662547145387802389265510645392503034202990921961660949230795337444267421532830991506081454173067677803034813862756277375172627853077071873011495801591793633196702639981162508518256446410795869353307356549795293606579310663939943934516056454473389537259371375643517781037325885752539606951997368473228420681710882260517770288207641966247531461542856157359436614122092382065495735306270591978350177562647357608501525702409977755946418067931409696723012625469053303381553648523841444307879992402219208781975722212677559754247534957034037154284840647351033252465222423266728533692678740847302076053177543606455130511208569862856135593557867949934368676297867499171549632274059971408776660942156530508918802949566694876850470337171643581049887837763494007672140076378939192449242166249343740595253419754033629659814657513864042371526192400679278287792256694550114446709759593510557035123461941442621050656555632266782991027559260229632923776650737350190455301769580243514718944704769189807172035909811531711341658665952426886514278578644116908179167163529465620806922244360798035268955504744225571697030373523295171286254191430754316268640915460389913881515237455914165867948113213667053973197145454889972512509095287287668534273602902640717974932300943469010722849266350195550696617448038931914828204476271530803878784434173837648386826403188066470863153224365454040784995893867949063548205035025362909395538309363732996061171695850352332886426407705298533275133104400157966549470019859141891636703023006267142379930213849915538366365199416423279927725636633725092561275378742431310690810553099833084761615144259660690740018670977401478790063365828688976369598292140828853482193746522225890574093995009465316788455043853836886543887195129200931485386632534696158457753439396319324008068272885295969561929027410454100256362936772122590972649028682094909018426076254522255884307247130195193471069296510240126160961235509016498090507487022019045597204850720896010649280810277310526005750291107198040466618079249084973058972391308951811129891736095755157324736617432997738793727178239011896432423294439005590377026205874342141233955771260238867853934089565678260348237014479411833420445637062557585454097426858554195679044972501366614218935573628756033281266655964499013449732461335602582136600627427659289924832267215613664198878951215858700210316594471628283220380812556518707970514504831082412313383128922210569073662427514364731740608839557360964994352847155057505921817183962179589098182426548635375860592363223730174881909965371095964181222777528090853538519103379868707223010858709440378391504281780291544726986698101763402868039115460014815844418853742290112015590468223314945551532152795441157568447301489041989300424184632714609266067575125902062225327179690075847128491517813008562654515071501505840335944173267304526205075348717569003736920566384685117465466021072744032096267376095495867244138292108435602248086195132835073226659639644050552768738862812099163274945654838767100936090912416576987625877484735848273097887659647204347336712918733478329289271094703017320356901871830875417707595652410698004396926218344349503539281089400137070107618207413974211124067944159573676208683955186225990685304622591460438486388700008888917288691050456546570511012994320593655249002147457151497754772280723322988142290639324839356898473498582242544166296936670168558667762963562723540814019951424271792454916354120645539068847270465970750141075494765180996419998318523422638001854463465050314812077262147590861461408813024091771192980375080137810105226924441277262898206854217641978290291499889147852723622991758004926738536086407392932643486887291262827339837944608065655494175890260731391639576319059223280517459994666071583137364534664980021108808384404559594162781202059879430825294014163554774047495635719980269570394070730129166642817377616342796967423220973619380717307713981246763770404511418713045520739363547682190373593498520530839816043318646644059936536227008368483379864890048926376066001807072541498051619411101685456276604431734427872908572958697625434824178090438929787974675852704112202485103582320298013629476902454798852725755805116454515159521683646687716931849743494747180708853881788461689852288101306399166514808478750142389246263902784520363561043427917855527227648167603762076602752277402645129245806050463526072899048774898681064269982964327541044768450688205521230033899759718767831664508705442688715638649839276793749150212214351127902180675653517528678893437872216334857678576343004467861422860340739736071284820109880313895275062736433975193103401412657604166459934558736366422991438793489787235916925321822112538576577643782640969580439133870551790521616618163497702942937641437149438057937685932868537639562864477679116743473852292205177803531797908877577486475501700939976978210642528157330092719196731602112979565651398977898190754464185956247225167949539736557205325438773645439601418136177965590612718038424525818090484990054201230505453653762631490224854473015340318413309853329800609760130380802952931773597519042441155377947419050691099537521306174990720254510211390137664844908421839148416204593891732878812421159673662363011550715815105126385600531948609662368426169959738710062289187974272044467804923028119435327084458437337750377896105858579192504181700455724586866191423599622689332584174787236760510831164077224338391832579885250228195873081711920263526374357806146569725877494690888395921336055596861252103670479741860338068117627782267849214148378360617286008255307225960203132545137281489530312083264931743851193622001856737655911556968810652675756991744032686320348902100135571634126091599066042446710990116898354691642761595319714510987509323377407667037603801205260370737576366806303447743964434994718946018594770801431105701564295618854158971340338643343793823852459204473550687578801721176603419775733382486830107349785725890840742564602478044903980427779741627256393875238818613510430601334796962124594300193072211969191683562713303083731349436402590349807852251725417225779706902867301250858399792598202020562529959608499296790400523731365344852008556243440875948329487184164515070560795067079245351460540844141570863339750282997102548455175728825698431175109385547016711000821843336363541676440500322906090729980571517131861324769028057618611137079040607977229662370672508802410377724406751784401049229176436576799897623065905402775347877613481077692659090604966103131897166474725146914052030832655716774346814628481053934043308220280226267052655882457272052034906388786319811268492003582398198356292293842585290723842015927719775301434234487769477385235896981164782787131790163550799467284181088381942826972968405251205695926513442327933507453325288981389265533870898177734656977000525119767925639565054385524336488844975702797259704168370364048305633876697249372362014362264244191726144515216814048150909248002227000744651070021078272906327793881950489201666083325771144509682502166993606807001667511336889100802670734168318751916115947760815630957711993440348839952884512075818184388201773423184003179178146808500006771097891549840231181327939276488320996462386374709726487362513013637144259475340912139908492561360152492536353364848013947059608064333781711079196647531202992641819842914757650321527384742276062205653797547409765375697571370119643174965517914088506713431437757159995942869275572565893939822672967520174983640190128363428135198381829084738024794377643867974187658703733308477022989853980087516020109610582562853328178926701076516302533319300463411240538728994267613173447181393762253690930899649657672475884302926712465209268725511792194597525735538937775738719787422847833290577778198257495746121835140791266007529435247628309841642715040889788345605476145157055934921395703919963218523219145739055834896217786739135350080178204550733156223484216260899621053767710799045873503006251331418771494256828451234743152272212641326072914930921994135777888044197514220883829284854509858072787174142237903880618727219593485484467068332615244874630461843086776452297202810511670201940963654317131756500909518442722785819317861832250042647677373472466551932627313669551664319524988599295341326435773306510804839313374454232719213633895431425969874048202445451468484008666928352922425885943875946319817513451207673383411549224274893547181987966311202632406733450718283928000084362027223136981116147852293509462233116570715491082141986407755079403800550834191562262573855268242565101816767911377639024849724562973647141049889846118702356156552773318111803324092827836699842342547389298397152880455445950747715826613423868094681256438315674302984579283972583653706033796209678578696066854163780680776233972286592107696805786602908111596081408551621932815400458980465667042012281452568149168841098019021728817080446832310099297923160946502689400012705272666089534488488899077482336951553329154302204093757877237008058406090447719798856770527775001944940028726677045948550055206661824100850936432243806335517584995350909793278981485767594065969711384274558260720728193014657633904250552196014143142103411647467789792766183012726469415946585963496170276574456525840054465301994017258897720332986917916841759107365508158956587467240889216742118574226870703477502185786583541086740153418435538780187767373364011217323042805984503346368594283985162430621678496355845267758854480596841086831866528110143415825651230845947983840608108569742479204112145029803355676119880432161267889695128992596374760395707610214895299738846996561919288158929053135701298619192654830918253391077438446510676372831176182895629286053960539396500884731209225249202907761232236532995672856736579289212792945740410674424707204768943626993868689942528147034394747714092176355218053577691307957014778840392266078210637851988119979964899813949778085083754869391509397404447500596494699846947114494359647695724013442989387497802977016452469321857769556666724101989892441127265945546447649500760589112411509626393777107133503503043958688120336844857917949168615620002352610970856125317901865182047488677351593531576872764616714582999713302726006538587095069059809451581675591939277427462577420154833671557311429554550654282319173443387426321534894172645391912436120184694605749352970764289388682339430411464575058559545597997186090647061694043342415237138282217578238957163479892523919720163108563402157761824345059377679445767097284351192945944022425367271744921104904896936805460259865682895985392851733021462489971866188718178701123458616737224369253615136058324936240341645668578633551554030254568146065345599549590763324294510071424282780751905350754356600582156170707174750924625483180686225749327768872762920893451074426804169877130681358156393391900130646921437085381816009839418333643045508139798928225337968974252727376882403913004453636724294500497612328415005688532084211415680877557144680116893757207145062905308561705072711285430599188877373067651185374827034842655001007569729714749470139341983793567106116352914556217419507407131326009894951128254788827218685738483977037333685803816626782163647435962875157688587943908861553685275414861560830992114746708945586196788016330406187489334193021682819023976842222311966341850089143453544674769673232891244858726358502483269079261929973965626279830303938156975160865648626691555605672712692341022966445720134769639400836416062409425231080552716115718026147494075346191289561662496871070841610744223641949284023166578618693510121876820236100181169929798507868314375761725553533319366037560424185441280178321035771691472016195526057712745048318180822620224597545507251777054605504969862931834610632283735480587458787063393737866799743793124050430804286666011078061571003270576611358247048215687261019021769316545380926364644577404458658548626118669908231893109246078907499572897719044768890831060842153788879349967249305914213396843819661584495303288785571228604351140964871225600274133311482693837891676403174453094413416791618044782134935356292868321719629661484268170853797975415301395460423321794970941620067115736737000928595299308801130015899966998539908181743433014261473276815901714364225815389166366378255671428684539672198337952944548029262091578171821198871249630457070624187343646686578080933548338622293677583881466540880328261003412287202207117517021316726348646398011492808234274957981161618837775624436088936073096502929619612402117747559597320170016604744869440464524902033268291299680677811259197823852783379671566807466642652471169974965107229167362570030159019216951104749295199595374428492125245147224832036542933266530907852642555384701874379217789088775589308569546823856895193333985662315425655216665413856030093631769514755003277804184835451247081029999159841199617872477850397621084065092386084721114103613960679902391122471363539784197177022298975037102658250899963038578744689213702189088811114429774080643955296701667589987038340215692286809941908542127155718053560076445746381796164423408090164531651829494416359807709675209845540322275157274814365336769112697350421883635472156606485628050696464022347590497843625467004790416317008042263635878097849601413412478073335354960095650833305702173067067585512415007000007805617096688210875897914892360918380232204912611548750644268247207438273992338083524379989700827321255660655253989141379831860312866104256414441776397180857321881670652896452294376722419992632731043660609280571740703376398032581271863235824530043024044259896322017412114007234910091992889911685997746928486715577613210282811132322245595305962986917830504551111437477853068044295522122759508110051039565072352553864991117176459021184381411284471692215783299544266874913323882807093677199301046281377962206021954693026365885104040545614796783935562735637602985974026943019253188488450025333119753518614532161829294522794857764599113974998358336261801060782581854893205422058611401948511124000779781166142781618213378597045511288048223339126196203854417324874198362260624583138216872691009373466066089921516616128002034640262363501649729356547318205346259522544753471169879566726979218054141439051774214785259683807053963599981988955229521860215970877032341721611707093314543370131881394004803903669952008403363725792060179151103615154564672125730164803662260029944046340044890343243581948935724435791796706898716985642169830064329393194337251296915624845755598030322138768952637575609141341683400393769777773585063515359770698439262516065969290932195409521657709804087255780551990200482415862400042268921735435975277682981390783214672329366138592212883528050453880577277488468321294092568359546356972116263064050809488664921115273678310009041414412928015158446275184718891175613854676547216131364181373446782088649142788540363945444004717402744961062824007494085761502804866456183103195249725450596407214172452062090119938143796021619104682019514642468019652158406910614629052137715427824813204216673938196364250196622382923136523984839470255679812220202609323280211249218802229551176661942187926716143600614976264254969831948993075919386758623119124551636308683518512060060135558726752658246294561031843030934246992740499826837063804351305750239932824234147707224190692552923985388723880475556781686671446487232968797173703788226898752163694342445619329905838008265028381196974674657618968588131756826251183044066378052247789937754989577458563816918071606195775831402273491331796562969615448951061845131052113797714766458932485130065927627453635279593684958132760730874028401971805501711722241414945133004648661548340756650493781175747000672290924643761823354024824902135365488174062320715152905691385665586915747852339545871339600118111867922374602637439187154886561343502092213378840691424527042877758810616782139583149882834152315293520787631380353117651751195995251442246100118231206891641143181793311886643575352258245343719729582004981616930304330410298829641208274345340044619598949196156008079359884206113037360715566884747125195920944434719513561981574754960551716707377804342861699819002139819297167181389002964052342088410661225748362103392065851467183816563556598159614619554518893940440237652528779462808515997907655738912334663310424319890442568152067721416343632917121674440304129855533862343146013069749784189321143948819713439045591827651359048276710320310992794246541899276490798902979796734905269597065625234718869166595463461874081455262841622832588881804882583295498492406010246879993117890381247963909699934089282781972011487893073958391652554256529069233677329708086529846486326108433356277193984291408811180981032470787029181966312234272934755240689679757135174111618931239380116187068278490165488363233487058647235022957270372349915152545463042653092209089320432203730073090584071657532940926823688804785540580110949886837800834335320007639512334537992287108199604285929117392735125967493989859301931993025355811792586794180516660727123071175202740144907213716628782463011772897142636915630370726536727974343182467282275723033858661567423963859930529595746513226380498063669017560348979470452145537222645663752594709507944340533197827948054797613240164362685946300083237529239841349532206267433910949695633345544357296190531241955017262200805848506016959414677074984253849153047024080647045767504540930120388716502828691055191444516641788648439619854835027089810333499585153089599065903920223264503368247286078576693876031264327274998051101243250507125065868836889054061950702731233178746760876781037652553825093109326108249563415210691427431832228875104655724726870107798725111962622985058232052345077690012236662880570350654032286116823120269625563674446608906820033692050147856490800439046610096920825063586944743458414932148101287571761391900697717405753505325852079664542031209028363089050486257399372611078954186608528625808714460201296395752423928574419249209723084328338986228399583174070117937507323016579490424308708555608857689736791017862017344800978632692523911388722004465625927269875980357457857443234229734803543860847018538061478490325377237531904622527805775305268076868140055300235394504173133380605244139215887237616508330544593151418981640102956550662543931045188749705494260072819686116180292413283413311861495571635370509044840156126059278955125660387562424867213811073915822692784713312293852048357504889068087828878243695844096933006497837605442663563609209307926728313505011636415856136430430564487657690345790247062264991074466599696103397915765818357496766830222936509189859677886295197245838706224942263883924658019902329088582095443222141344324265022842964397405992671653903688739476982601212591559080416956435272973302029639396824531897411836721776498959378847705767480622698543080772227447796982424250757162140620142794540666589570020196300973578743613531707155167521898145418222139719419942205767510775869684942544208033797587386572531306306528365757566940857355513195755103114669591387374562306919499864032133084812317310543593260651475825933400653643457345003105904760817166579305213875721250938002839469517463606306149948842357964990457252421573696959116574132883039306868031899769491575532978843301438691191952636187892232125041253348069814712554882506163274364230015156946532743843230494639216701872933745069838011672593190419264701110224594597648289410449316690784724247044953681282149105962655970457189287293754600744038598712470689189424319237639988155139324722654138299492159052491941655585523205405510378399474121199824512152579505475488158053280848383457785677202351291381401862541005550514330252885022160087325942665037482134066664266866714605298592956494065903488957706085437014769943777693231110171812296990265345521837148561948940940791803849337961379463901331977097192513681214644558154319194512109234310257144715831014352849027637494653285678402518171029012940197090210598962072972835451221134183845575734992818604164618790212328792505065014329035138815659167750591543821130982626404392438173627775168621951260092559633491394946096424868047414812981935995109872413550242294616257607877461872525380901461538711990234978561452139856172494939356959622301375445910705417019711892198434644956948354865791647632304020961566527120727093009455081083798277445728271397921270351147411934636797065366426037551457656303435322999323209427205268973511820801377872536804572766954166435795376858287601983794442322338388647992230855958451761314360094210001192899789268611023766519441434947478622889482596847702138977223930523909128412456708119774470386086753772028899487376575773676193414829680955407753940595080490505164370237594988560366596936958648258582767961687310702532553420596627350953453036867928277929535010833098874944716213024082160420526071428376898298648592990353563151737654538155398311191163938035788462968117883354037316458408483322131237109227662696528805626900328160581265732323399192128937347808230105441541971678110160608564146541515720760364280988595210057869574051882002702350041360262830430216770550111848343224532125154556178363231617681204534547256247881343148426259146741429660878389653476840635052253312697767719523084414665398927431602135070707400325689787038936237831689493690234127253383806665121884751464279990356130544394414407309531422473191966307189618156765571056378449431168784751577708065311767432805148199942982587560176644564585728418283024559679178709920989882191388336265947355758613292266318022987073818748380543081990983057904069961809633710722373298595373299228539564479296685521986771550064064852640469009109481266474116821561882542734529578542647833684665988567293121994073801314780251635502627400361136263552470656646982999205770492809140718871318473599889149208128258485938406297842541379411421501817332211860897843677122741848480170175620768023092730912020522483359999440551465580860150922402783367550620643207283416849361339090356095650140927877720206055304607875567412646653146865520354149318817428863394508994441671799205057964377398343780965570699489080804899001398181346016770664886872524833617832508119687757425105881258677035855608187754694742440851239474560073378140814036530817561424179277635583642600675622261998784729042572331058765661211571513421475838011739722820917934362581675595121474543281517091521261941026781041407238920217162561887241877309942409858104178042348091510830029005674745918408642677831710884662881570429070133331046151579555260315136128377440389693250455329933155586252694805516126510637965230812055028438701464686964912619665496121745569408160888315135682443299292110435117962539276603199383585176068448134276897496896016851054896768272661981735132814357154719291949109576262139518117408080259778339808228639679912420512243440299206816250807092826327202626935931171694060024572262977204612609025860282212834349014632168496438428454346968839320148734655921800439286587837368863245727253779917653889438341813663218457944561337183565960709695836286852002195561351532276997535453096105217972855744423373205604488083715920201273678314055523892178009703063479278401290541521428063809849449608904294958405966573404499012625214038514517459626458494308222944844769788207738026086193037740523750428888680157124039201080255933314131640058611312060246707412471252324165232246633781162264279463455849288684072941595543446581393821079179471117930022404524424789645930678181967955932235108364805218432024335567261102918602414783699909668118847991447291217548136250225128457313652742366233796405196286412706902204947772488025059946735808112341413240892980091032432622069076702928796569058505384809659695752478624942879774528624841410927700054954183293884553238533266184324389449719153527264411179784481018248733553303971272381224902850729109577912076782943055377442154368459698257163069009377492677800259411881363637093129484133375755610846702668821632372097071793279886380226128437911085925701729168610763386805336549873242735453690746122444228330950317097639622503535543034434899059662068713247292822039422815649745068970706341506489698238582947621938617936057217916969713409923208341006423273348700881259583862127428774859758296035644620133920143051980994912281084062876169877461690583651351951456509941139147636639739883012218495515877727235840192442108122327327953768998745096619763298552767156444293042008062009434112004948439021207521939997732745073530965967357388150557280759043966826646783821498270613071101401687510107791084351355551256780801289009610179633280491491781982544047921130962874765847015683709350973687751832968051005717898895816272198527376479297834904095012891607372659314322832896527961518239336840422690642409312294901760859004499872995862483722320488225429063133389541967899507052059590164295486683812587735910211508162093761981274867571218834570945491647259625679147455561449356704581025086106001389007563772747492016764702826934180944331438025835073446604511227719475265769685882219416155216078580472607055800967610953549845654562583128389465792366396761446507932160903048840988116519509285020495493969809700078325299397091562858808598214679189821655097130516904097503209877149392657013410891751547186887915567156187039764408441827046794377434121666800404121742516855329477271392720201063038705678944253359675550131209613665537785070980630616804126333860415312533215628862458796003937117972057779057728213158696846751793804457509903916568077679647627785691685624971714448476739621051323313692316407685206556074618302277426328231416224838577619844522173557444942585421157260163907859483701555950562163135147712599377844003087695261500291294013476512876946773452440043006868529809175222973867227614757894425116266132855769725918269761138840891342487250823022284008912319752651964283274440271174935489132084504945938870081632152222202061388721615261868421817468379156950749945762678688460623218849495411649235721677938524270745210295104054721856289246787373613731674298989233626021839877526888386893826904798594886220141041335995976513094534995944271171102892292399943614725268819952520799856830684166786394983004246070767558231454401270973571340908337967306495424954672961355544732095640815872685339821399698359050456279144122051020636775970584779733387587903128467496866607684870342728959567017760855145233498393988951982048616525823005325004659307928324828195898233612789421033739670389068898338497902874574557970645565923114808367658421616281328466497413268933091881371563150024870300209076734686638354486932660439372060739012609445065889550897649024130821429537265423730319286178510904705180375341451501703598484132646951309482974094625010791622866947817806000231281003996366692417404143352902566037938876411953557026175164556306976900003328854559421194297234133637022566406934027831700211543009715597847328926069062363910430076884721104525490096086280799249814978171123227975210337102970472902771741195288156659849884658872402154426634847425585814557442350384582591767749657103824052193936257010181231966459378277007795808586288837240187060284815785057636045323440478264702492555406170974233630604527810341056747115330287659267570915756963802607822680447990556326250469845709694063705443099889202759850761609664093916207319708717639238682504978142116572539749263815549748625979950364533493573977039481907553736197897153422424556065757027059052013053251338897548036212862851789148306821278578489811614091712356486658589027662989539729347003978507444681156845122437402011137443668180586204416422571083471221737579772891088652756491862206862171911561160355404904700818344122559385229700114200992643503705034693021583620175745977391765991053447424193851222851428439051220556983838124195774160679736955440728192203817918677361654141243412402302262933328811857228530308219704697961893056120177858222640422801811633514819827785692357644194740028744524901297339504331612558511471929769171652492710861728610677343135823700182123208134508748924450329350703105899088241299284843874583755088520136340411231166425278500531564385030310424311613620575158838470550553023642618907926563646676284983284830850159047246179661148489776556273916259537824398968094985742178118828347676768300157154519953851404016789664758016189372113737877540562170313609756735384530657259469320903244349257674583457789415330562317420276933735893508533794488246232740688678437679084800377249136856828887316842124760795404729953026458724261107217702890193075098602017692114295586437482761965206617426685396980725261984192791343605650572305061892225646156504662568703855010358940552589009596808805175302662624787321806646722395180099361122739604546196521784844482425624273181115140596183727901492326396998417889691954648084933150726081100918595325775689952662995345596168881822443130032718117107312288685233355681279103261524950663266807359625299206178035768407000718836430301852986969172440238989076770876999326490466517770680518839479469083165586089482766066398870343806331755741748034982343027375817130664844752856542129320433680178456301025943712763492556347412478617719131827064010007719556809330502811651467836372300258782014995021001946084137413525881521859277727544949471649848457699481785092651246028097434867789704892678723936672212834011012976737604032446797133362068980451966436339792799695740822501577237152644798902994423132574124650785302836560962335947136344703183703433682496674521103981363724216944331777105692244718014406042791962203036610141143014264457909116831637920342335385973270575297360849831319538203655721583750137022616419531072778882705856577672036908602092458972562212967758521898984499320207591109719913001363102941639205408090913620436691007720747263266134743724633257461197402646376351847241118972100029580710408146080502570202348834817869332027558182826696211088012024810726846320227602363688443880755747271550981564871516828654930708424989288242897249126714758242465263002157197392283815369865143138947740071086816701288126261486391947320928472079954415728859348532118248120166466249194804657141523173313588531820670538777847273792744655485729229038072236126510182001973788801166881942969952323872080784961005410306731449459482299224946286852641540706664804534963677191511811889162039836995077039437274397638274362659711280526259395288996519543820747020305517921553181419328576500092145757574157228898420777146135209738156519089311714450922034684533791577651843836503406149045386519666030558781883856808013345525366980799151007288256672540425653639336067992568995959113010700221901911053538182272891237104060191402889187851045331460968179290092982325919595131563376535797155260169452992920685093941298196662993841182592526691181413297734725288659616112003614178715422814075103649587068439514841751975390245662973372424419019370542517239948711404524329283573318160905719320406382407686283769670900092213404005190102706496513531115322433979518198861585294025059004334153897348072713716088870431653794814867753354346600748771471130316012314854173695504026638396393931386657188945478957371793765763149438581048123391130780194804544666898205234992862354387821475466140764231894228594481640952960742474065434638192933112912818533925957629439348832296292188332159306988936003044116368033007683597856113178212148876258586478468164756196114153966143895249999685855261110972421346598031912840581396659690278903986717680259602896913239255027028060398532005096977425061050000469365049922826566122906671354526207430716506275752777629938856813668973941174286544262206546982766436099396823068403135338647569352096619689406695217773802318117906410121265564515533606441233317371926050871189896008008740189908311687093458427097662746838701232695848792727502245343377820783790750916953019886356159526819679133504462334768052204793632981447373680050223566177972342578035714227170355583538161824395857147596726024279321817689143403146331571310206127226273236690269471765593254875565782497851917668769337362625354758933445390129530879454638760272372709042345074566746596310117935071446356344772067801392049994323819243427035104907254287065055213031447689330166957627898945991123341317069586331231015566610764963578561230021426250454432106321995325543774697557118460535953018748474044524198790533783499209423990486335951688987731331423566783997570816166294761278289695684982172907807056598984802894115224143714625620727876946335869547951125900664798434357361177868208730167208720392322953918821594464171681525707980295359684906174525590014052266235689507334343455736547929342867309798657247194130077755020178961581753644013670281478245853205173398089907911472847869266205310720646742795695581401243101841337879755645802309226771445403929549775636146563040468515270637973222176728991572419291540515392566245301171626813786251068704556266538908079792535851042493711001112496847380199541448745285170832835681343472473694513640666306829229694119267935829654441154974762117551289678888301542923795189057868780760013654192063364567025245135785793176650167368057215837938372341471212150112694146951281919063167233821851808880200017930376563982657044433193704251258358316383264442065590233164309602324323517819573404530176124244841133890026697008100654396851322855565560996656449721608118970900554984976317226283265108283911367613876209345016099033104578597701781690537327973530987795182023844612811360765940806814515483128842498688733740381580823344640671448933588036634605672134368060327332245904190179634697699152345870098459496990934201223892687844111359180999692042742957723369046534491380501134678940376395149301872303013784506321350563978602460129345506655896234581856347571364550821890908516293474467192120432789846341680540798561634841760470379635949571923392960709412573566602420147434018438546606996991375757734517318077628335378838572944892772811250583104810619402235521229805763938634074214987495891487640108306409617572122997594793972686223750883634643580236338223029031231935594829631837374882241492583838976337779788929523683414732722669234389258540352995457099088953246200830922105513117526672533956361735064439463724776172007881829129811526579280897731245870204869712209205344688406195750252810495484939665429198178679048037550323293021935472918423085781022095936178340453500255320041929013977497419290788958216956543762799257703995752364897257948369669836517398375486904985945059667646136385120554000186530211121680097398330057039606881911611838428870228968214855286053387599053157897141609266888439684787605073631253881565093684281325920156969992552368186874847154607606600227781665082194218254090739681143216017068681708377607113725405258237471239161788112063494944870386022475626495664323259888530510364915579290679979576966444616829531302934996406981326653523001506293256968531893021615118862521075614441170027759258137901397384493637487835744271879076186319126391820338524700447049987317986067189975226805553180424409835354940630084771792880448512607787865689889876689398118252942094287787711486339201634123890960295128079456449003151074123257086804184363355374177435938257799159699326376245210750255543290517851812251529637990611641627061446383779271984029675421469407942398612310373238792408704370550593848067977100630391745015188878636758190448117758551316818247978454221124496808846444151676849926234557529327491351583463885215963485481543747452321137625857163897705561121465515410458996200761363896486654038603285700777719730434730000209310438417799148343125666476028955030374520456003490437953242138726245064464862877486110276367663114582247278285644931173860645201228317434290212412095342951196570242732557628071859809845584824300388233556922814285252753926655718314536387364907369473864930363872459785020247055355486365153318481642952731351652596571163049243188715809846152490472127017498274534592893333475562723880744468677905194421445360944965881883913382670896750411847990550905145575576562565409930045017849232856451941138563841541756128096343525706052068407858951022698908923084948408321212708949028714968188820078165747307826374682926233438754843601571598235798130049891482486836604787704269165786146876057427665002423608124392525430244054908855748107398822117915118908602541912255147516048011103435156682367207927027080237435172265249812057484035247932243476486254043322448901281983506558285811673268486406028920795940673171986979526840559141716685285782305154069602484422269733015380894465052288091946901249408970821009056668742731058533668721459955822332295167814967265164449679614445015246481292501161169224798929708125145240019684052061716808579945368251801322907169866077640161454016106556664279659460684652949296225328892089354906805678931017898541455120647654403858437810786372666327533828088851712886451522010789859495720507507817054512722712099841788740800101814914935985338485222407984929702391724793585700595484551750850276340471678132527421735265133185908401098129874423608664386864500462358800488068405898910249038093467193713262305911385212268456050893558400096830319715001310693350785959505053868484254355284959388448163887731831490741423809926309714392758761556550289672828420850421012475234637911564003666485548402816339122261585490861976670119086231121431569171989089896840378449880137341997453371502127797963882550784369122617136586228426416967193459423736625286343903994069291759189784794561954015793487916489475178087799685014365033948708432624453025975893722720155064286571229122464739091464712845644463264895966523552067913537073481976746510901753855933470613254342339763070934685224107711194504128596415387557301395021151122236064973073857824975432083650994456515493462223647173229486855433684207652460978896567687198736618314886474035747182247346971114729735560104680131903847945771700033298222445927846956798319511280256772587366790146480723039392723487010518893669080231465709226703617656786162456295138263143432163450505617648452210663676895915077248386004851558778219801727998165524470062733098636517075077820232800993166731853738541297757501623017191341170772068262364877062608782965759285875176106096105823658519725990127884336000032694759270478962050702417515828360691699015460958707871858565155286409214725299281254610761509543006061403544050116083603434810268933724505231601841075382323641998046040998800517160448140728636288787284027875781618994414526359813115855173510585537731264959189674893994566610384762385038336674294797266135019488709396929198358941714963852104099067977326111254950113186434202170660016258220643913718117705257355138246350482506937865173401603118115762993386227942736988872651274317611962773681974631404005303432191727476984296577884062466014673418831084376224308485678289500790192340986763255953300763513487464600796398078142806415135376992894417934300671006390249587790396628824116252321876488814268711627744825763065536404533054779266764871617069691404687093530044450643134339224879516353960237035472738652698137724998673641969145609616567379975859642592287958561517572699638652694269670880563148755114613897962727739057145583019811094830804369741283662856481425446408128136343136337077358061117024450939727395041380292662672257246340962622658405307857131703091998594439587166931263180656073413558211284079610824280622625020391292923198990434224835910744021521537117054153616981768085035921899096616246601848760857158091800468866550786491998522729380043959927477729482402343172489564083048924679541670629672767098283570232218073166789032038014969569624902308299659005194948915316502300744553597018032087407322358695777491998297100422722388633391196277026729924316196968776358783152885429814401581750502307372158751278437781406150228009981387605044840850965316189651290917475254919657843211739793516141327644068687658649046571976595273020633471822465072174416949005571438902359043846133948274167966809263914767939596429451538744808005149152893370645126228389384262968737020439449908397562088094779772858721782024985614739977644362820006370490892120777995037756120552057764754920736264332292859698050094554354256867210636517256464758119656394436841755497908442665330154298436536946423427560984179407480794445739982086585611612235128601897515639229815097551821070260816140981287419364552974977986236666403365890389457922662680538267109816843672977641688699603935321459198769900833484779521503870797681850729319331079966686582073073298045421049025034161479570058634013270597192881386858331868770263669964500518583507025279911196952178606617286199781448498875687991755823380103417001254542596125586093893014652653769951064526454154124791247842686235208948636393005352388585323883492866694837197330380405516809161507284252454654395980043057018878587030650820172236547924897795995657472706991464244520762522453134783630880688619515969704551265007175972070028397177356152505277572579799926853017342423310654512780990245792978297057507134799919262152102266016334539311475075416882817022196166572793865264673253209407570365440480458252145482419737780824578820370791901024362226365484576618298114290362298669390013904262451086556101929014154791761161562675615696681943848147281009834561269752062692973194139967826185533435322484620844988963244778608545448883572780561777885433330855412823564066190365402523287087038332490356630243570314740027471494521191273368585017676541751936762470309471020208754392200145807682650227305071783063629438098631750300823132322329724970314834797008105216734350481250222177343217904390705962433610002798020443114170414098404516090859963408612829265472542440279121941027627195888615731303593267849735353069428977307739848962192410734852737049686703627751420904412372254978511130499287535562147623387202874833482813270311152841074499751098924428916838762044392016053722474169962624669872193260352021587019616716501665558756381576701963215806714055110234549165449308055765191681677221772673574623255706178349226535365172540581289127117724653119718174919128912258035790733195603427237892539021659875952720523348444968345241988531293893283723188358915951033284859139669508828966634810745939310537109966577169565099889927276247692862985145801529264825061381677987743372597942387238460388190714239173409479086934568645810359447034901124460629145963805868693053789726030174892567587774772150532503999470746003115448951872397972525022931351487025236902568588621638621887596038592946526052495539470290375001822324958285253294668213773042854086204406084511189323360780165963664814859523423696198570382867493165119793632529343221069223613410932327551321505518003966013447898967721918396119216789796889888274461699101067703316347287895169424464199616853704900944930578944559236296357361006751712184497418940158136029978753556466933017194312819342971803164768894436476274969163993653656470554515244258401712819368198249983567177032832751901876039742500233406697767316535254971571611555271541975811463920788885887296174102552508737773346517687589301811421846517436022707239715687192976089985982565586693793363184166551662046139827404168868068975100247964355745032507192965707881384134214977208930389616520974413548748753280873623332632790479231273889608733694850402512806769338838336535524588432208197574939929915900661443723595755487737098542025054510446858917735331738074270600455782197494602132781969312116234867619435473930343389226929219664935905551454140159862543642912345194466148684744830712189091473307595390664304571723923952852175393881449506196205805784735121699347545453535370560268928209115745689196893795687384587781518439400940211668420720688538425850327390203121500498588431886134295619005138557844971047496237051101008937729493785128074930523287198158595464536241053871050454467589041777347985055501115864799074274581891987409068017026713145559200793786163105564590909242273032294209187067318193365897615511164979145199346190943416759671049983962453928883959455558968129103702266314453478657341543508541271830560836553445355419932455053823509663557440316404809120677322062484098252318464110646578401269371154207039442662720316488397484883788528837199024463344963766692339282924188934832346662534234775846983037380791833892079431764606169372482510254109757328524683509920829852539929095607799775675348029296572736572526125518010488184744225559125687875887582741501687102997567246362720311978459879498053649886180608639649749151029734848548462205039210630515547256573284915400985619342480616237833326889359782532954318822308458698632172485515037586908569590196526791112252836857972209867803539109732485691673898886754705317518547343196187705677165169635405223999557579389603583340310862115678186173331154582147606120433603225762706206619932705584437076144179873303761238017198081871522085748750648368781127321130760554579913747707381385270568210405393159343960163398455327757415824574076258744604299432974624758647618655586537772591309489343593488551332828131817774873508706080672006461779882413409823076082893356805358620883287023622392290056051886520813902413051361823336136828254168658256526649880103942960482039610608123918320825954119493399824284900181051409183855405785988046808363527384248699528605373719375695710280539691291852366201747847440886314526371092492103612122008219331427080247939026873935069097667461804676164057781430962798910487106386475201666903423606567911767076176521176927502337713210926648647560712711915565787570205584821417006656997680532967341987839177841419637876980972757569223960672478629938950772191891471354463792812758302435371509906914712822483160847716750214262887972178056804088274900803647835762415880015662931536953822866924477493918099335766061513160214693653238370780773329665020062583848448599738879565202906117093150803915289129552934377172371475137303672805308299758676752651989737287762758960798577543165497572618418936875052192334285545346309387047593114958161349501739960808704712770099774854227796313788929106236649707127440313235518530806604856145810276801507879851175558032987141178263160266962699183493636167360875604797188493418717585210029512827462582215515255043726237218932274498245873471346525894163472726879753723026787070109040897076261830742648084582454836056824211851314282446010281315418525937356036515179895884315804788945743857713319376994874714199540436143113390099313842573594850741498360650618637532807208496242996111569740677218396956845909253754285535072898695163196321938509763681739953090372694082210482102409070739230238171339762521828533314507165950532419803156636599792157679356380113691866271643537582218365997398819578834180781243234437172548669063309998008529842311481092118602349338937760986465212653796280430717767942444588038912673676206153446346090383895919554092527122587179274049836068768422935659952147830456159213121683557063563525678068205455975212076678857115432047296190696442594615056244990116932007007020497923056076538131668117366594228054964629295672570634980535678199922745760980368639376789075807488731566946812563994427667134730661958363460794300484107548826470638107900946508280149971263829988052082479054226429956674170474508436856183360639298885796697909310967349044957712508448943591278817741195822302343455988229592896052692160646980391436606892477393792784879452393872163099656616784375486864510936483415778650283380394231582460836230479654893442415532395283081658787224323552084788606503608723753775717670185451975624495553848003328613537019274156847349753256066347982391962885029260805401152812882749742616587048231312225203959819141751711551488558911676191841635207373017617960260038296515013587148263631769181135824592152752460097561441797374398424693221379887752080048421257030492227763554746988646062588759489362527096127366205819548453062244094044829620432178860017793062307314447326829384361236156590966835703907584003761858701797344771983379951154706002199880967581757296462080329004634602413951523933471906254271477234037690848828278085416621361929785195374510684060502767097108060260906798570610312224053605037071395086674209657849856882012606047174483612718721085317054496113656729032848194874460562202998691114745657574063153993079134796095789668305152936240078916884342411576012710690344055699884634842075884058099079661408208346640927611029567272966682651291274979969942903836472235960776160153594697751438190316046217537958798018070693593181521938983932362769620298797208234242694068213401938942792840473841809926060278424341282402200103730329628333726633425970848269545006590771507193137211007074924881782800864500141169302446873714826305384517149230701036469729962904763866079000585324521866541881272759238713089747888316612931182553480579142112001552234561864288519953645427333757673819459198309238307381583385843883374962136472226872073695192575066092459403406212751495176022518906949211860378992778270397063054040359883289407262916801524294921509952787731540657529551889200682987542457836752942762198335299217943734505699168403664062904569560542312235601995862278783606507555617491937552187731294932753273989281585203713029086775451823591030235490902886234234129960716176850572439855318442033933494482430698896970868675835441258488674308458051842104532925624548222445806095595550940221155316605669896112059402769580719203861216095823333154284155237898446060897700497164601008420542300097801272311440036910047523424084484512649554689861707806351260337482163010753312466082242090327450303961768632801528144078768665976865579207033731384137054056878001883593389636149732948795117688445618774414434738227893454069785273815864108534689693510860247771502022041989538784027242100542066155467287434755793520474729665685091399027210935779677005548208495753265787106528802712138568916291573463154773288618869304851873258104128303584632287059615734130562405337951632619071815141196868688783941374350329948934896672383199802725505479579821210695587235668299529306270494482843558342840267197315126356852744839262742771773262310805335890003918779827147264471574141099759758829516086871665505870437576701422751106870386207630178769025140408910339680843044924793071444829899297911249467782947044383757997192733644474227963566929190699066588828572458955539200559884987872872652681187860215136487639100280954263356457996173367368669569968825965335953336378688628788940203720724031606533130651454948038129918311846934310196871045071448192642276178326207956450481692602094397300339675588135940598399107766671755333006239651386742764885862606036247383226748622378234475580610824865020039830722003404387535896401633172576722057604347523968954459156321083808114593949189805422758530983815872018437875650159570617805065152249376112712861421933683022385729407414394108985353910733296380428828763972171421385627817405656148839922650822139803151513135787162476623296329073210462905964631597784334156387088602761844016835085812139943536151663699813026239153034306818655845167307662987901797816463008622434380021703848154358172314260891882150887654058476713347923444310955428803879213728819602624360371445864913954923155807787037875058490844512785739897734461740117775636967128970812006378796520107498239797844858820961873152372392766573833087058030500913039443474690334890822561053765455429919446050376998990092828745948155370643192002578025773252700448925852998424814937637725085976741403917210042283804893772314277215325223790761542550470666471697393741908511865177010774663807110661894568957510317272481558399261815006243938498472795464041593701596384722405506431169778856555673590724252466175166855435904608130235405652549768622236640202844510083365652393150983682917196083448173070745071934492506103107036108833104634677239864313850859886569602945745524279867207647536870092740448045661035904873762362412892534449066867770246279251592240768936251862119603782882064306403674965366225344675229060441158674968047519559688341867943629408955221269231850068411863889037421989837176538479438348848278017415678006147287149337300765933528866429042039858561774444995717561682042864275148206485683470065494624140444340945994900129760052693653529394163521856552714051140844985590558680076038386386871452062940201064022287112460086701530272601030562908825479586078407487889277650483038674966099869045223836627142901128726168625275859148945564177050522712490839779753347174308088668368919837153263248539119769939775684563754022454870154233990828033230527744617283305099869818985164123598760769447391295193725365539069424570969100382424666746485969637215337725767197463658792980799583042460395465483879580634207543353596777282759548605541592896666165068145277234694025241973156760460314680748643538430764348148022907502146752753483909995142085184122030615354281677716503688132237500300983834468526765979305516804417958302976875601466232714582204177215009332755022461887068119476370052492208898312799977430286763673200406350243260303023522432186600195642020836578327592296419458278624936201025007084607541466827289666696290145587852143774608178656517847598846586896323181462973569084070525152082855641936629839121688056054078544777102365540028913173859037997578278356653523676200337285535057895154566526765090967839446830383107872381103805015413898165535495491735487899430226694267533236377048181205435770721353970580280897521579121768484948527506793114268954224336460634565555113501210632188864669274954242294726513117293008028317368522114043203410584150543114095967185609907114532384328449123649159805318320833524635865458420707666490685153602522396937400889685485820406784939889310480895776976829088830853829236338600858179136253246266115964924765526887103526864202423782455405780685829695611903254790536073387073302821620708891081267350516995179828304398458203235131715636738421283380341698294673278765143406953043239583099260888922560786068084768965467440969879228337001974847344148156523856256285682954882223998129763100508543029299611216858944607277503500289249510168571826595348456804451649362472179222955276020343269486610107450406029927467896181092893673935391494359808133708516830793924693593813273952305589567544730222408455939422023169675180611066986349091276234845311002383139175976918869826131266671566159037464756329186759435503552984025628980545369910830961003795101868499007727607435190063784124836290292011742713494644879583181227629236810150055356953393083229856991539077591920086212517180311881602557525977106065156224338021504596449088509065742874491406375509984418681107275419430106143625150050424330266778411562123667356470782408270826693755723711057760882124453445323263049769535237988752310085588314834064350554991897781343389686854577451028917793867869009632198852241280864275878111771310593932008585649325070730260048520212681132334917796914495212446065548812943395498296560025918632455433822750120540780782004922029522617807997974726733368320439614637967033580676507962422499453269161150880825824321486739576339852464361232685981556031178923704992655986081162786997060062297035056264185805075272537046964535402365347888554872821292247950437860444998152710140461013843891690759154998754217396192480596447491116186616323436553594576830167294399320625178779257613317793216469488588978154010535787376794990010407498613778286723284558771804940955925905180722499972437169407422301587837198738597729922899175215086753077834044587624823290136544984839203240707600798511688447762979667865261315808045175105587782882392599758721293054103379647123991870597772906849110843282926896666613552956253402075527755328639116193667067926867452379932705169154084519388144915253460125900783875063715721097902977447052648898760687512414985215688906436785292146648170178553132910502059380322791151842238731237149348164465121890626175427254055019246276148251031910062008646488226618541876898871590203655176560563714723018420327358016346065692113659079367885460814180670848231984339505268722803092345856146080534804756716671952256291383658322951808451885754773358853807013717333936107059611601176122109154280195313428755040863538929775664656467444470719825563645643332223961482888092264737135434528489412477487002294995017679463709075383523391963787949134997880709179971342386329828725545345233710102366616869388772459496020540976847832741119205618449008733865958071583979750485141490846919120404112475558975477896016843956104396953195845966535262611906205976489074839367616488086798841226970327544686212534932579274672508739614309024609158539117411498410566055334238025642835228387452789933126750055891409930278492323283864868958618280906975244347775942669823858547471159310806054260699988379694543312923315648102871845455468706655269437535110042086607695079592851794625546630978670828855214793134304811350015439201120392385652638267511703907931195542285163835253377553270560697700808495317250913337335877153252221617805037584492662022307633270920770487430768634961313124832282984882491530661012779193412971149275751983632253280313766359190589038244855194100218631430791600206190899235143307869033018240627476958952810971463279128404637619476951182277161318854837451606115629751995233881252862338367942047241297122581601776395423335151602938221615031929343526554640651688805801312290005983507105061949491969113326948356602041721955370011280791363600472955468942056760385706481640834215937633196862291832139907465606915173090629772411083572935714984283762457633682949862646835971979991669097429943959426995443313823084654981522273585481221070112083709083935987445861603611409090855740388216061649043759610918964756536793661373081830762214179899928113446546705432957871483048662275121742828835623567315313151596693382072668049021695486150729360440147679153736751454114540617352238171080251929417465249623239555431845525538955956372432365811153557284075189628569153681624486402102711652585362115099338004373160190480437820982076273461536911451856704594012887418775492752409163240439635461318196325521164669026012690319852012569556581241405477563882607828725428073514902776689411948338787496363427799503722410368187032468904260771131899459941983823344205443552177179485371576583754891893613336766637070573912446556169567297559298769156365549681607808402244060264838720862769671568713333725900028166712659091331612823613690450008301077002449466721920396550877109554600473757689086030846537900920364269153547752192617852695804687645644163453179918274364737926755972639048399637133617729444647653045898142169564711548614220246737374052001695789441079696629188740241184146243467198501617701205926944322457264101601731544622816076032919201982918628526086948343276911043583904014469241781473827403379404585274469501947418648747980425544052737532877153236894351160252628507020335190747823459430235115734662987989527366369706013804018913424717060372535867629273554182413560433342474031424817531944767025437934662750958069550512327452482415052957118802643724009048105001891815068539577708060449303903548057744861859877270373925611948840237146105879298201238116393088018492920500175114811295649246517862278021170437955361198249835969660968885176379151003184062394432592648167218521922768829552317844511638184230705191967350840351976354577543796760595370394011967778229281508859833024934038599326466971420122008264045888671250936608835114394718974198426956489066913183476154648307190054675908880055283171008640453477293679964442338811755705578737807161956128007132750844279861884698934946667357607121810731080422334341583721109699427602649960663493062062386553472341126866270028906468576939971649427306493739056495407735473676062358066922079235619025559064935196240795140507458857633766396468852616093783634114057858482718673092757421903861937721303366583325773294625446084110863208631884929618268234328561434810852858387260799846300504486180801343930308295020868835260268081136412009960512104760537913357038244480803608044295480817093258064380096771429491372316711233591285214038838165352706740881895407208477384562251684215929424094435505765030692114165453196410643154598047846239989734117343766428282744731766467498138152604390342510082989405262284589102911927860193036943630829663435887341194895727840795153287785130791601317314055729547373925430190096455550286212557133312509788702665933119388151072547012370163592633362363814911749253741711974663382020295134392867229734728414508949022530919200010520806016307065866956192055293008628645134189323857386987842561201086833682499065766110874794850544558943752475967686969144344144345344014665004140506838324153917243502667222288753460376045710129214220735080156943526964040337339142940997568947574658997934942298646983071025100763947046467122585287527808247100077281012635897544777310667049256993989565245636272650680612130470825085203592048730366166144674041463023510723856223998988725365969053343050315929748041701717635342237807887340211563269640651039848292835264604360145749618378793887218527346584770928209567359405454247876068673482057590798638083302720453086726411827306148230252674439423171376953175752738704910448579668117526425646116230117774567935899873310376014661096810291403667860089625539458145769599152525287200313806867827547977409842245310448777141098627075822602850043399615620899740020874092741551192919179144223820633108064518145731440201288838216298428710864752947245053481680285125202367036551129136361962907432822953958132962978624052851927177293251922510522230667418101441255116141344862159366216931309766731088283218652218848695172884835983194954160320178508447023445554794912652898784809414967489540704154979247854065288695850077300590029424665169128461533926046388826710014818852539892700576389435202187310713103779727910506503570139215572452656377764461477419846946668731511143456224284944985106467191805662884869620691878272617297198215808312257889297360790002676646063735423087412225582210185882004838838846481151990648295887566996874627049755978488638919118885201645137939441494545750509565105131080729693253811030631712102417072825224360719671928217895371231943999112281012832495288422553164290045126631221208557422538215045237572485087497536588444908758082022183113124366505020463199286025487670135072140282935167137626363672671196927720063560439027159458565493062880657425768919158723477410006881265840031011468232155249011388168707463516940233098717482095219942618142058355245391193015113785724702976040024295920061142488412089797764901665437586517893633743667441156556794246860663287534418418771037700799841811319394670696977806432593883205596265545827545304124605280012458687216234377575391751757375352273686699090902489671795331803854205457449765226526833309515177153157994070075410824026495289311769021794964286702484635697444299349076947248158293141104280146074937807085317951095541120316394277041094346706719432189465814531157955011510078010365198311872675035095816537018395011244202480053835103257053607987314789168705402524093786409901374313226436259245442021281285821398096124723107678108997164959365817770040721412913307648965697263025672867478616500444469072833706250223872849614310771810894622389712416283493370519004987751612709380597027702321791686248109407782957755712209854837923617799396670458392866219273678183550295760635903308061843403080627442850821285629855361750886482561410223578306120264447468525752214254093710066122220339434331657162167485854940435200793938804454782622127324402259068842164942292001756210981324978807755208464132260329821499137182081680661511545530702325750938461212524422253181052869719104972769351768889915191103150793326178689945550455674925206978740164803368492497030966690033008330928293506003969068035584168747306105974471438852160502057587184510601886587303333499598668137817674269923609433469510794918795310515873356840253714455572853742252938850885409616707033913892149626784182307532569460664981661394057390454363804899377817504140913653101563484352205077643341871724672309996682653870958088384761035208992127259089173352696926570898635415116555831941729418878901924122111173285299532765221016353815689382791216673730131780989169498084797431821065763914629624487794906418603513472283354537738791898771499887775083501232523083961592493456039444971208107721322740333190437919496798673008665460118518824383725431321209903461078557326008637416683097223265321578973837897177840547339672123672202477010860063867963680939393727744135884010710977507813675855143829512465516772652657116750310526734881744688706919201381683568154115299212339456047800507331840386223176793279474362896429183404927939876562222929320915152455159700588643308912066471637449126898361966696086494757630367236318750351210140400651580577414859913948196057288821640615736562818510502351704758543179293195367059216631144404835199110742985345458184885874595587538409966345629680095677213960078627637386206633019681896196461292475060698847530201285345605666735451203587255628693477686971388326189550629582957373978992748764480495075678781721103636619574371679302275407705916258143147458002975808769197393963237268155667598255767699253976977512296614427624343329134357317723296977089512853061733403627659351130906036360113371158264877300024714696832785321043223643708280006502456684329040656275907393617797520117321031841562940092859133760378914881090206049282814120936480803702650171236978410411371257530427589161365065288616160335733965467752741450682096947450849298523990687778990964023035776591134339274653712409478180245820650938437098347779251603901777037452274129153121874821924788817052243798294804158629310204690953374684194160379696267444063831572068537532324268382895690569945473519263929590578842068233674647673411041808436868501627548093304513657844733189624998160569477589391596531998954529649693219371855178931159509315414756764232707925058166854784097323910850605280821025743554318300922643619514351938955116827607820498427080416468472466965502430588473084453350759033115415683574719604842285570753729345439705648454615235432124061619755344814065405424802175442909506540505435379046604638949615196682778702424819248022909595043141691440928652565980243574656009223759388403334260539319129665930298004063739111719131070845433902959847740360875559132039235287304402006275449678058942875629535772994290316658354755338586664969789597957287720361137358079943120954692545885837732798552512382307093229474247918453617247897066785070582321184967461963287734010094767952725858374087142416770627143786221123091356022441763816141336302267633759391682624209419012931580523995035939657467736618055309872344858472948778456694773728849088699707379720943401478011622379309769252941044936332910144992108835825173629287166184504649581833032274300913015140200753614183908542645868250436237387016681871475772928857480320231396988055590545320774114285261444400991582163431814113755527454903874265238955500942703123287139824701790251613858952078862812262118321306349528134158168645240776857571980750976583457723892319158032255671146975711017916593078949267135178186692512075731270426759992480210867151442025479796149979451485329510980610749530022400952713883078138625061640695775499427698094414045867930734273277375408041789424003469059214732417903206038396012079227240927129497521612337213425181740704495890976950766006448717648875642968677970438759557981326926597491024049919179620672867774936217220009021016966844350530637225830705265246137730475035313790472314606688207494941350708895431817909567602723947046577620719346907434206806024346668095540419706130840163023844422386355139787116636093976167391529722128906695136108832094253155432456177129041835159864193976765963502654242116405023533742060172083440978175930045617037458377314310445028850516194571584272376664312843727353048161523989120211134006209103107446359221302425554898342864936961255506377007817598986719501577517776653093162492768720648260909698679022896445346730838396315659306854198002199853611093889074012133154466471014704748210970483320989591268942502306536601727007291081208558030585865844385470474705966530285937445430211897840869510109027190195818172603410784683860394214196521836897405802295383161794958853234417003567836663166812149683282412726473465364982391556478168071894022811142645230391704817619438466226261096746890893808535925979568771996636935760232737580458350365984639755325154055339421416695210749181527680377140401423667273337054714428003383235284459805636679533326709041503099940139901576010821507768042643695054671063075191631702043373020474254716705455238137511868162586242764564206291638806069232355095126751810997858801068235422699717814967469391297329668737053110033210866223302225221738959090185846598513479187078421065120276339282796662504218331421045534088541691692718893797853587214039834111703688563829820050779044686316048710336999169031379458443262196691071404543210786468366879675275535874302203438319612868227378996572966425057951128488338027675101286721144076101149063158881939809858481375681120732785010581275304519356029553965433407759854979103145379573182097568454700264167439158493411827431501182384096106471430121834992048237568267623487749212817180762057403196921253442548015638566440665638949352683778787708981220739391588337358411790984373677958558621095992492611795378271572245620004900755114061495468342934072927486898007166877892479697525413426524978667007168552888680085372063808049160670420574215555110822083174196519627164276642295812684812667883641178248659545067744085589840888639595219215994099644517931182313097877961174083847163437701162576119242999788709665909714567750615331922121673603973009984955946797303510961050483056906733523996403898451855235611981524243679709888057946108711220351523986028136519897216939002836191184681775357895975379150881587708588047535919638895916874123922813236680866893764120509178068194465740282167550362340185005666292217220482603076132099060312811385415659652442004326829691605101771842385568305062414922304295668059772954249260137985771863855345849625973105473790339553539008673204615918147316260777453183849837290620819907173429952092906203582700938820335043223193184847797773069961674366299273093721001416646541841158627016779015251912977119928638280385466412850754602330761090588676027567453681992171782276446865405591638358488368147211558754638317826874044776285972223360839006566935437299457688998451603527139114484160450466400744385731884079586929060468011194723780354308922564604298145756365145835592842805486328567141261843681001785270243942349511071305940026475537785234573333538181196870484137993912550777234939694330822686987724249634297238837443397518040886574908195057982650286207925135038477101334287067955075762647531793477298480666518470650086102980659427858248976125072630919574367397618700842354102082709781634396639623080200668488735138880005924325003566620851809441781292515331475457221854140789459648003239470802369410910600365940771625431447048681705937378842855399604548119792955398865980576035619287102214559934915379840615002644290758014331803529235318689170600740197244549694943356488135303123863199837104929709902825878668366936044175176165236934843628445216934815869135080650959083233330908581780646922295612930220156228392444131766721631753910658674655899756437124991639696256975392539310501779724351551987955725321960033407739719800355078295849462183687349712721658158947037805116359864865727561595311717424269747894355859337570723223703204563958259937725995869251995676611800096601565531486706275377401131855711036496265155535464219977247734851692643087056636472432500351382896592914310338156794941745406359616324434132184020119655784919302717099791915814651456727516883044724984550657890800529229315743266026306870083672981907484681637542304025026682440603697027931072313560591084610008135698871185711553433653705935093947834861653751731016297147179261350704382736840239435260024161147669255178538416338056588824136751947262375125100781465271907496793247737815880646720019786554236833455407687238466244145929613535391293941034278187284425114714652346383740356547926482622651103105835154339722782045781449445941159433257663535593975836250541195702027936902204625544267230652544204954249668976406479718791952608846881924931470116884422359932207032854447580652517564532360921058005641041008493401681022623787155158471774784916049093795607228133268548015797221225016526242576721997746237526450435308889412807202949587132205016134407496268542112216733077006706369005936176399570770132696615101145352835418433738373254822014615225117868694270373638498761289642479100044189427611307347939252326533964279410318618600152923841922911891057479040658986556336226509041025506233068765989762241789980031743063716352320405522772304331790318120941323535362155927389535813270895082874181291486242742843844696923065082113688430181461597305572486302076213933714352345728250424795672286628563082802998675214628940531408135130245643463620552712026612776128424151828746602918301597674885306051377093792400510829815875945632463823784070009628276730296475190053692744693303455627963621345584931368124487681270265306891754236020410624464561463725601000574396929657296064058927656526094453773277722409063812280072261902362543592174727383211396881024994255223150511967458089867666406388434399140988787860232161987430460437811655190738564807472586039764396443316315204474732390322900135357223040775895793981959234905815328096270843674179855616422368715611034543955392280378904425596422496697257399275025639731219711237487284474527092712205254108327115855598366136928572714120663881998020692162358475637193944712999146649677320047052935241839403930863541941816366705652729443800254686180001090934333752146014294323303593441296337936410763536045208547317997924076120924945974621064552446781591685338738782162813419993231306629363953330596729585175929906542847299053474952917841126969678964970771126730550538678488904587018178948643913058421987845915518116225627982698768425985778431099618615394090976977995728755596958177969824560967348717640288767255385286467165618993758550814139612474368516464365014809995638593485570206055440522745971375219813646852493195304200961561166981431669323656171375457649950150375399490168476198903087134560023023952724054783010485414289202612859269433665111059773940383694262781472772343230054457253407537114620145095036757304458158738963371027852605958707847551548605815293026014244927294757991224802695022071657938679139383755284963158307322685060382725817360289450733179358399897146072074950276616486232940866165608879920335601754929164379174479380900987158728407658268097245757377682752707666229658039087367377652161951657014460572993218170539771331735310971866320517205684964684073084117276237926471811344858999568394221244754319536700170717610761316971584658985790983633684021223371579334865929859803280271765727397541897083745772645073904378495322567262717270695753865986213474827803538070361416563085077164342836773457339193798258633635995614368453431993965791325062522606571547316224496697676034792064920250062802026760084347579501788547760301035049614993389511749865587066109599973525906928010721402292490794750222745398724328088018084554532161744804466134865198983492461971454434107200087522795558666976904341298061911801862002556382713035659046165842290977153878555380291268445360075942136325584377024180347114567111004321220705487083954231257157804349298075936372994915493836433083289343610326885873206543107959837165002308448151521988899404632983383169141214434241466019734629598563497931578571877606301859117305151808184504589586521099038423457574475181422909678942853020049950331054765444297515223666421731656629163461824371766692420218945777021799613185978312658008203330006019326038926234311999892559578111510762278839432798171767364588409047427961222107925737446605691501703570060786166495085025427947119235632024761105311410607192822889836156511276060147711838466360079275135406190673079689068495320110411596426502542111434509599597421841118851913152328513702680902318340744836184300864049822313802765170742284194485944931031110371582432708726790536567613867990418277507237647236609758522764243348986033544187839010133498142624089656569947403788473953761307042188804042035732310583737888491944335941885236791885681934642075471066024573737187720381661489868151926606068709790537183186362570610477388509906229399103266296808063673180259814465996293987601634232252901142906622798145113920282585550218345661963254484687072991586450317708314384307953911407678550189533211003341896763281587917682112722530661027637489255570509297073635261607740882438861846066886041374093272149367296744408206655395250947696207408885381756922310353811011690629735577582008263021936161151859629562437472808365618657436691560506045103316703624097602482082712239325681635835108175026826494370275774802314854260005256029445289150113789145475127287419765600114421165458938492809508949656121389471192498959505283688382905758084805161024712262316372645334579029874172054371812007762481266315043740782308155847352381136013348493040412726751224806522484374042962592182909403032997369120595252437522182268144955067465931385139500833076553947286074433768984495147612539105450408913970997688478166538131135875686678754741400786983346378063809162378142682136399250887245075348084967013242761969710473455082802329296753246495429321909237673469182111084097887222784374154223214200226183301318973755572852494188585114940801563449400215360803701732490833059572431333714640643808538310255084460639240928332456450333580350801830418943389827894669802018457070659022186529063100040514072628647375806811238341334555273237165626189126686487840482617176130033661863205897294140092434054744251365603747478291461854339195030664965818546569667315523965796990840019709522296266009131080393839373466222107324753919095607988455514289259153679122619688333161032648635200115279642995086677928175593016794037170658609378954083612806040886031743142817912654412842273114564531741018772689521488547815849244042806054549776800872642490668372062235335344975858792257437117648937456753099793717844566005514324604938112606247256066604839741514866317501455338272740381750434307105650582611685892737716586512094759504421899630684901233483948012306873985169715368681581866823893034678487312051174097984417206305111487442782263873209106642395373869322426752660050252330480423806596443666664633812156794134126836689367274824828265160611039620683245716995128044174252458218469000357770851411416227713478679777374694175926277973449688546573228626786809193042947686166513236944715257676789659976159388587650267901797377363925753856333657911751519193666618524606524721664477205365165510812159224436774875084741397733043548715157293555873868148698205829924790618018395685741291263137496515415007867125629503480414172417798724000600947319123393453124322271983114052318862108142806093384929676367646601432029044814077941434208316115172418285034784027856118158349974517674569409183315837223422414195114219927372286658131424326894637178728708641088116053104827096332489603142653954025725215543471452499556592436852247265231748208058890506496353441972768886029313687109174570537916694082564756315772202044639049876455900554999391170545189015470381911955583456395953382544434498052680907346953926324282669219374749248759877057085609320567409873649754651304332879651265158359024684343277682498580372129965440170628095457335433222978147623831324178070207343453887809777144633875775577084633520357924291925380028442785764847405533843901740584877710449612177871531796887315046493102234605397400883560652171651270149149855848757927503330439255253896912072476839036887042661136890041698530812114470072777108303322576742590812866343976425592598461168139101242058540207123217382818264035709069167012983930711349552767064190256077215097156528057863931206357443494252291650564657485851067395093612914457251873360583883752724714098218763785518144650770631120302873027688572301658766794493080742927303352949821912636804141916132254522443178709848918209112094441802166490025470182537964570794723712340332499978855254500463190228521836128309017013231939331767347975751442684680204911551795573173525916842440341830557379494517815339893278920075967803002879120004417183454582629807573779902766080018742580127197196726802990495774916399728802162358747331266293120585540088606400153310292058709702990580497301153377159152613779766874243442086157918266734107364417901836243342423947820791995342602601984813061055515219393209334699251952077333528577693452499407637423920913455017058226246645458283904415809374209865910471611643206199034316331770586815450390857191619598627025372338552769091601524648657694773485030008076797076022105584084351087435387704333068786730391169330551119173466605549765768607132677814852372209782202858400125802130461707949635442311919547674144060465695254169305496379153705240243483651737608020657943171513403770773200713298460164437511166089260254331117640031385425753560285581839579366707702489911488894484399160448374142431880975242064148815896790267746345409783682095252521696243205767020695371093144140344090132594530412848314073343039768993281599427567454160418705977929653892278673669925951438540006249133490969382284113732614764019940338068385477781449545809370723867148661460475184945972430747507884766544939681253358167728789573904224350154449659218259433876447673438123306962584312597771630393406288466353896202816841433780987094870480618114467284253205420142964444521705137818349947594153946363208733844482259021165421647512687390822482805373383053266724420575043566975896862197320975391987228850417104383964886910825034250135240902565817939876928017955201034228015285238508363854138869890279190049793173396508122602433837805658976928338605710699035139635266616716698056983612701716910526272286867623722001222839481665733601061488843984921117089667733700896409847705944889815427874998292200151204943551460670829121567577251773257320550922773989529906633693557908528979602324586534286900029661363241893220653908131156074658674845534655138275748478702005103088794958198582442671878309639286403048000768869654349796721901517980166088172522011563415531591894625543801022514500786147336643812630512421305472387179179429659398603180487334055432800059755941239814373810022746593164513610762818659097435140982639868237457279157492805565011389349103924368560115289212506429546932885473870383229443450610203446903909878252189506045696898593605452293308796087546614394890464900609000750569030541781767858945972504940147355613445870383264205897250998797836520885544203571708754780702138432660073186454536767140548659700474237505882321321386390206306316860235045469353464623633920484038055090840025756886702626689874384596859280329778500729013142026905528660617518397551347823851153153352814349609572516967027778651283039362185808327580363739658637869939828513716196689572347304408342366971148446595317927998867374501984141667391893806893840865170193917340844546171668767366830513060828774219195669583237144139284160476193575048533063997840016173643306045656038185343485369831704009450151207254719953686126868820097316999161121764741013246796124652650569066146808899806655845976532157374080965874606004889471773129296272017917816161402135862128795574514508972332775967303369905193253743467211719979845437155660507621646918696314395450089970699914557171109720344656086535000613649056680500970170391620312326153524261644088280459511430266244381437448927549329509444583153748167368714250890266639601442350410269759440099249264713897882238280939859182651102063229107066131613878673273491967612674228655656063672954531178332525535311849287239041425723650428625249068667706591941083314542722220158363439263463210616860795937688726864824258035794997632782811725238614173615657243706148222154068796738797496545430475605820326546697822391391975000629140050488242612872843686998286817226808148558382224430381563905138667041957756144197305740085878649227418317502523169514762530381178988184131024839910820375363084406666482018861519705095257296690247692785373197211194826730630985444264385332004684652683216889487422980962772558112979910639576728404489609481197290390199740836993611369729605437358740811694618908084427893957990647429036828443275355416290679097532296350252120779254233097376915604488772361154745652560472271633204918223964966025637886674197888399024987425972121813569747715705126126746000698690358782460654709614590238451817020383617486215657476336793777693575522749002144471338059039713161973070084577134426127470973484802536044462544841516289401972203858726883562514017094082335541431521538413198087440431731521211624411981585842453647832430913308535665219662158635646154725441435644701394960097730261476536737551003936056791899504556401121539927587739128478007488058196685521835665839398752838734268851685753965938476589292920375653075616081914452244739906216827260293718137925605013628309083787015198530624372555423916063685169617284014369113855383348742748558532839595521539994502748812348848027380759902808980258423117667007723231579859506725925610589803936048900413267020462022159804134655593085992740695113293282381327523666365338850827759282386633955601800656649518496878759505007718471294811568943317299931538447121583497729042587513212801762410581408847178654858775666358483187530450558917465877572942297738762608234114327195483729526384210738974257412956269956436832851545079732404274003810010545846282513016940757898624708160871232457817569586564371840017931373815932790442378914683186550912693230410536104493267097989980594215687862172415527707565683437761355511586401799557150843853039348003637733831264780975368961556587380975565501658418662514438304019520012606878347168374272098162534107822891421124713845593674602140525929790663563919874453314890664034798327738387936633675798613703302064601790844513463589111936085554293968334184657737816682638566777122149196852340195356209899548797728659051903739888162842825146006410245179953103214201288660823169343967398732243609969383784074763563495872216529756330048381143621846870428345058189297892590288465791313954053190754216113512836536406176344395467466838010415245309186928891339994124462106696912313596246178440251899145487851235935871848699115647630221934820739675897009621241386726092387302105598796584853503022706205532077023389628577273868920041140260778817894968412193674453617935712773109266283096265334114829890039755815548911861008720432600600853735184887996030585902567473873293665119754009053782665087943104809930350722459891968492284410100021455813323080298100062057554139267920153495467041428579759249231028956250514750772825112153311165363455874929060716140884307006625738639270283688436690294485282957873382999120699391915945122643569435315684627464530494864593815773351951137110233139810576143354351616100514332575538828723101409800329323468893316878814144481384986670352734651291053273091661248173555442790335476342026977755401425989408013780170574153142125892886690429608454935461181206662099847825952539665491165562644922096264660737933761807322990222946234308454432679313658345287765730439069244759224460923770407353561314552133911358420446129684199118850211863773809778364507796891374048533738422484356005270438536354605258197435347562364570324906626888363786106208547470376366654336896635221282420214877703294350959128160172836312593459170508967956564507747621233628899953690164932398805158567047018496755212051521562990801442583402229630688904663610919502259750585228437037635628525344090196081943028505229858397009164982984734872012243428567802279751102527894373141367703739079910774429835494686030444381572118757524661546295429864414354442471495747548250750913773201160344586921796934672839130670034731918232801317826402761002110138044448339975467237705503597829016669982353785035721401974729180932296542123607737466782264489589912519014624714923713505305176781979131616016590368749253781208411165632833336071188804952628594577837878115621155678358368478176319365089040468361064938031704729664549251739283388486973060591516351157380835550323879173068361396479034868768486483258954821615833380113960419438666486989784993594401166125815728428206885811681426230647368139094953960097614820886427609700436062699030472568440306452179029615188949117702393167571092311462107993780752551659814683261999061720646613671214352087005829103104127529954109065826248399382612711267505831067709252147881448451926659485317288537797232187942062710214764575530792869294770577891469279226620663950105646470352737313034284256510654791408699419961595648700453263355685706017237056988398338933286413641075060387085748057253770224367864312897607616591693318676871349755884668660739918660289279807184740640430863738766075571483202811493150254906031732338140055034199627854252000685704401541635582352917692268577316175202181407374323971385835266311405497639482963899358132963582230648566522541878096442292943178736179307390514188138626659382968774537138196748741398411527669147179558528728641010618248606727550466919458178936044960592019359819449054346970540002048210939645331952084634152284689515860171268703613564944891942506438217159291480580845690167410519668912723880368013717787911969238861191640483423164136405619468349545396786342977521951589618437225233937470479525685491890545466862673816653309396672472775170002669966739485810176125611622912680208603035623653790107708952153940442979261608192938621168491715295141198462630386445877175914640060175819299530294051218735090294434282205684241815540610527802985263753526301087890730387572779651127689581710163646681548135461946364063127145888308788405687713595775131656082748099904361769751218906345644716180069117280910791571664662189861912123909585535745781142461073785779730770666186213823998373371976589106396988151165553074354032294025106350305833743283079977935022787243318975370385347322221160412762012708833869503516992734708407281912620090523856262879073138686670961180604136899244172691462979499164908386913632783250092206026633554014097936781695476589757413793437786637311196251142234631449835650391710168478022061771540989318747672778807245479724388071413638488386958851799877991490654416217369568118597892490144767437559602816351736495795681410571677804705549243965030352172629510062024656792939619345096663621657842738804517050471669095573705851455325040956893243662448706524783500847776270426311686240924514299241435473485988575745143091867265283212600078582313482958951223628662183000979843122367996299608355542023317835091403047710842153098175319545905221945464870446283473941902192677409481406487629207339342373484881687256608794383452370572598756191456548755498137978056270384242025540786840303998007627514706552840056075049594159348286483030648351758175847761299655582292578373093616586179957981235364694313042793131359098557015348771910068350994068102750002037750995714878734399454813467489834211652851778631728704140924353985816387384737817535949258086127561419675942863396358973019843909826019172425825008065320505091406753936192744146550664395305318503377037934437420778035516052539041532111945805485325621131155963654219710227212620940267414813952453812912404309677522338868917356406089705352802769340522293044284702040603282759408363919543969333134371703306445837244374131058564936793722712797979171855025444558177117480832980085501663305234439928199456293488271468070015794379984021546849713358596604456078849619442056440116331681233334460433102521345771798065988449663772250726943382558847352268507541404627826565563502236218560403647356919369463987496596888849747840704540121848648204650300029251762180371552021109509909305178781216331751448682594391394781597052116878193815161881448421192910965832864047650699662055891977942906980247691580688566484780741225848336360776688189438218161419791871377623150714280091536408198220396471001804932924099374451410563890214977854629015192622774092717621017940261035046121573575467242618081751751467485512049547368626792419286593649201940742764934874357887432614212462816378512844912660921532194117553629292971509728302467494072954903909136384565288394834870972610230601381391674322661965552149249663220092567371376418842559530464279243312998787494187615450976170168528769033497837144292936247322081492960995599088846699080437467292887272346144791690495120964529140769402434599812825728518820299758135988654295753246775929467644471572388251911870968897912919278224132955850720623485483667640070847943642085212998263356916165299999892639824890607141812271267547204671138916357735779355803718165543603370990413479314367998576040234371804067384745066411125986833599004849169173337343500720725732692918807744861080321443613228522939660534638891762282595243781991748824710961907396687063426169466065396525133078705482494428526447813813503411509911198182453377983196883026393027741031632957331576533264441527641843196333345253781845122367851517867170684418222607532853609936586754020264200514402594718532665689359589901645037520332811405412547351423196560339202452781975373492339776787563224799687306761738501662190186756747808158183666183487675791787238787624403160921653354163496783727394679652670724792875568992520043335845987852699589487253488141850544299693875824586497364094770766562803091152277767454233257242392783564087391902445871579094610542124868313665050288304657943463626458232226405588458798853573610459211292291218807677896821743170280159874030251294261616950898540671268987309196542750198496180190680080650837090328127815274416323877945575844762470178565025370712278487435191172861136190422969621966374331071657235458267660488378754560315739462989774215931115078210615132945542031217448696913632774244137805465189439184855249433887275644427911545614889037333900533506950486612452880434626166418337754442392591697994818547909092516324885654563940497959441608669658264983348523307472180663398864336826615429938343463493726450224927333652414070971218225003846408754005876764320590806374178930715241821708320960845700878311624332883227374729917470743940322473808354381808310011085353018439991971848192011950801816693093209669152620384032365844805209224607032117294700700991677060210660556298822132031971984900173739448736500068909379425419031657275464457896985596489367721655142946786890401445701779590324146556372955407023547780072619795382846039313906199570360435289353362269379005580872914629740592900727568357311969208570059302641659277779617819402442653856330564977209625666763698754286987141466694411765981310537853861259890708449729462230750190460314514805837762062872462483529779550441944532603053086861938386425676443843089049622193307390379261718129827477229856024272603778486274715182106511522919927968701131522804303615880501980976447158269171111635055910468602286869381652585059680958697412610103044594575864023881127631697867024173738784755323277499078208468611818979429769407872945153760857547718439772927989073021234458693924237078287085099212041731539102185801836186669642289524680141683777682780554505493262255082662251766164914273529563291976036735878109774548201636754828943364205440707120198819887189422128399632697455028564329817323224922657429769313720566529271211595254935791001307459666019825337340674142287922247621156248800234983856805794799060721463462198357460889567737951749865379826981578989595940018997449837448614361670525812348198576421131682431440809461228853253510777409318020101621149025549556601312049853441301303692801664994887837479378519098308471986429827896496143118379682234491384686817131750346045544169863546971747639101888786441219731075474660590550017836121840309103484799337369067883388749934831690905150433941286109460596351567726140061081747724525997434429149237019476436037447118631885592171905350571063881456267004107907321726954891067015962474763305710352987689335268248593646016663430789876637098625563114159296055829308305049981364572650004343102002358496347978565042535203691477527447074199757288654264577425952148809640287606400113253587672015640422240105981659682864251493798170793413925435466851834928489423911510421478466598115557061502160718197446058263435823828143865807079010310566185604922788870496193603722128607507663206176938186645486340641776938184347494456267920023099419571925143279553762949231549427953669561493405021261406340996093814391877173751292307814604399387501473828836450008264450542055334543789719297378890035646173340224286030496008235956990817640676812101331923273984337398096744480606645496906506560211850925325844574939322148883721313669399988204520555930206313481354635557838136523985184374084692249755911705918044095047093051957614229556938543899201242329187476360958978711435783482732084155018138653532356667508286861660625985269812371786561324304386997211214308483500974513475698133180305367641745785096852896958743635865794690889677905800514832009473269197051563616209072069219270636327614358244579552909914071786449946302494817501635030515922991526664872501988346400322880929918017819543214566341238335778425710020718758765585298280298379743027563490614474519412673394558266090117399625727548100996495403452577661749253526786858072699696701830164448390250980687553222864331016861276593895861811613502008233921895775083416249306952399438667887870763899476491491842204770269141678945631828696676151487077537226122524856572523538535732252483727545064342543204144116755335485876341292255306894162497603347503788784897282714407957981578004449266302660358365035983623103753321728590467075089704272505756334977911767231041063908654034280223882230671408607296188168127927898733588306352958124431889575046041045069591605210690133459966171533771637879205906483667149796935813077856822779238843162979740173000998851791291302826665009565902245543399319482855608884841812715603906708356135454554100972878550320424581710637805101961401827068441895947162987303373883755530859316429185484971712039130256728930616071449033883335698254569541400401850854983400932745722482518227473920677072121735186493124816349564560733104119568520027745198874919778284402310523567105605361201673261535360875406643319025075439692406266856152384543394334887833646638067465452271532803051293964353257605937867503063493105406990900476126805197102114866936582082694620495740933263615199932976831557670967841438315226158637667027484874759778382956698006901665120364101611252623192029988624034495428651930937729812131930852076912377963325198843013322255748328092888501899769894174572936868019932339062555117297767599112697700923356102729092952839624616281613467449123841249005822352571303092646295144562443015643675529498946711246227068383248970591349561904072036174941269996236545590364369720988651036201199124390198315663432169995835949871499646565381177938614826597864977644448734596461285127120787127253716525053002144895355421128519044286074688408164956731263242029297253164413497146854982627096436834710098662577488455888167271733189783787086589381725069868094699896721218730155680787903355088984221766759729425543237655509490237251850473096707411093260813484687890650860138366784061182684507428671762848806540266631263961387369221548836276006927100897313114673001263456967832613916645536027025940755786267956950624448833771690353426658313674381363607593788402608573252402942864453600322333510234479804576610745852379078533191367135317118525437374609358083144302525911378600382626187717365013938215162240028859943816834548670013726460222279965255837278773472924552444313273271767717880403862784280015269354441955390390026651764629828271095816483179057819322696364913639917187460549979290101742163048685283206196299951887486114543153898814551798282725995087097472511985290457579448626098570537170096300753932103068860562741734399288095947860752867877260662795252931408418056110138650854484240494158197017615531392477938493886224885259444810394828579221130031674428769347205190411106144786377696818854622695396953663163296201728826279773290671041822384215101722220510755673209534485505665475107483342375459161561581417666060957016299725635925596333857418738656971458771342248592646481789482460521574154524323090451459304465469323078089500547528303342263836126061106704493610706650069405328597421578090279237203602768050349194312322068064318438015230098370079572757092082479251996001071474562564855549690955045651028555293650678809947215960983820899945883074341187876216827268607404483087086863889397378112951195255684247203448390102103887997204861133945227409858658392441872619725903478452513117437833224201041475097443569865168200408033076173141749308857232947302130411273474730496420294083196830195369939775630947343860695225446182288999514337147975122376423718408530218929423410016083925755049684887384116322269323970564116710066045038129096299646482518398569131056301460445445954918102439524259404349589368314765726920539454239023538009932924943244219611743832526905292261372829320180435099423531615920061287287545919419386191639493189201810637836631064395188975748819956518938162211438877737387703789728292056438578661626237146289914716374162538436073695966375237114437080420935343294610237315043994031525616595724724062534942099043142447832396322550951651528977756308515713069162179573174282278690735952434684233304065450065695738503782676044314453447116135231966117322016601869408545229243020899058395957219854825118941150074652057198590716248025592952019165923893450046215009515611150336125265227058757444385105276066521030490099901665072564299016632521113439352935524664356497957397240504479439850685523160588252495432195199158747523226244532022217387270168470469918407383384501988766268260594378391502632713007048105339737307278047695975886081487025276747885461152002486505758990629717043254427549252231158156780247210937791138406274572958978175390722812500592754067092454162874034491748246925165758954342153856799714461034663307967259010498278702232369780503548475858503431159844370293481145348591767910413469971346603257833406057123724714823966137616433607839576806525290654279986548783954534512716611244357580662435303040196536225771822705270161085791330087415348318992501246705415190765978255544366606616271600896378247030522378851774476961019565733842555114475194767191957974269816683029679626355775273375302897660675473421840471187083204856648590946280283963657777356805685474068036116383812961980983649160594643279682961553843561265559431755297302008209556532581073339656431267486578021074416399584200650149785343131206580515296481531452828556844518290518837460515167648188538022910053448267543596919260490145053542932553288210248400732503403866624267841441221994838937554478238162364818822898820301086923824847257163331963118699215089874437842546623320159810197307126441497073282859497396556649762919841227517777271283191670831632824356429661976702766344738157853961796381243167930847815508489631732758748571659484728072716765991184631471469860445041789890085917602144404431716834483551784461842356893867755791518779214492025325559008357667178275760429532177328851282746798405362248640284338010518087086402973812366362309319173168207802477070797417011303375898014236227524484071811765058129814332957411222910407922361568065507619390341591100680388286677394143642898640613986402948417543141903613508801507841596614371069058563883964054418827427821990895397998884708544625562970107233336839608975887927895845806182136377334953605326400942510353200899775832499953060301415811201804717828017631204704071922817595974010285762496834623638969666461027272977276378036475633979922669221062819207160815245931623201674674732197684705602576515422692197517891869699325082711609532873367055941535361085832046272603750926084607880712028589857163124820716192088863421300711566469062280596005513703690395025244995309392749354069360168488797703677342246496326642526405544483273092573748862754136132111999587502630011100301545679535390334961491241088058707359064073068181967842295088656500396897461129295999729096876860228853895209688068946156402844172313920629883280530730887305037586544660693475069482664415604941569037163983316504219041825277706617080292066604174468440085760748743360867272750859898590367555612884352939671584305881702089212808878473289274125673209356797082863528681304230742958026736507028145063148446561783173672193333621014608903664785631891593480491953362181374862582111691444632534070991707139385372346901731787728332414173149830955255083688988991444440970316464866359687925609654517557483270036167596760239246423854598856986955037713164226008827762253213733927227689814107799530650875862045795962461609671668650382641762314190512518749672703582939631886457709386041118651564275527196054181720573608727686508011299930733682331132722948611285318114496032848992327245943155510189079305355129897894265227638387375653818854875292134570897441307445160675406864696358584776829276987195738141522992757583670144785307062638290929046206801183416569607986985181334894458921664289736848322926123543139499003272701034256919710033137326278979152029312475833582521323669215423208591854327227886142768044148938666718478582371522883004697852016497733735459400578262528989071426324598087335427223425204529406103696641695225786293254826670038561647970315494432334258024935176263305184987851887604807328313824670307858763262312091682163054995099763195620829325636499938397574055673019283631706673851718806380529079103313587897002698494863103544553287123935225968959143857314423069061323412385022723496867426953555175033002884299644641571811150155274612828367598944584916322496499846482519605151673049698713714504558611469556986869049232479115019539538900735929127615511645083736666721041784975656917292678630591803613842457714425016821335829368130719298486226161976585488656135311765941058946107901421625873814745224757033941984577537422829349780741691608403914464512661116804948945404972475612607220496372047134887397930981341132821235537907072400737530218190855034121180440987278028462978521053048516061707762195817936439345496007058365522609919504897474913321580909001464426312965574906553768677295679818873513864853664551508736072903618271842707524338221988643733673950012503992196693535023623498264485072195567478679090793005222908670338605809393921153100992006968965746853729816716740919575097935888310555501341428194512611296845909341128672981120066295911956286929204358924141913904165790536586284367535734597427474185019686670573147100024125370385289851033148730963714587531892967923982633122437979038663710595663673060804318254443920663488954405410693760431652688212407249358452811484693821052293021709010571876321083731526385934368307847001639352746110524799494679102599818498846974032136335994747850736036142434310787229486095442895539945865984531872488023346581126974422745928140753847337140169219434416828186118536241115623774467287277263056867277039436201032151207746553600729273414665056911960199256339762072539764892263884819322424081663963899908815492683055757019396464918629268075316406524650813132645803348064453554603170881680477317772166646223420862906680909315129036236185888871294364880533894182525359949458648233975243756203687081750309921620593700902510564353520283893856569771279198591851592505048585136837303406341998717398219493743382722834760808686156272974037348844581872000344260931166636680668875553299898319119586263926069292857051846210153460391649465316279019529171759073960598080824960810300438584909657406883083720077696466472155658795721686434540857755877779063722190498146915353843860818981519551503600097090647850304205194214605661053849238362979750666089818089810777838848963690475181083453668250093826688934053450064031932335256771101331072705625907268747880663197470037899530311455181810735930928483837652163432700443093320353983437932696432953441020319159217513309430972614907478148462745043720290499674152456507287537339696175445804306452476265042292707004286656330960387473126184110214435216497147163166980561936244196336418467639304322928065295380424480289958305662180601443368769629155452859026031154570908868552076168422325988062857333672075681168168566994270450546394995104986697749051760470392360510914205605596505749714480093727761791225784095150987532618135264754297423144797159470954655356259978514243088841624576803167624765583803133494322317458657714219783950201465970587044718113830978781317801659010644159884493669765459078296818728960606021942059636848103338876226684255569206871164341054896486982805083105640917817950541874838046252629867995121192558523817305899985712188560866104850516917477623465125383247354357128649331112525860720376529998475765831179693674913732142557847589109517675860143153155801700546234462045954373532707732585574901582372925695246888331712362136948724240642327402118769016181285936135478009559470635998876071690207664651711280021318723681516054683535330575775191672452703430088190583231956026259661328520296728545157532062534083025619794112965305760174846517774338388920688654081632849356596587140267621350701657574732932207566166698966123822573503962122537551144880516426385157571770122635486384809916277270049872499701314162729962005130971977373310587923643482667498815817505394670789451724130094270037038242884255166177598139515910290495328463335711130724876902240213163972288449243523629271524034303602268950762778879615635964504154584237107002519948279194874276962257906628339401517222548743264668452875523945289267543861343538495731636442225602646824588784026294742621622656662575202392898008181551678773518254091688771760142686756067772923339710146843913070989799368681528085014559118291099144788830074622630816019581644337344150199810065814269569738938480049608222967896730396302417903637687035372330666193575136724803093802560516723129807501104703712694779608173456080058874475983100358584248888993783188509340876676395112102818643222696366122546061253482604544482755572866930556193298948597243353720096815216039580870127437703765669357584005348855684134362408742047973831360003240638729166654494148586070242822459369647005293031455804735331467135686783861951418111560880936301289054887954305024113104030810193935933885412399158679114443036906284673370840312140248721830842902834750595349219594667144830031647459619522371056638057823522376549030385702483427501148061735863318135427414127255463847034703742685829201402377440532882975888729368138010407148728337282173826321592926038316491761481807026198656498699898785778425398360789349697383229098026135880052992972518697604995266292041910657261588503033794801330646926156632915020768808864254087863225383737349142194583404554789490126457305797203496171821569290860666571056920725768380575250121082673485121140060525661147040743553548123842041342953853925836322531861039061887798106956239019753860250894641094289711477763820069888779038999640093701144821384651121257077058300573845867004601674811270622812687539334433967143656683207917340397290262673456696985441916858474690149897244300906756878414230384717601198824266782943915314368153425696385084411895457233498971669486227736978120494188393335270279330351220413949613444257149680586232504828399161174934252081267011882846943989122681649026255517883264102034257760508079931553179047853703282059272268564337483876351826356789119690419791862163575482043105230649041120942607436304619072192622629027624307410359325941135813289384134859895619552192276869952978307753527200809081368539863876808839850749046528562745926385870151779880517727902927281431630176722808564554658384360093405189225135968272394099009936197456931604138251777753207156215873872634848982928932152766931821777463521167094485004459586752872803506212877028255603216405786020072672736046639433764885975872703449239108931551353411058303804084719397502393184704696250336714207431198691636201459837729108672106985738345646717398039446403737513896162369059055348345017350571580437923320446051077113823009153281187918338462641255411097942034098125443799671293548972139435533866103374759180499033734931445397674952599247701547923419045379910378557323287036247766809390886609332797937320029939144820484126899629015839374980163868665150112433494730504574424774456900158378679147201409386226094695836400457199023267140698797825226061179526239945884816483475340690334748389209172522586102040265224687002866174078003410529365111752747407457408482671780324332733202366520806550482803386024569778455554045458932223118406861124278997222148563849032214690679439464954280212178122162453977732868372267310018069969958248852165977763562625268623944823027868557633115420204334406268227743583343808718213827272940420345889193452433465969905365211677912072290866849938309010811543606125831816747229172109828360349487991721832926657045922141668319727238358498991101257809010330101336079835273601792704980815396303693981233574111069215715335093787529475583284986297963639668260699851399167315196885791634210682233425564906106366876248706287275478053180318291403199932307767177196160650819362699969873933878571796052405701416272553248259323835951716190245658600841021110829461295385079715841413965163518766331838630733898869103456537810477039553854385364049124779452062151657331713020106118115726966512951620870305955294932820693041120378008494161225656212244193273249416887377308422108699844590823566534543157927344136477378027410169693371500321282371134282375825968162314025652035213554394757637612126404076826671759356797227763932289566524774376577789022645663860265571818878928308655083951749079338146713173494894870032281524182618742634958679394054295223104839148047701610849133696375393377118541096934485127843084487777632925419668189717472112883436599721962341775689729244457667363280069579921852019788939262190620206036275248876200950463509303225450393409518066698347260013596256938928902921641797063236295907428887294039676178681583542700928842114679047856942495630096739812751464950822241191433079218653831007455710269300999312027965667140649519282423436540858964243160394745064756117937778353909154368037605573073643813549894509513185365477938957902903611605238523827064715346988102981809980008848881384445262061053722333378967162122059364964854377108601804033743703155438510300611277645675176066374709019421250525786169698934190265652983301448074398558437923409806968953830432783803297004727404569478442907309651955803716663250151923551395017244004122398588133730062340350234578822397447354607216643955094320873228953262639312068238840719883509692554453965649954764317294652464989033339949384481089740233900528861845457796569810044081371716526707731531315669555432343312752994685344180450388819619621678309170318798362609312770707636395635785646887279929000577076052373928515107153404521802730486845693885148507726098035918677150817303068181678523715649522406032394376660342174342998690646846348515243201943780689863385474617318449123310338801917087038343138996329009915185140975375379961071280333697327607504815847870135464091690300269962444839079634401866261382264589420516002422347416580025170489376122621168522112191297189512058999707148025522210291514999557538738342226487055571332618919487288068980726657948300237161655648623012141377819474467355154029681173113817156182696706089043247091015704874428115590420716383514442967811649229242685830224468130717529941407683496366346811306105650487732748817404075995977013393224755543452032738794787434711474280120554224903711917937128697315137393079750777198031485232609094783454705720009328059991244170963961022598362183318534778464284767018314578260850755682970416032024254546035284701082249989576417589624983926508797087887221120014319659679306378115470753591394556624915507741573163971228165146950632348063519067735859103154246350981014696391526446883406464241696125823136970225500956260287405841413263984033062812114737062505967533745950276896520216950880712387430784863924614758544739663639520483870010697365890093568077540707169178702441603065615919279638207611224400356654696370683357832975272013734206655251236204934200099372791550122262160250804462559075569191318876193631409153052656919363962908668951455982090497560391928127929640391106200178858067418456555580845476316660003563511529254789235575060841317384362918870724558650417573228690228554759476254920761517751068102095875848368849455295420543370072894908583921348382227619187278363097687888181066590730033662745239546022263971722095281410986590737290741312329484007994654654428506368670488812372376253484154124022311140974005679403709922244001536768450067760773743374994552429514138309494308140215511796834830176812466341982493823731434032513676348249601619392023403621575871647299036504861771548021369404733783049792876144891003951595937913526409053384388483931406135236998608522085703659005390090595379739601748642320448776985759067158798751410703498338920303054865086188953250276137784823514073599190705003016273244744044936398077431572539048010490032000765091030490473114560123953150571417680759053075282866784672584354459505347301905560627522195658774453985513828291554148071578590104140493362311171928769261451799213982568605991493062772692624916027119864436896685458017196466368125485605104603320355430951948418879550700697227118460161773769171983901811098814905024012325574124435662004510040720679064156939205163467854909031207009885110118362350369248564578269962436541622441818306359454106313465533485217550828977524338241305815087979903408050519455734449715115438887810128351648453638976614028111981251026965192887548065506499784501841502198778760148529348374071681435251553430297539246954622825822023075527756863065212961981378039084279162574009636987291278402833581411263237827904094515338555758842641424718091698258811345732992756801927610119778931904570416871835990504830424785352178916758320588890672914183236664745522118623741431850747173413908645663561665628796280118467231690854865902128101773501878925098045489126020085480107198605529884449557773027104864521396171738338434102950291288711049504509810245713907864015711873410748915324946908594933135933489476768261292892021294265226786942963032099002219895454315027788849826185127038616213884254580698806916654326919759706874766223545995456994992479374437513254845851278865179201018970868983478679190017141272620010863297812577388573080218334111215382106201272245133008141962811410352460249209436210880311635477679343806266337304668174931924476574202838748699178124699992165707645628136319703243706135953512990748436863324040163663503708444783114357930432202987963108042171922513860662383266498275217886485525867339444254530779248916451954107289292522553779759768029946632693417360109753394866331453757930376115818956471828458760914624669889584066983635252133617934225708070083818494982594532611086370011677113470239024818857429969511332532511623688671416661020851754765699015598485975693961680523149104031772499314539433476675055889490427395770773028807154981548429712707365932143143448122871729738560264652434949951006072806478832308409630821722038466590444540435967204193383957507091064320806539735465818174038123970945946246263528485344019124227195713759749933827830889604708182916190355531695490759975502485709743710870456010921568309699509052044549942630970791753109459139732235368222407184759005266083381278012721541887210807587668590982276240696018960691796773634901294321347087734426108053131601598385107052917449506217132603205868412252723735087287559061774905924182533212763910006345905787827929348077552743774038167624179187607574715588407803890081259821615495385614731920059925600875190245981388742888571497499707562942826020351704617423722353320509822737982756070292323642695657721270532882418563875057304859448878556428443992307751462335177754831287482581704889743563559079854915269810455618533575811770067615114046289595351470464067692025148538336675043081080052078659751614824802145739992378863544357068807566278804271536280382678353741076610747245707625441576595233795113036250201633104678666406667721261862374970545016167140087413807105638263186742985982922628609559035856297320058172384534906719946491123765375039215598035957709134397004178703491427099321134465888310392123948251870320815483662512147957746944811766554816733897744476919376831296137183213224601531768592877491857857578369337435419525942281960709346117064441549447573440647312307404064071232945476787688610096420646992514175336435062295492014502616541346603242129159587426673160313637037330055171927346996588924164783009730216110054085441024831820961457503226115053920173515699597318473301440612384076369545533499857150931630001791847174793783878869039277914615247610596706880233514293629585532346486496255917087565764640559958108985597634461523923955553333848755259737778720741550491885924613613182943444608985684022750544289339690897700598735899393894563483988922096047226964191016342438733146150278453285554891888710976982686934367321711504121000168591161300083212397312963764628642683562266924054192195830825819332197585600256240994448003107295212826295783206005590790144119769539959714528446460175571920934150411155142932968023366302494327312261580466317492300524095468066931734308483078596417728398215293278309494330468220667239368030248509884224701379131981474403790514380422397153340113386618443345981705934241661256077671534109135595172512776661422074100341420497865950046590099568933896232893313739912642094389890991110560445071099722992368662027338451379264824650536703336943287358477537731851062624853058993324635467195427391480418404137230403595548192482557684169245461539467235419054863409453383616653161880720077854484822883074750600663035399921620495817836135018882187156571707298517529366477752856379105152776000062628601646272096921271050855707735310512827658273565101265041146467806970211674658762531074791743893971188471625079132470779908072027952224482576204723539599054745238136317662033156422569490147816457967892149465529515461707184649945936486788525017452787448802776430259655228046175374831094034607852148021997100616367010749674219891111032361785535127331067425652202651625444374320409284359878116037026301315253995061942095655665677035208512697055261703749112304501797868383980111010954260292002513246372771903348733855357712062547158193322949072949294628790576097876653304968630404160722073617012669479041563940262645907814492291912854912450171753209408574244278933060510005947847944932079147450979060028944217724603818383732797729350659174845590589132220730954944661664234494853617683879444631179334769569192134641548516850932752295107859705571651012488327943160677049311722741082400965904594925153939493043183922782670365820795361599503339718817198106426242928159995841166115768950287748157381290888905500886901196194714226368553179157612063023621120724450253926717820348181311473563014756686053408653987089498917391357730029223802773451089754537536567543133106061092711491665246424097373042691643641331129946481638183255514586383029357483969048304199633992185623110511208214878394727982179801394417009707069642885934310312763739659469851646481575828303849278697672788593012336978826749116916747701045772842312015543958781270659132425480597120549475333897979399112950587312265641528987420973006514117356481205160548147422146646409758438843134239307743092623577742204916650093286630989242313143884108260087008943553651395971330602966290361037362809144772854680229484369616679063912045031007536083844127628573585495450402872946858659537396295154427414635983513245317594440957123973632273694067355355477638541888881139278493601771517146598295744055311844362614045311984426908450161801979418873025827280737374978641814139778241061306179615842329275918112063499472702104645641641711417297705843162931612392869538311422530364461589419080446451665453747434872226846703750585326315813258446338494759899899706173594354856903636494445341302986958015257696742217382609302125981832635808788869872331792232698561878261327332791155607168455599262239942696013562552201263151636078393797569135744684504744174796999505477399989218870554844198040301140383789104099292161636106048705976667793220710107764989241121181676587680998419056993464041679676530219660358166459907470578867358266383454581130435659192485664344024115517565572821308445760418643503343557039122592372850944315921860106230577714844073774343641490819668026359627478232569909226466935016577468372961945568507628767550165377936415473424505877971200589529255174560127230755963945420930664580458863787415120589136541887951100183931040255093040371119909048158830139984129242547933570860517200939749370742802933214490050660002368050912663920368949287339828029941487341841174437858133437429792644750446439613215568192063358779813143399841073562678868205800855205905676201260038769803614188373172505027628342514018572866784808689986469084267360124624117294958829604887943805961226870297121327134252414339441726579273832764891959150543072694269044531747236500847748742306282769968277530294863055303521169557168755037358524937696709933947671973610489503457268284970206745430509800153632655576025037503047191165349043598208149846836325168947862177219924996472428722657498928842622062196617020699559468207703541548781897721398035663141876085968993912622458247102216731784412545381139877953045010646262164512175338774078626459766897776780256813175882205114375221666139467700974207823895430466958016577668923266528125366759496560062401511006581076889676134968509106088319906214880208313027658825972637708593911500444215028980702908647739639940606092518206439626723743753434776542346026781478482322082903610970296395426597815063780842692187191519384699363436005346083093934987069127015350230441196653278017361727656858823919654987313531376296295438517141665589600643602162884168263142874094537816579134118943062337146726712398456845329322128409864462435260632648382632677588331630878740997763754111724870739495227676056991822575091218810027474439941583692283110429098194810230944885141096097403576365095378010645338018103666742057523386598447550802919227580461856038582385238839393418763920570962004330118042976624204748552633083412828491164987827425070944062865352594737713565519320172788284930426775283814735617203777578315597953917654501521599613401183113974931906889333160611870268640414842812239915033631463537108100561231237994299228191943990198265798065642038031710365038279219747118479679186640935088721833307814458690708662430318205956211716522801483866767556508721991570105199964696518164353538912106103754668096287368146200472799912313046623889914774109260632800229684997245986952323551351163571903424577335888654980341685371738209833606036716174373324275500820280574967788060107316647649599760595507492074849969124324258652899226554113603185255414458870160982281541088578879862074579191425816778086076798509486850594591103277587636175434420767773959418084341224841214236323257627753389705503661871396289978493815549932503467665372385403160342131846636825310998919763015464526748043243723449442388207180211882427495072381928611150260499225281617709018303669995386803149432941288481087393437410314450096651919677375145468981447256332641552972523426075627634612893085217308118853387564462404442652848837461606686986276738351607824656561573733981197550962201566274261990272451510277206566662013989966409102110086268211890385917278193316860459820143003191798074963601387212400705311855848811150180456343978683154554452708061042668042180520606808730387078009233535957002288735406523562036169354624203001970894566688940473145199018663055663404013677316127585025067558163132959664644765075234060796102680436551085664836260754312802107394946566353337793950169320174047375867356785830488674916960053517996703093013532855154744682842016955416683767492082025808398169545319328310139830294061314417047954214414996835657079155625383590449215127186981930908534619965062244624799459946405121127571749084412518076448329358260188745544141491496048049811710468542711122813568645567723428814911692779668480332414735965873011531458465721512946947447100039626388997602292510016942606517212708730758502487585260915111480417326395243000641275343519478378290025812184581116218001397249007620438966127544821135277462323664965772879814247368313555743448621378969398083198410231489471628420767178172074274366320871296039900974740023787340655591862035127294987709211443106294912964516955902159531960553181846526236097215215213812676726650681650005524440197483031328608260866090756743328878118600372779719832111985295504150955841591767550093110752324948189738825866260482257970725085760877728311164118023894033098068983427275827430999741994282077368029074344359976525523457737648109220314594767946397374748136954735457506887001590494615942431135785917326109875342003511584349574071480113289795127017543716035029580285077634870969024872255641813655011709763647146673964738939045314975911046827585637394001216593749024565035786429869132384095625634989089215055344729723478615512459042977726630428033312150807284406079693081874871073343894788941402323761678263731127113082012194227262637273891618157024402511307879103502759582435631586474727151417757873721285818482267762532892553896441664793621568592069582776997082380823628042668176125369263056080853871316706044852186757374719578342381303117252897439804123591174738794708404188787427244902882419090457852837025566517813881749019087349602238674584186060169847321479267541688796717456582578972766288978362928403635102201110606875686948939784697921405214498584811043624365958101250655250337457542972587050424295199890104183716227702833278509349786638672739329738973097879911134686781024032468355260853961205950693557353224472641113216918589308342232164868899555632341515537098540976165948827965695799724680673994954620857562342177097309363024455093186586639351702914101458114902494169213022033475338055888159062160068739546949090554014665056433181647126127952666816978897387891125557361339042378307691537551951395733737025783392069428074652449349522351196431397531253892291512388016290201139945824304148410950583657106154007416548739523505672677183539559477538272756168182186981427041394270534726001510353935578950005096471577429775216207405001023218255606209679216580911677085017089477091576577624781195972176143943710571824220472706013603393501524119163032916841697687345355916400739254930151247043191220918181732600072431329649243031767278695519704345812560481153762174635401316445547235396443871583949578610987025737327366265136340177233883954737417637010074503594053191174753281285545378327979223838707146634768901380842904347415292044585998025745515532995869668966232483246747493151042655947528813228635025224356466652089929212553078988681260349948615997869885450619099134122557105468010836303080275883476102310445361010200417240103309522888042834928315586370595163373071494965139202153466438829239530166547787173862929525614809515582262551629233114713038369719974006271930994678969210398556668206155706679405109738321910135694015096316266819748833051728216149191898672812769362619152548423663773696542121966350992132324267319869026673353879574086489544308914699627482206312977943433371882908846474986090155904106056664239456887394945004759230639646112662178501557763545789071144857206517613221621147259989529925053125268173272991149097703218855824645699770166421882067244028722134404234654684346396625817759191212901039573782315105392718409437063390629439964276579826317198637427461035935393457086422595998492642429017793124460332017648901928335200957828757773373373180884749315430776863008059990126990250102776666343079120657276287890641911992898211827315887989333901911000984466708918956379739679137608878896772037999461429303591520996567853282611448313499401871472491471423738327703832798009431901497542107747597233086690988764462198666576420880449130554793642602724915201869152302297630269147040024401002262877717691924232261760979505540824778930383386206351036969276154332623205737862362330580601082797409709894738139548872426038024182232252905992041443380035465921538067580531611262618965496075035934830705903846166535306226069706440056450744933349624191971833237355167983924568312984926379637189059222399990923686551315156881878302040049621318675640220086785287111531729279025474151311973348651719864487014927947989508557468951533264768668588584879521403088290592737893178367464285086455997499181200421216843718187585583057969546533376524157452236648402733503771254868255594992371082440561627594972878052270468163577896456277026945798746168686756258708690053642736093837624366745127353779613980276000266499904831981499296173660695902742346833876289461007240758269259024731143036060236565552516735172467351173785719121902665494713991338947554623766424716819360752039322155947993728005572712813014476262788324547254671471063888681615274225862940547827456547092931835204555500111076810930521219382135559966047576620885701541799471295633879448623041250673313877737624861052148049871943886832717023812929443026916241435117616610606160007223363222946483827918294449260403994316411092951294174786147120253457598511178264874076353858886953827655452436728363622212116732512644749594333550522648752419775626988939239311056655278164961642472033277051559653192985970374974852521475887264273224980714600658447013983362152957970585112098450252526269055385363261941200799895085816262404236354555674967572189269052205365100840206757549812726137075322201640144366757287108972307791353849884897761958153366168931777886356415576322562851487570614920181938994974612024633752137168110809703662090759867814351894945700054526820017703507379474890426521638956099951519966857314228739566821646094962180255621104088158960593887179406152329975108669245775145208161030602310031815219751994508535404924523142833164149416065431289983882422490561182166313377213006985392345891289776435114459571707519927540651498727016110064957702376014079283273624019395276126188342312643571860667265553967613754726232711891279644111094434541555306877371442295742677755142723832621663307473625810510840916830444502678060478884640412589124523037943878842343805931627648816094767115401015317338761923385665527126914143031038458779884250498842556895891279554033391229846372619735923438379124906978979266409362900005413661752017870166268987149421984159190556749576478958959656091150798209317768276166295849883551023451031162465125013854694963460280263567605287805150214163411266216727653292229689447181927084900542183523331791698582404476234070767397632394266351560602263027191824059898280758937281252791146678303401992678980956443663393044032392879904991969982078146368473848560740769142960368276754395361097091435251021209669220925016493731970107731128681692019728678681775119862926800045302483096698104524885003127473391937072544988037433940416232010416949840975132046646434459836402555744683228211369454772036111491777096852277501534233368493176353144221943018140950994954358550070876248543580988135028845967713754997995479221518896968638239021106577910119491639208094261627544403872079652167663741873795935998205639381593752505306595958395664275342341544875841025455057933710530443027937480106071516970225100031755663320231902826046317697544305973592589692466945719879530433549244488442298628070159919171417817302390248043092783723384329542532237493582426912497729614064940565151434140388935426624633077869032934739569843590140677493407624994021305920731081124214602799024769850582469463512547142143782837687474315713890262652613214654125930130172164062213665829194607499296710125846324758302534580991575373551350716026652821678736018956575829196679871981448182633725062002564319415785351716218570575027719967003972308806163440900057112558853980219791721122411218304929335005601996062202835407171246421929269320777677217007222478219606767315479231260865192491138541015352322076071401122640553549492016422182859288906946132887291729481185740538130901495042504593043585717555810434640638798482270989394967590761980785831940252783277900709140955907205095342905390890468729106701710879943568286820346445568037946328414812706649873067966576212582897199513527769307510562523820639674060620167383369000552478760461018654997064941344915905366721613920361310090718342514006618236895357844546064255042720574333172124093978839971088295425639885945450700130697758300965755654515901126111440344780330361150801590661159375395249088727226440123682946594450004913367281079692366935038362076951946176087479974402074531965878403104410249836800052056232565471962283193185632283047558400157625634815025819258951140791079505454457265151427454141996707931922230133618548071276718522277245360079516121228686075748099231804225737021141670742571900291637639717340757113164179277670068693233943948423585579759942658709049635506362653058194390120075512932799686922430661990163489756010303248294520581469774493490571264747100752020663319096457060381545382804275724747640287490864096267923724151739681126879766821132680350774808820063593060198513780155758152168989807380994073405883338962243184496381802194549491222251526503406058167186830504409532442866039158198396776653468851423001179586635990219059797748223827795594550076545886072417058599211094365024405224751652330076589696249315784273240884720551154565949311193440102951510791636896884524137908679132574904667736869337046183420480540588000178690178675287413942445312280692610427837968247036815325479417906401533951870802125298428128102854528745070306678881609723188292157432518744033133001710909978066359787382214543476826495106545628632488477352096439042333620524726749699382742650177830336097320440869174919799771247577031165802388026328438696455561413316172511339885487495555613423644280099659835750071844633990601850100953995957795222785271300205693887797806732830650370718267730636361046724264529434705229959151941106346320140103828765049743774107849890993089880593133674207655537949064496254792096628191901501843154081820554752397878414546135452221612454260181871790721897237911139764122482089825890641887347357236690403173027253844193145117504089555717584752348146718778397062833474035084149917192310586425113442380260186758190816424915859410033614042254596612410401996176891198355427342790646034043936639694874456850277859607865256149649809097050268615710714137917645464769703044316145072176385350728307901947140939747775223702869240343919968593240046069880535016154005454158049033905998282834555027417806878039544667778313371851387622375656476415580966315927666481969115795106244559025251394889744831420455264552219944624938251613216549038641633258161133529519254938217596851290786228449266128274404609314647081802335717407452963254845732092918163074976409813947185079582613234581842836407966164740359990567768797329295427354246279436885015838845668743476339688090835191506007000904481858830827338994332650730300260692491598031514487205339838676597205248114834220463791453081608812670899398829617748047157927869988944671537126362363910356130360927907411204640659139426364524313266227322993225664538612953303602731062916382238683228104901294902290227643450784456575822918163074288986382402882918161920812842108557064226331573092005772603882759372128236258654399089388243845598378688861126395120023420960299020734287371075812887224646796872942858076294581843215807434409914700144681974491977267983522178417828449128565658256249136879337669609766571062172375154991485428257226940390584020582365872136321083556243310063908238959298393172072982819189596612233825150503281261990425651222430921123485635714057572737866005708086048242139057846179482015651247507390830897936602160196146227901330201671265222364609429468155407296450460044336857495906946813533001970522283342253603394459195418651069133491306020848312113191642222552778777672446012088812592430046275026017384418499007848658674710712256769403454825237008875944702367802417694579456283364906566850240101484689124369223218133126335165216517105367057465534056751427236866008093533568263824023183852489205459903378724345219163529218055341335717583839064397629495775866512717503157157635505561723322173859222899671097383105296858806852082140311052947468316002777221671355859169707802904222059581312841639352594157107087510506714591401558696563418732810756604185762423614268004659359242275389782268965805368649530446008700257243902033455552779209947195394676526089483389048953338085852817182011365392260905587141592582016220841688701654168332187759941623875538431438183262383115992518556953356088997894100909497584670194269585589178762209336784838716298135658378697055553818696368226116472192771042396788820928810951813295243554584090909511745528221981024993382378251232800594709732362237895101133453527467723072254044880335342319948572780319669769390728809759919037788757947646119189930190932145748349419890964070322030697953972303846499505538798350330171228283659639050302709108230980476919071039337831552616497472478764628948479173400122311240122944229533631094107433027880097473881587581985782158220517157039489218124074406403255974744404810481804236709491457254467383898809427210619775402081947473374733025717463868194811376468705578297607428306226512896964353971645360034883580546292722703663184937837973434667956813089731019362593877101986276277835320699135790313390921352935253308872448813214798220912356430909604860378248574581169351252427590813592462859981026338035258733987934344880088382805679503118312040118078965956160928390500272485595710122357405738590753168943563530641769898361092492708256534466578269810070736453342316700935352913780071718635240065422846071420490798978374503611646098788518003065510116744899171482668997157255471023898999033421914047098344683681956483098215614115320027352006877206516163479338050817040368183896485358514210111373489932869402798219581366647772762701786209510785148814235840967101433203192849741201159888312118858669798158828705980801397750497041150402205994609391393115331096753992833924945104453252351784869897539758126214475918004886425961386570047974439959245532300854055701252012612421193522888363382848141326593044466597875757412106000270943825743647953973570534679079486674960269949366538043585376988977646102800652095924135841328366734464362826762177282757415160149447872363621392431149154510293459627739861077965471201544291283996275545434829148022531926975574724779729268208864214742405322682219771681109126823569770671692280191097423440847466791176301857880934464389756461587920153929997631014356574551789712401333597330437558127836075702783074463033734655775091048061007080608423232731321551990763429222837387674421396069887457151106574695826366784580536146189342218647339917255086755692858455917017263826217785823392870082235214301309445908587104777525550198704716865163296633974029330568424023646059047869977408499972520858664898226087709321750475061375720043475751837340744894074456182912959830546598750298072475817827296903393310943111936761939005715688979661624920766597888277246090889399182786429613116764133535092608550933065696802287662107555817516491762846245336227369113823045643203526060476785057276015165910332222465757962897702595315534576461975468031371277720495553658607822144242392777359785147022702550308660451259477599122536714316782520373687938260094629610732197893384109167828658884012504269852606266211400724929310370038774488069267235134767494017034102047723789178720935205204720086753999614483854482732655124394676421666534964891924746189016240851856867521098597163175692415795620935162559468003495248226942717336103299763780661606154484029986611370398748836688945190906784956221395703413483925804539183029085309299301769142338621880528849707176733445110119086055959324583499808780037190390902754171352891061008880005879759359136867465412867267193960483990858862593653087229257972135788649393349568136087737190120529497490901944859861205627114472485332372508218238128417426816468753931583677720531113593531210023696763671486030921303848474009255256065437636829180134318308116076392231930124644465550281317729289394311817702793216077778611956865325173396349296305049577570622809801469592054641864843401870635322663262537659189933481215965407354670377176343145944953464757218670133937841943119519603666119921948509435713622478650936688565499057327250496187870206082631399251202291078350362056233031689441054097492967309653741459707428744739516229380110855335291657311595009408908034602877495380669534519213851011424714965009258986989063042327681071652153176584965007557234875392892235998574109744607020888517733831439599425326059793879649110318466494598921185160452039453970599888662036500653946949824665530373461209368784436667173694241434997060574033303538760855573066562198553864211290160042852625439325214641091056890140146770620086992364663530660171961379032052301600713428829806617650172022017712903462687235344146753755042487635201972157980106070739000922432020683960565749235265451617665232939052362054123505464985226521740696774180063496695596013507964030626410766800021554942310001739088995894370388367374965460791672462185614009834470920611945026740139486878385549741558585098146786296919778834498642781086312183024818456321120697894426247338485365638317064657620404290133293915898539982419008884450575605214554985666866837333958517117196456923109204400506794810602596565876973238553478394650983660167077823207586831301546601209262700422497017755661871346832948010974996162517098686948104429179835278197798461245913664116495542007185025568311662232568731874600491264182352476740721507730220640668818919736734716219478669974159607018289730111268847702173075261298051710763031543301799935137063120518526734990205852046052092324699631799341227350410082766105360202319771056656282866569863587478178762522635345975007074647603844992565100636949094373486547230354387147317098683484320211807616025767819200966665735586130359444687178905265437070063790949801759551628919909959068717059384622929405066495591971718237939458813023480155698334715209697370743492714498386529162396895537921393035838447791909244425764533484540358012414681075176782455619842541160782330114381582070360888840846740395700067531818653716585469715147607550126430599276941702417889230068476711805113961012454618780211784580636480070714183801329378629458850721591197845711145333670315681991384399023589000632327981734255005188321672101254963597661952000639986998050911358946730048708945383483715931398058920303399003770555843277057852786318412989065803244066451812195999941009457309634205076813730031300804218466350362302037284251326598896106731143189492593860732709187877699631260192819532901679961061421207891342811475475899903888061029994562142630958976851761788318979540728432554122231062617155101950291970908697588191017252893686140066352204779523261269097945975293502727591036364230831283173751872373317078998037992967995087148387082897660580877103496764441537021826983680974130116060196672264979962277077033299419083024726795898629709934616120669398404024088243676194566266869837813355626518963179742551390095920139978493639056216348830590610103647833970067355468432232019198894232899825384260528336755757939816808817584785382154485352285793710426703827718398783970662934479060047354399347302644640801229981094706418566877064362119712891527370061058215152067614094953733598916374967654407941970014870121869637897270605891780887767756413622547655318085217508427076117588032593367814058981715626395818107213663286850472429250598056470833555329421564741377509293337632829206607549249972132332240471108922236355656990889875733132375280067484570936058459015806081422518484702803111936997331017089120618573055776576804785150735639592402746297755316284364930056597044327416137811419860916424703237019060374380076268480463070757518979010219292600162648422453289805213269094059557312058178650240498094866840303997963048758140006827392953883787878341797304651016059192374594493767363036147697646284702866324086357382193540517645339113332639348734513496856249216177694649995063937605358460487187836387920890775935446590733956638657455310651604441621938642240508006298108937190636717880191314406010179429852304874225653333176897997018261398107547320110985167553567507309524433805621666307174717146325501883765760190466943431239009510023790177669664125666081968539684371782673645306794906523570651611654229636620551927756254319274882220533918427378732203671460663139822701056879833060129202590304857335824359562581245388246525156425276204141434917771949547693598634495093206929421826755853772378006722187387744334817680060241095533279282948867852434947946065687234914945341275971615820150096166616795992676937563339645400762882396315432927857189657135558376350703719603299806421358248924039560128999056188143139020912216444945662706801268507239177033527308842225496037865987161905006958483357771321449548123377310764966430323025244054429827981512026098180483420500727445524515207544372875143664947291918192816477844812657890190440455993311868878613308895035478699834790971671099184413309551850668217359321177880692863805461105070753638968701900421381403712516937693818924558996022104377271892971021826369827447670897914879339836557548578396285580387549930888048404209641776554410739324372336872136599064248402347855697806547672952111429370852552198087298804329437619877006684964731002263243365720282699242115036428209271315188503583959209786958081059337847563722135405529657227864358509168107712547337396266462567931884337286616155636257906787834044888718254926633471787327170568578140040655333904379065830154382386903809754640529592746010351629870217459253596589427822454684820027292342278403341415548057149213728155905255095975803328298597225949537834858999739067732448865078984817264610016485116314552684377381230617312310840727924171610439316530715894578784442846393193133139365460672202743163582147519617892027916538486599676371861304934429009644729645432055039346401036422921790790444548686315755241960058528844413561335756752427314737272744691621570312623257287702397954692740013247424974200196361121430965051129733076742140910494975829806054025614063748542412511593640020038952948442076853081661793765992389734696510741393387688809762433227457060259397699075190083168819898324572038877281672881225078347020004422357864907474721848260322996043017049208505865118571905231890153170810833340062010099603271613418952172393911037456084670651737647702462191032234925156398068973508443137939248897793800088134743671098016180273202193740379359782449059918100341173074430427467032669578879784996080944977912167453141517668031975998386957770299811161005917915374343348038173800129243968221949016114901982053455027772922514514515542417682354728021724048406104119293151231802127038822397206904376305333066988061796320965297952044337409768386589018267965999592422281798814453261840616011726581935362336654106277417377454516983657285446403407218546546015452705793947967696733773021084310439048989832900052692794880823441660859150843183931661422727728970277946330429737259300998143818011632684778723346993179438954954229047993878106748339242445985624855560846613217261424630777909718062751181854720413215001030634295717320541095703092142218264465474442997432891304233785946054892371086668711308858962428005053689437208454856124936641246222275706014314908346293368209050284432373058227409756938449227978397987926990117250617544534488961683002406685030750420178386843877670872952030331101194579148350123466306512167512593105400812221568743390983893607509761448800521037732421826057397642149249328840044563195639100004004413857229011110448671216733966165677804907638680386969777020642932222805004395709880337081923624759242132998250974663782263636740658485271365135393980919201547789132930828938972022985168096182655412593351739524502024230067881566664783747621824929635722188530665514778695740524272356770260410405699969987179656154731051232481041669856210363579446368499902195424539813216649515350934603839962246020495756373464185923458764756172656820942813630105267395028198837539346046944834140990157387107895194148616107692054252930544356457729652987837888665945297832149726098047392669202439609743818385282142046146330863768957750157640468066421062342568342247498153116110585862590337336018332213155366726258201801210245196679510435456032182359668352045687983899684867570555123459351749942937460002309838488217095577816052204471750335784996763447683446528277927283529517707285728575549962703196270079740277328917921413951070685598216608476728639194141210614665868074092909395976282428311668777251815962983576757039083673854653621127367881319490988094964826171634091048336843487034618304040874434407950284098534543429906460885266620245632252023134944810569879131031643706892969505050149288145341336857898867173935107886437552909726782529919702018894487895673502462402397587598398890424295696674911618850393310182087068618415915317200823463113647053294845168452495032515400228071357100691340222952662770170826663152011045881905452524943240167132303174919877671856242591791268089485959653428279872994559617637200113124486022550666625726347503050169522920220333566753614761793946162305810171963553818357646708312249061168161494378078172407612724253480270489662904778502663471186382871638845198288922762044648859581255189842854259803668103898061085830079471084336703979007810324741059357555277466400589913189788698264905632124189123919375465085676227814917805970875833385108301320949191042420876529866965153137526486183073279106294899645702587238032334384748919569096771344164105598905568433270207761717037368906259746564423249190274840428693798417077233508071839490525576363777926027790313453711011217214552099148458513350769111750489423179175561009021622621526806520388556604670886309645557419576181850746968576118669866483290305639092073219273667276685008308365808288012595958068078846357177817930836473149532586856394972850869751289038958272631174375019334344972399532677882682074705651719682540332219993271343081218726408683617065856920954382906168434715246059858512514987146298250703958780873836426044262878702841086094717297719241350157596052148101818350326411601039964142553128729536711033542254299968533179186113787143777338657948179617297447975579249046992383952968506753097409497736423951225191260490407273941079315419645356848463940562536564193031215445756628026816694182192013515369476882503722392000805035721782602974075211889321462009521873319487417612627636190060013376605297197641221196102431076444540298673628137712897857261500403478935723607795887223346388121432720086700979101508148535878712726085513204486488403968135617445702225712413940363784463576984483582083842639729792050126847991315464797193520930039689519850336724966798524231035588507980950751982594561366641912402881155940219766286747759405243669013839019196682425945115727713300991996393033668334954033619415619224197019198871607575742951414809299075164450535834203776976490742815214039781852236399711815415863244512096582624051689615532242664246383091710905961860992271041568081564834133931981241906657040324732373398081380635909376278854882074144103306966471936744265013596526782987127673167802521738097977157829854149869080860596875973624174741954506615453049986282002780645046459816422643062718337289243450536352339905497464643197851238461852406798245643238877354524965282985987523753215793806917773449218181282258112782532973392712734660679151172496236883986986983503482043738663892827074538826298592520110405565533155558266260636161139987903546363797114334326861655704396765163921409193388581422628590722744780172842629316033350561709694041740567684722180086429651090658778537332362786411743323987828438267517117576415106172866445526781450887304169116675345506807809538458666726982572229009386602945119931569692933979048784429072980096810542467297259459471579233045023698684685191157488993609164170737773415279692463188138550766103672886990738803163492608559905192853926930343872927771295880890105508509249174330839309967419176829794051329653981356833451147058301487952606927596569785584893907328534574785793399177203306435448295831083482660496792398937144508379662462172837643927780747135676471875228457544553379184726642979202883239642253513457900851247730240125997067471741092953532055107165668782471683298251527660142575516110391832534105031644677288209893638135747959701599829047310875739595398495829553793795654016134215431065909753479852413643669896858470044818236141926392397844716995484625013595231106762548549902648558511929908816963131434499016421053279136262726225078058165776379819602127454852316611040720062073692371363507380324315544033046053958516643482782561797997148567353773355776547685280795611267627637435882982722472889668031027463309692896097039444534261426256115708076645372490569635015553206307326528430164230990692962939386178699000250948814063221982930361003357914387427123879353832424446664888889346488498641058800821694795020702883285239901966679685340754123222677546542219122613601250304319834681013874419895871963260560420602198501459295868732732296639445483716620915283524008343379874646501454449461426251997135785182751658300027597208029392627007166172653713232808535622658362959921746454507993961143027188231644190699686469475850979748813997664320077960405094694084613193313340981660224978104834186556696517905191928279973164167728611760954246437890364330853884702698936511054668582458250482673505771990644963905827023208967022552654716501102419667100730640581502370442919603814811444103465796307580478792277367434341032335478867931445144405993581411499680138535570064556995099729097948851773526879584848174875401964095418305035021125254024141415794549316436332733288519182716782047103095978928186950496980543750984666646886579492870354181220877958318103545530755974488321050201622826753418378325398694158629774110904789367383854360025201004214897800579850403063996094695811783200047630005298881619494711929617206961327063098882578553896753390554312142615601128418012927787129446092075855830832433699229301628392149321176539219203845192815607681143360816931448868964530076656700658748126573225006143924772088877603314168495707386627982069099047708687533540456368191253120101646368559369794798431501358371838986585306409782303886661864175220059414376699220749465838142586610961837702123033501467378410213891081268204445821407867423238652519775736088419900407291184256221459448601727393332914574464276437101915314787148537462638353398780624178037123390481478055532747912221981634505024220135951947075098942390687895101767571438756256789029238392421793387794858676180717267289544726211688636368408211478303211056345433867720684476025287933169185440526491288192660944813620129431483970747160189440947506085021985671796262558549113014418650754943476070931958296532149457522148196125663063302464389831487460580209991957687355518782644160212895888912409049002535971150763261673253690100638475734890187320885779944305360329356198953354541715813286401204362936368605528482003676723142579836746429487398204632643520026664292550429385368736972569635914925800802107352431258459724681468832509520397735965260335438664815524952493782127771532607805422974652931269360676377767132437045783039767627949071134095539100640830002616065646746064473982763679343902470188888886726332362186212678796103718939622707713599606675598473032644359248032573004710097839415893919498412073553636931942795989999950204502711834403391252103437327809839873846579983153886561071255630197406590411534244801441782965758368552618975231478379682194978177443031725720103708368266392336415909857304572386228301392399519169031490751605889956161502921599967732378512342945791616911586706009632299073904478073310810417928750729129021827107174621449790306148067638948781087664990806608202654468876581885887253162125396758111850943594217036742426812660266562789838148668802798667118243922350983764576123439706826765188791531167179946699235719308039991576266011266626449962892420145206503282309722854804143556919535828420635850732113019540942594163834263690084142381391514692466574769709089671442163541467106673846260641399873161189037804520677656339023000947022788437249068762563393699719024426051490201159528670469962360061403155525069388159561731976577426176209633201172362329544167022008505316206277613628310423626368315376723212455335108152219989593995414244766524075375815512661802294704480354361730037185266900479032943040259331228544055735285463245753950590322245433857579193217406266873822254313467371361163812905044156119900432582783465966299889557151721597008163015059679255653274893985259548373760971697418287294731531713629654702206767077412078514476680833931481433840081597788610226112970870644125120154634246691301779823991747599654135250473435884645900145300126686194185390088807199429794796340558001263550990548469962011089234298392023983960446598304807401596748444628647183104468692182174940663533564400052512806981941087745533614018226784060585634647735235382451027094578255526663298645071648856260458683079341500126198867911210635415630767672608898862466627049244716053175111079278865819371851740953967956424576476834435914458190162113259798011504746190840045736725334469213618542643052019718536814788483340639538268401083514182995902012062803888188582500654628396143448899208847701173833857400516430491698292407525581831868640101059860013549287232979608572864958752220188783352906564621878370741884614782541222532278299251350555891553996742823538359842041182842190561241462889740676320429479634990359775689040660697343653744614513205512377313904370382884314624885077766805280963452443163797470743858642835408523948470948234925842224697439091252604308919091559177276329936662812187958670207080623248164956202896703085298621651843528333693936482739293005179155851436365819452657516397127666495758910082293460177911559976659857322579424007406298156774663279435250759209181523334769605865724572434862889907576387588986309325267427246467370299395732578421591509269320507412685135043140707366590045394804287688463598173767531446646419327825575662176638087186644725286012132482803713878943104234786372533943609487503226130875576742328386829301733216438836250463819545627035110068854566437114277291052917233517517300094728917735361236474238333197808763636243138383625949290919159529094625283241494360510597228002833930554489206993990676035153371146807764293709448101000505757683474263054058363253459698842378030691485671593864215596293618233434378717020846806846784396379818903930641523006969329475134807576317329586566782899476431354948060651478113965342033841825171978453536645335449248541334770224334568226200805419420502898147124688419164061887038251818834419626039666636563802425719207847941746172759606276541447460506545186820695124327334536646686558907836419043537655299744886907572281971706788350724687566471659812671884475857837499564762246143194179917812293100015637791817204542583630379418590449569191952287950120226434748157295484137562518284485101876086800426743846823269397616286223969707350540666946613217634070829618951473974827897015253542188184483609275054110533710929572217978907654823232351067392469048053700875603029835883891328849945126756349588215302633101527818295679366599650650818937132094764474182543490654120067375931594831620159125466607801390810260970222869073458927379287940354361904824657862486002812526811899512968409015203049771381261932367035828043173997405393798521599538314041275241410972657975047130445585994840160187412331547150528594817506407443327441374498288319706637171339913386532033315441719703144382649526314740877988286392439320032405014559250054841149279328558795620942491307358127848910680944387714367615003797542660645852739209270583615928299818371859514327657755177716140567333781545509767286105216852436643631674797391894717169041578557374135260721434091617359030352749498238560011286054350065171007982025952272938242782321460645980414043887109095724409735203234599549142070614302959889444781806040283822018686043566667423110695230689915064035791458902709282609389168388271545791821834086596201816434064913187429449898272033615167932959675568554065457544689150518742105997581248179760113094930015476989982896331715448216601905825194096430853623958684716565749711940896200114228423759416810529132087588465213120102963689757344630997140396830398480074943802592280994373463505338406059224182400886238767611668445576622586255132448517874537641595960634657203327517081083637320166547944736023198210603534507473235094706081973534956387493853846159045094788870972304558875863731840483506598834609834137966313362248795215837805384449673253289163455733570465098611574110416275793625722681347373814835747530046651248545927199681663180777099238540812144768450973302576989423503711410115183692116032373708360146353014370911172958945770985084014048524794912751851418788514430495767775243525101074398520848420776924883985394108740782599181785800088407350714683464896735824779987735754282849974856874793065610347404625168681849285834843015248755362099518625594785362064103790898865466975631307971578584822758832670013549627650087425466991285991613365739896203305600510328170652787467680142606266904824369381378783366486481279110972879524450434027847123176167183030253692564375001594829818706604414685551500222707761590606164246426973463202385581095418181979316209798804096438634226527680070923394360246132207640943843359811258444787593957941184278069406364942045860608434198656691553250842658588919913320067795424730897869954944107944759632216480497038061994991241623209702897559273534748942576154176562610334021375317783283150310100962489101001510286767683611379344700279021860808777117380375651654322683525401801536882338805222544722246952483162245961204952214832635641846803097692788734285042932179978300875137556574295601406004271592013538101328594163209700325766235199609822093042997236192593729325826348203248668215319679945608378088686544461658588729495224884284158941736036939168972933939274888410934518236145226403041171309100216310003161307750508704615863660400331119103437450954543569875329722265067264947301167411812763030875516269948677094976907060746383709081641108515626440083522054767547414036747954872072042262793034821523585510995965165164334828084358316562495237811657022771212534103476329366983392793938042435465807492741128479275942725457086364581482924968017020463546765901714748555414687319504696369966182232389000202992032319070188615482552367425845431895519763798644417882072702533986583562247520606616468687781888746583722688066584698926138952895686682733328202300554501775636409297881354208536127641543771887908902124422715862528029545861774840899373056208427654283557973057016889206732234327175649261280837270442842656806084352701197119505578362785028915198767666533258149657581506232657465718619555062128482805098910437208385681050238344752710580419946571267809128562353706418538519931673993810161155398338925713186772693705741058306471530174641216356131490164182211923199588179031800681988805679203279026567380205589551460219057834147048893192317146040734328879341083029618378756301794745887781410088757415646181226130613318989875956807556201019361462438231067087925431663201124893423841314325754269601718997726148563141832747566529238273500712551047162858950918766003044041413837115140807973860298577026979864253643998826496208878274813692958259628920572880826961753388333785154742651109533867611202444878158052557407633414419457149415746730695177206164505102867503702092251975504302167465700031666091357124059857754770670348845836322337499298000759372509099865987055529490063263403562994578684134925349974133893065730713716490469138069337884401494733289980802105646483320465499220985888125146498167529789909351867408726239254893307449560707199058283871563921719951068139413027957349390284725905929490169467523744346165017162995191508154998796202856701831520330179537858916150184058225292329450125711954200342774847480181214662687759152533615960340611227403188997756288778910748347597483298404815318217144707479699645607922964963906587304057011373876020945401205846192171644801027957096006378060282353784983572365883383880982081362389876777439075474637908067900712459803404767280919387251634457767520616597544879892589417528240678300005791158831471297544253390132887490706877912271917275160990475767274062772295384954894793700627390849889417532288281334201896502050345938163388297317699622617060207018746037504938145765894422944420345970696766345996077517428865668365841422455831895022502721446025331049980931629489341997807458822927172463016934406983052253319635165469175220470033962678783938629364064848639082253081243274182032936178477903723316077490892597450252277393396172459145706221847236827226841193405287192814456154345132756037284511526152175187900535818690336297701248534762803179331865291800058137068148212114658689218519276279671971454571601259940061758199256169088456872096781676924399710569045610970894647136730178046723262912425631423834501698497028425867699422141002319517788615090738500671580763902643530452705341698222350927605265963920126792680847106819224577735869084155991613532325940238268560447723287037117430055131283744914225772622013096635323722663875410913754670180915985229893090683557034815502664096330847144782461730800628475465750636102404500776514882843324813079003355910000965867520547695950715601887444951571591079318680281959569126706155292718736809801660543288915672349369545946964541169711548359693078932073619506802890240102354727144399738991392988404790674132809013213941596869913543469805478588127756240856232757373907049089895070061279381528495909245724852391244432762946837145784157315963727607414799211324248643968754584507159011866513772054751852179402808085659298383330866809516608446307750248685356756662052116233502744177057643466026048212313235604011990908961744557777691954864590800975683531384015510869891043422005782129235331365902508909597534808500457485537649634748087799550802888635955095931463453151956334924376750159248737432572766559256934209041511425253461965926955931023313997006646802136996824723316155963753223572596958174631773714589791865206479263061284869696647970877100098453661563001196310815751803042658726598274907973126322133719487907339568510752506294833261759810026831011220533489413969132846767942190576617164972292357436109875358876523056177155646337630190862636577819428173336066987031021814399498994705307605726703609659112225326981660579855955074149245848989405072534181794333829496063842197962957703663856249270436363177124973101280114849380793250319820341683096599422513700802696890727009139610050971675541470399575604329490833382619961970076718512717578352271809468427959280436832570568529618967884219647230635699179898231285559863874582935573344394295664500903764646665599460196103468182888687429429650330079136033126080589885355081804828353677780750293284483210196553906111157423030309306555643588441749973113945387025203866308436506520665806801095632663493718189119787625957615669894730785437397348934375769710236593583102146824289015919908373596892910267341581840900609468976157950720283360345398122362514245871028375420799493563508471720042649376094863108411892732420064505802846587906208168420439629259593560941132748538541804378630009002547222275995269774334462966592934842247972545621119993289846537155412927259095291924697701613026354521743677426462893876317258347149088462720729955606130031009346208386255952626228421344783933915604202854549670944155568544435362794787031786073213210226873463912884541982471529034358015770088590988708185935847218945603609930366919508221725737014605274099569300505700134608272508303967075142220054578769627367904704410306183704324286017340910017305768085826890187317918761956785760015075388809939810779246463156552620234467849324966608561380061899691422087422827215555441452699276308968086341778072435760847878790226583728286745571260163249429411157617652712436328973600550627089318888648734856151662726403038746825805181770118201474516863535198011936033772854967650186771955814167533893919991373844383007694182033999155432500552062407508101865052117167135010562827032004607717759166697063538123261547807527142401596253867641053896204093547526876764092939649478594460308128463536646535051986624361018507147431938787229830398102114271961795659714452561635747995933187397279552807994633090659182266387446015672488122314792574490534200853909922742350670832712585973453156541771284061258994577458788241773237984504587764485240968819957090090797874512340413654202127043211545498933240285905318926616800124946837764575239437522828912369999098335377843357486520689288761677531311627940165648459114583769104426834436708996469053996748463391039353586061161481644281797430345784378190083755105044433311349834707205907297665801948963537978225384814052941510797806323232497948360382368902630473755600795099446862290909430503616037412555481875917508553574301655027141839589423126323380180857798838196728609611363679952529336380635123856747439481325235766383652987379794099769851881818757333014777753042563206221429975496132829937177773149555196348643340456221305065311956308769778536255321840819523455914674403029680714500320713779768975437464344734817427840235533857936942493803591136571833958811447055365783365903752170144882960287516119426643623878915277999710316849509133442325525566779995592881118137459253985136190024055524419137642385686385974271649064431576821306930301635649767257282100861996325892155011192185118762591960605345813991764061971344739617786687047038901013504350406215397905962606939848525584308432744684473879749905763269975121868009994500992911469585568905743427629252376546477326041033408808393834648332461125329429051833735230816536109896022371701461671487286122169469536665339368790193980576871414106659735232113912663792069944590294232139122599182321683355368823741637341567471293551058280290287986522180913206043325894783254664659883278103654883144173840215430693665276285169733547505762451006314723437421161035448643557384302408793744774562381919464220568374995642220656248545642542606143807014996287046391953315314259251347825160440676879845733710226629476172223783948849521101837401023009108781496359439460161688947119376641424724842928088045344625534867410619196622743267095651981488144520338021881462000843195236446970112902361158691389001937189500590880864228669095663864376039228484622368423253157217980721427064573272309961847889158345905946593076799248180655542790250372511842064303491451902814767746170022620402127188895741746845982437206446152552189722900669696631720963362340179013493374193852430585745409939316405878163065262170249321980817073021814647944665358930132942849182916354245581958675347443550124712271027874766741733116840652864869306832824305825757148015052216300797942352462987448139452949829568694851166115653586465457904900145411458858042995781165632414564096743526585419090644960035818187235795531419537843317521929346141873597047855008265245011047654165617717899548777047817045064611007404304464806491409965477431028242738219221999439889823712496828059362107167452346997469063035741905813055750801916880010403636916914871192524034296582316930098794439198655334585873026603289854366111894101055716075022961306177238491246520428032022561241375472823540062974675233214726378035174672087748443032680655526915132907479568810196213469715028462826489076934833059481761259151455881492527908838479711753630872695620687379555001649435643423540007632586379276151597499686895888749743890398424769317163284767451662521022190140282408474900780440926363771641157872655868641790274744722107838672590891853155975956109172666361706249401210046079206478641385854440592324802606099192132159086003587088493584394181150082064311577557142651020889549162943147276361579295014859870504310720889972453527414088008147797819867670594013749123172783101939983786647427813832848277474406532733688944088265414658207021585639287648747455721339860800819801522921488417552923717016258080253393886619765854935416043486374629141693656302745152842911409729624949287561182447117187062108924508550938131425076001431136232690283472058621884911127665546416685677765651079821209468479854556703448146254885044592799316559584191335612945218951416680739356715748092298982523237360631718180804016926379074340133872263049640612531578312479405556311823190869201681199656483212902647707707503234593762208847383208567009220294736642004268544018904103640437365546548712347862238082854437580479988397210944140029140892392188478862271351875742693227507740032178005349559136005737265020805352921914184291378704583008470460929474524063053141144887340259066632180330054306095838101964642075324699984624229029192967061885922378855117249823884679408934575015483565988276348778864922390511626693162266483508738655459332680354093061531080238565068183879297824430318938714985272865993218606954505679048963866896987851623037106258877456612505364412151915409567353250182127773362756607322686616761016120839639629764299145645921462162223616023530468939192244800534971438427187448419024288173028275233187952618629094116775835515429913962007489584456265674911713826136138693902757731479271243096192162916711478675554182133292990515823485053050728141084292963036552977172234236660976075581613151285231029284483652448914527722546173511553210976811138777011567912586113785921521012245529543103405399031368623686670101937916261084140879468567622267345365982444024290259598647962518114512476861586132247727591304410381928091491547021930307222612599306969447490446895665825340945148194837408364437826049854389266567237730883447830469318169596329813761295106568665648168159957553949948849063398274383555631794409989910212774686815465041445366642112807702257052185352284003507705683162771379031309135360814326625933827815636865717103242518731697364584321444476498738480572126123270360727062227253130147892419380593787335943433876802944846516321144608676794470524793193567342299092259524768836858139899570943799114533475883031032692318164500861647041347966177321443430217453777123742623081183611610177120189509350462496312476939639914968728173747482856763528008232311283792111650997804576607047628615773155102504479020067222190681123457175001151477086817669243795088362231181448124432362945844789535667740293689845143601644692780310001450126451607827044084867407422401025545534663754328482731685552718817513798193415718915251130723463788373285380154758823618748172843649608879897636279848855968608479249649787061530452860537883867402839039514443334367584160569065194830453628550165394870116821685289499427438386008870345286398891155069502709603473684835177428724227964973341295339324292881188023339110796782079700857062432007829467442233564207860135356402228899127494299528271026080587089298218379051510720114353416548391265735879968676247238157147941832386976540530587190434911094936673679708416859369675888030906365479721440484131635989198297869033271224914531641518752494490638014901763025677518729919582110535569390545047313219306445684070757097005471934228362083164716151007160260952858072783518767685947591903355511171448181917894233720191451260635879403428110357717284875438130207167726437596224132603445746846123032698084500658172830912947645649112663662418729544399511203155101272904665827683279899966692487032788650083560375458240086964301801787365164070265165815719633200535405305138087110896979898565647357790567323983254244228046016357125503050458581087758485625311220656249807751836496558036030136919892902970091318714998266976367629208788194543118668384488459901613630079900818182468445946838096179118355203026621859271828114601461677667241738931431627422433621109645793127502483834645690160562563956379142619068974774543181159261130661023903836865997957805637669473892024324095802484677855916883935086848752028361239413703007938827460863843009130950335309850175962558915584873791637789078066128016269744140155195965024330498084755718698834611269607388684026174993331368286674686020114859521559911787660972954673613646131599868509763263173454914835681211994241094441990602910209952481548584835996677906155109848834815450118372259153167638791340805006961065030713679074691777332980957372330729080613583764300500254133311867158018360464012657257648896856803069638888069243397989026495776425933129606920764422133345076755128170696909251271364470939325648667683507738019423067306036105120945490171270601000708074312692136113775609363826715162965852869700327964107322677025375001886074789767742778648699790433733373809534382577083419963913209787392519100855817985104654544119419576195352643489802395367152248268888836283814411026901254933409323407897214001677199180370272443194883566010459058540547579508988527741647846858516213498733155691553119157632621163591014938216572108626318935711224200649929451794126936774193469781795489302959445368865110446191392366910164102237402737611017340150215323003417863794625183742898185065232736904481554919151506036971064899784940409321536203765272291353639436846943288540736113727008372135254519448885862992728035292129615626393884011048339943916988529469574168094905773055748369498078202051368341825655519770664870221877180657650127513240262682714086294786276850602865306253286361318702742778438672344198935526233971597210989684363658613972105452144980249353224211320830413261944130176541527277459682537857184635796430683519775952390523860398161224723803320876402797534418127424163384648172526351464266542106833967527364608541108864748064998223835675796855335377628992750871658564756056828715633741968723515112918100193292987238274071795543122887851776655310074950546437420014961269889169554329986292973198202497820167695565440712371655126759847258091381915945807848421479152029515145377431057466438729809843596002676562050085147270955481361367749709485214023968671548636035790382626707558661036734013874472330667445654829242073013223599662929975644446903249737340374650389475958648703983162849656893535126609732530307053752679739978440700455139587115595897669276587660381145696807450221190897917613457166530758987859994357159543733758276724306939678483374008832066203197642028871140981307343722200090851577489877243463094890248035656585904264040663686803632631390848363190859616524086673108252317692883482478293096788084358182836984868534908267352852155271211171848647895408417193690471927679266174077082316811648798131080256055782551108594614839608006081577630037854228184808326010095201166736482724849796557510436594382880163882772216586364284907182403353819321671037151258389156961191959318378378710264496076316208017254703909856052491093467082098200228926310837548189486204689885318252017812524364285222050433201008592915327921869945727687361377948262589097636204834493161363751137059607869263698189628341622516313167046351825290743277233338303941342900629988953370118246579166754812044687067424636067782848298639547000720477492267676720904936150835001919887692565461723875672076978537082546912574977017670751544155262876176893070629282390590543654526627384965773018321895780438082895276463822681286352483715780233801721909580503462970429428694389641513845935674755143915711205623477075931280214471992115715685012398527782287839567476386889058698294143363939478263780445295031496232414559882079470008292747654477152413728584143921571417671485380335961215603816344595597498295224492571808752426968724486570765328086158276239481654212425104910265378497898562248638888398597159967626905302818032915039925456138739328137332607316231199039988153207527090122601013843381029874088638256887873096363173790085134710462002951801393527996328242068639265994311419644794321822099750009656988787439148431346024526451158751463347089368200150644795079074587320270611177118133029227186214198078779383494275850604227458542328008598914857625736216013878079482058911713964452727055229661129865051211386000838613120550391392460408475927561014276244325066417249521267714640348867829435753651679654161776108338684703641540486206356397081888988754100078376199118051166774793348610302000144963196983897570396437680194060761321624883725255363037924422539038613037473345969798719177391879963293707932477980077391614119501774289690727189482055926592191814864766257489789432707272307946797894483553274780115748559217353430414086833331608887552870403515266358150156585784096062508973479561919442931125345024501508597986747690265489416575963004503502515794829610441190325552032530652159122910813532753803029330752962818974784629514006858464974502738523620201420502515884853453717012330364122418270976276827990139969320320339352814544517414902995116798122203017043802609681208214113745879689337030764044454863467257141712914320744548614646420757739335151342588159356581254751157701141005987219639316621546249330649441199692447074831803662529383660725577539533403239811034086070020852611944027930237610815013644348353329390920279959185484315899587969063183063554180183571866430527641535322891685194901009675602703156292134320911278186643066520522718790620885060656256148999929984001486375792594113167104662740029752726155885178075339040492308284614107020162577697471648583896343172727164347803362404654820193299003643365268569161890926947286268643460609321978621145838121027647889042207671296701240141152525710843126482286780420423454050066666267230139676051158046130272538135659233176285706344511456592922587077238722692713546759259310432522670059377281634234994736108520698551174259942571062371639701901224221005987192690273544997766332425441610799148240801781398920795160005880248696298052319892809682582025238704903826209875653904521611886947691393385286049361203824690868251584469583128175532462876106782332854031759488729918531770547018540789343609265905155910222832227126046933367277050911248788574633351523902690643494447606054176410002074937161160259110535317298146396683741105240720168483892559028848113418712367639637964050161913205849167118140115907060471002555722424966604290894340360594530343440155002037041666807407294042038031424522554805035814725804744121510558844326939541433850245649333058133704183382242575197292803925883779913517551841640992249673143152680595064250970319910300246680421715471095142473754861973752713713735739457318947638217867661997505966718591487013123733227725808476685166473760180450390990214265283144152630424922496295014239403488470517869132692350633346905555395443650134094340433833411502712377360106901034709120261673348136250970257833161487303074593136007946873895911894385791201057825403247171411082058665252128567415047251067177459838124391106351823058827018957687825369913030540859789272536483518579269239221227175653205225924245740709899167650591897502365467028088793766266284391103459533788023629668180519701663590398488247653439274535141191011623219288876816291390209382446400390798246813440575939350980480354078135777247681366246966938626779675193705492896935076787094864302707451459484672414127549856928101875758486361493778521824128155984170051873071426441295279550213384975173803634234566747410738345368671111993885559972632060986083762970093383751083335520939836446992458841135738590267426466917186376702107258751959967369599073311740737840382463891224869627271625542546770719243004969970038089436389876868661978290835929346710383356228717701384798496221434344871339689775307129200089088813537429799440959319498924709705512965446378209326009406401726117937214618056602729474740110237713819963257348188238627491969391788567081539056502977477998633903116889931663714165916383897195741445246264036801001699950770143408449825703981040603619358897221368601435769392376063971369888236562165002611403105982927902402505704979578451500742252785838255340490896088444501394432499128589479950319198227428399960550805994218422508670877372538169184658452134578293345362270986814489285267841306223334223497934803702319491290347433080949937598934124224917784541279622647655199927697261306320788566686257063385891343418855392180531460441869070956253586385170739791616270696733684109457897595163633768196055731996757576568380734097574116568303648549356633235380850081796331473540693746805992457890959065841638658173503969029440915423383978547989447998168463423581775001989039834157549574659114974265783898549004756026658622467250221431733531147864640376997164348214155144382040118256355245648333951947748477830899724108235991664789403163110097300766937636271900797742067950650950753974574274840231943603734625555093610250140433210738645204385459604898850135419398287070958343704362064320328856451857747451040511390748953977152495041744550169205656912817572490159514019073287055285951542436086406020140125388908156095788236306181846298925158014643548954572571332526161421489284750020534738586156909501303847966726058917334489342301614104571439698040139818870135218414953169593844674875430608803535278060460568537157432976652008603643420563864579238880067153775794251716137410567754233914771006310598357272260095657575735995774130694043475609867420784879827644359103451086936026999567386235465650846029671946812108678180452417223602252574268058177186489568263389633335833518456129716149216272027621255473941153959051891258495047179845486837866292893416589887814288780984011927112971198410313483221788965614301981004042015693149739665350415880969410708731161982717963786753811173479334733899443104941008183870246584421833144687932086591945054739796532353224452187800847819318247327063836575006155399728335655281299739940504784698977884995489901704067690914016804135915986678671047003143000640502101550043033311724694708058981839369121780045071730475601921795701302234371176480151713469796086676504712707074208835608846978192308398280058709102595064529783814065812066312703868426590344837390959590023252423604010294019492833766784993035745679069264706122032898715820963989498163035804166279533713087727268171146196617585213718648933679264324098844677311705773678866976147538705779393340334891321172106246472797965606405323922076979905270670237636683789516429402846614519074628320718214247584455803494360863718113566400645346552276228427406786901768857521738870767721377389248639343215526053394848027863826302977043682195972342629195497256607807805483414137116904441619449239017650205643417087591811649146597744217951702757403108688654848595525612893375495090424003406310165993102541989616583366352699785867430235976460379007733036617508085168686704008779487651751195115913748521867109054146402393916331639431465799272855886105195540589725886222906784027420120488928361874224195169546694453781676608468866122419791655270032673708460085313017857837839026401529620392450129751989491348098148584251300469603825698886777174596229384368010334248269448049212369834756690721579476417224066194045419524259999319285381336115385567324277616237625322604994358028543124243246527724478247587409667339356120912100124396328627136549506288357709489486849795084724784644997758229124514992007559965166492570881335547211624942984704642765759320009428345177060990996017403704920364692093289915021349330902515068304923700584311343507951376372183824153644774424721025534803852868314643877385308613964801157880201634091673632827120767829304190508504094433886885356841450808051993518814770165832940106014477987626562202688642183282512468488167522693907898142193590004844506578064431557728524207710397003446552485525458343723240236517250332585046612707649129461836583448453821507212779359672925823652985547952684240050481118497298681755533329757513704172999355080332764054270197192097141656850146436103051530562182816226030538449560626638011242848712545744980282341671475171146102743473223871979364943640532993372053742473065931432295247794114398709056101403127395250688223105899504621228527238378765780635218702335343192746405361978697170346339322415248183926858374873222451766003293496515869881574364580729318430507276469451174246097304472168179628323951204101455828956542406516376736799026533927055732654545639239249834814305543150168937063467801691074224635144217310304450262959465480083687696956708805894045594220253877376300246014033880248512954160160184392423326100517080866712994297807798404515058347270781363988001659622851905803220726960199755284358100415907419670498773556124957877368322801452966087699689770675319185840719116310378907578315078775608552360819789275327601863524196230204221960919623187968821347917569082611745477219632957852179874216648017018093900674953040566239877809636743049893918752343957736453672389572264170918248803057779284837147065685906861172771849876916069496231684854407711092155121610892555355822513863100612359148705304398644209887732425953876822844540386072983032935409871267004266656599780796861657632158622029049831662178486375824218016275528546647249276562315784202654821686381142351515553451457177269774483313142843487553972590483099960335928581514977833605303233034082628986599860287446826439369764432530386500309225791357277840323783810240543503083212545015314587120924401212969158160739026704803004721415704547634552017579475105976333251337312075185684415999397809006333366654747342272024321371157792250227472259371859942369418478540694483966980264803423528343505645849272006943565372643701556725111270776373937224624995029447961056637053913160176640502210271783805993418379410090410427945389424946199813981302622206854714279746817281159804150014897686303726599515590786584049823187235396393899216252799884772059606308135064659237196121948741328212131050372601871212655491382968663940848647359378096430270044366387808555427075864348411286701023552327065264780749191549225073408961281685927680745580045129443733671972871909076335393446104297213850114529754833066897026849477864084176914008701809319988288036798401644660336180754266430450113284527639242050045806316127368391085932324751434731037842831739112643062731338358666083248702195695432847346438966486481510448795399420748088441098923358480426426575918225925141653380351100580901486385600875823992297727054221390403829778368256089318149563042545095606315976999432154732389294393786224308164415356802914768201912373998628738591771507818116022079957302276151334605740020064283449219762767967905825624934498756055661284033382529663055417535918544588143134400437790948383416495056007723796443220787001698289260115110201488184678581147424411996254882388161046399450168995097726917747050214193919455394494238027901566813199751559976670305523021657289597975335703197381076358938527995223320788628889750830201504517753158252721900413647755120462379122409279644952058110875068047529471951708958768243765822932678077220600764617354929872760996643667110058553412138754232436718728988629941372030883537658049292986153214042368980294001495551388915234748834086613236910381388575526631798399863772801273732802675599675057088535575495426777919677231601821133940912752154781331473768609673643461063402635541638106608190062252443358062119310687964807319554390019554982982556184204590499665854635050564678269591496722056176742231996879702768245548109388185646099315075525003644516484560744425574301044749212942120950710942040559198018381847780403766857584973237866172621883200911498077567225622769799934001487860822254487668064197563225124489812571022043468701937248651086256996502031182297124191884875235621320698811596640534487798025493599481284787958168605477288212741524807364314256627922466256169159508902995098197091019042123306430797879859604524367563615242575162723657144613887537594819855357125604067654970129150126077536831113934353053384519726754456803654538947405133962919795447021676543518067797947275793714814038824235812951123945566434947970584118204339834298741751395676188198474751173838873529745798990893643688614011804719548689667521698998400399771586402072634939150723857129820187588495246880455076153429493050151130891736214607117109148617824417376980454184761400534211067933016894600782853850541288548008888894025033741796887968827665812022127954313356481481386140816179565252328827842011386915416878303743537882568506016074655503957072461655600893098565127351661802259085551528916918044179711209742378731059060371099232737671640120518955742838298731401829333956919156332966360075449255578836148350763751151788483567970878107911960744724391518938467625405826871681280036720910689923835270678503994751776652561540830380829132710850423465331996389645450272220681922104158080668926821737011440905530930668381484548265468688746198325085434758770628710990222038761978572660554831417562158955771066525769586103549035134445138659686814017670860626630607796785913029234966386647835300363939266462704480062204372964740481453110448279004126286610564015713902329021956273021088179398156228372900445567246261224104364911036520461405851545425806334995002167148117496320049998668781252620250492788252073781105725159029730681373735165581503718257239978596095172348125179695115189890443275600208764699707046875949260987590481399007248355025938718800508371718833115229029213356239822955081285265090691148407636671187613507360004912737964960040228455311941567231823122445825381170466023296039231301874936022082392406975138643416499612883009028728164787947203954213430846477049463442127626050798747150092811098960267397832677929967137815146800432302738368466539139079491766360362388433833827389246492171567840763433555297378328035615034894862880462846883693502508080267026784871085632430457239200784042342016139408378331384330097355675259712427984264892791418291301022167035983311336839888729384362894147894031886931299383641522457098712912868387406757342393944766602010831873448967987164876494447697670676098970826177651597262580429210343954236025813688844455996275153531887334659854787479146065769595461517366801153008060915812432388768379517265223578329988261327747374098805716998147157242632962275278901249481495658148880532729415187677050360947236339954005565625442382819248531155174821058935313580820212240651781347879422979065428656714571054517192888796003254142717122569715423391492871333690566155284163071398574713897009635880685543600040540368498614861845889848620585020482567602502006596793357682749134287412232534070166079961454604838617335634737439599944935115964988554010679900166930423258795368540239740397399198546119717646185135052643742067099510447093998292758265216584963623908730749945371474683215656856059987035751333113986300249275189779536272077416798967262534751102049954582102661484889421877520625896126932780292754557073257132031900081231113066847428691781014134443425801892357653790798292449911147534183916058226478356497512249422553254984667334758856074511680953216738646996652062201320875453744122843662280177104028537523580915859103656270852148384821459206092906924556570149096031709694980304009155436244209571261451755189701972390506962032847816509434213298966501060993068138027020700199196030257498095765329694618114171175997676309200188951837855602472392212489747108152515605964647519130267695086278849301745363476129154750603407519752342281253606572252050388624705391546273028439308157074213289316458009141776761850433487666813058866240654812861846168452272162721804588391963735776220912513244278333360820719992353826498336947666348357947055705551832441976052843016356563581513597233756752630642163507105920017790393952107758896131491055213187158349690082140994060732790146934147728722447804411719242129955768393422292034647338775380973121987100153314594533164679060115058335988841192742372799916376632343832516251907544434403875859690894080431055490691269417636227848240082114392756055577242972395411838902564504144267266257007944121691927434932792709507403123793667906452118590818450660103592174288340676692053814549209205719558224327348860297996554855933858468256129919513351052312078638385386760682538057908443179134233402514662344681243040300110385184948275034400616654786612775114782664831978292216782528137543932283080144004930876196094250149134198571714390287758030202123758633464119071079546859211106043576177447547891771546243842754604030860927707150632726124507693213193474316370798822180857527181542008633718848585086098833822012941979925658620832589338123096167835330160367570147927708735420710203338068747015710638193241147691196903146940870230922642802199849924923493088347147871779248337505766155592965614911977033383319578294476511229141526032809152062979620395525692933111537504650802686455057270082293306588113406728602077318324854083708513119921929604702100804133269914095879489427213978007710978355536904917438992379713339706251557727436375775852674432093537921035822400298299316357309848548001873728761405648605155297375294160890694282247993540796927429815261739318389763725135551393795913157203190742847102837705660810303981592972019254053500280174345577723903331734861797237900633158477557955284019170357606373457353860582615921986948309377331023707534734958161168479071743324652903383167389230436606174388494312345238919334504376160731492639233544372663867122823622539253510651278564474485292875815089596830529346250114773347519242348261824343905606579541362814669553090819487617233237026709103211816409831975969419579210131026434950172175990271612019608722680007830322970014302295198007697690826930840052658671116068802210145272989593677304713728340066732514447442368196407026080458542060761114883222839694363232999254010840793117201386383384336642039401703809858155531735082142386271263156692936920367564326754870571000020370642299083984650702073775851771480296035041433523279078141220124032258183335828641111164762626942495575310279688786673587754753144467123801443032416180550718615819681329763988528524291648828668933969874269602817453634787112649514803444167345694723585103195119100386515838270768767079224152885832672885045804102770167330620330592599708506101449374390381460275138388502199082980596867011932556894942261957560569477538549361093518078794754347872586740365128785854867432620663966392728314821526115852619311463925873509135096873509824905933230661767054659252561613662106454263267192018061690492753394184146762361787024764483109616790674803488194362001394863158382357053406888819701039146610274591182661235606669564035630973491755360557659204309744392915777286463755013254844083257214415868262208115879887754656537110427507425830568219758279269031258414517702561069534764334291252281486260725468407618180956767268921755439444041563289032462908578698106604184804379885214442852256265190471221601461024427307922065062283678265572650492029918938322177443063126153476292629315668030394704909738220964038024944733771116641293669926531577649983189146225803456976448787402878202246777949401110911844958675948899885762506330403095969901614653565531767545757843487648401815845332092733007030014087575271622818530531615250861399493794517072181988530439357497459126856375001634778826928143227344473832275271213279812801173941301199690816767637438203067476128837537237982185714195987063073857205235322171485730817975578450390730832506319012100735787263885203687307243942177560160896497252865120519110634153853381794409922748820332514502938558746156469680604705949312105792920278205549705648403398830840329952329795936517235854178526924087304944487208650878938702417192944788165044941875328734338979556275202936906695151428464444935418345711544491915645893866146295925857630366351423491651665187091377676982242342434730319163903920173548138137350680065075909399164793023208069860402780422387721193581774821107694930575958833618607922508152101379987756683761188607559999541227425741668149009923376876283365103420042632418177209454776591208407689589417747760576159811228562473367111445416305970435531728011539790386781380732250729035882525020958213179121610103850147537373641312313835100348458811998117245203417399039783446561232005422281788961529948180449657621698656327313721089490067571259040039169645922354505319742504397918056274911828782566329186664476291847887660780061506958450158807872793208699957104567643221212738758527768885666898682709032802568890488597320870059813878717814359033892140934368672428021425118515226154978836414904104970876849100176505348559928813892835617201040419363012258672672574965363602514110987212044408698813106606817504864133839861700828650704289566065486590176201600359767809688592586497655565563656993836099258127356237390001379551840663834210065083063353358800933646341372619952403634534873204821143734406314555615501130045228786708049780483236535774973183659078390718960076875032734407276005147124762667373226304655672068770772498046286673039330954952427509522130847538914079996787540481681902931317709643719942990449523225217047054628972560824652435661652199246175599674725620840438343251496369993751917560332370733816550294368435950503706936223330004568589519659167395925133223255747290979328974793139009911137428664412562541747482318515760943340870786066470393262815301832976258176438807422131063506678245339253445023924095455403366384228221533171945208536068266223682385982165233391119454356246925575749663890732969529910016950979311061308439764983448751591579262254851976356354236726889899933813412464087787439748038783080300201764534038964679076854484827712090407290147504357393778689574314750664392981065114700272540842892087350698968063261778059078401217393781956672038066775254378454841218611495387630266693209089049935963433051619224550067959243215743645774192702260023555584742882125281293390209225788310929149907666425747077785848080771778661827844633948197403509145782991424464440103869484911485864477593343782280429825518238167496176979303824023898034584866864552544816582377234554650053243652774333775920418803723341471148489125129676131943094083658189739585341716649162745717920633126666894249065592599823184568976538798714930367099175489065983393087442058819323083622689350432527554076936644201323346250453690282222828335908262801456326276038251224845124447397625137137520788223807509509324600854893598304569404139310896651924180351840501677117613964513290074159054185868889307818961461955540302730863006834282349645219908884365006369858491649597869327324987339973502479196008149805233371662448938320567739476736573056890359895909829640663827118761637316640305340997702498468965962526698788019615994189735965962859784000473448129401716675879964470052450799162283296609650911354224381300105766209979117376902305667676904512303266049574409333003511037642558500310568667651163826292384962644684383644534650964141066813496876416366714140448736309413456375232320179794242183208803347806002684671094126922078028260852073808740188964746974264652194160426726475244415289612631121473857573406017408890641898646325386641164339285956696542787629880029288079042618113630175462695647361759541961858600689590861624334799975524942542818685251808488969690886924855463571546939742362609952809083891493433105011201971095381350802201212334503913837776568398202410991855945592229095945526060289700742073048747923199138643320517766775047933468900908086894177452505817894344897019208121037158644128167922290320000157917977283801923097711901801766614370809157353458453714054429074755639725626727126149896660184347127039581799161886300365528925292214913294535952275395668610733887260486489773296169182398737729571673801240885494454001504301084741556314806003153801266607510385379812978333261049991484554580560194127387735628376169316540314151614466025041243095241530434876038601862008512038482108530473370762017774638033140208366269548833783968988051191672409146137713780661559990978927581029115900144487358184910408930011892013600137154431468208095882022500275544408376817115902603585622169524853862780925919848380964988944508220706524468984351672248281211210772848105913275374483958362869026031432611209020762931905310450455900484563377421244073805036761086143256197280372799073910017519968394871594393858851684909928561594168327341672800317005672590744499683604467283045129769699665240844162049757817857634082810840855139609595164552080502864534090300304420800710737087589784015153307454947272752142704628784824867306857922290644975128985216111657668016746228876331617397071646344233607041254274383901713439473412547483142880622695653277101612393476873116185582422970611246412010534940771178451582155389846116228583478377688894573335890957749729415066332717368805583029280163209584910296921181757108037135344012475702450834392674736028856579096117545855769375064067642018264887049728797951718816769322344413042194370905718165755355255273625373033537609145987163909094449622772070921631400157108323314697153561444472567446846937086617638757338052057428254441228757428593628948089068182705793871576885426306979717849835458118234205362817585908394357658940801727084212247229089977117946631167356670882780140078838220120391024872452469034733888964695622849901422066295465696494141230392970823524823140791338725176280671196399510227347961040719723567086108258445139950413367909370472202084693584442225538150405927592568263442092178202818021731273742060333085171347839594208853414686804300117191228178975993873152802696698266581481602581030413349337137883155085058249478025629752637480951443793457569236333200142992138584775851622582691044972887293748716466627647127773513343051287249284835195492934925137140171364722351292671686428862940292539910810392157737861663291059084730119619399880953410844941565671216987068857376204423217336000068771195026087583303844995949026698821458938534047299345055178395158679732447576403908597477506568620426390138908692694264182701593464692502835411941603455958364648483892148271709110560481403422475887904306309268232844991014821408029543206624282238868637068199713383038723199986715447414728756507784250514656442254123627544961955111462992811999416428255284941468935857708921028111179435071100645723424355604601860798723997579610634984313603441369059478636659921256685721633237834642593333458026416761809855795782334266874730141523141451810179429496156646863025966535049815940626837352843170563226250978660592652921196053149714947035500127092080518780843404093224468398584711667040313604217383768467947395996734203302732970650399674351547733604900605261360676391183524409893221324571129422285011736136287843950483268812543308185787945424302325225729856467890419881394493545435539899139423151214279973220912796286205359240286711244412408438300216858930579441732810032023987808376181978009149181595557819243726170178071121447929621086392881165739334810379700058743230799143977775096273230445515556974357652871263540900587970516678337968484730334946522922938629621149084700783019293471631863349153309207696800096437877164424764556492717883973912168887275801657766353820280281194611913418637699391537841009807791410659827490891345720250240785283954376363080757828220544634580453704696286093967340291650893836218989720909808284092245545941086008189342266703976772784690021152496834175343909363916220598888388133630812648911063137445492426700496632548811700031949305479637158796460050463807536565881218974292572562101189172396906166150522502920206191257977318868945657762470732401750935493974180389147898925882063671675554787781896607453130113105588373487571312425235171959069620836870129147222321755274323319130948063534786062489883011729433056981864118894636567806118721489464381408125772330524859664698295541633095013633119415809852225732216309951343298247461227269497542082150308801149872838124406529756303912637759110360814729370310337083426858090349038211950381902153965389558951988089348138058412559684056068105513508963846294592779051378849996392390866696106827997575384254423603935156625309548872875269929185821611846085962208903245766763541445612531035953219822976109759111388320549132810547382020116841993303039503385484402138843078633840328194139164969520918625693188962517615519747126138658332928126468824871329208352542525263278667533546355254408311644132331760111494801733524887101336723746630365272272850140241097869165081509286568960808298239290375939485817644618232948070057808897768682401975007386757335556169859157963496636498792753056373167603068572024612133216242189043920265417338981246886560813276337505102625601465335940357244061580735632307552211688368683806580067591210108016577427921765424073799120951337538778491910262478475698928561332353232225822642835194060189166738676326661851397523380702066763147728705587064751885404290050321540857607932889296812109283017648763183292861638409622076500516050940150313386883988410345634375342635559336826097760220438537379771101870103036301090631841360713891088204299975316068016518942296811408572315600174930535364101805638369297651526907330982648785169823612996873869673628210751930019978265943050423652883397908809998193809868799274592881026233325028687072565868009954929849462989711997623157644919429352861357390394441400589028432126765742169674498034404866959570480201345779587035012079035056321944778591151664449511206425305643792417528247991462133699696476682389229095200505408248844954159478913433595854146006067632352584727210489421980401827886208200854564426751397695484649821445301077666355943242041273194191518267286225506534753761173368266219677510752303811170069870503235695765427683316156122518194305940234375434574995042327465439095240890092207724149091819590480885487917166694018458724590569945193475994120154373599683721737273298701578996920847887261173247509452794466228036039884504179899127301961182136234216599857142451717986928484753550085787718243106195655148541324651633565155287392647284731444617351273548017806471315346448682896282501900822371154926518100341277103927016034911632717863953088094149480696653307526649296039655229837905545955726965601937686136010024576354482980676708972504519686426213988760878241645644262604812842509224473873121768300983535911704539899092432272257751928935377696756988222412742367379366041050541886410421818565347784879895659632116038750450094140386640924737850580442700239306761603284015823899319157364098576727815500855988192947136022093535394782676122968568113719405572942449195868296595116430605309382393123106806882122542943090446795413901211644553772665177721023333287728862952203951755599236611187398825151172872708508929438831266906350486902343219681047882127221114078678688154034011358402959380973309242043813997035488548260491445325477159106056923669631653737545234889374977491797748911938717717902448190852492204200635371817468284733437170774540698454276622913158328860021018810580770240843173465461786119665869933076278540117317775603745056118298174504218421071667240125919885667512218987404429870275971635219529033325276193720891912551622671337015543183998417323958023818520560672431001402168421995359131592625772572157334976227840795213146473602709050320581530228386968040376257251031006098906894869602536147904016339829595475559024353265519507984317300680355736376856528332075949271922331610967018842322479223214571456867461355750466651785229597870893239389733442159709747527036469896482354434921406022220498608493719563371800556066687796830015649577164712772651409840396125393027907176132039792032173176338655690117422420327951266712356477719242283176648089524219272818961107798914186912101379330551792304513994678867064708999218635217810934304755391522843946734107600649179944226204244284697138092013726668956650130748000886190833117980714980344079947044116907263161675717217513046016666171112543912700263940892742056919609015181520892730544950010563618030018554806544349374448329779420037540215663512977685926432730759333765953656971914193212285274047863730176361363604411479317661183919392686833069424260981367893394205342063663543338212763584157563624544340361793998963902133322459546539992582175409025534533533743246799560286722267900584493386740137737057579561773603923809534995810099679862333040086507651006421826694590236494697061725985431244799237448256201461617554359211339947464661957823520367655130674478710395786673778332978527352720589157907718140142102672419339234258848468736082331160710107032608053509723865166508288767066101536125785307477094694133732443098040326271021789769743376024421828464391168749376008529785103921444216558969165111581203195554958567589940284277301542877104507648273832200178373084701921556366887182239226201293028525123631208084237570227926656327647661283872820925966668080595974670512327421797928328478661147870540231892039182676709562281138492441392594077821378912388104038233058816821676999143403995595240406640732642000236521108810944068125707506760819733770904995559410629025103218318051200305184739937582539196813258756934062388763784064468314103961054074090621553498467553339084443941354242815693008821530624444740910362730028123823585497961770386900278275917361546150431628995816122069096490595722682121438769605503151486716211428887353194260286327246048384620477348922694364695906438144364072357419828252255812444245045541383633275749945123893939797326072921890311852858290740718031338247832898019838919942493556769521238927414892061571330028869647973160191721745165956275660313691462791398506451543230803216032379560532089021665851024540660253378897175111125839592453760038499613274727099183128015568970056570334000628323161877514130398268910518990229234174570869847206020652195538317986686515363864184779422162701146391073958083605730886722207057377859364483472649693809910551518621356104518830012123200108795290728032163169444368400958987261123864615681804955390990074803430210904061507919228073932055680113763149625269824254045469906000712491392217396595187680856329329448385037860878196490141080954010958545019276677071578742934272911306970917048141150494041077206582335560730293037471399602958297873687875819668113863407401500766701515140355512178123881862638161058920821946653818038627159870116446684732621362568716323131929831043723244449674596709415308093999080911046264607338802876179775882831686815086921825375590494140995200281475064671196866008101375896296978440856506912882123086803726464056772362858151834732288264020981128713478329602841434775899637517721085646191483335457476697339510599230995743631815251126968467107659055401919290101668627896459234287165463047456093995903415326721285579685955927793140707054325562669441665984235277536934737126106211750189295257378363639841240154226301427280077791604113534781137410921964735507314708834057410649717223986765819860097790279326956575988900910234658827619838625807977415220482267376653984736987529913454304240614990867440352982622943976156119137664647626293289819276793499449202927796643715778198801677165270850844382527994758652935620354546808840561772093674497777889781060893479538560684300865965267844763002052418964948240890688219621010034576652693283249658989268313545042794822423606478679611318402264162159435315744173998586959657730687638834153332813842694075059640531687310524854966672995598061111000961635948859038378709647152336908246028040206807712065209218395541189862957239161643153474425457688392168715541745599048971865277512548514204813795352462430121443176561676808374282383042449058894011747061286101003338846604322772227290640724270148775641329673459941866813174623593221691713515450170603846372777611069296634386603363239827095048641892151599410335390141791821742847288224873551821892671038846833939615087823942095470058787019323083378155802018539584089694747023995425764324318136365989716343447511291688415259324585939793772762113259341134584987817259927931131132728845987687262498823959047936522449115901416948425559280625516201936909636963732611658133141773952327970799112823169552557081684860818169025992691473587123797629457147568130612791171773007975927392334020299398696371687593088103841488730700631654870762556101496609149657852010196452199164777515726123259281665818073280010278306604174576566482748479239810024086808417259338360730678992854641972436127446956218496517043046888789239401910007448698235538568079055673494160482697393848199842233508053223329359849306914913841934686182410477953728844086701632913369101735760650437545836268220039152937911186452800522512706309832231855653920920713725085885124556642497332407312095133566290532318084875621270203974204130096881853345900768438863832270225924712153310423243993354518036442839091945291833880126046406669750255056630960121967301333874057682524490427512811411758513913751110571559249244541543092571128671892067760978064491956772352371045159278386837841876078156939184250570530312046184421022896420102494722757050942690544466805270168181185166737322297102240226425647913194169539299296219565105862253678240742811396644205128129398923658726792056283307130659729905247001534690642132549012392882322765303066413492427762891679303738357065071602060954163203697574907918382519074419186978971363193130068341506158461837800585295129806367606284060531999010030716959387154514769034772827455615922036714421607191494475103869538555131152965656125392248171926077422038531517819206107979224159624445326535669245205645519984008228758039566391418007789870668796422101863614268519624829689825440947870324543931671506005582074038646845691650685930943624414985616280381981076289364732865994353564285310542433271144863904563565634574419428677049798085420414803373866995100425843502204816793449750865168672626186345054354033669363680883481854050569863917557204512310992600735977978963457191478191772488696143735454124148115562093917838023456962162335730054336622108321640572494114600804249575247006098721264227067686794731902343153466891474919672099664150752276115369993497572079925374379180571576547647786105973830608153971865539735359439143993468137672966089365437170624576525020106273219311577341476904922734997150159792408957239853418470656543759385775756919908392739537242190159876963917086358989716603532329738167810530695955907356065716793810358061143370568209089654925738658488940298078666387768471045132735848775161345485842834510528724128368415154882121968868767084179358809261944383395505557161346057068660997890734743747964790049121171734599142383650724269209094512586764701893058147464170127336791271847789073772508942395936591075452886330351995516298350618388978319261697780956888948143122124000553981924212735710723501248232255986542185597947197777207036301448852532968539592876464483750923703206884968566078464034778933916021756490429171602920054522611237396769838485968921780744328767140776392617716863120879466837009503581730436492337295698179594728475041268445799557877818237597813019820693602569905249734590010912586215922349194393771646158392418015851590876916766573521846279607536893368052746961118913461012028999883662411255895011611414475507654620864572934123371002134109273253258257277927512956642022588461426059283384193679975803752115169870116636361576090955128076002184727581304389187349667952886527431203533348343126696480259996060768714354364714477017061976165774265158126872276421404699409260116421196073424061470966662801852662859868419296836868725755860903357884107699972323845001487293084184087575480798052385031246639257064214769164464197358303188657958736323986013281118022223386073503701243200103619023902893268097820975361452996911522584933161891071065824535530565428554647236631975199720691949758547675526877923100032207635159610033794207658430253492593872797910452407875737069730667745040737509075293322029444392181372033976376241779342135533776171042597690850487004190560511947936516446570867015748742086261672921502529758632844584985045839782637622388585418071296991296572076908975506762223268669583591160718936217312345270065771833918561886295957646118995427373370032022682839457239389056414617946986518976898398971974466443258920852533004556609903999695640375705386719563502836270837305305693157668467156870680366553081555916351098818027488893315532963420884934052741147582656278126236016646669211736453088483907149157684231281532790769832251341387393806437370449160767370805268194286106085418623590612918895724748392638852376457901387720490080937230869825510001465204975041672172538718488730754084212781582526410666202028092912077735789617521228625058666767057906265887523491136458186584740459761389938909488899529367414093225842418499147622933449961343535165960374969369758267911600687253786087633400835312245094360901028212189341761512311795530729590716441711447207451465762603028402031652388624294107549323240219857013198262988336984204523010519725814163415143007940978482085027530420113314964969444316013023904626538824120980222377556562856042993191534830533552932530189700507044011352344997129557426546319301320430023777271214530472816904467151977338504725218692063572804318879313436461042786874450953803192435624827750770993255410446246848472944818974799219964416568446257828148137927793332475634955473561704134894706760521020094870462999314453709034077127534495596378415184665013307618428914028675492631307382957790734803400772141824338544312292445775534468294748802694825637597876341025413535226884175094553169213275022079356253552488390249392273416692553484114860748851738042048797565020561864775814606148274828711128287141803737084759598997106245045188975226357052322160489292965146927279684323698782835626971583881235724397201721540487892670417873006938100549727861949524841022429600510163020043661315853786115668505138941607385221471120695167893932888459029017980407328802265070576324576136304004179994574088505343871874716122624495085559778079583112200162703175113136155819575311845546500667822172680477889994633412286710694075714443900593961551466603881272720859230032157128896490130916316016523169524080629574299043524160036661231583430263941774255907865168748088325921721624175097804575498043292942940318336454941550962639602389214399063269854929995895238345544227927369010984541551455359341352509299261677425203760211897845002437273965726184354025451432983618493080449332581267641425082391246392354044751086455041767965779464699098180603615315197488484473758143716053237873314861180717112301131421718353076901701361347632149360611315075682588688193471009524527777690663441173838213299341096999322099100036508863639361317342437582400732417171672461259426080013379459041831372638971753492472364369198253124836630931177563866477509397040168168640604747011437990523717343973053294741269309157901472562643266376029024350777496828628850737876079808685349064077061195467662819024187647413748798568373449340777068332175685061858268466193380837941893086914902918205458362391109115091301156021398198425506472580465229400097727233696456328167921737815092282699772410520026510510852900220031300768500914514265129529288080063257626032746672236692394859020703021057372003216572919947613681500884036985801609680101912988670294081475859948468996311072096991742091217774215021370594922476499474860563170561794622181390345652275487257273133612239575821853322683148941269495971531214755284034556489897048616600870659280455728870172446483877766535829203927135146133300186913669198428846574279858494294994248814327485734240947091240719768814020196922432008061717190431681787258924668181825100395120232119073504787707815227729959361946830201109358925504833316087919612213430146094043857570961376567720240855708203297012522362866631457010650469898374804717185825724285685591358029090871915847172848083347159934612795592174594868987768820077222734008560898330288499863845757048684097566098614703727052080075949815310255357945981980421506223843495194454132457503513005705181983198776767466121644557048353416041456093448610305790387716589134790061530239392605141413647321713235905810380687651607136722062070414196033190516706996602698210042883575469924939105899400002726266060648973028230836750734125902749351930854882454596364914171693486389845074682523347600084028764573911365623445241978963015003339839208526752559076933102209051131190736557032591239453842472802675747993232935432069286086897923747260061958145469902099916038858995705538242958414692502620593989710574673809678650772967576291580301750499332513052262978360056190723285839973796697895354226899097273344980798404838285735807993378984928887414945898051877844201649717422687116346127602716834331346010735456284462497323545842279721890539642009825586619931250764032863754686561238546262721755952377613563447257334104213470763732390767281004283840056415721661389067167168534063850786942280448477358064110083854666082667506864306575044441696023026886654401572837141813668331928809149873512813361003519634094358541283222216664291701321915472605884970899455224190936554139927913385597082996115353590688509142161553776568682376082504814232724517544553413199569553941480163343721829703569726993090405137550841110751488031785790569448067359826156023018510635600193798754545540154772502373416234661855904158758695517177784064773052817065923059872981530904539769812899728599309258501154593037563710671955742146451741142201712954950648977019033559693473685100099586824709784521861797120377802466816890845636126210946200924447366769211280122738214895037603971372679871066687979394850786192829932619999942991250517507567574905968608913278876310634693772192101126934178473101119706500359868175600726293977700260227003618805701865909830338345421654080933099220787139939461196846762737404475102229804811660095251380094929997877352071834279894455607618609011839287399944168946684754201736701938159431361618175672288429065940198665661197429774121515793067598744398280675825769914569328581299479949173411881282641696222697424355326647561674535719321793329123387031461424147609647088536676811100139337801455582638411997701593141407475269956662938232286241767413895517558075713100207232640231399144010937563075963570635476824232813598370363890002110807587943228998192435648900891041858854706066482196576944061974313541019536029682628276575473026050133949583810159839788352397869999691899353317737283964772524194133010314922444625350069083081801972362674155864627374896302950136866301708128235993919976565326057443524543832963726731100952074158770177270563296161050800362342593700473041722352086386873058597835399968425460659112337822929734662135428657774495080575182903758217499296708561864074939080899975183189602261287774637240390040702837471333563687323217240984373496717412537639481342528095393110386703097932859644792130723892745018804581821553467302143111225531725034817846024787583143183007050430239006247012434487747855553929407487439239845371992579666360864719923712520760718037487572459530452752077235276632402761851095813681980235805427962252009565987464524245101540756264247627061248594914773774018931199825369152420056070539940570964944572541919071241729330772296377607817418454106986930103712172878162865123601269889849684088090903324162071442171641650897855966762707644935709680925204288878674665907395927229576073539052265803605910379217958819200372163866261865009017489352912005494199181860524869676212284930184577455403690958486677429645681345054676886510888914855782590193815159146812274205343288533394786951494990225611605917924565812697027484247286909328377000629671994967013461148746294916601377152867175286536776154491410057772348365024487056266253690472855727988959711578686622336658846885423177257984641833324564474241835521423493804382443412337955827891139630814711114920367958117156284670777948388453842158031044644347161789627826471172866863362341868836166643972297767407260270254568534771914977144819205589482594454713850816428964533912293881742772783070641012163755626249736884533881942887720699576521399202291572537078827753366730747277085409759798050441212752703916236413152174210094727163168849474167660885714830179114336353059348340682501975665688672947940882632907422628840553121683272373997795176352286228655740502993262089446592583395965801948375998376780859606498195579986573397373597849286026757459385658030670081223646684131217808040244095308496145375981535944620632025515568680078981310332518343855589653255530770349479323660669244511910308552652270944204595534696691865734682452056453396541276258331592888659011759034434520192723692156214172450493281119921950480445657249005661777908012357485682490205324699632421343028769657809775667796680244938811865513161523417410252221981663865077239505535884920738101262584014978940109336819353936910457142868796228027172383083716598346325931684918858889636276314701600063674404289250163760790271155830137697342018130068352476205726392962944631835334266407496873573742695283807432600990950466529616560803752526236025970967463941146640561960920584960201301492787911160417082247153817116922800852579677014157137576843171115894327145274186127021134934925856284680380229012517527281319355450600256220218953591214426291197327302639230482718662859767109280823724822969699958675291074354747965637710454182233747447137004863289612439466635959578658031729602232601881212965196332012881586476342161004468836992427033489292669686308475135562048362833216460156851383545837785297625139681758318201858778805812170067860633786644099236185062524675871364118517511173922566141096342168305780917500074060218888148320690274580269274543468949676300450111586405889166239081573927525807224489739879569880934161681089017229719581463249599664480442033576051740121580400716794722392586834557075621731993141350226728666595062718003665415684768891762954107681091871413594179674751854451829318488717098464842692134786027172322208777727204075977549552871912316230703641589431128681367383856276070018077411119945692579271857046208165841153194966273017134431307655434922690002687128168924883738079402750668982149562372982421845515860685614856741215665277570723308593616756608843414414219635853303485839532899447227461455971179495394402702764028466857403013349783580190484801434544070107796439507723418843705766651819534293828778264959069736907638960877035946038413776497425365955077998587174616963334445343657702820581724688913955211608851714711923847889607609520647465630471905169805247187032531642625725357732137270977493124706509303558583909514681837854451518419548147749009702922826016014644244933429539197706764418543361480269495427787526353068873735789882796998880421500693523494033548995679999520029763344005342690247348203738339057935491143502533830632165003889898827822687420653294940869262670003443277447318579309474211005140184851115587934493040194359873733363710255503334416022376863839087013330072036267737884558000238532113254316014952605667608087859852393048084722502003701252007294607499750077484204425527207082098448616182594850180193295562074997260788656281991254142202806472083888614450963680080227456556652454205149765248226377521949326216093665220365885714534500261010546079999691277054829255799868800115028264387381387324861057436565984119196226169912572365039224695059762440643386419870638926162296776252161723121035446173999513152389490050194698863873048625726746550023326123257805443196837675819147777859442616898879840512111237107618737136754077206622347063922301055978171070440326623318321280617964770001534149907179289624550410201048746706919025658699086038620241914242047388592753811864153853540967292061938841695373918104776968133042765521339109976874689601890455312677381104644044752990518721841588152271377201143993917716728259993419638168509977609314145376539845222377272968315916817856395420083658124766294302938090844252177457290815263287459223879171895916522730156995361427547749238023535339682573523572498166173789560255440809950152052081824413947437573847523756830075090354365167778496434731099416047707553647656359948757865525853514260030345806556107694522918015092929904110334529278390663677976364830769950659672078287065555805071113787316140907672781618308389840702984169470222924377388980145057333451646459896058384760661788625417258817637047227421675779620146311651978695197257535207504663383504169813025563517821014938321721586957886085903220484268545194537081288084662449276440484339229918003364677462771781518171883435604487168086963952077052662335783021941925336505949843837696998385146384671495662249297426919619940806711915682735201013147313600433384642932140755098854209796662764075957087839908187163665318190641765133113928364416516967735715712845522487395190398905689312367571659059757924780861488050823441519865614913769406052486778888838215261713189061119455089843651163429769191222076691507246868713703240441980572243772014496974492022699113599514690085778363680379865124747628511952191723190423339529455699626476816324948956086454939259637452385368389311973779028339305611179485768574848065217418899631123821834138788804149475117123105498285521394091141430514627789084253294025865613228437832351046253915096144275617933431129834889984390221927313252438733371036159932635339539733376855283801593663797911573412449443560570421838805061389894655465905263936763844482708007298152796924140650014893107558705280947016123548391606742660867408921166529681598543309378633977949808367803801568819951787197926076405292026956824596691341308884724544941064559926053534726318650190728559386360153437722676619886572454127175121985001212048398376552206413347539266876117244858916062806060899169883402960550151124629083453648727368729280707181357242368559833572793992879033838650817604437538636739803081414595201631093041609006890706557961272068548438282610521206275451199797419546205490697246914494080194462637565132559129377952575342212205156796334490027679190963639644320049690239122809646289277834735279112600584837521080713935082855313681546822632147481194388992311029026381377144307208501169930536881694557113392025074091930675572186515983339350546376438348877308494120785547723218775867016469673501150005367272959424699968658758102491590656712555282015810958343371777669697055979924474107703866601043625593406992158051670108817913925000802977425333533728108313424479114531817597507751580228397379113244501844028028153895586939910905332325755182425937698741796087194872574830331114510153624784876502613672629243645128454192388809854886026084646716330957644996246697038982783242898883519055581314164552923403503220473889113997362301968854807408540561729557976679227698750984036573774319348539505261176025083971237673309382020007227090452806034788465014940226740288079878774953530380937735366876229804781135222495221524950854999409638081179450754685376254805817689899396539660171602186609684524681191216914993291814310629730706817442652864794336467669512312582650551787034805501892998521030275751541829943492719540294188164360928814224349418911078555597551226757844648225371069653764142597595198988900937471253773052940145203299301776929294678737667671119332536338630736941452554917357663556540970625233598395897332392955759906987091709357285697258234403895230288135656671713093352559589881620288079816034818727573594250890655943712276131765075123348386071861400886804734248078464753927283797930372240731706939642177968725730088271416237418427159648294223008425970754092799722165149805894370149428694332262737267381093488085654901304377755197578989664423266179342880758596949953420407991493551879072444759028949071976733272516504151850421912824213533237230054125812874449662261382523399459723359433728476651806795313530722970779972668933268423616516264709718713997370467156275560254802218344386494280726364628678470976798444108511588179510492942446527479000384667168187744632306358611202735672097449214199809815843591893273400186077543519920227781635771568653668601537656960908170979361531487820125866646363781989267800060382999180146820436014769951777736845708280736667266571355437608111775211186136195604609328472102109513883437127471386713547200724917679310583895066947030946785233378824905603334227866117891288652221913666613803213509667872416270466176061421655107940664504822685692088606248137630823917499444768302651400819628415748406953849360992139431288633042335142951579454732200264479475327351688729285232071312450541018448413266467207247172705743433022818109823447825982597682449601678938065073027427182752753817887998537809388014353785054575723962912956676025514054100608113092097521903729318377025266150031716298034490995923872034757044857493466946712336820287274941304936853865208566923232951991453012577325773012166821248926109420479109451644257730876944222094389524971646540544053431903650412070228996512932114346514210448742791755317700025677144815815953704837524877447855369792848415793342296998895131017646004367971575217378823060491621332319816464126415128963129729878836507715134109761606779633053844368537845081868302746697102609638037672998776604313457863988666368423260458945867080578056525163470415914518844106375828422030479249256510397334612545966412804406206455750639219935947996425819701832540942658241759411543798106006277111776934504275194376835222588080809006871222913343501120460152320148147817089667639086835595960749970772199248771894846382473926023450598856842678847953227153193719536526461525168768345191744086411195966603943365330382614756033174714523055544009983554273858870033820893901281122609635287670289107192049637143450240372050491837095026877731295710973683662103514836032293402955727204762818174042144309945764725454936912356097984167492585311793848677466332461640806158023774990527862067851569149213578510136097514387184147528943707217284622273415547606703152920894374266461970089113935031097812966983532400844262103429529680227982308486098400228491591365783911513389335629209630395273283581223768837888743535264711458249835663407523168395052266794659549904462714057054640369801863493951428737896414694245967472070481699783057617069829781332726653587496969700485444798594372531838993157073258546619635899954810916061226343046519122526890859607972826016950839569678305445308308255121689944293279956923106463988374992201431882027590131853041556881007859485435010837570875652287534058552053580909715672131294768779046437325876812905060693192049142760574099248699209571356412356344344832539852871781596345779606947645977434102946416922618647409120702365065999516663331978612128473244774682733589026922120810331747323998754207429931132701345077740167904720788245385943670685770518804159298298111629445204380215156043986168501815239358136128531911079234035651548279077218118402435559220186350143270078972627219593095725843953727679237615500455903721590151838307714377652295902433726088447461690169576140850447348506417787538573719093285172388052632667246470068324073244100267166472406945470736797898008105282704221169689111775214878372167714605808116846528077406771727668402933845071392106152037797172132562124246853351923098539719443115388525214663436018157436207815567021148523716929548669911879436850304455283348980621772482231341058789854276359009690495051421993332298274056992440081994350633825869030087673325296400259366588714270635817890165313236606314935983277711509391136070413822812535992131640454339273683346605045591642048340420338182973502607410831413956269045090805857193510865185898137502272605336672050342358941589959327537832335756098804520575572252219749359789652924399901716849853851839688585600237364136209999521666923322926379532845751009879433974939759709554424137179880629881006504019772445529793710263654072466204303417751750218433517221487632493109408129181642598037380574398334314708350126020163460217628562685470270212519895527138219714090812074731113093989787395022039133497036326942365692400978559177270268867908506345864218867183691603485342261972697234816227561143555538799841059560198064147732201708075685670170662561854813103168026400942176651906827217100099283539511135232091583629321393055827065916414765588126542136824748044883679540866982654750504571629433424328863396653238146281852720161486879407082260194087574808790060090247658247621242068626520436074928553001955935300078167791523753242674993046396053642591312368685211556578447597284949377252792822586628817501981997944864284271962251089488723278005733161428608524574093879916975603839796065366668739682629987824167126268988767704323502308778436299778169015252457956148107869757116951430006452488010137770351296673700076223307335815068574846579817776413187322520254319396748160114590679678272226230307232911815848591849850760157325619005109800748355362894981148464066125078422819361226799549322386554081812945941123050447533237299633551651960183818832687206888146543297486826765233078675102538764505574087191281168651702341783044974669411879616801291487832750412115553192679717133823403577116395551257897259274479263868875054387174381864826304703496613647133055437884539646851053946682484336115620792524274802042265089827474355395858937368073315013789829994128439697296560060004701567521062898079079163111567674484546913404195274279278900103688332793501339157610091134356695675707049117725339377212210486134539052755700344185254023918808536128399332193115638368378829328775687545394748350885934625322491791171828425726189668298710092614352700443876469266897949344519471899318236336197859204871694608437849381146109917655892577911241016047553717674316361297261081959454961472447731029037423901986446641052737287023377780595717961721045728487284941829775661442491012077450471081767990524253909116041260529218031919949984042566075771442724722911698673526815241626943376032468736710975393890374215834676823175783683603649649966069235291611072354835240313131035774354938478887943541310641654500348946743001512252375716513351507731288855176193335985090195620222102815614259655583682641412160652487737929408958398842873164356519122730253836729426605789059028397963743684466930770407148778969500983872627180008281319196122770354447456301406922414604461510613645640500040749258400035960522190434476909504575146795214712161840828538917865198746834114895333886245220796988044944288013632352539157648395528691158247648906703017986641938405683210930118946919294744282750405401189592011911378371735692941929892537001603358740882260083875694301807901678946744606035696880165335203395073172294032486108752932801997345434931376386569684435387697008349076997799658840173022988352779796256376856674074898441243129635075981245992106354840076269511234160639800598586422429413094238961660086506544483078258294417118121265368750569350499267190160669000463008447206512598160586009408323966310877023746743631756828229935255500983904942062473917575779252893876665082465519963325244896454862443159389681677290954661263588114408343974143878479716826798619139199060712555176888548958779150772191140897687824508226099694869887315069979379607760664756579632491823767854311778205447431179450405483848557104811978938859855617216138339983459104963116860837928196909366703048325075044743170317778994076792506535795127364694785659836584724157079986717346086050963142193727334358654037999090911615044194468924397560318609214133716972756826880307419171167403995387268980666753691482680955594324645947701989299531882039914143541809539944959835476394575934569934461282410280575220002352977747028429854130824481251300065591924003875025161030485173821854246157213696292073333370567660229035071743202603067168818986652652242058933688774440306132302868773050905219018954402930250473650508254082209714934724433684111302970304528903268164792917196659264433516838157985278616320780358127882835437706182936644291350627693584133381937526401934380450428642960845323845940184167334859513284097633977363332695842692974617954019934128432332141237740576205120032117807116085966010746953654478931201389545094434135989175094584796676224284972072216297700750847128015568671023174166815980684596103085707074061059898942057168341792823660741834158158699690201385108926378389576532100093688363264237918968421507989989057350766046443758303474922207327939383649975565053301331325325387866107089009426916544455786804387307776404934088127239017442614457459641217673263201194707661779523592655904364375444762184560717778243344115967678730046992229013658627461517960170209233141974451243607617674607699414218399674463323760278529887191358152523873102919004994741370371443866702382648274879976367522893818691583781538366169907176572246738891781388999795696281356522277537901966738636274470984939765375149743313707752013296791478520863460351852408674848803062132307734893366607354805987915033124422897849388945908327365110419147774802999364670664977191534427571575311260569709648611417842127252804313137544631252118981434080386587311181243753468447138447344576162838705949796315644162857985505014905445558327903276940373606514086882431424330260386328680969666204338492789553217201604718175230842727640738487027357106450619022368956669882345862451071251576912046980244427198766371815211756449993067626937456207789396034574059085892830943597679025369843661910662242412603541587950883956944910923395794014271316288627641505895711201904327218530997539681857456983989495712544020886224959263959484602135393626076970498199880981386003089977841406407118926661892599200662737546109009395711720705183269001447962484208259575419270561329090480682744612008260041002986889901364715306249364569303758129272344324136575928922365452967538015005840568717280342725138475049429693716978713953216263271613246011286072132887950486991095053567342878269688857891351873844507963851336283825703649395361842656446283977471145432392147778426081841818582236647930065145450845583008945131842732408960897025221312458900780669127269566325713297400296691354283492113826190847463977090529076026601874858486038148862162600967009879664972987561984978378403172451611057725245656070193051681193993630750292570824959775572982000609953359989835601807695960789776996805884321139964181457378612754821756650068172184743124726923716622263488979413705227400022051490261909298146013958646666723044002578126674207672505065799669674967246508846928224397753203848623426521457013122479679373035351662719036468712558186423859852489708834724127298293751814109355515696187981887801681720349238373890814187789781425248210171862835441861436989827713734750103910959862673534840139348714597237856118807305793710771012156107746244544991485198457920733908158617158047493499603661903924435735908423417782232339414522829432004108054467094179387549509496894604531698474970943583459558523100876381644646611863060988190098694651243359658583236250752965593035025511991845894041091898219622263590942881854457962925399730777073332555352670380964936575835098295293483699188708791165702496470631219764581529078050500283940807892842980064109510644025718866797149908492082160080710748606118049089838305496318332036023247928349458249281795248773855098181173341573290905999590355927029549024551040506898059466448575337684420935177942100495476262006633943981488976057036820726292918689420453284783290937841674575122339106143447974237154045913925878504827820647586579618689982200062944521323271138009508191245561269422790004500371291433647515433787802665360131016170502433296752889005314424740878463768644172474184414233949984636594057303635294696165587108548185196396600299531473601088872479061476546301249893898608307473370790025382782922752344392759733949399935451908758462402099918811982095671862013056965979966615350157963607181272417302673590782274180875048452775857473827409659830927833941752315176596449501592019933569855672657578190509039656398846281447618824687150695925512463984578195121313434444278451956350801067396798708658995886311560524195022947067814183786961296381297572514394104114060933161649130213694768736759455054340263364528140688612195660898451930001099125135167806888540724219809606549150198348111348710039076207789197575555243369117878625053423001547339463260011829350842733696277709850255382321508929045778499719889681878531540963127518211549332092516589967180006106018089795834696018813902382572532341169034437196083431056921054550331012454006808458812278172321750671912781581008777886824824656072051213254182554914156369886757486852526227970462317994058668344916335063707637091299485739931299372020282908683616173044751057850384673102867275435727563934314783508311662280967357978275049155416983620579878297623599984587544424943040157818740661010846489876784390873329994875048292681439679123885544269396306323897234443679198014727563631833610571454343863700817892518429395652789516086963816813339487644111247203620583646380822661628511111392234279634346791034388543483280417821449366039470335997984490870001391938775510342746877717462415092043014115030140014137593967815278717596508359547920000082183346711920867642639304017664277331446823784347507617819179243586602032699608094874611173609061066579394734794518949485991451369619003086708597269950048549264844871989709164804164148408493412653092179190379176351587736854087840723548222230257894351063127021262144488712247856637510362880279323842384158232795445537913698127548480091600949294038617611174756127626511023997749654026039446558472093995638971885267163801527782488099493308757904467149289544629699043777750790967165281150928124081769199023803535531882326125616511933154118109200684319749902874577664574058882779179904038559129792016872351615969858796345433726734640128271480416405788361783198588579047210377887556845969651032189765051472666443482092881108387206279508855875568448500238810147993998719380857385153944932825893850165250908082668309259147384683360981462526058695488507489911344382575371777843084983507335208393437380200216441743217784384539322032329126748198042314484931253795608085832349081343914071246314749838066476203421749847643566857507210605927811725653943212402315011538976470832115791099078565957308933695489207355254381295772979786123742138781605792026892726046153219556422135848273400210849013148416417285679916239366391137005457919009215030491564102761428432430935246136421255820646739349700998629820797934541738395515015120737758552294189482633858724716356750373009699857579164520230838779499899435307411209422154326774760348219266398180299869173446069221453828190949172173839937334587602813141751263739015082459644402155808077775659566425302859758561385457106726928676840097362449524795477309241102650529868884299595550472251885285607772630080902619223921050593407991323661131896938353839674585601105062617836202657351510078813374773283382824598686187227347091999201938949984449922464671751441917369663352169367021404056118674707336497441316227727430876614990619420244201810139557453593973677921523922814902081078891705981432411291889082775766447718847399732333084007888640238869265686381913116827796459936371200654039607715610731474139476617409675184748544765261560751735011315986668450127582758013014335718277735925948424609793251911824953212786541177364424524844406783946145603184230871187655942687265538053529267077838557510865679365213882664658763475735558946723569552764211815614468162664451525990281651995525865943758884439304532694642702452308607712721307940274514120092940923253346679395453775316220828482033690925273788083031174750535703162039230407545030103050870924615588203130833843755622967426301520333548356574678182224139852002295943278594542894470189047487454225325240794113366034324367652668099553512739716058342516982990004809512770235619899696651617253478377584854365941669430391655976744879490048937226904274504282043300663299530942691120355783452141724118590764075771166554781013050786461748479973389847971477004685369270087352115836012372037199509774485323207698142640745938863903091626539298936602217036170556403276378152062275220236043925723140709297304491710152091507756347071902974529837837750662973483630801471673167465703882444079656296610314011854297965539906457100931826140043418111126123717799129741713678898984626740012399263037776030991719488442768386941524351311426282422045578424036808719813412941777624478077475189747694627715554518073466128496260453519929404008197953123583088941802629315190000609116423829210333029487885169489725945155667756132226390969902839141732576721728339437372231093907162524876615547260132236894634036697342920005953865739063526613743912019020192819421415352442024340048755545010198580417249474550425237327127649372451436215313957523512224429854096461886755021081422918964217808086865577907570606875049181373344612551858529256840848795206288333933276451628372526205437318025554084966156277750304373058780893625753060292594944513520564334429730324396938477220413242052425780048105019360403390887365306829657092938218413813040642375384900602681734751089574610606693471302818117763113092550475578334277525147336932056593981017866395955732949633894911754589805762271828698666248451935317648496651194922016754186883777592998904345818082736292207142639566315651195238312522677377519516263737779296610185383172543888490815997912121978449809155213483499096002611966969449776687359257388709151729373121436034549862482351296995077102110476918460165952676680328829529762429246395623966810237599787921569523385027376891202099515830635445299837946507649297188449295039814639761707009114966406128408538718889800507139618899191196460944218605889246702011390434817391216492973259050914335686806404232327501921161241820991606817650836047961089779195358795641997443077774202334072065574377781887031482003610194189349057063898619684655126307546625898083509736394867708932988924870742989382304541419066897450944158472806858678999071435922774160761569181655330673110494661747604390873961693355481038001439148972070928517326794087120594556395593249525389798664632571219155141299290388941747040881720750291015585782729863270115215760223440762400710278775284461907310633134547870650626698523566046049866980801503276714816338830657045053997227187839478157879212348995950314457849908382320661792531613070605987327264499023566498542997939224587085447882030169050922967281759720296531548029619989694951962863401268106114220065692460898163048050381903188930255464642477266955716892521377516566285216098107824879249623475247912289623516206979631532024575152063480555883560886118228353426597911347407777692167681518340093667502655474455148238733203094212543889952305228316518058754003476753005433162322215721744634612519507102044069559653796564014070464273043904494502440572972635028564466508380975431462891952491594514887652900578353171555015479757514327326248195315730523070572746329066164857975703788461108077569910410062986049545418807625598627457267617432317380098087736383916909301973331530043710220470260413590067280431487119473579887551089811818829944965465679935428051421648457281140427748823549646306388566785438897101200621340919059832020076296729103054930475673405702355817874148542481182865015669151542069578718955903043725492021879663725000367929975647784235642088162412261019292025545228227483611384890902969292179451921651151605742798856839041262904943221275223198361323460183900867278130714474625199327579560911048047663870395089580055824726305408545751751347735027867241979520763652850138140891808023668492743771305133496180290190294937633450433958476332943915651143998753715041950452095442277318796969959825884653844730379164613339738780808542582164872436693729014640163468288645824041358522550423174880874594979988573449616822202260935627235989659514415306041688536705939585975777566258468648991350774371282463835972378334982416133601574700993247984094745189276035221711875310860438317037419697659812654303316008733826924316303279568036554644984683570672545004583719746924534767394319288019727647099232269697138145160870802297516617087540190947654194828177034713170963932958448644006855264434089158298345766186347658809186778338162801007942884954687176259962774223709688170812468104176838995627620254752461372407994265033106770866457411537509246443454650444737599302296349245386149766355503705331610416738752506387005752974273999934465401064042628909947229853662040011509763390975521466338753343237507538284213275433655190929496854435651599075829592911420872406961933908417456344116025642697288872428468807884853531247394152684133398594746043406456916930936289603063800355283036847102426994161328060511399091796317274153944312838356773150542667424305038005776942204406979580264095647573453236613573493700142085730363280921893824460700083122023536573910061878226169214137095673538100131107378143957909144905219020550651517343784084212303785861601368706160582248857337311923680084119407751093488179085475155023130102284169276282870258232013416202581326775086086026518404000031162791768636958713865618604819718299998931120797523499662343847663813783197869662007552881256097838886703276033711701231524178283202081851560403842766551293441217053965419991321545714064965377179746299783711386692595152221325087533359775585032298765069440926429221493781036942044493607553985415724244841264950261870977598761771787484381871150810688707346613081343728419953132029995115154500002081631737911069654667073190244799182415966485420872807555831634373551036793014263094496324551975798502368045775840491282736754884828940340793026264364278286909233305404369344090209602781920858761434963312430312691170688109599715484721483873122975745134406482925096967674928396149619727065373515168642739452618894228782813252348241214965255503424920357851521432673703119114250251430357220408714616330717857221742496617568834805868441510137690906392526801407021996897040084342803631886105366298208681448992619291097024590280595663311306757014821794908538181938179826016520728298951394600600070011788088732163446716293483761638503271781755526843073142535573079724701621739034980645216912274754002451212667407805530828864957640164149921176849213675812152929878575440173411395829495029711488291568784551649795968883836324243189865223842400921686984625973417485438031289427684171579995823344742466480012498702822066640341879772537222322047947087541650949986504050382533771371904324022097657208009104137743534649028918111282068383122238661441587490188259773551652377096609370107245346912307683640280835755116733785507556723290529549786098003738830030867216856566475945055878380412962618470878556797896221016155525716451887596204096818650841852865679041241988207238712364365602694994547302481497893602087697518435292287879074213564961446933168993089177023328848043208835098636303121404486582088027692062103783805327403791687416485214718181192260454022068127032250527220382087365840675509005234186652904087945345542660271491941224717771001945871281199555700987727613298556237275706318424242440126611350440540158949209748113902679240221540738685244315651036131483030587619541890969402870803051953655499177118076753582725484427764009155361602068550651899040510312758017849300238867520081281461290560659651835886712339107175595903839430810402594871969857125486786188020337694079435298330111894677798683067690767457583934286393882058233545397808146825845518218206130552489084957092643276901349384006525194908215941749815308464361907430322485510380855445328148864269249663370603400822195908839353730141913775193574713714237158375670111950603848061032216498136422388919469425136317918484010774066140744933235803234965697672805317230365610905372789198998199727909216120436214668977392209754278214529927762196968079931502881709696605918838898404326395155642180440222719736557891573431985572281341353826620997031593449382632945629809292085547595258359572914080970122471273919019830508004594843708890560202878915394737868728727386471520923541746837835549638348283553747004714075957272455110783184480320473631987646410326053151473134830436997175147623424714013345573613850789340680382030015697176699807676125140287078964564942985358489997187914083876363093017664081378094219883926041758920451313813702406109545462870133541050203755866209445557989288811401279181421024733009228347246616839025814090191756062987656985243534013103662212587605598120549726378959205086897323461553067593169218471359933113667547505857217051972810482619163148617352006997541076353542324374409062468642582488217045804389285757500394736554069453677416168090046906070965961783702524031991041836090917536132018362154444854836238849147773879306672566485577597204256404636240896638812563301920113159614911020071957979675183635218815554601749811845697875222570239697242946091025673584948153275131123969391748947411504074350533079380600490971020569273205565483210973511537215633276428040425520610740007058506227252719116477101570889521237471543403082890582172551529713691225634365476410270952754226307081708907984392383321839436065221838854150978176973006198970219130018180205834834226534352443812949206714175011252743106428818785471273670828522740015359585033277990297474987022282677190098852173697580481063429085143540903896524303129566257049118445613831702590967328505707639581102406037403981733024236545480334904381522869755057184680202851545417339744866828435626986841507307830087890518884667842839402532081722937268430329162673398552568768217560668683821260864038152862148466301911895017383136416977558067658717342458238883026920447076111812455255543543080395604406058464134585169381977768537319812272440757483514648937958962314710070837531102438987955906959196877763650263069096007298363577710961494763897902260030254371206610448169204589606151637253594442953643062923427485902164515795138928149721797700104340217005162828719120252249427317237926577017566103287670541747497165070482954126135808617466583010201885925472630678613057143131486245493762314649751066714076945670793669102643739090620616994215266761864332224610252859716264224298971068926627652023205535153982259799987674774061714871030368270048952755928525860941107152534997349309864008364284327142223389268924277234941029365214726871892422848534473841368895538569625837286199328884698136755482695327797552383076597768447815369177562746518866991736299797212498719329696240423268123332794128679225412673282160128548762838901745359587286227082486276654288281932774984270725056687673214597681135593958721087191122047526217034887293939353917050910851278050715932099309581913201199522762051542580240047747888403964783644367771273763596157508606234084049886490551778282737995374972003975687960519011268025829842059700693181122717780850492030716785922137161675926772503482631803074138377591870553404255936159732928575675321828646116450429055944713496330706645556745356187709822583247359988347752645526917241929742827552161415890315841034724857569132024334940191933058838595270008425036876853681611839470601902420184578305882537652024791732239744257688595363423080678377097549597274024943612050490368704565988316763476784578064043869115251416839171919830907974802393048093498520348313379656141034820427161685410133591421063929592467907068062047015158807517011053962151497260632137643319644620972242118376644728350326337211015125685201265934933680892075019190259309722671256241685870880238094935173198189966760858298359235644773031712490958848363212137042095505196068658587753663758699203154237656448274130198386954966852043098115996890917958730930261882681329123681749260863393991830405369853110623432166134622504502402357265734065852652124867373886893937576771325398425648867515651778574643975929051319580202617173396360239340032136496708754052662608515158634917723425500075038434840598430964290331970572750014761810595834365802246551537601407871358701358510988506319877961172179473337356655480694809411115522190055878054278210012774790431721510789286537436254828011692041631803010461162847622151712354440185684806888127173271025142551460144619038480079003729641683878942891473331225366236681523813337511101257547234163086500632975772621064595517808151884228368864101997725434423983084953469037196284677805564463490430872817392396375804308828899590231929756856273563437129711290160105052756294215763752010044708053042537047198864990162133336509577019936337544624633579106642107027085674658967264696120330602758916652223306987062486016364664492143450672350170502399819065923675189987665372834550772139308838577399838803352536579634503696021526120878477360163180674136442460841828227194124064848679088284857096772200658008701046450601564758142524804527210758062797130153929991094204501797370059207524956953872516483916664454175821664810683837668335581735011227342650380102707600217079188774648216175633160928811188283353188921388368472783199106646027668237418484829219770865605728285925462469116382369415292573437589700942103454195904151893268732960333116982814236493204345473944538930505110682797091863354875920075089357742707033723175504087292699134417584378095213645034185257582228209992613590750935457933433217627615203999078159004139234838985227852033782876394237907969876180826201465820172910693905285021786924211121796696377763299804454364897633506994140727007915696008066393161822263637194712514078355847892837082043918570338254258680686448205228176743585887969449436558893850062463245225140909528619714522148385358058801320791378013752328071352024987660549995914519680427331069733405432629209170883508913849421107861997760026595874668144194558125878533424246619817623842011676857920663802936609186137211466782011593473002799316421187811753119518070186386037458639281254525720232122839869269352204582179635433861429359792013415700744845225566259025236529109812110248530880024944384408152839347289517186465452807043624621329187472317352020575122251240871849071158477515710639657576810092949664299718873775106846620511812631126844052045145591028284357517189914484556986828062989357962195601095182991017013240657236799153948757261355972257902762670953673105596058505449543968031137657657383872162220877668919709852497009329835812908142800140644063172939499203702454282833981798930675270000995189237604489548342832900310651856269380039292187955530941627963478693820749393052391648631317200035424483947002432374363019267255714048035981358417470691985527823745637679448278905451443951371562854811443292496750704030641986114542629158773609938532776084542959563414383590545474621043009213730007171700543947156271560601281534874625055183839040647519613808416996059017931878045471413612293276344698999404148913555406938628758596199975507450643667033580477670984315196309780175361317812356560311981484321021746448501116139281530439288411945698485498635085713119470350506350648830006861444263640597279529871400189874521677545491135077723144194393762929403491047408609319027737089561284183699096331832626875663198040432655939487736535624303732739100449206612690379070403819145375215045578294417050609101044639959609639462075671623614094989520327465395775581183580141237389513487530290152197716790686326764582843751702767804188794428126386000508623143402850321072778749050012096667499155244802294729416173447233312283378848844482277837291170669935128788036546666359827383000432310984645899533078059159038490598145196490297799679983171944628624522770491332218822480481912707670754857986643597644086211821842439178172906088616181887625370689170624754460737674813519344583024802274294763427854214384643348953598915396776784869898804670558967372861186094822336810401753493676417057995156007463961366190696282447627394039051776469881195026722615591043803794128508179381645539660048957817032915602448557923987401830539347937334547086942911406426375892058187745414099516173060260224264632825105653559753339054766471520289830060843160825444808867109896870230040610919588335481144967434738097010347491950503259364200083202702793493041095174266045250492345920002775655442862179726839460707051042409238643104100506283006347692267219088674417844146845019767660664247727834389631180683447335176339030289651962994368446918198690786108872824633261976894155112023758832373925603166190976104596370752156612331562426537370488450897966473677216531441341982566858693294370201495359191298035184888086702405798759489982328793935685322482304938716831185752231727694943339549332474556795837423024608751036157552938838004649628261993503001792692668362821912775198315960416688282847321785386998677834249734169951687897130123965229548838506079354969219356802623238984329898608021017201887402768328471696912301654392677720177863461137781184929734447510941293124554090876385675496693676820434398693836446359906441667972608856303617206055642591144096630843995753723764238982086228978810815763347765600531431406672335713943468417751113223686086333706039554575827416392107329564197594607505248879730561181578265841425599533114970235701959983244309012422738161039833795540600505562372668643284227495600668308520041348021147525571904274534081684702865965801606915623587020905175997729814469340924519780646427913863779966910910653584882267818332886119813108712123373474743619119387655940965025645436192954099234694823242512764794608673007208036904523781585854641044596501607164401612021938535712427578080337644231354969693635908659256385059847178149924580603095053057934178663652301316305218549251778176250163557604994443883283498806324044597240915085991100406107482481052496197715475309987046903183642524840619403244474953595208462457290487293352224301988958798982731234567730415866060992331078534944494463024578329251884122942106918854340824348005110183280646697456629111803224769223175257071425479310698015867456334775009304586330933796657703349989121700281215689829981501679879428507046448325318378646047504685961043963529611776115456231866855852884291487932719822812485608851001472689832975270507167202480557416276370826118952017983387058356419423464519733449974449018140354049391420611015522622958749325484149375312988346017182262915378953385807107906145541946440314834153757704824431732361152410896822893324726449575644860913359594479198316750715758845421310737562252033467993756875325062962934305764523987601365673481282393889013708919886464274095768616963657077537779943571832854501112444864113111209330259201659958355154061878729017302907532230198377989936476157219746970248536096921005232919040843799847759894337483507987186352604092282061217885365806597664681644592502759211029845232367193363960826666797155030317125069883958980875995038366210220069037574572809234623132647652337578961289029196656898178435105138851618876165014017715581264501439452782473772416040741547302547254085163511033479067144478565719860915856833582503161612830793958412459940313294223729831660584849426941425904507351946018921478975966949376369042455686942270822952003492766335740514576390162126249777188959530615770509680817840782026625544365595756984630565239461630953308462639667798348722282268552730420691329307834202542470507622698759756389358571220474703681090024593716259247647357183386235116877088204882731305851831970801290973443828268974410830975370058491292280705569397225626541323639496072911422019194619932501019135439624059299841824841767160782063831028260168415873639277579612897198085924265526828253684661512933064739760790770673867451243675612640592989471965651592507862371437004425513971202622494840662898149538511630753555524169731770009890146489142315068689595919847324750591188918054995499718819023136136672216191734309792444755529194746562782506732481022522296371691211760300756075977083553162889841407475361063863136135221703158677993121710939097286435584453875355778138933689196892567089113754783571328359735078781921982154776786169637700404731836928325085649215735842702068535473058361025750286117940226854602026176339438734949792994509061709693557786757615831673827913350876695694530660851234989523591613836160344723170055193255949033224471353586775441896945946499336506012923144156068790301522010017124776717548885838021845556131306515098640161972409800558077153370295801037966571580901844306280562474258595595392726875195800279599488093894873873070979660135445705083646305578209938579177413278039436667662409162386083269322831822535786250106119928976030100378606416610717798384085277050556023416338208238536243045657150474170280298900614839804706714463458486372024395543773732590384284335917845525580702422245608256857802164901714470054943036806951821087041698493697845757312875075967174067371410347440680976110521346318131084967624675186992785476104807143672223809048964608170328739046311145752797247929985845875503927720607860067782298005143716760715786779722103711169867186205705111254548897421806085811999871826498237135501561748522128576724673897866217647716437243968687878053559320509056259768211346561479352025480323133266095436575655393019871758197344269933333486341330454141352700799248301262154843052830928908460781244545595989895079772943519637559405815055110561086926501902026889638674516372075668002253426911005995473566546000596431671066267301218186559095948649179694250425195025183463575705049430413915094253196052869618399474184112788789350580557174954271316952295423373470712998609907889675383482413211123534812971157380020060001744322636179232847878442200814928737799053000422558099433148788871410489432267457469879879159654512667418500341750440941658058149904628617105030878449853953011520042581539754379326698052434440999382064047768665671727529462794122698001234467798846567297111241327639039963594642480444520951420436648721839481659270155536693887805432510863318778507155423365036010000089667316331145757995866477509150860477970276289263225031015426652701841869469509369477764856713985234590249708942935627028525511166987772155820729363517791015827942830229757751865016284332655820318655366701575382845189789845047173774138997494814439895771046863483583448543854843243823100788870472990789343348426925491088112388616697884778496858202178841972268699561077985396839111050557009438745404006366500488016834026498384968243278021941951894094012056494092399471009969228055598509466146416008757899860264215920661177591802733080132887151556876509992959021982009782308389281614573419971165747131034337843039913088998375322049597769260438639684545124055710564366773249280375724162902918348942514485078247362335815916205915055695891235597142308967395757929325862882254225462042370033055741542915169674139519935127860263099831112999716405170199353667423586239034685752246024995762490002395892705610580933216992859079662250154862750864528654470643650574020740383567645638167630708256528148220169564411134278248524055584445222511028705628138496206404294650467107947479397714022089166355624542283573335105499170117443227191263363649457762581218343614967870484697482893547508328468060413204686121558771520813994081487682328458243105086054453674278651546947708904121701865392235208205991288990446286156541494913816834290844622656067830576089293721437961836132192214740766453135891380927723854403412142097518818288277850237390671487188508211427755537401239504358934389832876897848908886821529560306402422629948733491273960692692392447454372388700045917188092563716840617361297478391102417634456022990916835348216644693294566470207051647173179959329372277094014459562981996087349112872506146611250872435828900475106655050142686649456163529195553992940781272958950858223479812807058446751949782734602008839959461667209674796447695995056661215692840297676099156514200992865937551610633387333750073098014527735368139237738506116086268818940286356002276308765842940326593375801588825317452021501702296421739414937581573251818071660665777491272835319215056369298305541429241506116167243789033324805551604437719663467314954842681276884729189385190705436283863626207101834767388623892870217736743251709894594387907454163173027354215112465672734716367007666395179660502233274863502805190484204375480810552252833984402247349632045381297432653665761692037020510955612255891885442953636933853136636370460284371941618896012675380736978638902115063678879715548455928462855400856286210821758675187024586926524673245866232541374838077546350942479735880070405683505495428667012439064466391604427626351475425465068743472898967983856454504854953440089939899188175436934613231244635535129024965268216951195713998404990471933633817627563985710672101008508418063773764289622706751634681039796921487329417559688872682317428732434222872153891290775457934011050721342759928000809525329650904313231130356648035078074535365014717261801881812228730767394287242074755988610232481383561879483802627541452300704554611583069791874585864562811516875553103221287283494667758061371545387326908166231400803636314913548604915016726930282165527082576007086794661984048981646206799628519773615492605731486923916807168583548201002506755494431827665508227777973590609454520784684193798205846648522800498647489217796498515090273041658123376329893793672311385793134427866518154680099831007489506527727354096937765657382444361363309518008124742026100326909926427608038987799177669217738134588192051845639423756776453423342457295006816082873146392534021464870348015548702814789789973395102369577160796217779500363574602683655601851227756708180526781457572550603298319423706788360128600524981769009413015544941469039142911188504274674276509599221582370987798914920436639963999772952108577640372066085096450690633187978918930497896118009462870410901292363525757794769325503435333031815670050301808002180530232405181526755601011976156911159155784763312814361189646297366672033135190014489422680622387693222214939743880805709516040595241991487913547368186165189911648947061616410384451212768677084733009180875771350691120322056010037870875977874184978740582395954036296081976611046958557517977682231619654030242663869418243335172765626873160777561805787176263671739078401319235392091944205430581906267120838185895038606569996706056544674425271627439666562369132520586483702244070950361410184731939967872199353832041317184659471434934133280260291513642108926639331907370841859131614396920821295609094807403137330072873356658328988306237315363084767587071209594241327468152041460052078499356710845577308737554971605179947328337957122409962628162591592399466201242002373686876651039405971176859569555653754622974073357400880158513310133373324983716445407017234803153335044333980676089465383573556628645713164146465862440315336792940812764349381829705275038742318882696974097599634436689051247085982808641262925996607538906142319846087758686822269900891791153949155669999334255010582633987197121173815660572925728256080991921522528217223285117518785448618813380199203353491123955150316094324774200087661402938680176443419104753566286771088933333770318231375547982343018142156334811840821419666913799392638288264558977847239061454863111467882166900602589117745710886186162639381730546302379867597309405667340650661687558762916757984001906336335660192036694983240955535888548510372903909202435638658004428769940849321470004346056137623078784493931726976243410289540252106475399601579111684610804305457284819476097716340875586793745701173328216060795762744918667380710517549983070956895806804436853478616831381997790238976742576731943678653505334522772572593181904429743203586324184737149889261966422198945927239190125845714177510496980290431432871967044850945267044916150259471817723766239277891245475280886763584947536853297834308699883235196890063156194598521925341374223441817449701724424102183521101774049422416463151609891964984463059635691132116087774417084491733878298435177712397746556299678509077529098681137008543079175925228746798995161396885633915988967249863129681821806065313079698185776830320166771755375598375519949086654136160771438262765535417058167207572003153728989559063763038429497135654081278528344869532237560274626922556421582862551450957558081983980357983422976251084235808349461695515560543707008439867795916131391265092536848246449041199639159362345300282155192518847082388914677463348625326125496993196992338486186342456217687691684128879910578864422366596423675805936991768357563532527689123430379272091163601779042198665577781542841421661180491398584165474815764914565796554019628947850053040038840295708872233688581808671232851305857361587719275148361806290047687768901414600558384851412771574292141775157814482464710200729181881559657852461508626722298239725994456808514785162859976918284979789657018194070015866632066004564093190136763533480432779271263678759271062236994054871073449635410768447222114531037480343322921413729764524962635472441237098358596646811574335153070631977304643034453792271736835965369930673709665201549402571309503294832894545069438993025073204932502994481401077074838534480832345726691505328920644174051423997040450255601238096115647147207096201997104046150602167353909846607722379747471233304566689219759854387843855113745245265727227524765960252200065636268060308663203341304623186254818774338689024377625219030236727706466658466822459867191721599375969699516342137063682267015532554163943754900108803112325805184531053254935881897944211697532018265903813729739793288507960535721542523263666365655822130811336873227378076405544576951135350007009915937302069223308839773064982631590379059699148508022423337353596925111395381717574691060746961260760521695109959096345372570898750849395046657257888287657329072070432690499621619672571494501280923332214563581616271314439777336341493910819943671771800278229367088578408764518652968563176269243778570796616367050733048583648570474467521031581215603205960687468892203263687692408925566361857434340352775261911234834808808402021998752572678161422263147482325943289392990797929144692604607195036654847406677477124840081006107889823819144486064912048416787321481377031135735460836287186055868294735582081218199613325166651390232536174943498639909744144314725154533666305105956865684150296159867665629859529380045794907426586500029053939032058437421582376012626600858190163950262503968104870547232915497505672725790366966525903807123850857188056766342145598244640652198585066819892908793684191252657991460691600316182883704523888093443984088896080899527640440708448364861640087586530762938782454672421725741076766824228872958939539219830039483045366191697123425864809045580922578912656248752805836854170591995904752954571136050775243240937328365750684396595079765756320715981608905283407912104359527759318144067306042324018490713013935841248696403819538692520380472497424377256632457370201280069337679939544162278131314353080082152535311830198114151501983197956884958442916401278165870578932587814176983895678492827686799114374518434994811999515681316780479522209435086427423870579667014129596883853367014611210527105201228953520832374658775350472242065051085656293264746196073133481379076461173207457200200559095909869240850992503246920695243348132068654091314586460152471411982237780881157799066511410905610364622760491329496141479747777568846503334032684665507660612525267847185288338686137231051478191456146478808115109902823133931523697419448333222571502329300450003055052827572144739181527519366739264535619397231034486782055844028455133047502017472362379566690841367773146908064792792313766219319533313481542249959071374069877494670000095682448310273862275568317349109795839737556321891051973011251155711018564350648699603601953198579274051747335535059188366554973774768814811822570108669758288624457122412709938082174009464556648943195756530179096572624589422281690727189298598483198990317452755406133637651596089075213314351522573181294733866835352310783090894260499779932869169872016090583475323389827832430580804926125103907457273963580952777601526578905502835433174039592149268123112615840902930499332695293266854318676193881035595032008532840645413747301522568597967901832041162928238078089470426659493082733493147563329915180874625390690733369013045092203411960687176852572184114301090142012758697166064035106065802223316727286681810703736468271567852587576272982073991440506099217591739969997770725653193151431371294178271860335779008990396867014898536978467894927789306754555231271371300430853070318236164901078904998138035413193667362712015002502824683071844635648762612098091547441420342459006468556654313893554935264972258923126168134023488227100027247422452521942416313001618243763656358716117320403635968576557833523870392173460140817900555306071707800935141626237145215619736464184270835060473588734023309349818662478108799105087786063878846233629492951171072683303967154220103723156822016079734590574439321610459701530197151428611108297354271319723521031524466202841679317185226885428223677551020311797661876417709029125722198268733773455245254224597023498702745375016554399336636668489983227273209408945977549431891941405623150909471390874128786788119085041050528522620939284904344635350484464763526450942941253298797437486313282390775024701639877686830306853948656943100828783661693809080436078389166254535659276195398143075635609351853358118189693164314504926154191611865266611195626847677231293751912538359316040949308779718208924144326176174926800072676869658078610569565543823140439745976594687483378618339223664217692876154097997647125568206202612696472564166614545186494010516549135164048953583620263596743298092597221379463331898552106348667513711150198377636329905420482239433735799878973016786224845906483631726508948249185645121652377817185589716751838610896086354960529730343766882493642775981135911613200947317680063701929977982903883000380043732041865187396045746122965630453354463482187831868550543960549525154537317977656156818001438322648714566012253906628079542796128131346648253407404136055736503019038842403435155473280112451566883806408004452702629522687199923490924567236690919478735483211103613131030789561267383512515612000118083747578505254167479869633202332758927774632232216069333711018359190546335282648630938993466423532205741898223742352228019509464515176495768620388430900467658325277376452809767792940078287268410029702667987724747264337275193897959410297388971774750300018037334287516448116482213443025729461743640836811354782076719193359865821923884406661296177669027702751651479805934780496591655483236494056369478167951824440127669339387105687964828865449096979820723074060101659219058112265527487944985135998575473589555395966791616613265960596308033195296748742704051736358448082150686296165948273044517691051472266510859575675610956888218225875514311612502506475443627780230719663319288078331554981145494865803124796512927332484241470336276622140413074236732700094912833756880066248278508278959729687589790749522509331819218707533815937297971334055767980124452709099843866572643945395189228457321697642546965442926444207287824660562967510473545545962961903096940848967995751541409195156550395678884106172516734975027737416837603743874299770991933160543957378650126089646142241597208363539459664378081498924130871431064914079613039874716223244658343505802981872751469709378222998833363552487069497036238079963685496456713196950442511927941701238170534174320134284508411187196782551804707284308327918839953821391128995221695954861363321183447297610083533046420196029417332434119239043221205975250996497074316479386705184919247808916212700026220571908441433336881936975467883369450139194064598318365250294396295160364634115708486485824903573487203932767844356075484949110027789612686265982416410553321974376850663711581148601044405352886236597417547487306322651192510580592988686585289346432703655319531016840233807022399824180172315462304522677190258232463772713725926435426561080895997101412812055775739180990493616374537728662166205615330226970699099584816404407673149445720415363570548269111693280838664274413727880578061107927326457434273742270117756487644193683584547770217067375700015833181238624134528674260421315722427445220813226178947135284804991333264828005424247072836528051027372980430814782816319454585532120229458447576484166776671388209786512994125983088738473553490344640903806783052239070547142638345023472860681527183062579424317366688157039335439626729058764737435172306688724664642041004346632571996450551717010922288745721548248382180419864948611130478002339161943576296250160656518159982559475077332329467723434696148641969464963634140722797715669419528113860517725022436629018595519478033212919889453752981039117075003393334633288841157180398474172094704818301498418365305669999090875074096854720530234563259917621054074078097392564323529545342892605003679042528203843161805899467215346185013823865530679641189911282968293120723434818436908208637554712385127572261586009071909410955729980072972975706105050054424219341745378614229845209909919229449943280056310185334473412602955751094055058473551935826524779981442526344275644348883166631166431475356441799758151594702893622438161169254661241357082365544639651263107160317282535115774078853258845831185728133961518557098449552052309337722374695167988697021706426080929631479896087359570520954034820750552215249050454932175864403337033592755540652308803755455240703247879240629880612853829209537740727430585817116520366226972934931551871328700734343894496901883111860574801744064420978287441464845698738569076393566923139464611259790662449082390585624263944345576784689970223174721430411756939295911492278338572246750383542672564679989405189864996657083520037385617690874119499146435728929840334649805260979881809005563741771350569421768660219044073620567438767841389991470831668241034825085155120873901000613016864261338411177627349427627167199792267015898538442605389204230863418304400312509413957603445198595361847475825605777677662360163769220784600774185692901189857561920009869992092870003840824876445707628585823553526634069042204071020319794102461560405623031160408294030551145879984365888114112627140994682016355016503948827861511298657166057643619232199579673393884348339193190804912997308074935421184964657895610977073922204774915143773578709161748344271660891107908230648580631373849324316782744699250070535193842533658804834962617635185076977979288028407419159878538651393090543033187499402638587809649983784090638353446288306133669850178466475709871960163552056717480291587272389440737683611534855000478368141667736692275611493990609869532474054365239138184721317410051315085514741078812828149691952019288120467028400569771840988835742176867311232283970229168852775042276206643557301020395013114868229600641308864744235965306055907587998961214111943208670049388975173079823017471015553117042934093051287219356849480071034376378943628302484599097856063585029837103855477129025471820462684175819783409103084440854283441337217555256226433747768068955605058626271730289367986138340224860738686350973700546459045759478121487850012927745677088778478058674406706482855990519702471221217274495451963820732033298977836915040996673008894018420868123768176942049358332253260594783532729565409788965507901435426699981236003160414799184118906342639241800729192128137385323075610777679700421983479822417901923108918454455945128852837970252697978489813626205820212669112967341467431724715223263200118053515445466256999969334859821179303089495640895073698423142717547862542836203948949753690308600513713074785648915646945440088231105220661101616595550685265919698767483314051241647273769974334568337080735811390113389029240988232357718012846166779110451751434264718829756609599956482899657643345251612515670330028902270504877112157138624855810866440678311474087643967489635838234117302476024845685016335747004441054405002333699152094700620011634315570288539770444945541494803005584452868874856516405509609288010815450573425506669928230478829847882614995691144352938678651404358477025613332536819505544425633830370992677324059479387300590130049082556543501721948295312772219361206669981302548819440895934798499044299958308080830656395576955334049061106550578350696057022973807415983141787868035962817053195636275404613766793287951307102036643997610737770035231380886168120817705223563547532710555225773284826987737518599855282234284671543548328600551337656452700036945170526589941567713949500866855521303184510953648410774832564472011292401184988167165280384989589029995870648877236230524595079798668167949514672941936942787302278619434361225674707949343563149851416446492000973806020456502533166316064777690918729061726257752521168918733906159276013200815041728016099755236788067473670195857108223476918887888878989562526799856108840870017773227618733501519052163861728852913302061010526440401230208196471448050547758807986823773974284175354579333606489057117620199041859431036472876443698977976842644777675907624925984424159184380676142806162851084200681373499578486329620530275994172363278916677953334121101716600120995410786360391190353762007674846665502114904632714152351768978766631708995994457161161026593258293926155311459389464717359138543037177887615642519490926027423063321826229850788935495520399312210035656411332620897486920204258721995215772844291470645782049316801748746460081906435080456735436159304188381633107228839489671472454068196148457425126168486509840089909570836995428768710296953903753182059152273445169555623046077208312216038665229123333077063138928482543368133817595588945238567648627328041453454466668345811246032549162600724820887616364832705172057033394774209882534892435712003200473339704750130637109662542476882793598947612344624019279609122091761180127301944617826200253571912807533744546500088042666769083880782701501655099488010474302700788271641389653952135633484313141330757794085529543877678502694431941658459411972010510622850689535745182060567189286699791891740428139967034097451790892797853034652971993527793577601608125998042928238599142134972087367706593489839046988042183652895682672965127314646776635854806128663465981551791848063879501613238095198328272166167370218013114636492415098409442286504775714759292997124419120943063079397239992435967599339309339974815954183355155024462042315435791895496686678438105045656305977683086941093776294171379705942720127600841317792358936661581806564802318924092155521490914833304569758029907732749488062378328114583247734211163522629718249628552795676354802211328377120674122428483310293417279761160549726023853723015253490736995055263216497094713811515468714045588452564242503932663659640046522427217028486585510184502414368580601871862732560484845384922797530467119111577693377204911898979315084340024484851041959197257258460991518494810929056607844082594678417172709882898945583229100312688713319793658760545055742934634087516983175300091040718477223059562675980339379095862100026830045725711864311875047520205482901863412266013023927863669752914896003170190537382292812258855433225680916741517220663945399691455203218940997002696853942980906479472443805080070366594554811520720009502499181072053548687619062389889956743227687893950149675628508985576837810305770363351888994288949080177045890200666454857425559790832325692248063534304457585823894108318132604573819606095663006977676345904805960392381504112645703877216818772331849799450861533147684174395802873521033732417905046630799371628836874262660012915301760306268464691950256683404988301709845398037205405112604771950886058922531300290745507757814434453370849016652603814933934555260902642377971173190570495576052828180730194123978984331193462705910391854011765543178111397790645632006540024605482875630661629074682670164318881798200873045175127467098454313872379646006273482936902186714148900301438722850127746738597607642217597828976478299787469989668695252029059236966392977072052530741957722249451353975054410677227803625843036298438846909740852135825383225875461643758497275589551145560384598444954545658324700500731874678252942355269907642845319849019858916023820931584165490458465780984374445310248789065118141037639320350671560724653569656847114730859591564172825886094529771749679597587840162536962988005428121179732017885644695258129163479712535021162314530522631805350371453476936180042993368313887600822516119768252232575761400467696249532988243667027165062677885001738211221696868128895176507817658221168056655008222407169016157520488779255489451408928541759358661669762335748413005108910365409813184742816858672707106252113934582334656383775423424053690964774098374669080927720657634896866298892544229091472542523803797243347613471975645021041814306010446217798047915988654709724452787456623309765046235404958011303968454678081544077092702635049375965401247952638228969679237094391378463972167617109125112908169279791328230482636613703610552248891683297138661400461577161010013028422964288509897856277323819340686553429043013216289938790549127748958090561627803023416675571478057518391071735480621840467138505111424619696147711429659551219430801269227313214821759816340510299968873033976565927471305725496032112043999010784352857279829312025461752169494256911925319760205801912345552646845060656446443069005780816671765011096926648057741182538351091853769580884118414808688411551813373620112546149433153610013732588319787979568223450742996514797765460355664933798865108228451888937219011284634740257747432879856585032215367306699015411180746407924712826954584611130598430288520616191957460859296048303697503689438638394859868161252875107615260401426553482721680369789154983113793072979465580609912239089863477609786896991036452820506964526446440928836407096692406678574191351498648745375975936230201488355252965268832835008631500955588084186564404297169743997403951614778234280353489134353652281561410084125995034921514380676631074007837520388759094824924607822358978591614340331924212944356534145441097089138452216467164983786589606824587632829808403676858503477712267155422409666507240455064726120563793641463522863361527411921066882907971993814223814442334615405466913007567615745633774060096607707907006001082915053056804992144196179172368550183583411477126985753496408671833617607583864037890275560334171455477925462104195484408900384701938761007125831336655054855796534081333462152042757718134888459720870780756877181533374968573916648006288672857000034006088963173639578011214130258116953656956239855505268352860088832478947028456028352074610293566593862014479342952610023522424710525964854215490939536831088171981489502634410097318153104142165436486949758757650385344378657313845725542200442361436121054134882019658500922711155594205482159951847761184596471487475352325626183760292704669690613152848516189403553796848261240859866406084289394717528962769622677736422065013317119140170921394000049589019279106993344933621162658141638241456390967992951265262424874436226944022973618333885255276135968658965975303655032772221025376962896400379715147485105869323335420034162867971657667355588297967295731890834808256281871289012642060896529916683694056398882765730137508247120708842675349841454608050244766537262379357467658054465414420705217251125733745046200227316534510336432560392230303943869886964400791028170462604808727230912358049200277712087843845971830907122787301854362445154176546387364920596703600949700947120479411698075310491029559235362950509912140004276155699522538825515246940270707342333250591563247944491095606629911820881603561038590962146232793564376219685714728790593847360607704527889066003039291375380675561461498916803329969261376607254780932371953710378743875338073497079554225934710170578155533508192004576055733429608883607575284177337065691427047414433305426992245083400056937031587286561664459946036680216586695467151638948291969905753085230411018115347018146385704392901186058310459810099629391081825232497313670441771422004035208914474548850183451267593763398706501865761655239898183428306997390094860937837876501677515104461740523645153228200405811078485596237096893268726615223740285521249998004013139417765632269311714636521017883791821664491791599758433201172094404496677994684701410399478714996382904194005619936829711404301649123347016937836184001482470033528796714081245155156412932772546094277314487116364370265576013398304648540769286452914378702125778143811179393227602880111555632336124814433817468869481244378204020815886774696577167773116312848902366008011749063450548840204018631610596219714592793915593100840469273391618626413988149693756582711798157625683730195575200637907208747436470781698808580056642942439918737674499929914362936891585244650978163862151744119420284576525930679860872752109221301620867764935034853848109738176226550635238264966220791164518205646572688385735619451699981699504567038944786861760938129221867429734593705514467774857329406671468085794853881034191206808651891071868841565590930506298601310310313104210620670755682505470946080356269523258005840539975298653973409759094717235039837986700615527380581857402197577466757632490656517569864986007984193737266759799733777726092654238081718750130999427723429886604734069756444838699868148508041182116154794386960346503462555144505936220961883119628293759871172122795082085128264823094976256310306975540989302381080824562066683798562255942420585617115341048097886726566291112034722939495793766243491474931881349183997916208530118686681991447320578133459503474267134239983296302761886549816649970414256823078990229446711811151916644060629828419243788677379938552754478628261508914288287774072671095404553924864758167117185887734572894319876282652276257144717205745501696170546614121130630453725161148340079335763182887551804329717185541629828372704069383224930565811933554789642575509043909293145241567077558129825026790662460911118318136657927154475234989744262876512114579099463251108245015109075501177566665269122541082100846257696429221764829146190217320893000566702259939248357817348203587800008936754770515382701049976180010228377510522246282635299560208849668730332598337945528197040157283792657184739819345275405590605546825148091767004678332738701557943204403797630226162248838694887983529050350458254683695943091971051589871222747118856287270814665330119914655459180842091903222257614044479918722571286524840925616859404496039369129974395851541819580973702397603693586473063961729674907405666468125431560572335219113116867349971790325753733777576198635951734027645330878863683075691103618723930642260885798039618735744354957208056125381680426463434217654360110379955070660905370083237583791361167403053849856239862070180603861282609996641889577790399192180203685592555893987996792505897126180797363237999171644998236634902212637624604189053235999373875030330309220955060903666902700728952645577594253122067689850858103974941579113639925540772947429424975599682212430735995711616731805646113400011628775132314502533762955247956660087386783813439737653107005307033442241569573699759445533641351306409991720143769304782464353594061719853886516024826781087469932054778155541461482100548957214783005666278359942354099932426556351129297984201536005713973866057717435065343299535184148262873718863891414610220629841513287952874814091365846400819597292608104731679917157257141158763521778130867182024988663489585413726465449278774596701869151209754582815709459586659554897436259510169004169903551542821419597629440000208242376886221192713937069029953368314475925959165572808808200426875046171623769566931380110667561222456216276328440852776965930509423626181463477089706377769231229631870214635710526974324039174704238485499404811730791512771134197662446861877675914255984010765493360703262881558275572757014990705460307083152089664532213122059161595185245397673931411179206947778037351222089809252735139280113925042858013029301381978620232038048336536999423453028003869794972841206424719014282424807884844205906730751304942776191251247827069843187808272144449678181354632656066840533111497376942788493958203224145241729478472757733891139248708040742273408106012286566311604730053580269507207045988959483974617628082417002991726178587603048983081483151333466634752472468482573880806890006368588094762347631953664935894960073908619353187709930165242073644923798581006157735628981804114334672806089609989742023378554018991435183188228604899828215290282953120444075235383235330263264143294477523582802372976405369026954542430247536813065745402817424309357614875843135683473006153722888505999358731253326196849475010255738005515433698384103719733568121142583607931041805336821314521183149789547819696948650580980282658765822177175722674501801691178278347707585050666896000850615937239677970523746104774294982778128041067266386101833328388886215720671435427232950131451370912703474247779412614955068847518134277922487292553980064851866417087820018684194879680244115025910037569110026972543231617695086174001705825875767760980034838081598980090298240646449118385701851090096613798042212953597584253556593168482193649000036822041341615871755293590128134358902630839958468670524316585237910289716568273852650765511386718282230555860928867853256361494959623418049047010524036821789802336012317536919714022829625793502803152158997186303859456204584863829677716984733902419959458765848524023548969095384601333262339720780106503281796521689254595189747765026307111828277332304926142233433572311986774149692161712199089321581855776486888900639524995489485024493570863336611810774725425547469254025439628109787304547290687190808126566848493639709517781772087974752215810311167991308918692526935982399749905418250256277053860828754811904166011786551360632392584910162885349416588695130160239044076504143781525525815812368540437710145911878424380633078305162086258577949610704070587734829633781271258013330979105607032995271377976800090970926651861412577105447855108389706317700337839727394358325387119496141994243536370105351256905838587926472637027689004605893233896415911928708693982635445452646107428414714047872199687337696293244461959969174504762681215130292932615444417220659685673474510134914051250917787936762982798574060647767936217732894399809739408915194991118780935004356166780131670305528295528988973024020798098859013936731594523934032221225427757892322907616882484326607881042431597378246938354756264810980438876767042108330193866176808858571222302537760060989377832211712442415134411577678221745008450591031463742458128139865529659489919593162095274091567831134397851869304244935632013121763548200972801248427878743391191250199890992323756395567416586378968094437557156404161970937058476379914272561476193425687721102011744116625373879787523420765907367142526791617805274578696953900666855984272548931238965350930173893758513511700743251150870348168122844434709595491302248942864350783380234115626915962116682346989919852915364672430364961116477946314574544986335288953800422100273735944850111220514780330413487679910944860040423353023332971684715623585113674021642430671300607676345266042212552161446937377934172227317701267899785018170637151018380535870649776858986347214888801397426538731463287072675459496448474769583841436021533073268930014040732131777503600713447742877289674829341527949305326725282583998756861633013089170891220442484505315655202626065153394044307418102300075372157548381340093279577155116946092715992944139970815941821164541595069815252501100314917667033190389735051576763826785269724317446018329970056009068397631655570894891015785745545039418640091878176297421368073985918081146788964512229696687241362161489498987247837366963219864224157508186847320361139653602943516790599083317423451492626252273570018299952608659361162527982950940428387100093049237373109722527931649411405784339923625285786756543495651727841618402112330260529367076721764115086661406722796626323812756532833091201122359277817452418016679639770073819884922208900395792622325293028752412656713473881059075570311158893215548467520028437897868982997085314378618140625254151706036588251626588142294457397389637767919170450818658362425646177061516565137398993151399312262151600064628913468819587553623574538184166257525901522735165846601704371655405479500146758282618252644247758438019495740435820790741847095065652376304801201448813903163493040907290004517910958414168197325196674371017973357004219564856226191288247527396742721124962558051541063392700002767605292805873446235713771487073139514043739324235189288466141926841351017217145896004937615002521670903652647385291594670181916981323434787298774496430283876760266617001400135349074776758696248240526631779620397163504182038686294159483968140214213273499894233964179887308251811065642486357411737344844842572870190037866987368330554529879339456897638758799637902308152832615971053631414555100623864974026375199477174271998894243871804971996080075129560850828618348107926422578690976896161342028112073294910413974420906141341271550301535961448717377419916719138198207081751597224824891441081546722448877039739084674031204323533944872755684718388221153645300830283256576768880905297527649293480893248577420823512937745615695438477814342880920719602109600886757902808966011799187954750607823839341816152984565527187740262773528099798248976892039383802391841259757253907155115895887050564008490903635881630230156126479055708208197502288615628986082517441201968786686236431279008870283509390905773920619726110565244563237032564656276854107880642994099927554921737980452778185882554768735892637656338489068192920937050741526347030325643425155512605412381634783474352629390590510647292379481361720076316946397198969345942680253211506298939007528044480444953778862583177310902251570591946647207482075201694556347237841976512345383116215400534479251364935837158138925533708192322403192986536668735655525900392190655965687858312874517059831559488969442749854032233272856047633980259602882831346564290680536829067882741389067728642572098768634279673706225561367386108049932493860290322636553364301559660943053792368528460165666353160466080923360083934955533131976641265312754223822140238851681896132045662348404840058482063054968600541074061450018988161546365521037814810126531587666155795808000652669571350334389061002265063588360116981867471251082402053261713266818497143065112542152573189460725688077145348288450517723644783177565350662750463758805241669268915692056942875791991553128284522608818412177762813848199291036994491316824373778387523077994850942314894015139653392473932470845327033018159556773537493363397314445751404945439719833414847853588750722191681518610478029147354574236618886794921335596013055774612325632189748869376499070829376856678305836515447124503987316906232651310664739323225970123097676445590605038716808094613164247440745466339465054242249902227329087781604924660004930589585176645301294737627192546138884137014661913338359088737959550194038451876644028362195289189276906509946576478759858809374258971950728609918643231550495952883787236256971010332610437186731174370204283395167188288284618813262850530803186361060383522933418103293611349608348959656740413562887750653187537258228329136992548413959033211894973037924307442743835180073969266713725655504537894668118320895182158235537432216456578791770391188148008941328598956213904277679074549578875702096377416729518837061691384685486093979495315162180531814043656471776926651131257651686744031597350630705622652593599708137861770682882588673811615667489283710684161609269037077674780096013087798599239556753671071150367493554823704038827199237767849721121704505878988351194795369065707894118799110364419190690704852799504786682996132483726852210898776624703827058364595706825839536974239861272287494683069419953777949930545770188886573041314890648818343952141564205631590321911312329839550782755768317408542172877069951951294751000992659655991003533790858020525014051942535038052389393027142388265637760733208689375449383769076449010556541233578515954269624955905346075459118621296579889910627267162419645419777084968819153619929391762283894806003679729257502371312168086454356411377722081781002252455734115629812644815566403778408553120692319664594805644540305607763556007191818872469140907461881801960914007170987507973964060252561371570613538108831233178511051640085194965551550897287697097878545701581124365950337141302105364467683876565091777737268309819355590624134611789333490059010406504725424118344561208016828041638919589169010315201731340608566668627658216310663969395250679362089739692419986352552818890179197994530957413245912652899182157460771095415512760993280073908592328640338596942913741934437902885225993480971470786390170037711232880688403768085656191454555319910456085786604728704566940645224867395277519855907068695132353376528479517003682997913959691026157461024881081896686353772653286159278092372684827952405709412282672326365629838929874844324574094094544688296737617009768689911154290215531477676938934663105616573786933258230339583964541977615139137248352200462321377515269864204234127421312806187190432524686872150838951582458109202102352345758925229873337603149866452534641279474273704162272003418666292545943508548460182250350916755544858495945477514260516781212608569163362632003697658645420896484125986559231929884855173512333423440094671870921705689255261510893815940737844401388250558131485702997723044187964356084714428660306785645199216215858957811240703913807985047689973338799469917397220061743159848107700870877494540475913392379879590783316954201926742461952158839990403648661558393148857085209250659792750369942603242674425840168972071756730407181938561083249848754180365001423321663995432393595297010918579316735973317598136934942877303379050756909959044432862755764038479705399624803802593820688448226223430404699492106358231166231109333212451624585145362851143619353716420712314045145277963668012967037625929533233864234290088047864275097004513441114022451909136433445786131015277502372664420197686961795889360738716206487239838501999250794049131260809687692690189408014783352635285540367219770204837879875882646108363189154025341678541292983055924704665605422108921885927483882379812013205547479055820226619066530744586448225263622045827863466602281466922114182120587258432998218512990958031908901549724304234986767259523056185209739204169710662829162427979072813312799068254682187779091485356724659624389045721015647025827183857724251756986210034355807718354289938055869962276574525309901308873890640102017023964367375198808146632071744224879645014687824887841831617291216216139404412781939670754851007353047207911727474778910063715537879800063053229606983101967752743587554936164743277571968148327195098180585381275208971975653497165514670249786644277995446487620891723583698616556824949382433837065424643936164304333794182001490265798254944295810467723975955121459365057578438800218266932478143099468421694950144276397622575061624910602841434731649564756844249832590094063038661874899831848880770536503368218386899345282344791552772994466272817866494519286200646242296264465141651700290166306390400217284082071110154818164662196308286925816007123754391845713748740274895979300963815102321770298416141398847939291395996808668892743412455854115790423943510175478239788264850996334623964830325378807378590108261879508119534064640814050500240335590332214870490638822232920843031840575464877388714328832039621225158318518309600059961614427130615635612600529391877726910560879215201362272778985959249986577170404810406902091196671265044271053880223508634690783081215719817187103125866040550681966646386033945499441092344948981523200438484507315226430129791303863608807775147541807964261769653161726081555639155205275080015842399827615108965178238914391335359555011664657394767554031586635509436052004803573024521831833493277525839220998355587175569340500239621678869795788936600187256921105255884229369943297202839409153919826123160557032307860527161644999857062936093301367725480500532389408492072291076596586749392110168792393821848938225134278685439562093613862516475160455587566719092230054783896799165886259914623262537160292581778077146580530423862400444733098369046779266124672421302018028930693584237753629352912662748576901924801173483041940310211182314613719401592978493338016726193583431425730500454194934112549090397120938367210298500590312065787295064165890709540116506627179872917890862405308100188873802563788653631305737516220616013143909356254092893536114374735944423501351514908330836784576549184155101601392502207345829968654505422983549636898628708905800836196091973045784930532834964699312104611642894910615841066315074683565047787010502350110899348014613608412695362557236737680835204045161000760850306767064820667314116840052282409424762258316594090045460249822051595894505816197245119590652965884368981387863612582874383760635955767339399259910701204336188095191864203446659717783757058151530025490416393701198237682095810154121975767428174088308169045024817933340953653798475921215178570113205336973460860570056993420545513958462328576376979114925909789055695572197434305127280516142410183665603267978055087571992903299181992235501772744956136994703050755071911911014355680258466967167827318839353477337912885045553724414034270123949257386125282313382032636844256076379413483621070766470695617501873755396558909237639125242243153583729171571496760087245895496110899141232494981816164463136744805299271247820854003869806285400045461529120290891130639719346444730816908647805743385841940111198580572385030310251667385939224717385965277419870673645841223173986535234975226599575571206449314813620286898166225881785833787101411545491693347591582054885029070685238884194086578889304341745147946516190427912992960549961128160775691247049912381519103282977570760342814861163826824203766988387961482526574624387414855815835496791064628043916975550606136041705313601086571821022328309398609739980259036033598674349912687999866728914243094668033431991455617711443236170319838375820169358810485253564655057026555902642844069409457777032596080722886235728365067520486485358536195866777383828699334881332641315986821076425005313867214680888057264343637479865977956269519467950247139122442972017660285218845228822052500396139926457629189217585246246641690919668291403702294874494637827337105784189395203663704369401813465581577079694347928839815617565780874382594551287134891671600666273206156271786259209636501263405678023515726523368572315257041665735578785006498323843571487025017844569725837034461160319816267729197172486064834031889937140205487214119448943083203849785665652959729575809533176757726780437606393697604946497207148343610605329642540725442190088362386708076290122848344971250404133082427569261961132608648547755000976156427077904121136069683995310843752585503226126134989488018041068854444145366534258276778510691497808776846724294354021769451782403766196483527434590202254604934709313426263550914836227341335464610556706826644674867120915271209293530151285937649831719063912167869198143029030966161908402731103862431060234355987204584527192427178928026948537803625475627909699744295274437476385658480760673919074255297571433963771318379928704222468216031106805954241835333148709173355644450878151886868499555827433909857470828523655523492638806760062237248329787951168219326597491950856884655683254172587861407633244820114121668025054936982061582603503409082399415855552809418619974231486334465640945814455407468981728955676580565176135926958921677216984275128581934161522527067959913953009733587552904651347121843060875377174772296001455379146071859235749876881979355179307495206884026012704078588270273352075572401358352478695480467473330652672380014406724706989070661833839349830520516638273482158165564350038505553300077402781204749606188221416395606907776335948631586667237663151643923638823118974895322055187270758756752062781202714588095800587935837284131834280416906549746538245647054644017813869074646591976952080052458707039845724217399124083874507190210777973340151492132880928865121512003643939542510475054919473131108860424906124656599640013101312000992178006976456998682582531608145361213738931939033597835544332948213089597776320934727962114209067345981166478899731489253271346925926033293998471888088267587102666297077371722556605515276245804606988342765900691659679817655945526910025359914368677285846667398661317172716301174550033663002729688490412284837189248177564700755683475249165451928434570433567903657318370262006204468215635075690724723358874185208119969772980880672567189125638667161498795248475463501003569396341962807823265869137366216377388271709145343871066294990899536507582338097473948234172998051622087505750803768477239310752576643764609773104706561284193649258862369359341093441362255196762309767384514721476908779469491508935790111647224311562853742874250381229218423442139577842249755164241993810131809325200475843843467522078165452813021993208845485116204342997548159146848015378862747365298409295731906398998700738400139798172630503128411850636176551311500012403615993383529779594043046011918021952388808411933548918678923114248417955579519449985304123675380936432605420408551217709988847036278888216874337823992834502100783126559977732901866664411492352476315518086176561526622508765011846481030574826482987475050832618958681356981277961472330927500512086181733768942414693319139296448329681535051098404522148417171341758869933960343996457465511491308676766680924154760309020134019672581079907434310111235960807993330374309988570644805773308038767753405810844815317183308284769532884670332770174703520481695286322265850575237967282137287883174460128128993911925594003839995837478593056528856254862693319457397766634315929167055234264933758957682716648351608922925833155836845897478550297256751902184957588906033982902152569298122657011124332389620738113469400994713050200906285586082798945412837128550287790937707049854672860376619004819106488535495956113327808579435064260234451289111650328029419565343543312195747513686060897095523794871509779555278130143734998007327892842338890516229599297262431250249376629502849736384404283647925196797420093507474883493037346908178799104885330795375855592836342664140732736164020047253509268423164229794129745173195070539932451993479956845835504043545319969811043194809120834778661998496442916316373869549556695071419642627815894766922865034751313903387249714055924064281165064868682000317422918004858546347496192167580549411193460256091619638559626185254338151634153321413009764070824226893685547392175153323526453365460748416737326158117321516642328677422313863271685550812991102915410875880093845081510332906311495875802603444844782256992413926484804716030340374433711982687395049985302343764122287081873569728395141670722814466151994673242476906104294091127211108851404682449176426612294671386561450321108316038981109185061665852129014444581800795870731725308470408108950055416115754476921546040112497084609661796581263782468667360750134319917131907072770948173859375871189216420806320370021982309181268061394201623480117597746298777890645841107839381257798881891134753480207814686185753891373653563660554523231734934965374125627852605953717884913630260551900287082891102539615698635429907211302686655266029362392429371623642592026414463782464159013466358447644758086966321524679775296142832168256547743627160056651538426545213072680660173953778242373101002254713059294385440047284121566614921083745168961370648134809467568809165582640546112798593813758268845058890322455549460946453231795688574070565656234401229480452526222154042140272767236826181612418275297338162978370738127845970566161051597295970563589126318139670115999718817044338596604518326852554195828870986658904753214405057592593338157955838304051398837448357108056031870505879230141476362051141473263988452012338751675294588850560335179680745193344825558792914032562239163421472771254033171393187944037886885891117716856938945553925447996382201603650273871331479554530730768538366888668463372182152655799139813352838358177916629752419256114053681188065409726715746241795594113595075096446695590681362862654721504338307445359846693245032760464990432015677016581771425302231374568484982318573707380749404342640415402801190174594411008609411247664369632254958753707522933289557623105037882830393010129765642306044914942487458339358926347584649993760101843121346556879526244326275926050321010999706268773884343329767479050989072313498229997611412591984220107167848778710378597052572567566891029827542094611486241441075758704665335021256191081425312660069722549376390313846866522629540934242026220782582619477629161426048030631739946079077353861162043151031678030629390400937661260391783493594876802141567887537762532965041253931376595477853797756351198571709439049122767916452947065108547848799909251310183359269136964910979407092543641645930567652245512965925448835877509705015157827595309990411203998325040768999214858691262679509521463550341413222316594309976077859136216092694157620527944239331192887283248520551566940702172654282848176792728064580948552017905545280354257882328958387119471037528547459344665598022888363904345603482624048386976828799849356625569192932358455892512326928365398803224612497794079686062100521984829567564477999383168501649095200198814783163993088111843734948664333151629397218323379489846118177047296103904465888559917128117596669566613333673910114335795471897199807638985698582011333982862679209240463340192217504616228056998184987789825695161667350225866442475070768418663230106335379692348186150517500090215176132051447764694010051112101076662963440020041646434734687797142973613485442010603294946289494818091994397359541385045443647355937752460700173279698278592832375783755476768701951195215134337274931556613199334469162288608801935893738079712568401664780049008425859901131046675934882915221600479846978635425111386742421932384623507397625881013565486559527405330844467543603150241358989110199606884557472065841380995391988098725517630061593612712350258913348979432183652375253343231428946356944779066189233663023622479579670743002006904888589244973552655861725047813707994212585809478696550460775128571727111937722267962894618658106748805681509122737641420149853551877737313721103836253145354428790651617811431102847504911560765956675001977986102197333574732134687553344371211167503039550785645155237682175366209204998166749743373040614808211997276261970271650042099994200595585792363891619195478529274281806570741258456409352012817828503707117108187702115848992236189151665964232877785257499844322743051183760287930496400552459226065870918593735235038958492250630572595265994160144916954533022276819037989752463979702908877969139676193327627451337872554344552654549747049614586213847665022054219252389750041607529446951466747623181992912876247474500766249348486614209994244879240484203625230928220510957069678856925249918365990745745217346895882940936032083867842477276149080742090070523147841953407756079593567084892941292244537103784929688141685621064374630693047596095608704576429385985065278230200271919793678959087580731019912545071288653917581061405653327975023507200650858127578869015802932030529478544904089868308335196387400204986336513664151576115398953566078187073221037863680382912068300150815876309836131018581394288832232545969312917711886192496868768302347367493075286917997970672564059475564504931117308639088479605686440060186133388128640406082221160669251626699487489508892313301546834535548689104062210855193272860914733941904799250224104764423448740289827496030120476557359627842625294382661168287553367008787098930035729183578333771755230514507010153763698811450157644033555516992396587183624623464455882385393449949024106516395692134812127719457840463204356521864180999557125699420721132978932820996594072374906741365465886253570177856390449235679416131553074279528413916958234577005993440279890767973156623326198911352247243506790753050199169570701735462127276472473378121343478341586766773403106844826670712856142572285312760758848978668458352162007541858935148784560336920023104752937546503365099996274752094158500675164694746533347845318558891497532145412291802291974350898584241302730202312471489820444705805091034269958075495765872716355277406320990118417682729512334062742261988178297539561677768778171957952845187280423306007894680590288176715534593349884013159478294038411939041892981387086648427693102815929961223176980461623987798480619930168556765078336739418933737638352536243157895317154591609465858151875269235553859295845340364530718695135787363299537145681064619035502908185458734858490558686053471619521193449934419564146915511097113286315870385020114435571466116223114212496979040996468123631538682763830042142932551660886324244466405117507117448209009747896484029775485271214995814027706156656438005241267084983718829146582110517495346507140074485974576314408520306043213003238345090444593706028362326938473794301140217818298538300998104740283091705294125192307048458067400080875399724874756361747869381374548663302354171522460080396205245186518017897746126370568150654137491387762708272650186595809119653452418433046754320080106241828969757285758047670102057912166150448445046383072315072538014824428190636252830756210286403012271138020347871541037514378519416433738140562699079891733648526699867130064694442868981971568910325606446576811392498748732100821360715608741009455501257650027766365306600511893067091038831279977892039670326758141899447066437961519286216273454620647995550947669817969069268007847199734090484277042147174243149681732312579833883285206006851754922744879434957744126434715939837658764604643944204112090378088927582530812479353751444171460940993002087728894949521619161216853271928691039492265846438495761972693989169026502583546725261571804415036947723406267670500111397835231923173836394904890114652921590048233113687551289382389192895900420142232430277425988346564893806008357389556505418817529354910195914165277608014328613448681169708538288859056634727345302591244084025288192253501106580924685762579566044610418414256996415064778033936968320392255846577604203519212029103335134662894842970006997016539763840973171676800874675465693799767790034027832678724220155123621633394991396280902289238211026978814846041339031408700920860283287265790713568150541028197281060751538574755072071430215634276881368983464808925923746505254497443478568049704766424797675485309929273908607286064595775832128164601547436590301153252172560872321191012341142113637856299229812335288391823127165905111158895980571893331868068193842417928652171289070739967574727156340989880271637096998785810989687482365455247557363991049783888253765405253677189765638883254328545526660052524339271143080921074817610623711028183121936771157506728481198726238068929029560986073808045174983002631490584941068982078452426332420198492120652479307749155030445140861287382682445533760562106576185975538718246673417225939566521211095181595937358793781019576705317709295673418680372169875024963135336105837664970709830101190269574076136373286654869354567772670068167475583464872079882378212699300879502938683361503863603325943359556678260126229047086993086814281921532766245717032915502374739801913204603881901445253994621661794361784349083180795470670178114235367993048948808807688834093260799558047518762914701888017555643702846132746278956064243571670399590166416353757774867101749841200147385652768741229385844430795036008171916017273912184872566117784038686543344170338467547663548374873823916871636854042549692089660942405891100474069759651985103963866784105733916659230755119633944030429539500068849484240258816298698954970301591735695585921842070815902856758937877117234343725743644411195051645717314668359164134526068270920406613790294892911751409759752869298168771217659925482020527826595412442795791866100855496221334534093197356551136904937882470035236807861687291587671941576870079540721989960877052152428079022161294854312613507496013563363638706507282217562130773169738277858412481624411125589786903140644699118028548372727897945234488566517526093120968108142832795766350722873341575362217237796425292948930230433993718719963545082565631309508611492582204706739051673616008260259840807376868344129739090265462604060975007668082532353880612069554834971411286428650080708700964263811152553324139598739931211074166381244464766748326677027164107438543460129232093425735459121347210271331469276638938793535635364247984577730994682487661152044313049565538808012473089792378053868857016245213497953398138290069806708713621689520602076851023660335015013490335362712289216539179211311505633286149139896312921104832898556222435840019196631298280666431233009562311728423800552841957667105427596732432979330796205379879179255300214182249990578890690170578038993622953829861836692794350949214216495918055712508918500397320277812096504665422291659592834940678229804830240546032602876219177785716601058817055803439007525211528489061727487591903493939895700953325687813481495130029691958573377079166867200638889347266210366611232634477825072540691867134780779054911977367589325626491341557029056979979983116530401254784166829735161436548345266660607698941791124487767356794976139122282929372890174016272331681750336424865575597773439651495622536885102056823351331707720948588092934081344591690415829948271882704182453391902347037515232298327310056079374570228109643914899887130602704810327969830313811512161610342145579764372603176091329397379044948146900513183566353898167051069786920038526361375183574045241199621310682511141323552982727789355049311709543360682338780881127089870510675484817385272024156290855620326084331803778954060725329751247091461541322236523093900975982637081469349992634405257534497344845341462655765457134851383636907556476357037292650278073052818930718874275285001186980171940287119693605013464448680947816616199473720156404923149148806836401862248502780784001642158470783915049438151899067170720102080969839431314019736414774043501717687814962386963996904722561688128519633173509492701918179325850790625049179202495480413598787421154820057870561577262157351607931869153119302857289162240446865272757593463731521816847918812291257476115444627713238760218001972464408025137385552037121242192444644342178777324171179515867940600669277548202575721864425891669512492221200211918689585247765472924730678567431250591271770496727670722941691590390286679226975372515753696612004080870581234724394555036313389774668177323003910549492806806707970303928833725860943093735404019291818575634459205470205513300076247839679992189597184269923629536857717561339250695551281476838789354804607650293070184791181160512849494013878638999563353357651796403164992626406557792168610495359277098048573344745995843499628747548290593374829821035423688652001256540142235547170180114480923700314530498863480107551786860192485482182446503029105325697452702119782796693050686791470793221767087606886242513966814284168947338773037535009201409972768460386337496900545368874261532977511280314290135015823427001724066674580450772401971567201102563099258449881125284636649970347765148786901763590876219802351439228840159599094450550414715493434876183681103915841781753372332932052765400916727171848647090482378187917331473072062341264573084615100333703330445913281231244679493624555105352158811674316494840370726283097821074380182809116639952569193599823697293187406273458960416376863584554259141396849418586403896330797324179662896318504770813334103806063561561118886330096357190475147705807108845974018395686856065974551022256602282775676339172246946495949000101497233329061738560602705319698479727119278288527367650746883135815732149793426674813228332548072405130079508094442767961684462881535762114346784266127190529797351198157747546247020345775002511801022164550357593030797278012055497941750386833873776447448955424038481885821776833840301254222256449955400108775726022774928529116249798320501734816752803307276296156223904266157641198617094256667879633121324782761596495301990504264098920066018166923745259082203195589440937172162438726489597669309344038582871090999837876551728627247895544754520623729223644838918185669920411402321493302075853228044666247748904345948122459386946205629851968819881541033714224357308263411932979667880250163734024052583079906531422186192383206449315967452400713878092332856797898767570817329004732068175910933073411961824832789260600354894831354283980003202962735682302647415938211541364375829501491609439395305472674689110391607487714503410413915080909572007682851233522138318333372995140109703101097215950771880882972680021439921521144747327323789222450847566804899258998007112048483656130206904241540210316497182534191605663581061407353538662072030635451839913367722677626787383150961004635606024752040390704631427386151478537287637245206377239603364967018449490695688526102178738469134953176499123890432916844075724549229734329818098961032424523205410788884064138054324307768564946879438375846839929217966274024821924216856818761245837704170174177171469263312671220650834534755041105674408927843074378947527567887821434769194944601481856848846718486908178387249067915871046735980176559066095834702317172133392150880968036254556668448918897935683010833033253029624874652125829930577794726130202216378799461790752852889829438811154917930520499273822235962185479639171454781025494087951690496466486887694491347188961986499887490071452672946496524781421700928139229363545022925610920557198560073593471178352641706211018359212920552160120168861181258517298307471613603629831846650080650819906965248196149678791064232920476194098881101350964764358694123564678106816533996729146361098518455269963973040135924458186958214180937790466866905541817052080560430130055635753012776520586279782434776433402786007199328478090747313411552043942725096466692625045314776502283839197889915342658618966507817688868505953430295509720789826653851073005581448092504249696005536121207469809901618002499884101510605764315818130801717023513647788252376303522457119376473457425834168411317144176070255116872608859230721404953747348728670057609666407110213826668729412762829353843570961859453842800963062397929589266218077363594010594042885590162611005459464655829500596590732399994269098136737978566127437182019397214836895064574842049300760021377692932992277535668518163558045666890943433301106557139975456173768156681446494299590701639563556023390614485380177972579241704444173407263843297638835131350826353463472254828328162156605449812433207315924614445398665509977947346744029240932378908272698015601774460293684262423359469146611199737047818928861098842826315932291555991050048519436288134729480186090868669380898444416725996234965776301994663151269803508253628268392136006882501704335333109785654627970605033901188890989785947663064330079831094183097163644344581657877091067657427301794834336431734061533857644075026472350847146334319724481184799659838126162829971200558802402878208240768339285772128138748043367117314124813874693016344334624466100386748716057250797340180774046519237168391499045457865707892423207791063255963312050733136858835303617643632009414257791645963692027939482404568730979825903394106836193616524361717902803223687333226451237664660487703214173021943803389926229178530724266237983972605972500206372450520873607879249496610430016673299034506675704313846741907723299663558150464127211945365382687779845832509263920077933355569623913363270110696024264261412552182049565218901103376917356961129505309685929729199432819572413325975926985539705266466552384893763506070818787482156419401205901026070885798563994293306896342167665712265794770821478763273434607909675982407558522922524465018341828132250416822636592909137888202906631109420194792505510924358642500217717437341442790698060225394183082553219905134779456016106710235207634947045711452867486584193802469358216080421515624450987900346225415120714978707587925502415893501247201036991907344383593744868753916327925957693590553082651256521393163053324318166526283833407878033152545272722747359882940937505582484194002669508664010478832796992834186351319621315526607512681811294993950608496918307968946154191109763994275364637646815735026441136541015971945166104075754534021748699298297342744756411950958431311959247692620313284469326335456546640568130301785901827121405273967864660424709317415099484593455952196020066904938118696830132497950653095246395012653066264124032130110229609093930517396518434200290008489798751630069114872479773288208589427637289476010206856798674182647229863751098290228368468629619231653114777684006173680683877978552705014469884732801706375814775779699870636943496755360560574086803384202308804637174797796423868265957456436319904728109737714830789556270822563418980028492502143441514648208963367145949153866579433842948954769006489312364495323745471004646664645172755795698573476154723234067419237189803197955490938583668157563924685971497107781532572716797317943881575984297541612638349548576912223348751921406105568902122961599236089332340807078392224644342244479208413124968117693366994872718090846571984846951430220122719670583175686400624795955875399435766768477140214579278787908307889456420063810559375837870588202453579080079205867593325053067449449989511016357194130071496118593975275546573353800539891757900902523761899090415805200249111398461892422807023078675872007430266404779896684228241123734846884232746834291661793266290484631260048068228121430359316028000287041025290516483739899469881564573849980191617171221043639962857235730293827076489847708734281330923126466550298412636616776222897419507120987733668272996016108721393518269746074720965122983485989841001177942874628474585975833399935410877613026230271601135662667024275394872899792164167261539314956607924129066130506980132266841703234924678431663224964510045634644331649222851839837095615801047143083004168042123216121870590683076245362870061006363360993811955579815438988255365517505364196485373952150602622045317716587348352150982120519706982937679912162595833450352747889265620224933904309048082582649896914234387096715527982461257113971951387935586856727745230737813943929695124942856508129393549619173177067137348155504142922284598764141046046713506625162994119642063482707220409382274919232404336991257448863758576770695934766980999663814923700644797998661334265903643233857089787098543829801189925813385491634340731023812856304122890952415447086368809035832409974576122637465451458277268530982124185102636170682191739879250382005916024173894832792088276681116855008064550910102141179328628459390836357865516925569653152109344304319145490659905494315452399442476269342841048786561292745525949241104063967825083564513596960485072677544071843575970650920736580941552639870517217981813631555756165629613135066196344071509335788361412038263314269412474370496984675385499151120055932848568371730252526446136112597640636670016201262169212710130798882703455236537890543495482768925063324104941976604281179200357732071875315147247005123900070099774217368498597357008900316551372698669984798938341859486946672617095527163962003494130602985241133401484758461584006925195426959620458697689285059955350543418733233617760287242618166961763279850153670370805294505197673989725142904106351369485892415721389389007760707897812248212764175745963488655790891908802216883785166437762051056862746767131264101496935562439869155660310216613117537156877149619813998980807197891177279807199946543153911201178542803110622695688351687804171756694172159812289181987778199451456635443057334879268328286867727800151809967842766838699126058192348538869299187932292848726117209550985962927817599294374051745800306006779110563391316632037688184809830424688276558556382423317345433061136733567683007253352042723867885672645735475054438723850215116933120961902086173824942865787244678806179221054240290447196182743521558553369564076818816873246136017751524223604047567342318505092567263636161557513602163946361474513923706240410882938633659664333457658405315012178553322472593088728541758618017898297741952892915874685238647620782892694697674649207653978107065582746326069260590280735238666942427310440835419581666953564845321875294635518817014664185781115753005284221232129565651793463827414873131427581868263724544495352815570392284022609157023335447317597934395755342275375351007086087238518408513618405650233557397135885842423754692954702219099376617910212043548583417331848028010683336292449367359007231360086484878944041392299025119601551944523211013687340840487528715874412541585874749554958695326777911673719253193879906477336438002169127703997504306462497207314633295465669654257943587505695140122428473384717095803992533967488946822085331065908098662313229766383979564787141140381151224598881872064844413276782204480115495821047203852101155913770893772826982771772222760634972819493634221485585545846701853288560588156898580621900285032175536410695982296344873010723878646250746597575660736172103192198314030800840181320854064996217241245497117014854636431490470246682409328605380067142823727103514471105917755004097267532870586135728566185805015724689183654404414788722652460203130227036586031740127731903558022227513064074471236287756579390043447602473615530250658604698064493427856032145061228797711566198040006230248344455168963183201543549772330639528548778206382412448925128112471572312807047734366342272877441433938681482198340830296404707196657403126236876071084962478180073482216005953158736314733258678610450412766775966591483839779356934477523195939999595544252014051820684101381944959322704817285010801484643489314082079036394309842354727637702262389696006216754893282723407620587862936748951692104986127737354198889312990374829169317885252156691026772944158478622774093113989731299506270519544806315482697555335039929553110877985793635195491099912840616119467030941453073409883735259495539777001152296483078013313428879725141292363918000709704667200142870882989405246181832197096927946896382925303804466540295738286547303682383041954536493652885500648642827925953160257376145269385505335546576072177256885845301837117803046903568179277677826400206308515321694039987024605440083262863604825572832038725848285834399528099288505283427178306505755176974195381537128991101872551965164717382809207604114426286162218929811007200557722982640851674639345125807866081835926670206299265600677192501817561428177227545641211646381138049276640707201419174726148040368106283232560179982632106967950925633750839730573726960747142322173095715600449667823631511548867173874142784181339777838247167200086705328269386964681125343270668018663928951993009479567293328940718793508656437644171682993921387339250311695324359962397066598117468948473608393459977857422344476536431000050262771670901268565491150164387201704259226046279203202996782952564423697717215608957977705401584287706417258563985408069247755528854512467790789802625552736313058033910121196837278669081545384536199306570455603251010650572499906624524095170140672664306501025470147053165547612420108223750045381232496925305962059355840798134116079870341831466224231935670354313262515801566245425495209570193822263514637319379833328808994878110966017699525051833427496789694978751607273868690268004899422575696801681311481387001981262852283091925225462771798987098763973452647732394797676051959967947264165779458909624366410165805506569778959616264926142414147860674196551273060176711355046681561789795951965128836453376513378416173472323914962968689100190193201732450946854485157601457510774162421002659832005030143887347442875035417775649435557335850654186957894127228156594181028739222158022571314089959434436045633051230320842407577661163623032119489979653375561224392954661814873555016876947149907519967222619979675920656634733842772896947493498091676697688717517410858195329969994114839892062663653148059026390951783957344271082252512209193320893793535420197090585261034293934449118240134908076187332696109968487483450605657697553844077541904832645317667028862223941027527726435860736346375847593425888359643891253144318328420322686132037303457136247488965549024815939214737069191964576510374729078506784640534362547311798330154635678700749909395469672112003855128700880682448503937186828826877096248920855133856070635900932273914221809486592148067320703942102730355820821624062102696989454743954094430113786112018992070093167515839845260811461316374301150906203425144428433523132193428753565508879480541888867795590020774163048054223554611082643631073939893881127161895053790519404651319005582905448084020204197716702434378367345908450500242560207711078057055386905791691969508296951088865327522781314787063604769098680592170241023058989781723344510998634540529515480869743934653480719667352605401200971648866840283971519116192124742705592613938532478461322576263917674442126607151835252037838079010801832899324467394621418580318416745594556083883024605738083123243787842608323658899102482637759655506334754230478123990361879155127849889471213302131051097357749878298063131072534442000595109960142365345494149875401515794850993922039617168281806719602028917838994103341029284621361844548518712145312647403808147611294444478175067077824770407086859315505079946589072511420434655128760324717251292444229555258243593996329624602316866997687178361439982603591985158251237685404711216634100300170657516821258189710994057854269431356242895868886179267075697159478011826890805612300991331920828781900897749237157854488178295947123613628299113488429181144063530802966392796167308591478695595523795201851428453682125941660148579212716489601714459693473978106360443834412605456414020650783205261264694579565266891060340041122880570738351030725977058847677722367962777927294094102879494135144087205686927667293472053586110508218569730119716903010114379044850517549525424321501446117991403300798811979091454457422275492772851590840886223099224092367466127291356458534537272729928873105495868136311729469845907185247462654830257915009218156865830424761622871555710414737938964126075157727714046523267755609560197113124864164798481968079554051425416870796333811163914902835480185049758951740907135281255433562107671715068369475398543539261282287531246338363069404834357423420625298598687663059216531336465170790947308212486422246506395873733999630101368054481964604967308776977302501686438438241328269594913211160229209069389200942261183828448652985345373386427730540977018226889362722310136343463259014856938945019014586876914664166379304706909961498802037284140423603899507491473260319225314152604955604945965516940427747057443437782298076495945025976197081871539386368145618057926154769338847157180218417797874720768877619553332500653701716064593396472085462238447946573379950622357885666515571510865177861076958262053729680564496764947117153906647081870746855673416224487834938124725889609281039795988107068612285505435449635504101131671944641924417040616520359520289583571985728822729313729138302159792311895940188996568185681211732022065587306968399124479633107371086732117560975080183129405570146248660637588443380678154405653092047181111642100198292668678500330507482550008828084519624502224159908075167208239354877811153215129242986977965088269855561511665771160915212846938818365361378855189073643657295242655159855153454806139428006433326685275857521198240996020469270937375695474059339285057169553633136712042419689967208275579371013121989917221838039353623371339963016666829131129203527075772978374268439482815041124844636043002650892073258026732750264449901697028845028887930081723182754221342580314130167841577143882987764908243934485686898726937967018380101964643494128976687153501864994661260848531216449826091220275178862897812606735633264736927022376286100803755755654001350364130298276144134509510996867661973418933643429922982056522803533845323233469964946233955988151459680251130203645047060331465064173726679676628400800181600617346141843013792943873360919839685639044311067602518381222485786902671768655201794727241523723354175642713366412087296315148990686624783568981819646692584841934558640263458788121985062081173364507211681350015698249015400395381849074243974930923537096984906118493481885546972620690418131098670271046262631238661467257740076303060446703428935984361962316208079411083007446758375502762848619871481683491996421633204509943723578496062569574771722638201075204017527762560696994506944486300332014418292962870926305914804060992773081514299351311783411425400425628988195929040404701350804964548995751987746976206257404247054946335516047666913682342187815931239013975658971334885794598800880923905648534005792509568702397267840309430247675953573659513769282972351405236715701763800205511722132295291875177435522421196158725266124670068198796844714558271065142794070707527452165995775691516798216976237393617984157527751149952094480082805243590601928602676376626457246856028197274046292925137194159167920138221979929368413715190101822234305544045063239591981077791701734785866344245857359927171389754159200589533903207022326837986217632874805609295002254147579195113104133889908390132720808414870435383245286535067343211406713449679415096531085950146435843643198433959784679278656420974226088679904721453580596663321264168251747143335925319055029682495646545986597474100482626187864473154643335055486694801146614866744640359211949531562183033932386824848923147571237482786726109285997223316575308349986421028033813080366051631534421809699423189592667525771807058998087652519222794037517942652418157860609186754504891758614043178702016492759689852149243284224623454079999822525882098867153686459872043300591324727756321717157847274641205685651600287739672529950474743056340573215742211231691497520633782643288151973084094611998316648083036129597553138730461033504656813283088924108832925978843234362934159433160085713480570106558457079314447967955687314374305531378570296182869516477579930683979381462196457588498986509666123867288766803647832469143846426716868062432037692689418629738011858357267265126431588591868977429852149885233021342178723009901568660658958103770101038340084622453756299458805318307203326397579660626193101351573316672306258939771912086711308415444526062704030643347005490406686046764357412371225938219497219938643809862951180038107610910982168217401845196364233737212420181544586485890692812881696587043945430397763383444113774984102578249387551926663737019501672244701070710423613508931222261460739563350692217036429745760271124354976429874071576145725952848120152537706877111212971874183386654554423696943620866097818237616749221318623911811126216386250020250635552450956844089260587424506745268059693558524312834318807800534199679325508760613576268759207542289590206911834087994901458458062692623682100418504929013872886166760766863130297502948518369467625750173411588081702340201277201924598768617485670427065235335501632294558983641541767123781539530277782330144171629300516758114683270060718859375985035370600809454951817942068864889012412691870454108071415384024868164872299390919139239713799325572021719874223839388509188218479616277815531219428347390696928422423843805583735735260223249574059855665557069068514672936529709229482651086120796977689430897479224954709804030762313249884154728487730139407981718925064370873100675125937447845128651733218494502652844477390269173330792050747198437963472333211242429749343689595012436149376544491990471399588167233970248108561958089667242007334821450023579379141871992260279255955455938645908605051628732487357574310006641932055699995497448985140047153054998932914761000323890690171069928567803828126990433441984913236897190441033616162488183711132569638697408250006702369552900279493503049753977865103863643543127918425763617625372528046122716938038689084299694593952421570538990590305568144366193345467373691461325764266559620756889205254309528139258345449043381487354566938648343371854579438680805904006318030648274681948303157928124754999600366350594647458896634576643496142839023182967504653812505325196634641753957362602775107293598172471455147723943672230027267723830578960811448975803336029791702811318263772876734973563787984989001671091696558896537095081956363048982394361183417679567622354501555670967153585458927361925005256006224433909976222682116669923820901347674085932810907206620900704371753935422747367541132661290713932914124333149926041237007890600626632951799390258514685077494040437407798024385821371238908080546922507287501672214883860233877099597442510823690710546149403619027972364428710461585897713788679005977248389736305732883071031038853959157637424110047226245481466136393835771079157351611142445745413958778996522829354818109052119370918942583390736624851527047913870406897342614143039414078306073718516717975029513963641218081599957090371519315634516523901495399357035780436690372743223735478935108073456161801293233627755150266095729579336017730583644862126654261448894754184536064151417455568579981264198521324562269169458666722428380059385235033677367757403466853502746437541432284488575567304509593548472452801570011172264730405559258542772427559956795746662204013112272807295593474191454005573487981760424052487231505333887452480005415110649685403800136841128328264668890954144764201362919592154369698625439146599934121869282641773573021043985337167715378759955501228488637631412598973966450819075264269457059929090869674438790873266523826683542834255779592243534038830598419594364340333627774561058527988993773936504137453063071944973685978342648825238578550261800845793512897685609634344585152808771400677727773553252023369409084186984223595551124841808799271789079864611150895957798988494225172685271505226389931562363139976993316673530308841946548312275784143339049736101200862458503838165522921729012365138075640531601943112608148575853079689244374244382860350337699203973905387631452630218461801552937967139850285380327438623211010654477728564678749598929690537436201472430196010881227331414905088842677077984045775426415335460562934256750494983011012814694169613790008651674788492858147269564367359127422107926924203166717879745224530532592446241453060659146949114862509135275574269863465821644551159837530877200724561597835484069851189776703910500892407400865824871898850342625299505540644582070390891957690969989224365286694756366209978975013906271688348081690680037974662058515292336927179428400209193984270596465350165633730612090878812277391436579271460277541205295596723367278168978706038761056091008829417261574884261295115592014432723984151600106588604298661272347702228782400231034814860582156694810021945438567500995843587117534410789766194939728010010646441612303167916178929423937580876853720923173730650450734371936382739551809512688002486810555299734795114996950903195166897443498002137709330482196743203385609895404080996997431211811758201770455836636310647718596701143053629311036213649662529941221816173087831126795875614102156844038412326595393801011620547331523914636944493571844117835995373845170308580690715206983173247143068424884946957809458545894203256190473794277147025196970802245506357800876498909889373873167127087891160028586526380242841959948751981618030646771856925651582814769186327942977040845886281303009380232642632363494224773822048115036658228982823841296063009923753489061083770082967431367337972163174828674816456847300351074923707878027740566340855399472348617486608070251493573721628560541853041840254813637438213853746212630409523068415647450766650336567113922376480442998444007284162060382168543347562282386021609478125945551189526820195770645663797015752475309358027085412281714459996903544226160256322640762319780933470089553382029618144647955653645147133538067185048574417963837415694628814388133396750871492943210944000021249566382129341450459769966602315266248847563803615194961026155188085689486665233040936131772650013271572970038972267171698851144067414155783971728452770604066479422074739743558087346096525628577735326920647468530585769814713934715793192954077338626742729390980969900367923069225362676199875872856724562129683864157105916599497453025323841521772739698250825768896004504031089441736779020425473156412548917759988252453729745388875914995181082864889563944895775624635267746475824197947624022458208429234613657629694068457716297775559126444158066495203958570833423348498913551598062821542419889483954404826258356670599076722500791276598078194017823616129244786864684561883801001175152956882803340141958750131630154810384760624323046307565607295066794481706322556459087676071146065669455869045388703092009243922692054255355924609908705383874410978324831823291852220783858904379798717827264842375560385449382241519556917204839219582573230064529903889818720581908553960393546840548211705588596393276126462504034443445283722128562461007196966590064099915858692409295860494670785648402654232783334917624492856958972208499047590015770198991656424791651431271446792493734396098730460943792479992927996598798123376290387666684863952027065458228127719346314682220444357992935178292389843838112162840619383241891355057171754732975604334084237422249948594567256715954427298044733042086612334223807274126544961325085446405325149704291215958274457584226688998726826724657065696676396521619676060373370762251245327459758607817153779790210591585145565070826081093915652780672024913058910833385313070014621621679165755171079829369247035403207015411255839132330804937545086978432873052852529303591342790764340178574077107510878812002989634179523390797138849196072248665646653644770248755188226879287016492318412181059448232561727794054351834309301294739375005836040621410012757818515412899149404387840159908250387076107059007349279584710765554448286281713724898895016809994606484730850818023237689957360502460991339652907072852054034171890384569646627946796504398812986431697806357971233689214394480335965681122869937515701082496749061940277895055044227082174868396270410590038038016945241962184382942074024822672401849237788721358360081963036285560468392196328998876919253061263148602103346310593800043789714636744907653471372942685999670286229327474595870475775740486736449381674786483166764130656175617300665027182519522678863543368388567163389949779790665782553034502359277753813977643732755202272480373561735310841065891831615931272342154803456210469468966465420804220948462370906182690255187603366062367536978284583113454017049344918299711460133725467003417355035268206132096858744982236908189021748508212948462205534501339579369513698594834782263265948748787132805814406304432153359719419538157633479358201354126673991739538212652061629331198810380865650602466781004120287185856558824961751760805157635896360980259249850780088889094652536151237999815859319798553206475433150207769635403048540696851931334252364269766653060012908251806908881250195675902989862312975489061638024800002323518276526624764556626605488059612308278131923585835758713455572989700695192933921292172391539758635695899590716931662442306697415932744669102060917371696044274905513183862645079157048569995601243009337196691409341764871685832989430336951012347650598465419483960967315488657582425054002970293121263966564646744052417313670415415907184025008472863998197018323051063833341237511679719061225786886536033715745846784005895494461582553725114591583365753953003797609126548756799222097761801667113473542378514482190506157962184229575852126238868535520707264357426333046665274667038631632187571369404690304913701761569040964801888670095818937566084818591705118273121187115023766976630583084993574653529393974287459444478378272479157699292488106189050245662656530091010404446887340480713027536306908897750537712843553548644241123782894142762265747669035680877369042932846815220163919800566190479014763470156605776472526360137587570885214774856016154449099369728314602769682905309765372912090570041230567016096059030617015598111894732421621223368568462695759115661268992829943434839154138770694497807881188832878233685768815689577066007054818293347887854911005952077868646405005617318692746161213438256690404398410870100273794656531013104040229880426676921540221899479234598714235276372947146214895319386151087590204551455098599548764021344855040956719179275337007197338633635813831496312847419921903681348934501127029685310602870232011500140943949829523150491881662951764796531495260319372727622227312204949446956695165676436185609223079442298649041439427947999050339962849444957306676836347411422988857210886728054042845800114650184811634295640539456430598882265609174123497178696955946589433707136918534943498776185099024376066754471865591175069241059908184907310443879064440294861783007342782071704922263719771413185629024978381049379605040204298340719561700232740414063449284899536770716185012866961439382977037152088237884615749024206613823924186966434243583187471934716338664754721002639357506177919864469464749133056271865942089510682921489684986734973663548293525130625770907960935529782246971165157286927395410891520800340510437440455220701297947356859831208581739998990615119654061926264681035177142248288860997818143123956890923708387273791837589855285564861108223023761302326651100013539683614694967676974517634703111602224816065948094689042542990952803122022458183936130697348748461150015523164828932034554624945912229734737795506415270967941410762033926384735285049561577998436669060259707992306360458953377885894414501324281785215818843237443686351758060646487310474001946076637625556604370187369345374814501583023080564867699280499874438419381408224109387435122188904341460435216577152151842072114505029991419720629298123336337105409284627117008870015505354790266898376658543195745057163158692627011659633897905918839378167033672158163961890858008728017594397534531284226994203650573897266311157210233244137896803380673365894069042086789832984541043224264167440024666610415480772374883419019947649676868715652315955018220302691544416137433080004999030439478962920301651619020867794032261140565091731507899724886676538705008860844254058736811729254185190361698812862627214673390982543268389377658339857820646354401010843507974920681839061264414635839849822136428558895590112306393401168299767259263713822400982824315041121936672173368260356661342420608233547424904731289479586621329661216616082213140712227866024309940888359774482695231787014906875717937198211862306923722218218213990084080752206164786208076777843081201607120068495321333707168313657441309149833055515065236489640128383009058201345727558776732668032616429006462700040537427093498995959143990991980193845390514372824651264375456423261645949652742699934378307768382948026503631091092970155538306552211743982505962041672895517301011720291542070523928186680029137375609097878930576605444640298677377479665183482771119443150655846664411683008748943875418869894014919752377941934457670476166539782799653689309237877484421470762254617560291331943180216994237721668976788081566064553028779217920058196233013390765427836082434962971997215266312408132035273300682994519833171657189850970964153109179185544187569679878448675948703197390431771382690625714311716598883537951116896783396822956815896367277964157155083043436321497282326858087172834100473296406950838565674648495053546162023005984846619611425346212445403876870687953354947143365694179061711514196095860767774626505037338158467124131252850060657158382219250999210344304046342807830174174730116044898013731935429424521114257455711064304474288131159809186323914873152985490743386073548167009059303673541496753594386615460701950881908937590581845287792872934332387584711981552175359270321964454274174516719813641007841725930735811599818837632627914228702437319309259629174649449199672849984243065665539108714408460656559900083529217365542990211271510502509022731235312663870141555686750439200336098208840132490900866483183583130213071424301458285153780570352107839051587401390031303276742042438341430385722693262466840487553826597435975463825244024127673846622762941430694749125637581202044847006368601701344936201123629432902611213741727122132681923438241643260053620799173617896113733443126961051702826962831507773779156514360899785077660887772042330012852306178218319918737026318427334427505750480052914699548202908274212640006934054214534023963849156739229370178925413118057379001078831829945600370999264519593510298563691942755108839537161271336200823570332534449163990396661131113191273569456668175078686577458030647722513943017539961544060917694972249581871234384175369931307377410732991788720073276432076164318768339576904612894941640400198421029211964583070634183734357323279227823877125953257682526855111194416071753814032175485458636342682771705771312288627197519277458224471205044023355076668624998268077160201285924105038442955262931234154997473746594174716338808549714247584431619065989945500295666527864585457933168449117043777996271932647530795786802516318782104421635373401532939537339005095845938803406803319142424396551524317628059800481499427233961016137189666886140976442575153388533173867925981035571317138530832734803030659875212227359592866945236300995837677983999091677885814788162736759253483945133281829071330827828466601800008567931852395472748269706272281343004214548147142753559647794477391861147159901521494808691286458279925695489649230738951750197899643563141435063166835525150122799434660218276494759950326013835351363514313250449326048667628160191056614016031184808293708277613756322494006291427475077218921304907138647754737661640058147654197113622210244399357137697928039618946651220020065033045321149515429080813262198970393368079629092444152153759191602024907263163054892500314744995134368815889375279609930600088370579141297933280166698058016459742232802429370055729386064905104955938117031689484529559074609578618351442409705301294880340494120841359343518767956026746415455384674472531971551059111250360004271418832053059342538976908276014925489248037308274253259793403364121307705492045383273637405360713035461983447708626363936239027676122739760737279202897952514528264968623190870948337872559984059938999105952685551066250943882397659562396205658726884865472758357830203618059321703130017539974387013598587208853253684039651359394608742412000180398387476814312262972452271239054982428998618047555715938185207317498402475500462125853471065517698730867209999622763246772624916141535235021552852248040280496851433702726870215543731807385170742805124770428400594929478119834805316161220190174214902305664157852177642281972555664834541622654663975790423473372146355044842241357089432342561026852157379310795041026844172633492405191514619274018275121736613680502690526730825106725234911037628874217150502948134192762072408242720730918475877131598864720221490283174261771149004689935928699056996108309504547429485750986538581452543687293090929690117979195671533030322465198940690175634635652595940377371401857553688461928012477722045409602656810435397235302442112788453932507861021152565283150350526403393621434454285773897499119622226507892393576685989983688547761827908428992741194626195861817941732897551733265850743646812175031914326013156281948644826032084877640818527445961895656325864989847969160358272675673371418352045249524046818928184329787394440233138571757875427990362677150042959613680348568826740449983744186685924107960504741882709136910071401678655538685433383993204980547002018976901960323318607303310443555045006010763497461764328705211302486822070511954525140683045888049143977827977291530237494987182606543523426130521084759314773106008133916153757144156960099151214416030583592522339205663385762735014759479418908077788854990210420457773521881918329997691292150722855222280941547301290231728572663996242684603028886143422806112565191584423907110532676040817751905400616714522097378012187876323563489652226855243826925864318010425100136032646190782506727333588043782156229487031370827189928873141932893041788799322925838468542679237891649312458009922479537741760379897516982865202722856711352927349088110709689231117327083195995065387454094938973154682183987541239510952855079323963343667601398948450951929377560062033061217005936289052900945538421071672446145165094299455372734258433725505923793017012168722384597946753930695484998211978811996777367556350759703138263698695300583942969570954312051261823619080027215492759323631566494332485837454957450134443676340546498365588470858915937192750147568769692330775941856490310901708391881383628058165377687111600597717463744654870160457790364474413748596358082457251579119789789254265210263918246205780771145694542180812423447130290646133228223063969783362549888431347216176141418035345438864455467692403770844989006639706721454517452465728596992208106652893954217477986281206062086183830386560537914954178322863524721868138326799813219762877325385368118106157918455356425076479119026621258788656035750573599665323809807866461970882657362163269659573058697321067125603551192402140332846712733678894389278942377887021921504655854920221805524197573772898610447665177342894157972119456245052170102535242843770789503686661453009907481544956652755545666158059565016222510013517014205736508380970997265901175881526988937271736403216927107396106240927076457135417527580492093464419220342562519928254597144078711700393847752681750711090472822191316340875236618378510554642004701751439434640373658459862708308793754826735580138142936834480389896629964025923094363003065357145960418925733312191330075911343754911927910719152993961595612396494258115170611291743162019325426318916619553232032488120731021063629402657102220207050399265077382834705502820426270991449525486273998066646122297411773255940112065637429613461816214348276339005147268602255618493719382093985053192435867411007453718702519581694008305388401971780991130651312081658777441319077371176376566598028653295980456747010585458945454456146427127392040594798771169980720401830609829069109597567295806480351887726431042445784048432955213739293975800344711131881940241121151610582316516590216218989242714486775867807321424146750311265687133156496106047324067514195348868790537942573007121367016839535351498262005925536182305178598080603288636266044800027114771095372966853359873237740430835643829939646212411509833011109569489135306623668286181120649603403285558037957613478712702996163938947126418566572304935482213153846699579010932025783290514420831241634543023645932948660301324505618249152284962848589740862021880451723822883598788960424798031106725455146955393540632445334508219350567730226420709793633048116495270564066626109186725186452363697647395306659601665267613632158162945460938434378250019202830802146699247269088121628713041325972864236822298072206895161878205319148770929542813060381737436835729399843724922682975014807492755041343557873186708175310671817496412955535567807301785144582143994047492266244458054532531146449350133390609460481551572186810755759812258692164095257538456793785625007127158970133255798564294020549863421854937096296257578719131817457987504480383390732700190699517282791381789737613869514735761761760683773770332134447726506219067325392597290031038952543589815132440096024231374407219961466562541850993686564836241059038342935859401572397539894837613001139927933249970028824606870585725571419754355665534181211151493212281927202038410691915722848697677273567898324997612765617849256347971373700311359333402395188688269849118195763300631672029415917864088514922674546056653730250500945829366097476343346704626093751604146819823519902134563527023343835420405396710567345044276177286008418486989713343932931887171625998542056261299222214230780117882959312875906420883346797488928932543280699749729912399768647544193614132722502706174291852447346173717712951324484205736617418024595296151114671189293165678558308943305942602765338691680180838384983513453903614607130323843040097140032730903933397859264396036258857772597689691477133008990743513061374559767921376968577299680844503481225371926666076575504388071831748382893253184116864746173495657986238639483043111757916024058881062458069713947114154713482931790543299815079731125129169722915351859814036330404229804185016007721100628618007927142299099615780347730875588817907709470242154753230746327950278093068922617487167698132443672570028818913105634844160876210941837725011168901268134974715266433438171952772469951518538827304653261297126102504630037553902406075976111454091886341243450989634993771504511389891224791813094321494686556076937335667096503726990466922490766316049646132509894003797702842566274836032916227659786733339360504453498075725132099558624392059223665219377764273720441067437925548898995529367678327234369712435648649395489366952550542656951279742435517566059050509587510904431689854760130924600313904184239756491110066302909353160379463098257712429405502243179842510086516190441907880018544428204854853997610644920694365893657247402172442957396279619558241152956954448185625194839739424634195222065714937118348914356799067952211472915591514917192998553028874750703734008066768655250120658226364323481446828552888899172365326145303182657420079601006407690441737659484100169227796965548179803466044924201755559143303412642185395599469293565408187907926312192347944227323410494140933964861212596895257835190899693233358071323468739039970262265910348504544356471721357274466275186206835025907090805623956447282755087511326294576582660301788748027483333542686297871717876040675255112667566609235564817385562236284245649882297288710903673787510526462442676562789541254071301035611503638001359994120430747471881914423731854082776045405129802702766953231577652633935747913665695409395227799470343921718291225637980655781813956003183741230833191870470078386325590544428980725525602721982478075203010004987023258374553114686882378973979269182376311264332235517918540282133140259344254190110469388017767837811464353445996881757895407840585231353544223090936687120412808100644854346862993217680968803413617196960931901038036659073633065249637255058579123063262005218592790024848394946043923278317211959423123795264574706098730789590713715760404779463737869860234038607764636336211934116746413239721626751008708571031523894546488950212792764626762047223464574696259891535183254477565210242999725834842258595377179343367843560764796611632103678559814465079343321274361355244720529327675922209284873286788310443742641299630479341649341350066024215300536567732824356401853827304932169862108483191192691514343955367392447730206954307983470951335423161255840725952889480394475455035932678134284021065292635194798071528865354391145483669544402123860211450433745253657757940547483027837853023900295378675254698462293967897180845069756085322748512135516579275240016141642253516432916527199426942198954561235313186018664109201139410720690255422574832830448760554065394045650512417910536068584844191408539874707171076217944185603803680981745001254352778542933609129205858061071614652728087804217600983757215725160096641055861495617863847452741585727756634398569521991150531746218502174353106418879618609438423301483403421916125027178040664917017625593751822500450013186971509300887641520343741725241249175206489527987026016392418746551567862222727138027118048962292717889001106111576267774979034654419169252476961155771337491810446708186885631687994524980279601081071774935498638695729323169159588434145985274512268625628485691137970563016371688930311594459094981424359737087298245880683494462038441197927245776821459890020774464386881165532004087056620691541380745545705039199296673911934941915617646187334673173897615627647211516342074904184811196057543883862350270348632661822732553378189885602826802572449537349706859544628288897487471882586350568875867014434447758778723733378524055830478067334967212857729892627310476265337236402251649118701247945070163745455766105624058184057019770889326367759148212718891525317797625932689160454859060995919339480731529519263114597220417609611376456652680277196514920015785109164649693208857314417207218359833051831082379068734038291200899170724721567353286507486374207730154800843703773143239296679222607967267019235504981819459194740799583646593143205718180103140597520617182474353066580600902369995426967564612917903021104006490217999093796463842383053994123671758847190759031205197854366249260684714886517546515078325455119258304820440072016126436958226892510927705849585637992132175802596770359096579917747757842540281939497819740231595673379926141029368549072066812655072369151124533913939311043488551875442347314467532439625558916509844630891518970555646749621590289695413037254879628632618919109374281233016224278476249297869290864691005738532657212998142059583039028348212838856422980717344412791370265727006177313498825540490664054319152091225497811936303120893075329903241838661763806893141964670576108553008575143619997324354251571020552732455425896690643076777866605164841521588773877146714046277215896905388333220666978991694016063074191236322892509710749783124745054362025286906796009542766485894402085827816621875049009742277532730844938115617500929714163776479931386531253834561177272837347089668775909996004945598518241944983021269401238840902349425551369137676175531078544801445979385327513644425473364039277780366239266502996992592272642347389440107390463752252310557818456379718956610523399388057839166718555945611022744021808363100349671337741923519863862573235303725973072934480254353987251246831029227374192637311277083126164726345450076943902932653796926979217331061789497374735947310110631416033422030518215874925008957804727970326155150759599636397178754213953786844836316593046368758728552506875990175103466473529095687238606651009764081220722954012504176498394364468440499206614507808966272596342508534193027708141021831142180046351254845114738700486267760622297423127964880783216717777666656627097827629710090745936856250156548272865485521521202298327768548713150137851907705923896796109115597455054631331930152960752713501342497454530701388048098597993483827464585821947212937076590491572281032693338483622497633772710872096188665849420230347606514253318698512197127781780182285875684520279808776881484485655263431677209318174673442563742724653537583035462130988457404391752077896217351036214464659840989918065896011891099915366401920984903420295500483425466438381734164435754299181887805796511861902862427787003038163890334513196098021470348741478378635562233446421066096125668918823372216839931863998824603410434961575177070423069386806862368594118869027011260544615424143725690616591140799212851704351313993109013353106401946410376271325292421981245647294376965794537606088287089229797179692218958890386044002254155414885689298193367286605469975969531525870501036672914532364535001619492054715779371887626664877259053579214230034894661959196425678938889369212048799750955257786261481651707535887019524281899480482403128715040632717498577220436928035470057538665345085213646413426706070035400801247105951320954298715863757152149474736052889091037538861871280820156722469921649460427253910841216048123660247911818975019643004355971166611981632285272265715589783580668101087163948371466539678268055930154042674156082215795569400120497643222590617764084924371390736759384669465439670922483476339019199826011279237132642556815017944890074169827179654192312275233214656905434333046233520865767244206082950921484163565158518378116638650234183723929916386703880948975888224234774500123926159688420251211426609582442920750359422310336855389406470372637771083720129159395058103383240749756807604742422227999804045787378774322808484689783341435300022310616948345204153667557281424428447802569182358539476695839830957406219115075693800637025757808832832655704773060069806054163795175558791108722832210316298114584785970158402307192179899002427883928636512847194998567568389127353159082757644528705388327960098356950256411620907770341341706391887084056497197684014664384976203957907793940584088857808668007973313732461379301102465618184423252637979312737784234289265879592172757929958789538395960993515734175780809049614521575863422626455427083831080049580588254659475945342854291462947272277002349007192425180557163279803058079014166921218153918282003306875808512104427031838500393977737686190175503972620516139703438744251132211750121413563748826210383483289251533035749478100223825291745583699681237194208503032802307873017127713964410652452978888224631475331320525134482133213833506759477159528238014579949401485857735000680777225978974472074619636234468740081725685507096442565986309683033668391513677294227501931185086720732876123407252907340630713279848970167668969433176689742102904899158095725880529814541164895245731763362055541199347135829030060614600743458376155770633765098660118419468858901980045160000396411821544097049999513189275723450041530110000596167652417407399991112273393136826658596066638297449667992336257038352483577003245259366483873646167112886551046178001141366179145048841801749738352976662216428124130068043280293356251715949879044034901741189118112172839680040451375265736337814089873956432584520217449263522082392094336557089073430470603791928146070989798698542480131448122396104474725464681017809377149770005350639074704701081739049191039769512339445142333311506136643466895968636214184131282064002207681938435357963327548550312595109505775247473463010231509036807886337791002717272379586989463734668101701801890783228183327131089056332049174084035699748990316129796711842263011114054114307775600239336068124766828552411966609884966919374949847823014050454480643343731765297643963869197955187877267732368627526228912874382480559030791602842939816289544203884446205393351641376696504251261543779598341823112648353793296429623278637689305830107384147754307020537456604113461163930081959728600405903528712173765041307105170630412224417220663775447068281690923198849206944313530506888101946601411152821278224605261030648194595262537039520088225152157811315090001185890003908799119476812756803542887016795904307127081957672001826503081921360848644641413096097482577197035976646360972452575311882710147585550308750937460368783711495231026152496777084461260345871631973692982193267948507661122298711903356168996707440502653575244173272888072507381702651762027362563793916346057424087204341216142387542279543108376263263590716707484171282044459544302397794863467158712414726420242954673316507604122545099558209603757844449499932083275268235939049283657106721773524807992431801975429459056276710573657401083953610346873362729909659993599919583357747654468195115518866159552861782060980583651420180754929128858336224667320480240110594442611864290397446428711695642661730029220841516357762577885064558946299440616807262939254994366241291895216781305692489189472005881091007870011736074325204403555202537731365853587983220941735582746681978838130080533270320667231675855812933094298376064169908780735193361503376753177724839470226893697858844025804497932848818926986415713891701227243053769674868219498467778409808596418319691596970445406894880141681351274553677056556102315928643271183479149906867942255572739907755084905370929474830035018956040146175068299086438453355981575986513843999362924619060422774746832668692203219791055367049738549133700001373747269279059208654296079445076506513323524989704053248734398054793350925269891580889569186855430810221332774498291491713648007293198304760262305344656499543414282269419608700595214879506019512319581664099862509633917253162261446700581423930627363870925837989632292705014015246313846213953426339557613890216378353301410315051156689546508970481566653651896422474861050649196824912249063445824427070378973417847913416558065198322019075895886058967463976808478362345834595116261517634268237071819252776332361545366063327636082785075468787388482850699016697869344978199209467549433809488929155322973571296000328380557253914575494856548820493502399315877019435354757621504903439655971701474051900193073050077080907342971957363388097474623829732819306982656717137774687273862941524057901195491610681764723153029476757086160094391828449956481566129730817721203135455362676226717407634597442096841264072553423511290419191641648221152928100649892562220123262340956116666980116666809216911680980653800835730249146669350325588959020096502773828427485049816966900378137433421598641817037422349575906645521438845527732710692909900055246151831347772735019886562738121628058407044005203163360651775768522349266352687083466427886761430830658730486550076873495401187427528913374620055120870488146409306852120527680858773891109066221292503924108264435031882447896958070629052020114423601281836211008313929085528505729930434317198286239042025752628930429326224353485725112447652505045814624836769589516302298975951753456000867223384043517573622758310106959336741564251063432223876531823089987016249211629852578736881943035872877738528026161101512993907481703087554321644440545267103039812154227928189888769711428827452360522613827462939731207541352604161316924324146567613654541849466699695083023248850292516324795085465071354206243922773299393106559898603183013949133209430893143012129755013689497908031284777338332293232459530456207164624011673144012146921097327277249427242044364627928467864717333618567244588275016831738851393979664595000028273490459873676392100174790405704486096242992026647683959930474017796334825428175545489793872777870134747844556354989294205766294511346126681258300418885449072778514943089725021796259474285379665109994422529676332521048841299283261058311170299817474008169252080381964390075708514920922772796588569598228555430733990875817885985577427930717151776419641979341214578564822474002123963773577790478374466892034565477310709736213951500075273345413600872981670683692428573015348718665928379625363596403865767583622345982912731007293421033411299174877550156374948483617177754520816546091261131104956601916604248060431413138408504002182518456044669157120439540208829201571542052444615418571402655724506568281799658396800152190426288217036588213261904295382189420869825549693260628394913901765000184257778379024362844780737116758460178767872699634581922095812378805876363201157400780789662771136012687162746157025259887759959827297373711156416346327613189274098019288831968524847187991057581333240817356630569986710966029666306095686961771357195777369192426311375310343700159325515869694397577645523498138573725863954641996750787954605622910019760343669526664088415557758052294652761031713019971528290526142820486985817069721554838734327490069301951092320795929842188473295733495612032830615829691275810755660425850347377915261640418068664528079746756120072887030557248362555375895545945459468156271425685785574689510322201278718694395477605920668701031543562184940176855761432342451986446625965418345269180362811239837125594470946734813757702880186840084618363707746705007354235839043081147035007234685336123771956662718332429882716889677630633702723966355602984196825023786222893948291334088987360403584967574830380253916647468978053932738838390724140220578693119532171859889030071691460577838651447126561188315781605231556971952578574993445099017307815648218027817658814895956121232044067176186149816633336694305117629700172620551622821561597535553031204121816332985133433256445960775199925010206066731831001550729080575680371079377582429555438658791483417572614244972627714319782239779408492470427958781203011290325127105781600622018899180057427381006379136561346914071405683776585274504653913776789952086905503096025740967227200849008529217599446620681949339952448396973743838214932798771557091739459995434203273994476437281832624493039128815322776057832257788838163113444752088543040780117542525620869565589334153547414645388636347172454069409557434781187367886380402899046178623722484859864385459462056548376671733674052371529556405673746354141829543320773485677212701039713099608973979047093315482972467473300584962585375113035906721417827010955064996568174438671912702212788800617063281492896558894438173871122708551831049515061062346773666210361359307456447666195788891757529586104837698741338411145556863338909635133076404141324881705435735630175019533442437430727184428692850363021727871425682354455076242608200304737594536470233586726618189424036351158830971961566373017120059778186487481929744382077474547894614845807565450379569394999193412338050146252990837450500882814796620420710259664242595811856484689145261942352368995476346149923165862383055070071780945444134936299009261556802575051283712474205977431039583686395856223897452275882760919738871642783860728917227394637156599651391931770673178417274684743022793766357338137026140789044709755656667914261332893109545862669421348078477616866500135657953221115944777581718717772588053258444064669918127671776292235377805127196140296051486960765862295011903767930228010210903510405641490698194409126178974373252760585884627511062809162184362101163995564279064347186169857177543214084000380606734414257567072056108746379333094127892212920183006165425049726985284514299946253637579849101733742959090597403067055983147347051809254079428660308067409621534321936864727566577662784538314938553163406417330433806058116938355898551626713957488729659578326648550549456156734549327972474888689409788692160780545217737575353762863165246239554889080130447692972473363708474810326788914561085984380338653310198155863750696848579059861410112388336591228035274662364422909928692314694191041076430888276631531858384519927544748221380150045674107090218861171714867260969932576141861758257855144539051698421673962177078355043528678063421481684749392393208435998050595155444627439083020633180621003993836681060052999250339589110424897127259892878920018131265953622056584762320471325485715141518465264075626561440050440389852507434992952994112501400394573137593840836706239840585606047645721762992162693428080016899493572765456056498145780977356283509158544413124929624693550304876839778171653124303570190150475052856459612449396438506137048002103231563354889459527305879234733100220705383897771727336341680773215225674950113974133686983479065432889998711603001526810429425628824313817517846563442799038053126715899422724991636216306113696703425008982882408240271281925450875816079374633737302033046827786253936726133390247069467141853698765048360370876719714402955266980524559955769453512585741495376822426141948391018387708505889785519693421227125506148851777733283685088020090910879237375750251669086640204604104841142593791223255134571781411075210155240887940520237413729940754997123207417493999508725101585081192507513449718506143133185231020549590618341290831401406495822987619557207706748307703492625966615456904577051786393839518927541619007816208019689590162560377994276443082457555203927574276689043443524534781984829901469027446202206571251094056159585665102541239670455111745962402765845426895358312508801192782265758647086359678628339209629027590270995672593979147145213467944578939440830460676688740431813981661264309536228434714909155757340091886738775733109969172840445015290906402737941602137529189326068863650898658406697329332487369025632710884903807528292907199387513942950796803222737749374091059309426190868853052084413582389367471014275391835176721194342551900456613711333162016554325828277912743749939625429646819777738884614443119011704590953687904322122646003174128251313807154453548123617094552243352831291295656990216604797688737750824929252659379087276278895657412981311148503139639562243746436513985086785717648995987979555799284075576113826241064704502134172766030356327711975265327760693213702557156800549312369026719253454739621054583548544739608577942874568323945514030461134892898912622331793586621243363710418387800312039677287591184475697543656750035808279187628446443629893782097304333990104668890423548529409571177236075080687347841829099497982565598424355424828322396815727357914551055559313899560277541754322341544869081436096549665777925437730022150883756309285516633764360815919557422220671954565391518820967920531026023114751090524143488737577311258990816388221237956077307230082303416190427133241769433764857908434858475162524106121608930789883100659300571716980607258502703052271575133756895208898581853002549752416500472561512442932407562288797126032689201637260934068463511848973059267018228443673358512445359412982062271366095129373405128169620823792450664064247173023784578199482304917611723437636198135800365078183607160372444746475837756623286743860496996864534367507169988820710939241515178798909988585604985507440521148151839095522786080547428411886256642109243617258994808724449917422163389016153253073126361948453576237320678548265748596604949251226183931197948073941066902196358633109902639862355353002248277123615119711900024293997025514927577857289458652019096388748250449667842187312036221793401984781346788182173283721168491217014871590894829873573612826841591219190265288527777146145214415076843210953464712784048457588840911826452190655825370417957083596931831621027908386868116329495776442886377743424623068858227318054449743923208540423682670590067038212811408211767154034050497588811607250361425080822984730936806320318308869106891519514305621190641285313947982349910525652677495066910366607260679515536177202485844930037573536361731875980055347744812403956117997439881689273024516576464772912115424771713477191331293069230284070982181318467704273101651753393118390823226216467526271379902178270540296195713104238926526453896227159448795652640421970777600955933509523820836456394515647677392695684182414162268784178525227072427675547948189768887838591808690716123658779696178976495132072498133875378425960561284112344396703937029351557064768969822612108825281967380543899109942988449739913239382161040718616079155886972694641088236257168361828740733304705846089281105398184379407974556959333649856022623782740263494834712807478546821031635893128347601514766070518263663909252023979802898089964416004308234626968744534400072905356789989395507774975689676003863000985677758042344016625429231328392062464621147599743304492448708793774177817741500162390278014027725799123466942393251860523720209271486532051745343628890816115276085769795761706754988037771578978714877136682908176713443412935774241858258665541209772051076346686392875137082127513214126989413549836553566279649322953711976966198098211084357670676822542436028053983696934894882762076187495405156487968257962762177207278121009745963496232712189248040191240961141044295728182231166297436182368398479654814733697281860116419378946796831468124413718986563832102664734638161234135618890844619836323119070694870230674104996509526397736246041335249225347181338361024268938617935426064269810549286945838290722201605374107425541756653723335783186420364047747014386087442080342567818623705550646732502195694868590297963383986905325218911091080509568530379152916474129897690682321568344127310023702137086030150323831531593390451946439018582075718574265583292533219507826557720018329536598844739581126185484343775663864178222170539280070623739899416769841886015787907762773833639870688164648900101573477382513206963970711713057223500964233896080161375939093206777613951419319469419832660417740440491926859603088412578742553408453814179849243098055876949857650111246182412143215852803708965848455232354119492549052916326367793496596534352062190566966911146477129699846894754003496433360524487151761302963481546126088262551379759832059969265028343443660437462030052921946784014621048738764871962988520572297071489845066968680609536783569839511996284817520317517957707349607120969906351015124230359238892942393390431086725095172549863656728389918439681033626850465763314664885178793845782691719387598394834422172113044661003531430259647412852911083318402648614936108931094979899296429231582307357175616132169251029161606380019280610327202095862215309276356778189579005955290641147286741513367032832064488069576032858469540234051220220722994951359377820228779551349109724846505734972284624309847401365483486893740852616043087000192555100984707834528492279126496631307422070759554679336256022831924541585667576268946459677183290708535047956797757887593112776586437734713224279356556589983305409420874260059983832378242019630289964201369561664148284239763564906269860279496174208915775348820736215515931208314907059379337909757996146443316573075257258975294326142364279776275014734344019250933047039871554055760541478507307534683872134435764404170142795589188752309279033659025230235388933099547875886814459740112896725614851933959675933735063650145992341212797943750841920650157178003169611320084773956656847616809104491271531273973373829160776631096601993051395862510233277206154340585676297848129945517643547011881130274837917659112031068928240775096683781971216850512122222663708826560674490972012160621244972001257856755926737790230025873900303244023842611455924667861240222662053785934998452192068987607078371809485698693149490222690236251809871686149759068254308752070416332611751710541347714512116619871821767513613011349614011185522287649662500049559115398270127774456327492470241375319887853467900343780407299515621586679180866490543843141155112379199057331852958557873767671380467115761325162299468582163427243478253519660953925676840644057577421473534447243163845037823024140652451957479841553373836017634747717873577591360752305018018418892851713775717936695157258092643955078579146471318264950296649578206116011963137983077916058746577764956346390069613030456045031879503214546487330155625793458223873476338443657334719705188283769319961646583401757368715844816768866029514550354251394633779704454156732035282387332636201893970848986077488795781407796439760237943949890403278750424895457328681154109497291214142313529882956930213611634358596643512568882731027921181641955276002182353376190747246476358647059338180158339724034399960977694279727335565040330606150688520742392619660623074208352908259553986958518772984549263963276759235916107460641223416651808854922382847795562700296278367299489671944907861702731141825572606912529200914462916822757282488131837028758405038071468682460247382864570319846096158664907052087290817890324129393706805811887144099033465023826417508454587849203170137601345952263162921766212980978792314162697580447225558354600412479775546043271707309771793791272101485914183861785000495019349418781595228952794231274467712261847028830417861968746812365724830677189654511610084546295470488958321872776947000240083832928262063385951027311293712290712333774712714173406092499383734954060788078607499714332857826938063577903784598681583606503285106167562149715347383180534841609650947148451651129740254192064740891443286630658178540890470899122395407857235455994830944049454862595866548065641274818478138442717203205972592235718327865493277341418167798089615005372464133747311410160758528614534073188679934022129726778991275256754112179796730050167913961752957483454202041009034937427699287738547035600423910497809655535634516122771264487704070003346584122191945082251497881224302924317368093887181739856872327094952561476958291339758502332692078594890003990729853319588190233672523245187578027048141565917909583396108211224758270583434442037487261619917597032881660487569486264886670447869963229146554852770745255756399327063928836782536981682576968672326023664728978570398371543840224191098223852466110308701970984092652037713657844733395780915736974951967093747018943006811629166356578561658003828211241825690136556453400152905377043860421065641952744517492296561282189944868461751050675741906571662746306396706889926123178060598687732289807545360850774871055008817755527812666583496886423576610635711910464888224204788261434678554236094405878168994114092256810218808096182940769391131281873271190814970272740630594341990361974869935736150994430903351923491549665719908614952514380824970755057988580398327491447975139655759853275660246845004433652117371165454089746431018065050199816363274748651226978395273790775363266674579380482764457200340908515732803601556681588762599519420432009951245031868646403445956375260919454014750728831809399373774122165244079431020044939990348918948925973621158469686208363169035635184290634274859498851624965896435910931022179741387398952697552564073517850370334350082802588319952327601431339613650759039021281584211219328478104109216689210336863682327730852629290207219880893269071501843903653227283289186963038880021096251331343886796131598519312877661783220532323113046353374499983618025656161583943468576703435223385932280579057162241539162149418387832107225937885054412973664675462017631376039064523487232279198310540095599807677906353992700198612368048081795577013441439008623586770105595441084428802025464730062041255138910564927357544420224042623544612429762861001397260898416881331889711152997143133862092450335480398605070529164070948960782053975455639874635025919964826076852346552250560590289640181486977786430511318311391804124729641292190441279741127342455597907079408801149868688418299871193264687655360072732056753572422514909462621993163262485757226747465673716592244680912254144450577506036527799365885140464669041225200074009860947604206538329977531150296498946699842273506320021722158112294111701925263065864710516183781837579558102506529377653799322849622868381956273534316836322965593023128875809996074393468939437667176231334922008435485856909018237604306183412843046554833654410798356984398999156640270465821982326254976333049529294577410574433333781843327000440267524534084111609687963206954291562349546014334568819816907086383559388158794854041786373255184747966258323901255328805676471077935142562874670214903324231588845993523751536309152441375240318583862588799613845732987670622056783320014277252654380046987492148044806569513308348961870521923674257929326479173615950428970619075880366126878942294820111971348457396357227592925974984216338639408153027523541138056879744027723711703056405195915480710414211996830713931376598122080278605527103691921501256170316620959065318327621082055833967756773388820931226559189728726393223255512174778525442881387462872191293069628473314547287048532528042367889054466125531462166701900155063329980595475714919959309456120245586309292470426206663333769232896478050580266357296615423391037762592312032943721713395467409196146873732759071201714345355044694080674018881207985097599365174379589499045895561603406269606207033802853317714341913890003443607283801350702925389910527446756340683904252983619797650961479349841424631609800568759194556782272493974991571323841487696142007974832676881296134664183677658746013921090881754342569346485179862403996129962271869270634317835705326631578915010710234727942596162065672355238097894658219697762688315184485433949558789818907777198869529812151739007589817317705910843348565454530144590593361401061993262190930978835753387737506717230006504337780012699560857325407837163768643254814650332935859241671370402975047617904552031034066142327356039835769083617095173245079906790956884009295021446540496553953863441148056279308981539485160835070810905447381370167136817605740062208788376068250377451373519528693679427630761851754975516553051361268780045639180309853630462329600814852316696102942441385113353691041008953834999481951644108671626952340672698368294267167779926916548508391175957422101019401085234037195284624868624738697176732083402880594073143950818950870976339735081500646156086121992987289115850676726347720292770541093176993143100459783125641077115034863042697760274478564424047446617005522088777286477825352415406492373498701583560511833708821247344949763295468966858903987641309204981719901662829369597185564365145722123179899025617133240616198942818709869433438066261298730374551462016384937493902548962588777545573527375969931058906557541349515056252834568985686135152513983007971653255242073263170471056443632184214832035334122701868786279810901919438718502358095588585550630908758800779763611221537312051589189561519699271245739654536316121161590956666976037958900679087023599962019303571432783577951809557079733906578783781057274107768538959227695449064938509780936451700552135191925029699403242610847936127724433065260827274005790268929972021219105907092748245702678750568714861230535020203225293434295509316813483056380150303626285022279977779977322118227854789100324691881435195270508230950305321030361281438440442015840902818565165995846509033095070382085503205910673401093326736767672745829033846985428549718204679167967113198750282254488416043375675124785706179660250437397736130122707671067089344789973026278223263890416116235617462332136502199397589414373242485775657149308855063351272709690412921442965762753425152057263957157347295890926471101122742612455988511094413000659181763306157037839472156197972497582439541942544173774595118088004992369648973267776153026518373443487906781693206882669454929090024493952432666504234646101885378623658204705066795091535972755438605556356464335172888135206057862716329988303730427445564132160866401058710927249293040369864466288569202813854699909121768993996449853422780760753014372309637852369774171540555901119750703046682511888681657774769506691271194803189494764738972816870837892274802043738289970398333462151637760222908037128587987669141967226270336790547619867068667961256678043915784027487946515095965234985428484541521191770322502120633256225526787670763309812436526456698226266745760595160739706344226954359392269519944586424207151089128833023201731640659468443243291325279656648056972012700190621312766523897219999786670115134529040718864821964794526402988160949449328020099082505751859368474349051324301623700418789136814262384282531018602263225414012724771312346506537200039165271425758303457229475467425537455873042455519251018426340353116409492137235400213791692443258546101129411707680815632344585563065991308661822011916008982681973521272442041441520716565926705679329300505036804853697756128322652143529131157107290220620972639209449941385738859420784115320658855162737057652640705765839861484022150903370549017366421777636645696595925620903567373384126619201365896983155671918009443469696983342287152539999640742939050807371576226275051652999762687654261845977686871432541143048731049495308082526563484016597079346370215595868712160925947276707698810259340096210536416253272227689074011226056365441361527959015092904996774276068326169435075916213233001487953701313362755288504349109734953923487650482381098958232580283537229032083037654506497217526489994526727969131211111924880497944282099762477403117794563551338465623010449489923173595948312364168907190048331706536628613600476811432709094441577398264935445630410952305955840133931904314374204309010116172604549483792192175545484953067239435073662040459003513637201382036932143068769984837334127164294483535059914694808625038373555454936472203089134931654321157046707370865829922831610600491916532445736721491399499138272078403959090093814114608246500403006632401539248899297136853992071883393294297816952911046834747326794110090057583035137904747371405955308158386579815050025449405341405089258238598101610017580243636841969396836072926549559421573459441989537468627555805466512661244787055880432444699261414232058101365063279187753976985553303626625022673539554146434951960568951468004759230951282715478704751864880499950463015822789871411088627505355718945199549318497115605249081936305803516367091343164029044860483005712746891714993129695911964304877602661981304034156233728353992632189613959601822810639536036915709610752333706841529372872091387636518394959613556529384292564059055605610889612666437186224835402978091306969873455951911929870155244614999239103836667900237511828145760498683098076251961564571514587471437533234890368977060907214905960784480908565478391463192742600569245262237948977122147420746698519009061930622865227928680775827120184097535962999078564879275995132545110177873920224709955916021611142142561271035214008719873557827003635901331595829603454668193387317811899029751630081324927457434730456739087395698441969913567369172219796007308084520586730317238705203584658816491447663671575092201656390978928559016447850300592522990964100047239038538495426755399381568086449327118163189698302369244734868559895246662234957518739019695134263302648680664826444197541478449799489649272329615872087057934598104018672957370027902288988103334081044965967813919175736784515774342409879545760028818882700517566935381495124797992755648242195970127670814237123145046034168033204677839752618862547762523492441528852938527515664683999734550583586997104858166230494874366694926463322750447190697344464111901831568379413318284171523904162940301913108617532987261653679120228093936997875119013183905748967994893394554071587566864535000514749876705427085520554063439442387484826261748203205453670168862051721078653987487303341634663430900160554959662713622242716247703396402271278048192890550288214683187822183221167232006650987117300922514516606271452335798931727864390497831874211919587096831209375333312147853138542755808475763003281308288232483817538924903412812476220474536517059471007952236372742006003021508252466445916228734314210721470747188872434178360848469840495537518085033974155483914403392293177229526368508005575199738992831648098956807171361034977201582506177711268975942598757560216408901270584137675760897926528775029285129400255906183312818529792966381571981061663817601231415254838945172842262109926345559673457696802668874672494621664805322395937332300065384597048332325095508256604492242131127818806312119508035130057582597622562146813519518980784308867254773654216779059504714455958157494153053953964536946319254448612173876888263190536266234336884631719798543746227635195715114108513208297086920414763273782996990333595916633157472661174395324098844638567650613653245072516699630363248583850093116233662783013667819441852090484197449228120016379846457181614046217399559920609201341898180445650072890185238830471989923798720394760257710416788362552201622908177183624277633807859150846812331149057273062985524927889047027260354604911510954732063124818773497882656280894599076435066353687907913347180579899901000941457165464286174294029824443228544771779878212719790700043197324064912884335849355047509606682135117666857606520641220046897296288839461509545338102244232993286024963773246030875105322626029411379809429595165804919214700982906534738414760990892937980703805391534547578522259416784213798614185016731956270835553858004798866749266771020009534173137346139574383677919016251706884844774910747997063102646237664158700880458208709195069144330775963004855828914033588429551197847432892405972503797910092170993299590796026318307181222526020700810544145859186100147851930377317645502807322114966920867442194404688885608223808143526548049318538288656205192211564924681315554155646820620025391210915010667429200842946366251000345589619465770307030374328907937671627749770428405001388479926407699035608286232222565872641644660770289158167118375725142837472680024143371900599905203651843379318464477112392104690967494091439515045784803706109600410303756201859230006211204702141811006077914375960685075036625562363567056702733678502432095719022084153914323947054849628699263649683728794608695486421450392665214459847238096867719618980669411477114375311947096439164043880463926489748523076694626988272817570130935172336921904481078938981863834518950601126880449782001525105728999000621859527459973630801823918514470914281043605884118230068275939685119810313748344956774161741844181832717649881928737706164526134069906382787136754344142259394309638669474445970459109096179582220268339326100217026222197202721733558802469723031684635750746604168169216755915711354510008867493011700933000576974896770973528408676959741662747297889895491211908851998590916747956247999110502443378766534314415859029260959314729790916249267847774854771350100234032403857171530015647335657976496299918352365410315399059242110158151169331214278583192288514423622918196935532334353740089217400282947831085188685347068503234676851765398120358841077537312257202264716924420709475800639502642534276863383427523836219293918666704098718746597309189960865899533176067869470853206762852743446735018824393987650538038787885587907394241523607714454129576949620377214226428193440537405249503134534747069776330844532027107737972300755196528099781012316714390046893412474039902178954072989052156693199150765544343751686843916143126615121704414938819302735029823890159599644179113277561159463483409275687353367154744451801275787830116120168169819185857254872682515565528121136900975153673993765135970017947215071824025852586553895524633468507423497489374129091309238859140256685936179721413698806295069187877169713128533584899469403354537247373125601290165322287590266213462532213123128049481958158823975474249742551620265747490588913093201203173026906341922276541738858591945469091321908941362391398339992301551139150221434113008275285733714672598470448119377442135795247198425840201565604962885400372420568503286012853572773289136115747686057446178572131237518020280351717770934154968135455498958365658696692096528048230895443926559277284294345374888149845331984115967927421638411032523958246595586262772292708835716546432711733209112468418377418772463948111025483797041702839958719781787736936553874152353554530709545661754150650027962412901732660960894368252648011974285861982983159816473839702200294889027596306904597012007038816408026509546156027916373493067090357640463174955101458562549225265293234831901706561156895452585554495651364170138085927262026636246911420422989195247516948231475210016190228032495764419925049114252027440663263888347247373461799913128805008856309172696145821614476915825652984237552472553366366753775105528209718560950873014974014536611257997507862450049159393721619729290254794350580650082308167707279770698864043188041407284246280156733276177113368266691122401994834875067911412056214191871628832203841451398274275523108159995285677009246925092008691815659421212286642163796487348836909523726859319133327034326004539605718736043179131239667094979821899692078592618820702999395239030887449290632607218503297351566762100947386942772007951002371961628435591837814504796737221344326725475781855454496142387310151259380137589272426463623499401036417686589577698428367356549721295049719384931027698852600154079037197446168804376113931423216862044182009506784384337577336995654701870940138159987921525389215063965364312962544123432951110942683388144847036236380639774719525217211580829855691610717611161403538565484145429413501445512494585477933465208414434018758981988526662571901342725238618986079160018137789639300137430183426085337970879242722754015434619096998464831426083824752580030491851548587161574221654186616923990705468500973817983219343389070840853704002434005911702920725394778087780323094915030088739898156470059515935972185960771254398041701462842502330287376953937858261281905212116309594949684914763264475696902163745493657328011878973062441184647053985079528771939308540940156143767201176012240007322529571033895659886337487835950157640888991595623371684753835370068678329419253550440661221443940144026907924182045793444629300126753686636676189584439344004319041921983742750820597610193338467735309654219783302987706186685700697197323948329386222052083996633738702189572111544924518814078939287442229292092748429857429297760750579529844537433906038703227542590922879576238145510607763949012774134358296351522313107922001144365491680702276045268831448988947955408772455809843205118694839281855370397240400536364053359462922899204899532771445821480798553666832886675148642884105199249175011498232809078171232502779746040231152522484383592817072587433775188880975805371696033000282974753557604180259784743675623682828792984386665096055756601781056712743020560949998521461741772785597213637962770486682235542688161669175023003950097422582128760040629467873041591919206404769772657301027792076774721836513749335985194215497723062779929387518539308121651897416357076268908109661361828872592144467000740863965559963916464282002835872846036129551252914207099889082115029560401999927235204419008151617131130873444822325945234019136179953653884770424650422690090937274862145222083635388659733142081481761993041810985681657821573529682774282980882752880179799966155697612492864358001446087179016161629768548114634558497836218463050868208530230437495520647502556027070242562334988257987793059765703332374050868951617641725032166716762646312799666402356110505002114887458740914784258714904799253709094451962183110952080254292468520032377013267175904009502483542685219073564339530765158962139858510378748266305341417896806327201150592366533360659682800034675454660762687627774896247986735464679498071277526418923404148668212441069757236424715863563341160259418134899782574109935888474167994185411256119271000209014826815112987363017091697764713476726569802907938927891938689075823795919204940304303459836221172965939168910914820571158654467094088187002582136930752293274793690562275397981537294786541437780911619702912462137751022745626881855874037899526035917588218325265828877497976967211011815565535441157781342968779932543730031636432955698887208144585601034521071653782700277191150103773427198570481322415983382054588673274571129015368030032525006233892627433763212932205933271212199393586232194104146426530180980693473815394089318547211146333518724368994626058552221684310578661191491346907627309204620024087332386101002939414344422976864165493568848923262437893716901343998478456095824958030896048279654616464957162231264633956218464439221905343394673333717925759199414161972313589728597799299737982027960336586162868017166232844048365216353082674534554470219461672606243388514532242177393348106727570270483406925994066061621710558487765290817946423387480477078964421918858073659743507732633315095995014293522000496983346993470152520678954931009373874041971998646557669796078883592246088783492623407878661128534593395116343171327977613283257373805938898195121577941139742262354454287275777861111209428177883679323389931367429748377601719537465311034698052277118480237873769331410134586138895758906886981554628397814782466057600553176991153128960273509187492298909684087502848230481735286566216821441670482000788873935869568131469258294548068696742906447907295894898451382016731786085817760841443434629714779519797650440578612220810678298506683339556428290817350482163466939922163288850748838031211325456664468583780105683831002930812524531405163983045935930586538195089375186035814749018265337645289634283401728138865592880690772204824386488908126410689344335020359258583223372371982373585058085672971043931884402912731655070423228689272750415093584178570039195666606788246993423257394581807809104331488533141344432408087123658648682236789527692138674757081584580851652027784974589387706924672115196755518687482504540423803451972503362925032291082256863484416275419472533101306244582882396081270744013403479856481817622471370596729793947557678819488218367374059112684501294934116972157976839084006089999170227725272643527831674642452944711118614137090783709128723748834433474244334152083562672260685558480192837001543138549880117613538754350238200113308275386255699516171659777372520873555436007634620927784081569966473848549695472351811373121510281214394059764257538546672343678939471534947610471084107628885549295892659050078806946219616188289620193230536886311119031606746086806774389706706322848567839406093461633571606993593185985173843337115611891135989215211028900005600119184960756843760352747487765663762518295424217470572998495701340931690859634880623630597455526273635466407433473525291603510756423855793686508501024825770105057196904875919656040169354310544992856886380579082211949347506346107222664138736334591205942222564457624719683748927076011365910808234821256125162825019765158187145435304658971094709808922229022174397009092174535710656672873015176062591726818588219172470351250164715267074332847757680656063203456759872649289917669003723743915704981623756000378852222665086962212306622558508617096423060673700301987652618169605908952976621237664993596147478111814123687142755328582482975604580095752985549269914096254243123464616925469228274225699410856473664944872189230736959002568702760760049458050315028676838607191055036999079951038586952183665004516074503120432098311768900393148064193417655311128579670840353297893403201753718645604469448347981187270379892303010540113164025918529209691656404223479855448363411269893559374170227029442665304833955624887525891299529908752986118507757119268972195123076507633711227928607743427573764386195177051256053799285676886234462640403794418347778426239464594012914581164353677007674190410517954422185464742229581501826522899168434248487755735805590613188417258511471497393104160140426202829122913803795645082108568798094454577946466451104357417459606249929828586802241227679388600505115580005276681794028032288801750752156068082619700225787540111514887716677928184488225407104131347634901844726286399914377740826016244723758013536541150030403747481895406699632642466102041986244327001060155408536012741216841296356595016878994638406905609733145249525491604771581383198090854987039441706860467140530318416002955251280270230358795734694127552115052693859328226473549810011994342331615903073833413043229716994810677301118636140026436064937648536541943588293048442480698465683133853029304861490402109805858316235258948609739727961449388741185519410114405640473426112085623177520951698888825369416143757306549879441146096280902912882959161174225237859051618851253146995411812038017617730337448496529737973976858629915205720340527274646578512251338288699705197141964321368036290220573664340671648804344844618293614806845130797734174928661558210870538524239744916353648438542592298963865923140729434117888489665331691970321699843207097007021494295934715429453261229744050148980256521411726861278873943667543873621846408302034635457751641750229825677436439293611233792937610636409226215077923115372642698002363982232595384575105405401339167839620123461108337986865369793337661056735164259696375400230824198971125309662346703198288296122116189051345851473925973148287361908696796499986121859625068384215442170943192974774089245290296608144183134421910934168786020763659796225628946946528532179736831746627567530309555009523475228054505672855292929347132001985341116746465487075331709029439523846509287832545309752177909943531214908496442954157704696750909520626793023922078972380706089832660343079918237542701448088067684546531010052845523558218421404902486448935307528141115188596122313425872472818765407272374185231038547824575446603361434475204945036849117209011901132276606581155082892848040712941321853774801897312861085653230366976649741152530014303365550633834163631764411701004999317581008302549193850432624397100445446539301468713855051478723427844609640269942502954115421229928616757153494139821957953376369066334840921854032211819043467631489941992054379619130146390023836515952461159176688367951981385223855880340431830455508154528348829382840330847677261695455566438782709076205156225277737086715942392293298442080184881212129550887501964575374333963061582139701626908103271685493754221972854315267639803136815379026417321271911739522149440132459376779519441754504737599192242177546405740359287194682705946281762294071445583172339938519533201951885220879151940265017235503689511579455089532814377345999423447381212063900604375411122494612763590853354410770661486726146791644255755661417118758200494606011530399792649461061713054475492248277894340289634096181449883103710721199951321016515988383380031777189965553034440848132701452641216983033983233245967198498798466782437096130594324184625599828143664577937155483595371955409858056837546533743742790560542782467889285752364647915581230223532787802868305801994313112853414887401007183973159408141155692657844206095682719514621905383145564469951580701929887804884228959885515363562804158312575793036430625147632079924137492346703528819138570231536328927040716773448648218239978582963344561920920341243243145559296394150597963864281311218869184168680796318584016140491613618975315456717139807794892630818578225595525490257376895065329182471712128128271350715848287610660357678398097423920180921387431757288601151597121935574189574950326100958727184748785192803247500855482961136796208991318285576812750129612022449374256792758317498330926210510251579071397858490008739699858569521295690018625696399552769314619310307682356607518449514088831977983600209728802909379297102939839066956640549368480834783921053797539678190607060124276705845351075970317455825439863863204601177456866372230758941318631418604294739467246538409687847795100965900535647729852205511733611021370259488411741116970676493123229800062254592140157552622726626002771766386986522008773112203631374070578727151144462931900098442518584922088271684041360750621553862816068257205211187985296625049109511946758263139963339295285556618338385758126573287461547462791854604536914462747598044000722245193266657838446816201246447266444771526503172717986266568213301080876839282089354641957946508613062157145327692300078518490615290779908808218489466175835019975796910580352540772031712943920450374641798061420134832459098365343949797405789766418942576298313277587285326663207895577094175428765293223363372080739266595805424794292714188950117117873780635355292562743137287327641571135485815186082386375648338936765903376030687710811435596784496637579452047484626505302950778354893618106986829487380014215727108214165549003536634735469050620444087068288004572962834253284314702572434162263030021565424763695293966899961455897678675946372187109563805903559653248815996018461256156785758913595344580495298587717409637176127909708531636606243885251332126546386041210522249205178006012175094898560931765388268402122539372747889626145149451230479501336683468459288038069234663967143476461950615101991364611165881785616137669538700675871685287165899044432874367843020501510703305399895367382455824829323447255266704944021367784863772973000678890051424627166881731190223214458333935945330658242560047093373546057030700282164154178911963179056113971628865537318247868382977030370104495058224842140002974866713097093125285242768492855514048628656591045561107694178965400763463312162270383118446344364973743983462006645892056984331449306366300319208528907492445654936298368060973219693758075256804961898971267303634651170435902438340289042642674022885253495537613142268024788084481192101617560456223970777860237291222953749093148942665189604637761656821363612692948747410448747332818318377632488265542258337443176834204039607064670838296922674923537381877672891852703292261114206624937763461373853798694867515193672188348663315287638238002362538304142297463269627520707300020549986726289462579564410659950485961235302399891182593046818401484152618022820498532322875821059415991074399679483608281952098252718220950150122688959645795696724130603859110259272595300006613044137346775149193481381818708789519015861873335318262104330837115854861929921451152582541417739101250585347930390032929623033335540148177568956800230654802747215281774724618670294231628497833358731309084324918564717006013396725479028121366559942791795872916772116916627950619994878720778563815725417662737554205069820624954646913296971806283957859146815706660192255377437361733233707077102863328891297614756487960146428684268859733714667403039266352221324575742514022741534630321134717215721841075950675464230249483938406534415364444654037336721250340600706549872612102170242898009882791235792024763050998546735772247407100094488376657696624080035895410432395259768484547162693438949261238010368074520326114248339377483936289280285115812216504420598103460597671318194119584755636324004505035508782804764292916885862082489240829128524514459890365959512414190093813288387548220839886137912713071901444186407227864292919928365832267993600696836180865636758750929670166532612347724040086203923517358707046921301194460889341635118420320808943496242405911053464839890518121273957754611390293990558594116368923598417485445626588946629600645143827281380788434603296775967916530115373764599949647159517867100310634057900370734848812568666089032378788610221834555966536442836413350643451528077316789247215249175807855423455448348021117414954816008414610641035937379611219662002619520903964504333740730255797667595293279088766114241857501118289530138551151234332449904262237227754537468111978508682231554778147886644215325876403006620152564586866379735151383299622824272975545306760121764657456929801917620982619147156407312697709940217655522204539877593016148017669455916732756999864800548688360120466477263851573182509587658982450218022546100212406507838373149941446637621810076084653256181520179837115328306691552137002540861181917504648763322485092861777029624727448093124859293024986989029447944030441228042616427235061892092261011398077316168216231277376873779242779948401529017993530900325070913324570358767802879533845548191248338378590516523493646494439633878920160034542477280271505561612397610486938565752788993445889728237331744838066811251877310991677614219057345953227377258757956121361314207800299784239847114041654014932059864094015440960014728896653964680978893687055903695555114821138431912962946318702864169665975956382749619190572186600396467712522422531784600028949517623087742407760906986659511968393879647859514454685139976412151685383214984861901362580035364406535757903754728686236889333330586087645488149974505154202942003029856456363143259638442290574645809428308342225424977080786157935838199546533472746676645546513138702274604931550793535674340203897654716689403207080896858193791702119919894448773016221831871017082749401939331890753996264854715689255889264267666532421685457304458195626567069186988460756526573752554194442616800267506058930997141236902985077317861839782087598082147348502296935182703384790231300679487483181144957546644540442250040517503205077404033445495765221056033193052504571539992521138886489138486106580673890992573126864843674690374086949934680544668506593402301621087581527754514856912592384607014035740846804130561359608041837167487033845728849742354831109300095093479316329822717249785653365247381506564920757824809631293188523568109063877159753151237144613637954666705341427310172124660490382775785166027730034799671818090503012495619068118118162113469124884866307005912205135377064228005161735465340443281532083120870685864197472152023208660535196183086428903976286530011851424686328226823350247156988948798428710582312668115014639199129455912875323440002829197161463684903690189439756077389684347420001374931236438810955902580968899204987467613367034306920645431575076693545616570825302476449852824559020666751648408636803880291171309535551495013033854593080032999635671024821491911162783845714109702662239992197417459855980830696508992845041138091279958067922967634091516061056423341291860274088477081555601743700563304265675080731624627040905904630444346244229175895995799356742377056351180630134273666393415307470585857119424430343240883168608480167008496168929719304992063749223397531941109547244876893459454521614497038982720655450191247330849850853236014963707894475074658838677732743361050378542851440887170708994804499226336835505074548282700252483731926442743376215949307257445264379560769654949333350801924456429141949613891224874937670682120385943303113048733323655320678777573605680696871722213653358847468005340414239321761762724689452746532902008830255510556012450602294720110064383680940695235995280311549813257940789166148184968992698884237309234714638094310278204903405884198837083427756661229734063501836309878911192714472961868251449380348873096415150169869200543342721887683116650658028530559897772642196728690905275615035314418992917943471259175505254693034394212089868034310557060362257941326943964159806064425249893126144447716810801427721315498995198365061839920310719252810680574723586573747322370354972945256692141248342136570801739448032064406476188520172128044964793090420625652376140173270841021148952358189632670477470740641725061589755931088719642062112980055584260433302364245313186661386440450048049819619072718423111248571589555953213348927676220471795000536161347387348122906345636176597697764341533786810409768744873066306212321001836275221422020197362447785979049742109668711704768417084323137231398994990933080420308288627091608273393013142208865969551005300780059203639027471346418324672870945968433822504973158168798706121032715299764819392765587406660885096040083869334335434789513632403610984149351213709895471337905164532417936953682500492122168980131624595454124845528972515371809347232457330348306014812738427950199594045139884270032706010442951606512047627311045041674419367611807017803144557983157809618681775950065444578206545422685151123354319062808223972728164830130440453574211366465811316139877492761312414248431985353249624255426719404466072246025641255954876073708168085918447032753724865843991855208762437905324613450582001455111693067547486804212828914895166406897811424072336628074082268713306155317652016804270258113822540403118881560243478905620518820536984060577575814191583788691156282505637020312573395919651644336264160992532978480582757333817137144172683598317042187363326867396750267822432273705432668562379457817347784192231195851805088801095056718765092969665698254142084323984614724016748844877689903456034567311261261814887901336152380674852566784140538739561655859513776095205082004271590637424671686333979450073776924818939964805200115038548625783879110416698940245642913624007775238096093971821186976190160502507981722313095526526849321472916095210336159902593629237085411749848817181804883857912598792095806902833536395513986822352383876295534442863761587562617974299234681887396038870926399171724173116057039812293648550003591299877241127798680278550728904815702678091252588719264588484184693930939077125440246436129479699393336668254130730561559543204878224416157496250646294609542733979138462372590854056940533607155583037313199012206264933535982563111637021491961521658436590404949158973343535210279885322182974150954904290917642720478322465245673965335858462159268561093497865880659038200071076799616165820911537829995103673514046377213758339235947736718197808887627334529705203217941165235055730137556943212617084795439686846706562575341498527902838830831317671465751387946525215805292586779752455053277457178251878135660358342000434466896900730398503928143315942336539656663812712836008816757392508992963469712428710781062411820434070845540986438373408001320961578066224889904327716099536583596303003414076660826345650947784059358752958995434286418894261509667069924114458258413038932448890078158608723978326179575269209191301091362931365006295439901594430952554821716200094163549869057312818830828249776063851150353941262587985477048108152844294263431758873489228411567015353368695797293158525288089366863945900461031815590853341637496960398909093995274546825784908482884497532126778425993062394683946939034655972545645320539087593579583499418288723395279854048452013235398287673700184602789186201908618234651643277289743954705000518850918215853350553604515732702771578701560917986667558524141119963900130756776388148082069288504573986050055537687455430972447762427775767535702720945748072196429150096967670081664806299147987225625023223383802801746120706742623416303076155560740233435629332296491885242357519192387976294320814723113579580166381989926557574104632083221133024933547792101166469199152018356087226272615134582731909566792223896601239164846813909748550527118413969839373277581900915330831241503199313688592572912962214563714911509814932067846263341496851927871383257938214215425730308048450131586777403693618087201508514343441947696383854904824784299356993971311453401391119387493708834535438721263463100154127805352388898581116649071973488457236581991101426695679241246902249106888257140464170966411049854098773599203445073143011693049690174478076681554153583050852609758485873454940631377969391262524241597650455733088908726309685982005113347323872159160131281830300416454410467086045043136709698226945516062682021556723474733662681936022445876031752458390099773904575486406698682485963407213844954457889320336967379379716411845567025642154834866841038081769282021256845870480822851091275089146081749288900699195717867060353135556179888053068633942354658393196373767589634952554806152702084311486430797300030029071589479050143436400873535781229907059606286677087788845766658681549589523808353526476279540440116218832730181835244133343263558134909672734221551527340857616638377089418092707376623729996848318173498938552671125340401021874725971609317336400891327670422319004603768678975627067420169540203171652449862419416814410146800636452413683361843156437122238199740158209475934950972112807854233910275255609584414659134590807560861909946199830875901247180200225504325747951438298808456390068564347135756384546310850360260167942273198676281387914659889855897943705784475992089657411822922214317993151256394256644728140226869194718728187154397575250844250129389685660827308956530821933842105025535171552189875624768550909588541123427589193590560395214203730981334337170463572805044455630650173700902854373610790972198630498888263678966566777241407804964598638644489509337256268342173490306946210824352337294513732513181944087374368290213160380758366483724292188928954351905344141000712470724070882678042942968940791986473731070485240623890887578382194062166223191012624551589539112712711466668662670565756032903060682188831241904551241921708164626382338430384426713374158710632602907788130327711018915195500002546407793082684508433051849977263629574533265196668565911570984434339550277388537551658377219556113186000208015498520587458242933094151471051234342362058439938488550716093410874767183666358412970294503612781105334111236487870797184654408946151631788862662717821206578955713105307157309736587271882191962460304859447492471004723963568493035762665545406107892527168874705240561342305004629809598841827650834326790193972565359447269045919691020688553860833870274634931159599640391323351272230438205975315177414508538895095330314802876771011728533984306862648120771887612602515014629322352662627336498310241497204124556612627025516017657472364552808192258103994389644407826317317479652632985769436950095056561910551603400857674206135416003771238575949842202244319146766426500664438065814504856779575672357247316080545356768481757837504239760247420427571889786005013552170587595453077848523706600964680577657744262892612390330180807763452524392609881149226417498971751610618321426448423396284921254496443047149682946715174576219938197231231300193196265803137974757901220970140528466012457126717780347296361465169087709981635364049523748533742906525942859445031744447392956703709734251101058280936651199273955290103582499242927925861356965043995337811123640037587517388411864347821450062815736411619697977972504272082151009411869880771031714867286311426394796402504501679600194437095801511468779650404433724497117206116740186197284949867394596061035263332284047362746674906457432004283916696519930818719263715896958084986356239287607427679614706118288468312940330958287968879018230622160415784012602524233821971403224099853376198447924615848539010939743572329876657871868450824997258480165495244267755245127478443026957852547814638961763196037028312008833699163529172380498742544723687532787050691332167534990665877049824654384938342213110099932372144821968084252586400327496956071051748869172867096350048848092960223617166127633967623648044470039687971541761331606476690086194818691825934913762999990497677902592086734410112084295340682247765398423983509242883059803666996166337940184258343692910853854745889239098966558675620606294113779025246332853268117783508078960623234600295116286820988418722543705292427084774702269285139357713332191755345414553542011897953823242734743645385775107592296435299240728672892017522651486228363972725430049568757886244514290823663482512713818666836902342525478726869097095789889891300782051061154452607245341584736243289965852211311677091513350119400543918399147894046071337354803946461581054370176892774974727732432145517917377276808797896819512497135845644408728283397867464356200656954881729414494449448796961922204476984542676740660699544897582427874000882345921165215961426303006585093149970481900364909310100740305158949534363363091838892307598763962572852473925506069680401352282439455177241631913810062978823539679954826248539378509431935190743120879322625762804015715339199103089191317927643293557888674719193093235151375747075521629244520063202017779235094659712102496136840871302533245995246753710979050092991482183903169396251840512113521645654987585918877915513969212031842026217279170500986600719223124612411349649099161656921960572340915380686367855230634525928624032186260820338626432870531886980889037149348857183688486731852922091012907663861754535463467003476639217236228229788035587960885740867011469071598609409090526605661630889352296767952951295972364021108630183421512740205756167924987694158313476307495834734619369831429649614410292570583342720982614961849897823353069261392614103934897120180860025929090231949590602456174727495393668468811835981528960749606734015024472419950750047126125438519590780021996601972262643450268089709923995843946086484947333091286018559798448245264843229248528113952947059436651822409407059694983731110096650566834541493973728800681198525523783052999491356026726556966472232016056234892464600929945031465513415462541000598006716746169743347151378909702646450775403167737006851959040862207507469509831755679979343418387984525428162499603981062914553438726313998458508767641234011283224163863696243766517931016135550314020034791737161665676674668886114103656210624995834294599931924727400895640757117895480578363199468974694118373186199858307394018650939581890723248765970837879540730755899172203487678863736436339629140397731023952530540371121420055231284823390825492768914492873292955679206960312302314059081348607972498757490141516105196418310936127728562079911290766210047947426733706494685750785293425386222447721741423615881792765589465172373518672924994650172793772076857236256335113073182933074449762059515443600277924215615839045888498794076943231406715794850743423434596661674805295752314925087559915583271982703021291535989383644568500675742523908280996095001303591557794852600761421059295595023704490413486445544980499469105933913997523200774536575965700672745928757577263997138511079736894470083013690790536263799476952379274031004971397355094408986140157464809915568319986045426393501772089925433995584133278499470205461740845317423354897815351128120671031241997996792509074595443877146121855673226594483251346618952716631938692755691585069645189736198177189743830015026351213020541238411916309739788529322941581111767048287922282423387234055651070911999297284024778323616584240419606742030991337051933578709474410388804795263286881202961976287992448953706880448266487303965806528737630558878959235379471609476921333219257357711457845811964139076109356474780117243567382902622049146452101184901691110651605176151381250189612745840844501711802061024111474383432241462067549621716353857280847711062600767027891663514470399441421117926523474322573619318663456671955598499976947345028449550319969217391046519444376376542900241766659845095352799217965169426662728010020889747978730278867565896586542902185006454480251854404082317064289879652559188073004177023941853504508179725096623157194442311378414476348886476438331356645287684851221068232065768814362781989745069301768492770662740030444077352386907747292213981249002736189539766989491717503163405789791909460623836494293987032106031332990299421887596773232525669120144770251702753939545372448862019347922884073946652763009243829122642721003063855177337710815214490286955109269869728182783555863370159657731313744213700736266961386696320073493935833321886919664509530506381094657073413221080066809771796936323372238642338877403911902488374646427076046720695818374950117712104561241268666247226641716730535952257728460958902242645189825723079217328574502668352469113744580058237268798926873301678951054630005609535590340363855729447762042131639761853859606659557927210882017625415900526410447154746941669717968977417802580239822061265204082550601967661392132871312530843489906595413319704296180091762474793184204429547873086190823205024253894776513533931242740485906377352559240519599410353801126434777653071159600206169296905752929834050995204130261420259538322513127317786379935471816416927016794847527050691273296175286752100885030493425815241633072928158444908974756731464833074887564890457372669247840774515368595564564568817098666999372790175547433590512177628387485701331797348329741029476568918099329798245913952077895123797000769741529740183873762346422261265705146439278847023940799412455611167967774541101832541731175107240533261973502481595079721887869406198501033675634060297795994219057714409343555863649859034822705310780448691326142773851315227046061485399089132557978743339026175041285899251500007893713117102921700654669258928025451544664941140776585780028542285704714276214335855504953044283671097374346803544844181781775295820139387104473777387242292908482122321234648302383876119672816055270443616398523563960434653296373759055198374098236296308379213400324249376098494632957793027733529370677622867621110953889954119722450995890672924551528222361768115714036828058728682995515497943749951091869960797603528796927771133661124370984529844143054252365076686000150751190523574184340219570410394860676467687347458988584550345611964457981300021523955891373384033142429455980852725361239097849222860720612402457318260402240046895564023071260171192049622517354909405377298609619435093285438680434237423331128803583319353492829224224442342484480271466934072213381723797420861473734797452455018713050084402617898948333636161902289038632204763288500736060812724915154205345390807021403213703742738748439079931291343535648987008421567450841390470795639141435651982833862229498747727940828961240206583728023524044620327308019099777132781561416498682306097561783479848194296127531171254212579409519207643354539888222677098628901763904633777158121408186893131328914071356108736953771314312886170767383153576669307355462466280731066325166136524948387085468149164843200514417973512278822633627782857350490636610977866118378061378884251381079710237982397921062139979815607258312474281990891208087206637590967269680850331642724218374250866833786729821825003576279447801418659677005735866567320267950856512183981749526098136845435128444604421620199620883327844466570903054355001001704213093188839531241780227368030735539473917639996117476180956785828012965235030449105039215349262004926611383553342062312368946482391570010649513085350544575783513502579061156468152769676418497568925609635140954395081809314111714346602500961006932269090391951974633259984695740482162617737036312459614023088992316761541186948902676116495030936648730116069967059139632647200493113653586294923262141453887039514379109059751963002997605509268819506690995814289062771414131596948414784812929500720877375853864030281043407102707028574778300435557844352513724697178740787877974490778597385434414648320546422072930077307793635296167846410868788789723367204723983187060885611056836423267989859395099169439595169672327569786380380207323725083452494547229888340352536957589198283246853288021813018141800997081704350589577604819005626487594022808859415765861236007791366831611121217911997110736180893546644577193541690991243841307470073585754117479239732458218263603995222991636760123365150772890305531565975475145192246647382597013624130473227601114834493990816865282525646320829662244168333438887735093786447625365920437519334352920784866050733727463699481534280994161019029958784757592990558875415034134616601425533357186008476995036009788697225831622744321140286688054450731737700855461323742155135607722966755277204553847600867540353702371308072684968462797981673884321540300303426523047641826577241256775788327427433299959762067378840151959160519616454919218247647288265942550591366956840415766579623792496534987409756232942990558238649377759151313848051368099815562666960446417667836693923285365152576889976547362753520663598956667194150510597326162889060125054368000926402704388943117424249092902583302912225098205093569708424529924064851073653656243844462606793952654188058739198024337174851587050752347736077014011558377683715795911485957969964814420878854582406168496636087747046539561751602139520113531205250883748548703051404962197999812735858653536923640447402080244509894205228019389908867770870358507640515717268800599623957047755806136210188232462479440601548381944301741811457686554723293456159538124215492514925374137474750439514084222634215527341409577719150894783310325681009977176965276135645444760407676861905361083986678595330076620019722219831622681259118012839689971846766108764848222520267762128109215480567509404849939222867762235882158410809078177152863676134660954385402513558476850132090805303561169492253007749311885722429051528864472379113113625625424732374529830081490770360229030410487411921065980558311423866901884891029659894468874315781100243597422016904130620961526765314259142310417970345190554962975094446798485698738360058645229187701001978787990940665951060630775684151944035993051711430304990532902000591579372245973713137703917570926121492935186797049121512678150505799125883956893881807828647049542758457141022526976203992235859028618617472821088340379927082633583004043817704931255320934872367638927583282351895936145601472436018968810190747942071331031653558559386199572030485520527450084460419350198366681916497358115081021477619702059156662915872020885285009152648319760478555230807053232302003594991942541871986323000181102903929941666161769486993903098315339530424280191942789524564093938173134184653633586058731685528299041796008407962492928984651387024074613934183851568075330363772737987128889856493460714205129307428681283499521739661292772360229055321096182215983423290736978543696414075130108327406649996139485100459676929464092258264809686285152473576413839566557951634053248806177072379360285896716066316758003272066538796968991659707954048671042440089329695787728185587055672693176378817587176244664553296462221518244594963842256661131464993711103793467566426689878514857471088856283675404131024901091984069356122039968217490743281615839344937581887983996178518990488713212071741865040730660004313671977808046264494850196820580080202640875158396827987446795512808188372146005512566876830390982934239061239818718862714265841443359023970363236003130220736513611865794302821919066996551048741667500260474754930809182240563411138939362349199301075796161549580730146813751181423735393796700893128528077562155821253291535232870005129978873737832664487465550502904105510748057305436987131189305495032310792516706969280865175307210605591888831292863752407757381770919597334896678601776468555452761577293407221800388113267644212362462180277091918824699094985193307351844839270989351004197895116985432479774312222645133504030067600019792340779622651055730304381947675218632531666976551387653898582021941598101779979716892819034933580777114223650877781374886925358413932373615574343138207693886371530154009905861918978552819998248755739001099097767285262702550891598644069942957265133314204853997141529676224891943460269322689945138621210944012822403644174890931178244149239771137828996889104627768334155557623476832415169620113125809039796764561237157477265708627057253849488312180848372883875941915312827135421323130337590494500604320759368322218875827835184592666344353547373182973781828962763233807740024753725705426652232995516696861932816943847867396961231633889091221549455374798619064988887275716977548705635297905000868136434841945262469204892944012012185741906728640062133931158118630155852653184594695116794163284160139197198474148166555807471406801515663566172118310868386049430239434973987889377300567723019307837913031613499194536665564632761255557754172126503597116409498111655313834375984031478032220659700697259157248997515517262404599067970489509204598519639461010383887969599411531151148403763982289981212667726223540737532939374798366088847102853720283313061722700121220019461452740254033957543524970140288569279557807400161213784350131235046382800005273292975892365404841913608853713244615566448884077274724325380704124764032760685288637487700484360694081755011839658219320144713449118936737230258868363019578974276806139609822483535026677474706985628781378681141984631702143748100633101398952155037275797238413277850652974782763661607396407296052077566894653125092128301310121819090593243399413578860494895037964830319758693339706159053244835433479132135609836011233952284371829579991232467586469719909754567040170372360193760954366828308235741825082820763648061589823163240879948017206372902058562595077040914676786999546984937076231423240760372118463203992171137668898359029916521933544798928165974683114080526427807517111248754063788292724761787384844649534130399806534576926449931742837371609027733436099051544982367474220172130999563474727866181468349943811623050244244800160001155540737389462019674859558841635046953848988197940886921028389502282680871378172958210561553608670422131235375879509656161956345044449061367232047291395660307988529026965564153290373012818681862831108680959202551648103218743089788202323155161875614769494161248681063034731852206484909737509500214372760586476317597997125082598499450172945803605627079925825025126685334534606720985575319583240648660906650458190436213858124134301153123387112080628274594562611683563547581325987153196439127474521203710183337804068873334144429749036710554870131663255449476936554643291772842949392346175850030089390980049398941518239112225338447877889050621076273138828309712060485417904331555645196031878874472698574003128432357492141498373261041938996199554947393670725805492467464566964406301151874243034140985319363554904532053450624544618408011669585558880303378587247561995942578218853084791705328492275739213206006272494639879701973391032270367773350728687085521948408501513001947589976842132879232193956493084634246018919136531234850597313373595822769047550762302085363643516593880572255574848020234373197370381853067616353752786589684526219492390944454675758430023213447491911583649583077530788084364163049209287348231707384186985946561612697087341971554160889230318639426136003028106864923181991741295005246039564043063705640188939080780736805669129727290317542218531426093731484341894820399681586712180553708238333972893321934638416665069064874340991923858533011594343640010006767519902548714136980821624394504848203446867674145810343233887305018124965625735043128267607025341467326171561720235402070646761335175252638285650882040960743086199371408194194136650658839283618777942657527290252810470607191807077519237712663199508552462384546200243546948819429290468593632510842184940274729170928015128158247923322267554594914657471620317232469730130087991886429965249692216138599963024683632843966724269589648474198643425240282893412081689680742606624964558225646307547003164330768726287072699512042859464208100940892269634075672091243549951741916890479540240182645537945579449380186430858700170056369411772057427698616244666238939607622884404796903442164810842842992630329765016638737279295493452399151069274019701540663990560407313632890944968802144076707018260047616482388246540868980666155626063776645933510222059161605090225666472710132158908541038224441978697841010213756972249653585389703095283389728934797718747941930777394428567228820914855834525836920308417485161512556755665156666161545773440485226573682161139991527858904210971095404089462379585957856958369900537986303571581398540721560668406386048460392932967101869254359359354694465309217560214582524441455377488411572200696325694148484419385341743493069685196011098948373389442428332099481080585485028540646729915927947606020614290870837369554520143283474212414774262487403567083933611193696270482864438154620167301405011701367489539862269082505122255829397847883329789283810486575479748490131734331796381960819354628994837444550588265050046314932914909854959980932799744983241507634588823598655333686067309339016503404479700026243152023026603885695889541227292929533690470841108717178654425685547347900035401740277831889065475331505383020184474861216707190018945108010442799594328779420590102301124653186709220283000194802849998821667838969028665509292210211363063052433175292526209999534490973502590718104733436350483987298889341866579981673158783760501922131570384003250598785245187381926926676862752575157373469761319184071013748818891161399035450695193295921013509868842897176077842090835689466382420292803711839948842792057073509262854214965900307222090379207728639584611568224774360270348855720668921182284487993227764339346866233719994148855317456507393414956006659613318701494918305134349020601742103028051103226684133034523509949455490307045370745568004247723147175329820537133923747758900368354009590336290576424544910832877397249666293719440899610262948445421289934293254504862276814709211078092525621698818083543375161053083134456895055547048394695152853653296467093381339662775648257325082477728439738180620683576962451992297812242905450675063441921857301104916466078839145888945785103335956808644053009381823258294354746272896190389842634281612597960247613088247356616466637169847957378309646387625471859719917193786191804806137547095681232343421513301778278863815789922546740848684127579175436706353156251932230293384914309396508733673773083385969395038726587645884569940513346659719440214858389355620821386906169283497693819109864670939001755440274121713961977371927206761559570748206060724061451213470250734929898887022653115651328985051782111644869928917888305641819483723743440084676005950676790507150438599354017878123795699489090672449475744854975166119624161158405969120106149355258497659327667617439045707038131850691866080914214456469064150023540711338913052259411972673744711623354876532072029269732104583890583197020119521216944366151553462740821421453912159132573422296885699097936094754697097557213859278486681648542625430117449827555443127254721076197725604988550877927233586901058540490746121135773361586699001532153277410341649307567284779234688993059630279686599140825639220300298462044340885397810067301420403701408396125187517150428975553975583009716129725465243681497387802532599677337010565535862078432219997220251883439288373610390405418621798268318042904996526248264094396573048932391519467452876370759057729477716751267188138730210254413437129549880547902346439857653356164705709550644204226869945911205942483121211807730219618065317589559231382744167791905792367661753651941610911478862323044290768818612960097738389929955168700101580153518828431092769197641369742538087316988969667615938807465037341636685496424235558500781365841251202501489605131698480615538149081486698129976680068774435622118276113215254446914120983742195139573662726881502184825017554886935362943322194359385520239002098851055577793565477540348426720110096157312261528310169448409161241447164934204543782057276607934501223221075794162358649805814414135190163085504728931861350002749056978106707137920523483700211240280736090404255811735486940208615301199852365211412799035423678729039353169884171604584060902218849924330900254097037296260781369348985775045206218440188235463183037512289147688435275165354154635423498032389246267203210512256990259785637817211396543478685707308569701931491230711043264191036414629239414913343542694388235214947513716530882901804491228576891796177584085527187008778900107045665046793788337782510899156876654653197037858696361490154642826812267352542903947932720907059653767276397365398495939579700399707296772527799071513620425053219192935936553402963452774144608673129434602471859149828051337564736030406817139609782737837603401967821226452979578537225765337335039897600853469479125763206115993790299259825552579497697306853231501716082059781559042162109750430928310410135474520392280242416866194545677903136950606671915177555722290463411971308067532179867462163804407395479468740178252396211935739335768886251396128363419755825560519282130559920299366485561138567064571835150011686881118937957695193236412757393753920947646753594677174272238131547561203614655193589481400173287456883469690228527286798999986076885610280705740580456969187548936997176602441090717085079450163950186029160988528875093978795904017196338126331297844766794600481480630397751489117554126697967130824813906211545899069958201498308518848394739128537094268332377493814596595945883228585821491581633054860662429952605838542327155065796899529216506133264487598491383905458962991242157643994296259301490331259783160734917814533090188085368156411776476059829515540216081947413460862101156881097877108947515012576283347359839454281594461357779054360409850338651243933567322190578623635770718127530207284033283280006174706935533261419360405166316800253454927680865570108887608148179138915014992190411861839815186028317404972099023780490295211797597580572408037869467074597978241723037779327073300618006362407505201781568444005836584259236264337869496770487393913357069010273886752742667666168523462085130506872253066338587388441499800312878629765458489515867744514161617760059583252138821050553801465110029059115035889357784844809410359844777002697387191951664943698294319274106149879433271175295954765627365398267646197576925480387240275176203230748855297974473995105666777416692403230527070785397267210815869581565008591127171695959022884157485147542755316654361197981916395634856699574209543867674912020521091773063933135321921994258626788276424265124178714839890258069702817820115938665080833634232411404218379785851116163171250080001709177635611713659149797475650072059917644979501316281783355554867668699912439533703417481431631255915122859777664801048368248274451243908230729024825550222385250064271284209434251492822715718203853371954497625699428907924044459847154296752156837620727492679735295784482380410484830035992940351320351954219805332415084613789634418768078143409946280236883067206602786926815008608800571658569275327831020099625577697019980847439973769535715765399700383554941479394101011175021559284556652600989686934155062758749799598046164815640600153660117271071635459106949979373259109708245981026768247606979373646411183290037044828043289444225194906167138515354190785426645953139411984095808888999889858741558111151792512293513547358158375799239168818343106954516571918625642091139360968895957402898284531393399461716424337533747916861030842818391740755862581142519862791973470172030749334543713242729025190949404345219442718989218179885783911816566119947677602906256609748455423521968422865238540449790611429917019809552465736069287562480419384361143239854355677036819620667118844599470865028983497658453736447127220250698288193427211998007569115802538364819806431244068742117014032578236935466701744895097018669776904782032685798796606524108437417956504805742984267793538532156302769393405873620205675290094441473169266608508371811781626909120225482402163159552249611459779383955691152392950885984370172475099576668166461971950511488638640997389494824868637066876155688708149110849832485954095122868076063438644847744480957240771426596861322045282497305477123007339387810077502003085028684894272685074585419221905712497463580862865450853719261663657063915110533035990235159589408914567096039517541554151089715722870502580123464538129266829693909210634988122745994873994196675134842416689953987484226867548881184010410439071325773652349468019500588228279788500909984841836080075212844987712471451561798624241937351797505448362876997473192712549965720052656249140434827338507008677506093590324422707814784905510492118981962541293041366919730799058428131217094700396818582960877715840395292826631219283447098476862312506828499972741231439094612139676240140154844693650697866821971519673548382436731317215712118014631369016123771781918065317853580863057450886911270798360070511308987617806872331909343293052486447315422850776108495508506247183246445499431681779017038482065802492231433150816912753971166402063886892688296867607580412983293352727912992892316920751730115391743325903177313251785396411770069918589354286098803662848848963655986008026849580285312721084080908193817003608419747940235228917937343330518565236194459662583867587601218494823079941575552139437784754740894279415402237175044710290193154539350213680687229246579072720143780741457777836726196454115201654373753718429233288187946595232759059002660141442600631067301588317578883398227118255665711837336067245573124098626093661880998301902173137731196894063085177902304731417533938687794425394368523639421907012952006607310163949101236567575749361901281325385918927451396471696245822607518577933935667236708155271920526837389703306611364072335906844677397677294232381310722890413329305758297560050405081333242618725564687573825239609744412829281816406959898121846167083600672253089462516173142660236382431074004986235622508059289874643804908482472231170026033890159538966206350289535976110540664318064481329828323413541943155899330488761440141804774546939089699850792235294289067588287260022830869344597139562306201944038992569993463645862117043043454570805571113744158351603514082429021071689983716681849468428334856747200810338764360003919157591194679491662563870119243902625511348086330877344858016705166941511566259264693416901541908833179182287088799253477683391147205812121964361583044503904774878388106054625057767768455808965223487187348484189684872440414132082749150872691469250519153113743689201459450627822210773268837871673665316352745478650598131172415893357371674936312860176962623315766246454517012155890948689773536185709287610990355407391793384728511879141736175069158421590038421440785189416846929629673755612236941237535548042256834126253775028107779886018312929969883440428905172300073386566081406965291364662145297517957896969175100688458211758714547253950080441496885747965971762880973499001117132371483177335332537113812894403897157546412619389153261724812833639718112092928091995331074068928477622137006464663984418662771763984256612443656437316031178068645819191521288438601178046846661014495775597520841470021803861020102795811636854340186835464091545629220360407085369922376121920939428545257078064485446136917366010063759771330072610706622016807811639313818458338381011962924476467285879698871320751314249306833003215959019630406109502408935964782131784739743985210660307494484517208926630808757717249283150297327518738203408255201136394973442356342200345063751153008370145430294532892011601200047740249395767713038334433027216099485786332828583509240121385569655848165657566589893971184428621882451450921825082520172061935487076036774812023838850539630347618365274117545575901532107675461530508071295003227123311481397771645613480205138414349210961930780593206967527783668180690874747391031437709281599622314065900980269235964444541238519844243896871146797521943110357769739892611859384207131038863231801423936561088951419940806600071535152756294061324158038028176910907167903870797796861134330677971894095215717430233041207085312664330144128144985174256461104520684669131298546826091621799491776676974401317652790086030835928822735676397749114927657354118656422784802085926818098285948091100359508985924031356539194285816536650833149968451645034378326876812186837630126648559105941845539548975428350509131386712007093093962858160006439663240806611187631863082534520904021421024998562520888096857706119540023930310976507682692867905740244799836882640701595021179844799131522144467153730851569299713636616270537477877878039606327055555901820223686910582923676870271490157700130245194121622383182298325402103084128300880726915220058954123530689740322276372439761361279246085477660346762220606357734130016789098996673114880784098442768513434727940393898118007779142891090027659137697921877974560450189645345505676877948726269683023426586356821430506828321749039873168706558563225367928764524538838528161450032330857693833211360331030121823966323096880017424637452841691677862375533164546304870005064525275817139683395034186746927874052706444733896978164819423765781681944448861067510900082680320747363174616965837634154931055584844850721468774995898316928750424611123600352749338980232499100686447861801309105320887880288724544867695477314042367223403860868304360891569821008696347669730511474421507641377622364838807089326486669683935587127217886731883077776332857306571044964777808238761627982511918407371681615933725097635971221238481228548040422059590896692854488133669151794592795139996581337847408021339673748106910842635037756521580659711942756454914397077279820220578387359462491760555555714923733540403492007804743306599069734919690609820081929143611624498072786720104680657172074538729418199302185498189925940970131519819478302809152934561970511683442570844878512457913146903930495596994882442008786317742771247077153325353990114228024375696574112721652373208070665797955175230963235517383132899934489697243908756091969877185304639556740707448924617623513821903291406127178085142281056585897125698016730777646056395512075019099712631527240926352906994037407633133604642285163357725735753117195208188080292520428389659811699039397722354271389014731372983949325675649632145832721155910129368454549291121464542754822394031918120992685793272982199397955505110035321501836063702996116593647863681137416008849253755909970538451229494147565815267635121848993410683619248776700495460737029975905514138986881613666386380915938702352869408648531264847280069888456237510936639296899377339576631178246286766290210082109639038584499182644093292593183977710198882423985847312555153637750172626983121163895549874834235403893522887203639436739406788536245824915278300780655092035110605448667026079280142481911591378231107793843128544489460644696639694231487396292801834372499340686082248247237711199494974807455183887869596599766671639914821509176079875219308292097328892852018169653374255819875673085573042787048235168009898964777729425216308060287746761947772107845638668717543197293838107320137257628185108555471199404112275098347155679882378577300073348538734023194348875998998099235128340026126866646992086243092880242614431242457779747896748955384504611612288855588284407550488533972107054238813268871886116681555873487218208490918407957969527878126777668145845956264576544208857105017238591234203987231451747047903369766152403191196672422115162663291631347543775467095933424870981558696851621542226156720053720544948037431034309856986153537551992193691582903363564666510292982572042863706762891109977593804733286195816202865311026226124582369963391273429141577784580277470196742797029199589842375625438330791656449928469638502337130211577769118043771456781400362158150081479383570041338548411242634322006056620005912781724389544477339222230335544320935982658329397910993704601411262162800620803085503118750004088758247628309463288260092306435904112615577484671868732396799473383556124489634132011634919187878811845286274269900121836923041366595993859061004623504620005667537665424096774912949424612821072641405894663128714568248386874249574085124781833941714127157872910415614288340932820138897287251785027534823756282533432745618808270688354316211508126161871229929295298802895172430638785783939328505424750957092972297136677643464068369856137466530492388598959003916295487666594774889671674318486074337494536808617181485697285034678127853579783629900856606750338866645986449575467166856933054699127079971359506305634405893999430703746127307371609896006792705590477805246623919024334395195964909770508675371778860512233453782788235075410526980329765190205205822518358687976048343501046302523132077027370024928698298105445508596097576344414850184744795615933895136268969569782426509529607037444342298062096118553254972793683077889878422145495029267356623276359433417875700774441057359328154182768354500964342958165719974772706023585201780967934725892188118344394978014145267970108404994419968530640063976486162209199527010158195332767955483621462925327455318479059426533286553064974639519694947905475478697654681643797214593749516878566381695771994125399384897633295098201996462741184397100467219227955351704722117119522260746699655689166748861574534580016306497135709004986667084523996807967252109000720946558009651590111350878451403617723946044846573499677885090697602653166591518641421854775769920880369563353996843499463251630925812709222065993265504094150348077737959093949117139227133371465413962411594019314577747720020757717403170062090076672621465825534594649557062099559877398263291724464647024795844203969990781200595249999649577937465512588648322239220689254517300636187095800227032997878404093856157398547254272757433500134382194519025072130712425526825817688370769700114001491859539852013340525174806906331299020696464258748325671594650156420587563262693517399527582479563034196525610302192821217814910166273048331982602227398193039384546050479892604576048919480815174020036735224989643423704545735142967724291755188322220417886094118677888348977241639189024552245395152396298577533067319616469410788721799596071790592770489358617266356754519417045900425673172397165173328629265824344650422686322406593439024402584549502479113035742052303601214490628520459347144616739719222555717888880239819901205002040033078761283449191991104337150258236745526523333491645650400049237605522006160241880332323824330220659313690003721231925312878389396147554290024185952079974918693389720427557689164989098660365697252900659678997698397679659764149080213286202248876806127718054048366183768961730241047305197469639372666120818951526619604461488503751799059671626334039585624601632925142258526205708411665199159005503184501554155900451407249353491826554967759015907368879811452588293845957720187330418963705890126609545381269523170096605529713307567065332579943205888992611320031728378374389387022939797473435748873279808912202711010068513810814518723257030013904283700798019094630813652078949649885264244192389891246335102443033105814864590599261528051180935468622546113461245599599382783134889240250508001215738438965492444508738572004882412296128560777271734575758019653082430338559841432421367419656675373394803049323059998195916799460855694433756107044482989724227501357223273004281633954568625149741550085443141365332887273393206415583282045473269308934355469160731012327382715720821955350343724239072357226232706254338145858925041437630540060100475916202627718404120925899683388564106095997349776588841808544628685987655843127258234912446482765051150647126746660023943229416876986621308582918755422418277482470508088710247839023751016123303664503253451638356428274122411633117490197302713084283150258860636818583616345877076153782524995846121339852336712852102985730759615613141544043447006933168254425818161661732904694437801552057635606363317511794647897127569611648121758978894331115124254733481554848156822551682412171939789781394038207588737161323226179794698131955586862153524756736765910637233096416428550317409795826538838046103565424118496396908060620514673835618870684089242694291675037865600100266462199891208826467257316975301139254068858596939429851390764520882434525934514790720507499676759707139274881304999000505463945016506609041750219720807765423845450042378839608448800679492910441574373736990893744897090098694798799253553099980263405948525475314427692838084099848518858655504932744164706546096021677675926743400113972302419375571155838659309749654063506551242657859382092518170506744327549028238914532819712563200819836422058426184352715754063487741853028372702535796819013206994343635192256720033508817598089228678621401929297554046288095863749181594997856050211755732424236524225973642279084724683180692437618190059018714263680462090757750977684279030167633089283468608057122445755443002671998101595016899255084608147085543820668908318448533182833709681409963096346047171049079963732519404965678921126694571676570189692060360167183931780680739615693170184218253897524723264471184466425749365942285536680624166805322068455535114490863430565494341843876738322485155625184497476209010761106676714158642293816351383909439041953444781966719668180032020382658177053402914800399687299371698544070477301012991546572250456403682544961192756277288160641935766926495030981155763546676699674590595465295214847621350458179813852995403827479680900299635713214191895610574430235866576680045009170017264651837018301685447853326883854988986406305837431477132109275176766506809666256979820117878756681396452752430268410016887843585706166553285983228559444470076584861028268073125767973729405487678990211967639548501509669698472392726063620407091389644449561395815631468315607972077781316228151174878105968636207043985052445201691168392896391882629511966525189402971727743594782182846463775526417243364096699031893256412452098322321112725807354900713441980417703489482534704222816235642866024722555402511814209269932001613214648621048312820919681554830951510888477298209873127322412820704318867761235994337326716918966046211913174616505472960405478303264417098111568840038053705866948045993963868750410058420549302232744287610746902373616458431428188621587260803353562859053742828045771567784172180340609303310046056282653522527769214585143323099378885909840319757694454785916078669334965290098128374618540037335842326702238479242004678560512667065075517536044604260159072410224851156141700335222173843833916517282216066464345597448963174009551843547456679149312029449841418972960171623522407127780283200077384252318299617832860944367917996385115556638128275473766684688084862928660835144633412121250456883247905750942912984841364036935844779052540008501451852365289662253575460027643707057395077131704556493753839949358172598749672016684088646280890877619105232366422624468343280830925160571119319723710379753642099100273756466642708139766685303978575752778587812081340635643268572556867994851187936036135522450197030289592657093823516246428844897112981246777785841389264277463914051204307724243017086654160838154285877861518779858650358712899270732375305897507529469904430227322312610109186188359478327350160003687685104100301318113374090272426083491642836348793492524511318907879546945080404055919901067454426129847598046098802034261948268435849424853334903153747460762112945421640482289874628799969129765754297629959826584525260390523637755160994684406609769366919454100531245996593210606598515224769506862016507220013202918396612708181362493039591820758386734010981585821006561426866545960421085347246958530668797026381164418109231053024225442229158584174743206360998090122632731089749237843278351762166828360121641357075900490367206095194336784226028770954628481908878775911075748770826788411554404881945372345805859395815254478496070883100550546833361940311184986834869751732838778844108210830653896132262943120118021223649932544968920909878830247186943932910071551445779858465284096084718987491756900940490649817614527707294414734492601299264830184423927211103381357262541976589023461673689172786093004374234360583193642780406205512783122873250820908489745379265895593863204041347291943459033336679882483824966604635799562220674818096110487666012143227558689123340690211392971332349088744426706142745151227539216585478079382163872295642157420286554093841017686987781256547202158616584969571921569784134812717150614389593396736995860561736540542151589269690101943483772481108260429151644131522433187979122057684252489558763230253996499378593810663153874232121358175516800753772572164004581866073097707274760895502271844406589759508759149693666484137867518076622964490829316776705821783707519112349226305176143352645329051105633611119646645914937033584312744313384868601076071226169004269644544252784048488297070266712784798363541482138800790131526903879382831181748628032229763141116770979022144566285659106769680543606028090405010809172380401722158147451928201375404497000807615770225382957672168910575068857206902524391970749937006350055582736448475838145034473569189557892371962391809339913581833271377190058295841995567500042338894536143248589110661293056519218989295270221158657042471550920979243502357277106888147711591484625306715108132301459344601511589260498703059397684610699649288171725017710969741250356304704184182599306309227194497143353913813325150265238002878608304048737490504294634975755416325972685319201755379395231271513467967330625193514555269327941832846000084543188336462333221448599273094165043708966080653183759971415024475054929865510735427496870546354509027932472210085394032213784158714147122301036301318281382051282730861461606360468576936256348512583399117429824129464026518261156707234906080119498432899667736162589234368332637354147592296826242604383926929175755714356939370958323459923678085987587406401893934266571759146192815923504037929073352279608526780411551959020192144938611572303789805515297628242903234727604231213896073681511394888196094748434154571690399201129887699301320010274590454058351493207741003543659481066938470283399623676033991241366312742164229767902139117276114066336926962820607780731843650331778108061803114167246751338836833135274283504618734977319404265047590173732386436541674797345289835392554958077181468489080635728736183647930576977751235588803888976978868451412611342759210306892522452055772926565649046277034727437292629523592941465469816660928589529007326855564825425770926669307750734305322995320878091860847152321625903404606596602682863418812289436040955877392173288903888558794875592172438967480571104807029648150271298475998499750793566431227383757905365204413475746087619723660306450863153832364295651475866689785727334668017908410603833930903730385249426751427240090449995173699487729390771624952862204936573389310378526796402958409217636354201407849314408915183326415082480046727716836091651883577788009945965462120537488415041466845572750514648304164153827046235398078767376884844551141962858163360940636836860479608795878344154882185059196330977716839310999945461790900033286256597963200307766345515413110917827299378927293061034875221880526235943217876673724808417475792936882709233163961824905709433368970411450750567450351960540890126873706728201931353745689295581816447673867514583881789555444844555376739021773339630086168435682907976155724983371918658987589503311633999131274947676807468643128634110117610399567766687682562031041769384564969913642484070921078024530448715683864808953048019427095910341715249883362734168069543523577064119428855457961567458499867007968508051379326723385594440732226253189202623884274263494161125964984679662846865747023065637234884072127029974636808382468926262407846034522388707987126027134537896951833982314329081670353561347083673538139421724747243387385188045871738074296911402859497919298485058021273814232076304764062639866298245980780521852028230610375468931669629823732939311456598250843990110553250535931668301962511995572196551055483680611610822273151577727720677112026245117456257743689274169433324805028761597756032661020119795720287898898579799173472896365853098790553602663497752807049611288734071738320964100432149378748304702448518626707467337605835244804485321476089700483657502476601537253290957017800491426752524176034871564540338403718311874154986396830434293444158044547741872338571675697658862669159968165639924583225866493176059615052247160968544535871299205795772113634041852908148373425184239646124816207605763853682954870654495506764960269476806806133990238258141457653817140197272236091394082218341384320807475579919159301773738646149954798380836148757220129500230056637910808538269092030397778864995149567037229740792398300514867505984785910789958518750712511684439241721363856600428902409789287466294258053472510399355824029196091805936705793482523579834684155833363515371599029843582507750941068410084023809756936557057145629350059846146370961738067456968702177661295124509841790192012506588634671031690723429251320895670145940613044957294345173976706103165653618344695387462966018902526951297317848188546956343076755531917833532472812140664718068748687787454882331845738908138830370133115269503150262684166352918478816682762683610050645030057898949627474953351952240753020196702072785187166848247702152879346666609887147917302933474234781524382486920846335697710763069096360454157296489509537373146122853298578771013010557461383443487839820203497528243327252112045218344073304524050637803522431621569007543995790390609446448214935539169697852282691925190522063490666003157718218676479693049590376962317473737277554163243353697733850045307861580492227287838165815160140334155471534183270707586865882977787492205546058138630646212400875891462626890596685168809425405193236330563566841705861750278287378702783592549257461712500188624241878067605715441839998294589161546509807635230914842624775570734779829949089180352203365144089285469734804187487580015440425256145709865946261734081047724546464777277874345342720778846434290472839396231333217130238961524145548417753694882872108925457931044396707687045634917508604252057903043191647283822864860164221498169470859135198364676742693057305923413429082450994018263866935123527157439352559411794946865590800804478324656664305883033054617854360434021261152055832782420298055461185327829115209046141946273372644746944599759662679895799631675454510549412827743612845059757337296767268416678034048365576855673386332954869309355520726266513714188722889399331942412458984760314898223394829618217013092021535956200757776127980480180293185696485026032022091544708637175587427462588232432904395269622118441309812193273389073424673885467655731546893124174186124170914406388904510943117233513789118324497753730100799331881636742715267795422289750530406886993163706868838981468915027987731704238147987580561435315462110276743092610086151549669104388443528774808634035408236679633156693396874461628507937932732384378625996352539720751556601351281132940664157767105682352073249319865914480164317121443372673574508067802839376817855863721824878099264224083636708064350188146941871354418723831918329935016665190556384668421124013135452274887226625632705327978618143409562443245520072897479457653143867280132301442476987700762985518614588852380654065393497906273428463130232699457067833788087015408675909883540008303618674330563512891219093232847941431836983803042107817011941334420756625599855283086692337348862481351600999687110060227687391690001861907918354687938075735737241078800623761681850932786756020735807114257330261709933824290312793048475208124747051675140510351443751019669674787532433103288338353950094779237626176194282801340936647745228673596598035798503950635551805534668122030857956627941432745808750862687202231455111905397733854007688216316467595368054820258344800045601404052788394333441707087961644452922893781652339240787450653228897567652213393474666218116474961210813822165589647138224077028779156415077236639475929465756658147544479933246092400414762538819469369187527022410901742498971374818843002761469665147306992711865851048815114022386461686357889126406242309804144422052759370811842510281468901605937449414721546599831038079191014583808408206686421604702246090912151968583664161136872688513757059067668995405415048625663790785096116014106180763661277255458276358880959194672012089239000232346224346825809406100098830856303770894703636906548219907287088073454730364401515524539271901862212617383607441323170702163455249068606919452996895598467777778311094579125704630395503669285199688797154775896447308374101553266869149062235351107997522021707808507938303703777746376088015341247453664375128759208859430521457143803195976432180990521765855992738477945975031451902564108005972666767659567588339081708091988968924965252041318034778428743567845681862425492782683770559532746501648992299867023605995224459909557763652605707218176295394861451156647792871353617889757854373925798750483615082229964431685289992148972140215460695606349169660390003013061139729435925339935232038728174635058757408119116978607493026523980969166636903468740095406584722718533218655068777191476279826673932943399808928033790920416171886575605040532067084734193947205890469188162711408873266228036703096376691039666794137894411210582689448420164471657880777511715073422316206807951846173528171763232192059744630477033904276862445012067026300489202738060973893749245998729125565112230251593840553704650711332379689230049168384707339305706244137554533705582523224696738041749452124983328759494318816643653896804979102054568473203530868014308577872254073282902185358161033293841533931301391752256740491480556474531330133093594363557782183202803342284254405244780059910261527241301010039864178766147046922428365492934066697486391698885930588522602347552450414080453923912331060755456476845890896107364042991850908884775649330967087616813857713317345883996640001169305902794950447424577001826313767066898291063952071164537631882732670145530947185974458200598411681365368256621389618712005016177359241766590637500897525360614874232541270159419197427666229035588326710045492827712293045796440535010127430403431894946080476026392143362894037392441837271552101985025525045640564255154088260655016510959824933629129516478460056994225733583424727685022530427442578177218706761363194322892694700122115756711144098797642222041068190617345449723675244115958349341135419035433592865153118710929719695214216455927694185969436576177302267764729088391793566004958925020859712974933885286861395176244545840854459298626269569728691328207652487654111818616038515253615434583835098282825445030483586340425544681051082384307426788549497870365513271879123330154894876589894306739463616216133606585942583481234264105693244941045747554658408844883405683002186739779873012882625514455212609952682087660541757271248611479967285059490961995342941798982353056959848443664340646707628972302543636746636405871455874830826449861953628300084337052764733680790204407026062971879528053339358315600342154498780491163746261954844810486591694030462549111929142235034709909368791832248928089135577137616797497473886657177371783624752664321745448188719835089778165150432057141511437190335280108736324948226160856140652527883840772644295583757811467090239502484108911194252063691688473622040737201505592786848196164330162497798202253570078871689039720822717783160490386217014159731566915678710129125390895500906666423395587492237315820454517913626818725486341972276771723873819374523869056753955164377661855360422241035458816694531157364788020145495561270703671130306523936372260477157371260298492335520071490928170676208110315616256399327529721363178555669934527585182992800066436925984718755654657551601856451163616082738063521676695069439053814258688114154470160877644774755390346031923602872042531069634519156135492387739024574884465383179561020964208105552682654682803887292846312724642873660873848707952358410680014131621634743706076622966330912045898964698059155763721570772786727806995056019665679718246429366219174293066865822358576994215204597100477736145800550872103377244441165382020395374032878168277821453534430237383378001981714321437233139616736192570113665960161153855333540704292182948109194240510577401950503054471675315192763561074464180590409634081437570688675911401316237933655323372954307160019788524378990632473052683773808511156103909478471426786565388452635506894109037881846587991028775185899918039464880752965094211453031418809763635371539363464629326491490768239923730278170612547181390134900134827112778471313415032765540440516536713017644046805484137708488114262135443554268129787771268024062780794557718691388609112849928601832345065137454086053136214975742048715893754790633935755176435744986648840686464562293515973889675615575729155388171953744895065537847270193279747947043781152783300126064905446125456856134977950870839888151672996571480715217518091524148126649373490782707180724388797472777320119976910687062404694783673307598079742578268316819121199903122678830995452340047887545272410420995404430321638846038610005674852562518471212818895210751404697830991686815334024177082147915230241466718599556406133361450799223443928869636642907674534345507931896011582801422336145073148880264761147088699784854472159408368849107667595942213821801849057200241375066566185385060296609955099242494182666577403118655516973584872233928058897981734353039086798595740776764976411180126227208540776224609407804523802656559927431690410627226610897564765055266496249269216772442606828081399035756914146448882919636877227099620036317696811140995408500485821336357197984489273415654962594445794290516649023290320102829899052414045456490848876101742553526909057542451096698938219879411991284740317835436434752877354310332064192498223794134886339402298284770447885542410043697452266908891088757887001852630055909179795488783904568702483803447511378483623611584492027443526264450929867417241362862375869535972804817314086608755868842107341220142994451663329515691124075544278841518725087046948279408145572100589065983183779624558499295822648901353667515400821944803703053884453714944774307753058109518373824323548305507535813975650023254225110344774549006674230698378718577183346600152285463996263756966126151947444341085904480704855873055666810900527636105347966528095049624551815385422592143687544010178197734296192181746885196305175873767839859828686409907425972535515047708058318482756178812635732459034970577935691734381482413256419570636101587990218955253288541588182043665586542886427836207721341843658393773666279109389254406206173637001190392265566596366862355622935971325143173044659629131787888928816546305157588854155948989648651430847599369727455674252165850947305458135104817222254148389261332000695648566511840266586811015489337985484290508483759685786658472414719659381397838892822826944193540082628780808884274234135060149086481687692749604511583342730866544438672242276828255558766978945196064247226129174720796089918988853169221380160031944359000692566568509459279957119162728208566381894625036983423795642225650971429323743993546911371218852582923105214339698029729451701710273970200835339785476728237560611014382998404613407443401005288791322504577174734233346272021523688909105580993881424817801401790525868107657318915230916534332265795899531601952440721055214945758737746542540380969718508588100701125568343890814944831900373498402844425912892037714088046918680827412281581038025087895576395460990175297686940165089713979950503595355035688504833999633153324201555420139376537854404860954604289225390264815697363129378552215293891823479483171807706108399375327573061452647493844984342764177420490191783624515813056462177568224179212619663718429290056515025400117497676773254004905815781201783011762443932945780706823305740650465070836310116528596541479365734331819982756670145764108240936060926035745749252462685860183938328290048428014601104470805099270369888831456162774789452562466582160892772219599465917407547527961169369383640305943229728094546484332577064970322431481734653686696055471687894594222305060039597814800858452294693661559391049663289076790754392631769178607545354841885653971699821063639421445069683200323370540240143156260848519655593835506452509071718288143290201004955077516578305498888251459488616054300109226050530317031781345623364919957161194017413487391033615301219164165487675078241243969339327849447383567029414834679216134122439620619535829354579203520410936582729058591656038905163050235884891462758915742400761881871724978875558267139776881235859971859146711598064632149852657795053004793697284905360828674355099596637430107106212343298015233151390592011542319323904271668586058695172001430203551230436830560435586550765521740970071640515522852447626192578661961316455125453308227436578491876563974963938492792458389300337518032995910627319591909914938046712565201081963651567954705757785125034172844036188260712587235686162911593029589121670621252849858098913251387358717301072454629024656018858845968756333048592000018482038661695396555861134084818939697375986290162629395433930558221601938832934075131917763458700264035724858241603160551234599435635126585163489112670001780641089687223619914441198704651843725811931648613936182086285642616154959406985664999847564172687474945020490651055265527567714675700978489480168485134351103371664711480373488991929216863879315901848026853829047153838981299885440010887717519230536473449803028306197518032402355834512095046729852152255373222686583214861178992489491452881599295024922235515737710871756752690843664803067276814337099246531944249566443880244858871205416881368764330932280439252253988017618924964741773647422542945643772288404147728873386022675665724242889841894930827538361761679037875907868940048283687726261041937809860778930626775577121616006594659597828184265974161346592798553259936966869144114650636345346680852266592340190937181860550094996476190088926052636823146308066258894301596748682949186701246521442135955312789364878129596998098567656437656138215614846938524632586274559504421922079801552633717512320628691680942504401553318275334679861097358618264110663661210715808313202998700071277173644275116536759996878617483143372429376368142609822358816435354395927360055852074165976070182892952982030532752997599318505225240502668695086316661774108629501264199484148299746819224052061637985930271521748638167251144585812010390077900266135483060660559993678201089144826696730059435007540434931459429164805293060861823574307044053299280814120333971700968367511166283866693388078704260061603074807813410002441599886948098875829470079817199430995928658739907396718125306619417118600027629978705773857067218645228179064877540483194019862037958469288140946830337736017422452344841299128100558463509678924202993795452548357340496662312038851087042267853208813928008315221081854945287422205645743886778189643856746229755818529146886909098410049585199689235441666151940054078112101203335911075352114873288837683361898066363480031274425221942046313602095821620623655488578275603947568712716021678040379546214808538376840812994591506193447938787766837878044047248369771677748488729446516104859788715426818426276857791709041577127858304854485053523420728691511434426381369338710653515242980865726136902086215615544145988750672709396669477487016095814408673354353066081200892999186738160860771787433355855384452902408714226296494015367588985498341341029156269577395789358418955485712595822659629984757831984553389061352142888745537024568353279217416496644241590782864774929943614880441467701704790859611076575583192883896995738911079543302769195670931548567114115957810333432773678250925783825519947154008044888557214645659193328443397221477184415471184421630467640511079758599464866586483071298919341283306952669545354229605408079389215090605211894310942228810258681282647570613750985444684495283038560893380688229691233962367738552486609096556375320126404603662818556272479585714630256292974283574640000258861435953109701728150425942934875421034112968350895777186018388322029085157858306684737841232760779181830603822520876175441777237207000400837018405802252470402216839222622954533845926661266902175274217094851386864686314271147344234485346257639816094428805415232940434280594904002676792966127533770477520945290625855843147198614470695602938649199139354271619278215876092859853280539850522123576958854155311184241552244576015037872118081307886989990721489775641203994044853146637522512723529411316027519462151626605795025791769850511654818316070869543549596915641651307790339062994017845678506162722639216173959479758564184949840987030967581112320630383020893694821790380870001772909371082088720554351046350087072261835665406491368361317610408522906368079821138350563112979057536119620417442755811754777155618355039775852012681267008443604002092817191442266072598454643899681762946059070484156608337032558648075974867981436900956774039193357391526677030062894048298201939085495858168238640467192500432915653373571012758352190903975394770273640297196373964289051580742882445569628963086661741012896960667495545047034496101196945074474512586174859902682163034602727118529976520016776923713267547527769633891139643123987477890566120645185827101831427072310337589437463093294871402896116349313399932549921001010228185546330466855519433605860351173164875978167206364225855151789532847300942850376447555575018225643397037835443734476703360439737312323444380839374434978353962546003285771567398977429792272299633232135732129379569894982614046164476066690088628384566930440622766758302367572745657637506526005737325187980794602502545209337007913239630830423588692108698469342269582894607202900183347556280395066584356048546061668092725818689869703737965031238515215459850464680356844587043104482683307410655615970101110716953709046810390433767914169177214796407395930805167310488278925470442449975902474929968421803000100284840626202852561410147084831053727610277870502470437533893158899845689105243466714825561739868604791958274862583053537067841305848595518121054706566618642654523387577167415065729810758982793177723194221101945473735863026234208220409108124029839696819060355073522409225381749462648980491436970563232999706834955922759133028529281558514425861236078106618333649096749859011053748608831407325302090092297785041387573259591837741317359154861943451460766233166109701947392830647033252321831899560940065457123086188867270131226105295795487951924135346171859572925546302444583313314956728590718500821921596518731015906460211489401717621446837628386831521425806229130083476330569768667048476426608145078906280794867495955993804199418849541335765213530537687406991607877011532446582340872633416179468433460221374153318968223317273924036857006926102762065161442891135495395625326928571871067512765874717765849863010910932465097546648300229229887237017172443226839914670888106291757508579554521694849858004825520271394057472100840865252035774764896058024073164771004360030826558934177214228450904746762790765501570816681593724915105487650728585099749257309487534393551054245694438389983982901775055929525638225282904546700659440780935315248491478936369000498903891303692484001725777177365127534705364077539487051555042899129954269349583254830872412548247098461121794959790269903646755003145193890864356917637171796969785654945697014821583954351032413222255301998827552322181033030406203398913286903271770895141738814503970580542091260505923399864070846884668832393129301783499182639195562417454392486298303542744480702793672325808682042931340749606249158247704771978212286592600018560116147544652884785627676089355643138281110963084959226172596733741552155014307865283613855795225495656675174221541530764744822640351034235782440170359924708379886808404717083484040743123596272590554895729619685433173209170349626965808865046868673714861797921836764955682383141744614792669302631525886530072656752791288899216741447995515712716769504454648283887499817395494824376684375985981806252474058046239804082448112881317028550201441804234964461646111129637897415460011251013036683698971830335283620763476029061933439617982074627060085972398782897262202573723501253013407277598571057221586091832541627645066485109023749521872564586027191981142159487270286550690799179822848645730309179506182175104347543541834905650666264089697076623632857936898053600332388956849528614070425286354976682172660102974389334735981916856705171217587431111031685525134612834928801200788670059562800312004644803027659103647872316150694541463551766466022796414275315357169589280590917418899824042454359446907207633833810689968463169647715190701742094546890268766389921743890981393366866157191579461523252401876128020677661769460947889503659227111911207187744982989936420041550918617859146647696298413540582884581578483748854397732225019148979783924068676993502377081886905111307065301833769718817113097690060023638830046460271131192592236320099112727263823061559950659179366570242412569536836153930972748368932626737968009761134056034938448923551131846205193286417501260187437928117342957813434855051877921981389389270594284145664050139827370784091821536188416067634114376412990862295203865003318755266387973229008208251752497256442318325179894051612527693090113732410792559191594760873122116872484172421717505859069359329862038698683136874177622527223110116318501841965475859119200573982573897144218457189747192672959729875914497637381722027144899753500836375524633775631957308529850215961217443667716141098562065724333199651067298641900931412949102390652033362775172172422254807270843899951371147943060922506251041012438661645657464861919271728536560513288138225058770486211749645082149260279424406309678699533394212277685281994061251953254217069929757557119542428189831352158802173544583847066115033147313050654036194642142489070340613357766599866427764371982307296575023023421901043330412171193805428470317682819125455803907784171066053237536488722861013852447248981507469672647427080356813801370138848000567078391640925849273029458941435951120921304637137706071059398986883282469670547739030330068654458126880689223796132567643780277076985694920882242906851091417824745130228849600945962978641819736302756367123550802077333899536313537011946066947569747878559201452358537556988187568061960816733796814338648052181529496217701986593317799553840042248771142958454624366892077215262939076574400214263183291219233315840003150643000345571433238395675317825555255809662126280352895196759162931596155590158382912313331560480178171392631033957751127703810245077573263901607802669518450512498491327547528507736912708881188716478246967012666581213354550450596710326786419133426493181421274355722951053277092231407804231215385526586565621406531537615137805193544643284243890468124850301571505512973926512172190435053970858859842447218976286227946563346365950180407394655948459005958185480499274752318935281551063849421285313811036120573123422415047047035217066300477089349049587290198669609375704636379900308469739282913839770867318998740128214624672454247141284022982845763978031759433803836281611275157810757826809543114896274162559720101225210453050376968634153964699171626009740984277379878416725916448157155304222802697769123400366883007667016439234944453843228385383016801211988723769433923287270331642141098403272443588004046001020800534997377114433211487466905467800478958688309893948472767645283110946764132207547881607096015975140109059236658543098902341329396486747831880452822326568799104026931769661929471967197814828668297423290512684717243355211298016859963744935338514441472357245417893539564813566358329030071747658214939909939884460164781199746402942184751581796547277840398762036850205411331066675049522833192820467896560747168125996145440593869801297202024433371396785305364486276807371870993054476592773734766863823250653237878388061278907045586334707487003172515363638816740439816021306250227571474417037562908114209149787264397578801607672415233170545442862562574502173420635135386820288245617758806711370373583047673480984142456264664130933476437288752212301795909123945401350027885603723084341671655901744678227847879189027882121658907897105408645937055864329745798008643165660244703335367943146924991755444088438621765134143734182921067696166314697660640220237749147202469640523111583342268062588442426696714418374194919016733769741223361516311706162688908335962396995571240990118015573838479342835674397495044025860750706358312690291963594657391357533557993321693636597836159592750823559538025064487726113840967540596367480928678922848426503303019141561535757716053756569699974776448470195818472011159036275652507224866290561401756656358796381000549089311271205412384913220998352991264416886929999917728438907134280542512157892704193009370072863740480258258447375809132792332654154513322981555560642280193614872587113675244237044489247996090371237787073000041488666701939887628350810236326283186853663363164278650955581014074114904289269447141471934998158225753514511417585664222499764637305967109975780661994989262161050276171546865851188724862399565812681337413702340897123217695027554452302102592114013686438998986116407022918438824448673529007687854710905716363853228795960411036223798468049647312912500891232496811751099001572313782313546657205714252208289300228019311753527023963703995873670752388732531538139690083605865134239941290440427261121735608161071552116837335800263069135219351754478399152451232765126368808256304952380489110490152353651576199532387423801293566317397410001024289112791424578724886644417679407082002460667512393646570226682997619126504150519372251708139793936172821176593745897275669742515814293141543346232623439232871631540436624598989078349621826440614913745256993861835703713302172014452828873072472061365374872131256376344250036186162851581286286129896063706068420671448720393749619285289615304850866194245578179040060558108993752823826709086459106681667511417878087409763509423308219802757390068534342795312336146133486875383768850018226866144965924812908603325230343373858670143232213109047622079280429219454312892241421275944983674240484630233839246015613476307735388986200146327062620450966747563689625647503910774816942019104679091054640632173464762061895861933599194763014509856503848257254580962338182671847937562643100274568111984054401842730212187176013482157838944338260237053181941597127901823681291568754046765610391765238064049076020311401770056136762281497832492295824458778390569436694640423399781781739795552010402842694814136107903351331425059888084693547609502968689457121021171257743690881825914923219862804192726569283083937770389263886508961942375353029448122771829497450805127330663188574992765185287101500413356368866252605451902434955588390117244258395674948610085117756681721648328668050101948987149370582442125600658181394429366696824999646036526486895648577524806202310635995626395551578003347112247755681466718147806883595269564525861262864467211290359696627722245532836459275485963291223714430817871453456736575949862379703702744697517938877899029073127456457733279483829605157030181507518103375718553202443540748164989153609347515007036652305975801476333008475495467529976697659174309273106606023724122399689236629701670992910133378468027524277086181708676293063996455123755835541546536048749862504038869020635002524443794430233249510128064694114279581926592934450901031036096192422768054667411627761378331781735847866293675182902820918900627732490295451465627600761820829041576398953215921559424239111529157084384993723282866049848288532025259139993457582760959102497160178416353445741837937500352565753008106071778182476133473919923545956350809167557757577084778391216208659593899183012113774478505486342100543603189998094884535173792680949921287276441581911392136262442982537511888085536926256654480590800396518511892704279526176066677421432630101774624773859286580671262597617213634624189142955116732322774768169994000763358456249914102123230389626255046132807029363510714742035420125791892242438459166899817642659106883301609831908565837124384511695073540831702994777034936182301008731351006558196090199690323251270843620577090575641137232018865365632189424414789813908514403562662168613461743498487601816389976278027953273201804420714610959117005290498607896672536468568935608556535266040800974151965554452016665295815421391142049359789570343267495828419506081309044793969440098483983554726778393617689547691890349734356913884505931715117846928610203739042052741756245699752535364107983970692649780187386965204917158722827004569419465063080635854559951137930338531231673320583463677903021515090322273234269680461347733945038766135956216899833338178288184631331251062250327743240691947894094004471976446258349587410818219415197558007673600662602869718156560727705071459572430873348098177071945872000206485312837517968676307687217876894692160545964130396990126698853330490719861007307530522223843549635469653088188970286011327803649060804086090957924721138216423093724010269276919272759255558862728715148654870626681684670176226227439446604466851307370178560672527020381259482850421685457612037170803585507728492955501743800869291649030706120174709638625359069019251415019478651076769720342952641733957875932436098281391533197508024735363303366607449613543449173420000855593451549534921278633877506108620862298268356366332719807530884656248526216169003141654009238886913589593873727875697812848822273312200480028245833086399821455421368637110511117508138407154937397933992064320311819889308350076277118480997812627801740745996729883787766613335233718276738441535087521921575769546571108772402882180271130010949279923995479958702763026312988020950333811513757548263896295859511822247750795726001314779678680121961504193437640313256606000020037086329461611961747433537018491806339427834895659888118474935323647692778632656462754431799845501551615289547171982886701478254612900505413734792459072569199975830160602478999868693236131691392639124322699009387598296793561586811376336062561967115545321174594618242565609553227402508220637068314585607499038868923944863733346445580533863811085588841553114724583552638511652744269450405414595861241318420734405426626898972435341733252579501251530176770741944456358319744095807370632485972294189759175185581752737196856502272453015417254883392225795680585033210971093220668194310665810668038958105620960551960093628636083466215828410797260160607954073548839059489049454405194750987469740981515525178765764448924644655337751084914264617198578989681435527384709654637857758556800821410932479339258926802258688445661650963019871368128367910348445076505307454762173960573629358651513759185730040267611067189021703012753073193265210664994994386249690345512686476010763478199617752802505414827648324903195917175338820657540814318838001365876639735877188994297467376181924624146423807899488131977934104369832296608894650674495718239823373808305716018686475082636557580680170380686776981690747308337900865017974105738829144834339012443411364997987765800867211412410167664163299729687690931470394324873713640219855000462750172858855434769777479769344874054095161475285033521138611518381654698698825736921856019869975608923159661150909376367456818679031675050500437899859754858267199598471719926132368169302211707245800311745695002926566239643186110431605156329407516491270603356548022318818213811896970288750201612115157755037815524664861134098083030641464142370660762547863668640047224756029174975640887908956312558131996431954827877114180717077671692238466765153356821652843941689917701259372372236340504946082506355484215249572850669823484566720344439216299251746293537953184783103901548105722271047884982629780936761069882557946609651663872020076665071949648461538349925258749113982536878316837999121254877511282987113787505709641464159289975621627627655003024739903845805549623806808677712131546629366319415944887415471263130009196076962505306633681198119562919859296096732456520444188069464393236762086103555648060251126267134312011327756761809129542088954625125044068816625257276246627470797512884777765887823066973447327896423359172781148065303656420708544386216121934352410827849882652433727019471518908101483815922927352152032906658022704165382265952428307873749376967870891741275856737600719756838915648044974221027274818750500629693328170893622532096786957981352960254220046434122401105486408979660581860339610560103240121745421962684064607760851542188351820322369150899956701579920020207072313893780932902669208684206756732119504255924789058151253213630660099823736649030098327253906856858271170527637910022300705791435854154967792010392837846025987509865038219720286172546108508018547613880883696800900406206873564582593395647972124261558189647872442547258850041773966099388815845055993398499113757844632997659112903593198493525036416932882166415957937243412498116621088351925763594388953765279907585111932606969014964708548378540857941196655739597938421777844838137319267438218319731408238760118511426667538919170392057671148614814707783167486364826288877605486983619959969148345659277938397074240361958493595267767414733560234519228504863430046740199700331210921279058802165419244233761189790585841077807907996946854961631671643550509312964182761286029604834023058850837606500711370381433406211192683121449038863805645046197099099803604590242407667409397197565975989370541505239360032725335727343047603325118754743163949021057070008716530106444989699741585763926116019419896627852878730001434509806749457072056151702140601484237921923977247979899342016891920768611130002784016460014838167695820537674200236071932956735360990293225293576340560905473684381959728627236507022211417252354900622995813228720140906078190073299387935369173887979205789607721518846623001173890870599226469966498131053872316945824839727071852658998296014549997616902456915197644692152809485831709269814786258077103307274541075963824228757681850130130685078972804588523095242316584465518960030094958890121861022354894385281879023784376643590927093581369276196437090153657978557762520171609267541024658985645212070933844063087398465475160933518264331705974014931701373656323737031626488997701962617887718767492953712234490803581624348839207098787304452862366719230495877810073314426423342210813608363181704268125724812506239050482997602115070568603636667238825418250012802575050540951368046376078590140698522043218649304281909375037939834430968080221967716276185063313384157319654637672488668743062510086662570177243380687021446094989764158766674250168449279437963453281942338191945851775170827907135651915629442518333871127628911749411752315674027973109342189717810739933929872715415437217527852944540706461041677135688324331810030560290561498140040028503465222074212054058950146156598521085844826313503851046863878560786906172559353603890427399611414937378696457183786983487084426810179216991481886626697649821800574617444350461839719900383644976010935292427368348979775783508801194868779514188231487998745063480286772476707286860834934634279828743948558580616756368248174333477210703907756836394323362764364354171973934198327871526562608910536629099049119829867213257289144215422477100129693943727170567256509151466394338524684501670783207368050343593237908306797715961679142985817444510858350169087134123500620201424510797301194103491114877832369126345230815022608113095138066775522812210296397021298632941069524468541836661504395905144977811845706200067696730121278066779917656014403123415728677524066162110433718713931052714625425982675560788836277142357508169009660351900308941982075824005153744078157608194807165165819325790620842610230420732480310119293922034270318676841992421577530199052121438028591848786650591140760711799451012619270631318985468558627961219273156202923960346776232870541364123649205377686541793161671921516645055165519764513552865635246342174347602277853859070581248178719845949302448227938377060347332357883617964324634512828531108655167389774538357711064990852331641683538460082831868833413233535355532743844628887557718431240057053005613412467262482341058262931764569089422399011190516079323224753848481583812621229073620583558632220278857960928074437566334360026581221203825383341509996166848436909238116944079498463180503069937752311556441769345637838567480699510683305270526923785047757647529819132846997379390227828440404075748999242525669118826419286648864090541837281744253223443464728035005831200685017662530596776805241722434188228144891723160277460847020342478206497081369579408134018889353725149932909097209987891047218120545956560794802373215792143666063475037233666119535955683243477899493587584803383105484275169854820295484655044125035522259325255228605448984888681769162686686416842141431715705930994435742837058457536019918825180634007196945839336509316510454689801355304246433773037521243651414379597587248451561673598637330664858023630775306830886965714086281195673591293186372248733208979357985471540415997547057169793031031541279828176997938007979974711250904612341479873717923292447988191851647233202346581832238952436707975516791126191103333034145142845928052221673957941572007572045033982385546714194549973884889012546732771255306690994848965263077516328195478025296194254183296688807210628362080991019392111447901309946046918393837252260323973795664473379127339504342765598717725632295522718417611011344204682535585149139799680103397676804158362812307097946565330111781982217968544018440775291669001084829782638082542791026998212019365056976187743839972685134396197370954324937240330545550633900819089330950387890341962265365922585424933131626205006223686187867304416214085760535778901903037602197814034546436024723108038250275039750320662438765554403767939690081136723491151134704066387779722219382128443075930242803794894763193498485225029602143387945849435136385667684243259192313720011300259845142336403016774383589290884226649840137490134643656157764448375814361352411897259814908134988229415000136566767523610076375539497364516565034005430110068777040090215685952034479142656115292881795647002441071653977750827533023566946319462787332791631692502966596880837386724085001372851918145521029831932829535787615536500745289678875563955869134646708526122361089329173099254954765430752828842103209089324214187193173582270181460130420004134578897083132301504012774102408356596525863813925631134589487093236199366481753822120914067698204926909691869914008534375021024474113922511332116935732664415422303265472214255678654807159865622919533782499718662340980876281623548630458119676536512923141552657852743077565173531380545530641639724555853391931577986182810086910562402528907495190080555653604621079589895508013938782824562703134251724305583158119578804387494326705397131695514953090699142344558227846535639785868885630715795149382844809292174710175038997559463438666380200267417594780030532249877557067067038672170235386595519547228293385561784754516936129838848489253092066211731845366075337563303277693094427479769150039096641035225411142516683678157581160072339587850237888598689447951165909617020900808149541956120952302762271527645960949405771804945709048887825865739598052266178493596596732520713218072626786273016158901772203828052385067668314580671492761055395730538060183202542024299637108897278282611739414661619306677850525338144091790953495080071758133489141464638642737744812164580616544807595601858962064477228920972240922946888258910484664091829885856607153953570220371555366803436306437126882195404223967858835242864515230170529296514643252630203950751619553546725588020355024439030680518592255576897880839087447257779082048802605829482720511644416528589961091801069952562575702387413557635960047440712062081940414327822353161396777733243243467201034592691202895315502739775126203849402922950941164457322988711338568312486913289320892670322231659304802321693760766407968413300586350955065475917582665514779144008620689758510653390574795518922318534955882538735861475592559265130476243929673278001220975024572626603458440256880402202868896876449751999918187430110197083539079229915716444439287922058066386360789108080276992646224506578817582978692033304884665009131157571992523967426345631524704796038105889993313372464752073941603775514249560075242824331374620046437757499497424376839585000151357927294077422733484081225864551005445026017086608266917753973846206302087518795906572262910934707138226780837541504821157134292580024623304264151794764888041822069564374048202803527055164878880393027728763822922263242025160875411530219179336792327736712675024673629787772423319436778710020943615105180357519107747215173604254506285068067192237846189639770641247053117804501666228191269905081144795060270114943508087794595430271440949674952918947391554938956879325658869008550847391845010015494397037440078635443606407184767986371073594018302163840424166295006767515587763371888543099201381369363186980458169367592150215881362283138709746791181289462370043535429518900927168739188328772859488144937362038136881227633844154885527954526057975724037845645763058633421473869545942464650219881587047649610667659189486552542989327576614270899098625212741833238505395003291638476724743857499058522002841502882321451262339402854930902008348497880107967950575969560637584205819620368514360591625156404201922265227538539390810720012527057698255867098317963179851304598496716156223907647788744766532771637567876489617723996525473205655681618697325232874132855874006977083148054285802033637861362907218400177606125568059211982601907209897372654999251281921056376032777074675031614444193032900967076717846685878107094572988839438003195378021722128250744289221523224792402098492036643065894586300314671255838587333922126981473019477242894935333710671169617025001725680862593419060654215917950648666723983420047852048173679398942773426711536009383801715409309717922298126895813261861383116617917701472558223360583861770805895400072299216845707525407120458783529120270627091087506794420505045921675127861167730130850062855213091139441557305789594810255607094380906061788692886010556055288829798706677372404587713943252465147749298323332165517670411397983799375057807626237645903660042149955523775143199981428362637467288937851978194729919080285380312057771648929460559315014261934294553556917415196883543484105899015437073204667039113260711085084461178701366067369419849175979110600188189974612290891674334560068280215398509707813614972867418502774012465271835656418961404113151036496178326439048814790335765808725222442509445853765907436582351854957580873494069725288794707183210366891676279858274154087412129533596485106821243152950067384663367449290204147622725001692516173364564109585460762486172795497721093400129920526205132615252140393374101132109142988756317843105969536936324192333626007237843863297661667333684197994943328909225744544539641383020530025072345759841390703452114326856597774103145513552601086251841758848783138504032759671211593829994641601431070542873104402599837439798825190678532355520339799036621459225448708524396039443462971988450552269357863451637551594072695964603837498741524807603630756899157467257381724190240850133824893733713780088591875564023018523410436798234496347832120143269738549199653553506616355286069774532555552048512550171695720858592806757835482444871307832641782147265287265530881327099521481809022927452253410350190717719575440488257461836076159273427493014418450426343039781699963731893023548513806677147190608291193054991442552829496779981213171456385403661751683979113341583840119682412101219080385096716829937890651700570113824175023780040256727113492914670596048767998147080692580306630394597911215293158508752855294208742738275910478554729878573066555174419142459533428113893272607201140949292409432441270413780364924788282401373156774081899206711427198103278432769808474374497350462958037637882392312951449894127423811079341813411006835380245030464029331634751944274915309304865348507793584294729297948199565465626633582515374549296839922869142002576938315156117135141757998338800244728649348606358590886381606375961652472873813004719356980145254886332207064658060273911559378483680452073910525372276692631916604581156604702969983494765753514958251961388563005976140121370670941710036396492747565592063432808187967643298441660137329791618104970391215916327363247220715200101039526197813820869971575247592216004405106696981832536043595241907670000657822157752607134958485631720218646969694896642964715616320371564430804109630044210037641134320865489375022001479731050781505003366421757670388847798011458430915502942221318363203646141196592189015893548382691311552783296732880273283790486772808537253197116445009267619809236749382996881352634980020162112476246735907500716748791248009489058983227737750937889756933003088623109042874923387315733402061443020540827175396167635272573504590860218338896097901456752697835622385475748709955038728653811136070462141035868224971260098881507623417435883686597622189493052420462968078753812479395034311748677377209801419329966118399895601748487844907385884049109745230338437684136773676592324942308922964886840625820299834888252000056926018644002618267339723304361503426828649733556545573455395609560562095188451219390324527714444679127374964120918030011277735170230738868328516092434232058056567346785021643765091538297807084117404169978077840008803938130848233516224428367730712942232221316910343107320361928136080615944267477739459492904024673639360034366248929949885952484666206230131929010040793439203506377296465519122086740375197832787568443928143241056173544362386607448659102296097820714709544890284653840238018657497068715552393979349429114013212961770706377934511966871896311488669611176096286850743032107267945235773885600515710352503950890614444538123266904863506845510906386828719931184501736754701275203867898470868330761954826536070030259820192260560212342360470580779811646565325425053823746504242610720141876688853915780409902776321389850777447758401903145394103789350161171159390768752936188909673634526452723974700631876225362828845470021943611346324259762248309662918637421280419648373707310945031419316727352984496877066696830071900464565339518416539008971549092930490169143671564146989614835275090609793148240993182643426276709243073896450128977795143350114303114255141567396662278570414461468890262518189932532212487828658371862104979758479520166609903998646265010569838489586261436465501469175019178797764952389333350969218802080049678049361312409156610096505802794945155768640876428635797585856173185059124156981511265937272453750205786257223125729662928382930219327752425478288024663296320139680645741592436122137595804660541556033938612325556317688886247846715013014350808449561856518089673670181622694315029804185438973080835720693611173155433475058554974451042471092714418401603371410965518085237790513209891016307449782794358207989666181813306753191611484538891704684705931353482904681165880629357756417190153630996116625022941207600178368798924440946888697276047379236852269068510391467486010355069862645632846031702131422129415063399997969935793840278931221026866394685534856105704976744506689759133916243679120875500211397109719529955549455668329517168123479235415521787826496330661112248938729143834739615313934420402539418952577992129485170811441245663939988717356304594318752825878396536257868812419743565820846487259417429787630562054493724435006743727159101036386390073830004666133853215224879936173720477553201478354368998974734638592934498575074089004974230713758469662628263271055672450180172529653461216227364176150643155369635628287534795912724081703684780681482673234817869072629086674982720557929036067861150666796674940754091797776431573216005656029787654844760892445717595397308342980613415233445459725955102766097391497649811793300133721888472738250458734536838330975216580215966092130014773650018116590181228132809879303921970375880838152745654708341767216901706575762050282156228975258568027142914075930508583390642833296348492957778539613925289628156841771647657078773657405999465190341475754038016898484148896368521164150656189234571441216406563015665726096639983545032580005064096849968831509743361962734912931930571079942459198295028050829392740992512902024765004445853688192444452912419855366199060718245274403584566475776929265247545317854742203922545946011555634269535837842632010824281645543432149085616452664123154324049122915167034889798197206782008871825066404934396015645901061722520944087659569480597962734474937633138019322996732252570833370877581649632310648949317365757223312850124854779596442178672951939419041853446525487605618947212284940870491130537892555650029895663102225877151053869053414466558044885821270434114333456226725048641844621233875937185066942303099144333787547411831794056972375004277610372465815490572699258482339344160557471373447361551116899547306254322449888592022699028792813203579937061461553368815577893669395095111398304730058449868052076011807673923946996150057930479452193918350476372306789437581217452226905319365918003958110293018775245188781875256701323022655020303102133745534565144955971225756961668893208465065540107443229257789508028876399950064388598605410262287420130203993464825880505656750793484371686224126176848315705886708055160400515071792141903351582849229231420308664928391304370091201100320198741634828926205774230282869015732823654601278704944189567968364998107970243963308452637748971649556391803827999152576821794864885722192591408685034856089759091565977858318810710415905731642237304521728818425576078097241674088704981614518983571093429443903086937277151342089081981750036217829425184664830264181216983626378047041177426812794548108433937407333586254307867602213209810008166323197565152662199127789278706013141815208011216526665525368559378160198379374487354987354985198158366868718010448873009427767832888548127442341674746309664494735502818376047470761084574199218401904614632265499354820595888472206254840213878634802201446896014005372548203091710470615559326777779588980719637725736593380531697522180602174763712021228931847830991723155229199279534747118207781591592944093210976601498805716339523247830620528450999888108751320532950803850040725457785302019402381477838388531390397946540306535955060896174943273289566442217720112265982022852841481260020855132017203987493786459951442290823243828168120118563513205583290041966224769592512311249950241190804564824923670824655725583669742084442319437018513686611039681912109620601565289927518657430103159332772871773217560145729154160971848496011934607687028752134256278940045349257906573799651425685726801532206888400598581847833789214457326808572293346695512988636215511126820881432973420471258926801571916796284784945571313892292489003833112555521092909264968610748064888052386819651653427598853577832251881764370564779338699698881289174685098103506374973011639927959320102284819630274094186343074342575501432592285818051754022035648571760515158509607259654755203090674584484422703136581278965368002435384663091207237529843574508016444080191039398697941928844807071608055479773753346154817629320060318097932646067840034728332141624371255601388188500258676337762380121117883002455083125739038026806756504794603466307810976581383840456851609912829500253875270987599900206497357393268874115917562903108780455131723263312914044897375304629456373210320513657844088817687724388083045022256340218954003165639308305682025404820246170112158544511672746459162223864628995690296909673864074244169051736772717500959900908520192249343259741737720561714950136506422144069920301054311314340051523949375794586392874280213322193910848900424803177285840066799240077677730119575236719828803174862932374666999182471296765159045935667491030346121505265891083220591372195138031678095802051218682060574466684123022274247541430783815486984161165958356260450537526590280556817871607121064012724842689823767759662462715172996945418713791117170334010589349907616411078217503393232895822145410048581138501845438153048459063343285452319366328103524845586388206869178705966922045185032241998022309367237013899204326646222536811653328250145428283602738899992758151012567670771376281275165136743274563972783473490901108221854659034226722197134481385181783794757321558479564029002160758552910761864207703328983175686194757329338005992685128893503030279796401671802918476820045748993860252200560214564810767327406398865143253906866583893674265252785034326657385236982376096311509710043674198065291823914158102170619349613592067789052627316386459793582834762239925540456105326151153739039380101374368075510165840879518461818848751951590684077635220818356193327972320742993494470304865189574945089936622830948666596441210242035792016772180396867194490670236808997730299562060717491206043124138991939769702135990585800894205200914607830195595595374548288024781733583049997325779351700903115815718466840581197335383456624375052992100311369560402150974522162519059798177139249157909728689291304326906382466692654845522186705464078364004679055405540856915657323722090376656577729458493446228244753002405668545184084882845491232197658749628479935915317491380484840568958520050909866228550025449956956437866019991625173377009726180594117556705552000026183084291049849619518773153249199290365092887401538240541917267744561977393945575398520493407200945457541424703087010291272627323401590110989459875337933253801823150271585833949232087608971638499795000906344635791638678670845544304492736294987043983185130501226462574818083715836026292233543074530161815637137800148420318865687855749274480500355563195957802279629531762963299801776723981821672421337718948775948093517448269562068205305406521728530176775382963231297003599583576396147932926689396058879568041746822366862627206041369862563953815312914370118186378840141686294000004536374201097936253362349073029657119973750922219448774137846239847009101886240721702011696704814787597311532056973662862131639888880304683983636490048045848960568355522881743764228692311518701662745903520334911425105994943317484297949050077505721153032129322470431066409561690369204238203641407969949631794545879105329006059474052138354661923433262437455523330597001898826676434058628284475598255000465886222129163578630517751343498097793055563002115688302741748350445497004064815474369530500138528039599904777682121652884472507300657731493064399826748598805252417194239703393720506114212644001237138441192708552670674258931554807537877389297184614176931072327188295412565625537741168673018629830460656775724773656261213708289514880717131471770059983570897936719537905572565972792467911120430941847963842854728713138360510744546848046945855897928663945880651989188883357909028255759527977221642444072617302476156814078467340875854433982655101384680005196459212824936724708805369543538718629818647127393905861802427589293496028310664250648565634441015688635267953024913076665038876183978339854447997288770628302579520004276194101357042323095286320037928967406062861988573077915079549691861960744892378893569993284885078527906720544020064944059219404845947424387301661429074218409696094723846138354596106237995564436304106231479132282254819717334065586514868533325294880929438914161076255165843817142207787327545170921819552521089871877120335464320061722355659824142945874031954417631896057863980344349603179713483560907666824621011805907412819770021893158123544060637666265240786315400187643808823144692169805612043384627446534729320770281113534569508919341370072194830222013726917917784481017323317978012767165254866502212870610805485273770429594406652818880502819164070364006756972635044622715867443888024009468087084961968698026264772387130022403305139177453186284057568230205757822016888099656812292779460251920550204436389342468000773354662018965834803597728444092919364105685950699667817313982526047599119541761828701883321258162569152046140992151444021960263129976976004431853636402164234686188936606125361653188557129524750829235636625233791431057919546914152698876848007493543416208027807138457308232100778148234339024861578403533199525432668973789594157862393408250611280121904559010258724042398096582893727990002090203663663963557664355493421453416387341457980108345399614338835745476811389733708296978158934793053217537095787865808205516327702357865772497010130060923158417882703709261960619335931887332849130255628998859404444536066333284284983223650982458715817448438952612537371725988516104847430798754315928941895200101375787659324602533202741789515113687046567178775945124852436706514115013606560179490338413464090056390775573200443783775422794432337140950008601212795415483790036458384564919333812624068544454247504655675402871521047323498278795531167949136425345061439251251851831831323725717008773235974835192175351654577019270949118414269078624422485670365776038748059779927151699297312605378763707510518199994434902157640408964205868298958731903714602336807551286514402202420102342238204525271910508136643516219464920498769473098423646550769545090403768616149348246014478733586808088591255034284951259634592805301540500346367353118336717589301942318083900077238786567211296545595331899014911955526371931520038934255754790740873404066592459152647809701367874849850305075751742149542928884279510443690153615493998369675548769009188864143107942147244182583977872505779427171066783845930524901131583668285895939000632733054424845338122963285912904559165361306122383537895147916249267127859301809707123436257235414825046166925311126177940465488559636683753994419450461277217834839146941128119931901585192895462287970996503926640597321172431793247004619954379953048188074488724971780176146268453844677678648471312261607546966527046875467570824270889766258581545753035448284697351505785059067665646925496090234954529577387236946291640471384811662849867949815111592160528460724592895135334809083250721421584417014633369906213838398071706042494817641125989038915429762547687058195315520508245405032744179881210465839156158827969578814946019795513279850466526613552663898701211292525570176779934130788274117827601817173970002804322775484951415499256077327724552916042126355361434591848122219404285548766340561603588904742461382114616218806930036100637019460564250748788635464550979026369232415515789020489009665742411463490584873915493696798032781584066948573489883049141889914224053833967388015170848235686228121257785890999553179572081899107402709923496448583536148420322643064692019845352895407883048004116820309693456547471744105460690691559932630815892333439098350264109415033113162673045522216365486113337231905196321308428571628789240553914692964154926461005247789419179470704109978351276066729605946835711667101516013034080812663159254772587005255356675447305346467848109257334088269435329601306928393362387925748178342973289206891361576466971921255118454201118704119309895208876700370125253458930023363691978810324352097681590264098560672955231740659905329657548386934141922076998323237968563848836313997693280829014772650281058743941104108159399961025054200924179874006263131306044039261010146378269521918066758764398935694749792522425488498568452885512111418055835715924092446913578759596742944967085051085004621200733589939826762568630687822038378544990229917843744447860272924551773989399884157222116284185833575061966679781732380165450974463692209180403940638909669178417941559593522280585446757122818327085900447243080688034268990893735021606964150656857483277640099499810314913445285675552371040808391913362041761353941957104418375712717956162481696188377534873413900102054581313286939709928573231359012598099187429647230058121241178838804139577455740796701386191059525052455336290941902406236254643666705281526539084451970048865580702131858116335896529749653792511498643617375812800188848874087942558473304431167328982302308673824002176265219302479893289679670204008296201706559556585699777873675667387890501341137647339948336183264903813223585218159620429917751741451386188855840319512292217698746990080004825686183841928434611897391572821168077871347299071362905295784478213850045312223284755427606921257099527077494356122606469729932845956457656710742641799856727053806891528190963066334104149681902064777845024553881243176356120509352301395789088816370327283313608585169190105905377496492008297025286549630367161097823134023391693333634149165978420355410236870375236930871999743381768453363562234796472578891116602561224053584450661187776338989689955880976487342369465903188017313182608936020675711449761309425171682164200798034734147939795404792399729734731196226929367105719778794388838425830379928233956034628627317183233364177097611468188382535237851345400628925308244813283812281705199238910660148776573965524792345008043212269706148761591878024309149020697494059478456625477670023785047747135180645296851762165231734279170613416607434867358478793032032550323335284543391258338981545917671151312132999905569934367846731580065728348276236771556029297364850304039277864118346499155617878208182945536625791331282113368611656246536837399165781414416852583356416547048315866853496184622918711913497996846960813801800875347496148992529150964221927613704017775643639117425048246901488431483354665888930943991673747024056705046442060725596763122895309570298367762147455704141962249910473435498171143000220729935204210454443581733928869991020026676506419473357443185759921043176234379150387787996510394636365272305258420556923820832492808664983057963496114311566936590802630938923635313120038846392397111221007509871115737033111044785514681737199162541509585394882852973589121686608903060194473267245686916417391273095832089832477640326150675745847894321519721826790460708793198913250479220781045587759404066292951827219701768010474977894859205466959677848520344182836363032663135372765300893404803596495540794551705572650800618147722627966843163857129338720230636986703444361903004752184613851598406930568223137405032565359113499703768821817875110528074836863641657951272259573808084019307859905388933238285029703349290967329218655555254252151350488226071154737814064316187577040376782362712884549734168556176179523878881885139165390018202627330211437071142016242061451841977639526919105265000074129842627598796760285528954051656476182166881158554062048450487800718488960572555950543401819027244902754320396503251129812694136068984694741359570388214166643506571361619987117016600964254724073464671611091299726350378087310678188233673390600453222086727232915156998365155241199062168744687628328018016681956868926229656039804382774784858355078571028324485502781960767227234755442549135774864370637370599420928008778651899721889242503589742021512791188679778781820251428964109365417325089702292845300714195849740462556696185461168033281514548420010690845031713924923939317918328921152982323289420909163276149120095416262317443226195391648862931841069558963655063648082342420505700335125385471364732195511293155946775972670851639163896171591610577585624139903745516323547048636428336301408815052033355721961998726630817656671945410962380426771024347751629015296329614892248443416485674332477693027598432284999330199519540492504193100944121064828196104263288594599964064307042588675142259424057146595132160174097435467170153213599304587496704886936017243934903417639815760711443503860532315597729990758895840702368520688098709024128202130891453941990967586032134497266531544315616745974747277322796807063542451079646673585645499783616419209409448957591126472253253908574885416750032512648381903396685793959301542292606236652874040627045271733670724533331197741065633535369133965597307649597209211799174674441367750598056437115337761320767431519854540667331691212628138075056179590516505836690556899933755419303409442532190935831097883390571188373082083580745147061618006980811224884260069517346837884269335529139940507589974651603714038679462796540086481122329672003604289444855011743460684590931495104610562026471780883735527919631534837354395202061728024513954755383468383665359895986709546379669244015772685992511376729702977402919640725349658512889805658249935439089413653951713002241949517298417737766033743789267976434075925749729235185356967264172166618410671170698156673585025749800182883059092358490677077406558259393951233662417239839793399119500598015516217490809986342576713373492141699613988985943605826506414532211028337534761243005526938715731923279353345435465834945044674763153044621623304270267215885108893730805474582096300033367521585056940182199061757113959844633467158722593899628230612316841336601506483610223463422892146779255536970418061996096037304535252614613706424997150792513226268932650663103836086645577372602548357790826467492662087927110497815932089189909905461298026057519005023827539978183426098932340194663392329907859043694572797758650225385317255002570681932671035972959797822204940900246565059499971054333078846558420243568396131824282037118363121663949553065304359930948864914274162377816268150946268973141760900263403935017365916948980362777901896158798342864270720337522414324007461836145382901182989506927701579217612787822879477845574777558981621693969877019495045548061045202954123211336502410356551997552182487128496939486673103744116651722995743203964573281772591477313183292629691307031296706877776183636025184693885144706243817015395105203289384553550478157222850083934171382858960090555289866124572789281072635006485511925828110432218945853959905273412992675109600520215398864291536915243899336896671892856850966560820473611401810444109211333718961652279491323114776109489077125772149573292564675041575108285850643224199083151966577882073877267653060102836350301470189971041383313781626891837780336518627912015329259430910148065221713314749311260208057127239391588077951219730581841194164006558062567312068882471026188812838068910733649353071803223226681841397765101910966227100372030321549802554735427228269921549583919501160097308590976234074985117109650096563986940139101979078658285222857595682277001427449173582897962034886697086235623172597349834139873180604054898576999460524267052126891199356593835535395839375624343285160016834588234510339875172395390553031367636009362229772822945656771843949221328245989642830114058308080541608626737927288912458218009420842281384313805245992933426296695320286240479604496530341698213073479560406611626898265470157233967510124312010291785008013062971277805349314502222218104127877385865432939599050669189244443876664179930503228406139472296433132809001843425093888823734979212078494957211743047743010427501748939450590148888560689436450015672435707532932160873277998477271166874610759386548568681145022426635550164802180929952669450905474334472933505655385670037608557838331839122315978715645035246625296711478646367751062021729625047430459379819466003063492828670405254552731509940036430180708428467020372173806755391278412136570116526763922833481640214048071670549300576351573189944443762633132047319618098452297163913445969148176082901072231820343415888011515920450331148798023224225533486388952241795516234216339468941097586311320023895534610479558480397567421956768149030689393704949074394733647855521631545052175943576054003505356432735139274056220136411458261267385410350988930703991989364767474452567770609205580583578036815206514735394520942666427964443257621176577027806261245127822269211851045797579875053203276318961606291996083505457798378113306240264050735397557851722008727008572559697107528701683370145420725159131308589891962312263371938273221281285199012803260712498408117637062197449189014007701983480590081569774170446015662080977985042338952298764042913695745524711963223267050074188595953997775025949671666595228503459713893124164863943569675546756616714059145940375330869514485656442473144430964658474636867070317094275714677486006939098465789867370258649496723806813543472947938066442288970063844940183134185723758024601097852021381496145968971616405640532518811838630612645450914580400418390478873777366165881335405146929645919255954759798401612496652882261700056737585907069924272057750195990751960555162523527100762311150633502217427429665357306648828900110479260193289692787045003793313635741506981945567934230160403823164636179207883454820466118173729967633819878795358374329120716185217804980611103423267483224049302561721382448219784283465376128377786287561439786685078123149491218084879502611885447812001598909460498640820772398699334460046370756912342739658560379435929349774621454065372251226846476611193529384063492805085870161081092472145939060609413219825097719716103046839605628486428702462096401304473452801351623149042680181895391260407032336778784508617101252157896739092000125756576594610548833890077570007396827623459036736769602428345039801746341656256551846262835683820918823570925866401989028977008913563896856067641332360646452231439779421980819091805657990797499518942686217405028876528531792622352569664746348982554842833212458727601753708760106069425796428110054399112878527387533536247912173129797540255949849973784026344906946129500032625173198556266226983686373891024225544179935581339199116463405602085784866434965644529872588393196964454640525496943805327894012224696127668590329868843158841444495825807460856271894440675182054712981357077478378415245017588836898338061326602216859656226812738709231680004795338931305493209347363748502772212085618470306859926733508100156773706938138847671212838965341714146376366779376947545887457573450562048699830250165254542845742344946727386768299898744678859231380179536068230312638759626630301618482077406690378307076862363772092033682711589085308807319807601323885731112597805904707068775669407467700105906991255041296257865289356022511427524421042207294446246079818115293390970764071752322825495242932191125389004537446866598200297680319278704279374268079533874629906982544114888564102559815233004613278047713915195613022889315966492919597681073045471245232651106115784900325499367512307684251711540462716794052746858509333797951622441210586604872748160122097144235181273725893728430119476149335395745689072335998674882877418386940551178277544237065692915643532344564506501156783337252737500365255360715189893173299857060878067649675830791821911726567392062861311643600436962521233228386236765617062684553626136978303523038718888200191379111858872180419802755778142015202338170830961987869338085705169978227605562494541922162620196168100897681977652915550786524648754542708401183567985333902723372558672420462363524498004596073957743433949285773731452618976635703623564785025091627858115347353986442649463005002310331094393639055059312590517950966360161757574157465978409670964950259102927209480756274887682117110343131541391928625365223262853858632606651378930405739800916051711351385305772918412481826603890549448040147290012553072201145791080992386859982736710659184128982879954140205134689390252603176655435672958473444648912247989467756064762873313389130129599001330825463863816752564096374919419782168656411489715547690439256828297618640127929201985248180134671882500372082117170591920980819388448137916204340977631761543382202633749410890217048790432131905691213462464456368758658856559363609186635513893002516085710315408033682972915242637499513325200656931530972367329728101995378604238337956162029246744940801008886979330671412181511377793974534320654335798914732685573305786237189624624444403545754779501662966410766192790584753112457432510842746561391501902147214691874323332026548167260955440243789053971379860773781020328661994968551144382934082572966360390513475917210312608748968171071145916576028936273635274344412937708010222603749767933746429646859563734828506635603968080874735890680413382865437968393147801409556506440694979464503190680184468985806204029022142075975308355298444183859111930448818664951209406946927486621634822517202495070545984911062620502176982838615107416185507971825378932835265759336464465159838932489048724889815438581413206777189912193750805510132252653914174519705706162653431351190014002019638454730717260093209508779489748356797434910036976818133145135811981299492540773261345528971447326482236890372916591322036589798139102722438181039733981216765163541692198806278400958215189066074074946427166428884515548518290059072389934724061460860302014380495571470112714705651939167643943937504412499822329200998992211106767791893196687271724479886479943933183603687930871214764249106968016548589330223108427369093202272618078734838452233488241993504646697607255189332738392768853380601800170836293233359401038590614247068459874348075081290998846748368157935296657169754565991077469350344883602393018540512298984762014033563378153948725635384702072572551406576398504253004283854496221555296312587233589674575762164218849409374070261352019148876682497507804197444048951369470950695465677402666285378931063866690435632775265008964433850783693789439511471433239128205512671876340524849656373143721260505467613906384597295313131693185861754639291831017928516388942344639444168360088434597716328216055423807442361410650726871952046992348688787661658253531904790170731666342436299132838902402134594494028292124286452044624841556073751441230451666131220420035449608954053262122747424913431911839998210012379328283576007816823379044663346136788542252837364663693505878309783589168912063345174583735100028479821277667792659375329184671036141558287018919926544653164882970332537575235550930665358384267058877315852527032376618584106367395917764375325171761661863928260674212031462792997307094079814914856258682701639841057467208145439567366348737818496734250927057525507762957532950777600493168803808050855606314556138313683311129784564460397886871532129754119873916476847674179613349405215568738722340608201268708371115379399434771487798027103575654106051868017950553628859866731944003949079178082901508534295697963954446621923983024825715417571063812678088417100510488216019935775935311604127920735897520925834537208886970287449810139647644314062805602532121056513135406963486117570755081347411879577218510854444332900677838134985761216389257745888807345717957702032239691234954448715383108424286113225699716302206308027765945635008766048075489832664812503525788970271372080567941007714713817151660363493717145345311441939153806740296829849278786790560401319601269145639414038775174680356052703922569829463985752933867036110848234552753540257120470149149115518798109908574186777253532486049881311202217095065902225026537757865031834988464680994485681061795588971283113070383178265866494944280750207765518830575685534076378183985382667924274045004551030041676725577746897230119646134746308993954388329146265209200543132782656133764452098513157474324332522400663520821072528898737574330890324164112654758062814383882578338010443493304486942384971132136810207915586107354107892440086832130229377799132228824966500809454368595642434427670367035510280825914162914124557963078040956102472279773887678400290623753188043129154496142862792822697014294750288917045478826800364003667326347187731399673345454476396779586858970810203438947008916455350115614486044072557455642999553011943482288857120298246928851816168264351745199358367257732952748081149137109043828360279764208464050883536946872972969964235289973387168012812521652347020720210073541439118699471740794778280763731880909130546958661230905835520190087797231460287450900852173630047368360990944230395999045733857954778640590671100720781249764794285963489795235008102993332741399150157916976621945484085395227868359136193888967126042807065793403550460625153496243806816451833160237690072216602426911096482391643280266785209785513281144497810486912175237784186616206771596227755903662621247657232172971052744177594225754733426508240157023295722880751193747502824110195354868258752314106146585426360856465856062556009616692297905819660830310456598301745595836227165651546305239186834952904834917676181880000977839791017763631707625017451417325350413397121498501118557978706883003904877013721858160103787235722630213669483718944376786263333386446521674423996516682655448052291733820433941455856113537977143977055795552513046290368989500015375053040096661590181845800434689480478127952731970775882503005145240340140175706705189745822639506700097256805872332842423369770596334095431828592104242134683213055530556617428364524777103015493363048553408794003052680531730626545584084379894066370204588652779960512461998940683382544231406118565774831900533817246997402140107822521507591389871563712220077504668970496733495824924469220422857648459716105581321875354919966367208368820749229683386347398422691109726779836999748019409424570100564642302585732255459805037897483998224246730341897006204350429066629842145782627979492763721143740547295613503491966731687281074366552319924906686294293743030403366795166240483338382895008116203807832267900478729286230298998672732132524638934813326344483338771396168992533149310792998367636577588152721351362141539867396083538518828231697847184101468127885921722503592226965355094628253973741367966129108059676503822146955927872860234221824987847231145208362938860394102168213019729075372404490548776409818588223770338233365726431153093973638096055754424842697040164534975043802189111529646714663110980735762218368642084693224276032354232229941664515129283072711483025710925898246194509249154307946251707129428582451616392808582350297449047606854322911011564442580064560558693745651537375803727565740615872588861302477015219856145579434266618666216368370191219313503916764825392745656848745730598165007799289528176105997050803715250764022220833204945818501519544909678368830083920683321252352975880370941429065145701929547543645412822174651620391422865719011780225195868358518116201430435835995426459185991826478570664045449144784910107608541946382227168715299942334375375559960347539822335157035923693857043336928522175412059338236952547445102842565546740539806952807948956450758179037572150290860554340772762641939259519900016545657267568557188823349639122348887298897609162412680826147642422393629362300386691009930463510223381952266080981612649347099857535374054013344781806822119927921304780187007751691124999556036774855283517896995366164356752859875660026419341450940042648510109214927029464443501428260446009534640279934371582210489011395422566536763546645229078852884552524048148713513410291390469418491930656193638657789697998803942667041596366387929562321712716277743023248712078201447195680006093256560982400733372415788505756780251906352829783215461998662269949757562066590254921582355951622014048676222388617727981455486092858389474721645298514946911330194633257627737922063769039890692406756835751078673854087529638127951652260692876220962858573620136656516324539489864790031057627212588484389526675723682013159053038675183541470336121391584276274977900628580028281828019187057462367555540817398667801322222857881963928251507464744765007895137961654220237209286654223130703286373026034482578053548112465226201967143484552390266394606467001224330258340721304559158279828860650337277791163921490720875121732905869847111662735397296214233319115041934959350690089332211993384763919506386648419584541752893932038125581765067400065011250680362390233848005495255105546738870278459002503417754367362543912154734777010208078073942366996210154699772855851819730854006686371362581832329493788916875990768735448793818623345242181972047386882477928706114698854466074406723978011410239505444796096907339826763357807846082036632837123261860884391827173217602015558391939717441253337328371685899900637510142697873261958213702586310171449198766246574348521979866978055172675612521534539434286919746147932201366947265256138645403508581992145529596103650640661539972682953580385117407937380757305173123248189507298915033509808362726974930044115323352040398248032059315184039818015439801459187474984284035885330902986848687906116146004474910591792355567754152683840473230371389423617203389913685824737499327922342910649696050561276822790093215031533876991837575781839095216199821201835342956085874387921831049751203662977214800580941796846826711714227586656641747048894103456072660239735201387018351547272699784043170018489467642312172596030809039903993194696170999815306578616762020378600904087408960872988634854321065536417528912152855938205942130685491740147565221989706419901517879365071368964337796169078042666030109854565494352877944185033678323167844675603649412258100590575491405507646882486743869333455059183129004253245757333518059874961628122315889759213527445908661845574155561264248009251992963613765854494554802872182205816046199257573294102090879537776689518687006935436283274231658212819628806049485503657110991254142604595464319836524081120713471682084632572282661173227202458912656242734670472489887899228304473653784011234678115392838057452592531255138977444182589354822985228150435120855460107851102364989418947658825346679012945756972996272873911408816124623673519240651876153188277295000071061366230493350947439386508938703194202761136022606751999969948456832601829026940171755194264396982514121229321295905394550912785063432890329947354301491693430935312809017260220243086915539238177398187369704425752480543160433288279883750103648510404369715665226515779904259521856951239311912019829975282135851312962152381359810339127533488344726289154741520896600521403947172901619728352080200835152084590140475834631236292279842570040587413760323858187373604112207778315388478077444157238460121274265070617084757375143812987784347723684288786798982352645947625347559334683201050753434427053076685635124284766362310253059507907944598637040960012708430067969402671797769114339952648891273104217452123283612055766015311443673853261072716775934607368773285205079072055928027483165368406572538524233925001734068493044411380355010333873314761605346021562666137770484194616131917793853558410114994504531473884022190595399222982215789671417890793038822246162655997151256933890294739549112305754822511851100300246917664581115473916681103394317993267811209514339759839967307013343454898126018917641041758338757310578962600798803587053151970720878776426398902525623475978271083444653984063418439553297732103165790790230205573162984779444079632637474837731210402395007937516670306096826714508898972040159238316945073848378533634088344000038640553082345621743032658856212067779668541495083379942882879761429994928843040516792743793264764660163266340184195010877006515491043284672339886089898618914214174349192109284372300131865316488015770262756334120479183278117439067855814726072243221551224999165230737154735689321680894297880879968910241475322831328562899545835669382523908329872363726477759811002941771087693393355552448527864089626810208920168607625121517924636786755648210463611508855862774246568218339057225460884767175749386983193310660509844744905284466794471126173689188123382192935626987549091968927399515247879866106227529583066027619309011737504065655481889869657780289272078476825080995298784371972562144017952650229720937819338262757378937461465019366619325964784408059452898176931991226087576088882498525380773136446048269821374511724635873336581062204562073051703206234739348682656500219291160848783173413086669172262940397366193370616636126323629388398702181432781918796183419769412014966879136591808906208433049301131733281089146591639511404519186290266605151138543185458870100006614898968961987446556204345779431139769890737348179087857333096203172479825596849660207927717070529220046989596754743483198148981669534779347666330805950846669662863907425664904686179688035287905008137459111812972853445797348233606265290079103823580467739435907467758970367661791353317940011489987513285629827778810796087209874909560941811512534829751592774269311438555745261142101086465086909705570156748324099806681893066332580264618021806048161994905636083271817846511670043288059989609870568831101170728434716722761303231349646241099789838165920349887980315210941597418474921969895074271349286420459728193975172045511779660896842795728896085477930262461221465980380662465864245479560493420307166075005497298506655697974883748667646340788374558560829578999568913607619683862810669182497900313852766034666149579062908303994173416982490441116919313411827380017256650109542308531176518566285147265710973497586429516164806955485947886291007276450068440009588608491465358297841472606846969371876058859709301026058280658446815814048511436188011783175578550296762532388524028630428905633630518894878857630747299271417174849612214431854154581574369929793068248180496676377504128481256236287865523184480813881653970018879118254460043744959222259447246899404234349566047585321095571243575272457574861644954126917011805502069909595267765819189448628490947350883397587145670847872668437938951535078364066245258038153843575965732055860256094109080771686123239456449164492171642004612140398071767984323086289274393392401632471587896373488835342057952775732160859500741411513240949726586683728123621300924307352211324059475489018500630227236571832482120839204591426553402134302585252548116088010209357196888849652051885010402935755544875514444984416705942637770133271434400669945581372676693688714159981855240252907631427256367708816949141064043407742589214388717555365419207757850976633273611705283325637978580356273548993303874181867764598657116768952513182170508221263942643021269531733662387262758479594316328312467586324623409495021254387015032475060502341125817566578462865883607654906770641898033097326753284201336168613429863571757732239490849179295473423953504519958243008754931579701553435109802964461443798482347857789310594834166217081645045608345464154378489144425561013917432927462936370148033647053985165884065444714145801770524962473734190477693027656956826345532023748508680533251145397209476006365603427706582914443166894149718742387854869503774304431432977232981823342181836740791736001615425460546834369421922134580259623536114391868049169527799127321891762764672412732873562932115615200730406414385100552039453534737888631018900403527827672688826607965198718790010127346539440680609254989840439654885786232722816288224759441481291366722023295523241429081739044240170459473371008605867321679996997314359833740019127908371111530497431330907553904087209312803055010816204212519448584278695136179006703823111051896440027587014473276394116952129758651549838432615019177506309709600662394326393857279012689474469025138003386407918387419221320241408554628577208289272065436045017171005365797939427279266945879376393799740703088162803060345037509002127124229740469951438833249314274555266597962948704027864938158280526905225505768100661513862386460783706231634683433947941684002925510762306273797826832777817861160436102678581334011249671491948542564814318038714466315350796604053056922577096648925860349632235699755109322755323784999598362227313989563482791308376286622696696333021687675665981331547042021534588697291930258310110793266572266832275921914424654278325076984588778515187493963344513090928507253624603816040623320398271082218298538497609630609748808340651068571983671789884649509648848141292196083231326738047349078605392887665520870284048898566275809798726571263506531761067395262123607659879848485134753884552776872971384878521533153968382518503207246942799369095010314423570151931425633555665814015707466447230638881700548749448193365005012447531754887380433313894713990934403334192995031822685779561282597664270126447357663377105311485304059520659100828586267820636949573180991711570808110043656388198690027155862342957125326587442850629358940453829485375012789534934642668843482500686191527901202500181422633558626458453861430333222308604231693476183559505407446726225390992193741672712645593899627138433580118822234768173261158203932330123016246075183541276968421206632947990947348894093097437836787938710185555717259012575342757393881608736903038237439054351296009049360419129431037772689513775426344218633070100592294804041591900936528771095556928425999879331830687458726461287945066624935042505878697196982048115759572476011996733461015030280456388091803490283074673104633335173515894524374174484426273667658375496221709627524955419239070130859949315366723904050572077093927211521280630784999592969385256886554432752277773541897311230323343869079697156652978939745133431946795088563152832306759997475215167137417548235438918670509084748654992661534836665837903437512236274816573240982937617301744690838002388697316871688423881147001641494402472097268161919747962084336803444023227570649902929086509869356931483050128181117767084713277195185365197296952626973358253789544467300046675681778894976685827329022025211673601817156551164638120433620860101486376174023459527071377938149018417487575769246350474785565593778619390865908346223390585156799188847593695570463336834586447337064091713160346190899608399953187736855871067709486072394927542909742917123641415900418409191253502041852154097822392539720474348962368637121610471425733189696409646110014271167192307607920795556115636102732904389301597526132903672711718875867157595557118815944220315448672543330975396712858455776978298013646452693475777413130469293328308611538667401482733461440076557238742116282676938695693972050426112471382521290085863288842950811430529763143591283357949513924825744476271543004569195899021438637874508352212425433603423937288692423286705417560116788485795064654935371755590884841707819016356821867851465575315788438100215236853196158467774854218299696156690549246618922429261151305526743856598603514953377154616594975287920486528016423973521854793405915148534507000455979388596610457063586578403399345993554125661231444161035095246668904259645363738525653652589041421589446836360036357866696059395116404240356779857276472715443359992060387930495389396636790981907493860165309296490184081939152251069620211396025307686421446569160960461734025769150281408835927291561369733878176643555118449998063143617142425082791034795395481929806631507570881843688452865187032224799378853213422707407146285981756021696463262100443875439577124814900047170250179538413091667543027373045463295205266153341129425397851877351160990771504876847219757516848332911810470203338146964597312421679720051578168261625233495384988408036911058772147935086394635461777008463263635626107729002021539909964955142786541301905601225446664397072589519793029119811075240250728982750532733440678619982425332747941929795415799570584882436068136245398179284987074246118618947086976495212589739238530528759375085580941277572004325790871822163050051548321330368779556685125215660491915662441747751043076911671341765309247194781462159210703494643833801148649771451634611377146425674245664096235174304546811611351472791918571665594837274504519759655895169547418443550160573099767721663137825380308377295687592080512188504747124516522209122596043408368066153901757512090273126066641436987260539228254908424636354451421174361171133713160705082178294774843139348682458697570262738851011881666795028117244504921146380149615178726327619773765324721771086965937148829339177496701735636128209931941577203031386883058574645977908286144944607453013733140453761637407620584374968409316945322195098070514318052996662707492562193045368543760727644985446722890841452383493837044170159093701491319086712046239811258509989252057622717660345855822427669165426036535858293660289971847639650718144294673143526853488360602846416403677433775755939588329176714132345640292195958891507392594668604218070589919950176763743757773023979822252670754612966840737120589772207070079857151596464876408659817780929548599478973129620714657279903137447773764854094890401106747808205538258055631180810728926748299585692988798504673228657770074317588676289127963663264517649807221695889704690013107299812974898878337917956141019801432513201590930110605374641284127446473553734098684778973145366615207936724063920412877744470794261680580881561493673923595582145381954953707159865120707891409433242917672995645199916147485005304571104385773089420426574224093919948441435050131581874830013209437221795182973947979893648970593105884665998303680892840506659236192589049061177648971319945368263621589972414221900623626869419028419606769629395055767294672985290366224622378142892234352681131119156097260673726144519059036949502046136450822113569312878952517218770435706627677299937790533139935209859007509429753887588814025967578114606792480518584900851650086239089959145787050597950485789909992143149999617301052422992441571582624533051020370010039593684540324442998176449189937754618907269001393384723032757528102375607965902953563481863382711827255082217078912300363022417511479753161007233977817795029162931080840698749328788210857680781537026654240779937880496485312832765580586093063736907287112823543498254311118143199548090732011694094857758426863007737931062312376133110489367235636775397122963401280733029594051676816325717436584846402803962618468421407167543832230245639877534722455331752939422152629415387650100238009142045722488572438449912098939639716595282736699082497933761826684445577833031851136620064570853710985843711703182676941634693545303069370963677046006239847812590058945212812462891965669156448025980776819983587862127760324818685227252259113791021987026629746649806769580551573070015412631370014620495815878455175281342190756413985889459598031376653343074558203919589587881298304728147605927978534509027054850433461065491419898414270388382392624950352555444654580002212804504693909095666148899116058504041460693911516222093075585748931552545678780228293659464490637988195403710810369213405831955580700539302011185178557028793338574769357795852024537483267753389560966431369073585643349701823761100329610392012426801172166066662180829162508359727029303945744591106698287370730020806390921969289536120837354371215271332635298296652600671370520309276285625819204153336387762148098617483722421364449088387376292691383800762789458669705266846349250755699187370980907049530081285086958339197899901446630603186741449465807540383721131027793215358464695281034357068942932127454395389382634664521301513734119556615021603910131105737347786061623549109573834437763733326205411833658405773377249130727323074424519964123954588728748413044520169194230509974910414434806690173335809263406199777426732524273842560787010848193890417540616614140394811501805728431554234951302255299065789484632754712475950599398735462535749219397951148846199934730624720907662431928631222168185340887926365943371831815965158964247748894504900293119418401875839363541324375515222113841144714851456167492202813120694870737260524766143942057728870568844091977435321536737667711246291138031828053544204199758475767827555855026437596210971927212433988153997980682550755640375175125166238202755991448979292159194406159981200743973636763093961428629822127256175591765372889491011267952028078990906541876384409918464784398404437151631465390196188360786447358145502361274813583009757274069849440787051960391032299170957725475060121880027312471752114759744819292278865594629105237551454269090986620073140932854371090831196404198911142427212503491700695493634813644795809133631451380472436247043191511550984978710806514442810203588345076006443415921772185160986789580896898713865994162596786625002743505649119292045678442015945992494036018864957844325365839525915668294937780887434297689797799587531491182052557091703810013508499569519531774049627400472408919012710067702057773180435164016572725065670076923616809453225791564502811870934783758431992148950584937975055106854402566938571482203040517567897139059450326504223815328872115460942051828248849506988144925872656665825609633062393889511637726123792224551443585309989736991439105978062764443221150711955529263754424314281081072466056173593375208501605182467740877674005658363273215131589414714767664469825282086495993616881386156258195236274826389656157538068555595837422890828673242375628820356916764728519046074790030794973447652425375566731356137968428917575164342448837275632697705386614914892291348850228486325817308867196325803327997479054367594305250286650859611067217475144347370261602630289715273806130827030154894883950773190880872412592160399057709769897138511300645006147816111623389468247570145308303711722042205402229132336459555781479794768434174892225650710115809713108708108327343479537231386794459015129261517254474410174339507302710281488664595071749844743568651229698273191670175981249627896437342347785189440917815771240249716467824967265435186507835535666643519626562228696402161100574682150438982633589533932484703220660970751845328303467149034301303724754054311835559749799335921532494175137049367509677723167402184639049629312712888359606201111823322430631526040640681808685855560359223620679523217853987681321816683404546406702818788446975003637633701760241314098506471109583591412609824761132106715579514400043417630945884968679375246101415801038106908250058402289398212680098806184918267377394622791838818275923625622952442946429537560946741731433737359081146952408112727474811138008562470966662851636275256818886206351986855664270577949382217613442493001311102308006184866451099444006467398621734563964882896680593643967975677080805263373966720226548545334663265070047006354987837722211120513272838111235847240285556885035815527399150015711392473420656000541458229212040902792679628653377883693094347121104663948502628905017129317913757861435009755447749746361267620243679877983044271421029225430420257887353888642401784841914081663784348912287191317875748460089356190104609687120209467018539377220622534156798499643751524469831904454654295099255441629334280165273849946927781271865955540833408858745124562008052300331309081222791481615592453456467369452051223135732262805481775917181288569727470455374055140491317348215861009759524012434482328738821024561192633448946745797198233220482452954175188739248702163690300921419975065534820634816552508509862712163075459205143806443091633594192692747411474977816750856004130311073237447153822422618637747876949762009198408377305588964834864082031156272066204576611603665838763812255268673764319934390240072648129596439897772893417027322059844879814707882423302663406127614169402661588780756709372624974295375392752821320509184211364365818300461270002688829193778974292246433118295465206674747788242778193193099952367123224036607267160210048223651547102934888402445776667448687958657198656547518695703566016365242349857393607917222619769926863259664586733919604081644819547526974517573513531427731195282072292606914312150560852322300182124534174378606291068689224534282126846430645320937501973061215936626247100170925358406555163372738527281739535572141066823640295225907466590750108792685798139126005706603855725331859241575150844386268954035360880810528390072555879828965257069144221060662861018124138885729801793502984521150545392681122629572267828314974364478602220725968217916114901980786730675504674872115301252064576143009549617050566462112986020883012960442033722413503900176053643096545965621025911274820006615996288533594218352549925924383169048013750442397040264349744901532817254332636325268961843448434266674375295652849227440929577712840332094759041829512118684465889506362591056365780164829780391924397682340101053020870126824911199990582672165722671290182489629335412378125449022548425230217824341588638774194326253936920591225089998988165263845897315172612454921764473318517126734984148102075453379722287335130130283940578751244604523836464388619815510635251712098973150811951688826432225659118372530408948583798222039981742904812222491616585990419914414727694311376623893615087272860543149268242037140670152421445242371159144110239509910183780324814080349920148273586972754254947723029745575353597679051285535589571155739839116187574526228983085338140502995013367028158875812410544191024340105469215147125819192238030502000264116471733866679016580773239606872026727860927822253499469870445734658776047525858439262984190388179949612453857472588963818569718304340995289630360163284803460439377998155507562651190197197401603743300846439542887528869070053179792671507197780513867216701949347918724205926702005754588414300759376268646158843896502650857176323055117431250484623361421456641968439298525644950451160090880087587157354245203706204666812371511227281576611956744823914428754385631225758682542029719891343911739507400410234250322717862639625664999839337294979745562069125509104831178988268489933650071777380884932984999764360881598043981736425521282641519857247938785086811426299184628841524702762088177651813837190624898721219248074874250360738957011624439588839714309083745016631340738663225917870819413774269760923302126691495076616437815273446393994325566124428165484817390776684430381800095775058750995004804852952411158058245112996157877921273915129259163852865028315487204753735098576842731363397730794115256056550311210877407612813972931450964083455221446194678353987828036000915807464048565076064537272249007523994013642739406313336776082982604287392161293710675933730805261149065550670396786697557981565112351779354921968482920214614950102816009649790733816528291397108104652754644948527796367600727955888724686998891286908840032743733853643163339806563463254702631179373356354711045876149812134891487152739826328889695379343462725951688616916316515352139651934698473747979709109589123302168944268978403867365475057654126009043337597932144537024923287971485875535886798131042181369379318559314127701531716265363349937234155743571605700898469598232957610961070834573055121032171118508445487539966783699937464419845328626310196902371679345984583048434942675066168551301868164188942117328601624118974010668723003862717887337721438726689261916227302966246912539034846196845651287728730774261535591439453195125842979535708140409946847167241020265072653245846691186946986043906005259097530482710542575882008851597345137568611870981285393084478196293343429026010580466517418530342964481759174271595414570745358164013720304868001348762107339921953059579309966095901426583077855683096373622998233798028818556021250257192719354372311032211517078328161586565641541874022628018212213314795610152031091574261495580759800059041871666451452355990987313159299319450324448538729538822281283939665507570931669916684356858631859509887980264199133657971102061536360016637258658076038240963376865618549311793952424137162488289037558076862633204576666381521180762497346016195957603707270097351055374927596733070622181667132627147405223346507464412725154406716222944043207389824940570090199049201428302540098805238362805582859976391917463779577082469024680238304681101941412575749751327373728121348645068727633632189066969402829549221649043022674962850154826665380984077339197327938507028306688643135192414922339964525707864331134059758561381716944522843375570061785699644484566674502484723957225647915455916933639840313943861838215965722840694687911093620805469022395168444161172031994268008602310472478614675900036910084008350695795064361044703303814364171087704989128446201363194546482975467004510684182431132821992391762714271229687397760447263210565525214144732266813119832293141798439376614417986880189241859999033783014701859272632529331717971947723873909145924218372566665438192783562513505631929255290959573632153412505483360379015664321143993125644479058998728042183022336579777166884023760304578754684990661515513256739947631851189012045945220204527270976504036597608342977007991316829950733446502521883417097279804720723683929701153167431806187871409470409538427660276582847874259067392910265751180690005914001240217738589833197756393759185454146821907111515385684152370665910163166363763692319658527561805980948412366862381748490435741167600904590624023864004840350409705185321313919277482747109823707412135994468365989748399694160835907866077346950595885027481560604783138174219020279139962117929989345781569891885548862240666023221848520981044580094628950199282233309143195099773791517606211729041840911180761742885934565508311104151001283100038652647630425369115647198611681932754717920980857131460472846621078791067712471136394161865550221017669002813162470985717009668490621854870770682116841441156401686658243584722990241236296378235273003315664154574249434353180726858346132515960579820211192984197054798443217009099635261402424845689975716848809629698887450111334658038015878123562884686185338945801400205714527416684973359540952817944302220131517686042845782959008731864055914339344012639492899143089779913200931549135903974671422416981647071497175957206508738476095150953749562898258407890033423963272134363375520198285383928702768917896096191187169214032995815946387580560297649572052764436518872282297401025967882070929206287798108478018946632668114110671068940104308746608732093855010121620344347595362940469866625329922923594952434802377416488037219406136569675890988724428975818188869400301215050059049228617026814956582196755075820869195018302413373772595958684683287800924501460034344522839127881421100884893045903987119665353540102882457719720804573705837404647708890126083136093114489815505065248125559554334043838561065076547965553446639344934665815068523025143729218379420897480558061451682731331866196822089723174956375952422491905582344119188265573217938016567428809589395592393450239402944227417146770606493656507584132509518684563067065684110086619526133370950690697291385661981694178319876928596382813810121857033975544420964947868911007798389041372484511374225417327368201773278490337728865375871985789840222763024800781687781728267460366719114888933107675733367769662515296924195755941284228800192144304791184338076340954898460479942989211536044591895804123897261735119708697241242338410066176417635871955607937849395436658301725148284796521823765331197682005410364694325381014940559466701516804848771639819968478206182079243559497989873644794470354714079687169698194923057854723574388769821816939287773445138109679641370538073609347844327770057955048856737330283985323919413329320363237427255146011845582764475983212466511359762525120728490422674124652657120068029433939347559934408864625812125095179231821734238289945331169321272556482560012622944251148064611323802513647059536867547566468273275078363774512765903658181711546359738296194760594788756107435868026498532796654352884202640445758696172034257703760316451986340719491057096540401228678048233383312882516749307039322618334064224432649309370373817591536323578508033287133180122266784532020407964432689513433745921026579655204374266597399351669193538666553560319405654552254505606010465300633901400058941109816006736623649631178376820183153049896783813881973110137929645709271637728434820336961155166847750537019953877704461405020557199499520268739535848171112368219579888377368586328215906714638945720910009117700179862026126507035531326725650879981371554954517638344802486157066499305064753082673526478287203051510121434800033903943108853514023562427338934065977785800910323933369998138708661057413951265555132654992152841384684565377040876513671345546354410581156851764134687588216361576379186256359473785340937667376400811746733685259280583646898209907569686550414360245364796677328213292981711659939093575608307842296165657199088161948321648504972137797497963821806828017562038995714160813813082237041864625794864063131433897088103045506761282303708978086944310011055432035725642991201593322174350365449202885218524864942178038928155616328817836175819466790244414952062360352394199539926760131694330892175410244447438614827463239933095391334884586274507487867599742155073612145248864108515097750223073601575348752665254993152930468653601262177275552429180485400818824620936151602167245510876214186431023222307930104753699497682052300037386250992921603010554707829102250196551330871638693934085483275622291213479190683850787925694733769359322799148498721966589142722622166209083881666624211828836999731633821134855090897840528948567706645223586455287626426050905939113001369983617478599407050664702133905796624422992400072896294193696349433479378098121185096915815554054223860547122397761259888803933861499781567923874781993900516824108054652792292408463168327943720137164044365712235078697788568276000931623432922965532910187363516835534759336245008786512444062095675510334399150745333987261236029240153446809269326677577966605176166289451533444245818847789325081262788284760776755139201321452381373041620168652798864234984912522556229936668192096204452660547753526342360024073664500804820316195972870627891138763236509158183708836534659822808248657974612797338674132883029753985233436056875034589038799166346734786142084346293409127945845796536340943415794022974691480009657892177637798032724912791182162360191117377801515064360362075440965465711865036904166543183024219376157635489100117557979362860500611383731609192763402705621751949756254887453779883232539324619491027008725054068271144753798479062193780604741029879130115760484671696710969630628646625685121217342863489094252145104931573031944200333660968736200161357248411254909445556816553966178446494246853006482416190963613264385585555843769881757268070886571460033155506640256090108367902771396826370018796228150155248094284270484822616592761724022845633519523288341261924518200269082597428373037139759346516866251096414860281353389085674303387201006454819475309678811593544339540687151090839140586095881191093469742160808876831508968787209938327628051561403193232387968779112768501598864937260379909250578505389866976706986820979997609217485106642770285967067005300167797095966104510691122499202494367659153506418852460199747300453936887851116469471201551055614424464056710478719125561727369262513388010761702307903620956296353944867136358635472664746539383925367044278904348642640339308693629320424432398169726751724184442441281008561725980855585150832151052417770695813701417675035457623159936136818162746804064128653503823278394318538714636492654273425204547032891189150262444731958948738404539231831505073682232884399312809561535616608524762028140575473775596665296999557403291329022893237473914729805113280108554111684549990779091263368399244611963732841743242796018180915780901195163729431112229623187993695482490484830042638103669101327438175267267717668378657055313192093917809570144886924746286409197618714676606061378844545461278022042953154201391050600152408172729520221142654148607273551910473323719074506422331584881496937577608101345466297161802677936109030557209901106699482050781281756346068916366742679797675835410788509361271126556048194517328799705430435809213970478847900159246687983167096597331304006167975737775701669063029742324811884663832576176392146195813732131960687917286712444280371527247701297473297769760805491410076987547124324781154420998793792525454423420413338405122636014725609098343386132192575205142012131313106519455536686379238196389741565786335429742961738487057754815412321983966311195812608544869782068790019280940895247197008618583121973220374990669936314236672640372444338059718723052848758208353108761809324286970111083239516859318709884448001544713666369761273371923634666152266435803682183723142637245309787390712563146000477513420227795727536561162069039431673133938103861573204912222630536314927202599226715112201151567825503409576010214525185895218678276561694774584120544528021104247047786439968403955530051880184375798170220128527381941469806620600970770682252830491437578315108968043778818717821477993179982671936555313648453612784967714522445873491387848244452215230762565957151308279216456811695781847960414528577147224055724695841219013832618970193696631815394074236964215880272790275358560103998356705006009085635837053394923799728632764843278418994022678592203918858769430832332316852357414489719301347870426947322894028982438721770135335429725594681919073598632380125233011432442553818245648510577282563931538591341445426934944009838660663252969073659630836129348324874975903216977413471128819142948600434390199479222944207306026831381455522168331420403716399813990608832692941612094114583825776796208964403050383218722598433200049967118198053307061553021474375616862930021795008920085398361047268279453854616610661868158374778366655674822905132320440185317175626908268153562998977531753852128653462456479656966227125871478339703289681374704430251649017108543954576023538512416567363313446926746034823421304449105011450646319916202935585665517801741686920583733219422774859006824066807479521995322129928395388169747353208893860802863128134454032739991104550645280804020428612472169801648915541557515231642566812964658726147009263760517521194603217283207907314752216725926951863109517419074249592993585459857497357150357198066399023870413644528845742658635740781378443323390142488157213133142193991814124672041976037924739798141056624310193904201467871831973716366310919274221659251559123793276646747202527459697722937021739978382485960597103254814088942216446174068586866429716573739724998286669079126709964915321529596073457022322942284358389059963581914466594442082913697106096187610072268327747889785815141458104507890100175382336203651222680087889613965709710263723718863137478422662908223763822285191644141788549209723027301288159582892013792734936122049559537330348483254584661895838091396320387145250354162436350097667610856570685901532443585319578072318815172839395264708084949095210252225426681312006828145653565227928461906526566586379909692757281311453003430560623661196357095909031538300611186092686755857530978490700294881319923482772137202901926991143865026532650076377828724902895939706217435597482931034149010449383739989285566902342470350749302855231935597734415577003266117564558757590290684929012412434253785116402792219094967393128246745918647961685683017920188034107581113101108873061309783829730983966631492473940221920085034427231540187024139128987397833187630137335615888465275542005270874505846058554941586498056317400413757580643521646349293195773402324826926267579481998521754317562094609017914359286321859989647631672382751880586902875260189905335215869818527123309408536349177228772766468979309982213557771959533477957768993930489828846467049117999265226174489282168368118113460528946515909403041155155027566121369887409467993657507817342921532298148262879528990766868760733084161525358276550519259079264973560642779972139882982346292982887603698518823805335938408698371725144117111305372475709087971939471023838572823326450764772365139852771232085656724426295374920681136046475768205064593258989568173076133459677414152470428372466556051101989244330262176415815001490548217906915602353332758047731146749256200646253922933748773735767536572093670934717354752123120716203337509830548754267641652457293459005023998582807766281142799686033471729126825178941392735393027449315071626629074996544018508439154020014029698169506356941290996724341224602689674606230205012275493618674113209503373456614133728132983876560452837480740310331220743877978011381587457041040950511985472890600446130779461143411329721435720705949244852518700416381131115332056245292250762138677580886539198273641538738138219743842675770913211569147125295033225378147318120338270112166023882781121151224448862205768446445735390913843817717034067004783884343228624093870445131446230043065135974484502954102963381982718315072627757287514831889347640308342819003834720453044883873334414855764346213883861142395201777881875709859770597194962992141843390323303534162287719937230363904545602935199199799899980034627251732571795470412359310536912572172988630999229219911782962487444197111134583466302331948541637278004954463682876819265540192085060366927618974293069110872854785940295034578449954663057758296544087008524387367725235991741541404262764520896752531397039873235782001536321449962644438846274343707402878857279559047868139781769679693194205418464958161080767564204964575636018493734185672783102590367313522841405683413649106255816129485887729661001821921200731068449939988356036574916417723762926201968850962266911892445166732512436608106781195331721266409976221802516912606140903955429481388593492230439007321668830455086464759039069493535604190018327166763998769489251658307301598845405115274781626020085956165843267676995918099345924122261264085859026411437592615726445805523079612773121404691564510409509740602482992904427059304735476101866874029373822625371488764851815709801187335116596805237735598649878469749275755114309194411980721686357119950050417112358822755764864258516536849666617817466598363462309962612891154001696486195754053465039479646845737418819979640244381804651054654711231640669932662531185417944122186994771578662198780249768534433241022315696325129095644970853526372042586964420460587186865175325607315312167094867976111418792682485729525488692193727232082154507490599857125270446486226839237277505345631228583647936401892641571570936213677804185424975766445731930116081577687562745292069055091175584995613681673348417929473151476382217809410157362051069205764947294081273712409009627174367175750925341558570996755721741785003167809920903279757652739228702142488736248041621613189356581186389955276160916345001707745648892927387879642233714795853725401122979214651652838406465292621714040758834946561273373811641004908768119143756707649104018515347229246000751352998322202312823107644363437382039210685017637242493628481361362851963112786490138859728959380025619067693047115952548811238583611864607587872176569391711755057174590495097068659771837818633501141573643639368134198574441916118467825479926679146563611412164887613744750498167028981543648103671612871085051297626025374067939007461489798946608416688122787263511852035655548168700150659962700609899705253489251470773993857987213676140543112172982861616917591733576346891825677172997676640157435266144550152597710181843230627345226987633795903185039906360792717916210965096237435021868913937365392139669724659934348537003450105032472713262961682620391937788162833443964736865106652798617103639189256034512554152850041351681198803219492527989229912373988841637413581928732327516887763869373851914874425927686948785454776299555276528885019450251936479143170036975023763058355545178407450060279837783844838068661941100437329453783320363634704571084471849895867441647235143501834164063354041694806531796312902352567333967041522069553411336923814049555602007503404949380058804416322079043919693197624080712654598927581792460326860154749946898195855270739832629496991905515286319314272253297501613708729384577373292032025849248374433564853591410691839904339063569752951697516779519215871026850213089060084500225810839662411407038481839986205769592691890134262264429885229033347508247877945123971118159750533989396353177113172802353627762940250627244431561404077238237963244833384313887407535575182395366150090710605562152765908200685271616119236035456777014057660827108499761946150647792242571557233165546328546567266942857827681194063631383544869700197356819597262075090623377603159682656640979012018296327386097416594381994527516209283169437748583526923417895801513744074255525712054819291544066699467341129901173449510379957240086069711281553170808047059885540796852356351249347427364349166312899410829279291297624806638453928698186169740850066570111532836453265365370620806021800742448307013577636427669786589885582514087620363555570241567344838542606116769833498231937620038860455534804084918798385676973409169467698358214254399088088628451364100332712397169918716650097386755259109128359503583730985635813041752113567967467965516509857906261882335590343220606343941120211906414999903760736657327052762209975738273491172105819648837344900691593829170440220769736675935194018854667222341479103852376975920535910227828399366346164029215620897581230584911251022492218560382970474359292968313786531482732964300890318285159402072382749921916999550823142586117133463332003493545767966851943990494439238815588954728806815698453383147637749632394875475473545997289968836147291512922978721644683414655176865305866759054963363595084213081723741645850807170811868765163932544870167956927544420073960965870990014057186389175611295867969773536203893747242311165950156078840099169958517719174298911432308316790275072225108742920336520194985680912858963284762402934678902569290784419241058879140594133344928428781026882301492076947397368942843906221756621858164371333899518370686658775519530681571954706100159793317611510447598455120215465420910520557087681493944000981446969510165619390309644887657037372893646515729629292561750444046763463155176964129347378597455073808198297492392090677490140174559075817815479022120322817382908899651394255360174901743182834992001208938381225227251466955037651161188509019466841709418582625089445384090179543895142363474964907371258261067554435466993475917108380468416064819067113712142170237551467276126543109341631520041995616057512269473106005296078785616843904805177196623903774582529736799901934711151785443120917858312405186605717245430768685721267065740273665555305471485135312234984066223797618199940730752405178285969416461777686194743955066614403509043268130840870289942577275392789747676321063230277610856999763118833185911085908894592823045086217335762198509479969203323146206497160918921580238769392214909529901827000478155886486068527690689204976662446564636589570887966149033393690662727631383569705527974054583094226651520856031092871125261357833268442402677934473716302287802654780530279084214299943976857740430692677361054599636184297398895100821593755243787787352203952148336586824272047963070343916560544549962625628171052143063076499503478131902055086277181791240316897284216416376099168131126257118472610114138202259052461528414718006416795266826777936696818254958410747872306461603749564856020662553130123214460474965108417208756344444227040731409438955624782863660711352820341121995902271950959285245506028589101531693521791505860307957075537696412320745435727639292327143229513425966649187818717045984345993861092077852544036703259988406934188871504686153177525667763644644922581861917879099635198083165493696257841328560583159833955044825422500968137523752056679214005666672238538322134799040329659430495323547296243935004166650743701902623570286108901766203259372393606568877665545790880902107168429392617327223442945557233795013721288600176973174688660522822988700654967809049995210026461131228987218948567839454157601399546327568544762667769884126835394473247242385466349274443876953013000432889084345922904790122564366914321758717566429648798998140429528612263663739731398448404829157229324523855308545941148013503829012331512184692226735060341005528269110348745700975734797536941979973875790413079211490482011252068880099924961450315709696959213979705241297927466093983425415144770179355159478732217123080806830912041276410731707632945948413397411630870215995735367731970436448148673005853888747426968431936122940385642141203392564402263650709563872842503443183134552519345837089738913558210210803802224056308205073052781103685877161089336999416827490917449647921667183653006495571143005836631194602489433242883420065845766334003185844304487942587912157470845291396152417785047632589447751501011805529177742469769518020597858432290777806064030058457822146024807242967278413238939116449294403780435137879181366986138177703122185451124076214110414401573796148303067711327259804559324552006174189084238467809500977467547330782541694242488286030717048093912954742561888730050011917910561189948795238172897764536375454057230398386503968089946026047179670766176484356439266131218794505142539443562043382940710855502916630982928100593903751706939710634029574433067795156850412508614435369803154592929315519618323567854533711606538526860106930330004809398163242980294135264009890154505138634530045199801351500783993835176585776856922856805969278335801549350942401419146008217071108103117505803836192846886396022963506150302417164355436887188419397226107424970143079379846046124617208809185047474288603691806830529957782972265851308519340525564795197061599297505502209909668966476579637429229016839796570861495822857454151600302680624572049796092182314946261187353873114030888150063244969029210635138799013195117817184756195401321444068963352095327774782741028659989170801009788300209959875119199239863594408864880803297221435903089202094727665039469584550596793778651154967304910394357282337832319009593019967640700904916230899094774210313782333046947724772895977443054066137731835984943168757883248585457674456249873075948762701722790390887407736875235194725040481812912095783736665102149585199860870922776016567122550624528049828959952459719232279773933678559531001581317118895498928736578532648434803540890368582002809061157476073894995651397961409833391529725584074799806839071527803010561237572031560276772223462807813095741217554040613568968454329199962731407326612757953170944831854590868044805722201611566583370407106659328514971274935415498828474199677925972309890652357296055761737608705183727313540103019053987724226778000337806807499258237840281090127209174819564020175780373746366127219979092970727337400297505540203493127415463526857075216579127548044976211361501787495293741157091331477883400168590965226372762027620634545595193206244090225460970541275181028010704820771722852149196247121974102220519683859316907419137685596099485105381627986690921836857156672107952302533673267102922556621387411561934575118314984989959095770755286660465030675659694831110281470276214239089925291430287289068548240766059254238050340403109571823188550708153243569876789616224506660505513015846247183071713022619466103374740310731587604363640093405862474692449152045109176313483516803535316286576838847941434774205640496292692366750676251239787220551571927545532993658419863838681860647750886062094606414648792821111077588254820515395898940616224582488540460364113479827768195188698355649629654291768815393537208823356585809966348859871164000690487908354722499879542055061345418955179547670617255290544915312923963542269269754727200422928337142385724194017613225983185153794181780699109363721336585629040563230053015598348755349094982175717658844080783938756304030498416007340082029842422514531659116599099278223271652142645420568795383619966888516670222438975358016245890536342474247008906867808928659969941584189155136116464901601385819194372164519165556134046444074788818661864622016735131450633764452848253490417748224166692922462695823716393124564763519799588132247083513904858218555723423314402061051573560890381529793315179299841694695103703005282366748451965898810500754136783006347669306949463495567551351020146356489823003652185669733701757104547252112682443967748920678560192339957878601118355275604551511024287959689328888425402894838389089672700990343580256625954845903105620364817982644720467247292847143587017954170079781187800015959981105467564185147411892976170256070517405047021158105781771694123445309599148328684401635035468713691599047536007303150051196757641082647854086938097574637332686964253235046270235453069037571318474377141448661819414681070173823194225746811618681404069560695869070983254000662861491711908337065346951339187220130164088643643937442687452978205531005574654656094868130895850399705671271438369952469871462541800796139164818022602063660664481886726686516520056718127710299557680464347551237835310971639126522967643368567312757382076063091100141094850615373560588165238480253390847917826213620772303463174984628675994045234492114538614220042799177115852146845744126493429614755156249568263068387153149576568843974767726178819518671591624732755645772260272948032333866127612193092058147559923894419431120629703251453120735544605524820262831429989820526215658391067584511003762195004297256604405429175572242721352245179441189480458583620243393352172828791438113315873159133130594844089835387315045095377622872467046302484389027745559134672996340697471702462165312840725241538737659129152505300575009185341273209606431806784305378600719860207153098587783022723069972442015562220036070694833501878688682710953262443178452792788398209067325839979563691437189433144750918706983527644383474876685097410992654927804428956527068590408749094139540556971086974398044635575297792796858503000318670105552424529571691563549839344970508698070350317590839822582505186659868121066722617090615858113476122029625020552482052058411922340425586965539611724071334087170991153936102595418951327821431519996104588945120626916815566193502196756120589947203197105292789550461770472481015981588745781048160749264190158251933873831050295852910053933493409083536524645739391735275049362497873970108215277250380331563612010706777311022009990800183412182718789039376435041127870340133142541596758276860170959048826885600798702400503899966214009135522356049375463794653673121295956882104323685486437282497462780938613926245439827981491588680689175121781522100457304649844691009410892766768716221098039777779898317599231219748635893970340757298179080453664717648463078976978841274010518193672569657373010383027916716067862386300505587987774181730944156646150530437959196225375597465670885596667115852143408813612870131756824751743523526221338036829401051543620663069727055420549051035365030112599931254046556134735196160942728757316747562092462719179021832105712614768419280927897652084018086420145404600644233985982410917252208625768276910245468806970124163832920794892746306803377420219405462492897341760010288593322821708842629806105695461134676839615981216350013563269180352003902138623429163256007269892922556245391557908553136327199479361664939298597621554294216798144222775646720211468750461414220985685790354637567015922451566013006641498655413695138004923722794007966923813209713061386993671334616395116239278995428251991872397013759780708958388887163106006586512420502023780221603391765654274069546853568287705906832161556886481305366823581340163216044524694228664961478211429098791101677737741185776275117715011489978956028705715969324299092620074382616855358793520689519374514446167623703159107516109006786924382768490367541177908169508837924436361527402878534363929620827774843753713770759593960928334923295254285764408401382050251534925839159531198781398854226590064489417482767710520712063703442568789719842400363964662664048796234741076416917918676153553563024917174484322372306772642436908747582255918352757121755704426224463356549914329991313741375158470890239653830016153134953253008410818864196562147064154273004328465496243646686595460020490897402334754122655882598548770078510710217467097735074106819481455730654747688606545926792160795952259099994437533517802615503140226397778598529638275347576858409230889634184456228663209653188538957323897210480968260365522509453774491432060248869858035664595299722940382356929173503018923336835945047856869585288528823043169317527975567970736620141048238413169622625655973822390146079826824698420556159480912607570073457862573378227483840832947327538443924344498477396339714038165461182682612657112003724949283445440694449017858476856138845997324820733745584905294656222068261423812189058170513185756022209267151822141929811675244021350216043323000642351321820139415753118211681649264048868917352943306846633628513496857142623190372533408353820629923779417595328820155471819694414122583938005606661319226512433879340395665936794511926573684781621443022118773337113908991981680696018962243504742095347159413631425300879207770480566805342970357399522653361241912710258031452946653369818569491237522579597784955098024510205427665464594234153199378511801968798600533031392921137539979099492304153265407099338005052564904165982400698962689816120829498664264049234187146923469346827493962322814755971454352662569601267967396500220600580658797666956774228350325064915149132578734668251640700799309808500683926676505523916683486550923150452583546034514233110559126397492319910098165718385025077437841788904809892967622483400779150543221138910188479933955680298096298939415749466460588692079422784950045485008951981589616097069653446068546131949698890176793371555832469498566275059460655974505942046039922447402205538641565450732052688734471545920226667012177236162455137935555805205461386863422527263908947290812214393380512420685139577103667636052311663731728243626829531277815374269534319401543919434435147682350804905678489393766697103732982215488746007635858898248896586624355888688446454350779989173572678814728532506176397650202814145192435192798421439303110077906570042376855092087869610210155898986078867981777934716939436680767812142655035345082377152903438735380846465257416586961133431828551545448158904610361224672295996016626342366705559334292129168044318578603482123751121266868553676088215710564217341166394810897732504797465922825585510166363434187013728414976796565625595438254399932259013298882041546792135379964967543297387639972883664274413908494704448134820936753940691955047263548131387012896808080623822573371636282993407927582217203187766149347471772051328660221345162180987228834595182874597397977501783986443661913053421801232309961359851226912372949673443615614268363303859158752004564007452985667443228612100326972696949359793596937182342427208482163190127576047454710248183933672859971750716772905806294780454994840985441627037184227193989930276455809228670091739337013442361530777923931771868013124465603573928514195273044050876595464500247493372083908064582055171573492568011614481521031968497812574845701668593517331419150238717468932182539337151537369624037820382094952288659608634776846266325228930608909135479364455547590638363843568227716460051993720074338049100446965928913771712904412274925634999200177740555312868992046425299172998943198453188251342130858843145633656790755457507814531792598179115445367277753572785683014345836438578184353647259286925684227383202122589148499121922104285375408352619305582021492461797749606887461761119885756862468771302515715886060980757466665937267518380363236001407556446896048317418472970408460341139043155231805583361939287684115579300573456731771359884087843584019212019889294632099416107995014244185453275470437871326805107354949590417987547447700566638073806605319477667595774740957283994154707299100069687055998728497956100102027078330235949275788921059021149199920786294247276495227393241229914394828659895418665174045949850918693639819358306008435654022068905043066628972321597267165909111416586162036041283092776485060726655045270512364221578182822598702520576987035684210063938989187621602736083851433934356126065106658423777272332731872768729591151284111730154652621983389415831300582559193481725456283640544497137101355059120417729666300421546236209588090201713573823718726575872627574230231459808236622996716940317579094188650168579653597290549082104132747715824230581825931188404023929226362973782965686919184501844397484882221206745728489882151923792624210232946695543376187305760612126389736354392901479985164524660109858487911077382254889832446721147794178953566523562263448428614604129075272146354993793731714417787788341631780583328320387652057130573255159715247938057457999370852211760536443488499536713770922231004641014010828418803616913694288854365167577413530487148397524331537109358555662033326639429960068478867492697054219630141610385226332446865567562186302170520260017942281376141105773833676600524985897991180166845490011110400602934481752825452130229284079489781856627089201096726155452675941298338395891122166546064841975855629860585656457191154700656097920887912429433747125376737505059094588487660513666820518928432908950436265319876196182198717421291146084706762332887965707737889063763792595276596145342185928946079386116829957027498926510281543834909945900834934340425657085754358008162549376847765750759590465346403245594399091378091053137088512660429452013871447211526274639063823524351444738315080370107194248890310785232813161439110343369504456287391479290297842827540927114780669848677043292339458477479461521045667613414416270870122760205332710103495041469347230130074813004594117264818936307132886656735294322240973920748837471799337348357033830871162423398052191700710754588731951525104301880309166399747889474906573589410876758208408252709485143006694549080026153751910252117760882655720355832549526367739621047246879913201944046211323110889466165026769397829994337454399729823513740197447847982407804619494378503543769372513897874537174767890684365614780189033394861696159541088267931657403019621097497003620053527503667058111206054835915168916340552309551363600993822127531004716916122070989238110953705801475322206909535151061855327092179758920172133310581567788089668988750576012393166922421407087277074352935296256608771230942573165965796343450755511063004818681857069175424994661450187579182483399427885969806920991271820244651177323629484116418924384421022078815712292949986315404909772039862919253913403792190258716326335444371348873868268665658136634509198766775580443791607796517039957490445896616497013920020491626817915088525523192452977957595754605065036282722509134176948614327385932861177568858330573099651468281831255862491924909622591848051828927467107070233652508910925821071932775809257193325035857518698130211995493847461628169663153627013690840692213648149893990248374389585337929284276921577934502904131049020443112312843959603752774039451325308434254167414453281547436608436844051830409698879764479650548463837744710701329139432082422189733019422209731411882126678077976584814629244157621992511322326750217908591738998353946398480883155316617457595472948381476004071233008187111434361048521571817236191993161844384852528141968068909984957684747696961997288688799806832361597171247773471501232634902601524070214330129592093778979915349808300944177562122253316272732798235365171282276778706830263173570159204313529477590619989709271230143623917067692163028825804354483470204777002439060843815812915911794116848535554565725750960620561652236560589186017921989038853664195789332819358720970633503413252127120989847106431738878723136877845894622422138183983964254249706348452459968848306251570618875275807960112740793694607682973109645871207621472301646177676201035610693697694848348404554295139092926102487877647591849799906034480525503452260879478979617635453811909501793639203696689180422351649269959519534180113464679575684380389348707902828641624969636517428144540901812565422367706757206787734586290907894068000089686046091461199919779750033477463752911410901039763268432835766582116283172524855764617327175175544550899959091796339290538351515010201433315207313439146550811078036479131388467710966597842636563739844247083991588222987898029251897718628090669220376658037556525836069723625023829052955384090027532492383101835349520083583319138105406313629899002077448825694838737702633783364841839696787825121575883914967343868741673148500064648987495288622146938498619527164572083075107714811367991438797654426818509121401442360965728863744253055781254755775197746835947204917854311228510785810859671314067764563366892149878896903133885430260685525725364933379598510841236332828251235354122042390695866595566840237409239527210937351994889682772751046640321118230740599145678947986189884129240925341539805868378893962639706309583429777878570402679344060185527672594341361482492847217291571177516111378000665123331697525075733853098104964310406543859717690951536451321060752713983365720558908448244785539039528271585361945248994993096813737087762532753429180061066760132953013200001745776686103766701763118609694359628245043701803043204854513132656938059236140024504362867053533952547362588979962241448693797111021764056753276725617537035432470461162696170565750697029808476566532409686829686469546572214098617180199566661865060137967907727118750557045538646166071588386138110658094440751140963014837224600323852869651813936780782773319513774498140695457142720485378557911349665084669862896639485502547912963181089020949493569040616283306618734131984404267526461585443215974345289061736152941640985862860130916747353357668395867735718494698009106600670290223308225442071737640572611866882842355472989550773156122006650092179885363253509165299581121751770743667852831693012271877033622511117981175192640905565432774245600361827445919164614607823558872437818406705037086219385766039942855111916771314965215244852196571485141735314486113090807537776824453705567061755181425323040986325763704243917809344637797737659628280250833332281759427368642000712189085303599182831926415775908317252772720277566956693379269848926210235503618937566450804122219488048719621997452690861300087052201747387643455720691700564318299897001976345740063611365643777923072737970747734564889016731338565667897630146973563981799819429894433361333650509439062022531622707893761675409979519926141139377287368998614193998666166179875926091431327676284112178476407417418047154051268696270015705641668019115416537393490850632543771690478389430965125466085860632143509447261356364190266828209113645906387097098214842785487397330025501121949460993827514197832883506166848954649846466728294938829290776174688051443385928366440982593412571208952932761587351533316740366918621029536652396156839007789226252263247571021573616355737795097304124965071751073461281767121181164681239193907985066321370177874482795439449256477915889280481829435827703160234205151435823843891173287189335295790451392370379712342076046367389687169755822426663871200248916451683920262818848602518112179516064866788165199214809156297802052542876457450128180264065769484973573470305149584613328742637972797123668388684653189033180559189461341937541713524715067024545868629736543130169880822383847954933359900217785576954067562500676944011919710230670083446958696244195064317078684774177430941740130392189842924055312826182144112068928172426165394133283828362832477025139770426499336295878128993933143297425512584968418337758132491240399531792819465044505045118779405075774332227321912376918322011860368459469275736253651242385656592469164715761980680721991478612407878283963636002703635729896055608040118696400371989606284186400844543437785161042504761360782371553289127833309024085333665056116614393327100243228120327005874200007285092361191987024019102182730438047388445244369178530068607674622776059511483089670726256604397784137770495947456129009336278192679837583656182455028511408463750683471676095882589890025030007691850284631265315715508260556013852048192300030265654554664298246598613133375431673282486817644491110224619076237090815741015094446781455526049441144489921141867140639844862251406883917372455991862210765124858954400097739292684245037284694456993592783538846214693880586065322215811655530075817835757130040540326646304277262926190436595391747327169684470884000345561235753386904722947030922351052779005130434446763505120475758194997001673705515769026450589716366966190904358228701739126335103812267395486142007133148968641131288870670699852697096121267694918066852430338238949640749204763875493927271230065676052024403588277254071319241159031788965155693108582729241975833028058546660928838659788964205805795825950272915343196398481155332016287776018948251258203044518363488106437979356236725216734169305564756688547077976649045312991413919510044010375427293158058324185808630346726393445720803191903670751107639082828693385693936026320173414152369339531591421171960958203469997639922062060108109559036227368755541569264777722473037866233693723819991509850937434959127486205868486151983933990017077331958549095817744323229775139898189615096548554343882827715539305037398544130081137082703698635187889602597516031305402668906356461776688140821964007518489667053095672677547870859860061435872628112685994471620924780096375407008019247627701564096526602580250427681197646466737438663369203253864579661418148233973894609898747670264241357740413822888657689489947494583411004606437783463457035684029180278255828482754389986732895789430999896781512957211111158315122250738906605925459240403472009992638584835890847812495704748637839305997681088988833038190095577696044390770294101811930802454153887888006991377723415047799005832726020460965261821443823994563094411243959100988369739400525110203584122909654871124940278364103369358630211067599110583569499517793533568868576598695697323903459419183727772456275866216703999691564069979208653452610726461648559068183680066392627533478858070116518708930538084027865564354978731987820215345643393941139471022045405167728796354912697884568486896273643897142246059691931020431961847205177977117814828548593264165117859414115529567685526526969570285780311989844820514153968074167125296654115574172997936799699426023606884391074787583236889755677992012995869950182103193492295739944735276329963677025233914781598308208195393451883658192358061689056142257244838777159082148420157946144461774163740030259002341203086016491712070014253022800360092121995861341945269544297240416451471951865244530635610117866572536536995406453605169016190286117943570566427171773822282935622817358167498033913330752862752764450178321493247330071208931317520409450548367347447490605664783956856512597816724347399320898268047995376087379841938871171639105454673006971792591223851605687550673831506665864161758336528210033950413064778048171858869968442560329428284295765843894171187572256065279151613609304110755361779740492597853836012869082072525763972915126822051473728205674595839678531344301739400795033021051242010949193470908180484803748968830517537432904875813844512712587360141475363543045974992868464451476661309056157615631761065256749106259265309458073186805036455831215295454240699855589965100360797763198615837134908519749637899635927280272334714444236846933789828524969511647110961849782766057381438492306472045680530643556570849583239577861574936763051576442799165351834152063093387574448496194397178188914534966735147098545142443559427745317941029123045796960253826106045960016425528576196849921027565480353453340570109059673582461758342351049171896006532206148059618605205941766805003072483975965527404895582409062203017905682848907506006125199015740872403502091827160194064522673559303496836977429518896477863113556497959910138973093108538095877673638614586663368933589216468148510446791769120344329425527714422688643204487196072164142487952982287557361063567434314635111981535066399457069483830191585320358391582145863786649121386277417167495620535426332134753370114988448354847670729689176299532343185314211058301427778835963082274208571893468789564660277066996959194244021732594536937455775508178477204052389414143996395102154656510119741567362575871032084765082239705486451878946948285841541256375454695428759827464477673707355633350246728269457424975062861678215623131326906377260046448900073236885503940750959973384301370861459237129761336641587255422308847691262575875412822442211348660544843633030072324375480449530590381267405770414944862171423121052414148895574427455760006638242479472532644858157246926199879797410357753569263293395392007811250720934390106801132292988307899456059858700879741889984764498965686023434901049128912386506323368367849389143440781801964953635327547119333561852235289783900948145445853371888650712792810942810788694881336190020299347721517870645890042736867531807361377710499061415600745720458947649290671628173327931345487240692666611110668270773347567834053551165895392517998366870309910487708784614171738824754253943657966898460957641111515010136860268678217071200475570586560010826783288166588887308660458707030340033565740100300870555869946653189874623306756657997569993549114191473540212443893213228089699787358950144150125757143592717372211842742980454066640332832599685202954110700219270286961245664143098806680899717214626361446132032520563090556516907965788575280663023713054598381059731186564352494645423998120806558180931812518027533439675188891249863793089432932475779432835014788086357282908917533754331647227572744235821225039535979805902531172379486000336374244531697732835866042567270504104386556480483566129926209406036600676168103405280602614471655036556461743679357130185474165597332806780699796072545408105489797390262658630291178961844915596811891462533540297778293324512990870153523254232411037840079885190014125657014384355817815730757276300785330008071330409492555751375411457664468906328232304665129853424455725619617961179207589365892147849681666287248383636740333770954829668486355174399238744894319332277140072677040471595852944470944551134262246316900382785485641336195831104567142738848451595251714546385090161494433684511827743270981067162936923635894246127468218402159047034005261363261948336355540478011490371677500695918317804558928785308154236332943079541061725031900661590630092209817602986600591751467746048213962051118495686393232658860391750170986320762037469165154432974146767306862715050185920413386256034893188882756246610901252498928695726609246051165284037620757090310796538970481797101181860190022645043537241626266694717259212329949667246821390365626567231475149196425978863094732638379906985539446365208943693691638945864318795996544992347335562207485550611020692994535532317676882827932513856620486679283738533820856902565254159406315382740660282273946316428910692316936960896796170742583963943113490593527079960108658176826406840737142297600147297979081698361152201707561260519534771656603542532894314727315533139637941443041726302441013300117743790184879143958458510989751481867200964181087146623530593467529438021524907252605965309108718319464400937694203641189293748181942847575673766009620926097640225169417247191010444867400759058271743705632332182402095525124093397827785442452618188082486762760824194350969696284707961117938621825135333354783172420696222800096272225637582577217357685584654723320278863317361240221523461333964755178296603485515636886410930513965080877878172931869262575649563217693560572554644847161982692741619763160390874141745458037967162550612752010466536200105436653557251413623539013957639674320316355121434464471632599243894961582734338797818680638375740630452726458420656013910112938600329510257032704586276080866153944045917660019436071652841509283424817797242355989631469451375552223730855336241459053018256794907755993928411664484822283820975774825059942693962981345885857042758559861186818425211584084786018543409399785935102825602650093235946012559300547689550781300795847591502113244361477743661362629146619594742828446645852704507891371333190831948240860775275892843471230513882402951959111309910295297543147350415313836171989309840884736178733109613617106909038310142327755101034087984602700699554518292134944389359084268467834803107170166956538609891821792646090258015283257580178815720961163943055187406892709770823356868471654779447415973962604497792091037147366286760580375944314337987094639035459728364968887037511095935947412215934529772680873283515857999702286288905177458837715472305339257283791643261942529523847591511649281594034638634916813026658582378632806010303628156793419008013967987585829698182419594938770475436173118911871874255937104796375298412701294122692817531529408854736208084558864072083122926666513255436523842655107155985267401423834188086969801660249526670146942900423439519723875524263698686043838433289590552748697117879510109691936937493213591133698782195386742100636503698188847862700481171367301953297429692175216878683401698101844268638344306212654173283986632790248033636776541483463263196405108338682018948453126420891185435881237515416598254442171692300411959324259501938352018418729454139930661700194323764310764743676782930595469285550973073238201558810477602110282629176749462461746537153576840312256719357753705621412205128360702035267516141109745044883308322295104607066342080773259792275252666544187934169022566479014142362240651187554788114249304078707721223243425996903629624214274486628054351899525325606629707249133092841397038795325095651956945155478531146680163242768994990795554344123236362859460313963397759566158888822961727446594774508531230209199586475652662903742199626090128510422370457219141189502136202187325099132879056912153652852476902558333407143207246654675100660312341535250414629419119149126986304686592228079884489419894405637027640868132837422714017608045596717561201262052600889531657651364260343189693205315852336779530892317284624220656892948325745663587965651739532074763267934124056249260537594839852109902851404007766884044837163893260433248597945584950689376787949941401874602590531554828088922624616706580669068983878895610584636443107339203085225254755274591923027246843828523489744973858793062236980390132887114908078655097671816606858529545559950080484069107463594373086742875817181357685786615899429642335952333229065117110972889995714881038671434598281925227787154096273218327362397402571209045211523748396118889644471637988927091516527022996602643323053085191811147117352056531864723822753336231766958929272005264491674318376260448943070282489447565349599416543142865044361220727519238334831555027656929789832540646187308005353251037387883201033313873569131868510025673265524996826969200006173791883744291801387126877515179237732684514513143997474109118330485231029907328225945581371442075949496556641939421211923269671538131532499681363571744775390138032956126379205837107404520747752463755960480505233499714099365908855633305698659128071084665116715954720774375535935698382530253477395520181888729322666576776956261374408699482187889920257070906292658826718819825362315774300098796359864843095303549003192941746383208477418209663273784096391316599668291069402901363966789149322810769198011048382083660148182519882732212886157733915337345182166805037675614468954781909567322379569146202135964595966132221120750645736275746279967387521470568618333159734136895976362729467660594966812392584337602816889766154847730270581247354048859228897121611732814127469299806806683641500638318890184361612161817518570170013710034233906971488718447543308851833919054817387744012650248459553590224965255368821681465209708019299341564615974540754519535046407946099835256553885175014059816866541158974611456941855329726784871012920050871008190048814130676703945407393080337167059958804841130422402912641208399619000667487002408804564568334399570785043752459983164185387239547793373921739942716972962775775630130302611188947390442705529687911464104098651609662816061161204330792400925718151381141379648129598222155149818206429057417585675937925932486244631818762530065877439511889664471280802297441743328070395519571807282693359313727366969364722893069544679735644503797912620237640551202510651507480059288727994357383267392938952859254998927766479548750789625076467338340922797715705347464703475693173524048578886873657681931465996686798050655850962977912237172742468041317301270631198286139317549191689006562033485762980501079637418344738855763020386128723772514147634859157141715711484360106729788821273050216876827590011113635592929450518442877212536618648916204719472724030513517089061399317224981152383536369215991356832377725110047538644254247742982229879888243119384247088328584269112374534076401428960543987313050845198938814348523902611582307103969884348144551108074500570719186974954608586957620208707506539666891249357952082526102658101109816017568277361055074835348253763294319329283629605333233409698989467791426042746096990902334018927795018980796581641892642855682816377281766203899232851860772712771350136022942354597699457161457923538085615741042898757062425412561523230089161386111611340391151891652567689869001681513643738987026559123563241690800291076932998686928460924297983059421862537953270762658571965264823231362569475651135944717658397255441956214998010089030759035272500957232030661762557422433014263168930863797099488097465443388306117638269076021536896160370794235582439759018300765361654618354881988707675632461866770800518399776920698616261286864244439538989676366069845485282676564690211971928696959032208463413568429048627959905196222676558253663304412969310105271432153401309028456750231414772253404060664971514927656114863772469433761481184520625404533689855399331217654341702563501240621298774045499777010973027562618754206925575389510078853080979568405539689367337003894876057752813042248158338077279985483186486918738685473111008598004269611152955639331458667193833371505717373594071924385521166623538891286013592502302811725256167272288371912885815062034236424260304030367020917683660294862418653926796200484561341257667052572661537033024292098987606539093712041076977256700326144564960052009753147998257067981002094573494695937478872040733456875649200872605842643543368395426782686904302381682193719653830108622135493599908243501402336579344513008669483269506746313383618768658363021868523912068672958513284383688490912189902213475924004137545544637703349338918080844367274622550911598054799494647834744128380071320073793957339932127605474620029570415224647760881045536241943139032306592945999378218315674805785466661956527435070087902909577930474253332013841945115698987336384583437054584292407429656141596150783947956878493722047668154003604548410042745259155209729728027465161610810206013961884811240650449012306686872303258768489375727791380823212985703856226358117687141984146252977783884656931652815998679849572583516952776492256574844668600540792551778820974812809594736090403190122641173268318849265050274685324404872674270540169374491449528831266067926937587084976702074598995877007147177073568697627123648645302533949596060445233917225748768806515448208419410626083442583884040365751390370752545920517878564751196318630306304576324614946200877240684756190416193981291729191768992599668693206972186034229090361919059588310441991507825602004503774939410522209384332189795471501402219639464521726279607353498329515587396489660118330019419217402934323101830100268376737822486063320784925980662931668335923566946995915656901181735184978515099332829733490784362561234581371714252488546183676530074051114071375666588492183129501423546700746225249233760857525370705744967799210189273888640781643456840767213618162949023443721699482118535465036241094444271312400270565602409723727722150958445873686730668877409363321045957512081169256588310381048004337727949778199801825846261505420364551683787674354941675514339838285835802360421994548039239170292605872137930307052627588936896675632317881994610241118911110326940050247572053729737271001118804613187868774998387070242436652846008603224921876618785467555440877267937395969499136124018065380256031489295670904443563745381445766988849709798289437727241955300000878364630835434110470903263941503846220719536946915218940166127853229970270444296376167859530027968046650560172335474036019879502420419675926039925258195494691720575571326213955088215452892785513738650192541131684680920268337193923250170292568261595985845654895979092484913094201653204447268505440218358316809330481405220359295774954233206374137495302469250221707352945679737092292999482754913482842282777327083011599768124204696445853007618960254352169096374975544928473824443488574141314281950545136174232760679009690659941161306380416246881643988058545257540776054083054995617375178310381672601688815487400424694426261483367698932317431588738535315313666179491533853034520410166011691091483987998287097730076024350764155243016428394935922727898227592208585531803004990387431497723130728178031674859663231997724623611246633060302367214241230612995359591384273376556806539126403313937964788834816844290558840069767132400463890031956813589681449163470571831002161533410642804047889622123693653549591143841541532427838136374613659352819365981272321283609573784158914379798098218776117406304466192850791221382334470687201887948403680371671878216540949334456157679016573741158986363450506596175924493483824431452689565739158370515977231117174184898041243265510641810084566410243505516016499247030085691655566097801053719040958017508565239130775275289800201154614798301798822985650371859670472500339097555997350901991022441882579591116568056764964716577267101827757376549046883408580307047447903572363013290124583532293908004773886503111374395795804832007836761637436179090580430944720727505276800207095193648869056997399466745832765298568509179204747598520543311104258599853851442300406620217141448231688479999236593066026609838947521149966428211495151009509459129636793027731536585498547440156581244019241371994363588968348861890062013975014256133633921965901240691196825572811875472960978588474358358123091910398233284363051974199297491984649910169666474488509054071948909003626448042764658733727896281973356618954539721592208751450859511181733991733795915447967365603884523963529156770524044660570495123181413966701663756779015180968302058905054884861313755804881068464066741026857546387478224978182513763020771269955965534366597423578375997960682725818035357939243342023935120304791188633109904651110311065209990137340023370255527880256056022851273360676846971092289552147167623156400606104316050102922954296961540451969862102555874963782243638898250885903286648638220715253056955636430911015837155480178451019466428607092487628626333647751490792666111883939599280710274330225889226821239347019900147069662402870676164484877607691418544823938291157070210354433598139880536985087948939587939105016856605659137637926866365148680577150304277504747375484492117495278396914619975916275435537162656299138105272679869775621441827220291458369903235922375369361283852426676088864156651080062181207690078640459625140407929956407059086653713397152392451942967821859195605200922509124549788127062785714023446662678717890521544844807775365912449762330176898209442695716610963073444021160272783014093240995526086564218810281453665610606056285920241790221023180744816523734437993994071426731105484327016511980942254468253703546308957793398855880635243162014484006661888796597228812127768049833190209326879720751604829397983118077928225890559995546336783176133102815626015027766876174578883719246219574141051132001117536531800195218863115872619205229023091705117889956717761319629664922779174049011318524412013662090905829796100211880014711807517894112054283731777017917355136951089399923937401360851528411015137119091703523308569915219805686505415460418144751432444221725689611945937937120754795541019219620744709757415560140349155197744293211094997680279023058861391461590143831511668294723212592203659081343256475799945376417152272043984711566973365185621099007239330734964635563801827991550304219843985768665903629149727328140737318090654860220126519695361703890314673012881479723352459111295812956374892647288437757684301863098066766315983510599875201171449235224993773366176463993373848760612045656969818979458463750481396586450066683170222964306024826760997622456926034187675573520373144592742839133980511588920168160694944499947593570824262316028044650003501559981499418416978477009708767011243422867016232114063168071982157200152472597466906890037166011210247432512723197778591629559511722525214886195761246757089362242185096307324462555020572571719585813224223233965978646329574097615461150107636748493759308526551055809405273097202922477450372917372389804352570336339731666142774411684271993226932658669249309171067637301866254816442309394930968769867635255288631049982278720601579317684362565543182411853844372268865659939197721003134493398787107219368197241877261272418581256030590610017208796809262722063839678465363979540603778274136255165202921206681436915598338182167881219236024056364779537891229918071279168445529806103810306144678887927309354681524609161568032615465721734931735867228373762510808984752092318192304282699779420832583082646162569203560665294377850421879858406908674554331479750373221040552054560665881426832869333184153136385831414849375867469033381943752406402046475148500943290187090308130158948501524386473999878109530203846245574536762665323303642118364055990940863173959451890233384781563596520222039166315703002495868587319725170758994088030887909029736445064516323489032707421954505494945670406579923070910894354723597095209695164162983652777863174483724595030359546178740038313241571033598635002105091659170159974087284290667726145083597027913611895152893133418095045359546814708829951776020000093719214929314589311193575897828213906388117012208067033503460198153018133774380379230609788817174955589672857888399855942558155445937593956261327519625831759821392678394189158990619514282817049692480145170576853571787776179704357298114340259298950903419234763186479793781235199833989481982858087882056395783189960172137607376228346777064273460217496476683469544942838736783562504805888405283599192516470955001993765306563067992482270346431460726607251691046920090584168360068540805612418568644463387092360921872012292806214278846243565507097069809761438085917376346121628487280709178868318375110945629107814124765389228229019460739855182616203406546655778907111250284034891319565872818466453924145270276814523989596955043042924366665887282858646402775555744017740942952519156882488330633408996126724761587233921022453548273177383415320050404315388344576711096850092631272692256392862606752420026405326863195642466203935985408929506352878266159356307295347480674580043958667533292532630499524544727470625580359833010693636402167312420851082066833287140442932462546386609295129360558085714026020863006402881370618072126837095743600018256162357537166751381578825199286157605121717582921137945637283770535714930896092291367755145714523468567009748143260390678575200561818743522449928318051932372146498950445841691959564847175504776518786200239662323610318139333198975321262109352915957445311209775762590548676429155373663969377236930280866699944594453149106399261851707071659822197052609140642912954293689306760040312625080589285139644920548459056445998737661850440116346445408471767943024893720474319271585673209356357969073536269048195649262540316264332203040145224731046340394616562691291952001961413905094740211907641904978510027825078493432456857330862391995431660816795672209405485471710648148791069870079327677135940152918591566978616171044813820205747985673048991273345638579254858209646404220864276176505241840170038753986340409222861997354321070696076946049140135800689344819282331766933273657024323425449681259455028329452066145957579187452962365110249186523136945525198717690449267128419797037822435670795738591235022761382514651153704393068119198988108566263218368339144540701000178866226131942271444283223700422360880788026837914333631203796082901860420573042216535416853569116998484985687657203947978302110238739535334050075008459630816512192599591916102236354997452044745536505520816282614538506922661545306337753886872740875526355413862139143269444853910925172221172852497702953850094319312565366642713260104445213941206644004615204384972945617296097507904006068687759829094562456692045148048502364032714840326723037773663787684960397131556284819560409775321949344302282284718861108700753325048745061551143928329488276431196063822565696449566142858463665781359301081477774341425592485384381421575668440713029121503317936298677189924411091674102981073618284484957102512650652579016540151037318710931470419594456029684065814555360347734035756392887867554831617772254126593724763160611884373609795164017961317707235969000473523897006063099603292636480226519631923661159321907513853855207792070576772966062802604898393955698119414794436083582916078917798437068539821955671886558943145744512107458539990579815104711530614616669638831499854533697491327377156403931629171404035655079836522356696851497460152885498868683415852025936496475166413616472618276250215326576426489610886321976837746202099494160952551608042386361703550918733247457055687520889614756585839764828377109200713817658644849742209613407976343293815435199602998542951333789279637147555279496360323020592324191034258979421955985317357829536144601544828396135245156012386346497759029532187472993415684031776450839312372196253177892995138523771392461424588450530050777487010817325678989257717007977996176581572193942171234830147166609287479500539079429139490832796923388915065101044632168417299881360462506962214983085124863629648944173076970602088268667839532822930967066471068404426760221904847318174180666299558259993120815920696584776601852747735508897739260997047470382242696650954874337298458326680517018633818436690745432103789759552794136650629713333787641785079376962427154197248307298760818248071334589937131286662876189091847317480725205196741749302903457471083443821107430638028341628191332242880803067385705763841374119110608465392211228346081385902472385804764288221435173921362702926320366659356845878035341163846436584012414476899224203104206751494420850653442126852853461007049271893409440419442429683041407044149053686322509436020926691852935365042273449301875420503878369004595572800359884194620181218252028760402055353394449964656185763993793135914995537111255230343615397178586742657561961789295173354269038141163152559494547943357724540500234358433831255938602868517197539779930448364766156332521577844852196728991601801646327998959921011152726180026588064697592778015064056290146842075690557934053724624511895019885250397944161929075197211841796565743584758581958120847335958458918212896154654249959940056545721174198517868849980981587184874364257798653581076936620712289857396368316555368257062712838426102133400655507915091927395948721701512228978824327416841860577538966816069354442301929635768859422399547064985345060102829772016108382874915142021069593266517880181341321133133640294083276181473409118072487944250238261694712128527250003337781301694647442611470767811026332757794450607398383437990423469302265361831207788247685406305208837293764648105052517506194187495391463412590740171477937404601030456119078695475425053539469486608081294511597718549143146200510262431840598340839605755284291403300900554872100798272293022563686541066058102356025922135634776851563958298921402783235026871447672372943967140603485075257747564994296108050141552031173040934081446112961244542139244801567770628874720097822229147051975905766181808933105280763496307012377844624360882326943884031464489710661615704805459944832725925020021145957596392399384590024665418741517293107855124121587751649867187406938670288900623197517282041844792381401698857064511904496410959491026090249190603665612222816395416569772128751463030062384910006021295147925225275241133962377517873364531460036546080509981944869898408545272989402176885251162229835425189209955080426811484425243712977985995822522184349203993324155586393554945646710117170085928393245446637278218026761192042099315938121289115238067436855198687129140622904610175891256428829189305646686945872621296609325249430068598730399065238051705445848323455098167812132258463989092710607825732352505081591274317706909463516217522774726742924145781304982938178753650951973277510068740915066048641163517775654461690120223529072843114255386899385163002754573433751064938967140892803202448877609125426636752765786982586114404446592321180508061805035848830389837601525446730742466875579413626057669100286318063083598322919747650000762662738232889508238602943261672102494683521786943645435451992695721440838820197656116227435909151743295221652423515937920564413729567783259319250151839154631728121974129665517222397614209282648308684178158954862355538482522433164385180640884834307826789766843987002326156614194208474514665240243523466956396047821178780593559753792256119966784950506116381143716476369852063603081579214060386026389636286785214417819182177943410622901949087850174044288792310684495283880377712446269792128329786661251170623088545001441335798510447037722152142489036591985641372853565383558136853199740159392484339208222213144953183962312331824362605306639752138562867566030097306421648042132959884824077910320597166357296213682887918936452827773254037143497072831953870217638266653062423737032648021393203620518458105699754948962422937576660505212102786409811020695208120396489766045663723792266392114339205901256257453558361139644756971528911766145939166627041185133901161163475166196871781482709812254719566472781995415899632064800732131620625401570072626823407407495691002424798082134073073373587078472565176031420137536268400298676199423773097418124283613485994573112749567476262601752340544544940405942176071391004565935408942499522339903918150267665357426303076405769792548407860622520044503634134716064577718680609703723919737824416832966251018893374826104573336540527214797854299278021011075033969060608193132642991611382328363806764104748328043238582539828006398246684243536120894266987157061359699828595112567511017157313357958073561966180907227161715136995375323969863910403828590374676124783227804094776744056344423651753656230512507572303980108989389620340902580246419108113869254959454755130621958879227497742950081796059570742922290708041300041504115470109748919157012130435964569342238780168490622122127739740087615289416479970931435414818097222967135569642918069202128826409308198346659633271205571501946675716076046957303766997399768119104326490815052757003090246213527572640430834889598113271780463898086583409000261605813294493201020437698246042620648667635393126302335228080655337086172795811018267036847883790011108721175400440357236607611241436702168976835719181333277623018183241595132213311659566274826610718279881615947296577745165014401707356272695744395991322345757783244025278488886152489481716410977670415947134583644028082638204415007968304853106647389839379484606396312596161629247486873253406797602724116157862920144051687529457456545368890003604960517428927109532341016657940299378360295522885754968866704175182233406838590541588709204776716486448568434355967907671790088481160662986177433694981131642865711618125176776987544611671729587084814439290323589478491110353147611475613844630023989332040777861368718400085157238545912179616733518413990219885716583443311000133614303317503258411927340556319240317199724251089920736282713378591122309923299515328293014252082182828739385567531667049714401984738562448464334558043552954444374943460195092890352300925285302866398494624104953347788942009459198354816387705460078565723009279983089916987436761765235419174496541974074673439337715094988118229830073215804222611649721706071623421656028114312883913099695301331369737221791286354110002269692428109036844742381981625131378554257501620947224492887565388069086380984592027957851166109209889976611464108564436980284247619538025025684293897455634112462187423246868480649507966105008993592075558561704575389517044247574343891013910306319803192018654275254325590028400037060452265284271895435989179635907202519664616753263437181216457213354835486421659967379916959890585061295638259300360303294590048033258935843547821935811781348555248385163264619562524683773098880472414807202267207038501914615220451397240525965391474727903938106883489030930847201191486551293688264806577941326314602868350569607667205139363592240493591304576329206016391056841115356592844636719513866210037369503975302636274708353802188124252004556479890058167351111544405154305891683184242915819937377183129926394844140345215904365205138613196146052253392310320180797749046044903627848570565096134618681502313222622331315919471830522717538021215201949223833969582774263252800294531079710925705034490034495289750205225309137576394237029056232060509761076548469537126370966096086976920431288585002075409091103539958265075515010116845951922276334436004883252075250312822152918653787350704670901242568585399676423371022814536754181855310511307801831899224602281167659118402640441340653765912799851983260210710223675043683515981380889512713621253313149915824898165570858344908935141436131877819172360077423001912129877409642072102263000771878435631282108688655802082066735525646411084563463065303694188194641498958835660727848227206886461659183688579332249820318140874820182456969317382643663120189435148773866710461514627237771625878423836784898756663189240795971044037157053673658806859093809726644735553916053561458534915266046861503723668171335374391806468077875400446616704059941491960853913751241838412660644469323111696594257827195285108899529407071423412582647843114009583922239672457205123682632978182871822353282045814071106030764490630551501754285206062407004049540095312130729157106086280292698038297541253944798027529848815080787433889461722433291217379457940480804266566354904518017078134379029203111934761323143310509322607490473761946814004264446052736946241586446387493529242816359579133649270184393161987537579648412981183579763993843152583851677828670618983110556740371909819258864984541306905690297171466760095897660215853866870390020089563361899866771776841302302618450060967606368341608440050193506641451833924206511927810844318205388262622421914989212061567846800373025284531538110237636712483361034201151385444819409078681519652454938624436600091659125079180091229545049232928816063097036756524609069086090015846917044464480044279941477511046322251303194415688562263402208042494021982000191694050182560127608408381696649628260043280101998634949604814356214733306679871500624182537882316295959922776266010089732921318968613195737988077271638464208755706609022884069978007731891978989721115349663559761167003023373955743663172494193459047727832941539965514548035070294141103460053430945650613359623652737701388247041843851427428341590811209227232407256444441907399018366303035621972008639141999281891227528340928487714859405021122029626814127140525996694544770935272477741093258620289354124422532584659209262478014625947776733816601806246118567370071190789351914042326345670046692577612095628258865656716620793555560927216996011351061661019893792223622890547978034207109177517160384838187176888247271231644703276429878846851798088188206078183796592253958325100012142389366417693087566400283266059514394329470479241047342390218042554798745697493719576629402226571345871725493757668379794864404047705130977570057275999299437329663777358764799049478996346783240591442709507095817014530773200105232376276278657502445243112884756458782272967179467655360483683851505253491816102234268172645389766643167142290046013961740814223470925245308218979692319272005663377300034168895603136996048728834427026515632584484208998198701863020624187233971847745056356300077062237065262107018352099764223308353365408747863575376603826312731146530231570548826414042311299331411139024314825828733720181476824123469684033135542531690982761855294874055024140649641644209301230580746604037992370895993897513743846295675173162475655573258926593342752728593898181739393153290330544422398135125398696567098433198625748366428506184927395186908139066498397963255421248331319665931831556606735207631786068278367813929880664910811442659084820958328441924182936544875383544636311755299774309301244804641000924814487131099661944041975905608843279150079895373693417830761711353569080116227170222412457718780921975179246236286316207288134695621675596078301605397032709380073440400532178761304227553207827326260739590155250614780988905552897617882582985934634077741297332170491901090019522032488857539930751996111163820852177732006963815934838727498819511419832483960321993836121813135456189095969114753298133907761536747749537294216385813735138609513503387718878141388845015904385821608916368702817515446539956305714947036470935930110936303418041409453299225641610110315815257391880166982077148958771339301394762896143143289115738102701695686898501105993510651181446674296963152768514474529447997309815926792300719278455124140609474264951444773568081889053111275477634533139534154502506264993751777109365223844160552120722021776461051712577739695041181642999055174781550561511668888308252364973972499346479066762553772272670973713386029613448441843720315556673646907871369532259830768435297306539702635787440569038689800863219127592619513705507583175716574866539111220027482444290850500810221319432358960451265461767187875024946799159345798034015664157962947288915497662298347763469320482247779864555268521788238753376206903652856828640604345883830197897389657041248206261518774061886074929930659306000534594449642553909872786686239732292430481226833171382175636476565409432947995571576791202137961130857585268095557835924634136746187207715926405977900622295221815251241081734501203281814478825872957049732914861928462714535020836893479152585994845569834728410380026011870125714037217626439811348313136910225763690168371829519167342859923718164542486603885313300538419835004123295255264483358434139016203865902780483379343638649827199574848728857878845742795445342287893263273898590866642338509622052021382430147198524978780284788048185803221237263415009578508210669684335845699249705878700355202810456879918815947600441874063929693323340701180310709653804784672909279959913490129811359339599451119893015591271189412230372981574912849237797361386284402565397298608415082789557492352427624822424794037718799363343369632696063951066459499703291184096395336192721790252851182418475351652513737534976297023495848572720088982611695163490657575399654728996002398436391970140661352468725736590584689615891036007421384119818224401137319572879121817736131712922993645861333789246957357238265247896084681739765762075992723535136805821437768529222733994220666345210813123135967443893788326667330220455319827741315136585637414267363708276161776660912715279074164794288589662328083413077439241137446293801415790441219180995425923900662172516433895224793776640597085959084985532429836913596025355698432203425471401959054658433847484773863875758371843198180143372126980394289400080764126543611608575226359755459141285507436234684221159415925902055634087729900018491071766343916094187608914326764770523333746847245942039139672374008567536829667501197452670081525819991277624333207602980430469648180765214576969875365182182011679391311670369128722341757898544375577106110791976849793275233886293861855357988509862206653303470990951373407960547279782119845028294966281110594110767362398880202657682218952862016149506285811704686735202766380823068242681282108986236283765614852519711535200267633089998960484517526660363020054723172234982844500142932854000335554013288429375596896175748839706639204585445044433221191297483188165822038683147170330663667353722405827565803395605377295727093420873623777773523325478049110116620523214661412167780253627375525279199044741672064273331308511531736930027898185374734667864050926646450153112564754829347446462951886818824969165020661406148522114342074243117161260200072481783067691037295406182561462657800427544727231662232215890349337699727274744516574653063960254567128481188670879843607651481510490553320930700154922300688142645243477356331840932820480619255179745355024505186406691447800796241794065382481577498066694730581256606245280611779362161141632404941970633119820605863193451743993481423379530718768976758867238914372646632084076807543683825357780271495685363588436640610365244004528147230441501213284170553858361618521159335470490285649102975037471889135907819964914538336806612726816749053051249946141321336801707649079220443043782191098952037361521809382101055203193179868392194410500116240863575019875894999158816876021458047891863939345235741293885332886029541177753378969367425682567110642086400669925702637531179788288949323411813781983398072471560563182920252350551338060859152859072074856101004395247147605602079453471429676198200858132900159130452622840831727324896450873888142015497871048323447875334143880925257064909206066022367181753174082734021868766164760603018960764708662817508549574511893538544955134730125566618275241105758503133246136392137570275330040858981882672279114102443969237355125346691277833556084300889190194441232502975565843059696438133085990669019801809287473664413466255041771771708808780986809196533324271327396996765248306367956311619609659998459121663657685462480813129080700196725392240742872679106120572484533231507538471687421066189324785551379031147433137375389565285306222398202770251593321703708166719633532349328220953638018217041320121570147338429322853467054735128653970566539983668846888844197576640843128724923405983866065823837148543902949744100539654355419277644289588469664154744504651299333371883547700271036453199500712779081748588358665029412807112638685338916209389548274833434318055524277959394761356869702082118458538763143379377129715365383653451173943663001624174135807912847729658026051357741350260648054198348160456542328131243480258169299064640423373524204560528379747391971993754817069029168825142592426915412825357711601252786671481410991029112133870397816049651923972053096331984816719249929130110624064429766539579051512783031664236989269932955390145543382887095400216553148346192629338629791805083623370598421939637991411851364520920289703452075899079979240283469300617224094282970300866510620172050256711495523222002261359461580835284738901734697836152153090302787152850024907846101180670651660102227514680769661011859381485761736689764450157849401622901972252367779795889004302647993900314179216203910203547678800352476253752741308435756271629387742255295099227220158162913410268079834251853039593460211371771530608968835409694676975945919449254160648880782478371568320091618277306794124902535122434271705443375942839106232103826295522836725417905290530805253413104816396044969416521107564983856552388321715988547949286275113338644512013255279045935701193718062398306742600981677860414673429215258601106591840366559806367367052747119374001011252561847960998986035163903852633996681924744495069096438028775925558912093533204215977440872705320359678865208561952599986931220215316995417504799091220445264942991939178594088492799401806233716274467494965036448539725550283676991539949715714093243375527829660065751437645448531268159210559771369156494356782609243468749107112096380512661771517522822387170416883451192615926223579463276909372664243168420197525832171117942962617111873154224557290564330991571282573812354404198209678761385150276192815408692809157853068657545845304278052425719081060931498774146213346213147845150987601907588233030360748930516641401557490897524007208151815161014975597947886276945530589953242038617982568899839154437745980667311990196651150047275511449254583264793983927849169125992982261487537954515115374690477652970233197664461681622879177252973359886941411391669451278325309251232638183885336810773108851440711685673551711034482833868667768340977095706609665985609780023451437662972384686851279883169488017132701584056290338766455948940064926209089599207756204085748625991371021729123694151618053741773925057731186035503825094549146692934821010241577358928045093866153264524723318915215217185815896905735786826458038744983812893442083639122807263637969505116495932672128348618011624413052768386021363113891015776562305325694547104309015100847851959926025308916488551423554367279676258795759360578281838999545457419588648138066126213939970577030103336025796900289219298240209481730926977438863141911198755343567866041831987276184829626293185019552874962550075998248952647239645773691171868287310155417039821088008159029688066022449774430213521302502107360464500361605954323318323423981206455006680240098427481353452274700837186328560933902468262104253027259070179781670374740283291903177089127397725318720837014496233613603775367627089607422228784140508283687678887241341061533667739837390178771966929106294854808111576626540080407087044493838336276947495175587060011009653194448170816703522639317786345565817417983875713613773987628544454131234430419381837016415429599691458477874501379573663054473462188232445284357786807459167902391290249985655989984446928939112858537529048799079151774837966934667094302194764589607297943612712237357203868439811905523364298839668741271770128389237812787822874150392928090427971025212946401178610174241562861830018538669872962253100420418799546799063932183271426056620861219175515216184885782172792530111262716936763129084267593592590784994770663528506100989443599330256878514270975697973872902004063146832384886950378937243929569430892577147749131281971538385417601452568027914484473508585572659882459757108994036454269166200580771648854651653297554081240450293432791733494294518967401355341654332630610880061505454837404701287004414405881245259190028655553449423241534656026953024758336784540678022835832115280140593913091500907878940417457387581653536475166202507896602085125835535259326394343112246241562380122439368675735448607881452944279839003045220007204974452391087089832627433383570559350009586876091995839803968562594258653997292733347557642960356696128157772977473523471832587797877819731311882874883332361423525670678825543940440417554974603782369877325100212608680195243064966752691878895390017797041874627452302821041858246473093386205975506637949077812952737564778198732891146159506968075757305594919677578684416802559322033584594823563940201156436081881413588060141727782736124460329484169237773527178933582396829191506987975098144313255207532931121638989315218264561066773283199560108520494954239444443081075869481252560487362630263738768147677021934849222249843526582000380919676058952383508009694972679085548622621773115880741827217180742602428876628265469166832176043076193187674238369180533488073112056824743222521573133066073248132359648475108971164210348723924078632333341954352691071553690204024844918026521924045318089328636416609599930783684522985680306458477920467758671928158919255809616880373505679120231116375938591668824134546985643596582705418508749910037598902772252085836268891009212457208326530136210422396122247869573429643555721123949035940381890975786339722321013446652763531585550028432827797513392018017942595948261621033009515275668153168469966308330052763563084660049292874516494513839415097818568880507206138000654771401660380075340919634592213294158506146950063110120469774541458667558977315990562750368904720944885011989842529227826526534703474484699873100137769507818092407983133482038476674403818524201043896355210798935248473890227057638950054144744584672024648616343846890581693518875267856638168575442313274163287792261791254503405656198130192098826337402137079448000940043922933591176120583453040619172173967883810916533119268640349973176017773668646095489766008767698525173011456357314878423525460792441431360321536540158403530154614959932363149207865641030864635727879325528892118647188810468217619887245914832237721256229875376380922386581323135249904623721982816325515714197700203378068245558833709169321630072882250012779102002911548032572484111216746694579048297958234201383681808580439394602741145994646891920648183555166577255864718146352819513556115449358398026324322565943630219858029366180746461712417135285317061475753743561014771629657141836188895594050515284590961608911301218275680207645791703286168447831981943879484688667966486615907764737146125161684786986351194072248547273980702739681799896530135666801500667936751336151498940642996362585652685377491831073286335110010097419858892753416932614906759050017116218027000293309119742473372510749759388417068076149178869312346678060072055065538301890733588091009165157251622377603239238212941360876888989239027634829536484061421118440710648589354090207563271370605798488394795155629068952518802958288578436636765937890926915338618718596377833223539753796723720510379051146566467646915062442900554897534120062206468101199093711656330319808537099993392264510417502769816173320003397767281438918084558071443210627881725056431724819763124157443976887279172937797972006622541519992202263201919661140619049674183411092017858670989355898743702017374979293840156013351772864863541060634273835564163803115885406002389743282549820899973097710765923698441570591502811955928537922319378793840153906866609227118325356935134668864276842907808143656881671632029859818652330055132406052469302134061613320808351731186219098909656324570883890038593291611098422996538231959084847844811411748750774458628027838122897290922272454893003283604170726935073914535151041656566816013577495386781827943110295256135780736185721073603370331959930757283854769964759659030988475798670267337710976136820024681105619207275867807510416710236491937928859736530568915732899578589508212838132449065802714605544376926193517647526466893149859213321486982572237568563318322558339327538731581217036592661132437851135471299889285841487331809606381339942353499272947171913344320249290501283483342501689710393710841564688960332816142534887361168623272612166107500401945322202357358852337418053804076246751309519386657588331619048972421846185352785444166711673606915602392960771209724912964724615436014777340140225763797495388660974565946962158806273373575366636780193895447552927336930946048051080282333840689294655206416323915293877388643373799863095308004428536023444014894904478622497377369298366334505914137930422209517520709244253790128944785681758393618001370843683261436742073143229773342824700309186289838121309786703977643047159883114774817022500409966368904338158450550310645479827132333926766559644347943841958615822958026142620151397997852512577661440302693711214566966366952536495929858367640179573038754231764620149048572927204737612062809176546596725215518739513770111989776062514372946187858092550764995758902893378666914277321755594945234361502945291838966032451727724216443617398266741989483934194089227255848691521872139131580101238650296418292225150429711519365632282585348106092883878469421818804320092598290664856741592868052381885517673462970485732331670032980035609970711227594860547455170013079999981579546536952079819864334557451191565123264660523015135687038261971045913544677012424857096943084783385763212369108722757068131522694949036403391272439130775608301201202302415331926447816004587525212974614305389563828087593720548182096063997823972086417579941398803259202490085452285839962155398811091797448807840321255947274103280377777015017364193487458901536066108522468478760512555400123628768654463248399583611911291249079226180600753035484962686957093444022016443296696450996009241374561178326686752463116538452521617301198756335556801223619180534089175732268280108548517898148308804749685886197457390733664614065672477008728295578659175860033098360851412971719464963803295456530100140456195223058852364507387360711828110624234844053723048912647670305992718047687961208191318800229273976209386692433884475070586762729892936051284803489157654831048719521941484052212408069153366960502711547786243434040421513674354997976711729814295754836934472202992250063816808883460053956725098178901310055818597093778536229843530510940832855584324051492864093550635847210952614478831368714089624558898974620360090999222795294396364141530429118761912940130564059827471537460279870744370916795605200956066169708991976438929430172617544374400176726164809358757795086847415032973353527499005779375170637882479056200253400389106490222980028745400534054612946827083132081081920770688594476501304881747297258974329167752097353077563704231886201208707201252595751962985713119892813248671939210585048467194294470416220522373068376875583602990019202561786340903249647831741482069060759576674109941226103665859539361303872921021176780136370856863837708420042184211927078062340332050401444892345888056692611133939341504336066868082297962771133475680518959950875793443820326859992005787878101475997192725289289294204300472187641610108406053480131328784095970266090510432544314920150851010484638010771746868884608155426680011193108766586844646771846126979489261810471928688946109159389535683645111975208476071850039816541656789250199911613824974624745567304129491624877471199283608210099574803221904843930087052502184998847944849664669229835907310749112837913706099921223898645640308371826745651810311449920560897916070048250478829350190151134854314538810800156565687485405946555121018719365261668334772373437476726572139958810539164938585905787124200861898245200522763136899721615701613647772834899604996325594428671281253764262640808589887132526942554012835181911843764773631418078194820998593898550937944659152293959537605848214170388056449933063398577379496338229480512103932144771555619263966042057810702462778274564514811579665783676025402011376835929457818551721814642618366808376876828927792956688120798961517732506883734054849692551783953606624991490854260485030583900406697797728370349912400872126292955704644838540760867150934676598042749185276472313880594148420697836243310956432613323785496768327954931143667079093932382482778655932269968229005370032196516613488063630695794377479418220288083089416740876255624462423774617337488535270026167453599588479683702922310895312197274906138075257256333991473770311875756138217364302894797795178947154521786932162089226440962833503366868915563934885169538113777054984331075437280253313446397593700791776334441878609557985323437624305438203133743615522430114726859349884745980236769023725867617024940375624358882783967179188152509712552373322079338226131827423681952045240414537739578910754935372041137341697435523776348979748344773833345549898974066924385426725957665749779401283188931499021663345192350400658275871540450393006200471810685819514205986754815207252512272322232231719874844293219587572899688600368102107923624730890733408679346904250726021773589067903254074901215701368541579259347732509625535795942488705916645196933816141792806009634473846091835766888008544326148085573118861973696631380679545974511347837684842155476823993743105697313355141201647374695392379345308405866232250553778676375056735718925296782263202921672898830877960109397833373443579695667957269868071301897220008408623621587303937884110184589544639673023567012401334597511698239936480120096854589816969993445868184174754855299904031014087516488521302794490564750057926286634867398216225172506744161589426307760674610799864743953659049381571178422001009351081775491557253151598176263246421591470754305760862820727395524934610140775954008034368862449768012089772035104974624477131004333789582984523481105965757026863917277782420059354127262975503441406703728823394345059095356837876298780226984944591179853123076526719533589278101075271083413613146781736227780802893930128806333482039245817361348436013163081369780760105889172860865525907803157407797842002478186970790096087086300912433320170815873554984252285142250331252427314881253098521496872607153393675893434037845877090580373527297546208837046930779162878317526541960935430804482773172770813266643384929479957873382528750882378578080834961631337640729269807171465705931975545415620067709926236816898823444147705490242939301204461297313311616226740151319826700672807167966680387829647215304126072363725618394413233022138109015942772191582003621683622898209053425473499972546019333967270236006507216840035663469358712401679313009146506493415279202039133195131365310277070171583816047142519987853816982425417282950339493252321436049035855488575442028495885554478844760161665240466305956437383653429422133340432869521338488370921416244511083880561495120013510712165206917305598467850970468492483346351330081164945999814577979075522534991217944819439230352243317420089628031419162117489700575787905563266524986421990412872938445485032254405043270023229295181032614772405565850356662760846435480224729971330698097300862129603162724913833643125922989642739390474839088278362619024967987634279168033766909191211785783129569716806347321946257218680950032682082365136138518667682687001726467945402352279074740154410131924826712561944075580980815353206061130904944519443890569736586060071136539440905168517630957435249361606380551443203724044674987028278401170079953874546198293026440900695035175676841919510632628026232797114559167493039079634453135617625157857107409966779422417164372906897104875748322188468442565263011372362793651166375687099288236403816442616387848372007918033046215057994250762082587626025184318047486084492811905923119973886796316936621632260227748231484845836674571990928379945297323356147641758611533050393760112886151460667909266783550204247089206282178839427691894823762401385234320322938401032649691022607058924460533690439736202985881723243037753988654495589149752954630322406743586813327352950524223890423670454417952338537511505671767230810041059862186398145239732532617885836963529160867703139369250014028548530704000112673297644000636879648427112146555289458169584136954794877806149634011919194934049400252533166667624300178764209814498360687945097686514095919339152144009453072575900210398758088433932588356026942931876977348939219744165081021850477678329022267555707898624848547106675025184833219166716011069336174469736183954342750496892735345977406893258805793243581688247203915020516440583566351117830717468030381451043663078167428143872741016125866010486152588257755069643156471962339957015362674246900608943101639632987289952214865532804472269031542343892010295092631690830993065776412661881051382508071069939479358535354570625919814822003743577857374359668043158914136522058561875445977467751571112919351741656714506237209983233120081424136496112617866360889255656177021752207138610031124350679404070341174211615733687156418841380504904318057671470397465657553082305464289272015527108804891023241845520627575484236926599186750014001094377479623345294841900158782118700241589703195520849464900810881963535635958298726576893461164295958790868739382602798729763941340527945888799972853949313213472205095761525206922581234403968447258282661041757603525968914719928321176389527401929982298390811796625216279878211353001546831422093104497133011917769267613257478803350674438093439128757322120887055923784757586091348789817711983325053546136611636487908400676029147475091095228169294228087631325772592365473447974007511335193117372970393853239882246914981079984456488359427193508904285791854661495483068413710679226472641621604026593826682542675273872602694351982153144278692068845299718809842326192425746804969312922860384740853542136996205611764439723105047592877090540322870122560801916290659205016292652482584713188156986488761465817435868533694271457197424407660312813209287449063363496307488723347005652112934167089084943542421457791223965635427146918690744200586482383137206029409513883528849649908190575183864600705208466779231290598847741861271313786504195111351113458582265685124107900870031952283998610564095645833663825966600936860216774599503860424022283282497101411491028719229493227581491309336295705559231283506591895630358598316327844980869830741994876709151498878936642507297418316979456809230493276343621994093332517250771597419020713166706693210231487990955017722814043326938162058472811075586512264971525815915928566977453801518956364419353105806710799391954932234702473801102338734335092033881473910489001618798105673539889861915694715707273190125798792322058307225277316976223987324294097703812348883009804198849092237171471725941391354696764961496470124806205069854983429525567250924749821766948285842257454028278232327197974349727736501735780955810428964589198752651767234919340493853310087176780983106271686818286002094543435051538777454677862008831533980744057102924178881075418352368560634612039997155710820049960623325931185968489969163712638161133841675891969252857670433022625602410998981436495608964818794816273284235272209117310490239388367489690777647754618676298294200742672230133022120518790437511959217346690426972053875268138899402331616653476902261263792058353937560228522056374038546538092957232049260417813139505168314102066150100221499287427054983896765723317428205659764237463252847518691478486592405756013444812747778599974792215825227251446923649775454403885717416595855458671703241132078475738857021141704306878963508181809613520641664135184442684447400294793245958755617879635867597678900526585322061148976064048403231335955488275659960218493845048829750084832018120903058168249034984002914426618323809277649611551079979344475165649384623417553255104342267975955284498201867866270689594871884693993315744280818941570746349600664302189957285578731436028965279068569767768852314775340057398479729873371443782728104023931915107875527787044791946167055244144576013530692739814553480458550257416516386696589705687873489489170403580170957212733964820372252790770959347595154792299266157196553397443088696680370609196091822944852841472398974159044496677546095393326595953648167676900096935104210470244133924621778929881187178626917759694199006717080654314284628524943801969009396080441178947391027999826766717822780097866669333287641313255836281758413040015834805567570490417305542924456180298034187132582017761848008143240435430308750076043385781577411857762275880212139193837146863373552031302444348362075619744202342640023477500542312058797623272690808556037901334746619075337117292015878653296789411352818741259084045041288134965003706620067002037070357769388056368725383305478936982251359003729080038370926921790915297218910479790125273291782927709657436062441499845603534786653914693164020355795873244824296537244772188217375720489309961128658761338996370113997120954419800468997975279377222788646274474614068494576596106347338081698068762825436225145055918140612237405074689347158968456996024983084559669720461658408242186581464272517885248820905146391452707732485943088044774466488735928339283478350979975699443566596700783996438644335879875184393675786202213612023477195613149732472961469279681097487660122298030181974584546183622623667728565663528551392207949353902495744425028587228675610618116422701335917342768742843025730012634669745308965839168654275373948051279414946055197147367772660760862550661593227792142590511648469824253983720022311523664489394524053859232609316180431769606046282550985564824498581686593762563268580908008948496230728792328840752714800627131198490815138904708220594469087191074843243134450883974989082440802312027766614886677540032531365095758567524294620857055205128829445014795552728608173696349210111782679013830891778003632019514192208321973257395657325807812545125092055907877375400081017242170766553127937735370601333747086142892551821264384431753215344947104089281957414678621470739288664808962373505343766062302703812837628242846115379558494294104616592672161401427963907433022908416630844666403119468688777015686485546250041113417836711094755049369188220701561198537823429388853403680824599190431490997412797031701876492119744094494482963788615589503507780488096086918460368648921217625474530830919806108883107017409685605010769280420107156383285998493021019516500629729415182478188989332995986285320292502458183004988677124682945724119202100374482426970241437926144279475006823669214420539103467255133440556123693925142832295727317230606118303558697815227489600190448550318855118997108799597803486700285441424089746009408682451463508159512528056212502581288470526407447027110743129141770776002499978226637248977087674598211704746551298716364488185755127502027177583808780224906270783638735676107191374072528415142114734027674259667930694350728101739103673519785022370699093790759711710724603871798026858681849985139645379072154069721771071596203589812963311727348500127724906886388755704584748521114459858489375172572778298902210123971594049473522724839285839203447830731922034879307086600854216386767260091359348210866632457824099074632999467248427724880210494974333794383329569881529855175089142718866568504295207407759383371227669461868403970637131622917424953683874067065419234666001854690808433991827388694903398766080485917907093339619000867930379860724339576894451018614584926090590787158919375697626581698212285128724807029072409714366970838636421266592478739649213590219682414928126927629164972817648024416119824886487186726790291027182165206017435158089042070439305336070396370258226089805644668943332817848015544605385659591529779113187483780683238993920221946105229321678492430882361055429149875812162687256300639654449854942939103066443919612444297398636557546962612069824205941284957140141694307022896597619983613320352470346700487514855966390218209071623079866827265286862510681542801471657377632069115342027842357816656326114876851524146776756358366785333589003073928944379188889151098084019092778498868769186445528425815506993835724432177417788840469699520326474965792344988755636208854116924940672652201916087013817249669681365321875464159750982669856072604726790343541576386679992995986155640730806210778930941442511984788190715536424689515785385795475238118363415939665613187685554192502091350132617572302122965219691338440263874111634058015293502536236891156267078632381117912664319411845188376577804541439225781738154788815599573041833158249416803250919102423898547583439296426140868177761930369844120037134838644316283698626750204506303477017281680171626077405678522661106730468799948385976870353161907243479551554659721146273484890905024781105838774155574358377468461777127054188339488163260521257519875380475115512692416514777753405841539314211396141365593033180725540123504720837133786718495597433247858901309729068494233960861788736129308517554208236860461060763543038657457269505931816137452501830618459520952821040796470900914412161565995712593422152225230780446666134690381587550857694716535776416258442035005073767389049871648104791198633346638821207100407608153494818237084602706690374642004405555547295822258060811870789865743156255196229671662116320321872911738576150838210674116054629612857525641908404854034401147071411467724490136557930174358561257892873457730892338719880668634058450500252167616228145775224991131096750527782786930893564737852932100753196346885795326347731092405728370485103385793975691275909293718010632217772122741856430347997789395364587587292960051534883107166860256854363712216582719981107969567756785991711279164507847433685586099394496386935700051340422934922501603298080670134998055799035807528384617264549848777669857261714134617972563768206540122048986205144547223461913102998116651809800497454421793850737577801190951346558296041916395296062714457313261089571824718191343206347757966615120098095695883175743746187726071462807133455311788545974988573571724096245883890652536593514562292876908641033052697961222734835578547069731876672969480018599144371374684098108576488199832557382703060109373378815298664917804497196247674898864432734540307759791111537047332498778832721569946179313324182797232031802380720456898938424082805817608967046245200328719137022917876775202665247723112833958915852688862433945796224510530586921067086807629090518200455044032170519593133215365696218087728344779600879065235299331120289793951933522492728143449957736442108823685741018426110103350013386912109282036824239154322824319019476160932125881410957085150650535869403164583870866324706535834638956772598163158635635811218238574769728226306747365450147696084753571513344980137432596795985010162067836230292857058152152507023341980353086779218833455136167355246980950844838352457916050116523441434962718730590728873069622861717928652265200211904583043942781016925133875999553096272215547627196856568934137570932800678463821462430656280385474414149809404071378521675833629384982016577804164957670059934791286274964159400520012650576918827765665245830012444073302640201868520077873121237185947799153126094318016279101380790223389289220384161645598537466203508379585692540286657508174292580653638266723906176841301873270304462116142091786548265146119432653343479994805647787900444645593634312023398172376919056478516352044367463459682324085659397408970367112538795943714276839387674086998856014431591075905581112892982345862258449983574492078724496373555600930534680765576939172254829470377202059058847384532238918043613337891638066620750545741170281618800830931333787405079676840794253079138435925365277279221395821946378885243876651391107831686517403021255125451845809885817780873387477688148208479266834584789292907038961639833757128012889960206872813606552762143692047559475897220438813643229165237479661394728235140100641200486738537002829282535709688769760201700435160857605389449790137482977820549268386846441719006201291370616691297165859491587849016463086256752390877785931335861104507832804043813216328832886833486893304188850631025540792601200884149852327634170353786217092947918791402903288161856762426150585789428669948320504817579763309585878060315201927602421751954755635194743397349690149544333577378349044789594726686810066178289026694304689820990655673069926600642694026365040394831476734483996103829978332878916603444322155100027810952602485641393965092978941049507056056754062317793400104587729089118386988990412720776496141085469203715397730160553453180542622657166650490571578658836380526477311415091422781419835984246610273499184243675344684460775838991435963048661060404151037013073402095035309860486974201843213892984904432565965056591014364853731635020602216072131007302736010289315427805987959170312983802632038023043324728428321013746413259167549399182343971092674856229774665753230145338209987165582309418152681321088895541155541003550509589639133315451447398183552667020634854807204926793647855746010145040742480751847365794219274398423665465337104005157132635375898819977217825451667436689564192831404331345135783478722024957090730281252837808101916978467219588155467002290201381675237384538669004596856710407763149347246776604537956842799145522232096275500490784200847484440059994902090358962602623193520975919353439299213465711990463534231905420833514982599938743658214431268108014899281139642363102223898325839831549392497840344828439050252267658520052365201181573237583625435144462842835510226064861815389849078529569622217265093910770869681731098491304391835330476701318217364470874553658125165706217934041921821595146452836320411714888147619761269748165597603373108194513202620040741703363221406373196011099340792144005640655692152156539028620680427336781116254579007195351308677021330247052192831109528390315910860180273336551879773284497911785640561713247901919347665267554451617608130547436684132147868269815662896475072686784828722659533584484365554879799071364625377350879122046278330414539387839266838044880810324895594511201853445196969122769986985765035396392195351660740122218715826163940687407029499217390442581193691502133321789656521548164377539200908663997221402366789151248781046266922759034444467472436278545712802093176671813937673578002641815555521476127562566708213485609077911610433612641481200105726094753678804302005586513551113008356345655123725586080303371752691039256714553099938868557446211677390104014254449437599135259106270928744977936762665475821982637950879718669571509663811645689186388548944440866113336450479714593724671082808485740621084060373345632876282584025291188243805320354928073224432174247436542832807991849185536086886967625138976782174890929349306130620262015473992307501427566472823239768367622254536282089716983047741985414428411518937194217042948201943375549596729114279653549274198745738833105762454989505582190490866304696622604614689161917333650488983701640499650397163405893160359165917109601152157316360117227160515671776428214931273803867378673021630588846549814635581602200881010053929679272466970343938188201466625077469915143664724079523050977397457650953993424961218122352397038018963183269015903993101301951910442967056521523704039211712639369026099270445913613599152970902302815826829209970451795653930282061869638673656281789874304718370991163757346371277881210973400451094110309087827133559480142780506069721149751755672741624701248107438463894814437401266005926731155841086122149046613934084925395273636691456442396316273300032734724791585011845876496028912843965073289073721456102882509244580615380472614889928959479376503267031089018924810142331723234294708351857311078565572714174529020052964945591829911358696510693455908604429070099370911216638603540433462854676239670790690124005189457670304677943264944125256215099601548451738195749371618625150797380800410655046793720113005511338889617525251586919704740122917250495703533006137854274054896651631282311594053379568423163546288294743712387323899439980635409800908583248748994245330898510106249336148285556949317598082266276034668333066025788377804724050308916507581076299073260801511135086598651456359268077762836730644223281949273308909824716065797571983212972174911505798133783160326394531733732478743876773854081545766843159035775719310726548017722898752660063683189546361639023597324381695833355626939579432897644495347417943468988453593506544251348594411895324498857307380126744494544903567145723665388972088793569796477150639613433319666899479005338086737294806301476133514175673383297387033753245653517574227490353985800841982214743742103383478163530810289950034333284487397685292270868635786447045933965880506744924875802782673167704591463796082502077006862731496683874032921565754684041656093659291802979174344685896144627848179814530409350844213973972566137197702864195021199899648047626459325106680058456369280340632580643001651230273264921808780395625089377428426259240369489428008066661721622549872965477007205320039108358193816304251570418784949241635358364903075665914495247181587639129103451277021674551551850362243535383292368846132994258322540377389237651698748011641852186242921063421228984046937318044427369874245626783384159836686731976297631444338322403339722239678305153752166171778006098756179182499092678324948157253801503282079990858425053595013382015257661546090730031636739422900722899152579773389183794232347295783664176665310753296406376571225339669668075021961430408835859016777092911097612256090406478527438650628120528309521958428378199451219530367212659922190025185199437438478878739932693215504954740822715552766993413252832648223824616007054362490464350526809547122385393203483862043335076952708757555482963768369123704170672383365299347080895874414978103684310136426345114546703869333701967248044103676296596408262703291547942164053388909427082414380257226167560873860978966023463880887435435581958376892197697423829483546510775737945887149865236011016860198188935546053364046712401134450524978353742986951109629513002103979033604065622283720961985490810203724121508869886092199364937951162568027503842225327542640864708323068200353853295932438355912994432168984673288608224750134984641814538285991976369672693889157206168552773636618070566573789902362889897647746043929433983844472253799750968787132904065432759300024646534678311302008397290368019932923103398789856764994492984945771567080400254555183148627658050504365040384156657240429791468082155005817328425123959319109320203620276131608767443097832999507353055039970005026389703932602458670698379391328889693975830679781347020753427291841418058965303077562601831956152021665250831871037725547355801509924639172321022774706363681121240611015454615137337756083379137106114912617690948588819009499479880395204001116029538375409710941454216397721961522812532608866597673292323392543648066460895647713322425286901558881788483469402580749975506005056342375125763229946272366619347223418609006207949381594729564657936631200144203948323106689820497652936992878270832321291256376544337407161706490907126003366592746271996038991596303037796091526892411812367245659464410311290487463783447729700967466265567525893003084000839851376823601057594397552563487736549324908206208322237966557899058792456602840410686326503279809105193206664334039115375528443257926467049934158425550673393951952606409637277591501495083409821765545672244425343915149976578929317843915855191114259723344545582003736077546006560558352553354721075798638549342399018763085979003619088644000016353474836354774274179975798213091109823500525915027105087620638051438287459053402787473074398147866482871763723516495808791757921146294671812060580184803572546966308631310676057257921478201243477501799134638921351534437294898062994995888173974198350109621501351266998421408802660824716308861609214638510316737864792785456313666905085265525641396584502521342145732149045209690363431906282339980098085141044321115953561749991312488751740655802079730350020081710298695829408094498992486342534526882997801019450851417970350557099691549933223812271000273669095016441979176947783631074459939907254898826550111450133895596884175719661671992716878615391827514770668787480628545018470695542709260072917828797774925070324255066092834600142275630792318008751632098445301820681474088459143405151859096665754764412288608736292589898032911218991966679625810347688330868174940020563708422866600431715363250740167985062954538587658642384150256012612125268434991760832251359686397346347973155858569056423040575315163680888347475468404929797054725100203220319222938578922856959641657494060930720209315557025249156770059323099924389648489202836295955435826830354354815298206466399159108579248241608076148927942907824807180857964588748637948308921128420776709685672118233903430617650429577211330659769462201540310367697700627113892146245286991632008922612798859806663409056772551967036155025462197061832900700736139736514438021942675243034337449931299096900489380218288132077623880234540875642554991365774877966409921731405858809422912302668753570798094871782196170659161055741903571401382167696022540785810409428510277037965889596556705434491733683281965600594215748393794478872094950793294974291145636202323147981267559741078783412988296033755889598819438873626598967000926226834900392670450100912073967022226433220002213908781637481416483066355372228524205866688249755913058962082985699702050133768018684295806794692656779156284497968856974564784912369229413600259241694162275463601716128296855793674454166416340812125431158387026726794186352134588350906418809828206321763382471221644019045611121296136206548669965630623818848189940876603373902293802504465224905110244837979046228447353627087917297158917616012920038256389907656264611650225805978187652007661089074886964566887118389229362865760292291044329903675927799654724076513799643475899292668500201324212507587745842710937406466472745799691901324092734545957623634556956288520596175814272992263628555482094445502063236469779083450755980623772091829194970760285766196466293475321365981887761024561059060762600526915051391284901165995063663809715607356722354237289039120955219187005816210685663266152666631176480972460386897708073038024946469714471878388472634073746058574258088386175508106342634949715730503498257669802236173943937789844167069756683409456765875351698954579495398857591187274732441234603680990500012469852473763377968616769185752676198272227813424805231042082758388295246094515919940071213139182851711130990535836013445374192146790864547747565605554319955905077993886552523317602265122762954156826489659375793246684379247552332795629521563232445482510512507778388900947805930607912668506712881503714494568874772239698054634248258256246981991419411247978609131826476254020777654929005908797257056743055169784103980748017849462505911044007726598509352974699174991449612259450611206941141693746031803449602479581124945824956176872412430876213523601089725401940686840568111732091636885278724828331328426268920987692600928450610822562653153307225921823362148790822211409626669042233630444972757383665625329267791178503109301519633591343889181472846392112895731399204856519846387009023456982141699105079144493808262598335491362896663245633953939063241448371392406109228735810401227888834761723504610258396506823228082951431102725094481154307378578177652261349497350550983507404480081185939787126630473613930652275132897656952275248907323355697052195016961273312499299576937547780488733859281267794192816898116522542441594435603453000318279830343574974203372800088401895554168343052253147637365653285112819842722810045973061635053395070311360767225147410010148449436777344540413128442792800022582253626131756455474356156668472571904885155265536277879872298404723065217002521992609269561061778235975725165967681558379689887329441798487405179546289440429081844815783009666198177704020121673940407823775336168121552432215114001506589220470035901730426131000370790040514709219441824837387285569802186933314678146041910724434958223235066790291223900656327401325899791131883281928697266785528212321241619181858988192801588415733454055435365794081485203828452601563244103557216713277499336161782421124060534134883780495333652494145014474389774233211821366384245646273866054472606160521944395277622086798170834581185274451399520508711812810240604731539825946879221131142587768238419032094130392569862443323786528148194816867431948746229210982613681791251136545554853878925433508248432069429119831895705745281552416253319633284843696800569141995324640972660754497031435467228701429113479056575109483764687355235622004111102445286479915885314037860939584422887290008122466875260898632190160149509098920281601777660229697280842708094738580529031214599358152843058958885193046694902668204683966652591594279201153910879229705773359796118773177013646564422966378916132387565551139856066249004329582052243657330228822152890859708519807744860102053910638171694497626550497308492621593467832123949287304817544691136552567466426903048176362065097608289431534418433264312790952199517672330636118523947168899953332825141052936192602727694160828310707648393645079081810450514665887501539183506604617357292185509799554433957010563638517075555383364355041987772112191967865367577005550235778357013943532901238799709311280110005676318232459410039538358161815224295972347916221485825964900294961910324126246333846286822056040923655273647273878307981047813299160027194411937960366240639442849824763098236384462776146483875715669818104552726958784305036377148278653160949656202480047899537326200810647439741852449461178871354856733247448895393799475382339387454926718066933988622603795714730178148378033306713559383064112405541230931973095603447672587587847348095958701440572554473484880228427712567673836682855528201203959490486397908346898242085042033475040689789311704094773310681724596935914028317994464388686872876424472450700588401146016987161583637012813011013552938025166103996732697104878428261507795310788883969182934132322994462853438376832049936410928356622324885471233057700414810754273585838680417215386042809654679407819596054070397386609192046299625152353999868305703153394793750231642342572655048417739951188020444520323061438798425464870961655530289113993155474982942923355942311419081571814023292337898193796220159868503663840019486159834175689308278072748902402963822921211955193285448593116542372503985513389984813622558981354217196833568503598272843852363242164229591762448066541165979151218594206757986335336823167900021948198916437638483928229213498196570949275537823534119275272839559510625364126786403174367627742480730646400990110815023684758431622065786596034082397911495009827205870109053477135152157671450404339152067625587895292589894587764126317289236072787295984798712703090017523825034247418611447007899896460242289073861970038790816368436929512585568025473449851387347668715204413472906168668926385506523694234910595312711635905506921113312737114082129296390041828010391189267657047021162022389637438673573519698007737560823814256756390929361839726344790972009198198606427902070247568318987926865984287681116177062201014987157292185642269798933758413306485753868546145905009371763166403974825933618756723010433024368759638307439880523189879064547689849945817912189423067949291098030747880572087851643135321880751265078227969148285150071366268951011954371456875217565466831813451791675536654690542629460176641626088421399461150427906489767089271809129747912557724740440470533684045563625307549722507123991489779484321945171726003323074508551789060522741763761091963962304760415394057803618997232640354188148026987054357966449518635525502201816991747738515286384508492715861245577253269605832030503685677909523498767302013702021179125581460699893238218146527693288272526822997857718728806038657203448983213789400463465602938790280353106479704032892478379296875783506714380119650025431250072925776544548967994005292306706276436948064017663536768656505575060681814448287085086672457670828762127776764758667415563784657939191732620916864383731550837689422880803895880816436278030738914530335664490599731342079005669906020111218900643967717990269202787265225270416303366045119053371260988052344653654924936867613077025367476677022294767974124405610112954893003843324495282361539587378675238627113250597241709004834440311964258252492766092293848236953664321092807225835308153328711788005501663552341296838771591996202573987449406677420738549238471989850750919021224378550983397804808679455098037605387758729698634049851488000672482900076725455362830739347794608858058401321127990169636085344926096495542270275490330572006626909314390781256592374815530967593625292252896713032053622630449196434063141926125436699662521398275206770720581693998573012582169855460567005488676330319347181483063193066119921670509085675417384262494399379326048567820732376227346513364170469519633391040036885386685373567952769104604620199137345778695766519058012147278100874571768598224730504765199209070984017807915041207698579194932533470547057295336163034485062306741182197242029879360726365180476532087119062883181938715152275760619646392574960362843154453970964095824852512720299363322323300045338207874203396350442777792043304859648855770491449023799710930574680252569936807905177231458049265253102260956150226775771733229620045137971005398141906858182982228636089658838547488134546681695789781292848939764096161299737320580008703770399402256398891357965516470858547051987807344966957927079040363155310836732726570657374654183730629412197806065631614393097011591810196739585241182686697174956373017751396003984433419133547538932548704560093110429705321449083557376697969771895958514854947800707850237695848471737791988597100712127336971897686508802296158262680793591207048970006708370923965726860499971053331676924842899411328879619310781441266032601045388340306952013974949879538010767456920867691937295449279091845676170418107740222532847695773088953679259335539594907394665056515560525101543383161841463575976248497800878724288597844408113247415189422893101803897615280498412993003519801840128212444209456777494640974579535790686367449001548150863612288969521711105221987679380944910592354684042702503888138199233182431683057090879616266620509568381844389693211953193893279111257112649412014663154838844986524397263170436371199970831907578398180892478442693186991458403772631797128870074821324659588424615385223562918092505113133753154798238906836669153704581960540568692737483477868355688307880186564217420621290792722854581351032394738077638539774930235248641673249433760522822632757466618284484878586750938274050507315461462305099616699400869491933036650339164456106995236796044448159068151372389543875757555257639204354692465856751735485390718731658134405424065539891450162829678397876218152445095304790625399307343926985380044570487982656909836948668002331202961812467591826305779318008752304649928757952541474505670746453366186297157304712789470037097864780514433997431090181210312346751972500915826173915546118053585634763315910385541027678975971490723018080873479047551097005414959183102969120311549510813024516527970486914237178718375267723330241757313364657889194070130008846339240743946784888004522402540007551106710648997533355144085146685728518288191180078072804369668938992273152746896066883106142844744047093967063531338454480541552161104751033067717524606516119450656550605623430663171076988226579480359935843632658445952308756296899768835239843087877287380425424583823889208916518744625449522018037774923250909950752605682664340734893133283604352116213035519028688979467395478713605849253209816848461920208326140949557203951381769086962073510603073844926076604886557528001588899405398952035328134769377511130906965442506926462747741442024175789153687729748695172819555495152535639715176080959955355759946591757942202259063925507118763913179630792003227465389309444792892428913939855464995268851448189336220190703259132238514969688036430534534486274507099450031903132612842879183368352586876323423449862235516017379281431983607569102301288146543683539506220995727133995515244287152633304624989862479466537899073856440812070759394306944053199656038977883604366192977998576918624832716303371103278848445521276221991480963628885315615647303783617569094709218893648248733032411438130734381385123821441230343445864866817520303263120319246748604529930645098822135443940086239818966849227214141387217925593981672046607737251480142801072022457740374047546515401802192266035657692520205327504530097170073666199690947128314570884705516651005917601649024166232065859536392663526736236799068288231493246305829903210824970659751466443005635972268673284664000424549295396982063676797614779856502932164841955460613151792381624162531542922143065792165313404162685997614922560153981388058777482782307062196610556118702254768116455710258981245362941963320496096866286083116430643180056393106106767676947100112095711537141112947509005593121721153711819748832933112749693946237634682871366953532532609958245926639368895183867659156785800308930605236064689157210351043516101012904361986658329810879359579592760775512005424674142253456207772751919853659820864352767176380328043695285506310737208090030089386118057959997323137603719859865397382859986726856140859873185616398965075374561547406280136600946428033295621312833640421311451194940758564463758615552781599467632524440998657081732240234479239084723098711140819479730154423352064257827597373054292026596058814439219617099102536509197781850776410161594847447518771961759689739500711258731373009708245167123309772676943153361953453062142249541224665519257461629094420130571409608024673358116174834433263532863834225733554225400194281878271925733687879260298143814797264680985515358354816501155997827206411578261961837548117638413380628405983837241604624476221800994872370672455944283312825369194720636861286441570548080742919977990842438911247993628597721422989767770759225288198313611762977618409547918685345898665987393239289755069811316036879128972998565885529509184370895581017123326355177921064946915698119663173997438509697106289791276281703672640171780169920519668817317593267658473769363771204025721852079116182375746525973109366544081013898406713007114263275357300503554382704138627483347764501774795303552755107250125307187700088054276648713573596069128866380726356768996500781871934208144516316423387036965559357060396034808056117780410466390741654882453204669120655482926159113613339081307471796650348580841338805271752583316826302879882120854041422805364734665805774764889989144961349403422937468866790346336568876778883614537956493865341350876022661589237358247906119862102275191178446123494986893730019182981186146138071405377016262648546739339376433686907216580339392724894726810279216859199703224594905461484240269223584623404427895428958305371667799480273648739185548909354135982317842061132309876711525863668983406504947503821802629861203473435060448540320387163073458268117440618973372163965835060114702865563768444291786190214573182413127836535991435402724564987436476747310700675784233570663649803612462822012436499015147808370700710972102415935963852862803339893590061805778374800592009163371769966789087257383982624659548539029811465346139843044493392996160082796803759170104816398415286539489948186437871509706976417326960896413433390551269695870013640901345966067909681273014850313559020315583446950970255617100074037027612360164267103680472436829158324026276444159241480724436883594857562591852786150581974060496689865537512110823505307708809755174133741355632454723807821017395597988144135424299167876433049302992629389262313346853210526137792993959874734166550805314602310205974061486853434555069375582791101496185199319273981763775271715188792001119636216393767305131262084998187443416034500113762432720021417717758362802715149799433604485136333879942546874140024898101960285481083740770062098778306623886741239425325158183393326287899553156298443557296333017913476118257975498853843070646547174902734749054818827238811768704273588730945973015685364527714156654792351593506982636700815135887082865317047281175342212259314884705859225915675392704492119585300054582068467485696103195265522695132646861777484280979300021934896133196432481431341275145621105540431123498006914602518678803057076385680037353906362058231325195442871437501672878346366222579394505029840400869686236659940252368750584155449916109605057168872674488403890565558153326149351811608766334137030656446820297729088847223595786661412741079920420229824936000378777676944405631739248703899421325199037381135269346757805145450879708684125243616674875812062902714066379757604161411860970177516417500883050775448962389755470693072432184201797672790925912275010286667797125603381931740768726429704150480853601707977451980567101806751959142718625219006490756848284355430401780488986377491349796340078364936789030518841526689187989526031289998424481746430605877831415506649371554366436380228228274081242224492236965841963211415875946517562381406296526585193484153799792405666527509461972839122371895991663620347291206148685404256673285232650107029774860279864195949029327194694197891078094569059250793378510925477149181079249944080436349730690670303518874555616413386886466448877154287910997896910590878889783640479249565857842109601373889949992357721539082312896355425874440165619611969056362579704311852957538633185238559091089845759427643495556923432778182064894781533722337917363411352665561529220675720035419506001824939339267881140845983557297826915610124823948257804218176776109798312165532318711020499983877841589424032833201765514995433416045916017550694729293862595875674717170854362929973184840272298097625055531301679556532982123091327143725634632766179100115928063066733224256373907518837666079927545676057498683754084567866345325793391636486737809457792401037727832323917330895736612965963352223306557879062052323134147188773703255043459739805482583668548148132238323380805810977372662931300173618679570361778758124417330096668337867335533731631291028185785899235371846243383284593337769077735794126574734968824005398296818600575521293757899977541498332237005671155293429227970593036270294651602142595027864830130110648792206071641435466685650588034564882927148092952442975530291367000902099738428356879161764211111924623185665828551321295550069803022596838080670752463243935153068464806844885420821327597144266324336919989565331182373419309876297604565332217522450843814993371204648275642785799629927475157481401157169072158251283379042893155155289419398599248957833923737463312263443311697530003445190766151644165824185379761519570675487857451017659714219262573452790812029570841702096998125761138533353333915754314216135716507960683899384750706411159858228684505060046082039299842116831333751650011937536453499170719410498437538770787468462792665124023287324786447114194518287380684564898288642338172493655857592263941633818960761862862492968762523266992142289594351727643013766131894746958210424512384413227101670905792981211959221382287774801446728138935245198637867079758568074811029494841805932227445768008340815760856158710033220553841966401635874404393646158035223895953237638598393641140153147838179815372113391817072300247286515661371993470359263265401811603850624376154882242590385541350712969693054085460175327509132628957336713441482946096000000678223812155106995860956329483220946386395395100803050648196472356820371363852936812613186139743811708332004860145362443065981464103432368723459961835285117606947170686215108112772508448211409394238091113946232241101401869115752478931640133850377360685516509602996713036972119096335957699996692354051426970094139864491360185902083520588546729916903870240779933006403614006669821729200197479490970828103398327075150772225752060809504019800881580297958125195882190040449901413361105291204592130326998517500678607469443364484262124413162970610712881445040589218263870902615948957557427114006135917809114866421488695017196612197928602850023399649405248401715103283752878884917624133655348800565867379432136435956363776853195447584370088124569704990275315913971467685313910389849348921387293144448567174824198417905668650545900046984165238303710705026740394684967869950479496224883298153515560409491486043797678603060682993490297425469540291590932207483314092920456271384322591534946054174893045414159571658854536406400533774285016150156478771591869254152918655194095808592204335519089410021441785806730865068466989267834545143105090580807504755519431896400001197078369655753414119392818783562534501267401149395231168120030752780603306624842659077126110361225111816923405729154039400277935495971076137323884851878383894682890584880039785718064858981596999188396352006370509899480624712403810101443247687452823807126109054674775194986972358904670784737556807794426062082601071027705093417174920685683676336788210942486853772250053637743619865653296247489915155369772700270621405599124119846962295014327758470693344345238172414940493112943601993927637307613427740518933668692315790182547757879012602333407757097863700604211313170698668802363304036553316377224576777451951097320705845515949974138622404722282620724556230757331321437381375916600657835115413460431230188617061089962604683629568720161723255524510467433385183669962541666765408834745428833411338763840801108442750938096480750836716015826178375549084625938263696204993957661628808981677253555309149669817271265483047624137581622894557261214863561929142181808068424396258008809748241452710975509966096717137779411561086159496577990331949170506736487014183053659804890171090876043837260173212072351189682010668503743724160263662542902490395684301008653287598845769112103443097733074117072183654109164299364796012737115340175920733890795333957070576264074053035306248898085342068929870799662243292696031815597966764535269741265402806043274044425925286888141865881878652648145366039214726040382102869079019688176315085117395280186992421283431562423393949307566187512230896290892221999592028599047183406106542139938703000491495041126859029564243386891616115821159636473432469851994978378425389036947455628302902881692164613541434067921981464332885606643267868594525431390041771647987939589876891043829399951940597531824127622401885134945359813465113840963824043351911850367098977560463647506184791409041758050896934088428196924262750334250056860964597621556629979081308137167381023714164417794473932455518170022116302719067030528117567503334036848002030704324407614154305300054219376488167383440818255695592083613419582354135291370081776773047157673349938200049884245294116877710196087928473083978399824090283062050622088172107335814455207916889785960953148982934394571567912789951425579806706462052542410205453813049567014183704740750496502467134087995680541963919075112465819138660849960932376006191986800728371401205522414578743864082234603881680869039789090909459679140114667041957785429000898363018862910962751566289350064201656950118246290339222367373207942930525023302618105277508125730700642923294934975350641523538343972301305907369991863851170091672417975536549374805606054084986383037736606448649631453263230851685095294750729433573727900123339069750934428504136274539485008457830526143129441604235211503431746446852806360254563393856707301379473613207200773195815581060028973620541316656493666082813253264028724739781567081675085753526867881545099429333418984183854552598982074872253737120248655522398201735448061680655550620013708158333970434933449023643820856326704728063702313655582337194394253944052984429899868939591645249844601544722226586607222126310395049489357788646921666462186817642015152676324297803765522499306101172664092860197473716670449962773291260936893398416093772444417100866925997251112579137544465304217517704918862700783382227895821031677742319970694737197380961755329357402662770038755137028687231452829694621052023892948726337986132309399574953004263783545101126893971420280585149878080133284596082668820280065113520469882708357665522053847086182056265645351447400023006482520785575522634913389232579890923334822644740465107632575913144453263247843266801784887828768444372711649730503851116977614351168370616692663676176624826815427433290515350405136895027982390411428087953177861420040842628478081018733329237743374866857109613617320998089290144443704036594475869505664058392900102190739212994115395848484650393189865563648681196377756425307465917244149420939142013897286183298235665491043877890856249256921421449122328748966645967894571552014583633716435791068842203752681055621432232737255586205227047127709252704846973946525401011431522506993675281675663418532680770471410659968405203763180504502971356255257021563522056385150231568394896453299298092386041130176057839634130935837577754564846711920382732903329425603898620601427796737705354179647589871269956900935977755148834693483539794521391742961937013901116507909016693234488415494852326965095122777435582571665868311230037049735967089635629616755731136950577018629628120377193579908527122700672453603578860381291072744687916478563195226998724172938558554689755831746508364946278672778600683109818019061594318408497955979611729792110397859121912105786107794821051270095888503620260721384380095151807793130387607746641730938500790445133554828144639388784109425065818250942610065192653843771929890521144048080476779249693065039476639111481009162354012396019638238781534053901034674999118735534537898392871078426772236948140101872263563273725057533581401986632228546166501959839507978191998610688028589953564158364116130821058580395943310479333676142311219900081232706822913273886852213349982625221888882224863754628138726705979348990018747462254281622423749401324887268189382693287202910132829077424828109214425479808117558617231832752668541395752872878752215023737640896440052064905405648353131890418134168767572174569118324722782760167485381358742045876222194562768689462343027179068264755587222019855981010176383224793897523663063349483156191143741159559033724554644597977188739221198115528543100935052762226616383599008353775070446479117023854601861625917294743293692386534226463258993133106882915153487414716829867700368068857482673455453558054558561576038983538867691313615648888101218299122013118979758661911392568407275179962213728889204700503641175024688655958085587132709145467383312329420995509347062235187439601341209525111677156824320346987768406380370328721488942753855697358006694504007190018445183191762763094167163667912368254318295408685296610958592411276859703319360998778448327035205853071367804048138931171969422199402208183520462762669928693574295949610683868227892793391736497749752317437926036722419132812893522190103950558837396586544794739242463944123993597590520935201186281339685771391921438497982860190184847997834554593771044514773700067103825270197135287168835039776453077779332441188581472340266194090550431776219326169330795759306344822523808102653212904917267096190790196633219311603775567580237139257235802772336973382183080034017128817739324798717874865755051172313165001363961403908523970048875998429117240520945858335454813445753327946878897323000034703066859472344033491397027879421330570180663872167783448238979345426772395158900745065077971942434237784198182992378772473409659241258755364699176089954441489926006011313766347283909507850742484622144410669533192106359455082138181792990157851183239913486066520100009185624099654377480301363238219889922409090870291165896296108642678743871731350088439778227322722153950436273067999047161477243275276115870853171871583704473778199479472121789070201645697084447789287098135779409794785461197436207345534961146121699673287725947737488578861504353403153133804128094474593282855579743772978440097936046937594220964155294906412055746712527913291618043927279025301628126989687717973802474129178460878597375474247931273865614109926701343371240073788163304174420726570971895974818251328120889727198549577551801156768175627663931489999992595629480607435992606943323585070255976862245999202667461177063545974223162449873604575206460510187071335508265767049215402661947893204509417621596244290911175592044701054685230279094751986130421224867808318673536440748315332536466428839118670342984968158286888967011425064886524568426647914761252691218393533484706398263484542410220064008766304808456330824406528725737763733626597563060817957676606398063733599544254770705396199382889684841261116854786656275115387396421114128612962270679181589355286955999406721393988447697443478746520497752374815927688403881295813489982114315564379022686150377942908282738996303651629391309098549133940389410974454730524222614077547265426199819862018268309955692204047385070820166105170700009693866197290016996023927830214740053508574695431803261670387767948850234343282436847227520766643265875486989654475952095221122862528284695675341217315051171497420513404933422349528226957682066631109605699963945093905518317311257940551361915768162406447837043936194688735686164846673976822360236394679986360978539289886713570919801136622070171819029277351108503663578626077891933113035554525607373020600599633090950118455711784608860728043257162599571361583246433179950025789639239259092943094715228137618639836652233481287112150654390661472112640995663199238210518332122671593956120699930314705137312212774758840111958824074089346235654977263832349638138605635908925774470561400481118922373942923823260752899717641566200687503069952917538236804287874123552973650025846590327337852481835927447141347881798907224318333445253263272185788897841972459037258177670052335615191294896774436546454430801260238255225518997479500924604585499531440519529249442398378396085596544102130421773830351625511997299373830434805473890970744464844825337337785941609460633266927434083626731503044481853405038549031913609779546678531265421742875588679380039178178578450730073522152255509504577532486274170022313127217273942138677989907793112718492936213773105331847250190744489604849941666660885904291579248118183393586820480097591718426223006354530975120370669460013975070258532922313853430201599954828825875472076300133023167396585398538589792108039287385223794216944251193463829185147195832411114886923525071568820455128591047694828733418554212356880501022351040815321392926885608661436957726740198894242734012162797996485814012514594629566343306828994179931500670001905580071893580960893293000120299432891698838753382262726959820358909513206099475238660682584982039680181988019356396583816972476809137018792509084358874523408086926577407040253593390089004903929539012140568088867040812103753648470294321308012988539044736120299721934189281059162755900189221141650932724718790044428140205870390507644694649941345778098753848844536069497302774546678830267884725657053762387006362731871591024314361882248490625607312274253824147997913423583983353767109459318065269547962776376813894975553422867230283611608948517656071073797517129817205030472371892181127062980570423634038778310192153588132689707152166511507581356579769881345385878341274670383364720267730749151057181946917818251385545006424729495157744342505801125584453471801026073123132327961867661771671405170931136402331181339522177020083960034980799032392170102028159131237088116350260310040364921005269306875510035925717923587718470500789806039406346176963559178566120180722808262867842546617859657205638703683386759644697915909208779922172388276220329417670231810361466079870136424964050563810552456639709638994398935861595291897988178292663391056215373886150708089607352711404196258887886071306936257811284228464106190448930335290773200782606683006861633706964547030106933647385920061963779266388937487734582269096195037955618780448622345920885368405418954437985149263847005819561333279432616845169600457299102234607433030555608534427144564892716310411951467055946758143748356733034554009138464427976224688442396429117575669132443114535456016904632766751560604714930084519380018307405736898660810296851154677155476984377861421531936133356819610995398674258265825030298842476794380815630188893482065120462696546421383753485191218720393751241171046751485485308641003285061024002206456410716855093178298195862860617054281046690888064739054194714052966164714030131756600742147899651936211766550475611861354085628076895884890222075734348656253500864279681351611523563162567450186608781009520928389350350143845887762592985303270060492167335845289517491494955540015898866188713496816026023829036509646258827888587233418669224246589766537266323468558553411436704584090125580355558458348284810548880605314486571211008760519452434065553772864903291236693575125883409082641657475600572207394732653375274172787749143116418011178248278796323435368452021316248005187136348606438135516014899419755301312018948149511391398475010061447536814278002686584849987250044108058762122951348992569206579087037885363898814576309180388166758725515943550532110474107323178625901204904971467014447918043402042058879033277624687970230355819998083501639766162796756991520213444191842291852705165621632008569594746743482850014441834362350313154833098671802001743288850809072521906927072909848424886614556801411651646157595766079444065282564832666675812370696069125679072854051171328121759720083368423624473026776884424344744416722826248168945570394857640836738337281468674301765575191902930688898694443263730071211943261659305026247545497643705901531496582133655444623760802693200571467402627676750885129004065773692849557083152305539491137071604153740967044278555750332245889135946522247649189475570561824059175758596769632507244266441085514737428047257775307656722464755529423647475755159302254275000780206165658840241590712224801270225644377614294984737298043951415016070180632839523210560997629618474189231500883767262253544869854451604793343962006526605460167659715458070020926300490378934758168337708326489700654998103226053435605620308018483099334233575609245171844959278484694269156740347470757799723710398554428544941327355098747259342217053170259715922848449251006229868147042391519843585587568599325058778204049988002081476760041031175494813293635235040665742208289441013148897264019075439244475850836443896892096108838527973722124503875092299827392210789719119156963920575353227364533061640908730896328313447479759830142420507664572641508011962246483572369364256925988986825917410810700546901507285682843049319240508637469241964723949248907839662103173861921394000195406297466604150608830701605793837596876697075504525562636959143293493703189386897791118118851264000216006133608121566989341678963703956995239249063294363093114966230127313616941166061609301103809114419830345523912222767381390732936967534362550237496742978713883101174012686479676089285426134809362795445508572925426939499312902514044312464980084096010684715612069787146312368850705770125069815039938119515430236526077719445494230374267320218493933411808701253161263103316769730066357355926814378450183719731390177002476786578541916462831799386787821311453113899554310222963834787682330645418593463560602671903485398104363597101618253039615226067881372453165024832882606980302406549192432276750665302691662833966199415098055305673534559916391676173217650065308392321614980242015508687038961298765341897389930101607260079246978191012407296647386080252878758508269737943167413065418794072119618056852302342571672856004015511168553733268978211295973397769772273830264995043618304639525905515895289553605621208671201802932442306309315854351827865642600766721927385835838069545291277910946661046359954970373144719000319039648864344414175028292163760407635909783956123627399782986998118887164944024410170658180361459512698319071924976167211763363634570766673684314699061817901416420799303885630468894742731175009965673806690241650741118665031345377277954220885499945070581988315777418622495279217920915486899531809291550838740243452067456683907304889054750374249051480473362096938518436104991804632634549963043582922717187361665053989350698437983196505775960765443824149055344137045456073011864941996385830342065172896725877269020343526213224888399246377875421125700516156394280153717207232587939076249602760078807004704335026570089765026647850073144600018034096874820216017969955281925289016647650630758272412272020625155903832876264728334750217980123670655110300088845631777350622282410359308748665489803449273172708379179360654390599724262343591136011958154302593993646210365772814098045944327142952820137116177184569358834334393416888867648276619802239830906230386545010647129496870057353326028793551991412845274946393328691273312263880254918793288021465571694997861039230364948975659191175240538891605618475732553776547088376780177734611466443920086383043236732382736751686445545578815733674970308317684260785850745894551217422913572814478286222716003249780078404061533555733770234200242290538472415208227622959688383107027825918333598490485615752976343890144798968891091419349152703965427984699759477899290430989788904282690623508111836116425767565412484884635534143765672590050791165400373954293064415288495201369604701484209877373632002484947645162138590828069077926687578147199782091741082507802156641153050300946652790679769145953002733646254705762659924306906440000442850986011506981491867074924018502269073463951361512094534968100031419506159154655920254060234854795851557383698761488798741115631794697766476960855507705101007732054250756226277865724359455370087044135282677204119297909715256951177573355575184908060279664019589546263904111555540164504660718386405276379215444137393881523375818726239055726703106789444635049469062591310729119127228268674466873762821872352372816951303000665599217643061366523433974964326118750072276931422694558241702220065043081266640431125159974606111950673500593827165341627027449818530162427368988434695143855759662832830326861693896411444053100984521124800335064311923702728363656790135925716480092439472841657101150709699214592564101644109409099515631404807330748617974610808210244711563083707539117482506136399836284007243315713023358161257014099703475146315943587552711830511575616204968463746895557362386727185441153374355070379830169339956819082622943556201831729502888938552661113323127379131701125345079432108387934698349858164442153875298727250455316276749457178008041836742688940585193719108421494761333812576415765364703069956492382019490272790173743306348501085659035499239737182510702497526947909362586446478260016631349074473536563097926922569190421961016978569937946509929904910602220052227573340937997613314486425577791792331167495998014812409527355151261538170433795670802167047535886055376498730884692521610102445370128148606824586151594873711335119893431426876682541882498208152212610086651966711740550822735078751824170335110699708107578469703055790526800809079979023913879607508373465858477877269163336953770823670483389241523203876837604009886336477899773355165308120754878773763632054243558706206173948770539645781278894206101683729319993979593962841974769628876691888655769768436766145855087008828376038709357328287894274353901420709882170352225983831650743218962881326020264768868005689200733301548631228987601896448519640409423808368081596055893956206023215376600163684190004703661519690448175390082805260727240757030694296516776654742162508918444569912953867029078600492461383045032576256034213315484515467204141935826167779739783622279745770233080784634848739272196859023068982024451868183357224983100622266141522016734401135571002143825462395172417588584362606432659814689780096403801313510131910051502120740148139109493908629901461816683309358405102370276565580673565269538248135346486516917165255427099919860777147584877969852565212267380198859747365653770662864622307893597668243379839597725955962878656104454496648491914954846064701077678280627070463343337427997865492465843668923731634495749599881559050593746771136817199833688457935618500945888138264841389155413627999295656465223681162377086250625402053000479500962763307359169471089017171236381596335820518078955595386389919251831980840335364960873918293146265318119657005572875217258088980584705891014924864385625749079929708307802812522903674816994206541539915144279249879850888040637317927217616125710837305545446639280912080125102921720266084168090168121409601704603834080485777719863170865279067819935330011314676726467093846409961874839717369662535451916406480469935067363790924024406143638823666536558638194988981169932023172326596642617060729887653743687672320464976149068893204730206014651437685170549708663334708033338405820572747499889913073786135783802504044805582025140847660392237059509179116889423318895542068990480269474213312528625897936776749490975929413188922467510796230460323548714243675232741218242358109135826862022645666473540764895160249230574435673542234981175873130633931176471931786888061558361986498944924480928304227934082500328829263744687601351039564372642441708340814032160320255468978444732948336681428430085416107605176071745080571673563421411791397631078142457496947314015533802733932898550377199559087259446221694586569775238032512587453871150919986056756679751628585887841671008196278112640753748844061636209488528831886592144060078595595257176236810193625306716200007704469012280249809706249652361310498678957821758740434074097478841156442558817589549732575197545943741280918726476133177861955208789391449736984148136200889028488707016967896570570705051322781361185427316130487009480162837233379185417203577477451432985334826586828888408470267882725011916005076811794573474643474349876591798453543315344110588576177715567386873700994034117051495454168359655269776095708892449789725532033823791769757903629049547196021605639754688899620513500131993112866912650329988897657171701294087818357892610619057034268135585973726980386965330428702666970283698689680415472869059839755461518694070712209778421788779730444373890489348085946048869784616931281111250069526688354812020483654908875222887237316311395544358333060463474683905104549421761962396979396150666220559052812476554983592119235230294141080707204465320531481496348824697068366929776723585466981995008964926647616873841716650090038167676095476408020019006810124039732853582487034683370486593052039043632894866731286829515005318743221905906696493974526969748512397390310893502525362924877997445799890714645135203474676959974549914004681560504022405563450981674154190465219916626681843312412491027016746062503409427554658324026320833732570378471355033465858958523364644017525366833377376837794469434134153658589269513449226429134006482002443709386099925789189760863050095577908692123712939755665215805296055112448641531400498854014815188122490931224865694419214003559571930322678234113073775165517433369348554799257798725545026483766101411528127076743868196479590709778305073704038503233865369371823329879635928973825516658356953767135118359817684355726478626823856426054816152837469172062513167712719838218203453612254788838988175467536636595844501196479374890534189234669594859066548839145185850979041154511363339657369921717790966482731064149043133065638447451891173939920054089078899575290387479494668955542437275132249563575600608853666112884281638922304852699248149451239764352488369780820646368922140660030689758143037121443894672246597260458309525742961474333664150225459716329678657146685226701312361726146714800861722533481396608238443517531210258317216669433275334934757253970343756419718886689665038366401081247544632524872251812922374960190065221347601988771466585947457534869978379674133318950256112920412087363722849800917315418224471410596688531382403000332907084518071075485020622602470897459560060809885645103529073443963815469514649030994030072995602253485613089964091368976340945377477397139631997883258897257794798628150992898865946064012869388720998478530494717099939359721981946338370151752684997943226576303683023623278634269094065827284641093102682061785940090432391460823096119576043282897965572444557628566847760433875828923949321991256167628664280887464022722236847247749636800800280977495756522208420602138555363895785182225053864086699726225916069357590768916565891740739681003406617033281081389046774777304046616429407702114001610947336965289175647261984156399541879290943946000850441436063847805444244712985475719614376285798459688620264518689494841279630462125752982473236946184100645906799999831302858049245323179314539548613297298501765417712460091418143762581749511914732206091454838148697019477781385084374113798740762527320817665227128379399390382280444452126646129399701379418774885826375311210918342671887823082013063768358561209966985248087370569607275489326128630743310057622325528700622915129639274735264232160837809733118766142509773406983598832590852559829325317460486602783403880449006251063680995637124969026880652467616137654096314634260838329092167741136765796528270138207363322632757397703079529151014238743670089206488499727971356152571596531344583824915428592477353799685234359766771338545148782013740222467748450862419031482560103286013431123852554421071316009201778420592493002231256900804671981802628447020397644965649401098675934395781465771085079329295941589640710601670205147918176178562429927875013635855348084866911769315880399073237836493338299521105617137630518105306927926935461763275989999055960072133448807576339183184276298307363082711610430187520249642862288060681393866383397433483675569838923056216103472282955865483055979690650964835346473468202643164379821177009795761223222647768717451801677252246869707159732609527291308572327426360953073557896218045369851455538304128853444395620750176768117881583602913181033371320856136175936397789444915726227210725612294172817122275189942769248572977933976506213236409654317528147312959522430425212814542740992416183730925314531191612959248657931818854076073214734674881355767037758426385758692032801947322154421857271173887769091610105630312468450031552803729899761337824355097873379261809353968227367119057156009602046534111475385115905327180183035155851760782208602178583081960046689114412451583721506936708927879429201811435723545619748324751729211904714841632896585758776921487667457353891470166841175223723759697872892786206489097358397024448776469777316846045064053298919353485547536550723429491367347880626937787434011558391668263287294851959417025315517265322527989239576831919069345915223827143002407319473298083228957530454309354098245619360179987388761751526544589906627114985802459547171682079946020404641084032534793018964240564315308144909889258142877809270155302097536465610724233821342003117242060832831052942115441939925028655436803662267615822352889810012800806067562931959774242124597227332346824078519356581653120598015263837452472818987439677916199449784100089002116164214701322014541787344650327488176487678333398083908715014292669465982706197828305401165173603814155096248286885768692165968835783460736580455275399637351877906591190331973500704331670143387199835936530382196506117497162425635425460083430886571291431949300401925147183881181094548548089497231671564017947769481615915485381804182421741560828010692923225020174728268642512276400649255300997532309622960818970565716101463976872362887363672028536912199803404355904828439158948016752378836345933928180754916392483540202786438914453712531581352479533198074945037711618094019859019207087512583334035228103678307390038150481203946793606807961744184308487193701329992473241585671806487482518538583349777806037740227365364474135076459183184818107439610491852301445104162885862661797462276504810421025107635191485538886372960147134527900915597680690450136482581268964436136968771461811148907675086383678347100400726898712258837017464561653214891812846607194973578100012305372360550938668208377259515675892569159889911190454041957226698518180518217340365664197091341445754262360762287818301937853718577622012409322911592600593120875515471694297192576727390829415952983088246072644108424451895689251190247549801027969649052597142891486498352490056497730764358749441191830843551927476226285073441512256733947387530970660628990007023845274274473454080440191464204530950487756509053987751170287049571448874120182618630935161169290350450801522420705129834778802359536622340863656641364978221331989378025675884337779927960837680469014218090409765638529529056973847685234483485576181266383825386399231833517026924727721166556133184474829941374589097461524425824172248471707535588857348901433374711192898629626615429877414660904134405133440957876569350426867741510942670076513340223558690006252719125046389356618421842102947330151423123064079175710982452347766705601329726010305871996571919534076405109796804822217631451621840406980751370082942220010330431136529567718185320566603709802096777922209447180435956153574333034968945757365017674992972665501166583038760327377016856780766385063186728883331491819281010327072099755752655292655534849368085358929474916645318402440814175654218596913679311205114091346596446894868000793373182401330193245689945105719331732329532263799942459163627706366253072204386517244921451199726420521151483208797024511864278324862143446985522730865262848091106828414217526264663815745060316874427315584640182469914905808290966004601387436009394346616047445904994747504856454294648437071478832279001373676536708967786473778595052893184748046836817489679135484541895604198687502931500006166639679187623619643978120568301646981180721411758150468472551386159232615941270804546815606812826060692839896866468976615080980966590907129156731023550259023305773539628684547010575358147348329782438731743651406144910978613924654837917153558718775659741099637620242409966721228554268034924849501471853528182316233720773093655278727551490256706748396512692503942417974315931206713158904127937722826764909695802304083364151748483024798775979314595066540646433879433473696293279066327767875883392344598156417801263193267306677146914760235326694428278763971998355224942689623491646283682333167177968958838423986064496473238120252522384292208946358505855016680891785245927724795832750176994539167785728564748699043043348318204354533447851516128432007769875929728754041128389688765911368521895774491249078514585921570047137210219399290701429262560329877503793053240115642044772005433518661378326167235443764020632529452043188739732302399260459790913397119706522220345525217171905240452944903114172626607991489971285304532859361243534130846923463763697041268116824480272569387208870089493875169799632820994844956106295139093907357018026034326310507851797460382711909992829581185778156396305229349014414346997481540696197294151235518622164533363823616433516478533230968194103239020506642218474924409873058298214953215477794512105136167895629072195176278706907305128583466186400022960530155065269964577669959136626150809599035363999751937870329297061734943000555423707193255773760721159341921750850582918491336281825098282288299064198040316104484226130908536668887166083245096181655824103246683554443847074603821836821779703296894468424934511939668986511147565263748307731582662976344542704354280933555084428849137785025444016065550983428022462661529106841047257999671067290943241352762414614520273286286892222114219148402182220017964123296496411093346702323131904082511207589785738956934563153565236817295509835516302484538942316556268790656982582736694860340197420327224746749346412232940392118667660003870739367549755557613165046696695310411152848845798638033783912654476270569818729534313561076231635608908285236107878370139888683293701459073473154380069253535765720067535488406154112427264173661593102033942822831188508878646541858350707382840019840252816521057429470227439723247302256454851856513467672304137987496293681988016368920979169112142993519000382552229558764731598608417771678181937645604040507907119897888178287533592413730266444094533146429716596192609462359184512130160163628228822181889000237029383149586526499240464838856715881006984263101887270771638584392415490743544319116955863424760689429019928467785795400389391002184499171986508762328058491621151834558450166624941004906553889981377657858745971706981270557333105276659156907842297082337929947633280585678891047551434675156273972096735093709052201686074338191878354746076114896562749008443480420770821428046418236776228780959297105104786344815931462339032078714425049531519949074939185214970268195185894223005624427871407778956060001377346008980162540813011015538685169256714711438576748637690166339318414809901810241314337541616912756678919489296822651547326133287650295787420371530422181872291392028965669902676620780743909999884879562526430573277664383625850414525049873338479943505151378293430087834953334261075441902434756432274395988020997936690188307497649921526134666699898117379494036212663805104308639875578859160341844840665075294620546609928633413846283452136675447050830158471196151282307183065010677895919790537203476789399041186401562987082009390576821285905052142292721282112646886292344218618063427459150735528647311520345544389239265421361230501398032205377252404101795593833230758394690373778282306197249542166344398244964584102305747471437960014038801326571696119738967135865427485795439801349067548791281821564085632629493922959239756378233316223812399719106974405686907810273302517980402710895142473951072354085024793518320144941847225105241261136927081893614571319814135674934925086815235120876620527875285898933133618191103447405990864826795937634217225296927132884208915121114575881465237264588306105203804941665362376730266871316321238079595470854430463312863573454237003612655222465405354565583605269030993290237349816575570781237976430638622753643562562783384083424249758605047646258050601283188810389290519116836579315097471961360272813046656442558261601655644000099497786046069032010971494709694883903477960262042927836683590564074052608419043639811366718903481927477606871171819601074698246019552090420402577224822429505319534382166081118365346415054638958786120286834252942023707652820290024655646175797124020478966698802169572653908605771937807768178315357625724742085474126513797141080158733934104675108289619824184668825643731560718198170417693904560441734918541717226259974052066179550977199894857926732012279699290883700302660024443577061819950930113488278379464275035353058253585349609836209416622364199434151470822289168232582319952497683701675132249311825084443027509764640692521975401298731088416846009333048155710333991398141709036076252972475627028347600696183844191124269288503208440671976430723578448116912439708942149810268160550686054857798196738870707481762058737272143060412929534023163698064873705840634940613573598312737746906935428836907949690480711536712223829498737317588851064279323404135359031507792603718541908166749896008105630933896370269205276127546691703115148332214106527498684535398238379693245862858293487505728485631642154441409852914699339824201395042088034506126458970809792956347901631012497399276693804230331990252380198786730712980317093017672348393758646348984160715992940858933683541787359221341742638712141792623476699326245515149745267063558895662737687830789101147051927890729333325619302039572021353171087781657957215936788500148826005403349409804737784882966286154380136290611487142900925152633314490959843529351322789536089229073738636787757233472953385493389640459383909034785276103206791263020210498964027756543447599593873976798451310873315917665263611050054727820120518078029151957991183804731352225881124590615824766376292294063458697796217668533055701473041255639696571056176591219115479121041163856965554046875805739334093735152290184074679112109095498724025914303557634037780407456731889633658217599348733718530355504868239280954735621226449725286444315452646310824477932693304167469024692082199512674534976427172560121256301494174474150453656666973671209152614783416716405889873641383940189478870313320039940911830894903765881888993614464652884886477728364169270265795230235082652672050657866516099986432468670445636925477920393732221624665181493207745577213935075611384872705716949418060529991158501404615786963424384679635743170815866600041108952050930656283754579461084100263872819958560404142184923925317111708137479315044791980353989084818343843750054801579700934458851019383163721423134470890444994245052372188304986501971239413414579035047411939772998728572835766846114195506312883187403921221613530833065636568860360633684534957973250285074161899095910684637853313231471418793178798942597433788536590042840117933168930323100100190432942577413257729436002171613428753710188102850703207449239781599623272134274720198167723059524774100082391616757101896138994531168564838940697272833964027391825349793386223285885492497170226413073159047481790148684445030003339060039318551997133758293711634384251003960768528872101839463652032784241049492682028796503910788903464018866369613906451292875697017332772530791854474300402629906404388324245824236064708985224460017601105972044062072779272353886594209424505208977808045595909648406641494464617074221164282510904965930157073572204536455636917404309564024802349887838144326600499530931344473182417522292110473503927038580914743815158968847480341795838721181667313441593819033484807528386632918789050837619128344354325225404749331769702989927865854767747203539105338500209720449836505551432351173500291923543640514353529351608990301067658132670781875064658679214033675886840590646171414814056052939729777024942042897282058224256855568000377861219611223811109167845492707731112146157196987571707291242836764492930514711508605306473412217865094860205294537322145475723682661303369942819495698879135718867891287751168397429383774897395394772104272503224457848985015183713759860695522565246835310153918619297681095767945555020516562134003881738464046460362890737061693063897775415537203659718142693533559504234536739582380914068704065389099907121445638440951999254221282829665273396387260142930427430984404259301370406378232499780669145556619381886911901693158725442122169103927645790318483571107701624445699213125997931250959763247163257355703884530595419116425044490500323603565431607786727045465391826551891310224916083620309784216834654195509828464509899289590783367136527119546143875590890123258730820849808440805704253903734701238663992396329184842937421814438481842586324969425113524501296731242107940482238062525617086365625200600326691674291201850716011601974748476113432593739075208456089966813325621820847288495568848605748821754969512704388194457900894447197105436048443604571659726451622276164069773458130053269736497299462848767481730051469095658222451583089716566788612189614915990529090126612422282080554713262058494580124071836855639537306920040694709354151728336257254488425041107896789235052947593865949181027868202247965773587516816428950084461673283119466152347224897951284238249137189522118489868293096850392211399466752218850554533913835394487169508493383423228354547582353679024339723110597150357297388949795143920743666275397420217451772541628941285339158649976996609810541394200054048757625297108925270863339051246711797397939176446163727650116060346809140968165723476017789471682548218087031511828411170189952145344267740021268520446181230176068282486242389925213631500696436848800140827233788461531873750137169962746221671181147662882960329016291862243713448402716785292330731898246409142380705463179197275884152695012482601096862739481383009431207888208233917950637394606370940775068103596688492071580745884539821947025296130030825861165587632778066240426112263565705611524172529793750927974052640656126021124055414935445522347731085019486209452250906431508309484980237807791636357783525308485642846534693319142327824118309283849853854246442493157818471985625398996072852678473320245303125107227802313558856213688023651510068138965240780552590174590885715367830954429967762451136238044653600570864987817902391320143602025191812505496769849553115977501651580251050725445164225263913431016538951879469556314195165808677663803187327404046313614608047053492297840331093093890552843365540318547991859470033250337326793396427673836687131686382926215279534975530673826298759283392778596895043566645958324880489773407500945153620500156599677731292203216108604133156418166893300273797736180874511269506177767782140451844724371807450751085049831193492531177002219293307359264579242816233008292042112102867948135291227210212754071914419900159654143436971344430819043730877812818886554674905238914461637171324308842282014117419765158754200951382047620508139581928132824449483411825705302647636071278068562704111121795525767187486762757724097649905362816034038294164395483452767418268984685118015414650808132907702753038061507397405782430922064874681785350507319868360542075515938615235376015385347518349774034790656909301222966617755780784433777741125749259914100648322880351916868284363348776662681113446090207461990925359570782291640744984964009769617755914211387076347147399321683377027513807785254929329148137208546267265084378602667266692070276159291178769647635156571676647309110203535276857746664306617910000576797127756607352213993624627922345421064071211270156319963320476748801540240711560767934000758648688659566893883835141467879854223809408989230582217181708184176186733156283269143326560204148481705641991554194377324698309846361880149178990934268294341665681077867535915423402750801208804577221276055696225537871519649167826691218063192167911210967206843717400962746199445760411666067697737331277516139328312427413989728059764741595693263885400594966592493435286793619225576879139501447340152619683719897286315768039187426809935885652833222224052570372276208948310993052398780780757005028650601980826873169840640991989739303456452770052023902915889085970822718090615319335897849630284823147233835229092091573114748622259103926595415979627537974129501467928176360956486928555446287378211928251160237648032246726300478482587028530650725557016471939050438627824754198590444550852380488305947970150379469143122765139484567667471057082473157051882202143023000947289156260764098050128416967967111649906643458422025641960204563600690349127044448337604513470321439137753804631482241266383529494129713244684642976781015393528109659361674763504763407127094150180235403934463908342527055896656257975621966834833408417666523618394480393297043430925209221562399444495162955021418489140926802291842093825307295185063860570264271249976702052096017766826469726592725577889965761568724044146037254098896752478118948416398264181703114151825789080876486851283783088982216879413888623447343908997708935724336963686502885002748888753364195779045729257917581870374495560808318876947851013944282610965524888623075058521783505972221530440744602400167375076721343623444222882834163820474750730583156698443477425242642863139400488053586037495012664385238671856980741669775089241470562217509174934987115885646220898286000772899008700664967022766056872435875484002017775716005441770678073563372199680402606860277247314061178467067647263939750248397879424272540590743927203617672543084366296775418301682607415836507291256704739510421420672435033887242645827403520828282157640493224621514784372421337832274716980184635031192499527142344925030069037801838608178289642716038780043478793825765543352697141378785932183088111969445119117332452208268343211356026096241235357430765956085064354091980472300165576947479635078486376015944869312250431436883685725912942971611324556742158799258895923120726932361484479126743782080168841234717675187807195393469036507973985155080376191575588639586231117939656282576481945660745554716632078332824977881304846533718577182118049170502389936955791759924617502543742865926907494347892037962327828937599877411607278286247943756538542574150845324523952196237268815920545331540711722727721448629456823905359241711241952448293996593659430679689217070784463762966316923346673020640243806890726280190120261530839848546984331229641255784765359530918882963856673873161757430997205783339688852832804674274576310239052759149938051915294440352991820176751354195686423515763629916965026602673159857622760903196533138489680753134797644951376746872116216706406350722629750965144348809250253880329339365201387829413949394681689669379236947572761812647252875896784491241098910017955504475656462387386292904078127625447687314354886958246218205935186237519840902978176617431026621689795729998488832048247083738384935110992388677473392790117676843690783570269094341955025331946343705754069491829765910274773191601767979826914317211605050244908116789352353463707410347307714795629159469521877600205964766237704494755567571151666951288426768702380668000314062549322158545883675168981318717680678362287394054516800454970509231113777382530224198888318264159372205145373255365789622207415020791509258202040685809282599686857058352211171985894549288340939369785869367923018028695281604814780863009106700875577830570135875663480762773123556231926357717560427128047256973109380349317990310041478452583162614126123960576350759140629369215998407083055157783496527149830099089014881155319332873981180141670064546050847225461035201199008547934849251340991635275583826876623691513355996983328962962968942189085164556264796419153995555998659492402784011641967903823378815581888509357279775172814170807375654671472855198159641490953275386807064853404292921958819685197887396121161066041631565815123481403262022501392084413643734914650144764389715773967809741615858477334078452787188677465954015856461269274010363683257246609649025324419054433885704306637003690534249074166522717373925161983557517425296061398094192257137444806716978843365645710275327268714799697654211205206936767686542014215552820090491991078627747254262137910763426892295008637971000887019073600415322699595688277416779502128013664104494285158242625431304034052941840476284661928159075887745688995861126476644467950925696714082765606022145652450270346931560967438346450210050491836374189120232503698529007380058494272502131837668905357032087026386293797313869204358041033522280819937665188382128994771846007540330761519725210628164084897894644281882075100827563083644231200814846819586041325899315215282103533601014457870834234207397453685471347907860640156601173949395079550563948063075396288205511973530167857606074137661169721530225158925665685797497461801757269517526330186522513273121170778015334725180498758048729874409754741025499092161488516964530911259669864850459608899274077204316739366062421906951559312594969394706706261202341291824655412423552025238536231209075139469894665904159371892130414940120807715077486753179307885736402368659220845494270488587047542715905749392603872634003320602211861549041747936333848698861680192337866141904945734567883628337769043400786510667523734796967232525194776042963636771533650531539302487199807901615380497066439584646016076858821187284467876064494199576519759730847499022491278751118252809234459705197881771700479687712524025295279377911207678513926350142431483821577301660039097813548984210539580558270178595529336618960043499145331510396057194187317662312929310023920154316178343444356856321399101750613721928735417265255790493832489761599895834976104376105743942085642596037122670352914618970015721799021536713946570805893532127978246273138897677451894019597859465281436239903552696653202628115388642221333151144228792195052968599535379194425707009979105064647573100681988855073418002682781589652326480991856010508108362508511686386410138548876815695434032420256825979451768159439332281556529962434130881095661561346140267259677698723853281025589379331944455147757958897266205228684610011495830144264710578258029866777168480830237472022185269433513780954587934430929947116907931986882347812829427387793797657160287300113873545693483333567278321673786452857593633952717278301149053751590771181137322953846905001910083646612013561700641415536101876947587104854320331658110335897516128495177661214793035420197632256047562547235037476702610089914812253205675518972196681927713719117206267120634465333045880907277551007724308158062871577377074816990245138407409373855699759807308508071733415444687336218504507758362077177159507405371486998576131586519945997003901251770910857394426404439500573256037689855799882728804957871842272476186094674219789681912828824847139239471293656388394541015574872656473679954557308707460537198739462291823447118760386131795439480310435076060823412230061639524666790601086397745736918867485794964520268765064324975516176023684875795086063680139550981064921379666557932064940655774816678328662812932451162080837710654413483467487523417989143334911321281641692183445964890114462572314960727504487114061046187710930232194381725841036322380166387003616508887201872171442045399750564923447712633809899037576522937315452714872826076451486877717635616880717962407355018577837248085226787276393715028600519386964681004143274433621744741103767258909888782760304349384027290167537958090857890156745842705428398928293450848998244458508965518313952466008960525966628987477650918401050389442444245418296721246182282001749382206849704661692183772470198533537184959470182984601921813878324480262743632195304448592581413567228931469681867462699026853680383234321237277236554035396578103945582802760365913242607236788083034926043641231869227704947035318549303344896324974361262254988754188638926247248831648129215290405717169715870141943521206494466052937517523680539724608041824159791908387182406780460465885438191946313975547073856353974525952892186183222881742456497183539399065960262546694299422702374840992640580669673428120963048340413985421974866534809213414931775964571886937437667204192026107755263526417607186136710460723226995648857259075274932899140828923638544786300324545445173975410218453217294496616454426944317144291571446548941760339502544836927358794756702268575753554734362556777305782561367576788271363844462963425522689218219624981969734104867645677564826133742441362531267410069535370006402131738742671894940087469134844026755597522069790768188506368409993497710252947150366929754560546445804856836549130577423797774379472579139115820833690603056624473693209204109069322872470044498642596929877699424907588561133648298940828885074856736470921362009013661776494592264663983381298274038605254244550349392702733470022966626345188912010300170519759066448827460609205640129844539854301031237888138596181084807999266430296533230600791523607011707721116638409491819445259667163912385902254227435534443644876839595184896701650301629971299771034142623385576733584214394048925785772822998916520210339954041971119770031047558320987771276996086292112068387339567235965817587736160437333038849608975985054925227942810490469683048674871484490010293923192807086129273790057133639186723471744308867855359597219727602712846437380131517714830468588891987243215165572326183031004887133647654764453638872157815485697329702048162074400136632376988123829118385411161744575713483815245731634593030325709420136430319439517457096750082276135721950137152424316738924218335463738844152177874662826607433992107474765997679549519201114688540887240231938790546168631720640477266791276226350849617778260635591324406099730192418863348410395896747882126979433761530354486625143020827909495381769209707507266745557003086710912121900860452297238754644551900281161404456426776478812482135000629042005177840212071019592429109332978898445394788731619465993310357372466752263331817568701574464049351171711334205843843301181764657252493911957381824036704729237833903413740592528748937535059751825310938804368877852910058729123056421630511207746919948983404538370346856012515880165385986030791339009323857446008795309689255500902750583744096080271040976084904228119067176768878607234061149971212670338011046631904195983548266472578307973285800782667921408579941314070342461798793078036319862180977691025746621123109249634981185722800430937010033397829797458102451035524311410040625986468687331636402607924487806736813281375712072341250061182744283928804488752895283604202675686545448594107806616057196850736079099070351428642263131004017780889291155343729869376190757211861845210293339071917935308578272525751165589957620519348387237550785066377002448459127592172775266357755759493767789003652974488149692496679444594556048839924490230245301736755608544656254847668182477557414310951199874846278284993213232636592077026166441063631582049224369359788687323098290332894621403635599637767763621971758523014861722339118428377529577828194644415612454823451697073532066589329229396970672278536558084422596358779117792384806852093958844277884154586145528525789656819263081563294055138990252056018394316752887914273126716529409891199977387933002749360624954259938104013965594552918121162960920450161751793755866684298894902020425974480616375347010839121224036841715658315014317063548719201111724054889503731647044850730434424454825895491013975541891060071084288376239412835428329167353528544598233377593329163747153643913635225092597611822095147737867482528906888370951509773228420652371583411504539356395739769634243292341374463404554635119054575723239569999853785053897623828609799201185902979792541025799161455133185167279846830965684721448433245144943003661230035429188091541784724130245314115430381263845622547510077961815377504891676562784337641816621887639519865165324242063361440823117976955277874817177458673535877959510228139320497021738511576675675629411499225128455855401627735119199065794427179203355644128379121461693781579030531698507108715190795485127765186232833141608605384183071367954632316500795674328777823573205834253097105797568977615208182502934129153453830847979177699060695693874188235430831521189146730282085741093365762588780670231987550521052196722812291795982070185027134282969926746323289626806634842587004573755762668752271355772416280148829303068264618204955329167006646896257611430366737228474498158651487699020733426008783681536298172968748854463650568102217147381854814226263138299843486828230146064611928698847123403222337869907259872587631533696191661904933830531430743567017268813950418821926534184652036908834000263707444128452502212788755047811451632065799532193634063292568282312973223115696347159085318203981430060306273298196293595361840694379426521134461177510850251136769253494874889941030498306672226621262104445649921245320592387663912720890127014662453638297035798922103790230570094133771964775647731163658819238357999706224149508291381927465836390830612479229280291509378328165476467805475132927354247563823304974072479504175096075065281672518785531944740373412308344809806073133485947029885983157240894499436897177774298697761998579285947396770256897722908693881204596025033582575208328341996695558251789731683925587244061510140451089461652442674262286319539087392962301628270172504163203085291147178368767951679070552390352131992220106572628362924283008961280076760709159229553988418835702624827620175655461933415727353894518872022196874800514434489866651471844222545160951234132282417440897628165505311129676987803377954421515465583227323586847039166851901767894871646671861594867202022210049682826474679135410262592401388256511585474464032494275995394061111260727828952961710417803822958856293684088721763092752056099978810580765359743795138597842060101271722189096097759621867217073593048464923044896689935337052234386495322266094120478683884756729275897696403130005886193973032099089318809175264209122763583142403633298713001894378238531807666249803656036752555758456255864426112374861500047824663985987200130992551939712968872666358843590751536346525230380778178979260806438477593706356070533005734188208913843073737668697934298962602952425834753655042132612233108994292455436972450154922133922119162921427112896289487590805746468134348468182237884979989318967737744384023819701199430484440943304884451230317658039586435545637502120660244502136155784737853231366449004059816282024785628724746423234030065537968846699142593095904542939070372555213080734717434018121696684582333768739333402568813099671457980687897978579512282234670103966948149115607339682595185881673558305984370283651646148939359324056097163498024949701950873213468304598443564074461831253375995346818251796096150804324635270710528240333300647299540706884768928770155845247100074662875974461404019742948928795352122252492496138484809572880978551017259524825014008575309010116439467438881788067698953416432104554369924308240761535499114399894240293827992227626206073977711322705210637172729457194552112201149913576750582517417353431120107533288908506295749654150696638356058859555652559849817611346149666288514865640522892127757799707681142657862964763637571582575531752486307649956371815978244266128135817351255568904337267312449715599896906938825418169029895548456706326762216319574726737185079854618126404447885248727635464612039090726901607706974440975055153841583639306371602270885912235818525565896094543948366580375461725202446568221795573982722429914152979109594750359901584800063234524182199201473189463121894869667829214484554969591891359330878711957374773365618078783193972272162662388819545105379317297010250663227567284476782744709660995719029709163164182188843535290429939212985670710027016278726082818112374210818045416581509333757678127494190458820733260779017831528119351822679287487494308313247338145453194269577954235589901925857557090566797142054413918694847964668561187680301382003603380000433350876055225679739800495785465959977607778680865794552704613170839308475079910492599231029120927591110110599483970084837350066992313905341229975632718962197085615019999740109090523312884129704823774335657644972110178208359213082364725741047803495612118884471666904575959117219941315715706599617084222182470935115225711490780519165659277988406675989583121559004614795390723703133998386058110447585631239016906038128326561675765070883827490147350968229239162323428237671127315220675967731744436548638427790878109040366758801397833611443438409307326815464164442489285619584420670004221319633100482538297000163907099377243928339512996947371793139890623527285857020549459501945187312979155587732079569428072734148207961013747269701381595562821377430017214399120285461652867042704293412945019209638431428394995875745002735516490737692905685046263441022462250803363050240865886222523684687301208196000087447129513260052755661466812409852004875940165371419125680130502617573310170512186225844987891908682330819541896723850221818867217252472770183026162368210444965194737921680341282211098191363524782133310314877273591000452110048440301203711201681117039736131002481613539551031123342816621725390141841114570900960159048585865967043170512643588717201609235856882357639913237657232043465278472672432134151358743480366285209566811094685602880849022725490445615297844789368103210048547027305679055103149893036257953359981663803220983729177290238769910065489419431390279956681979654522358412022096620821662919840047948391900554649633797902396698416317975136415232072246386123117706373299661831940189604155850798277630253362098248428749514572651109325618834399391951754454721559063417751087668852344868857509679434532883224487252611390514862977485080326017619902446745667644370528296009773272958086579498720088560010765009524446021658618222558791915586533035774981100997207257225748902037698867733422038985104887925757456348744203230459362909772716969654616172659863079586231268305534158279892376327490394884779522338377815492286526821977372122241688669335614232726311454913721913224665414363830735694005608891838811411637876449749413547320218487931027423302228095218901098162273877329925626014711749699032469566383449131083452492245753756341117310848388992410055042947986485725513888526789572081766243953039029136408497757912154790336816869870769300822445923724182643807093511723931074713666538743235185787641157307313372991548917084401953811424692080132465019772750926946596591205250446781589928578844527268001879770563801546828282636318746479290274536284806646929352246129240500186835360972913340979818227784554221668877758446782121510161151471101963035467750113304208803320788991182078817736902458830702052149105723666871364978460720573299334173899100196116973317234062353591382438324789674925199207131655363621050513894106296123875980813062574680618785543109185119422665099606683251573073381105685882191448024292928876224547648258571961202679750029400869908575735350136142658422216848090271768169409481110374375990453842799793210158737554660716809528740607270450801568078261026358273192539160380735410602786639185529741291522849703595413646375232143003200265804499908083788603607725274195170811095193236080272922587980206294099923209892684120696435877434608187019165103710767309674799436848900974980804622979001448277128501201084295521781353844633608145234316051407646316351511384668379590457316975803808626207096106079715530440224753731658051954333915750973258909870909549334773531833695150928930029133239741705155939089898865179216451570654894055348971171603965427834252201501109244075836901666257301895371017532248704797950509192929749927338285899673417679835729323371295276979010138073921807916885291198423951548754720232299798692406847034745030987020456707311423064630462334416522185357982561818138646495556184341303493896806061932435763987105917489429851634064257304564336482872610817707578231338381661004397806090969777049510581529962065137275256760816202881599857826355658486833938317739371905095886242616275886194378664969459059813602383745624306041313144819541574078187780096599904093613760668644274077435566550821187988352036964345922491186507543151792115783061033755329559547020454101334657220981339314342515936520117410128388559313996255556627065445055083169966202620120042084473115449161098047627269787581061471453333324559131284669589525543524797753843716704960254540562347356059151364819243965456732165596473620889713496511386104757711638605052608162906771632115454494823934759804613668978305126049230639359512108969058932158984695692335588664537924415431637110242034181766575485983948857846615591026769104303305264058026198426045090988542414326618092705203809248354521296079086127691976686100161811436740575740884084868029833197943563989307325440723261737554271502771071488312469600302194321859460642317539131759549751506437460408132076628549840441863865195435750243995201445397541676697318368886716794962184881155125093155622756339916188005452376366679855847817682045796746568629514204373096071302835845447907870804171807677808500942148940294347914597987313170755743990426586507693747311051947234473671881472877355978887925847921224566969477917513922191919762889227932095744320449776269964422584896070707334131257384834512790887798320445404754957051110410953669789157651653189358520338886880772797905785877441975589259959479411569988551321093432490506529251488353986750945503789787720461695270383877813760311793969520273637500862942489791025413150349666099235022637334685702292883764612705374069427395960969722326420559356778359296405322935294414679462292248955772344660805126451925334705931328070369651070453474137895604272340661903581357439625132129921852036182575824238424335668255496976357855663774684993844008482775416614509285339319506346957135105442662479044860987343898578829473982116557683284436447494406208906255799716424777055314428609959624709305855222596967939476436457548263449422407888835986819680266046809070281412150873549043653654047327518836074048341836119766624798551543145345928001459608106517112954734792002412585568645692833751483570965237674918731374593031851992362041976421994399088318377870577347362824628341532786716046822884850826328143316869132292851756400541520233499181750216419718472017459904602095776264130287734266773878889191516513514911365671868419464601510058760058427842073773367541618710116689192422757086623650306425211737014651620941437428686462593145435130210624753331321120832997459506014744197904302179338785898865210878598906765200035627317849293445177254606309637151578245570231409246678608841867085519617491707743736048956629521468410625210945843756400812853238070033036334652646404764194338099268494404479919096803672038062742060213230533987046727599607205356538673337668616940497725245360802332508414432384217837087516702515299826499929747671442040292344768541587324112289896349546886318986818023772588554614331285360122360865993025412963052037549365658692201354359271273487898984321061283057422961064662015834829934797386979255474202226247428206757181728895793376414002972340114915052188316674963160461154025057962730951715686340361775806494622051464873320089891701673523055305188496692421526517207740127570568722698601940164248459835324030080429670835026533871614008001696970741315945887108878804176880324571817692633394994011534731780298142453519267351472667175880015698919991488695222058016084304512164547503806678627740334779928059442719232083224341203697601686422043719109031235160762341168926920942625495683716436556582475738540715399384307341415096696259052872220018045894299431438269155431857751383214891031122353942704506690943581733604194011439340909097896223955239873308033292036209204099676717105203027601213711646291470095726799514148367783968133263679752980341477719073049831313443448399440038503908907408323992742995898101448259316920467661073056678404585243369286130349720492742122893373403164606444789658546318703839042888465861428116864250972647612105798663394581178208624852501105927675273523549699975893856499895952136481900604179256977522489919549019403473732383901733637703011287992545969299395967136964940215023863663268398868330284683209174210570878465382809106680859000611401029180686326243776714405435248670338302503300009275234436019971390139439147986652266555063590292207856327466110363438485974408767079646572865350048902089238788059187153709627488223944509595129160596559392333817047985009604820655912984371123867847424277955123221002069825300003778457171239499622045314971977939879148005142626564122447070336693278684527810550761355227317968333338904957289571281383661772995233776729276230093072268670386592600161369479070615379347282913762998063861357711418852301864384078291425633490201535852957028978404390227744797005603574803560781452834228999471396149335331969263156696929728259268342941966525457601144482641586400794768485494024924742538208652675464086539629352952925714161848048263270023609348216495980533077548528907075141676433240858706288291287854780160018780475121716840312478127535745205854440638336227069038056474486510782163409792403475221219094500747067603631016648603933872396737138621800228690617343471895642591981203664071476307005769882157428596708561215891702081311229316142282600712179395769711526120372820225339256236677790610303679042809020048436678492035452838324773099388879342723579405559561297475055132286665551415374612874996254408881049074614257387432009966915100997297608741696482836669562257512147808854938987753435700513174127587483873878695979909063799606803576598047564364747405095512763556957106369826336137153377569459176863846306325965314600201232560354722536725510823216665959518642770789738283563825470616195803718740116883551562145424557988052119962225310631534544295723041613163850288460970566999633631340846155596689451696006315826284491788992659976735868352796514661888900702938396386429241410354975340644506528113607970087145148558051844637123914144493376874773762665585200651545047620936092265212653014949192777873408056409164769369945616865678693143621894655021161483281563956214247100410266430378256126876683879169613222157440994471479346630095591107982194464750779028239607400952838808426047196814580978170225669079059117741005607081341559279966394494121774956704347746937566933949535389662852414674300400437120698600533368570381825425198038620164781112954604293370011703059690084155990928244889839198032203050647017145644627963234097475278215648113376959433917467512185867113039802470765969352359752158951372819707744028784938419882138826374138039093763814094388571401911118958808827527327814571844987165529352191612975124357614942325165631510321089925911541054518757271201283675250033345447299911325830827130906906896668931819494725084369141515066995958776347475934885802197359980138289742563785973824440124272393846173848623738333756042415598403095864703472542299715572449031458317592530494945629465616569144636464043960207063160365060707137391964241583954035407874398111491408000366029551020764889588352595283023914091468243876482331153979226722863677826634935511052028409078478078173751226799727527771509352790505363807119717140044706840202151522192210397264424335162169118390172733151843242954046371732016091796444694835831984095790884104763983505398104633941730147094442761404747603277403760157304363698795643435170634142061941710794419756524081548812833727651488106680126367052407347194108727915167828344029128417427625327299805951056167175431203073316381291272592051293520304967384245134428142929514645530272536450164927062406442917899456963610707877354089764164627549706770643508151591667448734075495339927019895410717650011441021030248681827146816244538842974035249966921863839601234231692450504031426281101010525902219436983726497878091262901527155102650592460871359868513197739700464806831295255187046458883538032571083164751265391963921620582391342084978920954857215254414133601044147667513845211700164232973708795112029372107494674241997777438157718888687051676506081899654319936075627006519407510189348687040516220978096620859914574970238567525812810490401413862246512609203311153625285225751764378457046706178254318560820098173397570714191297487908836005022277572045221565925317149541898579468418480431265575016248281281587709161717426980991807075708325588963098384110690390386042664002232985648071996770792957872067634103904278347286455128946068906083372115114061763469265004373323471847132256400603058109357437730322470884253312439981718263997439404616347791665465756271591975519395571088284554884556782654309768472122047860016907856037380912028203304058043303879860257381642337181996018870154784680769575831859098363708379853234860586617011868817144892514401440130746309582990300808043932684432552478028869435789744847886587011390991264042622119278726405521705073790611810115052460000660746830246176159691181304098174822573987405619599096338450540628430507214647489472424866729671092847435572918009255915891205567341941679978833022802382864869042196945216182571631934447677427727352858962099380309189540643590369816422730035408371439616654835934673748037666359997883013051685686725328895522050653270315637733867980651663661064913189281076676239944723543132499547982070562736109706859399706509098927421502221775812143016565559064490980104857693904658166480869653804579695149955445037990584825677387855962658376283146402455180225191638565040386418101558888744018716227548776964448392368802211280845037419957019840586168233202623226536076577166375296063916769674627314877741585547118017633766551997642127970990554018238975406933908247539194959694877596182576678558956662119092859578782730603887339178172574022863774903173474356925306530495752935495329435542003629345716399753207037042830830471476448104158046147474445395574943761099698804004025930667586424750401681401539137486868142265535255725723119515765966437343838858334321450103730293001779412298180947442135211709067709298907927900697078005329068907912328971923237307617476711702495698005808834768604619533771264120893485491474170097486386133594676316933211044239094008897680351743875745394990672729387008567648847783096422039893699111727299339594615704446307480753972018296813970019877522648049795787456984797349606453947888072786256761871397943843178217765965959814016206550237242477074633315271938126683143923125041273976060854045380182191134161056212631767083177793961294902567297675414022244107544220421298645657164885557989019652710627540058088203119993206994061683212327909461690186155354246191664770263349416433179925433913509221246581232436888606204197771109865142100095086763300320451322055179429071781031427269475437239405708911815909534790170859414910618534049013494643027465450152512060843692745158565293163436006014054081635201908351929002659500175956312407608340460425241881482623112340191203172841032702019062387405406673812583260371389230871267911182409981943544028003491247185617870817962056183651147843434914099395302705395950373014336685656590333321119950301657563337104458621946855679214590387155680168811668862427071403064338007574955067554246652795798447525519791267773273203876348303526137859597556265731455108936107119593833445259299513044312608275790372586275084361957334070332925630468591364573572133805307228696669685678995338195412241193229164507840674944063806583958019786818328413807421785692128818301039652649511117886497061980551013196849049777052759992091981582863723491347556224619964553935822143217052711572084986329680028614658682413044391871219541307000914978401799556499723009402848902627332102123982171858712706846560747294275037450128350704612607854257307653166997310192336624428258104773401681312836448554980596209039545517397113975475225229950383982545994118689696464250372164170107657912962539776124644969333997249009320866834831693072037544061578213654989977419385539768699859537203267757801928797675743236308770123652385435111474869035218651115895900461907705745983873966737811459082508747510089934072599767504902917324637763837456816924684747533640311738487821003001352924626709293451809783045013970982632012336621602865349942825545834337554700687388364444843320680877977767826291833290863886515436696179330220575501971526158868441345097207488655872952984927247266114953137065334133740166548027228985939066321522085299934163792062557026365118456412480095177810542650106880258518139581802686935230981942460004842070786390748894559370750225467051081685189745223153102572690285089765609027030071924225041460492547821826368834833990271326836130243486996381110145462428359094215810501871531178534757426200004506053985854917486187862637700057960133373599065349156905662580556034590997515916769746818161682595648445623040039231422082814577715618681879712216412958754357849052242054541049005375071634087674980767083454710064097044186306013621751646527006371415593631763967114440948957174536536661591972940540330692332964013248021716575365938147452083903166066061465170571733468145808937571685314746305758409568228769759492287986906391311248397987201669979302587783975387445373177370099509219306194798862597595379375329015887714604471454602673452222070790666222471017572809562958633556187600447877201747017729688794500615766416074498778775293730904939140532462755659945944190438295357173627906338864124608517608885477504667237706518402333571194911856605240722908755493208959143529660236922368681677849148012786106606464042109616606834247368499266609879318436083085333792120072833858750698300267234120051465218321146604102087910725342196262369128554440338060449724645955633042591794238131674045150775174200379547045159364062575787754772144398653477182965188155541414178825009983770454146741126341325789824718178340991554936378029776159396467643965155970176806136524844818316018381097131831792717344839433304389669472264050429229575909244580757799551443983888729514162894111281186909234480652929102296193835113373487442923167036069533994290936233320839263229759030595575245574088037812260801141386035190253444162276103622381191126166515555583337113669241042654661300398400658898140664550712324303562759193225808512292651202901732221340270601762726720701219974082022682622207542997989603668566528855576750239438362168353515392818372992155511601330918002936767961820334398506847813137257070528953265042006659754512837344343217988847235966572082000448240904706631492452784379293460689014740628851347449025356234358342560305251546177713978627366235615937197822265963953041463847444100377497415541218542272963424580148256875643954173669608377337092994893281646471665696981447877053548508444799565911365281729895231901749511926052289421804743412846022315185483478659308372925295479831325917910731276171520456708859468500997099180082347169827211449144131480356481948295976251881871273122244780235390596184714369766007056696859524268447756177575021153910718495933263283276993093787544009956304203202714279636739793503784850512391629635642501190625466632065969390294606644842812490961141121307044568737674002833687942195629497277168709240827417741214021280114651965390478015926533504387004239955604928643167627705045595699562231700145721914040602240830446781003157955567205047900963771149801049302533706253525111541850703239066743988880640812807741027341918126691930958502032884158207174198045456248362394979591763321508261358991463117467421118021759940886873779027264570138390003776051417223012790078596130141965040133522786082811439577565021895482744644792053477800768794010580504040113282216625701880734399863528497078810326743854389324843203448933793692562917256385378050657592646534933822455953474508643813688895340542453671640833563415312371743988796315098100096624887053973153065994583545074410433810118459607565538382041459075758233064355630818535797105713923260778796321801235659446019830568541014055825941107565506087386098406771150110855792828931404599761852436380379063359603244221699891864531821708123243379783126254956720437526990189736708263790969509190275698637625534347570859507493407998561532457248299416995730387353573943996921863021324777814991848100793624686295138270608792971449972197037382130316651218673989129289755443752594602696128287668196168310983363038518897520701579796461971794430720382296088663440749155235605440095833700202439193186163236597554130092798674324538289773595233876284454079876546339188840065559753979093702793767153500847299962478185869509128974896775445315196090852992976476863442976430805829553765611365391901541941570789574376617452946253625286895944591501668132885334544203350108281426106900034904227407784505917105097643253691619898198974148195777370475567796810629175600761083011688686145440635438410807748076615876044747985403145142060316501512745517712274586954141859002818553954136854009295627947957612409388231174325527012990261750818858964004256089037872783781263926144456530008113112309332584444332571615872674406427678175966340030734783664452265686132375527523386410604159543265767697424941260297055243236930404079093738993540013006140851833393249647978678678223568332830032721121598059244510016913559663665054475703366867880270568293790797780109191341462302025314986773018997012755905098619568679315901046447011285377468502454395921688448803049827321426584441590030755777169612103067750119506602525463948528929687108410917434058279472043965432458851283089174796585793579926983031589194655433864853410450335192408223934261130387167203964447574620798099772507683195204577813487272879646826607705018590208116051366930002551684903681627890433178522670604641337932289639630204733794852569961486668852895840523242470304741106074240619205292334840668307826712987081212721085552371171428982530067562558217377400000646196885401212729391425416161658423140788954162906178273913196643917244203023253412976876352300886351133832220466028661908422547321341072858968642957721604675487751151055768805888460806326586484153645784516220461597426465219467411942342660843494204592998270571940977483985624479165034131840466043768674654419088808787070473748733933386014184495817933065728133280261625079849371896183034050117592031040198938720127297087235294913280640472288884840713038548248073419709196711862926826257208865994875484855580744764968177457665346974012329825119929477859334898200533076099028510679581134934699302261914284892433038000267196682745312105887787413538676858262605670081429952726271182222950291126180035474119694664399120446988529488496396826103239806580184908131356068884896600453500605401843185294882880123146954171188485620236585614254579730967574501903048524149712513930606561921080829870904628891875619887098000569150749811243584135159985451168913953968578665383174218654445862386189126012582843741839563929261504710612183781360081668200863127314964721953377577356023514801350964111085199808651278767250351246594873575591167353672734754176050891226899816480819461247598462379439577441372924012537343024468298004945955489372589550664195991016828948023961911955285456679307724399426486300181853498325222469583034999872101582895013995166294111661731654812511066664669949816844259306948350306302728772538716137861560369264382890660195716467606549487057446090211847221789795217580647532298053859999391262477647944821866409343178370707668169261249413402197389122999540489563225123953619044842767329631735413571554450128422867300155608871913158154197177832028938220472238325599826718215794290234647380830887134825845044772562164283369083824757087869333313003237356237648059210877993946076534728149434065081997953008912133506100075764641177844360590559153594344698920828644954732606896129881834645813512297726971598856123962729711779706584210528996255210274374317553273826937639189265739958969104288064652569683785587291236329308157438385193339426169619881064423177034022898569636787986215284360165507807432929500086473706257429700576789155845723538417424416509804911005526820536393890498623814527058296863873537790467808811851123329419424942546931959830890753202565825227853901239021906633458565456794358423095982873377049262323664455642678983554166354539857790178527198066270427857212538041278827896944707538402579533482903373964845285079869880873148432469695685416149386262902444601179130132299876793652936191366986620906996625835952149432954926969061750123446851714001535802774778959137635814203716244962617856804184290961883343675366170101669503932288304331758209583091214010032568945956701062683982629677665208216368286105135003195394321057865592152715565641580083622012899767502029317868409486495192854958081244789366451410118068940987490793039650821818112653039909642917705812776806910913277094150219872730503739856509747981083238168861376686499514408943146856669307341961222584192659084927204655211634306384099103561781836686145151950058060771650829484267575773847159667465049878124749316549447331404484897469387517616945718562608773467417000179172360599363511659835154178237302451597682083369452939129696281269478152848391468005887792092150394806176334142698923917783711467763310551680410823625181755748005468938311600591215940320579936253627489850006706948736579732898343876591049230597120541454028471483967704629817209640714870074194325370031919538690514564940690509158713935463742076743368278535517251602296572833027272963963532369793879058229259551234115014807710488726846285174928988154707945396824713384816239890710037437413065015746832428537069021168981955978021433430955955228302878410966035334385175267041406753722613943528617434809387062876092695151409289529359004646073839529511333183460169876026420768101181910234328409946923090220978551582723084277067398645966922166892306849456908868562562940477960556488444791149326852798049085245328383834625268949087147262228063156945504877887366437372192447430975222157189030416645310261364225273641040055333468336031596857319116263315611183192062014438285796800442607183819946690435168431483841936902258910024288237202415386008462400051927853677302919673387578294188896574862039908333174506571478573612548637692445132723397065722325970764031195885410035254846473911036110585474431070874894274790554340348775408900784124049216362510103105853416142265294608424804709722130219028184492396528254891501974056847194156615513740602975201642127411882416252629947682692229005210253145583882391791961747926885042249336144485386156946094161294607472806966916618939086146532176530880833263700598607526413779371464676526752255712708038037485457061192942286246483655395041586848958634232355188574537288455152913557398465151342289302208445300204670387033339540400696864652918937443834821233085785512538429300307070830153081443287356987372352790808272936516275569555774900072950762919329020926030774458946552899090235991136472537674421653393795031118521989555083663669015133925547711001560377051646979011588419731395826752357560243666237766854195964318072180052874606640832589763268555376601222984754267867474148364835240205569387711836009237783724043185877762195869441110327769267396100430590587631761523986506527349059280066810047862540785347847371985632836147620264664960774787064478286200609149506635030051989081378100760962394009071553115244466514887795553933012631078467094116078428725343645544352669843993801944725849226843934437508446046837034503804477396027179484020945335843518013256640587752640719913339484365392329243670387572593912681956914635774885678672816358106166322757214396309532053705825130240566047352253840312479108577271288438562753053783954169527533476711476687501500894474379658549993848876582546209772017940413719967172164654188615894510294515323356825125539579474977534726437904974520972906792021750920856197563731848780065567463414263967842064725831278606083699077343153226168992768797961827122831734017315723412724641595098312362081692046974488559826376444124271515193205662092377308488456758221408616488748570597599494721320662462888397355498409655673097798467440986456745410766329037530737684230696016944651095017910356526028017031313719380380648083893906163501327269172750526096135720455156331726249772651258883463815990041992107291060015819096869722221876404839391513477900370008471080849804478280119414338689326693772937606549922352213847430924086212969328125201558342715862064865662685312242517446012824947612872892618142575766297800431035939855569345587864806771262225713460316063643098694538009011746814127289336202921035972119010181407627288854116479916285766180964952967710385352954681441475886483030250394187221904989192650345138096821095173308328860615961646361106893895885367548225363883189823492036995374448139777303728528552767979272852209808383281108397798766984979412930820601773914635946001270070608159418731298692512470794438857516271842690676652267939783744001252886605617176164487033745406899643425469901938504942306957268022491993642450182733007589981939610783175989391395719517566928352402155456532748952810191860803909546691570431144787954448796307198715384522182255486721809010612791296920108696961581507932855409866145140738506942809079189441333380728408202736823672903364893442110171680624073967643882913005213129531392306598350091849962204950360759052357612768414497173166507951954946814679248276538506030626822359502022200461460092570865150889746097353756760269336149492669833677792929780001970630178915857814207461766609178846888645249018394292522770355523356034628758265216193633246960455050826223001796239294904863766874839686881679388711866849369273118677034357192580691894782705118052599837530091560147656980717972242203362167470156564009276098678781431823221844253521161366092771238653637134784607384444004464983931487499955059002298100931597469977161133731796363836903275461214517851149628737560353225768234648984608400137755392519486980115583464895594267775543086682484082734597902911345770083654164350791879549098555574417026743142315312756560724141956130085566425975389294179829549935795156882817802211729910902753657319605596968254960091113830834078647314443449130655872032070680254328069888517075250900941124261030003823196653427143677824274415613127721770234838967100132913481650288227895191481731925941567518189809672395609908603252173485610750519607502907462053542433672925904692157668384980727983342161357935228258326292223722261830490779374330973888986705535672714445534317327894705371119870425465493500592467723936913534104695912962280404486668238515932224336168358642704026468497322455967056361495382681710621770137930159756944126740199579424174779377897515774465847731879199750094443772790914625339484993633136725448281829486770004468638090470162386376330358525460080180545688960464136763913584020311294809468086219753533559647406084900465742786222706665607067668954177125039234091267782888730790788230898391986531057571115881981582523427655582459059417689183798671920595460441803818687067850641532580168325884393640254399176381140389123649653572382010590605250568902671562178355526926700502003034306622424355235219143261206883748689090001274571239468817729788717265467436887670934606906525528818544708494141872900439868076890281843025971936045568112787085360504971506459633747824161529921269267825015938797416645558311694028444285761313557730969044756025453468056597968435324649424667023370200439911694193421156177187270243532149722677944427111721285627934782096712314092383767347039198433068310425046764989264809638390245133604276062929667110992687054259851346220471294244749325265689589924932976513909327007342564225040400901765105502207526172802166043182596861053096924549568838964986369943980674042230045747102229147277369073793057074856554911960698715370876574091059049797806701295776606919575795782295888336547358085077797925254146460468935911862745967473571803713354353705103423988307001416190092655412496317930635568922956120247465280113624934803403223411462488320236777602691249239955307631641271667478997339810734272261922380807218227421874042596013749167845530345073060469397318062503706605736820660851160654721282557690119246843454064761027842250310147973596848231370031883437593921103491060312686161202191738082634470044096332436505404624506462582233679223555390128146797399609111424269811251812937922660316334298727178209065433235024471359289866805458108347135573444696647755623038287007756384233829232216040115450023791022243150409310817628152042130829748176276669056019932108131442960735592694642298895833996514026876056900473820404649380512655813633268359878411734259965432265921349674793626591519212873325992987552101299587336892350048719381057305609052150314599201932629175879001757923625733497467520458947087490442651707757972710671633485704529229788443890028239918715133008067100154748888296678253293211070143600821340225961492182444048199613891391083910599620758752344376350988249708771703551547354450933427379021484621094968027518378789452720765873134456174348468549885694618734344694008441781662870939278661148027598988775728814126719478632663144316848558168531675375690973517805090154570656989462181506581455001791839116996594389389686168418195747097994331482987556932407853095090275573746786816247109201522951040757877794950177562206530163772127995355047161927210719225505898240053627442284240255847453394613152469039547877973305272266350430165582859997002354620195774877565556193276846046790910999070153217383786836952150182066764684276939038814089869690149102598792466057376909806780861086068155814087205904925787214804797380422593808864233282215166089883672756733276424195313354074063989385557164593268616904341076586135234905123070783064289785156289629226341242090322614904771465590998700571961056672856870434037667056678313999612567796047412314835180122182524891382846902133501809791422089706706089881820322369993831190517156090989781028334925419635729839960082010127628185356805670664442709589657908933606102985775136181781046994744832967922606809968189159937675117133493021988767557371395578581473718342150806297666189782626722520425640982223140443279006712916315756527284594192894910250224756913397945183476001835072566435435188291241649453092612598227542099748948553270102569065580120717746091975265886082631240726757088499672844924947062083409129340034849189693177573534946662224822454284323940777339631959310587426867263353312205896640348372872428346791693765458246861553075615632939798181441796339096351208306508875547957374697087726467650315284523836256088179476858383443172248518930004494678704738642926856985444320859318003445579437373732374601560177639036479082790228148916265625522126768885864340503502794057341739191041739809121578048159124306524987578054601416775955921868242149697009084006454652030370508439686670607614271860975596543077422072655156300121827397096966317521182580219989549263655539868607276625451421898714425168997045894314989694425575898068918491129637837727628913065328338095028010323683898719946224008048840105945388384899134862058340774224143254447649531499308035030717345041333505017480401696811789871798266276693442634664490523280957197559852779502848504219273159008463316210073861124718309189895806044742131901908461067433186266024975068155232121955354955786737637145816816744563563867097376157706518986058824244019513612158208802253163505392213244903530893591454348160944462488106209691730916221988989131087390864975352220147711274123602513164799601294017218865344981431537155646112677990750786515742763431641349148724784539344835829687141402166239181370841252815509479114666993400410417925568186142347382235400473471425635844068422971401453778423907146676204909911517104850578598547831039188890570186258012088790004158120940427102514269342261786758574030234852579591247150670484885225028102246045850946956015233404630619388972212126457563383921735344824421165705377093346833143242035407519743699737506335969462926668698498011458677073615726411381651843555691293221840326259299654661687806391596868606790864929356255900620508942627917776048611008056155838132367849398056310951360907167133860005054730345418471453397355823268449361111740215886646782929045925268540166959312399038916388437626901173855518548685746197117582736046743117045729263661693566024779783386921927971476193700721278824657493323820984283120888972633208403397497891493993867602926909758246895963252570581087039884960939791968004353225501038888599428351776707696878820206734206820215710625115997564442985923252015422047447190539669088996582725213431811052518834888613153791498670412046397390803607440809852059225643168622381177087721374876974865655826919743818014274128439057638738918481349844937730694178828913394539879484000667282880958759554390632662520618419659720899619011345675789274545875923698908988509840071348397935252597980772418312644647506638227143544274012956930989596633473681947280721783709666728727256602808484945804786029754811439811395147949852844926334051327570592212071889328713619319303904017208716025213055929846412942824547153852119549108085835862421774913713179881215015459537508078904778593239925887622506153278583389561238551889388615251571563026460917172928203631300880549139624386242986880454262584282141619479818212019941964410693609169481496493660286510824511399403347443138514988475899391413654993987330797730753486494870968944063956046999653535072394668631744075712564633982064250227679263004631335902652642310029626770403814275086247603165196437884289297389994793333382326532108211959539899813024794397261278267689064770718586840290117315640707209560049947804384980539683404110732868875507567913192540892026413566308539925194743007458047020643971761705416645901018064071572117054458581659458433764016396219408623966127497764563077882407295467945614802465791922913525959691517305862506666424446620241266287356019070423788374467219660464506630768776948575811951451496465291920520127082555414431636035498060711638572582076270088281635591547373084010976510836485520987030264091753947683375472455767004536728684893717874667438438017811745153003543104229684192523044024095209048207210713039793934230399398801318904508112201303034857373289580844632845736936859446986495631996113564377529324604798171674455202452576559059502381244705021810440737490356081219116860384244717934220216799078391332163862613301774264971612198500753597433744305460111007209394324361522198486445343794375108391091565087540820265744553852063169259238499184520032751799491742630512481750007048400086094604031871612978948810129415810985121373824457280526092079941031252049110394613006579182635340536277629612416936486729504946209710196613788128740767760361549775972853249575787425386870361803851596086276383606468141825187181995354827102265449258776912415745124528276114960616336468449854581172972549579148320740321468082612349513108176163142118267710936049782339033902086001683010922152978195710661956212779933317180860560680334740976949373235514464818110090228926460926712170072148263203127136715789801377950670477560934448325494058367838997876045210010141377337033282334662384252639749587818917692954892346778008295491788768189695443132537142987378157206826141504554050155671070280625002411432820868905108525628481021494816308604457080888537537975610196897782759897986557737431901002521998054479166192057880359496623852491786178019774246595295297215142585147201734854777636184263389791260757265123658413808884062083710650825762072904397306173749546671001859263610050518595920024539391250373342673936931757905211715834858742595344074837227192904821959171899660416705893612935471630133073072904456981690713831712445814231180892494511098358614366410041468754865745070074439302631137099554820064192900613304438925675648794912757645855179208343676546377255818021675723105225734603698402519162783212699340821199139831670114293855217467475909174587367726033116729847110805435977811035841826114659937070170641513422364608924628021842146954835726782315481890830187849000263492715116556520476545916800017892384850154649867723221075368015358902073825644525763487031875947718037234439901481523079585759741087757437635461403972297192461420961503493895334151451675910245387102224146380223007141918067097825642415750006817075351444233112426980893667543814115531712407101990216342183630721390518040481321623616388991495389753091782303566080573347066636222456795412807791168847842300100361519197892728809318179590952488590503003700921231853919901741281666808843490249686373084107854494988668139557519509226170395975377014735589925886521238510507202278457763998742105500254291206638635978054738718290440086266023473141334863278646722717792318709604010919471295875999873607499898514873469920536448620770943300636757161522393217131032593683572321565258731646671979595992884993819960955942806410670488275470699041264916331839516272671709946312282535036646944555471583451323217813966191787165407462246293326066399881908870965577622681142521149082336943471801633350397984440390088490276499547258025136243906432248736852060306493272297699139715643921897764259873746600381395488188662940977284530495545406754878290340061808421291415306190479697955736706174884376667137900416148522510485665042865419845942510289881299691136439832113161198917743235926813688645548224340863817288488396732174539188328406647107537372984954473074890384387901640709414602887198920483688067418788815070584704998534691445235783222055997934717639973841797656418617137034029031704339171554622200323147419125018189096103023113091417373953091541390925882692414904788017312808170145794772495911430055426587633175056848888685162078936553336727925410585915891213230139879392534459568464760491265942069937857231025456147771332434807098774996083002562399153374869738232839430116953812921849237211291081349346795715304058401925556172509913866298379887788970381902838343887712268769517967090231228525938283757446422126740440805017154388754077078640760430269697174596046179689694162410990750201159654423479993727477286026540228453343220514723797925506963019466547820751783508555605881465633954412464154699788350571069153399320792842764840377666909192742841422471874753888841870133779335683499264488469437931158701717921126558420809491674210715110030908010735684220839658588564183854485945595524202295435778530155268404008007008295879912927798370526519092661422686055755369842431380473862321920936652294032575983834161373422636811228807527679204668141771278189211024114887975232720321133575566208849799178660663379676399142708242912492817037808460784026847854534512437473054398608439109754481129330823777857253076619196372438977052804667991172445020793436421248571501831072586112623746790172776360347549643579641993874882003700473878580300225943588983209403934579765274146970917082723202421676266942719126088125669989225112291115932914012106721846070101817771261671360459130465629514615647503860970565445717759461302340263968102589143356705350799210426695258619852540008038847424495309700318464558433305917332236633782595922243669426556439796298436612523145657123679590591495683087865125568229693704329825747959952473722170988871788552186288120884551639278867288903034695097860227455422543097984383709011024813468485834329322098943116891539370017777239461406409569728917680083481126505318916221378657612652329153166268421811164620618935879983410707652388624439317111467619550927307517123857737431156142141650050008059636874734155996465829815269348861506405276891668807791032534675440931351520823843087520254993789979018423832102391560658538752894849809223963388614595796057147112050330734918052800248299934505068411748488596263125362640895285298236298368352913213966373897829144069684254955932444896024022007021714477099942149400932479502704683889496478273757572377859358926125726003487750001494656795956517330548687944752898989122070603453083295048801022627296196958895097782993533513756362158233476633714605686845367413756075470673240040169409173071023087205858074810941407466842525782641739272224455004077898461904666131802767575544966759716098276987505358600096744725902320239938170173786960770686179038797825532401024543217612407800894955493417356967908995115219243411674097567506320532735363571954251726522893108865687092839003165775449028383578371456704297024184191143915240611497389388491192725563818757383667543963350607755135318278151296745128649937537399680420644426965869726824287770638422943649950641688349068470147111190870551127298066694083479402173257879127321428407549743885230193741025035015221536399685931576392089904840588123355386993078915592944741163208114150907448345759967270829994143226954616052034436439948500853584298529363509841139135675687535306386375338233710289016348579225198188246280662064544849512897795764734829732047525794620719215934999540415760201848853536305369218164756887070482515868874060546246494030087144033236187531000269681090535711871664870032295180209943036907403929917809099090776235431825875040711515596063454615182474511498674458544300395195384307834862167067031044711637143264858454251902826658207535990729995600215287075372548447295197481625494985469436685958855414041768161514830041442682324384411845673377253859826430354690813236010242551699622360374444954637073859076117325602421474663237592891959302348347240315601860623250152015673200787106497626995595499462197672090646467752839134180038110306942987378729009632802913144513845656429576597775132707666352471982693034804722677481480287458623116510702425776461850911120041934859383542050442849494940384280813007538889987588581987281344027762513281755379399024744872586512041503136391150327583129024493603285763359034300059155629909309031622735056671829966287303213179786479841082473927432896746290511439372594118448845688636098526526153735856562658666361722084615608599224371598243943126669316239900042637046574522263281134827573208017973547321800588741484074221218892652680691368909060188637181282965882169426905002007628081117394017093543468161407063688254516894802092365702982329263364977257956011704125220840228838326789219967058635727652030606394649279530780884980346233037061735660183753624886877949169756534065597722384131953442922944058389295760670910099638483398421661177071299676887499309748354431874881096987996799108411281947380370681533018419680051037811495081730124720208015696463675333114754305163952086617387740971435241925310184221204155421181357044014301500647790352532384896862854614829413753433015714704031796796463919075009105284500866057641224245318252346706715523485624891592052224389314145082964778690098849739080423522834685707657191338297099123441918791852407577923568865209484839134066295979971690020985179542529388798150166737211116292733424353338242894160474131261551385861488365113601904225532948882431325188245518721353590526267449633973454767033215345490649189517446735119994276039580668354715623488103059136567507843526634880174645999536341345799287336265184147610333656654766608895462884560208062551442907029272127135452646030507753664775444165401016647500718803734256247085539934220927246618827973998326430444101946327383908744262920098209861145331262770679709617031790075037202711965778061508105870686862752901596472224855779869046664051918741757955432383219380696862340375079387001468230960527207831465626487579103191493424181897445707738240135231750754870304071319446524071804373608169298211115790957953325218155540383249050549876949477426332384552918910428046644438861043327864386930594205845728724288730275753140206255796120569662444797703310669279620030047841882210524588327510761824070861028670354957504110814062425248786048107929465813661733998001551735296677485504697895767614669782978854659461515246161154986337953245233579063632521679485993506450539235106801335175262577257675562094504166701202351666596177995537297535799727139781384024088261733358982026495375797103032727695427297985061373545496408075664613665549863810920352063295081333135221691898276982376785646000219035404589957417004941936166870990375898270122283975309051839956449818107966598299678044604412067675504465051460201599411478741302310264801302523516970433427738663049999777491828708839684901655871611402166178320742878025151701558479420971021097358708045313543569133618941360198182994484197786538689120615233546844538787595491231028526075016874366685002095290437679630184440498377067297318298183184892540658069464076841783551446855454611929501496976389008875104807104230966145325860474306483140707569451829290810400157826581011499435991554975495229599772288908841239435771466480740162918371285619270212811134441978943356077389656437322947823303552826225419062683752841788147869459735633216573989212698062289661150171429819741072427485548438954137369631850192722017156410573846136245321522636472171166229145050838717739756237286626149693761406602474949139825112733740561931736193677112731473716213384734729967925098171445903744020137877922462390872808607971674164655947402593306764114831846468166185618381062412097437619210941624703795098123263008618171306594681244412141796432885426462345626080910327329534498994774024020455531549769693029477492395045280931326249117513462166625728140665428673548383998189490947153941627540696064241957750585331129782743982985967473596730007974294848673030251047943100394754327885504168088999851256355621936714739654005621188814601772781010622318952343857966839172807538436097143855210473293342022797578925258941443332194710685626598632828199793470295790248867699790607888809034926703686447969365254477831406265000493608150485774633328227381205758501628646265676764210781600053816288351963264829910402220744709514580012962427081997385800069870277828603901155695806731008616982698167276011215271205117017844225071047639262863219411789262384491549102787934767008357065876604526768863947515941114083987355603047326267572428231608374498531935787421904383872225836071094656727348128936806531935647379376406977078666121635397125969379823871344734678860922448201676441603308552224850768196003978808057930858496702404185269743633409207123992876261139242246001514401252722889141306225273024641602604469883150444716133980893001269771668231562203549394846702629643801111798708034157453360397801877426384078293940704156527141419189920734859447406887679933037724542465111482225223112958852639914197556371785156957589454416417817519394586244746373924893196653186919404899227790998966451429397978275328928468491922711880810640600713636276756216417396905715441259352164596068469217004035131953257138291213196796023879931907105734632622180097969407679310240392281450991556598208672132707807904507814799720047579091586386885523425563510615959148476544271764185446475706676492561741642347090978503114863057864416841886265767320615130217137341399111711783623273819317027770060528484106471348888905994505455520247490451095112887810070638590503592689186221869702508195333623023835346525112870136218175999620241122901671149349005493881184063667394266249412301169924778214472186214537074122651387105727114927575179311433360568914311243550835406957535816963614826108144978341150249871521246762446195927352350416343475619875066930212769584630733824210071306704868383432675152901255113847307470687434977255255597227747125845730479193415734255331840561748040598614293088290320184317550734523258436369368477119376310353940131435395099942828848701756954437243690476864593061702558349637042675823569591051530137898871765243359372779443710242785049081561875205638555568147813626957742028677339784751027832203191627005938187048154463179908537323581383362658187423147691490975264712994906785209734368625175482273257221172567157110000704089955507770144206909653599414264324113159392183655297369625262289273631798945163149224096803521225629960104479628003594312857651266842344236195908008369155166031992460568515350806572249491832606672936660969638781037454379910419046409398919824798114269579054570346364808978743562857760895259688257431686529234980863193939157203680389722016652857429428827564784138165835075287557058274535116633669924095409341494346280014259622815603538392474447865601781136951125551118100591416465897745720801809019708779757387987764614765512546811823306574401452027068190925508217374941537235919587436573167954337053843517658003212955826183226368177517824966661322895103461290160256222782442278059049962845563352875672346949425047399165303428555534631601637503561575268925944631405535349064675042616963148685951061389450091197407869044558700348110498116960884960299580815588995854758624240197170449905526402720622057491216803631879074261383842243524644783961587128264022242419621288291471722382384192528658751872356416725905995327466869780361703304319801440970691045285757065926583092604779856714388995551940768679983799298016837548083363006931173766159730901713506274618265327885318411013812755669628267498203722230286830251722008348095958126345407522242266632932754159345003332641803864699269022090598114741245674659619938332859401527170200906450442031156544644947361333212147965585812138438901665961502089021755172879663060901583681594292636649039108521306970691621484730795861979102652953414874037870838381655656005122120044843602815117972644215497330999791307733014093524694898714423488256032132979969131571673029780801354909522163133018302032408427555373253988843842305407975196265980792356820697457186246657201148016378171206707183529806894331516929143737659222839819110563591914963551169574440405645242063890139282150846136835846532538675724582416609383654981407472562333172484348817033957519802395372891568205546013418238024462257841541001823388597886134148641307376292535053613720222011664967982335759453954271864554708572714111034033559969751125251186912090291018846554630183703151539769733822175708843436871494766747481807776006313903746977765899418886315567012140338168530383863704591740408314854975231432209442109493532217848270108047204829509068960352707069504260916878904806386291507396110969313556204930466905925265325565456048542696121537591135089181934512209277302009595343418288437394032820129562881129394035685253745334494689877328018568229943083041249122240245303663156685109043324720778228077164238564443549335260652644179082461103620144486775236657058268261144492902072525237869831671948569317304377141123309391352320950451083771138602332166334232934407922476381624176862322453365495341209783201417588057399033999982537096194348471802008659784051457370120990557185791622084217753860967351706310240758754516993424000663110446298979298300787238909048328428942105161874229187112816186153966783469634815308380404757546667979271579640841936988942117157180093054787161410926375772097896602148881275081351888299224272156423075168544261263356843938087219973405428761072561370298068116400879181503774126907998987615035823941937751910506157685175646260792083871661605556919613674407883272833258641561981092182965268567016878315209954627190968492527550424095242840097701404618089879246403155786195253111218543074474291616327763844910872495106581582141508730337784911560057777346011257277433181756690529688551427735723248887964798380451823774840147940154648362640825855944265957510795737088610877743429762284065793607361775663798994461485795058595806085700951113186242077878346089057041157901653858626506258580862364185305906334142727563522832484302944885411598044156909944945582953732608111537089848387361911790957026452719859978801630292372587394435762173204343445605865941691684459040485417267054966957418717579410288333734586580334237955046294449348940794305215148155009629751765676040014848938021296244951605923861245839036182458880520676920337159575456450958020037970526332676341849124766913555442506722929824071576685070736355566973042953038891559076643843437296018550113700935807812016005120837113998431566170879943275006320490104175675314556273721645321928074580206102244468578980929312026089697905684262347973203395105145253508805361993386847175693941729640524604162935852538547160307288381848105855646722631677431141093354013859020091761413474176156615509909442139200898119820394612662437949824705842155032868720617345292481113607741661447605185836083803147229292395375263018016825963823112387478566114148734612833737972070843289439130774127362161118393215562282152826198039858607679105602295520471320398933985609395116104778811107813237691018530954271222514003752613815450374052826482511273727957272728699198618612152239756948098755640269291424390181861218524165490194620023309407045516759216199486455541144413545757871941691429823842320789584774271972779598590543024289952023093881860544143220031185289556806604237764278575107922919041547570758833684227229867092931259045720429443176988794322821098339802159583357804973443883467218288849038346320521319814560622017991203772682718183086369501432847405355115004929753087702925991526935183231546779226627237326543147279417085689718686173780292298109066900912696500625015641622217962600880164863778153057697575869533159567004362760073705113161246176940635613085345876261254696090111825967489447149670701966078128797653745634979355044319271482416010946901504894828997226940988458438769475970017075024653473654248325566971583002268337458100440241712603683969157754743483488957407378503050781987256025486362793376230087931478727944764429446347531860592191530824040093975722150250010761507731245217667052883737405526003253921023815190030259687431630756024435385160382646652907616108025322014402537512282439638174622694662863487157608398608069176725199404331561200777483426561442556707578066531946317012288447755038853781528520779627157357208445784980641045730181817383221307076457021051930943097275278287470164459200840645620448684827743086341598096379322616691349513071664790509453145834938317073215587696666973219582013659121390418695076839270186265046990118473839933564655016433240239964688847291226978557946282466656823493948034108787150268011681108043226422983861256554056707515529858773366152549947438154495556294244588496620094807266933297457555631314739793450730529202967589320947434015959686650212606351229509140165818502556771838136503788391459859860120035535985160995682336728539211170945862386605113968729311273737796128524968530806254255205023259867350235029989505981092824406187303303837029114609143083868114631721517744140948966868425237660904803707028130523485454619683799785242823267101995085757821704066290029476861403849436523338853019946137575976338152453984602993084559612975897854790593918391734054804031656906579208094184703968546380465507540659496877972191226207660240354568227728697530626408940118380068640543775089730643826698755180520048159427722749630875679787950357802933953996694114129568634239013113268655974860075957498941469997965964500215716475541511522960425962067801005049710715829705175211671610017935243723244072458704857361291187269258773520649107797233834003961129416733690612954560078373473025514048232496964807413926650588779506140798303695926052704695710528879694346290936523360222699581824314553682786923864404391717436581752944460908520128506795201303641911956018172527683734679163372055437111091871240536991317656536297489580617841256241987318064968064152597847156767085306795477357763492190558559842255832962596624851094945017319882263653618948115048988419546220941516406014693838587142940112247403716999235523228788360067142864154955520471326824046232642465276396079699498633685128146926284588104458149719574993721884992587197424541204707607137482610990495946036495207478842779834406946100647851184990336481570987566890678004592332598640027146660289711252541405491283573144165350641071135439390114230278864235465686907216613960317514997030886903224226918003528296881534364677415793322724470391670217287255707862623939772884874912769332438163670269149747146843703410059086202129047161382572524119600214018575685051050321216941134843198873508010635840072453967914215259999772596350651500720162953317250031429340791997816255793220099399361815499821394389270819981966127754859986829130485085193087269321350690267717226000089136033122485576094865875308458208809422761158037890517927982955778516560498876432581921145264850271305292159736861010967678001180751932569498547584456290303500782604715622876626387428514753359002374956001374140590442562457976047320053177539497595994626911667485199213172246941883966871378410728602235102066410720505107714602366457906207384324205221706906426317644445208024654282736302759196261987814194016421085908159875047357134024593429058282524320147591560262527315490587868894160131937585105484536938111842486442705487796939280086217441271291172961627277240634545522498397504701883713312448002769338308402957949336489262271842528906501462264195502467220367017411446057829991649805642117798363988868556957841777972958528773241386934226205066562245606973227864926621501110309898088999119904452169499161535877666136215857900351328752105393550626281336867547645497899554759941049017581783152414425443286273016183731060719550649154753560008276775973612078114632743565814338918815779163683756344681989190941395462565572508590983424388304662729462310420815272822077696166967977032348551892582572234720604202982900873480870134016345917284529581276783626896901110715567827775849121358065795624823714908116578903935660927564017811578924753461345119741744566588567106842506550768549073431797145116130367118335049741456957960270949056518882308339876331865707360385677602052585186597581526226513438108979874635044984894449359778586766286082190305986962682745362497983875399296777225262451860340282823218873212077044427171258183158795373468214921969938026333934927357764122326591217437447626987502930337646216152001000589812687893876076028080773056451706848315216163755776376743082387715294083178592009649912180536691969314723556309323345546538157637613028281431796230079623671692459439220078180217256383983999826353962389608150382454537100409017710946738787831847202988663588092798495134308883723466899069888591365675033497357134120226445830996441975797851554168646032195126977186681651396363570475648694232393396830377453805229328486337848418538853697654065196003120350188396156053081929615816989261322178574688498620301495189274044006003274007497214483406113350127886103329258416871979527106899905195489274050864016192017143409994804330839104105107699538054567108476332495387288302728224001271204483120777297758501843840635626937785693014132082532172186559738833105208962561906599391418102186599101044345933538133882938945794087913141948958020363896112443200349054512574377906045599297535405085550576579037232928453426805365588173455445460809695242767643357068849684618494413842326632293115675509533625933982015650017835544015356981669016877198613125762382851870545747473936111139672047797939653793663538460722351829779532523639538772195847330009162693513717782225191160178560798990939400457375202362216071216037503356838673692446623331253894728289951688341442301008267200557015412623090025642102269329222065676636238047573006706778282340229955893476091706220372182543319044451255808304419620832342431813172127005320881641140602229128213253324698534449551848490749663241303762059157176737881361472324505525653538530731328339207392028063589505263232085130424020534117371414650910025878393458825774160691293445860329625002852812541116735452789033760071647350913889328269435132673683636335758907094701954377355541499370094985456101337035547392344157499996324989220703198522608424475067537234757040936608188581038929356991398131626739679160078772323148740591503520152899748049045958646652779554155068810386526067461749303663556674423606476403020546272398794751054732754270286838038820882015411123060878999651498361343493112156585475334907840148651848043796615394215456310484751270274546283943268976595791306046172883890819749122698000351296689443529802538141681584931033928779400349725298646022617127918519295776051714687668453363383562826538019035570454304675231467261000991777897888226935651096803983397104134174000311758683782587046455770676441489463540902539054312642451013059549951246226040862281627406506022741646984465100050289267972728373329592013178525834387183121131339422346257439874216129563938547002906899405751556915306247817463356652004212943483911386500810683426092461970483355866586289299926067136121940874248077935234736781420032319402105465794963933516941937952932054078765216465500082260453344360428444641886628672549376195269668379185565329524345801285851635809907208058370740260871705490988049968954462872793773009460464578952833734646452938994898105338551115537268219403564900351669064643624452876769621278517265535163929461213537950380820547714634359299566260814061152123526499171419579995360265392348535849299274102243150730091841222611807523478239483232790915524051684567920600245112066303270775879707899656811021665216867516556224134100348086049763954942244642432011454361306188561419566296167103610451910993463063578863825775630562569178466116247087388624180770816617530191293382295238453190598775307697590917902864925545712710756001238109942782881859792113421473512282706498022457991309907079971987205822069774003686478809578314810818028949538226938537133153620725366280091114613253402810135424957100354393175179002020026922742973282681272918633108937761053611841403514810701095050534445040561331053913618948904354692319559249792424169217959120521780072176016773396435520710123603285595660152940711507726263293023758996138667735775148026149229136725836829444017566780155561801546616955144840069853538081590223940508498867358779619561883609339883027834340962991363105537575561145404104331411190886804767407310669126187445703439783884954993901765846661888100786193335044918805300117692473719086790853512151740716033466564756857003991843983242079594251847194420684474469424875254710557656293393634566550044997302363045812392130397525355396752405055139326162991692020894672683942777099243807495684276972241415439593134718476205638440860243374922803237654805372526067138142521810976795147395236972089618974058354089651487091605173686982688566565054161701277163983928919268447663703074367770483909169922089978365708384783769962364644455632880540578689350303748718056732229228467025493194453180643641363655406836888995554796158744827276534210301937354448949044644888758114937748649219627124475080150476540413936835117876785784948466910849658872139442658713321613761900559867713435337374364938489881656832509850530686652204225398016196296565123450460438126105765330954513902115020844401760803832147929845226108180102259300582886570047801045724956091993843725191182395989889392064744402179076894810003773625846839356309317713944721619696983596939271518996748910582750582883409578863622893580394295205823963800740890549764323152377758782055261999991352160579300663212080141315704443223570544542604135137170622794519027427836445642932902940549362187548140399796715965433914199851807744878129085006888985653103674124563565993820551162371443345942167966084193295126849553137687074707477505708372328698444345897620670030191135543716831036156376885926771716839407544276081751610852704095573054200977944880016689132845111291537635101366239536187407252081198598972669231008693338555994825384827340237751480065946193882316933383123967902163451395257324766295945615514825525991336705054706827966488295564080033213318168062513869581039811110676282904918584452376114111269131295178218268241977750358305314657713476681919779981773410749016849596230757602109910477690485669272868620556084290540553774707351285460784763221606399895953927925342855740840823919935075113744706663198334140739565683447072893797238948687696895073552697024862824505880460006458226201203403582939643181117425005009296040057561890305436266990834348729721613633535139522459700068470402574870698272088640636596918178763985571893758431169381781509978935081658258650289382036847590951609961799957774774337141200180886635128526373986540960065879730066590676204101426816955903119360334145568881203477589194140118500375843634717099162589672828158367093936429360935450554823526822969750334166883833235068902817549631958503705903987867779419196314453039748601196764593476790270303039789778108036596933418429999730215367363074107895957306003350230408961194206974681531613187145562530325001775325215327930055575134557556804253648535838221930346220330124810724044389369018812273010267121624160629749775252015155164786503738826896573111814233695947053391172157051995772632309538537862686897598768593610815001523845165023586913058402458811152900557648805224870121315663563296322252580442569951311285869017605693388199401961023162428673242740055599109685841703047353595635353537687266894940266833367334754973419196748456896486080339525751694808968112199364177188289958381169054034904717683145704329544309948857519845893493328447969204550265659002215954338799768509952554487165620387608392722715402329773287128346555885247421313791232011435563464308324068305713176176042587453959704343185417159641976728573271215069375723673698284138656194683315972328253706011210511002764821656597776454535525003837870672941750578893684436670173910341383306543147324624356212888608183825932431961135810058308834196372003186266010637754327042137584591637635655901963401354728113799754117377356780152299132774158334040991682314946824031108531617597831003491673451117795690173665742711079334498683687964954617296476750345296850916376542716915575532484692527232358098935260073812579590925875399758529574148898634226391174733327003310207734863231154752661853254128638182683213776831204267440028115218718357935748081409342924842082970880864509515639555196674794190769136320046703945169840959944722544841279763287584285946363298296395301106622317938193417325924358607987199634172897251574113731770251190541970898865792173893869486862558825097100268355434409362923711057388808354215426530262021966974156608593728300587423445814999322685850740749314767317635661570378969706255520810445862182152768083189709241377793832407126927211931025549435840442987267880967213663345797452413920886438904541615338676859740024649267351187632750177998943039529771891083993250353134521516317992470789625276354352248435298784040072073646941786077668069571727585035137824840859736550228792824566609450251540514720557524694399672981357711331772489354904216496360614215055782819311930705240136179298266138050766972750899983468975709060199619212091844417846855240761588205467009592581339963917362060253908298150376601194538363572770859873003113692941851340842353466848809083942328942193510188856813604204026576869810272864711536335701231756043346138220915842044708540765238251803980060362292337915998052833207852171763375840957256187375820855635417582507321357517822150571653309888485343882090540321001631983773636035269200398714424816558384873318167581484399966486935662359609373971011204852017740943253806325732325374238978599099104401775119322181046261121511362617619165500784314535363472907140755083754447372474924624220178660221341628443103694482178008906464635735127863074932738783813877500949057527202281327958440160236866021219055469841659227229421372387417516813829511845742016919366447709467343248099191876130670081649260340451734235049100842529203848257310142327929164422436938110729143597739310751827803223367731544649444052905106494495496007525030049964075805226501258936774483990548122963296092355053285426426380161123091104371457079393514697460247780148798269503201354007690222630629289799056985094552456190509727098682645679866232300404177024137328534403274262296575400193779239031496555465319227219754419034102021370649360936517475491651283545592733275186707752646501987681180434752150191577285155794649841985875467407618532660040567713754203117749847659108829500854461240003529418529095535623377579901005779316351072363541656201774123367464109460805072249961573174221607380015610817931676671587953512040957589339448606631545475145168726659956820752205355621816468140030583772715751437603641232768308484404097802249146531092356655407256582850256807099625656984338385523891901161168668607221433209560321511339382116327409584506765376440848083768186019562544416477141604966563091599920598163493795888591844059812756366232971195715399589064651007130746037991597259858868709877244382222840344992047726921327858911662567988107747968364530009635535368985858361111471631278742751256423994511399833177376468065075279983877652418731474118149946239378364182741331179493606319862815457973068878839438260611565142382536993837796342160841901678814485033681664215976972215553671945543599003739917651428794162566405250114882680197754242261318256578500667609740148101404804393312893640575024001922995944454990527376115118412557941132973365758195373844824706408501017215672491294541254074694474527516264960932352749966800193445552230920974511622782971756660335055988477176633644688531091326529292911381300309368377111509059889719000742407244009255996831075953199146108962683425030808660398463534384304291179119866717699226207265204646983314750944748962852035340942766576504793973129958814423162422283519537139559759789339219889869963313644748585299354059433262595419700574820356739901026738640830666153774903973411683612199084110405836185373406431304159775634738371203772297396660381357546445449869451354968114151614535010486502984970288285492349358201242248216264015729569210138413738704538863352608411359902217113405627488654656085563893214992358043650823463263063416191618090629847610502275622818698618261182857697548271911748969190207980036168347413641851109305058707377654596110354689049812613036028114353232679409994062917534553413298129080951464398638853426260708838345045512105977156191027092908011776932223380545807217918945575281075349099367921933190833077575946902145813032119176386581656309222164815022172115130936831272587003423232661885434513779841534897117395908345323395064803381469985359403903675406440202877909846548380267329665347095929479635220472870760539208637722897078932930334715852344215073150543620232604799980266613282495407242614909455945072457582593244246846501191703825785517054902603390701069241984858330477915234699366929301784351446572204737909208865109211311103101187766198787077826834124386802745496531764486244007780999803789174931950954916352761223154049967153781515512032873559762711443476874823538037212466549746707870380770429489808464486727679517480964917321486160646054746524709198813235570590687320462458490894578377897997622809161638359407192074277447951653179881566413389373838463452190854833260549548675853607080435591411529129527246067624586621641124415302486759489688084547487035312636849833492460036246954769381762429299804759837137117146719796715183911920733389819674426004641710445461412252887015377459196917492434889453382867419526137083449032500168859654715388153808236262839133443676794453093175334443051972969817982736422691648737597781811913532235709828813974549121330265367466201026519036500713158154650888980796494175907613229968153542299426696597232324277865644500030407787914220538163179442079307579849367873712584749338009005168737979436164276353837809435358761182816391880482899235222044539918676704437139834411648669017406665326331395458106364473543475892644249524109496154405468909515882320809796775887664246567870926291589318951952194441572871618782174642800744342641319048632661163642373531525378151750746996019074816281912166141240964722434211543659317798598650779383568987420712598778227193926583880443900848985568174156931669798248024050761968005936207028046864999855146762114159586775941081024282070058123048719889620762605370412769438164348360713712951048058196638797715285470422234365500441844919245502381451003582372206140975900904873145468942864839973114708413186047591035130860298645432622310087760481844082107971937099737672548895679544000498154973054184482657154004852516778362787197948306711772454859530721286343152557325651589839679013908668374097447723219755232343534856799038593156722135536696242885677104952518674783651343624606044159793841743740860284324958340190513212412345749565131459653184685019848955188104445236013279571892314373743117104606476559890783955845263148469431617220246726599295777906272275591012297266185858882462668456839331678091100258843578538156604814127568746438857616521703693332316050953966422950251955189668943483986779725955220265812051662991308260428071518192574493951693733061462065456177326539731983711209125996391160696152944667964671508078791118238239430611756510214264042301311419843932271566704305445585725223179139296321331964045864030210299000065275258996117235332734836085170164935248799480619705694411282611691544399671222658376869263366678538190410899392591787228980021332295267275097476414004727570948656233975818290753494410614904995283002786438956923182619981943571674909273505457641752014285082614977080268987355535640220172463432695449385538466973836271228521530971660238648830460396024694375268642685693669188289539338060559562990314121167518361421337475518464250327055901433458646350409917111641158937805361721509915815211101166012384982161736322837179792379425738004186152034615340994276960765489445315168654058821979067023828054963982979687289295813567372323612074338678432187032432204439965906621866671660537182979682699850186110087332214694333729446876919954176175829372397751182445199032619437083249620542233451656403982938967196488284113950041691777025100747953601951211593597505520912085733523274064756157651546148827129748330070933252557905826635430887529367047772573931358044444204105568371826002652523625729849250290633043033879835977461793283429780380058662813898512961416195970501066144761385644176768515622802768308349808751814825294461911006938541907306455938511142031680843208394457811003762752509536101179051906503487543344467982054525655247283178568521061722074411108248500206495440128117344895686485337691442370665897003717958986308840629149966384021204796242802259509326712234108657761432724262503829311825670085027604743793358585135558460573348311454818019147550380734523241715475030679399711041284951096769540604962327873097141421006694735605307780285140087032177767726758875152424298867476502019383979177654782630149995667016810031005629217842376314445280150594278461495570678098638549452154601592043182018104292867027405442723214137128093806695411079491142816323374350397861844421796179470639868439478313090918515642272185627337278764220127305420482582489264540414228420012510619179251689770061268885411170654022525689721024766135639803853433254015902409626579237673914777067922037605662483495250958789520318124928442919486432877058835985628287974545725601260898793645397218593828963681740058594474616892629194838065564801664233194552500954627596468237272326903044462783939274672913405761793218439466659638326906704062181510627852530333858515574496770009253262042593937441638433111311115353397203040789167790929377160576172467094444665161892490867019311202109935527349448348355922248301708518865325255001965636604032755686333383557122884217918603926921750833702911401275557826458286618432664762339525213780517165899656438739719199027206229890734495049674096578033649767055190572263064817211583307438946421219804556377942300528301719083526011246595982137170261219317683096124821610911088307281499712957768873357028347563940263910097849369754953456483041432943739057456109114709026051984012630305754192253131004708533195603938912809108718399937218138995678347688297415969618341978521689471452015016790589417706467630202523904868965244137979476821294776090789506198031635906881200784803777021549587596863883372069784471808769835778706188803215441677579827556791606975868365638679389706130048205863930082376515738985374089591833148760537586092905197678534262266883094960842297393708550728527863946849163529095916270105290395423221728263687733029770223258835563837871712015913549016672043667928923619926023996174097671769842330953792944003615449477276882103539828255045495791757719183779064673587487291965888938200231160968533066963544478528043775650102621809531008850746572111820228060258009329659540471357131258722779381595183119314286174320111874656035606582816547694927928745238280471505941230807218564134073668003734398160493694669076550439231051207972885870279084870884748538625297626748672507253227927116560763020803054675921629719397204113861135920184821958122762696783254025636908152350697144005277419198880269689398634343311534263783757359909296730555289089649473578242949745828198207897096035746258168490031746997684849767760636221172675135158100333878048547628827610954586704180492711586926154623658235953311234599495267087974624507497262289970078406727127902923535030600903186538515838224261841276217967383769725202482740610838171878939205181601740533520107781138920498831652278102651363714791644493070315736822948509971465434735497668194151857706534900689479450267992895503528128808202211760204560155612911917560630121026449304527232433173787961788206841721856013921390822956721509839849828221653600045854103127518548537286789952906904581327148424928825531050315467009507216999778105169851059522055988135029158490692034365007657381167231549665530198190176418428947964889711294800109251358827421672675399718704970389730737637526503729891688516704890320156338303681502449251136527858757543074626238553309458120508073895650071563722106199338792152816831255610711965055691907882965018440580086885727360252017161339100115217287227571568956270659367991574284517283579283740553442810618022205275222169124937602071848227588681872076777214504337669621369922198915879978545730343539451463595164345165599902492269712470332976238769639655390478026603470135005113818903323230975053653486557363527632029115994385612456370180383940935027409726420698098754934850356993179867588803993161044803932084486069942935714488209112969696187506069981638520276990667502975829100319384117983854583581215375954545788516759058350477742026247867990987975515030120662885833272855257139083750996455453385107366805379477615257836804392503172991671880894601511264288095558405716902365007539285225429974391520160633437046303364829787422446421519636246130130903542939565808781483723913670527261882304978501496300793042843305050467229087133232629445003813900589150012976220711033364118439964628929040000059354993917213727208954932766848255411962711901411319921820408385198844780514354095786186142709986879259439520673440358295984094059557943857073156756058965557595330444312964326761849229899875339479105540142211013866874979821744785487066271420833610115674319328242257617133971945335461258801172896416896989331094793210274514748384156043684859834071529497212933577531715147595927441784989317241030181021673902857307735883590079094786691124774194823563425664674193181594012663576576383745591065919930099316812947118534325037744033364842260301132933917550614140436408960541204609259968093333328932266689589383890185575736451614278064939809312447953199039183222458963286040695157053888124367616127812180963801765195983046427326384649894709472575130781676003879946590021959540639863196765655132790158693385497389417143973099593869222244374825864449839381257542773159400699677210007226478017329614686427134885294523312008416012679106251758096769658594817433672973330739198715302311032868759887356994331597699496777887411804641319494286332919117278649181851045302233312631021009228326407082171765746394631613395585601809262787961202868276667618072471956956552942367539112036435791643308336576930784227161165544038954736478378456285335016008113849698832952956457862739062488288819180517234056793107948564443428731481677191769322240095404674372329890021513276469632153750065814619088319631868184991044730184091369472008448508061817549505101588240087347371312829300022118045072670264481391626212483589511915918435630146578797469155340952620349605086367892175957758265038364715551600501532781282709298084702071501896824039985949136713901525612100802802989312590198331751370689818909022180150010702317110058159400479962118929792516709545316836419104304422791678020490531374932521151433178553916030030892426181911847386874069467934598722813180126698635324804365491757290548872664116561073560713839237400729020440650877312049862957521597638461058846104430422748193714973676866608536657937728983506221632277698738182882381900149132578898097276629553409045240951403068279725268750480080733421756096325885060520010596174150411178395191439871399011222925071857359330525022740379478814251162359629114779150502343732921646855007522287550790065118132498742894087547019754102793344675480133181912053673658170080148558674834723244620513900567747716023212600354710434656199148219084792658218833935118526584243563164802439989614566695510542242947317881341520911131775580024253138623026994899840132024392056544103005818252645085951107472226994234008510954567028304779390597624044269210316046036526389646355745946913134043421945385501482559523526780732609279816902151104098196963642001977122785274371480952054177595519161620180775180334798178652018348336095146607380314672310688848024684534784450363511612984164490679237978110416236189210583103380034880657140329197517406853839167644934216776796448852689258776931347095419399517808897337022556682484416586729264266605089595676554578125746995597746045627754525670600205670526909987337342311824066771544894399300647872020046145887594738313346202733571779081179320578165238986353497267198125235844374722888973338416252333100787026469876476324885852283205559493275264405764033011969014726191680349007053297516362715526332711043893900840601270200841231054034539602224722070506358576663820380701972082367413381602204320676230401775661872042131680918242968870291547546360488751586286196283631475689760446692373483230926819605127062711114321295356807620519164743443372955381808656442645733032971307878097260311250959010278323041814896359190163380885744535680416375184955310673874353348192708296627298607269855445356692952879090582652375092817312419503090105506447994932246103267467562080616760244036798276766611515682391757917480432860544534961240163450006889716304597791617648898411306560177944569638140033370101339046664842866399206583131044066664590013953880654935697589223475553343412801958633268927729934638352502123996555358095963950109735677038601664536557803165908981737181956009550063423747106189751943217091535398092717763012866652625455894271222294436974608552370757179045553583482207524511326855028014255065198563691892113634320153716396463480377002241942289516261929243404546240895767976329822343430620145222519667383288332594316314953981485211579308860359780832244529124683459198939012891435547879991941911685927138249813674681704939918137293182906042166312565034364635451671216730139887195433424947957816527018018598971133165473045789081260211893616943797303020891370217233892158546425492734359291969213829872721370297011779041011749226365838749732554203954800516508209009611046399659689856056639257105588055860109736118493187842835851804025876805339093103583398194087327465083073243578516749109640038396104860426210628251306535429273417331861588384465049112724179589226407301092205131214190222631546177892822666154409614428618140298425699337624392007520573495285335227268239030254590577773920241157786265201068657632453913742153964833912885077853276049648316989671549647375536671356314801025445646722047212763227952851544331405942641422591640975960809255351400945105264370848899030520304716952073308361375209918498199322507436497995596710107266925717265952176086609960520687822708990036045898440383122221061014786337271657470255452446626400918401763885658159929958572206241432713536505476988090763785129119670766243358604504905649604915020161408243004432508032682378875238785894623323718581147636004649068065137336351760133875730547948028714288417532830988498275684909654264496227561514689587386021833585008149026818240818714842384220724646256637925524473562286924382770916791059829000024945871212460906545968160701736726496247060808966555101367516569909873197722674002468104868001408006917326297080007340380914353468090568118886825037337083066149465029432829596219581260714067021219899842611410198918388468953252739300387470649677641437051494663524614212148719844371916439588508396401896469721939767617084360131735567513172227796664007790006312322562481698425224270418032180137660038897608789763522556197253336743782473345776270759422724431961529502195152201600602179178099713757298218438145969509032599705993740112610107577882363020390567262047523678262160020680256188381534371482995935549425582925844656415694153780172528694876396967340961175453446811804442325129027847890953924244280262889214142485972624478597575605458365682951102216012266864485224956494814694206726036113519916054707351045065452129983495908160039687544749634774606762034142401940766729928793147158338530782465004927254875558848062419279319820303763155626334507353534824778780560173308553692177483854823428392208311427715901217443528961556850457525588271169171322218038658327044028686420995744969138255487838423756127682778946683415698991978929746032755349312856627901516308158507282199662838129205516325880301179076358411544826369480937289622627937875062485638027209539277014484880334284601729603544185250485092696360539162393892547242632366668329489741864650386716210696777935231544858272590919935675363055817206618603271250179359561243640661905447634439753305993666220021371313393266321832283630485674466394896270546883744091014463714117142586981841126324522715379173199810570656953187988533442045187810267648171564002945865183584452673694936613274738118578401811661600038694659536579559661409737955400209496966224731347235663550814207429459436329167691762593364282481465929646054834903258975015151967992373536982780383032938519490849387132944624396836356407420785269163908746364431397339801745291740092104891835522930053144530738018041443867040740242581373113816931635285629114376770625738032234205942566717376285439662947726667283121749033850005142790157634396350840793628241891411893197127241049771477424575453077332974651146980834476164188719683737986973810223936250345753142042282476061820132156656815620164615616753210798521840880250863955667298047246506299970431621530878174188217661412071748911927857044398990354828960512020188180095205850117932606202954110096297935308064932861617768893411245862189978429688925536979103463707303947237154694641966801973170929649033148249402438028188379139340002831147183971564455681437872249440804313320382298300646491129051344831623910558818088959802515548833907204259744440547469198500893631617979403427861023787881328799956857005243966088164419374318905427621729892006861879112449635858572194036189383085595308607015037006185717325871583135701205547638302107971254322114378423037658973299400643177978860879429208664759766225327276643829125103713939467539418056968231424135618689458957642308276828846568562253249320978339695365764800954430557216038835652831333432085744513655452179451978266131060510150452216142105375387170014797634640984252220692568865877288140742008283570428320961924667688636953891741789722160470759932874901785721087942853828165089484680694629286144519562413944484612782469783604015385936117704243168259335399127694946627130098875256266915147404025336749517394107176218112142580272266167240044399545486467209333974654153071410880145304678013658533910800242670823691903843270425569971498259414742230309760791534290670561084625254278428154588602172767255612311021165303865907508048699436755240567190912616425789642463428157491966518420573599436054901383170059405439088978778326132878585206791761668347906678014355414986753984919927445245211263560095804927297612314553764361809585600262717144927955338480659521858734648855442616558661435814218743419771451317587217767858573136772152369267208170649106546617121830495771225005705280668897610738199037083051647260669688923105062623505962382945365266486992500793265252632223512568457485059761810254511386560893698684404970965607875197571902024174254929268087794468921733427971839211354033541564064774784195194338120366314156604539945172447788988775228721440501245890946272700550041789760882947449110119732680942650923919792011212921972442281324092621422367688882568454148655586967976176837328014699535820073383947982502292626176202462963485579223766910873422463379439382012226404735116651819448903803584427230166408777952948329867234475928836402556182672461418692740804821071108936629622336976513955909297732519909270788770997647808922171414303041310229863196822143839301187466896121027074869120355749097006242116381644139110294576826402144882380269750509225990863844901772470960184925937716474724533834037811809925252600454838300786029039543387867021401513439192892536975098621028435820762266206504688024223161196125272641256245456109979866778407451466560927473685314274978523471503060577371522451393797294695695376023253443188240791801200802042086473882786594369659859539652781949492852554804733129905024178532587894840497544978533448188374032661409368149590347888908475064017822569538086447470383072490181914773533876099277396182011143959330711258821737284248603745276536340828551648276747015557511237448335902456067052764812063581750355674769732925349160817322694291437691601376546778057550548769729400839401986339755350336477926016250999282220732448885763944009422727567763041114849107413240420509355224568766275582171596497169119301787303212076370145523238695447201099223224278953725042432298789017234910456185043718669739887324233754542225419471710266490481420047705119146176038082889118500546868061269475680430989070816116223912344717919845507442124866128365449867879606927441188745897509917324174022843136239621329822010380464111463838394905190008121339241895195328442560024935738960025853334132232075353586841835031098040174426013501175695688772508481592941187153350205533385970061309565258061354245662961092522808343837624011242798811919076965581323521863668313695836085196115337165016705971648002888001204603442660119760917078918775791572769062730349782313565683928923259743420782249945365564827994576624855115478862703314770012934597184740790653401620542234366492021075111148266417672813127898947147843740135018816013695869901758880675790317802335239341323235135104458700989258110567671100929212866366441857797443455501667699939927732317915502402145663174997352783810550516920947237027078055898224300734163520900083733453169916525946858953323698023553922690801663142558541345151605996431842097573757629181957301578592147800717454718290106605331129052889054756393605222438938164560607324839069317905478568513513330813444545403589649079625094118254740256917619031210649269535818571973940675693729327799789441252107048006328126632721579620213722800429593008153628100399206591215031125941062624170389462642940615242775349243194912664693829418598564510956263171763299380876814491070972890856485117642320946092002309816205647853954453025122534260892101956462361607274406184070471665294341677030035858373206989358745923759174024145215356292397381010920658103097443025882572746100608379947293589761567169970517760026045352463745851735736548419909427715552655095417370352288041405970982060978030971079307404927584926318979797630011976215424602454664553377243890311012147672549044308801865614245259537039763862869803534006720953239589801960636216218062488917557341224008893367097073735519900499687540428555730393940020936964863929870268345929122333617848107327094004977271048562850344096868580111755571198700048300680547456252778770403601214855427793662292864826224756513885562830874711784604853666295372438975770589961057314728656728498298957473556604231474429463886279092493796183557029990407464222207146905527113363190626175110292162951946493943291448471321122405981205821133706846953125837207166054800148761487736435961298381193319246111950121179221556391349795113123278509318700076999092722345060913288411896166857699894903618527510995075217775848325267150126399533645717761827366077510530184672302925074976453787668169829314457354584558717944655370570693149056225691983806263242715310967467758231246575243578844510869975035629884095737098497854906211413003358282448119517111643694193702954286538138776089706527429567482582453845499279411824464792498324968019511703446946036416402058184969293755988300449206128131532318934664013060554238145222752550477672893024392549834400219821358540843823239584472634381525747193882833940371597096244288855200614610326024089442703495871183182595085649082534418334819929927714084177239315065791366870661133582502895067567554053519477109424289747308046491671578703888511167851554048903140295173922932746148556088115169608566571351483448244264678954083141216682484525222773626611382693054824755452215177830773720224103799686943803530757986926442256544009809148107774162345603876013841898656276635277345469912286715811853981015453585632201932100802163168975736980546198032257425396782496259842796154325784144180684396602124619905669956442147157584962134343574827590000120531043952831104760387216004857117684476484636108299538096934925219868729813265404581417829206636521617158925342398878007231874289810793486248195121941528510507273971825878754430368733873245920542862581109601582858089279409432909071114006110222198724173128100159059177445177984117190845286310836028229655545288160284082632118751406240116364987919549370244760069832022190576098505974399036534977624788378857557570836096447411389637073955519072020925493938864946957673406634438732317535501961378185190299544343931835009780935559142605007543315624523489184874389739140888234654897468773052346383989694706067797501998959354501003685853397747927738998330309513344206831850261509847002871346895604484107553417176157701262902420865178094794537160296013585273225240093354081731960981532748331927053689172918219778431318723032675904402406327639535399416761759559526034888127944641845162968635712597540723876709005921502581468710779670583049022358523874629504616213816079411331205563890421871479690944560447937450309458092322165715083768499594873375280544743984229334261627504546421390064297827190218108202455998811332659789644447871593108929696600071329915935961940799975159141060835772183363244013736170492569591485373017639477300410065434836844813371927805105521642582793691682469354968937451757666517737843648428639171837563892272969468564708471520300357619960613675784552416221850820835121723865511838780739705147531982843078298965263570560308108343726756313128129235254669978642129566856171046263216682600011294226091447855232516229080578830348593847584310131307347320874285238431245078898688346379293303019859439263017348193780302267902370220218207806225034253279057538140934456181683151368207351075968404694859654255353153316170492535827620257068869052894212724247083342596621634523001665147251521130749189652505187016869327788597848757199365251073411575312674870806459391027987704194047076612423957773739670419293325265668812495448232892244011501641775212518968629670148517998023544519937263801508180483027478700057556052407218645617668773561878836195812758566499272355928581102034208260938495963997279247812761579900003795189908586116403010643074264601777576357684627091521867782997152042497980680246042132803145756705027674212815109692426730270265282904510971627448053312787428329602226628429715653732590649357923893489431751007913273377114004182501900587594876993484527897409054539101354945016133303853426976917917377380257738838353101796539133061648538553314484623550488128075558054778119768442456653754046832610236969672225779091823602632059858548869732229460632542410801187845071719442547678128649378011252532273191435642996447610207522591401990754771856545751550313332025625576158117449497580449780648809388491669918554079772273263586543615044523391634719397584635556159447413443193041782907886341660919057383840486348038242160716048025571450444762203820478467802395507099788598015329059798563684019023301064616299149959034124791522073737194816495060174042681537789463226110636973022526310773015063475178106626555886232232548174497319891627199031746632077451944302435814440577972378611406993394613934587494523529324440545445976299779180526034028150355061955209785580298950653747456467229993923512718013327580475295654190760979717893517461451155730609415620337418369154820835673355964601371403830073263708780186776008155451561171512389372522373612953658966986394638664419517018544488748749618580500475189152413830220683253523833253091023835521141711760364479218396327855939367590267122003599303113367164410350739803266977741416430160480331408049183877120911472345314033467023861982790043961979506174555731415559803537389257527518026135411749712631311759727600262734667182141529296724590095234978388100069438110094432822068000629209802712930984209702035576776086090904056672872079612111642641078278336243170050960732204434580538041588544992646589162668581941449387610281589429866202514781685978717030809884176475366628660204844805295684862539819433359798168688669658708555594583418434848614814489124260815582240925805482687106517660077233523243656814925288498775099778584060510316093642282721961048498041499383947083387593126429166825102665572215460789897781820078071410360222252250945916091162652421951927039038997223473133828401527998026812909467559828745170484372809062737052339476851462142104557393720187061797856340985845526099388736187943897725894577298148546769154661970826590034754741992721253463168243174808853807158990083587823144315924335285134358563245140471757398699531288978221940077989678842467891537848952517275078234281913783797630273966654695653741912344883677788780681866519586292966971586012302287486601112747446078172409516561435978032711477195657122689264870842228464374745731866399322315220309314428504926597388112532026478799405846791101933464163424502678974441865054307935270517762122532333584605707690166071016026532331517254020767205221823210777659060389437121076730328889495347005580186856588555142700384810777139291693838214473507871379895438505614181177626270178707794903715067797690082530707754649087909195225072108786077731467383228234740060265364642739323573794212566282000444044311072303579151683056590244306778821667528270841027738076770024018380350027461958811990840027269127694167594241360681020673208186748977703221173371626885320560216937755631605649391300440123328319312377867901370264302750542769970806798158694150981857636857857682237262760375377896607228528073720226847324611465179601177526458616087776228573573066619313875041920589400495210024334281499464855138295605131726760075823412472969731118936853887080959727766795929647408641232218221083549196253212930156843706258852155676155051339665425619685456199272524850130757497094062595923859568923664628939406223486439974911571725435290791598168317522259649038975783632112290765184218037315918684897447134364391925411759849574628931684682974111061764066891358569890713159720283947154568433415415003690570421453765360552872772157853054432563050877066806613267662754708183385668487062578765639827027628655775785825330084196042891436318043374061198345628860982368959127125858511636847037970018919713635519855500675232121744112615106323003028605989902914710539396903894179953826361048918291431931333765756670741842000320432300919243927811384625033696014162049535264421346433139828321141665764880248613581134106427304665498630151809563257403402279907010852812667865830391698017496747646291881943967522559273684151217631730553048395334288538184620117433021765130857700516361408626757112648365432309365063013982891500914474992665257271798471589202857865065207235173410040449146537695873487637195841233058681118557563285506837729339654921256944081384107062770496601273248976596118515609865790241468088015612747775420916987786859470343405340480605391086022058026552543233958859858192546435807961725252491060929125021044892246091961541506585447853402094092919782179477138766329121107271775263269371439455623549710702937966834946041818980691092378034993454479943197292647071257924466734802751961394670003415148281145582166819625345880511796061888543220826858036043499531620894919179883322424442091896990168977817530995728302914199219472949421678242619017769696447335158583536703533441418324324685722652382679635051312606433080944902243141860829647977329787941484628764660225613104447149349384152257307927924781118909470129388638022297605635110445445447692542865295184728946139000857772957072638870190109811165213918763031249581012523029431997173557120857823465429995719270470012695187000689089074645601726764099670489892878316916942749572794423161464909978697960148855241216817880127837556373553619228590694696842818299352101317219301551930319183616238281433223493691930031753774117693232647579956866087497589851577581101611602708934077314800422798586857822663614476187494154389074015566304367164874449695548475930739857576050471087651183435388287918407498910203842317312030719318498636475165157183773697572443391892593920900021380673065824293419757256465167499663558264678579179138258627527621890667915030231264954604004760879648164655222257291408848914277635542305365222443951680681628857883666784690355634381502511577785623913880681978493476565186124657263566240865204516529920236215297647434078953815417852162371463416592725293627021546466488242694721400613350003676200125274245647043064493646744281167817752393817730485334783078440093362812219422922757291576582355936459606609427651136854722448275286594432587418140783552863271996596423252139773715527614271557911350687484121928473078619798102033519195466362578866389842520537827592992316354231157745852170398843848916292215292613182378086365764133375036301777967874211571194433940415736165783003470095738610512843487308230951177732723776402423638824485395538008074587125006245024284363996371999567246412680208151193058954243360315203515230982947459232654080770107131582535471691006311522953358421483914416279590586133309486994388729656571945633545470824820703555106006243918510618368397912776464322804684428352313968984452406792716232683107299405024689046194741097527794841373582601617855934142399960727948984844948492294471848017190791903553108926686142660200390684287285088074286055168269125316296864631341412260620270667762809019535656327130223573519968691673251245730169607436864543284686554379420139227109346354350406256102001385809236700044561967235437072198449429303580204449413798662298949848938684808519853855488689096607538989056562644907674663312906787959270040641227001391214771523191736004068816184223795304049141419521562004814044308105915886659966976422133437370451567423692372609636347074567391615605145568179426398412001336895508524462881099425827927826692386465705475007480892223110694247817477052070314011857635086380971159242933258929048031666859274076036625120429135492349734326149106223904132124003065441907955242971662421631195637378985454514633353999964393269887418358996735817583002207945500488012295208028258608725172641055594693737855900470308761423294178851220667083167788605103565416820458056040302532711814354963987467818611846358136059744282047859166075077444330029912831116718172839553477329899527589395452574519562573990888144612120790517045716940054248849403846991490294839075462716399468615298103441687805844442831409512281580799523203736612874635324295100218844327407920532897630258012357246734625473530086329730451428761095507102035605673082117037949565764276308325353626737110253490462822633778716766598084629275346633087641768131406881941654629405876839417115040438052188156368421179085036315134115852432037721504672153135689803171459089055929748158372087925844470072668875371709962933630835389340929293693203581033505395518683347758601569100691082359100300559099141278710882147120077984622244912902957926857650597820155649703712262065690276190629134397792867445196086580783305444319616019318581002409818689399788968538422398010536150785542044250404743473406743207545065947544630721445763291854182556037592550663404575010714804231956357634412230051396227627834193933484783533252561766153371020329899483308220481911910618394336450802403878241866156749626152425759238069891192239695745840297875714770086159008338047935353764572736233547428578135012677090743398384516642665519739496873648363246876371787602968734348403283035246145135278411946342743787294614812087994610074064173141234571380085459965180595303985266034648649912248551494635508056340360520968590906451793841108781355147862680616953471897272331938031612580135334087453097552059675335554201954673146588846242932919658648989407866793249918618757800308303738210444925199579458347269802924876666542544415038986512049976496021803535229915548209000000289251864603585003084244391055167093507228047718533404425442796975732456593106979248550704494020158188052022850774587460785192977329622282841895257994105175476216740535519791113222087212181607813491824155311788763438051701054506905294465174512390026867047336214046699971718585741802862249902593506684888914412079449264173487919844185620802748462888722665556472917503334996912976405660354155028033037683989649008871025356324357695922055061132147537462403246594973446013371835840965363239540647944959423562400228436032891748555215781270205033111713694336685037103224086684490777763455313399546794351138222103776249013242684923069770818543302261974321699210488719854801109513924150349417633527768832111785799535461657854378232366932906300458751420188801089601378442155009216436050609836120228266733346051661969236561041714544230978399631091295380791448489960574296337882649412074165257467926676728487472429913563886505647513747244367169804827431250621784729831544732658470863093061156914065746656935824355192579990490738018887877583093949975550136820513638179949236548409207635537452954534499071294760897718651254388309264058769119286115852260497991572270800921728427563979085271337927426935560609026377148168973570694375358849050410030993989926350262971120242218011873993036674232920690929567092645873944224398213348102165250683554384638276018049582048573750798357167527966962717227236298065129850005087963179275550475150693504354002885913912189277093286167702055499529467092860335501700864219304029407419479690183782905772504035118546730545260017866237746811829876455865636817808778467884356294023371210250768668339253139969732064931439819591492054655232970019587920023527447787870044435798535107907611714839038775331167265899643865059495057074478511732379044717593974489893436046598376466837916106419603748884089660206901696611284550298893147022857155184823160772093664389135449770401861631834558303101229250564735869110259007203994840404767954258950950788412608659497147795734530087858049130347497398615035879071958135054005362433917689096549330227015729193282623253282869418090321378960607560801838994620773278266342788599099367115654777927524912347216444443000077560895391587360239663386308455740047113012509217644522297664407448359909860091378850652523808552641033648456804005560141670278614579154881257736508733042331614231522927121108735176739370861691236465571989132923601896957346222679315542455701619157634160000431436877795885741335484567701577309635659626622670692081561306377948478884357983919561003284269555669327507657617298795913448754014911949867099693403735815009140437880223758853412923138986537943909827654991618145902995384540742921872787148181318667733506410590816797830011443952715392435255112462907988938903841942213481510638363965750232789043240741055132483213170362221301876527514373465244162269668716374285880621343511026252332972071322797676837918020134799647291698953337324726507876458481439370635049236175978902692702489878466799162216280764214848710037629991192494292302268618825770527974131718566804578235132894684781595029617964280171037240010598707028797601472978104140190330157261250182766309781989747215451385423478656276512986799189541932377592689844306934338714596114380500636696849053860044869951188208837119909040052503335618005488033031164094328448422931917141169518440579536321975225363147729033650577979614691845477147030251781931206062728661119459081385829509124751330525675665852663542982149570177883676397430191198277466256753415789308622991399682702318089837113977223050554294300988576802087754337693689333366990240923447470118302597347691059105038409571982999707147483446907840066396356925241541802466218732095260921710767874913357040673210336003934344616694940637956984782148215809696588083893213733289825610474424842853993315342083050881516213791838388615064370860516034062725040733583782048145218008738556747954075412291469113500161847177276809303777279712196718926475009833389326363119151204108304960179521838720367361404983669768784791673851690095632617774169048003518262575680587737859964848178034557113436236895858441335547246033334431398088177654827928587390046186981707443866036533767124749044142418551971401916198284154617815641181517448958481392994149328805092335376720308376381196949341022668135266375316757484900405629799981592968258544749287105611043548637252696405006795019850877872514186672197072724964057971871375844671724298285017848669717593444613479923374742851146505688709407550972127056322633070936525933605903846323424589143107871857171357081991274164541945553690654941390120788954525454600765345684743133689649240643658793366947891324476372281655541371879958751622502662325524455558061153976206275566380070248920369460121414332648901277787212338648611122257437978432619301158788492079082146616727852269401448497974325748750792786650593724802128510364088100528803609939008776665549427393113098575869391842825697143990490955857558310822295513041633286320868124752270558607073028842440857804999562633085535838078166138693471342751822324548006863650275764697346281377928392356964348998121498320553927804548436849736306303827543734977762061088084149434904116861953208944942136622381719139332270727499825394024900900638911035620742568370202978466881056146611143201466746085671428749774349976463662374889542375178746187672522646217349275613759360589387202486926693353328960904371822074313901008228160092428195099004127938931398061631861502995414332071383857026196653071123608437239037056970345967584380619986025727960123370021156244377357775981177353369417694523660912581571189179730988413388669465578296258278579035423333361743670815240351326251726394088744889818749963165591235473140184384579000454239078584918484585760415295950418717022105853790663311500440646279535782945661325730504282546070051606289576602417266412435582912976923399315615451732783883430917652923814216365912458395437346123657840148152798378776354619317531191883369147114436919257790549360350864190596411639089212301669262571481355986913314380573390113687533648534719772130042235471174238252139834684127009770404568155459111024058635050061589032662012249075616050502900860470278146691860510054834747057518593075583702033057709778915695839235149314155802135399410586095037762430516571408074306960205100019445727913248916972244497009314165587815063005453892037959347451407152643646451038146661826710525224017709658731866005874195196807926623501475128843686524490548145688320921136045161226620539656368202369613723589827034343165641120809723697915774757140175029687148229500963648298882252834524954402468723732883776625238761352530483383244313924738194628380452045144340641534728002677180986765705608270446506620606628919152650180995078160905589176338345436053832966115716720971257769644178023792964338767578317946590350557866032348835537181228947494383178074424468216440814626386907135921151034740730763170736364879246149088125358414215169719995097537534242410290048690535444027452511197974880780329158508565728003801522502565457924841256344117217036129094558958773368197267372324584106965322049672427151203514982489091070190905494155121947818672864028147584331745780905792921221788983648617018920204938442240736872699037778808642232268964335971296919690386360590851675643106678626010501767499651926144917184005936803790807261669965203081222557078394829791336679102359209419152833352632166856503868453557144976730177692681436917691330137880615737304833051605812804176761654348894667929744898204735640397827300953803065273039783130945131555535685826099799871871907292943536041967440567470844706473737216170473276988032816138460998907459016072025748185052444904633672579862901320515236907611498333992369163784031732770228127236149146517447683174320048241502948726317397166314379814885523061684031680268349222230607215875560366693216412041231583837809253253988213458470317810768740339000510572319958793091464450476779646081160617089720557777582545556497185588282377067716705425665948348112460928865263135370137123316933249650954876839879797015226520690473910025180376511063974663364608793534963589460516876926522023349034194135215216255955965275740554640977873791680214281337503334192908277906201371620160795060899150274694670024488204097778913552286369860417137495390414341343979438440869972985176608446801637677490411957321383467300435494298872902934942565870095685845952479125327723682193052971614681803651451847011495958462636827716956303950079090485386388684536655746745574415292785250572629646170388316801324548690110131113713141621912790149255861640429599102058334774388509908436157373926265110192694515978047915799861045107085278811035776335593231239229271218714587801512786402521001648670308585863601368217296427323226729295404219840183808133047567253257071575082293291739227844272226939232036090156346708445852535980736177617196084956560611683760828372831045155488787911656405382375019118458261379289163771050034930845036905842587649122806266773014911349589157299644930585302191276834031329417336810790962661375347857852017253699411762337229084092309538743315766485800748224189041784012363170467904090358382833190587087291136251524910135557492083409369022870768592996838332975823951528869792993785661702540591739331847755319174314690211898885318419642468771483619607014383549995179585800363256045954410210589016013405072435353966350142417359159820566203935349095997037740847292079556893847168282862150659533373987821682288232681138332322707136314186089086959631219391823610039409827950627803186754253507970005737940426477045274321662614203642017693160503002999075010429716128713771567662588806258855542456108071130704284380967733426803580573379519613385004204494859139788031068534857875936416804236348762766801194645522774914795724687901442211822586450011601276119194584878569113584978074905714111195323175462760029420845002486023623597686685429698752396547999623500767346630819452299610065696635436814240315629686751811663085261131148494385099532110666336303339563617585447769217567350775348399582305759877813411380675200568419857281760359259974219825458741462003274511143369953954121681733868392849051396790894729760041884248288321023258754655694829892544286887664827507234541185919507321208889352555711424093979961187096413759482389592272554142653463725455282143739913168870268390469865735415109906329392284048324968907375411750532624030053231141985123170963307177162045299861709263194420269643990111070632734091104123018198512805008127898443704529381827381963125070327501090377278236455210022674128553130847183364653673666727835062538465334962636597771633288687328749072171206203513082205889051015295258914437365910638954557433610902996340589213368990702088283996971656045229215897696845501135983609240672442857155354506760645648041401575649929655155411159626300881983896384163433155211909359468362671033644410999462782233369215195315554970346284024283268056228559399663544411475326342381543975204055329458865973334588238100596139001556390588707216000295263818638999413324272873183659298715204206678337600484201320188752520133081472613833058463135181490503912372274989445688721952773714540013781609042942188032785981553579379771947572231258942388506887290766466521464900141871580291856085388080728070106816609688347158470896101876345559684485025832549769776672517270263091823823868076149310811919877183285383069204907347167683382655326439973456782626683676691199202049398833779175167506100248240546382830831022123290743438688234602152350607889525496191568097280071878983848285650466519420071549953862555126869778407960105374235236923878846480562515286564280794566852344343317964658767119555465025513232589590776319634971195712508432307327592093919785993769654450698633745498888387251179861397256615107229372951098268876923510085821431236856405703369423399894812148441776904231648206339825762362689231121844728561560523182539326298989940587806485756464121911051514480664458698666999487468351080676741247214615731519701754533539387593151741699112320536685798759617516251211965737411755741042837955762256164393125590975517253453591994005066763766539881627248941059815418399095130437768541176149337927705150414620082049847343939830882489881035343929351333127365220483707036815340721777623331905127767648429766376902567580579233716085205293488404312396252365456030815381732249716059392891924525610555242172688988010874330778505927367495690245024394169501998551250413754178314846706429491096653149064798834910455279131779954426616984814029455698328405233795429899792748480653139434148062565058579929110169080521076039680269311872748293819620514958786215204838786987572038640153892331454277261420661161443718222267482835454443755897693239648745358769382352930691802468163662131807547685305956005810578703144246725514498036711342653079706026158637510396287374249981288043119637127907356361883188064803089772479129629621566816966027659690622200114772060179860009330543084761819968005789662111710549663986264436139540837302933464470428920586798170218807093842301102364682397212004098381241313810016527695834307395888150764575803490754627170155711320637760087132808788305536885909083774391795131814906263704546210523011497295855402950600081941745994435582219936892076255506617349216082185382721069295808687423736433980314098244485378050994197767143523937674276519223049775861143584851209824192708681967175747745565528956835940712213259340718913643318428076130664188531380590862795356020584281721210185338028311772008451504711426252027462789078355870140834669673630329826967404092314727615457962455187702934660466725190131312007505298155284148131074394328725459338352380094849834245657917297958851105671249836525881447206585863430297760661553247577762990760694531576922082615575118163296013962696311967508312515761883527130351608291493811845606925032705998213400102162361863606438666610085849003819529919356058692537866606424228257614609546052986496867279011787369036347359596355386413614355875873054177869061780689982033839311949397944869059821874023899561341560397809878908913610305431168600765659361221231923685569545112680165385930381467912070218167920895252606514925408686571114193576988857098894283265186136260413036887217574028898893116524950846066409278584961703461697715346703589708514556972630009630308158188674824575914076312105345464229272047022643045019978985800650677278322852569870556022766303929143278539859234883495269132367669208757224445236801206201309674519026288217450780042695477979136747751137262650855953053804063305858223782093373479029648936334142184315156899510905587238934358337621943054462525909557911329862954672923082619204011269079074266489751652452952690688092743677658784228904227796830881160588981910389769982590571742271071412804641982854839449711319552784703871160680043786264912323274012068612794764592854039318897285144054012927550941102020671624356658039189616192959896542166783184207982308163361079016483917081094736985135305357800428263487671734488722056425033149571402574952187368891236297563871868883861758494164952885198361480866975646419064545546959249781402545884198491576915506278547852497414441986447003323165456881580443809460223840532906189327430707015277662471254427682464163887889759912677719048381057195915777908006868011514420840133779669989842792840959418948217228257614338787981936811670306453960528562021766497365284376727441946801834110572617359090977166014831268216866879417233931523996305468579515307659455409038928053602822441539018276911535880737326996877002335053624576130605783889863723976166430842207209310079411388459302574329377230846003996792108003818788659031890951660904458922269732377621105586376897201627850172369782751874579524800569516851959087435470288358992817101754546921804766429162813818158883216995228373789435130962264846105857256857452228469589688081564509046877104435085503711158055561895337047002030525632445419905195703651676398156521873357559832192952930619302279784876764915409966791189363856786140715376581944670609811680773474659629007057823918593625592129149149337617378170593975904913226121204780638736126894212197520014872379660636197019551532715643900430092835922955783415640429951971276911568916045774833849043461449125999471285203802694098759435988434046746887703907199202539738553101795916349268582016474448241870365544436954804370063944151753509595398045487163633658966189141670119991319213786965697921370832815833447988442667783502487100963934202000901691962859589199623669579259211021045035633872957438148786958396872436784757300531385073557738332099164041862106310386551086492191762122292334518390316266681613676073841056407702504882023052695751317140870554613850520877673605413112230098916246803802898840945451500223294011071090456801236047024714831470033524472892404894269236337046514403754787670011928452291305499024353744704737205860837423710036849052707971830258474763970582161627224232668783294113816750692694938157754550069385571320538678098297294124914600421720741829893991046036826633067380347210913941830738035675568437906421198126835424308969143292339487600547795311704348189402429039282333230269064131592465966795677496117457885013795792573202869288789093231104169409350552635501878809666304191551733524126715701547822069349245284487589269248915860496269999313398039265569115103110386808429326872978042664710566936113897495897556322945378037334851340734577409201550360270127189625037869806023058798882431957305744211261546354214337923307319834606091033286996942563297372333334358512910889669385821363137654353383189947944872626212234323253476803068240313453425219776640802546128521282270161781472435577014492497903916044152559630656734292873899217164419807532975717334667197371382379401246938156551502132117680029643435287640442193348341725566762119610118651064240807964821902557104704999523616605839989298058066983160745312372669104617439539969532725238250579486005050096241020855397240296527366246189061955452389852058756297156113572741758068649268835301517508159862062390187170995417692941759518511615149563839299278910149059800640441158442609526970861844749199058347979632520988115140523617870158375993240231544776600028078418644865540027803386117375961383596927010588258880221447659276976365521980872967311970781963927460360871474885461266350746030509242684351173125499209163924085377809731430030993007097167239576539807560630009496515139683406142803035345770063390798060994774566148356027035087071682756611935039248074194181430516751768194582957614244916421955615269073262271259091068368258972070172794252137781456006362317414876820967306998564165730026497525609804979058876533994397496663706667068630710757496603326951951009355240809817908266367262566177907626880784106867131947862400746520257961522203488640092440624396482406174289927309595487378004524566237156515652039589113811474609926494302819681389734856600895402147178340224505234765151620147861354408167683354144578979288476919679907782420274370454724650079022952897768022270134613787142229047288375565371108458275606202304763241011966611601930247916464984898953164779644409113479987045429921068662512452392563690700386030198622114429604158264038371646409280792982507208295325210099822954743109068539786183350959881523489535624648767037622841803145200436116265418119288408270467870949073110707902862819609897236421856067173989296450679360511782261538257095012097856176457219491707930321459583867059352310807488942569178919171718009042891993949156325157266848759228367375049762739727519724134069313868321184930423064557312256814847676646803475745249212103680901797053900941507439792885884706062666983159165583774546214060034379770316873480550490536230819599133670021113026780695754374281409707955294783497060378107528943717171536904474769064542627980071993622160786937313578556209629489501344023725171115538654975246909584890597754243626399932106033339687979357079035839679477818920298817799831956013620816311158496627553553603619491907852198915318601572838327306583541757898842001573034125909039404880163497073568488815608533408804598915113660930568595384932339337867009234222899272819033293942723725132966909041944546816197729651620736689491694027344716345158654860229106286150105214232097055417205637873917396854747828472462990630124479886838215190704160635645743895461165864637068675875636857453688011967643583686015341485934792600759628630315034601037083752978655868226098098388930528960073895808576578370258183736356232335714125528918911170590383398665338722875611005178577940278533713093108129284381595996192243874566941876316596311889164734293416770855405906248787229600654777156839344030366517632722212063997561505953920490259371541083957953746838348121597762856187060475655576822954439521102255365268039115298327916857406376441474436524587597926596913450142665610752845296349708960752055354269918803810275735031213792276083480661095837348128856259465617528437850271864307158473836560552496289207791064599972579254926960926866197872729257111183865279584556314950703937233981962799675944931294081602766446123602564854702596584484586827491042335228535220757793786700319523943787561031430529958503123605914312997650574880401152568312362569885342609201159562707124620642876094025826534998067774962555611007640510657886430168397500498882276632160665868586515923311405953043007230247308250930223894305606805353649084446050413390243311176054160464958262275912263127255728631578040323658530225623685626237957057803271781829803914358765421784586656528476871166425680626411942547671667039199923903921953341816378219942315042837546195772581688514857735644650401371683308109269639648806472543223400573055629185953567689618454974947363872978443444364113649338538601479832761817459207509469513815379918036397280083901481905693301268727888999212093097738682805751350137083080986763358713746344507864487247643107966138861410829626302150801308236535639097850306792021029282089844334144411315115165090874626713082804621816662832557530778650595657552570057264647839105813067701209725220515576803460214573262097039220505619904313636882958615524149788785616602082944699826899630297365772130283120586560859587376288852906112805795365248215049639452406751253424212599948484867763695955540694225575741824991741963276153628462220223727066267071747872059853808843368590065579032581785784310474208503335160597434063188727405823786690429416267518843943953685446879165940673222503367204693127536143077363088511541995974875618171348053490067347693269629006577667135784860238772072155591858170215196823458121939883222733325191982242266396512146413184480858862522306485507268954028576112784168855099256649043313842922415962850234303515649667978253586806110686799534856947937260934417716325377252496270213338249544179899812538495990414001330929811081142508266498494688330462783297913704888649844390309707355225597009603205510093644216252485759795670851163952407645786640005102887858785077093886786855087765055571684279864698593977039680871246396825167521979716371754746775491942779744293965433458911780805756022684565267760726944459034202095293251756612591924502516439124710045443937085647107367142242219958727748142511768248519055948489898409354073349227632485365026684787871395619441497094964812912725917934078790152621280928143783302799759233644292683262810904787091161989276252050620980587093701575615732259814171231977355691933687394717143558723027468357302552135740168589606483996989029654747494756562062910895655326338584086179657344944525602539567770933876026531738345237296611879043580566299260292635907406939621135337132551678613340009693661212923366744014125290589960985069109663094883260215971146258452123751615228386938732887289332125217045935189786655904548974351755229180180298472637042579267464209339861152713928979565650691334913401311741795755658454365873383890577315900197725773370795093259075645274093888764734413739498339006981530273124793263289640881287503605946691669452853620320751965322120522765504829555304555428587542293579707155618957170970740440672201224961713724112277984484157691277017961900809902782868059740400931515909211789150932716080589600996009679511856376008309762428721871057624967187490829254964582581624603454509640039166561835991613637480631459776285397788146232325654972384815101292146665463920784024260411759231745557865143004481858633528520219029705625776894755075062461283941072849111566172776507480989076078662934453577046774600928550473804063867771235179526078505227721933436398365945087794238320759533814668259941010224253487141621343187699393866794375725210012263246367217334361862831193342193195105009931444645889910621595151774350742758851199611658568013669336170706351544721646359496459818993684333348050692848844015345690423519831989853042306406511109384136198581130342213579473591971067856395512259244288913263078449542405044764260261558516581116260791363827232519631204006146531392285516205754025860251618223026028950332269300634528584480388863955538763350642391768556307193841310069087589294864647732216670467564372208093659698451604199106892642311582582624343693704342891939440079524250688223805790766000545579781580914607566153211533158614489108270839733600171866119737451159641930134139538006284298129109282252108002292115273079915691719575593701389824304365762868446221134175879772406510475620855110570670214361116668118639386900468058242845872870621986375942727587259572010929658435903333101636908648442404558619370239894779491911094562295708976847293255512037272158085535264308273404439178371660604393306239318914632766139905081615664909851380232252440272188623084751316048602784894791104137041768890599849328935223612575724218491697620783510523307582280553402084899042634558264945205339920804070264171441978472572825136691701984473846278624435855547010818901748106819144175765941834827404307197071323894958119786445692798229696903632360112389922510427195919576093989987130144666298803086814428126689728933674398755105621608301392577193695786326244184667394305991932059602138807234882108905710169997462597969936919065222002106502341748560965055119421224755431102722987684861419902278990434560281568446946710581799492289664417499773646772418353222529296991103658989679583629083593288246256401919500411372343930914928287016574015427777341001960995399525990868077184861764729019130330944131695823502398987083316442519275786696853253379193069881012580375024475426201119077993680318099959552500569891938869482174631247809007285159663251221477291557840460930364412053067728548745818855613763979243985237337097389467235256105236531324784561675799399080246993877030230689721522797997725143656754057822212673139034726572091455811735359123262279333367541055133256866560943480459757351540503501705941876562855863841268479586614431244059276379020321235057422023801453434428866728808994520816294695473821683613700314801071420749808731062319533047235899474238456631401177549152325756873667056842461708875301121923606580631884868405626246287954961836328841895779294246249778821941315153067002471454301216010738057594045937421568073678725566450263207363659372840228832454557193568358905407664961328281006703490249300374263523259052801809447297199558245490007860389585711923622533056223823508061616487130335171606622645938463369097638973221879165843432353214821513762617953532892893613220818528420609496811089155565432564056522499394140930566566124681904718035070648371724809014342158511300931318012996207733201902764420246341800411781550966364131553849682357247828278000822089494975943440535714118451426948378268417028733089686563933501024219361956089584258232040221709291669953536158920402482164319108102623485144367170637073409198747134654530147218942804368831298536606996314563231030630246827515702115730432388720266309070471891973709546985815192982444781333387250198639445481253263646370848447128506768019472962994785305400043871716520019264773089414463622989419941851977094378900560583907359390544166149982557858166911696050304355220928533610247084265836808571900107648668481198873133858214496780594620324326763235537199173883145327996813978942597221930270299660959357112786225038942619721779903761270740040838270779195383966410889935448692149367115920574112829448666422091146163770627962749790397802218954665196379341150399721758315720992172088229711902106159496056189327845501603408921902461999423893332700806475951940460689982157783236296155023510722548244305735557707367679537097797720048184380017640523953187267836704416730721843912953861576207362471915944729219684385610335081146083288872762920911881724101481411504474497916032335907620153201334386570079303797940425692911511051373098849706889343010910821360041097238721181365064044209426099644628542860480436875934962741519987327324195700251836327982683697712111111379133972438472030946160954216309789842736471587739016300035902969659279387775275595913935635862750751072816921933799505015099442018577980077568241593704181607678015110504920710935066919141969989971820398160981154962897464204732078886524708863545969852725778379229048606529792370598969758952046145963233015030572120733971513443445005092521021025464032151556190607957213049550528728237274227215654905704676186660505154304176076128838013304847917770957584062655363123237283919336282649253175302940144263230219851135089623142755985745650563021596402932294082921984915736307971571054005821650855703596099625197730464805206277775968279242742074005057888691524216491735076191779002117913613487630155008361589766426370950751442406568501654259502265596301152555763305990876940464720270864894816587724065745888316747770116762059687531078450526376420724497214308686280653186237210090408051327051357158203742988679913092146155159844497608345426599480390943071760081745159738297173023798349891784533646411400412405253422026260987987309209278722450141734347678187181294614194378067545216005051877785141865328678116699592825385061872928268647410750186377487119320028099024746764094654117168594663702151503772118689819285362419386874726442851675635949886273748996327379724963476803152871167000829207657579082504202045933672585131823921655627314281879058516230056292502340693650279716497561852982748068892337642393959760780136814252209900163822979854760086950884960465792587285821732907437706424360397773982469252884307615025080263403351797163217692420679010477198961832565551726100920726545561006085988758754327172449201134942208885762299004431110288180958720381154592198179489448648671679551754328565863503985717171723760689960303147208247726744905175969602076010525063353366250955074216959271595147247775355622226384036213182734645660470724949171031593922797631510421073175378741134191739904275940572505307678258377410838037606294112756196546888257628509980054165720140669525155929004405181863970491783884504917292239725242197328324188992146218910183429849435311854825081495930479586283159034522843297745921837838529787804639924496313732548938371032663299692391064239930419475651224584363816056419626730214753169494807928373988802427749824683176193058320995432806888009767435030533381506544950706960148074369385557555601820963793939301766787802577314110174287278542789970302020279590911387282401751969689008109214322645102836480081396779793549272423719941019491804641371796804299003184378714202284317434343712477242762249134957677098437141763414707936308316042112222420063117726676815843224237717469791167959499573476534428700768977201200445161812812743912292001129251708185837010998118827088845104744320011782387487503738215209136617040874566663160295146292473234653211841689149457345735127742214976252850038216983704807942952184309044853519308136881279027686114303783983555408777714979324611338045775614717261732352682954564247293480068795116632821005044719650486980081263119051543735239691086840487559398262744846266039551598244389287159584309983215919452493710821926485174515457553442070336301161414515050049030011430471720861818198184590030311485126198733410448104979494068719498124408629944528739439418385806886882232110921146855190039764275809066952070936202090778056892799617892063726747587061483632862151475348757411435225458861484088804324216818840321660761701298295791524483815725263001164628261799441039217159832458066017889119793708051237156780735369704542529773629994238449833983654032554408583469100644524906805661265138491970864901685299474018674569846267093224152391605229062522911263491564018523294795186510483316689653827950253822611472680484777323524144891935504766196266700802940415625565437354304752293226408736074996555232889855236015571124908997771993922467069178283573291983662353218065959625492031569962185438187497937275846042316001073815686349062619367533546984296550711903502908538390515843102152937040232775856298312130858642208625320668834232038667967781281244794726146246854649700126856764523631779699723106396199519999758357044015130318804716870841477894902854785811041219923868287735660931819186635010845454960277957025364367664346029881319388877701072561324479783954980875163448848656285057986729487053948479977344172016200373800965480171703795027411430612510741746012012818065808611045185176813981564013350172675993263610936581741268075522973555549275631523130997463150504974782767437804931238081831632130893384446448807475248296808132151164700580247236780278742220778275088662482970087774625186493981935362988017381895453032952474450217752677134654306510841767629979090431291354039609353334006735533886822271876840842940742528982203485581004459770292242531590507538269558286992947555043087703622437244633954329305311028364995190290428734431343711172393066360617672715411915350811082189226063556000949879411039751823786383427915478535587902771670946457162990153604382344766845401711471141728803024186804382532579389524325079461704372653709445102890467519556007538192151128142319860442531578204140943716622101340644853894274697847988728741913679367894841071806456195328613331013286711883550440091930102031912443608340481696203936766893243889887902072858794808944364326548151201218374262713332359279190528734988077794825098102174089194089405307375577513461468924261137903963476852244651484912124856613458704229114650916111684609243920121606059188479769735046840581323581780922153790959180150372941106577513563485470339587385995026130057886095862960152606861808955446844885085724537440512857427245172495273214232094940490097857437508653143769278594480402428709270325377396067117532537393126032763777116358276087781286809960922148138845820690190431732545046461148989241050664038045404333904847188308672061624319399680069655868493051570551054154512362515699426549770674772532359944543847756302365995882293034264232285656642757481031553572777334687970494881050723437996398357088642333993966498945195764163567501917265871617623333243196577414298017089920146811588126177383306390638353392998180933659775498154910871476849822804393613242192626906575497639035441600670931942835051391262223253946673319112278273491015358130153238459319272417342689877490428308236575970273678265601673788940144884065388003760848568753810653080939181288923940107652014880122876736703353253872068471851874880985874875265109551287350123468806566092342034851653591606706057500921120138879732542059564629303107449594863168973944895456520961620514140052857594063700477889600125823058151057014701824355047645165110210537169180766399627412186724957362891205282615912095654356323143099815538072099150861662492586755244096391957011848099565415712983867424999885676046626038433556372006934285063529523969422380441265043016031375643049835937170225363163776810398790209900417751130669738601032915213062081577489785459121916599912399099799122062536652341290661258129321497307209451804067450518925789191120644349064236534879623478586391362921236377090756821060786058794678390623838703338376466337662657550933440226927913306516358419769704777521066163280047397551349334370225630756765556961339624023147211391322598240340254678861563967919087448891015369606597932564811553826340509107328427441856777445851132921076714127811316256478042087080570481096920299531502337741697448606056902982709192151874394835589558222200843236831377639938278519568289574673294051679933250254890073400493684702400421103636179230855485289819829265129860789604587452970082483997667435760019236963356636111734533958119946697108201043588326433594253252812528344673319061061477320567246395137630655704459617299963717614416197151171831285803194310563487706403511084735448835776665523426748564982520803439979665694217376603178943667138973268797027347733688428480054715590966121529947831580803977283005189347616754213419007837794418240494088258269381304360693156418027488256418995579764572457566825640913938058922137220148261691156228617284490268689778334714610829803965421665808932524717200700088198345367832931532120353606931391933820874774081155651202662805564952515932913738997159310268536897599471268539869635202551383399454629800146216551388064849665068969173631450590188598520114191804763856235969599359333141053051121028070308624036190109071702162737850604009481475900433269234053431139440011356782975675280538101026097333759346345580626851272935620614021103459581261898372093896791008973315823476538405506580162077655970021995397166771896624098257874480812410482313283249732732939732273381640376951026805762983231335099776071182121846081301081309672875251868062501006699250616403667116452393566762101671233417067589014625527305691206230175968515638036140289782874921330773352266474279021709385375738648093795148572209897595708602380983843375924289744593781561226067945344672328519775887943031630938326134306278342529118125201498072904440326887557903285759911712387654247698710560570835281119341341094437799317203373992077006259293237533523702156686558539436123322081707906092124833052357167695833463885180190446640784740965546724438418579542572721488569948665011425209779848795359379270832130088928389274700309015350394880333844518574417194286819243485363496228912971788841445637295815984061250454436132510832192804550887253043448197540129458815849844136141866394512107878151275258497163288526284143467168685271593505236024139917097700028617317965819563578413700443265525023832595568734021532505879665884425082968525016090498430975831457187596714571182151246138037116319053056826831815449895536488131302058060948128510099518086427407784478044218122118737407347124431839950565793077244236356850330175158377854240066378554055913254521798202381257703440180236720878667314015920806969133327290957803428191840557383623881537065147466342341072615000278751181623195214717707363386936352914484960858068370435571442111671758296725691780087842363898243060292366492410182754637497116605191719807702144932271841924077982354904742400816699236263816477078266768068941382499655843894185701853254954612419093087315457769481347562445316488056719516755813770176017078132452499795808559894377843831065029741735331456412818428194663720753466100398056731622417485422079071106137107395745645586119723463743607034375320623563074129050832925147352447489341672743947273019790183018720639451669077114575187664139591665621224064586476363415389335850423221270012219099858236926013749644832837128138868435057783015418029240024816837396247068787939864542897439620278504805797732403495497050955199414649895135412827751956924382918769920695151285221616139636156438580807468671086627560320555421627071568433876433433781381405911209373870166222646168571345425654339050848908889099589343812154086866632277816059889328462962797099493352148506147732287537954962749266772132421358560066397508472071416622329991375061898229344125519682980231746548398913783127713231899026865977301758260901057593973523418882898035120128375563114223594834905091207117394575279620485406423722252667600368538924774736182932177478916917799946230190718111217166532302248028422126378120300357038727895600893364833608426062506046132508213629375459592014398238395022050952248179061287630329245925937538754276921685071778667173307686190841661189156011080128654200559050269616452037004293398118279591089521240456251986604219221159390977676579562575283539745542042207942467438112870184985964538516510405245739538153555086870197255645678524863416771105098063813928012487410847906283140086327213419494274157129255462444936080108564875306894794978293645035279518511026934548969608884553119250955534915928866400746480616743789845971007480932902626768548260136439186814974777916940360582653455762427859586952473362949629343600173957218605438819541317535327503149452183874268563522459275466064284345096638428301269430612968293517718230061730861047260459507212901352531161620919876902317654059251163180526174885365866886100669611542424334681223463898313221309879948426030345190285004946984249355932022458122630387388788520757721365836271813721147008327847153768109393207179211951256315876176802298794508384998883156197214453593451410402537639757104169956485760639867399409639064555959392448113446844766497800104814935817309235724439521937020663240518031559611728291002685818805059169760855406518955493633411943269929730014149628694318838899902458587381010483632485834701061531240527951034228142657073832908645918029925256828546371356022599751900628115277645439888652530378618148923492603528142232637177773943615527040517234184852651021246586419943455676640182388890972806336114619540782268675219143802596901489859904543873453516566764191150399386347996316414744315948333664749470953325900577747974866533719945809840700193486311376567153106016617804830093842568472830237139372226343602363581529056946981835603235764594789779651606749829565809724426897959651643770569636673180796651564364509190679400265887967212902194183075414812479888140364510875025900263708217285675378796351871772759639492910220604161332483086327874807312292909315207875506841386039451719502111803654681538629794871352642803024610389328854961973465153595151531735739123491282662251495513233517989744471248609406908482056908112702343559310173023187361917780910513005643510649204710632668142239225227134091491519699399778597253092934568994050793882457561188619930713367118560153060228009588134784607982116483404762000253486903664298304561438095975941125293354776701185594209454236421413913060936944294810253928387613216147049409402623686146041487075326092107765761722885464189179296765614614953436328588639293086036719949116926185441985789559851356185902548485415560670718634778409109341976593375761723648104017042554318049635202621891970920918820961582131344450873603394428916150492783526755250424722493674038609402677961699829148777975375451867498752753180930288142657648269275822365576403931863429590798028356650041340800207454506392818674230407845965874714036846289456704460636867170267706537402478250419370259219419858760745990685242058698584920426236833264620951035082512981551479388390336050590377306443152087984156587089185771388072106281965235364219975963356838100733605864733288801939492265393083786618884277392105774145689224241093500602325446417308702639300671142653637929776573847544263033738710668196734660540058683055665482591934296971418435564795288123767292906182502849809327768838407935562076927128061678436568839823626550694446720591202407664013125712375980635774673534817920761049192118043963241763985688007548657463379277690804769502584105099735616391511141887064772650158880675205129004221676124305235948048708226410363994951381633870002208337958422363062969759597380331048703038202336452150551067334344763696737152343486251000264310793718420864709390573017909611458138598445246569310367047644143709898110356164674610178546353231573098251606989855938956488858601219681203317010386634158835373648512040786853477771451485198142772837677697440680759191481808682800458086437848563590823021096988470312491904900234922931136105980442080488499647674093462647271050096426143414067447033814213726348970950689958977873899791731372502110086431859367409403383368681297139822460325084183350920786001006448429042467180594278859071330049084359624561580486274537598064065737177362790714412780082283747426291189972579276518373162312976447709754818739319047218953218757577666097371224325120916891566095061079331820327380851236565258122179322895190312697199009460586888285100158280963232487795381558540117442445201236648416140546127790472763646730486513842567397073398068207757397335531260900718466671981652900852938004384147267843820010854002927610220912865675133787441422721640086324722783834193196033564155541243255136391138013068003444141147386964165918450449175529541911477036240068241108330894697289887062914662321290346559159499148567161067635282121961594233462740530644938675324453091926731306160195347215386296938130855401233337262605059913851029333129344669904910421587175544430322569030737676287573287220243942392653074210872022711098019816583591674012991728037788385837779352972382953280115807814522316117769987055617643864002790659347315372560641679687345408659641889153744759314569573494335230828913060272580299355717403351053481600804001677969296094733366649662515811229272359040502329065561114983382377114406864138559800099660594493065771214808382408177935265125778282548293976487117000521930331259196774982220430341657027191796116072640518057548331222770446236332372385095748194736127161556111072233651639676422517751276099141099155222632824414467484744349102180435679163860976552884938097538461271612712976091600121404305048190923133603347541578192259781408047536229594788487100553336247821451858326283358494998201405227082475205104320635819998617723775245103824513633356605030517322786113733735634203257804720610282950692516486543550630014790189261766658063531740554662343756823905264733140655788201143446181975045340255837286483450011327229050356900843916118111456516609850397584972088300399378549208174606306486162511252157398363454003179116038737278779557592471661014794055679850843452248195467349847789657870960725138771290401211510140066053803419616848679094307498299450325387315347671272263977608012698562875430616722307875505140538830096056412765703037704056927105571824056603745686688547465268645097931231631819449626105684008317941760616450580273456466191615710391149304512444245131894617565270657006091670790417938162920740185300249943976036043095745646615931927023961014236593484838633095002125491261833919976775933172397356007145027170244646094090883137091072129497280672732522400704813490382338271085353149163690400709665638825677165050842688451751094933259305465222610792622200125049854436671233344690767528997105174471013881696136268665969371047054833619762738677431457936679470019387800441504474030354443980524372152942830164165219468424649206612930154479584440847760092084336213031965508140466490292952953846876155983527495314125353494853365638292971481658782185489909968872511127130773238094801307979613887227744458561733979177269614277532167261157224315177065603542111728056611907486546556692910655874433515531437007650626479188168504297640295228158683753049980503474639019114343405565261286243605294213217974314735014230108543019468981775889920596134671531765911767306582739201154651144705033988603761245090294911995566300216243892458447727399539663377525914262875899712384702894746578442058932731138028232456384986891057834762636601896811679503079605003223689390591384135374630252677629645958137089990227826191329886148354034270709882601452560357312395810970793851650934663818863093046082196541752975411096162883307852089842178527961445752378992015158040982940721789293214253230498369023924280334776559155272545279923705679221403516083443688299597977950570000827838605078659298216503927974548373730150394652181652750095346735063319406283805834063354202252435725942700201848843022987399050964417520790090618047471555998462474984034584010024109365925250764074410273144512524305051837695171210508904704432847000527874983695385233916589698502796620746321593936034034103488381045385779574930968482988378499671377614434338568694362596744209032032301999497272880256587069310207481860067932848223158501269064220619500387666052610285780233027407670636529833729107467989079904788908699692397107601125065854152397020313915265247374381531214673830953106978614988958186405272975996680739780065042083175678952613219962789576920024021827226268789952377083502625395066516975767343342694623581765264272356175044280782644684913732728630981993457749974179567934348668556875967017463494750235360174156954324953699831118955639356660379533192289527019045282348285871249392629551943505739578805824567569342913982828134823178590596500369803537787617848208283232785792542217565512706655808066681366640886653919669069392792780153132886290348280723727430135905943378016105142070297364558522005978209020746523264628948836959267695031470583621947953803362301882764818452384058020441313031543122780824950282886899948045841815416428521555807003313021502123676634383190476107398792404722363829792761651063748153107033558826569613524404003041162422254613526657167672310026535678383779845405625228329820755143061156464685077828017698616780874950110137099464871209691800483489093972731118341528354832645529445922116144172188247153109434621091950083725238650109169958135438631230499808191580609650899891452960792948392282707612509465469790941801486949042882853177810623443929714948487629829312213607303298590614537646849564281214253770710961200240987364790060809852884802959502695919133227785750681260337018918846030803749772216126341621182663379806705793592338129121924337051316204304168402150139525489152663740721538782519467830812841867330508615485530130858035367896838412124774483996979166665783780689915929463464239018146191749216583491201697485905834909932709707980348380976679653257823588707269000908577272934225495675967258103859282568221364805810944069513795543789785158248671183537820041717147557970443774585888271903272826602914867929799678017024031854716399564345921227721501345175974207125023943194475759692025268118448737451365025800833962159227218372031339907244372038558439970877175539550202045871169463979872174913317610976701480611821938254586462055009306271714277662102735066662183360293154019076641322027655034976284995668919877380394490942467042529950349762055305662778346727897143013465675547689192666898565577372366578422764137134260362282586791435445634023231643267836032508906246872413397476798976104182113961348296801664024004141023969595274268342110251969844641337396964483246428752552179914492183849986123179431944978804410921987613954750286933874314663991690304411821653238867437256151089739382345839233340062680139987951466982894152113067941436418669596735398503264261951421834662737471363165271497493369110878364950256582409558062798252243778462443683801815133395741530451129184666053452027321430473363791278132861932333379231902515738451174600096117417807578423258020949340363191287258246143202424790530271238040533928298291692000881470426973236305606716972255541915942062975825453971225973147897004600444068303822827759609447117155693846783501025467876864838782207796122369116888358878266390627579418773305105646588930630540035148497419550081829278397722027287243333422049099962543333673112947305942827870492018858221343096228723302962818112870885221511925093133480124069349847334334885522323641283873084862459914823854249583615275911476247007268661918599279247313674988426012301905432948216391278917079144643677636724432849246003702954366859092766426534889317730938507946303867188615493530999926354572741245933558251636192426446727510216541917837457892292730338011804194246355780855254656345400841160799397529537856185075355608793084193432747637807299409278851325494734220117672401356407965663295815929450196950420387213549983894008425668853896343929872666091956938500110712526562355227800273998773665706040604656027433227435662113903984343414548095490995341511428486657099814471992926342595762994195621931551307044400737868559112476848721540403453902522026194893374551196807201430705330260376287053847486593345512287964205661928478242574033236494460896247307359273362448222985556700460837464075861185682171554675962112943150991489231491899616662110535918234090329431561209424442244243947906091672661801561636497530707179957091929910967329537537033626326744797175614610400395681996809794424026085414430462439155802023675326510318188400168473757911998278436835387364755729945637148923343116186532203019170286573282772835634956492787246254532756029320457017835392318056824580047139541813712016266187752633976366541132756877804163050693545760812899728085598219883970026340808458434903364953515914111899160190836815372571109986904090281284212733975958527292822228473984337682520324014219748920882688498996198128561608765504960936026758096198381569566655809737042780836355171246781769228411980782632202267796199190981757833902612019919108340970276306086637134962246016724768340238660208366577240111367109181469546584848611528933475973050641012429779916553853778164122505718790290674310096689537755572113753869737759689745211180308642580430604551440136917411249069496277324206127120418363524833217936242881167242922742367117420803218772415190141573112017044740238014023206500727479938211378843907378013534023031502326298582500189150022703871159952219468348692181057227678291983654829162858686019289695875670386064222022780575826643485997044885773401974765232731507710617731551291192547938237114334031581687312556872657867231042731750159984160515462932048605959661902096108608112439549253628062487259753125010659386656061939946700530165375236979880116041250504229804681376463164844264762724149641937388971382209693344968580564990157062503948451397534365124294018492176497748607998265319805685354145577837773715970445439015801109495210969694498186464916837867507276599233953920645527751554875221184785876803672830782404153358363250532174376627492039295002561044655469764150343775740740695282458266992503521853343189491901289552164115628167908894114898662869538720923953232734402678550993922906809034142802014342465454551395271774417927923180786265210414029631378058001188902535146967498581541626843682358304066790978537832379297000470876340924971529915158444533677752341931838068522220620630205432208275007550910769290670151981384073441606928320684252614227093579007695400624642298698822674003827170833399678987888534433803919233497638546761579230814821054826110124060119844367107016729553007091958085084552441873552670241653690468684056646072949808668119836438867136702658660568772273224666117614300067356562274356098819332170158501644220472871999304884649582638225279719160039650567803126567191559233485759947932887587929458855660575880234118031771020347610432513573487498589908293933263071224932352972704003386359559339191035818445033895153983023690692766886697965596490335038239182335938308637296549183422728605172421508698831126995671521457594061720425355342166448497605110017053340063043773705161022930599867302137069672259986625267954802238513345076469055423828620337678203766216952852168734486073606344285982426313717522467935448666420635180814798586837178373942027572492319679845209604350365275499868682569077662830575802822493623616661199517747461233147560222401543684251487464952295406840141582179083373746828330364803048006325294516984347364791958412765351718594716591648083303170694284208877027126126640788260201500036817525630173945368649299422204736101945452991994759053980792668778242173950840228094945242409216722061136114584087037271971801866336080374927473983623327890116933199069178860806759763037513323319772533368194636422330641997292797151169099036513392792933250261034513414274048046980401474025669587130078645872189316955097261932776171509043533959408005939099820290436260562533512229627553816747904666884053507807060902010906912331547487682675179874419047336654686518085777309765023669639353440644484098723381901144042075700911217633274246501138578506657761799780562733871295022444910974062223568928350178644189248087634634418256448259100897193983268454679041794625609732914174948167894986378886492286703905715423541392484096488433675135856699343212554142765808605922441537989711923352983557354255642490487243975024385179127405743585615836987323091012837662552438451736962568239897049445473931255778097476392652857429791492223414809447749035319859164222203285915197200846058803347463153816291803553392546362719106928460765719407033205266660059256481139480962012486325909242953244303829284741267985931784621740744079502307344109966978422986927826262980434289321794804541493703324807350213328599994976868562121273740424946838774341223711676750454191242390080501848461016888215714889611421242095754085503788544798283384298554478617965981485103923468243523531143591660133883104657513535867796609795006741939793003238879995903997533486695296492528027213686167514341829158654254812771506505353078276948401258682609774607797986051451526102118771254235838986761576335986247111799470540758785472234948128256111888825409288878419731832378948467556029475125965676236512629061559195307699088792645869698043708775786804599296502675100411399504264821702072865616006989489963969926071536237505009091304494963458613017430747721968657989546169262803527206787950122465022724208116395183737212777654075993962795211833684097691516758104604055953640835874282957424860096844976390639522904163647711795349943616938606997484186114649013710076312407711196384823169381628359730183028353524170754760396766902904821043623142367013163609058911354022024865007901730399368493820756892233250837330660244216452826594135481970092330366017497719837707969112184270699395152685971583784073070237013569106985215365842148960376079342424507224179790603992696932439094503860685730521506813621105663143191106129507230688446829777128767325677352546846570024090530476749330041976713569969858396576231655389233592463827783887107825350268068106341218582924021397060944437487282094834955296627134345857387939956068456966954888394551483977319442292194726082166023929827782944566703481314758455439372985064171820940318716079011007835558245005954996022619389629253479826928320824417275500119075606188551734653368786472155803733246662557301309679031088541977966216127776538586066306966521417605039273591717882527931366091480734206410615772116245471049490744983187787982327481120059838946951087911697754508922183658440351992080205605042011732309352960081622729512504731084760537178980193573877620633222726558219151238435017578796478628376935547489740421806117967071773975392108619782789441163427029614826923436103090936658117771320905374914388887837929411292487262030675651767816849610230506121449580095816344144882672936598669601385240514999844945509860771694354696434263278942518843439331964584505568880938850159899321976567943390724991604877269709049066001325304906969274250090214457071635453282551072168935816506505373248834874401748957721086476737383955180098042926543863749840690324298196494580660462513918179024989243840067994667445479916408395661750655779071172401800389334275895900219265649344919815338328437944111159560755554600681061024761079262997177451963283958780656544642036765586221630640791860967450523978849709582099769305621212295610387941177538399199985624335486841447336516288835171312426022416873572519922341281282688491959243525214564325691530471802062561719640111486885668046288926890297712488525488474094390950572721967421625743827248002480832800901259572998913703423957302386637778920711737900237710328197356796943466475269713328722062120831680044019385814012788388419101929861479145315796308395538650990403409257368432423402960021279248013910355857880650091623191280666064343115573918770377627312076894088764634038296897695576246568999696352834857253833979723919827642559413224748630727914088435669991958362219032098385012690121914293679837882403495000058143506608888165347390648397424386261601063753386789880242287204741714418780006046175231752998218407468281368404677777179669343917532516315396548364595456548119591601062103465047780259840697555668116892288179088928197782369413405268815759348460918077583239575424186876641111335466347749817957311009316994557516793379763258085184349977887905661155065115736281128770129378082465302605448238308401987878149787334930794746871594220921623805506849655909753616982487531496947349671779351073799928942670468879777233746569968556654407581317656421802053713209635872279120697409223590351476785671072647606709510469625193312031542244150387852949353136555773211274708692815638438945767538153020749696940157690491664518721571688961488941147491726626773110999032714150410488484864726537850185428982243053982494155223663070312999857929768754837639029855500854231653404901966790289580007167614815589267968126226804807806320692732227703010266027549173546877554258344399212339201143132153246533835438792637162623936405228127181800390408152033553969939625410463180195707536598991422609468126063134930527235519280260230758622424005565127238341858018950659951339278884688813745280150877202070635853855784266897501799732308148345625888928862700178676463943655369988269086560216689121439031927933696602689159374447544292474243317307860897804559651135227223180761610762168223101065302328816099737176094069346874402178137877797878969805914860267219635066302218860761174129117784053801912315138760950056862292078457771174683845959955224090126874702906548365697506520207908005008904050091719156467671764365472665505456420366461484104157665455963009063307475498842863710295288471036885176688787171406919685319822141812698465915963189954835580118889137718257777998863865662017143013852674798740839214611213457996691063728134771559512534267020160078485020880116264996243747250459584194231635868656679092008811044037709970935324602531575912955499366286564334736407863124743233397422172367680278074915417686012054473019230979517225924467564569197523394500878384518130949250552694941712571214570889295450527629173809808075495379832966868315009415825661262087292783533086815486068723571660654069616839674177364422716319086297324843221735842697299342195586316686117109258636680669663820480068806172014647611309534016222087664216917218206549203542981676114823473344621859224989798733183334448486431571336721917873074302015720925449662872339989355265164137726654579549347539789140992221226794063054416100825554758458242013322679254125352452510994444147026468173754758252953224943278488288487879127802477578929762586089025917395662537342013022068815400556699901928048897746603550738204045922456885483684719119313707961837155642279520291809757821950885814285135374292028377257604916317322092706176685979867789666228152153486409379576738624713953915517489721676959514252993398887140780410252120925851776644538525707943765347428332468158082397603568144673422005794101215463948545816104019941504161051597808502096902193201470523797267888207669538034124893472045557561462642904008163334947827547368080254094242004385753640090830442406954573371688225001262804931723566463341704485218381272762359487037316478847998942190094445105325398645001733911954567660478275064475675068369324499158063061023135039069254673553675288101456351540212789856787107721849157186016549027237517975936306810015272725502826081288456223019037597309271343432427290608676188536985838568655471551765124858881661357612515061174680957185402626697744430842991715918865591733724917528022884124749182728163627996439518539597826603980287053102283330324004587397271222269530232001485611251051347631444968705802512894694241954326859195094908088180778533637188635145482839925762533427102121496205239510932141722281836834764635532092909040805155956011354136030461896160450514811494690369745171236115937888451428912288523066958934088880368636060386765493490777703638964153274557253983632022152310187552953725113240437159724337646070136396721513034813510802931001098907987146330532952482410749791930520073507173191439358477302256274947855587951655603327812197021630123850772854926284051283507846496137129460083646726223308600400808493452173918213428040874175783372869027738867696693150515239567293280799998339508086883208064983564266701650481971709896072773568772544859250811178768891600575630525619388544884614907581925853307163301697078842824348255369324124491410907473921676109370125111542253063593203411542186261747152389432675738839135686290552910378984169099978191656386092260028240914496833216260045686800766982481697424193785635471559656561866187070436899569852706161818163474863406266966013442794607782820823567030030345823844788956403934932792850939025421004165312869004073156653273181386644739999115723966594437250738514414329451530327660316542991400880084206668923955658861509926419777031828456381128513095662982618454997208286921803642230417371758546256550718783189653362856844780883419145618535250993076350341783531829087110846879131874014230555688248269799322419961419589486222329401433298510941293608162226973978942926197524447798746518906031952611864342421218166404503749622545396668769611281489573803219632382143753678987112174961456283859925394647080491533508638518353373921403698157781554215761321280197887321451380473987677901066267493425861586829477534731427631868523490797385323418921207381854214452748125694898687445084007907949061113681572236164911089123531545095069656777699547240017497657325593741684968441145610754821971303104955572039423256566382846622076146897750511958451929177272587092196648702459459335372757294040272499339751545965464721532549879934447038647899911156741592124898143758396936032080817190712162999583921476888603558445161826451744819355839429021690430172529594857294081191714554283863518259171731116880366358615994317114552874280373242910972050985334128445224524944082308552929703639644038687411745040738710567338393679086119864645924393962902019180889127413148010675095948912845672305131077420501104384414970595802535857851687665229169177319318908117008857700277012896672328403858764667792071327454290504790915912065908684355008989310549956701977182001614210750722287512704717586691414781348748958277517888660126048958657851786941821377926563734288569745941327139252224992787050710515578284440571743127153034449066329995555368670625282251869842748844826602162883028901860406964825922464426138977409297173321646835919415344503798313151244654948374422180178660305960583918085523299667891915879866417268422051866676641585409881382884580071265329602019418957440829642810723633620590016004613593749067149309999181383919074977990500961776586605134595029145284735793292836358955296918444237767614688973240855898231334771708005377370992899147165753800104370418001913672636326378704709630924158952568919311642511621676149383937010338455978285599781846313750324968918488171817018032433277052970198784131319188982461105170180040710001531194946028121719310856357402569918413397513596853294241113430304670910612573364571752813801665512656908892758630702896067959161620199656672928846564039313359523287792363959505219306910530713607535677202271593003543709380247401954858351160265451071026329151426334650624758939071257165153362542034465568785025586210327596958769412849120267166213040498184603682358004508694772256449998889253376171799405747335464596279465651374091985551240677802987475896322265043546201942774396433325011519645424938996323727961022941239859790741578192125563765617126785637682133949039429371857793501697804548345805765916884119925458606880185321763925294300615418581401594156146839300693465132817332176979175642122469014033356210514982521292912259940214422013122123504773034124252456715440455073436839479442810910474998181123869638725823258761243159362340091434427010223621369176696311194419591353445666049670478217408722842961866030959525813312759298954612533315320581878704904525145723006375584810063970453128395498859008305448490139177298159325515043898043540887233641084929380908067574936665789235874825273181416948133557665658380170717991977621758215657089773396515732432917495622446086275767036125616669271104305438403759822571150474396172792386671357568974428235792403685194452996571310166487860948223447316791272562867136607290556922357228950635042907357588450746767185384914647743339711174901142753574337359319898730879007966602331013394193800518104292404422725460129418301715655373548681364832071287610452931990290155905437290159329358909043287478422771653051196765590196272190180647487704890071288364801705500636080001380008712205582821635026493750351210568492383335603172446870613289338740839063896057251112764732343040748841239857841392220185229414240433574066837543058068898596564234175696666156508908158838041382280974795453413111305778447067743160898364815491518545013445814874533539096951932319684492229246827474793980419217757921901897434943246663806959773078454890061722315114544725167185025432639236015171238135496662345978075167799188525741581136394500130653116221608812671885617359941817318913223830659638961259107288269420960936924230083043426400570499939547820845256443218278160961587829539488281112074564352058799876001659460658553409955236789457292087857650825454504224604799727096929766467935172562377808875098757458216990340599479010752454144990017748409482893349471650666884914372082154302863648097936668908977624796933329143606086074336047363135444897721995033957078164514892891538091709685322479863981427310613188560614846511058037222209990254071259730026593233632225687224194572920466613135947515289546308653718966416368547543624949285282338993127104518981678661383785240123121819747185183128414032445709738468803272703498932553050745831232188980827428605283113391903791660511836523490953932873840411266217910421551768850292079936484427160498286408277421480435236096570478563234727599457458954410619208380952957815801253607069590048877420184645468527909189428333612462112577598748829452141080113223030551014577006435861327522160550171246108644417533790427116576468389896732295555138858527788308480749721078052842013177087498497976028271939758949342122073360732243902267991818276579194461534859714224730425572074095362913247983694378147703650696462924073919846173256493440154025958714981503780508624023930206406126923767915079039015989739963230315058965326679660319258116044907792304433588082790752247284792853540526459468807173066403574911957700778872089842386141711305485896318138218746505514123358207167247307197655749696344140324475062740318774612197744841111344925673989088563582050744568230454017701233540350852330709777052407669842588822383641101983556318674386922610234559143293353094194251119973026717950994821279535248708378113436116135127964437953965880780402176785888004659557635865504252378449168296379921178645993896291916562280039613358884587709311978084490995551901024402516592984464705800474976184405776663220464407433253287329141940112666421570906595267583226490639920484306895537145684773649414118146878848230727062187668297631576419545368229752779822320612290171953366163167771898168572422155986139689404581608545683634313261344829862306174295526769404994271452374891203786385297097607153107309209751897235015103325855914679639008454321093788756726988079809442379139897173681703724309905616941447447611101833069698428436023363994324593714180789483002764985079244248599020911300576847031889281646794649690934772850684592677820090822836075449593466037437770695765859644609093511018096557435758158467363620422651922710642892195172760236258636977942633575715807820807674452971513482118647814863657847385138385323747854471249987059399608046728493560647845357004208534075860798954411066089017611075758837897774542213386389406202881457842234337451121405954653666431136219916933487829665473184003381860009532325870092370601674537624886296178027995374582363287715819293864145113030518010398162936104965706383069828111583034053583898479454052816702310043550364546132526801536909906458120091408397034120236846098223387712256738990386655312081584346247367786649193448176870062903507741538567737506202124255306621713418862757698924438100155141788075459990673329703907298561982085843341603011830788195778518659424360230920063277238748940578229053780089593653961397540713507194293352907984774005966935912173900412068707046906720751311137078945566685569948479118720750676463009050289465437956667455046340093466926588765423400250684351942637610294493965264779908288271302290529710876083941241677183183662366418437405605185189142523620862033595621159794794277218426234623794649502919007391984851124043478889360926341243614737237236982861846253823812606568332495143360003945481160982226269176923111811017913176091686621942943695683747903293507364657492067175921751187096027644179531293095677375166959102783719733050916703974828540186435312834686017965269639515329734841477488910620320852351532457121497169933761419362695695461661843859364301367141134898985730020937194421595338557119835222253125867271710824728084323260605712825056428857811685727523611755373309817088800847901290457760491337178389194285831997720603541715169392540567850238752887135270967415176541948092114977487927858325412517782520683345258448816821192077798079858590393806619671458450932205172164705695567014637813323162936775769350394302493302684631176292844141144172964786849918814795367289800161070360815566573887215919508653575217793068492387771221205935269122476074556060227424617509343964790506961643002096349382284011678196969120406265993591726246265506838921455530326937427909255957030753620312416526964635815126636290625695018654437448044324211583074736913764066753152536333178265858949206421962821034509384448632820608718944527504512376125563646999159156239468646039442048921742803242899612313146864804457719918647947419948721338111722391832173360928199174896003206844475846165283218803556880095842823305231675007036678643528069831558073551049323198753498271174886389631465031263330996360993136884835113319198638833723744714989922800793692121413142941246551605252876870139317107162937565345053757679848018083008008291711296321291681369328701155865039256333710770287262404401504784677756935596757585607700236910809562453316687785865759896573292076324189403217920432564198527899195116669508624738342625439581322311253341664461499273182359298483943107105146513647264652647770282238994921483339319645929121960978616753185938442816767675384171305370086252167979276051932836957069194519550323061340789281228262640345660528510171239061060433804945937935729056803512279221085665788535528030069174797687987835850087366295219673813297744215270093807767125340166211890635284749416158169047331422109353876239196476464213281512827185784115053614159727116669549463274727036403404669143297083762871207919193924466185901111898299801070830885275080622680273447756877391657174791485605464815428948056831503007377265726090297012613707809051586523840361428710258692725920935413803050729164550933002544658838474022395843519573266642567026874411478379708284095139155086770027668776880658758434255700157799254557532702499183928782164884011200886939898009019164597549694375901133791122763515739503894722949072663212682360304612327202277470821478740105303501123277535338812902671099426981111823568327981337338972569080305828602211597010386096322613843720070383896482929397445280550383698159288088712008146245792550525650789143123144148719392152625093081831118459376808283309636855667855589071596127143371283222029348685587800480140970633379065849176515566122748610365337655493461880302147071239158116295392696114436974987579687310073781354327473463623009116624916046756466163209013876010217886798230761387656642387348228809792885705948021460799359985719286684823587464867948977505813675458087805770780769888102293450885529008449900941877354640739842211122796956916656467318863923029591254682595119677764959494242983569049011743810508722149593299421934402320237610022005559361955543314746137471355640015843980660409845847078004134409264228609184943018082708399903551145512321823033622081921841473932662058403722130656859781810341933584309253652924845310287134845367869064798417219415881422399514661262992302874168644087975584132800913723812921204674918176484971506963513770531210735873266899567658209188407118844942104769240734692335024462853950651213106518401212583213166578846017165067395717592252185243146827089794630177295057160750623332175077414475769953334181260163165911138836647648121156895979224316232542550247462544462038282328541289431096146805962863083042124132213401385739201701869388884210667932377913695004859001779469198258778539726798284699691868417085627612285461304807261930973665182675470189468607848210945820795968807422102464427282879496995562517280491388753082059495240639937455763642564309660825047485585260988192660211072174352926753729589801842189778177713758733570869305270607226162809785611103722351844491880115301800466783880780631916099985954594885703977664062929470607155073898197400438995858652556997251947575829176469854909536626167931889580939682181013938795544513400630885298011894109960529641502251491177623063982233660650047354448739325871725780337877198983625358379026728723195650405412004406265014143653651619688055084032675328740387048544648315990473942685164704118900622094656197582941453389775207081509113795443311271600258660808215094572418570087251061141127910576082272436622091813332322054586715586011226871958782310940174825128299286638956343463569603280708202313613669869237738160181461466781089860634472459511366113669256395419789568574003008730166872950614395357272252343656906490658299744612837444883893590093484027162562808333265090654072954823637705547736239369442893352874848464670959525640210249848346816325529670925121249385364123106628275393546435554148715076814096186600517232232334717795465223870275358785940997726639487488970463320571303915642218700711478489345123917015614539377680025503033961092238546140451479761479945384447904743903694832173021099729058855179086694872172061154095508746602866226082262125650656822436245829684923212983056694184737792442130947485993545619462868514441686592152624760388965784900700959008297370443717579648967364746563583601385420002935354744750718554403586182751958368764072733274613817268459030375307895562160836916308979669377194807173319905117125999722506883124906640982494633866591409562318513017838517640958498538327076513979535031140021986873623546841846557854402627229841286753569498522676813974956424733588591615204636294018152715879587509898448972623810092788747890705154597258299032925775199704409218055106143146922869154164334253256767273501869855058759369476551737312355892546200740555231999400613175855159457169849838294349708598993633638104636005547572661007776000139674619602972282579329554597302876513429315037432435391902146661243436749490121360903557125697498973107664455509385264700402044094097775810977762421053762916199223846443220288440529651566836144157529039784189070882518610966089210582707975253635963837181270234753638445928567469914963876358248465766654148812382678862986562738532936457464315048524568676757080906280563246472862186010879324218098808762399009839499186372867187072418651914362136353727124384460867421020957306025565967499772741553257089603249259725139925933059650225293231051103710532923301423598240811322929810548248227294150846185308869649621313676167955299203632988868215896274485410814977503012953010295782893837467943011824913663875097502505491750311017449956035491384319151117986647904128368925209012477197893511728315083607933038002773486169798676525076115351709277407571806317926855747998783578924668815673170892392344637201342964371804960847253289134379038883679209659175653455070994355053046520423279168967978664066057677816300407950137688516676611413621804976793439022342542583396148910428750397435406974154112943701398518127423563784207929654669466602847167919900007398604363877009540209018779017468552097918535093206957817005573128627664571960247076381862930553291482403837081399132283953571079172297886531111193377178297958152520003441608331385353557918890142248983634023518626002014235649085081076878245896639609884165551005033048270668822445369807416945538135827965951987843363029914483451970521511899780957061767591373348188923022149580585872575979483157288902923514818190877857265101763571822565478805400371963709091375946120536556907947720183787418234794908714100995248402045209965588878358701613867656891944812110044760149238823984364904171184170721435795239761651898206721286632691665833154120339652585183277227503920462252179102600190159439960532373280656731132470324861363622370328838239773311953470370830870862074484721391169001168556670997482603193431871514681133974278333700024283433817064379568198360245088207903053297936169041055782436041979783083417503370821041479599792346712918360422957075800858515751908000042546059205952179970369991817416420562315873255856788099647740821783081269672149573502620759484654834416248269472737743619519221623804338599512125222249405583394787358022749081376847103565705453693961863094918301283533576191030303134691638752846599365853927778448803974373475934739591424405668381955927515880293079096514436158333596941445448910208468303805420775627440335074781559261512406788738639877975913074316153184551209818000449127131283502796681773015809592913695572215039817229656265116297926729857262367874224507337925455498032784737521319351384805652601366335677860436201702295286158236977814742973090248909856532130653499003321979946561237039185069528850502833976960074623472808450367124286749900952083071113158847983687727385833627818900414772901526906537038245671700100620785327336159410642567482375208661706672821681120089457909391150564715023768732317965759125754271911448133522180964207990946237603369959055114999007856078725709978319200162567157682268410170323034090371198711425082997419339837605440582722481719640336619859660641284277350877246355886730046881449011775192881260813063122201111928455532507688346429679566423557046819965325157157903496308558283249302667528497235804806930078854470252224404393907770585306912742250842761890275213578631510747938184051394954874000236713555540823499163660050163982812095711822141157167886175358246910054107396246140908764348668476378440299482395384913663560723494155467772565390763823061663698751411579710914909216659231396608059440302479533888337612445800239945732482994105067870152225086154650455756214151210588294976343068869307049820843825285052504372714142421811642595239339092756601173126135596857256309246258681492197706537257035365668884381131971191895085303902381060149917328431640789344364708103922600020001857096950345089222510557389816205187624949642197561514840496607876948304221096246426037004554045604220179306581915445343584710324625668162133236569770498825677752766579521405539364662407435295618183302263241958929336836483107639872394903039158363347722458870024124372142034838639467276788377060483884416240471651929697511410488510611049809675228442482949689543385283993966500757955867222437221757717226993279275140621872035881403385039298284894343601454398422737438720235577677988238768916449808939380707387526040681235155828327262090757626287496611598359845353526281769956633655973577909153963366534845052638587167175990839574053999948047994358577475287659148240331645578085594751621121108193622036737724159689722691137893210217742324771148151148188311296634496711721441794859834262834952250557657044685038000494226198753792052628150210612978855312117702835949632450858135675027908316458220695990379288540865020944667468654688011986734550232953413741049604139457033718550662270651227702167177146008539708381492568906275826385027160287748511315843021586054456342503228364015867954868646491857967342586006732970652037708455430986110929562130859455544723847572844057038640003778941417069682441873700026174019945980625159319526669711414725765654362065259598620448803674254866951452780757935826660615674610675302209264533703355332642685849742125951582107736953020559723603425379619502334837917742815441321346689216005030635582780875031438468425031077568905250927340994474512697857962275204225409386563671870459746112336170743879322446283920964787058279579266393596370633370381367534434679243422576402362302503403615140156619426396058662490148822116239604373030483975320953154295960619986650286126021222787136540544427447303880522745270921880308156389212869806040086764615404613886847862181686130322630039118867379801507993485998756980488338078005797236936933893433459952550556829435031518399526755794253958974853919207547854592936574442683533853887999345563978563858010016001384870281717259290795484173791002903422592720756434478564037273836314091622151980567871806863675370984391479908270986401080743145508730034953289286301036944856371207330710623981538375798957465074699234976654215512800211336639836416089034160494385882827839260946732263834058353551938028822767710171937462094105881044618721884608837048607061720962958823949888241645567744425609204814257397543400960816129748311491734733238231582129328421939097495864556262500705425961195370455268929807123670940712303599330294158432662512915624106489817996314180698884424821687927265218664167597589019463202354408382735256957299160338479527363543290939813228218445188199140900052003723908025652075103414198137265722659356720939521410492046308064451600457442338685588422798595175963110062522066072977914866352843945278855903516182033683901292659217249431679527385258403197679680857719133075220590703839620655596018012863983551360139725205468134607722449031071227788274811283240140083452528312377531236243534227242057932735016641230905510560261766189556286120927029366990434712464737549213688438623739497726842153208397814998005190389322669816846572977565625865470692627520700345620376053736723945367932810915479634385324979277457847097335310485058978106574608199827316042385255863097642533887713876420795083360159224208897053693333907634756222628311458934919085423053696841203953394530150878479295245903063007475657163602710418903840643611878819321635199761400475298306918112957455214580555152859377272960384366992173137050654733569794874322862330899554080906785408232016746806910865842480278674426540217736583004213328268604548829437266405857839088970067396753873684309501770709513226582083254758507695791529167565835014408639759017351708445673479477013281517045138442296303685476302181025466323311709659452619715149434976523605175256589917064095553714098687211891169305956847598348734616187198312456866551688058729241390175754645092961234355100491404450612851399693938529369372993433358093514332312579600213258610719424857223330309780714837741469701086786982301170236614113824522967025555980946917559790122588625001654587402493649361043271392606857127983616001654784998009281633771860923784562381930523907396998652338815375026771742706685073434085518384873216483522968344178439714931310274990280521588858832083402775578582931873142785807560052072144234386480389991941047068214953326515962812513952483250547417049237831774050464869972916646117012919653229731829319355648894752043358013132027091119436878069862571240252891313455694082151508159898825743170958058029077184379465429295596266731043557586072531088211477682500270012051811523244594790563180939138553296379203103456028417458580027479988318867641705669300583040083517677617264205927491146440039291685517312074499162046031927810810261480782577849726289506696330359300473595795030639954134035746653158065758970425244943692605105973645427424539592798809736284575005838310106768138689436125479104940269695456845439561014854741397805431118461268875014893100183100794819773085237462810382206300223551677002898714625466767466020703677928385491999603048997582754472240872376978154178383719360217951201490751131456645252731242062454321662246351062085640564157632628464674265969505100772138624690055224088301287030939325676336852001359912078490424403820036189482633826925581283569800264375517427757903059179330651346100216648448424992786143425161388578443002265435574124361628911853212025544815568328683290648761678413872175179542247681484023480209890740496176411791007264032008489818530294070383715664066024473932241186959950639867508609459983342955737780192655706032158460433124786233270458902195638632579395282145799564007658871830410242732929157571689479747907630616400400773576606187005968345488955918393542371649530923052532692378435089224652981076245388139154331882179994896497993331890973261144473024429492974036444896583547092611464853383100776186126022885814131742777540223252859640634898943367135173989244095069893710426445091901291387798389527036684974688844506371515234713650183513802360722443384203701791388425119511151321413294295431102852242219808130922937821927753365879879881650128528775823603006823885359829369352397345452370163095419412086444895619073160733393270678662819384706847743213945568557443891285023989296404602043293858506753883568071180907501444329598041287396311426121748494191230870937620755933289837072105158753554536067822732684490311814924089161331212781464074363705046640637904149939404867596248383137107723920993893389340653487082167832867636040814720547544864076165113879200218478181862609404584774681708745530515415599120816637330728563765426439016678415409364500871997725647809234005767248371707269005837354759122391735209646049995126635916533245428158827905003929299178177842836195391090127237288620333761044098860728523681993403540287189439290885981357931095150087953087366533888333344365505209002881895413695620693238789004309679378387138564440180998129253503016272714622118100723926917450855538318841129459802534990506107545801345296774934186387148851873954571535304765551629811597559668482420096628862177043751333706196581780904633530844506251935177142251246070552300767329269589206554181146185834770923330821526354637953445717037214587963620232956431516814875037906351141910926144717758579001603477854371687670700798800645251773568731646664683646745488788093638256052780115565450081626373551521242248675769601577381879935168817663879290656870754773042881285218219699352766755749492505409663087886452309885174357158822283601651661120686239327376173303055569881839886807519193390193444931347190001118358287111439281156382795429618301130791323670270902307022656875777108628500671912311032678408521372669218959370332457079956915962418224139996531402802239128425756245388032593563703679445469911996811548980088966955376307753194108705639061190366537897906235572640610963034798314535093415677215852534382379536801085383025626927653278334921744618502720675825623216414884207011866660997236901583161158486313046114197078536538562102834792703291100003472963635234152322604271018216955361528867266580817992794548366746177835059370546631874098990023437906397715553438117890060348877039408968256478519197879956559501854201763824422765378609543135647907363766777487005303948604686807074620573359993011120486709081386182193699697958157152044629913059321127970962088746960653950105534610055645593424557000291575957968934260919067849904932830571164618873288343491611354057305794598064437936097761458483049872864824023144120458804717569857153990768079500266767214959008064506601753745094773515886397420084523276970872908170419663575817465668502292184062411012803621851257091345235998634651851831310595279972136089766060223110219262977808023633171750606768934104689542878908150130392273154808002909093087870209223006966506016414458107207068747693979054675681910249270311510987719473539339375015000848598701299320031218467056195838262444079444022684865251906956239124947111907991864555425150594069074794560799614010835160974677101719543729203903755667592278722098440446196592567804672119850571905969763262851017471506240336096583596194484048227687988826681386833003072885043013949355816674312352093965914359514740219415898501037179578979603066879900942110185413048854936838410873843936571544539963825609713787902888221272886111563024297993627972779618095888838674355770127616963368525682397292017097851797480124277365283518210954267235843794473774695286357222290363030171848994353606086044337674184745962287383739527271874215245347234451593967110731494772252906773444680394475788994582353223102010151660409036867519571588338241796714635699880743082187275042260804094431364746530843896691610555975664799490766916944294182261311651003935645864602630358933881131178382515871526857741436526606973654174944513006432143702489316029438646834502415699521196927564317202514227194788849750252887854433185504110030869241824751372541378153471810331489295293107215280944936493018592078646260289871429856253195444334674371254146495973135468285456241325830255273611980430591892811484155381080875382119166647743072790210466216018056214440776109194261998474794973487533233465054978936938750077750071947104802583063739844376834055967472256582410470361275157654941721560256630587211813528776908680397040728592233696728225967441907448144952005145201255270100375235334731685679649477572196938679322809850996256351819006133996089573809524873586109398229926512913084375195903753585107875381894474469964171358957542800414232286792395883819198323268684054679682364536083838324256058078226447062753625152032559253233006376955705361212642556341656787219221081416388095887987140922649276025916955459010196516827596945369979749247996445731931489165580058818103745440415973521090278686689467729650570171882352616532241553452765847490997984164998860990641197042862006205842525138609506976671461560960115360895229678554642019281915526459639787586800762364797874705746778466678199796434317506902473857873095417842814743750236954524874687480559837390297016608303784915619735121301969229931049234380788695587646550354409307678342675019875314505716028220843922385711799238699509661569669130331600596213505843378581115938554840061460046929326124690426592738618273446563550494067487801869083005350770808222703050110961687004245223090383163869720264007570479042236101453551519696025432694083886229107988520420130740376236288599381089384593758053361322635007975042257802430155779152963008926282367876897744716399684424452349797755280564164596453752290311513172539623692173615162488024623896704845535774151349085186793920748602843695605379757190868994069600844656683568752030583338916449903812511418092625463882662540552091224035209397971134436261667831538896387911549831146170422194799120611555246326634545724998515955536263164550691866218120366386950241593407099175059029938663399204490491570614662473914122361732708324845537878751117915234130641564456407557699029782882357968635617434522316022997234484613255253532267837781290795454385740273555351719939263032644779102408955268174753473774779867115299123942544992728697186615187647885760914800651015568727119843377470405863258492629842060276209026094801713513552675110476807300384660249375405355870113311731053655080560385566336132075927035049129724796592072269577483467370183876797807451270556888237785338978990004007922396063481337016822320375229787065705892039293897711436608254856248919932771109010145861148800665144076191864002301509102077275464164301991922548204281362221102201065435603148341576697016018194661078895808854882199006100209617370598034375547071576093761536745631588779155895938234699925392801220276688417996170679436633509785158889692365179262471467401613203014744774721488038658384254178305682682962115975921130996789423414281815660171653313568909394799035304636338354110666993301929117780299549738242521240349133268221145804059120834573425064392763292025616684252157138060232787505315548024190963422431420985757745254004818769307906922347949473535258296317813489101944541037891841148960609303404643530161653148094309678971753109493880377101473600031536811316763199795338249346312587063346079409842552547769395215618719899772605171188514181581952535203002904363335461335973054700473415897963064926216677867294130578249124593886321468327015984016052500019064224855983882328497885810112362881509924439818440853451657974053419646326797986696645553847673582719096431769453382612332494217008969022517912148509854528871855599788337291268575549125145874583660208358979161134831726345022419994998915697396653799316101350182198820597322192249214001843204877090303805981902316969632625882878459233648543386381924861235744382965550249978166434735855169459198167387711803497141049515207994595770040509783712768372188265389038660093469207570746102803912043296214752353590359053186397104983519733738046235154666110390581378282657271401992466051880429010916306887628366003325951652934374732481419067422340703492027266299754505193137406017615959254679927957236823866801896164744740293095062667824182471764684672673805934215230807109871309980525681184860019597477592698288143399379316668407910928965460835629939447139081277394666076081631867850549500151123539314458123980672162868191558690805991512726356553525253123324618963677630228648197442673176457130172671750265824362326589411263538473544778368004177852775386491117358151583542776039154824454543257875303374332819262355979397027094224878101849854266216321559225207238082533940542873688776757959046092089678334717706222840103799984843218235427240538897933604223481248810454703818517302364823797324957846610994909229248665038714721319557039629215077783593491609332831060572786808157203474944279698880354908245593430782016825225415026363574121261033060135318127113847494857040646526965870446757939520208972576610254416791827019341145253189633934768944900176376750534265733920201481589343614794886232099010146384968825985118622020373625656358042312669341761043337541982571338758576218027883074730602583794709683413502104275266394011875659514528874999946258772906446099587634049184258888690176493733186671417777669689271669204395321503236213388855487147220048906008678595239571367524205925436300581923330921115640011408812993887533762510065450386639007598490528057096202833627559884133637219797447642808154405765827458029232097627425067498905100479438563398308958666168507875214696528868272583471638503224158259058185271278927863800223394946359260164298288189760977211470556890152462742249672415988563898863259958468308166584183769447522157399831335366598998185371835440121816824275161556394678169979034374577149088703878188874451108296437478072092165542212499781040276325480831550912101085263903540625412772793870502376345674870539120513409734437630324317318386457851913010374905052856406550685120414460083949801714870335763425684962832026702079290540835775617998892792889528795180958788665985848857110165175804551706108507067048822461968989757813605795263669280749259557869467531354101420996017354381767139301056638411258956566767211794846394810167301407005432202189137670329545092965628504692286169166747610603249803452002984199169682486734114045807894885945293214772765493834343511921573553584812732312607361431104602185495613517137879059538395834089806966901088646761605996191662143709608822198119434608952464315661639551185061560588357886873385365311330719618453328617353494249386857790827880612023358878432016742520663021633746616991739788394551678357924483181597679950779795584569576460350284859987666643712654105393990503049772957048985168773198498158219162517074979408153667488182757540736835675349112980479832710807229010948514521064365488445549688395035713607434785186084466440094342950833410583607499916157184358113756472508940847917653932039420495295072607689667193515831007580720024082513726401638829021570835127787661964994825895098658764849542000655799248910993254120190455505341244132735933633938967128071411475448187815681746287810844967992223374443648694212918991584320704004004762753341872654061888608581542028480115248509825825526819814688108678027414312013241352739938679247912346644519515846048841822570339894073703906632007323751153768012354339978760518476344340824526631911187197704886020961899949204796693766949226293338583968776928694260072342329560138175774734533524967702198929608220900329376537530018082028898280300696788155757547059714142768608579138993548791699921130453595774520377749481340466631001559867284733981998978879834274419077157216579009559656257787473320740458469311970213307673401922327698796866255713071562811051792953119708565812381015762738450337530812615247183840098483813930074735632142426033847415796809300713178830390039107435599976077665573726276813279189918212243729483468486601754760719182967376219737638078472828924741252742049715724214501392928656598639716864067107577051657553765939719467706949944879037253825444680943888103050897910697461118848841243708341887797322703072559425479063292459640152499317979748121451973743991001956120155929988026305771873406781494062194653390187272598411455336808342483255878833424442026450787427797116408437178496640255171582886489226451326656152021292670362490205280905468641094026262294163806069159341808875518439316305890375989433548777222224016428552503024328345438772091238630986222247302118574904359216867652344856262369422936189484333503589475924976061158985798654800208176582086936145957953695066825649072458873571852145255247173633393248748540350553728873541541060792911703357331124020901702489282999588673538550503692521774941655851294901320043996411048452157852094179239741838013422381348681007281942083715928806146657162598505549735793953599383756957853989806187628755181872692795870608324073512033461775849296977713528450692882433180843965656967003323132482771750801547805011610613157195042776283105242657825333637478929107796636624560661692320429479403557461004915262716994509995200540772276238910085727211167358770567060405321879570732848184012524344835543425466841195633907707129720414738697298698149526444248823668139130941083516204561701530403412936428426777510258785779274155507752235832549417571592970578902762366322462655961895131833511306437043303624114658443533217844568511407406875323150105885551047015298608190534053695094743752868933590361337201784837899625320461357543724812812600146139474954916639194334783353070190018548462868201411035041423646370326928010853185962725603301467453990116049092210101714787071112681524566078542757006371126422603293472381015910760244685006431360116761140837509780327936733475617197471128480696729469301465865593654480674135307105108814398106530910848310364332517477058591047916966911682366729345717806816968298127589254505821029737798306814297597688411488513247444774746724303544684078312048255686174116832661322594340996498524150881037301732200992147949735357722695254539691686388748402206985936929962515125048596275764491567224662774206063906842130803809265761396825937440896255774366698937988720736836880487745735847396546493990156603485618802859170048888736564010561425014768953883355952666891041069048632216142637317239857881294373049167540237025006296891860990219037939758496646365727924084533986586991397127582371076173950495522772648370848039032140886114284025678599866103430837181981875739326659149476385835871340493567579170317336004970375769087075460590586934339260962753571716973526108413050124560462832770038501205581717159625743723603117240091236956923970677400119399117995600939440226959533588851373421341851916729723389232447151883827875366643719256031886426705447648246549416275010537968657208169515623345371824017611209419892554786915304223731477493465090827581819374464245289563365369099697971786631305987122822813592849320942594118412132405407602900643959643280946477742799476116367109772175267097923040306445873231921025792848323391623839640006527634424273678811164606849079551246024793642413801257261297399002311698286205806069817728869678733359754454614750331827264396474413276572667370646416337952870602859299274886992601296632573439373088292995732092040137577349982623278158784780497022335431623119894399863133434799119634144484640469344590334490755955166400739120044192624069342281186270813497451858855896362380149352429561226196219653330957721068867177899650410970101859314956418770921013471360113786817849413141016803437909953046302361721483987491260385118558882404670606877723741564777826456460255230055396928120514753452005816287291904776770994361938624240431006755679383825625777031252157811887637542079976438833783613639434349658265599654590514949042745168007704740627153472818474544193905126186776112833228294434432274446838446857581594414494823534339527768495414934494004781731327173744484475835007984877811006447103796458184313553900054187391823996405767958115558251704011623023530689664439157956860962364267225983355663778249864974015477419904941274597474550394690217622259627347386429529799363950227372810115701361817030962840879550314619236751090079367536689673809198997412691100774255762686829027677513951183764743599957130663878294566967398791443738242792320680397600480536623916655414198613043331040685957101740391332363269903386909410150211108304602879101162765374461751510387751177494611963159929799839998064863455524208672089709750634268901185674276528353726658473439164269338903368717277456436820818534627517854034494338666308430423101293834940684550151035054058867609716619175447788143567398461506358711388431011842018608824861893494366802227981409683129947316473498517592850609066523676563396133897069925131145721512486924212993280787565701484286299450874762849051151727859646962257995510462472037206125270532778942057815678161385228649350776404282747651920214405132009490117455561608175574578334052643309340806347406245105796412683811911251615243565102501178556636017870631719700803264467365366169565427988326451250641692529661384519156581227957199201925579964994980672242540395129081297071104198842495606959437544301029600203629704592489806529321967954861462466709364795604415777228886097116657865637094860145610969855535631262499586423907830885886182132207714690759241595888003801976066224644552678517429819698810203996506428737244676732342425445588910540502097818110642826625058247951427840415505692442982829402727111759870530099930510448510629154912242331388986625966801182401915985997877506866796661963553247761891158974686244889158879991861811596730332329922417365984054124348809634660513919874481814058336797049429369436411225416995850805991623348855687921112460444720358421806957536986773706624029733917456408134970164859157390859721019533604874560374410523955220501050935652812096376525292408695439862593771673570110082738194372720215888538563097339695453215986245472502053572168620577805212671422976117816344263732491776579133079637405727320375550123989706318985553265589556846690533188235557864459817588403733908750629982266560188340613391882560153429235785616135891817669747874689344607089295080866981196003022331552230139872504766729984372502243371513354041259915921126399839905239787789690170915991522522928588223467681388456087203174742868475253976722320492520733856678086820177758673569850143115813782090848438632955341598351909812337594492103855436488738390268280588043430212740814449165002752575093433461059457093079777941455985205163827957936490800736448733688719126491836433505721487258260705554323175430459070375444541299284588113725898135138604938641404857473486927024374809695425242167504401650682429813491193460420643464577949304781132372284664674537038493063043867054273981483916581928263226506914617993520295437881143247330263315772486216974751385266767278880503080108990538032205428280632055864989728172250137227259858300228468710910254434972618671163396367549158292724035183370442756264352888163560004601074847364567902478362842296722433519454681237093429929567572927373194968610839777553450096949443488828701237603702415108656460241086237023019114970539834250630979334449414277006277434885687317392125273637471034842278484607096101010990751116136095923941327242407052099067098644981773423855555649557552798438446217497904279229078276370490909855546557811275831261701243445752110394267183560336914109611056502679564768735009266357093556803250284971173511823926052274668823942601589214030680840443220659022306336105142226158396525965005011103006508542524948288084401427462493314399979817130448895385586192612033154783393860553695666926956229666893878204008753882038018467105477216980966025115076224334434003869403096458100933141448593301550319738189697906917381222760614481407252879539458202116190925766746527449200076134139060662025212909263420891030271537941724005308390981898855842989598501241238540260006428760440058613828081548707191567671473980859715472649271843484050767809940788106044935574438817581360943891670727377057802812935632969220718779306924788406928685609162972905886017654950303558088491630372546672036259355497372091374868212441402912632718367460318024127031619178405764096359349169164810297836781789440094231865870145645798388294017684487493520830204916311918378711321110407689437937146836946915025222279742124011836581316162329238896982223898075745156676123494379789680785027590351593324246067597534809580461596580478365656355769469332432341544355817841903848646808279316492957294519528085089028058179386862312066631545141268350539225291319436014467624586259773225984185606533139813401058807881879919471724722451182647700354415050314731182445318802241767649211190521200321354457073416614693033005116648333648107654244141524187955306837451951592751843316494784622613419035181920179822809700699620521545661737258533677562290240569475260573821003022645060994717341765439484748504339421738108024749950000601129424626141608527253114432466687497178133584596565659879907411700591394170008564655371407837176360195458628816679692658404024135069868281359299136344051113211883862282536491256634343339183058080673662205061815383228953863037876558612657383047292042313127993251160539159757969860308599600582498612307094886372538746350847460317244065982151961638475280199848964276038326831112398648725493702045886990064974395433591044929650764301521178365237268344070904642400060437837522098970912460441534376429577833214114017420577719832468185754035171400216670090627307173371374533641675375299973671254823017704166686416361024218273687653943979382936332650995653943496900134875836997635850378818502978860469432104510422345912556958292630634070761270892159279668280790660704252895207550961179272213076128162147624377713449268994821844603680141268329958059083093530142753377761704682253145094986879834972867210556239800442563539008120218244750972766009024134989635424082741565267350478710689501429447034911306731835437254460951819763433384162989272554912277658149241747249161936777314339576681174477431727274705493260727856286911687284224442211581827099681480827784707302082499948800832438330693916570550390944808929720299597085936240768974944400336425273207808708860747775386740774809936029464839189427222346792422481562770784333744294584166588133432939589592744851128481547594259128244715019865156011725846406159590140309185737764951841268937255613770677256485813493991485757893229688081930545305600740087507572370939775983623966377450876156099942857327472729485582245537824055721201814052464820398253506085458543727455593151466078613044946435513705239929605451067267476178426139987598156854876875295132350733185250275351580690910570492827882659537551208043601111045969463101473639832215524183429381634332990501699503536679012200205829129916103233797923034043409363980288845385908554710956837331603245774188027083965648461371706060385631066025087405817279767210585262882179372269160323078191813974794417525806465552158051440929046281090744906823475827308133493006315169012846631997148317167286622001038264529623725466832084471150295035701353984261039255734038920524358716273326595785085196768799711970359916026272265186520106910935459679087172415113847320799330806706029860946638383503409426578556491007657158058225979437355313295352022815480256171071762074714622110364843316187735360240184625222047168130039019515890306329385350775068668112080633488648143476272144463988383476956835389222084803262875066326490096437240967715096611383280024378571475812808404124800680026581558882731049400381484254741787011370690101057530867338044502185774578196564979025636740665154162408392940934053604040861988421130201221317550846862014226797837177361324275230328801897959544662059800142389903323128670766309843634340925010320996570169261220583370727236159548278047653708099213576582619370326711112498486072652709383826310557195939625138625998897725659273016954522937663053897667521537373028200016923853044624021444748046506281243119158367161979854698350595567123617919853037329489647970806950075468485342195261788414348859386321739822921291172636742891590669359875108367329507248105208091712688730785825755859640241323678117692589400516601882163777135063008016853788530596142443057892295419347748024240712625083686962148501344262161011268612083640610662341053394804136420254969233639603544680254550920943729614254619049444593389103765852914108242991189688546300250197028124491602079374431855813103912307967715543795337939231058583598538803659582094765906814602744602758519288206662080399003668310662644667774493368750677060376634792099700424815094474042365114662713889422501469638939201429817716832904639683945065492485075197672217889799003123441135594476202629182965693685519794741541153530771280384690619651738374462147383694062647716537127440078679617133425491152479358545377945684703139516716081391942343139254625552549821118590963769044529733580457247477370703643303653247435008864866281914992380773138821883613508950981483574938719912332774632476973909925489419584850407781119303984503029535721443890430509749712639614976622389340621255818063596166645920911717348506985579730813894684652959310433326951315157189733177120796482039899925099413148081971063668155964473180701751959284261600157262216024533685953892573567601074566068096857324588677168859154291995630651700181487971407866466445570591754000841576333159037121164591360759939846057474122454163026089353041197194977393863652896951359417758315239903783764114293681399528855648516892966489312207445027477975112219219138438456492623535569776985392510620356637017834043419173687989815926493082432127482864903272506648164818121584409680549490808472361401311159539833886288281713879201205759785354835385972843504300027008115474132396438849873882305449939199172891452095620444269057896993324430552408603376880699546702793764736456334403834251168386948918434128197401611301076037493461780510118048544572984065117254484302134882536842886224598507609645791323135950110409951808975488262124707509424420370735519044216028329456209343961023226672396837063971691647524118409684045287152893447157166283791587440178945738270761726669586402183648829870096052327863047446107267832188981066550393538948185140451739185117423540166890286351933108448662566260117812944424158217790400992404406940300348771664805307238376794317208676735347657681263175605434685162189641493939169086776866499355079929326965227052521777974327049369119147555185708101543604559103169133057135653667418534919214015116925519678456171657690224356899652962593158066179550963178755168054547756081111368037254870515133714549576218457033755752850652391883089219374090460456493435636787530738894774329638278076298693126769087763939714665845741024846007939199228934716854639879870360743120796909073824441112117733446532468958742983269707050523429458297434585377209457134246968204884840879593807851396563480771672564776207906894267381530778263851920406855650887407206012467099911460378710795418615458662882579138425986324907445954126116374280438381449407022116637616894308935874701309095640944535887793427279609557354605955052822613811905984772484951888577199003416329518703974213375471451845409978226199841914099976821448216665655154838777797634361493880372489178256739452821233894994226465203255309995319952120562151237697552485587384768855499120629752709438324763397521448405366934884078549604576085910824218427878324866397344805135901519272164218810751176827327886521135040053199288813176670650267947267215305512203378850647392247930491005436489674443455801486956119204625515254989983516806823036280392476795563389554291717251945597651354873563066511101028469123451367513197035421119153374818275308222403656371698180182672738193328371777526646343764367219483276731100333213057913636231751034661587521577801050585531447055901759990662118842835329361984767492354551130796182340930048725488991508866372087803739846913577112576622213361262091259127508192365350891587037733847434049678586546578174705630747929020069394636511836043215880655262990951538123658917445141434089371129299523118968016656914338672274719051448527023212590329087820386253702256325635410144466567509473310175944715960168323707063488241236797478389337244143004650920328069181155400207873909833119575516016426615548524593579668866206246304869650932292977416161974385518987131584106725196992636435724493368693698876578100410662421270126465051155474326080120484279943690282995317317242727113539177916292653687992640609774602429674572171077133171365229608248329315968728881403815597713531888292279165776976627323738972234341162519300108069646593074495111969264884567328505500365979462400732691441645118131088206043173268118770790946914613766539572787076523325125999008764471579444198823106459109786349526602128648517476343910042746183650681104341811016581405304285291755460517345115890846232692241369000384916674263350041622859974661043494671820773764611807448473318756771250003731009364183817494137689411122871407019722754269351191016356923550841161100056122872548944458552435727193835265036555316394105203324756761743926423021998458223748486171817218964714850272375506807969248912869645096854704679006131230000657594903685412480295229045021627920806319828895028383421598734697687903992123237565449002140952310190994119850825355523570220531160813577208882425240788949950827234529375405646972373628263185712766875154745710695062068502577920792944659723944008487132894208008624913967697135489561089290268350335677352857061200591550081520201885517874797990327759844544078089140467167814884284702132902276229686636345438179084421132478494745923285855789361647805067040110137148596366496589440737163675325295080759822430864975531870767575374939994978138698615009437017811617056326264913903764600541582281273398257842090528085150411705401131568532097975546411644916137203438702587072005517408929503725843374560641456162847009774731257639588937037173903632033034449701260118522655453723875332760023011764180034232735094226014040591521899626198982442558466557131179084439055275297033131907926527587746484589084400425765482123089247793104586070402202684690706746842725303475523572521167730166777349797043532879674100252158310019033330520154296139677271883573234767687171746042363799340324027643622932856613461290984629739948372575979682652429241169466736020772744922851203471854880080272184129002740717948943864522639546935144150726408925724568275769977956190277066274316420568828218728284919719699409072057926510116475686346790131151791127095041845152376814273653176941381573636085886986729300238402222992714658026932321305981562314646843384194697812000173549489073431689845797887452542162655725931777660653639776812918833440899024029821455780325826587784531124908435033341045654333467736136936122289436020256123964409882058952016894870232228301763781545390392219055797009946597687527048924425138518110912258306412411894346778612931623495091724030814980231559136589717924149604370211507513320853254703278753995535184521048617446072240141650249231412809988952918677126988624529844406234668163605706641899217333290524136684644733306330121889654957295383000747766114669012963809539533686370660998750800147387643764207911853645282730135299552033049137511664505158490879400995374148388426189693090889734955811285518652410239764469331164684936771762746322094046900443816659731017924930930052479717557929646052174662758257122273357257320704493568264474381848811494818572025025201462016225220725833459516563539765900916558546295296973729466824878198190844734704847744992443563283546989341825120912454497720459195596771145368553486387074179372058492661628543170356587519972201291085307244006890112832270686887136749315644671800341416877281737832254947296130885811212879391974875924545175383670197219943439818609974206431302675909498770685172115903490834947116802569412725892185093078779913137216381553597073258490937119279645433662843149863309423073723368461579115953441969093288673623619792563732442891604078857614267073055325937138683208132613549237013696492134158179618252166340862864555988882599884837779956675435967859733599347982662158098811645379765070868690719951090964991675115809198840927523542566972849769681825487025811310727196167822208764251373107985973370849142352668290156616015035737312337432821763273156733136840066212952157989525172211441180498216243997100313627490599339094493805268096718337322764713888391233396937863907905912060075787023732703924575351633581040586775358902877319088158144492103519008929733716664510672403747725176488087048680153429492991513870451941678331071754524610285967926677071745814066485719402647477515517653185644648866888963291165440297775368678429246049620037206417942276450657669777854486609710191286406974791960423002041081816333799125861215986175334182620659235426193530582732113670349940244108355261822794216009406691834040040088572912841102897734575994219279003557226685709727879404367031649695557430911138241968821328102150716500030035667605354142438671367065391619179272873180301555426209826026647284873660571726248133045134542590668917546688519701868013834332207158887252590743463310023033025268311673006518328623273602920219129791135325159237862974686171023168893489628889499236904552672367777990111259031446880967960830434494679751222076736018715074593888535754746064131602852965777046218674319443008894575412837423227580659068498085420659351507294341307450896122937606170717108050768121824027093240954870573822536114140902054796955354486500453050069849616105498068153980039233807863294982946760809406300681889905559427900621595530545130453996061818098770003774823326110407448616610981900624064777808487422466661604907713148369686416292831299930502740946323941379260376353391877872777796456499725686971705085815660110034575472883999830271327536904069689523501687328949261176412503883848887518441535054799425999873272988600737294797394189995660786439976151876384062019357133775744002908504569804608745235150350919692962499817519612180701370226786029734886741510251568355060688806198647415867784372795083133785059309148143036778573358170447317840683023719899309261978391588618700981299963997094772189895284879585146985190599071157224898841781980235061649088464513945897780543467049537319537915888221814168009395878664478760969692637168059495368594213637361726517569759288919623299853387983984691542717609675929278942163058152260739313539937134462762484640693991123160413450713579209034224066474894921607885025816656566161023986301809711318464243716127620082770152255208698968728069998722763756941798235504382336720172263023451696354229588237387991414425260690745913960530197736679885384482786386656858751326005387048417104747599876805881349633881603726209596820742724959432132456417250758187081367393546343273385719983817592245271051808673937806148651104590215301987966446774165266274505147733888138278238387765154613726960547150312402518162719407116461134241117116654224021471803207723671643052504761952611471461605477627236941831288433202885794730742573645548167883598401816202383443388279272275106723240127774844379944187539390271820018093526517898365327328055340575836198673138762430000429671242172475106118418608721827708074019351961827280949059788803484618104283806922492852147770004769777597494399969490991371534491933173613899570734046314025312781592131904494479557430543492103936549959427018072739751519539451006045922835014122542386512604604410052909234598756103189608273561496424458986920904868726477621881944789876389194042633200228526766997267274549636154460510544412885091517645731379316462886245088190553383050298427429970956253128656175706747284728823208783593790045602586710799304683783726708172131896542687229932629345995902791243897379804218246470065960082755087931021153644365165203047168642536990276527920396678488808921459389830729125923782502003807337206259674571783483627486666935940775542515227918763418657008017002112764973272192437079800572898886485679263112984685471883650407523741975420154227089479760633796227932495102565100655044235165157522532858873903717554866914648265109903357211422595047888443123352101492560758900033374909148092489731993003972375333816182220545742195625284409024095029262887900396753247686657338638988933363641955686392471591960915351912663056155769191317430392471375047173789652566333321747554517756574601238976838776229125093583901242338496167541416884455752510266995042254941086907974926003677019369194303783101568289526028599299243064907332793389408419456227166615490247133042938936589386894668256015738590903342768138037545037518764397033504431308671008964885192868332878379223586955113892332839254443361046996067952782460425562085245114785799547581201099467314038225313015036106329817235055845551805813074383953259515478646871108252183453094153221783993276707665533126378434554087706364615644047207293543240600734142181780442096863376433739666144270793161750273440399628648022593835888608606621953034735876704376134218696640161787421386426194395435135110556563309350418994440257436059137228355415079918189147102690687015933531840808821750897412021776790058631294032213155747079168928611840204135278976698411148815106752544476923256857594344688743125566412240741333877159090620468563164460373906981756384367760479250208692480957440727259451354124710572885233940144786274595565831186529348590561738698158072623317726682514993296802733988113138969343408290496233355425422094589692544682071480805045783576002553243885804546930588943237738312295831414347524900640941271255347173696786085042854584565550441921555119471879219404611678913180877730437265503060198682588621492987129386941128780333095467304385001580147536097866742521197199828226872934995131404801679374451686572849241160058025468774550836630884268907069422963407466064428149441452107993741095942640186216497230867019282966669316011101296039102929305049469078977377168655191519857808750550375371003008661800417973696109512828063910331778947520642625854963866490183389542275953056972203550740211175994987990482069519826742313888553843866036083407781429388844241229435885932232662690522158262281295160110294322278536514592706370679435522061396308372588122722172071276105618444821496080239335851676426558943392506240623489254655266583756695505285671624927274982082049085150814525093984838382278543103290907897969875223684732944631190363195381975280293852800109069237363447122747420240698484485101970673542258540903324894170423190026860755493858104210353587607365487832194720170884759477905551638367081314390655042194155087062511722929159424735226785711792012304040866967102384317049107635148196971767240651254651331126086449934507150148520213983206780445167035904659056885752121592755771090675661824801876828350256310190583228200819722341449764070348444864408726836127628033879208411878962430891202532275413347241311100836325483131430250195092721524052929665211511527173794531816085683599455133173769273167374210604001507093768082833118735298454311998304770176932323951276011327544093070710266529731442611747659473187584101719265864931876209069719637273099307413047851199930136051683739791997096526096161454160831941422938402006945560694177518066764093170573408975622172674405586704056825901978517570836497328695864377829279906506211603887850621084001112560984073128465086323299669026924185628308521938655325962285375898868694660761779358730489443706157260544455754035192284291761339933563660925435399988776551305240475886863490712299457736446431526618508204575435531803145889017316523562319279190555925959283956834814176901817712397046830145214089830182093113862383036518248343328291343321713975351198331183403161486092147791698534958377866760120149073851004895318652155914540407507924198050815691950280585891571184684557909786877358021670530194336446777907629906217063060689664179234266022617029405235261972545711165613098276060150930186867944163235069921136076977972541044341713246883124775091316285010824739535486477801971390571548636349794405979738917128531232942838417449466026353954247599647318816012061712160925337109606083259634165014312365705579248665050035229118671781343006314074854333909285439156563295439693845721043214594083253775292331599222531040212393146792055576419910378374499665865089149674243496642366986407204271790395976658114772527621802438309291323959580671690479812447897861722797440096896852130965738132751733340666243246980795034969992080969259770451423778960270344805697043742703478718511024054418626208686858818593506117657149598558990008268787447296108727673916569709448440547316626984329979388399432116408495670308276269729531448509213908523950339365764689684840272204716382766743541935148310862926127637869559234759575141752974023720146920189477814518284504994998243850464212156256182344035696706641526896425376002498799685942456749842285151671150396502555139091643957922165593477133441090027691651028327073044073239562168069308723958955791120299698424784668505521803585273658196197538480232404830525627304913258757007556401234572417124625600737225292663944464371807476590947384717820609321590041741805943239663810053676764538222767482427686060439110923621837801742279899145714788265636317608938483990501999413591903608294050109539928014292764148697671667169252593644190176599780615245783442657057548402406071967129720675989323132513953958707148710507094702037137795655867798820725128318981275141626829698727363309291397676878142458884958480419212261608968310646443744458123394527366749985767332262070693542951245866614703010542541008622970971284462091234539336759517399625011909804536449997310374710743821830503428580920255891430355368280560968983657629435773980096054679689069076126902965837177980749620271976957509131729016931554632700465053390333136788695469589892711188484530951770390738693321453687229345059850440455678788162657702214481925899203892502144506111804811628830159499500673429966590122602974592794342937243475443206936588371442305595367767575711997094582858919661720869142502423735959368108032762902197533884269184354214858418059247737198162884844845465564783423327348974188552294408363771134080605203310034842956886415556030209306433036958124958454129725146004004446233659546423559906182602950228652082947356158788317414465962062768571742328654305367491431959601361674843283105658960823316067255065360148758218881447781732928199942951649539884647215352025459978712605919746333955340695145287378195313673737439708608975644568940568482339413160237480181813042389117110994986326959283462890977664111508607942121633833887751282144873932904017694396728830071656483080327368128820629189363909133077760288723640412763269546409201273785556642591156290982494232419145293892221720653324729874363005149078451074221822931285351684613826740053910145898812564522089957240538547830602628933982584619358291208016176095736375000010370520532833448243852145759950327116881701356152243998299742342155290093748123492968010072987555126038923725551410191464141435126946010355185244461007998554243852715947464955123416569305118727754667547357571303691103372606617396173390573355471435014783769571104587790326157991810649045403721227887850593028362294467900650385579475550027625217300940995654896819104750884948505884047179556393336485779972596654585886314357523873901831453407798148840647854326224702544651591717523728853785760178895556860025312456922983611125621213384231832259940796181898336119178775909443370772185318322793571216943219129590744116394433273858007643460169274642510841562165820928536780425609186123874287816613722870872860221748898841771623933004610054667863978873771237735782442571969111647117945663905065027267092596276685066424482682738079189795648418035242758027803556585143657636245772742129173685687978103752401617465287761694905793856739924090992326467600726035562770744748178888479991920350967416103879642433754010506266802435883056563277600462753493234630146068724760827523439828343750789093316083830419268656009111025079552705237037757814935040131445873980190889197089843297575493290825039981915769798012376424292933564504623704248414087826207482964711660981792499229003482278333095677468129918362594840621969186939228849102978461715650559646121661479580312685529214826373604750154424028050429467247725032961022660221947073650866458659682415302710790061222096318479830351278278346356378271427664575986869197293231634149545376713747477344211247950618496867392679387924160110011052508985124392845347757251967874852979505326428945524210832436087605310031263923090297852686055372853909298288145894632126495620937296992281031019715038947764677783814796317638217223892279637195549709714105397405474807435683774542908146245126776196439834465560393809779460728844895768597839933757275174779507837588248221725211422487617536731486185706508211788397785363533906316147408804271666665223108982855331517970177519297151606061613820227456568841759150914748717263331131101909310007633427104268985350865687109477248356169784478229905067092159041277264991741002855153259702585314082840051644271393244924733727633940625829228879449315064993545601720128793115233704654659109151787513027808543265025002690558437536561338046722550833762931028058303410237837483186857817118899713425315623011576591188324333731089547393298964292038048491640070682224740227740640311949480152295147544100873022970498290125297968530510414278626027998884926903400793228134901708450526238872225753405041748075523980557164835771160345801356068208120820935938491679308902227147167276115306392752904315652648123809309409078092709898828332204459080061335546587309415925708766734025400801707358876246160626326146752800820428638773714198697039500816508884055945055536693496653133061016744845857577461930460075864177413695970348912717625068996148514040011743053566424728219713672822909818678627165156149006715035576026897680263536356108766572018817360979649758038713665402207109114328804980416149195034844717937858597901663856805772431526580101538408089739190238732297512163975979221666731482690736277963869909087337549699428924541631488143011998883559175344347628438073741048400950815885816821684200373458181117204489250178562235370459343912318440692673386037898114731583379685433589446890901004263724860419939272087097268860444795032064980445802569759784062226863347496593814457142605255387038445018366652010423785556006647062695390774724882977401936509606718911343833067227244154885417717945056700967613170058267852915748474618745086107390104502478243746399448362895903357331273186693640288870137548863786915183888131957579134177772781950904323564129734117110436178201103273851140543453317608028000356195483326626072901454827620432801211996120415920516560650724653207557942676743095269577520779989788082080247240403763046780839668965710932365721063929774302224610943431349363287724891394586033318030585536600607493701983251179202732908244355237467880964153143418625293646296865748699894382912198196714208273808716310051524387840933925119550139676573436655059299893176778901252094398132471315858878783413079899250323381772226222474246929377791451306283094549463150105887073776085529439260889136760290398411256478379915394238781248514395911873721636424545850243989662900017633027550990017800214242393614941301376916543683631638802377398567057682303169834159145146462581639180634315132706322679727908411530390353291530892240223937118102992435779043683069315700308474289178032712100747683169622104409497186857757360425439429798666100543147000779917400872877471439474641967484049604883063144465910579938196394541989320339554362455295648344649948390584162479351401168749389473084825020988830106882334731468859399654292287162022998292376292025591099550009807604629084711271938441039262694436577245714140986267133627499794159660709300372345293463438993291615097515941766722815727808970922124075495858956002543275813517649536392258338463018158604421032777943458053096191367171745490821230300697495159571194084879746875789377543717063852360908179613342053620750335502921827032082751148445226100945711774020297555877142031037048966435936631416385652475144770185688734823202478943000996356968286489776692079738265739496917944372270868062144442483585262127048706447772631820089774806201948188898132192299525364247879640869052373158324154959416356462317745589013249016352761411736805473514690767925001365324887334799606145913716746646108502821172881338917151168201450150923697915848258306493519145560183744602625363837734048229362057814174434274953570468252031273729958156754773860212585118997707633886103326497315604398636017411268967625400778572195155518489453338960168196917320942283222782672352098220004196296357429133880495381610373955942778849055978373522380948086809704910079316391111039783914443979955996615180763489016279720806961641836435523099023699430261158118781412934257433165792012331922618126931937486185024681889071716971854288486903466253224691481995135253425380210500924894303387482357143675213538470141612294372698668549608784003038722334326321116595732042803085763006181812793372464114368340872603718172750601204670345252332985128246605328055384287538773313212847440756910964280625267072559451333131552620509077910335418066396435257201447214905769614647603184120786572806467281018863824580749252231857949511231788428047019976373674744857110777351338290390749002589766770106682513055551270622554910326540181119529039431968413344916104606238830496617329637635128812688190544483265045529696560990903793683101893730937471424913911340984419727577270520789347418371624463814520266387472017663526938563556279770538687187914889159779034349803284403924648786383252062045919177893959006855469306702849139318839393888295671769277238412454388944154384489482366206429007468057337423904257021833649082307875468102159630883141356805665656516187135916437094811806069805844393306840600239265947719420194940877561010763696432597295471252034940708460539938630322601309461739974381045481331126821743851865478888859293249705246757065817547004009311162871599093173076387730306226635829140851891167754285165448801460951629168009501201189104382744013769585367612514363669665210893018042908649223495464579412832157018476211846892424609157531158961409025537496602477148739765436146965713660961703302707977507455330037544276068925044720703665866614053240077700029855637211879072191174052758355682717301205279436485739743705704339546768612804351596599594834716233305774169800800139988182802286793226553327754341228053221422026764733954615673897719807045672935046471828521976534785077028914371832789666717310021882931449658605466300339022859886284416098177030195752006836595066247143350062041007337811542405768716416135176815120643981921121819478857525807535523787452124315607687637864791639249413952130839552016042327373099421350182653996301219459619086002757493018311803261828463235546774015568710312797698350764230085891667109567455967317989726382451297669512359433290951069801847606767788054162802839599648996776173894016689254371046495392986737982013273896655501524959252270663765075785720789252827979646414302986691539586485231923981999005565761139725102859618692597710604993339357742529359049147901530045870932630515758424373582770912214172397741267196856702740592829369998985813285447942736040773454480681883095982705570850907365697392793303739919907475765751617371408705654389544300797570015702003084029469744886394409001608346829143340703925853845482788274995077118524348245759218504305582188193313322436378746981357338669506836130839997373150758483557800753095907661378305651791444776545160084010165791631867787473949466808009480435464394921485636072946376447835588635168677439579980175582177584584602466848147335564194020220405589585964733760802798168535515766916606368059249996636681040290453500373600213602738624383161291135673386113642164257892793586154224556767381533300582725654807687782315519790956778977394096902716413243914667024742763473443118628152260945801967459186375111342268073173117900826452832147762526559568286019366849074138908910208726658400517359970527620545268719695981578990758590942758396182868454012784820679284128852242719109563994974492555526601507194903928746679987977007382542546080294487973801964375214611264105891155516255584552544467137137701864826108683966294629663232726000485369226848030158249027686477738393644266085544456148749276449942029489896853498411747115750547207152513678469460372853484476071214866245212381763238081724867066199029942358146269122611142427351084761580853238043862688476749205365932769066849161093378012982103724999391846160588576518640192518105891635902694341758604923381200358623689081124196112426306273341355848998761342636872124728427646200053460672693850834412880346778670776532841423141882908234211429130368468600095218225559555768238537325494916419680039125887263631499220696351997040607564066621709170079231327693618207108850775274395851748645216177462409112003798799150769436568789978700549412007877486044230484484871530715534944459684217788269286790904922914944437270758626868729578019924094181642297805874764520593476900337126491760096656629708767133428302613024382331598858434252720492829449526960136863007329372992639108328325028150437282693982532272395055116388126363973196203098484714192789053841619546489227194481251583123193933328916759345878014550623283299312030767388672077572421367068559735030977407177405507821304542836803297277045315373791024158566168337335647120293746284939278791411770726370980342169068046405487745340574402613065573374799145621798817920229002076720192294139904905688602693101606044010758945729065213760487652076122900742845603550275137208324309360548955918339473628328012753960234070220806243668008166418356521454610602882726156817635189241354787076417481208929869167061169094520033565009207630637308012014577415969119854193840279096237445409112228564827527116056173905995360053465694673475688826356456910683988801420989598698840664618748620967072118391734277332316480979409050702842230516091173703063250571449854227678584261254454949037139017414645996375904564289547725415091481088425573787263903513929944612054779361416963236916514472534990628092971201815789701608909149035911272741647566491243127852240748012421074712159253480491059631347476058490543540544174027310677856808484745379924658043356082836762454414156324258673348510557570609642041968777691678145431861484779352350214261437040380153371055985548798447516281526505723647989936381371222852875341442752842726867274223895087161836107273655575243434504592963053057350648964774016191090403665943492204815001633835958820432150023661222904632661205800249192926740220461123693445020950994472502779278780503563671415866634500858315098641737911702495262127339886130275500073539416655052225426305397733928695707186349840380099975808083148870930731842843895161898568748709591367160437689789585040956163350615661798391816818237522137147101648946560113666443679265676650490015925104925127767261195146125340994873237409339394808875178647559646714601301545536840876239700631314134514268468481856042154391585823768671638502414143535811388425639152351185121053799596631279649111133743683026628226539897097932652897096704651554723726189271227454951278587396381924998860455161373975257191216201306991110480014764046967135241010603575073525409591388469066946564707837740180048018708624860127351986099709844318567551443704947719284436877039088188174598607267383123495277785374733778452805234167583914232459541044481680532995010692706246642581715750059867985312923838477544804210080348067494444773836132624817259439624238650716457677968501004614314605785171363883904915853672908384216980469971536131101043615012412577952119855335035870964041198358665540286664117414719112908250913664880381652792446722296649135587259449573865039795583801576983717202695352343264307391762089923841261513068037578265081552366115014919361873914399639650718330269073921878408804117421086699633000473413476761624043236344644534379667482972527766348144537477880941360816334261027533021710750321185691095331769972230398332538782264802436808857413187529776677653957958985839868520368010808376618247607784995731292112332483233608528961441129376190369610868281995203165097197002930901342999625958076419204361153166938538544249845532128464520873858762819385943492803227650541181278541284376435673259928107470745443044200591741723027209663146458916831993512330913915209446955845256116713696207567323656292036688366301965140068359456434222687216895933107673870472771148444713261670043604718725794198474401561868143475600826728584807329732125047119660997002313464682763998458037143200910367688468016829587914464645033332298180009709029188583845296999338097714582403863004094681286446655851385000929904050076729533117486335400674397692197268572575985070626808902815091256442695619001481301102528162960377293013482613114750254103120952231809630538623686311987510249588712021233428866764050724624362283861917838074804892478934364416374698541262544605804294910018654200249641960753172782539760715962725744962332202685431254769247591966645278652536002595369039205973417479499165210696426974867460793500336508888365409243595951982393356444461442557030675598440961185439745376212433792174416907126507348137017511074503354440567012840782475836380375595825687998040706883751749038893307391078566012795770397044080208857603632719229687649924853827496113579849137734325570396717557354812208582289987822685262340541688014652749696014585135737789427658422975445063442668082525530654262820765151299572991739625618978264086498833953700197013937125353533702026445786163657881234704083349439910871840181349317378290210494218400135824548684628284484978691326537537554246491345432801284899074041612226301921218989322541564685094054803454393052217284170780789748851935302122100491828013467674798073585830735422307051157643726685717610514201035279019747144807553742808562776641076956711833734917902966604113679392992230470849562694086799207533873251107211451262425493769973485181941831760446577870007042612892156638224030143775773830285612477616100069631207484155404099892105160295557752981304300549825026265440386255997797226443656797444827264905930497544741788000174034752212785795821526296162582506148214056532960375690146747090707905107831765593454317523969306237593064278960071426438956318140566852708816393345030478825339691965031244159210470334188548214683942175379436616922820936358986313287726431874643577755458655075106797969104165606157544639747983600543070193603305605577110826227614163761540506340868348387875757561360294385266008344097664242631593110285311907512785551330169630645989727313056834512979032584662214166378315722559679949126854011564415374074372885771391460952929286680846338862383609569211990884505800371688827735706415736007178754573238041108915610044044103128446684840331887795586471160712278019662233912987343201790358014248671595891081031456930309573874886657719176625866228463994396171048876781915719687061040795582168615677780209593569839403310776478406962258511706751131683769292230344186940830006131523564702031962615153477028638767622574504221352271658219424161530151200796803156311706054272791281562025729177633628505823111254707166928894402089162930765746377849440379378281523454855195308409687591343943225948461220173854307150620321719130097140798652314534097742345526515698673945297443007355442601013095240235871180046507634639840661206088631337068560495602097417876299684315562104596396172501368236968209071389875785406284579362110038916078886207236415215971855755626574388916242128322350929876317706002464667315793541435916104677391070317018838558452092640255339119860832897694064882158032389343247732169650821902834216813491375338213757040574080720660764629268011522123712741664099531085068476392890631447486580871709568097191860856040102818620464775985838977873365169223315224147538963782980499916533420640392230014149817272912793912736616455017424634263904962628388184068631052857597906810734102254869837423705592987492095753066011996684886844990651546408082278405561703533243343169846240622720967514931293650512749601484500593419025761982218157459372926564389856040340271331905504877922442448349314468132270117442695902959166804161712277361954952315010517455359555712165296682136108439371686605651356580872716193231086222228403916393608900805408095223904998610450595544242076373612247724065163484673008358555334321885073902022103554200161219082177742883022647574765178518808865065977289217503188522677440587340974537025774498210505188500155415453830577166638226286869265344540425276460678489660357708665080843740829152167194737179105231040168008420225892023461935774144228515573529919200900219832331775607638702890069168896207584651586249822832663731446844713428587043582747914701735376626710396904685112627712099271305017493010282064563158799133299926893793087539477780156434275677993781955504747017175755049673919521276716061182323915339778914537259648514259133622996810363528850409470992327721547639597404223443427251896067581431814908598830316044947404334952971789027544448796734771214296265450576593937461713053350758458217494197804253190481772121776421401145647515953648171779211129681502441987008589613533514760856432429040658684494094325072569813676137420810496076986501991193248116638761087431615865893156501880914123827293269153941422061185162835549601605853256725203545143625646266821685623991100812147261284946820627076309011099301694205018576431216314642628669349182400581316851813858382739952872771811881670436300385801229142273530989863715494800823664383673424780484235095492502414356575973199699326466255112213047036372740471297266142563964943116967627566021804352850202495489478358665749047300642382500348133800163200045289906937017907717571485463903291823310226329389890029786531368128436200812494488814401367404455980848637664823111363008521558366994450470107068612155830283747607682251906332616365332178861834299135658711811821139143391890917739877240072004706719454111472548942621554919524103678954630022213880401544655820526566336081234257065647638098338444836940937005402378514253271244043500753614637154836194282706530727086145460185425101871513129806863295917045049063574410763067395602137637238808223862256290612260590929288779265338487563427221854312852358552791108200398151397040443515059978269600823786701822283148646898761374020255065892902343766079721151098081128742035161215140313850978801333629889545605658636043677422149164147117571488710744353739951875720409603690558518585928808731514713234480434178158502406335568427824550938130333062225064663857482792015858787376476262926768504306119851478314408255599824537654285469511576023685306980651062835095591404681810789655878504564282447091645820538657093698113020412856457915533272868902032798769392475547635285106374388177470277961272960940435913519357208265905316941171869859992929426613918486117988619705076307224206904877497789312368052968031185063925390782655715490295445346923757186149228937917760727379643359058174727681988885441173382428293827984214672351904710085724414060972387569521688622285903760137578129856941921113721081147943437435409697209793057396799573809305043845419925386500770800869034356812625477427403549090508578863754758054837046621131341011876061697128637152010977916743563306864018577478050102812418488510669480380979901576950196766064401417697460865873586967657669528629147695773642367164252378855385399735550928842367176146996413321304283179667819305318261715866122151628406475566284949732721302792436205013563122580356605638029831417950279356815803439410176461271867483217567103672767406875191321201981386307119999535440448742026011411005087869347698387951745261366678465946546027276782523066244252972923908081791408625958368590848252291670309594170250682948022758343321597422075714496449897649530057148102846423744035310053521139932273934890236485805488500015129019814903060902927698085573975700446880149753520064837276864837841093829233127488237700862453471963483360821245899760664075775906824106424312641669630888183122701085015341471363298552046231614037506051753444492322153903017553448380185381379245600610949898963747892994390695145657702121959547471509125993619671403618789911922645632349882589460095162444757996084055013655768115143055999108790700704875240917916170776902271761868978801822643799329088725689586629510493678368824619026560842004129323358941069147215772742202550633868651453490923294486776727129752073324044674312168440073101359487637102894344684127889385725251987112428986653575170886927869639587025193259625572338275041753054678451108001541098069219979204825016921800161559120374936931163594440116612366214634118426274953095794050795648770146301761537441073633172072662133427910962183816655049461519785455833596792244068519602842300051162315415985226085786558164685906500873208306712442254844037876428416808701276047021085886762764367981695807694588436078949577333544833811738644603316698141970464950913091461026133030537862568215099485416734920777009878498300348983793532372806729616113438694306230394481792003812856580250092815180257112174415903201245654126278196557313330962199303137940800550817174847554774108922823348733207828081695501787065622529548705839170783289650043701207907883683127381594632414278472835897578991924071428911466985436266456915038191834472411247580892269054170222005893672757405649084517470324406357707950279367258418536330503177884538093651571156348060693529847474739079422827592574063085936363418046860711881251730104853608046416101068490127171565771662517918367646168461039628338585956979790353525932285822765698502408733339780140030598795324745811458019554795365993630489332482907736866090685185077046870126614568675871983521326988435392109839645945773788855577833392106953129188062066974093830459769616183914298897264313068811547041024421203648370004467540431750547588344286917634708077186514156701711467213717740182485379630487078497978676268628667393908644159343544317931193689275739767088197659968373315924153857946097643968505155329808323920966627001467928728628467005401838715641616873151657412755198787278167249865075159891226033110530055139041533580401720513314077182716111642105319889613474781681086023647305472868282976205691069286882454230970498617802809033287250676955914101596619982810604925329735776196885355474696630367651879090569469210294571420427478220008609155295129491928060466005359062380751400322149518753926498919148862201855509846672086346785894806388538678458941048550935748648690818847022385183138612508734399589780003156384967837175746410330063320437512488769871121923790127025329089300415029606755307532473966900862137963046773207769340394809340764848486891567144989154728480701412127401344271965429961035001753942657485834105751590607919369208422559818568539013388959401025653472576383992257872445844022670132752583366195565018529524629638359394131367904995010541686414448174580344138015905158516606459504942305059528018908688986110998273848894360404453617148702150224772873702368311581790545708036182974833001702043662122855033845202324106021192188722846730084123751351779093268727696698486054132778641217421982947333311608065544745528446820479513622940899528338242906181884453754568764930785740956993879817111514866707254408470846299729147714852531003371581880129928079500556111348774812170321628025019281753630996169014419596284415893750004207216688141269091876011093732516472193229144523774790918361958040761313947280603361453916209295538401294387699112141693905754327884704278960429778333474030281658584742535321909769284593503408327789873112950804762704190114755304791370675681534199715998695519241226892283265125452212884176027392073366434568906984983189698493397689929292808300190625630906475893884135450528824727480676999878068233338977985827481989533101947635257313084035749366160928226250246379911298214138615929521059207267126094190981851076585477248609821374042426241439499593279960452568698970775323486617325958309326962192829813939587616867148198116901953230814117900755906663915407759218054004178751241124234308206226169051565868352439658027529837805423686692494272999068154730333301520492821657685398889919114016061601185535642347767843161786460573845888159284438630800692377444601978769127267842019997377247380295454531229875100565500744306820072462115862318507656006251401807660297449052141477941607721431075560778785513272242676336901817773951672597707480978944018689018808186429198640179019429035057259858080564528982949460569375374224768094782931749534393406591570540042534883164166151958278197578813373337808669296436034594339387067863143109142756251864771018129292166130022104151782262507955974024332092109832321556545834868089052433283349737467579937326800026468422083986369393257946658893900673713894788666537447438893055612513225276109519023693432086032812149741244012375785170699185865091452657431727225615456752240465349330777124287660945297231791454257770625708918494528372029367149421342212661403359679445376114579812586530416462293054868724983154768124060745623974726340155689913932496914180517639978941687641436909327114111772001360098943546150416523804683744662512097948629656961206562675055041439432471835491765180147505086314913290131907540455427289810765149848957375668823578238069751974508785757301536717218331785483440405243702008150025164254600054134054540169877162934403497226390503865972864317045312789113026410045403315942387790199383184485593711987594800513214330362773151534401323743962854392279744321697051257327256050737189221215848096209335346391438638286059922768899233618051665191902915451153292265608595489195949846657023239186193185487538025475633537044794814748652083332377236239010931239516388080940998026529401497506248902776230554719499599742817677122905286553432085598639447571449342944266909696926023810742994722545010856267382067392597731409721594766289347298577202337576523382472425493016540287915638136012321805131385155245421336598171607100408538620535373754096634458700210579823245116434908975984762797615340635436219736090563445063563768932499510853883422183307811427003600742572677427640486104682659985628764064545931324301755478883281948477032214494198409320457930770126377151063380351709820764108601010540965154377882778207558203900779974626464561901556947595009033668021903750159254041344210665852793000608369541945144784721408916593039625059061041037022906495312613666251757526114846879880346057513020845092178960284034441391139022048328879953414051664640984349494834892677907994243057923905639941481179835437556472308833152348806722285734767741702990891246782421322192476287097607036589798440963205907479684481201312056114671989067989348553674167997236074373520126451865742663867129074950347369963870536881372628069497981193555445734092713987746962394280287011740330644629558586541950338271049141455771912658270438164385885574598164833479845410321361891325529177523665238856495134877786121395419414071057190815361040921393099960817606968690704242243323077900163168946046146469995567973602627482203549577440967421213386066235637747216221272309894472050310748582970362450670850631316331439812817130420333553279377383686398052958000098216517745308247759130644052271761806444121388736774369398538224476537270047281889733339490085633556124822187431809128937013367125858354581480259161538171254675944115918199012602078012622585867234968810490736503054716548081462307559573409102795404698733099767978337320771005057135896632563583487229408075601670659137292330325914976555236205418553081196731363439752587566985746013503974582054751624739028421896479698765961712094741553028178020696288032177938348564751732047530729062116617130814040379339036792938895769050799630593289598514435345727889820333364109348559164655524300644884345319924948927099250397655239019604882537654832422658843262917080478396238361937912723865856073227377505750730727198546346894097261931547389571215018588780876561506182182460373831770837270287438423691006100680591614075307023721603694381981920141469529205960916957221602790663648544977385344330709112994373091681933778297314296291145400835460340493352079467869780750089545068074183086120026309233858153001305795273450172016175326316182200390354867371527919790030551719899687510394286747622397967522014279049246692382577331883961550949270186028363352256467919462363525774105490023002265503269550534726097728661938771706505625338927683336155695629975937096930186759981349856369483493639291075134905485323786474821056764874096189705214754415423806453052897875998898796499382185969762298559648839670649067913071607087677908710426538786811172637235814093222190007257094966454919825153079189577940169207991923104252394023011607507966888184491061742650005123601118220104632872271860784712760485280312363719945016043480422249982756181974376812627202299872679227633084945695565852755549251427715817484730845245634700241407414441075220634813914055222849751710051027406112297409973334350951786707764536222659965377041043144319129041137176910305207966493736334920015463431885316890323067077304708752456089602207043845045017259660167117508727139579436140857686721684219983778153324250120337983439384528022549137689691697296711887164052865543904528501226220676156570894838735814361550767400617015076332386491881396083493967267201774051447335854569422088979212387402508351818602779957447972661707297909000698812858282797997720353621584022351162842155089231904243415468016467591584973551904448508277837187811683164728833809388753146136211873015241166909073367525803966605103669270787666607268409004562497784887169723525738615479377543708731286486271547690531718014005825372060948442927738784203477092197632923337665025761553657697331702921958399160939480065324089801109848498324934285857645457610215802680802933200853135168142587143479534749984687801154926138324988940310565930694249979307391954802211243307523397742751655707339845707532192174292873074611380110670435090638801365659769404895212158084154753477236862233181295159903941508013072137342279065795304109387423733346823860468245807049789262505064552095056563382187042985846139848736068418957689154734755226787579451628589653798798487199207408374996197479622182405467886059303463739346693986683510455520819672909387480627480895738670890300945930997531949124077428653167415382656280335809985566697479255802818900658019317909077892922751339860205250887984276385503740305543083749307701443434493018509499997319124684276713122376188191442085741264065141443586274783576676778889002556730905213723689030044257910136982788599777399356640585667576898450144186793299679271764618516137382637012411637087851638875870331328538654474268781689969707041496130965065132017990286638267094224683048686695506136008219107219828811677985010383470944380490778868948578719968714032322695896858588483609405009629731590649392260585024988836241702144191268260988641096093493163314352780756015538171291418313133373335571009435053743932161459103491782865632843262018373590819665140726049781032356823287120982720627927600359172436305215284461890746973857565781862077844938723696271785821324605149231757436594706963732132374404289884383624277488079935800276966389230970490521506265035506585609180062201276505018967009698337343844302273441243278018645985136634610704012799147307650906506355889474052570997362488519788150312988289334971653142772694640994134004800467112049268764709194568838161767963405639310461337344114200225857712263213908993824408815332192943970786308166602557751371289415172845209783754283713108597868723533595726032983576413255849266902754812237720283041138239361357892425415960522351705797478542979563428658919737408167621951016584929561145606208308935621724266749502865154125061331145216096545258728458659669279300222636512791587449649466478971846928742732044879799911787317536049227235773414249139936561587545794390444863797685445738821386703642788272822947735029024883760465267386425530074604847311692166760780155883092516202437814642424283500570351928707761673778721974894560423760749894681752339557481004146657443378016091633578692138775401005384162160021893579015078275117074380176590652940295278441515867053379570173818617826955662757943960512770374817211535926934775076551894454376193684944850384777596008104270673616652218165215671544960720600073873702060499935046954378996778489907845433190439865820681275086761196640561898376982860362653204122019142067688981483028135783379345154103048490529279341518694263361274352441220732248498669795606374940131994766246017500847689491897312097241758749668856871330778651969950876949540642655327840296044338096057780411754623977974314017319922880399905867407280597196254233650830246351231899860176897523800340114781307230602199705499054633800614822108291147602225576358252661363329303874879156770626616600069551480579869425986689796961986310415272334510833862097234304384273870433832053073127944185595266074472855169158945411034168731350238203736273294017342783260707851430756045525824862390414213040579587933731589132950842749745567786159601654149035024663703385352094656696659041479106236933847634535893842020174424988360452878181971792641233633088452694045057804571078796339065828969461966471602713612716266730141535601735892661171640080350849969812026678234098930324850330744196776215399873299315133784475066462170716315633369839344406423030803235663679505998255516204232865768814615027274644870612748290548965898237648798928355100844662539239306888222807258678582415021397825989257688613110083862728575122738184400587865547465593683221326345490539203490707516244123023138100593674770132569802478665159880877956183653531809058899179502461527556302786839164873309641107047798808213016256844739129692621358714579110351519509157731071941596547420059610528299491485444266034286761314687718082140127340506286231698114105393788009143548119756090130324911676756943947560457586987580349100503761936495244898598251407834834678183105943558461302170483640795485817391111646329197231524394917817663610603551292481663418351198255505365057622694934199389416566775079598824968801721016813344388473387183127393842336995189664838162554612549045139909441145450068028127507998904856804170259902937591991778212975901064134050488033260411888372556965259310892014160315694453117088245134081967160836255075514712841458180808502305097232187604698054353193772358512697845995385302500769303308548928262467797142003469726679182119599387303939141221920231167532764448320869765208756701496272091095339961030896793259294646308400779884816319021766700763294792323545941509625293045703580595105297142108882255909964390121886958639523736041054595336394725533496453086798790352371303660801902829865235974275604033108641160392028223032715852343485682792333648325241895877931151281716205338463773194704079042081990269917881882596884431672559040348679365394792351268720662392404269827790602208029988542718576604236381238486441000501099789566207327875706875313084294847098936073529580108592436477852512160415592883914471704257386570474028820865374081843137020155373954691999188253909235742275110690853476703999908069345633654108222444906681902238670085086542492444788091471141272990462753153654966751137549147073086229412359434129054964748242682952673838042503871664289579716804572459610202135612960077449884262568392625342083012503688037175602797180891306630048010965289293718428417299466342115702860211937497078345668306175817940370107493726472512154653533334790088658331437066837843505391881020984391129679304233962689741355095508661853444222667288160931326846614222350768366726001812976655603960633638299323696691625744763813139479819182411472787505223914878129071594347617918073124502234094151463511535808992012215340034535652855729778653343138649052453615230719478656722519483534536798817410445274147633790490833930021862333546461947214863376163033054506851203717457443793516279675375766520306258845813902667576080494559218062931054473722817123910869058028559299537943425547049527753603916261800942648242927952474962225365261182962412619918888860800390829707662162208267656574779384781257903209330512545251611543135749721528449887432995304236631099150951277944538094187869177301975955300398588258340517207261380173663014073027794070892281729567594808312665676732168051612499887206716536283480583786158274449318876669221878488676962114294660036064115421972141622241915331358024564457419580011247048242592811537351731086849103292604247820710444401661853309473240581193456656976487219703815968683813084925826479568537467062011596977145673489358140566188254133316249713382674790484560666564806184866637744065520542224662560790184594199065869193634969313292435956009134423443678927435397698927842842841725737914873147603503093696757760713727524877259423472418242483630517446052968192385154620425794521466642976401572927821105482336345945710907280195360097026913744393155434298534485281134876342182075121392754301544290177071046227299118960076207481645774320846686504156949566903182081959739803616360081937691653114437784316979415080827392950487425797647622500729293912803948630566212636992431444505025726234652702221616130507724377794617704275018561571690449529479037890275398791409169458526181215375323441694131612913873633738425782002625844465046700282466498821803473736348054174774202023218231501278060196177237513960878711132011124963402664846518290417426769234073006019437593677369092513085583167479868935007559678909660767929425318210163008246828206916641561103103342543475819927877804295857586487193845827742831129614471534808526640652853487078567971989028549275347094444896201430608034310853838447262663144276833472932076663659824738600279247350839494182380519379466168925241444883793397725259899977847026647405816918604206741184717479382351484190541497106119052391843283462907939931581257052997762974147730046561756692225603076110459312026079105593868381196524124656845214366287301096278765841190189254832444710162067039828177187906295309851224881781310028980856967789723089189061677359182285495595469393569902762611333897041925909195260396678655220916166468115270438223012079145500617822112082556059495330319309279549869858386688118104475241494798403885386082868931624648521474886089782745384294932900668627609901899505028036992325716693749039825578015314538295238237119855945317999322858152563553586215043200014774016080177849204027055662476395707958996375884077170601730163066838551700812104308940755730323136159335435427681917590991930263505754749678329630914046854520784915778243322850219771968238647985232533240075386190539609580781467586573343953844114040230502277331742847888607504510371486603529644578259747918505837221489805280584789309251621460021657967962059980910210903487276624382049126245622817325264413922821530187144142683294627479538197943712649564498066028614782680671519499477209742284911855935917815702816258210691408442348565542257383367703882535071095695654958308624188385108600522478793361713464728626661073704092331851016436534877727727783122865674808796656172613284504920754504902496741937455646903060353533819122962409862096506262452633628277701154658182675028154712225589645152165281965750922121154063665557891059666800651926900052294861229345724372646178003697993777457106173867560441535301426845082433478259630443640241574943606619303579384476446006796728414956049109334487268669749760094456859661373804499215274197878850604062388211168815988626417888563436976501323873756202865771231310572233816388804644380490612951930381304002568032970800266783122295372241836978008603701664500268541570849119368473790738217972991712190852425012392181765243285588121517718530193717935945294828451021995605074338584015079109739815715770677631434173439522886060572192479850932908712058031788552810714101280979190045949859646922182522586059770942356561988123934806499970768821642978765311947950270918857281565498473653051033041356750218684181397305762913857754388659983252901578447359485534191889930270951353769632949909840628686983024432554125126699959989176388478812586495741460027365797180777626127427176285142917358759111962234483717342997791564045965508868767526735155703087580630019687060124177382965233519000129716440662621529095001816006630010562604233733942110582148243651674497399366339938175967271240892868797136307474390773582930019007926789781186635680411962214902062050657750202449407305363528124924060695375676454698644456312668565664259592603695346363747204168704919282924174014568427329067411864022716016098398228425009079745896513422363616574509742666670816874590940929452497672077394495325191332488395355272015340444413682360505057304416957996769280482762445186539475303868705689907483646934277549942726882085646742312661861722537272831811109088941456620536509793728520683845345906656161145481176441782229724668429131145360914069628670419069967812389445518200147721786685082429349924670686697243007167599501002419793639149616654450582552151881728690376293367704006655457606891873682305796471129560435412633617954231734310724255338732040725922889940584007733869614927633826133803612527938139742026901059445435016616447080209088666992927834778403210847580516908426724041704006603565490893673337570191542441409882616027993456796926075515126026358559500719509403421688326234688934711673750622977886392780151911832357138724619712358200732752930012872458476539673089128177969785201146376425743838959219559124818812393409791810436574356370554900144467502890004488737789269670207573451241837987116050134695845814695068244269422859991967956804970969122294801860468438265139438874427867373340002976367913991356095004899510883854954201977203925161849262221641987707091544196022335333938134675960272382490814799731965862928588768411225719337303689624192833549325071992331340685999011937237525414910461404437015224528430600168686622171019735726332237683333404328324280830806353601762205915528453936856227610339386317209123998610213746292455166450630209089187539240701096339798717498155472142805579408190922521680138288311785324727905697745364134169680824115801328814327286097183315612440122905184301740178518975366956789125010864681379441643869891650511500918027096306041528883368172961840817709706588060962963510867092643019571525132937918714967524206601841837912499141026336349699902221994419861513338184241427613936184521799117485613972045106805037245969828686755328246593530419109102911936405202052862920751737215459870459458384553190149182942547519340368267684744681955616445910659595603806478571086437284181178371492015860925164051485303098825432564852952553959202686376313437638103957867016354527148363497209569294765028355434018854694763835410304579043750928952658186245314828222597797679400771470887617825591080672459594401873222227040881996071990184623611905591487849603038049659655244107562857308780828035425994058214460625322362669306984757186579801679993253160983229378557637939861904892249064360330939005056099776031359122122539471122488906065224252733823975775556036327876062925857457181379527094593196537540140894836939156003052093153681530104963211963725498798908508683130366174203225667021163626602736484211183228366333528152483616605333276111781725567333712764723558107679054915512544572847209913797794269638623216244176083950593161831279592707686917868786829194735025242464431366742506703715291908552621617150769344988422773923385401741185067072199381770996754785386659062611886259722694822773906474481372157664689798251050101150273450141061559382129606720205176751228969547954844921736821649952475998495288307661119426044084725896617776907653685855151593567495385404344589515524996965877375054944369436356364327125326612673103220550415706473728000797233425806370759725223793447333546042809678420625117294551195039409230472474149767133326592967875423446070190774725386282535043086312486418937076264349220176283100763576273200951037196943191299307862033662298056367745612037870181364941215187456660580713807874742680989949871187075914970390063436188960017188497374766780122795406628573586228743196952031844698083245252038311431464025772832194531549709537835777224316943183888357542094061042658863780014561838076020195277926914137366612633979981128918583734799179114678005501914659057964220239376999985044836262392184479677273511892035316849281482109753284565011652046942819198495512475396348384217950321581952602186519167838085765113243102756713447007154090292511658127326939116928363939552346198952491483754752425388093543787166256323418984911554111971134188757720343982985573316857692336802252350550353344117341317556956921681680698929644484035858434144794276037013250938192400575913041898547875983786135665618752264963117572633409779364662571302017199346902508980521767848253744439822837130008274640327464513477834235549368720595257410844154558216482116442403454409758235513196412819242644397366208553813707205350176144628961191057917287357241781744551257721442947010251735082691233359752128311226853425625604076214481330312356281771058264388214576539173603034214394680979733270412266122923555592069580444653573552593107206480558968235492868212776041525231257898443736906958684596989918626257530489742762205101006011868988866843473590326365433279443746084814366036082872067711676439129858973760049845686319249236839971905869099944928066987128834880040809584543532736826557303835844592549592970834276746664638538305318213281076478726376497581927126949481934378203917323388872875310782016412175681055591251505907123303590019414382484297117558542473111913666194622164989678955596907243214926154354600810743915260851865116995521162252403994694993461160377416739158031823507737900001484579285316302471093825967126193755175267000727669128332361683642144759129572728206463840929775995484516118715017605100534189562035688374731098886213551419595837887756259084510450557757029228632187033583041487450842560907308702385863548474062679970405602058551186393301206658503309530213200380293271716608180409462662547458772755882382069899666648448668333255865773234032021861193807981939731180161037740431455397521809774486446868883745043014893259020113210157697041243090809164258283686499516375109854195908434708100572835191956341201297617024411822098824804953766716053543672039385921751686575014304254407446447780972381710148238584543788497957997132620142264636633122577590136103474759135440693960568094536099173850946793566844470346217775474397122669280145938726996771489215351789351607454704030941062416048037564020923304064754539392253265545486635704497595737794469271926947126634271688495056629584051962452165198729862466925137795551730918374202464968424461606945202729456172794696572226096067574104591099567176861901170150306571235461755747866079497448393414781373912837507250521566840281588792027785866654034522207938645525522169297675860524002121939383105661693281837127550218660313022694352222956259702750393256588048406721551644885921350232940041510248933482710272101020924847558971664020473568489186466237401365728485949267346141383999030044728843139553618728950098394593311679494019132083421598178664560912975119626001838554065682990904950295110514891431512250397201359886579722886437357875321552527777136119638654091024057987198198328130009321275060497917038221735115874279412438859582453357624498892801363554495188437252455251462874025723786079993497347715375621634071957040493871952212971249748727202685201758774973152558118579999921584400917726727203519853587249111517166692868223419409692465827951319160039801790022383571293694741713287261406786166686091787864315307446407399160922557093930295243784933610088239892049369018153292599449660540660660402791790210102358469265959602536245908915644968270881144820311659575247469582704406318717059841843700256475735671430051158123128200203294707303271426067671765102043062857608784882840088048395455974027307175002380878721221973590390007565364153324370619345499883671325935346527958317895205272158779035811802469600997682036120612697208499557492271454213037589540516113472576109700573853871112476154434154271412068497114198253731414454732393140211681847772344019382590220196484208491291331242672982855498854077589103763863854927267887474284992244300197945247664497727945190040904578135309861188159181059339584826258555098414494667520149292813015181993285570390200102118468368697900425036975961568847327174136687954281137444661745639477279820368491965811117585466707203137732754790676955064399861598892875887562184830563434142474088616057418273520397634731025841835017362120719140042849155984109992785033760262736508037487526011687216535744902486418003318609508574890997611548093501538261130363823446168606803638190160578943610085562314789676218713821337876004188036170865821106156182197027435923750099970188659920788884848957658141044854975347575165836435992194938697325460654925251290144621788238859092108771512534167447249434306110300458523424274587007732330532594733700864665253299514548527449944278371114218112561144769741510556614002421849057378266199666596410844865719358278790767322473753990243507445386879311132189042301643277212493819809914841049964645380195562717138409300273845905550377367458563834675819156233562860406940300215497280613649612055846278277487203814494191303501907253968898970536215684967362035217980962563291470493795676905122221436943200393816591184835350355714398157148423959940108827951238842298539864431968873020876592647090621475240378991571422997976300304457881309740501370303633524406318616331641546001707784745797283368270279376192360080361281991702786493943788678904442506859642647977621045126902274688954336326514986348058880513575169972776909978262894167898281305559123395873402013306753735240733682072372308471972475525338901403927824779485527163531474695171824015933948452855071480094268409794524576243596904917161063877259470793265006013246822622887345230786638259320895008282672152834597489771580781005460951361106944031884598703659691082509475359267924863037089403993750836749486794711179042047509900195786232239513943300444243364546825201350096550041046808292692343503464474879613698645966650628367283417392147468718387350926061000682742042943696109645940400446432233524492724484589730182748529067757473085695497241817552052349594357540755314595079416861253842661339408408357198159621402861845632878310284362086596937357467691367072345784001125364562462149945006151753534335235870883807391095736228633094487435090215161092264675134784052751901945302208482563632682216368411469120382953097858047504001623831632049848728373763619184049196376329923223088985699871133690193952730336751152322063709552814129901249517339959537808048513826646131179580709688657856570837869385891694464521653717427888718006972623919572449829267040791894421450407931666496764449967630466491475376612367555100615075178361092198919033459009170018665276778000586601696315866067903795496472161853227084048836623855101925207758766313530941932642619930869946846233159189184326293834410953345306641204242249535702553212819010223374587754412608624122350244249990669822771949285594462221695052891095227454343933092154991871710915462122443966114230754965191578435411900146591154569764373923987772718848686463383984689129965021968712021445024770970623724046759865416312706068320399226211407505806878927885321058948924166631774700601279488214622953411290977416648168034387706376680096547277745025393637144918590160073443747200371411142115984360647313576083593561164526195334539641483771671493160122996007032383111852854790637453550109339127270609857531390663307244223582765935644872924469891919368954616380558635810674602223237539976267268552612098159131858572478325583008371047438724830419698835759582029287385591291316944086271075735771964522170187193185455788643042980414742390472102526820411921370952222474296259929663922749457883528497575883265854590849162041592777167426798784123340222665440363326842260368207735056099732445955657651968213947166340677154378714543489553811960121271463351586577552470401547764182023048656565005940839565262690451556372115800920426093022445616756190829620277119337225177807290488812525176460970139277528061251454911415245833556950629953398430904704988686923376095362119292875078955595599860028101205198826656051758964272083759741290219756243605881393060335969712977704044764149599303428984781439167015542188482450570664828746787150735092061410793214854062218777583798153791026863175904537429222371277455756544033419878580690873842527181425562650336505311123194402168857011680171844499763252939485597677213548331352237303237514836714826460884775542909096854736416101818473970396324707144111441036783004630867319291521279588349628134336579050004480708723420583585762206536619446824028730429685650326029019359645082927178744002654043384892070058211593739873211223717504503399286413975445741750566578811915690907761248745930723819882707955720608479377184280726353026875030420671326718609454706091414018436437886684412440726958775956164118420580876158837166036374065118790586898821823734096850557159814885255663371971746611134789959894409624496040088142381987610686799530794385173242900805862309955228289919046741334957462149189416105465700611841399664794597404672144268247737754091484294395677475952970748687705885437167312496140194761189040793359502528043839221510242787154074859417984971109257800107258712058433686106812204194901100551280930657383605928929597213225127452654560834462276993251536198771172105668730278733998665558108663525500487702789933730511810505511327472442241084902769656361306229502788858326445242267619658353788439783975842734757764864684630261533742934472922649643893949907011578893836673004586078732927934542744776517412313190450858620696590571956957927897236807414207433988336755348047576334351091199825160095235577667022453768597689940723434323508080667697837108964663053756393125878769261038971422934045413483708510437843981292006376485604760268997448522508432236130703906461707993813894775973671866461564721284537453824665330121645815446965339926509114654347641264233800051132845588326332690128046406585790311831746199077719681781436187556931122716899702783223890722594489349476584398602594398250092992820474346497041722966096761607077621477893864506119613924692085467517551900431244430003860635961123196044570431746662001341433146176781357867675332974350186091194162522450307665808781238916699214755265140381341392395038596801471692636225443259833138753373191842144703078518559387488531237468212718178736675836437948341021530362965176865019464600707579638822105384331202533990184685004163799269785025090555779352698079181008610536577318804794938205272458641203173828709173301566797184723044247117632257402420821725048747550429474462434460929882784827901857266837210515894078266945651298372574113978682683653393317750345530834312919398395843624329137306914934340091793880211887798484025290196368227532777266665513115704329303084777918945546167295107695067397866494465355851658528070678271127256654977685083021616155191708616899926627963743258888721032861076891516276108035985089256854600943391791856516161239423573481003348934169829302478047795948371803688425292501423862386166128330413429672825280214213788437508437447833591420390211959580291645640937658720579755226610581100055472753084120963444950496418414610514340018228519403076623714879289529419026760823582067742563455970241083242969045670280281109857956692321150524859331813885715461743152700919082777500531758328136057827864244483263691349313523598554569142456722600600394585692066901257612995124181994229325596920618568300047526310113604679802611595226447339653066234190341799778033948029440484569213899331836364512738909781935354271611207192262030106440740164943407415957542147663434797055806057462311314580356577958592171573710551703837970130789794321292010381931912667509185629808248487744098147970324574751145880461465912873251525756462254284498549724142145022122808390052331019505311054833873505146044007511771654500205022373275934009272315674735527445102459000204238593900844888495660278576546092546769180458733651475498060755712192895961465129612969417130729840757789053978837056817361020500556591566471961385597397664877718575006033355201271745204874128563359788754602480850696903211248480253506305493799540335833337976312268121678877027703169491904847661372518339434509354863459326350697656542986172230435963845612338859409995505007491671725404322736085229091879855853400612805527219246173121880025866577993091009341266282936329348388347567077036807886152336118717826950187877124714222431287300740659475541790003947306522916099326527868646363915005664373900150884228717850318579305747475075856790656410996415091439507260810277406190121585347402310222887621246527917779347432223533669743519132841999865742004533373158870047188641252311110939675721665475895903094227729634786343367962987847514102157474284907276168049732596159055427213684081666234064687267872608371737429348239232832319094105674857033501655420939378373463501189860005229900071424143420143356925595174592098897675371717195395970587820005122481560172831119569267796211382847664028668664812551565109257957296763195648769623760466669654601933714142451595261599139890219947545651006487577076942255467311431896167896559547866342406793755021321532397479528305265004888022061291417831038794469707908228398360488433563067070707224375350650765942699503474238893346739802029134644516665954929298373304952288135777769389539174279567210801012133008394665369149524530660393984870240667150046259690022167517019332079119866826921998800570696164808494848581045093403022491007029191979997336302624397144079462212601898936264657628315690692406747445007398919490210768904421313116034908289647533720912821866738227019588097446622760629901889093144791811120208107637987684983950158721371306760028354682134724545050982445349478706739228126189839227768665098121048001166833421726918333514371881524643808729967911869725279154757913135009219433698010209323986772246100930896811146983566783342403599645653227796928054355566425470683602411890381641957908405086618124976783976009696535757832025055100184646095841540356616844335640221587438556774480163587449308276656658431287067879758839175501433255315064864923412160927001902589539378618166035909736677684422055182305698735557449740540995843913067758726857460513940895265519576881655489482836813404016885763229695174141463442984945194004767798918236830056602911925064961244073693619290505757322749779949232983865808292476022069702845269925364232712637249400220508705554762780785502102744188128821837804844251461003776482586907216914785187837645032085151567204744211931174460878200155147484654305847998151038965602730862545613165410031076439919809873729410312022783557830020648810213203435323736429464252264580977741361707634693823818082807352733170415713839198720399439625252562801629954464124695909026318215463593672227651241360270577067402268099847058560744052019192607718483851934149121642736771561587727143597130019253485024152673213750483953301688952760351337326706896449645574621338797601499777893372005441009530404090856604662594936106605173379802495254718895160504052841257288770103092140764285341550524400621765021317101919685572503263768781334629197627816733059610457722907774865062274742591277402617053547674800030949194295663435497502218232182677551212083403445633986321376340576811769582940261552019309052704910933872511389672829874526952841372343856844037650412704825055662751821466303618364625384582273175985072003500738839268614235401471326946383764842273958680041224688783167797710323475366202220900296325577864959924087674249912914631010324214501357476196595436023001972075526851253998099441598930477300705238880423332601183668128467364718301745742284977056710662986877408923989048323595333365359172370145636962414146067647843339225799968218640184081226573586998586992745375565766194030590445496983999749058779104246466653184446704649451639575514476812846734648670517076183445841177839513325410255972784344470789540478392165775824562025603266894227202567869401003479124317777406062778623346561588530322462051532580861615364729776455399590570371266880310492135330201252355458630477320460705145100786547987241556584640132705957160161241338340572454215574842300335964441631958153527747628939051505781528229548347284774096891919168546069331786323075351739465886555786068798101317050633459893872008283724099614749865889102665584874206954312085422809844893667062521358001501106720394400313773664320034856267796337655672240477100400999733060191901839121181482966526203179603188854143264748467550136294299415248725542902646814228251758605506862151325220856069132515387032998961726890181431400084401762732849131354412989842936057667060077749149008662920147703943658587251821301337929123325948774603748113203820581718648855812940686874807062946469573297515914350547932083417267557961593747230241596784375026399541612833104367396505069802513312818568303171547656170747607397889304869552214797853576551868817108602539793246507033047542174428036735896703568144013342616160729883536494531435514493674973398245012979947521514425928413634215061529294534994260550771871054390189780267848961305870180391543206210434210629277717398279395800012303388294020115727113333153422634753792848155038008807960160055145157119398480528630015657496229519921216435878288587462389754054640699065959805568366918087795073848142238439886442069706969695194309008593624457306630214413844879199920636901783957834591132280306810846550443879898186308864817348576314571817925411654094962013340227994693223603541702681030199867703953399451762892708655101917243516558103578424639781483566347102347716414034143662823347201452928909301254941220133490571149910574367509975278890143326110139374093828916305242965971843275448384584473038214736210839147506381037247206902444638510715270446738960661221832449212851866755299056203037631440431932903450133126343092049618675006404219292765584133233121189299077760128750188338839111953611861297689261590301744582129036406060530152251927115995046868824486855550175777592846562273847933740023450845335865433570202788615326220955520549734157942839078500004169514472015807720841108962284797617130505134821042065885037784639045728153586484528079544842406754132875190260862649308302781141874744406753346845543544251209807842803900967324587645448377311278407100358769986785520962017230768484598185680434660591037248521869368639571727530157986426560226543889336065510548013833945504365272941257479112021301567541959043391258094184955029350161165558240853980833465414655557384619561896380673279286573066743833822001124382596233293637815557590107954455194164883587301571727714756671773678993481637589994131382727562258143899134674283850812610381671954249634129270377287499140513606113037258128304787668804966863938720783113008703305139154636418800341144921523273132275040307647403862043385469291388696255680554637870064489673055650617486353361462189613856245979172356642736327161171729995686757463659222599338487150765860679727528766428893595811547160289116812487175417569676762029984672368102349874929139504714170810698812647880722339596371441751206315333660143322850423017754131731273008540367449590887017523794153472424665587708144270767478261613017038130518959131643828269468442004286392196924644158057962239354199084549797454712757385401719772135185388734763780785552891044158816551976797363904239705461536555324878050710158892826311884176498101533024791814605860835504782227953203284850772073734459086483353244750027964702310031936646787589409603500560772818721100882360978642241986660430966473770843894191022165607034638030167404061677060995158376805304543443757708920033775211388441902751561868124456496856378127750272973319803548345511064405377189205788296364436543596892674501803280281942789587902687761792845005505765141952170547294034149635245216549540475874652209454699318587242389698141808539865030389593661817972152545593910387049053791060656263118741686453328036884899752612103728287040302728666731468656187829709948773157226985636353261358563048503550298642423039686753354189673337753718937905432266828844809652381535873137137071621161637029524754523577656706959947773386473750148099000311252059942016835231923145132505622671234444967583453711129308411288617011914483003528937634496993314451905183750109449209366239601768363030560761117958352610693635145831102432786715461389760849471996664391262236593582272543275037772602808651676206328294248892154485859746809412022006651524660560189939241130226360253784375149986921256791278414767962026008420222294420808108636290187642956690411882244653507625212770752656179144374270372903662018376549059476044703348278944916534487316766577067673831846775621867504161323743166647936797743239906518836774753904600233453433343375004966847805667290215106350527450575282510928028837674247081033700567080568574812108030035022877425769070692018770665263967890805097639970479027019211707946075877996702933585134116872436911238384402549236610626652161810736051952438045183685333191246820381940542390078839380635350357451618718412943237613540654806505815482872249026052924329514186177357679266078299321863286868005258212689052199179258434728126277053255083324127362143684151851710278328845619927037217317996611648936726726983682428444885141376937255506457686140645746464782470343972673047620820626231752424201218065190990885167817730947300527004122840884783308764274679280572976731236877660636061030004120076268769831234248677895257365550555068162937982723236977255791466285717889185664134940221033777680434108671559623773887935951874943419334478496646874316544730495420481094118980865677453423947805694305536861885271720275609546084558591405995593053609305571184134540563432808281260323860944310497345056115171349089773706100302594478345337322353927829352289147000787773860023358910991240152173222501836154209715475106417919538053501610705626078970850021967877744402346974235279848052370635263114098801444169054407924029079259893040995797879639062553127260842994769698288012153589875921668846967322475735627614259883597681549249687363032791799741550530297722302371315164992589280632304895002136770865682807949007350058517311417561043311310779943929780420256626230870967118929233826161255916367299722124700421846552399244162075926479391098143611553675055501978585628548962392809145759854295583539955067826395805225032687884774874171387441680456760448324431856748713533478854251067051802171001792133775273206107486683353625745519169201530550934935389316506756306959960444973724851891747809970837779107812429311580616857504388902987280335441144294083341427888286306787117210925295888967058659427316106076124246878035832151753610740267264068783111642835381339489041295431433363365386557680250311437708696443860845831738177180090627172883532790457711158530758833254932195749082400121727299328115588149607306140111895459514202667106174824594623251087285655398319358324661951435817695059847473149910172309231249927056708648679480568365164213986405118011710492767631856128977087336052565054340725508759354936992376848341706339741628804668622730952050671207555595516748651604548953171325776425623638540932284264427327861249844637340824700195574738653693690951376844665660472646609349017925281157921772093834465860396129439218673406606711541087000280996303223546964379651559039768526338390589436129901199881280058221659689835258552981016559175578482538417785750139732949622486950817527271524919738725323055232609890592260780979791018078455883052081265153635996511924212097398113570116456621599608066292039117158118991810357636596501717940640816252410387014128416886439818869467980641166239950532247588020050519964551776149956519003123210131035461111626898318235690242659634161504457673939452393204388490918703824261550755976395186415565236603886022528995603222823028183174946046472653497549555310561661304888759638952827830019036013244096154679790235491183885912244685426186200393764025837961950343122584453697780461999457543526529016469329834381353862087715535611056924680904892760687193753153181935497555199124980579077652049033324763490087930518747764931776437682714335224774118615598452506830626912106742209221196945782291855142003920429408104871065660398921234424356015478374984256811975038212355368513083197202265770413655051799309583330080530514811922012053036175511388607901638191328606729620822440579297037464280823249788520111291948415234782796169411519672752821949688576964169442099609525196561982753850340993067506921864450123069903154487611001701513771756699477007146812008544981811012618237663255207648545365945982552865770072118078472711841220781674254081574804972230327979918139973193935977610456051220242232232274876084033584456030980196411659897892845178336950854763761051356833125326036397941740298057465583111903607644800987153815025616691505775638390736576983299925867847575904242709750628259494423065812835615063349744156486438252748961730138316823005275873314987269469463886368312573025524538897278091301869599793614698771896263357678660855823161305704506330249961681316222190032784599672643207630164745791949116964477973685580592179094900340554585636275447214030323754113917733665287713489320602688485547079109240082667342980262928762304269418667358893204906554566393987061130694422484966422166207839417422925960817492154185386222009573491570513668749155693216665409845544268037637968619330876020538253613058436752592320529806817435749950470826964455191535454447013665280754100930176157840633627852532127775376785579602158203407317904086392420567598580259981913703753967624235826284351079051844355767813088342205036707950658662807524287559864640681929228294699247465484359312126919828990084039245011299090773300743540409067914285193839541161157157364518220920409345741454002912010376743407859122061711636566352923000223045129952327410366739679582018358402516767111831960955966736308938610414131557460130445643372262502866352428985304278288164894060432358988435198861457215112773672756913391821862124586682133553856175362735709445489949094092480967836218625721517995249198545148564643291889851687723573676381955575624863047255116613722407521105098734875253400085471606918171390110719729027379233707729273411761240741395515061245077643461216422575275028022190644985767840631486052347871122088079268300167684965670372008660080015959658279741064873526437441773961702665485647433442234724806483569257564096975526782224619730110389565954562188293009144074578384261031837991030790820511614837024305340570469062717818029445905588040401207868465263386977895081855066341643314953568970645283185914577057848005792253599023404957447853922853825765568821316642316724798405998793598101827962314104424177127160744141036629910553640473642039753471955134442812299971504384733804015268404282792187679407349972325088687173505551064476121602415615122113190325640785475035022446116857287560322588589687661524820165644400114977985981170453346312240761254433838639225857373113071746410233664366873231830341054389163089815641953905024197611513013107673071074122881272092541788887971774195390370604482634962341151882532845987272799024269759750571942932809664133018454585467132143892153617339980629289528486190137912651031713301692670581667643105666084360586501587623521426520200797515294707344182476107688965005393425925353112818832044473933806163071744269649317968635754739705637474227419459317310788042524681091574746403749326496359904845707243418890098520872641522374739273815000169702772301570577765102183834379511733354439849124622633247579069056438154080257500202565993133559913193653079648196701158165388044211767594707438269147614376065356869464391840550275792858247624859987614176894577479127719383211650696856818507225651404837314316777423685103809166950932107089627067868972431446884120941377603558264739212808667248231567376738343806171266009238108371499294160206291154949485748875077456082955409827800469050503954608035291385107433780971869912884384448126659275687107074248533442302643270971859568418659160667623895075155475506742289827126500643832016214935702006556067821738918522866955843559363281402645481652471567216359039688243144806061160663590330374077957592565816357305422455887766533497062218117649778967439286554041023561866255310418813965165274765280224132032340282109812766887066082756239700069822682153507360704791611987085655138340663539837852082214971437857333257867209020299929260376613744500186296060085464984544947488708358193488179253293174990877963755973463316300515870325332427436553329720522415844979887852455372015485857987607226465077160103964592451303549233498603074003562666295151927595604226899831742849901059319359631937609078471993152512381468910570090941498073342741135833159658597181197291091841704097070745368423870834234322088031839939132256357436134224170698337198149909643044058834693298642194835998502474495109499882477119627890976052650080374992448717794924437337864256017219303222605085218142361990751374478769077999544542024297975946761176849138004189749078970635152059812233690338421736938603726290706467753206581083014208624185682229707279673135747237557034034343853142560690403918192280271489569616894113348619754154475401117774861989092218823657654007858465612402807354424131236254848958161505633989103381055395369772533715817665083443226092305440965462726018979342070435831702535765845937200548805876255615646316912723509530212853346198947772378256373066524678547008317429755018394556921646463338204698867024126359544002002010615434856148469497820624298373562512353640808227201123633003323495015637150083687309552290812790546269563125434175457619911090743335938415952054885483880785364411236182714791074953364700090768867813298306405941694351742215410918304921298901015826185260764872571693160169918988145896499824829987933915936729714312287355772720920754215112563534232017940698033951250608843487273915604706513263964741620213743787814662214987727700269966510133370938052308844120829484528155466593447513741012439631403008074279405542288879865508303942293426082878684234963243469348916149132748055924698413677662590305360128665461590102105342848003999769122141538459210244919454075981443798457780914597956769198417761214437006115626615261153828177576666616149090908224924962400339949077788971281787880190271170708162176261087993067191660107160139801388890905801501876696369724989759081094575040011794176179823910539124405167523340348781104355071519358382612059173868879477948600632965512478609522662054768272352769079513891229160267514280637740150405408025437532699544146191426193596470803379251790947526914952456896089232668320100234243192855454457491062383471384111081847223947330179811948711067995896892042580104804316707130088264852104902511399827652957553024498711802298524725079926342131369991405560019784371025018145972322689214725433891751086087508347064662564563335603890835877142031833166267801267911350709130197346334066258256137941569783522514607977151129360100402767097451631668264800491102541997069500821461414742118481365894395510966514980998926715115482998864156437454318919084898990961178980077611994844743755700943305420158694688123506811700014961705822666485614651364499127697563726971694311915696475303737167353350444698428060283525692876122102555709893607542531682697151581130152191428336444444577469181785848728655710431806382343056621061293707209329270581488540156020434267064744362533665184968293811349623037063355002947635478943600249476911866027016153359308926905396620601757427363370184010641067478567813263175554008191115794948375865878519562527603498526847588366521239136714324340586172073418740106845240001100629545848229202742231836381224417066287145582771465395128040425091302398603804153014096484837246030846259874551442583030993242942215213570279519703234225336108606829272722521058754991065712917137108929526417689011597993866830213837326184089765098871749017326404259290922138254410378959905639438395985435826065210396448097631214686080738371441721629737015150460072304105711982951361116393500159064659239159994142132495333517559475650548557422594640789979648263878990287116775295713142857025730464372673221477174261708105092075602257941546851473046122199362169748002182617857291806790613217516998653561373001191784713503397016784814812121742259983395206295224517753732376700304886002517231557187048222742418692472580962141695176685419704655966347499457857437712010464450715899127483288976037687762135700382644648762190503936318505594527456870509432885927302605765152624929807281145140789867854967577944032018333972760453462175710427106656905867147679891032705975790857520382992030855548546706550764799695576721611102893506958091190412171275354993693296129658038610130850526276203191900641998049653284170657268835241863092400090673747253735041595066464820441915722730456992088339400763158633339465199858920155376745181589307021080321960674535950478802131020958566336682717362294902698800373157761835953174122757743614554334599903888721211167229683751828399409268759813533291698771470002693129272335173594121333203930468315616982539931172501646743741243497462128976915016755562152614131210003516671755708584588610141709560601982719367492223265667601663239654217823338770481081398020113359877694712080288272708093377455986985613409936885673988424147294427949842559094083454948753058277426934364796476073184608000005909326338955943177825846838569492169330884918566347789025530191073809139321446630840734021949890684322647755555798169103535629185435602081548044945923329567200174629711649710914211895569457946955280935397103359568151323490384313803350755745480315583355857260460681362121915518279795236031209860146181583693004920057578660322010412017616031646519222248393711850600998787686872957127207281740206103604288097917486184716211281571373582247362162632970092649699904943938880157578923633085741272866148550401466940324126047187909279867695379808371096477130011035171453890855408037699877059541324904472235054589372273909604537497509267656755967322279380884767027117478295607457852368528821796206468987783435081353667867997082665018136708840184196648685741743271391346273799252903411136970556250367825923931156447356351819205735496167703355926226989561600807368031592161074247531495868585359265417589287234519852495618305019273310592146732712209428414761477066880295120921097754137453941809218287373685780202275878977443598272698465050501243827709065828440838742040915287826771508721919172468352790238581238207412151142961182752394119192004481806645038023089347500242728471642852324525961994164173704314439246643972105724623672285957895927604821887725932728934182377113025514805738663430289412481569563792416868160590187644907222129107086193989755589968987493467012964474740086811988718148684078449765639454796692879222829595015768977421119044888229671642116080844171460945173247992690861248835883981668255763240974822005104443638208936149455324374960519216558356218273577671823217121950980979356771138167470455023236207999214235901565757227903711925229312660462749302191939943634990707011014053021665082007724144752891248727170168027824852244755508851506374689525070482153607462878013570743428092559662174005676400697916400059621523512122019138232520653265162025831547596367395974583076302372756100026863128595905082306978022124348377636390440161027360431987437070544833238363962989558467687357322810814981912055496239051564587496648219526237537610660364794813764847014318527813280757959274252260368667861221342604109985906365329835218166284474078423535455087853496980779585844964177326347456609450540527380305721008954101588028132421700882616843774626420992083246032930600763903151496962354210053420005330323091038777094856518834671606594224579220093582194332476838222049325002464376805419337754757400059949734437403369385660332415774876943206863716106924351280405326299196001678748728540637652891638007309436762963005386185211383034888935652874507793976283871984634989159888300855725440604868827206425459497551080400512461645421963298337320327340186562024189437131982082550941063360705437989363998246636874995835462060497284116805377174802214906367939219309323773411833840949019717983008596547711261059582408322766458842936247730106502460230781469158158697487709063335952958309355598652204919789152591510623564564155391196657492224080673048193921424979212247162110595168925968851733628177485161876580037986487115096259482729743805428505650351770079273289634195616876019014685898740633719557211711737197341752553349155265637077793846957986862104648779497638532275950103158591070395011591404245126137235729735513046443944355877347291862912678039641791570692057771454881361483548823791246500336486835071785035963760765157922982889281471572359908048238643483856710188739556810154070616422918023006975057201785900592141374780828863270210345166426366535016483581218121464885793688429617947853707628712673946734550126144583308840309326577553094396794863692900372471081277092126032475553384620358382076040761622421548186238561402909866794112818067532946543461377591298637775629805850800522359764014748339513648908401638274648017917024643495262063974034279379353020155338201745889335598074154487246184322715222442341361598754802217315321385456776216729659813770983961125502710852328411326499297644758977937323985936193377917409260260068608479600936354269577902520468367225703878834032675066851953465100391736844274793042112743352017670459175845759578014024240836700975278737966869042068917244322664742349907416619058866407524680595469139997616250027304995195576007149543093476057142505052743537425537244478926630023616255430343912074488323407646812152612059585819846763106429395043524155237879707404347465810564483740007043377654315014906662243144603015388456687149837404004515605593381134925845154304950032366381096318860525951240909559387834987997999375783872297710202391238093098845640809864446238800762503137161725727758599694996559541597246874720154035030476036276570266064719354357154913887244659139333888841694870016044500225206316463152604761270462215367816203038236600992589975822116300789287455972583828296759104178885446829020828455086298242175489313462951908769703481173540714710912062982699434172803123070588954585420448891503167394046747863394918458881870943523034081037387353565217295080399417340156879811148839213555545043722250543194849664681664091396229877957686824005277345429380591695843705448254011192743714298386137934999279030142715037609698855874011148126862461457735879570296879929566376718298105687904407793541199012527153936099440235200232104186314349869702569763511465825049305122387689436370432584681034684697757422160049557532995116331674916002799642297561318926703250969421382278191991612914863698048565977025351161030542034329066151075662604750817945404638752826086135847918690970255397810165651357355105046694118325214981556860096488846978767139189200398821691671825092456736189246468520909889368995193470932941938849312263519805625901933803649124052572432098187914291909565432220028400808713657845694930716198285637844371199421949657028019340061956431735363569281557768518032081490776690996459307441432781483695671992461983725266984253661958150442419158274730947829155079683679777853544577682472610535853554661866938189423454474871305338744925118721841278088374956771852362815932831069115368590650452728520679915338337928478898797645187236965248440901598380908174444774066387083003942322733041698247078856404166396124916109285602921468323113202988676570821766354803849866448550441748105653271380450049935116977921904716506485438235158285074913245291816629502076285630002203320317046120764022628531833993812016217138383472596250616405548052161709482539679212438310609880327659783492473058973175478248937780352250515095443529267059775148983419670442159654705983561173372557604806945954887853324243860843990714399413107299883798836613856328482125527910152548742922941475722220999490306904601376232807921429216531692208695438604415233528621079449496859941972268531109960443306372681160908172791303337559464056948508948492129999446672319664076248894924064502585079144289849794602133308116676202545111210909548740203780208032524197487835838265420470667006524164764263232732613604056943156297752286948686211071363913056397012123219358668114751425098623440453627826043205971875797783080575925292307096208518524826415293931205275849170974608553546045686909119352725440645478922508968479475221490820955452009556773560081711609714190628976124492952809712645962052888940815159093466959293989336498014887496932992667066887198335083572813444215772816550480508655050630721831924905239677501276259352601027288368846757673710140645096596978768305299297089152506092887240601813790651847109072548140223630744353545882209448061597692697627068863708309839942966971157838222206387776627202249274296821099338569467351759244046237752875871326848046951832010855869079192327342600166350675759390347169582784346125295536429104807044116784984329720421937036386965648847475737153831797691721029205335032592694979179806540852703321153890388472959296735383791848128502700098577826534263532236824237625661093771323595069794835224316201652772837873674293011371543387401895203055342841219858601378222731658587694045555732931090254361523970577274085281725986337716507773279826498091703285487573217527462979809966124926490246469792224460795265125123796456014493083598923381527527455945541130738759767015554786269515473395482937422296592438664450175146390254112465762306576838439539201422396783296431373889055365694984800809877962336903808791444559348127218286453587978927900438237036080199682731888901475427275610075950124292698493652863501722507382299212115309820510817097136937646044797743071172550217818190739146769547163082201764586982770022951866465939025276405292366923876714534601680775754940392126351082019801094232370147426432764320170518743840185929206200026338063651573156407254921865053215048356707141738618248261561656212784781379946524436451568257325458080642723957591181103354418915931269131714493403751829202155804693019390630260219057546124651354965467590052302708150979605042561969422538052620053769244333555325130247510445697336064372075708060121215513572019121318584354338735879860072511045748754855776091984666344712308211834794066893347515118572190661718064523108387433667582424193766014863740867122807395472781237559609707603238699920972833817366189609773205304061955204193626205482389350463420504833046519053320331578067368003768248051663100427388592736069300546663893943390812014248536821239255547115422079692206780062913371948699156358129981745032422726622414142282981098210258787085213857005684318153370792508982016875509976254974742399018667464811056440140413837064056312527013160768355193597741467894830699282229469159247428273350331831825976094795578219660109789440016067725486733140829805600839475103093627535190086478827759693955391462506309113374706604381802693582430527230069153552624513648324947365419565686267238611738714400887578818638419676509858898581446053165536470571539663119551883014635944871211249609702930880440032812163106542946494100809897540522375874894702024140413344512358225795394774814040343851192213214750734193731957320326953604067154788018635581880512523040570648129194616462190799058637013142637899948032348726063110615289656390333959025058071502186232020093065519919672174580700608965656970442084092331999402982233942824556176689971193543178556619112708469759776029238244267882249833132476391657352055561371605338303305920200098171449331350702403853234264762366384354062005791852188339559100610229617722066762826722680978677543657997371633724984603376830794506343628288602422247128883310987392830410265360693909070888380001834358498890868932511946984135666366756048343648139066147362216707156595535823332505051822781312288113881393773797450584274432605322756038690278934701481622266655515293303432214775466803191212157411076983249210192644033365682616103457396221154057729297681261287264915250479209800490879539084720383605171659389407343569004277258455339676302738171807121547607340020339234190807278527765975186049994083825446095602232457163238397927607712799958463060964772313324233519614156803477263070551079552397938763221434405599626557861065288467216543851142202398017496728493730706108389572214830356306570800723200338846819973180183070872974047511872400693357779889701905103516431748407994940158379472926699670892222767958218676577736033817759086381518321866165213571435404944046280533259061636224038944469546286484943061405275230268636128822333794075232278931814899504732411646677754562228867089200382217847851839954162411251609858151589177023124431235554287803158530635862174877878216627484159980029392485733787761839845945944770042006235491757999701415525932011935608314337243510655052062094580256669644307652762887657462806021028831296684678726312214197345306199795993454126376945569235961481384465100179925768426212589525771042716136506157199372559935147595708908980708219356496079930144056280639244024899095566106765311448026707491406475320001965144565826689207783154689840195744909799204727290146045580617080050073449639698798273210354039882319872199495916316042640586898357773353788955251973955763363236825743115168655174338962498557710412707408547977931257133196766696236221558071204936383949949892375401229109280185587768323976229726190150982622285643626011520936365239771145122199518856560487440905230496761707248456922810067147329991593632123020887378296448493298175984374376074922684739865103036226116599792545161490952983790705554761301307449596063082917565240603851874606796996047777871321813862021561415879820637430561221237986455128051568977650338854787627265432714267780844992696659273007869373515813558371914388618729365168330453119785042108471664003965386036616851726160196759507308233586275566783510771107789064178910564253724655395561827730462817911747616825520979457214715374130156889644527989052213390339910618780442534326485681213447149851901945142305259839500965494101819266838075896810773224145099315314933686798581574621409076682902099813876910394928614361758624634791782273332990062852927315061372826072804899756938020226572531904976205576397221447217742759442641010579786493803953658669576873214579079909816342051860161493284808094348467242116245491011227230509703721059016252384974596205088066888384219025559039018047564030158756765814389553337209738734468790613037272307423819444140202782268739294471779215285250793604968838392873449683108744967025173655940440761168670301642158584454170318004252220497554405820520221637615363398930383528421056809412417798754720688227849737391358447546908470976185338957368807664994231216191006385506868225434172085335593387659345937622077850569154732627860320553350966008512530527034192563185745836967256404311390622635016434882063922949409597950919612739704075790332046809006359766810212722891326576239688581301947114616680744939462076061607029142930630859600114047029881461821035419447714262573431322571959950870731547068157554893655393788417331770251287688014001636930982542659183761702451215202421642754071708621658029176546571581218900466278298614082948108467709123958601049011478608514341717218760663705129007274060949824373822027711427090926372438308777083685138211275919149443982291589890059985350098112798137198237092872420334607760219391241268502127131564138063398803857983416808581656035341951118798982540662484038336775149805687475050283366708195250933077865509023404433500576469943095460549056497345973875026806639016288662913104234393678274168832633739781448216521747717510151706853085860255201061733771358052151491928188327664037786764103832335627709135975591669634025050367922882583494577296341609061065903625854100566029971259757287866424812891976184686614528697277255055553003059177780274093538652750935428939524708637515615820740304142660522355298519539965516335458566561361968471335053438421875404505435460909941881893635196071929497820910677331499148923108327190253911448877306581637099980194812435663888790174916356101242076065240179161809690897159277281931270286568012528421761937907724592261028863450888631239914605356733503442898680908690342908290497655239108891061932183638815443909443626266624624978659154563725541860977435472722746621229769043318892865716698057815203372716094597472716501177354022611714942279954290364803709910598454872805933146641513374666200909867066266728552432209680235598025701467102625382611994877414711320740681243142733877859924362102656588597114000188616462237912295069462103514194764742597617337797323761883310589252784355269634144131640221610855121112541988345019702195767255324685769844360880054805355561026057535144925102353734924632056068924754578264070648727170192523653896407803155150596158996340136290419718742469748959711887704844546025902675150567057827992321214047967921435826514978187337645583512830807697652905335224279658788927896457253991161051048560872651310743220843383375444039996225989959712784116629561077454505831760687869375711730411327951239119692850403787780982859840002232344841642215945549843320517248209691249522716244252816974000096817419406100115197824278830819328062157286651469649325646292427566273488506510132273609276061509111011996010546145214447382386084517944892391754797891633447546195401540251529902192726860331499480826128340217090749852251080063923398497313362096647535695190435927218649655682258034633207797445051788245495318117091193667430215517193053448160113052833334421178540007386458835165581513292795157877244453644700933900245781300860682888201903212902131321191218926977473624720289742035842356651967449403379460022906460397142647470537205511855367999379897025262146085708389727098949249654455002630555217060195407523603185667424788810559866582769290675485907841132656557377286930680844673917103093235692668989141973943646694363993589972686331001790643139075576175489626954611930673680298458842445026402248611216896015780245110286940410825898525746402875762974708760173539008090476625343584905931270468622747922837763848043432920180325450769481322145024764376345090312948657836547822513739307375244770134459323665257279296734725658816732405534882653948248012315796415506635859433242030374050797261452660546128017145012540824578166970802378780862248968883280359396832063314910236567779815424326776771940052483344323140418531918046955385701114207260972221314447673917792212297413600865387542004205551768557143377226286215375373982474614447608329347419958900286637487616536395021785071535881957836568512445117967362873014504923819886764514970092616803079545119068363726806506605006296827738281138447729184936226015571166978739548701734842411643435579943955764843275356409004561609520306205905534955424869840767980973334182615358189604280238713291471050236990049809451343078911587718701251592425210011368274658552989803240925231958951519654505649059893491753224581470740024938987944462727730306071353098114804590133919727542707915954718067176505362270418623996291739426856513274279067732885016035077247956275028431596864900557932581502890877088735203826240558274109873274491479460364040125638480538125066463235033597609357002644118736544850425213404200902934912461965678922186030456974759429961801054219580043399636436775404118799127820108566657701181202150437985835871469432694694822519691257959133783606479815692323621903284872681067793343536844245594080560964839837701790488231702265865985216514002179235999482905871780166031336534434806273995550606173745829350265892308906514618457383807653283997890948121308041639662771437715121801533904841050169802766548307820558065195114153515742477676506135130528045269269458849876149133996832830254229770383394644610230454030334064783775277719306766230990160761168836167340648139801983337381121227121669104118881417475568511102015101694731068887422907074405899566716581599062055364572676754562402949600803542449397848714528148562009519054831602994006120055805590712935848558227314963443656244061997766689196676114482093313277329503843977057095794233051992534263351755527641369614185753156510197125619573838758272571054438967976859909941358403419765751137288970374118265604860681440949208492428411782650892825104219268661486239267943443116183009956956255258817415618878756772083396958390354697543949974282994907694542986067541525684226330187791580137505120587537022328221324415983387916805181498130852511155738794337253307490941767212848593032720516997002611018461171925903284858999568962206799907578081820656200069799302378433126632794471869767321803095788588685245383502645972632120700198215636272667760590338286970352505635598042187531559189982645321844347361625600947070994082714279976946704549348227031199669043958777417049546350522003222022016441781761727087238954145029273531762636389536940413244298581526056772874495751358986306798291362097223000061629228420759981139192661476750881576670967499299688448288985022437301497507005640172704725900981555933207894648024703303341678157426922412316176304422827331191754243510452177712802017183275279420765282463201672845441712699625910355956770657726889939685323544456947963774432603700204438047703619069868851396272329238497170574712526096280407575795164455508125252559566142214587413140449365808409458499463953873194015935789229721484664582684978610524561384678955281584646737390265435692703080575777600435177092134781376716359949802212534629099767078347435659055267392846878177194830910248895794331039585989760141984440392762374500913349276679232553328140563779730542081928184343116158640803680009948970129402825497423322422826218751581603508888833770663508629263200505636911646859035249336575321930705703034963148631612988489322904662752003139558418006713153463738701221798329745518787632000162091739917885825028981660373412714323207977868755837716322768899373958277079368842480104918222135731121371272241162357638742599227275188409540048010600327667890072146256537266651255202795919321861798504825039041563112330272617750420158032827298187026228178523912774747517846623221992143563449254962121688920905136228581222740627225267538252750401147247684995204354681619019822516924697021635724898701260249748551691461044833798079437917637252097331081011447042856739821347214000629125177138021827088777342745170148729633108212742299564865842512957021712740518239675087772280372349978056130026375263484120021319323496195371752262947754846880156841222195432614622538643704268088424087138935562531263647593865900441923107921278966129680969681789999294806032382967416294615855697027520882555753725112793523364406463225302444517636033717517340767957818284797228559866172747786437792546503876148215678943346091936568342701156180384923468087771062688014301426187167675954557646886038869140096654919493906944302938754417602183627075379364109993195448413898044640914747757782787715553629302592457992412506001686247115898765445140306875528323912532345025466822287248444652708204974356930235286896102722940843690062480410276466813951936985115387475788288044856862192072713877128731601457152149207214106496087981319609701180851693425003221628346360638534478332157376129166011478996440797936844061986917308023293870196585384677917232874923738402674645598411447634815915506727285358053127905324210301070155249406711733897249548173281765810577462004222431268465999810363941590709614313136804250785947011169235279224920306296083594572214984527044205320015011376288822648861997442821530210442308827336137848821096794200411708479734627875381014127591963152502324855636554825978232126672812771561384051112543619574544629549755568018627719320843619998335274405037800182261544621794432489073410865952004017034591043560594894945604305509853322460084843813312388897637656760086594861944201811141430552039465897814419597866615069667973472894914235180387620417083399501993633131999059760198768987709809511615041693770179290962090659821219544813676069519909870979055608449340115874350147696947616317778967598346947173027096232551196505095887966968427265220813762916979401363331140082647667149941347947714958075558205726436470395667456698305819124087834922561190455774248271180490617804307438230113820565644851342387092999414387685914548769682733803574732586535668625815650544125830358756640206210119116126085845615069019376475394012501850806068948568711527416698932891100744010489706187396352521159740896471029035983291312132062417172263982455046144330944573481346861515044524536544335819568908721668681099934693270631617100929640837871124461454818102693607676987174673106817844137621299731697004416557976996195059530759127900583809763153948812333301849729999286728720183136922398233363426815232174873284593548468250245285570988667036375592223677676940564298840136901750979828894844244014180495973621578521785837198841224090165353742585683295112270531250599824311983315483784648349669733948713336201286935954829231811122111181075365778636491469087664426720295927084769312381399009685974075165653198671863920334937608053662862078370261289116050620729026008820410161133371880022445208150414980214056583968339603461232979548107538225132532658645679508470354564648436151972766684796144673383814481334121004080020553753940990284285544370985930258406382098867620252111250832787444162071925405818645305265542682291933351468779780109189399185852262953278345553804156160677847936903046641276396228629520413463903300781804771868682960432522291733223300805570726753507173622372695570567758555612293995821896956450419295741184776156464718511935249940344761734399598436989676781026747471490741458328419615579106360291127357869015068567555508772050851969666785631595843750956082350396052503024842267473639186475094649825214003739918696180759541680635133402139202974066758346359635644118053478408976872154738978162326291186056213557920941576214933371640725882383289659273166342258503739893222708164696887574529299754630962883687352107521608564020116320993318956844087771186450007988542173265922915871904797318685251758518336502671388753360059943280351876078287620875382577504949313746415089818643186139923183539239367293774615152479025247098212914017948287696472056350829134117238851184898894363207157435393549873617586193962953565610445228394083526217976292570373425019467808429482865265016394526397203929555436663179988301149243396933282077594341126877680737995760869085235123068941815693018785715708985941016653815223910203929361456521104218798492790461312971196597308683282122953088781494393865713221850045365249421731440463515090027561186830239564571249371784693649412726315194812200338200159733005670077104154300249446923119483592090384157863859111777708171736973527952629797568617778406857988243943139091710646909377357182263584716235113370882186665855770377437597599603008333731328358199945026185654090699547920122396971461916184743040912539559460952863685102239652923443758075488237964138346694542709367436869239493738184888141712194299879311545656197472955338760818477555244353539040936798831467243054157750301205678759054680366661074497820065190951390555256468966767870588288450936077175332683921450400732028471610474292050351257563583549390185400686034253602233558007703224025445941833158185313772447252264652127931519573509167298078007877368433678194694131944067542857547184634348748790388611555560373186435578448079451056925174103330452483940301700894294294369577833702188953136892384507495354473252462257356939637392789508812365840859326797190905476695074757682640646334169021183357965524674445111081317447085061320256738204069636568978206714809810942826906450900269750818273799335862232804865143342375388283035665609865597670678125301220143064109363520920060574231624532432913351874491587504465269635485309707179165033599100659818909952419842319418458696567194246838003681849659648255833809533696546653099233314941125951736480870730195204240456161129236301376955676426982399891488340234299805660631956404562641090992817471718022376568618703245071769515692264264239591289134160498729956972993441721618342107413968684000504793811089747046840219567384111186435048495220687096912959585991956044349488600240303004736362743920371700559140690821914352236349646597664536918254232636774237714814670161492709429959230466079447341209739558986373864399036480143845139866688732982257733909211401384927364192110075257773006312574700824198410168254873475904337808468597927517237067264962655111015955480236735610330966089022028877871486340360899534468310940204197396947566939510272378397014750718181044787268545232383323654468613350779462570708944716432067644117369532532001050073723804962116108034034271361266108703861327322123032099648248799715626147973231754727337752733490030952883286724488487904889957365459541786937954104662582360377821424788855493606002618998716042683520383219673685378108713710207634835138887424378935165338092703975101163928452238419166995874432784435936466209288399009892126325083936741795388687900096707512374642819902519924025757923156173090807066224414301356309774493116792286028854868590276513070473516697272365984469428241932356167136030306395242195191824490037024607616285633956937121567281157939700330064757435587680011704021820934607237206715111369275890455896772109797951888975275952907569762531336718238544070249940674207678847273540480877960913608755865352653107154359385383464279175598806292233694218546219939536588649210260837800077098514152778611339709547941882562829859996584160729302153992001396578586905661591523191385800477262882615076487567025295038686678715824533147552427929665894653768898648466588185033983333301775183902503511877852097938414074771254477190693341034179120864986445180616823127838484534332751657217226175677021899126983720792436818462359812073849139755743714229307822435756394732531556687543721700153252527492982404630550348766557045811625544034210223078628769002224412118230386766606107046160156875642213754168531176166544339220105274402895794999380667912975473445668050328917387340354501351060165390643192171462813307274788265316569960579874806801128095548978793383858212165718926822651279261101622353889082879055697723111019412800525539760304103916101278126340375238271472074806823347927107926144211291800874896423145242589556755936813358088886190939157411120834114194961774107933230324162360740601381988604312598811585425318580110238266137952940981498886829027529525704255228920978984661768606331813458650933197568974626969392294643157416059551470787088044053765768603740854705962134636414345541691434409325532403263606856296982112046866201181393355730185008621107110946988717411207754650228494185509381568155211643696291150834024926736893413470883691853892306110488226414768107066025881169749435612429721413254960160455877310172889685162156978027226159111626101597432728155003714070307752462946751998245768508902870515569325264765632927063485887800712670860893345297148792389250344651422436889993186516265951368766617894646083826803288036262882205354594397097042618456410035031132332362198105011690569300629476828399214056474205109998667842093661807207774723770261687113648720541025755330685315045264367815463404122811576156276416933154964801511753629346261017384550277821498195845969613675051457273303060579730134232158431330640439762882843034378780628287414909678571378853404546441305025742900451349316599082835442885628376581674235123787091628595488884060835815872123520267300863240449165843147596225043673657146869568646947186587999671494995123599697152939685388220367833825616133557568721752165821716794332223464642933879471993530876664241058940261284249511309220432216814942940765045693407924589025557164145614814884615671120674155026023305239018655092439987962645681572822855518509406649103622515048855746539294985278397837255724949839343541037137935205297240326251591957672651071956779354780682023644278161362186360770872554980125214056159960387218183289028924006584288866705857352597202262687881034051090118906834767355962811664257601347765819322838312378133908318349295410646600743472957987209957613784417700218817374650376610743916454981339172437383910618725149836628562850132178610069117745814950815490389452505521579629551864282537147455254328980700500323272817875056403676250080633876021899029529961303762932053850064918723867187380623862510190716355869518543607488207283011000606659852321117461362462620803835111480273214165070812481485489534171001765243812277394189651501050289408952425191593873298829923670275178669572850521689311737111428441184254345013166692896331107194092124727494851776292991583378687810572243264644732581386849694190935137445922074378854208074861263913754199774883041993658407146739742148431491449387820097800049503774738593465050140032836711614620469500376010752572488573568389346918239883365620103294678049752437592759683123615379255308776800881568368433502734244314578199130043104261089644380375718683665124356403017083226162967673804390942088369125596703247142079752435039792804632652563150790635850731810427521738389421331903410263528894097387662720255515404612673032412708634295597630401707827319082156848587281584418267870601174229361274227806610036057559791601063959261416099632607741382591770980144224986416643327417211841769215452578014795665565251316550204985777110977817543373215356122204657736126478085833602679135008912756736478399013128440264339019267424798896153447444991336232729498686186855787538580843715024754603641564873907281950816898643397834588198668253975087959520247127767937815769577444030491244842660285302821252185706385366176864705387817449938564114927712504786457743584502119192749435708002887945053418203327081044452675966931540686366578177314681729510557652675757690881876587971290371294178763111393366671968011702370543962583799113641901245825126683398964909979299732456551831008979437697898436083514771788576419293946359047329894009539169296031309330669710070548475274462469802395758050826364816940396245257515924883370678472852722266910132583754538316742646968027811654709077773780971909873135624131646169305683340359007081576193773726697831489551427430203788876829032705286527631630002093699856664413164924031470619844929367904391701622969083685625365223251632584186343058055274912690026673898762580771464169240880852675560232849402787418966823657403889943854480254903087504938525164185374670602582453018286472395488820977326480682943199634582405272995711836226897645311755335900668458968109688875362724339343827690289630933186377245255933855239517430639533482336327358917162853067866556970816746780220652600123482767414239990338232172549947405179822178981203129659545383800281487294354751561724873045002273129497103373818121131055197543701585324144105196265251078902634891415700446475979008852377792396458583525281172120817401033525116652048412850936756866775844503335087485982518887458969568631009320857708577680702055954067113240660985364661775072146768619684977015973930487956522337389304061912514818937547549259326941103508382260897387408914889520450375321389179362018592415031380472724639404558732421897364672232800777005239550831262072073626441570807663490802341623387494060336401376415894665206332972657487328023272529679519584425761486368871527296685456550673241867884852049973306530514690193690522072823836734637083874815763280819377995991201000790840678320972810512723368178564576808954107016977794223906202889870747505505216946675209221338851827795010333384778462736918320846232844845413130045896507521270889852992310004447432567138467413845744383960742975885227141539171123440674937508972181038332835905459419856149733028011420252565173274343668531728834189738216971423487491750221429226640335784597254866257452773911610512015910062656623969172508457019389815054262390271846846666251766852588383100037693741123471736582420546217960733222161072044555242167373516042958551595250694134707460924036378185580938356346193376206921789511837731530877225729939787207459057926673967142845804278213603240818764109774976930311994045396112913234101990264219174123428843310756042293725812701085023074777414943296082252500225793493895442382494783517471196117518295707978456852433825352244996247604343930605817616146569014917287489509163498262152221236591449055805659542146791345633433603373124480929351528387527971322794553563609770904757676073564265230083070002685100862007582796927408119857562675587799426246354742283141477788291345872062286029041663709691364608102986593656615227817831560927777091492847033971577690286729152621101231973424308053771933852241781299629171425313007220429049488304787646886993331895461573331120989623300983907832102392524434243657389783802066987887148912529043172853547427254392743199372154912761754112282247941261999324176809937109946812126687247042065848110673547251387027189875437116135686441015219502723734635204353071537463752184700248165195092980778059799244999731866325705713817379045177734502774656073594459226468988263053869555410457285576027556130184956833676597333679134390631676408558907231039127388781123266830181506150943295709755910249861635740692947462681185572263785663597639225030909787153253501942376111912188242514902049790876549616958063258012840506120276404940172821915631294062594655788708395928547271882293750292850649426519900968722987020455917340474332757664515209308829425718096777894040806478735043479179369361517814911313075032892756329259563762404378588203146877634501806249380944157303897005333908133628055277115724644739440747780874771856508462561315285645714690752568136263566001307170590332825913154033211400643052312788542345093480897785978630736520894185797721107945956791243844864220843200455496686916940251866507038693262631161944571431372738102979799969432074686054601196569781435593551337507215824732872173677277501084166037110885546811706829775404504779782419132683982914587197629501449838602271460196135246005357660347274134309154081079409465901248735206046630689084664076988360776148139428860898191768761239115740896722217349532870364569377786655906947096341297232999702113908831485478310261809885839912809807645397832018782099969305821330744191020865082665872090486885853925804114133293352484033644785645815388722619099536196139134212571912947442667139511599827795790864391623452455915255735854895817244705846379316258945880634711528848239556169881517670465265888899874370708105340603211701319369455230390138749826990826859135817290853393490795353657177090004910399038664694389886425390457196071283802927179703750531123038885993996292400332241942687237051550307702008452226536230871318262448768330826957192722332994823510876308974854312425219927404952659730756120553640312831227310390071903451689848594630952078582104102715122754427442686000217808176693688320615244025445747569603244591527810357524428496925649304439636391255795398884562817633670841961199891053670361752043905802044078288491210608423337690996390003695232081259911020267349321313539652747906603072127595656996682208944432187433055811784410101827534178398912167887644490974195800967804608360217788130807752867252424046580446480056195457117976201604198604456355550497600066501225651718243490991306763969854363026546041259293874579522575718580817203036640393455054236681675441036827523701922371105242528036090197040965956383230558956691107283714764786818951301007369105074391924506510766438825532846748705859938494419068993879505500104333129478448334377365874964892025930799517453798555983442252200053893196133112198288681070670422803538470634417823329447928638466991062439648405522173402936142909054272794617974668299203554937173499125327484777678071148052774457739552311348144679454999073552510350868767251930409968223047780508272901273601535739917287536084504351993286765402370281984987548101668174086874687257083122054813752224306579032684592347242718405461865687777340285201257921493928378221790228174331126332489546958097618872071008742403109373806682348068414817641126160954355742675785925560675504857490181784108391841828088573009810393515223293172403657640690658760645779909488109508779176028294607201597812680019540432414792336136811512134068226923600032730811814061595835466383648532900496731964515984019064848928673005580098155974557870094778075147083788809048543352987429268944910947251993942752556062963877681205017173364753343877152059187855139334455707571106050165795021869854691516674455406926289089276041157666629236411014761265714526315737803422085369466559625568008401299818028265817819626315952205724107029056904585701745705062204837002882472965760504791928994057378052467359573036141540655648527854880109081171486496904022479853346951922358976100566009536804093842292786159666160795212907650965665454678783331581775458261334183817907611994716823265321300796483321808819986534547182823026725173787533764774930110260578269400086363744507441024813788458448712888368969736539268066956840966112091124771698673054203809150561954598170937897515004366000497889067827337852994227750030043490705474760658480525422663913511087248912435680183183647633578580646097332146413328937016773956738070229076522354892833675280821904256701236967545411022316875079037489889880407486054819351143064619772426446523449457669974058644244897672284708246162131079613281500129050575798331569455003874198464807808405089557487389078968059928407962525323567732763739176063269685856840238436931284238185851430478607675461650025532483737229523308502786248620911359141293215824114175782095771727227981510097508020420321362933697427010953203453605668770942295512888627515472075974893806500579684462159827738785192616302336928973030704825572008161834917674192394598344938335774161005071514469698691135550770349095958067015358213026464748236864705914915992508484489888888889927060973674544215675767883212833830469866759304183951045101853198627696421187820222809639668114778032191200182794223672551810681600994905850489064684398725829888251296969909964538296038406005666649596706462021708772957876453227986239500828703118877606094326911210303611258957452047927230104522366895906986991354498681326174555115577081635101267242033301914787988552256104663331861260898717298430634224085387368872148458946670199186278673408194176380636886191693546699866161563407342696802759408354100500242814773887844050087073773910878894017940218393196343995365377020066269223972869572089114258366732768682340846916604191732225883942241182044736895943066680794499299787027405395947073992913973148627558065698370554921198631931636114430291989779568057472807696880476224754310670324199650393215446643306719534324579747072320923798968428435071407070785335341414311408557643541620216290151584149042129605109362694179894100202481214282841460083239117353589028171541939542625916845451056184227952646041198986933919971323687239969240344149901608147472826170744782104350073555978673565636599621080879733211140798747767905953884787256264396585794313123039220956484530970528101865368157160404689049530332875546840131667276422870936816719128146565103325156868963185749027894442928368825285140890205304823155866467051969927683638958854862627365103452308274280449561904134282966960186799648221694514579457168142233763524420409392308377253466249680149287156787655838212226832056523217382794194257811731263737189314308183710498745855665541018853379704084575402294571429025902267075042232438511288044231367900441572246296963704221747180064623102886361400514941821971051690161043395719234508711426393071448386315512690734324986070847399809043415967824012137746529709870776346963006633533563491536246860553707344797068322583394460366429262851018887470260906781981317035772667278334927491157386428932481769980180475199753161273314229287427761491595790742300187206789138231450402520473304020879891394522709877938573356757753089116097250615266958957220956046167367130652397221496840162001298021183809924976323364001885262813243936266167521257178026436227848313535005240806389093155669548501783559528530614400876758304391920968568488578543033387079686524125159209598686288254069961453899554951989437917771790034512396312791826705824877003903094178405588107146255572147066487157815120651806057040843020049808530060504121400550039672986027937237859205994945407109762499694442351862087618083201934532126473723010768568914415501134402886159004358775540253880589632835320938629285888068290374090099316426724816254376810086575339606336313152522369134473707071571088540202843323133804394704561986281347110240143046791544255725271060597749646243313676153891328046789207081726220245494797518558868004173267925625663237246743656200814443873712995900865859904875991490510415979917468616805826280798791341711019093115776436055296392183709767866030420210884099971901765457505950920941702916576505678172377039301336101016272704740590491117839510397542955145854875147728608552233669560080676236198366764671331237504439518917088574294808787668415925345421017745269917910670383948728477517474872895891795403494010835303674224748754110294003973177825259695223845092988781531386163979761818849141865486263306201079662400114045122257108142655311534276096061972583800150961268520328872291543647851011804577811083622186286039494429404234883440424805629281162003667847627379440584713874720812788046863197479445026351367430683342276393343660931241559762035717459534421899393705285175664322702084611000089427668639967636831282519154474625490180544088058864473835115127176602500059222021412251734840476127414641470694915088948588637750451584954203622899964592065018393839571938204833687693268554705103449476250496529280029990929498958998218788059684734824546414100050886810322780725540408263831086903134217868938758129530000759148368983333885375148377071963724446889824071840405445621032918750982721895558716014246052975438225077707319743053567460704123869370469063810079673184779232306645296087048349981988529169553593802205193206776479143269438683659953084885388945056802492406897052169314396489114866719694948455922769425763510119966724724564915583815501205805727128966414112212677750247298998242643750660498792054787817321694726069343730002753351228375843294398135001040360353001242791843125737318378126046454608543488653455507270761076334341230723634105030869223787174751340962021014178126491183039029014284201867957389283769018307286634080391660801887280429767639522102425765361415723525314507776653144201937305358772383767974496926236573781045034595317177745894745995635125229120607701094789732961014866880055507892695956682868547943851433105711897829133890387531624101116829148284413442976199926266171696024902520703823930610174395421184618325009314960048151323736435125843976737185980987654209103533631540203410627705753805055263569452951947652570767561321597613960528353881909483653014573250740278352089002070004709919105422272202963917198716157786433311196235315687017053271820231148799551895036115412963040225980095585180798033973751456942177794257811101020334262089122716976613933072725922988955972788622787294276891513360941070338771847551518785055034514272534874353707007233585967296525439944274667934725785371133916913919695539113194851251085151458982572754434032338058843692899684976125208141536107035450620821697070933898505914407687049593423583058220258582247173714586816533884122490736169871270305438065986871636835294300873247066451419406897196662863847685559471127023197254123580963748865922623416965845546932594989021973712335528420393256534882824081026879992350110623686518621699855760435225856992895401895326746375332754553675383889444241765821948463875721828357500118929655452912647994651014148235904577523671521288588191597238215886077168550025763286619981979061754952404142622642881363480478802761463007644437586348702310650050028132528172482755756551477076191662918008669866280378760097735628303502356549078862329852899118490992376629726823090426640587179897090987429238456798494334401782163612113064663411878186479562952730763424841759361038155409231312088040235825561503886201655970553013686101077619968801884417165582672596935772717581486818911170023109891916309547445605738749188021155636150366446851810486281163034035121170871127466407450652975143934521281118236201507145075346153801374322858905185102669284773606732744350406435889196749316671416833149620822771860610987535255584491560935999369248015173571027701681498378355535056188329421708817164291878941160882890091948215603129909326056419811616820621018435449676291855165643874039905077404837678481515003949993631220808316275549056642638819831944361463748074205237039525026940267336201877585513184251366433898548755726885718558009880211229519295758752492229143864644071345761431532501910507762679592565996970805507633508721754933077348887676828812906745519130038061728020578672954144153475823666438025818227867422263073751824476583728623775151019130387008612088974962270431593893094707267514645276886066306857808646974590108044361383761823446886250742899007675229876688770781258452103471355533401468188500332282422995120588051598797958774715662803184885592330499887183554523373895985534530397326715668288308186425443018699040571566053402071958477546668061311794431298912626178960411682379052771366292873712521341041406581869297699949369780790628876531259063356743041531966562495473535427488081077335614041101243268185470527589837340980703929759683828203790893770520132696004793367921854048436309575424247899448455986619794572547639187946213321634686320533009601529723102884335646853872259035112124930206467138404422753535183813746617430279375584635586445157525054163839406115721139113669247840395769862667829830864521990136763054408660295739043029273764156463603362790951006238808225165600091908229430335325851676582894138878140067784046194310277190743995563805364454204919019051231800971490361780536369882782983425012446791666136622944273895761175147772960871158010228219216323883918353876785791783489945638555559123299379741626894778206962818544432054899873105464484589000534413626033539899254756694100275667069919863449990969540071454063096555225963695889148725912141226179670170726133079567172116809477449599120054222478216917495108668150597407944395380244147464416554754151380199193823817164548823937924235444439473742369087131811422017635212183746501607346030927691998790741754295181517521578049486264614264404793581005590567452892662413143983279588126022258053121862835645453212119673306987196113789172232091008224194103377406069636602248180646546682360081283873607401910279206129547076195590408437031868229175181465193241523437113297599155332482429108781731853160015629470322233277586680428610251962590736927468308391744403461072854058001351530891157375373917029960614491036616885768539690211478704326492806380704556343341114193691318033856825431718936214813484356109687715023956492638806294568623613946460924919270201184924276052359982967556763664780776463142075410858237818290118666162149682992346581992993013770924922665387113678551866598997470818532793935232251565603857084936631142819861389103040267084639481884786566837560944989583162421698718954978356352930822455427369248529634967585291157113171934505624447704935816892285665704982946548140366380398424856952904898462009259134709458425286989835428133249053567168732838269774153650252779580361351841666022553618165854980283330249720022366316395074420646016877673646402229093212554355738680996200060844537764574120272220963046783601834958043216139634476761254117107870975816265155965395827482292065516225563218570108762424953277541567471201511336026163810007102806129990878430961471074463167214528488757758707700807895353849120608835020947572729630720226486064600536132807778591776258234423775459544049193230154285751144970954390686399107936684155304616158451068707018174000427016913391335660553461614368711260729311608514714447129809998446583960048523411142011356157729915298752557594814688679770887314625935088665149766844437656965340419583947330368123856310169188340750230328026792452576554075461090355112495305812063980095125968880972572254424357759214636723083282318367339464882764656988845129748118044675196078161261364744303069886113915417632025682502846689222202301937803362656416427649693841121322414201538207957238478872825251321068780426720828014036685954785683442460872784692704764136326487488123580296991592432403711768527179036517616640488421588065137352706726218062690399430983939465160639094403027908349139932896537023578811252156466581105124537775451795641801238538265745349999269466096150732666729066106595017708217007795780250924660081238337730978930969703673212645289065050534040324006566406616085364544465372392430430717035242171608619323732827014956437740936199831470767906927395398267848381632367118948580338472481470933437523043778111456659821057773205855401776811715439355919823087438989226423489409328142495140311395918724969978387339950283021672691553728286499470379879598537249125598861886998741737481862927223554056401871620139660335719841506575967166912190579361009510649194217935101071371973435797972847500080948790032836850386599114066543161223436587154768627090375138714530897687492615219444947677979504874007273686318916905707816425598179326495751039370745353513697334300692325711565718010369359843491043401788615642339478709051052510031816697143045639161837348422086450172336350047709285096808724674608691217639425454827391626229374155670278346704794785518342519930389825563507756122814989050563678162835128695879424058233835866202843490769467538314111056260480636753475329349788021382431852777442610611156957757959653594474531111517720757984709193015174091111782967738838786420540998387836056697313937816038777188349305269893195599504787024944091157611298333359736965948602248324472171281464171063721810254226693866017829461507935713834490485125412947341116368616172863104220515395284942466596016831504430947393595580112087226641630085392930434141157322492111625972511222593111056193800121191486799922059745260023507926496439484244757921908915967678632641036119955782849331712760571677747851122096990928332708030377143504203194308310545659307078557452565450291935231950170437867670759133332484414289763021180918402082802023940306516076165765644453327848787966940082042244574582641860948252386330997146770755067225151459255907640685153020139292298875589655260917626531078579368281237034303456711172466472192236681907481826898654344265767848712941482473388754068933989582775656423489091223092464125599495277136692869584841073392249717367358205424750396401334968380571846787413662764812722222295640849722552556631640662676376371275399462987895161296906255716010425249887956857063193797845841048198412461609982185421431899722816769217009854640181813177944092953887420221995561903378543237686366694363233583842001502294248195416890309491727914490723119734716490395961720642592295533155139189089842535631635206635998186433693134672724943449131807212610539357004096937069972786564640815412475640062026492841847742040385693632584023629259048013623935030824302478835222811048280115031584013628816941789839239265158937322272386253279292133676820901633773452436789811698339162526241479109109734904463510609470125544294784789096078716509839236476673406826569610365567547856081286913026787742313733770543429098099611777412332805587389019437764185163501358196532317199293038976356071123785982122158123140052013053041346338806597342482841230022935476677707964447863940486587215170099839550548887848954967240178385275919108391131906811131661663503532105779011655163713292943523538832142339621644481128639055308360842306356299788807817068249734646681415910981923367366927844156810787499165655171536837128382746174946036697279791247648895481666990492060207173442175747766319481069921164515358620007265679960778824346308569508237786447961551800296541253467341170285704247838269830014283300850255740945050759128432937837933846790056184423882432354151173656905625835137320361645754221967514763565825158272711890283095328897001285513766922734237239707359774180284745467767388708455342782903202340942718878760717789276412367264091908305297973254835199021680799928135521269697537657385395564537021684625637330057027032445118300056643199261914166287423635529063785599336247544505220186582249879907050037227365866245397695389209513044730236041285031786640871299456613177654803104883941922927111862514967630670812765515525808018636969191530554976150830659626772634467834637016873294146974646348754397871852443853337407654488774371570364736148568073612726319096470085140531013546067034314487292725501484841229432174967328781790265394326927726763421647960646512874055565052126601803967567377460969386725173317574618796520162067421958649373613736738443046292816582419753645054969741884834341449544140730289615000658250297406950995331506531488974861819140967845282080100439289484172213937625739879275858273360573022895804709572255893063754803864797523214537304225736872879280598437458140713762210787362844452704515208015418883770945900649237066699253701153963539015740046020096879113155064836766668101841633623471764831578820748224961242739019472123650959848414632080483367859160307290547144721863394418232596671878059013000404808493188292714522471508315912348538374008689085294577364124598076785215269935984780834836222138204745848594934683134407173737782237288236571040766402715459647725993693874021835989200702681815876908557842831684334143464489002186715755978535056085359447952523891406079837445063864130909044926228664267776304529362561656496095520155872823390517394309079845434791087698543652082110166542329676759877784592628071145019572180284753223194391743684814006997866420220730893228639551671601598533648956216984593976238087473383122668617396191038200306941260931509697310223009541639353117386739086720448690375140109691599185845098572337612131319205732757393752652654202174981498593215675988006998216488165356279897861684763100816106017811888426781844207470212974223052817483687835462669120477320325294835697689631044840826912159288910464559312702202205825059486143305930298989422048665362847072553649304092633616697027745920270112001807366274576500286718816326451638512653057479225403288403372657209132333572221487102504779889947561960135847578174549614297475450489083562893015655961009199547735398563291329156301150465285231118666580050132186305575974739987830082963853170688418611517996229212068634051898994731665509236714049581851337009261878075956539047865203934732462462076058789386535561766959198757953775331255728188017541176776003270095722432633950633195223861946717322456972928980378581340474288721759218701581146784340913909991215149288874124119852605355363263196068490998683923384717044744041866649190486247039828102340810398946029341034446834225946687174825129123879812167190401642691790559165533230367725435060659582993770773559441317564559129572526251527984765982846924533773901950442572865211835911277131759758027198095215767823693271941725916225497587209652011606159942902426569115008968062590999297986807972095396653801771961837451653205401733907225227439796832279510694957634872064796767516187439263518912246452600924661839613388956399649592901685834302464890953997612204401565277331245910063403294802220270475700457533410210701987267697486184895894633130424954583242037575157520274207576243777294096886266695930286244232294770809844289568544228270197997408449454317399896891049098800564648303667793061367694758314573305813595351536229439378914942760963365249814765117831193365670494011708580737218563606099502394346728627873782055394863786979958106777253636257602021214968964778485987366743608850918691663695572868522791376440708203247529084502848377711257968723977473791054753771931752978287849459533754843756705781830547755717023233952485168224122249262987500556618475948825088328682374218655850069023152737585089602691943877378879219010501830086255896494893539125499290179889395792888642591275990051369271325116897551522330526154649735579162495363646084378091770980891127111909611254542446481746143007641479427835245855601587343867304328784337504030523261405091178663697081551367540302756527734803164910460741765884897815632623824011172883410996410428015246589619867931335994993433181744653872756767385932245533809826554416314713196289492906884130574251851112559333231402638032986299382824062433836717372182325326711688674259785245398586199080183597708865518733015004835947604956160641480381418725683984545928324951779263375106236959984986588972219374506826039370805257960933323275898397382585623723654848304947328357352824948054098645732028107601980809034297176616028630908940433846343723872353760486761604811436666555220043287252989573328790319959248754940859221432906990900303388604402931876683957956141820973091985598659418839433474663504639553540595530073138621743561843446787856862796304642444594345990392763024123132310251585414470099024577101571297445242581513869437948542025605082981202039970038415613864846842020294926589770531621983119777167177694948999778979316658471982938616277528220234740686317610580805615003936748680990695159470440596759673856138771958470354638317689669964350680898455708172688183294798835199526953215707402878376942027756074571530678502949526332551785531080610214113119179533439102651831096037697500409807818142301025482189455330838731970795677491893088704108248156144386283568027831600664965636412743322799090434005740275624655658455091356612647906689057273135404714715072906323135389379557338405496311642124441381660836309276366030255232203175828652597114704959368810546950141869989113422841049295104984756833861905509506939496472943412643826609451802734756248975181415452991041162141503779240683914358900887298414784621637680813736651393964951987956864689777921466401172062087931059565909594408442894705896142662641232445426022957448625124660145930015787737042638316050597925564226176162295447816438575818601277502732284193489118324153128285162185289302838290160385650454511276329877514863360062842442296208733031701416488720158214429108072727088479430659477335633635209853881575097673186673106409740156969693740328049542452790394637261948220939748734781745446291499845662494254231026492081190967730116990036745770273189387604095068846616187087585780744483282387151021514543093449612915677302598481529242582449317429912406383950862901042585892251629183113710872027813568617968121025820699660040510131319968661630856856425980345107372967270846436132999130055554817004534382115476324009855984542097681610040007873042083757875063060289193035217832356651062380274395181774267178915300168163831188316129961360704379857501857895563151559535927695559669137326614422991097430726387412650369591869131093140270916914251596198523098268556341328538507363981834679675887790096238463618015755511041042038666271898551928075427699773355673766897268957003173781215710209064897485952408101678546148192471386512654478524739048526526542016644557057241511139572043225667814864612878282431084833667998494568381488818178433390559248907211056377244228128703020542049125334808523254538207704155289201489347896992337179711258730727154982732508047530259653260144407912921421369476628669791263263256343920415838699797490936731831151043396853346024514661077998893423715070446165859019313558750519788561480255306377261837965953737516535354570975436063172650920620140824311242085127219654108153794508439090320178293403529187746832061932148056767177205163583585266917124525077521356280752168285408894826642432293302496388138663085156535165590263610449594125446537947265372478270221071576670109239198423628387176548035611347413337937812184529856894374227852931897154511551078304485387209390936077276919601020893349177300875527754546856379997181130832508171130666523115478963329674082584632605906828549200623523788272852903342398275738912965412570476368974181017848534704359166029360278502127704281417609552119613181939920673028860693417105268062352978696234004032011797026267635638808180259884550975136040389177703423947762691538091343406657290763013209156404553444667530710389945827618195637251982068439093945703428132660277361896745853026361140690192200390550143962572456278992202252117259604433259234625412473968740292040959357927802103102608721959353521944680937652416332439764144983809177784631288679108588751619624122947196175698573949110822060290394292349851306206514012293928034001968939547448257288077955924382753852296577153936198695268127540961747659943437515279239726938455144409110673789032720546686897590659569125802076393138620080743463654739968640881510506566119961704496658189492262083453625961559223056905753621596016403414703943805851316332503940767336402260191976862824025531426446016906484469489180289673335217527275875051784855413268726268116066067697641996801411615364249775092422037179807430733454281063033957900770024611851316058918707449136778529004801521074705574130590979360596564120202411734251456689146566710492562145500288706409190552676644661164355258677241538741667233721014633493317484701669105692087135516835139971102711921725594615577337239893058621120603908359529729033181405777982031709899035701088837359746480721393963710351925071794613296078031786475795450826144290996323505778751261705394484918885015152369691992673355263078460066132760846031700542921877311232191462963527246357637828681238375752944966371763175438792836267024692201064356662442241827605300128520985620014844586846966194475414315239160824269519071047064398040769782200809427423033669905696937909070101575124515814390730619196446296605443646171162600385592664593921795156359884527642956011869999278890005656454522789703018181198888974061052814524366125283923653006127858875643771884919584890288294522728783049128792488299324580350789609665838519770974462307106239266369508708980242357609612089563220257135020303949613241974893717961961083589022496388083326752568006593327134482988843065479144295165779642245938552460583133267023179755199013395883460226284143354421332433421684054924340114318232267398802826986455727925760216441368213677519872262378025273908878180473587454497943370062503222741991546928621843240169210568526312982199828370753094656518140884509612257789199678988897437518230867159088020344241857670133007879455594841071144429195519436048874616983538297490311675616484435888950152901700775363401064651764864046824822912217852667688428415389651942164214566400087644757977983196467052072015218833431497675306849121798326766285451238481533318698881916128954360869782396831306387925594151963289428892351628585139728760384426174075773988937607694988043922593357052999360855411148665109629111853826503670420798916577589744739532984734238343954734385343683802662785056312062115298076862254814965186814944850906336160857932521251443339561484182465739712856559549976352943011631103816267890557544834020332999122874386316189820376829482912487545624679703744272891645168201085861839360703030720072007212326289233079219199402141120220694529346820729896244926483081641236997724778700880626367737954931156538445249014921654686291533405299814900886151908558532357335033774247337934082902141120909020526828062858171022567659559961932957038947209052828497148215711229187951635331836748515825848332053031166347291605004451312522377055806798908344753872179468328540528981964691599542842920488963642639497218099854842586251960761971034748264663369469628858105405185210169312585884703911754699223611507061306306836030624280877955216931560426293817823181086336155218803576660440210044428127574523590813662844647333434457078209080453732803286720265704374149409378635552198661556267921404379759151194601367873090610933555369216712835888173671477945263173297933088393179501383620327946317546891151248504312772044631003318414378973867962679032639654653440653637168010788019427246532360625502951645985884923337859668895488939185641804903168041177372227325505141987530452857051468428745619424964549427044842572738143903760387712640054682356037518585466678332554884371384971159133683367818173349460368416813969159647340651780826809746909567293796979707489446072757589513231704064071842314337336586436228488370399542097474518887857324004792201601518176327380357445267825230190384749440712769734102145914087839383799610893287934519226301538379531175879971624242374776244597032884003426441475622021991654227291752480987761400300557755420173665010211503331887439773544587496441609827726828669423708526528790561209095675521277071186618591663597552898362859775668241196033247006672444507897326219986238349537611542023972779382741675980049186445219604883864938763035568607589377514149746493915919896636426985954970485968061520339186562898579129768508250221731191743757063510035067220408738627000325785604806515399339490479465510089156469500270006660711040700940242210970290109101886507207005499873788075887502546427950073481601522855021434393277581682723826404174372979310902887550212422129059332622429904691093509434713479076450226064917473484156128353967692706175185550290950897597762837647512563245772078474992474923697605158763630575708323417530051743214772691295700924924172360272882303558959908369948404979625482920609006997697708837808099423986156949262993251399359700002081738908146602338253749495080303899105654204219049631888040827909820015541974924903247887977516088802428835325018744268729872033055997933662271915368797819285222428225835070983096587319102968711869755084870998135364214246178833992903808519528512984903428904974473148601546918333484372085570282820732372853511601678508114741962423375916227841932624072357911311990262337415786169382384365775793985665589893886648888438876020063682626325799869999444505086382567777140437391751696213325363237093721469139517353205725490020365256263431693943072825758879058695159099105711355891012312474375556541677588146748431170596169047047601207746456136944552224581941824287103911719632447960266989789616261353235177661438150572954473712634759410004935391834175398483747246617387333431963087450703027156401221750923587469112324482184671143833762937727321270844306607394871703112110520372143992070896652477830683732334304440592393648565010032339641443843819302496248351163702474790896522383390792886105280494576474639028902448703936635706535218048359911410776823941004588123033982317509345240015852219707983764228712886883146013089254352120092579339861098856766419414861506846952172725345079381118592700168801767056119907669117998624115107925721011584257467058734863676896591134249848464685279028304135484784040912971451076203229011984540824979003366450052263181986310895788280185850599319750265116364072709329522177573050506427880019681979299807698337611285661970677366253366747642264361566286119889396965705848427118885424382370111219356654873376514082600142825046096416255657119535640754313894938542956211761396290917431091756545844926184600712484563916295359964311928957067808398065684522652894131083406736372253901197883342086978920639074436781854550634204833668535688949532520948486659543002573012100442517380678816771286706177152856618164013024781670004543250015230095389974533463027612450515311138168342586156060900613578647546305228077077534194669547528248009264783323522936242294173423916726870202545679330875183061337386473159744396446278687386818247843379953592442806040223568444852804887239433318222990350179601001229330787567767613901168015587410371868112931237609646513511874393306001127485543737518411479256933280306407211328738310870142856355333562147202758050491131667229022397632202624073295496249831818754597415626446286204441718947807859522015319934225106385266635031156343054914819107722762637941640107004849626142398425948677585049119381546810123218172720379119474722448583768518423003621833168455850372651446137449761401883467528256957185590698516505705133419721343160589698930812319051781223232009125747249587034395831055032538564502071809011691175495874216719305893874069227708045908538282793620988069589401119986731345963754917708696524594337436725089309804686620871286100225130889267705456073583906426714689480596684374691837039610043556693573808858259582604547944608499786811634278679181688014690175019781620428949365396448172457450331107303003422247355438187650789836445047452876816307519262363552519584547032066674359537315865730162346538001107048632258692482615369607045116623324011818105565580293252925436591369950824120328098539818201579639896665052569174557893949776010572987242505592341518901477859333758283055633957953744825050546677832351680165875237374085701572525579761154015362231822897791085520050762071211162444875106771420580939568701262317884197966313107098649159786439700283662094203493904401546091421270537755700922389122075242808661744757964350924901302373893177426794412570104792661889429168791285429666021364247774344534134155704990672032512907181803737914277357702201295276932248679935785682650715671964835121761565972610742243295695833016725340787656288862814463057345390162405378186735724996221189830572570911014044695137801416876157104962607968662060044084412928247290704396067729953412091961458326114414768911162804621750213714715856113757134513941545861346106104274124540699756396505445830750273065153506926514273741015173448317969261408531571441462838436526907850815981162491144618753603377237446142956137464908026839540584422648876844727572968694192243165826209368145768787241540450274133636752354892248343205934494722135865312750034980045958153699569138721353518872433547196378112340968992994479862990868890007709661760912654917773803500094082722492533342753802037662109815013372874588262077028148834769559555819277857026302990110427920001042857973097113061489411167746026735214286647776433776421902543218242870024747160378613330611696484833046407100449587898297009248851154921386853915569953798352732862003386976314427962378926980760895905742652417107433448464511936785605713595319807990808329145458516210573740391364104190532796253064025714961886400366922424598625063387523748778937927437006647117394519452600031352026502693415660492108437475897906793018373119708955103273099331128697216658397269900637662256885929245005872150820534844168973393557544163936472556822655931117461940295623019422289470277698113940008017749102396332655313456765302368170978898300216420319301483005886308712167424545594320599609142099499473807381432542513941387188733029460317471255440838525387398946444351432838344520444787073128699853942237841149032779707673944085220947711355586620118419688485266291861970032688526732859801054451367222817156577810145191905998852443269481003416165451489227010535571410677007360047290355973647852756325999325391981852069406276505777359978358326931862137643832483086560145515802647921479100155454689248320504884722564855263820891141651802835616254450929887631647446607076102657092507302343689141533040519128488776168711720797271089459489714999070431525827574834672197598322962471000911689306875208569714136358169450234156672808739191957455357105877935459724355952905764947607186672903601606382475098199022980456960359922645776420333000329027549095679551963262903557926978962858783534694974999054058984095429934310054278218174813547861378484219820647578402139048494109052146737917131754605347967574950962672272962668175988443220141536897276057606904983822605702837114068751833970620027234006977576860470172292377532539573741977852458040206661223715422911792826269253484485899815296936978167110780054474441346171800047018228480158847851899052971798838447194778573366969898088645730768288990833766933639117110779688906738154517994360799068919804512374732218590832464617489871104644533075055207261084617899783518062198695894005262076136504629494181455681450601451967914146454159344387264863173414059501865521730274695979932669767295300060909809239263439807912601424904997555844361969851379391102628996763007569299609788404506042879992468328568620985262436464226964846540436688507702354752501267941581449970651534096849325349885663274676259521254756602000451782535971797211428575697502375036386283861232064461490177948119073989008981663300899362798353417418851755252670002953212918226010358447915343451451351979613206587094617279840376625248927934592492962550051113999177773423540584945651603774587463758430112957293558818750964743840203728329584504139768801601622812424997701207108339125510025192915630039216697497480107776944009889004745457233844422192825676116421339227173517426228960169534874764763636410807947151902613206838399332601662098128096646936652954398057595654259951317767630409489460959214643490682248932895074075154198740597166103739635940295662749127668502628238683276625471439672918283789011962848179221124059580849620224060303678893282553103774905022269953029464602063720092166141726502428377009728590676295632690576452378461303027781770675558463021585348796658847095333248828392654032913571360440127948987506135129433037970302278984569016093327601224777499905164345715006125968988300826784719352349440544635040977357182607485243033633542870664681101452616158372722854079843617700444667556263176254481974136152352040768893619321213573633727484168628196823140933689192723772466475183247126428177726419398732835137354900892570334945446126998171670413539853020379222683346001932281463141787841985425829564972207547249092611840690054728290676474898821057519151221235719937570736301227730792024303868004125752051889751055473946860256360375647999078676934134175253703488172106343987296264432461461519555917871398375437287668175865273059626561259202914171771886127681766339516503994058189839817912037665901508642433611605954739838799090897219323911176615881636541848131810215229578024482397015873405059811757668302732887309868802162636058734540890298352893416390801555427932916438996263614450206271699854286365969929757224035545292598411737939659056502350876599243048652014705941012045080284711468175916878672333392675051209024748141103778490118882809319804857786396573938031393251972665295463739853345096903353676838680479965817471471413583278833181273474695382931147196661769026108122124339225472880273204031968465443523045269408948323061070080356667673444652318500801354503501466647858604021015316694096072202319958017294208106105504625409464773830315406982119509636210159439582097650962027054616249552625162176597128191569501621848552571639594938325165194278792060061134175137240971565984787213671434619085476035435185360887936965524330117826326369884444565738761672924248988935209083009421183048025176383722685552290299947404462513421371980062604604079331663427142605752741296075639921597313305963383424460725834713108939747172405386818809296639521816167811095388334383622379538222613440977435972361194700820374735655763356374782690364606571216265065761738261914168636066120137590847714774669321856500233947582171059902083991548734205280569637714605919421518128251476011169414958628580118387653847481321509709099807987072737893967364135432611460563495239381867250901994369015405194753459852561184202673967049698378646215862829758333590894814553141338621541342584063515583913684116162498516541349823983010351078941423359640105301351036168084817580069597830338356450389845671972904520286157730558701344091685689449951961904164613009208236187355576287351707299607713811462036334508636124470893513618391390516501145253815624106086812229399290192572340771898137008349686712352288580965124228313785522056901355348794840177294223908762376083068533057956375744228429559275764189822215878907863808533015128131433145274653253605284370693433751622255309913427380843558550745935097854596116804784525689715812238006186694373699540538122161040758339522584900146932827862925623920330610479757443463258143750245068864982355020262064329217134722970173350960961375106439513854814777118797714052719517237831356925072998258639511134107792654844436709819868540050462291385968443029650822043378064191299118394707749724509301848220566592058898633093478250066381528561276824234645032715477356858848239334016629993155932262017311082172361085435574993756727304896323660015065994956735381875435479893667052527291257001919793499192439110571311226502041999779275116499171086663190086884626268230061354264566080201852737981360753982528768590579416727104640770280175035294372331743726656005933271471810851052568553686378156120618918523523160229827712364864388260252339160011655276837251655010737036031241595762674023195941533171236595057923621241555915034521613720188372257050708295265072423816103063340952472062114701778693376205306850227652377374039848171775941054023411909922132636676647085626584998255343295165354079170031923436173366594937641445455269750982656781699688976234105248921742858236862984552848157792334056767207997496471006002348715598215299987731976883170657477780577122834441720726278757371042325878165912657517864919392602832725617325127180479284808053200498847117738154304768935633573870111382167230095325786438986027441986744244766641452271464489643864855206315395904103081956031685787557990736180949520306432706778872557998743601036354692535856027452798413482198654178031566820310817949487507781458035388696014841694686277367709323380386878713008162019785226540396309356060729196474296093904680588345969419354485984477773767094835037971777546604329106282552719822873250560401696428130069007005823304942053093829422812386418003710065767016404217396646864525747545454050210134474361038488389084886957667754684741805796546757097129048877741030274358652417060435116058690864621035956933352541988308666367468381143167312124797413146633880777156879130438016583904191222672987139918043590284959603862961030462235974592392345507726709898925167284250862734651511736604125757227448789345948754543344750221245557633163290592225073236584780945857423684732389480321428483394901356268048542449003470182902615173302934916222773299700260557420384791230071859968405011132672437242081564408287198732957211660663327437447812838520893066797186068110118915666932960462672093568114000463382250633542635155518835000516533490399356826146632707833457119680311970268611178521905519108429724894604342683592002889743813538741248275605676557764895512946968297879706707406817271775702852768487546011182529504108983916464968664229948542263166103958708687316840252446817752263197871464313295113843160181532132094350541521150868075592837675663675215066842071751124060629994970730630257672107458525798447367464019613405846646149941131775147039849440089307479094027749691180032918746598109923918083024466809739249994662776217297089411465207104983414082541045594198983195267163637700730090546812732724703287309310528202821740358477037724660226014993094495705222220497100664916480024128750465014727376598367804928795317300228400082033320348412525669640939517909360530023629447986064906049811842015743468979361677583722921669962665301226106608847139790149983239714417644893406904825084998855834368114898945417478177497915483532470344650641083425168192420830709856570878267469337675281190096626018249563084824253156386303000408536392083312117021955366735007628322848859246342426503881615586679602817720523212373768518661012456738153935361830463906606977172498898268979049614591952836071337556881975613481594369929858014122525832406988077244998811635006325571498493438441500576357516554504420552696257868796542307736696793744464347959208801840681198930328479257816273867319131778482357644156581497123084736302684048244546603389355388625284856377062818146343811400239908321616205835233186410714531424805601042722890054815062592121683778765249417531075427045362292516258865476305836647212475497034862859981044915732639944825442438173319675153608159725385037443146202285917964496553062431811211262849587619516728492622849587604686630149231335854867384646988267628982699604755783336165974589707063953109617285077560603562187595027587710976529420442792742280655500607958586919608180209097227596615646137213355707541769347965535722861640955909159315462156792152032151355807705450297876256922074034117452152240837998291638763178033962160668023850018869228276770189909609495506007076652575860445675775018663425878702361953135095463651345411492113348551247660823471669736915519242028531396421758213229429046936479523509687210347907396642884695197859912869938035342305140038494546317588657913398688551803440676845411667255802302261605040880969089650099161758826174718882271027248085338726861833163496706659111060634386230615802064243850946719925048068264574423477701824846622476841769687416745959864985412826334660522897738105255683278074923445846095063202565148304276189198203974191889205751040088201982904600342518414700753735963056927863362618934332228406140713289765296605223635926737893941314713241676437494855858999410118147632836679146583420232683438701791538694753116102992839813487566680561007743517932171084145398831793369107942791831844332015992008384932669765393196189100863296228015550628516092662258881194793171195275586049941366645411535845077605411917694112837343765665034287523575931649108931260399788676073512987356381532300360085598384839563900174464192949717427660227006562721234582279289082333242913256634575341243733558857748387909018874012725863015922916013512855099666269639964739143987508198922363576144902742008889859283923203745458108799082104216243109845200075856475200896634672681571257291308894993149285218773665460453211000415209266795090046358562108246097372596735392874872224442192975093119387958788061155385482551869985721898528320224746858004259028109286810931842044206376022510327025934668734606221208877755136185771017232098290606298843072323753495369777820052675181871346143975650353996819792444623549169028618361036424314315392996264813676381234660717710042843830038502997176163805219701063528781508034238896571292977187612172190759691328266830877874072090299820998898313768684783626491913672121767132104383623864107826152009231801336948680541548464361022508813082790731983705498548477010320825976178875608216768679725981889627546618905298013861463880008560098920584418469945077633541418397093967170113128154982376813864873244610524183120008521796385943763947593022973447605524620922044145321476769857401035324613397718964926349756477681045584832331771507191813645910832186548337073286307884415529660739131913233712568473122725277149354989678172018574986129777027691702902352554030802376767865732498606793494353910223236651943488090082115133629625978717447186097018143994860136073364459759472170400393898999416235144282347915486967200687033059746486129283898357501837793999462294366068379639290608298139403283047296229406666688440934769017635731865546299676804411330565843359638939977311193709870912624021022136047158034894176309099820426561297545672242631971592538840502608545103094131455072222455749951438927885689036763016229256971053546561383695095451615445742161670204426378720951422032057913173453934514754589408407101035138527647414408797851379236350920017117062744049058225364195371658064568433318577247628792254995059691481113509250993452494503306674054650870740104706827293069291254073178535693129026617981560637869935721603194457620329920062322564023690921378080986217037375402906065435214014988526512062791512415551301514811739764979537984957202104912098755983524538407795800629903297614582457326982519462895005241754678697185067776605378579205288617793861150664421315203442595499002610011158791910977151046945711982226016282744524922031594517077525186583065137215323088376424231599585004205380301477563862709248844282944016655212272357271294518389110588655033946352463363837787039103124965818725992220032590894459644926369286418955465837334858004013938355139999630338127119094203760754949047935420796237438735381569954842227380279750616024894431446989388864880038911575602575439745804168052447435063007670027338929928325530667720471176897344224358658134270659562094457919717325943908185480065246918264039908640096557510637054937769144120467734798163908707674196039146273371989448248574291532622123766400701434156999283984109923058475044424950749612582193466151890040722014765323031634094372001505858099041767118657487205932832884175967299199726003349669455121732190200935972961735297991866012223947879380618274770817261297540790476810525001676999838789908522713026183944285358504702427406696958124105194841834590058183312980166856776062112627645739760529833587175393175378458726844898214898922161618090223315170564825749648071553716891534050562592558244220070804809666741187635414549867639869307550350178265029777806119561160780548159230294787118925859041345743820105290386900586420661627725892760462457897639824632938194879737165549051307519197385764854805278631473460315274112409904070915918780031784278829361579817824196979275809228403942658549943359731814485210284392916431093860041292326852419405143829532426564202613361096393603154342457180152874852226975524047978732061265261465196294806389548399783503812227549027929386155584992009628121153887083644051256685771388531518709395816147990541054213848559664133406618310324592092207130476074035237639843958901095977349270054517559359177522434056161672447397759705980258795031238765080019857772192520156669442681897798718992311828759445881509491832753052500075893801816174915744327762525018325334871774489050094195735869349257667184663385952024326035372985624573561829323047876822000700104074614498379103279564310418012840430706803063256760990017513038569297296993044662742849535542950272165774860357595759859354879714605419734305874951797547153305812854074139604281676133267705518798555990084356961912164688710359341446773055761318735413490798604841576595164148975891238852199650537851684922362292938184603396503208979756726557364287410735237056867210678156628629951651862336309867212307933672370935748075821577638384444027476205425516534400535266693851955210969811022769629013693560034714703836108353481025434633442057393701488233844705478910867982241823731433553062070040467555866609048561495171266631205113523543043315055738546659073436601798436223307133059246211953435362238321027822337667996898109701245529209446856590674044059376887716766612641507171080209750738817445396888465226702489661489808828817668417457924603029097057582610651068408378367739101270913105912593969118420573375444264429018351994390721762588800782824001405980542107596573697851728535214718500515340640392890780151274306118773968748734541046864236688735613247307689246109616708448547940057923840983894487491587123422748507126561175008087032112797097592866348136246373179618119305974235618007323142059432769968747588762374552100339212856788942676144661997554947554140342632966151619607470560611788603206011763140782018148091521199181868918027678466581096980429264892384508298034062855911028374970987276544825814233136608984721982995013832871763401127484152999541593368999682770057845040412474060791116170251983539572048775953496638733175178261392420197812236038991509467196269942021654469123764035775633763258913227694218316122685937105391113385723440411313100709928894511048540642053506560442074652625287726251181537202743140981018037369433256058115428705298951602865231591475882089281641357666095410693979732538153540399890189423276568269488202502069031534180373945293360735746169366830558866991949540435200320400610726710408015568966260395893626995180841051061790758058060448480357632715379495868673922712593451538453665169326022116179207427513089642883750160503418794531647682074358059864698487436882999031727911274548126593937536366583552697776184918521961502085349504418578363669846112599078560440291006261608709886193634162168687051210939468251492273407977823510067027269926798674651543874795091662929396192533952755172839009675644963394469967796798269794264017574338353405773521461809361164749198090282585059931876620169478654223006810184548769692787349959719186188497787056582816748678513337066586202600789380420284325881766296043886267945022424302319089300067462759085199326895676735900552908974696982716632257347749797356687833062160233286444709923856315585151687209387406262628338742107450673462593670782008411451099970531297047722930904467729629325047527192486027155322091132746842156006214114295673589134050507683756335065532937761176412816402437574347430997124280631018821952656485612732401829168655638458284061279908865354468672369266341819996807714120845978755674394655029032214705654881775134450052695215707660173218481834931591070105534086649323867895831138507139300821846879076424249765880892215630874305422099502022094161958063661530135930302990057244665361539069310476753676528668386952083305434360042639844916567730008287808261881327466797777375499342199162116578989408336587672430787937028428558914614396270918676455371834221387916552884257421481188419799340637680732576253330581393365922972250261411705440840632777060402835084626739929014679077716467038120817448716865429831688487182044101484469871901703547893941469386339943523283500553038108541285618527046807871241750563004613827937098702625161750251132363532461349261222286985530729105529624833682565769880052061928382121003152974936225872816327539521177428644424472249333013162046145232921115442766360875627242334673731843587420119114157138805185990823251844235317382758147557860195883529286386297849591746274908534925366677230764254681592468774396085178495419372655917949801516628405362367974866435352727815217908957256129792454177950655103780813902999361348353994350823362042501008999668050274326571106450452696081095146964583827073502437213014550795987115316230746157626001848354316081035331107056713690661230163097313776839459406934343542846585379535308769094328701722214401719880393986340459703496192802981112547405540353711467416837119023164599038631313187488215993146507634719922165723515622775432011330281462802830498147062553603203411139445122667157928351195674441212933305610994336170993630560483203619777016095539087250183907965089465002365607386239200059049589457520200487741821512611922233633446157479414622315804969073823571491203893409693535445537438225476889123297669681699027560983586598149897040994124888655405223387877171813016685031147166256625835316099223425107032995891714060209236542492822456919295407915547542415234792920833604552812347568577535607311748218196126243615675727904896204647596254147213530983762693388074456014844618625108021839952683532533073956643033484999703640946434909562202438788340097489689235244832180288984554998834493109851873288161572982109056333304744507582211405091916450405244805609220185800298744251086937006403412973518317219028505548231647592536007245908654833436576500590774567916284879985187908107393531249487425424317897289998830053135680249092668436140927779111790387620763460835789866104412276285490374985029954209942659362033045566912192246892117894802615004229642020737769959760024122552697117570361399370584954327738034097315272346928810611798602714315070761110860156145605336970482647423890677504833708116906192206635274421487717885934984853361873645088587098144226378546813705564048364863136029136133341608005487384591410825631821248111738505923719813155590419345909321717380358332302953000649218148790454994356211465807576626761126404504240934784547911267924965805941023776361783531516642710342507072924948071364442639025554364651613937632244705161723256747956355246842883055375382478715475083704888718552889966279064020833902463091480280531096035157251567501541237952603831842843224095356165710389259915999385952610275683787432197293688060177005314781648348599861261904697964759815921959532960361797462088870428655493035517396305972926647349888290692820853941907089511007837725503696381195060204117748424112129136241373113687036972839402746495457287340559977877207207412392628353459081229504199535754138433259112456991044117676989201148482150078522857487195313969746004546497981981174658108166285211963905699709738837590733290974397774678647020918890739352038182429818512494355302034483200639046394540138892152933990756041038535893897918617979856304997987309856753656963663913903396986012682016679208771584019590719056378563834918145124850916792419726758899981547843234924603724784862696269492181908122352160174875430104045642683222149947778059952184415295611796283436877655428253016597154789492619731370653489891450359213477495583162067608418023770468818273168438068328616859646403884101581733371694050192030854777207651289345949151527837623989338481947416944713057694772822513571438107562060289911605028730352394071341789321667882422387781519043001041105314562960509539821056050134816265008410171047889873319663793590742494592303881138619362530150903823008921206321254655132364512005853816597822308975504088416635424364932435947113660015312618543819672868609727744217476757899479725919564622539142223061406309456422736837606122437421923373580645380933073584859910705776045782207899176000179192296696405319675209971572396766746076438858269704146451901837949992716017782446434872372944633388017488870573953448463131587561651558174960802567310979315139064994411989280657874467719501583836514140912151364484746404112233986737130243526865239219037057837238038234806004330662925175837810773709371290688634241200912803185213306245682973165045242253862227935872959433715935841407381724328294653172787694379810577362892969288796615812765430990156099163917149092523020850329749050136353998368556452396468566024159882152086437131680150386911463170478551644495550994297265927753192375733251387484545087658076359500159376462700509496071778231009976957787250004455909332956543675594549341076501601394989287806245802732111616263228812704191621590633469864225178698326654688989434779150346923987981012589279016696435897688017804451026905888928078909711189289626562261057375458676520935076272637672410702884522948530662697037437209050117035418975974393763922766721166566088211664574791636093114847082532329234357363637820537726529209895976065880013704580551530991526743660867586905399134458429266234607164804273520532080358612536684789683644439036630631878918547701975095723489352109776819220362374898421293469497604147433747828207407521475763004269070673244383826913375557358442815448232358621554960088154343365525390665741249519316685089714443997531372473035111029263717192617818659397528261067960998594481791133468379134151861547005629747821867057580603754121065067757572917226878025260519129571176865475844611614812076797941562596017600951477982941175145523099246222332831604831534226779419310816840843475049881340761608113130574471284206200781416040194002202190159682475018965879314716053962740255313935151354262275718011580302297913157015197818203548120345804489005692485581674932629494799242676953204389865905658207896552401724755025874283266679724918468614852470423532938635273980673841838709033564357715504118503870741539385460872099098036433351333213345457044452008171493931042396916967306600966224620246702921265721831366753464094955476725267969273399337030255054074814996517291137920893751603181620047032908503895274924709913442310727327375092655872983178708455404235747589463729724293711722388986888759385695357966468610408275809007405105518808796931226558759524962376806810995849883922085805831656106935873750503472181271041057465711539577076517515888879639667335176670442846002266256345209074231081488957041654616004853068273726367610492613541417937291843393853026565907807149521323241278345485509884786894746076115800076780766139695682783635960488274093046610986341639341784739041964537131852232344179583970852566772718445605156324686198850863762415728518492074753409260880563359623337004657402082512779122244243724993307404706602989753202899504235407873985826123280036327977860884141068799869499123243194637016062372961303474742553796135487038916473885258494884235725026702933485800212859329582326850372252338044053989322442386733362760106193702058417980089456455360253804156361843105022649347541658566477098547487980272432781874191254605095103471871731827382874563484418211336610980617179359272480723268479775230845850654858156237400241684669830951571571675337794233623792298394037358234706527365427245016628107218160126571134701851751492073426802767371758410139395169449601586262185041178883817593716777116547187004203874638848110882294912294944513070301851637937011851097616197464889476683069720638984155520360526386257584959502461381001583670853341867203430301478673198933070245647036556117640074885736663113098446709870975320020497887960206743110241974500126539768256060483098992400090490833703058538287398893969390615231854034928744243566087934779132038897171489057237187878192807898107350726524769719311412796329220887679274085631302979581827010543994640401546240624287201132567875648051008740125366825036003467869230249117693785689518414640304087009662476527550966238191886223487462039372195307684486474166038747903811560163366752291872606266211758831935781657551556683587771452628706886028982750808324734673497407572343293444423925804384575110115856442302629637923513441593258604139388056088577864069326527035849053312782389143277178192188646207706791752548743185622078212284670031431154084033062999826370854753396073440134592171063112582865811862338896442001769796989515182618689376431366588241250179805725857306360373986843597166672249214403381333259181020510568160678297910903557838876139858628669676097626713967752419031383696075712421188314368426663289110355780291031868799283617260977356400905227129800122886526963999686411100112079518064289067775355307813439746145769100203804819950098949478697276819649036941096079774310198955892391075229102396556072862502047599308827199082897137229160293874620452862306777158341330581620423304419649871620059296706522977487808096171877628367695803932316633955463992790742120837411423685664108969890601538450820676317473072769773806060087177549635867419498455769791128839228447514094610679070654512539681305228708453427760282312271961978202566662105912949055414565743779708783663290743739578356434453361054738263201249087272829711569382093123316620938153759997440285183866948777466618719794436407448654552288426139916215789054308876249037573479433147318802036454200422299973509777955034230202169831256272153257142164474096203096707825189852675525330593010720040106333139178882044381347852403556272029911677449436035406377490756019893950791315368683222269150262026996997976141119463403233392576066984663740741075828502610174212251548359477383357708347292911379326301309404478427142588530029050545687044317268229354442755556194615030745122073224340320057129719390857153883459005830015362765355421045748687285535867128517009939858547523464998503164565435569420806747676845404481892051512521411669021383574860245386435592282972833104064039343418085182063722376726886029969389289882427911409483356334822168858411668752672199396470338296674257729046084465973244286218943865160816392311618511966942183548073849262650843806864197560978213030879429566899977258367303269278555813095904334982546010945996190718336110736360143908667668568700876209181205566473346987119264864162347026820512949883942199449919554635403940412772040842986948749983334918352664948927174692030907152218665109002627218584245589767202392933401402108631822514409764298104049336422453529865829660380939398400884788155692929016694586308880564308870517927214572386928768206585180895206497351903866638069136004977227762357389091846719497153489386028574631767445603438333456316872143210989006481877429616960459210500351924255314587391923404862058238737325168830013830962461754401307203004813786508494508325646043884043316770487662829739158319631475641015733754503381449241200468338526408088260632299294251313511639343701554652660201772306038571955658040279020226898563644012903759874636611457210622780436552940388888280448778228345960365622804470111685803540319468769935531693633621636960589295329458179590557423296084966285227135067074538239351750826853176545408718921923683996237096904685146928950581017926320168608630266335057759101025885302070079973941502391541340235377559493946305033634590246406600190925642236692125387061343648660326846703112269302615712682935745232935555356069931214309651825139095333544053898021755608497889525242709473600989863454529934665912854514223002835558184513821774082838842626925956598936181656991495546878986184881577367018289383150913892009382774960542014728074453585491357605974917076607077049373088845930503544804169058336600469891738862252674087862272219648579475426912577443256069444529733635067758922738879233197038080616964876636449232430310363290305988070499669599203342413902289530025744969896165194138277173190684288060987637268615550639108275948795845905760532362268798739726284566189357520232475858882441197839525694049112872256293382546806911123201173177822515946645214376360041416187434019563470650002167737853160100436085334062294942669924985848349474107992502466918874524661767151897726659923988166575123753457120195362722480752937404550498319872679773765749474436079233910218682528833773216211816215881800376050433856353525467385476691580851030611724579991068530922942304140675074220774429452432077442765826929935666052812476983940431325584356518880866723731450634406062533478303928513191757678590883942535351244438217249920150605869834686399305789068357559393106467274908763597187090895656827538395394139650393663669239639439992804919385880002172009432569476794483907651284439287036652603002390466776819738552400847858646436017966413472314222876393152901206610241130403272250698438883575812016869052733940534043498226262960638100729120234238633219891943061517253549265219063169260363537602067724023763184934717827900268315321729839894275220414195377737590151033668355551670587849303192694457030950665484188437321455970058003555862353296885065507278071667913505252279085863101177846425001722475183421613717013054862275785219991555221941560970397560022821500258657620532305227531778637829071244849857444105736869276845141982298326450777780058704785594324803525652378649666705583207893658262946388092827727604098921930788231473454515125775638309775755653385419069554281265573357855941132363619899666042961380729881244798110272384233336494890255139619215214214516949318456830632038492995351361746397570562118702341768429589490780979080668848487547524663742934791908419687464067395505834406942379243181043506806701565565558945421239659495827933037005715545361392169479472930435124224514211517919037857538402441343471462103615133449099507848462586706326399268546677165147812273921845057308053812377340488145599133124176041300149337650451538785131863876488511878067717306402368519034350849485897194463992375366459480429859842023047083032969552063515516666571229377013658112502874323866497045225300012999514903031441113374383407307708967636966422109529269215179338614776638296740268945134583753316295131238070938592274822861975482198147842978697555770934764933916649000146333648996312888027006707377089467689250187669881394589131755638261644836519074231205589431518501039890515717508464335133352885074127814702668740124268464996034868641751726763611701574905067836248959827959196048883222575811563397073239424708607709386240236975512889345839019372709070327842202455849622978068910457239953229533847710387304779526501851901077235945608012639857759411561881346969857443974050555492619602976847723106307331079343127066767842863182790732400512144467589894144267460188821161378235361534533784003956412104091267786580171593803419067077312871222644487543852446117600526939732846495209280177355370884755729964857524728569484201776851980327743020061017129453633747813007813069707674449772406633368106996387789494198023166096622197559582935279007044711594023022222539850799793484006734006842656566636296930359696671050675558021068703468790986198262912168574637607637644032579354023569400132283656293989481153614699891955874216313098959751766556487241145474180045393034916554450743495282536797069062063810090464432582993925299527761480827455504651290299152803805640261510423755097045093131967571349900177199537250281728382380485880087735104464994176103340074555051917097581392521614920860283376137406526786043136791896183162096078191781829423496732316335295881914095994324912469978245205658909921681761015936708891989005238268034486349544071532985617778215738239526016485615229811505738514948359451578045052363890514509620739891884142989465063247532060713938468662786293190013087435087174654266399481163891196521481412413342655772959057703492584369516818921620940133798939993456148590873724239564046835732352884983812871004603342632948204693309538422859179695502430920568603020134893327538522988780235156580059454842345568273051295237160701489254952466685592029733476456229575156756196767019858428454013059061715674702349772699693877145015046343774092447620265356274627238927150604397672688869785783980234033611587579749308154102995899042185945777351662347017211327290606156470529669710866383116470301845633694469455568146553587457356676553531596420366126362885847803115188520818305478224648559801662021261151883730470137340274396401350273196746798854814740866015664846242675142251094300125046072268190634993893366904356527507722839879188353515827228366442935155245099166407257147346766630903806909730563612586023235472692019950793563068135831159686376031986946512148529605990625835524082603764571547432180675375789656655890568471439482125736058998116705480449993015868159478704812495254516750625200582369151637087617765880952932969133175026600126575054955813548719925674919965064351233780283054003698767365829491776315052783465001494920178745154993591237639052394436041730656780026689324179431494725079780137283036496142277528062022119047630624552482414352855415864292309718227679400498436186453897603672957561456162373189040133686378903489087374308069943552010208345680614083018159623276730545159239006239540555713987323476986667344064463564268434560892580835359718277262917792260079753372957242671335555052189416757317607993657848723162583879636352986527376790665465492175658682872180972792024996263450165483235440018001331539368820023621326960861586343312951864099358610228078337854245114529509795208968653736472760988390592898626261369347538153935771141687285022092173747470560347288034343233204288364723227284385572929961983336757824306081744099611262731994505045485621694018484170212874128585181551953915739711577362056435100165774931718581411178884262770584032303179859885127103752334201705535790507824524678546575604566525665239489108092181431416133370865533448889327531611990790483116992211199777556253675818168508828266854201663960015092449918262489171039715555142098426952356913894485093250016448400206777818390498240518061810635895030657925246886409641555665598275547317719202650085801408884352706759299418611206795700871092326042550303023178555452187597571137134270734662833079314735032589987587666459963678197811500628482615082855726047730721258057430964120364872521891239588462467303621220458395403663733884197527314024761664482048450221147125020291099697460356595961725215719754306179213082254676974124972165301513662891821159956190121146580750857774556306194205633373801670362984179795367415523268160067096032426339929463440210873355001670594093257378609415399089457245361405498398367042417554013531099682485390672118045880340163390572430714690254738180382019104000106909421494414446923627260134120069832183092752069576251230820610858734504212410151456341544463911062564550535868753092523563971480276416361019858255799528347935896269689279921295233351324420208045472669136658148854156615121988836297893857217705629001598577426218242759147550783417451226417697047905281564739114772071896920128689008908244993445070347914057096145385527588628611153249555498456573333118046412647987038215618446448947336418804122418124518469976914238396888668388346869261174134778163702868572751312124139491066381573964765041401646033351772364593267226592534085242031242105907705418048279086933500152195634798139014346497251262798357777182959732671039400868019972432473967450147229747706799660507483217861213374649947938537085288069592085426592559029820852703738925213223830627596963502425996462696949671927356155624326075591625581255451167510014913153551372907754979057293734068019037872094014386944906760860440983251562544077248953449207595638126837905526789766488324047433603875758199311677507954818056853448502411391099223972623772552487888776671243694702390930897838186504280539489453705506791461806336583412319690643872356119499382987613049073725167965012674385299970127752665213190937809965048116560966952039302182003859221203015308196956703194700768490877716227908017556089007392731080978429274657834330966958194366253888263982473572802920420270058243575510147712534386457613188532445736845872366294606548060315068518349911873144855415580639878514801502521667382373119774567487759412122211713332573673277572174416513087137346800204668887244408670534111442370186695908439050304799331376830413505839434690754205427880614485243431781147931352069922808826018698332310473018845436297499652057137190421626025988258761648062674970815415119913965847955953013505328955081428423160618959227765136386372720694501917528894836249803352282783243865076877499981985214750331367639524391136287571619823119473877014875177263600862780129486196114568955866205524992897384664959013178540475321169902639133581851443032984760113672344126768784256859007055578370304889972573268158263117254001402950521060909410108347186396384506832541008305954024191578377227673741267176005419028101701974805590026357623827783932321660563596598747184723728996788343076665141630691526671382829572651860950426169918336707679097877482123741298027850143935915432870031219681239869150496491866878773025698592252832002045711665779772359528050777571631875383504250528945025137103447155760568424453833681125343338403897608649157305862679442750195767882150364560963064656649427009007062230211798571743204194814647298440990437534533415257794002167014983183826853457132430742757799431711326290858053468140926011931684665190355070160100333587535803247293254888157901164356795360580774289195923631633706095373312736977084616023397940494217379482887098153837389701617649997097625342984933271009816946822098443526802076156383114166475844194739958555840111808130304412549732622388478498464306192400738615925151694192154091214802146042078212748637256160823030091692738694581705118656238406917884036926292182978994633908645096189402112748244612648898318266379053538007473759575771592979527248895427436338207015855711897538200864315666315220228746021522700799650214951466724700693270259684963535565743477864237613496378245831130309681071192187766174383043980363050110462423027013218935260363790035161326776266238269831127575348245076035461618147151121630625116442203553202482703960124121727938770563787729281778456614178698481862978344863426311909883112300519853331688761848877270553271156264150422480604824699327566229186607018401643634904175995098388930101460898347442727011707694663993596401247099804042192888892881955140385562210607938380031464669030472529713987349562649646358173271612008097938625438548569012376390880147986991466228687182769553991644111008022000702630560369876476508119076399256550423319222642364853411753777248064692090881330598016174405593458925954583104307124552958881157877740300424852358404088935303171172030202307609681041929648621784243476071884809060149046406789875342931725079060065425615126768858491848582656929242926416241098065999476244244216651963918959801266142005422561095944426731519635342671027769784134317268195198209039493051008845758142039744311472493738726833766598946151329563228077378890803186024766624392214209659690038499370342847038675772698719631218786540267465055806577616388547215296708610165796488479352657891479161685291945593186075785285777206265452568035263569468764559926432544970959954432934323718884263404336356954392396759416725204021767815848492317779767303514868104183637888451441455546755695338622849834276051774038675530667243315402089135831639015243076785971066148085730795866770799950392967692355924379777017562013788856656074596145582593894629226540834597137734012024906145782379425546876362978262613971313827545901997775461190589644339501454526837693766444372922500461843840443869902880171228792992692327203710288663226948847053870523589382236727092511639069576419956882045069107834998351669239508162869904633013230362522588945288881489793215389059308003805606367494055430041476879262675347018376372555581147765242394810857046060038495603356664254094190560599742171697066283413765808653515465950513715008618072371053472475233295355754560320738525576029313896039711602217113758863974463458975264255379498247965462333836191825030757211695773087426148187778865345394639766869701001644903202254455589244654461361846916849457525726187282207991217624791224785934750255637907341143723814727258676574610176024793137302894608201571654489906248823871449141910307055932305637362077238316281130343646854162509570667695931225822961737311223477559326968553261916837536528616259271294026927559653936901033878500451026437758148983327667413359412551787449341346585148152938265763291092700370628359557720974576336012217755920050413910887420456369802456666657287308376450353760050488173907867275327038655429524792644155998063196926339875020386701940829771040732510544044522446941467162867293687234499506495140966218029004995281838399232009216777126291163966116775908334712457279125222272661887089638691107754683389971769828416160494139281347646514215665480316661222572192506965122428104344445580381543251554835272131986181220579149290788272028644192379086163706329531410140650285320196183029586231689757344046711677398035687209885691557380809556673587529704850241786565744766315602964252364631943777702569975145066270817710551425892531987420933131589805158279931407659080397875016455582299362173078212792180229663065985851219428776103278764635893117360589104272947424936728986760301123889258908717318839929528175302016992470504105820174549071603504382967396082446182951956769321650276704129545365765723840064322138359542648322830637335079276366584195406982502570588306610342601139928271412232737500969554751764900773032784887364794507697507886290997772924712984897957256687592309556395076555958379316970492734882840972409314320111289595080566331383432696884018061661412830280190400948245592534967688668957817224838466781728870322751618359176125936506970548441950370422215167707027997297626070552819956153468661978815195713216290814957793396474239236005285395048542369443966679428468926821907633554821246239934338103388655764510455377550877336659201361332320282809304480415561067613367605695044804155544055794693935090719760712993301405792419760699437930584013569265001074899396098020592799428431487380311474121199488432423803939115866976748132802554253655609642483588592018397920513685546771512082201620003338775599100817107897404006072395740783843390089511827081890129322757879628821389166355297646440602587746623811941540079336152860016476308027703022382798368709668770021299698606919343320033298372532522363798287615243584547506430406031669365919865455810365803497451525683103114649273219159048199772732762687399651937141853120738586902817026795203313899656224198309845681379782642600531999909079962967691770795822113274385669989410806606943163623359173933993869708443184540338564788322192537037149038599779624845995226467235956248258083677125044099452151167148317952673253109309061901362685903251099694577031639616106070001169097109438883285101106980828209783397304873717064521932357426315107377459980319515248585691670011898634404479688457512689976474324697185415842619223086484119604127439102141105874396097810476166416044443210757539989589908849995374197799849122356095412428879090844454208487246384205605846146230168339113259003159493281804903083976926135109832776754115876218342964081266628113431869155660009588429243580542904704440702511210273307132352285919712941691263148285958941229555267255435921607347768618636904283818436412212306249954522080804966426727896478600165471846393272779007384601177188443987234822199514576096054847511161111506668283993932734195691101254730408064290791101427449645916847095521545121313352905236453396228630499866682794753782834566681564888247140848958760305439736403814334490703900057055340740704456302412331736520062530577623203207667905315859356372532841433735129746815342235026096598340735530460773731852674265927984390159464890459808568562156341460130467917149005525200956603748189579993833103114106899171881536019393957739406058044301958564225687428535198178432894680099365520551419269753230162367380055774684822691200876121914793898643033734074948200348921734636902818691596923162950101195556272761960743860319337276139132343175592242330024318569483915623522939174038446706200660193979843028569685007408062095923089389010546168313159706511474740846708120411684829379952712671470562315639041557455850922719288263615793358350208375764848051453159748397974497998895664490488348629597772492253773989524596757424224890794976217946458028858322404417669624175598904936663038811930782572947766288125470304647385914351739397114911586141366380818466757064708861796321145239489862343422991500847697139904525138817231965073367196350624230958792588340883309644145403389200591926064836298522240178059679352957351305062395450036395093082860373776561265352780353094937623423432883311221064236920410762997677850948198696372128787796710505187736843554911602864330275159579717492484740698211877966968815834466058362812404570272317825542386651195501985431960867821485121999491105962635621640504989400762606599183430693730829582759063111212763362702914482335601429609339327579969783552608137981472433824866490329320139030733169884334851753704438304546279564454111304431572790595398671971855083444918052234805923302004081138135098551427048778810783430101752222117804093774770924949063891596943641036222843020047960164134107369851111088707573959892082230042329493741659204210847831823010296817068534997993182591534248536386138773269514708145854912339629398177044261435884174767794652406462554063002259779947537239235695412241492754368964107089062878637249651739217286860979278532263758317098099206433506358809409633238043325607117394177846700413230198414082509504452118089461405121807423663429431649277825890388783363120021628701862434388559352855399335830770662964105398393039840396565477937580059356279457832232420565793069160365624302808130593543963164676384719838959649935193651865308322263617381434807532451688355186552492571340101408301701916608663625969635690745641858611691160717789611408746929475883892375824357043872461161662667444193228664526016665411559945775244203271618588799212032211855821288644808921917964568237370804714926806968429916212508274369844191593674460986017004128339909385950948726395394140436786421483965021707017119049872723040739391161905026170724876819210761800481886455242874035155061456880373624578567869789707858105592608925302460802121195063169309547690727086060877747058818755163518009895436371624032321473848801406181047223020675523816384268924633167411407986479151000953419100716418322367254969993813973527993925423468314930857577541078793384989422577840051671455218454503616360495506697405835628654641995697120801341304088660135682758166134709878958238549363496593287478620466792488126291127515910033256756920770692702520686783222350276392248708444930670882626586378028550674185768153508148004751304089140854517334486428496277371204833099774687357323654615936230790177646023696413481992693161882397264786640778872433965464267492980218709050235549569121244749313030795565647831378882460473214296975557565260867164958847674315455097464300435039393073376297459734861026318511126431626123514978238081799819950878105984699337800310280369892413240454950412027604128673746182482245395145778538853726833717907010754718875171116857673043992403915663475821074801890762726952955659993792487301240193839239582196050706259502591196536256729468667241002282467280558028465755361778987993657905596344374260891916005335594173963037739223090931239904488941831758850850787736310601332878253298312311022943796015641640207142348558471500565069715320860944979357377364340627038622908278549249087783264747511013971359233958210950302930467765228199065167154602505134379978513100334244209569739901987609302692836962766197791445635996481409388170163930031230561171806615029023047978404097589168381527226757536311132108073977967885746422683821605543485713449267293890457286117165078395646417930912733087155001248185148605057109608522979885590815609966581970478337337502880912435521278575019202838073534101945017453484974436329311868236020422013213276898328753921678420461540435867834291351467211697629257384053633917439060779063263839013465013325436755151534126831732270331912664176464151320050356482069234075766263388112474889721563223188923883584224519254307921634704641860887747306077330376910569031864697270978657905131159308460446366621437587181423386211097321670275010262544855694194047577228604353542232699113852229863866647134514064155265789806456161985167937135160533351774589364012724530415152901565378121890041001497391100697538118212214166294067041265111396600667730811958480255979754934159888312863152382574338963382405594172222258136632859957332559601096585731737242610663049183874109369251538373283052557900643553380120176143325874857997429976460768168992436082988709390973844218162040387293476597801708536154801686552490740555477016256106354201731879371224907690394096691245107188394602708037243602983279875474046476392139450340291530797161441905099967496099043947865937654020225402327598710418389052291971678221895368000817298173377073968140107304191679460800037933647463400676735596587079864927886137555905418998268877804030866365358788690528843315642209559533612735315409378625037798801427270404630583375426796074558781635508891078723673386561620948067969785254671506110651218796848741436093036806996573405648549346606182901966300876424252585825141109683574781733644432678077915821837018638497759261429655221394305771414259658022404082653738295716449568670943983779073619960801728293442334319555818320079642654870351026710313664578386161468189589534013179187567500765151628587930804542348479598338599776720122377927406145481277687799475063559654035869820847439943525281134153515161464971244478166379391379431567947529397026310926185244785943764362990165865376403095217779996752238805928870248006726236464732269283283807195017026350208125561272172592751498176713928798010110881236376464481456995949365858897691597018723054951834039310107783516642833019122923265641796239424707525523839348208100859159950325829476351361945127508991667278623601055050549438613791087206527829183103327375017551290288397599056203284176740327802087500936753647216168379734267382021896176514312913963597953839506703745446193341900323709364440742309634582768451554324199474854467202915158602906279981275981969032041725766592552074440831318559149762420261938759073099765498845611040965337762742702535535959876506376756473058343599453986437387353920742985895997884201498072303545792249253412372138553560400467035902150385143476378699800549998287888882028311950068656011304583357490945437734007055483910120631845998573427523312166910305049244630825679975932980415155707149573760383147134517110351599768863584117311121630753323768613946101401116553049479850355009129691593299946178052654109066873662789470555257497011378114405541867492793684510557753503886262307213209283687713364592779418481057288106522446187578565287137655469813532881755031737152742606938552056792478968247342904956523025686368136016051425539785025885983628583111898081201414869944284167823829381010407692688595113896495357188787940590715711222081225894662844352288150956932662506408199850575171879445566475686214491469625047457203871306493222830871839445174077106574625365135995643209821255400811735152518513884391206882373204487888901341724513096354794044413835216143268234281103580287343616615847924676146504816548323135957013278409127215150467049035987959911393960745924915615220565705126475770524554718560314126194671199851451394146235034825297877806492712037676718880512243013833206521892684809254893231613653289460992430817056120302353375253288260725176513710607704705221347626626523464814281015486953233794515214703839370557968438763442257215210428349010988926434344131050307335471163690164443034399221670449693074451575860959400470276614949131545519101837610203929652366730555890873083152852308877019542364515562595368307965831844956751839600338271366140527214257233512424588451222081354003327233853413845844228199448264513095429873445401772526781079195167510027287426270540616146434486934698013933955355665809915468056720045263375828888851705674353974521741778506330654581768207974065662178013223305081448435441470633193359906316535859130064568570618841533289581992996658352404962497501944252549753706237380404891273279834114602418666513611949011066870253718938998133552558761776326573141850068726456039354684341352842871807155071135830612421826140970615199298807714421252463449740250155937501370218638145423148477930859333363312083051725403175797191951664480811253487392966287053704337195485740301031115998148295831117791461933872209337166739565634983978011263664600988076463015642262009578255811027620428388238236025931645785082176579961817281898999778941255080189471949047630359697815858620892237259010871731933201000123401780166066533027557172252381565326962466475056256068022114715450470784785641114431784967704970690961121823075074528770603361447280111992541175447429722994802115128100426507581487262993993850721200943859140505260433609642585281917698109183045772200188801769166006649810112389348312466032752826937220053278479993120323889280871062403090582416828236775777572702732894439448211125822221252193613793578942932071171777317090901884466819650296832223495177092440485582938623722762676724441224479533477116572152988999246778605595077224969809472485746527644110415283022663598716994838363135402193532906316305245870292191846491541623045752600689339940992693261150727261518486764350034341466372684219159502427179422673060624775411070517691753657899610242592972335295211233472151273826883814589868376179715872546206144599978220368781478337018314542342436405288571892353553042642402708486031167019841837028752392762563481912766439610067360508256626454908545632832820920432312905606178865576022166608072897190360328991834370344014592146167721697356908523291168474791666643107919289950402054859072159589574220842106693466489623773243056758485096763163844466847015499822224311944186606865386945857272015922001634093943961181348227491241529890840613274177037107814010500660430283552716939418228451851728152933028302372010428771590653061533851320509306671720873531563685989502125133128213922084415202946093740150697621162616594799177509612859137706847948918702047948464687477770062075412527624110193505138105189669089112392840202691716083450209829371317658277688672775712213466733452343712645564918476847968937722052039244686570900194914296476768978802431665535057898038860285628026131700177874747003913294064592929573002777231579135408669954519788647897720491165228215908130274617626474030421863964028933248852209927234254645407031386743521919340430100076591017093217647270537967603233497148104389431776540254916584917348540179329777594466671423008068737684321685842326421364096926042792422875244980160425980813783724332843896941925868634691063022308321139263248185385558559140580988637934114965511187270834526195612599877489410039784768365262707965595028441941935982748652916852495148322422448308942440154917649507460312724018031678768313478327379972849163638301616498575266954869750065800213452918691860659252959106353539948969639634830529517239645094398058828565117923445474334552311675069334610721850087038727607426336661197975939336330835382745616021893838370973568340465275970696105531404948037241698193934294667677856147838308004094360338718663204359705307883731966221430366521383685512905175669728542583682846616255197897759193923302023756164769815358117806371193181651123124737033355159252806264929821701646709462166689947750173546464733981724245396586173049431018208517511167540555546771488384505920454183248466550071267744838104052581024897226347052251940952095421804734485135555716685229701297195263720639330529192086019723646378464970472849662670834234097587331898394078352177056955168872871211552838461797694815991090083498878235339147953745996140424746436827629353247010872169749430206384280037235688131244120712747102308274074189058279960987033147763228179954247080244757315942067267654564856256532965277980767149587713110427247231666003430899795119318611659164106415980442260450392838809347729070146323877444134858967100310933129851386462434626775315107847673874652718821213060957666692494636338833169419635923512593071244998922802085950162470828615964422670535267850582945603263689743340167642402805185656944767353946976352296703129714116001442184889519931311217505901551674697888487696431980931629302568116138382795237836020655392923462925982322126521967554663599753376995250236302615579817472075300190250609299614050552957169082865523173351765366256047279930389356913102880099283992466899750925409361303475058070518010658724586428956294054368326091037466264062257993136434056106971540258153126828963680450842326131475473790200476116816019384576034116890255197313547674963565931800135868920772822286672149108186480378286708510536630518599927023940977772548854038587165345194715108851683404813518349273301210366233130867820322956130573529492972738757640732019079674164276741149333638783584138162809862138765146781609587503907453442372302422982100624071359539691444851609373657984087625087325951140544088481172697261377870473337400958192682207655216427678167871514694957654920300957774858096856563953693391290795363762355364099113955829292493954276112951554075968913400810406407772748616235107130915909922079887271126679941927481434651677401030821628694887045706864168245687095738707248584354935663336202428386740453084328026322080434280244572908044099688499740486493371023323609653294349696338131006643287138221474121174677577444248036304130461579092905060594990822353852370968571569531033359633517416540540288473843228987453486434081083214195219481103543053938695225362043419469539564516514879463415975367340679499998596146097764080275023564625207657867422167958940268905617169816270063006191026565849019956669342821609045814972815593435350119800370017524233725884306921795622752900765951509756684592727886016788394656865222897518464273004478610473862345908806333426752718385720047092937703414721805122703871073311851660971403751413893866849228980142579764226373588069816349635485003789588547971784061450791503673083260789558733961177601654920154899639793527972747745599323111375478862186705398957345009238499310201319214111388656645423049275836564131783057896973724229469472494659652226635855704969268338404940697740861654692673954740361446035214977233083688780841722611439451463376312565681671653634559913022635541153406626725867304491794737712770976680280989874657576454705669693446060714545656181625783935244762921655506072191246895703222091965621974964774888575304915547013769732555999763210107557030133695982853980897031913020090131851861396098542990283977378373048244770008596188724301383260797148732537275511222167402719898179391654040201130917864704954777972497787037712115012112652974246693554952507455194058817483406926027571325686385505238856506928534159445245044641893829732286436157495296182875361661996178527546903872110622079147936625995746204726643880945021327001359321297228036832740064073794513381059670666107973317921406887567493798525956956413318457826558108936913336788256770268722379594183016377374962072630161381767689780667055717090993824412823301357644822437447234524357934237448643256601039046507503424462954377935003998721007924851199894704981472442393219382218861155557037054256538139953605240117748941020768525270202913462647893740346669795437278852883193269575201059228452879533364760617596061420078192570150240990629296484334799806934763611698157339937867323480921895866456881878860008302877872489778894362129608138039258521526364497557744003033008777004609070114104827634526254238973512579005867766362236705738886763196492932312514970557407936353784781760037523231760601581598236732335128970228112321813623096432615838344136774420145172678869129481147214137599362700865081144427661232938368956540910575529549535941979505691837371282660189077960118869059743844731827921685987278134776771894690293008092294642553218036640059439739287163276364234690460572911860342245951170139413265998593479533150873741457886869578755746810326241378881009432583872378957366955773254293718300889162513189860745071688906103543610004170608383161133343293658223132794414654181724292248919151733852550582219344097216711702321188710441976384736555455847859141711103022999493368297425002760146826967273706702294827755892480999379338951860749001526050425303080243524897504332142659969824356295889554126449148222033049601349060300314701465610837484166287244166878643767520628896339133528815096563770552411854836699636707578400556880937922562544926561225729817272656018149880682065218405269742343281494165575171849821479334597286678975617067467503481321450255274044022642539888764307656154198219010404177731388650391480450188742288127867480467740012587126840494147944232784977576332028552440224264038206989314265443029035233565633632809395759579716575506445108608288311144388411799220714290088017712253821965872165870546709659099564427548402044748655705009426120250196751238371167161759613269629966711477950330437966799438266214714266983052449578601024884082121552806858228468534084198800558022909239931646368632969818311219740121976015039154824774568224882671480988958342938268927940529563856684825887175462869646867384590454012446492915390326770044745892961681747244005720809177947500241357026417272854075369963327450966706292170300038134548706762331303812078252324636007318137585613887134594421217745482257525225052917707915366873918871917797458507771313296447712171632256424464786412382822615979869373525328043040188556186966365735215580550826465557015381268062209121317530879905456957435864038824427161655656266220675290700905862125945739601852319539685772990974217342387663213256184673145540186216539312398773836289121314229278537358500597897657038454389467998985491604748191286136749832803888531781435223763878656353042487426816166916560136536700548483164655419329551740154075509831800292837475004838449877255318602190692340951211289525124317501834385534399571527781629152118777888819061138307329731056286179891135357637334019739847188419662011478478259318284022835210720730322073008282310061137433582068884654471814958511162121492057172000143050156397097140973365033331502075318567417506730720510380791952986412527292495628048285007888634469760047229580205280372361233651022322757274254195137748818899166028385120203331468890557965271136949420443858148414906557944109871059858075467947762187345809578853596370993036734870759432599599765241021453844454732491598297811368042134642859552188797237593327914701211356300414619954605454017240955236159295178606278222279421458209770329953757838196467195633048504623408119971263715355106974383723809722864640747688015159697703123756071452898438816623889605027722917115779035154695582645876367477977692670524862908580963609775037332095671702784983914168831818265333550807135924776524762140186278105667388473686343701887966462726720226039595646488741882797684626503743493930832601221326160924885750451324436361987677376781841544654870115951112471837313923344993504105266707597690942020807017257738992297574806534658333522245787940157602400469624603067047424757428037481994489731885234859087626312158117434117632969192755092489740584069068998196297977473405400356420493592493309410523324437066438536180033173122160548114566796507559589579006965992757940099904731673527791590483399279561882699137176588846602868479048792118470988493297458873118471812652021716809028526707791682247787862033831027155818779558514907455769157935433774603618971977283859538583225294805691188227433859303665102267278085621213287175547577371721432626187299810032672763007091189304779298714325497692531109473387744243063446987875580781049407686640289937971650872993706469071376488689732539374104785244607120195703437348253250861721680793365465198422098823182541498311777444744517862827572507949608052392565211318950539338315151675246599599395452401665530221940061541995568182912368067512401356803088499682467178243137403242748227633532429761809234584972559973373047197370082941188372793760081438947221295335039042149310985221279510656356112761949584086845149805534861325498240472437950441964828846308009272457556609479925212531463185141581059270392131726164167746744162886717402465976682864341694195797178313606955668714052248409247755565840784182591070993637874797890335081461261992404527111767402571245038900120623816575016224108344032316885916418679939757045574737064867332814138670979134242841659602518807196884033704028434013246747446689394576459178540681558591763419362800670125280029776266521472187286482285367738068597952668061917656012151022982179225460105610358489853485115727371852485286275077148305978937565972403702593080283661435545645603199531438876044895799678334228611615785663269794186262034627244981892133646199430240026850881318949666903387814133287026857354200858173762993261915418407089455286566761348389990506217053219384787210433456463058316373017883416630036136262561829946771756598370822825345507609496445729140781661363464779791038108818930644192664780739123285150859081811154704620320326537101372264117092733833256318833653281434168985507886366701979950345068549761590667379652551005539941288606325833857862622727782770294521717419427896011913962190553190162087358821171307371787662349049672160806246182501315551305870729147639919056243716955745808767904171766542132204106592588743522152983771674513203660038584160459104263586924206612290477328491887728732601297188518224515056721361826822368202576793188320926156886996446529248407374031669028185147036348981268344242690010203497592132870148668539054477032422214087721685219821747738309196042966590067709769959866456446886445263969147505952269558688365408943997718688701071902658587037743182279784414104259766888280121129161076493339604568876923765979222743196144167965913701134325331058571405522400179028070893742469236822712445950327378808930935404004577846043620081432444297119893009607968723320661448684672562361410336933269537804717508663444294030993241215922595733972281977392879758991178372058724115208699439632330745369630697532997996517490285959553139360904799339095579237304735748163539573300326635062770474525137388964164571887782665881934618172051832301761540184982364530958031248333236740750363533326168152525588147290889551826221891713743445298567493607882255343781228173377675027230784693723484962693458230783701747890751473225992593312928816424134545391244392789925375112347744657950577412319708890183804933429825416489456095351839702734836508309101898376683419271868420413985540665122390596529393335728965580408494965722032786731381490539580685640304517078111387586521279927154780027727038998671709014473195281031434318018327716818420239733191960710182424683672582796068134017543667264573988775369616786433303541074584936747151301737318342622465193986940615210939779700718389422619707357120634377881968758301651844824158135208437132562493859083327949677060608043876020163479980929169979253146682737764022091250044751429390643162428453658793957528510007224340744099087927859030766137604778707647174699232120456518613052689042518899657540712008689110134535926098360405700339659090295353133547681685018085571020207002991782251564493740295617988441893299674523414185398397852321969628631166190676121852100885419185269522763344112830579612624919792790771449598391802125327648478486591149767207920585575017844524828543210854490353005465158358674497583643374462587365375738109599682722939711167762550020934331814275860346107020991569419052839224472373267053075647093670410255061237027481557259482699199143482112761325038993777045657406291574430786208041933195964091133824357748860794659671028509031154442586488152644419319921482028164543345813808899442221890249054102659728718174850011229248450434581780011259592605494788486163179661965572274315587267901948145734179794180890784334122324163566026436794447948840941095348344328155350364668884164955004404865596969016391668651184871871669302678491658118370468359733943755620453043104158948086608082264299065794537632563669849314036928762320585738361711083920960812949066973297552533137503827101352227884022514342971258391397268592314533543582443555544475374927151336911187638150852467741153065318561633438675083607601861805033979742983880782046212829616180820085948952362669375088370668815470901829133243914755417500410571158905586241792394950615776330705134978468730866163386672624728577001695334557217769567047731791843152072278441401218078894587937138309459041144596374377137806560213914205447213948419968115202761679265314254116715840569149656784668098620375623182637069093652335273325826269640515369937703198370528882672880025040891481420101285515698700785605022483764433871009420081594344367822504868019120231874882464215687577503338537549580291013112152426738483613799392366660589552402915052318593335045832621188943929635706928934277163554418433765895165220280774243409089552744157263472118377699127827436760860243825407187691137624534129508681452151590631290983122466804973646852719577052809317544313285796790380133865880104805440652376112255509897631548809565520057216825154679001650949251198381010237116432511867955510251612934660354031504412270715100133002879474480681391110244058164742711478085080860388843733557494057606543001206155801781838736068877362149562207167019134378079135759434874293538215442932712666916795742559770193229726267996577739405392394253698806915163015774556170630266409027519284087688200084060422021410834398232844656496412892004666880944981687361393016711825321146933183918085350130250670098678403297925270443512231621956449437966174295329642440748980646595176671192976293901997755863436738560579560904464077618874919140268207950831469441578795931828117344478011498132127278578964696261832217056786470702776673035386682670353528101055161067113009471595890557171853897726879190985484513359929239045535187911754773536010962692492957299199689449782387048719841837744331285050535333540137663385032038300902320398624400186656046189989421799238112741711630941919196474737516578061900702499007280976213681557085888704816617122508062177210320718865926918131540750860477916436747104201264987686959824240014139914656245597538095855268889925371548385726379183281012832494433369921305450594055939443160700381273819299280676140335579532599890802589138314520376409487435561493877880086458105838880848260459092445205154457187851221384037003057838374393892010239404844451293519579993937376831899353239349099773120838237019197138272315643652381731224871804250646301798094144037867313596441828745817696163537562109251081868095164263578858417835623933809757741218249954473306336076951710654440082000238729175179310273502890032427407210248379917266299335093920008391655841150226723527933854885580016777492978318347146927281213683343128531847221807940560868421359616802928561970145842011511978415792022626746362690786313051932647941271778144601396995259265248706917469947126676296302286298112893624604895232834525701737907100851362756806689845842001276633486928940579775876117653147177671201399362590347091582180128825844450715482497643143877520911282510806236423116271494180313149720349296157303622690843880396928487423171038725424392409649982908146227363588563462933843997205241472757873781662157496217492946694769486305317691712658824538617179620426592215114089078557975200805869934738384122713014245170139917901152171709993085153593868314000181689492388057558900776947683501033080498543238986241970663396842626915397838759736783869438112202659733175204655538984107014856514384417537208345773149738637563511856286791504269627099574372838731110847082278767516919485196877779072483463980694004373988309541968900638649004343782135643775704568965027384368092934660561355675894353133851063242506562077498270683711953708112896402012104371448534926304315827666651451400397791531446419314127673612041191916529165043673907693658845756265657128504142476006593181825827748356883433420762852669408941674914542545344713018809742866676279113162488509219511936254374481588158589392149831109598133439672242814326788079157605659729796330031082966707743669529319294192780928535598171424663318238964243378489608655614106117680452333584724250509042814571333345079319395174177640417903075795256638033270481603017815952675700275039654124225834092676488652419717356496314660937342820453993721915802532948299550037588341430435293970150409332545295323921667067967291724855034255446090644806584782627534847739678543883278717464334472366989917387208236859736047390818310805171285327033950876501786858335206232147262917978717186448696090519792736664276460103168401168969589423315430098613663758961293194701736008286888468806364023498009218590152472113726718984484285128344253166105292435839628100371028602490264201706680560096473961783310258897507124567011354851795593453174592195172335168616436744382795502183544118083637530719658494241654026066496674518166861636361724260908051069711695965992836891309330606922307700925020619615840099122928990266750159082670187308334330779462551736570558742255634266117415624306715561773075221619555540984193805369765037454230992824795935944282853362781460447699860163844446544968024919430094013597134353592464366133755982072260735846228340422334268350974817384275809250161825859138622233094412730051620157658225097913638449829488587857825355501566125651870327255872859000205986137592825103509687802225932356352289048434280565342007136357095261012980692188532765375820025069253841703089519613467467894747782057095917717442314233339480125858084454353443672541597288188390052123653190970666248855365946107493719242753050986702698218271223333863858973266865466609962006428870123865187856594278281880594238338848121802915721530641938018232521773162515186389379425912586566205665275722268656601822097524866955127293738365650351035528031832762988970546932408299164299402502326338441037878226206517579471682185994934897352083785787917627500828468874850321852090926820098913890578463476055480665296621360812378085303117832630343075598497709315968380091386591771098407731191232106785687894370891137494776492498572515447637941478324156771483645097894132298344217808337269928948540626549111395608126761345368591150038580013300879722838084283030018566751828367768153670531901472163800785100923237265380336836074861614338078602639428951791001882282854823003960607880716424607282628848069052893444321571353205570391850704278694235295478784247284956617385393394361230459136618721110547408495403710269141460740439761476218532603956087207254639178180399801607296770024387858376124402927598331628871320647342750387675303306248047140841928842519113873539568049721198734383678585489808740958144524399137355672557360042820659846356504457208838596342890838586652946206707499048439163622036912165546336751619608484115288856582398856029344707175698091337782584721181603067035148302983227735521006844365922771333624864956697062324469203310743885810849537134058554687215113172210657233498242583757620572434595424794433252754793942215469614126529186692064806083509489937449706522079358210663398799639615412374663754637819266520579185454224739485704369818552494233271222975622536040549299519267153358162785277019381938898496956328355149578416203692841232245162377326055317373626178658498017189225622139169616315703357137811768617842348122229158929680092302632519840336096660695444456166638069756138232758815274133448367396831959744477051771388349719915909819713790067158260944008904499328760120734582522910981608308251929416368776226743750335335490428617719474111301322118011095577612252259985078576102668062639748359327283876942392568675377444312814709724185316725668970553007875203215981341832777163453008544132202576745558022730562409215346761354537144915921884543903737594305224325622687529999118809864441186885613561330994179118392669641657407201806014038041041234676048066874271203877138940217226008163584729874319597991193075535651073029755964570973281388319373029359899953103740640303293654596838035321404097403808978863456152235412616038873655507219785457668643676611005545841294903362801055640248873877257191411850349243014648721964060751008510452051659610639971858974970653301611225437856198860162484276456086008003646012510921543587978222461941566000249167631567125568540996866829960263309250098666454433444680037770154927595544699658939546713234122734134685331976947537289210012925873220622747588350910311756112194025844468477347797539852968243599676020474347718066442719972345254193370520619065522395163193760405594171704002274131736271823165113116817080649636192241917237157093800643948389683562595134831489135289530394855397607428966820583093602474995468993043205809991896265698216587093603790347354279149910502619532298827173986862838955054392841305218003895287158866010597468695857934401727424179052605409912029420068399531592647767146927402343841165813619391959918845608391699796069634003200154045767048541549866371923169061858103538764536774523268460997199285733104486337418583832635207603755164447286025706183915520790576944325215520081426886451031566022826184148672242889450093992491723895272171921613116560306652476065744439539377799990505285584767510020917715236401157763692672322101480868906333162589326414990491616500505585914301930779000430848462555935080742436803590100930218884731230088931801116164212901258504384304924800745797389281544142595345211430572215332738255701245036917758887785125592013058159013316783408680125864822273720203510483371957815972581621735318790143671144464006858670120734229938072897491536880512397293984580340358998653242987023375782362557074436739806174187385116709181026788109759499878796823197756295735191058762929199294404535036450069038955972420139575759698178321198601791021201450733604334447241666582959958999980021188000249185251794949896148363587826360287080333836525082810034897997091018784217224799820383173396796908122276576693628998919053901943205630786843550590769152653672163822774643429114429193979122279571947844330487054023158263492726244608959106487026983489487541182405846970702336732209723279080999472868673645235745866091320001766823680194342201796747495188721579091312863537577601505921389063275410296790609126648999051955270989328978499289818417719431933064148295301700549436470330363285701765289090704402000505492397570387445617944860902888526437650418892968138811954814554928293978262553022827469626004068305162567249122747732232753418670304385317706400552550322961566700111749521441926290376423630582906708079296423220130954793007090193603628062284879885591244746743371152024716608936056800245888396781068540481609530066253171085248280851519571409571655359378770633204234309390746801179184539917221094212438593699768193405317753873360404679381636895098368451915996651447933942636157004225111404236589378564409657288000968207676916754134261336429527305615940062537875658525144112992261750732807181862619094842908951739451058829700386001136192295041220808912845833107944703922835588837177261538414708703595911649340569631797872096222236873369058972163362015059764109061234447013859308103843034268699404721643341150610878314534234378008600505860850129134615141060714409400402879203843955410154215842319969797818907283600304402222392054734019898928092363292410853810434568131842704622394541858125343875960111371658335412529120798943293820714181081152065590877718925903795615750344721306517085294839481288609157110996186167740440220233137739175277003010536354506853695650670054684485257824996726858563376271744551661690894179897247828525939226662234912834382729021615390419369393695821456053809694307772194564345666956092356770119076091663976529826558067492099558166786893916710421839163247454864251923412950741950163681649818154290015443395410538211254282434543479428630930507057013199332075143732702497846567685347726296425234520990394497054213702621784483263920267436972067320514392445216294648615567796930097019405799000378967370516398695283015494703454082085329296250702169689200002578309295508927592578787449678212210140276304932087372907322130459486136139228802853497737763853421552850399817532640275577450537189584841671995653141230234611168100760729928046187558626057025674382238805193816913808601355754792586522632421547817649758933162256797727078823265442120599522888985513760116816372702180487470510668144703617119308273345154593239715631216914501150101295774059986931922846768817003933597786149919813630243579286769985984202514143687650722903753943958802874691188966823843627177233391872189633022086021713879013751029895627317176802616019976890124220587921216979648617478913384779539567080625726477816398773938487867154332740467133382240932473021690334836941923078840179653895387914279729789818617554783108607981468380511700244507006904657009147756303805656505615718567290180634973546430080300794385585637670712050132115789983769135751884088087786521629751675221867966823298766307864167671931239945136953567763415756269793062109050622315369574088886014885906057359322035250206179832786291710740765839534775797428829948133242676667315448676957334307735106802244967727723699881868775140308171151553354188170004486051595258735551938263102126542550713243918060923366695600462139783781480298422250954429860499125967592775959782735717645862515746940356074236443416944696449344974811189557395881554165520121652295321773511824455709148335581143741563510120208386653395074689920442449650432749351961361642118482486242379197885521065752046977855273238089735242864585405649574350123652327193789454413803209072663967139219580156763235939564541497004166397360547837055608946361483470872252362126562843239779086814958512801081468673983026134997155504191754082794137286835533350861860902825854085279763633470625258223528772106324847382968179739004291690930213837892314438295115200919232539364779397303673478244373888001972970418079734607552623599834905144575263740653040575969850829480098897683384577256783562760243361863543395470548318840139882390529877510969254785895768472932981774363545655225442865065299477496930496872831266082712717591694311536911700625171473319269233117501500106593481251445722653105204988689859845950058449765087282327892512859954409522537185359838649520580749840501687444636382810313549181479082965468339020889610124687263990049827038266942546105384795225914881214768259352211481037394499667775361752700217096999172373190858503784130094662494162548050279521448332747546333191003533462489903764288901486574443829921694755558629497338057477176601426380461343466309145880933848741277401173394784828140623402169409378493796303379807893109455918626762873083189034192136925228697944567940247449672723878795256838587511969231434411248874736790513637194533541283178994485534606896366593721803609966972156807672435638958870435646821993455541311064922364585425270694545876680291176197920456099574242807100410717564533808303719889738230421688041948857007049564571248526521273615052301316615199480798602501005758834625807202313291114024406613306890503972163642890506827518224766848230188567615339277097103597278701412090318682100249214822163601774543291832372113796021725654384381591541280677716460079630984152501556256978282068011582582138840287972163199585248258061429077871765694065719363381620228621603485666464368411135806806466306816317336702047747858872192748152089860126856193227620651812611478384509881788377042137922410164615888601245779509574112856072422853163402601573905704962561476652037845487218510692797864160298223159355365509693544912434950202254091594074371755958725214241115965758662584337304927693312703893795733466043259100413327521399305623403556799442175620298674259224867986962198485866782186084757007339275215518397180620561305714248187692470207261165082055302911565618070349349636555650843720988696459656567855177810296830875930695186886409113958438108824201914810016161724399052307837757153346534826802473776397493806974089505637188718628123504224478460252635845816074115014082309032927929041978390413754649446981294916756289600427344219438433445121756753283141329541172367234267578296109666562602479681979532513748912481102780934743291317906398215488127246253660709535230167134858962412720873200966897308118236549829814384224100558661594961926667984012640187340490204397108430107376958777326908095218207074131644196123963288216451665917448082752019719300496053436990368623755354054170815552314548938548650475289421620149264363445279120134548345540591413609957598228764456385070488076711148873535760335586633951669246805913070085574577848293298873060252847652695448440248560331758679570502060226055113141803181038515327263272173287340781946499337694916771643810984238401993280010671224878523873587363425975727247009377504954674482219132596963970730725258820706948022938856529944658884618303243823045977388422141135090438480314085915978927230588058341047959967450212255735456161086536518440584584310468535913387922059775704885255301730477134658326805235962238410995651640531323789421895083383644991197742231698607048747826456245476663810554727860757770869100995588540320366892819953247417914587049557546054700400682955664344317251091999282720438581670003108310722773236622995306147159804065276669398282751766960928705486910164046500812410713934202339399497548519748264816681998966911771848176126734558496377092345356454747485551458985221033476258238402402743165306361215670829081277024053574173708539448977911833140227334590213272317417675904647627826193370414970472560557539283041499512301785883913222041278603812372256617502701017685917911274446965509028691473282728231745354648511984144848612174639146188018880634637210912792826709179537191178553177243450076523627473227929909322092855017544912817870342894079539353110809670375033796433346872564720177528827811449597704287527805309732108882935448018486928693550996669793928411465652297949570385606247270788512202253339570875764863541228236594072956965229394620251386895238888474334716626112367068624144653116797858790082144958884838706336002608058439269570086813859104778410139189178017063906628884575309082298592619979795598534341217037390177705790639926335343887727864542846215839855068731780832118686950991848674998867278480463340723113610602492826208959349019133551884460627767124812014896653768637611602894820168820340161852816320287711634966588162549065439092031433458656005206235402527952510281771602817321432701915082073814959685529563611272659736029749383820387632679910509976555210248563282763793902779945704435913809782413394090649609706776824234842987269906682679713702776059709609630764114551271519309304071019232686289598406541665577072612533866314666885882366178857789846204952981508226363639093387766201220688112605345792596276598094229674940055538484276548309633388513200193416409694975804889540339589614573732344685154658097812122500383550910965078039025173142214369468049959501913958033642153888204606980129882362518449447202913635516955548566626978044805882836097002514821580307595888577029972251025743452246753088441125370086383643519556293619336771175576629499304793322541955411505311290942024661191668261672324386779019692522567380168891804685078079035140606396983879153475198562927092473697858999935324938209845911664169952867261401183034849098622529786318806541636406087925892520383810785845886511740278810606724041697375497110667304750372361935009218468572939081050706035965702362251025164767617106866293764630490956140806145303169502024431920242053597113644753172014291260507711037787650766630647504413568384960735477704527714689267759127354698763131679532245863265167796288161098475084121917161105519895170428534090129374135974255442657049758827703466052013702599254870526847283339114373732208449394301108634491352056361888719891983033427151191365627893405588022592306337912085996904544466375035877381675127707149602935838753036874432492473127553575781310158931514508906657758755684685546475278838868406188980867644510008161781924497138876907233800614071848784420300534919045336399640623016993989870614368096324458864063689166146169113945185566300876513370699363188084581530274995291699854581038788830968341237471787950667176579750360874322075203406344596115642654971769542025928800744809428652963327871358566848901687819138409511908061502262774516103893936293133003826821836398212099743469964943878536384746457420185427034241763585515334236423484720868058705372917595814158562116072246729923852033511335293905698509136669594281520909906076109593962158992135784367970949689067127238925151119036198314806378836586936510117867515625853054745401508641382306101142552554231168285584027164690254415202360868326539685574992802131984196274718195505171581796254912578381046218308025926001871224840310927827314257882608891024064902112810326010715730176095107317816971205475587632306291058951459963493029493758177617404764425720664333491881026540685818936252124197685763181756776157712386731740528282768956772763078777667711230186826094713902475876869137554709222194993772591810637511523825449143781650175604165232739639080468473525508736242856514882687379126563480361066128452896808556256061052817206159186968206569231643564696623030721200894089636145021760728690978533540640615248341701810178605769105633805213604950692233882245515076744439922446683795551096721025288980417665851859956404030052626517547212383869391672590465963782349034592348975786174070767935137920845008309873434850548376333665945049305391262818601163190606593939068206131654681201798650563149673734634395678809537094121461992722966402405615669642168177674295191004901815536950329106959000972786222238633474287673715958689348689866892102406100214851862949328874879952963080217714286313855951009342070811271931634712372848948805528958499557312223996719250813507214612130979989522663045068927248166231630309365173351171366272577940204698608240831161032167418274903837875124990845516564546634981695527604602930970507234218609104415321648958757408513186864017155312767038716541251389934161068225528502500467285379357783966644641067178815207777580922436363773726116869055784121777125157515640363005799220316797920691478567091882271151242409273712007148895665238218272682449862085539164502367414330305765484618700293477558321515485883745653205524064152838230939534433111924980976327848761130430916812776520418727737475852635454259749544571231990968404885569383806675150446134848263419058727446590605974282076101902600018393638435493392502852673015529728430796909123772409264515491020514288359507230897530067390241939530667454301700484221119790645531472794628784776592456063944476106307036306799189961891313090771521590596562936271070816037575827994880214603812861188751266096344967977098523948803405188059312859671913877066701252571395465847794063918034988265709216016990700383369117667579150241432039971239750596100625151741751555007589468846931224012750994220354401561114296307665809913348381674686216585747827966772447763428254984126159002501706027252420933745853545056620856428891166631535031359108256654028255473304296163570185904421518391961652649760988738933287733229434806212893984701387228755056775601591307960424344740299206205529408625454345425744961711588669173202061297293819387317792922107861341423186383336712641889365087680545999438033583034160838187005708034554023316008437813756423471913397396344694976447682711062460477902781468777976959180017934940065228307442420466795023282672236364507515611480741261765479343192142483268016370779573260149502060583001807041227026564059779588922840455341178338153758688269850092170096802947815371866016523406956242142869304008515606042721204017014069704679638088062714110329531425134185243031667227280537921338445928806182440162009733194042353330430112462903501015783916815814259003826227105355388181358790242708046780143300948925839005406219137164980293558042491009409239634507816354107989445857265378048177011659386098302474936059350284889387329271774451784924040492047257913312924096815620012584051157748426792483249150511774039625312791150776039494781617894449798000479436808269463869264719005957250786361817187289752118248935321318366129357207531261673334652594393851401772454767510154744673818587119756278496999358761114052993592299943676730296513656077487788278613612021774551689240733506963105458925884497526294789116494240981408971577437215686743076807048307340950337906289070679368958357489672086558210703910751575314280103612248414332929048922918332321363895904391089888158780977390888194248702897004612590620474390609724681351244400865727405448830827960026256690119584179251588672282459593796752313549776314265907519959693601330256495389995944996622486624866444214253866987693736332185327624088404443982474260326808847739486365445183166439533181695475617301420010279151700631446805812682754443944659660695002099673700085536161771265412124894161090934200830304597650725116037806272881261743695641775432180193223023575167509105750892440617153912476970591694165891211465836498569071326607813397279471984558169176934487623912369201055866630142717590348798488519147046636190487348018519548535677496452795999666837703395002797539218167999263013241836984569564652746878438728374438782468418106297575432847689070285201249003826362688629768507330660631537085021264577573693049078564025508727868995098341086634972687229818434800156138583125315872319016342567508649134823089803769128656691454396763935399535095520524174987336697521198045519254199603956316394115149199366779658277804135100781270637786624912601944084392465439852437130356374814761845283011845730882247866098777763966869773167986904906299468517472162493355553715020907462877907114010341860592228930705562387222547377596503932517386398775258822353791243709114330838546283023100336872766122406135581019806022220875257283790775472635276969245717623835488106966656671527617645087878712770188797307067301082163136886975343267561741923583130547686370265791770430159980314744718349894848700523813007512891267636442091004323635960974899965384005914292361457477992043918311882882741811619406649154547355083739495608046799364566507076808185341875605862491108025172307197743505914251307034518904476780286540812220247207407080540026721066254270007389767734678725745606889669000149638489282923798151076307524834483441794779660520925267338806944294494041582339852624528903750345980539927692171516908345188283061716433366744770072637928994175316755215434824369806249559575830724591587530295275457105295563763331024698523375380929654061667799422021444566818679590627660193051653088167353673226883097892724515065857410945443289167647990822859768473478676470407712632958427372248968996020877622600414614340974065099142692083867646705791628075821209034659525729704904066275170938269279486225711432532978823511172400836207120261204872293758193389411872416825406228967734800595384542236472232183272697566817271472748617200379154861511520471633551176358283668558739853803868931164709270873167348675461759835874643932020491443934776911499577413251666860992867789024512457895964087502572787047534427858039174484560957131882386201956954573716485207024412581433532569343193192867228468331437064737566727287833621149984388983785431012537077895218723775551373354005603854817474562474256872557604769772910516818935130164916077886116523537815229653499181631697918044854854007618938095121230514194261674367463372023595876697791374117077878581211638834170109884408010893902478689536671925493378996904878777746523256442185246620689760960899677915285265443819551411331092862873575959345434163431067940115837517787649218641260236933129278286770815586700898520054003846901891939996477846159859549178306332390684468739599600324422762902202989637852358980913071959438752574772395856209695875979708520882946141356136046134151102010218532890827590766984929524765492982408195028332836395742536742751172710491778892411192028756790115479976861164772410336645075074902015401990371280880095033024171463596337741956363669515885178299491589829364260729647091570040672549664157966312630996648744417097917100207206901000293645469779379098421763809197021473130454890550434915466826208308697535355609622734073298490841729410021256502238530688647503971699119030419987332439850717542339854396085918109310838857056584337423714710650021737675327463918774089561706212573545978878951245911568456534520421667056333903340963483469529795379547025998630853062336866494809113411914889015711034909896820238647111912889733098448361526478712441437211033892096121030848428021191295230184624351574408180962475749670542546124532100870140362767692355126435530446307408057475103542999680579488099665629442260196035602469769909401245168987481762125834507634074947745577562154595814260724691106246598507041452755614001693125239621684955916133946502975993233294864933578796149167478151888987885131705582496861296580376838242059761753743904847742406051277953561061756280577303421381510998717223568091040343264336947112584847517832626298882963506660118797451466772775771405251287371738236930083737436392349601868836806861130817176071157390574284847001772343712270815272184315230603345058113540689472809131239414390916644090356581090720579203022651421293081845955256964488204318607299463438014971575604528841122958821936143923147995860274539442748143363963088323079547502956941237218935912939467974279791750023743149066442319191450292476852282256936094294773472839528131410630367928188442940661628388649803598928849076218563951987608779908702127363856805338440390632573394749449026585619387473103368681808838544644087222356611969414885604767143073065936648943664555850891266724132312820915533659644528986644590474205312427160945633533300430978977844097782953232078479042480826010994399280347078115857390840667838522723995896088870125377963505520796653069426628897436445483115018270275926226100435432588757933753923706219855134688544966006564453932980921383317678535169180277094124623827118106774679733621241149586444576010409375889269961745425024985731055302454627787800064798545931661958672652546030986186115952717147618360403084650973876719971879202532145056518783813824075141565139268140539208505671387718590271438012779743863359515908985597177873489449864398155478514415211208836275079319685217016076570452549699914671881168723805310526226701326609890084883741873177184351272487744641560295423694348725829168601539379766625793592411167279989445378814487298571195218783358773287563258689218313219220144557258706149650416324115365133455203537750773886996042733226807234063543372859360147240540733637932692519241408193938970752773505532796740374352105140175675681287454085241834167681578861665695966643018818400073726641388107589847924585520514848829516354828365867672433515605122354082751924116367878767281452745697276378245038775852176631953576852531988409150352635689317880977225707672824526475356632916811553909635301338823251159522191592142016803943794379816794042170851931680899833055657433035227090229345431930149424407166279167248611811791159819059574769306490430276835481354043514774416567412099253494421654217700181517285065928243472730504244552121043865429071423532116164256848642757976303015609127281452800705863049353580732803277551383937637076642062572843823284304170319796528880409813543299206264638342013352470336479981081051632773991550541780239069899446844223823846406383749232518743193857400908540333189928199286863654199374484189063822139623078600664065121744220658578641081168868529024295720010649808088938735427984357844989003847181306806312260433662156475793839508390615403918214695333385042875868991052452690819001851244138848013753436659132473580973780955672422413291147083975596990058033407875969978748294918107910777917777257886908523997656029104541663899226830918809873622033539295380136038385694455312798340682895140999046493615478118569400098453833528338738256989932582974936580118938264446512972263500080993838788659089139737940710097016411041106719472280730025578465884438518576167849723479701038662271487217352680731396858165742111684494992750551606060929322681187323368909894310624612428461577685825857587500538120125838278396752997197601693581252478283937015454939758066140266686415957659837467167539180112131158133537385714468743276985256014069078541763414296374076387543956459491568965555352881614639313215814840874123327958347456839814810987425502381284645849917674698539229097113980772804185124283075789695423717722253354383949027171478262945015579467637419749360159323636712769351820715068873485809046136368628421527168357666893962715990350140479369046054614794082304414059236271388295568026835489333447522433008450950928229894790721356275241579930173781309736928712571108937165983956121402290211589060932465868190827946895736699847759423038227330720323192354131373440201751969739614314934856111760701752776139428442855272789900450661324032880928538014578361469619696228711747597333091384643187443590943359126640116547764941945975463935800204398973068422586667502268866555370557560272842262818346041562893611541898176791723674268989272462651257213208562718798509121499232393831836790068005513984590823429896923347681500005796673075430156938746511503408788405144218706423925093629565111436298337890577941781438335713440481776412336776490804936118825034321195108790726166347899662737971879244443496057897112519532481462279171980378895248578152656797779421576298081045392517881086050775455299220813595464120786231844386624271181607706366710137727906403472722583817742701787217732365521182257975476043721642277319996204268336467885454584333188662385239109932575002595241047595616867045800535486918515921778977553367589089695372154071527908977240955141917610956391171243542043577585908047732552665025386728392765138727672583526020517755392243519029397218385655838053309051304720513473356199173350127780895578712531799829086046471321236670431938684342837176107434627541879574367043446984996816124030608384327872684095090452362374624779906769864800350148423450411455776659143140730522773448150939345051212993738666687045760175692068474193982021595477081740278923876922800894161585432833177528165854229429642842750065294607540452431959444833362209063056010670219681285573308472898470627323284161062230957301072458846598426891630795835729692091256785247119798509532090052468570676590978904327773699253985550318721521900053079822267466498534161704271039683497694806219326659420235666773277170774708284225099133691031526849682896907616277814268169788803405193584197846872301306576472765484022901579605594279115196924606939855460704374820391546632949751329409535869620915712474351970416843505948645353973307145191010203188261974199507617449516631585783254349617002438193235813346055833426641165869227086270899441930604766105829428166534759165423468407551498884829996418686066519517900939276898295101397566905346285998667521175855905854500177360638573656596948718816733538324123567211776283290409020549939844022856425084770588504591163447720811531071778008081986615738537243166511958391455772273710485977244944844489005492036083781374567216038507820193898107083194806162982227592955802453263920615167764769587546101872945610095366374679009398336441454551275195111903618956287504868841101467040672158452485564387492410874653533809660362540569604324852910733362550768963206207538328410000272069437970023330074890522465971121361256486529443671062791393346969393414166182407219192135850755409375105084896713242827947007051140088364052992523251021481805689620206688951372540937547878240874552519928482049799062162582722696616628091792953137370585696171869438015242598314892604159344863284074547413912254090207249098437692585762721745640584962947655202734624492676791983168948553957932670299836256774748105428276093703076313386829632997265848465925843999890167705918780843169808791456809275134305627622812620644512722051080046102003464726326024640086126811095063169354506654506753582455393209762542275934014563989232658049781703760717552329724853555543338728388811468700535969087090167407904111641625142736347623450027690633760732655050079632513402099295444497455018538464144486779581008216415665904199033096306069442764989787054238422929943060361037779607572229318945038981986879989205505667203284715727048530138277042833717560200106585445128413941058803851364974249798155293516288001434029249650202757822985192353599486502853254996917213303899376409889881392755418626540851595240943436113802713451135506171024137785952228461244800373498214405194797200131730369832030635006010359407630781850289616523862879362690015991068954147847426684777421607539182483797218439254960975067012430058386037928696352792829091684606375290995728297625572893208619648767450506816740972540933210945153148675684523984635470356548919537354359529691069672689353008708353653104484681699627539355010001775598543007843213443639927553623618906413725640408821209254489514309169550756355967443004439452918839179707018717122102875637214922476093858555185376552710322339341289719846129494355760601903006883290755431564468749421966423750869435441813794802264489281408178023067066234226919002110635305601051818973654655401821439676502908147468696462507789861870421701595643944455681337993120898427931287487799734438607163826722013697944019890682401845242016006067588835565754153494953058098454873755491408029718907251393127565806631227556588418727592394854023369333128177501658662190699829984897991378108189161292238240809861387025369350405055882828146993866171431973560160331320287926383107276368572054977381823926938849947128932355445437049903144551171230058334236521744341250749734769524961682229764046779479606400116117346935828679370933977031598795379625408924428541304794666111273893869646654042949917775313148477925701028623118172900987424775767994868765882889821909976031882474274176275034016806880072618383525099939474819836383686981715848918689764922832590303106937348279979140361630978298232045879227596777240980635042679111961887779843355816449012076385647258482909653101857399693158246809983986518620434903358407622036432296307208009576904968659462040610979111385598078518795072611926019138678125848210889171332936432095436054207994510189796230027996745530344894214484977406075473090028338757973325885343421446837102650289779934220184556525484038464142449034751785792233969515171975995902591165331469535421366646952532179913857291615549347923875309800330061063232222013315728903852218742523990946040377086117392630942614202368408539778998257930472161451499302247298853970587428896755936622331270852628654251422982882649946324716146880306241802604161034964893074706631372514044806975745493141863278584015051983741343774206591400258779472855602575313345876659131952160083499052370099488660744937181149326491190096018366963456530044617679242370620026525207891015154124939312850856212963795521726298221638707863185693763653564020244108097439688293025818802124800139085961984448980909077771768446395419489626422421783188322029747146474184538532557051492682764860362646581167855971156135286844269102004325131270230588705721393688008383213080969762997570699172649880125327833527813543945549573804750570218476492892323921321898366142353485875873966916154739420857543689195639849433911400716870020743313290986148639920093395583890385191157569277680929349241292970877266755462216483797443535003601464635884401589872841147584885691095454531068147695552457960810195624584703601477337071684863300740271164735754638645051343990082318049245945310242328993194777827354833039456509258782710413503575097979613295509767165046030537121453265338617755167658097180100880811267783590041219853481900247294526396970178805894179600933360777728428572090806003912815875863937295491785641542964189759720743027212139075524854250465488279369900542825720017974367347244325210846214021958176084185457932359404982299685307498956082138803959597727903622254845178791558534278555457613260225076122428311234292678695354975572902144698795091418329744902068137906523950504400000278615221187648334289052069376502493144111983803569002430760331717762616134770405072442921700403753174202399598312190375344125144727727693941546632760065131732693980418255453212516509159417811781214589950461106681479914651832333658554125783990482817711812095260482530573847637046986060246442620061370741052524493496007590935241600660540052713980770880097998746810725697876772507256718009161249399688937648099211631323930982802737234008781930823199761289264294727093498780475616270474134403486258404360780650823310290047454333629383965838449374327940127449955625655368804900505873653407409564824375609198856702851560053371040181164403206310006483815346175506510641925562652482098533144554984789187454047876349653574063764610854938295041568904345719522667411730369998603883421518273116385577060588021977791632239505053387994889555373757331907963008160157202470048185327211447249672494502352241426823609504993006941732345482661427710794744559083697577682343441023417259586287987396298947046431407128715271460601602164907744691101867289421516298514581860669623941806019597330515594534159831669442861855303824192169313580292099939428465052658876124346027161765852846473834159883236448634287417634619095294202311662072137829830273881427831329037644215470686935925244139504753803010509735127349215732719593083067391477644021650163208863573551216360262125529931016801967525572577916932847072888029252453570535404240204153127863771807283892202681436647630204130264172762557618028465312771903722242459716941365406455100931036988584427562086606256413891488451087499150434203559382935549244523710349804600813250728696800488931702015240741415818511235480308371410172589757299425485487684868495861986155411773525291379538229976088080756365294612631807623176736466705166449458635186448965674719376461901737704352245183344123076624845315709492328029739072632761036209576803871228820857520606299465055457413005054461713225042078151523450063379842931314302236150223152731231202704236958341136946992234503968715385064076183168027053912700945711988538320514970238069051187233274158836260483129910632935663695770075622927280649503209771939170365748455471613151317283445593082787333840328059022146389771425987630307282262176892503146382015499228767833701586646084516532259969966931851098350138879861257710730431751281835828547424826962785084437647921833686961272015864832255782446852099683918419999201709613686197257848389156892647789593196659931106674244588183904234088199685591090790943562934568338806309910481010782284007644074273658117675657301019932273210711642662212055005216463771420867793254978267969949200321383384581130550927487882145442342591967545056667687171897122770485445767863138758797205219614523449387521049079886049043772711868363675732181263520550701127469523172654355955463571604290667687851758394185357664031445090466947460375918162799438282303266421579021070758525855798130402308837506953204192154543616581086533473615304064663069349241612114004753592508542886455204190990489487350662492743232451699841374512823772729336335616740048385298844475922810649393644235857614813750227433871793023964301701089160566469376758559372366579916919954480942625261812600295012606733749982675857004133528585518689711307074357109314310479187390144460859442721193689976109343803174539569259054216546600110666222098713096193547840715461210116969429950412357040818605051581282856495805624750848339138507543057891378038486301591704416863679264567424515798308095064541289935117887292049719932016245294196005693025371674842364929923585087709589914446857517954578463667047471797520978758383149462244487673442650031091148421125384171171184708309174516219760387245815182078271881366760340112279022418153032234261659041583796387089845604046320686236268501774488015088925412995277060707703961325769481374774966472533870464097149227727988059928213120135828189041961239758764788103787580053032261347592079812266534553145215416985666157226641002272568644097378144526132154102497278509218819821465851191363719802887097202973689965332998408176158069179526029423598463909450974151357254585926895141178212864617426458829708073889137960158479795105019031323377015395603230830849141545409344382140799019083393523877771352847600333230697645612207527401187670397281219262695984664920914087536864847242641647265204701388496118680040591443182909550314953378534094212304612641590826149267819905084402547538689066783195268582280594487774887859747082032462106431835264545702887327692348308566170864003191210704744596719729900662528073321754205097698267391225728254403707440705857286599878226913597611778589861163504681337280286999006840654004533392941452610426718687879988358778566136015235033224315165416136571047432186398870681037514761430251683343361955096540123311071536650420538805965084573799254683004367627416693171065360085708199086041566446215194191259887187633298916122535064640777105108555844274422178466032754181145689178865082653393977107418199888634646329457266266810089480481748630229261564774683952696327534187285040419192233627396293012991773144800103758093971006685256325001456930587129465349633949328832222160149879089823159268049303030079557092209654823351188847298044009507041946611745188005892436097950139064146527079703272029332212836108972256151656835862516028875940395244822827911052177512922811203765119673363434950027402517136986176232129098381490469434863177381351968631825110958840346841886229289430860390957275335795707483410176229291736073427734504130083305966362681231144815024458017905821568482408705872871047732508615662036013035774095199495442612587608616502299989861880995100544997275305777090009366363469016585086943558307204512690066694754593151159952370833358995260676943421010510127939371216374842813107284664231631565310464166405013179554285443234133333738516595337785688533624546135659288033161124733108402359596643067074297407962344770172615490934665183120899820527850926827887795251333015277894171009613973985270516123881601587965966386902539831109768829925715447447844345303187140817399452820085064308675434752140827870678806825873636418964568701455838253344884460439825913601739031187804034839012425489437395041717461051984379532058875960827462035179712767951469885123579007642158856239681575380814815189952980563583195897685463154069566242179640435119610944920467981597773089497940051643052678091051000971882163537138031092706272849974058108357612153111427892628855877704367502265819406650884919438534507974470867883940600369486897176388518455591621381750774282904319128433356601463668659502094673737871329986768428332175674768109013790998338878278989760533655739009882344593337381269277499878153742846142026975191726135089245676150433633254028540413323455656798001536121140017837442123614942578474775148468424700051559422258555097882365430916443475642384782331951049696774197505829332038712594574864199410314170110009670565625731080400288320148106510986083557562928154516680855370688677274474368556522425180655758858655496826656094222810293132975863120017637169844034366385014363659160468072574334958773778071890359959895045404765678796645492254892168587260024361440917602720026477960596132602091295107809700546445613487318048800643051426457358142303718598374084840658481902390221649630562434228802149245634462633553164953837585240223097903003325430682768068015147774556304241374080682060243286264747524711967437432599113235804398975794669903157164505362406545322921555275635504541196019284074940327194011188126009032559231513561331960042459830394285581312104125658579959120975663739799916241633662900683577626872857994917322634858044926325096352237069948710619600767366798647824525112614837986948386107611297283427241943215683884954883353166862604439071700547642969411252596791127385082989365144093008749836984048232580114313394857923498079196797055784275434293293738355411367296850090634506138431281900434344770067607731309493369461713236381037776727962552716417635944123148456642713589578884299247973302329950765334402914456176119430996893491615374570477200766275615100348268358457967147462442732667170210791036882469515310448617809950521133800359856163940295566154002104849797204665378479277069936747859585622572202265456350840719332305427873472500113537190864486747038362670378837888506952306016182587694126819412669027032900815763988609635901854001010815049344229734893370286734261154210764869237212031231774425139266331585905293387628052533568073228585560535182955335064828555538276248973494990712031654846199853460729349371399272343097245387271578289332091223428649281917180392356146122661625683736295508986646700720038994862682590222419446827224878410677337928085116618973542547549431095247239377818727795701555589334948979040093329376408739220635696639751484547571433904721241083758814716568123266449253855790716156278051781038928857397387134076616379554957157865426302983343433189886486426144057406360061590333022255149863359765014871551660005418809012615319795852281833515147716336655750733362439461304757269920365178564324237872581568602905234631906410555439925729356869436358664939587379141059958019050409095534454656019255465795393327283024010435683750315264341247633830225140812505299841780659206450080325535717632731827250260145188631908049677190655634736995150558189422334504908541922718961297488553536758220435307928764493993483357089573619706042523471685533335481084081042967920909959236997672193322690070776956652975231503765348404143789863705650681368923743170551850299283199786585651248403382351105086405634982001952515697648022067379911345546571335055828510804604715745862302989773274403259623549726226199454968783225982700532140407033544817263408246266767168462127491674299606117983228785536263142461683639927656542117159483715697914365764529522999909427357819185313542624207858383645098767939018255161399706999803102029669673050637904642990339928639499842087504599555606254234495536306304724193041356224566596606916361161085849120119458116322366594633133510017181632305769057985268101186997716787898732515600850742187239854702849272343843765059323720740185736653705052170958577186891073038338119961866749339960675055111335174720133135307534873191782238009291541202472313833338287501333144227163508615473622881547463258576752656169003243682869528423763554846694087223286219769143207369245908091387899678918574485849486766388278087853684168565415655075867540175248975856384666581717570086454272315210400445012810534161222376318029276383143079501383825476056020614628743997879691380214722766220424689622340338125473206371343977260059771550893890379783803068664356866683557548809551240233265276374109850976090429236874108712321769068374053509692797748883319091281574959210582397592471986874658695280719552064538901079786170076413479636365759469154515079716539637180273830266074872854994731476455536701784033933839753037518992780959952571457765881969614022765596692774215050369459784678850805078827183831962316923083446442300741499384213649757410778343830380573761967538258163415211783223713808457846638315405779226862191686815544469768471544171934708206981790449226906932005699929386279114283309106371003313003054705115170847851160172104579489664577569736958016846058381535856588707136172617553199205417566062564693918263846640136997666321149001103755797087370776912049572104413023771132895217446147825715492197537613790290703318964663709299896908109288458715359291169080064914620866694683126541415707269757019087988203660078542810792556567384279871982561310275853173356839802299477430848310186759440388210691948895510498904389746406665880093990645519115768237884412114769023511198072706116010482781685738857231568819610072086549168093743620819035239976090789436552284580067343269624977880166736523493341393031295198871122686914749703056803781602601884366748792453463750081155385819420389498326900397896319564653049846016633004897994576980586447785049818034515988027566762242011778870791674007034774082783613979783047065762774545653779076419287557008240027521904490629786136158160121855414495461724198027963540957261059255629193672092634626950949506417995631990185710384015975693835590459853781381829166132213542052371684263778819959371201798116080146747003491202303463444837871415107793164253546015494291134863058814537584200427500830832783592774534324169750058153738152525274365914197410004648324778961005442979488017308540373255398168880404017957635054532224200332855978827676061765838090208543794584176000034659592602927730966078196767038459254102747370605066876102899193606225198849077609527596490013844701902235236618989963044770905655311226085653699102550606920071834605189871718636739344477059100462285405231048552438659939582143734588153619813433382155445991099693810701213810622799986857420505482958527660506425393493431255209552867110480137423582480018829304010965237793900594387924366514564992407873174759724660087526198934856639317987036678773838530024337319135326618277237142989988149156401145772791568637804228599061232976720666926064223067794973099737875960055548275505709669060879071866537029446506186563469317231991040518803665654969219289714560149958453446332379946353460060114077952406444709452856690672552070885321688059847658075904811365681243947840611211382539714273253892289404682990803733071484586790416265123573026095199863341467097362541099709384124103316174518490545606704052563098815621479046662235612724604737999866477587805179345855681292522588242177839908353239877736714862156261397991289160311961497296002996613605909660431432737901879330359211007349048920918298826424729937656508179451924683105091081003634447538664898109180254160856745767295595147042549849945582866166543604344683037581835527172923554458311388330630889075819579219417703629930860574422579098873900567142423476307537837163777556985838285249208630458238187837561210615237879834569009417194114373414151453648952148746779404710842259673143404338696505953913957612902632505461754584463977419947314363906946891448992568737844484964936234682907202481358857323768974690208702923412995269428133601523221220301926991695193943367652792472651219855645869036376396317388909638193600004070605337234185603884931629459883364843080484539432990611253234777871668425449113050369728658839064857399596920239860735757799806853767468759322105679246060556071201484645159731278542379138445954303775599117074321133651874475490833871261317536498626973083465939124127963543883983386582607464242330441042553874665396014489216466419335209875781492235111861650691206307091507227748460473918243722714212920752897432301696962880550681507387516958909303090686554544869183044039025907883030989003452344344882672089726758877305681411331294409036248054255144326056857519740763652747304359166260535782967139031901626322034347993470121120712621037527633027137846417184775322423528363633014263835676729878259152822764477041597193059690343029635994286668576503244566877839184380795486870198341855439179946424427696230570503650031686868596412661324269762571982626844899070914760961837927652558854649320947569552756724536444926722118216361926288558487093035302199442852334237909121820174381018037286611066553783317778744946193468596758368263112585206730906978063733757303835120798065219884678066377469150923053628921566772924170441983878470257003170269876927436884132683747194821625733270861756595034774091013340613280652298632117882807953996031748880033450277802129271248181207294016159510594300225460511793538092484763201656455812360005470106265286504284020604679383231409945491686467042215397447469050194430802406963731720506066782200290617813029540471260152240874232891616692725778249791247845034454120663420768148604951983162270878069491728489990332763765646074247733543767041103752963857351477248281987196331813224917493112008599568046878049051687858562208379526882514113245898833334059028992936288362170750254588851166712940088748689985235196818318105440551049334184403015927890551560092280201565845343939015941658241192255501767911643453290379172077964987150249097694807008676973034710364359602130617806441691955586108340623822184204872779256447079023052772217097908820082116949322635932822692993550848315099939481392455807082541251631279350804622056065983616382526985023658990365762669420671920963520690373115056018716887873262597646792237182170595653902638198297578648612441057979100584664261707897148988297983002120387996787324465993282426386395183528306712128902394002573761406869871811860706453177767589444619792337204807928654423868876585513461114372337372775150571803948767701138856350039845461499901844884998938767968586445407201797305574571896790926500825345535529390099778105095650176201261318466078667767650604772705561925025155092150616826166728317802397398431722757065353870110092142288155932847439955405760571971207788543732517090957199536767449720892080972704894438999172212327334366366661838153756225032597149960457334458215644002231434535671113255941695971641366328326316226228047036413667107114497128253598492032336954493526677816873687825590525433269056268768298666906294110508689403069157857545612052870824173306327979846112213546475790995058870491837036405617275150566303479525757143433662717351233854580104419485485378914557097135162057851137236175426774389053368111675543176578162147486825691875784787094159533809358705471454365409209471048838385516660063585214541846749433320079611672059160939669778743021675907387572600494876368956115181229845053143464041157851956675499334046805973590820225535457985680196688786650724000374264739314262353275250554121468705423851460865527283764156272229489027397915728361591182920951874075403238366229131938022121533648168570990701128720809820230086175823513471209799669020440492617880854805781429031197647832980517136094720317745869215992168947772442445468966145404870376330554015113322460714053336160524619920453203280753080254519149335951228046366930323113043345581030128713578923880372634495511727983013629915504310626946410108151486080449859211294899543042660557826137267466705705582292857811073372361387458634042168111745905015670379073930603094365157693559384509132317107352011648609890071261688435015889640781373948000908528147629616124139108015895201049782256412384417925243879988352299443589552136815075280479752224845659748526403718968320618679045380590449335065784733764156625629624488253780348701003557214669395312068050708657684777950233376687694094809096273280686356993207933329235926718811619976253986094389838781052644071836955337584888624368433924226995201669856206751103848369897221955979720513973562062030235801147684213727390474989314450354550648678885624718041105232819784362199454079306395252770648133036532203809142863086844140447919883723052305351116833609843080149191435236386454400392072520958151745164964242648807179316946152714502661345409390215157071274867766287616261546337057980094231547141308049910234772215380315745078722448789092483079677309942101367445103227516421837187654667620786631438931361650558214945836019435737102194698422485284610097949300971417733718079962719386941465663989330830653680797314579008464272827775284142650503479623179792618015521643703295634974768683937297348616938809319211311542955214713483155839124189239172587119577086647395244519114811003850385063673067579179467769321424028832005467552332639869386175616218969814590956095687560447978435145540599667608888845840630385507611102312566793502299587504977043701436276132232590169362910334866832179048870888031982639117485953419028639732032129073027441922644972878461537626108313051085159695982605104931798653993236429664831927206012576064996784662532321006975427732372746905639625861754386974631497149778332456579778902709048727535277430554215716599395484232349719419637283863674437651920585640039274420128048018538247270384301756107033122068902819162329855365822664527168948989024349100726454351868982923643619098069918089335658590787334373749948283389401680863552156960552946941742986079658148686944767538619816496079718005612713580631610551090070310886165809617316385929162449764646736203060788483043223481177262976892004427788271315212495545548814869407259671716617114442920411363009137048043933973702116788562478875002378168977781803912485277614220376241460829361054622289106206588311616045691122444083791000119649461196629986993472385728336464154124143057170526206626771881021615489082457393487480164777800350182211420133748696545656722521587732815944250437876998730036637366749248876088439411584193803319958980845343106110372606612209921276459085720110254323211988016182987754530779248937086289120436126088209635419441598066537826258885573028548603753497781200387473359006122431123877121230362288624990144051467331591089291765286391148282522959134209467556169675928237551613508955892061186178550528195081278747216000831088260073685935583640680664561789017284044606933203230448322198438440507080066585112797455824155312498096217680935607019173474872310699186135440960331197810753345618323179464829978815742427246145791191379948786540727493229745697626635408795166344063632310522627776066610143592823771544085972587909173478322064244972133069852596123469716168208442929249348304897251853036489209752906119104653686978265333256438680906861565533083283972307214254863587349857990956479254294221059461149603407507302982246092507266604204123244891840777237296832121212851525499327074354640577098051851100116516298541171499495858886514683667992336380307835331006708101659505552189016719032481195832069232292945148975037930359452968751049220009884584019926317311338768909797548812759152404032094250631776533078677079507154090214645102346099826015321937892282457917904689826785497555140536478674202962969039600155123346255647884289452191484143601812814113637027605650105698599280503487048192175919153494334502303869634013209189948599989080712318176600718762703929650939184036352135131839617261388115394320822143461880244663413647751765885485417231824054862722214735302359757494078150390796201315579449422845461837955211455286647358597414908362545949619765654695481649346945473131475863255584365104798836154044812476273093709926803004611016914127779060137086042684599665661597359841159491440054731343370782032387358305894649792215916704090244187430357141291189301741060819868117932051378392345485236038181807493431736932530212557304066292932285389753476760708968426037029038625132480756337583182124497718501342743804518963450454529731046352256128959762414559504250503872739777763405272553785836334426912726876492115476903151460099807514005886171171250086990387759722825412658900641169333093950275265642408587914240230871070054672093308602357789381519456229418825195622153974506519677385473442889746551767191680400529798219352342849961284466677571018630195839972268608336549954279458602225692899973617133985009613472572720624111287147363577966735426738480541102813325172430203571141120530782805419699134995494238504632472139174994107705431494897248553005685794180352704006133386993924306536867971460656874432973419951150661761379921274613476218357249052425365555836806360840141630448007881149386417241842545194122446288957861897345808638433946561339416596573316343026887389311121915765722010897527843834070074507049464130594199808053391601986763677354531407360884988123968590474596825247445489547354039420551006758844726505516074851814462855774837824438612590189253564069240610112269446011092605966966979015481875207784689416614231924062232953378539160011316366470145134991982272360468003038961303323065174572524821984135069479467706540094839171746354955835061742365224117113818025147495633259677274192856353861481091777693062055748451243683744591760317838573042624541075346252961302741345537861995069201092691965006046108130071208642361815542757784568956814461907893743317976577579122536529118288874512211830433981423771149485367361326459762181838017645564144209855557090496129277957178155221228069973809061331141909805313715473756472854305296019679236576232495607711482868387784842277455690846194221447003508413813785011107312969555363593736842000612726355879528867194329801430288743063046604118786571206627807116330725077078074040946679510773765293474590318542201563752952054349797859636846730523563441268031818547766227192596997858789349069565697904155156239773723456720250894536337442396517501600650186986487543080699820723052945013793211802722203493141492420330517825854068936415901615592966800438566482812490125506916923741833686751692052969231124057097190196906019685272670745647415917001965908756753709839751013724683298778551165803074382088051451504896466485507839725756101512531911680687287265378150838468070349999251905189734550044336686160399867352944124726066575666219107498041633880316909462766220972110342732190730687441252251304019137140185788981143638262146283128564843527832203120590724398900797356937868944315065811140705176446788993921163473939818088187285203050828451660700596972237662019505317276367341304813061764430627447631003941198913480906400255952692426721080769010749710819792623980443528185906113664291581618478580212074505202942951920355028994784230014505335440666912070009520583853472000063471681328184928749827309629981406671231915758857790314540173858188881939072704826910591230312011034968352252175791139040598868589596546326951041350541346094472749184705918505222321826949642083201175381149564340950176040239721526758094311972321443228246488944606824371270564073443983461857591020814904145359589319925122056244509167116517104202979434992435649036553098169822526140432950284088521478329283378420218972949431025784792197011132354434148758164582008802202217883606497719645711528237394772662119118846607794056516739722879043104011476634683593300056192320681287833548210083958275827972169187191036163757158786214507926642336894470844610058759163300555791983981558794493702968789015792830891236928636294216034379167829398654661500863305715673212919641590103783541597628266611468151326306386662282723542502224661381096808999767013381223213658206669574758466047107426206951228258047058923647894995785226925240596909347595354124576185181424585195258333004549383905937250135555830544529477918844894027506414450506963013924879438840304342135195207536505542342870916059335100647335979246303265365210991793935355438618397425464565475121546270777995997337491168908056113125226158590132137766158235138212764234053598043485075394040790237305381985351278455124418804108935194974357375915355847624457436359079423060602223954039000063197064611211768811846088786960764309790399819579416275986655686491296557311217484180569258791720783542358668509850067631255406147405811314145837150911642968203473356919434238203708112603368122863113807245149229790149590500220602272691885084507410779650712991805748292994811899294009409664347095611418016012145753020407312462941144803490057011767523073497015755756706224231129211618497716430469874016804336749989571202119708634012754106681290316451003236508500504984976232253906989985556682806083515436794002392217339380739694475824423953892303168663100556872941244418682567923783113539358287903199131013730306325087996290975932216672941829130076582765538193029723121556793347764745421482540162316359464278160993760590706958508979031635189462738871612745288888991445629552413835907869939966049352951307541452220211115690499857563742770642425936769392299898391557961982839578266857793969724106416446393559011489310123437133422402952875599893687567679034486590642237429551198642051536936619556678156066876491559316505938437796798651584934070421132545059154698765528812360770920347167413932245733633971936332481019345059351378986310700748679706503899893161081341833102247360899058856771208271692753098886112758446154509706185296270071991996390889388355286234599928184083150328583649523907794106729597713064797601663576281305440734864999199356349310480365817446388164474033450712509211508033941997586923817085193780591033617464144562456564083442884129079341831562762882741206839419923267540861438606304986399373481409713419918563476856218748563292955146169186331958402377267867296757033231572797552654354601062361385628231911893335577318523612451557040991942190134054728770048637345639426888321095425259829379377972523316656136142241208495291595853549588862455659891232880554209947805933049013192249253588581707787020229441772410542525207458998207087747207186053353529111661226382902692617992793772406726307957364617460111214036417223864669604056891261012543474567886970796988923689941762806633449967028076854311075208240701541743519209871222147126836590013869180261875054239455344648643235364758712494003700095014177734562456241183567992799766817769632110403173103982402722974878203448920854864625987501754001861981703470297302192614116969439702812886242468046487627181989698038286756455404207114418414993326151371320035977941561820751823205357204712303293134552061702100238405143801306687994844714960996088038220820246038493495563693073823140094321616809696126085258371658064101224371464015087978901145850776624052501083350699356218057563157423834181781533425945284449263088929682577963057271724991879349611593959573261183046847175734968997647088797510532835427037982068040184283750923428054123716643670727287827777554261828822177460842066102881334820632285458838573912635549672413615181996883601708194943986590162816104447383105230066232178416680900332013182125492295455068062474727163633597090241888548240679192545477247568210227410734262658654593425234499024473096087992179425744185293601791930219100323901292314627133353504285067255248135796910256989419288504939258607755530320117241432039268120874387193526704767670706740002142780208032444702630349902080575087244360502030250121866462534153158345785790624786267293814081764493218068667001496006164749939790613439305973299038752949657594927521419255781298108538158003161068188344555362683881887205676968734133574937926982198646979495518587279000376712133338383999339750202283501049754206882775225962304790824301125881942728576313408858052160390681459004402749260532593702817218275643836225128884896899161352889322170682107591337604822642258257804385974106058516499386304761201427457425985432450076746007719998367186443163085491314863575505441546755691103456843633289204798100645891282631604379886997308383584471935003790120916970543897960573774641478851574916506430573861000915176508460005416811113201140528676115293435142390704022310771143487567575617229302333372653220290430058052524769032957944632970128562557279139200006512363950132073676097699020624754907384454020196967059499658128651694645412849535856373282069037109728940703961788394256345341342557464240512589584018911718364330248614374155646415936159777856819523270990773685943743457400965400215049636799599056612604136519761540630475528197083308342297840863435109300706653797781604868998470719455184749458611326424976392352910308826603148379851062350593411481955728612579805204164714031082273309104506049567404351836546914295301410076960331159401273765778539182161841906596256262253241283626153689514761238036507756728967987637973395210546350768715454543733897910153685920743664833783799964029290279254354437801476596771193715872439893766224007908462603449129214924207409207841594172470388151914749415783077304817345038320292349600893907114245065820805417968578561642163492045634667407473516434924035743377181334049173818546820425604561201904922181675583258255086440383386706778883933994675069201308618381831281053086548404322782328635693868584373737765991118553947458392907237002348462005380926926346042409833476025986562095840518477852538518527747269271911030451090996068767624514395152767915083158317746839593469848412017290607399981660160949171772533157661207695177580033492027413288388496140553389378609918506449715588862290075269557800445393769931502153505183354312554046341581936871132635587357921635214583474281769741158995804015131353311676051560551193299181856402608172847185605505710678896310764512810415798048513068573557712625015197051302730300579360632854443421234638811953272511709363246599863660736079308095062574624389969772770904416484189600352288276838006486069185009799412946816409512864712962343242539147173382372843160824459543759673913490802701746716764887919754884344060419290388373089946550877675320620198133786784501441805291862361531024978640064253540997643541222496160931885050288271668741248603898196881556629570065680901400008801252260817063294075760865475120153922284244095664021908278134790559151156526809989838700632980268725046146307287507126477410075663590763480074034852855870837631410773264557110002372013387310245453381164861505681406609110583920233897343153901517299806501018683384448403017478166616762664982765622772488613810792985953904750773652536028378801591760936533649885572012550853199709474392808760569933260045913964200495439887857160248495351080111120883920241978958929087164892242521189864580898633731592500996778242077822167173701217699211912251295499702157558103112728241504415308021003757976527690517642119684519731721449717432875273882829031814447332580872831528375671504567520670599133217724504415599061249247265008240642542537370009720851547223906820693270148417078131005411774385643138310932928296160531058233913610404343818017298855863896400619746821030375888934074703543406413764213268666085913101221860955802851914082393636201473568226511123476929175796537216863388705821587165746325104886767826927051938973730933975691010447084741374343046995072685974291507064947818632898707087481493727338989181808178242940948938583855091969169727223614930134603498301691307176888779848433179886962420086491128259979391982736884888238837932578247119884474853602208183362488681828084756658966218982705369418110991908522866445435629479783163172955323922221929900584145853979896849378542263559725850105890141882530086162867030151477580099815958548990222373798495978633352978658162389769736742005247890501150473972715958130527763028464872182310526154456238158204530759728588871353157438178186698532333410754859921093629669706753818032502404511324400766671995125680840243902295239738546577187171263688037425527082715402280226051871089451351919173908287850822449354828629061962442114517863235913167538681325333176942484973344077063943010265542280440646725971668478660907910535259144865815141766458542935312789561522924193289827099852187734439852293241825781335056043614021334012162097426695068550436092143116473784906893038451079564128311700657605880586680475416177096885876665008237654786358137361971392585823258275191707640515454118290409288438480526757822989039555210813481802712245526474393710094245154634310915521576662229589652814451442694216285106040435614184008044517069652210636498188532091103114929612972088216783348443245566807510839673389179186671396719519028541061466852462227756319611556940311824569953875486799696464102656282184769503207825404989712642256409741206288085956298456214765564375932470806787556271502379330362166475283747902429523921867110820390317009975344039795279674664915928582225261680461369347114972610020606092979747994444084437609343652773935342014120126147578140126125649009501512561266522117727575790993107617898355993616686064220435515700633511869826467099502553196421179708669507093823733732386484480478038632882206870419763463492120197288417333142858193209865123025711152258047051758731138085992378693554810464932121878669805459264697379499582954984477041117284843196889824155765165243301820382581092546284373258702165216912181109568417377847887549127665457636407585411217288889083558399246613134211619624474852424855634076578478285125369132576792177040546905165703919559557141396027236312952822400254940149714634786602426192886699461308529951059697124126787772183461204834071871700856368198546464844682380412009464298713007079157401473574535794612244822215601622741168199761048095483040183587331511797578715569751542668624911411324084901741702539070019424932467264291889074908845965600758809226258568528087353737794468259161047556812567266210543660583912147348406477586996621011231393995348210957650911327509113898941212074474638391299796818613788491276103788645286287815754554902935347703097643949117377650100410563588094810374826563979708960710077285798434226130615748715611338807959741848776223639259779989090176122190655086316815618676641007631022447899998271737157811542150102054009285667529148770747864907206260135918447314772834517718504195047994189645517232726118297456866496391062939441172983950251729774912270631542871075146746272515114550832645866106402786835718864376830570535583672618926162558215515183645558688847004152152907953283714834073762381993835550218624754657187027777593500920000668161756842327560944687328545653965767976503135940393174729564926407100855077909561265286475129739652595575463118136197742741106840847499489679316965460642925063545808447672612884076391429963186759425875224175135579064245479853280196236430158711462437555657982892380138088344759853628800320258474339525507835453350683732419248896973116411146705655404689353547396182154038535460750768396078141659352280329675293306232768031239345810301592641753108903499017434018046666273618963044936909665226727287037978190665635891923338184739056060122496234130622014542019770733436283107283151287616889278827989307453543202860380146703139100406700910583644499770760312798583665399884618940655781007146744886405877149953093435561053398612871046324080376398706851723896212902756728405381783857587142664014668785727233548970837871515766512471835627670792685700039845931251980564160495705155117620646185163442900684526223203593640957097137718801324028608249117404146623078226643755671260740853878622650544980813107625213019070045052761764916055119107471444066355098446294497852500842027752828747759087574701642582334989414883913014669680384166860880291608088602471767121196703948325634485826378441800909026864390924516203659047451013835429683031236877357115858215223911088774956073210874863471162871662621595687859151218698216240145551244675035266266609652974373125822014910071044747752476421599848952239017278650220520726677838911029281416327460324788399476483799764824932134213363857983445632065918526547984375607431147044176423996797371502398750415384356041035108898939979796210368848175091821759076081216173677820502182723094808779541347998188238649339293563875367639250210017995491801542121832986093189972420374370812247792104916186038128376998851091909421431481260803726442677054897937913941648002087179545251756803014891420847315712004769639764975815745048546256820994585532338543784258841264502383213749025875679962875591937320085857717133683114238978830033018377308053454519416078754135985915478283963607896352618460735443500189233008111451054563105672883571525221318060617229856099244463391730728213925967215547942317613830106054563843239003994638033058099310572358052442854950004933119997932166305059849863701891102838987955572391139980797603273960516863916396895548467700125560321586857553710165324832108145450645449576746850913394767982352691560587972302754928866850363075019993542224712861291214685561804250891718984237988173484568059079874529836412590799578003989650359209035054745191652616583412122893205083683415300543725486393704040872536772778574693987280052494547557888979401883459228083561431196856457263838755812819142818679030419405988886143704795324581216181518596907240994547159282199656088193093977959745587471453488948512398048865141057448721838828546878462195095864078395220815272482672244537309193894081318694709214902747656672392563520099761181703216232268583155120213207542471936761006827027625425571492810546765921230452306974524842252462131382378869151737923231042450740615585856314759307796975208041165791841161891691674869942660858964962531280437505159014562769244405579827192234881126165424797494047807140783969213017632686703873809225764994778914397886162172628092423469603897584149748637508714718955485800312844795769803744840686559904070059518667018264660308540606949362271608404298389944044393579949361135088978164477614795210055148034465169822153202101190897313081279806745369467465625508985111506232550044335828206491788786615933333477009573646021566120168669592706321715533376047375667993281067513746476950516193583284786879682284994271842150477953924262026291159220860234413873360060978753429769615641538263317881921171033717995914305315791482521168171743368194778235905367204724855957200457063096695926813128326251537985992821916224944938487658244909262648884743474504588620025903273571105323819422080448373570269823749321998300319846235622400814008395068455167780965352402690265363255201799523143121377772488123995099196797565644114218830123719201327443917747966290976979479342509124135750366407412077152488378821037636283542722856752949186640140686207085580831633516873483922797862194681939415405831275328673597638937989786555911169363687134209124371118712117395126441278218857778858604454343307641380119736587781388305671535456184768112848652639588296392921064539096221042587505594123878818153325622648270841392061945376475573243884784767933428755980742543141901480158737924280841427841377149671499217590163028521383652999149836863446136696641453370245064677386038997852031366707946367425067077430923394438944637916895992066514185845279598489990617787785291946712999222275191440730268528549694646119918345766362001947024461368220965079608209406000901620856226009722270232101953655055438369211328093282111701808577281948748939590468176460458381919197975023990751369456996767843795244942142365981614400600359320279002480954147058364594362209185649502934393566593240609772256239497625076844234115566542210236791000577085505233344971423863067871713156373246702550932905228045185126837787432887807179702041485068449984681509005930852592552103739843969250104613306999980774600077441432757197508368165355908075989371608100206612827148465808831813847874597621061741401921042169667229270591074186633422230781756433360110502970822516613243490008336752125771003263720229872301264731954124267241437626119948961497229496756755116747244136587301332106303414865023768336553839180206112008096369178068297549345161090990693597209630475002644422979817938418166243098364252516992689266067606971232022816848798159521563102485439916277208119072169933930370712377168637344677187009277031607533123067613841144490054942411821841945403785437145039891106725788150089078172115923304007441713082019826295710865974555966637909369614293962783754668364838475933762475347586535803083421149341424672084798662544206157450545567170172952043900099382075150824208357040543389239447338125901481202608107637685695669530679721062310415792512365116198083990597968018310214137208241011009960324543837754329682173000564136275816813470479818808320587542848436189771084850602005358083968215253289000965853467821263427184581257170377631804259036032615105938305942463382168356284996746927068917025663844841771417656372928066992196431790880928288008431566454839088993995838573155866380651392952683299022356514046093810928668416095444701832635584674325637131680103324692454427455458382981148507430981224382691270810019505213891621484855197546110303916931201106644047024203990803033836711846088368912263735032364653655560518452082016274034266643732849098005598709842689024120286815663985291504068593669402162328528309809698670261612736914158008513322631229215052155926615771457652818770766153585891561133870786449342410102326341298806851567455685298827415370005670169821597303940761640138641031697907229047760183111542606578495244680374015208785765389338353616137270739053441831178863354380539397225787573547660166863198478902392028533310838518087387103655335049029819080360045038376229440632246077081175948597366214701792366179347980569866286296059265143488365384165236877246929838273721230346785810227530295480629195970317285411418791655056414252535245128707373742828931172008190109529130811019083829634111755435489447817796725143233812124439210894320767820715331482724179583752164695078518493207855307616498450075313503565012884701372452654088816687417864394079422838198091100896110841247834587752552237528498473834055752455508980352118187328169353164161534607004910939236471013847435956606949947379702120749168091334087265410599158412760135993425012456020028811980475426652049891855313501474620716937634707969422204161016752199174322197452556113372638764513782379010768482140314599333793540189397210830184481137710423698545790159777426412496232295562762078591396776524170598240740153019419124300236675374321821913349280358504494579848744051578950908750213451699065337331805193874178419928323638910084724299723218248527968669047004754155549419985280830919834796759161275947913715217083487522202452584851406187681719552836707756744119192442321694968359593349305613064274544713581972271642479970220259498027869466146393409138844046520243428338335243793375592702460150431860558962208345233828972640355873306726799402484800495056006724026940027368789808157919941183266245966299369455486146920095185231791054639851693363921597296572708206046843956192117064873709705700737824035833181108069538034888734885911542262622357663708899746263042636011970533384865161556492548876942380811999667365148764987881276615744909655056355154703477816902420899042018139290181194873702586113192716517176561742891165050416539984683166108636620028740442050955497180236063085174523075574614415659940618302551786389183604720014644343908026168580849153416294618323114469395571520965026828675156262620592548266338489207463334500405232014182321256056294203767092871757869586201464170260025958693743008286728084158066509279248557309412022296069634501399725433122595883891931804096143238802833267535410454448394554936847404845186992189404583184085310227518333052059789221109093684637565651321855145042247855494557581515949917589029290944526133184501720134572259791747153806822258827595946092403722056569571439617726829981511603592437141094083064607147865298239072692486406079942288869799067246533478567819012736323478547213094680770716837075001383893598608659952351938344912753083224923369681725433053181714651069133389784618956746054619201878167176539658272240265481712965771070734805397885647493473185642305570786894335450427462019179962116914426600961904411856597081520688362510852721024449711755149983334923360590308704519043869711845395556614745625772594599235597680063407775303077586098635795224670968344452011952622443948692224272301139148965662405449853715816470563820858179504733147955177155059260116574093487940510983911779105194547671159029777209474667658594574290695499320882970318496088986510003720168986030711146274396612105989131485274217494641893883861866598434545351516987699690632055037961661515278440023704869265918948384470720038639026145675185792207123698887962511977566106369981415243899975103649518906951313518253915294797424902646005876775574911552619386345183481163603964020672298199045647431371191191176080248055042878639147234913952456597804785826288051677569987828414542395673097211137534084782045209648014819757610789214551545960263644371100869843703482173685571011387162240145039274285775262805133797323564675472600130802566414386367399597665064542877140922648552901315316208628131174206849788806663841767089931066724731895321158883280736767091391671929942773672546945260880993480741667944763858766450575425775708110551855154037840172552818375946967017902587205910684223707419896318251807091715915274800701411212926931951103564556195518381320097247580011230070226341161850946573712113002914940992263892907063338771408492883087183298353729431685141000178463596290644225449644371289914136753396900951342735753153729455156730408164263949714266052455345900445123926922670593204924059389817051873699325565574091262805618795250404680837455084348238685892093961062838337657518142352744766099543912412886194454469605659053648520372714208115303681445576763688341804635320529248309716071598274028681798969055342487067814537888228371878427084736976633120552894446406435254345375431191614418640761051863716503819317416474956113476776537690339155616211763437047614009993564688087525780238321689073189065958804235989738111845831691658570662377298599259857905676304305044328364063839454582685694924282617047549868907280988223152739631288701433249263515568440532565056665892961965676682922140743808587803753851419398183469786634125936883952939666811128876880607858173525808481867975151088000852264863054721191209531438239719860956326808736358698511295205342917446665987845410294417227914216970788695117683721127840156262437662892898527522862782392447186874952786382110686919435148141491833136411887296475092732647296406935848516786112699149133258219781256184164698964374568279706302976233456698453729376286131390575950468235420824323326673296329210042909134181220289681677508982048813637226535965598844198438588486687567701840095616012612393394196906555503636922724253393321055655779769906117931561402448762153365282592182821883129379237645082044134365633214304928340256522394911338780610382182688037326407260884315154854746211156646879569248659386223713161255707817907063329532716927203741248446252782273549129911968333612646391534932581323286778630617208027114921879583099941861831654835999413141684628046015063663574895735242454194891167191294334946729430496428155428198979002974296979986974208866218775557114196180835287981283260087199190366066925416246768757408481349124582225253965967991677554020044561361812778273857477148152791095361784713724199770328716406085621000907898905770765831306971839362723943536608496943109485509202426670520076411094944932060780731674682560508697271148680243149075875036684010986672787668031369882577835910688137571052918406630584443377777420369008107146295680618677674500648370206554924177711658793400985205880412504218041720688710221092170961087846904160067103292912568931338324273352627959460246956885976136670512366082766591361229848265576533599935388665339093488267501900217811383401036541484778747803091024291718451627497051561254897917873709643720160627878559311830754036634429623655053177547957560158335824115026479777308216125242371682637960034852158333804006825635759379831992492597707984632668444984718307452176521828586389974654977150003871070309589186787388185725429152741162808184641291772397709349566946288162417327060781095327974276526318584389221736909168570038437547905165006834497886989684387298582401828928801472821995527116005505565464528621789431541614879965181510593765427689555439127205268457694037806101520229559460240478826622336926308525693985184815824088822192392541876744965707428419181539693615286003399320135000578906740300101782483545087467647966109810289612871669439797376882107589709342651937061256157751508485626939426131528926332322834214712438870608145195878352743441380068847100901895085995635182636508278959615407241335764859030817598706558926598657992982000775113052381605653378300862621756802724700462821095680791134194326400743522183440722513704794242574593700716443168675857688312804629876492778114016009417180636995082970971523143467646003124680960931361942625078539958267203379860948855147128751976971477971631258096422557007991229004826825820310809909063274783387826803932465803080545788086227103499417270150127821512336970044052833348712278931976901462543499180396859228476684030375838481183613274788852980791049445507770486391557943370778920182315164341897728819135024474229410869573349674667433371375310931533282345314641847443723411640958669925980293222151987587783330219723170532522343666508615850636778001538665420748597792614046175138444369873483654970574727208908594979354404184706212709001256508003099757858529938782319729722838116398409891498019842704128148959010202105329846371295562768193445056226381096994091153196172444018517333763777526519810402896718254731445490814744339346675987773655095165738252883383643542941186112574462937956642229978126994599030664707794138566363978308425535449652809180892125085926701261394955975073556565546039757314950890074378344269059040852024546886736983388501860780884981482693851636468289315265798420867807539344288071760133791210088143938372669329486616221053507302073839402059015680673312394733594905133382114174128521402146600942286747309769212840863238216684653777011728630478202587128794970205212597445900559611438311195983302002694264889282067346974652860654281744462449730524927905558124145212860158640095425262118200347016776734392528640374932383565025996994312382587913572316211011712583063873213325831380727169296322444734483135070065119887264631481232200671829661960940875024400069907680042867156177830716212851366199498944468483768010315528679207915051780206638322163813197945705850312507196678577762602383483785086024136180366036087233405469895310532042048880135548612442340827183795169185821693577316793768341630061687093885059779617502466140905902301150016542850747700183422435083412454058111744114697310558516972565631716318135329613076336538590270640297287783733452306469372815107483556681894258631383648199536726522801672663491050063614508037779883804278192376272740418777421682413728230857764449378612943961492703450606923716061062978920906761585533789844188644532532872406284462583866915956033272252000078318189459444844633510107689886597467383810797497678726649896540476673286320530649646047177262320790835404186619874499627335663278612071438657843422733760192844421458016309192919886734839310568770128475157204439034931969991678218434223115208909795060452872265177080506312583301637816866747012772550329156919555507828242687051876582976043217033568394883486559922463444372197856267140475770544977322152775991824654975837523060773799287025867636649782775396045097368003438472181242710865200625211699042682483959114114691814134384327447117330078397804378738716861333585541313401393860589932423699549707864112634418833096583488893096678387336230743842299257642396701879325397256645850544006051737188345140513043317563155747650842403343645861921017430518544066424768482426138897445544572444509168424036271090041291057057715419634601938200995361198818554149678561083547753662977614277118492631520144484317217946431452659429148601989201311966000334062868839682890823839728341892588699326963110005928706446840461494108713292968880264205199332286765754616761600076941966563543706236173816629519779156743848999584386566935400134102946929885932105770974718056872849628225791535608552257346301838139152109415189973768518310391659589622081719572189233657940516560861658653384255038897242039603092100154773987952656219827600230656987442120052153648886510829350629790875059742235996142588847407294773085163741628893686446038482360647270174755357758613068085834118709827657511496468487015420528761660866763776995254867270042416483814373573856789961466882805701991299367100711304536066861404334808768479118701735434644435630913069612657747921111235092564905523624765729971861071112486077947368710498190790180013754837927876749715764593320535214606545789359282236110804170501358522591236688251983385539340463779245823318526950909484384300609045846294475992801842431022753693630388234180028917438178326115902621341065944838686587793364219352786341072815543164385310247695195701118670630997899384000331971400315615716472682200677550893946188618403294814259145353071824221875954888599431694908186213431478447332286949744459480396012335586239477406634965078307067819737131141543585641993472839090195669464687633407738142242054468496115038895070180462350332878421225026805209052824112739526125531446618537039083832250951835494821888662609459808236111142693281096613513759449346431527727267973597647850574700444110024512932126205318700791051647661810467821830249108634963237945221596591855845986398210029737197436679067402901824270318966291171918590985903557448740664757024388664780135100470001834677669888718800617105701587647434409714824309539293635843278622143995485297356948809550977557612676419960117579168555239472777462871368822798473015273805891318126412617645413952782716139477309432962331453881757566284915471762507486428502170092759112200455524843334050866739700499613586335975569411006506741396156980031777662972929754051755277647937026676128582925023972825499862145014128749859009867157660208442821932307776087588435635983237855210259503138685602703432497873103098229459855052842644276554149152130705599402837897655334031744323163104236738683141233831320814242096108515476309843583675367951666434262737596208101826345293089902025878738563621587742786245618286629002600400922413642967931709772752718900122594668377845703691544168196940090205289429097680222542069403665961349802723150704793193611282257631508139057359650472544566760563268003546457789605338628833842348583524202282854994915317477450313665713850862801010169038193158558155789909860515034342344285124699053001989746284582850859835045978688737773306917064155122555227536919755193142271612848167497536079757576964586853215395619669575360941932368859321932084503150193273361827622079766983993740328818317538716743141903170334466271475109229584494143309798934369097471214334379559213620086603500191323656818767728622475760053468944389763748838007298181926280538918335505177340181589459964419570474523691060961274171897323229203504111906620821925318991671818020987645630142805521072705282778861576062197747142387645379114255728099974034975610126304389568778181090523008625419398379249383003606042562954552224317159017740022205610802992888305005132575258702672330793671678575737052316352860400262604814588712721573319701535923493721101329060596587939178519034762978286363270544910876223485075417730581089510065393700008132471093890406049232301866285229209961933850054457604385985643268463507005859200689046814430251588460228394784588692597260251984747621526151412019517159863062510830040332905505471721064443391351510100756008297476677144440251471040707949480290374876012797207916594037808442128795553142717057332545410405428408622651151303999848899335543381270750193037311130313668421074709554731308785395625588867044952029559637227653156485632035791147522478173704924495981407879878024296080793032605888547240059105776217242832014661551477523028231005869925563961430203838080615916115885317542593777583982040156435071667814861941758764029662449590189726426855161699253284149240217324535131524200964012388585376198707774651420357052025043596831722700451898678228907987471543476356961800165656824401283396755043060394843847129477335877837129249274794710903397019283360155258096525617893203015557892737631643485479700078552664809683534312461249165871480284919656328032917163359715397023243989798265781619124795480338929971103052033146139927912146283811861558658532315764207329238630361293094906452876039176227796380495940044866818017803915860491939611488348904863475935059793618091612963651211245677774633385649770380116867964373926462403652818431626239537892991569391626134461017898924820421454384665671668585400050510265268515258895633648357777444098888518778230724809299479439280471078482887603429717895020196464009193524053217212173829573965566929484753674906037728960477484773923896926046256276464505654358542414643599501352438661145177995035361154418364720350181497972448703173324246428591765303906343134557631946847410849414745908691395883408109318921723445179273924005868744327573480026370342034639692924988053359025999799434186725260412532411729309899327297901183354233482606058460109165488041389366154979037974130006863147621778323240114680886309999026570479702186524472670543521528391423862289394373540340199484682406074090184752031478009253864559964113580706000495990988755177846976702214038968136539771148446632204550519981876952824360035312321773021551477025723380822567750084644898177147572478418058980138034009481846308126761140018732702469738739557632521951012838325162734788727989313537995162077633242796127749242776808253412636610934706917486549166729935603712273130668300169942687047925158432926800202860838993549286160437034117018643728175753960384446670128531134124551197466139352993721599055827278640360090124555787789043853237794740990088552286120924487223617702149662718264907373405726791938916556703062177399215361111947481469590348214927221393639426118408010172695741576195740394403556414591290848394641459206850147293803386501342527998436230861522829487926354280814373820329895466666313982895001957458497873591730617383372499531138618408742844767331858529846919499715901494509799577865662868675226147402459666888705536942173262784300564156489104968681623637362569523307517306455572210021628660226641246102500229862838444896003944350935771267042389935827149225857638837261063835219225060594349584280241845972546433284872422697032349972826599494675360151235181998755560426369655667848455041488411224676227941711028129835140847951546341493151334996463733786223180136659157915003724462052108981084198128511263266262222080891571318467450288464711757200435138559630506131297300237185993854676527394054173427082849230775205290066829716481932692458156320705931177894737835361156287263251972412512565040623640864136935081588918269119679525018644785644404185501158191241413498349784654040793669954505786206114619455151800592032727163402390108621728210660490226568931522465343878971650165417145598867617121962267466125220684218850940598696665888881475892873126266685193308981595152091172299825003080792874360985073039109555195100899587676185392235507517979864717512330638673584172214995095150816250008808112934947819455487975325982227619564856501903746205326974864644787213975348520051387912473403186229788655354341908082177782743867651998538638293810963682546266198346118359783785127371505422157402245403934832622952746055334597460397681541924816758106255487426336152884014360728728132757414492848278854473283032007746302590323279242855363051802932361655301981139516042753815550992708198751744604498969664958946513114819396432281882005904934612964185819459948944628698020097851824439956184406055262588184094127452179658703840752869187437961777941297092129371553270229197692915719717571139818945052743274636736872802329886366162020697005604806844156700399925678416387348826919552230583247287596664527907012610025563478296238107125575201390970017617198866076763630313784257010595293919901755069989182622944291057194518528980289716853092596635131163435097792647158286779474392650296709834466559555535044431749027556724028979543425924997668190432810103563270636704158006807199920532720191274358414089976935580442377451349802016748291130152620163589762297381718590489893809201416797821177555426736560823065118937744955712708607785649883153302863824866221433481689831062468967577589782429585441793746350036711460676272619568034638708576967475449971900208593295931250043680259894168622298496944033090737580811411598013799020796430809672246148917007507111986692373563945615008926212398400900771769378007478190889753722638764773905289161857644853683517778528687895667697205239072582031995943513754348078164599537621981688462703187510716617007950416125197822934377849956199103334706941591395497017101703911951943630732135242738706937010570269039392735895208774368364107907596826043201143869050846518429582254133533197066721442011786325095335266631654637590188853242057512644966809285608889851506537807411838384967156154303625876875055509656235171426982481335870054369910659272486433006230721261370228958762402806588376515359366421528921149055028435403152657600227793329597509751916388847336124420466013570382628286884145393191791306075537151939658786979446334972305943478957214974704704301480287825785711088359302718978601241857497175873599922381850085396883465096977299521711493154279414898858586283169751199123125176831567940582499915068113675173062816004643979791514222859291965490347515600045640067860790484186757955951965207643226147152447857205801474366076435366842733684549206008779419666065427742892822027683744627606150213819213484168723040402264815049365889302757726312099519828882159944176638862980491868997954495494716121031040358982987004897281937754205570140085510707159938314190454514436082906242261747208336286297796798250178827346328845004655230114062856094339599509269601722970383398623850894207435657903921787162387642887253783203986785772360995450817944212748624305835049370536671780657298566274700065356311123862909914532040346598431411687069084711327899627478943941551331043776345322015005332574187579919463751234869159382174613752308819085156727503826290414641987835669448486737989106824925439417452263277757619136910946782462784225635455599903567720203162477908486374529000344141060205293737772997692898983562147763362795624632288091828205436787022732135694820829665269689817160891010905257970175148645517907408405409765239832703570053397033700207150004147512602605155715098550076338076367168863943760760288230961172374496406298227179087004809302964304872939574822051661125210689425548129911323178339862593696025418870269550126472585478410838594463565081796049849882960222386495114043658392649215159417615443342422251215234091876333776005311648914896305143316346510574123744543831858412571768887070137370052488435914145896128289840157658742696824190815254492353422925489590789872890259428159508431719741326012800125639892041215012459581369577728974727212711379544928450465774694639872529498299742978608080827504870772014287235139638145826230732107230884532306291454821919747878735845220679889426784646128911415380210393277942152239735803649025039302724161249925820456093110081040945741753269107970704049213614491676615751661933182955410193259855300314323212576856534975583702285019493179973079639071921629785214225613176497086724926619384570289573412558550806003585305643055580481141394498414825438427644318464991488239406972301300393433357400471684801359687782895252756475488733250916538654958235002331575892440939068825940852318837383665016853965478148584608881977091717832876599944387879799090385791899567942257947663823458536149821285362448349958823297306443488927353078285874491880124649621643361040434778962592622002623944422748206813024013577795921302650730194740131107965862913515322699089171674640877275564934312850894099829801183764868879538505961783439400765388131120745786249745293980965897727527939187713252980159984394045605382855994855992863939141823407454404343236141313971258983846962951630142269235991905756035300070964992177237601668251548292499527016878065294293979426099112424957984076783274703362344367106443472879679900567671034062433228637734647727130723560068577706172482303382517784043437341156624339611262330048373180425519810574010699644875488026973447897447946472536777345452312218274731160394072612280065527378773076145364771432827053125259219225388989214007481584070947857641479646083577943793115536705862539246394429286153278251831346532497933446484180860673365348841750330526826763066170350553599530411786250372807108388441063974722898017682384992069617541407516446594692959644345594514342524763808158597566911619191300914542826156629500894659570913547533279184413029384829571709003373003455029506916815996266389131311291174359823866722499811239139507122641412640101689896291697596844693660470440435348634097720940017819757619422885001145604768988958307096470182234960140853522491775008627405644575043302252811672629411948006252574559306226952930015468276695708331360903704975739588795146531047423593074017885644513594999980532985099519588878095714277149545042574989429313388277234197575622381580329803303484257788820507471956374451587067344229061040889925008958093554900320429089380013062405521262699481714506264391168808180088586616789380532509577272624414443515147364553794818631183895193956974639470622399175846397817021328761960642787923593709389380965190968946420219943149718668644245269086494913767597515494043703157961658951456769436755633829243729695026642148975981428513884223298201804115653506315524484746559293873119776611864477362885871605821359524733264549339028501953808031084257767865971266608607319879764291421343071305992007245069503227596378164737191497039480822550910333847934318227446322086013907519385442051248337966020968729634345054193691634997742920067074144591887723071866485702146561780934806076652822055544795552939419251392878024174072318063732755255782582839875479083196250955038403639875329129242713948927021005952818947624872725369657576040453957630640206901700411848989788341194168497284284633401140701665933774603396625489079748080682460346798584547191725414330693043612316449010196966999659710806620021228940096239725192063461433317102322790116599272292724901567739681076942387771284799335800911493719672747395641674065774667651346302088579879350395059202549546295336910389312639245270457192582327580650557522583139371266229952886666560434626720471088448638065915779619173036106105734086923120313977951940457183807989462359859275631581560013562812974590071042742809385156794419337121309525092995970095605650309955019471054178884087069459779572891836250579910745698693373016281808672958906458028421944318768514911871191445744911587001021197594262052051875589790576226801706984131216258442443893888113618510136303113078154211692175593525981471196995700981479247656379612008302283403763223408071577369420353046936289937093107911581183381939734964653609318017159419198706500917038732388241409531269548819036718455439539015969388145755799194961179084796280626309331293529458154324538728841692296209591484016456632267614402145722523212535097437773929146739407184185100196089044713360542362709450682889878842663899877548533380332136605867780943571248905961081302656407743914153621768856830655015802587683108658534412499952012293204604457623425092255297444430383047036117172918427541414174087966004534216188470559565830360872774313515615247842358932167817363818400067179606200593897942046116130309183943013330892183846662162749014648440104307930338959027060651110109318854502444795316856403164592393349195627310918530942106528252187423014581228500560918843865082235155088372407187925953416207633480990027295181507017591744959671132701521325722719466599401908853662418558552559378886032059433520909842255565255269479851734219439288046808332291295877083449727324263347357079869488638243697798623145733419392083306083868627534683305912239469879327378171169279899071860123970978017841016510057125530101364714034995830306797150416445567520949768239222717102531843922304194278930130194105344536449049326379529439519735357297026841227857293779358445845442038149165526061510515460774328235609148388212717570897448967916392186771661506644164822750483509158165934159110362584467629324705099987412613652774149263831949514737266464798020908518482078219635038567767270854135125614879967922625911336195425345669696580184086400473189116683535334136946046725889713382846097049824511920039248904930005571379441098057389258684349311664268909155888229388157043582531841279147071905464945943495537838805516883702991149518419186176977120445131811028635643839632196135677265904605493890029666185337012078427714072166709053413831749070812292235659795321544408734718073771445887617101082175551321978220150066124158764920215497062523084021913405897243459938593074001670463163970153966544756365414216596332984822175024234684987450496450234571363517398332107850700920264681293539040218204806574021441394698710224267876871684062691828831536389354870543423902136550091405873559147709548171682373543562262926124502233494079893522516020325454928579641098164928850794263808659167935526446038379574218320060174815692065083864315754465186824126415080213790563961596469347357271592958759997233857257706752110269026769912181847284614854354162759055558403277959553063793019604925489974186128649311527251761715442381769357410278804788759340568824075773628931088768013146072951944603030812470768606647392057187326878223723464504189088733757604762533922589553164839553528930335706838328980871672349501728901702689849668762593812565613906164207525944620366058024238945695300729084124804200255130268474092498398661958424678975587634516885494455144207017972427631121075876851667204125902718604323143323188561515299275706384705355761772129573926948199521397545790944674675214625655909082856391020679900751257061537904597088671710873004531239846246216012478911143294429428971775317075184217445697083549105007301279990507505998478489745743182460196901117256225869537395206306050134560573125249870650301769833492893461116805519138462681487261011111988787331201963110958228990878098708271556678983152916138917734545879400886415188585774409185714413368547840844968694398210264783432899270943528640848641658722231878282126847165879730814581149448803340992950500934768647314130619547107823498678388820134601478091949761829797238864168181561703757335753122464324179613669247964743886111780270939229417315829438623900245837870513498992849885836942983096091297500662392587532430283524190207728012059975439608753597365040430722039793140233744151320861919679778187220973130572496025919032745899185666934890350961296707363331119277330786512596546462778900621578684945329132776927661043885341014524235268987400176841043262076269398863994961109296091922784883691051840194507821762639496509938237302626305032195097381481286533685184865033580306550351870287417438389526988814379565978377818222305161396713591706042053525520194631757893790117367024875088018108805886857545159015805823607291299428065051786831547771626965229798478602079767347155982353515822734827789518807673801413462428565497187985911390821626057002893835974833222823167619537018413385320325341660610473269947006707252353469081103294975710554574076846211037710102012585667473756489757914614150911013776617202589869640064737634247115980479529866105013751610234178771310193848916341163399455120052104587241366951339681758997061772832099892506384456667644918420333248695855053923034066669860454969310679869458497362533766036258119890005102344470130361556231280247691038699664873548065453418529154887624196217233681548387290312903080956859582230220190762891302644757710873835522569692682032898441359043226936970758322052561457041699488335073418462233735217918719872902337711250392295033371556003204566483931228837619554378341799366385242845567167019261454993003812537912396162955507659555813335119597480379289046456142535658014367559751492411959235420288972817247484622196337018140884311155393569402649890883245511023491725512669486406945482037608241817511476574303245780044123702333387283633334361062596307035439678958190706969974744335083002031570919966236289853927524581110238979139503048811680585156437796249808367810623960807726148332680185562689352689112731048641933418437221620044994372397277670533786972744636280124197303667232338511230703787265464039712742407684527616211733067441564912714981554728098632142310558543941563909590739691513305168831087313275940432304782709354638187592622469147484567714267687907768865988841962107851283985801983384248481707679218253129518731964462074443233925809329575418989001066341056428570675781917714680583900796974554527762879099107403683449985016365084813191350501479905794435643264637890819172334967228081724892193669379406202423315836215216300122385678729530229706388944435429825535015292629996171554478919798509781745339794468231661596739572536849441126276003873833849288997522307581171169745936105606590509637504587808621831354012031527140194178869738173305330080002595784650027224317344189558700038103185252122411482082266619834456807471654325936413150667062479490243666719609623245450498788278600648007905602681896809086478902457478875480151167867729728067294156043890022114767106265373250629109750135962405199106201686279132475159523598768289265166750118950684771059847310265056656519556839208541080913611219528963927760009780053561419621628716069205560469004057827929073292266261305099868834644761958673802161904218448917962258891359329455657051893056099398391514412799833176680523045135512831829067098315754232713533771946595815432698503946794140518157528696829465717170182882538534323297858918889745033279240224136404612045360320678187648337476203187627083442525125946960612746282107028114904576206084958360959139611399993655766373130363887941427106122733474558003686618240025753836175262678382341811836412443317083470859534016321088392425787082134200296767553986852543506761974695221468553148492353942113805450570047273227708740341398272854523815234732073527990795006984899820910457969741518909554994931529100553757676108971836819258276698043407922784019231043019243120477869777130829814777564317714692575374053413172898311750897752504047725331615471246899265034501191356269550099633422843646513907422513460836725268995525266007627993515981271604487482078982218272516984601806842666011109749038893405404752302081412065965124486083170516417438235376995553379189913596027455345914150346499465515084505458910473706029715629909166675370303196740745180870981420676403264228113193461653835703426244842243888624038292482061146548368183117436447342693921387485505512082616082293222665638649915925012571417027569680343276546716069746246694079630584241019833610294737545962030764733569667108486185728675462358622581973328665599655589213344186987834920555048293013410241023274725611748319914997949158184468936417428106132891637550853297704353512354962392101488244355623659953609010524084393139532667261034137988498857751408870733167633590636356838062133851473561045238995945103581676842387357015432584173802739226004560791986413864777841806424148894888745247231873175831069335132005631127593911607462649582575197776082639481666368559988453944324596904260455532813200512173479569316894403900953088696737048061508071466205391119460591044764784798735702665165179506355217428118937759469688726383980089156175128778889009248057022160494424296699400831428619409177933448134126232903179349038251767444789756049205310808682061265926382500160942941612723609900396580440474793759389790176773679366043173960456865529642806254719230679277057342743717573034366981913783274713924445708765590572216437649137880778701308839248994042724430981441214757952264350265602930803423776807418728785429482575659004753702635086252546011172264143525191570162892822582841289684864835579743446031692746458697368176481313246495317686441483652081358700327887619452024653729616072750545267439350110493729073876268381227010251791155632933641451724653105796534171372285117774664536027450689627023253743906279779797846674733550226924547535041738115204606167670975010876799012609122353338137703374352997320740666165223728443031110346996381083846030644875548700371694972970970581575892075922675861212988636287873407054139678632789924100715916168644804699192997887311457570348954436821113968374066823849913533030698494740524357218898151449492785949081368591338785392766409504118951160021964368199184455166466077990234415005903701184341027531185938291645203608297401918353289783034716331448544297055214014156260376506850920911213711666890854609042118105422339263487021333865620471163877175250883187879849631491188989990069797210973038895364532824831963032661004755337644184895468004567401452548577086002320075473433750414198832194722013965418447440196574066280777845475720047795750858488175830108255649948171119445573522858269462553967683847618167375984137789402081935759057492494852825149588711055490221846218449195422298223149343679249427237240590943296461551087993259860507269931684310005923732025711114380857981196830927003918378394368758294066639197344712717842705608507571251920668109320860589215050519861903992980348782003908105734284559269897288798489864039318926725919414076293700010388915660528714189062763190241420023076194918798940419817348476142254114405001793478813757894158603546237265551416011084189205338751366574118208803299927087318555372107979182908218447987609245228459025274665994743464339695805082511252740392537394820269695646181427764398679777420417062258598303179304830164514157309792791516238091673410989911908349453691919655762218072115712682214155923470054981739683506431201724090838861872892470385523259172765788799660387224966297904490950637931380892647822419458236006147119240011562857898570276966564506843617598771089663040319129287785795286172964200606704175581799308129401836457129483397611339471889579940016543516569935626317345215063480734808920389064043941130120518318572698990124503253711674898364255615626355486219166217001248798374014226866708050571150394690410246603242629587238118416360850488237183396729074848326445768719465699841844923391753684962420043851915411264472106296450486336293931836234689649471153574679187796614679522168370769934981068373664258734663335023527884387130140895999329014233396149405101673092440041945532272290490112301074762689234813784197594291472422404525409772410334213635843365910737031873202114426905785748822097058393583650083415609397931927410262014598918537019872864364412823359455880625729608621347724998070502641935346540363561689986044046309301078906453315015512979489896926036280944568690281607465194319929936271951941311975655961552668711536847489612782263150154231859272959409215399851937760960397252908473524875981594337639693819860800423225182684633257466388355959614473549710394065619038532630816418112110844198588815085324184507661272674957123136731991509171011084871583490943063477282595520392869377609180286440945384687526038950831568947351699277307169020295610190882714417118313104621303636464630210035596186387329797200303347964301728459324775632674433594152545830042217837796665797675856299063039235752879458550725681084929667018017366504388641132375234980104930810563784282824935258926146270429664519931659150175364471304774138634841470170362855481795849859312260604895202414020895125948699485707673015941980157501725164221616822748477216329888252128052245903159799599316318705311833671447636019361352323722643072082144986308612662457849476806967914881439546893934689404718082644786717227225781118525360323363714286604938958098039436275837999828544092988056198667277958600950404945453140613972088935831951464335310319067586258372112158808097280029849855716824360031333805558363845642322122733471841317393222372476512901834254227019932624475672856400232076777455179724797266367972945380791666276296298287750360626077982276164439824703766214656732058472489490927944207263441235456150755024936748126051590207610889193593388384832414591009473594463289395228662946011014241776989087209652560713063630496836954266254597300631772606582876809726940496387806706001719019636632062354745611798039342212669222894480633989222981284410691990240040547403148735182941591365998316697218753401699514625027049652580468033004202125971812619047882694197901245088664253869764241074506493411525260797662239119255236147642352092657313319671889026975652300295558453835091897572492959925985832764823763070078147250122978169881822868616834539938889449845609728760671710965625715874699033102342762126032363023884823269145210813778424176499542929996430917438099312018276208193491930041348336542653144755715918948164370166695874493614943217440681579957994720989548420780422464094969484676812965032884031344615194301412697625057219418776543997657179231298269604675377033426318407791980801113528393136925934854005536861039188172904915560731919873009272783760233465485368138962845590128738740422014673828018388916359747253003073631751940553640378172768369172779700927412152392064129710358085134192029604953573199391918261178195069637380995188978206596217800500916541107071550179135902853305738290129982513062266269281492268816703382953872875167807842004181923469082689165471024440136734723759039865909800572372545541254605842476401814777510756020934587520571642487065943791430623676480170802567825346052103888338366098568489635802992719427825786062647766867321330054059919733088868771900204518290528242195169532328789781732779988063992339628808898516822798523538993510247016156398940857149787407228841394508255048617080399091905665201062020829143412173409578959372165889996403647308341609059446470698763662268074763883748972244968015097976821586659467574974052229953677992274143151847135492689413416043952478431967566872159626885233471229225962535625266344888858257924901511212048027516399772927291031476876999000407566042274584852371221469339572529682807568059958952431578872982335900357826802754087394969874980533915241408224555778577013864770091122302261581911907711592046793112944982187338827453242726911223233373711822844297558266574620316640749473324205024033621181845840083340338036006624448984798235713489372791844849034893267773137705049585975632986769876869305969097304951720052543822566308411837981774704086629800782907163351870981431390489951117735794181739722557129967908424805468674069469528620318167304198930700805863254435878689753993991886004537401520811424321223279555332239856739781101448746409363898275418110186915700786721449716591125261909048264588244042021181312497671950612151647921240166602769441947315339490037786088817705731355123708966662352843369506911251887171861499486922804997808447437601879273048402501658954614971601317327750900476225828430443271736728594857770836628690299663428288080713721348676005000250287599063229115655658185789695845504296164302023274942375486718653209659739058483886355843369692098595836511165504863686564186981474253805510752907767136207436985109124501474297950259550389962272533518485289949853947183166492573185494795860152827026716443773672603504739143040553041580953230280776993056166960364086891752064725004024619685636156557530630125646196095085009138488940065745174349281487045327678601257425739183808589437505289170967936109020280309368720284729997018963740521994781894695136005960399652241579108675403179833682434206609040905642529053626849679872375211720302286996732530845947899548012687767128454036713512465667504682927936985454914256176657181686845852684809541781631878267250615918996545151365400578710289777892151960286227054087113818956849455446998619057061268461641136257853087487532901215344967017361521825501116669650626057795914703073683897485455053260511584708087558304034721078010868115292654318210021786248036093114659828486955982834980106812564635931794731606162447825709425869122788822107552075907352974890884127891712576007008000285644690813588802722510390969139772854988630131583630517271269264455575164097787950569122395961845024057286650114773303264182536838800468554336138143630994078324946466623313056159575478550474400961109415038878619443170925659530260376678785764091557146578213731555530223120223555742830507174158112481125283755300062783951060837338079795867218329917999199932195754314509268332581095867349715590195923705333188129180311023269108478723909568874511051202679577928223651002575454465971669526102263755301144470870993301694119197301127485745201418880612558852820987020237544122770768615883180779177483352276156396705694828671737032322856498450992398364535740738656210040272146481084948306062076880192564649123500962426894513581936421818960924469349578310938606539505797716574203070319823064516642272624285454778674267519130592228559379816265491604389122204886820145011581091189425462167005934220222366785407945318078321678070989350603044257819638303319962905580172320702788092577089329734190117989543938285568072300688991606387249355131799124080466974769698205838344558873372920751512324092256700887994495483972904080657278664924488629146867399643447729282842701257086770137109886588151303711629695326973076360956646968197041831878124419811138462988346710295486150144364306338292783974449786881690251444891595837811867435647999351565648062736316340680518425466965010459398401280478477694005524122022612171216764784117229012922913657289578097868005333478318887801131668346732276181757540240809029940068753121890882960408969568400411287515126239218877268853328271645637943165255265824059808481640716274203424947656354471560224541569174553127518530732736519175862321127521240582716186679142245357132798214098377844933137690325167286817914772934237709809373338763224049336121292156511861366869927343520369253208678162600572315335922878912740401890338477337137765416392503102451166564020400549030765143685833831340517490360067102091037151619214963580227209931244788183956905438683535756219611231200523171957097192579291003395638920331268312416123807522662493918901180983575051432590644504936042253294571696221949194220779917298805583316374876819520833876157237766717754486167015119385691912535104069148069354714311022818832382409874525731760814109237497741624615646556451378779770392345592577074768898940032400588202538464662741106420219664237458860307779953313573058236056344331637388567576027799729080101505081684460654793208131817570997288042642245580330054209001025987567336174399424251759220380384674322973373247107824045365731653253170055718297171449395611312532444953109962029560825061625951557372316505231606089976889133015071831491186094007072901552991459483374806518648435774669981560692335188129943578165668146876022365000033106537525914423870555768934613103420757665972102957122810397059527720890374872436213369825160438030059082631815144305150136601315764413299182214820117587950384224551790161686035168614432175772244139467873957751507781944787021301143664393795472727949198800275544059087038183020690079931770894844621294053385860228576189581575185147320354314531187381080149382135935463559371072242361686814064902422437911035997114598637976608523678264112903520792452537005507276375054522576531878900963762756782543843881440225347609754719672746895423360607684929110445821949879592507454915473972712638695901520008326791946169393031867882639255033318664414647294512223567855736364109501117973530142643370911154080513207814271421325800911615408022617011285049728766418819406688819788480115341925969684408006581992719863423126102662693221984785779859358800798157414020364569306861497442548007250301641620445668356527888070418569843471021461550412458646234594632729875533435602054182239243000415467260132372064061302663423569039990098174049809714833821460532966169103734645065835624239705122886635724549848593024195746302130051485131415927714483046285509754910305693611807863315859573240793044342901174206732605934833415525372056354754300780507030147002581333738457448153486674128586904640221296199311209117045160941625689369516718062640874615734422635418240058287297562241326472699609018895146564919553001266290679216932995010289982839709025047500308780776583579770678236342581399592527485619925191044334693078424347956696392583032474746660250887240998207046495648878423824947292385478597345062396802387953038282737249570995821273505979126703014926770716413343293026893170393846041860302581863691581248036039478275103644826856396691749464934276795207996434133567722128398610128071912261570032810636314660676985243930366071128153373867655379544256768502919444251656911729469954496167379417042778052055140753327343199811082205576040104872241331006947785923574170823151404491703051813679403998228403866382923640767321821169380269107612162735567957872638797094232767101183305187262370888691263150780402745723712157562067746000318965193945259844665549871367908043881464248877243782084835189004597599478731423644876436451366869950756681929639506921502319751237742882493712331704073847636740074762528925393957782358396079882276299923815888265321315774381373578632312260530301032809054059993378893931293020719299918356125243916015510617434765744028476160270359977598402772253057030527424850432444333217570453226803678952555607471044645041533727828198294896471745216850619821754435866874848666015890445110891644397837263951718455763816270733637876428889343583162142784283571420533841266862091215438419239902572830116796875815677186082556272304377636737809040999984492061624123982780018783178019383600527228528185069916681167065316970305004394501137237419862535443662671956537578908445958293063561099767212715611585199964272424225455491066566860504048359419177608079503715448475342472856716688080772583684094219268328181717003561391285583591870771204142862373390519936465774512535526956269908133668383872858290542306618034690581566310828907933711740154256561192850890312828310513886948557160344376703189167424454694251894694692512916284727545938204225951667951570977477678750138550964557587803518085451518208475001064404646965112993117832277765695402672841470744037419713320007272426493935493703841727083472859526371016153468754532866783907935428353304561145052532804250143555641452920750734898925960074605614182030522761300682072706689128995823260093610149046138845827220485526145659372627717982545364442211174258403450887418228480322164858442538965103817952777419406912803127682382647504436584115727474112954318378852034319284989291005459733965719168940826211403657927561108040022621173262894646995728328645077845816241817690237827776093327717569345571248950470590041341764631861045956942173606381874826901150729041648519433277167899837510928531234476374201159139806942710759166306130517121535811641448997552621504132374628597500909442314388090487358799570649546677365321042534317748031938520652273514732206771769005879918963477797633357628706978109450025504093183372492236661292480402057288691484730254079394027802066536097687069520077299254218718773186829372672825128384378264797934769466817665831663993126757884939906801311524437612150147170990509078626843371896597141833176945519770973465521252163693533714023246649951608754142428553306277699428802728747841804948476019986913116422161302966541436826220877948422263435829833298143720391065734254183818965813531224024204057043453874447150717782072916916099545609700398222941715171341736832424594201456123588653044163700997911463779618600225063964238678233725508409680445124826788917019688317432657743659987395315764945074176099428738917923284362989898805046211741312065740254540913183650750110182596274476398528658149289824897953700694609231644928349012306364005047337123366529944806845494299632312646628247524980973008303983581306160665045588268072539660200570642977968072402618885478474571659778537438214140904542983127646308758877197716738983983091960637029037237814199377732366846407965470938153287886133959477129208538592736832210044783641659027177971867154941605136801210431294853972838702872439415071616216612919289192448405049412705574041835819357635546296275352788171599704368846100729276292754726430743010159945658013089166226167160024171892046112053773332175506234695130213358735400783576108904208701582941040573476027355038060715466285732670601272943787052837034897997563304402502335223787897226092667953892907738828148952859887998165650296700804311929076812728357896879194858025369382807392062291247235220515303548760545797291552405836506173036162582020435021433937087877242639630373140498394017489183474523246575815615241996180273712852141508589605647474095774147021406821964121718837182471702605354120720190912592180720785681384909724576838340603031555540873849800020423719081870578130542053743848494536391930255976761603925037490692698386816047660238557425928591443802232264084399428456196519494198262173289379698355486835810931765104695506501788696554085865622677014271666368932097271062170375020530389317055569969252567094642659906097757344047586839832255355936634737711023257063452259270704846100784365521824261907573350036623177129235187453483147541647017838525557457918330161380888295996292295638893846346381597255421177463229999417409230013988294562722740683676073689432786644014414133467907124742604253601054678671353465542283976403910665812606466552268232277514674871188363995517055982913479126280487545807176446701247171160252326706857838854199396310358176238723947063456066571122204555015484058831198753418902338098659415098670930684683909771637530176255382715788580088570976681736307055600713740124416577013187776055171391284069075650011890626836715203625211897559976100805626160771346163544372045755753269831775894480417387396791753110908728183986601685273248015968059472353878743596031228988151757416692399584455140212534739065686044926879013805725963691018546662524004660232443154751578486258886188328963390817465436913360973604421972020180871519846710680679731889291110282556631632992130174669224682890322711417839392735401765106960723140048547712969110439946035380997619340230300740796780097145334884482321047071391292155071286398110701784251978564290519762894571135931500667015948765495132093548122299788652637196380264986684358985661769538199173511107822220864672102662892250162757691056542841955322678929556219818275220126041941858151045458533716113180909152982022214654450308276469702148881950367359140081944896130411982588031085655312444958129814114727382530444577660166742814137033222196574119058932709112310982683763221453525782271909145689086273444320203848220290050709535719753792451469323243321804092475980046336310934947205405578987442709584133490411226883441739027924637126187599668366415299665409622794677517258034391520102246039807545806033312860215513323966329335804323488651821334761513681166869247008236907997678650627097910665985960240936660004122133320041519303442783443976185897863112013008065626150416238789637318102210438939479319008157764921795758104123079684939579977049238144988229428049833729132197743381686326089256866445454729549113361675133704639791515751709647042946053073777141557665680555032863102407260349020631202712537328615208784085444729042704523082514187637009952341711221736273012848333400720512862511792334496083150741637644516185177168886317915048067447360219339025754353912127693525416772717955804300010624805548852385433405665408668276513753910825665047165252686794720433787306829831358210235804604837935665376449074260195922828665278028006892407343040623026974908950401506656302209622131303932472499802049565019246633323188436839940583449172592648385042568765737694889563447969078290588899643910057947240491968205154150594690132909687477591823784777887875773939311643350485465252384867380624447066193917845720000497938286928760538559948124085987342541730034336359183174693258302266533267350340032107328183093926524495949432059127947871946641840613404246729390325779545072332595195109237374509072764579453060797260959300709711883446014202731503258792758524284212233632027937761756717822177907371119130132712449205213140634231168563710058972904419737070569711865747349775414424059345259051826330451192458360642680893813898664355598503425405238369158033306089564869778862578928091291557387052737520654157810488366932373523014328582332115032410107201005891257187371863152873390096081600680460264310044454417185724186405204477922441391053804837388528993070842264083030227534557047976184325236015262451929077132998616643005093410347009133251128410503091929903915730867163028749175015880337996719585455507510436735618200216350926501889704974250810551384878013628202210072316629487317817751261360500268348779225164194119534375939622625846061348575559894114903319393558241517628204272734716337844472631682436417946014272971074501119611890822386149013782721336020277494804115933523562533019945067193554533070363721691224310722463057102505287054918247590630644803197341106249017100713225553027247393711851947549624205245640016725118020555617700906851493851477711098239650897884061850484795831447672176994875168014864734439056947889552080753196009466598565565470717477850954619735444597058166081815876185714736587777433373954637521807401528791171371836279392253456300702885351183222498000196600051670376484972705674594039840069762245726030054449486139134210371202644467394871557900490111671316851796729451239616989667090152393778336860886595475624081284748235115121558030416409535310214280094941847074275295772594537454114890191175200104771629125301961527350397409928096121573758757774884837786046768027113861942834891827041545335336868290495108289710830392475527215993462023772124604018188662139040804729602655435314825038246893700907399763552286715032650309868606641734872821127759448787986052749753334199687811301116006178870412557958834130174110385815661742066837578105323919492133376156404142595999472918291064741282403288446364822574261289984853107770110953542845918360190181255340268786937121820937589230749385428750771497392645146677218680787239897598799563095757371608806563033943746216858275582589598047810591261091227374976752816713213185489019099101345483276563431153559939473910640937716606538264011906195022381742969566954306526208750226609418228384410896550737187700899753422104029378227878517055228898911519356819077622240726954572411785348194256358711480032366527805096578907584703433717732491840889677502863379150199389058732381269943606979077866019660337018096770875406024381057508704350202723713651302319696233042028565053927863913625438801653966197066966258508000511036482033586510182576185257417123282468181765865336284398797431330735390038380323310400592934042217964948921101558754617802804950330581310639804738721445921136696546326685775730702486145221054276459997077609404402215125665521990131538934414299279929568453960299014617011746943422243540652804416566338478181769479471332860779466755831651306110430326825154072892502938107930511900125247601654125897412046212173234653662051575133012355339142521492052113188064434953610241490103666200546687972753397773460790112145807467043611400952301199276655860851696714137465318863887887622362227650133896130362135664480353829788024015788694716702179833790413595688344504510955294029316871369293589271648439412750035421947539166122202916611020650233625048788245693651036531946950783253665788161001583166389626138668157763477994891693045766027184643281166147138071176128876647287414283076710617660762350131808836033631716846694269180215982643283124474050794374353812580790913037190385609724497445767383496719677079778699741482252921898565814523316432198100345663124523951697096244574925574098285627132026410570837552473155299150355935255468793494303315673593525163146005393420922832042986589248026128946231031633218352660281603925056703577930280072159088971453187467750157511446531285317112473170364743597440143597310527046888737710776704920083779385782035328581879585527226880280763809756555715403297995355405549633054379855741359891257545264651205996391243061545296869444612049323758965458881819159623016967734443426077235949481171083111916565471406244069406535073317528864040455427250853802059072673712489403531582037397823569368413790290097343893749020622619935708644743765320899697598147913959746921607727627249392979683898922386676239091426318814435956422777660229160883911477425612620999873208404223297666177708995601375083415286664863363649117141263560125949289897587893055322979066068628133731471701511476322070203876511687902719039410183818432821404027440339424798545890295389612637399367202740418740961285442310995746320207515492675287907874095611143367572819494859669375153971882245962363023895696405970167425598432742567781608092439453537745352285626905312779541989643152106994094306069077850950502412838762631366631576625084049963687138505720544174660324429048153834694432231379731570049338211398546879519746069185920100610821171356700163647964772694344751963747640385062660894700783112112292696264893793640483070105849605188635544093026285205883027264148368247995769493616967615497929818470850133982263211962189413385087675071912414603410928775114317794548435277751278285819217301585811839381553473561550024746334703218043487640565312114275404289345036393738331904163592551097557025131847292780474205473668364583572864037819435068559673762719693317570939204506568589242875753752188032685707772600535656119109614185719234666842231240776876224656905688847376376282322096295696835645517904544961913336660502113434755886872532256744480000950156734507030815667027214100609428859048697731600844351173492916565298527688548042428359632334625408591769919769547128641218011245962495060041071100318154826992894280019463388472422326411185110434255920511855036597606141171649256212979453861221361659216243787987995921561630593581610740657896161712339253969709965238466484647956564002405767552524225103462174837030472735629024768260099739490361244035071722552289542928158355287618057898003948822246719244844678046406041678366767374526961340836419237832064069145883190742422456529295952887223717343185455407865664886211067551768516081362273679290224017649036372975378148943649303315314026993219658478225749318114849091929061275898717432263335534251717628045355194352308833907079209433224078194317990883518218393688276239976318566611888640775029377088196135902882497803706970682809423032168809212924089244921559511458643795454840739787635013021035016114437459283905966740723239791759710806368053245794518786380271838645661692433322684964405196488507097295199444822979783884181702415765291190411315982388649823096733171747195427289018191050069586758637741321213585996369783170815361982251927910745543557702377358563759946763836146890586614472187180467746233283120131760346475859430026770899640582041054112664812827102540450054490730025411749902304945089310545459611995305687524633418530164542937291660514401258053971671191971337547320453849276816440094987769137716693838965643740337100213495073548390110701576493021389944479031588649294307615036831341299873766101875820245100819265460267672238712368959547607291195356368079418171780097366672849584775006407127636613385210030915646875187301865400690500568680777603590479170440974557955413413386598658229196816942713799586254112013550986684456626787108142225086367072705820604385791292239694472648057507788029340330095826186636019427815379569387516607214518363657113043412518089570217849074592573146217560018568703578969756166356613632789758971869338236026932605057772022400113014988183899812518818766952115898770144182155950631349283158613002261957398914345465226242312028258947007020441500577270125120957990700488019961820101416761285706676692836151366715540892912097140370158099396464444896347416509688869147551472326027028233910957199791713839817562966132452822097870124382174028012627940574794749539145000594067411920423406098026167244558352091321347910458329700647693067553268499702640559664157582413662071765416377080484348998294330471173030114356648266157681849767612884477065449147473379591446964690486379876572498811327346665250226662628400852136833087070228140034737248493038525411458394898676505677428756275966919670206242046827234395353305161061193146066240722489022647473527247599321639475092989101559934173785390062730529905422656383935440525668958372959801942242272888303914753290648794192461785794843629799687355292958494204377610898474141623308206190516536242568026079274330893200938622160414288578879338024967076316470957287152338534029695971707805139562575145672772672687337465447561658369940967411399941445850996904962829960898940630457954186489063875805604526203389803944640976608455151603717620410025465838508603231170137246084791707036768458337171888419195348986219558786395972079401169487822294850663920935576373975518087283979034289784492417972268793627993978235889929181256212263337038188311658799715007380931106259393365477854280642389901886388738881058037453807992971235864435764451732626275336016828942331069703750791013880517239136491645200488993879895610588349023862232039548050040277717937713278569385374773410057579928888541583008419391160904246135309036892086679060971843325845339962011247818543098130344308364845951560406829220794476615874058707152213586031730430970014084231821059124764400290003992458037180063810956624783005989620133244355082004526402204919350996491730059831938930789612523680698036243502867369075384114657516130242415886396924526388238447279526394510697975528952032039872688725149138077643483814562853635977991344733593745639680101708316010118661072182199283656277374022260808272594945849626913180648905381651354579591535485337442372934979284674413559354138538951919146038173319486556346693052519790851403587623392356659301055464522140166893420663716166618505362951463503406842086937916142171462645648424909596395075895414659720119544336448075664927691514886413609581650351549868592525494121950162444476110532449983295000777464700879774081329933194495609450057300171751932532821515387843381804663402885372726234529392554683456970499895671114953505905451606738879421407019698506595598236753026460786885758367217011790588615573710866244679141860282609142568503681858492826366292174333936127386665523812662005969623763022103871987186607493519158464500368683906170005747962795375578968425571537537296046383521539210699622708235776636926961890935259098663277540828691595901483627988735762177766728638644058997500796116917183171904321917042060595741636570914389621600778775153616879304569739383029000765572203543248089168180849350856397401306158421314475899772127701093383206240561029912119798693385929975806591150687373886246813184695205288011652688389842406779407453968886040174651129690578077276555253740588514476928385935810544869080027055638654951357162385313843120511465685652829735157811835184407426293161897153349942843663281609155991444557308815579594883942310700271876052098879853181216773731090560725393369372492574042675250222595386535997882304781532373239376495368116944179030397096074455174741066003561244790400517174157278515817648224095948436493889584574484560855116098607651742333162356157526513958123449219763398024869591569715600292581292652665157015052260260266688960799901055958333814657217186044593853179710088032165794559780020341324904368397029246858797607303822470246769878542224031404353554690355958734605658922107709856716865220644501056571086243003804657380090743225521963429732743584364191679009560118401329860596245022240068990665780487254216552188156664083751048591204495506471571738799380014016784622807001467439854541606001585929731047263333598796529815436883458951090933673648282488524810800969022695306045761048096288494579134579758634796745860656508213330622162452544641745357546082008501559862563910395277692935454029298607301194335107497780993790209074289700407579287162690655164975645696693361004589927904303989098264942723166926789355270085800435548324338517725131598406922110215535171834735773356486150845331102333723930689024102083448681233273813214293461553513013688509592335665166374297180132986709183801267406020501541391690334202400648873585390217119764870174417608667499871585573701614546079112115372462023092473923018268692196227090635149214316146231240368638438856398031289957027434300803459222597621399433597179267289837328834853049018941165943944339116899994830726680502974519247490140362681476709075483763133396446119257481801939931589071907730396203127013563310635128920119463248487262127556259466362216247017722671134084939600879667168109822986700488835591319219993520704966108931054045833031770558170863165156795829393170597889176618930573820233676402340583394355652625582701944186008766766027022166145212355977656197720442760815680433621490629365061391472791246715528148073753084383372021160183136038218926016145123129270842816759646204822832031871045755318314498055052565346408116271312499883343937475085751959641715485580086259909778344730009279542689876229821040885646414284135858059390914797808767079161867396229597954071009789827578707283583194616285701571814223485989937639018191187955435179836637053509815751865584520411990465549069943661709465343466638070835889885256759138399600234233004222695336174502168822625057891547922428659557104629715908553376713698879685951887602055632404564629268582240642238691628823582528585347206202533406794526257059374091261012986467004283591047060956653718010959853510641850051791301823181909413741128259492287981697396881175967345026907750356697372778284530993750834579317361785993622144270256654503124477259455447687055441941860804564275383408850903260673857068445353223323293948818235431472414846497451689022599135669966871659885681849725443915391988810415170390274454343976696277899529181808719727410487985302653607830150639849751907821725445796122635678740717109897651841891269262918725765291661476075363508504808126540447753328502041377564658659300575984154849691077997543674192418157857604458613131813534464713971484038200101917634962424466193336922983268923773095900109793740642225788760322123583454011304726270338509102681697188536869181235275151584219501492655763193337024312719968182681198503395893777911291717725462523659864323545222913668923487521910791976016807838094556100935779946243282558633922776477619341719819098473013433890944616011528254588116795956312995223451653597839171281890466278362905304949379743222622152993809255300665395743214054471082660877578607521712496444838502903145386859790948720991480034262768987840751758520331271321418069520926233524255250473815557316550552294140523119789210513550957781487208958496143677194682333238563379272724636460610281113957362247258813023583024041605341895316087050569480930324588304028783314151938158453358992998658137571705405157638031793200116062707891906033357863263872978132623014916803275630791461626010780206208037608556179250783178070168079393602556344795425335624804394454126639372273310418048430198193304586666775243280612891458531005845367431119491618799964670573127397414713917117636575262925488837053064653205046964341160521224292757935173036947656453688267297886714019183760921308297859952354682151232603526775781217416332197956401930873544920409491889431862158308888780555225846599206493734939683351137892636283746452249813608450162840582888567106059207831746396439440666769806976038734947501026728007985924623112641797761928782522616549617868939871202882516340914021187545630542359958115383043438521597731128716848967617849081151884636238672897913801484881504737879812635844194435540619939647925750032438879042402624083326347449969070908798021140799239735576439270771091826038761405839425953820058417228346758826103005327633441210268323522234860109276089004074736507165246535032034000190886941222306561328306205308657734072271551281807841138543553271729359111561216127991922684619681568261107750870238128278561705650220791694357932750693637641494367071439905671730605922428176778876966798107409026130585596913241423048084161202108564512496731550212535483343349392976064283926256735412691271576943090041262987107447603185688407740223569788937932282829936201844717991477326006129017953114661898559984444644647927215097864057606615950501517531539591785668294211089376881619895440184506027016304878979811625066473353861531115882000401219127264886536015214821361286543175947413604324366534359221542649428147013244428773664549512333123163389206782214992977127920191997694140883473195479925755234069678083404838602847563870036515196436080122868103622913053738430685916568213370428134538533265800884616177875108095829492604232810283384355568088532814869615813813812276884972432856292547437854751707082304667984321155619602546836370661716322368697643627080315169217261141319580767687647715884638662397027720646656170861438001090449941548143468540085105901277498814900908908059568145195295730756607894549561429628356342486641596456667091043021083937509739141416876334108299464991699097784311072685660242537836609954211469654842896535593431860906472925446196482729522487240059173269180544892110555078874642126277673840898004689718467214967771964978593480960393235580464057432383746698848929865808264941513743562104513180848095249620374613031521595142227914312787277226479961784815776243738827392862503860148427710966635238291969057120260335308766658579448584606852998701490976224200389718770970938946664435508126193280496766350125093833930144042160343193178734241085954390627487257318815824597181471365953134019627280165765185144291736266715143710511190841154183445986832567757694945416126098243446780701262795921725773875799681864708421634177493668582425131325654306127749832029550385702078243494048154993450987896093264910203996543397957792315774339323946605066585352458395664716363404793141591185706607531528786212138071060770488594581219912590896278823585580396855497512227761643414231975173815554985799220668890794927186384075933666978049371778035847414643342073860312314091757724324781465833213484759972677607455039579373059811480694779727320569533065065862572137355134527594625426948902518814447502514766679139434022363254378480663911539445172107052983925380366492451605979333344324041126214150143634815267503507471417820015027770497817249590474488003277571396028501103331496316176674444243199451372163491302548333859839673152122959928498322723956254023468061598221730230581971809583186088412910470969925763150665137780990079341396581303954369582613705900912788663482195886877691189635785372864105515689710366512257939411810416329971663952385548967162175367803811987236627517331956130320833373142497296529441158587022936387171701106887210040174387354641829929664617778505817085606971320811189675174543532886394740491054011981205105842468418647532953688937495032830637583718821596307633916181245003611401082212002160466601112315485687696382184194048954617977874057072393520056680725343487703834552636021794695879684292076771370511000032748468318411411487455733476777799082388419025354888580686489940906638548279197808669017411973365668674656152698945104512365961151334201656058443276194053784536461243156318939179071938192491905899389387527580835524976679786599256606321904372847494014488376032897698143543514244402231511414528021663983540923951916840287764594122349240739430321854471724455833525230905235777410942910941732306842090915883766316187583135658895981982146052722388586147672977898685114961795233770829634113979968307437102103658655728804616642122807371037279974149861524759896004661511120250493462151964891381688318756629850762087693557504824459794880532305897540903646226322084784422612249761661938657882250761842960790940203796941509297926236082266473166114802230135863112664147798196800766276101275662184296081845370102871182955649193292820054884445844267987867628709906982553876142865530434395908996792375568629690957480826200430416516076238332377688892185871999843824712986872290498533331354343702306267524549233446207720225561988250051287407886682452219338452782282130329564095980358536112517346629926312406405397842300241474121226512700654550232197212092077172640650299991405846998159401651140929553124244384167013390826392568356079753794338712896080190311881893814794200328527861829076506895017933543421586646761781327059460965644059696908973221414695682976786552263188333549301350410490827874430120812256577656789207822998712853349340401187345906218347204586999215221589352655555125851635556492284367485944525815267256528791295790002272152626286079711686837809610452677213452617166543607480254257527380176241195711759828017826285326478366509900968131450499994925081095703803459622798655152462550085911637104961631563255512607067649148217515046993495708367883219445387572279654794926261962359619962741326272647707650664555628410508567335800333808913780272176392357372569068505419501663866389732153104589985948175641708010166522407888756986647188236341110907227596212216480496228898241803785264741796536350809970543547665684139487143226667144272160500432412792949654828148482952794509629210080490555933802204683424561474660379855037575259071037022224703472236409601759101499163915534439893606278881255078699615690922241809964424330156375498964250155571687604975640198295062814291490176406028345789423467466323141820646924863712361320940673600434250298618222966797795366988590680225491136063981916479492230947356817315522688056114336445375198673319277117506928134709735884578803406346541439173780854347590789863196515735857203174027848531334881533952385824323384558104979730255358840192573369407655387340668126587490214447156879694355846253654663950970937786556131322083600163924028446512165805844698352845226585186439520987780122889545903770470130928958290886836248395527365080175266910633736560490269194302260039787948971377074525407605463164627918397150817229215731675589826102819445445290906672614905247323947838396437245601047463644375961530678016660427699228248155536022035922593432119815131926974139123892263759361087598431382579991533553876784520866620095220999890150391001530594081966501789396988086287593198907427417186877277290308903613046920317740605382254778892131523025432934694307818840587590721962269251345629276100930219728633589013604598037843877200838700931246309697915941802406437729443697442060563254215128026215158254760465000163032380037280443429807093246940728704268005740122936887253536653907873223825737918637271730075903623350002472825545485883451639405924904005590111348698025185462330268207843391529217604861546485514016729006493589245441976176155916357579010523293702298196417491908439118411694921004077029230945507804918442156443299868900448192795450373392569402797402881473075526420632274509021267988624412894906907118918958409323142292894058834618375699631168718082531239883839982167862056081624558258670290243585981131424213002801463418316487786040130201818348480758813229997493003720085673306235433797252481865529392485659215981273358230516729110170195250321863920516673392312526780230081687458257315113088968325071775440427747887657376712522454983747995080198662056421796110562590411518368325196383063476036543346256558760286777112955322642294486148275187064371491781322543855615541550131409211670836371697627556742181095742320855855248495346234771535525862244724324616820034536352822702696676603350062916420911182497887266224600143490540580278721361099700117050098015078036458399581685120103244379576552505667598099345219514619786622382881885888354762160428284891012913925611548610327928405305042258781056162547666104246640015864131624676186272160735660926561370279019293653428709356276503976635460191922547400481632796240956204081524410477812505924650963788229467186576634238909029963851411824911483789211315147402704559518550156798413597610658735631388400793607210232008057941560635269480872913497252819233914169802972184257100345825711484793765814270816736995461917505083412193651267437448084336661023327986961336503147254991297399060765078873963129533046291352238440032058467987700252905932568437977115543031077363866652136762012542047310661762811855935927363280308478328429145662155714413394511486299821481447050036462236869747107041587741215858323428863887131513903373695726974436385687363505518974798046169916782542718887896799332432498666187503625979998452047886545750466188724651387158075401546880084233710194282064587815644127769086597682636579196436989555913455373264799656906683919833142874374484189655881024540101915055572676867539082194922635298877467952558986076996070565030116015283166852025713817652798696954432319911382975365237839252025969875264806839525169963848780195229582419723421128700629977858027387527729417900840019671550310331135875575813399629254912149484200378351155534133940299788703853105623568558461182698788401705689031724870416641102243114545338134654797291553786777141959954246816756431317587274297819745401063699040318895023095019259970307600041455968920744301907768600384003190457612575236118446780729833240466642505869839075868285061859498116851010625419510160251077496158601938242532462932560053303022837278766102433316503626467073103141857685679285636845010337792998007090522682738472652084813458662930083775776149263975681296264543040194143545193913781499181439726702307193158389668494453500513690078931413098660597449325746031596659589939607224395191291881965241996881412495733241344179821585131731928615763552611990560367916680499978751500844474979649493607536047743826841660458233613904082362083151937312282078889273875219351585027298454204859763584168071981962064518669932624567319052847324028758642632960011128627315106732071288293941695729853965402544228214427266128698511264380186129065193437135667963848769679489752778242193974763050236872379947508750422427992716425241350969646072319258137772485276504945011046221485685365153772469339394173352603018402863824423243105450541802783817908868545391178324310048220739401665929812449996931363505408122775990832494006691811808945786846320178744838604720670115364982795004658055050960801291049851447655460937031990362004649621235210570391206602626791752946383030647695116206546041737862635663638141486996106861619593294277051609734318118991283388021546144191103348747304428335121502160858346679673867927657252051436863631065984307176375883635555108508112429706888348793410966798343303366198530719388014038699066580696551249119722757832299175728822985658543377389413381280445594198319317953168283679140528484352447565268354586787325471437245922514279377652946432545942286158337970669279661998988263635268757730138606458360566316739129570684189604372020055011588836309475267066414951878239282245721343970865365922166609582302336874948715907012833006701779945029482845777045951724947739065691544541363906337089616169186796443689331774697266565197384756041837008749584143011230199349652806916958868670441302427347209695209482681294765781460395806191952825911464934384589093726517132947915925974102364121304523058431108473532977522069642596416857355537109895402944183174824399785990608309034123541114794748554773901133539765768950977305118075074256619065993483870067350648351169570859251533195895318613770604610681846498711656285771196794017674233632441869692348255050550536862941463927678602886343363302112407147494353901777514817610982587819847007927030050158727335486847327260932205112803531689312126526416620007149248293352348536838091826478350862020725029595207872532803480984305509394707483006130720551537215757398954307106413062826924278371234680653799491256627748590059670791562818127753126068916632277899889719127325354748442858120969757542206832902761071709264364593702526963303930225466058794853750596453682956002949302421715870443944290903913278724247605454302340055234525695084868270585128645371692742418119495318031240007432740330462693303794989100854837907880013733270119169086478464250119669421672708061081371569329800992536507445060343611071902216845730175064930193176559632048037311853406653786996601255012254573237199230925528328155928840891352387601246179669509210840231015817013352863165800892722524132616123540927180864300172112767542986624681485060681724105257714217467256264185823213877716911048409673428013927618315865657268060717409853308771510573225042586471944469083172558057408905268628966143510085210791938944711568748667699465589251969413469500659588610949244027102627393657573047316455917521182693084182701590503868662941310236043935035789947532130496874172273309772038822266793693836151671364111739040752614825588424377152863107623956259585523385349696501216286439019951057790637552512013524785436094416459467418317357247257446856009174805183604104269082255343539243441518350103022188571628955846294934677532824915412267392437478091527656658127098926246013960117125709640627383144097971747541179464772478584883282789834954433579963393905556087916855169964135501792054611717755303209502933956553822728392659148117576766178273220129631852520446335691119289264942673658826658130607957549721916709876527143461003516266178476885053879501978513771951160484172837930766782657871260187408668434961389096136404506558926656415630295084750864986890564761641906496398034303149975082900198199402219295917151731486346645069781056243348416536547458594108257814820518141985509424587860217680764225439402418614930300861205444327462673056810668358945831298853141728644066926992701111459927232791975282823894697185151556148432432225483593742685022559326051819613500089540523799814390152202801753590575426751274253585187153984678064449018773397879931728694521673943401401538856164058016361391968530915853216032257238909027206732860846670054018718455495372831489027242209359133474763418726330441793133405997618433981718580909689360112229481414808998402532101174030765206721757736007834729471276268403856270890010616503896469718713311698210081050415290952543497415427410940364496732638640769064602581144022509278613921201819234521056593415895322064848501005953293378596905878142460407295419367999850437960719896760917489747006682798350984892324371464009349534701480310158069453703903352780322741575248345940164031259519550560999355379617334038307393139632534136862145011325557508973535122309589140495779602899953250858643815426952992786482651547761840034844365781765583693017624475927369245611785164027766263738289316500266506809756665203650927214293204461696161100880444283889522547592607322787862901097631477174300067386067705753540381065889367539110154223191622346786148863836497953057296925271423483936875768228838835910467754995062832100729998728009519671897867520745078035522003440101179358559269790093148227188325826316268872462219799673140336694909038140673300494089586074600217608930207736467514810763345910867451293771308277941695579911681069414555029766223395001909358847401019264354270957782882506813156807546032511744572174487366334894287409658441552782115354911427642589483621133154698946131314110718412434382411935253842981017578258879054490019629221632395143961932501684682096627627893053796524504809429851343195598960145151742171155074196854996051216562547071010373738652176359879678557985224248970249441136937274214896575432182547117989473326274152741910796315314427373777921916543549664240097813979289993231260444519715101731258572314125031027724756093262224935681021715747665334602892153026755059490291163299953194129284281508188776458924788326131302881035094154637540489039164573183807300725663425419256636483053014176886027339952118150358660413377577866905210122992795386485154447652150914993381582599289792399624602644023483910100680011967701710003041810655919932381168646325614678778280012791907614911648159378783439917492400842028438797431846858834454402961775731497194152700569109395392607490451718557161817330292384364115725196915044789900026924247233268864602078690276150241295982153010219980198847710638781119592790856171922993406811488894131123926843492456251146897114484163239529210975738107089811862139796841897852716693062160258872473417390394270489114557803790258823902255767110303952382420883375215248916307886243346421054620278519947215159341114882050478929814294558298326424995058694933216468363814440622252588024423905247582337576605618455286982751804745130094653815142419074249670278005064125160581162207383161055160484069984351154895882043109204817414773473395727684952787199647277854480959301748024940852803370703768021090049665782412583929142664115923657270453450519736953147417031280158610293702302459470498127795045804985953643838199332934342344865646830633206705585369611537568361762579779402584996486302885381613263523173538894442530466589168796087268090789929862702522389096659004435264381086704643753656593248247448132020879572999365135877571745484500086979528850068436797617470178897492427257863970738464972191678182560817290566927100570449071389474109175341172608051268158332701640069985242196359123113454922487381624992272198441445511448328165532864688655292124241882914110758850843822183575080367120232506294546846126845169413629910210009673079617874752085086836606787548654591798865050704757220730273079826379267426684186722943826464575904708224143435032990012917381413184643320343683366949691461142753125722115147811026096146632430492100881695479533091710524654634909152902392606253601663511316989396734171515138143888269565986166592669126386699179733076906225513209723859577952365492947892099355400285110886855501070000833700997753254824232470559344237945708239546548768381556434426500286712907055040983029633016775944891755249224238925285345984290595005038306735814990253453538095391668718534956943179087497448515617783511850502571136050400575819466351879925912820768928508644210212133142369573061432585663508687204826337926154264963586574053461026364272860462946073905863189552775180630621587894746168749302129793102441160035161337716039658973978480685517827843342975370555295143257151143464950465526050640603371847028524404169963512847913449803585019658202933344981413813576923472183956013354138671604131793775600033300619971420877799931408503675971209302721344715348096976245934496323604988193073059448372842813015033048576227620440497748802217376252247772721503936032633118489510703107738289387255786606380833515013093385064319099830299964783052964503422904010261627412028059844973833838765391028839901480282389231384706010872568588726587783808771029296337740876820798237573211925822100071170344256819674801543327425864711089199691254018781246246297365045282804331291444226079347310004445312229089374347014282322594943923232614581893200759506641249373508673093603437077696108617352764536602845609976978228841937190126595933702535416650184582304290146350731829062157834631177545584799203614060200811484832315686368497980636889378046254916764630351420086851152562229803843654332064639988240189701326348803123537917740706343431817201848645408567756024469084515564056094817222771950449062987732751070255012135982568083090761345811374166195693145439525347608224560690476074295879754218212726093089661391223674632592314463586662160095377755014081762314103327986774613785537652268399267795000853193407662206914731692387744842845646737186187873464417583073907917949726999500959598526170737863774693105154690008015835041465804064696285489710634725598897871410788364500605384607855754025470978570284058190619831540277096250409235381632684320779596036823816334957473527368079307512243152384275659320846255334577223492724901835825160878914343002534129916800235821185936904057540674069929266466018435101658187894774411401658011772770979400598150503075113827653862580445028706936253372547310462205542999631644208348333716866048197985891850702561124584440675155798370001278346116127410909889414926590484002212010202036073250291688976412904971491558421945830109288771926911623546334013046972615528515775053525098695435677017053813458843262107347928454084416040081381692115116357201870126812333724935024186963655744539922653842912403119640603790824613900541735351319810031751101145568969502248139607793135671663703673245054195045951333593805195908491124173779584704304464810648930800647840326929140627410012985439939112974908670482165451167352490815492920532346128694775745904541152481097766865254978764807540215862552053215934763868202146489986527148525883827373644487161344823948476951075396648780047382580420821721454279437943986990453356073415096918239448440634828985670566854578839482206713767147972659507649629675157265711830479762470106782319900544832898823736484122463424813752206766459990505779479739091980496390335590004558069149997053114081926737362654372811935799803574640028062111098195160633604397630802781809251115294835900234647975730493776595024607966989475619153463803906188339132064594844648188319318582340050016845434681427055663075005455753913935822356850186472424956389261078938180634469323792955886810661428217686039406256138637850044285765467531668549900285770976162728663643447498099389985926029552814974398514826800826378813027539302858364496904770622943992439601373939240698643796671618442198130175932947666094129999952534297548121746889027290284569262553399054378917502344129975379024864365806273045057251749200291199563932702120081651524554936258791563328824918668005936237262912082716061588497219707536587623291523365359546357325725584627756823404082172323861392702490638087583558332156325709739224891411884629865588075626007514285792234132949090613661106007921442809933934912587874058724626041094765927388343487853181964267137557099471516206178003119872136572779517632878156709273340233340710298247628994883344275893370125796165507948518314772599422038903305262589141198069175894460478737977674704354645625631218677073965129271585702129364215472440714758066776843854664951730309653536296046543484891212083637585686363610035632401021861038112317235580518888813109731083946491501556100912327902213665185266939440397183146264952595588877095734594038661183934958918269172678260193308239289078428608722454132680857594585333282224197879640849213647657870509269295910092298485730866488627301861141260975617670461514773443300769911104936720086856251056142521085134217799420261343020679182008971307351927803780569567369119657442519874021086082729706270191096661070986060906774684802803363351683636678583351934548783508071504129399248922871097629440530746995705582562339410642831778177072146976010555083102062765528097900834679158684514195086117765618572028515282298232573845802744612036529426326714339651419523624234805167811485995430486333045300227090498684495390940530617314529988779435278137697926125023027304551167243664736209690326980979629977905041410205947936037013383014502375200755523755107741311524673409599936045265438848400068431074285869829068884133399098988416977845095759126173602364164363199984992634090470131219509031831170175646201419188193966148750440388015682797435047027371873362422529909683233702939959205316641539487870691583753681652812690631548601780381230559020667800804688229461752271202301268502577347346391788848194014553697251658921165057466675553648692508028880947155067250518404169010347007856430017315383220201913108271952069191276608656180432707291247864752293657557193595944430581675383757378977864958604226031197341872644865172748581705537413938522152237789898117598220662689431839776116026224845304511310951546385119159849405636608076029308235115501782958170097987534207604513761348330034287172915560845056862136918487499982425980539506049201365435119540040751335054125333943943531704872680860627259078064602810391925745751865767717042112989444804170254692391312252096085525160525240320341172103822912493828455641633500040446788419779515827992102343418153750170001353562985466782891918291663524666632197897466438412215608920936573829245976337508714996119226865442221000430590360062301711961349438148380882022024508244542719292943638520588627787091502286125622871202181354892493351864686251437082160415254385379804804296829384414692498491969780035391232633361843807835063764214537061132424815926038838144456785735356311168783349442678377352321471906830808981515204844960871352147374161993359464765754212049127562216563341558158782175170376378456496253044241749149619395900358303338083336706789987461374679523741267075541800749416952993997272804254928642542030444959217070875482195443092064785051624115011373325499244120580634255649162614241878047911704458029303576553115834895678385774378465240336295667532141030659694650795461488536332958776324424276763135932798820859191443344891046521640286800425932529026469987775529214197798721034578593281997399574645908212816488973008709808008580613722992191878838319677811108299797534537409712148367861983389634128639115206367352313084043032888265025409104886576823400106490672009938193461393478871523354221173083339833576538655769542283457941287487474653814751804833177360346350756849954320913522860753503664456913116951079481964208205655448681752465967800836295799244611193434355821233854404780921277234184155796812541061405152637105158623591808331401027985090046466222973614839771179306864154215058799852778341927622150036985482483754811690820552124906972818171025470778054609678963085348843493762357453759134974995748775813180083060223142604864267831643600354323430381070980621976153172948328643377047670950793359205284386484263093061783088111309576924901703580777304932491369032374493051541379552534954958159753695146066865496493094308759780894672944445851492750863324700180422971409894467369544048263220303429122806932789840621159590690366343512784624446646978768155733452605460365670926058163954133236583594810688291899547095483894752057126066037518927343366850362414511250195947020359936866055821432807210767076588094805651437405401663959792284267043873600220691987508123330639821598246734386733223083559616898230549338237566348492893655375127510795658661611702859785150483419894179799139231634022764987243152993134737589776158697591091645158852710660086782243760180712060810712860005634866608200711830693296104858038957631644379080621037935714889356882578196469198727047023958902763798122232166712332021012476846194430335957883677038095080232877405030732133986843982585412253249122655313615915597695176286566959083687784269531370542929269902480031345632279408222660262087450829858032860022532922457501925275781708414792636340530582506482298925526604418404905784538455293027745226179029238209878647425235973986065074236011850996930388006333034750851224855886299039435117958081065793826530017739960101765182273555141244575465583752268775090566679658412287788386058475962803438074070343735735173250753515508931501136867640949480261908917479845910423795230884580343110083265814359161314222792181221630564894896002983755178573554230779970744581804621653498446809770802912798122856461575834866812408230712710834500161983477230910428490445303757670251510595520710388737921593192198982784802478183806502357550546995009544012680325583041938373123106583372504054178499897796977851422655666058240456554138152630819343216152939618289589521818528123794404083230658229353791349979290365942389156608180182246086907404500276226876628493670491694755048902917845041418867642463512080010921448144479015048554561327975786337972851072850232919979628490187005882681761883684879664782796251786800439870040279363023442441747594430444876273493773931413145672441753533109579990757923853148716119840032082227776468528026640730410371993157770614357679624561978665971666841014208031902204904902376808781954938383563250320286298827081019339165183226650890348266786617392946409173746628135695395072069025826805581989411789609090961823928791375753827026696281057672818379896620653973352687120646908603937340886712239242236812453173780321405282994576463393199835027203816384162278418243256891219387910134040045148009214064292534844255829623926447252109169821191909863097522527092949512812632532779736387928905039829518413662995120630446572792732489379301453338861850073157207764954186772341194469777250637614997061442715944881551651573728599000026523182365453410586840560745941591714337689618930843887712797982245702290950984100661015059720506049518714817634998653261666420295680072291287562613933926407676075081399246409060578722625848110485532930267850625151647982614588720430442758386416906864731215450881229080361301165180930975842560114549072057243583162071848784004291408971683944352666993851208450940044128066226452272179467573009905476334602523115913339933383043021585001332097453168419834722355819591976792941052092591946343485796868209063003854652507224618909322545930713688981671492931304770129694528349923928747173138888243641981509279887356537605558182617590162626118082071535686510843215142719464010062067691646355354860542419062172499815700322456535084832834127124326837162096654621384381288096218851718305337895720073901765581836340307687557958392432204725838919200248434713739202282913277766774685709535887329609669198216822431113389806018119411891449172747788559417069535998611820313671088444824391723173665405737177282867322589262173379539798125691507357918898028459087178351651412291960648458980239594581291551522855670067417060027780822499846265769619753337709875333114038299123106255488558915581433764912102457229720848682218171525802401215141452714150388102784560548150505346718299729892604513273310881697636963073926647719045355203051876930329389666901541140251264998350919736314813490681044824874793807021545297163001713050044544350676454304422515317239855960097472007139679229587718348950742963468206330871247692810843416096346560489622922518805347137617623023450726866911826033893299369077604076637215576967110453201137623746580430632012566722655601251372316487388320364946847355235177910517560818701313184108408697358840870661280861694965874236261660649466933438601596392892884536702159006350673099941815472111472646216898228076754921784010634990087875144817263543909994252488063110260485147033332810847755939637923469349364396405973688172443393337843321029144763801831593114033084128327046395229647193303418272225485881191947450968153823976920413162577134995061273195445715564982989115770774021954648501905806780825127425766852121275667372433475921209279929708621998314276641071964484575307530549271110358392578297275684741415006766006616290615078811874017287570607301275111702410255077929984661402469961606166012064828826885712430716337429146103257519638754982657171196577207002319444861626185541463571746525478411137197789307404304790268506932300704296782065642128302221069990050265421991555347322203000486609167937621874281004300366287683695490505762346633814051444110720604575973335156902399659860277516334964980837961025217610294798407073150490389268929699011459197545753827756405372417510183808537440097831989046752083355087764129639521435635148540172622264499851345608075104108011236084552306318347115635929726700360891211953512113562895601041919784271421435800609660813248348328887516062093068210754686422031541118789707636150274286471018214818804628934510777588459797961760594714092445962105074264574803919485837685961311931300732914985901057745319494849145719020493262654270642797246530506980021386573340319867771736706001440225723253584596873018544288518842789387085513015755752125898306551570895527301949800242255750625469743493670027186247000601826399324167640080842378186769059966080215095777647842498479097025017173878750036139824622394661653780875520154261986016090114689768164566216200080350112643220002779238825922245711594643728708699199540518608346106596801566878684538751687879122739238537931282917683205794238055046018313128105176459781986836122683650431508195265146202120330205283812428856921306336978598218510459043649622283323792633287381579856823783263830191880898505104809477113482473576029414189047343483096453894714903886905300099557110247490661248731961561693136266296013177341183515247482607317898312397153678969572959050998137676165295496457050015451105976949213664976008297022907235534185572780790799690447223158889024866606048936474440920898219296949797217810624649667376554130229894756833797077173758933929341510825109089593694708330676494221548350367308170682286486153458129612163220931145862889032579129268640126641313886156093751807248596902414510622521968749835196741638258940903319960706178956232194596764626249124223249997847768952030668327537661585710463424062573037283495950811924721092648080827907087804238456494010579164210309324739587999964895676187111225891093224835830361012864256337014856364480665566959598546269039819704931270060475992738615915164049631569898472284831670016270869931925760406899623272300500771133677640050459210930298172297798140839696883150888802281791985418387844990980875866573086298685507869682361787206233575352169581570299919219700635470302576377778137401320928325933919236085592826508471330085901163087140880089416693421174276408039713476176162343987043178595902602203318542322478067662955734063486636674595108711734826257107305380336554172872928472923292335393609214651935494171510541160686457723610160886696469317169367689823925646681195004917614921422370581273590794908970642557132178252256306066102167649557712127126885322899586611709137432007923257018477201805718422011986053189147516619802068608409885100059393998713538046438086624187745140303364804628471935077366898343277686142487904004764105576999528694296829440528296593108055932786102478351463032449153657075914815664054166558573468315426655745477019180244233047531277201959367956631690866401948045058801814942126981624335177710299386596279199060886630529947686978309490803452984887420467297778701088696481004603158748805795404759483619344400054369373911982013848914927547430635473461652700786227676187366479607550359683909468245762357005851647693340434466628879617423374708440858665013775923539823990466377542557094425369090442511491733531665850070170096758062058168512766448050136187823047542467731547541538051193765431103560609520533426751796462607850610572818096242160829197519174117020882174464405105200659602206530185577243079862404057571139115599262741141004233253256217094158384568989841738062932774123532612338453122536713055717232945437860770440399827580529234383370660815117996015103097345351462475506533363958057217669264874406809927152691849293533009619990944065841450097949795360704060404490271229639105682946507056515600559761823185490721477123636603334245592522664485725272433422243458317138388488079149049058481201885829168850919760853191725399773683839760091429741107786949671971445053132374409606224615828076946733898318707625288998012231625164671422901763108232489379807087000004541694153614517453232461017723120444688741762527101398304086830507176641998036998058566920072483107939604004300151810815466092535514890342665344635470996193966035478469085788971166131465543989132869700609434679675258707521865146067311404294642485620912139120583700669486633460720789520999792234852276752782259868620734313478662921860316122785457733946380986466297549059875121118140969112555488533407050284440785069726063284118422733090544417778923272083876227097924683066994552720409467249269926825178568294813073951807968462068064279655960487634541942582631063093998320509767608654406213664629674013658026806040277472976254235882058252082093469643228899154326872231833195528799658675079515914993141685180753437226721740955267495976029369193481257596106531167957532839304937151383513291911214123423454609232760085314544885951352120973370064078774752653304160244623451544673845673428217067015533088944980712395261526069363660130779499210845470029720948747367299437427609152495776076426204038756499652923074200403959362487410265702223061356310883961497506644288955442008540326608504156509602625504412075680580120667287979998944718428679653340165629979504284333166498731356620629616532013280009675983911714388588621194068122366625529280187501283524872437284800503256447451438620800858018062269796932819815480961762510062793211008783025073329762016725972887416280301638466519864077912617601751350453367185782125520582723872913080151397257365406999482572102129550786611180660635708970067136919765055291114905911126055644856546356337395893042996933256736515309044761794570012484564003894654177723934440287551190880647282590526153416408511842938919961701874890276280548414571512620259642140949202880940392673953132042041554394058598357343105224664896861320884470613353816680397397049478876325726120516424947102473996399532814320718948542387204550973625616621326765674729085253900819011655751123436070922454549986470722717602794760191619895952914029632018549474178524311265223419315289550363075461416255818474448477090606814293915397839012186363784281905437919973279585804472402074677218213379188057011448893357816717463734037160753460547857311194613038540698196159956031976661351979022015840551973002996800703136060423492739316208351467158399665911553656309202933055152007256688070266132489585893113585626202482107513657384724904522109923558804209194869124638926526178405881721832947573080585114996248745774401429871170835885862909378999642928194937058201318675799007003265698447274540318911158364406258001673499214454317448713795171234952166058682597575621147952373651778814842545044893907006719536999692233526472328448629715713046147333127696509791244891487469798442972322844564849999565047954216685859332276977730625301101480100312744223461854478680820050031463785696769565662571691781523292975454382887414496003122155579647892478916446055137305572785899282810005151287227979328092814162460703584638046272672031502487592414690389746557646597869030300717632532372139005210831425045519748295555958915366038499089905430166620203186046755764642489145704567776932445945310664923881949509355001688994880240286583969009660522005015880320369667375016450602799572953696507772060979031672315673893838412884944577793839447273134871687223643883832118496716035310026155357060155169112660925971082812887022419029340991152581141927023396060174050505786744704410849457998613983374956835076634854287210867632814385278007031342292399758509077224119918855055444007454612787545403607175327439069548991686273156418799480502989438944649920723714437211644732219704914571978716852710963769024559850495216663153006954944883125266816068188065763320579241492369354014955883568381921356044095275641841571748146642428109988567655938538421155103974080507861948339078486567834453232729690757587621088379960585068846924464821672581918964007119507612120061094852257011210337831022954880559088519192534165158526107786963465683765372113659847016938856638575357018730388303399798529751742413117018524449192734815258326105803992049042213924311163600956985536341468724061321836545846842426487941831986162413897077056167219761056026052063197801067053794604446027029620331405538417333318673387560106333750819736538811632375359289623082144518701524598042644346010346506588783817545593674356631721735638742032618295630770625610173627664457527249652740010237364126478574265908285759797854186320736855137122753838621885520729535005093757808417609108344117082678838353623451452965160309020825720132382438273799450231814943619016435395235974539852518567692851919172015976090237474456069037454323445354645588946039392077120032070796254624935998351936214432697608131150817850585036657208112240109752924194505147297124507575678629198881507739804531998251897956112436306521717128810175821249908459352659486111721634766859221198400401254891235876950902906695265669249938146738650473122838225794339051088769150494571485881306017468293831552491617816654979169041706622471378979975644446672825617113150830101849978525519399597828080225634147274390225768824244153636251667237400711007316330831930665082137539045290446832558233713934079103589806720031774928601984584014194644711353048316982324415131714760163374429505258511560986832101720262011549321476168383167937847937864583333516113306656753437556008389976910625620750179519609649619361665205325852948857445144524972873768514837547136963813202588750855290851319741676291925439790422777787392755208488811733853841107153931221203726337301991341684229865084083563372133160224815897464241566094838610725002046465518067746425922923640679495570805987814357166115842046890168805113812126515523547288640096518106890896155210410239897914316040804827855087975819912212828900111185007442148967105490549730312982595634742747639987317120252770024300336377239672299530917760745586717913725610609778562654411772594595231454672216182061508450357257721836524105492116523044683147191429434660246563368322996134837796611521589525019323698341049884365472687709508266657171054898032524776671743257243590152019474537007899928280260781732468570283718857870170172416341023037138491953669831252055107146508010450536234324179542382004797372128974935960364149528109120858697616620140557225633842401182085936239141247916439398838778629110037505175029701470346915641689576101169648671312592817801701243388375285864961726983141077058616774834000086787877257310692038286622396768095774865161725025465295817955090731040209730507954165983890863426990220157384437681080225523943097228782532721688930805958974284310952508933585092734322097058513333114885629348212745341432393543716549017691172031554465670725171941457988717138906103190038802881562563953124082944025951066652000289304335473146124243388154928810764887849080851857702141329325709881283838812674594076472446828214157793716244366954662372242820321145815049781070657513787252494694691402506622198723944115984933176664899740063987565923615695034699664443302488237487126660573475441929254656170539139786008194066225662373900878817201358683098826887033182536698211006067045665212078766967036424639092104768291875115202730149430007307018332478986938733879047291123173429129891411652907127167650079595577856771292827256575553142634387558214470291313870903817325665442109917007836128010762176473152972601054819632953247082825004899867906057836379815524029216042627571969771778389441758513328378583866340349647100144649649199846913580231277427347637791298850956065310065726622868617592698392760189416302959153279911078078387804495570343837671891304581907984994000334534823111401861863353344730279331883286324683027295696255604586236131569007853871926340081750557457936307116766514939188637650615064522140854906625676905094924980669361117877734158911356973770560427867014059419159318938714929331029277713994546339652675146532777931627506334154270148040397999624100072244290226321087106961493774999340613810252883448841992184658775319324891734157298381875949977055140070540697437441249639133912667485839900778782043462464024398362220871021075483794467082012395739156040620296393482802102446083345542657462828736622933205100733084531673234293200497543640481259799570077804599409723095272331466256363676529654118538415344003320926513254684530014630364989505955774773833684357474595292395310196682786256992260561490605948204782465690435431016442761728320342856042550491539559785927548797758585458912708725160942179704379768291482961211985209220675314006367227495994580631877869984038778104821042791048627350275413004791237027851093755895906974154743983156980188196065543684836398987665054849357481480532556868249450506705392079346601994074385200741408467859354368275712292788830747112914314509722494326482650785627344816952084346772984515599697273866019525149687869134352594775596876626430710329537500610808030918075987906454399788410552873836108094633895577382427003523354404427544970610561300038570755966750456360479196912039469718307549696532930587223333681862085711798788218731008146705458298185843744269525752145447285533916001760324694866469677315284839819592214529031032482279321483439490662296432039897437319615085261523663777787098969502159341838170663251536936332049052219464429123152125221909132276320093522887584682281462601649672024098251558316705068774343034268501961965226028600660768178868358658582858740834614856129292894172567450242628713127834532637769976133185521898472129384820696233868589847258923278065284978997688781657048337332352924821828674829037154408065622828284552644798994655973367025969653478239505769387539685724797889885654314066254502868834387509311824303758450084911394673819202700915741131241141297814112160684008077972967926356632426232775979332171217901420306388867049243443782940056057901176598412529361179536683532143945579185642551012674558471866959821933794154644651144863060471697245842225191836543674683048525239956216932836428351545305211169819579073543370366576513533815328066826478464164334704177948022358019729443163729272966330200280427322933036968553460961982454566405027728792102370483111475577454043565448392705224110902487986213238122534780257724746705583586348631830738171090750805476130038916086865570830852023939674874859533184756635732475416270720644565658620484425289186149642815418166587407253616927723398493065000417379050069621100787455741855932568109914214186154609383485047265541563583129162965049815502513918862104819805934591577413702309109792307935912413915728336464327068312316358678821276784770203137081171178365351971524805737975033569729724404066631190672330646880526694543067363445329908052794847918847705099826997696519884653200321483875061868453409558709874977882732902459576578669465398498499589876095214298314306100990297590676291230405328186425891478457703624819247518695318702378783106619655904136887313044174143579391278846171835383162879809746351820846926810331412908237333408204901922927161940742506508403253112950277965812811299792169784408650672950995489136223362454788142707008567602479961014312318334320384376303005270458741229004905159912172970838907832112975846871349390698072784666783193163850968451292446171401121658357743881614223496528804245386443931195496458134563940281783837145356577156307500577917014802581834974016622859856969649464466955868253786621810125620315448568857457300875058096030381956582829174388775050677391926570629450119419247524047954520063736959858654652548207322011261506019601789131307180781685658180071187559839107670250735055910802683959383962089830236576731954932094533852079941393061674988038103313884861074421255714889283158716436325143873915149318451418249880981224943146391129833559824356469242941224228594487989726104570870950106713443710868330297118433156975981568383336167479997542203864286774270592058857650232398783297080683053191679540227281871301275023625765178136131440332496270020122692215329962034704364604312467873829181866811764000426173983845432384902720422609465766496569027750335504223032495840710145354317409355473786283793893508684397875839341005690825629991892648972440492198794186996690577153332024327850310686587291449507133439214631819487150554247281121593276385898015352380919448900382009279718477751482374434061797916185166965034166316981259828667932720386694449459610148876056676683245326187849078633988482315431723343516111314600011612148304480531569783350955777607808832475666556958897688392107670418904614067817681680631301320063068205183556368121329362450404527752036559049529757337243738595696527088461868436518893973551293876241594800025864050018739697842811335967849245877322512714314786068094109262242450567694090449793081192643246729957647831725873261764480221998417769954536350090803316407562805440569914138578738240775342599368593367421874528870555292030397364039372155289779775584381000058603859489522247605981123026300572423929528766587859641146850946362414610125576283873179452920384380033711126604497233840687656339043176158984019984738993163890401522940320108139491460677917588825198396765235486735675205845787106910493221800428067614416517631701455912381729138576855160000352814213991775085675464692286687497329233360166081797127666312328638287703485646863054826836210435415156725956636224319748856593732155669089450338055626447038585720336089677147540986829962669146175335390435847642105602500747080287300549982038081517380428660146861792078214255013762852762379777987689791678926452687477795084656194468832618317283904410453883116200839349262156975548681861604082466327452027577480935899913357936053150926912319610585513184948479858825533395379593536739912577521203867205303317491713750763727357292183030805165432301803686329844642481864117070526449178035854179144336327376061737606498264861506808961059812320903311012526924497053990569535103745368247837367721585593986920772037961486335493044699643221930954172975972058723711015291796268080625598944967708012934312392341823311382142011871621497155372126890189532345311620726624012603226214215770633065057432799364807057487207534395521706294803570480282347794005708397590496423649053595782854463442334358122612186132103631809247935384208554652896510662349840407714435057870403141140326234009969362748416019131100726660942220933493948630159574373758362045931459340832005718631015589640602581883016755685879396738606690057514444295599765909265132028447121798988083759928598835322059911591038752371450782372496832377534197979095678859115624366040046393644825997093145025839082647725602181252592559339608737225761897956808483788711835868684799600518880915535176732513645183706596700796734118026735809028093429520425022547462396112058344479416934644368749375069787176449239380769070134170215883893375196891110336016895386576591354576463569628636128766009458095026738116354022096544026093180549529743468775139065497775752384091261849624566328812610318125564180391688347564422079270936228692627363638511093365155439750502392312179070788901536981291577999372487381542506601204083667823036556113947377115474621139333125599059844197252981790870544777599505985790349772695845092029640518309991896762811940002327531192451604807310070042408337917010162469911886656008399252608166902179477915967421868630940871358673247014039589841928550996477391277051996927085254950962538837726633237425730503813017195265134273874056944512350694204622525159484998985020891313374101589159132612099705818844506970876527641078023346894419381982684884030837129930923591268904590896042924765565001269800112091991011910863948098340065679136837476578694920475403129222457050445850346640712697209884434727461511367841516779774011317302696393587977218833824759877731857783900908068711371540521731535326379067694662870964747238652637487318437792965314246150643496583663490358484003792382174468156131846896977715007428321742796524525161944685605501081452782941403005236557324831269907257584911060128506815647591454872516948215381908557765325545935384317144671931978897615742234002451773353861935244107480683409701334063582071362348007504179845195367947472905041425557463258166205721296006562336548884373180339675553870433869471059897036252448002002636939375271695879130520619955180337349738530745336275180091907299494762981415803761551077092603511144706896661487859117983973866073268740221950717419403288689591441141519223007696426405118391493546119659966097585344015876351248016034871340471576553851412861443863742020616960952142651214049523384024542776126299957531561099233519289413025755199764603406471567505890684702328999125072618812527152718143778949888776903084948501573220888212794243669050413094373194069843896369476070376915846720588032110193751849458897658685057488841256187180626155934723637409141454552983918018349406566553047888040743824969159987834559857688974621463456802563396553680933597786823253054372608438370629634032489975044229126785940500545488251982458270138044337489279734617828824592940212456438776692845790737812143079271857116951903474419032678942475642085944478935133175583644639251624970584497147432873854865764922580169391803783110002649243326708869393976680333185797346215996606852925237946960191070044023325554957341411071873593283174915982879733623545792597433261426195267829686807031733763559460278884923391805855792587168251900647307604466470882759187591908189261119440404309464935899994024949113270496050576742969191370327159957246094471336174606336973453225807489490739756056755529338145172742868890727302676119151286828275059774759823670956504934602800095366138776280884143952989638328290069033547955590958752724552676652869884265078640864196479170865096489714044338474845545653825817228790697660124277854427634555916781867256251649980793333374129152131663548257534782298326872481593150421310381657179093072550856583577828536859053215309803319570076639188732430629185820882360299574162978522042741016026411781593798842074576757920019364638944591429277950180917813861798179480718761124916659835550768740782085990444264272393277266526916103829554608999583925262643630519227510162149123059634112747076615269640171246768997739194360591939837350022454558656153444571090918068782263476664480381620354041323868876230553094549147829821880519877317251801865963754563032988035994132314015739395537193860059734388253055469695248004623342602641091234993346523668203364318562269610834280211714278809625669648094492878505891653527685167396519781620949352339395746902184850309342030468690758222679616282790678149393057226697177440552610231545704530243409642067940590854491194868024740624717506295139566000630344826841317904513707717515710918859666646984520690323041872715439334160076948870846172244753578381090543799005315872772890488843026025027183419260319463578942620861106173238640607231421615760943454905331611378345120266761704896802698460107866290880499859066751721222156494222287840695938210821054823001929709791637750827095775003713545620433156746478457078435303572205339718609863346515531407149269980935414278147435466721422030844504196579562539897838632665119639190211514235079904311843269661531499232948145512235860253315895798142481806553420296324296299162892982461996478209621560734295241874298985323020221584342908354974114671422839586568519022984435550883353547802851587950066002230767910553225193593290858981293532870539773454955599276167348159101027639305313975393195500607530724879055028372576057136185586617280647565560991220110145921814277410569171234955572369072872652583022600294013861782273399033244163021820894880951771725923056025266842324297719925915256660286956046014427254833020805393667973424877618627516396201972525718696245450433244254704897422652278306577351121500179868366859744084629742789581765007304744240218836562686990243606011591342342962844318812667889994720656270516980993796542114006860324668444556487153680783742850244295876601190203709956339249012451397616183835076633106457771519603764248442743632936205293423191535125466222290814423431746029299158207875706324388848578052656714658233579527271095037204369865195665144515043556917682327151530510782283193354746030831536983022841161799905371868527671183257753570436421767429678189970535164849272859474920283881214272490389750049534441088189155347725743463760365446476053098246297941967408750797264865427086587145994894850474885236860368032474281823369043916498252571896798164718825280973620164013099356569662668187091226233257400416954259977447898892221579710146704022810832614952973729731369842047854833798368801484841254587077221568416131467274245833195500284421839472408774863100547782446414232656231518492335737622494958521979258010631216568276664459507004771955110024865927240138820624817649893017359456498523156776915807023035790878905452436662776890918486123588378672153448224821177133388541405816765994079067273023795577942910637072163722173665495929883253231795817056283285116126919054761140523163268038094162318700813126445894567874414156743522063876809666103485073294838786556508087246403238254785622906117749300979144482838808502734455911989143158912158682053207846733117371288986342616840204675066110317551472842955208956849489061618023309924810289810233596469790274141169844476296919765533659292173499315145720320798188335458784089595830689193318133367828350322007088584056803821800956723944266416439987801823456291797651965216366260690858598477996225055935844327227080307833348220523062497548319264828805855339396579996774430457313017041731817543545945975177790494680729461653111123654476058974432516200473752470110262679355131922893786751730963269960752417464017262737392802543317955962012001800991789322651084892446271331344968679745442917867628766418610349929970148173161267799503697172691921327573396374620179024470429951009245521949905216425890368268554774555472679524038694037537803157531415411775061031876936845822752324682101030465416878027579487424512560920529016414277609379661920505006629523055235612462385459325546901532810655041221336604835877409355917946698136888418621352412768420856024995956756171695580607410761890261287551667464066861220177208733053662236428522335639928035203842475792448866151877409989465594516271653718710480736564707213603681646085875792295757105707193952730428928177953212396102548006712969114186123223457550466889834806079383948849353934737965155638855499118545799130836354860152999539397131087326481481920595508569380223699566436952675579060008408418034870470803325064695020318539504862575155661712253486867418218592429370776626886560979846954519244506930552528591795765711379404136372864155230554285963458265691606901260103112936748119222524192549842790870652555301135721940048723893104644409366337121712561773018769570646953341899373481948408999874323715887134626641259325901634733582090638967060789282150476920446033340566095413959211505832733444904248756132156642472455909381584810248694211728822677920280949550335632620945677533772215561490462332006365362514603816682346987146778121049525691676110723485645684174012245384364161857307142452138697284639317154473762514570186927769316877512479743835999527636353927981116840442715187311329701276219617176896156375059828481067000505701413629051771043422845914740668826790017028510700091664083774304356568554788387433617630953513934050105718233498301606651688083625408431173376595081904055324251756318575204016234454789074386604116067866898672706653135310365241048920652802888466107035350852431135508122583102929491505729585569321973163407627124650978551012563332910206734598549687320326965089488381246493683098028874091227393308486432955670249889770301321283487428827277049888956201239741634681114670813392082707443828499564210535112685970425852932543703358377062341193094732787022498112606122770968742434665768418840367696411263932894140258106551859256012907171486515936874190543729588588903094389619982854284655166052027607769008825953645308795412338554502026764164374239503797663811078664686104494924402520391818391418887672094903211908619946600572477877666091621587203622314816582587581625828591295213176476425365227942291386366514066723556835853755395088552165416170232348961664039948769913429308173185800581713651289995651477310171922899533702673703366413580499592589961309735717222440761758073752237106777750207288348599416026872101242091934989129577009020824123028182675075721043477141152680690771854232467707019772079384915284998451733517425442430774048969437194499407622414639606060062135555951795496005171812491341915096238231516548634932465849289843299813636048492805032790865101259237616376879298643329022907648788819842342289137080303990842919515525026748315661314895984220849343753350174989813187803037381638804913000337247777733710209670201742919682041027582157103264404069623465509353719241100896531242690060294518318100074544825208226332141286851570821950487964461227338625457508513245059327177701952847817886456946285367653473488312676105724308798556860921849994686574403562006865067394195288555411416452734481447363210907642296949429364415471649149992607844876826678529457138804277016347264490521233489388965467341288371628557219913911971182465943266243706734550530303872010279377055361884353694273896944688355465189112872258969141796867202793571704470389183147618959682732806634414580503761300365056784603527611036237680776676011632444957271883991353161059115988123655462683639396679296852843392632947311134025811664501357230026050624619292851051792156108110807621040375890703723103524243205558875207652233211181383121082525968562052587550521540775367525870813848731448037024514236216044511921613855347241188288429558710032379442742408338487232486642096194262883420445239904440652422209028878543058075075468934554840750895078002694450205986857927234950785093712061788521552719507307165396495199076721343416814806289971301259757495563322140783096272323418886934409575571804986907323666001061795521307315823920192624992226600222430296850153851472816640905086955195677816424528483992246784702062154714608704183712927506901088118976137075614992770450377939315966749537908859432473598425989821440663534489439658259268837973884434345806327589345635936905876581149177911093644219712960400967702906350372774656924695460846976284907399499639854711796484086327566980702778056748836144416041876205660590972853788436190681590974754349007777844229953914564420275798045892111498616273475058833552812379892241260632762629372189740709704889416698778345009913222297811041304142313406274700401332868180395218822227898370239225137343003421831094957493531775155413336003908124791274478339538816602446394580372167247804300812799271159610509387822108730123789015880986139521156240771807141949509180721988551894283091291200638044327578447223215650702012675007775199811473495811005586105861958931711637994080876953993038108561755362338554257570688744252208764992044038292744624808453775993440556055964800897438008239330424931891130154014196171323596646828602520970671350207966198132350207779332456195931227357669273824144909914037692261569935566379025946531806737115207408076229369552546240498860902002638455050224433779568840119378365420610045782005251991394358714522538151555178742018556770200237066736039614181239031567633247271564729101117336273902985131760148670596528706736727065438526659755820017561241158584393370960214784086307535777205497292974626348627549377212204969930486413604932768300768561252191629322086830216817312256899426219450185016449158333613939118430265373626274663855165263919709062002009183248707330870426919065236531675980541559550127742455405301727647137297791391884738431616466440657606155814086126254169703911712399738990027269601668933367941301467014518376059672836173177150085982861374643516477091615812086328310000013443562789102410598280762608273956611260680423123028168724764312238320261681985281745465032574342556790005820830452635821519650068252332442874727638188244257460717213881035148414929434744027988504264601709314371920628681752434186412451096068681959763811335405886900974195043248578641496277095942955174349832497606858305620052025234838317710883612928486573916882993119650668977315825358082995192488584117304572268987583641353986082645656771755428515624991611563276082607093204623694639480993219622630645640627066103748607030490913514442274851190786272433495898434432760804041383862178419315106066605655769268140695312098826680354665331771864432886383027825633261733889162425014240888622274433595195884180432662659539892493158857126393826517954271708980165903253011372442938724476172885205968579122393029070070304313525098981838321433987626870766008818985525409128061037448073429144713638814719003650126552990741154217873683863703075164680200233547601858062809796252737577746060039872175938745425554272568682786209628368697423545194427559385467047557726917688055084394279103025126814588688915971369371104402405477766696229821679282507262826104702600238026097825733820008273880270767147819671193754341060862414635017085636036938134756473676192785314193575592831090904666549401455845162704163251085090866643855794925316915934905916263174877712784891940716493974154405698146853744588019158557818672084685664882142826049091089122660881724974917021032805755474774370833731460044984017876283181059380988620353636729732205449473003328335616036156599549850824511012967260329496097661583939924778041741585700257050502625689448036506393500304638496204665414555368418334667132568924054428999743533459520377268392089477748530453338123985856520039393507838960862030060015532436337527313122284720867268301952556437612639573605519878405634798575941839879307379543594907537244870352737224697727444558284169107952709700081259193238303520639638823764731206397404892118926829653907750218344918208480321815547843177748164627001958251681540378081083876111659047103385464172747546845689610068687353601620487234159873692307404393988998065633594460001526616118689603219962190008481855966039249871294246405683026805390549122652063033991256914187933194773841401133466317211188025734240613902193561240922534908604794928127615538352959527770905991009816100844929975553479673280309773823056144424564757858625733055200897487914912583210245429619589391587523639056553586088849094942521144180142010388470245435224925972661726437224337507514894517498350664460827699159797487759961204100692818892959723089061603795951927001191374853895167226663771823945880584775712151530828439925204282536667881702662648770344379362855890327167568932437218894857183974299618641771820334613727706464553952906035850734277411786958303675627481861270856249689218105309510890388692539033830836969311653631202506608424208550016916090216454312171592470607260324240637914777669772217779030331454253437240449131410354531440360982077092284141886170907260369509723162631194774685375228845330661515089183212524087159732590587270313099047027769147928832530889384379912992677220086899342822022001589612699152985375163010784866362445053395332787621233855257198551217982446045953109228349509276454731681400775882171909407823736195667493450971769902062620345877360332138713490754641162138186728354339247052836325424237427688555070677298474451190331990797424337698549797803836891402366707574267814594417861255875702821800814986600576821805308848855116273148267313583372821973560163396907216395654019431690693312698425443396993540727421880369768692218805361215697829236382557565653395438157920535630782329047997462062445326528857784235256887700511048405375191596535076566929409746322835624610270032936153742537145867440029642788032445851068886132170406554377363703033370813316775356147448805116431789134588227928175941279409965330542721046396718668086801172689695856353046640309727083442261339174354103020683545762771233949836758293236347490500817394000280337649907900029209295842870714719793589146865927488692876828910482789433426736118967638977053720299103718272828383374717439378280184195766600859673873392829075096692165501022070211913699580243960957443746521536627410402479250557063477777010136652518392354794890017593647432459942225762018812681452103278794324279293633808066367923475056490529969381107080704033287733390510913022495804231613030313850448398521951289179361565811595227121961524396956987170477390181624658755567958373378566871931389179616307701816441367200609818000876039475238975271285232458504941742493165872574120616066759349277173139047733864873716454501034639720371529462882300145540087385506528822803273693279336177618069138999996919439390490927076777820161697063322486360447057515525561546775798173736340414267080034941789711265912100693448924195866655492845735246699174686977392158707236137879978658217931621313874845451041909596571089066265134914451121083219689685749468295276964523868830683292815886993340317743141711430177416910651443446774828803343599966301230762491376338350282374888158367353317306206032097832937593861786295989058629875334605616995583331898218307747829743908984541914214554322385825820398797886921841720436425729990905366642724848561617380899519946035030885103453568342431496985482041083370520454229728672095841864694660792162988248893410484325790517145012326388102756982246268098267656867397774914424516417248999165376761509839456529102950839232424500613105553356412183078964743791775943012795997223685244883643289781716392254287462929871701113011718679133326747658119087905888101463860614005353309132226153612377879649922067277834532710430125734262714159772827037328187343902660275370618729643906318912416260267042283004086541024913216737060918607486222079868640918293242872215878746262511558137400474037157473534688946125444082963325640439628596969131770761924192923826046494498393632756000068760444815559787239257978802918659626741117487176765182226433803608513356834684800458619656272380451060659833962886061969697105907030066588641013355205586383708340487964369024425193426282740475269551110907903062424731144305271810294964374226640414286961040975056561460734080674902579044505399112043175307542011655783146397302101239926769659644215218383633379361746342450503511172821521836647569917945160857340414019425350900167802624508579461015979138783330394323815865003649178102998040040643718165446892169950474673186602121550096751980776737971853222248462041158714555902067169237983525061021113801324900760287528700728539825088378404299422213246673721650538123583925186623043771974399036992272483562089906481669318459368952114749306950917437079454526571636083970050395903669884780715504978637857019428164962164770842683892912478113040688352165786156593330371752183365031832480282078500960762008305252605292846933090076589330180577550490729657886643106467434714222946636822466131098758996319837270192551996460802055083012204152471223742179649348458961382491537510570816775925978572756783220854654205264843935254435948320460586319123654738251699377059175454153735512348119708824451532344307073310279695153499483257938542094803902509545901742064354890661528988065669820071055602681324258915472250113727085783786316593113812543550344536469256764644344593374368038249637708429113786662416413616700440654118712178504372307835636471054867641511260259303531943902341357233543084734183548559091494280006578267895798671792763417996888962233491641545574758324455059010799458124208482249609206203009306378050688434784982586179804014221983685693639182407503192356034782676045158467017101894787544883143806123987767338081459865073069824094415973436320335450858092259187156277268993417697568165211300468380224256431920960760496608294675902976330180215914262878043781453721697005061768071143433349380248592144305321616319180992534269124893669238398480144599582197137244925617257742055526246903626260367206727941785683233832546895746131656708331790167386520251139219245129652645709804369085072565370417071108151853917145732864922269801905761118708402782877735500031627926384600729200709864313707447009073264975225396027340692193672510921936372769041682116318617945518154829065711282708291560482703233991164479610941253623909559381864232271014539075346186892672681918450266511824738603644157416687806094461492990747051308310857944390672271888679711089115013250747875746427358222767604206341697921853604726662925619109513020140731249108950604414248629728538047830984109442213248786608441935562950365089955502015936863766669864952224345499967119991766365840879346787908781154477339745183273887060812679263730094275167147940476579441523182279992741868409124533792014594809496666543241017960428413461176418724132227442775802957479740352599859097298214862421795169526027315812738013582457027772842279923257873389394613915631781582927077397715598798294069720482227682522877425856092417431881927359867176767608201489865087955386887636541070881505725886506711633811544744737851620163033097557912955553874896667093611549252469888655606323752785370347736806432447760122077017841645596473968786150659094617303873634125570952896551391929202847970162306894232740116020708354615218513742061595907983983076971573538305188301193747165148569135259626046418893389601463702482335028534308228829361396989462419825330400098981650148234934582762135630618070283240214350081100716486152119167868621060182260954196202672559680656766214512713777366950416166668522979703369998094012917930659438366243994833087781939085049396994228465503563847855425051453675076993758103219588645518939719336278118654233561638114800083431738000698219676219328272408129227330394548367823751017086305561746018287371298390048100248265951850277126689247024257967150965771500720217066409827613719531851801564268163805216617454605586167680505861145844082885506851182660141939093261288775245632139804826682619184061726897333369970652836076696714897095037940535923769936454546993852068664848202640417876616756197557717581835262934055632696440397198633677832229393474596412747433439344986534486424684974096643488426524672825372729566777926358394972143771941381231734168192846915713322963930843639359663332315453064639067717660022737253803402845626971993666813255740072653651218549345028534292271850703806671404800212545547149542019272837436735124932909101018032051949591353186700356674893092391032950136724521573574816109608378521743640533594020176499910018550932531956973145891945260656085303939704505539602680361167147535996219243489391251193414879377984074703247872316259425798483371639832292816427576371941055605325617672608891360558422796885942431443918241554371913518915338052315999431186750638209345847945706850520345283574001343862066778278105748904780183497138842260159545461507655689755625684177577716721708521120679495973162690893356677973143720663926086361362345094526906011681689351793058883390474941059440728836369663182988180277923393283335979436385120415664001646314426006721752808543985390167629685365494044083358210327447979875999561160569207214000495937934217782355079210400731451977783385163771032155723986506782651719712345502249982828516147344922051101442858500778599464726605534703389088673128833994507599205476980489267409281056973875620580241971262911101418919344198434157732009250240882602824206594489703894591764086290638031930985952298185077102281903622670962913680071487178896058172167009531890925380432602293298638145133698158834721615665671721740852639463256038740288962569786553777271696355988294440030220538287568767137425934601057424303677117048982532223126170899254615601183883710975123753523857351427998388415170244313846469401916850020075469162079734602023416410956804742275860274805690778106767470645483912338137160159682770093073815963659243407783996629405453088566412717342475797717108117634395475096486047309396046214825335263258744819076951915393343805534366141450780908958010738404052125595765257653548148752518699828958456895788675160100232627622736002201715204691351037617871224806891229208213382325166744230710021399008290519982008617945523090567542819992280938377843113286485102095296905071075215744976972504688876757054976106769380527447958954182749327472363703666517074764512831758594770986190063210290249093389334997437526162650207906580909672007581431582139857948882913978561458945691802196674140082025040170097256831250509837367064362815170373466110971299793536253052461584351595807730553459270858312092649527652561390273294744858686617733672069761155229551823437223026968571306202814524394734452341783589948436049047430145581283263842115297292376601554763470031010385494195360157030195420789953306977377129456484142194761070225256231245339611526757066925785146797842052292073463036553459273841780638485595334620903288912525856263527450071017574372532332992872259078895095847646550058860039310901777940066833542327242525264834616955626829806834573106547985430640630794256893215510828179273116715774105825706056381010196501632832943266185183204100841681198318058587643870022070047403986413199455659067794053967707254694531926550510637055294231991380546902379864650853823019873906640267023527918160375137893808288900990121882942306074441099316597454286273365206536300065105807922091172414435755068715578200868756514336105956589075024292162609684942984123712283387650580078462955808670164090744940247102379491349482361045861217782011224397362590479593831958845844964188625143040020651260887565957196610914510828999132655732391714475952424129809707222122140055595854550155772471526240291172330885596845895518662585366764473735759802069811077492970885395351721085159469862779362276357414292493742044574131956326792559901027675666801107343421194013206082725625056622669714942504623625005073544090128068265123362358450442206868052497143156756523591084171350935559062389866851009025094026845324109176763957127295606077542513389770328986400346724709371546218889594587395842429155383389173158271901843601604609773972374848722419848411988185827429488301278194033899831773416069111978801168907173070858551627163679039261258280690289516617376902447828734401738178455014448642671298547555114130236650060727083229162776783583372915372603426040325582095551614875890372367078613306698158029190810452169655178360098470591269760465794658529966172279594949491615703361115666760225854508357260359178934492824528264812189447052944830783848713920364509164532441111439308533199413294754124207645524755137386524634224082954070106968822981541656243014310792582070617709718022449048518168696425015445954076739334304243063159416544437711041295409446792819502453676549595920766605601364844906295289242772755827493695901247070804121839218047686799724447532037171510504668450240548290816606463405247468573022464466063723716464253644389122665495978120486047142407320069977609870545271902891483059640040020945519992231817225504393830827953363777902077558826394446576145002725543967179435013727836898937941655752488098519963357391487689488690166340721404637543031206061868821598844517376632378175290932021904662246659946818609717262612270499252076342406575126943748171113374600164455027226118861981977269901046385563625189257213454010881190261115095536701648595750273393810524147829246415069051850639553844222345529655008975560529022369936781837607722399514683264908841722132716807466347492178245242442313894869633829974373514393731901834006535497940902657829615331072096862171364545196326226139457043139318385005062016435907686254517647764630494014909741219618032399876269398171108055258556809418744098597511531491967436953563062370086733992088461154954943611196672055554689126653100761797939215922446935379781805067994164305729135937108064238902038585170952736926361117307476202519821376350124665563584529580774578593458393736454069702894352839362112358146665036130614037938536647943802372191034137438699705247559737378475515813944095148845649881274536525851413695454904649548726117566020480744111907117965882661553796171673527384040757194002126566591174283289075420127985185337382657423759826334174795101014044059887683189066765418736716161180441508382917268252121855911817842449815053831580165231601421181362271399357822118008140586868710511551509863917029392704165619659352900964498290392006578935041347967443167639794908599963567576840504904466110677548390774034148438055500408399907973234393176852382347134951472043866528548516054612614527465819564993393629407872505901437591225635797772623220360683794173711221689084592596989447982778883488863796091940307826231293229523710080606052840202832397173022912534249399710242000009453089028608810384099612188367676403832035386060681398548237292830383213988158160338062156770502069711275992493526119327740537623441510360128589583512505201367460501407957633351215043388975506186667452461869813024147289697085892449257121527470007178954704060854649249465713585906608305321026192597183434777560058591980427695263340991125756961502266414929809373204514811913783955320707400522724236701409760094574275523049027293521700658890881341503579655448221677949541584917581965686756209118516508427647703136909435479400747752164801047890431268117980359192360164935170486702559255002802996990782446205535381779918050623803912964936769329246223118957857450794894305130751725409970171188329129969957895103536065950895299198829481263230272284994082271116906689156059374335345155743251185722135367624735823383398976475653919680209656446109057555507302456449287020539706024874999935674801089248099856083209526823717794350473266210107297950549756636563838567626090948286285621118074496257093602146903713812332559210786464328493271666169657028250019840258586320733231061988811310332805762227395834207730687478887115127261504047338988181639165040321502972515580417864518867794680162391861569908285493703359273263320609606761841392860440038402860649612886572048165857500031617900264864246646869499592032546505330781240783743018679583712628861106574356829859344444651383309283579521757949135716704598581766321379951123713459329373793383335087417311012562088433081988279672708684128572728997254553728203740833429663813475488558658073495401698564801201123003477871001694550321109902196286963111583370228570938307433024568999677833564176787526816852096482703200310803153963794655958664230496701510705917244423196982987801800676419534343684990238944254021283337328000428710194992381290781749654048716993698247867838281793496719892000930419834871913063347123899669795626986711123850668941841235961380057652469778555874496004053921406090795078227965539475188232263880230012473018533252551163351306660312676342399671811009221212042833247287194030789134548856122721938722511593039775117173089684899535245193815615044241226827718859869936057012452982574472006355134204184899681007189139066505117880026951929473738922381592863690179140993679148459651845247245754618205276837674836697001649580734415637518901964401238594384696536418505853721569961255789187124285091986290540060159913274322066954311065482470384677163528187816163676686059799046426895455413430288159646474015306531886626126633152466050937564888674718242402020904965544283877448636257123058483951059925132352798096841866361714698660944888186273013059653060871396467841540668324572201779381556881347836386494829845292417107687984369660254815535933186729960397079130659962712091740718259194329466664717233236806872418042408115764595331610332723286621654149999816281916529655935528317610548100854378066451546054580183497869348382711149779800769905592937825220905964864156463065197838177915101580973326767878718076382478413739512344050827570680930195992763279867018994589481673397448361171273378686058579953962291455053781549972183398740702837200364864291004004986526012052892330569648146586410173892092088851455296742465285134771095523959390195824368665924090364116716380184616963584233462561122900301904332280470713720533597259706930919796085518257357443366033125008702033393500557681345048099458522035358115154872340023114356764211794441133498707325373465479030188492550912679302759401123249850077598984633963637539083142562746066191740444816757622047583598805612669162646177083202922918477763096600544952774281742029674293056246300143471808804068906606252869386407010781315815579224960842911438888950235421556410037801084532815762030749846292601089113186278489446577688609920693204745465210417390664766585031254072386721673145066293407216152551647500778864007861766880436121178572484343460616474713196259974096112709945642590797491137789337600449979745843099711561090958009516432926742874780872955760204822444790893234323519465001678038379288213403481880111586853143309244192968164827809851199520243935581561486073764318491960855740134935491029483749964618076433039029507120350148511008496134992502882884340891970420973747362248036069364264895107206964870222334840639535229756446878524149327589608561705845413541946169475301705904347689347071700136389752161892636631963444864098492346482708965756156332021356324162175899416079800736656789717258291068103354206763198108357057838625359245898977205455236579091168061671228496298348067416686197265933502471747613247501723725737591640625926476956032523169391094846387987079957496328011442473778648193717551727907288766068153920991748962224594754966252053524435340133947943152361212206109678252536748848585127700201890486597046125095056300845846026104482504001860534975575921565090326527951969030088120878534485981913268258274490111417424555034464708018620315025799522801330197121587404877133222826052084817836441835293024125857679123135457171071267476110843902423990574386049792560319051649591173131101978953003032618025206253181884134840001824423516991819763638048967677401158268365617880213930099676753502917844073146327047060913558308183886943692108751000621536493271110819015719804720626298831637039673517096394398642011850359348627280307751700333572150827777718397563139935845123957885665931129706995038831023880876762865763053880381547876516790031421620779068603484435106420472270075906590716730566324227284205007998113498749520318478955632476293950946677628862273404826381886767727922127352258239261778681914670960904701864666448306972217144485818149009990895163015309738433595251513434470006159941068252239482612217388033112581784863515661637796910733604716423845509344782554619756453946688600627013567267516895277326184694271834576676926056839084978823031973153231727598550961142035086521843945939943791083864837405858694948851630456441031543408195032504340401526703689593518737631777512638708110368279333622795417480761905886974917968255894380849109711748235364952561502255362541588983940097649325413470489648663251429754699064057469377964558821325846436065539408330789700476353607144402107586422063058875031547089582553996966811455687701619061715096962203915063000550904235743038446145054368187632990982463428549508542306289521586891147165100453134978709914511143319527484926556271841396669232312044816349848238327576907337279632990420319699320827423804940099777410051839574974108058903812105228222189710559205269097298129680972901043196930123900568821912283236078084998084451246279369948754309275251420266252427290981715250302699911956437750181978367349985676145842252311447151403300544168527216777374045868201998734289544799073390893956561507036792581534125958175435711695415084992178637557989544752742698934310884008317377074174429174040725817153040707421747578480578567690373595171344827384290827257011669838766696456295736635195844722873529027770418246964575088643284955027133099831170484798469578821267154441777211512761343063664360981477947673705860787399177160415329534483941860835184691021342144032243901560542939060902056067121125727568766776740800378789218800890772866234149072982389318805767128917253757772259216620455737479090925919613947784904999720143254823155434471929540049415753356496445368086238185769796337942316201130816471348676616488961141741983828847569159157890972925070410096251038631549933349336440418766790165341374132298408548645747538245881326401373817944284060537411635023784753847544080792466257765831095490098229169913484946290146107240994183549331007275653859078361393893263924966668160114964033722965566663419800502903630317559045032504917508450475089666412978664158775697625373668732277701530707462948681276775210982274658963405401148217614534126286157911617945122060760064706540475922308875963785721971259580427621286761858552661495737826396003513592256266699634189367360179856027356791070508089080608739979260986834607129592613039712423602038304812132184778651229663982871462327113498096988219914056496171138100185403655584913720633704761587234064177497853650554299409754856866523456760610244659789140620126549613078832880634035127409807798197772117597616075900183667727258474026644911430940299108956179660869886224176383603356359922177098906335178850256839318897015857830962434364456521906123842888426481448922918680510137328777969301734330550908487663738172276832455218532593858080927693763559798294093365134592181014889204181293376346501393085834552892626795352761266741612725895124915651497114724564219842387221168270070090723635135600421049365928470015958181836967285979372329527735718301417138787338797369612277447727490225770497205068605517071481195705631641377611392897225174270844519242571052877508942565874880601126944325672290777498326300490546895007311041940261879513634862409687080235780622168770400535845320231844116364075671421924689902606861009070702152654029864360229512698852845007850029234643516554149920895145324156801738903052033931580662918551731587738702249913083692306497263128162949368446188384153486715265678653469434762187402146124523072406798822978925085584827214489478122848886330880955789275517938527894860248154112748062165387379116760722326233179730889676552398157215798579685212361116594595087135434040203595665649569744750301107236512891618137351791618165526773744318283215000970666787665479730290491241238822181281262534082828896871785177206812370580456054155340360663065203151873989423691468432283094692453598166092149645024327350736765052013088331757581509558983671659567309006626112323028259076183706827435467222147124080004475816478608851708681957911543907283841754951243960120430595621546914656093881671914982539487250042934168130936046640613687250110106282007842727925822501416161493405584876150512780464202562115334035543781384813677891096075982238701090046663204773153247087228717611955759610125034976255818339224308803752108922691188826605172717849494147119046945952270239934375652461671427027842186421708223937402746798243854301124890011395232234958073221527226080796948975948736397640280945394453308648675444327034468729459566771234528893419812902059332542706057584187438280233951764763728888377349218548357587078603443208722357551405112522026265144996760928288826313025789170712412459142118741699305793300553189404997415962353242798619840840024042915166672652611255350636381115993259549626284791452435946536782686123954115566431352650928941971085343646822474142218063593498223991303135513158455603018976963639338777077958578859425970338550916892121960315175506695273332803743010914585372900355349227638964871445469327788666000319917828853992501494912253360043067818883247741271197261426196856591925072064789224064157417802042865737119684347320708804742947042477526678781556558117414467831521396455693629712886255485776278961889465287497363732673102577449754358994212000151443676110497891041646647576883016157439291419951448105500165234987646552134535369798359535575462168547456086804894734233870340670972231095169501908491156988029217056111816777994370138069850126618205663746575232079724761783304161578404353718010328386431648485680537830433563150807291170743361423667902451663699106042944115464632594604921734895686014560624247289023931802673498782188176455373861153402092340513456358113152006024981669929919664653372715253477030312627113196996898509349396670828850614477122642010796437193468412195293556834697770526686024525532836665830408875796172701913350439704936342050404318812146107134403848251952759415494205233419099542451356013476677475872586905380974917789203991748858133299664169745306203662312733028542233218003864396529534832112784990672386172052580948842372935016779428757893891164466400792883115913971893272370653824844980338206099502382586532225230591503639783284940662512469881830405268868974629916654370246023899760402594693682022926368223942077009649532062783582939457575139567025051793966642595766282644244686356127265754699355030691020648471365319879500845369735394054561188674511597014515608372176397726539049229098055469765302074461988866681090810799609417851546656209230668470025171463812392154804124524705183637658457368599481567443792082889682188444131175055623993305311016871612301384074909707724872809831264030517153656216315540692735030931702050882662116939418876337400946250657316727998156174252086751288368133948234595633024071025208569820693393678860842558792006550797774887400632154971414375939709441840731595880646779588759521213818266156820677780897700474405391918403086681156603617267131064252825023620179028959614729336001530735529593445567439161930769053392754041578359039583834719003443610093473408868992243971789377503844092678879600653325876450318715171320093158154049227147785508196583692949946073221414343742640849883690536092205934090620030552071708233639940837803708002197239467866094295297332255087015708738281809828235903068303039436194948463534150262294501960578904829758947451785532107729082575702143386644558458689686162827782055891034234456214282962649923556508970665002788928966502499548201678789537101210805385726480858989480961157098687090916436572815819661115956314929339395591112751365140839772557165194715583060263538825910467632177005691424249695294287626853458336956076414039176411285118308462708697454593635823080847899305286414997251669640492262569269981548083996090394299965042333864586573631196679738372410129552286117604674634822973638053405741056155156788476055242478164211223592320140794630944182506438023571722587597502691925834515466304756776532610436533184447726213719015813654590568900248135522302957977034182685672646758579464791011237214752666232981711665511535350672964632563615406838318738016953439898440029871355172155212415129196821986399265716044914094421060395973038524909493357475740893918639556186323459135727545423750183959148837574568589882279641489552582673315666807742782869269931010196079736780689107513402779444714084438983852185583171699968202767423280051328461010499061516853932510287125889612505179483901038540481266180256485260509276018842844036728933916366238980005974887702115337025748730119399284789663310332627377445036253860106940866250362365343543982131122515042169741441048742947240316439084493987948674793097279690198061863313132453032105417575911798481254377016946031916730982708890744529584216377922737275583567320239813850346067110159587645077012520050482960466238283371251692933113617922988737183816060843828429623942730570510624848097755070483462959235813126345959471983111122284272612975037881697915575812354851608946530372722679126462793413211220742057903672051731482762571197221251849214270917696371710512053439557330662781066116856892764222154365695657663252720416983947949541732471174906862346635399575525737734115858639921529588056864955901860438397951291649986925446399367600448571832926243162621907404700148566336490533019425989580647802471745350561220063128041482135407129952110125451874762644293901629842964161213097995052498046333437257375477738143901978784552540965072373429947526833215348325613768555786262925370800190998750832965342106191161577423035580917475485990894097969171422226746557448637127964475499130799814696952332106525066747990579677976903441443616586390806111027938449962207259266639079722152417741308552512201521470871386406341398992174517212788948887405511617090008289035608382362466686918915388947244175454532673583847301336730697919829077815648832226993375794076175334475967474834974372162260242731432171516005953075059816776919796122874242986148368881276134655670311535482157188283876061887734124489416398857776394359182073830548097716835283476963375476459505380696856679033440593134723221587937920470360923383373576480588724063898702185424287421789914447664320839783520839575165059942712401207545995312553610067896058533123175237791589964027029718204544396977693124688613237052441546453706133691895469215856612669617426813574492909049871805748677393835001950613880930343471728561420739162266021003044234550826102574370007428494188875821077846228993729167528051118313210758491667456538970011577329182975265192507216146889315265004876290488591108692140116713327098807664598019118392724475573450489536533094749313924754946345415585258017470742591943748764160626704106375368433350895128126155663014039424444490848865403705870399390217378276850373344974273508969325299474902361669983419990800856912083307653072146255139376086032671163673070813123492615531268942299275597533168289091412186465454788580890086719106225957852690446714503706104658583869088035027829924363070810352095990982303981733899018083324019155441805846277181533901211331085852055984770056341881668545675436489960655905367494666894734387285943137264373172773356148046716222167291349856898592617835713146358877285015602972178657653508323665512386438109068019884023308151414697820944684023778671403926632731398668442021931288224772226809821474893696975992667686470512526659577906134970921312000922048853618832583622567631404179776584216452282987632719663430432795138257669122515232971443834517466914481744114387893763570219585975689979751528029460323913363850963183206922158148044874324748793717113926768678577533605960075888467326521984644033984346069488439779905891208778180691767105835168054076064462880955064685672000346949488273362159331687588746913278852514720983017359457834409840594124825711641537947253337901427684592551128523649010203505463179449565573688369560072203008159675268883305431577060321813882502126477649170967454517993724003533762858149775712161740127519390932860004522419725396504925594491873006567235415977572217069611590618913048922698198109226854769371242247531853246184493969222213837447783572580818494206879163362835897573448070859528179481635666631461725781365582714534622892344306062331448934565969509750700976714173982545362996788985060917291333046229374948183430519360756775441580664426204748964770634498466524297820228167723441338769219246557327354449092809772056288901380283093233641404791132553163125001504347692438901785492882367171447543016675628523807929846671330264113059411380495078275803444099482446069632090378553347490914050180906097254315445144356390064439866988535164626526740957483529523638006779975972420361770334850435436342612301491734872737224916209814768728679595991301579411210757415368821573912786010105284248373068809626442326152472309867895581076073263468663190217903312297285817984299505546481167921543135604036324226395999670796819765302454075413592453687617191880349001988998763373162479731287027801134758830952247540964067650200294615272849985060565002970587476121766393044164644437121787088263338394837733888107916449818163426645531719700390228136169122992878879365739377309055060814485814930423969592293200279406578986077657836461938749810442394036623730046065225052796473015157988790615573315224816870781734403952571986807276316879736294711482648033245738557300723895164670354039533212516886723526528789860698701758165542618267558926168444293608894168182808913841411818545278841105577171388475661960499076696520349515178394159977984041495251362787157070873503328547507151597576433817406903571283075376947174594714877758625587516914886442114351930122244769826547564905967212384307897533667530654362115448143573195805720003961499455803256076806269322879835945896000606970682025070088707170830424680376975881224574670957859030924300929847907430461009823828961565834405034260642917148015305425423639002547578762067533695713552811361551993656962354106705117964297470253329186027083719799061259491275179550505502019748634809946960044540151437501000180041032412745695683907638529141878411302495201855360644202393776990072882333013979202343731958383102924242557730504091247513865455376012760894897434311682380558941636351563147697316942204882170836140673640765001192785559148831218468530973016208667294872698402521880305038212021333238078498422445485949088645856307628470036088608238061830318904200162810910000185439740361097344497191307702916161267679449135691307488502217383783047546057538063455687335050565163664969079932153153085070051534294614194709014758782288206865194493899788238222238165126210448242523538259401272013573934019574352633415431455480498403585825725801767367352867162235766130928013845690177195136157481901579423028490115857064596755960023393012420527159229784012000228148782516194097174118464780297257377687819682384997587510956289814654258237818509052341410876647753827975950747413383960013510632551483910370594031472496234726396817278229156123610909881389508929318054164950346527546170165313561651191115986690527763882843862803358301870897844188378199877840194168041402103024032729036109372484175770724161156903710879093663363051756632372706462746875094783160227828761541418806884266078434855684522337820154467433360373271799561916308604163742032452808904381085697216447260069990428469638429030333783029587065378357159437266013903043893347389671432688163374309418859735606623096991045701552142814364116217602987508326802011442531186117208852270636142641850845255340123950135883459461865439886450065197691582075107604236055330758785094077460371815070551156513611012659763552232220493407168794020687644940087486414675185349630480966850818684903953987340115464247551577425475130652036373185723779269982542495348212254486877349889542205625664618374944518333010580627813835223618760951271656252734593694761767796401768264322918374838695776873987003225430107987089549834580344535706709394140568424042744191151859644005124570749942003152497485002764729894186402999983219660811215413620858702892125556521207570201524451995221033963127841321819621004408814219796279316687738409680114324340912672605656738102714638791024244972781527980471938267138405196261107488664501350585712879151020918957452610385075531627054531914509231613883468605011881709230463080792466478960331152936265626998714278783386235370956171126926938232146031686457133759797424650526130318764781356886255433887300347662902496381629405195685278338029200105416893256502777461016051559314925963863744458604022319243071066879329121996677900604947337386921369740848669252615981296753312923167643475467636900774199080184253548428350468461842707041246044622438184454833442721724956262098444278575611181877200941923006552527789172974063475254672390417070088434858082401489560471802736334636458000271990653335901222393913812263969559790471001305533845360951980208223846234212068492015147032623409101045631639250238285001837337762080395956037711888896431886013921421273138286510580232010367132257895075270934197328135415368419790654563088907331718411395367926761226570883842184720252228066812611607499295115096790385561437834436508938054538780716858488855613266871378760118243950642730448146562344762731748109771857840041788862607975717873993546887740094303147830501889359861947887150357451365002841183953910596696785170710092844012295606712508131706135353242781982102322978149891150279756741503073434640580148081024571665751152365343404629767806065476635612638827423699964250664020167034236623217328774013345045291650695781527939717280712696078394896147578984326185958572444171972496644518244334761196507798990843109212263384461992072624235269648956607407473680805448458444608987725716854700621636912929581141269510767979484842760257035266247379100952350164557655519255712531427535901881362224266481129749708727913901638282481419134777160387885444610196945862844404485193692175502575731829255536921685819972440898847586037086953986286331738401548428280680180337868521885707832287444709956407473437384849343871766201883241327087698862925557857440004402485041821001896105195592079941155369804280265102674968998031387245986836556583065594879933298715965442378565780072209665006975015800207440363586001990595742557350717598858097665984073891029591946554224135428430427705493305311874092169626491011862475579190539065695101741506872917029498035548268121470301294290630217428826394913711156891761500887421036172586294484531729164418767211914313906145944033990094161408424050910470128993461698567994937864665950536823316352436602054047356139104038443369317188725714607391740880187011314048596684630725599789960446237538667798092633208075711410191729119211005335960789375396930066774206119515322908643954712213967445389143868754057525810502657102589898454981725467790063008380593755585683506380420119813576642815292038835266873149179044524047747787587708006494482968151054415395233009091977640521100257299855312689894495379534612530947712858121346696281871210733221132652072074659659846168762460786438797603797274280798630868526608688544547424808832624702320086236357677366078776165157146934524997500699930220517146396173423828487104146856726644240233035494086423213156017870693635931070391981595132797228403539347786008480530498918357895808345810610508049919385897777943718766774644792485618432220625996024572697468534100936017017664095744601177533620824776627136850895268841314768927746142986314652633654900292753919118234579363189317811418513651580993380162047868181585707707201249215737506616531969175377613244769875234551929067210783523156037771493217759047299924930988505830792778785174416115908012837149031477068744571472736939278374508704720787123537419420125718415623147162882506177293301732140771733321307508448131867483210194697796770677751001992920723906441506896794018375718503634364548946948766590293296828445197593633594036091843597825274265011246310132187139455182026510899942784129309914630593186195347391707500624801570963974969275800416969866634695250029006607860808600834207838914442971771528649440385730616767822567527530742273140227811341910394138372223755806009018128894961146570070772403593662795635251799610532234509844482233711145311209057420686675249824169844304365023050778270042990585554028196089273725552201210934623617738571969193998030736656824288782986442047295858993710661313545028688781102683764421765792880321109207311518035379444668413692996938473506499969718023950520949855086630370675191350671348231773340535525844040818002901652162132896791283013459610382650246020088334444538341830399067158072059688385240629541923502605999454595945828702031793547924582745830476854440057967065888340122730766352379016251276257982351727315545860576684188875209450787226854361386028898423208061239965168804595996516413913643550877058441522258062645725693889729346754563201237912178605116917416230196117126457508895902123639633038618427060499268934328816809087496356266698101973354552607725291436610953787740124166506131415599297288715537999432697418429848077638285062256392840428812646676950723388090242866222550104617813068122245605304316045053754808707789332453816856952493196238595897726361134617980342542768078771346701470478483233338089370489476936059996402399816095488363659642697266695856302006411335102035277301483432748244693594981519378797834169443184211516014280408066340745657150051795851527204349314487574482957304875913194087392960066855256509411208801207000386479815439053007878592099405565362333476694818563705954052923703827533532370365584404190987868295570915477043339270457629227241010862726027009782398502152994880794063586718055923199549714674418064215887677409244037963578012507374458093583764233808520996844705374889497732416787378551924758013084975575963614363669000167021650960975843017283849841695538148964413286043291365705414990508652365768293962873162721743512374620363593646066615180957862262883347640623108551642975068739992900035161932383616092958421306260454082878932811766124461258925587136058987590056650979017923286986027843651075379354980102115055717928338381118444610014332703981481334525806247423754553862980711869291208997057426325098960629676984590746499025945198060862553177671515558477883152484449993178181795697641847150769347800466204610768528819362194989876084565851202103780748473465641313385170074310312775632126619198694053941804004367132265748359766531684946384274712921074420658261852378609841789689238817185945620926343379364383800817140699657727136214390928363748313108304949547776361940582826238127541261463529414659517894017663850835696622738663664832422804930583030151083033756585826519200071522068591419738645923720237056301347032473123726290067105583593219195773832061993727215679129615613664720812797990721530846371625790952787243505324416242475085272918335267313403309710936121217165608968832633666947789992928159602145351023368075958405690585776590981155250038393768046203177825550627581968787133474716131472655430117245554857952855771239910104003466384061302271085553148396889933152528783388356755489636989727766342798891687810602747797150676773589734694909087595623227798734040688268000969066160506600493155869935627394986122519868387305691995456090807344158154592060803835339391244587734111190904096656309941385896615864539811222073466473605314696333788468320463089854285785769530583769698390380013326374281425327049123977761571486346779469718366309835727270815717123298653169236202289863577905960140782397116426191137992965481424333197915430089524702661810586767185355808207898962688986203057383541474471121798280178165489954988658544792349675911831266955513942152748697122907369099256816860224019045226878998243270803668877200835968315127819887673215842834418899247613908875124963480152791145950150969502700012870411662531769211130018728849717037343073209807394123458497379081422396829095873059965670704434798333356029488950258647833106564754326983632796615639148147049610937287604143309015729009026006061230961580832646185881864059011550284291202030168537349209111624195259313338927188209848238671203430088213677361629193699602396151642118064011195439574054924597610909295321036659379194527920150085547750949290563381237352396859854816016517535803215996163836638828208537115758235148660021028342824566561404684472531424286346293619581549297594789259490163820652268552963434944226507720169242817334435954937127500787094263904252444467667505122983783652225430566177621575738510420871213043384647981267257813353364842517811126002271418186209369425141052055228774469507945978389657587135028075568937365027654924469066211951640751450077749776250552707227760856579669637490211027594504114950749463638115229360206171760097560753122149911302746482236195366643054097028521017162315993557910199563185772817488368512644823919798161043617248023104498998209768645538660160127492855233054550711254717438902409471926465282732749295375351130493071194521381516007087985470806522837083335646676686164694980596144536195511598802364990080891027408612941321213583599749424198374885698243175368028817885500288701888686505661992320740888423776097343179147214108133949295988509601068292358237002343797481944616706733126623302437533516232525217666496390412615459743403702699267960047773061532668112725050556109606664265982520359136485271006412479721048353534780391445256430503773017496925582073856825734485254138227427155604885700329009694915432024746156248216854858404973446221732045317128333340716630832798397046712293965783458612440667471390217897297032011000872343255938401707697888847002228355668573646770234404735652033074045000196143302149246561937515151648121282792205846415600849545953521428556972280795089909582509661665221947218281064375685846973932342632186725961647094044523370188796307370557607321552987499364229567671092145988535140685376036476623859026841449034796560621178464398231256253100847199497253261710271105723498728254748278962616802428896676640903002663987635718852240847374031918881462143448336298898741549506876949088937335943619936816385935529879704386485686297580378747170289344244728851038625303617355496621092919731494111817332755082123647635173795078901121122915772865052006718590270554680627548447418389870773963628498454481275208538126149067243918508286007872655872146425407344405651340000739431696869145756675777640553410988506579398259239852472698908232042170488327157358496744092200100779044754844575863761437579686334755892370847891465975298087116192390584760992785859932753621606879269090351897816952840367424143375083563696017840716691468357886990707577653765502367842504568704232225136597936358620848141120100258878692117491257088435017961289162503359952773114193504835601374837908558504238416568068125369631916123567045633340958411543640964601666279780685168328529884485711799112842974176634403020137479580328784827422175809558284670370248821011464512620211915510576186675400765710721312408155371836865682113176658995662945321661175088855385910146255005232785812666740141318820666208050961439354099054670819344592748768486964745803290485669560915432803977093758926862141635836111913771103039303344564399949113450313467453482001849659711766634416685514374258031486567371151826413556680617483217998115628650541963372073272979223482664775708007743295664801785093103260280894090182062329755965576768104462879940273792273613400600492401357932660325278645987924056486083874156030502715495065806987152928309270159008326680607054062343142213378343110781154556709631240011590307552911510795340160984373894657938545238912761277447765014072685925490759421513101997377731672213568646064331141880342011200795571370087936332625807476979637248464835372597811412480372536117419901464172069707413381400178623972081601832636028822905008512358430903018633874627704013386496355476048081715180164303354600413591960781398142465811930079175496219200805453598493989953490045824744899571507985586009889913226391126681671387323308151400362583749165297610264502809527667804297364309995446781880325307559330825968895312594345610176104359119949112026791332433689054804732952474566461564190118229163776828948480546771658453068434722221459055786825869907769593808967858505866282122527699573429852175102497759022444212600589106122992772393130128486024021370172313190276454885971410553277930192493135451786105962914458348761048671412464157547915570617571566777638504670242170370409934812918632257784803303104023515476338867902704292002374713493003269839603872943811364793951594332438191487419936174447596415896132279950486631041280578379614360294081333931236913790896856380745638682716573574756744832415201355728340672937526108031288153294791415827879023660378957204280889964428568517199579610673761354163637269203728221703987654046924686947326498270194952779091638782656198748819269613894045199814431971444881437389904186092027531163657177462652037699944237086215785052198199773459445097747426796784893849766843021390122966219423480096580136649809234310408732053585681014969494969968492554357349877222927046964148214369677838544171261035231780867288326919562545839841017174636343390931357498064235637257044700243588000845461572302666405236878411357318569637706910774315289947414486646851312294779073093681685277713023104961257255773559196897600825968160428347284199652544940208701779550272848274849545023139616371052542898285696009357279953148669668776640306859118213633391005349685297570573020001374367376672500494359018955402615940410782178813496670599382504683797165266145873684832613426524058763897766126844821850477604387658461120926930812180194496803056588706758101029890370118958884582034017336566484703609221776194999649390176280453385755364175186975328768216512634855527384452646271815269480010592602053209465272704850450975214234521429957556767230555101364984390875077418718104206572825424821935658550683788962293309724348895634115792472388877426886616830029246089416287217432487480036785702902718313106616679621409082884540957752904079306655577703979355278974080531090874129746158962599375839859513191493509507780930672216798948898216624339875537063608464823325719036542927679045175658158408433914020165956170718785036853339514652004737348255980961101854065518330605455884850326718628495761460681130356267842702436664669956377047068470746850623701520942571208745866698672362908404890491784049348786282415984876843461527447195772567666178237384336387049925748410729264111885950727606041352093652055435991972178961771977246802850379512145412641871446576836544554664635761724769311747470904914868326285315533881978554579877371019015338048923169871548742841080568222197473697213088515415111398868942158617254019087568199233254720888692510000201132835076128199578503916610415042722398784438697631534292810109827004656570025182996192654778033585116165676646574367252351296332745536767265509661336514945492933072780277962651436446892908959235085579145035664970782930439950418048174020144264469612342229720814536330301140000470257830489634383257069085069231332011607619346815497019694173457540086819439396594960321509530263610265220306748928479304848460157497850459391495962997126726226587523295985945675777003102965400062927188263961057408323556625178302093152863026933332680928900979914643650768775100675683874065155645906758005193916416489505807296217677359550816923656905005359254529107260150038226140751287298705132302973575124130640069863956810713046758377854706874540814460078501651454108732201393499801504431845750544047384812108447817622497395465961643609818047335165314501484010721374058145681869678389077897880992034387326000146992933019156659927593532052457838135886355162133927780822726001036060685194209125809244274853612957341559523737030386326497608237944246659879297847593980334045434343054160690361476641826668314935299787717730610940400932953176972805990622754124654863867718910656490834082358546767975635106039956319006946626526368562507445702681089371920957693891607252731255632287989147399511646346341769245850590305003585479972546999424559561726286248530282043969733425613190002047257411180860066828885434908919221256467578830866174326168814536819846783283593244959695037194304686459445842434875057667867281601371175662466376921970975455705963949748385990908593357392251347509121582963595696518961959481349590636353747625064342546611170040326530831793304868473075423406174248040889061989157218321904514978234251316984308420087895799948976216633949696946819477953473510545656891061426634578421306744857216955574060064654413305229967361937073559934622680042315968895702858317249676786381607742462754728556138682091284602410334041415666381446573288820863587358554554638288103118492833088464908282044830859393073566417467080706966551542048442081782766597071697826732559582312229044462575438765598153372909333041329069675674236305126935136754819770937943133608786202939386387642052135623605608574712959832667534601996514632961237950496237991275904541024645475027763494310527651829863209106932073347614083263841927203887872376901039770691312366168567384999231840605114635182650913019832003156084664056683436481491242684492200681734671128437197677078255510678413447509494685006698040256384241309215479207408288100124378224434337941944643250446370549960704485311007438813055349220901827870172129675352241306154412788190201079291324487577184275415845652035978897431658426852054048039029868402049004600526914821501109479877658533536014712170273502070521065687381648999855333681337753503696889239547162450863652512122634684346439626681692385485908647434430201115823567718940463606557916670618586345819831542017641829723851615956726655000692325154238519481398098138945489250662324576124448933422679226234444036712964006478876652727546721667798109090719696645293659269122760927455836728711668853443408874696229887964016918860606510572602761623835776074329914617588841466998733543234534607126605847034467329632949873943092534406288402342478044894151757425139203831240630433440333744297668892204788374341833913180119247169517569113030006489332185264057527978809912854438091728780488479141834731594778831180069439405900274229058242050020447820630005055462794890262314162356914433275589921430025930276399227176289734293381225980791789536604218659296427597213707100101200875633965542112941945064637802704827706795518298556991119270894507018168693939011335787967931729563631415920433005539399327071175917032201769643331983296361317462640527337024169249895158025516300692991542575667854361426822828576737606853483060999990446560560263974857504981188121666133763618474806889212242803802463798601462296044134375283415635436738010977735674310421830997242634417899095246331976773996300662353857842387991559155484770638403849579821883135690124136892146588571777893412045203779817529312476317592134015356414928623264661736866598113250828991644622812573625960877589645125028823318776040036079619045683618332454399105353007038351346231744111801782603292510915321486740068464362218200094224491605004993202662202822032961192082727669363935373294394423603859200487717951412840401560480827561788710093498965939292448260164711749538083717413028194943957399058359192793479476067398732284090980122291901785082850341075741603214083042119440011204326544914031561545277399503870205057137114752459181721001567234906078607419461445985635677028276941305185902100885207979395140784432283386035190757363090496770326275088673525150323489782434550309608237908968303260287397814975343945006779065958481514070068778398456787922205097828551845219109155361930367261429679496348120270252944287820717829355566625671341551428021088073397240946555549914222325215697952748903935210596811580310574896452019601378510975133563004300277008729357455256341444887884300100090607698234300747300675324495628826780913617612780685381102582926808033993292348504445814127562873288769096633189284253031021712684380206650294554884753339252059159488921185360126270230993348212820227079950232390205887987270626936307738555760994031518879757685713352218725892806645537827755438351553873285785509276793213869381787995677271434314521065803010290063595850778398121311633850287657926411419668201872662519787984301907571492415233503277767329637733268234139131395694397202858286108223467959362280279105659994347155297068452285641950312835406087780922757431455052610847861182033117808972149834049476453342832740722820575923723399172911032483401440775324219991254542323083310264607255859449711661512832111044729529855623100588906241128248590538086822113015636309230204439505492349277674119244276286958685764439342611970685561724823435811346076668056641327567750071569276264245067416113396070820858248196282720813098162763447137366027109925308181193184678260152222288875732015026780423924321532486930994147199607823655187619339382458099889694273287999047808033920069076626170549773668888348651477044714156876339225971815730995874725943957191553031796096445462745719934619366022983614879698222027109270231827182948331405862154962464142660582778169040692789574597888726264404002476088153928953545579035532908464847554052821607875759708212345073667657006199985207924533398085095254424853862941143571991000325232686866585466457917764936592365318183874528838989070596536226085188238446047038969597170548669346411942091882333975851387060517397383228680474849010042602113971220989063448604894610729364326236778931952159318697740034037887536023126908931947384602404932700796167591013992539586058599397486120374665142030088826705940892263954454677095245554269060533797641226525425740710298229746639869625534995427636529780424779460189033532323181619439838099589744207945368053365186092189187420883508590150002203010807620390375479170075454708604048139338344255680905968096025206717717315810884217183115582826022405719471956638677242752247119947214425131984309099484639677840502664351427394484305481024342997175737904287814189077285841406810060058558059870475541077910116429422621494989863455419389756127851683638535649918844715297932952786188385891645989036291162228501392810230369154647569022920571157798723514694545796492045880589701960688932081890685975666934522185888307798347932353405272688057114803643940298593962363673130718025240598703731097979879409887167993798617612726239835384844562713122252446391667373968816304933913206119146674037762014489779155910407105830595431659563172387998429657559411429001906716386172515041878747971588228363401202219263556321625033048204733078417793217187786639141985327333641280760396227170919029072831420934048642613425042389623770789603518060198528016984879974316175527725984352267582743869764732881705346834585537409612581969575740622260323541377984507629387733826530192139592784015042729842237445233175211333164562778327464425920598524518369765540064119383746022271353144324109153443994463057381873430410360095947259911383414921681014978500012305827623888409449544258379731983576649877825459977576102297898448794239778831280886191665025115439789214785673740203334509672531924374051876340719353075036763453091811007036275674761878809803356776706368697707106509030255200041416538364439885561377675592800669516004484847255819055166673398993440441450044417219441874058480871497112905598180673701619381808017074213889079628869864488580406929357448416003667000723703242236075818069817490470087722172474961060260703818723991924670638594266056456024302779489828496282632117015919493004796834669391804937144514384507616412971233653636878154219445864465137905708876922005500208606860984371589465280006666980981285800199267944733990693415196330464719257355548098784995113422817251159378357935124068830183560032419940814125949505614173827852808152566283433575952771550288720705130115180193471377122495407769866327478691467355353092853162324060718918518574489287641521847885521151470487743143640174442218481911116222077808664228853410624184878639115160029036393558842803843664134335973338479085274214382249876075329208964506244669028674032708975853783754780702782390411995584921633212955237730523309783289652666236408944966596114227634773264573461312895779958215772394474001681142926326118599295181973575858636571075559980915985998727513580408520515311805594011826672619416538972979812566433655082054718159184573350201831640640645329732078119992533128699534688862510957855651542415019226050102761427084387866646770606552130439641665398867238264290566794729848052854353270535679740147000438296265547871615903546350229869311050125915013610407971742803531628340941091909362687841267109961723194303421135228671373477072151996978845035756291831127722942576853377436141460869865179060625190872432200003665059940194978538834774424326785912994378293087762730922733266501520951976231704987059679312485927958549821364814696460354599332946414732616040848523494174599924165151297008409131426396789066301991276718707934000064673030145411116967068087438976997026542769622761045397764628465576997408506588498515629214910271757430276881713217071335403505241485117603424698859831498415001666858338337556424064316133205482520609326600237042199486137590078589194526976282358265817033414905887050539185933754162694427327845150826625613794447977100575759867747066706205002090540392858921139291855176451338987963218460299666084438746513087825640195190447383399115518686647916844711994088616436384489388744742492226171729015861651778415928396046909229279814874067442670906850391298805748873649780496995912434937944456785689369351135471376148557844340609823488009818296019382280204669236376561490127469551464863987572282331186841904886215979398286448259307762372183938169356308745147322032772144056877708600459973142520347420257301133888149325649709294608065829456420216721913520029328719440739623941820762043389339951157853614151922999829605851661092597560464991543119266256833200953584992928932284653880645144027947162165223732911619977430026214827440550598527044121090182442410610388783226547204644392016235142261576747098370159010911362648088399479218062944411985746741588779264498674034494029216408778250520262857189983958525752751593635506538235897906712300054371395431095123644000066494295365234353741122474871823857521117362699085838918541717364032590471082584170451308526488716769298908032700406439452241175103179405156534491606894967024654888583730205573907132449152845052441446227134867076157477179329394655436096550012364406646588304518323445355529616643088758420844805037238746894033460029794224035891067655841228353845007790968113390058860745760245315137817620633099102459614733501665846263980531715423075016304404287637590336309648010437672468849216662264007060074028034879219055994716296798290788934690649192005893016984299862638973099251415496094429265070620806023051084393685296220226708078973126623692628917788093546241019855318872104719962842878853337820921717031827141084254312085932766293901488040183574534562993071214600991179106660571177320236454644781300694924322323531876146543197357636044146619015259168672132407895643673914439033859215732242060705745272651301512378517242723445247032631895835194463363710568988158938483060906220167342593317235498664651157451371760775934713908168052513102156009284894090639212503053669971498498769895363078286915042482560839093116338271661068908503904731703496350305959464522447316986067387658052732681978546728040713891017355783066069277631076444987379585605087152162034406578518421078714401183982171373699527719464039215030531219437417989370984860084652922164166956223394768510856620671210016647592994409875007444835080396881715342868931765851142732882996769405688238573105136762146904748857903837671332123006614065807981864973489098461444304441207771965165703534329106930213955066235503305311206992246564030579156092480564219183055087013624538950125450310120005982610358521105783504973294677146773064129991426286512686380310679870823847526562573969540676669147773345089622532916780625218926213205064894262809911712555891728885933395589600494289253214324026539785458259538409416915558268124583584428551785682276972557725322896378707999950393761760522946513419832137699713771310242281019884532195343191827258811849657668567424354953747902141465139152451073747072930958511219318347621250210251288943570904569086825581789318566691700051781966495254913252706911286160138690948007625966126035857350833371229477315965792332379666676325342186499943312666228971207510836791675271938830888008607294594251986938302585596157867438393090143820997671210986885522393599282775528440180803071565622201929542013414178576878859408425811073168285632879376318638685899082095255400262596213951614652333318408239151952907339139294606070482121321363292498870718762972270521410105997527626851527065569384694971918568072368835135743110370419925212284316775708668931793627029997507996580173162966188160947689835523681162512467874904541821074912475477891584915412801047860809118866604713562086278836511221583138029178734385155520704594670225374584401861447587547557172966268208489346427050388079960175794050992106169175744257343798414315959098895900800046473246897236745528030335515218007699142077891902336153644213563487763758232657988747536332217421297965415949540242922922551419921434652319345090407438280115092691490875906614518045475104119970010787853247112885469449792742882821004220712040096342550910040396810719345922159946102431811896227766924410068416056052975214768184103696620800606189003557153606114413474761709469196195028612762148437385065224119268798171374391377691122533054753458253333086117706653766037784416246242431799458844566427314360594988483951321091726062087218445455157152298197190419141747621830641925146514434009104927149585001418304432481854856332127459488850701271452256966385600784807165796506012645227955263151732516092463829769665336027195372987225024776069059166457262165288981185504449311985192169654135803579388658593916594004369745633241128553943478830713204270553500410322484402767082040543315213862636807004327413029568406705208075089518480113292771441032090692607518090886060919586719944260185156417126575512993592152513150793873936092200091594226468949185942290204210058206137192289331640175509431896808501759211280625961254004159519424281014228210406300794054020146457871972546401444733088893114333656570920834441312275172261927937026968697795903771193247813334531529473120233977685142345519596373323765911380711865183182101473095838173034371732356373987852522960847963773981111856176227989818324536053858908504887525016949081389814438951858663707216435765319028002866272944527248683197074393633764076541414176196551735993728210608736593371210560618347935261934678907423968619467089327575213635836289010213415156613579978806368051770441452603428091318164030533627893620626646019222004720973591763232590109428798455166898625216002660370567657793478018509319372903968927514649411821941323391594479646328437366057523960332827910041263069565172886696939223144751085506303516584444414156116446547162473388352047777571071710883941078885785795286129615752917798858606856079017755431325566528406130247325029692293497253306049848980118559700864545490163831117435687991956416466263902592533925681248985339166206235626892608794471056062666796830719935190034151225885786544224532462242030248825396655282301465687676194238096379995872482481855077142344889161965586630006628135222275189832971121634967772561396052345902534142977133078880974002372530969085224596784467704434344334294329506529406394156577814583007973595958199804200558401820550102249984052918750457302780848100556395002690538131957981724738348228341304178667556783774224534734859781763119413502448580118627597846455184695726722287764231314953906746234445756283495765319633904151802481984948796057798313900559039910006126020661413754556851156464150066177825650849368043537592502638371957164339535548358909777216781118391795801438755292383490053453205193778871337861222649223942360096368354909953167394511571939460435724796898877624303413048615015794351388606767461281124923180895763414713795334112997409478289542260442884667672902743150808135796461206012205144004454139390391288402564423409426790547125623306899287820541836791364766885431963675274010128932656804507001463238236233172539065666476528622654458239394285119180237098251591923651558452978295634809617478487703604120555131840037975571331845175088604246190820365526437485447013985223994980418179971108026721455794453347683828381032808806605992054878508431540515732604142649369197689667223875508122252479812474734911046025607218293653616217279766785880896480886038392468013474671426674758129479136145589735622210746368749930548430764191268893767795846856798394366652387845397075524492316364124893891506385589671198575489768611423023441867744802978806016554419834143112537782696303164089738200043450334305728013403907885130577957110067275187631430817369878559848589349574748910341237096831031816300353235142661095528259228441891420798177567639771134980851965184649200581217209096202754934426052527760393032905129208662244384501629360636312963570692321648403565016271935840166851133208623155384414312313964975733101221842367829855381038763560683653598517841917524315094501785715645973266184754276883015396370573379678606945761288124301640844099324832836968942489389332998979320861628474423952537157187483543562174169923463756483862785573850790728554706533962395844568151093021923846724845527140608536781519099547791813606510400072182505663493757787634098584647761897548718861261537890403545289995109151877316789590331264985517763786514403845488339898207598970318727844316086838319572820320823784096369532141438938441447896511777784799990765783442956555320534475665791281860413676715819474243477272872104335188259561986701374455475913100214604763581574458180099359254233513468103908847922107684222704458733688694846369800033488880397083365490344881477827498553347257402389145001181267220149131878237524327718360624565025631212698992306147935566325123218417136185453260272036131495496884529546830529244095829256959258712211635979808196263597615498565777545070447908340805989824827798232163252342617762020266184970629773309831800581643115545840577772432323067658480329196204315624075861524144716617129299312769714832659133807455975709038055322178645102214331546542751976627141098914537425531190552311692928562134881163173218333595333931235333416129911290092385496348501147121611553700830969586057843476408982468939687775979714614760264627722033095403990550624369188459927279580000505063337484623674516837273243427452152940829574353746678154584839515566354000135666906873236801082478206187495311957655459488249089153876297049543482669397765471549157221427639531500969944786142726792270718604740411133529917404788834105088662240662104021290397406845330160945865519731483004231510615979528203976884197755467919335615286608758904250768181167249042030665686695249252078311770214707324603763213460499144317485098568953915586545691286542098722224852779323033110473694032781498384546817080438664563443889144217350678173920897878428302456813545339212277759934054536030543548113006916508775079694305643122599038958867693444427981440466000052383395775583790154169786451549525478558174744409766088548110190435225143373316965798879605036174932777183668465292225316530525825434038646458994762297944872557397327937536810925597702590080911177437741625705523813315299362471143933999540879336592949615192333872902864607998722965112464599211488970078082753286717579474319113991801415037332502135304282747163945919364038693076363581048427259504711802104195622818506384663060990123549782931336612838646886761500642337302773525387559015701301800595089120240050424379521889927641176269451770039827217581935331466031502916211733796619157085771356326651332700991273261365020333367184740384480455809206573062741979544659927806039568015115609609239517460964064131516459472484429664685641392451547721198754476821138705408763536785799369276849652828184019933888796961082376020121183649285744608394526352510459813959299946932165822454472719144565419511081015538325485066977497784061345046066136125286783020185304021203487725270050039941422708541057265744875247091519696425318750673298886533949888645442985532856504438103702029888589694571308259003691531804346359970202321775216986604375292929060856626425361114641626376741340573908572151571480984975309855273578987418995315774522731078067536169526883842058591581330562787740113287371507140862765840256617801368824355536275273685004534774426691018856494436507617415242547705202732258639186797951019774962510850170822369648668660695372982332239723702770262483429386370689942433617776703339106006568882953558165771264410569111842151749996239169217994473142873713970681973055158992168092299921490217942137336017769858104013981205104298535047352996430726948288290352310117474208291634123334864263053086661391405348568751217159829757660005675218919205323272325653354467574449422394304427181639969915065339669828800617411413120312693225347143084671207578852931971803714641146689992758579082016246228831019182626716605140041515939338344575037986301998454931906680698011237419041533475235640330232345451350694752843765780036622023638793901717248160680959760890587222017197640380251373236337940763823372020133417709782572743234276356912510679248120685436198047655016809724227516624135492728307699697757279658963853920994533490749777552647433478441219160421034940730610503500810744300972471031369553083787995267241248790085612283369634533143251053103466343907238556464742575412167244915385050214268699983733547648076708292540719154747343910864469292111096390800812895056980194173591712110498511810544988424776256759536702960482237318402344381057406737925617955451337630258443127198820351691001329390515240229724176244714689200184435060750329991565265866769889482941987807882938804629077903201911826124029476016208458391776958065367194426223533315129386997840727005707906281609188282652526724310457076693687376083435521822775685894226792265882900199241986223524548404272867230921619680103482266233426187770940962068422522256242429269012323557109546006611425137994941114211978121905470635160718800950936595782586718018593709135733987331121223832174084732589563870743915042364309307733947471284719880422071916213373535484036938171118938225117479804072068670143064796914692667678549586219594013152556505219715355087397142180305174527040661770132745528798677689353363296318227059611641456746893517427352759447140030533492163520466082601081365609235130278150307252054363975027812954482886947769779290042257272620643682652600908504093656462457915191987286042216131383562891332054234762146667363015195357483298980844842479042850782669163461924341166227767893547897493921839813782591146921200959103743574983129750817635259971101164765304720569300347623583770017230043824167705251135009622197860356761443350928459103244944801255930560782701995317918663952901455940771587330076513030546323465547708916390378734996116304911981802912890505247811831411045269092210605753492495402812537405491380056312978538578991781655511564097670445139581131341518522651214490714693860755239794565582802605788586654142541029819565339269298914546455923941462446130355948386012661845780535090503214780627061972719454177797668426618223300168391033218276070458225970772788751709366872610632199425025829167995062697635825206659602128033619731049429697731632305339853211808096212660816419278798643472294694488447426809320410874895616026542097545792394041904787208875657453562964898438325769412582034339535829810281939912485772473735829704821429392136012061624369155740496354982817636089943356884262137045776654713406457069465658133569515549596896731490250511853609646007252582192382072288377605960431787982956092717842411893407920595021094620503989786926320525083093682066548348158751084675534800779114189097693424932055031515171017036295273361257781984046498986581756552603178507718441916720291177749669881610377172708064582018012627175868485581345464525040021216702464049131434630355737102254959385115220855186824235627705488357735552135026246758786875133838562256379754258960544236762550979925420044520152701510657753455641662027514423850812058361883064461321145222841997800605521788690091000469170513555823652263988770767912134640893060044661014508442247541473072957824888281085726245577936999720351446914338750215822074436098275514160403736798728085947022427837520463705534871359495973442892883361508173828653276166720553146612620901616116240213805627034479880500659509007233986085339558150784643720785576823661958670534396378510923505321219927431777581436062830279610214966325092665320510282248366249036777865051091862197421480072380627867413990332454395464139187206026655412117067937570573771868764269783537687042813863952968265680397763372193234431222308117702168734369159632486313523527945863184630621636344756621274587794900647020329153954925395216319083650106453815540999164665681494985707822719190512963259037509992987817662810196230431085369815372823652711214071567007865888331506282338917800596390304630587555353580563518574025221909377665023286382927243065108798369694017652558254610577520915874605934467532507744008263617924804133220382812839896893996829853192718168906549813285035208218224270478360166208247235605680566601170958278938373002385914186731891840875471624530971257906195125118417151184541572777080499671345715187053612387118305094962644130232446305301939146949089451483364135393749607082944025368804249447986802746739293732035227185096554763705018048495385464475338068269145600687589455773811665995880064061192173412558748476255525930427570833766002260843672390306804510947456869290669183705869179102983965429509587746030276776163149317639688360610372369586047483134545897079804462932673538491453439313712063407946244102226317712789260860903070172447745477110331466901534211865021996766752842242417440923373501105123174732698502199818453042862107910582875617459857681615772146412427276592611969266847202458023655100874785942220579397549196099392704226070437184104391439405568657091978831123999571254952335646003515580845208594857020657347954898398174604943062493734576521804316088476044407228340223594470214426998023725772161943846345534027651029848988056433866414010404961914703150390160897230922770844108164809920591060741977434050410353732100740092129331963919284124239439967353660264097543695026118329895322940843514847031981291516166590736340785057162081592172261265554425132795544799994626370156303500630844063960864825469310197917950586273447470085502193669228625679449881498157227325186046352841909284938759426195827382000993447430981565096549205842836557057639695004069252445169102886660352995173262526875585967191716407106078763591614436136940003058483860433526409682077659537663853857367540710619661574207227080178441202643258213270458067671292279831150191848007035492772001920450951008757632508741200736498411513024885364933150915565248780255328496716474088531686302899048091678922500780339003958018320808230797168687528477578160640927883352753238526807644467064510222549382455115997471941307418525607505786825518101649986219134402984883712304064662729667217342889306816509283232403570097778468942083812285959154340907920050177079891762214167896915950054145585232449263086146287917151195040667242754495472315182394828911056686243370465102373659240033097901749670582139277519794514724025805209579979777279473995395818004831988059311368657962765289782420216562511689828214407978790977932527692484606241616503856643614656917010788603036906798465638698694761696151189439270158746701540554127979718542744112289958162792491923982190538489847363222943551394598569297558772730415533704077829105729895418375371482674528545018123330623752087626827327449984840324873181726657865195251571792748420181287786177411853788491864010933093510701374071491476652705788819387586884230256968053762893499120502788943604541824486690942925521827693240141667125641625566348299181118375308101621996329077112043184930067519651973762062667767539717865278479049097504453765322241343196346306267848261620658723193703888595640754631489235015598553102316269075493334242056734538751279612436385477663660130541012841089915239567850812731017856859364800847009226481010883122833297227611956454892982606951703891004570593631894907542571632137304367325352726940692436921495063420659193529993933626964129103448982266804425836316403617240730642095083655616671219843388108737941575590157574461066815745568171027790825596036636309556179918760647231846157521296262293894416654898129962152402496840889633831183482317482576014241319858415141287450116388891819476459256848679049392565193847284508242479108994481699156181106995791681068359738601498796260580913373084356340508464420622882117640267460699269441968544225086573227538170524192723338896612826097962334225337779314729984272171574321363453095290466030160631228830265243434517848240125174564013110192301659124422600860995463183411496655782584118633695921584746511281403773682785907514318560660855318541804848598763552836920659143637842543005613156278148683182657030563611121013538114746847801776593164308997753995838072897118536404920681190106855967827465656519910259596836501387382275684995654742256336619216198439156034581438365952646624490425340686043002482677070550409473037504571876105669295743371199100612689729780791805361811499461944039350044261166591386090360637062091007138287365230632154758179718767108466770417084426163234665848286761436345509490260331325401914522829781812024381510246796981007587095650009043989184500419678552562270573693737786938146277724207216086061939317764936780321349214282243704641385379030971401117721303403535625868010348746157289586629592727265472962131448388253682500008433472490939747142878649644229944586863882538182947564595896700677714028599419681058576171846326376107829438379982598551173969240302444516531444451386151196929583098512286643567136848241831399743521623549537123685927105613369234012989374263207948529749029962717511414422976240384735235955928603315308076303204557986985433968903555543507880416197455756106873729057572363442009692831993768794612213659963719438537144851775622012745524111456044205705210280976559666868731842408810648684652683776366448214256429490201646222754719084586359160517190231337954385678057531398946739960156087642751030538798992968082733020999157800287084199953687734611988829196646373110639943040851033055506207785283839242932744567383556238124235558868590718131247212114724780986435299038706128697349530155642943682475230172941940089268154803402967598729393805871270689999939083150312448424640094575552429312759354615368640469494670919170606721681270282766369931769469696313925456758681004524488060979848929851997219960184657772888734446945625447392995694878939289606042441413510887139748817482092303832019842355436517647272457365139022521541959046751573476361560687895941053883997722400686667398114396611397017660097463559942407606168054584199183094818237769628030041118567259570607103681421692971051798819950842237677254241480915779060998139683152332103177565433666140209614286398721575522875193288472675987808015533912287955957828995252633547551695218705060532656237472991621190398447038325295381238567335213901130173217284255770298590528957058378698553809862312454207256524267981088667464335813611215168333251927781944269120132084378551476052148848104330101452784634383741043553066417194501398253181468989307111133704680452142463335242580571765974922020714299744694115062636219006126766106774372255248691567496115625518690811303313537769843311971779658910072686821816529805011332526120094592406436108887191090618571149139877445812797724863584905023833196539752907870316673041077874279029040433463446075861993165954742161412631029735278202520902895854953233009970257775875343884278845680801644335981207514345990377652531857888965832436923577877485990754554546702960517179808113703518413084400407469220098752334177822291495477625658063608182684601789259173892471861908838907870308180505213180462798457237899491512710126110198603403396135634578337682479276561828679296283451237335392784694816019506192893594459201067503390696651627082028339169462074303656445377708601608737654092417061271037997653918659442824824921806729892362782312433822913880494893344247390687977115219041077223841670147042857090650134337546063143819444708703065581854888430156058397205499890282209463097380393497394486887704623316297729710590047664698664588682843757830213607221285452425555562227247174967054494190464400949310037384886405235319998470434548015008694068619040523234247671564056535732526942819947116979233510327900514173071126369269670941901446667706027647835793102198526156215019541127852471172000651269834189488288925150245269171505318036286114572172918158601898974235030152347982261383937670461973578796088273149176330110150092101683498512604163457378264051738726486944345300524940021083291079284762503418670860946322489008824866261967704399199074917654439700452793570518269703217689838018670549705897698429594666919229068286223691535493964095816375542848270656908421946923363407285444956252989479528937249007701683720412718569499896558835140471598935090438898344057084921042521950853590009464368836597710922409814153548847724733359419270743389054102819104079856798852423698021188675539377642575653297440635032041930024730974504688232960548428808373830626321470734188328484841256588475183924710005775905421093685130258828461693787763150470277494362175250948078996765391907957843889974032194638872236887732978189639599679222162710766044243965113947572846275759865653729155631261347004674085701770808894182585197580088486770327416484880187857017786121901098758390177297799727685075902158509412351140224019053010391809736306533645733417775143711641083783493410094272798778012134015370074188072504389903279421938147716583603179652312461100723939301906332965107875043833613540376626987239955786668315064068030606006870240023705177690791231812762970851953558573457682483150680833716142955868522224288591631360693245911606629787566920633700207146159975258759205026644543172902599348197037308570031291593067469389325637274800139442434883342234295821236041849967646134909850460095622385826722659985379345200105900654954704960970649078200519910252929037475423758065899569337337191671412708350307914263619665432952375534120899210246481856832965994945175751555209910112917952853606716361233393321578069230605232059291792135141770662537776218718145272398708219124442743079597847147746472711056351490429643745425610101696192452790016630341547542328208716780318090819307902015805959967120167817375290044917275290075191227439402320417672092095575892386741730898756378703065229549250992683386222032537395751243849332697905933620987360494688733631476089791810496613186098708047623779186035904512784499254368226213651929112015166977971776592568095312701815612092383113785692638994962702990321086596048632539617391145581196673231645657971802920389175971182611324401053464297443815740230556902989988058493710099078424187674378268954048595272591184493097223287092124717950562600188468380663479380642364413070032764035696699559414400925863668404824418322057961892765314863718195796158974624175990912478478165000326091136430700358950439990234711072880884793667380757673965005666476217513414619501281970429416387100911957586077261765773270927372842940362767105433290108328658370061402052818054318602035517604875672631735003292178723139939388521938884007135839346269416870402890226540793087085160111470240914923792503129016255512713880885744718444478400173497435946099341049465910264935609111059961514357537496888908134293975296143693544270491308467289098119046187167468255011545038877682578298159249429871829534522043171993399653228399532322314300130841649314339101101955077505757241152196887937151546380799348145570130001907380728253556805732435456346114849287247159275609996093248956327204186592069667506044238326652026988188112439728105904541678900288644831898275147724566588460741665409026670273689242935429190836979680664763155585667210408666913465071365993409751954590559241833095852226050976678940307296407154640520353597419103013908619009556548595760698741028534082255727875567550531102053906469631682408442293398442955303312621251514780254135854183500127176063569891025351777043196376425439078599759162560504844270100589437779081491007548558909613900590730154099669408344091163601193432527043625495573066453833135283609103774806777056606611621297630630948719655108777419590270174833749736686889089524338458861876695325115726936516069395360259062096356650501423368633550719119216150160407960022376559469851539286768171098030425482224704177596793194126843943989754377293954537098935597158477371770051790374732679028964420871393546143876189714590731874471045563714001694150361024169034551541650540695599962816157365644640166836551752254101348835639710568835145922441097971657291808352750768454105623721622075182872097581012374981451732072787178764122655168820639867505265166428357944915594792741496912760533575404083713359033193885027437503803787162367578880913699049698232260637983115562184924813835595108617194222248876611263652913041856398177069637304783259617805609838853621335903314894819554961630690449909405881687022251263434413080961957264034296487813144231679057248183020257614414910478316211257592627871452892739430973736784544672549279169561145828950757805056803608651922141685841222909300932884492624502397583151109080928053939660738608923486643474939900048801948405188167912687729300634933299302747769770929849799069021607903313767859719697771092247611207084980888823867311068538540524522326207109852438674997452386455715343992547062559917323669817018299905611153016466674680793162728763037526870106157876719314971160366156594827012379911948628554001068182905840799708991093987958190622081062832110834021134721664376815627095253734055624661783602811573535681912284052533451089463462649257579860089596709315685948734030322709281583220798310652006508975567799034647646881023619074049625226654364293459658716270645608065495375084601653834774598368693281321820835696396580306264599391821044025292655770480491776215541243809991071276883147266266711475141096550379921139442563388086684630317043023417986908804496635204887756497986315802744054372957916946830107550186187584020558329887105178256736949458156186354843878574950868495174222041559194212296077439198674007738503732666908697598303582932308113556983166887044255485458973608731733037732004042664811218968405342472089518732933055327908724243265323236015175119717081175318250464624063534725615706174332780135708758650021662590280198771958193459274271337771349526441469675123733653926509664722019523165624775591030623202561423413577266292092026387132425984140583383655280337516800021267509630832228714628623581431095916100552420091591616368689114000050198915301367840132478571041725251236004308889886321055206639274512878743462055137671652631159108208576023682502123553822096585037166486699965851103512898290666381304531961424982925028633239905612587608030860387749395901610948117690377432097400787450646699688582588653659290736639740064404837869960208775589713077138895004218205113782495115931556865401215838574093170806817215854857463441741440837647257346074644221452328930457124652953744694761933207651443873888129062344287302733130542171027856261078700793627438506652001421431955216851382383036132892983302789957433714734073013483241019200051436756465147590215525529763923209667678675793578244527503231285843989405785627646601798241531578216316934896426301780076371530389436328651962254803316356792430790652693405044753539329458540750000014471314350503206906464051622033336422575986014709180387514931252209658732614930210950694039914007034284148791278815383812287404486659270269811171702271216846964513673948766119835918114121421605556928440928017766391530067379345373092451928960775507719622714729974653241577010328231161437120758775253149716869019814093303419432430909679548445556434709642518656289867320604556974937076732535779408329787493007799451527977794574556831423776366631165578187963989895379979319695625019151638782296361317493002557926863239795183080145360818930289597099063395006310097282780273831271068156451983701988360833175956210698699456295806506447248969243242911187280456203856381441243780150911849518284858003228544431739568776715088011238211534662749811932370801677162150511152769806545488747977239622720830493544359166386934387012786198514145688142363475607325229934223254304843662065580418490905135808483847292140401543436284919670118756126410168537050546246478127877020493394061058382446301407740962518864128844611631835683316787745243538303371386653847429960308246730479568548334010747104521042996268345778793529650235089857401950846666262875452273153791859740070939534029611882015030400338241589141210101362990174994470434541591116480642034962578139098482152661911847994249768537872577894162860330124936619794851572967563321513050271555289946786352198061754482678465996216954359433495717109520538009286653997949696909558305893765250309197866126448704036343800746197876197638807836842854840423965035618506670432771851621986153388498756246527242854854630957244756028244158050758747565291160363797413695796058854554977149671979390958472373717929991823317549305962688592461967543279748648354584940245282991903149582119477576805949363072290464507193937923509186076617836328914942198909073299123679286799051029512044582453058171833075923013825412171061550901335676407324072060487476744525138069894219303112151903424943947806682823457214105943815050581724846738394292470121020806058337289683057142749180210415614078216490512123592613034554899839021775666308845286574783414097715149194437420182141194251031793588465572392506225608370154211775820306377891518871217947119118202785760525166508519245687904562645610040774778059887650818145719163979539690647344045443867133246836229489654915007718001569641809829999102900948623318722643480506424573916706046742737452724908130340433599729019060030821329993575258652276894106428731729682062971783772302910568561505783448951136415403091611762410281968275290096425577907577479004585500561042212729853962974408157328317506246167347868139614293187558808183840645621153229897782107607713456409488317030936515203306935376998387816006146442931113533687310910360082845259165770022581462353287807454805337299734413878363590485791682459173427483702990549833875623629635565793616150483058068220208104199225190394611614531155545492353714707442131779592632881540015414601928596458392262794984715799033786366620669892275119170926072226716347316244896545438503171288958011230013092446813766743181100569519704050892790531367726876195335311729069650999619127906472815249392622839476120280068860449571315146769408171059248080242735338574982387400158940229229761392782227194407263753586158937224304780002348843901136123785899165775269335715099198070994875088611158013978704550246732709058922168676076262695269566640517356947212542681586345922849381826344928214333347747362919163590668278378651780323822142405881069819272839395877894830322191354556062831119288675921163527328993220223474435374115584645084713095655883128211524940439862735237286561938906401009726536332612398546822710586880787498609531213397127580245168725290811124613642996171429833744680761865293660939310982569016713514825484421518362146324024469428400905718878958530848637889993932022315221986741036933993454169159834076501730717623644478078071454061996230980090103697989344896885266271103265680624638287511419177297066586617727727849158062795612650691534542429965515344888744725858856300142322925617966441947480648376739487579963322890124721492974945341349181388997439707802873033751331501951703452920477814766163152079477820083105041684775865222950707290849152681101600997705642543739742014907495765987604137165650589921424242526706988922747166481270136626122370055635368966758515752386306414620992180187290905146438655165229767817007401664417210785198474510905699805746983787383024709638826164134977223234980018836657532688286110547376981958164121017606924026555047622536446733545287263344327248977670219158835052561209516484894984869445404742493552939135284664326505267330057604695851396186646880147507455680872363308478672132180904709872418508843967821282721033428301526415750537011785377397370355564504823465788237756229372282586549734331610056775203959136480230399172165056423475515969448120892053957430979159551367316402141716917518536577453127169574668117072300144837840551130816083924805926014529966027001292622370616621758616308514128690629657491792913580233679066428314739769455492796031488112674185695564816577847235588063007389025094101878744272805030538782304856843151183779532687968293742984356354315764240296027759287578310533495520866010810965443017034073528243078432127703010580906460089951904131155213945705298034896231597569975226575220562137178746017584700188782738522586331096491821397059243300216741274134316844809635823223759674804530139196911727931447152293154567211536681715651384897161208231397230315381356360791684217156466597676918501703047038564923554355391205432898195214456370356489960987272239509667112390287090513635395095209785353868577414059344831721326153792386594753814968371756226945903312719493064308148078910060792117228455578161134018350335343909250354692292431631122375431612576863817312712442741547923517410581951436442155820345719063770865039455855828099188272158822653411752148216716816530938799321119798443356919030007026735093999730232491765884517330955922517246315012733341797048260970801796785107923891117661807026936133274752561340413891325465073936392941168678523085289399716893293274634614379695575694993420555633181173109734660787700485848749456200726892319831460329762120327276729571568802528040581539731449848526610984104053907214701659590213229654954617454831057127641228609333073207551853128532436754278919802017314052201658153198959333545795757813791266596116399940758944228011950654671754923485879999724456882633187004018142816313946925154268824549076807520688546768122709060389599749564781544855050346050540792844393638160680498347756295931464870746468753521717258965357867541917871558700001936691909545763001810109548180115268833607643808417171571580511017399412663639007648801324431717349838794712733171454855377338828533081853148650814096140619713761387825994957248163413451557405079063794866914881639984905995580325917282756939301513028411290203770349708716533204471895005853518297665193625374108050973621150157372017315450645944331611705742903747692991897850408662424329003005453641240561226799423645868811650501284986441191522206495800383723309930912006344078396998609732305226985356259780219166386145492997128411002940894313783226685556719415731726705976783191907846683837155007492701579024472601474322492067663718611524216488046328808043945580164207139171457823777812535416822320929623785993304062226043733461971982378332252228207723761928306900491547010041876047047785365024343291976110943650355636436942218244468806677020624503005979768167683058040575223284621732511959723820739664236765521746798756171121388432626815894592794350298799113661963836691130166237498861358365040774708666378976384709563912242990995156549451230346095210832856217411604003813715038447287229611947822460877885766979051976479021210432799911742751040756272654449781552515304566430292050568906342078151662941973292783886836064757295377304005541640294688696194798050648829727748631771991675346695172987309350470205506560341970337067286951980030980933895429453382208885146299739969946709991706165831853963267563779424914133726516106247633751481035059967436921913562933726824147795584202754890263175259268100824289529193717173430568871303347098169578885710451170500307721678768023919552524531794611905780079929797516635812020953270807963313602988619720552518512160160662454169178306198071614623468345972062612832673456322994536380567155755281976231991790484779396605025152368924312398730565853429845737605370345461687419982033083602705766877290126670027990997641320600729323295283482294098276637938246775188022156348824226192381263359699821665285200570396896261114350299424778559255963429372360574026797293399320595957939796272295004909638153240255298722940045591351079727031892869737668859721743269458111878549453481400864571004468472811971958187032629045669981239736946272249453153080039315495700280612125488931849312493061687013885835150248845610883730696455708714564677383310162397622444435360198504818849228990608766088871260458052818656924637610473343043154167109936745003292602033140498102301927816126275988208021507909063361072218637773454869354388678726185293125484986851608106592369841643994538083295857644561783099248628315756498818332798343992560576204043136007235468283031494797286647468133978271194042499674356230168146427588470573526479339664395906294035820321998063318555604156408172197555180517322142853983391237101304320187535737063878826852296846672276445356430643286780242546314511067410478405898547113820550361044355208237026764626331577725441059849463280435599351814150524536951617113109946095521972247130347534745118820736092715735542522402227611010540368129496965357340556476174285527311350078489896259113262326709115977406788642559328796057171600212945214794936681936582121864131005602386090427089630643557830331029912996203606052434189028903145181467759242554978806380792977153092195619056464772749967711172601466576126701226591884388154084459558830997648099400208708298959422007986828304199925069631510691796014768264850760807239174312951519821677352996315685113490204987342802281142107168021825832305637394296648739341782658229910760055216286718912222428890410835613355593907879012278737387460753166107179601580293236214225581489067144351083533294001458375244658154536081963817538037527155156279741473364420551959522984839668127822076608439242287708611238588413032012422297314517381148294033531959750376206801626538996944582310110251087932229378166358369948918968203728647394337176101805060421417786501908154909344085099135653711560728795087026424409330974840346715031637188018299691906201039469097040650911826088680626703899148586359293268994802753206833114182982321531006394896489925023712119033956927396067161105800670184789543450750640718026952960034893225167041925306664626281320129974822963322185314453412727515372446816185308190056936773312586501811268634575888161297484159343011500113142363949954301708404396385999242395182596104840165548714295836568860164122263294882153346030641581691399609330585981989820236680293989239486138673855210320248182016360189619383466645212460700638443335428975284135434818106070540907885244873732752027208748461038660404595742894101671694889992954787983456119545392060059084743378685729382402098989545869739300400563239523763377147015743461493201954385756310497899336518791819705166699350413579031371261453160316737386224827659690091157559523166460577688779417947373137093588711583162486616040526075154929852991335874001147917295561344985163801648170823460361254138912756085340569583611136650388726177150419176853041029110427188128143316865603170985599254073902876007025744201519047591177410436355636039154181904224591205942691012137092116984521528871172966352666953239756498976553781686950405925179499107982281193924923689271019959911177610201172390638872179515136134701608891507177305835746067345911904562730867773576268633139425838246727945899229178643731225758747133666765858462928222740854974894070633123158517812412313653456899118981013321217917525810906298780147322006811553724569928676260263578523848948414434319905068940554772205546059787209333519288257982002764611449619763282784565039427498653888205178027961899886478166180108202244533608892082808243044645453131853918433744384924709545318456979614395703487331829070908825123656001692254486655927420062412578857897372855303611403103410306216916620577582165131957555986305070338437707895793155793076529290210125083142048326347209004201326620581426721988772476388075314239619959296939446344043043135169806734500746298314003799847621952472363177495768854496214841584701673118772802202975914111493127614322260158797760305474021591640876869564985629753392045972504880764207308422248941681451658701951628676344637653730448341374074084196461188773581036043190489296932119175625707615190637217207031803450312133041859659250546906802907533481490811994063786955242421557614303240273667753862850142845755319295132137976443830267794845319385626990839562887697818705096977160805816940209824812538669827060971481966311465064730805978620197841309824278844884042830010765150869016847134094648484754810645198089905926872217198267885424000312696148928861069393449016956333543984952529539505845712651903590159252594028683678145719804143815891262253870521973696432881235905647858677354562950879219955976548486909635591768591092087232283764850286652730377273210172518193339536882478689147940870332458817837771547844745739318547306080718909737746894093849813583826416647397951273228524381781452445381369521089328334944255462785368144919341510181820570258367001908159394737336936421021726925784246267055141574398890046431259719792089335072130163599178350412122388949417052391048877751875915652207359555105587066515763793257596373427678470070887072788892939110739727360151963826544166242736181735080136014037415473678413526536890890244673225840948067725925409068426436617592293254698544995314243079727636274016878945947111054753077642792366191618001000904573373693476162679385965022363951116858500326367876769140405464887142587068525305558385789809370904538483788160757226450267553156554044058641656380111204652559152311444481128637301589808600709324136797273398773211153966823003511512904935223379815219789431889952926707272034850022957810482844581635334890524300602583770698727720567327285161836153864262426235448049915284122837142908114802101728048975419026515239704925520916876980701975602542232632450821739775625685265448167532678526387732849670564198300820746728784292480964868634408002504081189522829544077001232045557801506936472295252387242926210584288340881903266967469085553422997367512338864654563011833036191566043232541418834584337900258505092480825673607282210744265845842569971361396034158425315163800824790776105755364162962295505340007801337923271106969772217676617933111286284776264788842794063087765436401433406362348556735424519628769276748648337026335610515795291419295316831515553605433383834354291763834432550087831158249795030712444908265474834678998631632730662849134728758980113656878606819643878584792350387163022871604621826384469469957835061987158245042320626662188915872985118305639043442988942095010714092936032079422698900636490258593040516329349852409827383693567016432206922431634925725020776512832178432109709417066069907990638954637569983938191157421536928469601709219254475867208970582392491941327646144047685013148966916393704396552258658580391637497295512505699567754984620908363445254383073240142753266440586693147128974408468302306188162698050697767977535282125579443841023294330317676353596353205824076343700037007156297178012657088222389346620226583013541869597144201354280372638536902214189550000396511292140620897266159340859908085734340057211961159650117932779866567780006788220089524245413932438497451485150039165918899475406705674980268847514761304935010747426170340455461604696400790238369988367312643553035056679210364522669496769376539876262867658289016416033700658721839796120619062809588366485200232124068827283120941497198788233211742025144861698888287065708494063299041434370443649900321976808655563096186864453330942966763287102725612278356578624950836937884049638306749005453139409186163104666515394191205283982308077023301802197750249628647572288437904545724691436241006735514661736972861870295253724596131438652206901244333121968404650924433238068083294150279390502849090793551015989372242131767097119150959491902141948393855262954793820111645187152159046732865527279705626745897592328271055972806781992275194764004521053919271601202930533510788396428555027868707213421996096451718855209126321437461884666631265463063788906651407873931965607506030180948675909531569332547833997937024070923392553213978464473497903415199206996731718398346825073493800194709055409851787712082740949842290808023930693572062533156622546175340064882603689734647994360466055524139846744897582283659963279653068990800451683904132499878396487231390084965626282945446075612077467940601286861409883034636490867236577787558007021731561199146926828422229080251515937671099882154595860354298731519841362936826225038392280119441953358540944305295313011687878183878768391264925172143696216304655600650167511120333466284946824648484380817695447101545439801299406540132397321407138480596765573018321295750119855867468959051262894154667649254796558290791558484258738273578698133313880516649888395122391303288699540173496958486909952345912198130010369754227184419872561159548404459386369627000737104618643516067764901788819395463512257307513366583563595997592480072027184254392642913712417271486969024475736592956149683807695185418203500128555981859561617179065493781332620769323753182865609336702961453446470263728210972475511135670431989715788645833767700632100227335279059365359760076973149459053290839424511060534608500901959382608705129706710620953538950056120292210475961704796649687394012083241367931290334040733450333792229775242434912987771853278997771900330303417795261167449105721284156037812015968362256158746906664099598559804597001839542901225326118498017444589977073731710623502849307235688994682582565646667987117210569767297399640494598447855028467323410506530102951184036940079032413454648746620752051485951592862518493356078411959938187214749324511409542575742550784437990391809748550637583760650031708308026590530230944920575531322817943109333135862978187420069840949642845431957952734611289014048642435125392273072924846360311709832220717549267558403321336049874827218747482172456346021614253624690721657501908613068080492848988675026897166869225242860760162254207316466092662825785114697359907827747960351066770695033622841203465331604508755588797271827991690966280345641325467504335790781994253836783732619007302901862601356779604983876488098022617881478507661413009313263024713102583968834973748883738099912974968249435621820633396860178271749072295835244240679427930539787946042243549887737130285894590846001557427142917208856796477136638104354830440533891742026095393442530269996466002440166801207566393441960211009607307967090745590685062703579318567164490836804169769119830156668453688868960618755411849770960591857340376664949041635746071723430901140099995597266713849388587445716208344061582525484644242952922160359826903372881542821685541818972363820723319336398547087533643440788703978897529486551320872991013656540570838055348083786385573282690114333622277119752161364956209813987049972370043246606820188493910156953518821771819945242414266457636142101741557505318167464980906748263342219441672789438523578209710794575378763023305249477918332753179024366840020914761013816467295277937655739667714451517712819247686216804675292893848051419488263984795148473561541928897912436962040188442481228184113633330268100381601747511622329882478304919941804642854903872410196152913782600758810433932335435474775002545423047590218665079194474971972806786145630828142893020012971052851594738731696149433897976452215903895585631619165928150991175696262176722573162422013078082940466844682923074384935739858814513342704633842690591119782495121684681077913820630087493467596245526790056437983764995341781754263125595465371264613616932394924081943883147442861629349225097586002213288693767001585942026124946479539016981356782731108257760202014155079562675802897614709129884502540360599336803282695388323674838523365721540743180832254660674062825032846007338523453644624391649879099903851974276757632478206206216478451135828140509959373482961849579098272445085355486450615784769897679472014689617040865299977710847290032174029625654260945957306946296556228270517912700277175360637679858060430569350712884481307483060647593347943782566403665929124661760835234970710746611611615324989776099327280507808471338239133906879771947137183788215827226937375711782549997172416000818762941507483786523343571210148739906871554323687002924004150258051172316387055264622464050852917569458640083868622209070517189606179321766805880853728468938344444927571164413076942405700950404507286410149415757972793477824158623427081214806605908068403864754575163102230802503387729451162891378117431904353324519098357544442241793474092192829486671933664871117146100042944152618903211257668985102320783603489295371966961951665021384921848242778220850312511776126819477375262888482656721648558038498726375032391045028984035611178101470320997864080995358228584070203413950800601493889333957908630315759440687142076548404594184940327548949954017429663970608170664472191573228755165128434283475804096410710609774779226035015696154004107894432869614352572308506054292373091654483686312018754673574222780554744903388869786687727455324533463028882812535698093007300583861231961776048895437556662461180380516702734195182882230566521744011916323886616941919760769582749612589162771211990489785210149915689979266172944671029304517609336823870814380666123594169637682229748465830390760649584420808523888998380600329548218128556711703997165436825477552246128815699269815020413493177932960618138426021826830259326218865256407222932359674548533911454864428750085561591564323687283025090329256960112251947212760228672610727623246314693950768096916727043356499514337135672857891334043070233656775313276862044851835315907301743108084239604780410063383435184156313328568357988794502878494776459869338741623620486783983516837614433468038734909426672788441472705638343008193835364569484103366013585669860578262061436689190013509321004919625013570669679658905773025580469406393559465375160569781988709205197544101751008798867207759105288592096075533207380511471518723141662954268433588234333452121622495230468826854177202734427149765708651873592925314858421289487019655484857905301423628323227904966815007112312334429430669609265036392849784234142462042849411734101378785578956668826025804389995517655737781658762732896579849163353652647820299990938325212994885580146484889790384294023484670517769545270274568604461088855714366827560176313091958910337816757874764523603872715093275002396499626051219575842154003545784655090433896282751030479825324185824347915309436866504029160246498834741233049155276805229314518015720517203367100277985661642310638415822715548223026953519378599122951350026376732763215385504056403057701244572658774280731726071035306107427751362701947004339493923735089875763676665847483854520489123037275538160300697600425907936300898247260546405190477248192927231971648977959687424803876069462273432758626114775004358701662070996134293928750458032050678247743785704135683855138663804869849805325597286913905692203772003463623230276741618915283920082513760867887553641876785600978806609595843305344270922972467288350675506291980762168478835205853682499833499689636973421291221734852947389819774331624441907425559066330483563159264066343263526174281128349750705305915750314332259028289097081479134339351121665174799993365721441883565384671341902084653049250615538406737943715889017131310790612539684275475194438154185171516669479262615518571453196041387532337851257460162471460782908577933732503417584264288202074376996464398070182446476710552729639622896563858095162626680210864664308732853237572367958198105362007049029037889692531923975680348012690580576816437064453858070036845297754345933269274570641360621741143132449740010079752326249855090303632097779030550085431249341970338171450112417719091745734732178990189002714872896463855586077739178445453666586179784673669396961675300486836899898422175815217190319051628252171695658468861764040032603986863963976629662459437282858716676981931667187935629419511985239760591452098572447334245555160697030912783961765850268844705976265733949529240783589146840597031039617629533126637457668067107712280671012478656180122784693045789921692220440575084720932009216075341968470973578609911433397308033807634929757702150900352338960160591982556205405560277757568491191838391566767472778267139550394280199037464384748680707156130870410673620167344470944079815957183123301186817551072943443605493595650737593293290567853460307807262232176529441967435086563937155564196306913719289350486903580813709135564620077457253476332512659577918061875664892043367748698148047465997833953928019811494587155051923424279945460464976215793765987973026264244257076317885958823881718284293696930097293660941026146113692907068706025339158970971461034406578769358102435331692703368970960302491615337599050935065371316970798874324709413095104400853697007819661064731733591765906378937402757823451531568943822669677525746610580494113903153129868618397606998806772581374966118410119633616934495595819352437056825938444156902943476848450517446149113979288874781948251991977700453900330912566596512051018081367899597673295225010170675525801125634476850650783409636480346609809140342383437128236727688831953770127710766242664036698358566077609263157948851181407931420097767627714961194481822945120722924041770297496333510357940846773718980897813706735741136736812005075183123936322760450933311882341079119079018299385565482705017869165891251737049676261741504505664833639820022678625679357788519051269882893875459067384450373846894563485978257587589662355142060410352458700174172270237079513094471065549647735283590170558863930557643392998267271983891966685343834811079310725512118676312290107349852703728131877945491083766956865770212750291354357262686633181989515434228611930633538432114374783725450384722237089757338460597940806821840400627380969234814738092576099234601417332601942366110837636272141120679858580256553003002369142001280676331883799942998564854481012778563926406956028808465379832298911575225474129715311433706721139994055750852637842665022490774719460365614821581364469725921221029054827695884677668075497364727184331571812560354590159826576282451803022680612899143847072780272853111684155279469540675807477847935248980334750163381731364389213066562286766437872127452065102982332933593616607437384766398325242317279623576823790972091756659563586222347750965279703844620774811889526797821741734216773142202601034936312923643292954601011578980655517332232132364992450562641000523843625455742827385775604160715608897158504969342947104984623514541592097354297873381012970195884137619537371787499196014809985603000741357817850700483386746324041329012582556205877452667895480088340335678781176931528493370644800771981439647811545074132319647119727055181998276100537024826070654296814298448924093671201320956297578799759908540183822594538179352753183826627767392236754660284840233232673190524435504204095975366803400803612148085009448553156596119748661343441479567450359051502053933508981143155088085706909834844352482707188313702810709368488464580892277921199917722939645829323580119983866688417101709416994219643936281509389934215584660869187822254402213707960507222653658271580968602645215310070881905815128628311796712524584530700096686197553128122453013128170940123584878200516098945543990404735066915839158332841476785830390105799469530412730256185571111381933070753157235913784666507346062022559633696446689966090658431548883281875140633409836679198270960927551702634616517214074308263646330995177666273369986113796310967893657747807470503884791852501149560628749139544854410317427607789997381871032951661546879009451489169138044881877120103762632900401111074577320612035185909471367567486904433309434335111476718118565414527142186769267895318326245228736132908281100402317006965307845610721018561101983841815883094491603552012683533106963991567756776844676240443337695949514489948765731941318671695458539807034557897476528925232712670592307202510174139357219303454509206609203119663980604133024558632603882980620748184595871929304576958319223521817444812790627196210010276297563775146972081294212822680123917417097173007764577188225694338296530254484283417351629323177075578850527099357796188019674698607316366667195658684560754423582578729131758375179008846722654793073024913803146147283252420817361743135069604809194872279715993205108181698778404749474371686462324600112558176786103161375781789026042124076485770076216889579122814532548143332860945874133632601718929836917078169269367318315728861127488131004867754074905807338468791634920074629904891933268457925623587030404099840182897480970144924717982483843663547105622684544192312909186640099278044613986659892556124214582513201375634730775096924177446239805904100549873627020640303648099167555707222811513347219054264105074901899201324577778635229434522814231275926064632691295851427861692313665531740899821181247417487894784528907198540636909943580371583155974147043019040805469365012088181999665622775435008119005262642764915628258823474960942898878466875665703650115702917653210864503572896050410515765878667679273480721498509087995156524746563492868137164904576548802414760582241671062286244473702859938088408407150373720234896892750684394802026656457978994531364945218842920256968888241581962262957212842573331941492896875744885888712043865573288681604883880250805635489723441043137240109686329741570038878140921668112495660528659133001108692894821588576092569361198523848836120694766984251224218773158623733299573431026999702425305561389083881347947342307552825634625815746489157115705504336876764415447866671431664950135870929135279021591978627540648204757267561362782333135222889110780855609559689551824102185084297103198205548571318090441386237519991745632676527393254814185676761830758989147358430279176291396488297749414185706353112177450665059949664620168868710355775513284625604500611547060384606294672053494183064662574215768933509447577219877607737534196147166222310811082853531721644474007669773542116600724279837391407430146280923297130627992451106026293110138096417351805568052545204136432447967298205884275916969128427175394750811206854340771969560429873979058105153292360823816563975975618938132265621280509506671810404657218183885897227896258837215515615350283139443266325946370641504848324056546463304112100316922747778344701695936516401101372793622549205385384975176372451094859064295487810061344101508990818880203894481289766680153457512488543601316322904234576436666077810696494377643898963299854862854233715854395159806243330621783064280461991163480714094553008128453357251970236276627327610459027648569905018498805117309896716039000605864603574212468344882143461345808842950102372242712881964960553677107288257922552074288329888390038155360816549136954000335206407098346236358242214185716949672555734769337058568527809215757974364494973918147881633564631223656109909863411243295091976964545736714807757136837187653277259560207722784708838722232517804465702774342955753903225533515696803052423056046820914088384501947501264067672313585091449722199066872242689379110003468570240549181955012115588323762446009505960830435580719912799010112267272053468275520297840347882222622023763575984075952673166772740116359526121434169802470397747498091351961517575336260843111444426238861470509861775912224931592491887815138029538629474245681591653009361648840886482298112394194895074754388768569383914281833210529431643646849388562126250286910502231825624003598777378443839297520369115823843806165333084663447852273915123764332909642074249177291160402035705242428629333802886110514730391225988828086571525476332773374320468858276596598519887389724876930706511582138939942827092528031059566579051176185273273878800034303913382226080402835994449084893613235802635759842515428053771695109364295752367189665398275924212406489366564613428254512414032146869758387272320051271653382813475161857026129665554629343660511448600058260730692821481909969006131802815953311566344571224625657765983911986443958861363066648578352263638208410397172969258370247379571023314810129915365323615801433673986267072775580532008389328465924202897216865819001779592435773067976989789462517589836324218274021494225410375055533992556663716104339672934027192494705093718813854211623794745738667861070504626470769829212011090771261224000888854847840606915581494874578329360990403019700077064115710665297782267010969806747258406155250639198985475997933381796609413785061450325568439797379838243084732778954732085212995520559411292582896250147564678118340508661291379659099120100566223787699390713906800991398103386278840509190468740636147111502851520591873909136844792228751829952892302441509823913263172674192142304729163329055239276357768770983426897921770526011524202243129046065146144551534167684146974165603848343055557833814080251241249089606824939679322377720880056174898968303331564417460600488928041186324048585064744946620905015793339989567291052566024071389780401085777317110386936310695889355787420501835640204682403399739834931500408018407963891605836000926127548052081792603495499978790532582297014950118351485133206513959954499354444070660580667329207751337541985635494844414973108699540001759844523496892274180097493622885751604005506652440597059694923499994908237802911817808166959181875851858775737942301654028672027015559747567670329908799129808259716860620934035144357850345828881860127987017877399880037657548601086941346765283162933511830365011393478900568806360239695074782148089903818172351906476266709814568139222377068312318354350786406735959519233170811107136950720491720902696693194823830360777130258717269599767395149256407623797347858257548217942511591892555212187745140760423813830566459462126644798616194191094993219695420425346511012910912171675989562655696887121119791658775031983340613138555988071948371234747010167293641092946851799577989791495371853086395509611861731640337065685402961915167641606843290620680791133623296883499034299166329665827550792551293203642862724668375070150948254501234929649164233205754410023872297199877330361430393458752322488877713254669625311497548699038986764624398173416747601646052391702386072484255598494264113287332859212057857805950729735142920530993338223087044864276321854123673501445645292258735164872929178286666919022517765659254093211825167636388965768251932352603717500405423665666080458674468636525720885246465548736642982979393231392380532247200137129005244692732396256333743455082197486055255296681668584098828316139973421207434990075632764998930578016876865910245134281885875484566349000618350552680949362661718556614881984655997388813000412663100993847493500919994991698644191897248967309777106614674148360173143931222424209801284668177320689843870250679807103343609659118337696319069817578319862184155352841438810677995755933140840260658700788517605959797579394588738721458958601982801122073666193879060474563713763300858901729713594257813762188961917235116859636717050504722654213978881720894377936324367107073143757576925585681902239975562283384250191649134783942179839737373778145757673157814245804313849448818840757225157557051128342118785027912886764089712824943495101067398095992378821607599831313857001853463469229851807739452855511993823029139147619882263864119377420498235011281069755903237497697419278066320493763740712310492084789493874074992058093180200555077786843527637112821673860874146218361269412965313560711314661107740176863646817973853946583045329498056217080060297629303643946145599839960903722354765972868189547509887138096676500963960390403302561951232122885056371845109097450145639278174981300084486251036009043371004332196320417088143055335303146705695397533702608790741181284913371623372511307704934014527238721278582743527362791327647674650485644129437649124609301972819910567560881417004897574840201318431501064190291801735076849838823023986750450559997703221869040758079688315159738395933191322230642919194114584618688883568559292748126004699180237713965189278800757957120364887546236310422015593245894347212277238930264528607318226033662797055873364689606852869926087067871604186161908518895210477031782943995767833652703506900695804668849847252088502549716166214207376187475366303456468741183371352293690175835574388574968264468275124474755310688971305416031280990316190120947343800419737788490715292677262041985151964131494813244301108699128901181061859203837423517433792072024339651113674184052609990080532323072742394694730233923636677740618753834328676047276564437426651842924091157378030412328270561859640456385442032385491785715039335069333978134883758545827454161004010861871321510748152729052630795313404223538613669153939768462623979833718319166412235438975871468550500627203038621547138245719003495841667315683086548613010889864063114151937146805752626020433752192169890244522177158609924954622298540090122400354109997968466900072791853831903916239487358711621972605835744340972081859705846847042071551268456051820543478073329129907227970081760432544293760064710718705831958377411392632710916641431962527162378455167274060334831019390167186112973600058182175148923397448249267568925509540796921141235257535270707668446041236724537351850977011373154584116400226549868710295317512610832558731080555100732207571422885340681433116548739273157713012720948378574618439140726285087623778223192591134038267999235641610572450782338022631607949576734136695138780257388454122170741068236368353671825167443413088653097755119013297101313261331515060222359068342986687031950962366277983008228883701916779141747541457971748456602250104259485413427655028916537139784762207079049254156845927693975624313445776382211696913809731955356551452890753650196358617780770635483302327865930920696812080160832627345951381545609309992200173103084064201012694583815899640387176952280330851288199894717078332762945988403808519027636763681820673613065087902519985331242932630963747962284753919215074815858632180499500062777923906182645534093851951929870350687438159925728935516662180955609646259899922205424575733596128004915895095121440199384804567032275812189919746804214171971433345832872705153008106144322944520818464407244075854879434344245194169096546094261279596730521622865946760330381798589624747244412311676347913228637648733881059482391147397958138484712260315829221092397640880446392841218814809788117589147526622638393095377689317611259862932353802481587375177612361261526638100785176402305490962948358979190402318660190550907650558919065865759411560691435734729058349130864302708301993106428888042121874355269467217872463700028085780044198973098815851635904715505956630086255771071147126359626023508592220846658894546636041378296516972618237157599015828316401744447162169789557938846236520907926984771128225684568301991279613371084869689844604987271606498209816179163791670361611051940642605404109812242460092894969555330688070822316288235984063070103339392842564148912651473760953096445468107707072053606981892380915320138219491900116741933849762809529051696586152662828060774525954728161107026869888791898122258527198074191434444749133943026796790672732746739910324925506647487448345118982720768084420942683205160025240506901216850675228520592295607627520789134500780403221010212953154107982917800395631753427224217088074408930314877752927426139521968472271040503185110431951704177247189172140919519813394194810171574330539738685239973394077112693949338929025106719300099237353784237107152094882635670948168010509630396925702083866592349676340937797419609118763414965055244513114756420406530908002444848456720252721583153996760431629783241647663086702453396283725114373860100407491072064721658821774986273693137601168646906645235991565065480984058335031111412355980631719474747591699532136827412631117141079674959181003950029623917053152311730072149621051890800533651237118031245248845471820439372719510133045996940743662831337974957354377417386939025785336658844709282480414226018111797921289377182173173081037647454042923801057422761138432696343700945050598034213988137739525017613237241689252487521086386229390811777794037788156947888637408144604372403823846768618112575089999893023176855360839735072265368868344078486893658537060747766781988580332511974837142692717059996284316528394587967386649122197623954755001651123406102520644730256494914968969391207498158167299177861995153535085941172255955358437050742751531592872502703840006737899904151021575493484907467338064916783612754540188642350968958431158054666538369939933774563565844237696012588631808805913980451218086337906321587846682208241991325169278672884130672853030500668166578893334320562277230606321426414624781288419156874665925247521676159513034184363508413545027465511005504527942019597043323165141828090551314824555801928397422800638375392144576570821326837052477019058068486037802340103081552351887353412107624873633029396780247336450919120691164422672898203822261432616922363318594619842226368166752837885524102006488977315135890988916662609816640847341408945325399478266344870003267686016902715843042468595794160138038746615466503515389490224462405369870748107141860465667814340001239158734615141107285443563471102369360561479136195797074960789283024655866463288274396514771262884234329944625562172795170178476297088229281589041950447811380640863922677061128545829905357200956208793490347889024364823744676396826368197718778026053640744617095742592111448725136005335057646839738021301549421663937732938110361158669740700207866482987742507961888934614338687813800489014546750777869870016155305787775960231452634991188765496807156676360517298610921810049925794794517540935356545814995634761293632315250971205229880388678955605805919351167066864510715187160544305873471173211732296471314056293674101750933092618895924303346128835843426453542284966482521960659535044995820976950010470853404844389407631569240288143942635135267130540535338326946740189617428965059540722908651316541905133323689542143246572377719476946768394210036543945234807332644992268383790883407844456956835400271332947425968870044641810059403319950432585904852930588127451200900713186782896255620877083232490511559572705961030219043176809627240303808840055256531547389028975805537911364680544019947549400231989713582221336395572753661409406310224526846638731441462586021483069393031014625940871726116684122168644054193135660384994581557787148753624062482923483583487738385441758375774300920415478081806297289825978497456427199127061097526252726444285948563510435487829328163937232836884061423718171430746180631254572758675101040051803047602560156684405396894774699552140423642290263955363914069586178425028430315886938309543068204901031115454589507346324032033856160889091580054046786182010700788448979573112314915025514486835808341008717675355181529119250088583120547027014914822387656876782581829963089410278743846096227434043012652573821145669224250501935866402606289858568448510394938462485733129701314920152380309335189056762828513054639894334743935692156783349513262585520073977898668377115924562811354995248193967781867259921583657820762333591951299174140109423401177435630837896430362691386150254227594177706571495983163455414780526956024600595911056287161042358282772026472863316277478584055707875335048209133983687512235494684245162229872933875831240659708966515851510125432311190483441922776292237178411199214356273420777554963461419591636838117134275164985287554821952122297943691450980305975833842956152532127748795556138848896965347297214227384717101526080290945404536909781905647062485449231672969313314969609747279639112742851453790076439281656534085241867818459830361649650882675965503405883902239241711713624358405785830403404121331092540410909038482075306057800422023419560138711959885440678393424455561853673449575542952988017707954232922826554721477921058586703180944516748258405389108868875922377885750291387173640503837959711618122240344058425473834704880753709431596752310536563555319811350742690179738373049743677609556930749750240889162044895677298398338237301338592657113056489395322085051523566556156689868920530984147409386180945320096267089089623854003655768634876572224879216780958228770609670504893761151003580892083539296277898519182017536938466295605115868893905763008441027242032356450318135271976066134390088784951901549018369320623236797071425652070737211209345585690847835416229528928254775129644285296776682587951955356085622128535830933146285124871730985630573444809265776414089759515893252815119772457195900310267209314175761765476993980160527218310887522192131306831232785407433046890306619373177884968918961436615363470508610726587357686481834939270934130512806598775245559392358594121214536530762213291725768862758302783667166643691758889774481926450040263730633902447755891978436892470469301754276703513505998287265625137739483542071727606844936552722856627171958881396380446550544671354833352137533585830664041806240077648613138300687470128076347609793530071716643095296782581679457327803408173396175492743343756158542757365518926064816080358628432618483638964894678390684314534657778218248969680385715124613096437933688090517000600865824466604394142479610443349241471534472432744411638848507779846520215147850836933948530423475913599684324859794365986540102514399999875570561854057802606221931889055585192721119518225705765389225841287796471779977300392650911140338103892041181300486381069740343195193392844410313880861496343384087641476099261966115481513500533601371167656990838839700192350216525151023351910459340177740300092379719944790964254445992864451650118249851676662004821829088952084908862058194137383228285911095129796984444345931223454993791557308549812423680259905715659344172413838723807112778412552521281619000590968053438127895141903268106166168924659126228446359212147660530560718038132712108745285794220322453805874792252066466760708867652852285822546193505697238628045405379654195854804919661428654481532128258721816434436954343514480921028926592649954162827359807419686561664720916257532227034270043253401096050957734553464738897664311927327872873108865107596563696365947282022078519815649845578995201484231674683826634611494688805662479966843393813530608969654545221372151922001117034513620035813637741866239652910080945906415978129630182301789151713783769240519821306659112022931257968283508329622584728031965583723352868089607464425162223949598118334521381628982036423616496272907004093456977112926581786795121526982967745514330223439758917987869666790215621243049872515872516454339825154800838959282459244045795158257896137354868938390426010872677817086006512791076205788019821627299658493693981817378008007819812254311877888606108743106837489979831395120793489156495142219943854027877060504629935458000601794958381170657695167699478307465261438297571517995776315337248763644650105503168996926048759142061789593265520734059699667638243618845955674748821051745785280909491885468994440594949510618803302231427345732932189314753733988249775203351115091834208542052720124675771250640621504207994405638722411772265313751286323298460757352060864065766108583818187356943819041454482858885183094052381885357501582006377664362518904790724027581061535231371877890153134215247780612517906044180112307118667451859307418755451095108369750091095721959683995040481302019601894100166620163701212251182051071847888485877047902070358587767451448159474649644147664864817572573406666073014363441859822852835416801006876494582641238737431085905816756276816293271175492044029992975112576569397568572416820238106003443780718087599267903599114251136109914058421958095915842197882765095479840971607223559005184359501470289855656823502693096936722852023063468909390628725108561774777780859442838177194619179782997856152273925243469447118197134675404557382387788214886358730437903578031880109982352293022422361240131106858802918992552103862969395665983905049774963728059475929294017233550474604866922743025764888616995269914584400676193109128659693973310450499036516490538624171585921394374585166251410759848020163956416814707303316680813027816165905334383933646305005941839377848493728139128534923323953160378956417914534953329804029195631357525788179793025203750583611924105975258154517111205815448763148679418442789911850782938516436250696311061186516991488431858322039807657741441755380024078511883095087378924637979755841968183834804248221041764257871735142807748650783691760805502793093529517345297904186791721588065583888717713338543039894195400746604733629997579541159685229166630324524784311545460119819523029031870133232077877701495709084199110981194987134834524698809842000148301014147439892419494474944955496223243006651311212237933863897086137464303980473423893768664323128418277427216890545913163047650731865622996537350663593106214227244328018851462699893460335929543391525518947191999822022299846046147893156465795099097373734894401532691655896422537192788620857543385990749857426316637172346243261661110567462184659349824271751483784102934334093175357715871511689217254133183704700906351894062151831851079424639678224577427185462605391527065862467286162019813244087610504823042874896507577962538675679588593974083770813691891856603336377659696008325558569315837231168090194382086181169662419874888886893275554620808637009564665752387862462857158788419515289734661844446278004525302010193583809983687993319677826736980708527866730120703004344583636546609778161467888450551946027772273797728008582265072762418343495829723286561607941811444596748854163524303838163291815183801408766116971936039591983746621462892787541215261204049773039472290410468197213567838547905607981792670731709869385759473548592481836139932416306502310867231086097690238965785413929863105989752784117249206235983323281725420668202270666446896844645646963292257488930853061998754778456584858019880339884532248534257444456813391704083601705096535052929903079361182618483002785944679935348558293254630339401394397008366303562753777394195818516683008671581124118465049021185499100266194627810714579990326171170679505095287525679032102391163362606202675712104887862036266398551447132803074801695670694111473208074268526258781519382520977597414570596536667037709167662493929670947407210032811090130551655760014707206335836309505911198411792470063506047960454357876675962599065483483705518847834336071648367553516778291990240181687003984032264205547127422613513782003793297770298897650433939006699980933081381357518567161894532476870665369035692780314048762759684028030093692033850949877030859955231195785173568436871188615700759795059546146404184373011615153113806837379960511949884107170933587240286745609530415663235379876922516356214217547020680158210064335113700757832976900820504382334903667582465126197739042917664354188561527104105361541068381873798901240046349627529872891717110296182365037928119682694774439329233781367704967776465399949672017804864436468929441246274867022656947510260630368413921388492749045821740253599359569819989429549512869504042909037563107345500964082007565341043083009512266082566717230001944239837696150439168162988906053276061248197422571973108701985548020670994031373881486009179202888651598290971266977848470102533889456877275835264829482568203925190928192763892773798411070751976491974897624963068766518422890933225445351323261529716912847449657404402757036873718391700510838534547523711724920304665157691779878525979762502782071145671860476372634400409855540626221091833870160510249174791664431862211396180183229935616553471519538696321396373822721513239859347075210343822900388087128071795589511975181806502224015294132542166047677646991780121143330137764689659633093044860315353979851766112222707706900357320275902787113912388477057454327327127068526523850584273572607586107343240965010746087088523849685975348412806568638837701324710250222515267806978589093791371868355083393772074407380713284282863768286918954349152305238352578833493429304058069477138573443323772653471358188985369805628242817821796040912344659373103183269200585211482290618772952393109942909423867350208294448109244895838185551403172578336369442632645108070872338850950639367649522902333086237484559856410611100917300627276008251096382902584358225579725263613909264948680307949966617841434812379752440352170269234162420002933528892765355302560391405230949103155492051813070524101040075949206331649577333466957468926063229633797652223225261839690457537507694756730198625107595458361783306131026892796875362709432552096841308892479068219806442084865105021665525778254602321209419147129460121089734819327668347231864419789513520063155393987139145074968593936521622020531428159675938561336745177247147916759194772449957367487863325320138256289834221600501427567495838286785096785857162103796290691789555004160909205462762880249555784458752183756925626150654344987844178600877675489720866550201419417006792939974271219362671831803264406176640420879278230028122969864151760490007618834162853563668840399849236010711804921503663986889879418745971466242064371651323284019627094863293812822215920112602587648775860820016667781443866743497791923310127180157169091923495196449447269375886147324224201661527055823169835165667903480075221039486732666037429533525330312703395749917217679040971918370768783031190847863960372602856559991645544384147628846300180960823300452945736274459838418034270951305506338806704545007605379100907149946128351394965637532234404473135997496176643418628667741891769378476106975681347657932878872597250378002373120205122312061677816341020370818129512281921332243448645517788639129802202548262986811628537497368966597311729055439090042642085811462498416440906286901799485855863710747533574503660344679172599625110550092745138970325368858386968567285045281870005281187394633443157604471683247099796291710892037810505178324470613486191158854795208452717959513955334159787553375640839697516863753652433456068862014195224941211951661690331039950035826727947300290170646768742816644340143253713656362382481622040229894884410437758366408825089979584236498004517522253848093958130880860009427151584160580276630573402078332281799029311250498100870872556055702715233430096108957657837851052930299576819530884636915849626697426910220433393389860356677532447799066147375579198046560182469730263830908471401789920620520163419337250534451827915049023068384462054021603027457634985354336467548132601386544354906675079724027971181362239329029383417276265602885935614000410940669388703726834910057290036235058211807865015473725792756613299419269112080507078090688912880065234604418214804831341171517242319993586275303280613388195160422711875116290055559148646550755160545460635700655885921524041046439013677835623001809626237671881595244003434037205867767357527426112398113031630354359027487474131807847408557509103089463492605142719451860027427778728975904858032034221333806445042057057024157623440970121621813101304477680876579281117596573464811261621787710288638868230269487796323211604348652620647785272438274294290573394749428112507289413431453003583002195860093904190352908133865344824594278444263612420235104161515440157644014615776326475361015374318756608742697654320516420675735318374038005978308468485077923500437118010346004301182026627870459605667648438369594024269204677866570724348638265788577800598837604153960653284075424228706620148938789693866076050974722380708865585209669775616951632348586347981044882535596592697146664131973866689088376468954718220570474318047864035426223222378714115971455889193151390118290278253584880598335805742379452196126458863164868661846282463619631963785846143996804311113958356205916187529657972775174132840503797448587953962472634343817670276012080971384674492130805908099431693321660548238743843925334422924655936502615612657358986519247963851038437750705853058961047205173772798871760073878369346541124132659220510791129928489147260328822011440272887884975832556031673647280464273801574986690673873474795990935251171082416193694408470443554824210379193157428720544382728856481616875316871917064217513858247422034222049083349661789689300800253805962732520147898014699788085225834481637392417468421828680706323985513979428722986240128138783372493615654443351850110118332770931374004990596615629690696710008447454865026396850420679944421571396695680144684813489206131565277602961674685030669778212825367596881902447910473155045947432535138281744567740708603440160548856841840146273984213584896786656321242943423587862361355334104089187531655276304160667584139933793730896496179328398035872086718137537073964103614529542090580674234464532296680117908479762378596121689050974168541690123791694784193170926761262935900523585646311107238573735546481214121928622781305407152633970885213770235407525822604872303286174558012431928794668964628110058204445878484044783719571379900389879394099597070150847984359713436571162912009201607883230251300912643854530275080267978832643678719487082470862635875891416272512876662094981714978906670273290265502761655523010190102723480513984575845133431977859902454660492564123481846801668526671860947727868845950167146506475533514812494364934781542720688367970978203265710014564275947821245715199778421664300942881934122883187528414808883638496449940193654349938287483041146725496294872258645114772694149824034146526009659599784485319096488423970010945450976433827594148172010241569516133761286310946807794206544227186575255483180766279654153965327494473362692073873826584588344786190381508160707798004605911597237842658696824775852974397876455875634637509790371837710228682612695403494650734297713494655282868580416300564460916329116961327968912728290827744262202280896898371738140703544572327795791597873409934311543541112719557598401083164291310057392908922137023754715382800451665011240456139293664519024041915397171449496109268315098630549657142760935768958249764639668582153622844126525708817876161372463407156971125059821911650179769349118617442371213197631869151877233487755003651393071105713724483099574993244457440153114205599112686090850570105717134612799899745696951953487392833031485091568885607985966269581296012884001110699510024053083998540924372822955056480885934126626086017264015161107620574532781426453584698117441958563972230676939920002702907975474515848166496526859631982695647786089160218653355230212007711896613059817827903960904619329822398234194639062664295505372868576353043077083404107403933439355518772319795278608755220147630183767489571635668345127227667170754754834193653203822773424224322668513942746488380787712144947705653997977274040718580280980077541004631331123299061516868401972977862690283643772758624296003863455964461215456117372091101467488060621698899776393898597412782230016054700691675087137128911671358011942919394470574910613693713469433095521144915120321111101523440048636045275024068670646461367141309689980433265280660663154886266770265771157347008743205668111748139530645163125374882346335963311251464106890304768231114372077413654980890645223021681501196576142995597861767779012137747367341855073335497805513979499242569150474760679956909681080484487566272125227602858352537866121411259424828289620810201009578376798616903770673077787312724850646597121078465853864720006544578487223597116829950176707160409269467625775682956045644263361297755778628395311753683559283890802013359173184967834232547984945515274361691801240173966242047388459807525055367655711973337472514001403347747554985775281575663398127607994656110968072798573274662030816624383795465746067829851398205793773530609346678638053280252359537920499642114921933264115847999106863938931739473623741435973641902969926376073613205907029561470960506964709744710373791264457917309585607726399439505775943780336514648299387141513837356257105618982738058149091070811359827422848043368795044133296995028550272331042575116655433304880091427910820443774942050005491605069863181153531408696658254363161093623700279328764771467126563176978039212512389581040250645649658298465270874574702493520835509589436419358459901236739256287780053144529967123924622589719723056663760339899138493437507836688595592455085941081302271702779863027368223540500591456043923426698909815210453750585630462473308474926286684625518288771783822835436695753995694217016200206932093711416283279393558584338564125748078412995098241515472302179278798378251997373323312712569561232445317868637787122294053075953361053767076840069532779978394690274925572347960136770740732350400329490598320333723947132525372926745074980281892307665724164079146440547631384217827459333529240812958256597915587932925351122868022505383526632068776841134617526556156442362066727290295232872483306748967668564986940916531203669385986153682540658786125961557563293893308650234708484607272179222350051933951316251450688152902906209350394788710577781987656067206018658766336471179804370063058509390076748735291259831735404534869669436218504761592864775889181721912917128240373757053394494027934128149635100037623065998562759273473297076485587417616848169305693590840330009790657594761260658005382479639841510822682362905076931726078769783723873273823376751282800365022568544618081684951538208563000165252304011203372334903098878207513478586871514187719221731037859177085956028350205028564000629798546090916143423008607184291235558010598884222994486143197367648644515765169582345103613549174277870640713946278653810833309686535723093496030616890068058222659647774118808250415995659607485647833910866038161675020820101012193546309404531289800112586515706371292691453967764816439182492443617897505976120520386770162313083295401109692254473258614360581291849461663480703368891166992496160666266225059264724207094215231404305441818203447964612428994894643218425488499259488104427744396832852937012655266135636368020705565440007277320840557364418922488383008537928335836591839008040795511335000550473644845848594045905747536991125373217844367335016764079215117764627267044692580522657502506149784670369796266679036882502396864793011815832789256156283047387786537419899636794862723398653718707039684000581938973655799815716261300589469990676721755284844201921277623661848745589297419780637413680061816291891760515834334308269666704286656398187794194213863346129013969544848895817724283293798096208838221027836934654792002371595078964600914559940510341976787650083836415273905729143590869306555855560889023491063314951504430797375868464608143226010595760490529551507085178262634874517295978555287190625597049654066001077831432688306370080476323680606778062904260505463155673149351104936930573579718149714281972992580483945398142579151410707324389746541503703827854546724079826613663016474500732050431632564867405753449523790432067808530220117759082834370613583826670867808356622019609155191314359006370959322646930794530763557100795981468500061551507651213095976510095471883898582390295272573199637361028925169741544185407286722339319600206434499928295702506176626482409517375801596268253647845882501808283473059274885453993060593993677915029238480522754936273829403177900487413979904716245029435419044454899847815152955044358966510179733631970845067705944347864895969872561668243055523051338140146821542484343955999838863834432357279430253648228425930930352014194530050238957220788934750261649817950504623663767893094863074739713953748867152879809466032417731501147043460679070500235835817502181290803557368945199586337215029653400566754584661184999796685104929937289781085078091756406004296733790606110632621557292303315949833059352060083447119698912077828627986506602299505290631224786465108787366489474876313729149394030328463376314595716256326039469000338401031328612916601353824411409583432275354922373705443778661020976406656567240829470173964670328387631724231471014152206815082245655026653175010998623512715442063611633279041198963574232314387029046213711465875447760971177283248010567235547740291734068210596527390683372499425370118454310076616386981781903788673217043632343905232709078064801835413113690274154487374884736742081999995825077338125089728160210776971226222607235210485805934409763976599796123848800922723213208634128201331573454092158653006825426469736482210148391965478113300432288420730812027705211268273947420880556473193874581435109146917909072248895458050440808228041502895517417783897090453239204984692242003090787351828172143012116625406370456423141721195988468473954293450207118861443487523738432806420545849352497960702191127337134103736424826319354288409105251919558090860840297051921677891010686142673497467135977369878772815258367227639693030979201012695967363180615599120442895274131131334365244942514466134510778499573772821487465429035042568235059294878169397144729663713188749419475547234270726894188807984845644029264064794283144296715101083082787574375771755407931515962955314804965134136376531316641705235929049450422744121527383428487286738338294251105931413453349910651511070194118324251086327941108862953649748121881477340287408340715155037872854437915797858889049218983620251966512335548268838358378733244540650376443264197300931500166867928561047499575780301976631263100425279692878412535919223644773565044305096254655461975798778103411570615844298579794226770533173479863140688661488746022774508718862463771068497684496417693486511753962107814866243891802738577114715664529281180091100340177003306980086679688374102070736311372624151443807089161138752475350298726652761922533885582991616941197323932851300127010701813427452915211324673290813517674157996422197906888403785798187346407634034633951352517086647623496906609766150432728076514001465524085514456578643850115158101238743791850223477646478566261505078274754816503204902297554696972522158365567105613097888406882497670154249880720778711021848846167201650005490625540867249378742010554042086521577718451625370875631217807555674418838051007874323976290233657384761399255358571903710047770520243677674679998212963513603695478725780497564163345610011956464772493975737208886756215248970893435158596446182519184661056224563105036908134460398757531571497567869495383367089674988676916895751514183326121726752867453891694469758451497831714734204291915157609877808082136864969792822033763911226655907330359939492637908985751399025908854735413441914670768347248062117016774708112008784847505888237728166484242592356127583112147410148200537810833064555095541437151885865678615143474294277908121090349620115815302281699646161131431539658973152749085939151638627272246494980771561690304051373690932501865557921473248849614009338422021901468918240808447249978103617041252213647625916727630321682308619947675146349416225895657151598861157109829550341169359459988107471333450032198399298441635221003059723372271221455290679358906475184535752720393891878459903825695101897172261757818588849393679619804211912614639693928956154563568534089878872187155119811101796627006767323463220177283251516081033590029458198111311756812194316401718068094633785574070930445430875065637063620472337530781238745719663953700778002752775374645064185430210707410973896653532406260755541704177165342201897073528547675516564696101027807530904926161887536578050129694209736535502373329374413424845691063101247055054617194643848027946711259686123630484533943853475193374007395547524534411379926159830337729211343523162566396712901620031342590818059781879960585106472248224979336196586126053326697037068536033568002129176305632801372329249538026035512492118641684515660077013176612958663980197892622537292101862427809424687029575068738656196336559850639376044555289750410285148665764870100693398812949938254844331866803468348105853204391727069642148851660860207755796185998348889957969821720597793784135676330762770732215235269256357841439596522415504197466641678597659673519654347429712634623743657127353648400362002971099165869786920534455628903457040070397633888873675930935624703016682624835369968536888638072592302421783393396791837752067073407040926424651263182234996701005281962815838665308402784947369855454218546029191719859549063389297475989961149276835536047872514739227539126190094737087256250150167203488757981604733361130519687476175541426135062463617417125893146875936481058079284799725122411503831742433089617811410785970198124934187716639040308668325119102867481007829939912556612749161912761008394497429831934907482069944962082569643977669638504486688557493794840177824167132467475486859337729496175985229214897715661797721814144779376946313667385252366660319416718718367395221711690992402746455540044924163471838805227848962174544538756711615462552386078229853213219796755890442349911056242060500102886290516909191094035454724104234930996334376824031167599796408025411619822212616789377834859873078362785445440263971121694535018775325112858444602180283801125470863490007891145056920291049399743324347418382273709372606983995038205446929854563352658650184664977005882576602188697678646479838553512715916396043224388946652684940886235298948374537197984729292922303647387406757086479611119287993954034454776426361446690374446939142590581241947537171914309238566150538963595469703274969804914712167758989718563798387639003774947940728124706328840850081999798325140486561555207998081602128533662856975638401482205824314684031636935896212159992648852202996352884419327806007383420350575842908994498956064275057401658208293126986692372377800026323202654750728408245348034272238933898480597622835828156770425258960742023356221373596890614549855486637116767157023320731522487114015315188084475725916607451220316635872051902328173759300954304704241039610729927273773544507650359611611200682953262989723998579727905627612727141154343399840445558449244542634974669103769514595463846595205399531522142810438263641898419504635211120002168580092602181876308923369366625814491858836767880009054801754427547729359073009471788373712817333350487429337056615358752250815586735051877009046088939394004181670804307793110716344331571735177970775665897247387374495846996291543457520038634010859511048080120285517244640974111989827931952768930927485915744408657666204677420067213466639722510683949384617796643021723962148217787661206539000762045194185031921190205025800631629355125071300582769660765808610459902006370701306539090764481570462362226718733846190640410468011739964917003759853035588752949272582914801924081234735564059211682549731602032249739567887198137893212508532257876459425387223861969934462451779221674686254952195363722656448166588048069362974335860007228852807010802927215889303313681302608067954882614303750661562914700354940700212488919452822321254227940924257079741817948603115566185680478281155061477831906605944966740161685615476152796730961076682330346150169527056436456730159089413423194989006900328228588667385362216149518856848944400563553305931300849851737367906367496978515260888398016413220108112293272280034643576178244912023394083054170967847871140664361747821902326253326166651915037183794561829003772706728778682695777645939122390122251531389939591986138373597881893793116503663886434672118085732991495703288108087765328508666397165607792406768630439601678338828241808547453572047035512312642796191213027596054313904509103855301175028970742266666513692539847424692689996872575826231501802256855190729104882651357994087818329904364810483722612909896908385793693291962026003455687976732721260097630952035671112190694999677486020389380344159251453235072911363371946850073298625790929522432651177041637690275741937158864307245558021596164341323400417951142725422280205413478924307578695961595375144139235299224658214954811312369271409945140126907942383532877730900397411442311218319106263892169749708794579771460618623477129658727165849380065655773235857571319419586953957041762651927914609421762559065618749998515351010612524211318727309954535808549924453300684117660721619588388030251821440954074581433826989197378046366907151938488041540459673314030033706116089560661097180375107114109975568447615113609482367821317271184180755085850005821482150231941742973746123004437830119656464774866711454396057335454209427781495703816934841807511181415466504721315311262257398507464428270463690365856986481732521688023453337737480101039788777543612419781753459507226332296791395321226863912315244710771993301223241197774813287476784167438434471171488516730808470743193377901507819944669059617047528934242192912814923406756345219107644356760169012386138567405329158356279156525003730826878082447980828613143486745515278043099915359739198503744743001667035276519249572031074027202142538858512275690224367134735910606800105289524211153905851963981307096052940521307812015845797587837036209647103016388954604645555464971976508547409554519982834812087531163989413708681784145329390107079222079428359565790423973344242763662386193538375605156953387281727607512208379301331026817614717367837609894671217462228789921835032394806337923283027723639788839634287827674694455366073799644644700151689778919503351344634489275201159813723234182116927202944717240174499466448108841723307736402947148725721351221406345152165757293286460902634202703243025968182289678577794600205775629776888780284817934118513534783159381755531595890029181638372543513439908487526605273928848360024775949860971071606104098511470601531841333648327323094236285884460753155788008770037623493928135969835478810886390011438028432560170973484696798918347946324381837537546506571104211679064462925822149573802436529874413372715850084178080963406506219507078850564983079458014196208206486807799973453037986661333445007980754308599179309924517492667985333034429767229780819972508201196697340906446575177179451474746253085412880605116747494764390691399406362319036320335641867581300677410149095143100460767146255519717876303106430569251015377847497876473942391617117019440507009334699429274846817008584840794660749824098600528619639633980682081851780677262769535301932894139523581818458353539910121685639219494316665633772054064721971190537014771715823789100178075443881347722665485197903147754955936169843647756977583986190416117922838277592893807109854576269015073459492473274705535627335095521571740543812411632040460525263465166130369682483124031239434689496866994999566681546999179359609695350471676634837637817714125209022166261455415003329878996747158371022360421836037116592840972007246241302204283982381201097725012117186680339927006454427429614555571965605591675516773929358703450867794019201460365656344701031567249306730809471899622663017292348176090660382163808060593689861419594285510679359807452448907042311627598945847005201274679667357773656661165280829095053189805655953075691752002197912147363585756140505592402285323752666246755922694703605584946092774707322525990271028236650168164534893624223546296020863540456159937302699705776345453069924777946830127719977419745514484535082913251859185849858942918816383996998209652739270687712425183287231649723801201463461806087250562322363453647360594825560798960557914243787810215618780196228823955456207473983922764911236121405804013578723873410524610979538367571633508505880832221805232075869976393255097044415068905696141673219468979681668354787627356618289763652685210750072784479563452084322888716779527448825752873522391554831790619833660732187714156474556432782065485896613480212521123171577883613131306991267625179416449553725705023160563424829394650322321498937434326731223573323644365067869993761268851789140863745488372714059187120676389829514659422246068118411380866733553352604744250094188917229254320012255220487832454748871580463306622397917721974903386481946159841460312535028418848258758093188845400148876562179371634444167443717457274453598349551213439775770728576816392724020726010091164419343720613321895322475492700086657964461979296527198085995318613094158973222646566911522626448013231456552940380615466835629107143257129936120256645551040173345089371584980249902099114586776158395876388193103019194374055784368307108987893575573582906599744196830003627880183220773641868877418379055852593081989576199290977815901279652502086554768546101691653058584116990083437893446769263512360175443668874236558136816782591936787060678260030245099778035658749636316395814559977889744458856151581340426622140598141353880103246962385652434078642868174567954182732362114337064647081867331892873377739593560592584871198238620936523618372453336873363913018911137663646567407849141249347528568491528820097941325583692731152462477719609119252387622069218212864107293992906171746022450636042282282065402285907753848815996425020352974968361775536526589075876691674059640993856768295017436154251083734832793066948650786091126472898125676209985246792951761139386132329672553906870940141329713042391258598051504503575247803413563912147193720007334212693286473318630219684754884297500773343717134434373011752919714561931717716805739859683624881952982799264560787308581149244864870542920017755312558803726836896753478890771271061569075894569809150903927804151717727273340159351370318503540234427900437635724473342415614096443827373659758423729890888899848402319695978572115784822027219054031944293233597473773143488286677502926388056168614809441842823440725898100065823382209520879586038791551011256979982180966932086456941875531845555522545580651609559491670930396792621821155283918529991679331043887036118268558063654017756943364866391355507713666295193794569569456997876432974914970760411290111671395427712651202365049489382199692448401086570885609597126119077321352851257882956288856759353045010053516580044492293942499281900020444140947904439870291168109141859444713100994248267210776629637653674696572035202490353227960280025594911175241815338075785756640128707703833394352451329185575929996887798462413339128897395111422789183175205682192175183008066938286033453902272922886442489763974795700259768421927010815060747662719379288079061679449989048764711674377166146514377147616536067134915453826353747470322539001175026100754476396773349024043740936187561505328799370491886826598066070477342139316894919055704180594341992359042954123206679311388112495617261017903419915146302060551194308199135364315426726716545382155204239366406209450863777910878779266652924662378762631150215637921992036202732685234660585340978990160198138070605235448435584578058982452394755687361578049920902731670542123038827663483240560791685160604609764646530760891870668338421608885657769870166541505826441125624052363825038610803923838531340946589486724754518051659118423571733447862115705011053465992670336456147828546760090781002582174573109666649062417714140464396713398774973179728229215447976402672700819855778010192357235886330919378419938821331075220117602851424248303222594357566765644674887276214895019371335758658238924128573344493962247127607104059158545646232350726111197948644542216686014191775097918798253448430467815379821318666789155939125880356286436434096125355822573230254624736882309094124114152716712997884028441416042942968931598363299585008472729330079857015588849308098473386414717243577602431007708308275965042259558435816410494290403822730629752378091108386273038117039562173443762252008773092576860134844539173978632799502905242645807022200767951041915114152178541156542219448192659987661844032563476901776423980303003192399403941914036215529287056205017437322850067671719148540752215765374061686802418591935202363606272236279995648774897969688028356475822421213634673635369407825752769169503612789206644045689047372518282087801931649177476626411163993910504022118405293468290725208750659304338909327939921798157197216928616399987019470581952447401649032572067778229398044571799460178488670094224892484259763860491652640630546779960962171902834947007337145863854757734276625757973958361001834487686526435806834602657752620888466135884199823526010301418695010728027359804841343687592388203726989567046822112215784378569856779239556231459965233190364870174604872831739900255086658036280562116658415170679879351055004347399045941642005963735267716983013814121859523510446493982576561886299942730761836333080789660372374814707538586704270837779267283168906259846630687240965429326454681571583837126939779586215256508931098832121363507919103648285655484843855228285398738077843291067826120304298436542332126426438676364668219933460177035044497681055095248698871259524612627285924559952609959883344022681114402655819843417456917249765474369155565001362403181775195688189777351276460011529840047556553656304759081982790166353401572796979613891248236761126238357208460469602130717136616010516588768554396150666839280738720436130393504844947284334586431394175081247077936107141906532067415900073771826191472386378168215228143002963845836460722948788183555159299787328335131518352413862806964973646257940210454267647533619633802079661440879661560067446124526483841909842516004548782191243250124923062615219877783233859857809460787430465691199922135265222624904774831175926388637843590671097446464439920566578210438190886740849578695192294611597294377061044339857308485345275768085366276584306064979008064033799183576128079633719919152589474619929487249510558652142791867859042782391691812300538789423052690446238012769680933964248469965885108005904553905408800151494870395581829862172142451220385189964722552224998932417720792411093624722457455794761932028656313560487456447924073360142973092774423627303970873552003987913441995285257863223037872253573469489644996878128009556657113107535622138091594818896467798122497162363441387331092809482658678483384787870668780562451830035180516439437760040556025039416240477711786136417076400439070100598070593366260108589052670996441969789124803111122823171636442723289578215738055392832118896124730502084475056230996312584996541195422541085718369039200081324967483647919534639086183296864508912569003823881942562906374438428651360502660146033225863717138386282212799441201902041690844898164955140253660491237844563395081505797353089734274220841943017684133166477320598689155570394353751199831067986831870947862587107010942393678933096886180591311290738685501727575850874115049392363878711897308165090762373239499843419828389703855921464260054807968838437101061887462304505364021713899477774853293473949189633073876292493054030476420073250901288628526943286601018219412143220343077716431472289030604084573188286028068797990486935843948760664927731215312199710924640844813707222798883742809669823734571852440276132581557345312742280691579769529339374313124477212102986354861353079062563833855414208942725471472345864445775302226642541293244510105703214367502677328136320244840946806609281968230767466959687937150025344281158390153105754730562774159115297072240836749436281108959489658458025083696588466300507366770993918951289012305705988818153322905613951782350897684443556238556274813898566290767617018805069182102035409473849417140984854323208355905083538375692717575416532193449324922545070626274115876250440173981773311755593573649694438945549599432656355922523316826440815516997142244808918923866349604754408540203198382034477879448228454791915266885644455219227170452159986939925221172772197849246121384439458614163113641290813645973051161780548141608349575033944177277066517952164071228479851450323209995037927804199773156945499073417983282824118320291403850836311604832916413473724440121942689976911104501002353173425278058081316629586723335856647943585369257752260216142664828506184211411626653352690718356989307690584388908050474828731413497949003827983838902066764593253575235084229004757399122557698353050445027962426728739525840307337184431467285662231311100281490883424763588006735156959403478890251790468103085733471942262416897281978752758179558939859963882228878212126268585570053853995514871013601450958028002219026294407106542300946942270743152295368583898416381232830471563558275308674326416649213171768289753645325894674374191926378838559461194317049534326904066139094668261557057518738611794313175555523327026311384848314754038802832862116721680816821248208547203180859902150411171400527802800494573336188750149165185455332534032084571502761296032090561230915889889336053470478095210591054695923114426617571278717534199056146062486156910882429128733842773819691779198395030113450161720604476934676451241425841015963009595559671973042042026600750860303128055029442984620759764773219061127802329938128753806795420958099450064770847028074325716864095969579619799645433408812561348283985606749298806418673691271176324235706642340325618766841591452765259654645031576535876119137865850695720654830834724395867587205372207226369465655142646413329474530023443730374246702382893727761776721965546967179310308194072243721896453696208260533869405177700505720630350820020638901537116907013984952601646380134553952984506829604557436527602848994859915675616578394390052177801469617043062241126786709630784930535635232625988833402452236445347871598877765375430005904922031881820978988392769559131223731106937000124879396378781564898255799078316238342620115673333345693149363632179875024143524311990028718861650958740840008424694957995138834824941531091520616699097524383108915845266159530555948454882933882260661397702710430061625626740963392872207210339201882390324240535388307366057712615773443042294561495210551510943752879593839659204362247828709412533175958077749292423854803694610253702903992221036481052064959997818679347800219980264064999641118532559591823295561176108479859792919221488788886833317667613663059368076368567984587940659566645730111598837633456548404455491927332293897024213428058740729334596396287208844411687992371149419524963452996439002512689671599985624488451700494919858134823364170618212421198388363621231768120810516458245056499769958733462263871981659511618970917211297208465618810453961863125766931800423509126995324075128671037802492936274174554121029697091292368417082023499061204916886110606358548018828402290772083719061873217600472352315277785363460597363362307274902037420618256261662878089516146394132568559881323298213612947836501417504106888738057279969224093669287168028806435106942814889899158795551748515003264930733361123704605984657695757983717217669481986602686586289519450641035693906691488421675773096991291364223413110984085393690764352844806196886744970254684756574817230893535683623483209937129451586453619554480117183432056093235457064072476488375108027094826909206025001085997083854352163261414435560158959551698997420541712433276846539164133995883716174536527003837751513873222547146005282213906390216420132173025335017231696225377117411633758782619160748001270496210177172873325912663214372191766768104706939039805455997792460831597812942365924911704165952721857088614348442887258343248545294635922425561165156309505193020381882920709128902877235166723842423671567206549775588171186031957072552250062092898771392170140249478907190817898296980670153572139735137206675241965517701570108363851390677240828353849959746588261689834203521870088454804505188833076788094355512288429944906484779149434682060568232613145548230263894688192028828799835264308087869744150998052916401367959221547286312118875625304962952662724158611778707506249809492298543044527921800604124906601928202227522749141029632641388483833527150621321575266871417869266214695981752751951911432654965748069440985761691142542442716857513096739053291501335700047273226989914537412530443226047235376375184662364218151241951766530623280177065720977675716337842549367298403547325594692981568507969326109063150454618944406551857712940077587657376244116137239281752606834086609469490162861472326244814308328065037375609803526543657083751959463818133470922641360953059131831653486133041367537866199258308457978556192187811849546610495115702272897471577626830719654456391222091809385927115824392430726187029885912616540454814387823900310738207497367176327747724297044474381030461135559476865081867393114275162643120832687327103450768644592790562311202965828780402385513845458675358333550543398298092972045243898475185466187530956266489752635821837899892639396916382231335477281488694925207126701207662640782098772608809342736238709523404865897035473857245282157110628205886048566267704632713358961009167876220217921135989171343247510740805338859963634056397929609834272870866166189645665697665119305945011256685526043327320959073349409009233657950083406225632497133985020587373282320162037412811724031070385363287592204893998625577604082230278361442620236233802126790580670030471056966868731150675431108153196080459418713573910310458940787217415430528039565142800477683981240464478931352611571264300710987386157402674287085802326740835348703360321794600556229728523349922125855471924056081522411280323183181834704288380556199824170919825663872238194476662851565478381018125353536083363036439938026597848804997023056859866620727667578338142439174468967398800938550420069668377704035892251999623875451910043939302335247929532210773529471802160051109001432230022693005898021786070428274273447865332536994978298331231880902948439422586011864506836604030417157416093596186490967294863955415917639355783408058553345053530626235851529884945519198608031070844559166286711409609397236907579323297939742590764612187210333116505790248323857464349676794836813732668704752928403775843469490874859931083591944479470373789485396855531574067273298356188835190357926216057791089175750788752529015103084266929385846874095439145832439696985139647480791924478949305885085625317923019000880369530460697151458038328266867584926889684384125309896308440274349388344308482680824275378735700015888600604573951869316384366091104550233807672221440322953454756399064380770976502605403630275237439273365379930887972654410000553079898697730045961572635247244112255692115530621973931369225898003159070788333485068445143057601125946195318250797349470254747608856358476497645445688321079213959444206111676214918804169633275192785133297598076156530124065381179718458954533710792555161973518252076540663581099263745306236543836180519270047640116550776373055481258959686255233912268799007715266592785864439571267740336467401673636313040903755809145480769178865254914626048963550324627267928657176104037380845095715858061245699009488530232033134770963915547920713459423314404079473025977867307985158113559451090791166096320905477366037168891615263768530061829554411722222808246936279816578666593485280585360599691464400126606794792207256390129170292619788766180385076834429464236724354416156647653723756247623722166470223153353956983106649759363375371838550787834831439118302866001461523060794706123941852004029752870443725551266359540755307322742681645465321198777112435567372071728053529441705041392131953840768729732190768513734163128501297958878877486860768054037877991266293049913366183509867721513534028380163024643305028053863627620732557474097716908661711745180786752388816487120578875541974256478996028287779756053339482795387448048533125046386618956022348859887759362530349773095160595366287179341306019378793150106903450850211371650450145121340791294870030846431635922610473227010923371613837766553739875147059388146614408321320823711460775422768190445852860026114773457310188190603020345671982136009904812854162184015796393327649210668480353178740308195001326848095989521025762499739464104201677585542232975239811120870667802938060855017328026732810257922062775126532455406202323534084820423464344482812218412953097468500710501226590081974614027676022704568515445623869987062139531665558756722589058783362353612022995890142208329930405909835027980564032690374777424342146930109027358867533764653139770414462243056895534123797099878820659356607243093386776426363487720970096063847109200442055707314022598242246928340399849087796669260869869753161521395781763964750485052128717792399697985126918927071116995385192067282652720337073578937160705175308881294844224256746813515061309565713560793349506806033378593757652429119005334421010088557845471078846099358381743687320025718977132419158458647211479145644113211688891407300363733640527951567201858184459617108112709688233242414703867202898272808041990075472315021556768933278417657404179442108111826499796517377988792434728712661727312864111260840178790445341601667027479261693717142725507640515246640228602863701875468000877363017323911321366956685405296655921113714998807437304313408953617760750904347299318628004494577793817082182298415530683574207502659808161006407960064475703493676086598998573905368092993453870500564614472331700841879280617768036733740057212984355962391091200884968092390847627039664971717867809776574961570751909849152509915594593269673581814468539343395461480760880948962998154559947937694942314003773106318805501479577682399595331551127171709572123888322908927899279342925021173721097941238799670585437627001756056977579389199095621154545038309091094032547912091761138071081948882002395371911492934782072258801354843322845094412240298810780534260920105369384465510292006653733175593962470119134838785119704288918813038635728057578411761741527280560217817690281249130659377199676729544353368174981755134974520025711193986861499915796748104074355962245340522982081756049956549286970613263699889611755229793595158100014874096180689002154513983489686034192437500883481394851703552671585108975623888046436122897387840504849638032394215329084510431900747605652014056761285303021233945186620690723173615790509849678861878914847732963551787164264668769356999857357331943115294969607310367267526959641484579979429624220590071821760257328879166490319424774587472222020899287117092928526787773146202192410178276142195845759250415868209616625715596227929286296964534397519518781061444863989886279335769857037475246218607308785093241793720173671539288198773169312860806626480481761244380266065603384557771036195479877411940192099846057415138695603835314475019619876756598749726287873778345123412310263009531732400968143774851970342574087545839826687637793685394427407146742052419366969086145315861538758128950967206810678444340726852006850309045939618535095467934052604955447572552932447358207577229872239039876665392177216011601391216298771882653901179734100127230424329057239732534749786869873027931789945045628231353655084957154260556887883480801267024722954600872360461143899646525051360298956550630712757123560059265105152454471110963871699431486108393271860138876318566618538305882645899124682933748236582258934784990764201126994234729085214584417711228475268641329856106368904281763767318244406099841501018288760454450288129243148942443207158368640770176348916465816549309014028804863053761790169845070946306096078647156295646402701958551010053641725982626034228609222044635645601800008151867367680336360423989909503721947409900884755454934949448891448078249655913689382987696897278144743669323662541753098976226964830697226467804782504024528491830108315704529047458893629748536601439815925279087620752710241648534164074306770140126310113678694982708680477462293245092605723033492109882107970111412156872547976610148026665795486505246410124782384101951616759443416871257586242299045063454845361365800740768179772246621812250296844637733880709862608066457305757953351292962554732273855673514398323795623740802129793559013620065262687927254072095786755159935473161241488164606356124898568311333229547395310486997909767018718269952786282437164502089337980807441684287581174054387198498181571271004245872998070437133689165780780318278244003515814826140168460986287779596698910576521976966429780192176065167317893605713864818768252543939133962646016662235417623969323380915143207209663018700997456686102452319044053952281828434073195494751034274617507543087443816185442451581529636242400991268074834180535895755151265566627759272818591659735329457854731353148504421202629226263226018927551974591074310599397798058793634342295874907947943123241379738647777088452173851452179103200123662011287436190961603195181898035767421208954408501564503769150463510754575806637486346735698086346007767555852406662053336940532949249551217973764911890591687408277424171016883208217755882903496258224314174894803247098091950884013989092060974057646306051722122998276275019936738241648787084562586890894505944442646848255913586947253976824308860876552145020226371606260703478953618477324587974328338457802108131352477944693669915221857428563612854099963723113210650627942871378398268380462694558281125231180218730250559374691829823123531817910221988135068647921491247280185643727973408669650613656084479607211351605997431242885608738678049520644264105404159428301574663083716660992811468004326343217100162727055463013262933582930527323335269378810809795990945897262342938570412937399088493882075964365211890263144692876170600148625827835491041825260568419303321264147196120195308818022476185887528195660230023390891565608013550462860405629429411825620826428635463401202534437173253602700391496907285334080430580983303245606483644748993138339427851055737875812378591325148414723978192283483016907031188789582661069539086580617832859754343990652050766821991749940204960861539407004559390376687203779456383169769005651029561854589630738757630566970459372428033011224259758436645561376873738323562466794976348533334151737642316301322750719789953251866280186713916022009274162847652238416623810604604846868280293377993058116851275083668231668039908867820066125925259287065659127942218797942931566879844184640562731844887385658038227347541674067515598382242300408349320744738427130768662395427171016913158716981558414231439258678352503021544754412108328319700247343495382269603161367945407689473067824744729049668968061659347548445072810390550356458349254368876706351001322821238627911761248740942927951640409999615585014666808625316585997960252798207328446248391865518918092964789934695199858295669395967606215479292673921769080897176157648469373480939118092636724785598894526692960351012367134391520275769501878797015435516668510511050840678031741091023278726140721905568277751579404102676305836369449545209464150138736242274602327319461409226013973623679615609826405088874095674347015187328730802415794220314274077273594218856455181191998937991881192051174170109675844475593564175197309463383898263097909538753868934761469561564967850263763869688717432858797297299124896760840261602525067924460607784829982211604129414490065174476273745565035772489464950137391769541731385372199240127071153063092963557673305092413756732523838718077706570516797176037223067642566328082419993364245903960542714358800918796045153439819138887938124397765602306418881545996281912399518967623321537399660491701818473160664517903505293439492445637302107296834266166115356452171208865142634689469209642456271558772890851715080270756335306937157417386715489545521576651866481779206611709534509252077418206121617129333037214863188776903032977053214379523278944932138006091741178816153884890310470473396974640075807264699684194455740089132537128773629237872480247678795158236197741430584512979043789785278901609419738064372255661405506692044952229921774697322837992868768313795228985427539953259610244208734771040367978065797591431873527742496693036344888034623564857999827399415009897320964425413924131281819458859332391651468794867113880601216438483140361489495940236233049129784388398230617880004381539287470137123945088826083874978723327665767261276795664693594511419074950078613445250826541358842334423990553051165128133799767360521893391008369996208142911319729231561386738015027037137517517882685945646578212048084414275775633113375989196931784712423885493547769618877750047743157226393129527375105622925028097672570690130269361977538117521786835886866417250774815392807245961357016092635695834677142028653840852479956474896628873433344301211947734665495358353853010610645072612450550894744278574354845364893491451110877291436076617524198537363144772090009287945287727981761810007316900425552325655430268841421947093487651641165512348445745644604955797763473456249242174289288738104993270981496753232938401729741563928647760175231419566343181768859490505721201581272251612291111424236850989208700895293160864865637356974890699596002912837896127924750251586211229740481981680687576390540659440326417154962698323634805983745805389011487615235740050579412197424351642876407195588057803892472971865828603602823018963018317663266997959656272364419321688822895279328463321519107760412680022046884788569505113844229312875822896651426993461536460595394016698595772678641966583283913137539578121335296194026221093433950501871481517138236137521914396594567253860135186093024133941823566447384963151057307087558511786043314963828184037128239715349192089717362246343787941556224276496223277770479874480083583885862344893524456822883382344605871688352532746418703445331891539068056894790591570123770335562925127131662586754344308818204854665391984837355330044267491243381493113488183820442962962037256159618093653634850676002751043973154781030869016643982835863707819491715866703456063753019692059522817690235386355691399912204905092206468572113145409805344109742028176294892627893246109945955232384252384016210780340211268449171313300767232156467003622168781151724005381456854018532639350191609914572868663556204691427598997232347776406096696291415189500353237703504524791124626054027552593244112039156902528543767853211072711757927250278188873579257138911383571060301224641702152351552249088278504215543569006866744215933642977810990731288710249186269412843238647574255642036642038023354272350526911543322390792092553377813864910473799453335864421796106750653523140266087875217703587545368121763531300430746216769291509605429512438709496126920585129237515170383019375808133569729724194188407034158048497619244632208779310060233720000401744125526281255191192900808450843761018126306091402345805601707463155435058760137253155086483581532534755870610770510300243255948093123725008779004516837419825415340104900717521530139029195033339353549312798967738763460960693153458629766477486751621478401027622324136828946443857293843758092632545977252816229542407979353347036643041112856422279068112555438555779468422110208087393441877936171575652875544488611436675361696174887496912208430083980010317594951317862885237109981582354080503793814193840122896458392424008136687895754789022062839320406103222126933039399300673126919074034235286035494566719993238418861505999103861524524968575585400596320532956472668723636871073766781271371350327708563645909445144968542690885150795552778767236968222461705283616788037695272482923942262784705237157416120521219666599794233263567202815006483070179851547843583943534751036906109790728110775489968448676439886112484890079760879996077367519178577076891936890958128962752803562379111969247027350521663946324550110574001826838831424375586931389593039544935459419131267096693891501532773767623772494956147418302451741711088926591631898967642804141456544273215024134986961038289833006516404533640125186869763972311971610803172026499899809827132383925928219677118208713826148723253775850821392998858201884986735277322308782142331534138226454632957769893344323032889315465124050370242528205248474927580846830401248927633691763138788749840689652626038364065213043931410970844652531761411065391780279584865688712244126012145254466535392012589983861137953074341180808532424246219116831940532029360342483934026572377987415888524769327912691280678291696762862268890627685815736527337901000867588908647145295787294789921178116013694762633016006711372684470051016175493451601398484046657508791807029002834205299885699564882699604299119418986173343455717053966318801990350893133770479541042134975402241348262535326235128754697797293627380419653533760935541594255269821575438048133177452648021020846733751927764405926584362771387896395525632946306111800968388425119080124937583178342815705692338923277772687844029031578671200591388271540882579489138645818110324558888737121692669586859425337515183163734850346620168710527515819861623584682828807019777907494256099042733519262439005093396779187071179953333349216247235647635481895083792102278133314298167897505325358765247801303358532662009674376386570356761724151286919480961038287887967507597760031432962494407166061420955742424598204096200285361565574006730479763839912348565549031943271306139078805034249089739617889438200812221576649946100071126920899705439367380843702155511381584992951094462955479863649712116493699852633168993443725717044956135763318395297963861560418150070392454861148566232868108581028356795776544446597721510822119512099912244178763666167555474632128733598596175681734677742527175111969846223275427222491367870526184168117490056402906081034512040613789943780543540753760873801246890414035327863811979544049193639672509007263057478426174446392790226187091838864886466673043871391569048446513361533389960884827601687098457167644099773956379492363464994061892010908912808465510709021236093354395602551697910613217873520895323602608739386160270733890483125705611313417417661749485697702686157206065679334202110280978236276572097882683384874575319887112955210728632644354849908981559437871627032342013649232033204490639743503054607373917899302251294794893249692190264108453459372615782039835868033378657070341203314002340267871354256368216328261129638547381626223418541713658372927543850743914088976394065758957818438226382451774545626129226130486942230541130389576320019828777585883204403636064732891408310113611564685488731272665118030544650976247783128592231909349759031516273026693899148893590566744467644039110269795240618438488404143000104313896978122958594341562795138104201524340350034911620139226917061937564023514764880162593789607986116878002129489546389373324151995476814867803047138512074851293090224974634991373074752973402567021329551063132081476152442529065462225174751598594270326107088942095159851748775174185591096591823305600417389461854658639207542698405636482611329529232551385380749675088657953638266023996717977781894353906756354821685748823499283008189335568462611718895627633101862603894793376023520637132897943135300995735634236235275396499241669347217276382183828751034557533336481300402122077096148240046193041121365784832334898629173929399850795452306804189863387641491210858357894304444329438021176768723865579030630106224659761829229971472531773559969410506504764440615254785477919888621608710100930546629636017924037109843184161627633813217033733654430037329649327415349789542513508393101688913272680592855898736264271706409065940259034307831306714245825888849623202477689488915269897335183278105884837349912717881170569636486600088363067239127413451682374746529497304818545554947123167735379056047762736247639064703741905494249187830469052341423399172914466252722712935335911712330662999108680330739345845602972849432271211434334999683040486579996610513407589132320471092639946312559366287209702716001018155885732752402325596453806878616104699722771270425479223880909110871071515870963597465081700909562091257453673463481440695077821791560036848578467365289494878360452146226820136410218745756393067137429822239837011848687627216137427687929269723971743233298307299941182412291755049751637041339457634317080011615197152791842303504712455269424332074254583543854440498880578341000344057181243867521694541113614216948993423141398635501121639401314149705397463727836391431987874413940530891691311857225470383549642548446318974610622065139922880142722869118419634892698249744773604518118219470689177456065052275090679285710036376404655157562402281730513163468330818380603750067429881304569699099667268057238664348308047654918129587033812377167813837931828341632026340823120020802726995723404576427013156081275885841810466602750043065166998693418179005856162879158319332678442273259391490841360702608595910647965010685668967768292989798840772658578603046797525311842654534295463540059795792562290875517071740725094379471540959827491032066150224963485849891539756461376491689776475887491710220707105815529868563264654876052302599013428070805886017191565678977189721327483503494580800105739768322295762925780276680060520086633485053692864019239034088255189990007301094909335508862459928820445278877488746840399670192399755917669007403713113392364870359516060547378486621637857939545385511869276308420602694111698302337909560254978066671334875079514572535702111731951733817394636488592060693215154458603585896249095253956536331978885487359118634655392537763582516481718216196384240549366017523067875537709919844740766055168536556904569440876756638323412365293126807187142373042480956510357795524122489534303010906437320509787054660218250134958014517575067084266944989700186308263387040467575942729359232301688224927374828136187902400397496049467370412026981093321978046759588745605254287571828286301536654378857903570640122983765733315471264167258378314911658065749668292672874601116851049372138151701159864660156070842177161802637893678109893222146952181201455965793793375031533644688653263126922711045706279472389388287261828393074006668534139879803180538776903546196980758144825772259632649074626122748603474259230273674312812978481715437260840608270454421899162910644746663386496433575263834023505891144163770330898369092688742253164675539992858301449165749098730040334798061343245641236948052126673967756020408395697183396504985965983748516161612238261186810087448349279160743731354837866719405286862808192436054860690781539377788795159977104225591269950241236116336858428156759386344844896210504896995897990989088831073096536558423891082041953398491420956458642640086909478529286421895761497323585489391024939750100076147046887367147962458179734722159932342352011808704997871296151399914728291901172539484430376030002992637384684790987766964650715694051353494548097385728164189113466166259285285049293692230844921359034450860153959631613921426274821696819079888904605317598502376464778979526886571378978743924549985112686578525041916902690039039433120395891834100426568608834970648741294231891553532175609418486818160171807013394662230207354781563675990834782486275189749932375148320284066099657071746831511384855094128822857167638621224212638107273188356448659987673171278054304293755528276076149035558406271923876744230251944129948560225178007639847166749218628040719811803075083626983326605665426510354621276399343300753828837255685827133375791738460295373886725810506999652657572506744355304992366557407386055287685985953073974687662316121599714794819044098404508132416060794853085953746912529070315505282440232879029236066796926636243750592980132252602852710661986735294783463242737753952094882904732143840544433532338182900092245178198545097488819185794555903266330242694269237443984792996673264286563516887063554974483332513743496052482797181564191096712709589564350082570173097098406540947410790773643737982631996151797339895284412679419464460301552595101686038758930502287392834068827588015040720362544436007563281648557778394029272532759137833509842775589236976093648594007389484667150904550987713023011112544246321505294531552568283660697879680576459045257788621743348359986416212129554200036875331207206892055453487176242632972514205135990524189535875379962255414802072644271155070383251142468982595814996631331019568337992300453176999812006729767405144302047577734830702011119541202052373140437873803560562430958631620631557936653150882170876446436420367365093944292939610312688306190950880725163347305041542005399903057352764802792474335136296822760014494469872970919164305222692400566067636025739149289387877006071156115004803499855563493436018851860877650500314350579170266781083656154879079747119207331985864433620962355246033353497975784371398984474134038468148824738685406191606760389908012876604665326543623453302751547810779517908657828319617376963290293517413837657163853105080474403578188299796387257040560965368612915433270426081049716306310651963298346431087245524811943681033627589417849275538623595624028843618079116339225973511552161954192642858008391964687914552754741743592663100886362152772662939569177859501891487964397002220493773591876666556945698917567216779489202737198323556242770487865903490902669936158994824001671489396682649895482618892449427988102459476117315300028749157881984310067590904382376762070963853035556390269675519763253940468267132823936398256444472620886993431222928968362017176405135693908591811346230539581816679087588197011472427518669578916353870080916208098776079136762240277271584716319193031372017925666517153121854925068654106214995239965413314067141921326176454354481718490794223546343340193732251973736952453157583497830348637753498426476700281401436658418117852720401904030015989511056200204294106938129163802761981739263625280726250880377883141504018638134361859323978929192327688677055858022384121306742407466084816820368524730715203486312084290166301066372300148352289189204123724098823585453701459906939674973280797785759824554338305688861834704900871593550952093993679848998013119345656401227500036066887269132225270294169650202061801692234759113233291101614268004287965638800972743248193565023631966160301067510242142764928620055219806285187308609832791527064793230833808669108634745512889268597458826078418784999725285844229385454224870186401335424341956498400672893210360672460695453081963556594221090169884030300486928651273367894355554608785846918897936890338238246957365932643266801073240174527666147037641987841851189753065008735222275968559946310372500307119575139901266219342011720029389713404659822817956535492800239625193898951580233584593122585452609247264537685888122501735897457184206454293202417213797788164165123962834445675755926132530605722815274992250778594050579873087923552571604559330666256956360432850682888510251207548292017368978626865445818397383435720957645860287901582563464692851512837313924686713892371526735348248859980572275635028519264975998555770449194364717199303150254013109184254251917020175672437973078092209848879031880787465574731930875681197508954858089992865988091567587116589935425198193099921160995190593457746464552709126506930824503897959548642944985450761623100204145658282934540167482570577355189136992610991776255840441260391948834038801344117324133277867778286985246290559423584457073331330919817821229203299299844600373518960724841727804267426285875641059734584194646314832604071491301105166038554310540044330575400976127555311696877308203832221178759577153546910172016227765607444006616180092003648577524454450316543426995914815546241950300820782642262967248736081132458186105876198860777350628346950251854597008259146561926618097823767513852381231394228978222913802651739007724031804083860770565168288217041386449135726557571234509655451616174244045002933167990857984945910232932113117611308410693624874257090512476875592727267841712688709845758968090770067133246926435274953819767420113551034142481021034640271441830298589234120918388124444434965909679759981204086832803090466897722522926056961767180581140052709260068513789375086797510110991006668901870002378207547749169952261030901975736416808581356625244008504911196346031776238757645042164397481145537143773830363066179231902243449926911805376658899733712254726552257487485856956319453343943966263453924424659443420388618563808445872606068879399820401392947157766665767039369499279737385267514341099161092130540388468822695383308998054180845615036485331458626756571750863470917817325847173768045564488908083074416142148293940775764237258830671911265347624970057571009823351189971367055112822443628312814912788223150864939798416285046072313768315516891986657657807172019845847498865917644567220074767930078892337342228949436153469932265856142538389268159224265622681331090151259435208141638812549883306977476125194910984734869434216674360349335723117779706405247371180537168895893692095722855066561371298277900486136939237603308503464501275474303891881964820704793553227670883978943416794437322521084837564332260507082356336350217287851049668376410807071392735607495726918132231714041300113461815780557809509647202138268366369190383419237418901988023266418585934671692694039601588761145640806118085845458543574772226219790523224892432545792801941997521893729133602148708501016808051300287204865225352502625791366935007034773401698654394627926156153796427374050878021465932786510053402413650660320564245101545247964115103338925783734044226370841154818570066575868033843752247056857673462005049723646144390499069828530477979042348727144479964580897843799120511238569662520507137415866607350107443971068940179110186042787863230723669594213239907919485735221321190315332695369630608173198037608822249321014554737408941740147800887267249293618587262372381433754032247057441647645652160740069940458023845065716502504879301610610286275035350533273177015505227916510571976638004661607693251129044248792165253379734137115335952771091295607897448796671843724525028366183747172285296682421953123924922864464920736274240056029143775637881704121112262647488957828878649304771550825228245634443593820667664573762279416694724140398212601781498631708602935194048602740044226552318008529779053139936467024391059867413738403979452827928089349374869362224983121184302379367457268980650656487605936186829332747627546503779444879088924248800787236339110635574206779453583308899647426216451297580868108494567420035959301555624822626969558836855092348483918165277760263239488350731564578812220202120965696714776323020329547418118868091300790470839266275401779110822169326514625198644499257317194964281787195936255240955960891039164748010123488111739527246359594335978207336354135068695446223889683555193516046696488773305014188040297207829332621396993726939121987590563939369827027597472230878884368484701172811094527732528190951188319849993993588677976150728211073222275664590836061023685506692407651366549902947931585414824301351610513781932695569043114074899759028521948268532299289029169551523517890442971362450748604719880111656687811107822402994814606952665103303694801685539789151117726140785198601646009065346388359345256901238501656229383701478440717269063600666058637972567251323140807494321748992458736501551485116975544048947743766033193036273706262003211716860403630482020298804279157073393798910113054710884331080783649841467235036846105295774172684887359164022132848381353641725978871366948811630671311055686615989533349680257989013928221502519931451689285375094530691695977351460023624803589776340536118920750536512873643661553171553644841660860411827060300973637037534208244792195202979296880432158898025367868154313913193656735479081247802246277488140307441850975487367020725009826792820850702843544886911518131317274415248060883294237438138332265130474482349231648424037086297880256036354736827509633407573782777220585703326147601291302255797665120539434366110377945052717337206094037169729307868676456920820702286608894209463322436565194606178430875952815883889665699321407500404741982828498484856422907605661398427508580564773603816165342615589255297207207261443191721540042071146966171916099920856659496796479727706079267647073808569634351738994935942502933735919721912211617691282934533273488819621357591538465188775695356328606427784617770566139324867749060720912717535612585436701019168817575254973215461381186403138568414251789958821287813630328562773484913356553244833490341860089921765550771369187197330534585467714194268494996389847880462898059296448008233763796871368534278905326820629919230808138314241507905594518569828618577889280047252805962709742758317052469202046500058175218215618306582600580558625545575024237676765029374770652462891782734184683581278270169003233850595807031349500185751082659179939053381402459513277156275839990928410452016353006959742558957129215687764247146118896120800895246065992236518817927767354326849629400886208219593232464896436930750200299096912854719836146076183375633223978577577065405814756037672032882688755304716540322544526114818997698830683310021990465234930471547702170161630364694814867945696935182019955811217232992448594709311959264363110143688699267883879095187464130120361094248394244738694443866376132010195195114379572033255338063186017110753573363804219437151043959675301939901374012710239102178043651880448744309900808378069248812611982008163335100901550996005510385994103130975779646119112719682229201174682127238328816636400013193694773049220925873266017345709514919547434732339621387484264232256946810218914590979648179995443927568167750620005134630052911683546951792216198550888299384376184503584954415881972826585843870098365326138385283281766313923520992431954919325178640270897303143299571450883248357914671102367751843189978785753216013623661527709635709806564517174752786364424188895396164984581265215023275101773628608200965080257305631164343937229004980665361823858280301558640022907819653556531902529909351389743771598216826402486330762965932892679377968817403279605506424983723901476063664571722802976693365133842607673646988078016350579994647627982849771984324314795670062150960532959526784599238838844800858910878806209425938309276185045314275057765181569463782832775853260232284938094565578697762271389794707334418728736976289222069929043955037015620392456262679402423741828395781138770182891775277318950038685309466638898574847623277908992968990845925158564806712855914770353841416224707595645674750731799536852863214653823940526924795570354852223452916630000806008412659646159652122898784333426801932944959985586940821203908108266383894900178610139076279278118267312954780645193599937158436729893662617140748968341513426920442249209773811668760975230436409966736968948380372949254635534082889867125699970567926694019119393483625646701459928837885345356194419121199494685015459755647656731773960251401053782524224221179953222398297193960648805415375923773653140389517197940944630835905757527428295851958999312486807816744586724108870550421337225240397221113783828376922377704163950551541003845797804249358428968587351986762706930927472856538407578782438507485404639621174940508872549591685386589374712694462956096957593445801828961429376179579252034392208258754652031487518366595315950630886678447490822134341400429025627593927357128452267454620114145155545881054085664244033998429142325905114656628736088486301005188856613599825607385120464406433139185081507809230400581567144165911488106414917867055131463985297158099269747242002807152502193926020511662462229003319920267718435529849565353745780991482226802736856871882330806396909152962116917022249888178756885842564757256563847453151636303615741081950034715796058246795563934130787021663646378623017263591377285708195769971094575887792552850417512692710380644721703204652971454965632887528160143341762982563388889335187783458151894176096188940406885191789689858311009167996482850933862962221932218296014135916510704819892471990434984066213401738560147269176889346985480032065510300444336526841500923983553545038851060354874397592972163084030763340480213681313601968405806837703547748431701338910399601863667135287944095125386047394409925155600568732373231210364045705351129167592845740449366969853745292818809352179899839682132204498754717992605347047321230179652481606882913320970911201293973041513389502384252498639844024637655394934503396706078673454121213658539783253328569583986396853427387619320907369032995570199145979165164918675378112608433215771211881790159895821700350157213922116535558963048367533016444541878447021936275843818010243141775087546314580941932959959569262825253186933619885940716563223630667098230617105997550923187108044745039770772311323988348321816379870977659657063433113887788896229514911413353758653038327820315623860443446876572618299854331237250684073965840154150599799583454291286532635634871254801379534091707306540820007508907632940873313465862817009405769690217368558609729406312719005783148916530322727192143206770613939443789338689420796804684901942686882803701541462020372561172185524738320105996171370205981571054549636107333251317017817024120741425579473589764044649163218455840154843934677074750332592845735559049786471575117440458538618135343134535284692768668902951498642313165045397585815181160998809320072623048092260533866815800572396504600453241288556289328643446022191163466827610880332941850429862774403732995362442571714381074761939594061620562388335400132169106127798542817455977699181032479943851016347779185077708930966473748663127585803256358086688248734387326973108476388651482461251428179312131997130830958277116660347071573416726925496933471439718127528894410818246103416267237582060015973756055402063230178235700724613953641054749836948239462262131772918613546241415239974293279590456575542043902186124324854392250198320890071216607888195835710367717833028784164926272703946070364914544317339662767258708458345835444046197624892800846674703315296397814251903809399246371018973557414098902910002830438977736579395382854539073019300889368122637398806138464288007482646649607341650107455072733847148849368833481721954714539574367337052715501384301275197996453585090778499161905962599795185639532807692592536937615134613790076697790375412084345005900334764054930261664652425390136512555680921843010295067919731491579417922806526568304247394714074374611205952276108469263395596814696560317702741224965283316246984914753798531647329851209246870510877660389845053720568561638427176582475469713663758995962932957921937245316291194389084238164440778707054098825125380822712114285148140660339208844531125112451133199790883144452163254536699936931132267020823454374261832293357673013552710792366154631041889700878068331988378567438069217816336889674350721330860182471157257883082374463510651679142691115035117371525345163345988474611068854269409327449154166876622282809623397753838534451076474487743508073634532513011136848902765376681427957846815467338353366120265404260647918508170324161695126335298843032790598263078066579120011928519303985931999286999299556524470444759183106931955736607863234357690825958002340017243703683460520219312349348086034557429748816899338402589237003103170994553942481384593148711507691000097387465872875507742122092367342176259760944426292803725396324956089743769757498487982067273035505170522385731227085520949482052928865765065393927181387565476405712953451412549130984825693845636281491884664849986753607856084475376810433123452447660569849240326070999021540350281206742412748068996611192651461980063557635659702353872423575064862406713035049222738047633388067193056070589009721776633670294772400281567932223167724849468104730790638271137269913616031814014038814338713656137703316517442310585940829350532269863249830663209704779196381164689514722119166216388061748619375933062245024002946244422562164171810972675890953796060580652182772956571902532414005290225409184247954355582073538571895283276537536425688852387653358571116101785411154918897739893580677083196877826127882773617863559375913528871195086637497375643077933768100364266158487730676800015333475584345493239952028413144819097771273337933979920694370721284778224900274097219132871729179067318498390937742730473996868837373415838915630165906036130615888456329180063820602511248573033491633311907860622514573440010154630824354682155051948831399723140431405713036925753429887733369432402807392694743127654530125854581618027966383657182891488024175196307095794831458594765583088544611358656855291654960484987991850708713530946788176092771557766043122070569910605760411510974502569965591551131260384759526890161636350986197642018931818402521052468527671053478440716631628938939076857765359246097842528979512582261917331580872059663442873709131906470877632126027053451078161756345666533743531561396143829981603920044158484193470291848830939289422813008885812814259204974251862722542444757945133109837613446890026739844043482748700531089303502261747509506661147305624332454155485876636410939756885364308616977567989736590100115867208776985983349825813210788256359320697764285472015771156862661581801030685868368878378506914596457634591809689186892741649479318101621534876781164127768424750173928839876707844840648293851021961449795379224431293870084348611144185503421591837872283007077361266354616561132117319325380599905546559745734343670991601078724621759215136703272157033588096435842492916666232014213762210597205018090380970973256309660309104074720944095261969860152125347895964167445634982092432935401061825549562540805282967073254032086091351597768928453792770444441480891740287501840715371956625883358941486664687044525165563595976154405167374270381282090025228894208978538078107576715788002229885787135137805347594995132342254187012428077764919775576437920343592089142365347464392131612436767122942162072241440581951321400084857061478599336377845785006816827054389592335749851876788144947071508038708111563606930146380512030828565175406225925021045472136085158980025675187150083549845276532318939612755073679890679267249567836081963625184684816697514645613201129598005749766109657903205530364108723134760612171026005305366873073504195135131900974096635412060474716162397738139670745828708773620204351060996593002701385739636962502932867122874225321852179456157463469982132275842396167902652575312866985761170415278565188732676007656157460674389195278307565504521523196680771957341296643073566190018198433354111331967757548864098417800586374441495877410604922002857625575461942687799415428336544062758592918333481890101336762167120038333527860897566320098378318681921339697901083963194242036295194117162665708584161956944509582500264654602838859157948796471746002756770637178798206234271467482440628631840820531186138213978021854731943596657698545687243207354374558820916354567502254882314995705425560082705064088534418336263841641425154299697103259532609244669596747492462055011343081627457643349767063152736282158528845036722880928897256277004446918504866781384120709778039283439470327684885612345314344573935143247402688994685284447034990185393319685879708932408124968875889547041171635406580007224151607647872422922741290077690016414104424240125281522314341101725305680120533349292625485190454336655311704882091120221523325848194160463526225327293667077764880307155677909484436345009480551908040109797653153736045414047075251473264851814547171565902859525545402897831184831096199452792470952644380710240079348887733013527784869740056552426581261682291362508160839948188734834106974182520683199407574569609324314665230588691345768940473194979349362987379949407251371199207379997794871313590955754660154206846877803151199098475878897038810343424296654834729413322043127955583242579242629608528520795211418513871450829575161208721859816395257333664714674831653722072893603760901745309972466437807978764404250896005701115501048708114193982638806882297458483741014438240504418954474731505453980750958924447037467291093498883666265425317468316132758544190856181299090295338096884200324582616544356425758934767478444174253331698000611103940673854582027872072193955359694945600144477104432305208249112133324697496057724028551256131096803016011127943498798126611632519300900741433329162072622819920866960391684981554835221869431908596225179968446575984711774716262280364395453488892144082816029266178676260995976980481446139932251597579582079970702876638155633376695527092702805809597144244109136548657888232517232359982611626025462027688198237088230878172648754868767183943301495378886021038810148828113649976881927727389935508181613864822710776413226189299238386739668702307240126985873266168459315481343293643114236316484066447676239817882566416751660495230025514059955972907944217914375149971837183096313405814177314563830583953187612772344813539586599823591070311763629917378619109626677639764578225678597578815445288534330882705706756055338510749575517910002727446887885207863541573788223269524782573686879524070945404258369631075268287943646433209236307399603737128673661243908378890827328771529226259986799986061511612026942942769192182932193363982156919639310975190885099936136275683278633478191056449342365091642260684484721568544890566106524593570046108360660610519728183313879556219833025398287062939790233349627104122251909251445954952045657067551771596652628311330111496076518582676273941209485545543628451388916309847344946620416077640107126481465617627490589080853316780492719865386367043046811022561496305493756874932168349697799261012867173023830766748600148035676172079436580151990669227394834338369813338426962280261697660441326412000981964287358455535489532870200383532947449007074571602879391502521792946735084806765395905418191230831218496438911220297915134912177876458548114157348932787081523844241012876664928067996281091769212530338913876127068450444786680625299051913467670156852073656071592604520934120064663541243427908567443204039248820397859733299870778118696366340512526235014308808906135259603701696232333268141335253973066622212130265436046772244118902745649177337902096331755662712234606552894622320244804760236427300706230159059519579568776284349413710159301148094993182318642962989083656893403248166352881601815301655250806296716668693795471474782533832755467895911042415789796937319481955803132002825629482377446935616977279155048844972505830851299895301379655235688595457122146025897798251671329942371718465202270030754621118036500799281419539321612293314532805682333589311214379806241289279507891352224539180192416658751747799491701168907073203713691519171458641349557504173491737453780882975215159636056995612821644461869605249319710100876837053560576351976958344819382754233055898357150500669450876794774708323091117092947070054513624171495817164770251646553990410202255951542010534840025009410528807313233551191463223503736420447203537251449229686007630044496015210864319021156403939041159612863140632879893398401688668691576286572871512094502059186497413143407504405061629170749400059721816483203427827862334881787731429782136011730820626069369724357037255694484154041063587416836236224249318344799884800281093540047334029420460591154091462189440249766816232937494489211933699705783783365841998395678461517060918406147677393795879920383097993164364589564541108355253486143890164123732123984583907152526154995590811354324865348798589275097202725913536746233367412460503539314818687099424768386429735275447454312039850595023000208733204111962794396019061176720330000354631420367006383311090655754831296536845144302144781287388597567782608356568810370732402044041571927723162434375262011987223429010210541279380009037115657631970388900101965820213652186691164570067502240088996674174934710303652182011593057902283571574784067457668085656281730935525647543497362644795767446292004540029108876400654500603958375791360400940321235934087777498890222537945126993534248005099720333011202590014423670222539937942173323686595190217206334584040956586620843377836376588469637200286732818302430664383768004377748781324146361726296082257025903390782940652987732275059689242306125995448265067900708128756436659584274189170706713231777258658336770504716119684517943669706805231505393642976699876607519311723724579375878821500413038406024181360490112260179683781755554631576760164478973682157379255207196191279080921626541399356313764659392233174611154552898731617944182999345424930579637724897215143918116582048272141443670458053388192248084712752094676697886929479783865449345110526175385990028434443876137214244715489123184029771161095270506744089087442783535255396799565732945808299579875946799048634955311998489769329459424999057724086908385175390603939562775884670277072911012001713651105236009669880776008656205937360148803692211641032515206258445076773108005614142933170996390795887589216618581494252509720107002649899560130792900588122171350217342024857371323339576221179289319276171905591997037605469174829828297529252398880744759335924940221681033107245910390653476917058076785522972530227958399335424749134886486372726281040303372534552712953391264810270843088496319491027185242946653859183217691595775008241837711472284185676890652454852816913308956766983104814684284645089744138582243105772289545502439437905515570948645724211662269278706826087452326259796845737179506580008749337886831813967978529925416615265700074480638735205809166874573200081252365991730561942791267225453096937416099416167805063262422252653346876187097674536853468531119232429066802399454495608661299082945468703898238068268041577282466503318605988671196497016991068812089296665868784625974038102735354178757705211407657189790837844666775327067269243795366053069099611026552932763085284067626430991308998531815552212351842177670178182794859300085748474312595258566900972876432324977651836011845831446988802623411821883746031505137449003540667160251428821706992395832552325260676842833145834031276698988560363388806763540375589237922522470967848441720746624038708012925824012488165161006275589530850192644773278877751253005849804048372508379653821822994012953917985775568950130018518368185782563516664815540010324185906187398164938654692073895928342813474359318625839841986577385692583726224936422136143205347156173562492105173444602076090783203019957156294461435111467162279641607375137953557221565586433456824431249163948185183646641283192114212760771044965194658801262929137877762368140627361617264013755259094965470102909208770919182767945987770723171412094228671027690468075123213614355526402910083118240277816014271223368089397865881520327809839015162062953840318077889996354745456924628574130171983845458901224946257910872354174463620535021081603883920525344751358000498050107704245064308393495109686723307803400168337864023604932154535305872989729735335471436114410965104089484035314604986217003271645799551171874158935100884089901977170605017505316647727931020777221030506923997168092370382268213905070153748400298255465970187999872707323574869501675601956128808810641517786349558503869727341020296521545421825151941320093008145227165206584062161574384990001818721768451509115558772801563463341286169253881210957902284036126170581007616196029022961453624311288654136528528985649185757840369071339424402949035606609788611863508060184276894410009501038549622091953377894634713249828913953430012876619367271670437124035573212974896120930330094747662411635075466337462618361247336618862811140843334137251986311260984275555216393578364059339129409269421851690065196602380221025280075947314369548670438084661038038767380817513212137872962157618821087176165588618960421813502924757791377480363619338955287018827606512489986753636442622602877734343639261467200543419094930526897471706923682128562422102337820470605359172172793212600135305741285508536021932891694715173661215200169910461227232667715630650764588175389633244575930630531000034015957340358654392654069629995322145157842324923433202881084069061882172710802586503817162500315476433534999641463734552766275319585967880788328602608870907858654466056512590209693312259902497706671923254465265804079196962301864809862334025388959138539668012596663628417915676212652189371166602145784947956273396486616504259616380016910488599066374705511350247034144559549354216452057762853991579073718535720853072434658612587023508380898912505980177510077584717745568161682935986089273963336568812918223346202087774814234656734402660886090548312434611693911443810156502616991183576075236378343723517680897734439340902062807263553224381733579488684824061702208842414863863733240656883881605339592636616974470460629567469232873319758383916875332270483300555577991117036146137887996162755721078272436557355578808916092700643739439018408064562686924990461780019283769475086404502380696575874309100238486201234255541909442064909754111976734901492955749425605686704729647621341672543794477969789732818804957457978258814718180861665906929380547104437171164983079137640083287178227856893480565319129296838245922883581826584331519756620499841633492903076130262895546961042893595587482051409359147772570257058549654074824507193364577957102229279403949463752849260542677474933537574948344266611718820870000114562704134918799558063698840611976702911592557679411533195758036695702231928773127315581221719910081737167221853763950204120000162163321555064009955602608716429304433428956608648119526991812662893548729211821193319383326552068248798479187938145099455198440778032671166694462793612442757791875755874493294038349358447488275714532210549699953589723160003890762773038746841819924656530873648206285437363846378934729278993827790863430239892409553649398844518014741744564249621992283810662018948259491426534027082246365050758102491344485243723947671621532564973958296258481083728653584079827518009368717912516687379721774278453440733440169940286276649635901017728936651002719284441919161589305593902154378361442147433937175463022690259293103998384043147470780853083080415036978321252602792115847182054865897263278516167787182466903548798508725908510347817319742488703494709549734748913639954834009996580141477758871356524310161516079348065833949201901328142003363013043852176295693120616175371242648865814225872865888948942905514516519006872305812789849234216989978907166123581755736598066298398854720848557264278051825257942718402212990771496665204659837030025496672271320145609956199159633577614178173099456700292163379137816229644669509964125134543698974814962467221153293901421646688730410245164551182075695383635527131591234583190175293709647753319377104973712448953739685925836405354409530148969667664655190865477097908187330370061155839185001459559968326215306205819204643634939116657678486626992665196387121633673964774237755673096388177985782627278302621473169167944673405114290285851733463621446049991216351587266380719249936969294268622426622185531875293689569817534628665452331654416253720935329317008430473155019811857164919889173333773227256905234321198860878768319081847209189004664725319514814078473694285688535742680785286509114205671931675059144332812357163444748052308501345030304267735764103939772567669724822768976995581316391765134317840777055688229948079334491785581205270843224080962947068666676621949112737953442701233177176550610954694523525063491554563089891208919243916449003976672912985176265467076533171611350491964009104533523383066654180798470462739847946735302320279187119453695848019943014446375218926638483051211492642935392971688843778250734040111983932340018103657094109404461976403868983579652706754503778802822816688801009155517082585070751177578916072623441717126315871950453259589991234506846977510671089402730444007708678644136944437190425306209547212529956140821677511524623310685877030011293537024566498191082933846762740032189701846501874248125384120623575150073611905100293636397247829526922442412138865403537837314174659722285095321024643299574388456317671870132430011345579214778620815002544752245665593007947462273202507032858879075710213415393510569372155548960471266913725275369561966699838252674939559964872321972445628622444835298731308920467579116975731505829484644806236153054814071846272209411057564399561970703020793784166077056979560574990495275608460510819544553287347748682954435450338066734198678368663056634028665309834885860278506007761737607788845301965046551518112746800227094122849912317712083423268428634042507807943063134383745975181405059309600713344198730686961495261436935244803291267266412066442358470777489307688817768802228910745810484172421448274710261816619080663423888091630496735812006901550806240178128486092261198688229393120468418496338493408991914697125231267008697351461551872456985028049334760822028755234714977815699460568861162185547173266786981103959996008692291624691980363866382150733581392602028024274838369503368368611169459527005545058003137562780411063577685175472297093906664609503907584236298625779914275200418469961307203478587163718787718739718394657963831102319337302929805323174950867276889347906217142759338175780473447038355131534614030749838319816547933746609878985505476424315544492396746626760162054938817053397502624797448487766271737488811192163927971111388886784461153094985308008162566677464474279426442569115131251898954115151942225570295933475406298969589362746417806950408996983552523560825743613516840318336382774552171451314766573059710289930823930873534255106259503211573621985656707624465120751494237466895763231033662196225647941768344595457742029875235429698797850017790497121319971375831117424345278887627909874130642526522155474755158693605931651583128617542084351117006775883645974155288852048582488795462129966778048110047459904166178239902550323975699252131359189653403410178760611078131961017606217016639374392072401235871755959460501144143114463391013762619400514064262757576443591464929140863986403709670731110520029310780767090218744242642611891981922397057284221449743169714121677855640462328430065681478181218345593268099283239838523945956915822354083010135334362578213754524908671386786034382192560118523899960216904220366645180068647851228598124989233706464167940710574119606888353652234983080394596920956967244720593288985693258556336847870924963757044146359520332528689183584614505900721132667425784931374994140082332674668836431056266725568424106956457080548294936679186705380663324241471389373265134763615681857130936054194378000381119357160392818987278176349691529881450608723483538671419237966930572696328408110711868266383032147696426777656657898981231430417835688895925618043812784872354912107595014590707116995647626427113687776583730106571197706267244326886926839688804025201976153312874500447481135624445550784369117370407328464727136250297561074930163090279689726483452604007417877274115081554825028990157008720930054868371455230456422942728871275600570575505198763536657285090359458752831536347243948074506769377556483958640175499211037853171808241276655079830340908646923408670222874026605726248525483482811723059452152832067724322378919868502391943963565114487272424508053486698409655600375618034412617383441871525689115918849037804469308642946075295701390962819280100494255348466446105586466495013348017277662266797429206619625388138746836709677320706724423428847730286572776374075288437361296334949523174507229038562632319083616930557651683131871934422437470737683637165891472832283942831932482943270166104291704471446318833697066896295718168363490521972258953932274097141148673836025413342840293345402148576111987388280001184308327937095400085191101178576789446730716153343874935008831223280678741397671598179629570161172453167523660145505825213535394747071689266904400239830194422722565494304290610566343487187832179955155580014033572845725862583730539064740372074162757036878938743188787195530695659821408130133067931797516948023429789441481563805642252577855124643983852165311441634199271839917753077224992993252184413713734081172896999535072920218247523489035490469234900689438939732785020369686817211419778262486492144242020250293728548021984407170783540709882783696550942462747523350744265578350921667445234005933760450440809215207493378978046185663241317939943753189786195163377498909352395083462435259819337694686772973681003803430974442680835440226468186115727039629350257326909379463380851518910424679907743128586202098689694936221769454379242247655277775293109087498278005621327494921287614542965693103436628480993984240176118134447283919092638417983830800124938779341302581774507982587527192958186962304619982765942734042444355523142170515197909067427764982385659248564766469230299601633198952059822703485901043994532961906627662506310523561792123709809317427042603256290114379994174152265740192328491176150839673718396036529263723945793718450214984920313416543469053447383553185214701935420010610266473298500799047287210017973977258719793751081608862706396032574476042331678013950647340330195985000847749143047010120747817467569260527504174061373524217789327430395368575293240407654146549082045647874606536236304455801435976646002120471215591700837860198343831835093196932273655503214161994721376099003359548421361921614301604308439757386102589593785653964525276853870729079056893201528875073443460685664669695116601951186378731317922834537741967470457557545001319349121722059232546520195042794638260877912350865289928438781383475163913637605688956961297589855887913140379594470809518448113674970796237891985275904311472273023171235885014952945338612326831439982287502129634811955663426212905668192928048775274211509295199441451255167796791101428162258141401996544900261986915455896332802139196181833970828834964555724681581066602616762769781480320244676185312372404015194241636537252116902673610500159059832812112996923961141008026980001833057364942438121745112869301453217501085495728922440783187282797897012075885965508042820286254296723295420971617301911479685026123951274866640801077627540320408877215001044468097033697151679627056410235548847888416186103951501687947664383642419517519084930613210255046336178070442679308415596157165626889831680328391296164880734816138214022558368522742870268817178421767196594385471914734834191661024297683791875447162927369792216976920263361458633843122186870395480142558984686267170603881255027670782992957104917772744216859360448852207303164410871998444569318788727956013895566876782247816584081009485043610177631743170566159031199617879086367325741526792754657916230192971324536726316543256553660720307419050686462006967436252565558315743207410744856267062170225495379016936439159077052914496902387168506373988047992329164527784455572197124644181283091355430662745238435082963713136165569942601913610053316748620168843417112474900949055832171665507401095781135838354454615571047719263323288647546894509661336483611953190419662850973551884018978613188778966812041532457639583862318036295791249657414939911819688319261447189438621545207588383288139951310163594126356453899460113880856372778741831568918249659093064323665006746947852112679865794035784197120761631726574391069958829832622006124196385621814732935509422213920338322077426181544109671835898705265848078507433426613787849076531393836585210760140233634390520613023958869552420854036740602251377714235725703939249351361527689841483678649233364926095486257013340246659059056630511341801544620994694361187479025241670108336996321788128992188480999346575636424617357601739514634188392203046885378472955136037520379903771639741985824528238883272711561074973674236573457442451767499395227353579227571972329475746597893798287212335703361036903245352037456179925227612630079795372665031949873250240770710437197703072162033128597313163010450805683993351263401661556457281931698025017134740932921287888194699765380418486273564043333653893724000144877076629973260293889007643704000551785808836604183882173025790976049113008097678242222647317100211126025890494545734790411620192119306726368817443395957319412782192951908114652282469964169826962438314652369567967877320957509565323496090832069184741306399259220087342280181824605598435530519196160948218544549421090035329616789247386012429017302307474803760180357444099317762309688018553374027417354761372073513726248829182494170436456280189079132203203721867792111008050958448315241045470945090643370006279992695447027424219477283030078919272981480021618188939044291803528275883759265593281809111183706040344335181515512337820228082970359738290804146015922091347338066336524660460440558610445840326816652850811481710021451573894219650900325136677866249599487809899432204278115833878904063815358668702819207955481848366806885434247125019017678746922744951243418356567770320237548252262338701073818645651667434244200485285128699450182069189917230848360710328645293938017727600922430455764200056123671574688124405079035840495082385130099484673275980128861777506281140955439764994050971972084410507007548804534162872342354506747384585588960489658334731678688634818188073932049668726249966338742520439199258517892464457141414971529310696123273474106922260102659353157905054202363193149464946368522602803049959487225055849937080021744736449644004254706579960235403128550963473666493857359338943732047644730507134550452788937059610226944776482657354253166822817508986238846471423329121624236977790302944976509394531493778917988713123017118269480806122373259813061253096104070041628915292524430856598152472289213145117004559164483994186461889001792113033562528076272643786281555572587471056082480017576297008022717640539533746410741089924652461539955735240599157569702377740357816956631974250013444634349069183209975395074212986357080192625359153423508010836539220335311118508825671190490426394876501766555972020158870192644500883554442376435224454912990817502851899793781697616815577344245198575417074185182037173911753647158537608779341886686631838833277959387545474166510340073324168012862230667999630855231290497975366356066421525836482683940054273609795511489194550571071859464129455078704824941331718221374167948006338320748369261222276398622694368069974761817309872363133314691025419061549452039378109365237762831086787477107674691125197754199273876825102735584968530869535002549911572512671667342681130344650766383560001938246254879888802508675590774253766156058290859009379286424375938394188022676514632499797100221178836925814629526267617282929645612164100282542856331803432984884149685825588393821766541128005971707140199808446842180108645215132188365281632671906395848803358814108170043368264606620256359825291265853805104480477236013837210938821711287390615713818422804763344663428544367147507566639369514877291925962274065069143749174224683829002713702342593493288934717494837208634829660498643218242514842710820710945708924776656326654432305089380897550425583887680044952673767653245264543861675168478652403583616994983184926208294388541680698704091816321778609572689489383243604917122218315031794466710598437923464704221672036090247109883949890894597139734683182069983197059344822240029933147925996744378470954858805342166802931678482700783450486737448258013838331447109850672209638233843692157127761606821206555648396522026439672084391540978792866152897450857766507658349631123892034592989857955124984806695801588036650879999395211664023335273993187445706179017480001705187183155633503825852074050103355296463789303684697051671725280457145391602272775232404470403516605488011987182025128321563044685612634994584092177018409106018355802255823499072444840519703350969982869803208795700836538284385740636577626309406648241955231171427126783570787725132409341480453940902082614385773578496680089856489957620456824743536318558089779409864103483577524225341923361691995502133395988903238199688812895735938805203912585783084443897158687163700377266133695668868182508919331233822413528947916506374452211927562966833649927106539288816110159493121251551290015255119817000858113250541400903303616762536610339253561595415218420642657926759393674230472152779199446311135843880312727620769325112612161188429121204718165940903795029789736107016556809162882267413761960964804271173177126777375439476446819085155883186890530023171045813517453306339555202113891121308098175691337538641634245549065532051570664289823199487945721946026067603782042217409423155504264592377624691495413536124230734135806358991483336890808046900239460986679704197590902046337072955220687383586125106028238623065951657902255741326808411977893805872657068451335890229266882775151881466932252009595041600401239065260529402499476760398979275738047592516392575690152312456557149989762939709906755911638063620347352297897127172272277562282962640957864942027668435299853682131277603779762509864512019278611555656437516904693762431706456040553075385613305561319566652072036593212766844787274108821996325770094145573635727276777297865464671468897707831368331605323385387569392270447682627876910389855962692184825109029887300925045739863160235399628578508322263889603464214920754850420879607363565689730409668725438383271593890237108511683291364324431522581029124466891513452551807616491000626595965997199644783178307699388853536431181338849007309669596945427840149467458794010523065370225638366233238103087075892554192902822931513320312436279864635322800712926432794340229139981010826172500649336851002814463014326869398560510807232383592602424113778958792816959014871663385342421645174164276980001506325180501426874014957502564177262006371772069070681185144119202091364614343736545909278941967238182011443842071674867390020442175232748558224558832927006769374362041052153696371232856668310260445473758497153291036296943309071970617643428720643842218727928146931931019345251940259527944120663878471424487068792148174370481111797052533327404721817619865663160855184325556206571143623550413523519346720723968357888061771713808902465877123833194917572050458369061592282967274093609805985346703668500785837677622247416906050020160099752032000644112744446411168710329376129827622396253992453767596919973782676188421417670547920885699158257501078969707760057263488521002884907123781047079178332096948267146733633539444045117945689442658737737872537365397250882894689341392507715057414225203058381666124592311884013010512303056477363881665782986751699156900229285915299125915541228031181731675156427947645701501381137503096345907405752206998190443619476318853311331942893904589419495337444706436450369022275844470924064222605606654614359832124095229904961414531666101421732073477348101887781172025290867660736032567687930022012733229118113338491661806278607819644836799771463213573198250470783081286026553358761820244745872290537708330230499338596483143766401011248754540175635807943940214220132314626705145797771120904314077442800557988600400891928801733504742706454955938928427763750453224527443706283205134826797138725590822820844932454754981946649259771907736638407083241216589009534184582337391004990758293509358319464311209499882283332088260088531576174652478894317138032564553834384345147966701006256870879356665868159385822972845170438119890613425008552965642205502974865646635197507099487514934716072890192897926004896315194526230119204034737981028365195360820394547893549913307587328641213661792783038360895504847762801662469461803519354279750879776516332497578407543305669063005748486439168207271355145277848125517728930335478498679525037076478293253970448335474796148000153210513968508107549236362216318182882432594259974126372572240417618696236155070478319077453207219349309339810831045628324801358982243126630583627511054847453473346870867809542669070608741608969094539728498037756265924380197924957293163511125691804371781406667201402564471376935241393140850693251688514205912955748398921312363807013483673727342718179988962245191824280599163783627941430779135137884890747017317682499557118545258378611215856635661207865941031168359887717163572960912898278524196356713371331243275419957664649420951237790306177163739635241895923800297224980284887643476216214759834859526880906211157765200986986980306637988678555645486881849779641615726261318414279886780364416834229981975647663857067197557865316951856505288917371169781242914986765322974295575222918813409767038139749234250508744601083856873568294101515434857416265138533214535979835801824849469053975590888133779568835918833367191175982096311661076416142845386431295444601110431457611802281855851128162511241362370416038639950350728362541516562975451317295974696822752218865295581592856227218332341331542020183781597666381005824195675593117178019666805653409163265006537930415946862595956523145896299728861595971972202326312452724185407608072157610625051686294846126594204954942235153114504935555606453373807414749527194946988109028199349094882224744813420880599904728288991263648337758139203898757322768493397247178154156945236456550189304848773741127317012832042627883759622435933241129824577340097505608562898424087759459520959667033474616011378639075690995363253902888648004601397225280939655244077934048189084609643230955126219239273097830675158146148965206650479437771713106949147686138789769237428153729165925679253826081011105235205432117911850116448690794809467890018263963578800938988364993967369327245465276101698421889990184215410836740518939983322544572615568465712897661879010830990636244001095585369529330889000073220193339929908382708969229224613701117266297205781390487860685538727774543126302352737966830277661068451646290868069600113910748890114279512424203238558401806404099756195063852183910979387884274318991600624416360885493367647415722493569008199137869338314695620742686577403274451025208544739237774913551096453978172930322664911487899040880855132997315309504324110625210839811290419649965655162644361187526204787768493901212159312123843576051297206343658750544139493542494120477563004397851268194151364480612202351300596643653256770217634006451454663083265388988232273658028160949039845326438301901087944517498856524518619876138051017709403925951649974251369272555666643780645256560903056872407262770258285716925657920935529282212119491636467502021254349093896203525925962925040891543946426413915563848870065707875726528657467944452070485650541235662471227293772850231390165013900600127096247059025653232234353752605694441239502369425046764479295525103145815992722835350823238145324732943429558835923878667366634185473061789119965225785557228114259255053907964086182707188206357208155533219426701566074984591726574584835185363418624069232570220872453442310504421865662014472365939982329928419142354494665050777051301165084541382984498083579983940522253750668426807183986129721551867351488430483224681384273730146383696130202538131249811414351924364014161363981038839784477746931418806084953594648310904441928183702256119282810922800920264190965823454100230542183516490919875700016562102551257788422723415028507610571369757116139425444575331921382062491573164051588436002496505899968677925597178785139235596072990088577623474735088455014501586754276039807474778673652591231730734765023624233706134269517228568313942759910051086565430188441054439784994793546148146001977723936075439089047475473492180627183011541590538246604880973689958745657675416042937632803136771792486080142139863940851380981101055664569118623393438312330790686713398254795650335594860678354466854267567976232412015168291267883626626875372168785885796326381170120402630388613837636596194957191680793435805632729233063232658755555148367251020140131746416757622544486784772538554873923123059697764606281332484532833116510621042025115911641496219753931770223039578251825936026744347116810576986307417558945321716519108494358285522136015047587141979295597898281007273752449290936231323337727858942542531734175389102711952207023524831707126984858676715711826964510403958765822162009856474402376269708783244164612040809404740651418345933284412687736404027882712501083017656632730548577122373215626331770818532171079573893756008228594348332771721292337312880309417008579563363896824074943017724027538936348158878111981676276210315877451938418092845358652363153768067382093393100865219239798865124371197079837088539076526242574675999780136183178898629336681746332747572881091605056613781979602728215353933610942626137928148073535345662216101619550591145745591508486123816182212504508992333695680812339951556919177257858312731553915774102418636418442711301038324851882031190846813176052065343108327604579003843767326860500655568450306579389938429250723707381929107440323887939542844260613132195484321033137921841701009423253911756535958503146919528366487773044600799257145006790233455848228582512659785679117975175947051137293030458148248589523634730678143266647546600249377654284939379041417981682465339378384725059672500649574102693349354268093677776139288240964073361861759366538531540500642201164683481864170355846438106672630457944229720709049143917631200417272923984711684044927955104474793929955454296695022130339513687993413269397921565005570540729898808720643188759353801504527053112229386289258251059641618713150257218621466277678310306490297223734323076144554811845697009404510982425260266179643128700465966106768832448236747336114146472780439412874535028686491933115857338479635988069418832452299516263509918739895740556850727007873230157873151489376701019196398806913130326773903987910902217801361235080742364961605213856324635929122606340608423064698766687321687679911917753483699064586586518145817407416855728817054334153451299359784639738869866267922245538510354506549160170538293817360587015651459512567411803248572020388251804606106326361895453862230235819541060152387622677882334828068581349081047646804025429298360654020510445482300108034482580050163983374964836787414332369708542263556334613587174249186868607208962396556340826020843437505296750586452221638170198567016791975512575526525363759996390382063172563633321833621655262034229407565410436541396611119587535296689515810282761329126484190154159478200030803044910696576929297143519479571727606140036245918056092733764845688842312739603551484059111589651333288491831678955595525887401749033115319981316456249477025308568410385134124867771511967061737430499490942385747810685408049361397174276655515114092138835429131634009329267926292028034483919616114939445872110286980123442440814914797630442905645410920239827645708470692640228011415778130028733296763576607129884415703086609707250154157325051458526076356309532224084125985767123649067111869739193689900607598941988626218213507506998927253718638944489912843018279071908497117800936224283374157821871148686776092294323331118101932272418253206527320533413906454808055269976320979317031253094901998079499263140414411803699989070223800821318747832220419110853188260939486750181845357604591318994915284687403561095592210039548242653905815528057973314585143669850238115266253267815354330324188745127405343906548299402628850426793658460857265743244202322038108465434961278767659286317256091168330445441672497738211807993753942505542801913490444525026838097388339170320063713805350421883912644465855737324322159698863714369301656938603069286636319233520741436066278446102158995172488429675192280189115548189477319088157820972719089644931784456773001425880736609611785782198929232682815775437979308387730678975512008431826586358623978867964242003138127820520885766680551145671733878686091956025003592501766912901483958476711291560678196816887481010545153956628294698711033921893966145559091037807478043878117713862204288071285879525908607856904481452442193701161951798363581840458708513776924213302574440504001619116692021959692544767049136824070141912850013355967826570619054020778983013506121163209218233985451645526482453707566434582132249606339880051750457608949437218090843843873597304725584145032433320465518378849451805714996139376857431561872660654917252490432278203727595448405556465906357975472370520079492019036274444871551906683365007992959966985303465985162345301829452937462457438114634282562359239119032034004360501263495328721074701480886126696407906562406247090733854184806464989856415349204188263336117025380740387497419683233979425081209270582101556428936188069334252912604787196603653523234973126699034615978148763257905958099215283483126593690670732075439200291875740180721897277456767022618136589585318881505939290130895557260488438603087355952025930694181128037666940955814138778685995490696270144748084439797597768799410775136944913693216384147076942029446911318184095797410616769498994355815965414132353935319692055332132705688923873535448055420386581375830894771594636860523496294041242670211301423607465811651826578129249694770424700208507871113223837169790910024424940058320524282600059896518152406333486108480609925407796248254803910365616294082010387535779607127670579474594202331823827961923307777487836051513061637320071824587327551033233589963371520124703497247783068271875420273436334376855283032578759922696466383164443810064661414335570501013590446272336982451018169557288949041659992238223830803918464143899738479534590558696590553219701870864782598800584901291911019059570937315355740788197447830163747200848762475589766944537970551793045214306315324351157593664163379187647582163942818291180827609467919836648476811902874795891410900089233233000212994033898700646685770566918503456670746888527336130250200534275264196766393310345585287213996849544370284754491079726920112035108424278875284795963697859741055328204492401882224185132805429508183659382178963539712081590813767280881952224473276139038902895580772822262065319700949891372855536301412491625405676132406702022140527386254685818182730514263809356414371406682375079234845346731215901904504791773337213433549160427687295305117383004237405747033746886999477744392852164106985161765460618783137220093933761745811071422574941259219676380497764585370048723256422611109742485067516933358680712556308290787059682153843104498089033612347789870797856784270612633057080881159812392360199624736505791582563329165926621613404699159732704128161285805548565533232893315291422802256587242653435528265824386214661880717981190660077772762257041412036319908393744347613542247909612092661826706659039575001027979721659656729957242902364078965936562475254361809380755629062114125728977300732660529953818413628959233122416734426868875077466767475161193187372740280714622469474093711244184624669106378741865891972653358646738352382063033847775155071286614990228365679106909250149547335284619439840618297020248925962996694633847669510760183562353378170493863627635155283529990602960104982821215812836848388132289811495034459680087437676796128865535357369362473483511971909876779973650936498965457922433201368494576162244902483083190137550283667148952439485276044935532565021106258647064679498047682988297595290312578200697413551542348232585624391526201018992639977314591069857530878461946946775552438000896938791508842220878869327695133853776627376705920873975365908710319783944270973404517858328725063916537171720211620125762014613657365767751709468327343235525876300716119495281819502815425871007924755766966503921269265066747103877954016499617318118036600000986068213752169125020327077802502513454021813098128734324838004187287288465193142476389216892078278307299967912894358330890342697959616503079633127776416579533688474045886787216372761038363330815530609287262633974596507153681845626243493086966215574813848674360179670354351616659873086549089212267550222574796950199123132088547487289679832282536499239705234540080694298923706232262345981203197952086030598682426876648646003550526620085936949310739665565593422610003380503443510937184069192790680796072787213865455785828145743226066687326739331425114309430293752498048383872612922042090815585053339753825030614133582111250795553372025447582011312304161730831345622951164167018998128386488601552639797092371554740413095310531832962582002884765744892812162833398357148673702031656601948973467024741753464136129694041681440527478162632381787051755816084299697539545858460495317947718117344262223378382195674658031727174271517918402154878958458124209211767002711134818635789598407572881148312701427889382363319108673710266482219942527827737544415471681742435537312066184088064540594530885992688142652753097350964936180618148631226041247864744162026014845270958657646317161279368885537753768145340592289016271836059532499352602566609289682977115442058844047290438868986491138500005228416217307675829821876377063619852205931371175690513230094293810803238421019642814255203180040987822123353480306154376575567087080531388230682715329174955277561169716109049847395760677760978494674569957905541445612352630792731881170666482882468046504952401309827641098458416874081130252360078196595496917769912616728595543774423498949543338246901990907535156722090133400057843276511197397375672827747714578766535892091479807385330688210319489516092398868706890151171353342457026632276567189500590354653181492168204137755327617678332381804659943554722275125139971513405081326632772433994628805490892258839067329093644591452389735788164197289934509273195810647577054301886003922825685824871662058421340605394415314975315312631168366768755077751982491299689156999721418504951430060051694573251867506720324139188866112588971117290022005741951242980684842849476526159888026494650605433378053937602137800889263438652899041912054443090570819877614538613570068684803173661796285514265918903459608914203235701272046556620778596249245531156772362582516069509480363838631150717430545224108910979459120435793501761749520839129211992820903023578595588685134758432418725725388478297312012789187227354619764366795253965919298013066740235661615025926130674806217567689968319617230801008667511202417014425089906282363792107265277443992351377032303246763231788791142385503135169170430691830110316101725713858346157014354489028527373122667215853154684810882246339509927435128449415290314530487490694082896309380633480173284304201060517943503175730446598935505302632928717496394775519873369943651128192274267573567763670820978669542299668263510214255510525588308719063342900920844081746636513913925136891031952238051947494252865307591024410047628545459499931560229423647859385992586308601422724347372329111512718079901173440835753725087381690295713204305352858715227238626069786970562662907781356233344432316412742450623909625818938565977177072602214294645030134783570959718643433788539415879238587657402038052497917588179776120649462010587917664991927283230771638603599651543085665043229668959560302911725383325973231846413027160427049810385424236188560772273654341358378221807268163002759182373388295955323637866130769622132724149874368154217991710854751968022438786603058792991270181096697174561082435097348349237410030988360356889129692644207695874763707065469214908737061537485107778107624122940266442332350200834023916844361055541111893115590332468154221191289515519447974561276190017243101088757775495106448784340203357543723523811149391111164333276700544041069187216295714796433657229551087434466502035998595485188425852672276246938019206798212480803743074644340916359998869100487978205670300615364825207739987215669696703643747558495127464027945219334003107833584539373789291730764811954672647357642500560276723130596148127516977762181725790316857507498918339722006700725229952823608172118388614990395497591299936570988761977885192635448321590159694605251800842763527338785223635106797720789135616802393362192430286268545959244105491348062172303191611906325327371287576755922006169667534221675348947396142749100579250753824742866617304742082424617951918372874171125876133859907827094813750835041556483646586871657300220247527405583326676042616510162055795950588217465928095917241891294588638718841028899616661746705310154765719094268910413792594853966144474282996192494549542501524832988720775571527346395985453809773257200604069877894976057241135663280701876074018640042335269749625363472770170818187814650969364291413129670343487458799297233735293382125885077512935894504765656865034078452533666887069681953661118574258535608055372808670903561307711375645340221707622059324608342480222503178489875039620277995680797330540758791648608299173890722496000290117727125535318944400895490474086245554204418221381892582434951558254356168272285147422153589909247136688228724946661800770583083007605536237701002323903179893144867212717880304616663761708375309084580528654089696380318351140923505169950200440055753577249566094051439917543467211590479516945189949004057379167821588751634156976743285248150295808394451847766967205946926440850167033319603814968896345577157682946059312393502690221212400277678651210260089289941664896564716481420543739120837854108940752540324445920019981255386162437146800367714626009384587508666339852479371145462881412469297890132263254097223473164499033511194853686270381893063943586998749529448125290918682875905349307783712284267966053144776512536205941496157359615116696297712252223717439404046449680231141274786046206241957848080086255157515472744373146815250729297547219017531827308050956968450654836410493313822897123485194909540009355461320648284876218513650005042958106722382434433432677603794211373293452252936051285522333984129118469579769916159510577962562663300928267333909936650898480741376964827613350960279984513444143004101200009240298253569676902059121031679939214945821119330303516328183292132222607640197395748033802696522312252126076703639804511652196829895978856833846000737367544293303904149610702720225163240484029426430410305859052786283108081162386241790193116517055531822039533496413341145190453659776260920625885716502896305018298208897528971704938012564821528988923795582480978596385553070207123147408673066814784145779030210938567717171795719309097559752923399389498933165177527825010575293225131707935448727438678504945007807397869128509087768183756108656268215982684812963929619864628856143311570147920913731689289474741211628603794521757954891740486179882864896102722210410460726739787268750418914055992078730781427976290128016258991917584455071344884719236079540836916293517895881185273762385451640648248403528415684165072656220378463543006640315433263737441388878877404730566905257248727494997572856021795387647792294021335005493008236537184759852418115275280509564889648446704847102504288763012103256349589073998729058951450881492386024735243917027094416990832678903233404510260421555581695774775859210043760947018189574983063296385297539601994979344715255383482916801850556915481563604412671733580293519319481693927152285277731101937680802773636455826937529529143135078211503349434943301813242417735109357400196498395425106050447810566265340405483071017916410066722189937114558959525292646978191094772741769682406377871747953902489427931926921442090081833393803766905524136354003966854169422987878587246338157451512341724366864485219593463880987849955353449599310036379181845643683527270890789544648229415736951760545628240732853114571772984575667254849997544412004281421502815932375792896391769462284678363107332077660045134938035574169028661809265316673980667693226338604425136508209670727198296742987656974151522801893201770639331961244905462181998367342418808068411889161392532841458751579308534661564955246485516633079937722937835086192708237509572065302268442930032782081772944451054588108137955642872148799077784722123717304622571341875890888123208008896982495474707710347792731287741604724550254100311747716544500312865086441385847923514681998014407090592644347926206596966872139128010295259420404907493658324517635852304005101153429546911265715867401867842785205434861384202067581991461682915469039251691300404153443566073829843227932960397848536158249555336513514659939202922639402035590185432255735155538680502740976046323571434094599871005443386998640909515444695036073891153378190092139906192220860132224583012465829260158189567258874278096342663020507007768294936461557727154438003685102869919460919987393211109858129939122866340726898387901565117383998506339515461472318654842475752641060671405349044670448344820494709776554653911822531938342062780884178976943780696838024101144113777141999790971854371147166367817967140084553649535613570545043008347532481721014112506861604728158970205055338111192130899358468289158183038745347175747673359060443638622868778889693503485335134496911173547332821974199873160629372670628248134375267797142262678314448605272628634094714338888138341586024407013256336133707594650531989021734318343276149052065499471830100369510367188202393721368317331836144110637485386596731715272173502751720720891310292221699307169697209887547807886473897757907275084855777019237709223411836952502748733288965671303609461930590072993860817749780169817660470755977640982849276260440452662679240457172318445494502932117832182864386006426781154313821939335327470078231890366774030417996829494323568492936720521546754535525855974583581977621682025040567848465915895175281551477015140345862929945445073959307476934740601112936019303373836889573137283744927701174048562483563790836014576214225679957701322906553261216742890155535104157860405838147636297654311076685523108804563536716674859164955758264150246742620073262803285469354144575006483240753459788518123147381149352919822181265700507253163615179501956115855449672798194732965853169117124400054433108668707694010010229154653287671529086546626007455388800949476159310911117643445055302186002176774293503543873793343701802421696184960971922340948721975558836329000069499409149978510842124543279151715881153637639744046231046510828009519242743394081997092635255924181204283589764216054652296425333299358729847377375155979578023132914504771904758721306694526762019434677460266387320237848639975473634714233063192793923768128924166701866127154058047817671876059703667740750263562505304564448489670232416283435272969354457106027003731244469931472964356048124380860958082321898079411001660878124195695277292209968975490021786152228728142880853886808896392522145278038554591289174930099640013689376675821016294362358782107546179456330707547377542534466158211683332316728430022563551013775072177155694081577818661734056608594170841530643278735765627651212794269341095639400606130897967839615802765843834616362973066284142907267549762561855692130884376124069631122058564246529105528153778555256623296017484187262782592251477808562411458191755857423850979053939487089098768631584132304084160718839817046569524647283690900188757340765292516249802490047633305917328028002097550815509934976407508253908994760812490767630979357727138291776402035579266217200002339858152165944067210286150721711063540120067062011638405547091677755819142181542617283307182356793984677419057967124045626551325336593898182367262077385367761990781353412555471271291514339432184703981485856738929464280030073587219042889165008841810337342674960738232334146919259264787490902147360824532312131919507145485126936988481095587379304294901996621856727476580828962704277031632655586051173613481819618615762332022718458809534501821320631017331940710506616193749638829728854062210225027582578246369196218637875818574902415831475769285556990614164170914687498932963833207870134109476795598623410091397627121891850002170390810100758498539034292370944433053541337679475134297497158201627052921496118862538915325545243400480534729738488299335233719354183288363433321775059651543715899750987612535966126492968345417605176206921103816040021931243201904754190252232843759339541121017385237569130102864854438191363597875373646226456768186643355275503306894950524637202200176978644941304754265334379184258063383465071065703743779323061015270060792186802281259802984486366572145262680454481406545557104297231107783018373967880212766366684004635639091595173681181300511115374854025143094373655084684021067311719440935835692927905418278013474545529781129686138504152407958440920297148596563633332298928141598180397404068009838858592773551735505844265963751971422189361485436558572161579091418194756492934052807509782885693064120456151979824703499145663449871294658084540788906760975892146375795919690192190553337903879131656867776580764018414079550286801682696542999012528595637680766440660119589457442000162277496401933507193095863717575620852642508556188778521931831604246037864351349070026013754932313889222483216305549612113953038306157464085887274492801585899648034535139427319347477077338452446458082991054574553384631259114830971363162356089407278484622426628485032586885989211795896046207039626105637137341068609205692192675253607487867307276229773669679161398727367870756398313802648879932754368574401014237527482138465834236833964665150232223589317637614167985052889662680425422986012715530822833012035421248052754720114868349896601543091195959888819538575584042506023622145677140746468970163745290512127530475408539048324570404624304842440604804953986128282087045101759656126920998701544166484865567158198700706928720445626968944567232170571608680684638403656742117590217604855232720115748945213868903297234864822691025058916771381272211670332069431912256596971821046536078452621657295426019398470721761906584968520266216291464988743128786070668654962679211764587142402838533351453655123516967460638979227038335299330496799041083207504896142909462550583382190405207459382587714971167258636960980181611813051738307943526622163745280902579507435543840240500859755518985480036171126669533318582301440526623035662650598634528556608622380173388994261023563290246665202871860263237226940721969402837844970527191912345767429014654167589396303103851277321590368462835935853640052314444382502511893798669296872207285691893320175300873898138175430762359836229357069416466189741368259315787349645418735683193875506104123163415009962760635516929326273517419940347720518187965778365227413591718371947671283020725781115081865913196573976459014581670615910807652407197659199121432097821663732663240495821772558048331083513819258996961876793278253416839939806811579161201356671762728594827735286826274698871509070577143450383867402308048970617046654310163036228773983742137815176414808913963280944374501576262645011978801981703455978696422097844970118656062530904964160745095566039780366838239689616198268964173225218321276528531298688044720647529393376786681957754324527844205181620266703730468742572151943510251765984831485233638403390383886499679850570096585267348555683055592594207671239119345646418304521501798318145636164400395868750918706095479799806543272155063051443461712864525384516202873709025795243391755718720515807777042464383277338143604825440648781075300891073236546058557332927481960462733655013505524460609215684448010004647155281829547391301069007135373480659776102829878040237619923191501261565323558458196662647325812306559866915615854586478471483436426412501627123510361667201170871652800176680952394876419062150991519926952755062395306908765755067954106845054155184730259635898164509924444704841258504537689749839932604137645786887118769916681005108558014948017310800201264821144774592562454653048644552870532676258724831061662386552870054535760368840148655213309307159381885355772501398901982479646427022141958845015482890913958930077458146204195689821612129485475529808732990662332460084026795331165260249108043777610704888618518051110594383805342298098575488240501445028420226551618715969338847127883276669278318685816435561582710912376207312639661292764275244364330204468324906515859326543376390168348177142838187312507368139000685971410378092826808162228452453825399534413241534099031867648777007854875013834400637964882292148971130288024706320935698816260972606169848966684687101056109628322897298728622296421314153190146774954819477221905990872799341641757705910990834510180979593075567394736644842141970840103614542568166622905308868534748776482162742190060043294292497063646983049921272632988194164670989349377058489078891977137110757774819923741504591461373138209037923477103856716929633374243095497402170021752455184805588886545158656625950538621313881127793492590616700354459074646133655302590863640760600434546071440603466833552628862284634367324465548160667770621320483765136302048528937316639067023582178040759505966206927915659938373712993072882883216859166977427561552905226330726640212559455275507148573991191749769451761865874229526859217990389835813895904761749467880545615781063971215215384012249259983193327151438100508125129205005159464859227778741804807921332442224725618633301726187594703347109969205743114639028796440626576720456312294148802597351490068071399161620300869037412666997577286521034551136988209353268122426220312237093134988524188575186643906021825254698097458508102129132122247012728953910291038951972976808668807244058419384635314363644273235662356189683469568409906706807262086365340696385707090167016305622871939961805671549631312733647759234194431027116111201583970303765798085564958844703155691166714561903075099504268652883474411049303850227300970679824411835433308267545806957191624613910505167869494832213397216001540063610566711574514646016706465986809971550361185679154025598586065610072818185078779216403847183239768283319674794843258364339775782611279528999918013250981952764449016733120365851233649833726095878336884238822596550082850582999533992855348291461915107796132081225441068775898961220843070749787036559381837156137139974196772745999085874769567725721342572225131448070457169835854199413776298765975406394737906993326619404452804113976249139603112975997223731358772344005070556959520609718100653505772190014677052810304947473739843696623609655269411867085217084275465548703293467820118898588170669252934587711226433384817422787403521884514684447503524938983079822896390844204729561165360959987777452135105531935698710036716435845650509164142772767763133746402473429028451915398667015798430533749877644073472683995027637361885028686898006171285683928530967645500132505349251437061429883258314498657464893734142933878200142462478299891676488380875119509531430065636138378592947608898683671748199784046571958638572010601770524692374922733881913351318284314307612565859384946163119722805705481895157161734168275914344357596114201586229125343541120096159712735580058473360843386450366344590220299328713435075628040275657896181936671086379732880665660118491678319671417477158236590495807356223690618885995903522642489001832107712198038336443124902281945758204575570109311935155090212684967236954172391457747429455183578362831879771434306816246078123353919927337283086709318002360518496416249629486113973885441846326418511561947129498964233521726866400344834243131342610210809898579536114933259972573564081462402122085146006236272197480825311371332907384637349157174498335922769475267515252159369637631484209651842632878176884632984296841243140816225326102925926891857513581427344881908496110474684724387644099783578137847025096130989376997152371281534421407383874718183654054438038148678085350507844959970596895652368252421161115639057927809786619336665089874588860262876496377349136584638055179788387711346954909095361247379381651119861190592207785219295910733637107673507049557606311421189444608043278790723939280258029636474923322136037010375214902158115176144490155298659688587513041935343979278579908298635488426286913997891793925939389635801986531272462440895949490734512217999230668675901839518142495201950035257304705391325666959619264167503520916857258024115647531226754329326319814636100580671117027552451094897467368072933526305393613453601643829287957053796637957082918514877725332110042078960507267783866531370649223495438597085982921000343601205329113966820535338048822077285477376485719399633017356035386840440055207679084518122550330963976717646612553036459521699285468184928220869604392027105976187553854408625650706894361949001603260164101739920021353864838023013514408107954295433199281676581874604465795966221856373119655300162570136530075071845742311269168910519878357250965085619212776554920702815500198640277217756851551216547636351253416349341955486970810996851127197342703443425042619406974111312750026632344331275220305504955741773025523448824940104047374102641706473933090067716157970135412158664525466528264583664139855973847805561520171557090066527056908872701339689248376546397708865014065557364644359416725041497287384875289184678430341765763073128075456806820527542131955439814188799438866998417413129521284718146958699109239307511008994508733531784966529734037847770367333712487029382149693810574304368772944957822364234247317110274526395551566615534305281777732138248104672184766773696662757522128439027305005282467453569703935327515189619445236933807985379543053921063050689408101308039309976362965218099614741428527696756350590481018552515440344011068683571466388530247586975545494085346889158012694863911604959702448310180966202309865157436290002203966297193681440227387626252298881438346725321439851118117192101328720597612945953905510960004408709919938153034642366824612400091787338094259192240947449051563528460190726188749497679654187239644215826751393239716907665800303839064692502919516398118294543654049458619807819886325279437491388416295934202979957486572634747787867925754264289931613665577375296693868498733202188073678402504147162350652977398243112840996285205158924945134239777892505117593293320211785315784358027476881578750085752488237732691288130784968108014815420648161095782084887380636963678726713765609423686299648460381005727958014554504698511618645071625938320689701444960173538718011008170811574334814624168337703196969251184891217214656222355555376566723444858468088583374126188636054032451207858122526279601916960839676219270325382160524461357529332904039054813845699047084459964347189473063079957726529004272861214391952076299668682977144322779281313935737273861190632137819406032898365267299086427828537009676810939443711142034728296554531129253415871464511095099135310340002649778020031622162123060139782593223042671726927530193840883661503083755734571832903468853266483269336061781490665429346514613607947771844310523260247127189296572422898334893235654809428368771644089489155436612265481002953460914996172764020718775465015075350311597116750425881244253395628946776124672054775875032365321468920619994208731907008017662491176757022106067201840299743794571031475873621116304907786170008223894340966488158299369582378894772050803474796732774234773834045121818105573229543582982905525574117696375423085278505446621119853487143220541650148224001881623503298483318637752073013537367499964627143995428192629392961065064024586218358577468951154677408952731177622137947818817024364832381470226367839685493467638613418589686420782667153265532281566391125660628673766521491311747744350312594107408019106210927804959548597895561543010879557101462086523637812980429569657292375551743277679169900678249549051298192347607487445955908532519565276476220069234429975641827636865239101486471174473679808528476198665504459232198420639750475527705811890974152388970043198949805362081933241521949949706465408640096262380659984745115209083803782741803640516046366113353339739467219340887119876724274510538419097255792142784530497570986993555151840924299982545556996966256684149290128170289393705755432567627940543492758570049506481584892056942777229452188748794193386232898915431949257449653467657388292428417254785733025274850732616944099737456611361118779732097543281666620534464604702174222817599207606129834222905164052325280466868036362464928533242900691764059185958274836648245366582476814702967017310642115756749428278612878441418776531766002314875941956457605398267795787987561160955326456213003073194694814343568492749760739061917977965094774106035025573010597330600581453238850708770909706856172821966526931729570796547060918847029443506017467736079066318643648239262611859958191479893018314960984726654375844677211462879123421670371129989391035841754144481179190328935633603607704608206643364660714613996663531649257488334239563906336136465846772845191882718513243100591437944263220603478267607522621586731173977956574755758980830861730334702418144630726039602736654778075243659901245825361836431164920951783085547710249998165911839265674594277797699945369474514900054769005589193049812253922197448952615396143696854032016324150141278497486506128597994220944819934365328571086002415990520551245038504994683109297543105916349915921423211395112153727620774356999091107137594750863433337512076714413649982860262637506624760321982811300093715777259189714655941004415194669762415335143170303152218490083594402758693412828933440978024021119006112338089143044843439261023253141378550879801001996736928128096524748268638844874653052686122318669815333556463789854635630298035368620583214546491625710689458483106342611642274295014403762872756581954858353138969301110441491048903545224120481367153453395752433793481178446344303934279388990958628094873191097829266804007523465025133481930458888860427146168600261581851998807055434124065402672521057864144518717472298015808810510128224193148247176163856774322402791944984131355243560710664052978673116220017789790446494638969627544802261459306292483400776495485270631809223891160762196541204219518115507216448742354493626510331780005704719234083987705899962692760938298329971706744807709303897935595150648581772884484713870344111475602936480348868273277182072854551989637251370751037117177780659239545321855444365284731471444708584737898358400619169843706202097937292779579100333945166176034776452141123119570629275235479158652503282868336092161642799230671937467498823129258801023453267432523028774004777745228548284904702449864082785234542932856004334100115206282634007515257074831059266682728835788241390430502603684388682457269839735477363289148115155756085587871907458299325943983235858081593615549570422793010228110926018026837805388239392267898306698822602705173611057394149824088212856188738883159308055526973281289696865398977908320218989472549489130972135328824401916522926588980710163866254411569639952593565448128321713981284679194484482496002604791600359527387727769504589323371010608726078657049180146000640609567534261896966885974515439774007056416390263963280438329589624164659753420915269309326187818987502641695898678141174449383719628610549556287017142244071329730934442074355989813235686904997065042652856449686997469888269703583673818338452522503267018284313135582004316311880035103602002817284667914495927777395869608865867796099556287628949132768363678350202313384732216958344395196946947989690988299174803717780777836769011550547478327845450274836972252851617349707758725467798329540530002618297247071598514234710872341320360720873243616142235401313282681558898109706047224794738411926275490910042478851923527608609168421936863059712899096168457986361093305050128930456685411922225653632222709570485480712577874149337334537678615816033852356465688478692017951951928160969038889788820158770116389101505514653293869730097514380370449964809581639496690549219438566374689145704066702344534458334686837214911795231339746223922243791425111744983311585804368470609684360235297331981218338902472126668118584703245398283027312206793856467167526357310788531414793083744402375675736107638074203612843985335640549496580415861007997436172573531507994903536370486319973094683776041195498929915375404644062593168324978194019850874373449889500497233944684070885675749375494082092470582108755432539970437197481747230367160347283704554155793989604331957158859707038650077339496841354038130074586478029357152307210691304004748783328390966468848220045382441969888202112974819818959642371609969120034533547850515792679223737191608447693619478805047209821200862707442364777057625389264878316124117391233816433323684664811994998283769762613882412707451465020097825230303301331091492963826015341015163664655362755021904207015428148571390501529302045883706718084926678702435134694159571099163917130790441459932626435054798972465842911731480090792882499321601789923564777236987487175669356969509859245395266233850568499532359384027298129324233611547467452602868429987487653319298460115098384157544302360876772423490033311429109761922302732418394189735595002709462799718259895254168256762710471974038710226237751459850103213640951591395396952034847106863555809090275923911778203054190475193250173833549116641857679824984360356366025933253970329443074446786588083885085441533589632973187493379486005059312451543946155585086540648345142949165166364090534714670631155466713997442071876093282220866678354419852936511728112833549636756004176456601678105664312698954927978525116322908818718785777149515641841540868136073766885286487003122124492695719873850138217258599144121408606906405732728714758271984232248439304798137120939852339674943299630663838681863225138218705162144340125095158700018226049923439147714657481459053266911915823040235324624388841194492365633819723545742635450235704329692082314072731640705325478045439638350114343353793839299401953181010578668486415327234023107236071006885307964547340947510048488351229874360053594896348196425057683602088182853262062758864673529493478347541639356021429644982425672395451823595050618849721468805418655287128580525933685565043209415868957641456267860975757532068406060848692746133533661161598719460334978396021089318516943914512956369816613836812875847237755259716240703074175627933029606720558963018387411504258872896944868927746443169598023313148840267649050369722891831682202027085568307530040151065542149954770177539308066661353978184757418741520437386634086948888450046584792700078860604885416059244853016755105159025183812294837010330977208809632512040385403084981805856387648189013409667957276765060413287877819213492831693043655663247353569048962146962195687032277190629978901039836707894780763238699995646568436023682049596245718934958161791891642401256688390913122406083952175977185887123653473900386113403866957818835842852650764022264676455083025708159647725385676588235522303520183437512385497034791543717295286336067797906234794527040960145538484579854015445304082347109470169250874896157379087411966933170883800922463599671296244792203689703662297825913271809159243439624594981438474462495724851332325936315829775462179916418741662371906481009302995091150086465476211318661674985243239704129663598710664773230766066739815564563378211529168982371831359344341839909480017022279747177177565610658296315553631677089911250608524435806853256429906769904199196123543076083006994095100456180710951345606262391005102241349450394269281344749299768139740144603322385842827753394983694096857417325713056598315965140642765864713401589400330175534890416726179366713127141518211612391727621686333284123116877489660753711507656784463451117654044780923964847922795530092267148609545484425665571626180234383229899312600363165214970727890824054670911119373117740090264470235084562884193011171514079037656936742963089159058973077440287296698620000477519413027657903998281035090681871046303022186479875069009861074303949955798339673427523997897108773792357888973787221808525703597052629967954718552685635456359618620055329795509787086318549936296102979035055090956340394327276904023491780273377158447592115087958881692728327372804408563547920660084545109217708267174668518100637752198953890513280569261877049575693357651480620734949093668485929770444985086800917750212855053572309488842261964830731131388779902581825337435442986325388834175127054320539708517360354864678137011830336075536678253728317870175531486612034567851633600360699296918917400887283871300358849592143798353873388700741564709993678317541549388985579216795081311272394366014341328338799622262703716348943500383250469350375658914836311083475253262332873449913353620603596339955964656450614366324660225283143644584490173300375776140804252837586385722233541846575425398136688166513327771882679039592121032703790083914873847764866241606732763619613223625618856096955934097674234640573210977694441970640877543802251257840142785077156995520218616991810260617188701770115382774005492375072714443587542638898226708246088951223025392564513698397536994334430902181185038672967940391696479902277717232068129068486945574383767823011644740175287498270644026805521729211713029200863632118318319027715061741059377927100713468296676688754006473137530631150612780495603354851752751657308558430600357493380568946427378428156238121383111202814997240587745205031310660652451923550759500927402203051099420170995831841021273587582824069200957491886864547238034302892211729689575793482248783905413778282514742937476442172937300923173518154790623384119055934613761803107993837023933345548646692519700758570151144005979069777625172573077333610340315355530632075272356027110872091818316564257286156852734729214428108318830805311550115048467352642167984552876631285977858181924256122119493004039231710200462655210717894055944158781500975686563975787433589532553367419589801096685260770490677023379342160827923594899258917072339454975705308156882054709641824776339982463272425989707528088067738793277460253835517455113419529218687223591994471961669620706464069387774345624916081694645796892105593725850671109318292832378113401094965119453679965205037559996811772553032768183386111958338578141618259682669201074529679781647476504622019463137994317198798252524678093342695069497946939992969932560647839725976910784949057248985902360174986900641749407998892458406110628515383236324593934863807211105004163818898925462354341218175254537927381675027997326473311783750134619174768483795351259252192996010897277316010189825197996446608270690338380697536402074781516741151537928741943429265254937460291553515138385202419501586259090853961135158249930763095052121878385015861850723011343441959911197835742323687094481796878417990117321326973866313153735191278262455981528615746111273204399656297566663221640687098095363206407130045191422058919019722424135759899199925051566826361675861389296035723316569654591018977318552204578544218864946411626573409665153204527025467345917764173437361244499389040293309241678405188959454540102843870911643543873266465601732106379007828521325027112793002885384618134840800769741465543347801556398764366204479655763841253513034021933521324214430649846292097799486028687270577573783826476868235760318827768908196846664330282318259052826211449789768002168584428668657749576049486056146879119224675760868198506694168267959760983585168459554859729580838355411769073769543828050699545214379480489893900585739705292867437286840408309470222270447492005114661370696300257976894549381922462790223521149396170930214076679747202350426045847004222220048659122304386615172689494036450748923043270008330507530118969654045245734813760065761202132503941070544830947380303816446304213850643682370009998417695842611209846643357977902320914229306500366523893163556610610295697739914382343344186975507143614753094521288650749775136785334559060135315458367803442400355704739804882502756042219942004175717485248148789753028673125328643060572575274086485634886519763113847462773801508151108996990597033393547775108167495366350403101648992833775054412338370602294365205446918090424680597574955269666536293706562879249842472573110717370326340837234166730883706805020088788725669205164331767959347945248831622511141672505742263668804209521039328224102040100545099809479864330423554526319285618419879577155134795294691796593517362219159539933632431927799877453397607729667215201810467498257579569752647644229130582987837920425219821776943602963984159372393089637275275182265852510266467686195329454411737874089743368058581852186268673227564415748334941012318783388553488884716971438795917103144510438456908591746631949088800637663975224080701134913552028344412248122099807137414364438805994487729232877177428083539997793169824653526220366088366050903476090423119546369673341353614454083397134603149309700206305136918591348460285985291561521046093006471992224484959015847852812135692087429698397038297848660558334205414359521784482615231896107411929700635207934213602790955976859091124713967955815389450593859617831356797557416202613621885931018143669620417434842354557163124222015386872814189723087616252961183317458539754285305405878551214014756475957047467446509732229293130788999623319909588897640890125446039537346595269553899611013981062777176693706966224251969226121612696395012783199464481269779991262259839509646690532056565226485561960805010106891376784385372747843856129997539128724369659004076998547857289215063058807459056096265570256606954354361678977448992304403817499358523305248148938809774695790365069896756940933532147988147409324810443026945658134126180896382187662891010630974805650848968075151110421638332662942169618791297098343547230659250717781993628391932864811482618702330692425637127259420364520380989782705469838520507495029151232264015049558988839848100517343322129698360998486083237188623517377686248963771099587660917690722788249135515956065573768387076910073204269480452718682409036697065562810779197388411423691508586977377469997931628144999752518752916419225099602399315091658372623104979583924927342524868021521495909401906863886042564173004800697219124146824065071976141879704193385616603171922821463162854875857325569428824631496444234977873176260684503591571473009188401116432405977187290917103790223581814808257945578314734501952195745110917888210289158458576691269669062856441112237444793269799879720448417219979679810437996393356652481755501213379799767862710709695581033404682006169006597086886565405752939274930914950292438075704867678280637596684635438083000037328055351799869420239772345019045043873242565370210237517813676142709258127059816620067287159395012797835578626345919890514363893240595934591796901184467709940930209096886891239967786158637257521279499825251950411107877134800007241228962257206716749545786501378665533126093498819176521787023341328463461816594668915911854399107687921273531998960797980999837579428191626056944415748221635197389201624342767080995689398801180068184929692659187786866218527026258736723411683803432948365128180169428761105999686046958359387658234947744975743844004031956958031988700579073403170961701181697950595469097919074796721553099602741955451188886709966641780116168375922859187190609130304064037701473351333755850692754571022565671067859502525761142526244024806476271475060324572640051206079591011550808075438800748303928491913898287182216881055789402629659957737964385514528471639199123623053399509026618678603586210156712628788854685559608654105019337297544959641719938504181531864311938607965105499179270492937141340782130542043531884099557098975009713854923324024546383055820453255978539407542372051262907420183715502498986099280423092489871168168693875573864240847054720360428062747238032824511644567097823750641116488787622620826289468845536597357771432533236210060176049240769006770902893853540794476632729380921132957166975565457690748775564568791385309920431168355604922104848362824001258126540680691540121806296536823541371602080898810841952532199979306014514271176610557779887049116791664652428756696968243759162294472975323996193929807083386977756448076918593845090400143880240982324331829251261298927440590416300353420534654987693743628141391776049829516106131920554607372113579055990487325400267349138372886180120013595540622474978713568925468210059691924424334406463214066918006550460476638532531959467105030269940645033282222295446309266046597926478245275662114490055671601084058474736387068682603240748483349117710247746710403180762942466386466335188663468755896307336537334748697766238195131705876185506097124424708705766864809935475901553518031849685219670655924952688210073415499521996122200843178406097422315301212959152673005034512309558494888273910470647090046696817205863049764047612071599063042322534752942905542593097403747060529793574417329950366273850915785206200560616287895871841462586336405062842547383946370552301811253927836892820764729390998063788759994880948521070399488549252884057923225349458577000079300125244696168341792917778658142569290936402270306199445747692588167079588632861848861277198519319784459697032452223122622813967294671227491718424449242208541742827956958202823497309359826546964421684436343339981021999777861781657415352060759658931166378264890491255170409961295134555676241425929447785490627082324568085943404602280664376902366189030793694178120525171761373959994615112595068118241053979263552157034157977487588321919605660333251820253147968285031927702052259228932460379468697059409277969028644913680996501787695855907564882877009858002967372131082560426856866898582557460589357311545010540312825605501039537549809475330755233925149606210988149087881938953399741077209345678102248806124605406102707725370951689891894921105419153318750657806957475134167492292321880807937230826654897364067857697944427963795609470319140751695223200553301290076652117985636614363069229630984465835708268876632343161078955566945643686609221032588378887376005551919837300487983262779972208131773413485507956594206650531966149636401603742884937352899777587236240389515500814745044188615664401654900355545004058041666228989374063425698393376454684840595581647097070637856372505285899812813861345867213675831974782553788005836677423086236227891726354541349424350625416782955253714014629673012592385088997574499750205742252485223034888618938338437233121921513312140731313816825972225944757550480955394234578804829506037485808480516190525068666510304823760264717844211423731657891001655998050476008335441379583048144546689506791881731471596880167874864569189764369343148179324848685701160496314187595542049609843648573621509567630350607601804865875845632198906937372305483704617533234791311171080748123844135032287466087784409580599621935304948326613585325122363753367144639098047452878864444810793409472018909778471474124499967781977455756536845549785897539309648567653340257183452142388338276239742476314420536845841580016678737825280598492658117897163953521329426256452037926138177847667001082494198545355646196737076954528793839196524193192400792866796733423331787554755681369325442758133444244241008205755300472753816200793266960840131131678262035533239226300075670969456268204517721848139380064464736339660502721838947042075504886836532086869853408130572753064696411660738878321554560610065532460789398814896782572112862894722210722690196505811887167006609960611470598614601124596165062615941570945756014340944873475790546398476729186585107697239519473267254234233347631244067931140429724564067896402533699184054405013711762719456034346432531269002081785335098177084443748918443719424045846939762662885722069650276512937361967551569707554332679772334137855996444987227770417129513828668702475418120447290379187676783190295756093475038864874675852508211407775129077968991259147200600748602887047890398594562371426689692452606756133939654519485554437520041584752153457045357701040944818885796981063969282220561717179505862089506255289434980264686995256572624562401017084828896043534097557740215473105796273280643467069994811224158514071852419827135712456767875860387190521826425947299719468140093341729408842154303107114297459016261107851326345303554284237294818567381945635799760414408146677114781240672771386614835778084649575165118968097741108657986004761066536272479664261917622914664176682441306834255179181080060139571833429204220864345204930243510298883349586700955203291751881579489914327800510976153261818640006161870457735214889210985173345798561052249887702569117908950120511573396533551281512898635876298471483534470660179257792179079011997898391905010654225063181198276102883906790261731499332617877530005012441270715702170974341316837645967729817261222821751613955115073191885500794018120803574797003046529481525606543957038256767236917387293938253143670884193637553719912771116360444461185163787520006419531734999283261359521816867889399118099413179274610345435048207968332229161358028684148320837110114646501503914282424206650744159177697557784191807684700245855410448251879366152422729342121014921752649257246753967116090930223361583413867875362829961573412305697039746951177493990920396283038822003082175066061365771240635401965594042807362337414570398254868485010161840862044874065772070685032519059652272533253380157765463350313331247940720052080058688293333909846812781055155378387147273023267627774108183659775744567628262122804974431015600440482644123031626719883911949905551716258674707434953221711428017770286077271421164467035474679983345045139361084645634365921595722035903184437129205458749949447428251579490379971849871007997878081486978674555343134732662540635506688573320775455584653281838839013201879942147446745771077053057933951012314851646463916032779647429449202431509210985732381422389426409708151097931264223457424498645600217007961289669019414238100766173095289721781449977408473213614871714498671840269260996166275193733755795389351294253408715770601833273476789372240040043332487895905449099646719445787175783864726027524175594107949191553684456516532354704315105480891778085332934117361575779313534735327119558288891825752292038626567703886881965149671746940818945939298869670327260589666228416152782865893644579094796024615746918582408895122611542778619224253070865714586889564701524245060183544896513522476658890054387135905293673501521944522152352858414395130084249822014311967805347502420047118372826692932559960501520357047642681799725208013727128769056939264717708662809820911838308771387437817722491532093206337081337178838428919461032477355613402448433538652595791272991356653900275740309401085404814519411348768773711450016317880942924442155221056090859209593633308910561763377046862181911148326651575711458024318325039622759400669902227222098347795542219731158088655262112462332275604478925900730079590486683780562687356206228769131467305393484707507982567638724989682670014107960665101860767686381638588333308898382498711319463572251197494117561586818632749359756087732521657438274806791080023529733145057102244379495679369809805502088700450715853648969348352022316483010118478656538048162370949786885705781163486245260273618730391377442426715233835769861228388098599847830921069646062165079625499571209868818288480476589694180417503782024005806514025245749630353033165567090921583833637436025927408060388738385995558477105447481539674334387927101968507744069428521595311895654740953290586821901086526417979173704723872629526465383822594148461947288743621466574271934775063009258735453201277492890794459829152647500545589878643963932348051806350323577589767234087977668147161933465081752157542494699251643122292588199359181361646422092047505840099900972172884005217684998418213872549984184887645973898526984818445153937727465817833999629882073186453308037722678208081391253128603703074482089479065952758125183358111852785671513907985040111694201079957799393353914679505153671349043402314419008471054341988263055533213220471051666299732090051570904985755060676237460996737927458434596578992033760245076643378703503194912858958950370563461708500953517867293317131721713206756928463035118861087359663124703040845360089872437813604490396209881962355936051048610946816903833852970592471085477393394244473779724684530309451271022587922613882915548975575847862121518942992070223890353560288343091636099712862914059402629079032808828335258088904294512103234146385698968073680123752426347353225853795397248184569369802086542434538332913525106900206706466938709498642642092986077662795808023532329871059680906401540284338948114723648257406494687047663276991715336189223189383533363542041314195180416370929457487634478666088549990467463774654652088215325584680656926531508916478436540468734049316244863672417012741771589007160213648377008847557355829421866615819205438506436146456250734154850935062495293039791630663063831236102226464167027299685495585181648823602101535303465493429015083715940906580724343995152354573922932775316672254289209338968519961343234514307937642142787182562699011510287976877845683535936124715831293427879831288727223287803771082535147974562256695479674509999051245383828517865225931016596021618333661193720123269704040422620151415797975173533444243619616759823005242457826431796032445761385155619477536020625373091520535809580271706485602735774803428352351557173324208813752453724561736087557201546169842954692939331151113644882343043894174228201296922438263674244019808457299593771019830996048997130066307344737113476578601105143160519460378752194355574900100751297280301896283027977004281956990014655379973295180943855920211034909929516463195355798788254344180199753341222015181171918220251526129663757298037664049710918721759929946219552104557994911657723175049574389557364348117117171815449906259896771836995788491898686103143572081768267564651052402625409403103597560062373345052869291424754892868885111917908895259697005085253580717964643231762002570859552509886442725883305091107455444237011553352528243779042984313158639785810176586155598913875086339364943946665725842204713633804087597381495387756027854057517970762363050342180914624216563386970581022350772406756756014281796678686104409263918910345418913475406146910544865356774461291949128233629957899077595261164971736885873178744797802371747926563704914938621919384353810176955336298339999801409397812221496113105785769937638418578020805257864711706931836925894493025256034172307116918991025754760280070444428982245644101663129108753362044128434365240195233757826698976771600370011171734950817337637150575982903000673831706048330672094355862903342858064753909194791095550947743110713075441081146623541381998641266627204493287931376467840598909638914033701151606374346680648003372776976201165524572658675643455586112932572697537164459276218606673347216547806113392594171122594834225172541577730016068735969037205043576240036872708351702100356236755632905451239745768379309367250313695913028893739893511387994619798452137763367672412239932323742635351214925763236360560058841696086124839857006169584127002070929123376145920788274551745113774049292754341636218487012094227527390591708571861434701941522150060153988496961264635653089127967447475160742711287825697564552027450589218039891346908704858488497269777069835424709459341820492841291095609495625454051151279333764980867751397571765817577284436116437221442217827564187273741268938955528524878295590112227526601345344502109568205636966980368980251267861466411924420773369395537105054115117632474156510304040019685823302815109220785353138896459796597214742665725043985132521776183335749494482714238755185486588549470485849277864191209451771395645941030428220977092461673847299123206081205728144713154755084900188183401754543147382388883878742276267926754455376257160542876190485332278035169912396847859165449281585599622633043607496367970251023984937912189175832254647200254986150916675730594225993044161105096623720471542387573240807054237067310551013093524857028998444674845475824138677162900118962319634773313570413305093216903910433080025645397114700208205267579686609268122914656840909359091791200530046903212132073635057141017600911971367782669876427318679218724477036577506009568072430571309596655628250596647848745929899513464983096861623207061241995520238537363483709373065041307664965306606929338677219229304573211954824979710893353924206539545178664621013660853484646477787316960089468921817876148115331977244174745467935449063213750406401642781109303663078530996869830928580851929323248074451921510588061000036680119482749184960445312715945324272950009589741156056762667449103421666336502909822999241908904718953308384193478537647038371498641131243066526044462203105251796525346110879319359088030412284753955864530683890146282273851860295307067235723043795180747370438736009145776463034707096636132597558514324919880766920804027839571997216994069498467119960983647172862958369699817925763777547984034708394204904169607914106188888470537594543841591401275775803843947442123114218550996778604694673482180137628422623768768543105974395688927393888353515668416739523658187151901766327889648201367644355435452788681178216804622649208006356406585428990333233572489846828815480106410211739832475578873727828049424691542842969849938126699311852580579942094677898309885449606062917426201961653231204884188569294754822452822568983272493693858057804682276964104432799793095017821311317412506276305671917751616509545768027017238689154564870513646910299414269712399354669123680006842224214644781195978647098411723560859923791493899218601709868390021589636428558650679375086961391264796692335674996756195193866449648476845208457276031174979819685867007284304555595589838601905000280716558757038107757918163600377574433552468368788569694180933128995445369257015515193856171905903626918884444613142070535509896771246472177774493961644321905021109711855597436867223221651969792239336145698146193477010334813834265072288675930976156276843466370640508063370613363227336313913645867031000888351837273778362239463175517044136092565667111690600286379587425676919005160031091776655949848083284734477332071278231824673944525405634060755100434327964613960223778084239612922123247635654152152635131872512924316969436645466515789685952776357383637990009364014571077189355577926996928255758379670358071009784175674437277904628749973181801512315196190957411977054653434702652625851903422283614788178881860624567552782418280217487400617460481798547984407808375344268042220824491757931875806643933519014851999524301460688268991091870523070268542750807949566909893143862328209011685119107228081783792144110197472050421982995492825441165890391230942688962763969281718322470728631484581742975222156921288245497165983976411757666629133522218951061405424559803360128898871330491491294058196461390475779334218454737711967774712093013907562438959024433460032886393085760519706667983339046612168966365858912706804447496114051780334096154126606746968496357903245259398791286482084564978672657502590474216266696372297289611754076464897587029775808131406036371294258949770374026477116119200608374346352914352678052854950259949800414749369947331030899124259531944465958242700963043369721325796065111121432697668972353709273591639354616924660961712084017283264932360271241545363702273105113035809257982065341383305364811102996092550085805184483817415194033415777971808165827638808440490815265445159222936747544447852640901089681805111965048105453865384801727235471024589557627535107269494786225415988992565967222636113342537983367365515380055784279731656194099609897203076278964140437316534306743274255571823560198863723107951639997805791179004302212765788022183138657999699748401563953846126042248765665492551438309431042017576842627562541196899801270038910458246763433721064522531402799060220409482492782215180218761422971590950560075643315404580174619671794332768347775475896319574703858607438357663727809433459060441553083786984848114382998232604344482303528000441116236199703682630769068610037944607344911083112339462053949343058568282626567219409188020304667641364714392003099394146104180067878187783125331721717240918320470905025218433118653697686306588246180567315825067479087278333681557022364443881619522809771887081094177653957998172561996257027718030997847146116279393985564099049208449933530526817942031971188918179904356669752902045468548253456984020681938656587221291686651198809983464755098699704589288339921949799324166190015094550945672194512881539106812563128675006389004969559315682406539865960293092942365464084278656413047374053171894843335196637551289131483286879662394118121939892553383549257045394009951581332761292169474006784808686032581076522540862665120677562350033012460854876215534327743394351020175482667771244155137097483442296446325270048768643422937228042115891339993664711028707610145250507952886621284239088158580318257295011568174600511564187945724833760076170789592459733690083522028278598568101399070393579391393814017468747329592729968591411967880657722119972001881401566536736424456487208285295231830628156349412705179917085396533426383748643337216620308982419513395592620071706348776744360335980646672825165483394727973827088099066450259493729988398206218520609565543843754038039099096079835859381097995418973367583238138680897702138394565104768942361441161453500421483518387799612099806536554435092714494435162592152229049547338189056714081836313607837209929439140392227524184855121138510350011137605006724820963954397214118220499931916324342225929447182234451690016557115620066100139206336702885166362625893140255137995505953739283251525176963939184796730253758396288560807115107402292279469983023888409798144814268392111461784304861079427939433928284898597858619395425713228829825329412484182977056090906754920039704084197279729142097042152548005370476999309165204790830684424136876775321142572304883067461552988001955867931974931078348534753919954398471242574742778922523977687159887640687771974756532621997027359199397326462004200613448828131068436409618076555733621400786476341728042292902699121983097910029007391923402722147625676129885753202422112925213187671267369419257938390212234993469616696637317640498353811614867124369821119624293591403894815039047949590057396268211620025811425900598416340597532602826879800806485356457805857665569126733049800910538528328460143114112593674973865330693441298804833684228013586831533597327003639914451325710712074255789037586073918435513647239007464368797016278395945429189501243659508750307040724120063733308377341520055542538686473371845293315154311646652176247915514505950106717878362180972682398180375180178682968350188630415847453636572238813423929441442935274831629940441453963593198812328130012357709133744620687102118208552303293134381614269849627618454614067780029403648351666671571768673734655085251907694931209084184430453411458135608845388125900493180921440416392814201410231087322623557584403281077339202691404317034976525896439831508134236661545012164883030396949494508719859690929487759457289963005206483301154295766566008147373451121260269803540293602248216342142231926281599571614969813360680163897459263763912041772407559943806212296764801680906479820986381625125054722713358853203154198045729179801189617392527646898745450734283757335263669691001390167633901901489463050954807020148729396593663980472821719288541334658306152874221255997804108907936860414761655020683901008658320154386937007930174833451500393172698922000586516617129061074210999205783337705052229345672361885650474585326277969645474197133314030040167082868165269093971303291443898851990214948650070617998858490271511746491424121220329093366229564989298252286217443305005231804078820529079615467113321076892923169014493304138804633089728662810697485231618029174134683023664923086455976551697347830734212476381711827003211427791846976210596256855262051202016249829382671214809801129058360952686023645781272135859374538142825630720104182632170426177547797175501184286936671258015094499799579742766330816721871572832141606964336519425532591849531968704624785163524373889969290976448034177636620452627300386118136788052459026851127954023127249657729474710664069317064318120147200001697359114639765063489237344208364371295522149161483043258661627075467034528115067177463961630818737358608037842081309657051849742419084244410295165091156689744489511442913639588351331715380537992250031952223271407812048069602386257743731657898583788429415698134999844176584602673917891394713875050095445774786397908909490091486663244856272543697717343291110954882854369173105255447095505672838974208869711276382997107158973805696448459288716590742869408349533692940495795419948647695819626415357602115399071286036379065744505514622074101026679516802591746221421814816839056211373449368320365939845436568052899795726117856107811994835471680278685854477303127939136064297012258956683609871301814181134815639395398716820645587550707125976327683079019012069240821822150904950269522990960564555824616264263655458163787053962276131328576955115058136383470048003874596292129953553687571879615192085420540741897103933814839981560914096466681280180214121968319547466083713551023747604251188745206875547307296247402317862156337524017116307377842927926752804100376858182007369348213422899515855971766133847632471483527701312808085140311444826405270671619970682413266779648584495904769599295502370353910647263955253208666282815680787245519448052505553835904886406737501190423574364786688673328768064968670032027575405168562595693300273516244836894594212652736645613361489235216783310565699488418543409924432073430450623729232525329451959814805509999613175741798128910345493556811430745810442827936129987523115160910137483536487982642544280676323084830604952077774916113637649844439760659748492444435471941587579809855676472661487355331226401153917719508462994398193368286012703045547124478221676414069739704573931447681584729813006252623573712932555638130051940046682754238182493746483497651003056652879966069659775323800057320124782357937179475376769758885262416121572689734435391651453387474433079428181267790311040861620641104551523764011398586518371943036208479641794292920097907342620708710569275479139218296309130749522663428300525468666223739771682273943375216650173956928809358113317800744931666902298822326305881325202881978869590848127182889788612613205699911971416448579365203130965931353437637621602823365767412302177050088841746124224917634789915553985177203307499043373352011140336536120511317133569703265148268425408950192287183716646851767479399460791451774866740963346786913383979083346263348801781112517370238690049162225360715974034039606361620183102846494050419869474912756820931297518271485673836898344474842856695304810201974332420248561308057553610885195411296832411402465708192770833293612687095687288832876578938917385570753520181403514952168130130363440513243392770347559926919695721498156336832011894036605890295544256372732538608234407100374094808987837360158384251598986410986251860267944437902078151277031252412962663275560586279746137021030036489333920514117354712168445213748257431114042683427290807283644532269216189801508407723785567142270943242335045996225938951505357468360950347873395632551169235523519343981821335079330602116095931277745214600816726046128134869270029637767650072801160601640439587581917955864848634652084115883854290547525944550043988752870860249247612210674072229496678234697565672538568161917127552856760923009569557672330027607409968495453872372228725725796577662753341464840295584715643642394586968909244261125288137425202755460312765613385850159316104153666830559786850744773985866002488136117575287869991097914438466639428814697546283309489385966250864383459792994593882408061844448073089084952605875953440155091018345840366009259660041020088811207827594066786297597032632530644106537172587288543717310490072084550815633306221961187119342726833759558828455483189170136237969569697574588940418055207930804068234626398323163396645350167457772743845885833885762761683135595754330743224194428506340347159491615963554619804900202912637476378714376992584352837830487178225004712205500858026206843955508732326557047183307291889301724072462758643716131580100039920322600430264030609446832075682565875048667857710870819372154102591913341485247704430574969384866313836246251359829935949912565635778485395888141931782071213390203086498715312104100391217672567857300391782449857743540696086861265634755927110038160797103530685262899563490551477824990287458272928269364286426793237934394687549907754795959403667785461048186371505032396335180100977526682496568183661472948530970490833367696040711686095917453457918590878696591434146855948972298578603741250427351358936129824604275747246346273297344926169473834491918541335251000006991965019973681661077668027807491777372808592848672785635939250391032920728755698443716898069965102613175450007995094780165065986125802791015711579088608419298221598373698854492278573800327974507264153465488567743045639979669234701912563061356420834389726460912107499980971318568578471422637405942639370217514959731398943581017357353104149033656570812835188982598164469755051706908004096469580617614087849289148371491704730824787652186748419520757885597672547704542002320962969873324855071394543706956316833167430427203475722502988775494918744391872499240206210235348732852406124537327453467523483115735545913319279354412719991346646060325583094091766103642393870203534241261805984303290132063161510827691644496772769290735367134738608440140324485066749365334728650250872402789189015677621376525160772458431016993298614995131363813712436415707110298720415738077945381684594740755252266939349632067172986270636151203206710015812187952391982221986363103783318850233353385446940683144417109113478013650967746524806877108862781225697228808939797620472851145014089419442481123494370345076207697247746724776911951350690374412972027906764629601337366804850990501099804953733913049583316747233034601416113274153254979222088201287756810927430404338053205033573115120134290893377535723559769554665609619978586721672122245596309874092561686990828594826020264082400247173263741235429636495174217173922310719838914837103679594509171411340236828254310164850687282503218300924917841147714563299331550261543460996684389971985053273260304277021797124894904403465725714621882992643291325844006151485106801973891049523321655552689337914820405020617320344545555266164166244631433329034007773540140073195468346627452332234638633643148053590258529303966835521767651748489814857639834077311514197954399676668389467325319892712990350049499173458563725658576829047284967120454722766366460579041397351279861461157113630188287244660157352357867445500747062802476341160590938933685125364604941629076144077666916027287819112121343426189820335043462591502944646069469425281591940770087414681370238441697910839196023458361765124257477805041470336507318502216428390425399610528914687809901375845504520972109423665932042890571171955811895950068913050976526054334499475297383902717679705694886998222560015872274454134898287316512695509913168091533799942779642422019285294249626979061121953632042004389826610420589383339616093988988095731484673719317811535167672903509691369713921715306239615680086399307305024398147774464598089722558201178574303702316171904919394435667533654063923382226402185046740871079601997616376567939161816357125731232747132158720891028859390286936905047060187584254612995602436082976627254860429169000853845301759520011575715221186196233722885230695794540268725894450763534935237545988224234239465330095788439542132624775828697615916154316075535881346785856551951873306986201591479316596146750012466289132683513400526497190425410658872323423466771569923347245838318748981227792740092539207533588425024746204963341949150364883825122969470601346057155020860191452995334095494938518001521281624696098957954205256167957467518308908176370197566707633680180352855287231203859335335050130236444943102342764317708723901934260351796239548972807494995728599841399607223517796444340965437539188676199355102222953828115661554329404390442540043602897146132476472509730234077238471172776218650961849545765693515283039519083397932024636163688394577682173527125807422227975054480917385267713201810891977766010409808845169794327083173530894746599793696651263372285484473759253877911326713895495312751059797754367265456770324780200841382280747231178218725754567817762753495909515283137306136401655087734427192348703519309050946473384700504341788130234606373204896778215384163775175697340215936463168230032358662662703665699604154529228078717856968565518298003488356414271076769342923194442018840019264491839261023017623351620035704711748941074925683631649209027270919657556050202817032216316033013734946808123967350956340362652871575032815997934209836034853716728095161334420776736854099854858213843719893449362478766266992455922935094078315850941837619066198146966227149410515709414925272266130175086777468824817330995207543204096980685155623462821708656787857800914612384371092945426931694523281029476414303677777072146190098890594005774737781139160051377520321573508353863767428178875140243725876389271136828665798716624310401394365534088733906350660645732770485046778135058283166772361652072563460468644853858811881767863292771263799603837075694475955720621242816959252206326030203234661210460657991327471640189932864591795798940689073308057000622700317679394392476587759064553587754255858620286325833153846279502407446050160401976190026819805913340070826988800063945884874621944977195264228263075254665345237923192528155262845448021461456905213272182624351602309939308818867088424404323497339076409596733156253206954909116271591067000907429277249173599851928169895787551842384025898602390542809951354062402106304842462854382095532453607872659664265136305887920847503387624463764026683304452074913394097596258173978532511213287940602188346992293810693803209748754382526858951283576389507067094598481299209845493422906792065805117765906750892285357512889987852605758552807959414958828897397303233639403036876688628918732097240025701555686127596483075050273810157498773412177208377387109522288195278939075935466762756598694524622466284778582468887176217208195349552882463412049991990892691218913263536309447460647934482353880404931236336602411415901010427136664987733639282281975308180708558182695807422648575507772425779333804825542664697355972489046970602828666348646604584977843532902439604554066138982521162670008031176779592750054262783745752483309787203575155957386952200745014832132591489930938002233574797929101299108117690096563871355301488339716336874881283488491367564843711301926161987100789820393790426683405438211678761939798080421505650354677111353159591103607900565748205110487201289209209776493282083387878692186158870320878296779922310324757098672825572267458119277506850570815939835611110460750076387077207636891589396190345513560169130603967532721756060354039393373194363423126176442843946100471941963092700990859141172063683696627569697827459189173793039747566528093595563413728142093551601131972581858516488711059907590341834912710768976458170235370335988110284221957905310593541111534808319003753938401643341654121376850396218739280397617031636748270659233366792644342878815118393717423625367809990664402993405884620623504898348348358643218163477443181698868386403662488237459829054892659527285429056982465974294822954386690219824896721641687889475610386300956377486479961812639742951412635975927381248879976635623107705587334252452152672342288865533924393919776453356773565395017814344066710357200353424821451593583570036218001451664685870380443199106950725933656276505033002076412041989843834891863874352196461494848105336101688296589401745598121673161813655788040939229014835708417171093403844498270770669332810490521316093667875079255555928303679203757245280272064583623649210273757665746423680226146098437672536056791552192024356125032130679526131180381436140327105002620050136107518921835137433765641322337497816342298568018022475223392882532573816175128011248586955499246187858301442948316275062418147038850409273222567041408923635361550540156249116010989367471939771728583076186625107916506109631033516364980624655318936621619232462151643998214187331630981382978472046048741800618708206734219548453003181046462324677301784216702827162182181498362391754568164133479300546982970705599867925452407754249949673741588337092812783209847912417703534436421889090601594992794375503623656267527311519781158487642650551265090024935865604542731104666357408978577199587005340119979525025400848517559162299109668984973434216965487437225471060269379847987750040118829440339810907879817826385493896360797946275606018027674217637637106407734930552674128633161652459833524772536431268547022215327803323593128422074086842764443508477956530801873452095760938308514966686971433747513540628304641949537927916198121867200129250827136836656933331483335244185077917247167053638088294442352927042314036058801070797978857610071018311659930323806109059481209673240224315857127995089333366105006739865235615105672395797062665993388170152073396108377578987676605052152994434920016894649566925226575195195387599021360923780202593686444585890539183275073227721289898207517166100036253415089812873246369481268408423104061565940877887778603085839632294940535414165287634491229841550375670561824161519914262288924803968306413777822021149939818393643760509145598925347929016562136675015704065025253223342222428763737437932717863934217297114264439151523634897940134565692997953719510403470975619609777315120489882309803382392113474038516400190317564938927266415797225461175136788079815189146966595183409249750546275490452932392016106006864609405315679315786195434391336167359482181925291142184994441400816548111942956261242767204183563998746153989830585377868884685504389162226775382230195642532141454286735074925125334224084271490091527009687801413531445834879525731861209641519423179370150845592084454931015570245845892500593903220728965730075091970157589198678837752662631121870464520611248509726799940335091305839299180438236247634921785495955668357508747078366236858666262792425929580953415275504445564866205914024178651020189459153289836959387000090375258992039246614131026372625638853861131136436374829398670043928756232934201869570481785337733919739666858269599172275553931923981138584917758333115444620714780050457237177821559350495003921837553024549218572213519181146871418898559769648906900958560612160979285362870071068372235915158671983065027419014717590555560702661532100965701264706205946233150773376363464414437364224843946409364186218594804311869916223697433867535449715311384592610623517592178587596039731295078077876447146990132866612602546411473003196568747283706947748126517117874529850603883881884533240175494929879256622089066421210690583655083582613346694125242727361566054200517044627112372006631721009158394610701094865281093933616589357452641524167462956195988150300464934643186413695170726070085026139088007763579003830816843238587104830912976206051264621728358728182005176149434841523534358177412130467235290022062016402924738017467386032537778528620616041775331402303739280219377023069151453863100847262852023973877434589113384771112607754250244420754473563909596014621132168331978573730747994530104338341780687293424359490022896148759118626704955526278354679492044525321993808883775662589914434894674023104328817470258361580740313794252523243353291479911619267844338504021780940765020606903848959649780904185602164638566370057654360325905931790531319935968726562572554485029385674585492917249959536779504254678694902900102206472304427031986568058855795424790325424885913989438478314924294407093475956330604063561993114988331752593472007329637040769750609261765076945115239074088877727703490218158335186833597351773360278539784039511285946093924541224634018918913522041761552488210077786607657942562285151679686231352585290711442717887717707038996669288187449649392973984636705087700520144592884870366497596254039117505472213081591772181283153883859490259781428658102486834876560000505412388702184433580608619920510314245880118814364103622238532373285782819295446351584418938451082763585011981034961561256600974805868389508239044990044105877697514593831408084183458522456349624619767898156346950731321447530914388759634307251611225186014336532248462396150651253596959378182488677169329521598656072803919739986763710901739643247205493414974985602256348000371906665446169590498850536965725738917066441878684171874193883583736067412196808313426576712956664183977433013919276635687897641777281943008949560033607152185221955143574070163701398083422578177560325667014878567656153321989508503327381520620282514886114267842781055290781854825140941280394494890907640490790727089164160431381068089131656222073315028848240522260899272411848003854024916403745950911642528029075969444949881429761037010422857467444088521608677948490761614105041712056666662002266758226655952883175162646546892001667060957848053773668082210638162802498728364370614503011034668539104713821560071249266521153974445687824963019775781440583550669686325108098310293564113678914185451460282737824054449529759184684413503898815597126057065083776338773524460182833617523450644354436235696798598526889462486198386482804226441317545514922461484611839756329946785463334986959772867746992420710472547675470736165502850038379310440229719995300633702336024721043538851182055794205757590150656622615549101265027545490781952515080547632378646998240057438008539091921292695741177142523540381676807826605419230683433208607973219362985984690532393695314482776400338427539470213659468588992376989736446135842674226037046369231507047600303862385365650775214285281062482520630936744812946302363421906462434820287108769946821938261591684759102349519697926002964100957863781300305683493186203296167782014044707206602457574161484345807266600637493429100310050302456954457478970487712591422174284774588124957968914137497653575125012660103564747367025824017156559978627455685918761990693859853981178635845349273831165196856175894860637957283016455981304510682561560989231687607620075412971406815808535893141876946792390160070371876784967637517354874400620489489901403596698626352537904363924573649021967908477371626405199219787591286102414612798037862101216505735923506004031033879901085375787865656630439975483461364670296758803152765558345344697177895949868521084551423930970287317059813335651223158696955693301756373875839660553050111619036520256495901746567449121343092829168138060811304719203538329323280985080359546059486341592973630193028301894183273172152449972834951726387145036750171042625810265280764252089277890842232386635970502184367267649233246401089408395526157652850070771581632496172235985192997138089946341412486548400315976551607322884599413030109003983549866793712807643786959643096576964780987894938105437432146366856478373142619719172111279778702107924774018406416959289179455337296462977905815745596047231812760971143356181078670796338294083287405714261377359381999574226420828362804099218373995561099284003465979649313992605579278632875122050060138175297856190978599945643807357306143791654559942430014636661808457530856748191576472106776256793461890303952796375221627081961789662151367827480941065775026844185015689549757329830886898131351136471658441615017470858321707652553569392143320589550771832994712023812820678998092275293224766527822229661186155422169322481020024741154203033314119343024065374914851835450441585082714158214400799084234047864845619384568716785828775751075240683018944111565326151521487457060220768876535017762613475707508459198392025631783933637379071333534499653961616032127889602280732096771329240874511493020307013337081149908473404410309846218638454517163917773138308443430813540961245528640931446468676355699235845567432253333254012879294640441159512553085729008872440610659252864221124921508608227097866118024839742377592296593739768705270176846084717589187348779895180828836788640968165835679954272864564060910292910589172516292559562436395931296000019006456819545669888391632974480178372940285949647839864322750326770877491994647079230063791204413618655071621967316570251710755422196373682101459966422397349599286228943253131212409931806864306179677754443905795187325799361138361103083201530737334530232334025290980653463858975075099174658428667947144968290482689719573864381241116407710065516732369577320724724965646802302426272729045302801942070574840923867373615745755076495187218810003040552601131095947246382731718580845704093859905076444280391338975703380050771940015537979899219284238949891462172723042445927300306926234390844867096339281485884217559282688039487911500834204733604626100354467135272285503977012768239020094685693769299324321450454050632125137002228165903611951467167129330739256823230859024334379512986744813291039235003912870051437240867727595939812634519103786451550831340148411266503627324533838919903075230100131460852429960143405646643119594714873190472970550358785631739591438156149803139006693168541634200310321435752231813036646384075270617084977198469529757662183858209357896070105135852072501869173449311389938757653830045481235477446180112777140655352149134266487959782937581827175254116117622761832103534702905855605930565671024212550441865437819497782157048458720384710750534167736048685739732358192355138175414090835939307120133733883568967160973830498493550192795952934155983273816836619485473937574146553721566342377254506263303465280132202026888404707740227162158125628831031262194879368973282449039760776501227732704883809895981010886373917560139024661432634872992672986689188378236828391749553130460454493157402413711291704462915183934141823690825595298227361048639478748093642471021914441966668141115529994458521919807625963371741891319720266600062122550723792211178891880381462007144069819742621314074991229865664716689077305476240502856685975935907244131288595498784870854061724682432835115192148911406321213122763981136261555477723595554508250676600395264039246022402965811701043935068285641240145071220817158463000064195883098175877663109923856378960834950721934905461555862325370529402090227818605156196016625031584632774604476046480868099378448085852116121446658788541041408088851392091880391967011813598687586289329600066763316873149806034677726062876944427642284078728164724065424652612342669432940583835536584297683544855968262052000617505245283815954497311602344103419610658924564938588214204618063381012662516164130903717258594817089762519639379660107847513532222043314288498342450045247167829542801951806463385918670643941674372984392106984008831039876629251396584196004026912246974355938103126299716491703236251248800210291452245759822160377077408059855244948857144248603658764812444302300484503564614958740329945331065786594978345094365573504352990433195262421521384627679651375825037728397557888912197495210494774744478949926509233106772465781320755670667221107807513928090148993334260749372184340013149161567776460462394096946997252975776108505106911154910922628977373964147071472197813732410675048243964476266352225238215677689200336980328148685981125962136211438878600623835410896417232805905473473335488584994780815716489810168448516372734083034159395863369737535959370247280700272988799018367073082079531192833042971745331273611113476992037809182106500658223140256651401036513398043878809411115326325659772742307143291715639556140164394295656916048957754833111476419481076727838530730992899141493807042751478468618174291675526405132902673482629483006628280658879210677195451223595190133294443818817318316616380746015786662867993312294860459021898049775326863615871020553106546928244209309001408346638694810185047486863212586715385531645808017238745776319640630391622803271466266415111929145008087856950171100849922345828287524004887800491887256194162192358709741382749354065445898489123794048436959066913942359220258004131822084992169833933367605702482567583161261673108153459676278089625952904309197280010583744999507146197948480577865680902751982685506514423760412478295794154381540857665806884771322545428545980417633881840304873172534436380929167341738012943028188464520352862787641628547916384740827285428015264419037396593335136941635205624668321156470635407931143485707092421656808094015132624161698232609417373079711029795647893526897758281919851343049649103174242647322637700963541814361290309576222371905994300431330311859424106410296859083333827219238759988718466053764766256461268844266824842883524947820878672581123217438215983741166327587837931987151549895791052466499609921052456304062424906265055782982066261383828344359596823870627063738628608577441188854103451716560100896024696554461705504369908105603016454020214951469010595212961443709880286067959465575863312003782780740598505336670748898274072702033816276279980906311145447179726611173160411775122615448548368940215846555529621086258750706802492677171600779986615180970908739974856977476515158614688979510164257481550817504840872826088836416290771168271352806905561954536368491772747444090908840417750735066936885533644758862890620854318231389728404360358355637946436500724216052234502676453659788002395566252158863815794678455563914846092398563174972413747163778379680404111422981399134129077573292396577390316100529519259941607563448560977491536025372506139815961734807650455226517029397403217108586097417649665242779845426040959980190666803822314477970891349887171563043984021442428908822215803632245909712996492639057958586094321006605291153548056908721874784481335543547894780076554452010280605652991711981015761205771137518149586235356728553988183126585174003750340294922468887219807067921381837157823344341033171898563723596801973246675355902077286687739753519981462557869454703801653272517906254559271441389390375431578555948759054831316039089990519393469857987780592638941119762062924761441057784776130547310508598607522102501060324107414168271219544173727062791829375254618384797443454935932469356821881032087979362339105219234424548696494679294919943936818967389205278609212873828909888206932129860887518964891124273771079115367132199706255558331234112784823773316568299945988113564802436272929289377126904294256589553145374990339236193330130673403592324637364514884383806653485427640574896225228986756193938734339701070422283266890335731640086133244416789531664440486968243069253108918005029589095088925170346105499428431438188513326724361409688278644500467758901795850707320846564019203524036625504549247037234914102335603379953131145792538949368044722108524731509489603685931474204640685743863944914687031856367894474374972832373926611378681310700121470174943438710896721482021089037605378973546607708078047245049243160997659827403628351259990382157813350863135508902582005209358042176443588164894490537441673115611919713013461257627142162811050721891353130767777252820964911389292788010081775800725604721971238482171020895314864161640344590294275848615619573906549206315777126314645601778236905935619722907989572005238525983682632538388312318414605055859113177857892585470670984889718368913040838290636305877038714755863537579972170436195044439123215523853451598649213605871488893113988823622670416353368635829278051235316420315113051947387612247193593300397625195311654989402496471107450806998652570327232116046132271413518907527945366571325088558199259621721885335826320559330655688126089759848668188322977410492641601948428988353492149625944191345051341445418992926003920893439048010277806399668916442532711769142111843420777962308488232755487124015939949880533727955293574268689717461543855219097454827728462612331497837770015502283401028475535947849277558197762591620622771092293450178970315898678627265183242897658794316411421692382495254262682200956577992390567376804969004731622420971314164208774737809391756332145969749006272701413482415109282097731192445022916928027445332862265348861702095311448731136364059026953747023421760542245513882368234752653269525222139369573456555849795834043228512064316782574552447034179048810262342861990981175334440598056427891317421230339569989820683833356567228527849364954884913947704350913823698483649702305418958273703253709948013253705005802088044477622473413696883069816966021457487283684730309271185026998078133588251963979034246791741756036045992571174815685114827940848295700122230363020386343787953912382309209538506728450594380241327079160571201950923659700481134096822309357101993381354764281889682538385530880810598835508120283849104397392409831819836189082883222624714225245181751547251486025201595921495694695494699790414576793411017821798742380397344812035951121964021836310023922789041034835881206951374568016677664297577325079500459421846609776493417070980656253669333240238977073287046267484076289244112950600762287262246460101079303655171053914232892412149148105292411011718704575774301318215299715089131183319632535054476815247525583449476422960581648197730378967790868042856263320131315826007661702038658506508224822001584888934989865398647984126961784306758962276750671382150115278872028141233883502326681041995939645727837661084754691297665893478730640521556772220524705908516774043339005422644936523561111190808570567932582957873545964155168177438186165536662580651703357673857786049068504009808666416401779508204307803129100022093644962863415410024758919234090847445908057164524971196316329556896455343681089518250009953274431681950751815820999544461177112376468289365299906888965225029774652875069958050550290680213244613877719269463003594139982943274126773475828646647783641039061809072700510406543884880731564263232514139751965694121606376221491051225112249842194690940588178103747768338098192369065029410014797062998489725346607007451769900649607400092810449987380276770014569436802833180558875236154254425722157770248845790215463122218072962758262962366807178316673252233279803251674593332308035118725605469917516993923226328394910595438328132129914493251488327819876186546512831596410237444689206452453953331716365342356176123113094376252409356574368424513534546145619225789816474655305914418368240070668882974458043400680529581380571952530757065045930028907052270616311581261829965469952220278897053479177498535809171642657109089423281267360731931773137007053054163371938657560607335417564758856115832260644827415343968618813148598939935875244326281487520782711516201125012552095214017865301680228443814755257585145214309500383898333717693778953193104952189013251148910658971195429964423089962777369698418815597538736640974679320012240753930849825759732148562550286296769546549052398182620210094099293705016690106523658933175049368503008887262351289269159189334549066551508551319571116723682393237181358502022040625078968049337054110589411976743378318416311664916457265889255325194617940460561251325525341928756999214692161792951389589063808943634237415653596457722834416410249980012816822278609931478578846100384311641809519948757347786864720362041740120824559015941389283716699418640271624211313711177032157543092954826958232258127012812641004384021909486506404091213518683024986702861213145650725884633264109533072208472052963985288433654259456873096082694824717085982158246547643081899482928934278265981568992569781938192687340992804291091519789789411540135545190109338741973423602165552422295508736916556388227560561372734280716996288103209589143174777215508237233500001628317582759441322276001960972849774392492388791775686811728799128670716114112209262972689140904297573491267582776698287064920742517483646497289933172247766952469190990837979696124550698282471968110411465429049390522986654084234793357004494057458750819755040280830940831565948806957707322989864587771105374094909004237642594890832362653354773687689984516036474722776386308705502520175522900186595958522454710486411574411492105309980727597382086527240008734795717685528968093048568980178384157651788805981488291032118102385532398486167420123646107270922129436146488455947509946493930923568300341317488017345712795338835090675661865450718221012678343016254295151481906303843766065524067172394989938432647756926325346116242484114446201028758637675349003468766879998894757504367242805300874226437483078714480191355505363069353949832115895332365905018793654568133215642149958181590058066080842666407766142085646461382243304277129812861184223510754711443828846725805337318793618724752052712284007456846432630465931094308933502192048516154955202056529603442232667506921160654615617529437254398840437019154631698454739506163611160225645038906735149644636745091441354705075397286362445315500321688773524467666411851881061118618666479370081151653918353335934680165434260338926291864727389555725378058428969098296501826724664310657975861210955257417305933509048340495947777049801329302822016792650438671478201158985233549530441530062654936768869223375776691153055719885344793771000099120629009453532758567837679983441481189342048279118925719381315381027558313709511241125194244881956552879028368577305608709431951482950557064670496446604289363561383437350646859550023300732896660083479505727708693360745240411629126584520102170243207024921052542103462596121104771012091750149827717537685641541209948729391477852260900792374321889643446199241250912648637390297305853214061086187427824414391179335002482923816593271744803072645254120322249873350967939979932261122070923726327987939292091334459597373290267496087787118791052324138539629536130484962995583971662936149197863868871033697595449425750301339952514194614547419650193982358151375701080899934583895756123429476539897429510231448550645943492258152498526968243903961333695749404514265274871209783919711997407643289246077399085408241420555134316598436230638797760273495591686234897209727615362650944727876243037565357898754942739798998871757949069483466480480271384471656581950876104980482772241028930951703308145657049483490243581532931791193267574213316339295549706410877822942028929074287697397527592497509068434618137183438103296423390056511554033049698886267553098146564050062707960724639135951495042386880141080033634668999288476844184969305329795435638241510366921908671801526715615363403688175130264321135962897674652219622204260501576068431485262762569141277869835456396990028749827991768921991332090800039899659182075591289878080074697500410482339465317055517633744663329855238111053447198194276713545025537150391923236195680941188176261017692130250344437680188700851996921281598635920864174022202003525457848644720455416819710103585920801431033525506138223902239733913051663051478782873377482790024460640738461887666597936818050465769211490402914752397823968413687018818210988232458039408469395712115753796330236288408654349819191784102289366193618769315708116757784123695945812055080632139460306102855040211098100852352472126448383704593594889293846031088591279523867760450196220667252251753621201483283735959959504552642849290018189067112973842951647951925290718005807382006336942290431947292842356815935225717139377401767791974027335643732015668987770289161253415875846476975947584829891593914948812809185089729641717073600563160117571375088589885225457151152456315108521685681373791036616074905582960221976804059054347918640945087916585235628337039558106268654259883696910082967212601871469625373548513675018294879913865209050297656039531709244055739542434105707858772677882014620840854293029732359830960342739093288081483655730596908798287505584538481761850904467917111693856818635957420474067377640128794472513629813333912737278904618237360331385538742812465518134145458262659736933039914315199065994944222426194425854645069290343708394973043066166193068387383543293836722381243373067704933720280968847848310332051723409299682235534785269980785566958177108638605989533056306673626046865783615142884430252409916758497037051492889121414439597837517815194876195729353881279267108510959220387346094288129928398148851449685729497322006904673946992313963264701967460774960592768203984831162774793827582828486660900173712687865237744259184029528948540550432429780756690344448135698011667890515911107424568136788963443044811488901618680195163724415737090970275531223537996044876011899028588374794954788718508359755229461106491507897173368621266816898156459263703508832398467616429290069030259286744658206829489801343410919095702160877124642835659584041724172379639001724730098789956788497445414059796547279566000800370648428064084305202407129443794407895163296656443910647736408056294559596431629570442168383955883748051708665975242735660466243908932016307533051842097208541811995143062731657435991622595401196219125259166630416683160899152500667396007162743901604115535592320085763880149150018079190730897768351914674977707220452341841547179697764366342875099370514841675207527324522329563604256617645383531736607594533654554041016107130648645777605470942284428371301392033437433924755229886252826131356239079843161518741479319222046204761619577806361610274790231791501176217703650853678366484754259840437033989478106880159912987108178232860146796988665699812745597258230327289552890955705372011822552360493571243742836144371447769749300511990499863111334237693375631456063506078313373612584880447269452524258800724192692262585863991891592083419657477939642488541266619439971863876513972614775455350492468658813071893303183446900137904416577605344335848097472758548298235341156700073984047030106962480198410081369839984867843322555902431610913539521496634596190152919465026127432724586646550824758021220949082840796779372989803291022865617803222952567069004415292864183950805456252437984999607875248162447116691387397457796328655139268602865020083327294952257558849311071154645873257317451841226235000425264585004070886509321300264480248067319512381475178587547191086755510976647501110789508670993668142161228173468981606944070666366579221335188472297949497690240991301090566103667291746452894854537584574150515854902648325367708020674452772440245590348653176626156273552692471291831151946207493624613232001692197923147841959591723802330175735836323742046282367879661083566375505935837049745428114375297865103305858383226422871273092656429236045531612091720068433103581146788715313474200250294574107822269466856631858688338028336676713379460050417205925489561264385619630211778263682129677743078054377636508106536449924686067508827195609161926092750649286664237416757877900452327766887066436875420965503484406697151216940891290566740266503777381287537032656726772979056000937658113185198635002841029139297768072672895105021654845899378394028796730372138734772459497942258740526567018044779356210183475245361685823842393780244453962350562674280841624648379399357481230561839863729555227950430841517122956114937325770633138094876451203621382172159929585374375731129598826474216896760558393879230589060026050596113691505819829387944470824040024104117351163657646537542671781924253862364056013394330399984167214550879875601409389784749816439791597547303361622368367120824712440679905143392814432839818499098598620462015154815285308966891902097958084145949412958692139203031925470869469251919969722377788608898074063299962798305355349251760582257691057978409425329153130830901585156262091804056942313661520730023437940267268071544944428098668931660638227075308701234455688195914051056042862436443502352299573846699710111042164176331032956304837131908124076224181940191245173555107473875379026768665771505241947709681369546445523218734632690287211008821975544797502228691169864202548913355237743241945245433445021635475224100476387988644621713196195678758219170190326984617081990094227852726737850097224691214510715253065629714337703896918167615932609848539212314964012546179554460644931945554783084752922076524179284154037542564392703416571342510817731408282548578351321870757628201787617920483505030077076088423014377987864742232326694873268420669245483092009572831796487862062465543674129787308237419755507678805153631337975409537721101242563006292021233444195047672982389927070896176917462851052481835028783230037323378657066967472308503391338539268309578997513211598738884285875520922493007689077193936159401500552249020967774315025462137997211999783700834699130290195875157693055134722259941558278370156346255587364823582015205316217150113240839724679739481705919268416773410894942850332423799388362516662893017302161172269367010195496279568817595046949658829306266172899361450779433223407663540546808364750012727455432447282001670330816261646981793522717964979505926318069251667179527912939960331789495033394878948223859134393120708456954874879542663109703020934261214531832244501692464349955115761779160375717053906012908831431477771237843765850816951283785970081700684423708284098853283483929812914466803516944096349641589288437269664718654430049701998269731091508173073518112111812801511702052100379438758848967611949264100763903475376223388143515471437680371557388068030304220907435341314216524641977848648268484554154764412243142441591386228051666588255461026331945407759054150990237006753175947443694945371604536798417014169589619993065923794446069794204535199573244857076470647253762107271827815396588376749269983723710117387449701792730151304951780209862206189484003704016142299282591955453016023559076446113740783145866608970032239387422510273440151825520668607973243851805010319017729730099612869062438899924839052768230176173565139546571106545806294317151460728886056509341358445314721983769563881449133406443533925554992380125572462819940549748026966260386061972157001868527733303544811623930451355376922908531605655626331185534124378337510791406281330652438812717419428728505009032381599113635036916873158381916611738181908960585150940320520323684974380214346509423422869140159741649014781080283295459438202658280929970845616419554222633648109819638293209537514088916944454716387637289386156375277340155159427585311693886851251105055913094929517411500053289079313171532202415818840322338364959758920256373324971531216689549509089841635337154369153890903206912294544297672312344610115691209585764622898098438069966884308881192590358793877303497445825714108736602253184516644398305847046544720139089292294557025868618398764824622313360778997281417095086739196343479400523722175860161675361424106453370675111861650201028838018534647358624912374673466439068139784865408436430170729095576844013075358965968284616649015988697545386441313672863974248445010431178851741292595782241726999839651508180537862928576598669412590127064885318774977584434514787876677417551532266489357171190879584869601183982110982972580108115830691091486444445088903447464434412050076152343402364979079195241981474682482700714095636499060818255905321354597219304692783238778132750357195399735125614164214581523279353945250180254515036610800205479632454927803524645399869768488095134660296132766462558700871296776599458030354034525675572278680699854175566287618670729482087330454171822371694892907267723054685261481786456996240283676054367914261911664596824135776110533688860564477169772502734494122719010464109847122528300399740702188245654416539630869692130706378302288312060663688008463517308123872205895532663796541607489335648170003257136127159602783428275030516821936643844371206095594118271914046920354208625503505640675831594282315720015145738080054196764082578033216262485731901345374648608446176115637502556826897313664703563836011089038115852159466907873111311928946779363746669717744943142697591874726332230189638304214930560949413404823582812406217111316990834961994475206847999500276949493681688931462697669779767439775022109411783699424342101327894476559756504883018076997435966658048452161527891962013197337267014483672627576016226919365018564245016951021844716581757301285198812539194525923747851242910202931230345646406764287555416387898321880052723676662833322666870148246787725015136614059971700008160037644656703586251464909225468370808066285995108411016600742287802510446779107056519224327321550775299239722968174310488541156932108020193542927982776612523846233767759500365668800739212150275173757313041864918607339124316495317803083918880164662879941721103918179914979593808364517145711492375180192299292052798617137470307895471624270098695645708392927293081934755511671205877935981198646618791030312773248434768381533596676522859003638249015586230047185551029963012302516881354293653529015753672578507771823669682879837527753602272653288999889293126177554208256992618976079315756427163852374865397377264173654896643310233115349003185296004398906946825727549201071706907184493472178087625470929814348309491941480084322523014708358830570294401838634268233954087490243185739677033318352619134723242668296864450044166877514973746211266145928394431802805600379277758293645037062964669728559864796558227708759992357206945098029803189457490810730660708810078406174956373940511483547362632791854853435937528285891170437010156243203794381305007454427037657609039506928826138179751182352792422347199635263551412433225576817517425158724620096591225322153188687171366707636284261543582917150432161000051301619978595629026130009450148881875475015530016056876157098154903506061772352557394041905372360677872411296173075033700655853589794023351241322350735122663533853446616282250683629677571675924746976544248319671813578036164419349307753502681741242257303609141240037334529725353229149035857736385323151638733482281259255153810562841999009564541980688256725557380370791263643488056912407721324717075664368066788550436091015390433093122569005421565681119745199053318426559885806480833972160047211601246976787723951696932930812241125995252960922548612272123462248763872830774856503698085099705510916718051703100224870415796999182660190830588732981175726091598258033314181212762608922812425091316791782009434838159917272336374508338269448366811375210073131492897995587578481348872891367694538433574332101721978442290489746133540585958940871990409309855485377655785424582584906658755854689606858982231744975164424447314329993083386339873897667477057766564494601695479843462183589334944329528193310246455597963286665530209608352251223546817269636709354419805766854951398669960958705409710395272868249496698761282443623895144492492212763145566587219952192755202442753799913838991010910140230514306654464621100715505374196698635199205376335329327421398973772206852363065076085011643262671553334848661480763993962454604541227770808968862177563117890016469565948008734045920334348171466081613887231365483451449721174339306798192642758365928097687204711949362157739703522970430991992496760641373556813224998933467617010874534534236295470979026240182173759779248919807753798671249727694704593207894416032077704284045938564992636305209442021513469978100988221108564444117630211059413149607187807458927501417607122155568982950098742394806481162330996668007329566849124366879720101568296395301976341397113125088992346315397410200771778597512656948529820775122511006500514806528158704212683720465837064261673449095212021706665637227809393259613633259828008918997176049150910003995954670672603226411291921795883722254667322984166858619099126199620691415921355731501949874813462771103703852229246158180439087304175750174907225312439341602478515020347376540797668866301831574949753661006997093367676429979074807761721355842735792207128002129937224761234479763586792871660680223617919806894765605189652747629248243509541821118069092344443045219277987124421096310457026577012029588425148511981103090360561339448849879239349597595007056913870811134613446052715904677921660946248193062158929599098611366266545228499095679030520024650489256108710099487832911092792295009783721438264581749914768918987136720222596746025398581688673940508933887521811249252113384494161051546784017669655450852363820155167049938978470490073897560366235038050791275858819040369847167564986083749838347981407283744786771136147637014350387143711891955640412722641855146742906463484861464615068778587192541016221720489694435936458560875184941057688174268441188251918070397029932441534417974929015614175412702185325017249895498281379027049701888414613411767311320754958858969503481528734700676322096255382078681687007918957618149647834970107990922254781135251035274301999338163453432071508260574491588629929035206225510579504854963595095360619056014961334202133522895271760784217253953179753245761089349069299036695638868719585789036164797313104429832261536268789189999522477256828729956398775077859162698354776895585692632985481929317975324890351691316944997287325473553706483298107324889102548883523436540597216119349099013052494530655725321391032852601877332566604432553854907233479557813370372872360989376532902119778087112991421637904596877021784860991997313368868660493196783852038019773866453016455706974036765436200512058205831231828331334735990588072489086403416037188514403226498443474636715928981158029120415603280725526844667841312971736897023020984936433764112257379469309425234852920916848601683533862226649375127759980581921516723364126597053723942769146334658460030393796507540293255572946378109567979769025529790671340707132728996942335355462526336917224439893361576812395922879558911072010893599988243893741061599066877949522597595647286171421253864036065321856589270825475668833806959279798561370320377855984088493194540158070125307829202442230437992723982751693879526206237385312122195669306490702990335191894614282064734740513575482774491916773641746287178770415878629138411667449179653406544752325751870886946258543913314281482674608575383639692220883959946035918293798089286987860689136509388316467469093136908816092273068802341943190736189203468101999817874117233398374012434922023021335279954156043106370912508140769066137877552337303447352027787222966666004496556323128201548649749019149379676591523755178043131293738166011141636580984585144886644692480396981291148766138156969235424494606006919600175495859093245176155063149746287221869984642981899031975995454871309004812712497724447371779500064263436436919907866382444563920265246596731646869803434184133913951840932511191231282067338826410480445004667926988675652280702227247965591129222299109602430999159460763412743369381181312983674520357782167673381499384652821653556145364097881234281186469499508847236704960232829130878464055952211951121850680388840821664416667995299344716230702652777395222527814765803852877123626118453663767298941537303531474878946071718792797269162579956396843639762562828213005124200909454593221015806484632008666333756409601310694933733362309732201868462789602022319300268742274778016468527655970893775531626423774081750657151589387165021060411663253698669054568966939556963643569808377218355265356788210873146978155197922813413111647313110427423410732467478053322335214475599465441538752538353873765834156450428808202562648057271141260723437657856959906431825227111033815134018768904118345103146453520575766654869309025388903672582286105630250011743993449105395497308934458350160033470305362947344085559118835109656375546745985818154557078751284308658708786706711348868070951038346868101692340076069803400599913601903580319692564328289486254493254696427354057202908708569041657020147725860622833904345405350621901727082911831656362018028604698489578049295259174191732064208354020194646444486842287192998341364463017907329970562675060517727562442918303590345579188976756054381872905590381370403983575794738320830058757309895040955268438525760984573376998600686934657536263952879800381053217079358887232574788449368596342857222542427374419305134624806911803803970849326189796322390431631919644782634375020256749673054551865862917772038430728474085552001496887029011233864476653806822665242964575510246504418015378660524450136972702136565639544755656052550124082001750871980160342506385623814235142052907759765644144029195303315497932244602535874384512043772015430306117061961803687604222166645114518170950658788452144391556687423362925676010208775282469190488333593877515213465473555182541800009939324320180646370797196096936293889967502238551765330187403922130251241487403747505473315613151739369290180574932418032404073703268580274367087180343066901277101271974756964096767299069138947349124240615127206796290110308805382064142038000591198434236381458077861711094303804983471539613031997982061127172968093885980539270692532587560906523532842665187013669317935254531206332455252812173075676351831858907676704693432805735561609866974705877923728467376482019294095060926939299159564125294571905225492042636892827185671234295195570528664827475037618298503203152100310185280305331941149029429869465714986621508463232292429400092831472463669615067789264233633294496730107155270155757880765664839229727409903907288948377629959382021893030187753234037525105291145714968578380160266543682324728951699122115572454153103346109295818900351676295472166979907979562269339887183760673610412807876811630513381525768191542798026412635783018216167355545545709832496368453007634655649361981435374282778080112438581518113964907203588126998257817498335368250950847927210864123883331580164314482811244407197655948659654699435442282813600403560250268084215259771067523834014871450862457666438111487445367050796825685711844987368817459564410907596663902601089182030065514974900401085477146949241264094265572091049478355488498487912280021236335057778458121460329241676381854901405423543618034030707605301743682597567040608749176625766535484724469919604803723660221119280121087071977111689120008628482751114361349602670250074771247048626177315642930668369363550131919645922037491390743159279320072774450947148893774700511980048520005420730519675117724699158755921986378155661247093295816531819401486627714195831908660014768873517438836661270822775853321100660343254558178776225276411031439427794544638320132365651935836441363541682029011327685544450397573625894079998350281664953488209300239619745198775889614933993184549474961071094514812346101394142170546643483349327462825324328899171300794061873293547394802705425830620204593456356918035992439190964973380925658193492673874045326423881807023955429625826809278179417546646877645256514221057577781861941001032972848565187469207640798862983153681778789053363223118219438489333941140841765590111142297098042995200391371741150229060864481110329827262652362911190527123511449403557847217173126262300523503229643507581975359155631430865352552317767523308783216934104285683027326030627946892080418439196886114008440856864390235586542485266220530431819519518715349450871656870010086468702480607277271594362967369634818630067345824497377794061094815731737018626704393868907199482274654957223637125134391007115974320048733472421821737942587980376739943335142550372705361381743513396817940959525149919724318466615178285406465350523319191198179373146656769824436960390019904295591234346897931372199302628632953061535396636126647981977482469142766433503627708322368566712231299986082300407012276977926318720046093251680044683708875232358642351494016320295862176641911965488417994900510675602247257275776190833773202600749697493993056149216640890324194693722534123344961242447808952051522669997585589545204654810276376134359408312160566807024596666672346047298235399357727975267774491465249915914602980732477738493917438046829208815167225415529494596228193442013148794626968729367198690408430113663035197280897001129177572658497198996658036387647681088055410608830787293343471003718541371697942334620311087219591457122185916898761488684369276998543124690537950384423313758426744930096821770891528723185242518452673572800181626920434062584663927005648461918102435527691866271759916373254243217624203014439027493957862517276663355260633837816550196369555423894512281748954007369761933409152171628187354497181749567212390143323826972911080169420232919658075067580340986396259589340567978014447381349770773094544978480812765044855362142975002455411051566873865384665213740568010000507427035906425979491558943615839924024895133233561234693096537003867620717599084910522736936912601994314338987812272810699094203858662523061260986483193477243884275807568321667730533200347220629962091999977572235223283166517866639051266492596706727050280601864999436195610062389431102621840518310874530782275376778371720232874852890761958015190837952431968015890272455221462863828315131051678097282100576884143441701111508360256046932240012567910016822289907888301930260720975822389813605717572178956238333165261996019587753814430278684121710139599693819364506084049117723093429569007023391911925379216721964588830699138396775361470497867429412775909994468238082236743248738613816603030680025469133922046798471856596681888612986166806819169822258641386344024731153331439422125779594258243564558873334047885386759935514709839887253658715596711032345309989863360975894741350750384417466424900140933523056753519724687688607859844913285496921421350712239602270215319650830662367291128499846784589503379580104922720456291037405075311479647254606592273310729616813689544357562078489412902527573162694242646024838330234938407858767243170713236995697516729448527677753120216581903346238550365320549952412735635710069471764129703618092519545455629761067142610846733755665545557300407681585865131961949381259902142203885216104228548924160578084990449807263574012374710406077408635691762753198499546983224868235069146800620094205366119560453050231763104111725586517933767162950068820627482028645434367612624451616139116934027859835430454822264239805949227879673980011531720310698652563291407076263568502474832643123846813791169356201400372475923928994119376415621953959516109708646491433027820680230079357857955572595639234896477742083847060163786208284175910114116980444100108742640828093639167835785705940794818919605821046851805466509279414686047996434151864319528566779726336071200812081336711670899581039647660794425012875006910306327989846337156586572683205071984396044422343735849926432689301060553010066117385179270549965695679992585149901013754246756960096564476542113607772588481705158509886045525900703553834863068885046804190211769881870620752111345990630917278775034359802317201781212785068069961836336388482188141112209868360757304860143672564622736330556772958264172767359544681321994822428325282895711850176412687470499469544254255838407708172630564928649270462686395858008166273497882068665592198374853172617066227707053767663139881942813228498679687754454571052207405173179476384792345706182472352771400425458272223362940939169236606896614221734253181096922453088441479959194012776499976160960507376013860971488962392779513812285730429128071707578081200875520906637233654656511475977629894504333600201619391873577299187279686925142347363402395346925980152866418134709574880167674253659429904256782191328243476507879100480361876528149701443543447431515868824621505222690019189430990759672364371249512125935723904088659660868986265209090360980084549332350465007302178300421309915874439115846360062654326809635881350501339401118009099948374652893383703276880123883133425385213141144376330383004125227593518979369312835093910862604340075161314247440270237147961348711577213886333366274911937766701111248455231886196297103635635264349593586189024288976526781410884407630042626076600997343994977570625588370803315860723777443729492519225443600229692549892130111995389287974204422144602474860178323577994957246845265863539116475828324895723659401944085416920803025595310431690261761463734624698272268109533756605446391149226419020964046689445991201480161156647908125018629460340248221183009100183053877608257413752007526608991059566204449440679274425965555196619614096011386593963913405207452776951530762946578360155528135949780056060528887603974675667368861013243940938627140523881061983829430477983452667512285940949723030447303484280035770375552585001915447293085005131260541779835866988743719340154962948008071526475637858121264749774259318482406421298529604572224341066218610544927384043151913542916647602377250625615133222251259722085300063183564353904519051781140606964980704930705971367096267041559536365928261723944246603525359033946475086199525929052921443181110258904121321367499917597435982930636261895125743557665346230643394826397362169084676629175238075044096755830536037290111071980040082699456797784489792165978058835853523026547670345004190292334311244993959088473391979670027015390725712707205511188612614998326959096295413496991259958961531990589005643486219861870360355966950245126046578302086848482327370758907762230961602258272725731274107465659138747220820493251652685455379475231796892192909022456830554624071757982201978663425571131719526771282351720271962155809134199065505614461175377191688786755346704803115045899634192486358277956793374328358322155389071699637213413673252577183884452145693221645233929540274446516455317770310389762120283158518679578804966604711058712233664786573012960670998091236534924699475352111284431800897649635450617179318993168633489821085158779721360084072905070607501731471162832214190047632520032990095531905134848612558569917770998085509777946431658321059445438323848436306745231574126411578462735205036154768565049962509340285543704498343821880416492050579686920572239300529076709426120134566768350603571857289771536976798010946023522591042285364989448561351893930832579098612157316658557955711568975004638287463367078077301944577933272918324487785693465338785005216434464458778492138314453215783425814350198446551133698232770890098581604366845516363900373927594373983837743884095674852782504724255431778802862859623796093324223688499766987387370718356815939219717162517445153100381249027397624002507997337680109936158832172140803701286038981920267590027171112617781534752599695394391019791898340654239987802484568735657766417334989926495844068194794038842889266529133252651905690419067825780814290120232525494903964386086822288977323554231501214610518180362163423712120529517614802182298216442658001071479018848307689794411853222511421339250727117514101287756968162481567832708119735009135741334931042685020448169873598149321915333639452293011903807727073725583763349655796416105424690035057314787878585483799500309402672113640855188064543886934840152315954702852659342723012044846127545621953467394875013818545656626180254551006441662863197496171559028172185243090309755701482143774472682862624556562904160568644088794265384798233079426199703321009569381475648432124274307271969078285597531475273284844719352227514946315657791875220341724206037339546832879893005017452376797944494420215640819175258080548111946699260503108196132412568714462785932216712335603498643007539229632905047959236184568824247374214658413621835581911589762221311868480855198930549331664731580215999093143537503185690052025737329466357029570954523183292160922112944719819439020735834258776947683973647801836284716332338850748381419505351832342604868746114156965061875126450084622468464110401946243167942629185386850679503028127342878344064334516435571590836239291191617329897720903196352102373539497136376158114309974213646692430305258793788938946767005940880166622360553137372743641215243791160170568795745300296043148254343874005145042858332623088464048572836622406154567587946599886644007769469445830802317405057240099914111484693033038835913367690039431882525088580558688895910367494807583129071632566379281473391353184100969026371466041146525438086039106229634450008361927691564481875481327554778131837948104833771783242429536332544387596984380662843826521899775003702115906940652583140900107361543978869053304004978046232697945394481295617819266032515943873987696173044496306621312846733775103508974194838058563195801026412100527961692159343428872465259989160439434947910957617735915447925420828290387920345726540433504993068817644524100156921668725109153609759226523906238202403456460154160270173534015969752049715814503216506999786487272141712297786540385096816404469857912732619066280122334321152175293556467280138033895363939896351931083395813864760887248394659380616293653303385586778210467859244152599830385415992228495379754876412278421895272772679738080508460321420061603108538615221965464495882790084540498947948500057183678822171316456520213926780074929917006538312627308805218676244556382496622249570143171809507043995149260168940083910629310801467353528244397901564076582465789399593845275157888153104685363584632183073111822877601097376097200321369065263042044440909881906156596348445537081893660371336019872416204528820862378481895109832691137396922368056565007020673619729663021871611914805398535842719063095005241105833491221802819809035853319966754821394653910840992039296688269638050383992037743771052971463970380783869637648911825239509292861688083899543819658787826834978261511492089184464547991310729441969986859288686522050090679965647214862156456565048891595339490400677484979259842718629826183104500486001127520547064013319239694189504628316443331602061086485539033887703038609144754028241797114790567102286876007809621010408756299829497362288639009569996277020237755802641138591271786364346287841354836031155675944587904989633527970166108295597184235230026911655496880704058736452387365739128489063199664666684105239339730971048208689838861742831076078120481593665008593809789739234196100721219220482445003759919235601708865194204228985126678393683033911154437060747610199708346630271119280240172825829553615379138917339299882178976065071117946603127280784406459182086801954272698332455215313038546172599002689469197589940500364511135277084965521145945368100597768783323585980962874210230187635719700592546259625711005021815048734882211151360372598849904392038507778691926144078340565820373082805070374095345195451241473599063913199556260893259935140299415716388851052639302431290165359523210077013343344991068014636604516152477816560167111719043751885196953760839232179941177011219147360413034172281870076403828272964096529978956589937985030458351477598794072764608578900439436514786356667257722416131718100376643367388778444223830197620555662254389149900067593027705588293794011312523640434364584249998668217891310992719378918513143771067625040772675341972085320968442205650037452170248911753256276050426769506443399824037782030437905042780077301274286267867521828256832246386661836265181482764553458270242297994589984518020009420994022390312171757391015328701966025783604310760238384126972814204613681693640747774174282850082839705925227190838172252933177156071651411524914917774232888377205014911032935216694239675899591499315782973714485150534304080070861124653411065451055835851946865566889566080094360413734464660660435820480056198019096791412862799729979994578510680781923492708911037751250677011948250283021599404008458363910683686673843532870430068620152653075646990118379293736339923892849797304475403600426414209549696070602438604489625509532038004425070653500717064475184323678961504425603335479775677535066972887847748831247462261797489566072904503627238487357130828549801417286951408024153139115951136869360793718393409433462259788094587674949337154213716295524252314345391910622066046379456746860860573960351830879238260002644119637208386913289335044165469566019512656022220915127441590734402702926278156405854144958854912028431646422759028524916742151117713405304742518921964959598703326708233816347290141558133916589710956890912788896659166482580109338523948224086070854479810847639431556502385461047630584715242687163001507284388785585226194631945271610183343349997732910003629888575745113915926594687579496810921154884707505360956653042158949128884928652822322869534210225808269395241460582529948576474961474284891523306276623371889804903110924863135989086634161361343699471343767791995527527825777667334498617818747073377527755116329875676721745894532702595027060706633781131993006840074014880811476259033066020350711985757256535935042548141098473750168502630026585022119606837051306394413741682832570657978750998748666999783644548739991318465233816504342943453950859917138344339176264065071763885770022366890975401159815968330630386999874604728943704122424373657189178951148060307432048146403393218610644745923132659317626902367619630108172168363304496609524127666825478739234308778929750529711928495309306424378582850601748380586507116288803405021468960734474596361180356865966547473888365779586105231207641258686437673477922661253537595863263004448215011336992590451244052405864192782300481836181095615078665696988920683305026539876991361753096591793058921410077560300248221295004326714417398117934899087241887984451536225421965218691647215586646050311728703195299613959667146785324565703817735237037037400710668176124660129749043044292641136770740757602467150981786778384784732487809496257051153482127483195951854642124121900706896767466553044357318010987602227820573549333775959575471030162946848533188856832513467818447095534576566900239500045911595546703922525645267793654770255441413668449676456127490089436952318066574542085453534522648146661297413831259141817331349587363895558646895422745184561174511007817212218163938332086782868813907630681423188150439205819655506352308004182395489550837726444814339129496620620406179133788920994882509241113609353360247881450798633959622296734398404823742539331243047192577013329718790380508393763320259560850602207432343324712744121644252254311062437877780831914906774979166862502975522569988425451198006452873452441443252138659444041432171139793509202315536265056942660930319773972461039646971267846557938278795982576609129195946081513699718048634554067659255870854560777314914459862725284248919972529123826624959903245031376480982876624203441715928702132560823252933701566185711808583727484843781849302002885269825108208601591268988024306862147178088789398553284004494131713005957811834141219196116418562174018266716733452238578993318000054547745612842205857366385473157036317630910322594822876470606479873528689426581767302516248395021969459534601575385222036586539572097231840522138037356145359631034353706646104062022562179736786708618015878386505525536706458607958609432550274538510826779755007080399656651460589074847413559570307092335109838348909235312233719147238991050898785458792065602437264141169960478020523586059342006789052602711523238722958329359772880562498237927741382597595801033176062098920843218711002934079835852869824552493114112231871423106403351161338672112890978695423811701633509430140900453709510353055444850554867115145319194969635346941555541542747062530795058033074833889326823997256400995355249863415396831248683448848349224419182435757352942709082177024754774960803260408207523600210941646677152559649178687286416954682339608514824567315543734699901312086766274281286509022293277821893317981405457384571748529964092600154896917681377654252449609450809111874679496282222507755266730120798926181521786769048188241342512228965144134379175180683447153269407233820834602776389358725413560636536095630212485220058603659061960528886688071778290197737086620190606057772256812547600339645861439181342951282613205370919829362380544145840892056278310080770390812335445106039806790142396250406700434590152934560819076957212611032867458404822577010411912983550672415129556533755353776884396094143871286547216723347734466661985976676337863855296729394035817403796739373277637851958090649614913294334310949261532155472982569016436192651022413290452974580514831601414525995732492265527267095296609288558849022290935854149308270274042285830174154685423472427413115865274357910054567468632849029096777286418696310635699998811937142708179449016339742783671365535571055962422163406007206163474070480327536327899185315498798376370563105642073580023586931689077140781772500707767512515555517421132578266056735148574755873384140254456995118252013190252093753204179860826582731521240981473940657880400690626676297060398923538278656512810434565554081775286095262621276942670914513853792334357936691069348874919015227558178220998209263612782674820328133984023726219049093221696159386341253492740050041995279552556104611058902953003140070389313162938798625138797274857268164664674462983902998357993802353554695710164249930626060312182835088101468096875357321439518516278528437542051769083168068433655001142040860866187401518543374619025717668202820302746071440356682798622790493746916672011875415511415511051834804613940234952092379511512283985424646117714852535513160018335950483681436852154044152966561754818942017440377982815445605936485747458328242263395410143726071985338232274842141965238884576903928593786969040287048577679291955936338516180281547300399474607648840761912004859273430085140404956127261495194717291643265187614252233997688181485443010491280620787434071401326393391471957471924167907585552466370432644729763941037950840510358269973803754460184707624146065735370860572948322908901034696536501770110256753951524579342173515155989184026537911921572607267732417893298734231434087277977358449536482360100479257309512638940451004121521288184290894223162431874105857664479742228448162350926291229005082247336609640072771594901413843892581439815362675043950379055562709473516362842203266444238794844202368706819739490103458624589008484485333962496110668208060177746012343650209754305902478367520569349876797811634296731292704206614967164990085411103607296784349813051340094893181140489398961460279314706887992061725635131360009011249364097990995861039911457248327724297992327205189459607414113977581890829294186985097503777542332898947841645191257786389126209894533832670710401348793114613327636949388782894990576682238876900564803615538303308698765612520079764122873991855522169433424098930267273684957017647462409888288525692955521462025405300538809848361992526817855841264597948253169073847541166520657125788792184860659414028740328630088910619420728867591397844964994330426666380799764614069827710841279705475432056763294578112642297727185912806511272209245969785506383930189741760325463603645381234001785644141585011885503269102925229334641742548259724711679133039439795470740253883594983140592532120847173639957375048014361915552385972126188183936722126309981512290014286729125423933724007328378876107631037308453090870718064567549498461400072114947028101109916191541645537136363308549389347813978777048380782392380921303062513844764049324073708377823588527883759999727824670521367071886946529589293641568019644485915272876772478280576967586715974301009927515553928081584382946339362590871406979567607316306168628067915685010234981958001699082147687077029341617097073587667239003645210890723771058863901255124569170440842206623096001014896729096009974729175116469733555750495720246607342620265396083261021179741492488383714253180726183364224508438110359686580472877092767109245592127141254374689183037004429539156554016217261225818128281607111462606639222257407356495851353489087626133252046083947651420872608905112296084556255445968150686198804538145823482492767243396957345023730929160530366372042775851078699365232488037305223379161125420781690250199534263427932162875190605046770427118546484048702006833036364947442430216806036745276039875734730266975609427786659395868507388421706768113903311717440890679793785312025007914868580662545902644203702063224812776987346236796575916039668050536039071884440513467821647498146599281185641878322347971788627830359876460337785923906489173680278054559950964671289025104262559359847566240522172464759185351906489580849168274135935813392072036068213819945681627256566283708282723961110912177986539661165964638890292068482098808834518436807652010091518843056259783139445228881302445840130959083953931142135511150308459220054471911043751282099865596158290043213877823216920056785153755430668865947359597342844959348854533807341814425802554392579131756888677251067626736440666264873125905780541130888890161110895213505562136847132364104473498088745122288922071273420986453813034638119950202988849488128959571608048785546053072065016757015753798938162889285772919187153766835042251393115698522312100111944875088011000876587299252896031357270223235912289351209100077784230445439739451899633344040331262179839487939495276442494979845011136870324815691734536775930576287615626457897016900986749134513838195043371959929195276145260057323482947045062799370288410310085581447447261093169693071586377926289109670837108988960480627207189237703406507992324556818778858427722852807561095030029660990523719992349249470366664127109266628389247804116684151250724295745046761193482454944507252748101668052182107739294319599622410755580266722377968559928139481275245793944844401960302812582504858424393724002665940914202794069955863157984546459166506532245339160705250459094564950411340033596554863361368155986926595035646745898345317913653918001610892873238837669779189097195853990683682700976872038058594075607531543829378573417861157562338097880429492336161771455011843633399174099191266536119482737515570032778141015933324285950438074179359281393832085189612227411390249309756110369960437230138700807197461976677857678840243608703436698239302766167636584444530193520985099065342153249229771189474682427604016816890978315675718505460981567297118347653488330166135556402724428630474184099055731830154439058330917711545721841706745006220745753783209128126649190022646105162174874666570500174874331630515696642544889853437712905101149788723645171276106574109445113640344256773173063472148634357792098262944557360497289028177532669023880776941091633093744051439599530297726326197384746584975452933980526023167367381900084739930694402262620784181449047518817138115100716797649152398002408235146460277604836656910062134868911586528240064857800056136993223403639515180144405156782378592830925497468126907532443950102565752250009551736585541527144799473606034501388711299613731149719390750462327920653424489507098989336559960939552437943039758368306593418280937552954938311862460224643063962063666670467073290790418766552123343069530230109706287061359428674570895118373807115958016961464851894745240534786269995840035693503463140745047316668364924474185715508333767795304636100524651111953058767933843366392752579846008279693133800043026282107817346586873045296715969145972604435897888253455080806704483848217351636347233602584131287801070348455653693199479238995581657943828617302356971079783913665717744496474158914352652208766845129774123788916923131048545493177777738490768676128925976761347293401619612318159156727482015007339618320633183723729931982171756233898475993466745341565831292613465389029370299658520571129869083555927456602847215146741537354745945914250791613587366945567136779046771875654973790906410866428025969696616062621830082433191251798507295177129512413652706214661736059191721040543410652009359032488246362895489214837273606950879007601928216928513365342426168281319002914656424028696842088317234355856852124052310678691083631175275420467183963966385890738659104515137819721718156312690133821228424077124137971290299684220211668892835537121337340471963774742409777066957801017709018956926749350386535838040278839613120170939199562449077289003020106799143176292951040170554522614980575142443227424624454613751541451561880809661724738541977486769984298728522182289700979845739080370662660689254776754415790014844042330268910485630527247655853022638872903093758155941513144896755595235703204944833166136059258197236662279799979642689863217531746984867244175215152588890013585603683396172361510535240349644151186377581574981047414010575018674166849397920611231733740215854203401688338077072587824125721405910659759199514083522937985913956309497770457740941822293172900875616551438691186426239753262367579880125058561155819509990350506670451400899884384475935793915705588042041933490436222524168253334689663409934763424722312403668660363048330123926935608201392920769784627240399761070380385952953424095915405253402585875017565663010819666894486611171416242183814373961742785410255178722090918600839287273100696178424974957494900580151038815678812844800124095347868841375716764482499366553225519984846434535040469316834487089212348817817663481895151189846420533668487569987783777753520266923953222570743620250822523861317889504260286127766512278156265294663043761510511718754376624447983373724458746095013832415255850867447736728591366575656247764070051164522331652341966657356176758471535022649598800359609399530608094494274779973562909486669647295614140432985829544855526487310035744693412154270513160914761511584392428559675280618072118900057071993665109451546171777126571245909828648558374434202801909910611964372190465529201789458532905182923876536778325306170131352415482470868245976463578029003471007772602511563646628454244015167307116138949118677006331522045340460813647755495109781930491541507197497839634884255425250539894729494299706082839506247311626542453309386020935273283019340254953663379110939618855303558900922686770062606705894849154036195408110863710894443826253742804159095699823743041129209942832106403912227262679258450869893714517270259894392417191674395462281716627791013224994884339311110516246042868850634426274519479803203934886881727927147448968888002746061191069087521303290901730678670143497838811461097960443705491809904231370269383753957261512434655998171196929515276251382048635960406784837551413581035477357059528028156029692000594893853045220553260488805039428440771836636378838500644372894163528449518364118768136293855072981418085285965564228624716260277076926253241133960510000982140658336554384659279606543772674559196524907995431147500423785742286231575159881395733712743436240899543623089000572351819159298220562275438440253865402209701500936521090689029446194804602190368174525960946601699328705629072169683506527260224864398744516298966858737580293749903336294117725059914505289001182889693604850932475819225987956189349844130545960956355438966428644290064411172193077169203281279666526957806718423671452415887770437872096403222058897432351626261924685485475110244731987580687228949151021520685102791401706072027499474486887302047857867700345809076509027691960710486993591039507697321619609731104111742650639794759919148109277385573869667054246000420438639377713460578268750094614719894373682446066029713304335514664511862549367592780220269758057821914430810988627576079987104924142593199552303200257078934568193258653092153838508267267603457352868609411240035826849327764057818483073790078597329808677850641188187650508944541637145106100311944578042271413236970656300021002391635057326989142431872308027410089509532716730774239540517701848799341399641008622794604474472720495765507144889068392351541020685568869990002843948482772268272995621212726964799034411298119960591454114080775146224586158046872174372237406455655566617044222213903397165127464326346093908294115309256345380671847429791361163676627353482223449881773884176819987670955991973605826089994124857959613373020449177699179012342945962850367763637811180226579507276111525600135212922448247606351499346325096421383629240865962510318220581143026608792290974973266641443699543101068406279531931162559455873107277568922582288055222080488516481005089001568108245010430189618164547901240163248601236749776005241001391290711273522919268495442115852665979927932145318406638539285924468295736606026588590897416811050122025532354638156782637644058239025981803936647460375007374308540116222527005619049550407992529705973974965725050884202665624564444371209833224347933918386126051232733773862056641659334116445273893010467406910883136669685720281160144680484919973951540766411317474120422513282838785931066240306182571023052038269226453643000244929948124535244542905302931988024190704486737112603760499312402189433347111798272487101129228840800628679975474971879818046006234926416979379867219629727389798795103236830954505283185340610429652600728112808212763282434404277319951681811603652296067093319746824030272807332720739276979843929687691855181662170545488813277582968027972687801276017168838671025051844833234963906338394950208960889087093732723971105905268139746795655566290495907836404393053554043132621663625234616966914769428709823513299060430485243171416367824708993822571991331321944508088280688061865555547986000437420051458652625054736798018705992583798356444640026108775078617312950709499880199373234016931537453785349088925302280579062653830080094387134202238160667537438395239355118282813373448922415690938207428425384393397794728595928837650513301003051519589106399787552175042175986205115800436969922458427490136662880188647076769419720809821733341750365583010454296229565195452512995492903889954889799753409705719632431398166094265026505627788945093441299285210211977570099742630545214069626191845398053600567053098612746480337636516304123514992677563790778026141526175116589193479966896720461754069411576078111202614156936672861180626343739244909019549616033939832339777772489357245773662009852008607757079817934068761827088061381853379392125916793831999659182923983890627144947560484685384348763191873391255815589887485654597799814948682282995839090521544459781558669221656246043787221115832380859106151137750770953131951336782620838763205878635886422928284941083507748133266016991074185414513684861892266960056078652313152914882431298348910800518119434174081549983495094812103210609080095488324768783749528017365066157708419520283037122235261651386669702393894690698056684910707259414335498186683734533299614535684059896315415986904581756831623955044236350315857483538590381795661955105939735157194382419443036702579255706509858946894381446464323800821400244023739953781402190087707490029194641534079666209830503858592077511008771842667032610513981320584826136877302735310196011101825402662491730673764228172333802425023263154392257180738935634574936494734465725079930955562216408802120771392830577372441338849352937578641193848563623124007868064315127286722913620907637747478851875669826784017614375949080892462791678886798077244584247460561908754035851920332048428739412973429932585990041587447303293747868109604053657703181314749185680529115002463650509458274588665592051084221470276284317029152123285578511580835540576205073185068308298095396192661776558680185976799844581787535232219551213671419503824104500521675399319316316227217942786091334093378313242232920491540984508461600448112134401110527277697874030399220613097327125772160214797791280083299785063344147260568665963353064961836399712509855421506523818369442253025807866045030302120091537970950415896190724149989095366900082847749864800235081916700790797285319811655177876401979150861758386344882386422871433314771208347185432085616671672564738042890398064709036977099653506932665394371508371529631866376015962846736702905583624501108736345614599116149452550089470481937300468533298677920137772992914233539439119276934275415415506159782429672350639207941794682294870718832302758437603445843665348125232274098712189818105202573614841803136802042511773198683118549646515055147454634929989383650393283928439790971719463140720120506026960110519318292017743778860083115926481291770952657885706813734249133108126334215830364576938852051015982381194454722283415224387221274310631703205339882484341322797501774191642014539486404682635216309986674143486699757649598798760841906163509230324696545111378202230539392073159082385820146914182712758232855431063109966663733019068661809837296772601342971380124042013107923992062725879564287711650823901524717943172286975372126575571301772534801520501863882697775361039289820216356864218375507756743055454700058026440726563559420812826426266952096672762747909097856220442502671392049244765657299798289113009180526945872096505497426780103400456315316666330907021999022592736983590170346105682252474078464508861882049143224723506216880050065776418649306428893072713081592573454089551626576984815050949986956929988536710067009333217720822278914224293793402675278889656138247900334795798332283233504943332080395958602316989838591753758588741642180902974901322199201404164580288607077004596866321836919253688928836225542448453634357198860147954566540276657583657365088085013158044461077633722906130013817841620510643660604459634572601000705896834532377613328959861904834611877427453166186851095276143500644255400002668808441408537586290273737824387239434188379078145434421730089258746254201009819663088331864715113265783951529488182379286129213596188485173664121945351637303297233087766159215297892762975722569200063784527023209173274731081810099134338784257156636489743239981703127225973303345797006004001048046583846915210626863229475632260765451009776149443316130948688938457807861332950040412335135607637021546694980108839343065970883018857951568867871999764592833761909040872936479861888578698937009161989436892208202701906119188437722740740470692642850802129799990601162001732788577153153173570788388634543251886805731296253440149680297254714130301226964866935641247802494649316874773241067368285935471322331581048580674248159901631053473317462352488775944743894474714767584628397135175585047374455055836970668171631502140622527666225005473550445173813194136689090976062865278352343026281861641196539735351784646242526461768454563578553941250207990655351644078740439813223863233661402428590708429562014013158088008070422310664059376324584894474993783542892696785108774864901634060010412537106942027993972680399527351164046818386347586983278281632678336201152346938888760825549642091367282326527543473057433189172614155207187231238328421929915349053621172064440691726484816644709082232422963290238719593091231294333920763275580327367965345487663415479753200945061550307210135448193171711881053169053736531061680951181654624564517672789626096982583415910731466622411556760071129802397088145868356287315157705863776527239941470334239492625576325879681117223134844081464051086655858738764895454405819558034750034396093098349938824569458801537659692359875900729765789506544072809110306052102150812204247144733968744479292285711319431149141982926009394956272008847219665449928532935259896928089705783937465304921691985441238560806641465222737290867940885081435700614904423505169672265663330121146186279087357249925043460418622131561111041685535377334525429023705967784363165102284173542118550467913220757041541353954736341411472583238834569627822082150436399028284620227811175027650764736063924424867141319973423946994764291266817053918116863005914227793768649905369755171704806451677506548028152732842957520942027375462358788316574024964442000491051806822254233057218980546495303993689546098516578432599419767440264675329491997193930588108887163532114842172393208546994882534380266927939574761078725239454830434461467931083573098287627712161132357699026757863616283953981237477409373493874001701771725083259192558532354850454796240570675135956693451923312085996094846906331214764720055578569608740544714402424854432352528360756300458032376067030250559582536259781908008035546370577412755087501522205826191753948274426160304224425830632282614445117095817979277400340913111754235034568575220861729717441205957809423612673006527532018231479627426066890999010483595707308642121545231008289335001900702421086962846763477408368956886699716652496851611645296084038185610081774303407717652037793427504143853932283917779516885779048466823106838662036579769950958037530549861600121283009746831107670961616029054240891481766743583849995009612016910290792732094502403147062202382975012771049787525034872012401283956428460327868951159830244710214043806405566274835652814624197458441272309652125946012869728547311155231350271933054471012633539014409299906843318307474028987595940693421001836774803068508659275413673915955513839942608684065676813171333691568440254296924632307089050738506356902895404563217260022640680886106539616829376444951893296282671638910091808132094796040926731798766641921334881351269226687441254403196757866619303881016554152795439476855144031700869463561670884534973971618913054433496442230588682870210827746790171684030464898929694682118393873189562480419023077391914170069865817683611285857489266442876568168650513947046523825504412857732921305264056065583427026800689290911591039607185266598630200774739711588034098859774538345085450336651337780251367216982181304346662284860400470357495524038072292442389554621323354864995179503614836743605441614640113828844423889872666506510066526700674614037154667847128115518521052839515606487698326743435016665722974190648201261639386212214550739815570542898377646871652763063612426244849389741120891542320799002352661210112674168814416135341797170046235171216909861292740652113324986952351522727127781872365679227128075797408914040867460877499038522752182357748906445040066825197416060333946434184385875724084850279581706596966590818278557074749703022947083289825245719990950523739701338240742199100220459185888567804248595476715467351305341649851172963378631797820342752578865640822750125768842945592805283014299857893173106332536379448279783615237522191980674512405774862068917184901367479530275764185695637216832978906265074612593691475943935412402426249528079703769452297556762204705779330565070030437598312780879316326865212055784185334601643116115578412901153295661990448802740974783556258032101633167653834393253167069247253768496475567138640007643128669945849927628243975132318307518437400027918185141625998821411282610428924085887040929596894431930420864013312459902209190535969653599254934634963543691115432761896238549875460570719751577357391978014208980414597779610821806347569954072688596884150410066947819345154675855766501044672519342528235430425378988268252617559826446009712388135782214992065183816515134632029178168164505773718345973670649470194868132709413348113002925014270103896506791835085496381351661263733088879701555215745271447281929163648987194786501008647489403893716951822884296345132767509695311872485932591043278991291240514275986114873751035288118928662792240893051242201340094678423428191813136324473763390843129955587183765340091939075823223923327474193158632019356071980206206506222837431067607722001160036076705731656383343952937336056604101999287260522530949289235688331204034132904512889966550704380995370062700200668307939208358881190389235250163526408247693600622276164272140819591877939372154361839073842439022748301147984748807357344033733366212966099483841416547307064568533557503689103913468498834219718260902353622781490472407262020115915778320621709180857319997371659595170643891293986936049797976864326974134342812486947993117597327126611140830386147520484959472929108029468639313183388850918586530435565010533950520750915636431614362413716378423421695389276074729804428199020141076868667853442628930663501218616572746075957726569407493894923425485157611973788480860794909290271624044402325575321083097332492417441799009127339197869510578961883446431965815086979987861006197499537492606493606300604635642913919324872074597746515550215332869382031672254100768400022783278910267153510198561634213575012639574281915384795046430272418587722247412081812436333912999431720649223813490595290336307526058842386753993728584373008747683657242015091295536641229840792837391276079388977510658931318795119804192606858671622190189166718909745677086146757434902899493558866433346537224452947737477097432720249301074420694677934336547351341657746352268876892228114418857961021523922847486586323570924335411762604571620139878392084412326426613165207761000282016979302534466013590857321888549996667915866772315211125363043936375517452338707091121808063277058402006009918959524802594135178210890758179126982456504767547563439142223577146083149728654303745369289304461338512421746651679768446226869070956574663911211149618776242163330329015735787052857994843557338143082494046772472920041025782387385196864881127654810563935763562709183957935217177908198280304108337762886545844355768472710981207580632383843803091767242425452799924983947503555530183150716399055583031102424791357470795533145338878668710227896620185765427036154189410631400946722654726918315565064469804978884453918753365107605953815828937963892668848397965831192905671606930630746274540507819348403044497895950381111865222514758070044960723938923908572236215466511606403175618601901930304912175304061908461385724278369829732258627076232250554128779761000916569810425217578812119524366318496966597785918933980551681333215903219471088262007787890413070606218837833369791065708152654087419670744000512745606528021475053768007347133809000033490307392619794126277929647462884487810509974723758282679478420212059883773209764135918101157802069418896368508738453965879840840823610258328312180937550510297204701269797908449615307134794467767129831587068775311149572521296728611600458975315464391279602376760332137487411768090734696032720188353450916790773730090091698234913428885194495399786088028191142460091632508115622253505959429568953405187123176877396410269414526791654687364937574673656718805710714996272166451716694736328153687711230219237294300995642677288285366561311674444041085916749736676213097825975071200201466082595654729338613036471436218882953525144934747155394217292438188841794545579090466271060511235992033233063633871912215826149333234581443678434770338095723873331073624176399389982159400394869488117716324676823245940080173799302000153786322958983234550238068463210388816242110241754781491422375232039679644158446671563893415504164381176633561969991621546512581784349650133726209976609772393233816645145608116969240280239685722348008242239983018166017063883042758868841419988640153043454864736640545176143538000389995813421992849375588624157597518936730591150675831030929064313061889901749473131714000007168831566317919593370089675402796260048794132508769786686301042349536991817992996725932303889223333001753122793360938795030415317208749850418021323844160509845091872285309927763414131219558674163913373833755483281562274759043816627958276891870099524691213587029817555545195687076340461747441371978685998576988650584155836018566214096433832269144942317979044313085664116576125822915112051014449891110395838318306558841119771541126010925099680382692537069371110535666370050497351711751863966522845540862672832987524985787659385902865695468540962752876483333422076012086166153905604689172406425075183649938665941283408133153276814708552510700232645221462178046212421776000761711686706104304775035530505276382552249944994751363452413489150482172709012253515613529470153936606189391246323928928151309996028254641741801998510650851183671960679945874379493198178692161710126121510670686231609371373263458124725949083246461053159939906690341593050755346113349326462958963857397476065633163043957563310029294201121864661532216114607582681775126921472740765682156783137766767638498740697497439714501850817650287994024113836595212985437856498390514083959575893338438222934600634453468299336259836614057270843846859628654097821539413029595687300648396792389643328431256303249529056288868089463885144398539721912801299210973678238894497510835208122978251984606130842750783872618262063830600303922525093286004499915951651037291978191736980666797394641362311463279655334925072468342425669870160005434003500436400461941626334163562370279095523746395027644070004422902215604213816071404795912959729472186080547028188860814746116644208815439827606744115710125153347796482448505631677541018870827396377150277886186613690996213375381742092003305086233430518968945070067431618124665947983531322446435338762709655914543511537499606496248838751358255356474136663530590777150912653824711219940655832039827177786543951115554663815522164666298120607876594610054170748004680124211579057545357342947487987910982809443148229023864342037644598150963506436055511099233995103433679814721662196287443440871199553572207819259398504227876361512223326544182115421076871467359866203718576599638968369045937706941227527863702031839101264311760333989237061560992079117305060992337001625591900466910641521225410606434049636656700313931170523607007278769914298251770558372928973928894449273797442221602560642754485694034502540524523592560419272896769824869118382558546314488958046885070139971707854068979465972988582499336122008739385626098486623340606354846213729625145551744347588397325467838379687516113171679341173983710198259495096112140581563554720392776751936651748186686110742654147949607578085562195655761526788624827022601967216249522546366193930182008925107007859942238413647152331909322133440220251621570148419496378884315258774795970084705826676663543257392976362874997541501018321767988234163532498435022950993104679131806433883765010220846402648486435700451902517239868762511023073862490217604357207624778762616034660136388775470800806755704987485558831991777710294281780474869543346746374661637398773285602810953828193311516805203093214653637199576922936441977747624617791893540292173402008268708961106656584553946404575112167606126921375503663513954366396047897033011533010334389781381682244889918059148674664774083964235652997638832207230232192612212769317493243911185306257156995344710709246615204132875542239181065098108106071883823525323250268684672080499372599515600645988369920170277133683031085220126526177268245269972424056661028420187440362618569345405667254652620368143192689678358987134956115878474997453198469012062744434207421552984947183691802796411005110896138093810192389503886990142376666854495422579945859797840278791310393210889673829709377815093295844331487015342227551836191489415267706600315497796713337989096797507001913189916386207381218516758827512695863755711391756168271104270575648964469773054762661040807878863228352378163758621594371226940859815019446779620888470230067261428900316162568026770212582551374698015263699190214396924467763943977224466088661952273203228703766288155324970120212028843022479009320558726702185719272875011648051185512161355263362376458228406983543320011741803307758683178115011703353431027577736124743180416741779845647385113214486868350817307240131597348604590516022570577695976458794586491996692145722758014509875269638547873534582321251945413343236945668671622635917094035065135932177878742894496019943073776021488628694488514735682618469196648825978469704990434883483082989892742879092283374843004579482355148098301671601850131176333188845150688008260725747215579129838285837181365104679494215959786525140913954187778339613369315909221077385599705722229058977052039884995408408363715717695841914095698240659522783233922721064011256342314242887608940319335948251276354691273595310254997183555903906626361959506184451987525460921749755829666230930536936318295203151410293198069190238940416616012982111538737796983570015953726394029778139055040258888628035467224297410885955278659468641219997280372634661165608504762284705997804901621390961193212560091392305008419220510269040794373906751527629153679708030780112350934046727519353294671046247945199857732953140019584991728248293474019151366059500605303609302078607355808286911587807818021785443276449767298045482744311198056667064716184815419966495496323798052949204587113040199336104359888846387450318038388165839888762544841960575927156860939389931314657840701998661871454267764433098829387400793736899786864847087456413947578926081815467678956358821004077448076758321806522795648866517678703993610501330474599154733287623559558384859739086923044669899131617838248904155151402504141715506878210765118422130770080121958686951820058230561147146171040270656193381756466010320820227218922847891569993656737141513337631905633909323986690429198137951341459228800143541462465649759845077213163480785700363819879271346651044119267990701899739509843551922860433649011388029446208959641320203119431234676186120761545461215175183374733361144507202694772577203446219351600738762090872540547686245697409401064677585799764095683216354008140333153470267903335710960925682108044673150384404599598879580581207920053616898680971266255622364361469574241416803066923413712643213956742280054597609601314193512719329405702231716479287880907786031960695224305060138171682437387643486207097947350124990616377414364386427707318615990966208911122004913034010607065049629971686260901827171262567255822646161617316715363304353282730369712138857772694238412732479375509682845591010908720267420579888049336878678972235500411506126616954993752142566329418590915261744563578735314443772586260143793917598801929001256371417236230538667794921295067809452201413534471844588177308374905125064025517215388924629077311371945865868383837661948984597116851408947087243263262670285752338356522836100620248760400936630564848878816406116755851363840558310646290734670991064703571244549862768986125548763924931709473049382482875325680865960967583260032094444904586535979896196423605235993264174731473279083725684862836174208773555930790838605765375443905197538187068259657702868706046446547681683021771934507467740298665138946697540428099860188953155013611569503877782719594271539505304921478992688458591112339866461989075835249501284575316467926061331480531626214600500129885006929478569698899778465075543974879990242862900776726149648173046770276021884006625632726214137191080773971541092861100586623423228934321952990543736676409854251623025586963504234823363241934488137489837057484891729671531312246527025507970227784514175071203554037076396350067935739269010001453121662834722979632297302573387294361947652380656963550134726149812819534764188673420984225676655694803844609368749092403551365040209024412656526900705766259359631482042601140628318107420884346620719737624610763922849763619312140699374746682808696750431354627300557288929012074201368542684076952881713596071725336313064011427204897454751334239574811563935221426476312361577315955710370263481257763621819797314614100590803507742668188990188896093802962091066843036216194314610539341515152680698644677801798365715497049178686364666194414494996364241423816940369945825726872542778243288001073490067160395794410452308879499923680759860986777026582918786104731350467997562863847922108389668442069782454665081271301589532913545210054232209634420316703541874798098120274136455804445225823930718413750043740616167070911391575309516331218012144271384658723517292945771144882966816362245700010343982322459203989644163706939966778337601364893372539352777841664907738949471574310080576693952399898111539959209718879981058943414334943369000331156002180277208328919716007867669851913232744456875395564199931705069340440231388567118836642407902425376961026411160602261447968633067568105916187868723850584674753548497598392749088060709965619502721821911150698398152891014069910225461293569350093185346493690130882132655548549698871090147069143354297884785226589222285017164845065982975209463288456471767123950059162370684697688573597196129881119324632802031102848339555957020187458196193255573396110014298639456713790381341755471893186295324419555657762134925476741016542156484486826690138608891540149061295933537723717714105952363077020304787875617404467460979669871137570352020891913574034349970544433678623488098383662154531802358769488056760693042774382757336071075748625941305572560418973245800787506215671152210630952454481853178654797589186996951418588631978600313520559728762647603752938313156042688856520319441452408124351391707671583496977318483498595081064203567427758276668464620423658013476967270308051349141077414761694817052067648572236978660304469552686296701358972346200501331837845237991621909488580727259753217238592420714164663325278965812305932215076362197500879832632512610656951777745482707152011291998182995808971154937368514501406329449978724249996745335809727132287412148317140136512739155910183946033583646291090786876557107080213686405065061401451405523568805735612446945658999747041849585193763659755907980321900087769346006366549228750729763205143399476745694046592359072864448775179200455418180906399221115471242520074652263525043179803723773372667685819449548756762283443823575078943896431928839218684746288102248850601597901969454640189588588556588016926445421652845329728800928679684255980796720409765702418549962250262946601565994605618312299302347880514721934327636483032893059872655830807712745505766899178323713434482211954179885202449481192908391086208340762257957064453671566377184789916797813904640227394749049885664590752177940457544351445480343111130445588606290136090842547618408575287764910575917759274496008396207005361239643086668337259650191901510986890431163363110523041345466994161253527149216686186879511394241820623488548685799603333871181695650814718092880306619981668170492559886133563921995821600296949852318999128726977714988339286841863871773027045328440037990157042683729658017877525168043898551578445480013584504896814895440589697413121423806049997603465285746110369679224469616025201649119332024638303235882816164879064127681267523620258485549328859652421592139245694805258711461717995022160121641073425726611076623590298592116602212644801071184531610181403426175003197384970505817021934953133810502761979052722609266813435276516822691316296526195062656008057395556159571334470549504964532674324044938864160317200166007095333367524473210735172051695910238956337638909027495247627386333185892672251210611667864665438866732423114509623240924867238159984600013719219615849216199577590643032097412270738651123182166097778930045352373856110502347085494972820553381527007325294150006720688415253005347034971304558667153309754425717147050030327364043965061881571167147613242019516904747335453428396033609906038240543899276574605773913619517151506185810177995602351805707758933785956178107818653881557586892629729559638183669450375380574164182552274649276412923123377506702716435682579745518517355063233317582686354079029998995189500296023510145430577944953920725920064087441928745449348540365899188960375582191374821921439804727452305832877148623228080351205682582245004864782489295515884431114543975725721779472195437573720905147555887908569421296194771542213567751303379994322687442302443860108812018595732302052086231253001656259513209826398586692910625104330319818161148483849877635919802227911309872091601563515752808514893915705313423682018800868487996380478228944014281655107852031139428595761219488672984136357218955918704806406444470676044017560531401597511026874125748716877399012420804467857344812610607555378251256064734095160147853695512097709860772568966773108595263926103048393706533583891310018053300846315944884522160301752725596660522158709249276153641771890492268828902343881124177764695918815071273525310498383007060435367383094804431603577752150937294579114174495234601636616362213130549896391017878235292268996126963345400274561443485403290686050722222084612851388586991599594961854484043390501501860746807206500124126609769349391927613210460199523399773607675369559933730221808875619582202939256926509173966499598398323393024930750459791229706629033631870018732587906672783343688084765468905502209079660287654795077647530779271764892926450298059510324291952124804432469968502331530249953753311236624594823805354715366701793969968431656353528132067404021143113017434496863201253120282107524627578393218814477189489937086717462956392886241390798257438948764344658772088861148521901112044030523939115126968594210822965539136639497540034049287802623191762101785701117179209425403385205676834037677738675889491715043409332583535965259289597295906949505782686257578824226554448592112446244777715161968505764037776531857935576331871563036039483766297852791315133944845680831266127199286977521410838098526237347947394731341592042675848364912142659378853713461949380361536391305793209101036190115261157155425422932136473484123779650247959508952932045646364096737828062011343635921862565808705906786908446193961169920838175873377124544757903821297534530414045933611465574872943132580287250188795779252354468189473705045272777062825441189343221043627360749401756683783006044052662052162672722817368616206087657345398607383168387325449846438471079737949663873055409790288274353085372114405156490592043616559939487972818100781113691313683063676815872735994833908456728470080090773400676164340178620207271858254539044273984668402140499170847444645320099142700848125755418526313921115814570858921633225670111242017890578219846884082625365277893441047288437078767040813768040681754456938340822752643506984177814694060424768662204715741778482566768651012532055554956194876924522441496395157177364210361538678408137048866946235787360827352981216271098709188516926738688156710788636586898256488657097134930398848870854521079119365798568529217983366433151332568517479982037890114817556792380829911684903622051353654282224596619484964923946461617890939832929691839497912244578658300752306331935706320758246161542954234659617879371940026968290088411046213621136592968757651263416860118629485171170895909498684897669237031462692706625014734531577182099822422135716557955235839810414955454163645054896518913139632693975265624795921342158380495816844621931094528868629776282115695308114066003185046529679436403111239035107813687670700750101400884274643077573630624593405880341331419524763876900352458053325500727102137985747900935792134294206660610403888071015086361972265013271262655699181257054013358871396717812129538596558095274004704629549238463276734247339225232196847429443950881697983781376281539089428379981854469372250863619664237129976258262181297660062335832910292234310948401718622063574091858393813117523100940290720395796630586292380937039645496863699282011426404736182130084804761961147742783462059589652326219322646117595915511006951312964107028958605088839850209719641761137803967437719377848664052972459666066622746065646115944604405600010786057280630631763381671831721664118578339736049940212731688019493720465904511155747022398532271609086541801492965401699181983470267353027612917655045219412221565985998737190289382189809289089125684526204283595960970999805842700362368796666169369229871784265687205803543658502546710242111105440956646060645363084243197964209275513292849232670542399689985593226797289186660334340312673772783541854345668155017973994518952270187384843908424535125545379918431600352353465836527707747548812643701838518061967639363798581311504640010480814111438888481327111337120871845448200687090736240006329531507079043153200452534314049709797774927316972428109496117896721463802911410781433477285770421111200106821380245465044176770248608942605826280599209216072613751925560945264875926662529795159831554315778846271303498690103136762969889293270051547074767114586268994669850240355478531401640614005459784484427494982733842339151208657913387588852608794284117283097722171830043392820262580935546624082837037646023308507075070753982615570895447425246229043838540325871163673008836444225358594356198892911303704468584533699764647598028788073148867953177939792552678066576834204162714033333973497188849539893251955620502119681037889650627370219807969095530992008231616095620937819165620109501129304808545078958989965187191887714711328679584430587090687543257440800157442021033088211907342733441860247305544392410584019226637425113124832312808171351482495334571251080215180544760513056409761404349242648573697385387468637106170353931590560997481366736633937226005532982687434248898930457833514116097674277469602061951734984828354574495059910254219876643063969393282396165348010282320246621824211805536899160088711303285661553388543726493539739690317117889148927730888906556321911598006707839491376041763549322315876148529545548452693117748137005079121364114366731349625596181341299591456768307588757163397461010700093281290808449203308212338329699816438567169233169468438638525221384972388896217307573244095025465073187205961740318306387411492516861714136883037986443011761759017589295218225235094077588986213143386611560954775446601501762287858437742502332918241948863083227851939539566700789417041680138566863715003088623541921711063046367195493233642201139512147056479140860268497288704077110986289567658950440821706034917499785155844776108835280408062748166339320248348373892998943597740142213133051091970692950267928014083922770613838552619725142781245154883966329768031262735177818270931157630990082895281571936187276834835425538310783483024585986301776911425753677143930120359219837532449681158364085178274437898724761552810950895675531840317273101240397715942074643837705865797905836592920908313425327849927917738573298202726265163796386937931518483664025550823253428685873068597396117449514753564881451782815049405536816876782632917516802489994156411544217594303756340084974049083999150558901634393464759481819206934684202337577532186491816470647254812430003981837326310049484278932450725634596329182547362909389026479781338340001757574504839476320913942935812768407064961023749315772847588342986211046049179341180912412413673042910571148054442002226809110468590672231786938869715164413919277193495371819104195863533150225596315830302372875021440716763287190698327524932222981849321320053899121887418595421517516253816055223307225481828627925405485217859927904705282450871735372088685418080984505433705703454056341467947777695190381072124438610397989036652719819335203870506899889248840005845473856072820967489493333348663037778724725683144916169322728019946555685589352182474405004564935094706190966497233155796148888669110500525669283359572761306600904581846935210675757031277076986141498964073743062035267694379574766084416883874340437867726879390977342320942757574713367875217016474903327774142781032298061982745529071202672093696921124317589959825163041324249191764683254561808035709606523764109890699042211432239311480779245161651850817675219424428658722921083907508434511887751579550743169714066630298540903174311058045019404380250638495788547345444946986838406659854375982556746398945161516619403037462923106361002488809404581688679977854379878176976995691866064750755703159126474727040069742527325496304449721334724364833788434730405845962166408222533751871062634183431921719155306745056419732969884793825613671328862825218295534889567599347592823974840023983105706000642697641325449059557550230267353833442260836233354985677447878109931878688467647078555361084293097333268715696371658047822364114302090391430371996314759420227425010553759546176897867272103232107858743667250025606116290203393075872655850099391005090321963586868451486639953388978251491238068364441202862826637648857571130790809839263868444853987898461710779736013816508232727791442967997310458204034426142478872536370874838833403153652345392344489822889872705384934786242569915934576720937469328088034489079302684666107990316800135135362826515439571979700046301409718742560525608810157017870467411033821016017941062749706204325594397198947049433097460072940493574723258848798253932955672625984703254708101936022006931082977508971391369584936090406087752478570794851801571737692083652319354448820802578791068340849033445565677506208857586052798970917789480575097084867157487229818072072671036864356257362188274775784805801422208246615110250869907112750948795949162745054429853429756951057963959170212313685306506026776139698752729621154919459605493355545832420459151431834545942322708521059740942044371252577104048756294266210936820030021458166584937691627819006536631834406658895785739540520806283065121017177967379420403563638898240913872093124710528792613011977333897289869935731929908811152715611834425859097790715218401338181097012227768620507161552138793331878667253120270854762877207721976869583570701299729140969341639447644623302092611945902355678561164574018005525224219940300109065284709370212749107284576588468992101289265184593556028720242291259936910073534177752568139502279913103298964628760359841721784282879724608259893644726874120374084502031080937991451335838581166293881415019533784891690008611096842756164921064643921816869990588613046171604433902670753227910024852109948926210632123956419328008610294058901280826104745994091170770901293217505306835023574667197445653429923557219702403156475854503848792181624062893621486456847470152970806367047879682390117662345632898142121591105786260301168432137133026909384421557147406633104178523368634854651624525412906103787446728424690123631176066847295741455299477196395894340776044205261453607082071796632549074112858242487568017035666360426521093785463770999395673572098225570102806890267947630480211723021290998275276758184974660282914055505015486595134795485303546509763453802530364002790500415680720697980680031668310031214888931546534295385900501878408292174862478081747796666960199310598918204943487591277230991334353205979027361468970915558920625543650934586926282310020992382563096626358986658824653996623859499781208937955328599082062099584453034368450280610413485492442292772002264635771777476461396733545677905626880554373456034846435079699297640017159489016318185726079000948346592392607024711677980117108834627991284132791684273829922917832864971731954593303669358320176803331948354456041796830040285377290706787613164934044946368028399531810876677377563148340830041812342445323269793717782126907204500344588202211887439961099961443287524230817925422847131133543594034575205989279257048151214438812005657588408620939804640989038575959509591182605316202734459163066560277356187638951070135995777162780621131058464236113336821261453689839506356814991576236952765436725804295180060252940407914443926153044769733256752773631083540055647859968656706525164605968172469565895993118986077807007978687573278305779222408621148523115187806597240870555175061549917222048996776289981955813105424724624396134961247710277927598639702242661707253713487066345781752477818114897766357102521539712683150683993478321734597975520824604891975643380978193433705188117796097737272374382721373242025058274021007619167939327375845652468904473984535121914858093933993493862586262505303698343832782592421717335713203671319283640624384119983512747151966411553163758135425696770821091425212248960398064902364467213555282201867764185181676906598385389444375424784127463770146024359092723715604953351249091929888053179704663352344813200172519581721367532525800572311796250311661148130839924395494343882681582772701457877691860984612077009613750763939216520308999721477418662436517428179821519373264926635630182188783722334022575478899442274087152615129214976428204629734026028425839682403528985057293079591017350511873961789225365180760775877051677060372980361707059593612962315887024947905122317348455987569905218791809081002545068574290684790852918162935062784370840645648610291958487177326024198215760219148439000071811323013802374567378035952005201227325512121412470743926810771804103660474345119365888411203833130042515477172618129031625770358016623358023432300547417631338773381759148053799404194825718367153009246731701416308968321713708931105344929632756406995288033075264639580261870934411835495000733545294947102050995887429639401919329664136531025757231569772388256435300040857029077537391882923084479732477260835498080009484200824585301260460619132595870503717451999742522397706528120090509472167954780096617506883703067927774032262983755851925313175986932767237173673807704762831827027850450721886570482846765784955038430469953032190713213582667856458264002053590765661276744119846048531242884018153531592410116862148424391238537428040136579300666962003175704438208892087425229033832323849758019033105308929308963597894621802286609689977770612869148958684883500674199074507319374973619259802241897707900856511902868678572467717211212557898634598520911366094402261648896844173217603338858867731830907125890656505440840376138983554109433143940877140152057547580279296453378774586131319869532891031529090980737707797648504897936850628049965462541403205014309793885749381526338950721827734118276668941690970277813152285927671722333769731187097861750157998762479691332027987622393554058972518051094261274415791070981543896217536419541521842316584570758685980424543698313248760730676616914565205065590238619174268830898394309910654646116955747732049998131928998970195105285516006995654708004489602964871117126911950572390053036624046674293069377875832695214590501073118894254955209365758831588174396834035146782942775677752588211798605577643672626157881334395677719060435597445684926849387918294726562082751896150551781406055946687793703199654080876361895024032324493743181274075525863206760223620885038278930810647699980614384782516856344398442008441476929040095008398691498220901781829359578321797724572324560000386942637723206077201910545734899898253274860123261363532251220803962934005365706581206826262046677384062292137120524324277241789388116716458463027228313070984525806182536242128852969765308726932276985532801085957118685117762930634503176835303704143075471813907423025611772068978749237684764467999756532487017640934208069654534112598010545072787970968740199562921555107651075220496683170145339450455681738746802292522226068745792918372474110157813252525368390838903327589701930553559487891014619243898126484742784103496854025896045556858989749986491054483051287314115425465260881148916042351882431283921711569743353390861729495024851306450677475074679155883019584667490116925766509698075631907169332390994823164924513561835819148629499990457940589904820688580572360145297673153980514882136672763719214776257855054807672614980503175756325742008462022457369320422437916431858669279927816461275330479785758314218419867491577787341472695165522170992956564179396228620349625102389932705228115521242323142348704510950197855426956884119141412873695641858153864565253391325348735506628105357091806666829147646002741053047501425117625848344145155060514712397843387498359090723472971221200281492865955300918250010394856186869795460286180349279120107371619088185183931738242065196307469498045408160564793707266604357650469389264120451310602241013904165118284933182548800910837043301131389622722594595578067206488391094851282088879049550914731531320899518640392284874115787222519566937751288864807167474179972227294676986179166834153792149502549708213670057263570612669734121206953628498184192486367595208364091335464886571429659198273440647606155439123497048970619344798836607730569865610751756442513578189664234310715257556396997476011155689319011078113047987863340295103149431229310245031222156345621102895362385849405586793555017132584333790794231301486894535636435343566904385475110665816753020219783116560764196686073108497696528987117203391426408217753883050950637485359515383215497988515954721792507763006312105894163192648056693383681195241843331715991147941130211833971143801496720038807758914114231001049907466218648167015772442881798547058725565796895485983982823869248839631255696195928998318752233792771100290992179042044590736877914746172961667755945768791592463866070723846185983165269718602881189001940642148125124916908234622020030531430052223103949903100577634850603248931971814105402558546244623661096699201818171996902289334007323290595045581816342847346710035390465817486249615344117941077122054473957392735719747563575798624090618168595640842693869790035615790319216958915077002814552032722842513145322605671791768432250907266028958525803139300334535640325136898756760076586246876519820899921227533798268846416974119506254427559947345250454669395097933546137150116976012706360385082353445448525714420072867650325749041369018059824890831567735186435692099113569508565277436066359794431906614991995280587736092067764591070896461271939083048737374447142263527548260239375938670641284299496472242977617415420954865294746070941431242881780926974268345920152564084634332113899017190994829960404412894426233666949122141591766146774611853615946772409873323550902129061500334553703096169666237621859760979286881563863812032127481704450240976053257521991189453613137407025439759588332218140893023824055962646133570119810097969162618317875119931321523167523706874339490907939191092559641167487756307689920672732683635402887354056253545146260382196952848383523266494998728832946561012560450445854654983498524681509692378614603348489475502172680002926593001445400779641064990674676100627336962515921899546781442657018513923043745982680624710675357823344841165443427360405868617640577781834651162452240757146425138775958674675332901436633784807653767378470285264037853779116812419487416406462830496758011023553277535303265218361326249446229242315865014540952326297524431593582711208060968351537596698070775842998561304262627626677012771340191778250371096719834032572573559701579078495190217733868489588668339945782805159419028691489763733167350717417186416608044123932744413072024710634147589130039158642335322994348244722440697257570043934954112631121269837371383042590621144809813299158929996616033186469201427810561544532900673066507042616437539213657339206554236663379845724386601776173777820189798452544154559328228259413996114032646542934056278799473322613004607102539870727102838624350113049496777366934792983607088659593807677666827337407066801626802791211284470912424603651604747287595861101921774718361368927054081282956427121016385970700116228870818641494326627405593266292532003493988154529253090231884509358288525700848642920939782519021587502484703123013056465637350774085290253291404708315224675532411558110729189538476102564734011603987410518926577701388428040768282962573996634540306412152503295837996969952113810460209008831990872630281911163938051369383602957641081704354092754777997385704183814045309894113012625597980419062783360688968268985686232715951523730232257154837503057143695324282598963516772913707184440157118817561292186117158184382829944424744411793006166383256367020810536431505893033795144619097146244068570570233775997174244386139451011508721449800294148191356055594771888051753299539866239456555700668764763649478194962126593471174133446805210389498187789715025674907394155873866242280607404764164120832499340475763899925112375360516774641328789393518258952265974723776371923570991716261965991864593643125429328678384127184680162995006456341118534062594345090834412497438196546129010324605885088467654027679456247903746924618656758929043411916275768821374476529573258077093161325667998308418613652297751765903878181740219586037918786018974442057498880014756655063453781395537431376944100985877360966185535129142318478898825710312706364899382379056218370144963761605474147904184486704265513597430009645003585315700672143654493394096015874733084440482620124120624514716258762877019541701175787527085413117458128769268124074592102821058206287651041331291175380071613473925974810019042618583737962171315146266968020925175778046667327708468701146691783750497875020021455159886751718031326755126722339760538863862818273539242633386906639063183045957216182001968688620875653701231013595318308717561208158949196449163191846781752130309369721017217135271786673678503679779414911015958638139040459505570089900743826925568521372199410183947071351614350446159848990588468361385948574278620308593877832744049459000427208317015482953901946931272710396191429724399866667842948505864477895974625565910798705840873460125276305994057165542260281949126037035046849802630486009585011997204856107807566325081928166369784141923524008948951561662300110469291719634976721178129160330349518186543058594129401669660549476162364731987888950990718824434368613172858933464493781058790180638903990424097363667495039165530581460078688297755808936989712298368743968487556979158887804320825305676420695381722736574255078023938651437691951229636515812824490956521956346334164819098071379423817022274519530047708759115894846564298724171697271249210322418536719032215093777524486421441404407015280250227796457814911861897126856158538353137118544928524589700924453904802472451020502385777126413822732604127521052189810344502782163974209743749763526258646449461032695214022674528825338875712184355609474141609973383552697692484722773785201286992209252724668144792160595141089437785295826679093835582004896363467262094729876242611979815557064667610050661689717290775129621827262280617492249661371000751233933750687330992201525877330831433303423328194126403173160741102328816733408759468031263368835863491594707131909372767886600338660421346693299758122819981746420921361799088268062568365231715397678527507448395296075179921583119356116871613690617087893460174568896787269875116718882489200562129886928477220302340322079552617159696706879390021938117746446635426189334734160827610462785835476363527919719058337715175627407423471926839714446944618599128405763728744953580180161829115059031622972212359458680547006969207519670733958871599987712352686892808784228089614391953969147721183145639261145996494933053421183854466028562508532502869321781852903341643886030168755577135090444210154602544504397846345399601316035821547431421904428341904141454775253482427503892490890314267917196187466419767601278977645882490599478536444420307756104922962839393741915578864508306893224880421084931602219125798180343368478435622150113451712141808631088844305723648652942207723546963406369432809847653659903916946299715556014162310095681219420215319740254600789939585327431187581324218263850093995247311217884781208219424644563428422860748834321297820515021721995510710415904156815090196407899206732121055341592560696334043344129383231707282287914561402122869308189048136448004821768265139989792566274072603564071300060694067312484150256386434093015078028674790094012234351105597055945422705624952574381058394872529949279847701519449108759277759786309079144061074595055811214497898200201101667278469977890733499052782245674358253479369819630491025713120233022610260051496080374292413936149283289841471471417456560648552673076441628515359788930542961011183980751077208576264165069868530185632094622463704906443069123913068735033250994198301669031501644503323463317338549177940496383249975273267103264862128207307826945876546075326691889582473139434818253958452567952462459636884237946538128128631050600706915777324064042350608624324831783201382722260363991396298117781940529060450288173694911828327462181024246680784960326659947291398418471006530339216893687470666480870632009060442090176389468028292026047151454040689663064788428538793675388045145707613231006763219491861678374886365205311649487909355531456702558975404168061114624618888927125999035084983638826306844986813782057008354384362145679033906868968639696768978184835384557390497129447433189180039823285713010110621125559174804853087387693233279944454779891965000363146780329836420125175780835783243033097767821359783451540665099789649058555037136158503047571534867771595243825022914146006054940911185068677659254482600717021483132646482232018459117032396812415850775233757991851851686573780644367600130724701327021117470357007630136249501381628295480927013206180949713422234121060876458555917405663940494173508843763187703979232874577231513291167670720861879453501122513959512844264475865348523468100405698402568374414510493267184811649828414890015396008733027780397020824047617386748134857017758140184680251044444263281294130921590037401260809224186746430031328088461206739030545019001383105573264398557339856196932879528356469858817636594151729089672872298717784229071027668602213319639943399249155270956389927383082391677870285892197348043113696000388247742104462016415944061626620757840618337513296541280075177115897037052330309586585440940265598267475636001824611291050628078838710685494813937171927488014946453594374325131806861312007964923099944006608128706866454116096943748197008738794857432829021231569714824641403679458847544136925006518801891182697416859433310822257162962120093939068886659524912275493416195848050897680571532231466597327250026554791312380591950644354775991860987378257675614878667721667573351009496452072365946376843369519454908133317442810434407310723936203239003943014753650152550661624160935137700898415962273041707395509996506446080248606625407844690141410782476094011509760618290183359215368862257446485004276919345540459863379089110781101680886311600267163411850003262926381258518005068087426296307237831319431735656057375388488225451390015043945538305930039958177389345965205131287699057044337377252046032121756725741757174798028485144932481720735864983490402111183887334199960875326191404747802348388490070896752480672001362719484412663389968400033725305712657887064597222968336738955724962166728621657490278531420494722292993353537818314719460368238373264662534768017087994753984108207302587622888915274130625426139390817346833440981122548559961037358100809929363497908737406076735633828026418424626598279029530455362479471697200622401983317339084290117930976154709658620534867450457744981971474306843624545028947409188351232745223329042638478280318209674608150988661341037644872658636817229241391281033415700550065177043296613436146292766593686004572933155882234633428544798251997745887250827883443709804159686021690955419615155344098416430362081549161591571388298551662300169191949692182643921413503186827792139612203138671123726465112195024569405600269614873162105512335871351404050423401316759619576667388300875711954215615136214868370898805690554737520303533360768125204435215443538309872835685486198098238482644862686987518027562747698019385465998373785333969855957706438259528638574200615614789772211390918825070720201792476872683211277684899125458203081628709409778866042308340037717312772922222038121028909363809252681968614516746655084343317868422567920430295856440890754726276687655857882460940030623453014149173638695738237023726041108457584125372259033029969818003476679271515347129630696250188741732484215368614182114707817565489079003196881308989187642096309979310376695353444331144562152059179677959410116925978318324033759561062792666883731618288709341549182168485134565627210091934946723719374530807994468245389537046822827709108985390322600642560548958973549227390670713852626653441479872552481031034167111616546999042162442114075265811219856340100483857492693320907120531204455859539545626746400194807069042920677295841898527038556352862471577430677904208998689012149175278319192035081825981840014100743616585711602377687007020055292677811388432718985560667822679089186442021997944597957680943592687055774688711993910159535970961271576184731673545324797606661787731784834223031456862544242267348840144447273937909741316804379870502121297429146590148335100109669935082966755760812250828897301140818943523372836101867279848450232803041748874334816954202877689248994810041791345707637371522872250104571682407542296841142906714206793550931016846203663120645206287445927925943988434066957274437747134001974139432430789260173610366166669960397460096501692821475973631307271374597690094388550180844124665001717496114501051477475508490857287065903892678499035129643145184081272126679918678770847480075967299384568232060185450186413898292854382983772043047442355067633719342911520319653597155916704586575092961249623206181931342227836431498725739458629217670370760010694290539059215849909341698828938592263844730717877415423254581032272215915659911156883485178796976951840541696289429170458935445109899541464050616720705868534761218583389421218548804116457206814224778579634642043940579930009278643165953906593904118185775006398386383304835235234181097375014506852728415826093647156168823543500988507716131987458932036044500527743689331367339579516450261176475270980528492705428731344791935973114173451363696166800281664346698428663212891301629585236992946237735367281795154430661210574912864901454639053572854995157017687809036858475300077252896426502273742239658886927042149234995341312901995373453633992743325487030811096834811278600433149213111428577082590929799342682130344555484963069987169054617056894189520297956869497539342623174614242894944836874275203972452134284626886484912884872581380765332073509822607985001506956640991334000836163614586615511029902088396327958101114195412771306149615880214021601646987400796843507470307811873084582200288898306312331068435960577412000000251489348508888681948728272753931172631665631946185061154382678717451582565245010616072805929826993411153888592916408626759087335114043130869615754015513818633162825233424868530727333269316301284485857506332013091904958702792370672615015062280827582214129191446178234191884854662312535916068909971547407447891708860558269826953055623307896552111894344444828533263339529542821188094810735853356941275814939254235410676342033571647648821049957077999163392587750157174394347659612194415464366198825221297534787397481028177612889126154395077998358760142097477502273582441560578145494166002723521918475596485403411182008234030702182762186837261102645582290280960911219754165006460793887049336130109259079202132097882247240971453745001525202945385643763836201513305303962764849539083624274850187001933779633215586530415593050983008805683139458704676314625945667285166926048428613989316644164975136413528307325538561892132268410256490205909838150344206968783599491523372885986434336231994462808844918210021667846550716330395361278524692155802421524272336331126769490671575245225557971778335690336843242443386679673801733976787838118235516641331134847988510187492149827468797353362116521944251769421682566761176818942428725132937454332898946906747303606316246293329203334142984092273382100766607038293731185497865893066647632701060190829487960622426938435562489772118402095409571842320553932005159592826390294793575855870917008000296589843147793552797556937438272451704543033266041738069994929257728332067154849516658043911202531950972879783329673325945628699326782217188565971263730974564717600975926304883175611653071064755001138720012966746267800889322395200787209968614452719517986786530091396457015248807547823425916854157017181225744005961249781748092985807728429816364658425650858485993947252347775849877661664118094488492295582202077632830635439669802212518926042610245191742906213008785787311155847522571121796576149196771496693073992358310793762824123638865127139303370968659327063705004794544352636279883964725361280945010471893656715099067554026931372145197876353529321567040298736135469475989503520419951261582400085851278393866969364466423085269339879314844453497764114258801118014825468667247335639402820558831673750507044467485077868437606722415471209913563957533474762376989749267837809812838011176128322563328620997604108120339786419199721754582890430693094968080261378458630998954942310629983806099091824873358386141109317384934244297504960769156181307442979230900671159034189290724137175972514553967050610251829425678687048272012463469309177404254607707508643349689227451823077611638259448030346935306535183003527326383172369629857494896478519760022547974251236798858243426234015865872585517011196547488857989868253746288501977560263795339555844722622599660763368265102820729861277355133721509525584391906997110662646971670611537232945098341639392706846151909232173131057758786294019868196751516366419615725171332108221354807902482903771876619778733350868832595144649516343019893814629621126934205548528826222142360399746643623033321285639098010158114113488909958102372021699294888623799133836046037061460845006760585288061303181277086332101997643576732095206905460937719521174216620572777681935677509886586435941569060126104346811471150436549350490172198702953045316264520447849059772644219620543566897773080556619636273114427804176795322777178515774345594233890457310730834781419601138277626207323705679665246099651027093823313716954706950959309255736425169829920615215414120262162432626134213059235078536273891078769449968591271264727421956211988867655436729482821037933156433134909596398048967900143120905652908130989348561471330988799087166658428878950705767566198613772855105966051143310429947895443042421957214550071451239060375870392682514028674931222020334865562601904045077762021261732607330703550828858820045058460415440410389125518325535533859347442256588094540838242023718982595140221497080128028115757465252952594151522795825613319663827544574671408111989137900561814656088396226976394848806202454628979285877763131265623421452186269621300204653359118883742004016194375652775792464500632230146759023481526859184792515865517328477290179004985625062312169159124680165526909420453204409817216137037101324346893956351082072207723801512406550700011981161163548559380444823252733455668777736890296902637134449613566809261770998491559781905189830093229583001494869561237780857252797730604358950421200132116962569744835822179101580209649675829640963907308785806793451558973574892165453043453379033658424030499733717727443897424146554173036825524815134169838910232202336034468545554357435540105807248056105621085159465090254830458225303192235336320235639379982097294198279844498490044288575332588547152088462491684437113997756698343074288404733083762954002269173586828249513223807910223310344186055775680816898875620622105619708365141559376551391239204414055169558218795339854013199121530864664672536970493783368475167590142319048712601311196275820874352090242382529622891923458584876367733345490515530895131614890945723026461279514711647501460472693453991174200802552680933245796317352781806616880231027785748658596981224379116575203889192806783441160861357318772320227262712963516004932764290989078100106783612159020671616154105382429242217391983173799148672262878799470749302704871473670270942631120706319320474127880035923573456536674756645778210954262323717063766498304101670092244210115221598691543907220345552468028553348531786778352076580204089984008060078862247304688952422507297736050845896846404986324879315842546453984106528903071563575520563721091275930063532985589152768995989524553923664285615442745287388262165493464105008118386058687002780277576937824503042354877185398538466051116591044525120560709554196017171321361882757852276989126992285581576011637898496688130711411172731485659560909625790786705558309700769697279508370715253690977412755887161623022891947409552794529033459570796451648710504562405378472168096150635340123509559103497105453852126144044167991351455965354830322248844923444322902371293610871896731926420811529481994778051252945717998339940834254592704930325216926452026206229111223040870277727348443193933620497056768805078445884179257945061431863816686859104068851209272810448951183160660839153288041466199184833338598092849369353844916887081254574579933954112291020721852506596130220377522794099482416242140075084031996060922095545436133310811395872647087612768437425854663182911196376275481239032089369167288125189894397200328839121477208830207732052293873101589911245794461273571832279897531587755182346242146721612060298700764376518893915066068225717350599986397315480575579794373548410766180890568296323537060114092231056712085785849417155802606855844362213770350240895487088812846479854391934705683483507005988036515702217894802947194680429153806245109083644057260241495174618438243146050680008464030231389519475533951877761821478878947210556660478174378210858494112286730203868805130481280823764718152100445844290975093521926595414299025197797156532433439386673588687721852227455759462855157150338185057030480032297670565662173554412023040530059685886797260303773786177105537115306184438073590518057630331260781582247582038341140506139147674757499408037403981640273169640112667000347015727977457503839691634574254217584764425486130521907520869327569499498213687668219870004951793886815198696183071172296594836665314105713454278767156382323938529896248793588703407642795628898665590333804980185743212215772526082892226609357159413200114013705507372902918866852904241527650335533365731822196759265794058424300918356330101715325924920948410824254130296140332194455397218281295125504037131058529717000147319530191619811578775883573376362137401245826703257305656757958988196051930208018879775710550033583785054055586031462740749425245974154779980350498791156610318120909323239456150650517303601259668774344870991387900719295072441809827119267984736975041066320422839340600695128526845015774657225309228383152997412965099296695959459471500210777121788384389375884865705226051127343346865020117152056380477313962692837053323763013723167830896911064658887860305276717746750726331304291285641258246147055037460734174742885216032806524411989662135728047325284736857750586817861692329695072899741456655068803544339979652861002600359354823557173452464780993793540447555588372366632597446686106511724633090921058004862720116716189363131066920985719771023996040708450620471109449371710287527029373895683100761123590597192758034587690404215004570313248485643528058004280890599259198109458568319859900183627532698053066171788935907406659396041062344901502413890034041408849895129749448866125014900245292809538270610564748628560766290312499151758051340356316460266120310043798670520279272039840821973349159262626704775974543044422339628682941107808817146929735345806242816273858465463821931117713630722541549306086775592772241026909122561145944539890413995291735732365136204098308638049905495132173336686628949901165432507031938785078624076139005907713818495455731483407633951000113168630795921513300345503450545410243078973635896955917057740084313144347699533409650097988045426169294341389997033561286677190738156150128903809387145752638375848245438373051239444659120005827210684858412669867069423861369615608012744138368893821663044512553341925711407034574230629931307758944958172547273724256341216073516164523658540977035615003841624911953608850159474734823354480429680149115502476068825470722183390602306247677857814847022331670755013497729709106607323990722655183266220768356293330622274967318880007016107442877782012083598305914164000544595757558972571172748619475870611586786954040132112606334739622691304294115764691851654971436500005592485701344671491534747434789663614386017889305470440103682959559789246891757384823679807777624494913561294063467601223150566779742607963352966459184535267818633835651763563854804103054221162967165464960657609136468373281741138642388951147370807816410465034777708172415583237963244256072207903235485176353462869003074778627892311592273832053789395427328884073573055175214316134162944226392555232155511571981995974901296014506302685939146892118907123550132254498578400062727608105078367534449030759991316103191571058276402771405946440700352977507951902205768138537580451948945682492135157759922038816961615126077444680281157284414545193282701908729764468268921323320615785921892748726582757663071791658436913192053293299823707930644315889745853134762489935278950023897375334320468353987443743948831048576715862885789602511941251870113752892277446644789992748560002205795354002939714656737908924405284048873367135512310741413842366592853976511099424190638157403641007823483821113896989279424828097692336838076220938518297153614397015523774533074419053326659991957600449508599375175424291686535177124359757656642796611379172205368890850543752001076460355603861920508316444379414775269544415194062606402936588591018562372511939119043755128886083910951191149889539597549059741302435991389408421648288644532814921679370038109108694527945922650860811515514711336360112865666376755864840004042837842346178656033554008710288717145924763567660055011837030275347800736158728617276605505033607220228979078849428685740209749645976943254574554682576336526986389963518415290053919962197416103833156372427867172230022524309395180708608139511155521348823641909860419430384733812989798417885231206892116354432929968225943987790532923550413079979077042561765116307207906043183613474210373085015855354603593896143258266683662882939657872831073283342724354497481311291119923462743105598539823726577988306132556580236727366572760176582860928479499968620304108362664365449589475217955536208455682931005191789848347876507466190759431547114054777638302544187434294527821186678086352426030867563489859040489172761935479413396955606278670976336438152757735795745025070336088898128269624243487624618884528587836042148566121917252529492660587746954531904434465515286349017244912798658626842820097046535533503247010487302436171414623973170447115795625911394331434433858651638850542216683770361089501635792564479172132553293537616686747910795616951027156577114383121455387692046158035011976743181933146527925736563855197287617005970069381766683179070386880608365563495993427569769449087091313095143129162165127001724266124399422496135487999056107423224950073738283264646116343487898155518347945056304030291048845365934234424882776157810838788040318845730915630507890831432665168909679923263615013823151385842634647559761915298366272147434866055225764552048871533368684726140017164679632670856967775628402002481674339708602437086305479418146806036056490612733320433459349346181151158596854891612521091487935374643927112261039705740255427817900260768285834875562813750422615658952401362049648792546687713047741613276708370138656570820719222236532444327583458389382910457219839561927305621669988926552353591846858034899973245345670337459365131940178967426586238353010397154001076663518765160360411312040272123993221364440839876584499290485581663760540101005337582098927822152929418717425486420020551314217075599899539486725817687226529017728514858389408516427447060999806192206955260736625891352118359898481943692934830911013761432712016174044463551570999057021893928536226045372565038218652816945679866023596551606280049594257422430221723206322908266882127238543261708505896403532002563232200754557564670322433818818841086341822241032818664902356324881823980205762632100437609197744194907592963627642109278658128105752769973068977659855246878934209927169490560510578402334744874709787153761674827719713249375948720563997241173111821088434416489331509020505036958864300456237491897427245850247004829722676948539960105432027602559772681757098525845554231936870189139911155619932402115973669959022352964493119780069624077916926491059817835147338359603112500585684093322093784708402379644694725022957873583754528680865335541026948128491604239986698273815685154206558056636349667522510081618900426882083500895201209638234805744533879115564368628876580216968810414929966179687759380625302960409518178041893918525702621920705695523968287594064578183054604331696529098167304985539916268814082832486447965663102006858969713704230216490207422678365130662357275101021032683703392994162287320162636045245125551917643847187651764252698165297338452504226096057684108525304907500542804102427451771038818999250048971815612982345038157045088770530499829310571566774020737964458302940429336117216964708586819851187890781043791464244788848603368700008845360853483563920524453362176228338170098894974691684045275545332022640404720584667959960043673023345359994416868643170366007213950771904009907830555485367988535663435144272674725312566396483607763345637583422539621496869046763482290166027854341841153974902247273950270428405809716567898052843041113291449016135966415353253911424358962703746254792409444079471032231054549439119283738204874024514867642675731173698236479455371249230123975816198480636599496523490812072669745029639100383077413258150527562693746329427505336766676981734058756955972001696003089712862973597318763714511591788485869458382536312873355920048326531798921513777993594681122389808315956518837609113772657518746908270594732505382426790293422890147952284605499483497704999794418646329852168720283021556556735218606606606394914362188665907436539489284076226734406370291431227099155186111727913354066586709957189996777274643517799050102801188556412974388008682693797314536462415887351674215882238458152052228838229095978502154138964755462140125602568994129239975665821589546295996703827591483627022081782843014578549079101513629681686145272074228832471978247860308181066518573019871715130091351022731961272083107159314197553737632806728339949975903463692124178823911302466280053627078812402594576094484544388178426246894678372449003255703690072450160899461119118934885310349087371676428721675885172179563447947832372367768234966059532268511815235111255274220873411090645486875109893205843628757566881355996797641184856045426305759362561127063066656147122910114979890802241146136598392873190342634688756396014889154589113540087294214265049719870496810839992790860399846813523319396947073696177042450161013960483294969602744277935032794307588027128262965785338678485730931476773126746838124142253318234548802944288069804039037357769077505292898352287747443014690872218812342331365303711698387822043285273277821274914934347584827361262511088947268108152203743465504787961200233915905091302252101758931656754652564130141048958394002876516587174224743293102392410084297433882918897433771794616394009929909460119194996846156905583508115128302001222431958948684533861742988143513900848097071845838477598003702632115433960025685490577336740699508376140143756114393826138333886267303865970162428572311699964377577856163576989567146961361766683844047122149880577028606220920226702872304779903305780026155950050959732721162039384714519012263067883638132016336834480502859736029394828995661332297352612110444521595572887703065567510824592683966902243376570485786271694915101643917742284751976259344073122127716843707685079575605405029241559423805364682142859775779073226879199926962958755061144446864361493044695815451241836376241131528887102352364680266732112354335058080143513656484051342249024769986553789925250834315554036854398917979575412463940787548166130891525941544049218955026979854990275956202921306380171474276341501972512059244225025838583561476794367738541697456021490258473362573829370544549622600366389364896662347729033424724792601320181043538311578186911745947683599921561878879313118063098583021040683586212036352177573957420957642842030062100665619670698774225586004855774025944779841161312923030949989862498789325621587762119607421850538835542508351744920771586127533564247817650595584686746933746791883425964280128744800007259840134687807478811050075217664648187162053847276861658689766745618882146736114156316991394084747747064420337681261519560770537244891564880719673041885599844725107886896775996068475856814689787713006991753494396174351365312680985223590362405358707377735539495055184943172010509287125620029108979080272259881130984535987235269691894023236812410130146163883276324909505628447143702884395810959855744993300492820441804073906504250583319422327324007077568326228756081544285991852685940386578150117649646815180900478831976242652213325156029461261631202727177875973791456879892014951279648489367527100069675853124827430458551910974745619198701329923054390014780191298586105852107537981561343919955228130591871317099768862859004202424097541496035121740638380909233259608991697223803876783416911657510344651188410606991067278248615555231891067406519632420029289898823194670563864837332619498163020508394980132786790828562459897615249676624829656337978465657983201787063310593369587946833337078355957112946350620065602103506002540154014870219036867360670609265098610827524885656497695620950082102505245868652357828693804734748479252931578349660861089990846697408071790952574844039099141398672541078594946777039874571898240469207300156680111058176560096888132271436395213626595750715345387197443193691480619904911988579788944976106251423321310398648295968767067681603752022422513536829838567045094915495652587842234159487853695982822071417054774089393081010153294792324977644285201954360800608623508054553088896148231107599039163128009061351027041275061086632481990358053908399470027067099584713993112612778819122001870836899744839628179457953575365527013890537618177586491592290886313474355677943825583998511696215056822610989964401986705656239530829101739918900488441788840638482239416069231147033100121400833281284755621713792156274120411235005408893908639352247224643192943972690619567560477127569163924331696222707577272679165610611442616687846373498198226714565971168449998131385624916806690460228766249532792415976534905734208463328455425385486489260283344279679968999405341000984240977126393630090696977478595029256273048324156325994750096291459250689002792894278206531961349531036913404619611097613477709288098697222043332263996436997662628402276838816675164103735348670824658723251046941087890107335606340998713979798476003516995652033516738926989721210904256259156530233302047409393080170261957580946291914756878779992871062007369184057574265159310625886501025421812999181987091503357501826136350788968315991754299668938742733483342840628293325940694169838200691498402040828272549604088637589997076698741235808377100282494493407073617110110491880951707330045606703986134179858325627951217481747196262754045394508811033175041481682417383771867823211965530368532748410554766325756119250978716299400062665053324511199961644627759032680022390877449643268694263947566720470877794186287174055452198390910415300196009234066377626275481539730469326999250404064073292525040841283224796837685714879593318106890891306984767518315200887512116840572165923569426549251042925030786489699442665014345844062193116222070048853686207143388992813505095574239199812275775222772279858041562195012898592655097911881361730363121823637260310330102700702254926610825097233700098224029230659773984544498079874695395516375876415584251612803982112001370341065361716422633164721903573005180328863748595616400456400916326077631854100166130991556375076264077388991069337118888504185738624624328170285018811579917423834071673709608792024278987126630481248348502215027577720006432663085010457556004414181237005609261200774030610140635192423965563088147767837251355895140042225965169726975273937096963066416975377019247470807145928233370899516248262634108928247426004078371136560680748703179843880857032918701714481004521662199161849462892806470646864032583547361630128091389871398705016017099986025814980378515668047446859482868498045543512055728401995848694391072172686307508648092806482821379800484061625255089096136052633713800884112819741297401118487236136783619871405901806613395966520050969847294065767182349384124658124187281894930523912036526058447050611975202046412990711392309147752845266742414810580730916611401803109738925020122396726773658705889399038530339971714279887045011409456825735091379364752470211408648427094027137305032123990488092141412424660341871447650380544891504110668846857912946325014622485327097865603529892373229532269467635335667932332817626610661025273776276964379614193945293597012858886092437714135971880853244087846613378459898676768484756097532349943935283724766838528547508920599736239959845708453945650995603804191400722029231734237364884216946415061328746390964172851458034794201406501725799912197360628635234201215214831752706582090018950587784406181665925786337156275655705205145782584601055476652354714548682132358725301603522291345302995619577757609154918448231869947600716303263890936797816875531875319191731767367108958739194454094483455303197250134566503053342487098089416799694666043469983951227175458972485668679900334877128186011877139446881591000022601074885353445363425285351537201058522599793581552357737150873640408557306421565097673301885277286930356588350149254399097612510249111714645629886325412431748365541839775781004850258005531246989909084679291392680996017225477084302852667617512064157891122976370112377027184479055978680919968804057200673256945958231886347814811597067657973950012521898341578512222783241544407800718848051049254143225575718933063945442468170006559642630031917866077286390808126548732695608478230443199216784828965204297257488788393549526034567375184667300019507658231035809584074507429835930619007338861706934610504784071960851968287456067964616049044933347747300270391119696036908785653448732040739058358806537775385213073099284822018357643386495087781967486012605415404461824241625567476404460545546704346182654016018248248604381818956195146126906410347715672006663801935598951051680692363398347789748444178998959389468680096743174930438912511422611617642904144533967123445733812188062224390535252301900612589780625128459635275039402962832336190564420668042411042005424079232286891609307912894388745305163437494778743314324862401435283983977082332294932532973646150509489654996136108196489103823884716780056191477564866029684405050903406735970441659180507425961657917207935992603869834393188672492583384305077053391459484105975085339911585602313728373713986351157550426353120124931608236228396949567432390270076855935345996810195492552676158786013130444112675851120230339142076236106684253997482021556921302728728509704246508594414050364710042101054066634392294397548224758607981548995686986147886927353006316493404611410212710374106127174275065673740485789753699828274263935782652524693167950131243286996991420007245416994480822224881050377099006553662569699122024925027126090637683800116779874953078093828438366615920276895669724170497802503488435372811796997445619897840268214063297117651597488605984952878968874944003199806563309718509763300786516762765564222869774260536324283140231550570977710204862132503796974529198429844221696954440637220605779354612551787370266776643233752191985289255275452444818101299509670249714546205430328374859887061800650084756216740749535070088258254561463905843069330106027299602334566613710884026510162735601538994605217858346929799182011655578325858961999259642674465743598218660562426369047244137436440723647038992654633231758493431896517628300138444750876428668604683861994424291246983780433492850127558017052373826108417561952394048141024680939421503235546514311635187895924422579580284930518104304360632587014674138063974389437816730946886656592280901480865950012726604294121706568141078370805040556354420811751616271892940893693829721403416593352209126178681174878152242359404616443384160715283996133551249611901856748326417018463951824811931593439689822972775763543976457447996919665270992934579936663904899312160571555311223874677388432731121247477765172877837421054794551449275361056527267019961250646102315794064154716902694536492623895946900915611997918652181474674096278211101640495727106047506796415587565687705388194008807993774081458475268157182498755430743004307541304883270540076618414127664690132242337393448986525670797165634469282070631346865995966287146048259924743349550693060496954232495012084371207767861357013755825424941191266364998360932883579638226541391408921731121270474757054243592413246787205517300130667191266913613451164924618825083411713603370008705590807822115198730292759175565570164639810418267388237197241623493427805400509824466896467956503165210614916063584830239736153192537106156021708294296268663136370671903849731406589031058654272351235760404501779765436717313639487830395461383036653477197265974624097784997579590611498209376776946216117993375152153322104650730985403747948238656244177167008468768230895134436861866456197085298639784561759683031445410509748089354709871017649264596685111966702202200525097973242939372194918140234287808227664578472013043007522936535473114470123596069075116699587024188647852883101667584845791424436280308250537332187379831985373080826803013225239111771313636783801579278122409935542073567316633739637007171647624154012878750164154614181218148011207426269774932347304927940336141002900967432355248445201241092812060484685790893770453221424550331053133114247682508684132099987941688373128102401073009981274391542721265316719715869827753873667055317511070462608090981880557087808805109451994601086375779045506558612992535584303688579984915807581147357464168290557190780435859551543532160398382391288582714323198623397946638132176283832662655414337516307434955622512635156920207326006621755968224121913160505370655799721625916873165939669175744651172511894328884658993155803914476450006904844537395766679939732158703604296146829209914809272078891317255442604644791645815898540863653311688858648500240175184683675736380458387745217033215561529286571316381259856551184681245383518943140570680192441057493774413183559776575956282756016660323880480571199329168452556371291033112307149340454770180902785030344899914316100925410164491974745766407245291213159304148716598687500351384325154155706677085164054314829911580381218089557648875777112107653809387044292264861854263898540516940342285763337801998610008683611934745535114760898641328692910435810900720792683581139218353860111099896297649882803733613334305128197549114473785306712888074653559962648489284568740068842281444694427411156228293084975686433266768572841469224649504237831528160782991541410918478952695355844894687553060433776468332708585628509763349652663878213504596135888208504861193047372746542357201390813828219596630672335957836306739820882545001070610761784347227777611893634688133408910641495362364351373567971819124718070250296093316687809839672414687072410007958587213348290601545333601285272422098869736163201289917013611922138498135009303240603218689735129944385828745985829675116643895726437451294885907323007113324741523155288666672451458146048742348703195800555636981192562490720366850182373088021781006924718352314744334418738707755280688274072436031516612653651365179400288579581425591532280158112588433244683177271189915256484591690171903397329465242360617828845757888474109369069425480715623396690386293419135648078219721336998734183657984743315657497638479849546655739318136350933007469816670068509332454994951759857592306172915238457767814132607866009466415100466647025097074638148552861702072208161877801047996593415960869855701943610422159714135557173240690157306879460551846227390442575212327572428292989965997627092357171223701352969526998237870022483161394467694097409009734368472520734754712358938165845069512807196514451216083286363935519710861712310542920312736735679839445524236731374194729202504046836106268754829614783377896983122909469662241066903453745174612325393435105369979650292900395051118495722756388789603217933124236073831081784228202947177657337322842181363949256882232256140335074928447454542187973889439881635693396341498993917150959565699674904125556190809961918649608190729780721227124384253090097394550785563517238783046923501906756411001549732055215683469420152188632788273380532449325217911573266827774551935409399805194450366650138743184204955971048166239543688385713329823104695792159723093150552023113729530148486540320849199250580726138726121044624625420658498124292885017854670120140761760729544707769750417679532130022159466467566094824260585572655982748042281004722970886141234087530347446304376976592292727491674197309471046472795748926291493920900350169808600601749558876265356489410290927763718709254535165842746582044985606490665043966202465034298513945407654313980170305750587518126927530845626620970367826651435768632514598394180507872251979188760414577996490504386471089883538217673401228316814481195752727396698626799636642882900335351568935199017652870340860032893884063257569230354147269706883164870552041680002199372495096185992605639364632175211148302650664207943539896157787809886324653904507079162984769822840380974080142520882981856181739416205932200528456133092996200502202786120409173145186331416859522368262900802607620567944109460304801904539421740467984579286598053442561099457768146972281009596288741329068241029308637998120875835496156473694771410896611653867250086579088419939362073472787974595723809780829175596204415299074062709501782570143115549567087444223394081696768121496600204223039636739545821609914497219918941256608586065867245847064631413300015733588594907297671684021594774846872579121469648677261873703837321202919511489022267159582625950743676912971290460956252208617871192621390228339633117532002146470710022206919469995330995382131019104151328626195665308217009348279308904823700395646725922746766137557133227537122359008627540041163404234744278933788357542401013111548433577311896357472575737523511587371180836759104260138763237920432745995327207796243515062508624076019516651845168671174114481465727918005727311051456466186395310968499498907985517626711741228266325000052252310745143243932722900152249047008407026349339648523155906238733753653238790866206671179075137887252008496199931761934537259289100101538797506409743520711809608124547078394657113086041522092848515491312769877817838511545044859954905413621416357079338739100602886937221923845690241295126981658150830499311814024678334427826164127476151057696680632041926638216585546955532575737691206616309021181132224787589781739080400300570659522971683531360068197893731591216421594217697045317680786403710297116863346176957162046530102160725186932977198797513585289547454092357481411434428645916755882175549331629978628525867342050173753750338506102268690033358300745372640057587153565820994426950648578529670649182209228996609231246971030890229200356740437788614547422523888424045045319679927026743888086763125056046330802467407730767324496968413271956839342523813466591899292380684493581339446260719626777614710169242361602768604582082392179368957665062302109387221156140058605990875598232551109248087300246878084538459693814189972144131634100555272822224841197479057197416851245353708092623295451397039480521234369226736290585330054322914676406128576149969987157004338794546857829922606211939954487952127015472861614684698590821838803874328641660471975939606735826082904624341996582962444394153498497662953967059795154480738646208174987690093964225774850640955164729922245046774267735449519217095617978691500249799075886891797073989911551984417453659228088561915909828402242409657873640999319098028470715452908448952576125772113285635794375140594168059116138498196911837009647192189601212576255464192705772882963664338372112136739868953565344767688783427697691257643071923290580414272883809978257254595864332122839547418548677380918502197099023426268757819777272080315829743950936653560107250306952934843831370774887790189147911832354555337986022671979971811975141924688519647324540511028101485375545017541061174444909989637009760580566725587992879082043119731667575621573283709574296320912239740527577489731591903027513983125145607760333375957474622679174293815396695946462366610279496539331396642346675058256636606786482280276916447396662219982553258430442022253559931612627884473408826584318656091906631996557153473367527592845736236347768606985272676494639732935065381224545118930875074976953662302634714096125749482255536287730819541574792783953423864184580192347988280599269576271859453698928709130642917347803063360625959762690126643936454435765010600962577361528923881891215048827302885303163803968210817958915460829113655185334428723699452806434050917310335690546659403122822910658320306632306317095021143561329220066413582135054198178604883877446978408825617002792766610192805223008041913987390081407750576333062814525062568531519413462411857103464490923708258725294721033242925804790887991935887360970793609648872410482214148013495707965208368525731643994441083233920416167407412268740460731541186314764782215909842927508871990224550196682576400372860365566911977257280238486970964148841101199870568226454661056646134390158776360364136769036883406361648680972604225043430450076964546373144321890899939004547687495437533503754635829578120365803664231861140170748464561678952188411052787598550057695113998929662748998517680921006130741184369966133666374782156255960715871468999468048669446789654661813930007725197294609862822476548603214931602651584242079209457358418527756732918046455603261884323428771262066990357775392694466089123733801824532391147313274008391176586541660446838313115203624698428394409500647733708260851351591639171444138795940380956150923380921300334911479503812712529385207591288605293565484817285233056463297605353362372745801864442463471166817888938012307014721432623091357264375650594608751625125326644292096448588151643322280245076493356475296122116933212463528966637080080665238165907096322658754756124155946243967939652095546574122962657693352101156851401101093374055222403733726681640997255668788231046088561902929905321021793062487448320726802454998225132606768859896880550544666057460143736880245340541262517107712833091470553566008837608302547586866404183899084696029826447616277730392917547812193555186513082967681184567678743352475758782132391434274208991887327229513654051990059689744617396246955996235728872016047101447005371015055830779483107990301894825104284076187186342157624086799653108054353877271610013912255060590575735555076410146783100097337328105139169908588158338769727837036627962723161436642135621705814311449802704907392098638019905707568005679044048518057676908475855769214540726063516479414644133963574290180296394496575117518246199986230878791362419516386459000521210966377034496703180955951023249986723030371170267020421795877743209413241071921373059620176348781054652811316653054899444677270560079097756485307360496441279643656702184905213773823761273502914056421430923676910780356090478948303018172509995144808373909157467116073644490936357320041302362814914964894040139683437262789356831008883815533402031955015785023222356879696180266214263757793273866613885833112812896597954460178944332335390524554229376030300073497869119005372385974372816837405130779652045135122707142871796875835479449434436349724283462461245254565492352926002129278872467874997095243695963932554546008082600318970262411610433737167013382740495608841849436564489714761958517566381939673909125854496859736346770149688730070337514659295781318532938936957835093270167780228512610203195633742210959780996705719254157256755215262262783951664232852441809906467610560867126084210114011513582298809932665554877437548473487889789248438912282085757726942416377166864942294304346549131796151717000703113167456715827095285246505440560211353555143380498856142253190628699009858644043776446849862394918601722485024449416384450179303503795156941180929876823534655053589405701115714558816474955285752459860503470217439740391986152125488042272815876239704266652961587606842735293622039417671335871045041693667652837666238743582054059599661304245176783334529471498923391545093599311776505729579170930415337659255741178995603941904837126132062224337134907419223156400365879298105308797808301938793769684571917484825812660517600297619546061870072741511649656684554284494240447283808431179988013503788638933673000124342075368636824681997044589533045562258789180553128975582121822629200234549616484862796990269022046572742574475298435388809825383583392069601806869076579175534102097503947343416427867008538647827302635382882071534264072100243025992465102671870324142379526441393622025224532893637887629987579916062334803892275504869997707396306424905892689190124350478787438262501062345999276661108824900056706046317065698961212863226559528073874736531454342136730440015806836064611043235918559791083963546060652200360336855314782432130135892150866727748558745088402431456374831663240439037035763579461852243134852931134236721735039913636952598317550800876345864887357429290857961634679989344452426095243779630751048127832589476351416892877637822758507149548127654386391241562719492458113144283831359607020776214000170341255521873431427080997222090930818618981025041202216361663803633959822948557352778377640370301627431006544058125496254054702540077719456710141448615022418218555334478782346818662826248866956547861017111482531873734566692828816605669546338739861574981802493106252952380399703594763600953377311538015626602608037787747092919796134297620747930566067099361117430312702078156450643532310811692648373834262693559647925508503060372867344085289782329868163453193140447278483993282288358268087700430604616563062158244578778633695981082784525112759867891188158229003271654589007937822020384404712042254129629132831425762419054159059145801551092837349753108727786725788515737527140653581542082374533286365727639276745469324041188693903677424818542909562157638039265612712041208147807311599108086314286882084718489444124720053701520926027043884810702303485218135183672845691244052051389571475813333936247072798928418375001088436875393247740228267148058552963221822472448038985780118460997076413698483642840810626458057963878861013303386788636519432828387676074826963014058922502011539530707015506928477056464282147559741308352023662303195794798880470148353924856304103348075570056464292402138619584837261234490538190977753747384882188812742845018132545333542331725898301908038437399185516771612533620764757979667830010204397752663862184634622334081957188446246463990192706029047661793383607477390722756273567817768552540161510123062819139102690710118442511029228533266556683542550167886375932517110855508868696050701081580299898779146476072000056611072750144323226063683947049568070218254267536705287557964667279907146973246317720615526220614527211077128143916711541615142383571343089447674105211150006151453903483073967191826469753229480701019444923172763456645421866057331083298118216198408351039350061149035031073732549600914575705975490127835606983970805172914715671851603773164040419400512587641625949847764845922467762322157688290205209896957804568182366076908446095968668816901663285772005476095665744687454699887784385342770684815833074085912162435018620999362704954689025084498287466362549679328088836630813766484197843463775231218881753131114219204477262606297320589733847005890233782478959685759054579271005642695468920319040016176083845540452598293074046830486507994779446789616188951642281505491974341862712645230599324289029270036790052259788063954576734361692994448831007111451746369219724948017513382155003918448899241768884735635247091153980379890710419241929471646730654368274182967179592958386848979666035497490515025364385065430448070063043548233136025932075389227758943176149536477158705228778577580180001979792264656757553422620990353125986522471414150169955525504651674459116830181761848437667818497243212222030819827361518193944149214954088810635327291711916035632014508284153930523585497740632208074007099595075711052394893856689775117777810509868731942222158343913840486186610678748225286618083094781079681975053145394799903506640859833506644897550463453035514461974905627270447378455318141743570565068865529472500250190323962574489912850478964137388492924457211485788621887602754315347675741382974550018815613443771760219811424238453344402959475737557221741018056176666667926690167552967754853118674843781890291605448943298339786872947893199429815547414879107309045238715595204340513774676150465723287017704131562088168539807098469509475622331635087075943131682333722781626495593944103937626544542760769014172923054045689648932648405007930704083592402754464414350826831350329766267839341688322205518576318942552964716559179456175813655806506305325302997597297201496681483291945613917047677602912363967996302608016784745299750527421343142357005108142355531323088499678733107711045638003004825911528054193451842237754961703831037174473838685067330965714086002697646672503593512384428058703531773665529981019767559061922465758952134878405223644949449217478966438151405717207669590477790584049012475553954671769094865430738781577554600724723086704413185711358709440578169543407201023788719176914104721518898452566198828297308679220985066179821607169811375555410800061346010054278167846725203419195075022365501789071523975804033572475918157418116529295578739776798540328744227432094843052498996364559867843723461606232526155754663882481459719439611433481015988689280329836710727217214858915898282351409198827374352217217789507338660668854976446377911079654472929204490510436960504604484086162960815004639468784703837445794386527813000513330531350846820330776187775710809537561970061445828562642732708571000023619683749903784438713736226449551465790912547817633312186648713738845378423519202535598152036002175436636508205865252730213581397495045617179375915665856595032244366271421259685984854134457747484010787126437428902452547276587898694441548878678513304279289740246004727912967266133893027969581971646144329620220491363565089010930031346335480118744619209091496932282089480191676835401566680938166528002494098834779213496967816658318608887992652897731470849132901608479550074816522294163230540592665345262932191736504356165268297921016229825560124653181599552021848988392457365638183004875307694771703149001110138582949150947758839641308457160530795808135124592969555961557838944228045327915170583972769768943097136701228286402925677414647504077477049520632817249354296257372162507907263973665565668791646832952865337321452490929612814309697838161515144481400343678435272602541011369848418285874624916848938040603938532735017934091040653868481173788431853040102455585443266307583861234596093501405685192624813243436211037565655206516635113417513890872167206308457587532933031128960330870746220166667156512713043834956571556368135805520037489946941021993130533008682361354870541859673754848187503640790532264063478077204436060024233355106406521674790226929626490292794283786419679264669188674124458444053225035745849667003360954727594737071785546491691798617858365024499020841074296216854540151359204348858790997809672056969113590787926556404511606272930152625263487808518476741264131873295285937277269019950882485443593877686073750550362108240779483973994383007793833852104611544968069359507927992626481646964297420647177577876425403372377521957788330669958166282718115559102528563692767906385976499841244092943194995255072545096460165580823289524503117879186463127383735274458119527078022977650645581949723486976769377524643754741748420458915373097898179288904315839616156849725915164748254382493845135170943117013465801906891174794815056656972141327252435745055550385229167693108352958141554028043865106698722742216581823901186742262891454798415067956593353097794257588825657365111550100091003831482614645330542339360778803074048714927989556399835050652006768007967009242719565711038833834976474014674451836280614354342508799945372323083394467487172567513573862017652536799105378582522633700481260030353698602746628298849183949773501816755265438487240143337374745120490614831656825778020485871551950920378343038027098430812337703097647079390527640577969642532840805854688066079429789733980179229171540634838435994487066774509355985326474561547547027109867787485334511417437642607578923244539713564319145525245063550002542052271671649213941417973876365600943608329296088924986890998844728157366745590111971624299287215364609246692970735624885915249967086264435622339924481600639148607871954858408306995209971144078431425882747029600896741804514356066110651361144612540539717167800517457613560884299223285147467542053808272827548805099855721478860492117857497509163042947034021585022850874622206026535048938739568493013895194315245390118985698334935610679645326354015328990099355669900917594239480532651088397105648223338218335973692966361168269575297314910612353353017029983153216717393261946078111965706803329124362103129784813264484196853895162136078180161164174797233109794967639957959249699978647711371858491974841330753054925302776904497665488466626909778984784538220000174029381930087374297562266274106319509822795430829421179078750839661270043301039658329506286484720158449671703551933047129361359499656675468383355452561491515825327623642396196805330628764923009208543769278629356439637029503560143838950166156631733979061408114569194566652036447895314054404950344029675535132027911236121022795995709124812897071156641011251765207516675812371082787843876117338175099008484872563182104566696912222861464632216403095371522221769247782389961258562005918044244034171797048358939198217632906916391360362165650314842432204328169999110598372306552816542768897801202214364311480169664489882013498648271590452457988971625497256342061673312121372200685217028591899806553368505052178205261462858637673139552845403429354722046002413255000237206700045556695089714128408930603685221166750869257025008675054882775151732684927929559137767617690781777007740835094257604093402748590107242812599194328801604133822412513868721090734962703472214283314588705675863503960213700926322233660258495389247017462471411612753524021634706661802981184601151269394644039959545192908579525489479723636274621392945653479775794735916627219219738710436388704091968866286963584093024325579743203504385204358119213833412150930276682401068845057791546648744679854873516459775855498453742008196947119810768604947512068268551153394138452288102131695049912408770084465055432108558586707847552177787574326702150061687546777477032422634044506990915273738932761134451835121463161639622817995602460802456294329918056214392795717604131947297140242690684411029286692433262058841282869824154733403059095669937937096440247784298723287860430544636882015657254258662648781189100668602848955806520191643137336185310973616363424487051390193320485705926968802644163717985956971154331425625212695291225693197032931697323163127003665036486984252097919410769398981876894860558555519795752729241796024584998164947180851993425093391857960972199808520926621414026341925593653225230326848152084210725598281419185445020630877707976822732894890242091649889723097784838824207205513319150550484730483955555354096587422049048509990193941338536622814978619461417538076672426546467989574028855368583094869233551697800989770718544442095910276895003529093826468344429722850360673681520870156861015198121800028081027304719374840191800440757080098063740262892679525542257283553403184447889909513669626645962303285039656519600602003150045369303449033428487261621231779144137057127812706886226216488551071399579306553005507377189361196053918249521819333259881272789434250185475425391901937125336838897723102525997191190504406251910327304790871643747747660082036251502866542597664230060659736228455221989281564757443950464803006317519372374951195547096755830665279362060353866278773645121105067667976990034346116163844289477592102377949504118808677161233466794588490486488092675592246167246754702889398861845361502615683449970329829976588442232369282407966805757122821827219221463053214815941877100819782554620006436279008163852904360422172520527444224937347297380824823948089421673853433381065541206382314423238593238141260118496396319872193362682569742779803481500989579568489016467268638356173284074909248135048234649628733111536856715029573536511336740142872750042844817876468517791018502813323246531756924443957677848111629847723281148577626996333006691894250254221019712863754447566915111209679733223803013440771175574954241908002403739271533492684323527294553357287362639185023607961855382120895042547315919841243923473095406232150753685680331444350220523668578834113227577176959863884705471228713455181737377188786968074194725464246966712716773758818829500475523638125837294048164438414240544603952588047525995264812466889446699386920015629121379477626195578968180442514293055726380832559706627563622501540564053484668978636614895207449635834438612995894647836258764830251088305889660653581540164469927842233374519179443528806079415970853535259943111260796151436089105006785959062365217798914311465829940333894413696997013188420925675923076491767813503745592502616911557085023792976159629342583878026431158638948028785008049086746552020067975481984996178075150315874075571173510980990678724349715721321283370418881781633906398551604360773248164725168701193335915125442493146678434372272868045291974794152272442530355805752275414762059057930187302171059787851546727805840334725130481116709186457534121281688278491791629140944724482424343626187957989136140445444945650237420055904860589954512329758974354328758636856664973339912381945890978061245221605442431479505085861989041107090665121959560606066893628040768568322476842640807002100152313795972032659634755435470780885402434114826849747598563238359644403959879316830341853359960579513516438213744468898911026185173244669609900781258089845382654225148822526264791802742400232250631731028770496553850117331214127005323128148604946091388567600191396705434039184861684464237986539997560435087472179434925899977932765986577945440998996905586254254570273532668147949112238654607094994889032484437561423588020432350631388562159779319120269043631507094813311015065827569821091986898396040216467435524020260097081876885632283547695771338302875644748703840703060742370622465287345630349443493893585187418645906418409455298657072682728881305246869431267949151641100760388073146368337555508079306768474685182994797256764954117806078171051261551117570958819481106891496372925773519100588751820835450820482456849412833366945682331636880849942967054373641387580047177587384447739204444325952705423204000724086237590070038233480652118728914085944000889085484614477027809994342111031286520580481024777777157767341105000296109692541327108284371780383989348896823179658652636570662045610970347749726465193237384607440456950009941532725210781681877415196832232485910591962598245834650368128378965571076558551864791779142646057454706304120886684596146320311942918105180514605283536800500552911203489147311582923066051839040178825171510862095494831663417016825996044989849494180090900665760574385119760547200436462199974061804622420207608112886784601265355359830869109776458309352677421285990396294821175396883199779218004298957954240890759430051708315315630015238040954727947067754265759518646460207949739115530420369313892795427966238025146244930224966223107758896046015417849557943774566143232275001060503036246600830849256721594598547387599704641960673757643458619338612818115359807896254318843538962457791385386498140068516859895951402148262517561780378812241776614646151099369295487215470022201533165079664160993604817921053957788659923272388253375403232255268275386001123183931239388781184724958983930243689185105212768956005405366044405446532727824451760258765526296615881963504179734672262314809317307977031815512614989304748357728853006707604863580740383687789861075106517116685845252654253741945488001350965989458621445244915441641906625499668267204721619266150959258607626053457029362704812745504343949510274280409643772334876484996535230743625570958416144974556177134584437674963585454764890675860436961178741236354513177587850462881155996123618978661385162752067185463536388867917607344995338284046593289264421334768801518877268988757989179854004885783804408841296172922655951127398414983173961576411027189708697841970444165888012034036472589772740024544439053204463518955866951819405410360362504985162643275544860874583068976556076069529040304213009486804263936407342760778442797376433581106150692726555636792970917105895863326867176072527550182186656402122221812322879584223898127812601811537153972373187420635017274894714004400755741065639190990075827558611911777884027454080647146234517372873670046779353109499263628135738008177113562911762403517857817416511801535153717747944297107106601688740077475436898892596682076472039953491928029205802112883748614387079699736972499980869149942165015816586568944570701744731269981604099045419147345340854449532183445825913678289724467264964455474818734033260474946740857512565996424973175594364236584896337525589609986353053005752398449703018058004083334285032832250262638792767807484881550898289938821307440318971922159349405228464838428676091244118405634331675572868777958101561258874723482878963502583725388917063607620435554729116104475452969746075052733660908714486886021986708777918587062495707057172463832463365838708342878099864223553328427431054867894882517750273525324610154467588082183569179065113239732312525141768660285635232790544615620712621926526663860495892869105048655676713824024556285353114480644707574404835942656235289769061308974747294555540136493292178950843177344687727354893808547555109588592037232863344753446043213933750582852047115957199725779572459871734231856738937844555131338991137946095494600192755660574333239557089497139349656987020060268124474292007719434299911811696029306356361869704521759783971186369132751376092651602451969154509836564600046040840250834738558824608985991238502361443571308225068234601569111463950437823452608480204890308478454005547053095483895531078392733558792613188136112747969958264723462310669113659706670166216378450381479158878994155767606156477514892232995591466101928126019680422732801630231745377356251070512112885510710031003331896044642697626687024761077426571064454660498888955133906885147049497101578394133962647238633273905669068106999956608035499778202690736010967043890902434594542878965122445604796832627758719318541527580312619763744458132366616381989171672889374027015711940196508260664657527967514077801104036237038986098020421965320923160495245688081487564243239226139272902033875802076687333525386195478659769199505624179429509401284558063764329012149762133815994664559994724832750546623254272028452073750829339781766351741946042607588186351190073899162222728774136634724369035540001584714810201650790064760917565446248821602045585281757525882610943817028689576348616080791233670638438258824347241963189675252250676975877913833091818896635116408818842372848403879866751629628641722636071648831487203592399257550358113845162461929690576294878820717070470683600423509852487246555240506450669366263525308324098907514606569843058880002512248293545569081657369449303987294444094770912953860490647223762620199241146236970336392273961997226616837483420371214324626444730080371829890477063123046040760647313892609981120154094464389080649085950006118522598096893405575846382462707796679391925863357530814737834091255396932082270736275199188924791519682578091593360684450845162491306863702486598647946385629210003166624717543748241901142469604626544184974061017801676365620014612441020363237906771227062980386398983482661747262678542303826663681026911638109179007172144702073080044321170877262043919224323410538672918346079298773531426738491101575185984472983546012440339488017645170010394852287306937308719174523779790763416150324615563470972274720967600426780686742252317064461286899894039701110634850161482795814335421294117966565765735199492145395645343111656039868257283184860298618293059812350055940580438618244499827145503768313701342934923914226461366136487683574334341154784051894594387421953701881784604017171883731286543573581028793658399255710941769507655502609396661208149065384667850436090592630415570889697549375512399462822953502837551071473326637789629771467850081440657374297548620830668238034545764940173717762001281577242693354727544182167069138833645655448323673878539788567560411048192315163673176520989860291051394432155815561263592674779805350055792461523727235790622212863406021327159218814323165588719194459291398842705019959903791036310893637790120042087143917400497401890791422627817939706176607281165369402711719478037790422586311594330368198032233252863047742036315056286775607204108931216460262710028193322030143664946029616959266895655525375819436643731753598943747500438625382877750665619137497697802282206383395225598365051478989952365720420457039273851252100331859146997842586069285794917389675592253146156510878838272463360392292850379030539545166458993134436521238562383060520011080050627687561945233727792105039695202372652440310100974585641712828098117326510994381848872255303601677925033610429306692419062480730529547776047078363628522978433009817374160125372603773095296877105911692822262787286399946569680523868730952576036859666351736409616829291234989223716729891251128718175884540932596402297955234295461835231612927375846957693110587866332729955225730469307145765837126215834099893489409032642538941175191064239002918021880283272883805539564946633209607650752828473950363743253835004297107887814027576638800324074896797917371772062749664768537357524537259852961409140250966592017901866506892937364928013581163584121078447017189709687829773886363125119163235329809097497488824617456841074393185903893283915630111895804725516263362882999543518644775936161186981641838018861741425456272727241228457365276802194252163622090380113534168107777314934116422958296839012856731558699071101797316941081097281818742300715545299538734213892119127647560589193232640523139509829376625203524044213158649986395165109941387937228715747302988307345481032377742940494184437307796596420913709008691062005031797754036141474297175037143013057852921072519617966148032592208996772154894271462901250302896614870857947209971248411329032806611764484330828273482647364049493069733508404514685042681047889818735864359534441258653224011041912952609253222625184125294387306178969172197890007075946609810741750907659609421508336997526352838652746061506802543833526103860542903143530290023113773862676246186655069686091645825762924226708630458804501721234545979895508422499062375409320809135134339847242935017654421410529877602969278101960047366656510434081695456428833519241739018993838806894473465389850683264498954965750239047909929887953096360916547453243990595964163567999326995185472699044596153056832759175222036084517170887335698079518355174855056629253936795159292076796497176240393858266145947023810762107917813615654649590166907641787207666007433838706383413558061894962568848413456151012668198137161029631602427132309783287795305387899975578917337447530182272552109117396521535151298085625664664660974256530168071875352871773023783189651916577195711455840825844497112826461988520553301877904029355376280759547595462620905425481499804601955710840387099300731769466253742270402246464307242065743326342642638241738598435021002225400984220096182766508718248114007447748974936563374271427711104564392553988454646589383126157210399429547901531227056141732116783503963206851307751693496999741299173412117202868009662489544917432778637246639791431366423302996313099301821229749634268208204736886150188854034037799505882721554226293420942863779768315859839626633975891786509258378185549826536784811291197984496263947925518947505189090843093682479121438771709330412033759121823105778821678862731968235197927894683964138304073438199971935857607536046336621645516127836441310282201383565944809692651262379911743313219108599104686968420364748480394246750711277177202696372953739229214082694393855375973649267555556904588274754423191047076983437959608592556486855202460524256649653987830320646512729585319583740375426277692537288835186539785446285818773382054665264158704078253030615236052526976710372576427879297728629922986612915784818868847947874751083828986698408910093073615446674819029137560327901542002354395312041077327695138108802566973847649125139748051878872292076153867118301533680006400749845618065740807476963014642548325271324842492820523213581342828502529511013516796702401056488822676097818547885638619744704100931363295722201435486255252963896120034592089558515158292262368797564130931483090176560813325752297379820348680456769244406040760294350062658848489055520766809416738580985308654501530366545534722249057338850477594744754718295452150314398498625295033545016270874684047445845196298637271029333568982468564487981907729675449993253808304481528333769138662518582159047261255947167025507652046296250121579147721183688970885449413546790462638140793585880466699663306971492828251939805179221890303411295575777380669140789538166721923227055983012152312374893317951462794837577435207019391890949347332039134598625748872798076404542986181947511740020183402205310869179431621767019665539818572460349009719936092962674804061110797678007760806782484704299189615684999060014375886016813213026667015477389837817365688140690607807086196688646870007201631419914696449427743922540597624649740432690800848360152070599446592514722179834973015987869989056008959156710986952556937038085597323790724668206565462520702535201621633829164078974969228899419286196856131824164127184512257006681148341144901682916928884219340981325888408104158545604241037302553426945615541350536350692137862226871065202782918264324003706979962815256449620497171709307942598927414683506700584560654442660951603716543874597950854827663035892031506373954539192439408349403888952486291263493502302180242907600057738459631360743271855092194943131794398833967830317514954335079703822551220429560105003477310219005238916938182999707987575415115501856565075100620169075478153737874966233001887615721321693171089648848643739374491714141170327799906062526904279193295008389222008266305239964123857327389090939689179300841580672731480326886610799518785029065480638627445329737969687452654623975943657892840717385082165806259841722757520086425458716080395856861607034080117995270814028688282851369618487375717781911869829289073272770048909427071754106307676477096471397298471662834626704574586684245572841678270510491784030107663961186836525300724696312256872711971888275009888497902378312822909440283863124681082347651553785583177519417769762239844297085797553321065490871947468784845780301857163850713603833349333204044550818213565643449156954230431794241743092311557804893674582264756368809909636408788096398332253068926440423418541973982231672987350565712045160332387597692350613113514269709669377573218869082101593992164891728330509556269906255284718360244028680304826884234087453368275760414984319971367674917993406612025372850336206859136577983150286504241177312363711826275992919467918107249524823905630020213999596587837156653671151966316332870068642691919013002084448329668723390290056337924838136695920429536729200174078635851511728140938861335038230049754713145930888356149172929804986729349048427895078491305470188150438868256818431816095861696991960266544779399849741642523239277651566861052437539659178049452155964086583814320504424572275316889367361746079753479427648266813535048327225032633342643046925899680195373429916999834746716778339656565362332821100750450142664877673998787705942898733786305128154087412449994360147432677844859808789070591642692708955189967770744586645163607728984836599474673971740053134051597064556450318346767621343213374245027629514848027276478215047883920965810422147433923877232845661968710785451062927592487209701215088080252694975101612208901967266865160907296417698518462452673818162946453398842999366564189579656593075746960416895386176328670944647908623495327522222289600791264040993352602346631205337435925854795923504704601060963353350963071783647380802796158366692469424969414762039918610311254205405094325872341009581224650840432055314479782706225293926584277330134391011483241252880457883998033475554918491066892503370460350594451995860436007174154690225031598167229960090123464529985456638758737723674794623610609909389516043581482516046534681398795550421373407267403141716963199858728778922362259140868505102643329231771999087271952482001093488961523903771686552078953874958072006553891573254493644975755276170825667249773431946602881867694833805816091821725817823423803188061061269132860610961546282923928021195933274483062810254213277078203824920477266390686551619673774922265020771708646277742604624949187996643870131251432827006305379367519181789278936707580965025332818193685058372975593750031961197214573806080024253980533963590889038968749184518910098751237310186314044726380334876355146476844813994844195404300617095702973825561421683007869040683519035742227191749742310229855752655537265883993829240897002810392236339467693644017181381741807161059899690628381467826134707561335326550171929741749692503078167036187910818712021042652957804549708375847631442334605862376808415125511300787279767983579949548647212724879738695312557784870755628614320763272342182331809881624266363515901802821168183916740901577338241468034717778726014278175242935931614152846069336485080279642163479816707032349456962672938976339576972554035591105603796879008530418300699459704220780931288886144517519752382558128607577011985634617351283078759682397358889531057164043260624876608140043595081485589903484894714273944707525259707583282113949201312608008020694912632751262953692784532599564047380987128893927596071519465878645090147730193294706209325959326356384425689731964045391721951120994831520533420054310931407884105305906345157588397012635677787763425885255588897038282561549012601831144988261999903996993413579960731217609841779924985651748762374979570892827170196991822996487205036015389982716542835495728189985174668007581099156388063857023604503946391304899630039855607691360287121717516797870135050009803157152813800952265192393938464494147985757097881556677783626147246292035333038920480217243224398734352829632714962989300988520899307181646321809435094467877173685305496434714228117931703865573671872199454302028078844535871807751040961542699323009128933531710803726671786960536187792209475552918469695082256438426193426933434930228384578407922686985909830034375853394439702029192053987333120356562762150253190521902376865698937668551008935850520937601791951597021881923613801864902926385548055903486311145041351795225359365801125346982159834435397856691771214722645956833998932412006332762259013370123278618677425286763657732690361971132810560534094323259501138920150888526046148485680620107668718874715017753817582839689196168959108889110439956223480848753225301969037858495885714739478865393220531836418335260128065892607379889287791689397466232530747610205648208741566590343456469764955409537573870823201336570873753371256310940119168341665430051477806105232330222536667612116029749317244475605283840859892801863183160178640777819145969816333780082269719273267478581528117899146075193011046423939153708765331587329373312976783470961094068464651754868577138833768179653498505780914213804623693000978346841945602144113503296748969530714469920468610424738473580939268818227415573970339949770410915088647168774161769864659139427199466225957043693544692884395901778624042473556093499259168132079839075931320495050489828027727223392688955615315273184185455492926731955337278407965898242936034755330303941423067745207010643991206212614263277682863977507262741687991526882073018795807368857510986973593270672820857054593429907939079510084325269330328747881968615892929748873981757846851569799019547027561083462647780034033477758488122008592864592315101759717234554988225376581148655261246702420740972749752376185818782898655692706161076089411213400553238989199047093170449213716246422414421853141993862884210843300242302571672192402714617984630758552291726110583457242330901026087942275516591988357291278718420420205953761792092041602579147355461017794651263781688983652157696890032956940142285755797929541282515661412898743422732975368703997911079063888021533820207896983449144697503628903745539362440961695107463130657785844796590580890939514310359171939976087669781456016381720462833317914347703760321633141833217963478873972971117395538880847850049609795341565286422523433100098147648762599884536499746282248917316071836898292831615009413870205489116473653000820837885034742454896965377016936096629176342767343067081442848700055805228957465428396058693755810228977795297424829830938671817083554543239337805112211874596074809779210109477069723534223919396065517325110911965763329373363755095215738609292903165931971285362316625701152618034222069732682699351274890077189645556262921630179663912364606714326184428687916730268956336980240127008787149362332412406223350506284327328518540433970220830042941175070791449522606842967099320378042844817765897692143284236074392924409842632074804019886694844322211485080375107861344925950072549352964728660441368452768612134429035308763057535081552561130483271961117109468769952884508772842314488836526049022450558205399316892350734486101471097316070861536178665563364786867970539721479414187580425120120334601488837270463356780477679679216234483116551533568086137405740735443271372337543838072231471614823062952113742414286583831491811928997392352171574762423907621954243443241966209764375321529663153663875395525566004669452592094105771297588512710714255869544245309914346442633692741322411505258477344723635137814063604588327791727459287106547176075753634558022160716662627992749465512141277808274675011541426814005325094593670507274455712146587431801738996397534171155531621784070744833624582772130222139037772961842621805010234514865532923214589756701601270513735094958412709880860594475163602493343667120170682991978535852145789843486938945303175337853654956934455810511443723353088459242698326110713860714882802073464113083507713621428692971253298785488428656342559146317800657856297773382758285579509098032704593097252588579344037367741528219216212951326959577602266774675935687319956611477349445818448055722563330393509605223164016521636781829728883193752801889606080030362847972204677488204859507446631169548778699627036521676800534951861808268084703393724855825299454582477569459051408981667322029658738688195046879212188631327106763128210151377371203038739009502177863784219006635368259606629322158973560244445394115715865566669029361817551867306901731218463934095346955803230104482978721222013111045463120328534338876402552519443769571226693568850852211644027019399404182234158760984577255885278477759468058830690007917564426729346042794490830322537133733327970091260633954316267511554362732814082899262657365113013057481278898669321833954718411836774265782034490437160431408722148688793625519916601958986216157506250415778046118371126543780075710385680553881653217485958650147780609611197018558673671079738928675241617450889969463752199538010788154429246837643976946363024994313241180530301247836894771941330592546918373221387378054123659022917377071161719535675306015445676455852358515123988298614941008470498619982716199165358797531491191116335177518808683026064924212038251546277228060844790628220200477740449424100315708857284469314587628055198318709690385922088866410508716916879129157389038439328073956387373633479472379296552602001219022515601473906720284003516936244052064491263732173847746338624172524316622625958196010980978519882849623617341795192672588913784355979970884830377518254833804411042644103660893078523459683958497002167997798847264574371711154506698770913023488809093853466580318364258392999744884538568142734471964319259911972709702843646325606756237744160587717165449717818066179430333094780438122128404386027232076310676713271535033709739510095400400918034958091236660945996028992681709344322241209262890273728057867569984580979206072831164201643431490490614793709591784418661212986223293355014799260980544423409989278985502222461406815265335574979783259262046306768168952204993509745814052666260375799694699585660142217978429922641273435017808304776584389227084247735860211027910972692515487759551196828538029358804659911453193539254001928101916456935479892438463116256774928256124475898102190876841788424427395302762087423376948737636858718948499623132249109911347596704174256600537209784087557058852569821029814018665366322843676233313676523857206032047778470453660298437519816063702601514067583695557079051491013277339671916779683277707587890114104828226439839466102323138635374377976443411734721108809713021408038788674643627043678411712682857336829237112779072826348276182718784772520784556532496576088361867035233256938019054910564377286865529695374186592554769229301791964964702705399359345693636454146828779424039597570187659681895972486498965377152516156038168991764943376445582834075807632526285396322105148418775795666798535816275663887479490521812354511004565860083047317008621670508680121980239700944759300378802012940060760056277874380606068216011479919035879207371889418673489382477215860104066883033335638257104988635811095826542334505362117901892855841779500186605760659618959574791109133273654712563289613628132809451479894129098461981854087999418824799204343515580421557438927914396301570972070615713367604265750903204984650446718312530053746184631839055285285744385591595055001806956464690152054031196574050222926588101007334315449090350418148749062583941604359418627927621748778456318206107451789023341658214624355460422602054040619406797590339094658314170862194258432304694454833380132046703095472769314333374068976019923427545939632588363383057136245057909790481575716892905771325861288672246677397382124382361865559789523066490746381903763934540977288228957096623864440883532478559063079017630151862548512356428183646563469425293007252469380849918128972750291186591728590636516763092172201530118541645128267398263764292659073661053681444532436489255400530087337920487049177215601761885146611909914606461109730192500717200245004181564789201694935642453066670150244760434550961337664749572516236202224488819428565035966373564048215397068858666538786532457876905400950492661001781820605974576172214541190998940845031346287458634028928863522173149924464674871674756166797197205572447412420943733440572847980482813510346774767825035408139183898825072947120468751692759948850482045980854623676782824367136058960810876268558931541932533946328551156389518684996066158122390857790267378795015481814919206985355991305963184665532964041958724956565115785458561416527490039915584633862959669651937736301062836613930131194459125932364954512502760652370525224262385552279884322845397504219366651302579947672913337309697355932957476605658236423517172077901507376921680542719227820521172581454219428754614617010088464681251099235357341906925265019768892455286971204003524942536421067131124056114033391625977423005154910684784639944484815902885142039051726096912445978606472316230725330534310882987221820203724399112667270409860141808606366561909332444612547403040695651893534732742999663103464713707181720096260041718406118050792947993668966055024781032935724129436119269814712210664191332089374189593210579526668427910692584092901015884696019187862443509014933977295217724846945306265749905974022359098224714634750936642475331738241761047181934605285282780514090907988245390249787014133404534702756370343566407746290768287783204888145142202281411179195707875150545406481498006737481650764600061138426068750132450040339718977199752763672978869655390098607106514812157300993605051135412221179442948082477342203692465247796067986036641616900174179578538585768911092070334642668527426187286294189485465811056649986999337214659438624948991116033187059129306392976262934766182992079681068571480684452900490585390943364287519724277078192326362067683687799198836253231942908142329062031240168414680223325405848900666954130781442540282628544162078165155658067069937971579248639207343109403302975797174392986775432296824952059232230644737218838072810784013151165317824153767753824266209330283034015000268622036725161603746180725647981146282982428527834303224576361570556721729088488924471988875759565018160648919588742466405742651416767978104889082628759348210556919473155316385309579806637719868872669234454346990351595573179719148647638487791532032135287674385666206309173595414716887214626346538507110910945485724933767410498222399527245090359841487313943698414115366883164907484499743785455262619592038768553521749473938544242931468243922378452455184059298099993422534138068918939571038868254312646754677539688695311517741241674906952917341618315508711149511075126146149777749985610536535737741317760212778708946802287152820037029577442029872622432585898274701600145500334944355864798057782425415436082200160312653772506337810996537865530185529235328431920678427915204933172383848415214234900545407774042492982927114342280657106498648180610920557932166168482797253141194871838279876158177025408100069766303876985859747979352659558666755154201760216425821680444005238330148933097613907543592654439131334480130801216736655013577389249506693817080932461337997168059891393293427946489100358607020198589577925237286655733507330556305698678822991734212690117312158314380787374884628554472750961358205561168140173694947987787733478435331009055615222149555635232673889841803355919489519522760001062230074008704388871501494664337569645177555722329704189315233076836973881938214272915884316213662168828044762599928630465386290591304057012285256103168406772156612143214780012849333433555366667245736264611080062761868380535627561821041226756938420399583830024499355774256847447651414895108657403202650444568541522260017057998334614370801858415421210381478775696838326464444033365241688207984604865889755809302304693996478850113925426148539007017755812279720440986645444535853295851683831876400278400976609208932008109019751747281836932153446712767935661870555891181466234655670833726571596993439590424461243080099623069810519535463748002445550802341265293275214270347009461181590347074890955565424835945241551295650530760280447328645176457356421024924688850341043114127405937911895916711643156285836386754895896680911688866173392560456833717874602999110509838910870267620249545875253069181669560186626821873919856825913036457182867399409709150614956950634508243082825776753352189478555671937937393707870716891885883180067066828010620272545063925646298062220341500329156858504178931494332234763797551818316944767666495257221542299685161693624233401642173507363313277746038536573894137961947020678459714818224818235490145442274725786863475725676783372693034150277199800010819731984615465445293448580542868057521170536099119297512768946779964719691434523794487814678508059369960658269072041115601925142240467315658379542008866060397243944629994146645523801421837055007769187474558839449565181115741850151170114421212916296519055860110986243325455347088477041175559863017866508528860479985327306318326981645127608239113788967927162314161213294624858926585829102382406029550334501474608442990252465955577307153219469294772624151781871619445102252636525498990574984774677265901291545499842053299967222711645167351071581289146397097735910033441575418604963649915588220004202345857791978126277617263261527877903785191609275652562086445135599186514318862856222550225836980321250128835989844338264554161160609295532238045181527808264873269085295806984619013763729277098992707057950303520687592952282008441131833125363599343430060942812476759845352864172747838312813909044182498317764393837872549410888137324354163944729407445920273074715044039876501403695712736439705841752526277552205354799763015379037306062862242377309355554045143402144449122268277437341782040405121442362470336343525597297283676300639802720812577294080191090451468777122058958980738351036434028161283959967573768055263556869345269573030739415881974264900247640290049760298924005421018393174953549440399834904352634735760610140237839536162302838317886608898792060918233133199297359140510279301716554754279175101141293444426524346415259725563855434217631657113324800359750533102077563021423036157086365320770626437705467294200170357324560641443215733895284101996655890429104683377079743041769094929620709405739926369558876662992112066677559206644122985508684656341898170050092561569570637033555721333396902846545537903707824467996457691973762555676673636770353919348322759706199452353308777274508305155871011735340482301945642556666038516199985100925211631985783081112150893226893078066580325812476975813026101888792525542456284445116434585368882781785283789342777059822994102912106938612805497120421110918431298214079388842091113985094179761627602734788935783611263253748457034094511904469155427103033472291783598818139870909808604291421860731834157501890673032257074687103177775751679824206958322261114788009516009582984396431216254476112112183500182606857647994330252760753260761922448968384248417133047405353959692077854265309112932462437120784501816648521151831389533030523420194969744919572890628735435461134208459342139519869616836731884559445698188686501269846990820347802639527720055071293734076360844269849883296737432314680420264160061671054551657966191099479458634051138113064727189281066698241108968139682367631507782270072344459150895615762369137757759438405032422594945054275901219906248135901405828173343968167670645835287682553139404220244245836636709522819695873248453432509044397542793043743602718201879944858281682444958412058000585170153753455373238450042573053515451131113877848688541014038725978784715894252074886039736462792948009292011466744139778248176354388822770737537963318362777610217411482052078034677208842745130331628784018955341485633918235786234898780185235057809788765212779646996153992939268351391686907784511154251261551664787514795557580346322813212708396813338359053381248978974877651482224609746215382559758265360054401018031685838021614003248322053826887470211692000973519616990803180052512158309638631740122140900854617448021876128116464680612408575412651483494432284613144622430314099224989232450628327690223077525598055053210335081986233154891055291033756284186894898856517885713489915988758239836208746341708409140999538347416435389100346065044665546485025137289358216515292184889128363358255522687974597295501542609396309978867374038462362761632921227530676096326466703785395249851349573021304475880013999505764838874244964020220100369735163401841968942650647110642545574414907146157279346583598551048590049678985912431963117663892084550744013609868443452967423627332389580370506490903860785945993596666626618865877810065822528885289214051741153834989412181965770452313097924800077578374527438162619442753784748029884795297490061751438403688324466888053043268636881936720763395504898229761874716602824988862807268446847704489232348944522326104883248183028088757404692119039978276400745888228463839355146795233887623396811325907352500232532342751725569363909385915366307437528533816946185671552031463795011910403836633277249000356476404030711140753472127731277816305383901296783804918927019128266901010865441693979134619296691402174140543848868346740178890857088532965893176100811142613884334670189804735747470802229757596063409688173533907284937719199383406629192385057169469933407299378344099328161604809841460230685724989398372598520453781626873360734952922056908333763673658309376944927145250944034229751006667322588100705125971126564884273871102073110107825384136329478533075696995083320787170172336584763604314410155518086720659833584436404913268463770738720255252914931876406132505151931704192265854464232615067379870315878274791755655460251223135047320233926495563429741212677897467822889229421068756449456794467590023176869457405318160682074614961878039969405593226528936390454769846264301941876509592857664433297204485693831209084633534703107758876445178338954612520850145421039441033543992396725548075070930111279757384762671309760658228129089462074313695656351118155748126810796105456089447272337300196198964000792415655519064113202959712919584073922591119852141916741913097112281634379945982494896402354468649628525635599387708187298411409960000490163023148639454584330277626156881428121157617531726645260253400269854273000048699083689223619829890193792784219331800927716247605602499407866706610417444077072631267102514956713343873028284338244883673195611505204360378735929852656328805796483679680216511373317149439481878633419326897361436630896447380940686933934973831469707312794811796337557929836844901929590001935597321228139330594888670295614148484853604639946227848467515968951189110415304631610844728037631370921502521890016300467957166358570234988856978147464543978338241994454036615543933382972158999678129989561318591876406882379590297653880559506802983170539918645200123692509647930634569835031151869725288936113158118927940875126204609859106682954768887888241612780619479040746679171389464270096074570345801854304491492824187483317220495414031059412513272772111354939744836937216163934267748403362236225617720768512820506293204118895462515387750118371246156531844841520265527205660473217026315021639259241119370344597057772171592137432065770558412012700128019228196121551457350282045473194856206536324862309343664644930171642151641096750188064893023897842237102527046241618307757725626178064874005443234459150250902069462816455589998586209601089618974016954793958730896299490068482686514402699154394894810634080684657502721224391541850026141867528619643518848159099736267563996753767121244091214409798342060594137783500392149103473805734698321634881554532706578133332899606599008521310308990787421892548055888404939287175824019728628489777787455808327269783473441558928470419995088251090449038580073962905810641208011199754721554340567380781149628347439658120297530570988184415777532863487965735191628177804819537454338890774155132685912337450506418212283626404305532296217225043009339749652192612627535129657209875560165598453181295354329747015815743237590190780698164699592647293424744400236802061016234586968071744378378653100794780828261876826373659471836800943174346974018254477621841170870432072820344183037902048944227872363686186786880615918376582274134246120118070292687591978478211957300501945919025362954731354064002893038688237582812009319119821912004505739522692310914403215477550210359111979754362635663032566662292359909789289252857460146025403180079270128216949413142196367890875851666080423672070364871088017887726863417712096989112547337038375565077530779063767622107279715946983212396853819849702387855908437064452618864664243745822164319999109581430185810121447499126996120594993720475127565096180552991462186516863299466333672463115566745649701059248135721851880874787947368378107697621246916446829381466571999797422365115868043272502407678144804831085085924841228089632918110760220039547901310488326446383633219845847600044668409534323237490287465096850647406709663480791150053025365147589516391391415973547046830927826411412601155240442659659291846019792402399012919862717634758684249729950164794981200284607513454392644980147383062511565476494378414573026482355504718770534362899748895408627821824062967690899100382437587906103926985971248235806946751158328822380965378447074523621500187905124541925557792266808445546957890386661200839597468936986522291488865811101354194585724571273570007683332345744149402441778192597246643172913791006932232065822814518620644059877485357993878431208405225202456279867465566537050347192412424990481240602682538773053920384907418274703234806501653786524645305713229759212906655378123460325933282122469670061608186960508066402773419381494063522195337195945698725684162493213861803521604367138683638027076717172556597333711574065888136895368843551781324215377907285115571106172490117879012918752780062353177221493345477581621685615859037557726895032297669493444079111211375697184189762215648827394856721270605720632418528523650631542924022811329227167571119425354992307550188464462181961283102229304053257755571294487500453967285134351250510841744095020653765601285588682029085003222101982950190871635348404390154466632095643165783776818502407057083005041997646060350838136837502752142822457716432197511595271215153818258749480983675327878941108399549823134814388325318204152691279666465302208665319055361421759633186184205090235075750557444223364677198691156018337230649328170178043492958305566147977259032692670718539899606786077334100467790649229442516309665168802976926766724287696168036076066083189455918113094845515207066595796477377995974081820574170996179361600731171657630726129652495162464879017226377288397875627584488661260097068733140597571122469735411738383227440207392548903398427037452172884057175294591218663815350911849169687449392239939751998318123422814768870979228284910312060443794941607854447773152040305159116173876936999693586760011714687967537593444408814057245700640062926458761937819106995233671151263432716999720205800251715178675915598070120085702068020619796400309113545071186246565566828163253560961750952096276853147670809857106026663974855595780506653734279120475754507954147317785116722622239358247007196217891581329805270292892322447507421786418102639138824492763726048465296188948963745793630094866407171191518280512176690277712686672034494063223828567557186365422506701724192626617283024625636130819489637465384330183201969758345839855174052079550847788624176130252299695010029381139015152262665319511291139071980630688272044769500770147939230144909575461106638460684658543408536778334474924350254545638670222278204636790007079073439779784368480279855871448110301992602072766847917521585590959659085597175187447651900582059963703469811234921733321783251275205719470445081556372306011274898473374258002999839782694622831975511337759277138837914951537791490046905055821489583244396471195635695664716088222488534440144045078308888188947112299114484008826106368015421083118378329310629957413516463610018082458858559170954300301458842321365669892011660736521934337223758167962759130059178175092432391062540889145767875588149748226423713362417495477771060181202036509580261609377091095584797649045555856013816368449859609783581253858426711231609263598885031682173901552917337923327516535966382288841000291759373939236293017928624454079333950382591050007390186745318246903717032504936228533823714691989521708923918102131930942113849290263406031263751473501842540471963169402336777054987767689887875127915454918780444249493140005314867328929959706448162235870696552112260787855484383600614353852392640550201039205325340065716344560998251223267682696208573887474734307300800618790399196062245803767027988006413066136609617410371085791562312742730142475971594993182981735242782820681611979924177962665290363500487702230940664468878104353439645118547084582007499757856070980652295907233718178853487970598907584764826482554906007182449785633454865547816009958512140169436718545586961455089212861383725501441601344499667151248292030841108654171360454988971699900892313647200001766188093538756965803272691070633563597378984802285365238390927590813231774465886167736630078064257773827851517726894822851292140860100330714826767458623390737286168920364008766397332466603138868526496884206731386661022846602526889420000179347335574051574611811089349289334357479818891737672209771962097076003346648098341229225486646649741287194570696125998196333477153064260345185407738117381346964812415446987809897626206479500805743404880132287191501838207367969694899091382504871971245265919105004203252373241358813433903666174246293885231149149535332023368655415177806679376797248404193673131552356408184606399682559133839055179541072335925470503755757803564647927111846382861275848722263176158638791016552223375110026695793628057093478625450780937826124515493806312833056051095531231247342738197221382584412554918252575598648315716445919226369000265716411590432219917632764805865596043240457237059009791137059569754658285255627047521317752411567157476910231098686933648396225240714307095377816230112882707000340018257829256482318264326153188089627252379052858656481746017776626701291390532150375540744670297276980411241790850030774831303147374687426773247137732117109147695670734069767542386834894363666318553914196678764787732155730802912494615643390551331777969605105349183246116236225700486397639134225192057806743347192989737043135112493933654815482262906380402078870852724206855343871803300747578076393855469576249812230010587365272306635970627337669154530568754812879896591793517562938811983068640902900528871981335180621080488000952763521001327683485756295667890667590099430444269795181680129475987281610946427435661613191928679979083980405494471967039295376116656162697718227903413467170833913808314734228477649678022868539836593147160928009823049472030110098417321113769427584252937933459127299758250266940057947282866779627326019397145366867624165068899615504684903369212627155141603143772711460364841883439217434935995399979730444077440809374597207195873650266386814522400560185612207518126283714394573095309492220834168081709435791663377273416108812004230467597538205552450929892123885365106757781590532983074495988917695545956256007442044190023446129038538752271259918145821473553449126028887723323306743051172247198009988755632305633201668284813546854315830658812152788894112012335963451287573540446622203273913736507277046558436698408190032978604274949359746807953652993462189836439959552977703104524068057548179024294237811532526666318768443958549686803875079998752153720502756304558310014108265966226227982911115629757350119505889091075350677522513520258025523100489910381161909445358983082215591140413329395893573615819345336175945974044336708683473325673358467907586768362890254162582453726075196034752732569312006080113253170994805038680012382967121492266855782292114532947325097003534663224643682244638640814281921562546586635542737424678843536500836067318921884658833902147198222684036232372020855582117200697044104855730921736768258735747891989055553923478822589207700454175409399190029062593016008088465320476981939833684315704571864249787075706225753275486747187991922975577021836276765051322261109308007323971160263449802119093441655652237058728020592074990955157720270235215345871453781485265308221812889881174986018365384723421900891757546544826093353694586541018229551623969992630695005951703163586158938709173160562095477911218418277536998665249210906090553968856015103736127221986526375962535476018075982448786981271201351514744474107191915368012480931170568300283382437395203980662003063932974871329434199459971949127136150090401541664525808270540822240037651038070634244823277175024388009240073065770609369202704854441084623375800319653951205442902783664531288553124895269302627879978535446899866534054350569102136311212992150198898889414320828605672308122816574051745262148496000577711314478125403972854915191714853016664661401620024209388230124431675294586552329695781428455182482547885303834296705179500411762935055553066782278074143536013067842137763505380657133683865214181307860378315688091292254710046429977832112211319628612463065336752018628700905910770685196180580268931476731022256300544574482088002604521109373818562051695996641133470552044108972715570912704515056702590598512243689949148123688994813070444334614661593453982209010259917823371506309027294674236118187415948746222030871581043225267287149853684123077409631427268613487541958784800737049846990929787108939914048354013390747421761377395945834599610148452135933960299863586414158545582765801737541114474838086659526524165816336388888504422877510001082881523178580759227601632513286291483704536172931065774730990570258926235993296036048186374622532674928553097790638465578130551151540775273300206516112671980154312172599663096289792354639405216541775677721239449876106214263539140142269618286407719263351512682274651350900783556805948926167004497485162425443376977191342160969126747237276890347408656470549298853070739823949606163859262442216316900788612923624139619108165340673887663751111024803302802142381180752790013211138530904742331347959150865234542711688098183480653426541565105503958841025426685727142542297283291293040321263223618423441450677921155741151751798124598888074755548647504284426404686309078964725683750331942912120065152288895695512923498035043181904658489031766809599902241043310411822688208982408876634857405281377302969145120690182632249691282497787792330448013310078248406777111983564531321045217578190448828990982217820878850583797640861073040604261840352576704996197870307420168940352425217851988491325286844737070726254547789950115915577929094743006970835209658567934930243820671258202371479559956210012361573918183763983846829448713450135621979960588791269533842299832426909919627258067216243843488695604816516986982212790097478543077819357363544313849028674487341896924956105612608953445356813859279947643546058007310561664144401375592330741358708900848250823778369531924222767754721052434344381965090735794076194375874334788446685811076719885751270005987252064284542453829730499770895750627694506706555547966045265757875688838753356162669948973640043164306395742765871582628047839935595131344191736985784960263339631715739143713534882847317869135289687810738709588698194715028277822264515784154218996365067558423180559603395545715281573942486522222371212715272054167406409201289065299296104362305403191740799170698589544671941844617245466931176911252624264984246749320106513951902576197879287901123593174933261199723921182294401623762808252949966596204575167117126133364905810096080167927380337495352328325981872684949265471191330911225989713863172449936910104407762715171497099971068515136828082436771223306362184520238754004033841313464418111472435030404862487967398939801365775917810865172224468029424280315792926184389791958122332461959661825328696774787736429091535430828939378145205059985620323903680532934371543862693276698991513935022830311954822664105660443241499071137761336820029707711430812156879259716688191212030823894626966941515564978225403817865291235115528587644941870655622019007029981528944317297098312821336334063626028510514033095881644356574789089889156996822486687430028759125084327536843803244387397125865263787189376899325630907816862639051337827814356582733665513266668904919438245030619553622077442585984948161428347495801935544236998156544221008060549976843271378531864677686140724067359031868509475009426792475921147039336923237456492880847692073719689328571414307362484052941032832910485539932262094557700978018237945236977215712192956690652747995932610932277325985389584055663406511029500573571572709071159989161537699141489170335868189825765742696756989616079116072132276417273304682207109245716722743455747065008510721266340573320675578469878962578115586634935400720924391360281345696375311228755287679865467111307622108082411664091287419381645555737059323728844706695554568620812847739942562338445701810156240827225451137374343946303109327887870637166964137393077573062008427299836793946971066362976501230852022110039502257107755184245898383143231034049896271737548076514704758799704615683154023807628894495797594494448918447609409193254943383854919531120794381484453893628175283768882516245766206155782309822243602720017056142951725686216023825781671647328127149655285090846591562758534829432372377898388095063729609508580900933384712154419872397334608818189357079969404078756963525482009461999459652451520907800519039055178249371223773630158855394478638045848069571118170336495445900348369027663979751748170484498156769480297884705249211779335636750761033165616738219230322133567337443524426527785566118879310137975819415354014527086010550704830251515906546677720525191571612914133751799586156350946677709795368727119317928733392018463167795160001013266455028666858345558449730431674751858785748890611691238484295708473014677366348056381890002465207157867697036729582293535811406476810624452624124414188126936020052389858266383872566047631349590559165198863353238542052745392910591553440675126496224052686070804751986756989793274237823475032699945014286954524013676305483399712712290046343443116613075154138368769290070458769803360543077568012312987127911919196994914251260946059042399739908845589576467158357952177451775601135658086414160529254617245221902167606126525535073854593970268961532382287075277401643247390614216922948697671772197996249519809472134841187904546454781172899945742739475226960874174482922965848831010256294568405096540197526964494113361764480660545308330553324986841434631443491704644120364721967779985344040608277399546998834110542989112784808169727071314384261923729524683346105691016344804048032898637941922351546125816004270336618383927759780590645987791703990162191876632549605651722509766838914908087149204765134201894451741583231461247116344497476077757160547868895432862091536893469472987654132467787402767478812824513091449549230231422900943796221098735060084463789894021616672465626943774828462628460365685731510219030132961251629158775910923751593208424200052419098461583870038525098994883712998186988410573407976276538654608453462347397699132782992508208760996623782343897928100826910560090104802042197047579919656482353934256822934577821282202145185376601875429899211460999420943372832109664012421231672714251737014992261172123074712870103566475222940786802304185790885677478515287002092032837377701613848122592005474411762741534715636959864401583521732051416326902680353688092960518596527907509513804141022572970621359679178465083684962706000239503063483970175262165976602602016799065277948591483115961841367318255852769167033388514514438021148547029779055356990842762804130806164601835497065053016055990289978131577293276634325403135073520345072715144696904521099737077007204412207680483643808735538293423214826049104853823672951890242488236647455047847149942995859888709890078801462628535072858296768250421042947981548264441295510858842730255530424873872605700728418257446320777632367910868340513587497990885750656654316475027174742820781080504372060661066214518691149007964958865103829397066867511996907277499003221227753437122950914271551837776026127801806840663170896994240728912391827447676823396367522845091227541354697709045457666270689903984006743172306004624560685574821886020145894134105966384752422566483736479503569484766623053074351351978310221317371484443133048985814885328179633664565862765832006208391952287125704310391052007444244898276521584580148161661620771153031123845192580479558021331363547360376994426612726835032330492240914749889264355982101756462654221477298485160353069932355755833102602121807229457061120323493817748807230547246947827494529569702775126631210587703634825398527321685719620077442651021605616860016888801375442387261864110108721596347965220600032280338308339955829689796232896762532193444414511148750698484249484799011560521433533396672081934805670457013501536024216833310854097198232300903567750068732393188267911097674547176657253230719689076536005868325030925879242228897267697318132523245993036161913860261326318517311764608899143405354156491493350041108724678056231347390723015476978315509892279797754356761078467794745903042976424061926403183022890398515601771741454589201931559672632023424556242847542971947085200900514571701771178604610902456877273050894557944151922495059993993294908643948991500135405757354348885281427134307810975107567416766143347863930530470017589744481312362985016857577019954948209022888614930625660334682785200825507757944838883245436200094009218782234675374151662666017387224644386940889968202166557349725095912280088521411325418452756046168937252144320519801659582620380696398787682164790813103795722859776464360286025699683324671878868165266277133703494143748452458459786539571378939974700762803120305617126312721340812543307078382063387890593846166166478871628853975391047920044708388514138618227482824807083496321262123279884972334409316330340347584279274603888992842973200803383280624492762046681393454588092785217277856580151091613847318642296733569642040154764896494341134098975231675198498469450122224333187041946348658460774289631759303728440131288965265314436966768516112737847764596678141039883663929427832908457068734394987675772436844463919287494870355519274590739184556627986969705377353019502499100839939064882268092165985174859547831290755948057203230059525288392554764241315390405852085014312731349086295959017877321992076183009259292690207904032600768933253146470931318762690674839957693763411533456266839411750515097155336951401894098181093099834478061276878081517344670720769701027742801383178669287960974091450264652483029138345424182719974735879790480477241090540396095131573388628566318419199194772645708316333472461599054238390141962440503062883974955185265378901569491883422874950980803989097126592097935615731186886507595942395325919002216317409554687903786690845106241761840821191048432624621533251997980267171554558123019607913650577602166647798826608893060390446443760144770914700901438220670461102208259289387418920945130692934924907273238806499894662978993110035985768123055792972355376666710877211036132503165034147077432514570396357510725077728068964458402999923997763637241163621718048807287178959948922632859153063610147677883457692324845438391039174378494771952398128772990073123881177089550172316575098711090983396070687935050110620433007512148622919863420954862420461861391958378852098040840867770818089892801217175197046568926520689206167559187287749709575192537807896579143917562611548325731418550754254053314844070199191522581287081559807205178554425332040053696707105263973041270497289171119865010364220281726149869954406944829992374946075966215955306699298788444045756088204453844224427439046330906809870136254648704739493814892476381782413706486496044070729403796299679277081858693069265397321910445721180302785347804005424408156771172588459727895930130215266084356478148729546144103108188030452369122025067254043389773710882242122019149670776164142997811175841171780087475140389907084637251636249360527801122325127582893121964552683495423687663945768039008969629436879702402472402476200193424458369304260638129562970472919725669207203288471459007642779953179130668808763406085111061502509556891661528700127259078313504521261392118354865205550515512257083630572126803523664012314551927562841631039488446414318278331933127662584726981033173820394452695678908598342723125045821202995300065603981237576780783038506672584447033228552787785896324280565679307148491987865635798265231903823072914171135643851756737771748139328857014393143366244481608679373466542948882115852829762485304028676560276701364717307365178184197386247320143051241853996134232129205587708821816338736453296349894716493058548049943511241406694137597787696431365935856495885000033344363973515806497385510985405919055005201048333013709126454790497373361467764742809924025323144194121509391009660608674660642576336970374133537383859902607390071696914496891264473604230129208837256248232558351419875368381018997479322142824400373691806780274225668980016209651574111707706891517651685974598532085333535943587034935155090613296748983318565393105094939898078869077930968723281895338269536356391769318988495426390803139474842263074581368069978066751115743150454595812579432657390086802155646593620485237823452799229705242349788629880848535355070830346201943939010051070872113999462198258615869736600430489437267604517767493547153477477514210463974961454026431168445972403779634003012041022788031385003586924462766933501033041678160252006722976453132720482807516973977063645724680289618540611848327791304350857434062067975758741952046048285590338709119505891473551119357040023080154648474437868430450165361476724455650599415740852517588045342976265841927428675002053137972656463086097738719570373404322702784601028791982178621246840788076713186303277042010343956301230677478985579362355681572473277666991375787880074928925739656426878887030068709824195524716016757373729315199302200960353889245835145132876450633572573046401441841041434090798178527729101768105024294310869716006046871522335169665364540265523186794848947410789244976477888872952816625182803799217926293227647137553150227286122034264599610632249354513699042839011306658670769551996144771979291639345224397111315072588733451904021877533122242517010520781963197409716306055735049878138088122185684556526236574223006081648573566385011344022869512046436198937570300721124131953937769169297212016940876809393736453488790136151311076503144376117355800105339602048593154530979072124720346022821983402343774777769706343787401024006531150964879104652757447963599159439648620700884042942660474259883253559726252385035067940722251787029636736201472765032197850432104543955690708659269244806286914239438153559226744193540798038206076593987232713230011823235579593448832096923521579338721222905358045395007636611335821704553324022217240852092745368932799270862746664524221449511847179615221164389256153349072274992979228838686716882275620844739660103929599926059870148992453959643769616981448177765160149736137758045622301982611285413743807254775079625136569185754653406308194987656205166783126089404812208000138433833627906387708279671383324625449741045460049355701059504978949709695872930094868449999162099722233631207792394369265018637302577761757606885792478897584746557302460447181378030484910800170855737587046305458370830028496671730527388138625368287035539157559914011113128887793069013467311916168900726358868739021624359184025565999678759986469244807051609010453508418297791737664339840211704177740878914962903042387320589073685176746357684939885615852407382372620620701589614067521180270715739254909672246799019255941076334455973551918012654922812692481024937645124509687252888012380175232327403207135735328537270172543625267047518315347166113042412942409511583535254408730461108374128284620299458908609948444947627673158897555886245886206067066256410010772391377389084800409560871900558658795658062186288344493504152964871958315536115489773140926712606673756382805433729770634955814777167617657196968089588218729358940646359761907907541917708877415392368070501326388555472607929902182147681590764428489862997468463123035350890182941830466302720551268247176642384589917898683382466122347838794928605180093101040370240049368145147643007091642436996929448632084623657799392635243573070366482998982551849280623592619704397421327053560202529068734043546981103985964152025972600669427092145847763608546326168810254177149551474257080095241669326102962647142663362106290156100175066656284656910735955320319145757739113609045842223964109879980318409026783151675259403226947772755039454949201896558691055097174881118230154371537948511386436376610819364588309442248308634525805777050171201575048274981456923982188066527606390097983049458528348667653251171780488492135834469492525863062228438702324378500088065048075018783477613914279979169668025436978098621038454269598221654428863046473035021521236320484822897095424058418262261103941720723673142782562743735536189172809562010006522295339907786401161762370845957971558741942903681016428451584082328505695312061993838753310437065452127231650021958445080964481603573966650064902178488343723358248573624508302776560927038177445548852778873142414141040579081082786415272284047357733107984506000445981875943174306820270909813907029049183810021405350634507901310553636742797509697270374980822314867627585672731511314416588428205609309091767824258740642545178380321709866222650117657279342429990974835081181011324158966832878411647881940309136011154977037783096913036648124708376728962678915787669918805925752622399418703328050027373380518609866709632691233765414049111305496386317556576064138722267050392522663189708783112639634749419296191520680446734702466463813563996944297736670990871128412368901594461598610732322776926070854329135371473743897699953993223354810552260350183839011341592491696213556982623058715044135747692861153582642598888832762512800175978180453524245161106382659513817706379175742509624064786420942234762269853953504869773291487070258847126274220035081506395273096217432359171709521396881411564167393835530600609293450395121261017374623488361601711803532018621661041751182485766415604460338417459070887778776998794373993015859116760403712877921838662998313224575052450553241687728499379517697294823442601756306251838678559480982679765683252242152902311130169415877728515153347495164907438981891565924912287191899934070275280818656906609747144540307007881954588967221755050245688937242356032779871275835637564247734382393705148889057748274209564947392525480302754397639690382492245052982785592536211243553555582520482177567339898119063799888040138138019713298045827340521014533176805544960435356970768877393625899879487875729506345794145820210914302326525614827608854397633205805839526088503169396733923761805819263001627834933431601761317993217654103523974631213653353747055717069672264838717788138512009424190154543630220430875384655415574237478763483302514918994059074111115389649013814856872102527590457117823973147313024180409768127525111722031880519181757356851836910464100084638810044107571457993307836905727134667961044244998922717431740504963450671670270601361009316265761222382178451545107228485299866829749132975422679744664481467643511813898039763986562291049439404663998953825546231383664697670434083836534411375018018973448718322385938268497401998847574115946650008967958254779830207811498161300692526091941422693778089433483944811053632216959404221313113194351547045775797324381980506319018932214565600269136605432152783551196151749722817507695882474390438730423320745682660649058515030265335782648813750634159514736093301284275729221034988517873643533966119810403277787471458540322730511902075652011047465143532566667554864281780499958170103905115105023411936710832358315808361451836553532447327355804178211787470272124732741631181987705212949724448282352543209856466684993474398083802648936284761277929940268018908964482959596438416301306383110900151970386806934581118293631408101436129431288837634261737220616931890729435824463512261038311505063211368760256522870312909469558485208226455636392700445720712829427665087661889570325934627709621635983277995451536005044905310563020000770545171829728417252549378348117111805199735088957508561571831453496833179188531162406700725950260122848494195780234620323516827129197704928402025553691248967663269475400993246105627056469999459308587033943876118951398156335257093004286931244556718753960978664627000888165658511837802978828206440489490154863109047525672783445517414859754431908526934794438565823047504133065980481691610329114066369211184107008874776939249199260477209661025196598546867301696611904478026978365075787372607413949060272548504386131720942051136711425788246770940806460726033504085843999817746860324524314521728955719705022425416575274719453133578358798234422303759989422919116740262970593748488275771107671338367089336706099989938693720521076623027768566739356715865360562584631474000883013392098083548648220963176981140102001985103901981186631418125376285950083480324827515264438954666354149875146732148021627027966105685905965263445752269449672470917713693984787420453274821135409672733189792582147418044685014815343476446208480631361839067795285567401294996210482659337046505716129936158036735369803577927991145651663067278023066418192430124141778094623035598332648468861248358245981796283259775747365445211401430065264295039444388097176063913768870535519670629618075674972531496084961557689027706554212062877240262244607842786156617837076129350435802707148651170178641260983116959760042793267274870932376937955282709620652927021675957247269119335305114407587341592231348955477296717577344928446488847914071546697471805543844906338940436265571337954441664155732980578667329646199882342788632985821209147674825647343564948759998296466601671572707942657666826308686531259446322795641923865113955794597334443962400010965423803780059432710938769852572746777679728338026442941930263817100454141202501726362738734320950639384322915680960147976336962187004692519626786275033764372597798498915081629270157367540658323222945710835721710498359655138625698269747815165686029873522461914567145792036750476735564315965843095647169276825473677336481738674296320442145869436130481058485643788435215912464238163428573605405640150998831666005328899786156288502661951288668638983385718219002664315887865114090259751784959951253353590658634031409653695325190958051030164269446588601143542344741948668524622503526560013003042907573745260855231715444894002794549978041330242973766529854335730859627652512232925711564747914685616666146922702269928192487106676149056724290696157604972088539275064395456499462809982306780915184857691617149403571631612005069146414100929791356652678214920932174668506070097818575635600909249567361697576003922995172241912489697039935632745071851606065737348181757861102769799547259344476794013834485047352158933920311741234256716447887959232990470920272404109699113210692762630462732196276542935120056259406355008501253975822569482807831211170332419528649025567959180929451017301972449706536521152123026369305126451006969636123098630560355605150626008427570997015649816041449607687086156303126788386921335904707241721729483889087823838570422845342380446965312471959071612724002696375249104265004786377098100279541950250701639377431016339000095192213636019435357556595216644827152386343366630050346018278705456241779617304855914550740276449726037076498366374541342904991455734762872362002290648457914381019717020414228683760848553029070047878235979688435520276957958244098679054657620910619220446678606321327520115061419990635077777192535071771118605931137561222002181940779906075487001538812227179435806775703196947990938310349126366439732076280042795398312362585603262661442875689574293492018448642351704565029369366370375947046919318139394020792711394718813203782401996822081185572902443084329433753856699669532651470650833940722426962165553993621500380070431582141842546168668440724685335498833877517569669128893918874092477781427935860819938535320656587025605199157979534155331647336535719913488802788331951204576247692755658827639969890999147175763486203313634562232602728268660122989750444804976774063898926655383830198007594929488918647146404386897064700177523538400352802596908161531876710966142286935116244204667328419126727660495614755915625876601563132189155009280769678626021459139946256857000726241282555672126994572767200480027838094202695667813547218218415508601547584988476874606895540408991695056141550271026124157458413781354484704363410612214799833048386902094262740302022830459269354292157374486174136697454506677161884027311963060260830408259953269841282426185259774966726044479151522772059543149113584351293172001664405238865632829025094737085018252470613577085358362326061063116040549453980852949587428519308448384341114076055240752535244868070172810228026039581639105624329715728558003755188888817342349319431951198358121018758535855364418492767243008411999787884877079325834330678613330238792943473993044152070099081969063551828218057296869233135898500811265348157904712713301494967119457615076139107257016325694389975886710105467749086464671540690847877019648284694249317305663331446542558388385752479788842930229391749008717778289125287139365589801940034445550518682703685869294193914275671984762067571080265536482790167319527555302108359967858095258659964600456288356187358994382493015200014720682804773841900067177140432249675968891049142321237204779065017022926829294270126765795404595150039211156248544887757477163652910291995635374601983624310202697765052544888254330448306541888634898747574924204111474141183322988465299155586144924084925600350854352095903526984328282225980184241970470184266934767189647967212372136428520472812847146339847275554384653350185524946473920887195541735235201206040706600542115820652551580813922046811082661531800941360624291251364298212348546347831033595458005390599791556849163607629688350718787149415053571341153989079458911987363558121789726349979559435440276762813911500831792220919097032019052935778338217155110606636958297720339893713862759851700864621432058321700968564742584421457407063201200666986605225821678396888861517450624727511812268643809958889071256707180054648362344871436235493769931332537391280586461618788520982964916203605987723432527149277265420538302499435448163633119165935243511419381798491177899493720479675265832599416210707768042587793215827732680485124425204517670552529311032105548974896110755137925821028378818210980154432958689846971459018509834835975849422720451372795808910902185324574105450920763617222146541670739491725503340793426493739765417805461653017725032361869213104968006439567555823212042319210574329214044965008210054019935905648315144630620074786020807492133279003470298818553084862943263852878595671790991776053446245039326848074488133940353901267454097423987993772412217272353927601231069291896273984411582579760748004562421811123280495564235365626787558604227893148405701410640061528792947414006437024141751492458369769573798957927301697997854768546302206746340257981572798907526605598349427721329557808513321287314837201012574048974347082918570212418077273174319001166400792535299914793558714744895992183204102643696181990777416219381924428829676490517173081062732760251981381850495167954780429880638139369380413087641776495729990125922392361713907045204561947844316106092455318121043569297103150874910688755703073284717881332199226103971287052080144815531908036221295783949744768143673655010551405688994699492462383179377361285510258371267839578069700644100091369020782351794006806497246409957541179089231946569592427670211284221531917507990705635342674431494140023821116924060369862788214163555442830276670799173211477669456770120209917427628273225694287838900689609792441785108751909524146435304043225916514573721707419268777896323820096628893158178801392351754764188346760858021885997340066620614845131791604859980258456708188059146268224035504472958288036657342073008399608356593886127358266499443043464801446647650890598830998809846637733594073654602326250940261270158377579831555949363374417067822678540727351539319195816516869023524359410983819787337589305849542195920772230546613404833367825480478154577727548934092850855991972340952490042994371603925846225652755417236568016800865712524860260954008169528513645847927293458049565864976371063281831203157259116011352134720747661706728770733009007132949883527046276983178469985355550126052739028518697180648724675321784024051525745703414339392388270982989749783006701446148267712684396871827882311619009692708555142172978346629560103266493524566078094171949147001058923947133417284196729264300832184059530636922804310087182039992326471533518255097934838127804640605041652711871793430126312504601838199667184817443897217738315241193256822549862896866010009294939480001101694564888961767123869370080767030397037858273856853343213747134931075910020853486335560271438394439209982804069130011006840204774611341302229900253753741777949849696808460044785714259856354567940816997049636165684263584255455771585782974610612138436081790543985399757477461244031133324538011179255183922142218970384015786959870771508370377252438885799957807294465491879432024876795163172542511332962928305449226004756631677253224698952692274651343523913000512210768551745665153040082450899672840350150408213712972318212359250067026452757441353353026191963723740451683153510315308862850908715233336556026294707586801298558231921822142643162108210032910705999257502117030853729715265490869933989734749399785356178840180865263688396941009935942260791578019922224889322694859374660245142133690236283253678205009231388299378959506908972504797495828434866748153314419792142580632368203680252350550290146668148572313052792995822395852824592923562762243189626151011768958277344836847411916806638497942214132180936298746239120457247676506088217407810656851750918706266412860765737480379037814944380181117971955453898920105859060301364826839298544963910016739540096678555398206073324607502226781771762645440452798974205860888048802553012935997790994762889251141851629322549439830048160363667039244763816444632596311478358987536748017038144024080079305595066428281038253436245529598816155426322249887268561375256136673008680585749767929183820637096954858733772926327178380445046782547818143645925550971732390417394452046474393124180764099365373347516971272368328350057345599061772538901102870749574003728855199406714638706014476554653922328749767299588666729062327778637369948564528607165439860120484162585547425876619951709947751565672766256724250640079318082427381239180162496692656706654397256373198168181294521209066431753010008257286771120127394619772975144242611279335204710783617763232089280247799448968609163293552094565153422850468135152547101605400123403199559842290432257914163596748351783225640046428026362202199434357136767672252688200180333433734291617936582478374815315994012657796987180145243616051783857155526712795261613757950618689665567730665337223929628344951254224044580457346674844229234063751507493355397083751744398540602103252827413257698521509161769494776673803775578404678635985317103774124650821011860590561442470002249477285719663556097175587747989805999767109311723818836386125088257194263860917740242695066341737189841885738269648972706222709460507742408219007586232876408081895146037428350269605852387728394683631799977944518197331390596524570148205272984795595597885398926481184947403007090395740037301305933287842958440141787871998868532736411754227908002459942240187336841518672665021978523112889012508243638460083204293836292874301389289482429586133357661379035267366580776150909713757028142622029059923470823698357292424072340752731948701959094574176339778474325653708741449632998761538339262448953342397105359827148203337718047930688251075893321991909161825474475153913107751368072760646310645194457718357888980995689803297605929473407738700200876752049529598535506836289886541014682904461074367459323307255957183503036319347263829992683663722964328148960047129664726986701494161939415256313875431302121399033027074117544846763566836460049783934486147682451272161490346976750888062545386459525100379288454142205226628681091092354542426647723070872475357209991611978498084002901759588522753409934740868132410350424327762568479862675692743336275156852998990541236975472016984446617351115785065013072500862036762424911485146766120825152029825468400230937534861674343346776754382038128570433033324293451629490907543334617404840606063511439506635706141733956679932585846328438300080383377589634580718152593346590046232719869948213674991858370881874695205295104982375420462303682123517374405297157245048417599198948414881052853980143963222767640728408519155187283773228634692486376478465625532098428093458360189469351422028389647676727385040615362054416937856600416406359025854962643097344635683653096407246312875600516355546688022626486920378830563822756860855649992550718681092585431513212190701493470614545818995225141791829612866730151976718096036366541810439597750608813386483385060520748588071184260905440044195694736888851194313981023875502714263834441076501073823542581731196151417006232890762543746202823723423810381070708437309979931205970695171171817561624319107184773481086043200568360014811481301235600781088702791741954148681810165782823135309300722096032213298952900550040097621006108792596178013127907482664658637597462664648654611665698902711216717912764066757149345067152350601672333505012247100923867575681147717907585178407710130678331951394642091073818620874909947976636623521017302857543874841424272362915856419424807502541938344229154977251390258523846354820148846630679349003429950373565625260533462053898231458201293170251400599682495051497667055574572850304150735688675610504823121213295953033610739205715582624458339602818444704482716460616867617329898712165078247143332949016036653471537057937056552867762215843831598142911858029799923355152985034151728496110968990991533952395202436312947175511045371884130552884403951930582387245301365865568360339502817789589085960160342598063095489301916837239210328560364950769901260661975230640094009725547932100182992811294344981022495909074152027212937354343273459441737973048731565233602510680121955098436335995653902031877833884542138923387188901094788944718732951539345293780403040581815700601917748648840289931500224680051846288022207280653250147629139046599823605458318267408669297325165639189371289858214582571938463902909548167094404067915390353349647949663776436648318054746913198759924310013610998932146703179587530553890740461538926837904433087282386831616932619828484196548838053438967941152012476905646317312731503866259229708705348128519413055322194580657232725306860863130752572569340097483772116185569064740485458564792080611709514156611814591249209629275987853495019562773267039530217510123215251282740886789860187252469538660102011154750705082427492856592749373243705477378734404172478104010699427864482490127558370883337747838712182454038224508361244566016006828633834931265970088606456590355480101045664704632423724278254774140328690005482510339084907643025517801631223495327198140640099114667791257741811261226007708424991517162471284391101226119820822050063601509430659195175621861425719040101932159986219538364050247393748275611956334441509707990990309255304292051537555643449313844263494843620084400162834730108958483886497547947656720970525078054513592042116049506094397122528522943562301306838264924479193277091720803168041883826202668408542739114904244476895444469156626878785367462194714492446334922667893097969941380515359199047087480061920654606325237714941181785323692872245026457786537642586829165590872220332574074750280648700717002682307765895514627049927417941622525173810541716862346582310806583422694983522610393922004552811468623744645641168162815763857953476239571911676017487927149076517174007020335973345815155796488836596311647762764543062434032829388499260183659754392017873053098435318867278774952671497385030029013020994555110640996500082513124344333433500645662777059772834373795325234269890469440200109428220448523960350418254597937660427456302213292975311793924881119694801047411722973004905289809657642486319636229841877363575131555995442211522074525941217547175674726311009075145761315732267066811728416716191162566074735368464637171751262497148093026503292561507214535345943128512739108718922545011263561030137261838092078711681283068789060945150476748077726952544108032795440387624413425610977752116867997400177463193823359092849762158715546389591794455138857757029190038906709068554552487938687682182141958597901583329596408765192288599073170595513380315976486201879526551740423457925774583698773287431722528778753492054250986845404770761154481141996568901598784439998830300253602904224990916904949668708507924747513426066943227820048743454155440406364758045994223294776557103659316197672959777888718111217356062351858355115693969001507927217487167017528358624473191961066454994568308377961031654963633455985970003134020577892106393995110552129555303167610050802528866817904071456648037459394704373585974511884321784803382279049312733512446584284543763722834608809406051336102270356362590407214393336087317702699136067064084821812466047356130690332868778709736846537360205958244072772596645388303250979483109138821535666783335739147042087030524397909064018756884953278997597817806110382273643786069274409360177541675188036142748470325597466704568860998533663912110734674078551767146356002787953218994920013744685484954091475296541738263910719994829081438141549682300823872716530843255937634641780072126347161003037884859007552511480976399701344451492468703713934260022456382237832607767269803531218191333484267337174343057711888534433986038426944348709227646047825036721340144771774213123242661154103638319965209630919652030137552365049782431305897486686963451588072403165746839833530319214281648854152713152791806002527902095006126919018432300575127950257794310593299327677196678723418102819269175179240047355625190716780016882664445746807267693906386271661954815325870191021961871234393818503495307636743834132244592047192204709239227430888347602781160478861601659745451907872989353386348000705929034449491233131727874463513995604560356376659712027041472867905513855795067724212880104754266089302038373449959874480924752997173674155363451156414664719573181331396546017046373866225484993693760773207751471158990625264784180236229234383020514825332684481526461497787051086806407228546931402085750714302940460157893752046077331918683158318213571795014077918121221998541265469807529962795433889577183133189256469441438106982817259759725116435040886719168321300738110133563761881605300194897444089186022301026108822327017911197059868295977923183966367731119154762788714571042763924797246826779998389379041163790269581042386213766947516235621523304191715622952301113831898202643346294068813152012844539561382069109537246188139655442981093766802568073738041196336388267893714080142591861805847919036921809418588241801936326426891080868092165075086364237589592179267685842021535536106341518323177560185450459849636061824431037558945971435767665384465515056687392591736224130554546884954416398135038453188296462974075990298531528085920809508703983830939116120638920827609768395808538096546838671354292925738320492465512732135308609961135896677678182449977951408932665006156930566532734892800020512715233042969284177591095702926613278595122660783653859700591605141354577562277790655876700455215706309446983992458475145628099850363402369116710147132695987320549211620999375837217054031234074718974010098460528092957557009542268133722654613227938557280057465663772941113491971477879892582572680038523195718632307509596472078354828029292682684075682456370706325885914308330182647244343347136078517418746324978648422295861204084906646685762842140231687587005007416031053147430727598091981085796724385753660084522012125785744862269182497169795378470962488193396390084656067667627359992995407810421528723359391801030410563762715357038816198455716867654342324593982807739840425288577993956477119198991349310336288240904036096515768161516118668369270983086850533772010948536909726414762805739186017986820204579359624625888386187645915280517393625703990682003719366731546015978906597526120471063597409665824499363661711836298749711096149606967850246622534467880095672141970677447217068185786741079934442795716705427776993742851854410943069859903271926696566987359653078276105233257999481695460420507269407866908306659408499302115574865986527746389351458793676199239941067042422724503914984338914358481037634272334315331327715395464291330287540668656898437084804352850033066818187908214446951827473368546262285994638084844475058078561093709103876739055980966425424619055339819699732209010425991669796400043835563277851171789817430519945245628287861587738550327106257001222248549289542628365628740002962005755486319367418899936746118311261644957143131268943630387499445445380552688162593977060922788761013735556360550504622002630327258445381219694470996273632198614493187414072383392103622724876646142153567216642000116720966766112664463898647769587921405972094597495986222645545796369855346682673593603327506305872366459407911919005785057700015796219144067455233715024636700660843367693583161958682162796500636013280675029951272452236777032667212517073754616840363729933272449730525559691753498362372201408160401499076310385427422373337417520863230728752081221814307913961764300983749933186564316351890414619485394883177563709978973163465558357057353002263538368299833368329563197901314025054570129531424141950643484629705566194738974375473079356055324162951278427787305517268557902230525334780014611919270073195058561034590046440417810764483413422368064689821819610708006502156553952217070209761489963007217172559079647955742827303612019033057753369395390530721538575753209851675742599025860923130165326423559238808570874506063962762008892879968653768410216721010815134405809225349116778305128486523896710821222766536270539654236629804540401506889111205717492083174262754382834691490984606775825494004203715143721380855270689671349893709118442213268655872365166190425196897825697187404951087070667343464736105639201974233178522654196713555915213753116055121983457298618125793765554116790483302045651685925980119407360263820767586343018587812085782902058571755195085800531880008866876838886634728647251913674385536158234528826323632766370203962037199304263079163393139790521847763954676537277059664467639051763439366561961862805297635414207443397151001502712311765688363872997342831395060614730556526082301529302271355347280461260650754719255051213545522083328118630151961404812057868880552606072845615154293753911748357521698634617540443603129360086982676797866298187814226641706031099488048935004713886368104811944764780194822020640804175602080725885343801486725291941715928349095107071037904599841649643354477403867124899645557963090401703223498786817482880456103428482078668481586230510511341983634996505624298370824829178071246193312856889615347670568614077727675253060124250669043081402375560832257826504317117550975492611907653142849496796621550990725717493478634666490236440536188711777650349389096305905182807598598225697502418062295814053428571786662205667260812594155042648129711894988123656079013235357744409017921796047369457525610568821675894429525967164382863149504296886675208747650673692284367076424538264450576251501337555388186817301279322918709375352258867128063091781713186356717987752055558826725285844344828709787252103689049354947608940672270212817186533738621302374370500825170419929490581022522935814887222921985452503208287748308697556135436619870535766953712004650081088653509020353215719657419358976158856005418216163324937455373208280680272516746629232781294477584984528072305176805260057737914068415181781547941042971923963911600182992221663450066273345254691335356627963716890165894240544657185723600178407499125767855371704147629292499583086265898436971420972844460190588044339738632847693089460468021612078694270185276396126945829948760951059030284694906903831287184294124176891233961125046025470809178753658228085502682567804646907343349863452913144962492534859839939535902728794213678524633137607589138418060518183628380565560172716401291237298932452815099433735615803137424805846954982923614020050505988007114952607887770027672494262062077667131168884743229057976555007166269460144795314410288282817451740300316652303089452642050455683753101969235629483143270736829171894455076140937901926019851909146868030852679842231192452605353411252573974136561504826100646051198430510232992460931617831996941450153765847053378811901033035437855783021195104806900542620073807034766763055554467682121843447213741280939717937364396293185140985982152324440212828541323242856079280849299584232949473525530545232520085290019493020074100100593378390423749146638144766563442656939623322194713374442058766431572988419422611510904637102230825430634755482008541088746680007927051986406247895681427745863468498236312198831853640098019336680569344433662459140605102380744004489271807989869181012339939959095658835241157187639471276086140468015844400589161498802824310589147709316420698582232456969993551874237666602387187983097123638892373042831206754878309374877796575034663294091078980408815209556186623246466179761147114812391795990034467460377354136018978655035442309841673347297660665672683027335444803874902330435141674154500093607553021259997263798145000614315081103046110592519139109353503105251923374751265786330469230271834846773804698173668625257680985875332633848869857673403976082519165985078331782385700446727702400836468566291363620011697671783740340766755797433176436168261280956825607165498762809433985787347849746932595078571875125810835526651152459962285598550478891715334645232032745903688748807105086011921159937536043935304005664825765393465848945339739597339698652276989542407603497619206484891559900476116207390571043052413010405690070735523598801358976449222983671641518041730722386516008023147282385823780840101588413057549740793948508087471705069413871525625142851968800710800036995137156333579491190579371919447058040969453764431818745773307453648114370906088984620520898894104837810791076217062618949442950470166275214908250086062779961031088925163833709522826372858242957855843884571010388453805463648563319155834651784971518416247777283699035641631168160790976678526233246493658510144688933977029632233930213775510662990722868207232338015585647541065304981495878495256230080806982638167926474310839133870408537912260967179257199664475431484246310737918853705731045493954014535690196046364625215518304343217215755417193906188958874387618421671745972299301369376658950090883227189242199499439049322702182015573936346608261772025932838443928927237531228355472328754959868862679779323476810343525878551164883568496917658559908865935667659877846822043088362614527938668112668035697437842456974657214851684412996138163438110293632824502496210588600819530703532198361535446569145874643419452265891648366572874635239836247698910686740505559518970819662130874206503678860710566700214695194671222997568740090735894172121672381997300459084135743626491194385193729396738765878648580845787492136932230350715557154414675015702757711509663659710190223224561653014602122615030055074102652082740690143739988619393346869337942431581258440966265531514787408298748365290094159992485789679594933966850047038102262724751289623201135719287818724334241176142944910215427767237955749289856328206864396144542178796451286836899182723269573439224212273900756802872701610096138925668877324412753710279922959006455007816502414090711598787721315405808617461150144794936967667727091187767332886895374373037452921482700201276169643078213260323375870708049905273728753037674226778136044591705006009708838503631595980611709557507269802443095798408422060477112671985749954064062981307646746152754586960597845571742576106268847046227764399193770076213581747931775840023442314005075372949123303468132429846974063229863105941823737393489801838214237269293411759744919882318865520953635728027399106897919788410705811937167346267293914405504968308622731536896086807181119609390697684224017408314631144102812688560162843238259945842099033579641621436136143980120354427042837034732059079385890312439469035665127927153915007307582009856263741586138107277024593271984732703381862706957789487620334415007226054008212590311372947045498488412072892790770377839207184479692931806783870057337177086132550990933484775727238850725691498232374969368122205073356728732342794631589522538197900319990965927327190091688269913732831606213438889026797730389704827828223400773898788393399356006351645143399079807068356889288832459204114135442552178565967099891031239031573927460547210449019232293875847581547327996780172156079095442503603963064921176515889184337870367710489503540576674592711695001093398877637668919059157984452544419498163593127651286499275841245770380951079523547691148961977083492973499551570326940800585371208739505738693580845490941982253004264629991439787116174639940835145684313566064000010907462398590183802209215536741452506987274476690370405359812979322822202729079708605501857584936407984210861031803970444548439096450697277205441971993071646836601515128485207115233984267220276666449062021971245766736012803259033575347792410247404221648120532468247421930005211812846127105963593601443889830943185505349657669755498485806491889968413226237574522734739217850858577078836126548931014205666681442668546434410425197549258686630264973469360508892310299992067886480508348863739442972959183097001515809748811924314373156281453775941656917511995666696896132891011121239074422731687044361284099428778704506999001306631039399182595655194537406869605304272094560787422374930911216650994280597387858142210119124969789448081278023685620132916792706980388585769747592543539748014359304444012994731440404100726603824309475166303887757915417255623978878556697445816150961529986073221254861215093681890900512272492575831983395781689118772012422289357947756777218201449283068662635188883701533986219568605119314583834621937578330090288415919414072430277112986426578582721615798228860026450268078088081821653498628502815502573085909881133472853706478181853618968784486446235649083000248348656668529405459914737998662938407848659580210408388402475291344930977873969035736526499627362788440344215670620285071696023425102602137612436789305965112813317925152663153434614620166433118505406093870661901983884825823723441870950688624630002363525794343590495859256465784559419990614826653414249623928433026207087182874801553861542759341474055801642920885301150194289600435661554338153515849515551114322956966190752458981251501327852012150138792676441798685901347795012438354126811027878496484598578298306274770380792269326557832002551386428795883317820298953916345405003045157052382436170714407511361257375639732910886096861160837686787167119311141630482892759964309729978908409070160724449142258352106283572861040903547273480133220652605566513876681260296204095985108038331821175401278601602334884158149258617723401884950878560759066633253453926013448047244302996622492882306989674757882485574681351352560401343795366290950127949089741179926824064570477524576067724134418677197034742086838238786363181583836788241070759839935399692759150326669370988719219448035043031661528501927514313725400330547280977838391482867398027103921240864607443418309338355615281863514405988482625924913619617532565110559345741269897879145246344263083758649661123349539911767109508477481552623432484361914145015724056190355679970616845866574609678905536198023137101838731656385445840579219177164621712351599521826093802168184846124886992398353202207625178416122180850390723004205406176608723274050714485587934062873773229936861405278996007688874475444055203979851789881380044600558331050852425363689494932032385015986499955633603530789897492628420099356431742510759173908762486734638040974057429419289069232221425614052652897518763573599999212827169261183349272345036128327766433812444772166336796661092251447659551605856705810120390695736314901682462306408238210713266737118113399032721359751763045697090803670418013680461155052358801595274168168122599311464500754947186430079815109646741005114392108414681108374991062985912742169353116265331203398078888895647547131476224274478699531279790144058813835469474343536044707393886809949595726988567851510831809532379144811180136055617176777796980718361495192155311526953332887665717708009472782490528384889858763565722638870502449008685575205653645072479424446159476607045837528651375723559692478290729696656804180817076319588515414468904820804553822623961271996384317676167951327641423223982636767837161304102243677852399889251119955355559102425484151288382077837149765095587313564948215483210235805279416339544383866648413939791723271824608144724436024756314860172565056014839510972890898447466397001682202797715069205160828883296861634425360637536329585199084648513726526095495872533524644504003916653833656986057198275353154129086449005693121899777856894900758104949936245465021034121692817786952873939390292530387036765015396959881562087855566281236841196859555137171569825561375908724587857943346835107682444294642064439626037681883000198267410983743962899318724850501152682027706235979123730312068832265098557686819102209097365252753647938042803465317918745118361086163240777915028990801853420607778637400310948094607538650845028341204273224180710426506575118110779108652103934634185667113909790996184757027544461974300357399543369943087859685804692626626877383810630655504690948245533659321986050059768823282248708514376656694670045984116462840152564138114518758326450897584894918042705107787569753076201536969515451808312764606323893828429424523359537606039439501934414621478449741663339889753214800657086216035880558005418031250078044055093164770217257195060212905151261773788431060558294706074171052896323882344244582865952174616975052530861568175044160205250954018577582876401385099060327488969482648211700582077118899209429155833586329525144176474008353712389908625690408937824593293280006412029483052352745701889870759678243136158633114487825227083735900067007623608798687867691652485617984933409552979728425708324443927799345688353631268227394742865242912191778455233850145184742321242496996576588849092377821019966809365776659105291139334572265423412372680784179230491063752743825702431704161295721804408418010839792310373460413245225489966434031411313307738203313590810098346119257771490619181642229066192590465633982997967691223920448837427437355942289602508242412757359820869942225875416852975883941667043562436310679825686912112899603065828113709564336958746627634846692193637660618535343165531527861956788289411404088300455983225659379691763501201715049299931394773502831715968703839969813656877904657192034228897717070689446014487604169896076750187062789365066461416742348298484649100949359606606558000858478298391717750690651100976023145558632470040169433186827071894861504835759858744462197272346927425980866373542768802494409780674479001812468658669812370880685118006016648518356321487852399798179417525808385421046351383780860967522810947587287900397981311495222046593158041331944297976895287554656131958175968195450670403199892925709621635937098899207795058140536467814961623321499245636626103644025066931955718415317127634357793965677226369177633949805513442242006525590776629309971537335983444168693517643352445888025951707025631770386035676081202872606245421933530592106868039782424901021248808154648889169647846581239756649565092899473821661926069607167387666336116187857335828960957255529188920711764322657649824306308636091664810327117600158090914156080548092976550212442736646151433530599597330056249399465194609247363493785889062416091998988620913876229416305965391920865957558355475952453812907853520988062754315163064946790862130380262930906606541676157116532507006686692961312947170159520545574306131458135594265560011952459102835456358408902142276223058420126937214077466764575737849090646390996020291604457148507125650013912335745084630461459712911644421363338286315394682821126873797732831403665654451313977114740043445362146837035656010105288706486918229076548005505472752797284890339385618655551033899158668006523964073810397226944536151118838087947545525138727660152627956607466832709084360241846063970021713501651028868953342651461825484435307307939798692843338980079723818948180835071347140119383970481896132858383799442014587079438873681382905670412338203986353196088814444174609867897778021437905752073497498130672791068267152011980158129431591866108368644036641244314135738199387589300376296855555866084000113992728784212558137653194480295205517509975810067448464441916400513558086064369477400968485041453984627946721349384897234897661644511707396289130918131244553503929529917434090404775118031890728940726148409129081660922388412217476587992177104485507629385853652441328625624871061649357864620167829659041209918955733945969524071105987316441878889658795767425896275485699801360084111640261188564041731948508166060563229237768645029335647996616672123104610243827451216347022443942386595721791562512659112913746656022129022364223991846119635104759630333287381817546731886807205882028051141800744218245590132783762182119293493634430641845584370200860493755733969334913863855107670059756717588194428508898746077185300187382301585171398926132452651343565833230885534843099091920499644134900603168537643377919941100052034274777761078143476800295108363383457777348550161568859005788693710623132633413531543341585758949850357178902733802153144724344255053215077805734904779541021482508990367742615479197876463646115479633375716501494915133565392838446131743785493172582400555619314111537585612019303406942351521674636972469902956379319992617730707911107877369946709446101534885242541305385720631136356739948497924804366047757212084321228376954224864671484299810935953846683530384382265542192737232205742245770887719135082640288963175669673962505435540416837181136680331059006067701413691468630069523059878786923257041510754549910035261503641038421729142754704442940057220460841924508649121229933740103257641556190507637961445463365171612517501216923708757054162253723958710122660946807279876295010796346581087326637820135437508013877191727985212050354609733589038255703294024247566498129045485895152261168649222291773307300625762352624837921534148116470373499997360397031911271655727529031856507510608976846011909893356629354892537898908591256869086805212281634057789107932143966707318405907657016441561460513174558592612798588951921513111363012312540788932777056399147980843992025817699933852836588940686326030638942548946932675444741458906782188295487701482449567023213989865648876909509234978030131880813931214841698137755213058915148936735402441259723205106011938328335252982909483981677701328820363852514524516774513856965119518522272500319337022215163089851728998599561656193205848342456143128561015511881776662526400773631889330072678838467467284271486301989493334834415523193286965485751189961763239112619924190162611583381393542305234350802516752026376415879684391011831976828635635973529926253050672391611527377030996773452719638180802249878820351763360400874791834557354477652324011053123720190800720407421892823998659314075260296400487771609556408837704712266251844314198249411943262115233374554035806245753876657999530935309081206993998489347932818617689378319021152290064508166614039620613771224818147743601836244656622054497843757177720767250387267254318846430257663433409182479696933101761987451338363896665276351380981415155568296056232272942885151191861352130200319043764744152764449315941947567786996805876364803605254355695334721361099760158869393080975495864424716708572902164094445569570103476483385567189749971303744416930476959064323146634605194881038691285510744250518854474408398108517454909302562758496588867770470672800762057685258691166200526594831558262987261772441775212715091260496331950780048374873138078313976613417922080448772828775026789107604113255782319453576236580572735971705437865476873037839761815800138762865847862394805377966791019318690489083923703967284301718874711859247821774055385314256617192821867873016673395848886429873770922673275553528265941452810569563206963930763995889659248576018537381613802867115268898336904988719227745139382450678410541550584395941566671970180838121232070730188777114279665809205384668163307747911649645448823950589677805197824175881404261670565734572122848959290857992795654126388373786340215580871211894625927564290238023622903136926974097479496475274707803387998358972545547067413439138064790505629182827784627401102139485888272287110322237080958087637109549599500067965477522272331569454311707538962556136702298221152993652025681357709254325582078681107743490006218479204812083531640699929259450370240175823300145332550053166412305572746313616580828248230636326157762525079343063184597451713678640147397908885324098378857072989000578913119217572919848043627366535518867255486893766207850921237240315279897269258296695862169231192067015930363230081497356205674979666264237461268157121636956372012786691277661114888070620480475737239748741357360291075090034516750052703004547888029324226654127323863865616177745480118786939853560303413263490083947723807274228734978723346750783929479948655261890513607413942581727306218557855992950349030478169509401030794570770227549332900397288120767049569823486428540205547818544701141677798988568915692786697112017885035002482659819948197371246795223917624017836708463235554941551374208221748629912008918465623827718342676740111160447929836153752169687865939866571771789933960959140409184466153507931282447563279301884402320394412853477289404861073588714011005568668913857120565907784804076412037051052167548145468499869885208678676424336351193220574982010630691018286967441760447374652327514242384231185511064040695075948086384389051126782086622279815747400314473633789976838943381128839837365724765098200918768248947250138257042417189020403696826923601338924614112322426738150190464535869950259764834077168325025147934159149330911964491447118244909782854626979831584481020146964134656708625211895324872205069559057108818539846217899608130082255961198757796450418066548674382463993259864980213772437898610214897547842850637677100573394092667911229846002179651670608752637020537222525337110476560287184696676351081401657452563147157064429179009364754188807199786443433664493250328411369945564258343082035381047731128971535834522143894261330362935905892661749039532986087998818141376671679075582517212156913664981207718438336906452990096892260691984954974614817771115828260511376270358367280557244374608240227230869244560012028718150400011769434981707610519857408608418840315262797466108498722459880295830465787454029379769660610498769099624040194828972076104318236376770360816815894026014216671777255956990412202072051826669746349039051939547792875861719078942855731567967374019022184499408919572655072669336262844345556217502155774279559373885115089366342112172607370081135162182440272267633012704011806781198436647310760726992412860501535171426875552364674527653316729451118140601298370254965197955351301936493172361719125462450321895250110363221133895639446537592281271707596018956233339432432189206771760614338381891152768501674783704485087328890849092317172340203902561354548265708932057755054275096677825310415721033355161431730222777826683897618664437312802993978609608920339467495059039679435632727040661047574282032773715212806778201798763372630249705490004716122421899727142565050639082385400223011058753745420029678260782129405063187329081950383578109499479532027108100565507390090373212963352455656556591869584564459090768134763458785049947734628237403736983668026391063012840123967369331201852588896597234283259845902386748670031217514779887652155013319255734157353425048073320067244760317070702388957810647565823018880147446114659388991844702013628401042701914003732129753159169862212239433792311139566847729750698741632119579674409320781713007404604384874678628510485565400424654568454684635904005739685267035111361466226135714592216623645359836570613771023448638655787598655298236157234766266800931263018249075356629333461362458881129585050088132926439458603076466606295366515624833319812630905364700452021551205446969184609329951476528686913182019371279569308420492849461937289591483454001721046060111558126583015953312824454283577017951973986674492102331667678715632391845128728436435485750455160617548369439004736422650933430609574010365986449618550876531531808777416624913321276158808572415020975705656237956213035356075053419202070976349619939520860684467364897675922217737066282697141221778086294813050441223651969809368682297066348956070965053939814562859522883357740073932606601504267460738552322869883788682609201050516566870988446776900756402014077171462940461998618703151815645477101915406280933856242929150564962424918844253970373403697794210829653711180061861164909136436229873648881964221326717197809548950412812104569078560031894948068862376067790862801887962181520978256686973303629255992022469300765745276197246071232271855599235194969812720332267970126576894939102798441142470078032088559709116126934915392941784659924898658292514514226915180166554069478646874841615901290262522560445370362791783520692148551015677580224335374699293580386886300180466422943024842047544586161878976234473698775338293824230342371000157192487526679306860235767332354508134164911798969919979826951256584574957545829838836133759033880632649468788457062462158329492598463372552303919029738030326229533496739490624768408678463394905646841915706644044911910262180190441282252382132880546580202605114507389052229414368926465931541336620883049965277693088023295824317161614989132031851987040969766859076558488158668482384651633915616606366029970132556339238764597986923331627533168738102093889416536618875760636715237482810864234583147943493757292319193117439863260453830656943977370636181249404379519403756629741388904049065592479407110962501928180621204253850325816945187172606787942364063322965260823937886447973818249892248201539838866711600604640030191782674187863149719018837389103047443814114884235283139213372720880476979330200210970376120983690068392485515149839257147524192459761193409973284641309842402045448786812941220523195700474637152126918125965854199613441426735103082458456063519446205224676601714959093562097843552228629422048593022503773891152301731623863215515007613466884864974947641579796308128545649314542039044591389809569657898582503258097307259716742663630654140406488473200095989246075512630825061078121276576521149966847359852744170423713426806796586434507791446326015248999041686212086674022899451346195773429621187041514191962081655462915244905218249811484364527927166054283866538996463535195450068176341135300287893634229632989282761207698309387946794366458493331078820550133303965009843621188860459429939777005473866741506590246330753084167872937456521585356943533730621005101644010258381776567063324482527124925541975787360656435490050878244711431750170569609680647679733606262538904438841742963773819333146361473833860942756730990518857003412075400577120546773515871738055768785403814466360856399666282216591061358020755209758400118030657155195187454333996102860427231442920168327324071238453736138545719379419400304829601473638345992569207426142404754934904481264533698418833999594512291131753682186594305074785986020904268793205559244731135996594112339738032911782500540158335859871784702539285727036230399738741859175628098450483578790865790169743206736145325155469597627875536197872319100875551257497949511115142015489391134550616299771476799753933430219805806630600868518698749327409329042831482436984478050974986483538853065682158683509960910887244594772984993923756901236432292484862417697780165391459051622964003294358441440712558645243878255124849273443644391317932068847598194471500117597304191804838061708025719042047391164866804272313667610808494408918343953274331852616060942739569014604381997077110942845169164974020790157181459066279987773930312515530460229482229785115005061521550313606006730997458221398535820539349690195415871697540114680025750658567228815975950078005985462740155057446912601371495001836484763732770821820115285057744821336197180205963900925414535414170916192524539664364995209399943791235999095039022036845392611082394933492393395060007591804124821648708026561465044218033157981976564371532054408639510294928454812684650500142016326360055915661550418557993467549039164306372348803003310433778606495613059718742811607076673690239293609453824106396604586805642561180582660116403692670949932700263264693715899614313405745612364114220025722284574329283483243922157486022656241912433982748275990506877080795502855909886685051796760110077504704266549287443526630890648248364738737311781093333485073473969859693503417487195999827994701401498615499678654269139412527506001894842669867923266034252934653741084603401965681151934987383039209062559401368795174814465918672119364352198874444230282464809472097594660664511980575206705187141838532666863516130246027226710530433199156252092624664892156198734951345145629890223401965374205128280419060489659396270567143063172659103599362988897092431112028252810327401429676274787035231863584047088542248716170744136279270934112870054745597498457688285677649835716992484943898482423017238548209903839788116163300662547695765527562635326848657647403126947859341993595887283881452855345001231111536977935622000318419218937980017371250299142157032867634967649343451206829870922096136578938452180701961272362564555833234651507096481176224436026507604511955553924491757951419706761884817279408073228995188297528540057388539247522019228563570905274309540014843755878976544021358237403124707687615360392705560434466672679319662022992531667171838351483568114613911046203164706183062365315769208971506246904220940654352739716315293722923100526011997646833202584609095675363152064214375415877162813526161161880728760929950223183045228615376600499010180975994683962343497878236956944002488189104956582404221026841285332236011549892521395884910044265045460786533564364668221461761817973837206878417869376703199135784294137786123541518830936779585516253624164790756691429306026710808230530561012644060011929380478715420545132408988917345242074023271101239007982501237100668099071596948391906213829428731597073044598179945134967424137003182783752718472856382657605080741167694376502026334808256139997515719882372521712131298219932930662017509513556875897395324598325465723513163480419558094093062904321163807859085223107551684177862819907977089930380162659977289728346175054486293664037057764498151253304431331392128115261756856562758626909706798404210077680772668653227932717592782484612966284768734896579927800232895851393173319411830205010390147976399437544434650635853070114455656857065207686404673229223388700486743016574571720410677844214682981055860299699453103060842545451338814105502016049232927393351437331429472624131336071967366872452238042971009917763534309325147762387658722566089019895874998719359949274366222204951173939395672215017675426790894745502807286488605935415509304924180071641465674972497640737260046236241179280795820749742040938152832106704540789961026611465255445344147517003630064071567182807627414089454994099880981510704200100050572602069718496677080030133393073834193786077312326057684121711432226938693111011447694077242069236826612361013001830326841095178109316173030920339338243840406645198809190026574771045204824660701008430609055760243408095385053606556589455880971748196360608083840372277728541190233733723535540037156162786362739666345800623068354951907171867642358504013029534676554785917414709910428005529633313145329055836973231676542885588529256207670383658427144651261808923562770547979307443267687490888830647880289025312147591176989970446867941909815415518258222065332418698028815165249646896132216004886232156694528184606907865199865824766645844275470701536183967676677147774175403969888220463464384688769850625759114750672741712538678653991142526284519691366129485430626664637007766639272695201551735601984495993119765354355874649843920215320251900142934035473534689454137363373428464276861808519266838083071637619597152050816059768428764960865127406348165372785984804223300820360420333178071220266948092548246236260005477006833751029379066435984183732342919773325986837170759725179834524938206970756373811734258722801475412728327725124821060078265340584602254976275728385443102966097101963530140470250319012906183816687112883593605904407818640960262959600397531530512798316573729704652379509686576233840862342802946170780923206167806842042862285541215423049524610669913057470102277761146230539222425848890076641798482491509209014868097009616298534891796543612355039324975338181403599023596872276477604463795406379563568766071218315044350845500010729058273827108199891238580826984917545851397001760695990484605310187790721013049965820298642233213095594106883262596458702821526322973458073465502090732006119829721579386047556747087610232366581442587297360872409520138120685084293088526472904951822857151254478602018452304956946743635843882820231493515538619463708467529588905040748072323992073745546685119428922994176368686106989529138988618065093388458681595611317947521418475865568163227431177873330035310878128916624416309290696769909401272263773446491079777301388051954954603989218587013318554511468451656198391653226347663684835906620234035559332322848111121593337367547135715472726269794500147617428199040920073988795183411120565052493187760371282520310579237679181849692497314308155503043560097752256885197360736439543328233960109569414049539083070281045508283896895596386465501447243939747751847411332282325401705120572215451086956915049995168411623983837530470777386235957414847648779222017339691428205497232945421807360819289861295837117926660123293324395469144128005417190678972546209687947895682277923308083327808875917276488793281588229517775704445449550901497107908162347967627377814976200660759711668551108978962862658420672840087496303795652011916429349005158235369698591799193638963620867098800348084224561959840679544652415560073692938102249832363424983391562808526258087982466231532937031315052509457605723910638782653337800491772930802404450149610823628742184752786966483237289957402165134897056310212026181025339815737266420934492424214604318485343782421215907414918373588937008738493596999974686643116316172618789085247066464487597126805238464536462514460865570555276999502995533848823260825284149695947855607641176308781403229528950128449922933577767971256334012244957505659526323755939954457816295682196399012482560632814682388587160446550888319203127225509741380337715860720636847116770444439391500245134962161783663377046534030943778895255667606338244649583748356473761230119778574613727648037604824697121003869699534193542989236314181533191442007266856515720489851409214700017320007965787911213185868409654284428592909043773300890578179810901976467111830588920736035029988398993030095101148338061018463777587830183115146372860448636526251189708422899509547376269900071317148962054937027223907697134756732066936950451409550331312274698919093015497608267446673385969572714131631510171142577871500142685921891333918638088906167908696274684702795626197461618807893108243139532378845065905170630544067810051782033879966184220803223873636059981979824732755521353505336537192203126295810103454025570284614800544715946189291467914939078655806371111059027548030923200099940420993981186658823600745734686986183618774748838249675552978329898606519788697459424705199073009574549759678249167157082094997781189166764380048974412244909954231851443063446483418579803526009606170958296925191731582533669336915059900306625305464902946377652194359174327534252223288138242939435291777446927765657519197463110880159127968338875821288357331429930284640895741684481454958749313486928940264114424808060759140696767076187526579052577297012790141079509672038484873280507062076937483906881257030583725516143131618152930934352024999047074459525475676698672310829749645918706304516991246073451490718905812562048310637745193099379364429097480854947459687642648047941699789608374750272992939553883189574255509550917201940848910875982443987004987228910577229831826328723364741819990481272478503730696692529729198408884955192931498260196434849465089310046966053031408027483852645245358599151046836019666483083669741509458082389399258259758850618204027933679108913140171737285453753651427361379622089000983048271004519344922760472009860560703312226015148130036396620267490994607940299724639871839007792675097900174463131706403244636597036443102269750465627527671503181379431711398395597626417211534860481688964298386096966668960010952007004574230066862977596318751670882288708009100171576342063204395920084595743416690895459537980629750107069401990929859620052698239561797371286169801703916867965770385349343445215755426072880672654738582798525144848584241714805585404697901473143668612673808421197255506190344284715171309089364878472575310703170331260069828393095565889092005412749998093252204014519511721133199305982779587343130795208487040654953728735659560740115279492741337990718811774096516949170355998534249824525219650755963360524609184843320409278424846058367054703600625692649682617245804883100029200399504252369661267753716740294788066345733818259242536793077278973432260467398619508082350828195479466515373105556009021584436702002800602538531521146478618771729475720985932648641631541017250016677394267566744705339357474921450452654371630109153002884203087664977142351491353670550261621348071851824306947186600053688120757032523551605644323404058362594718427988493632793202388908701319135502005302160654962271165329489308398198489958426587605505707297098767870726266848018255824552683029610472016747577192046785636026580709629931295517064924697168136054435149524314188655572763912722741489342482197559203181754173232302482167447461859227870821085927538559465253956336059676318631012827938546302723365978428524294962038846933302969646982093192540371989038453562053929657539460922781365922222467103281997199694356394075806334916287700010277653720186706791390083161650600687463437932022852156701883838638992325243246947862951237975255268607591109936605503484517232898568460760381829180911261362937515889147728705618816808116203897307691912658217789627051320902984808847373133943399324619399178890134055911558059533856443760004964618663588697370425829519244527330443999357304518311879346515830274205034293808847186629778608087336574761941857382259901536668823624948189097742727962348474553695102536370773110592819746322428724898433845360539451493312145292043852874263905593703611984997045251697972608894795477620703134919381969511903905724563784639828527538464659786413548243030773898074707612748702354685714737645634450033063769388669568712534970348996824717574891935089869084974665459381443341739483738412819342944902549027785655630860353443901090040667770522350317145644791594413981976896933940617600316370294135032538892132980875032738247602050518244296758459858055507735552232161918352054785412604101318975946265422618200703376433653565318172811998957978273819128633929776317474795026628401520841401760408145620504463940458311457106006211886829215905131210534687304289030038397038278022440535078094842911862630995117760286123968148526743190555637353169413520174792669052598694720009925939884259226804886882589770465191006601101192679004648801680940866107679406751912398623777142506604308034409034104444435863994371046750948533903019150008496243411296582335928084130053364871865593353686728124813158438453906256838143292824179451461758517696560523431286729855129286221011008052262559820814801743898307766423941815790634673014193908312354469031438468412939596021451195456270046666058212101357341332447058044416846353596864134087909345687492579265943393083668286842161140232947387347821485618192513739195764466336199101815712829895486252860046272999338944171409814699640223219574571350814263636718546254227888610888932440108261861843487390400993118402749096063630052526882994756291106507304650522664884713766431780780738535293733483597782551802782615208071911606572751027526705738149682970324726059104000755050716072419451903898962200011481229428191582562371003098516053018401561211864047313163291103744947225276128662328624400168718380454259033754168266657304145689129429501070052450933903855892060950448799109284066557473425925679447345996462788190859023544161820765051813935865713566206483130748752122239464940569138091525291595254000664296214687003949128183799051382727275549424390517249168402530981449687849866621275683096955570777748140498021019048059288844684559788586477272921021553042400340497162178340357255896425403654862837935057480965283042039456711368964862890976867716910102219650640864157981357235783878609795569263734589559271219674924771999475527822828472378768639149285247980322762230725101747258125480761378825177702372051689847130315168256955708056350761454229307631209011718499183866604109188342544140766359323504932830192893205742097133429933430732736140840971173776082284868616895163387845681634345533116526276029464531321483942497949719060913769199660321442689381014999241018942196232527406865281723084355320814729355498027784110930608277301094548520203852796694243420737611481957407707088665963111080608186804845008283865724914060011336200703176097330396767124341934612177818121617755655340578213875035240869954610620549031487084386235369434652073764081224085153409919844135256754829051696304296693200506684605302113740760447678997741763393615621331151222082515931786311223264388680924838015763868369619803246278868159322661474875582065074581733863260667128672220196801890226219201786653790830640573262303619984407706222697184603465930480983781108487990738400206336918230806693502839452444462751065706126423427295865857495050110340394879483069731751303530004548807423649469592804001027603668824893040382979472746259605438614954461129464052282445291227268109554740940852651135866119785160981879702502685468398244062838162517404538660717133305016218089704050368109674902576037301279958411059412742730384101166167815068004202411226382461265133859853600284708208520841134768031043506547580036463868430261597703657716847196681464810775823381128325154310040061928901770908146270723050380140583093604006013448458220561905084395327461703187138528262328889543353030436340889578966225167976207422205934439408756909410855239173882951012862642432558834243807130350905312735718637933910142008910602750951212249608980883663364831470000537582376344993956575374111430039575670594247947312312660747451824141380133549400184462468529543731874486160014091092222206088131004370687030773480846087023335630787299765979542174685740624638068734700152840654179956083267771298665388154723383884242922528544312874892770124273477382984773179243413749672432776349840319754280759442653107466118533680165976268642062479552456561489487377277946943624345526549396600323634922043646127789621837744602651037141712184284867059830967628704626900391176473678549697245355771138582170135016660073203496524436400667679340416629740278329253833119269837452349651622538455282130682330149227214363307197044614330644977626952792854880542829948198986272477836895102388892478076237489465752390817808999139391619716638127295204397471081879165291956729444438037748355743273290178262914232399499504305516477497988424883335505578102218610216168338351749811213688780618416414080957916564776410395397890171513349996384354175532501253360580861036908768631662418307533856195005319115283187002474502883431894728723353172149763061880596124490191878059777286028597642728883815162405441774063740020331490772189296943355580743100794189857692620324761058002432015809447006342987548258630656061222811108879756832843101633281716669832513363986944161719330537907493569957360405013052902746684720818605755569742320069998158881734307433801832182230318153880180101480283202819815325205516032506612525127072857789581691247380437851922541156666143589957726988800113765401828908164419548149767698787122689640782258367083888748881877094413855074407205298979335342064326173265660268568796970931863795851452605872149016567666676001748461147849855532482457968480636827570678026844476111531135610651571965959767414934319439796912730644215346828878332112463974906491574232365904255571373648339601732382011635140509926126431165314254035909896718632894539739933156460910640829614134169831303324564820210283417783271717987029210571290416853279103981421776437847002870382333597487656424191947765377782532924386871940568566426555020606445546441367481623889454450442022129041079133199220618487633456832989273729132749241168259762377287861710227375882634843885459959825264667641596124363528617071455072691902922127063095375936108749993815388154387080227919701140264268029508670596897477607321083142222954744957161084310958514408642503260794918807774992685266440759934415291037193380388109540041283949761393744687284728716801864190963589083882925025206180649500841379195259526194134069161113407758454705228061804812975013319085659742053462399361607932826244769620181175648867397335640973069244701086546070564299327706794795364042582694002378440108558873518911793769317854022918029884457406193138332983035040275868640066571208854589043543693644436279286436884892683611528403352799790500850315932405678134114864229579686471114659235277682948431329274746191854343458994359345975702154361994341352131230921568288176775432779987313303124458169229493162804821266022573160594557204300893812860466043805479707765689776556080923965795267120895982227609832307012033358914062857019578603333420905681377258102130347394752133812746990245905062634038467014243714879991165896730998470456275086463252882478091831356262912880655579773006164219889282621814372152828924227496512012254244640933238485724193806718174503760637558986039279257722023920197224585361910321112064761008393892387843779097637377119602176189855564515274581469537494785858343262231863590054288904340582966225956546712070365518180958348455415819764748410822759650898707261526818685297469619986066853337881262318470863107963166523830855044024713530037089935092986169259392402121473348450185004598406456385782079983491119206384700180191501763877288346545782657055277245893468335330137060897403646864945124987262937955689993885481432624970427737507150764933366610633889328098389852841663119987929462520222942087510080780663983908565010662755011870430322620547339835512665028274247524460471737356359864865540364023561451686749522501637569064193694934933989880564353154357045301477534813493682879937104123134162781170200530867734566005798767405300790406133214755477889000013048475918919698549856151202202878192551753429878243465453655118424042451264714615429485792390910111743676619508104831647007283431450856510132433006548111519030734943008545561141833278410177297440957527180747946240694413675504062631546050960081728389511642527186877298122900683115625992934121216048724321174460700454090376620221732144012574380248522217879861713826260523448297056451838042483289531462896234131478849736544830986103858902560116351943779140026889949710338039839113345120072806549822857133990271844251432958369120609588642818764940819370308507648207538283784489316499620190128496916686612780646125157152741522434014780198894288272814172237202160089134164080504849792916069368984704434268559521491148822932359553905158552347004351142454990001309910711805528685552150206125048779804647085143544515969728845435822453718372752419825731348781594695382618284923421016472562727036747915784237799167512352109165730242748087739727156926927859505797440257974921105113194368851448127325869339793312893306496526424621036778852728478801286525859523519684238603746071863408592782152898130966161139233064869800231231758315154745053169330152909538865665514056158063107515025563696102424931356368368490563905732911371562357494069424074973428080312679718980819256491371913616069388188646459959637405437323774288387316300099300507185833310115380594982951394544477779154870947801935082959051870722444000763386468713393687454706571123764595791764131925568944286675595724239276034245301806676439438744651036499522740380307340348781923644674230092807069484405104408069426422434425866178272659281714650493749085348524998309226227868682903253648924574470938367005439486016563708698572297765045181542968559391315252266984945855821217832742224207712988460628724406978496845854429971662236279874477110703379799559985060555064168400972680989414500704237026176196846926069928576406016885342553598464037360593510180127742060468326210320979999908733919976941134858925174127060164133605438655312462871928419100981217619012965105356116687576393335216050722509447552649391094668294476295046633082725265761926645301283424788445028420533175595929951346122734555252591674327537558048832890181854966810304893207822677569080945964465205416663545902686249331470942987853837976626287136897770783297707309477306479308152743329742596303848509264052356773475995461300030770558163054513245148859862392016078958257422574770621978265453469518411601220506857245513172729366406852955523916458030872930840358120385141627293567720356114299830642772963034359349895915158755739562067337106560965239072543157226054509944418433676611483150003123749237666638878214591728338362872187848161966012477068731265354600125419968163433639376027398742594828605291778137471169298748099948896687521509182916686842025798322093380668583866297887351304259473889496924274281210547692464074867616236618635312212154750270157066570460653800531059752032337158746142306041489810561571030233310512257807870382665958038298033856291186422279304189495804787698419068220963553336614776014456905992073509670527859274570797486106926021718678682798804493806828684642585722902117321422989286361210767895351604529741078523612585986548566266182350734281056326641522727276678725812865069926475434180942814657098301532723480686059834630464305070966698881232572559096863089749055900429374281194994605153050363264650039728417775605392200706340713929256331386825598227121282068315356593256991716586890593662890590182741939541785164737922837937385425189481561835552535925638665491815714404155571681892773018182032651664248674302324732083227631930230987767606395767872140474294871645897883238273923904976255268532472857129737059916631892549937478299149354190565540769835741300735384071763684497039193181813970636181512302856266994640998075749720370614289618823048153655868045074245089717834945943434287751698053426882322603808682742106758213962318644964213156937384835461239725438661495765913256520216187494089989956518061113522218465489285988428378842138515904355657294991429522475356230618444025677467179673821650828991341370632684680894970992937688872116285343999215267028580431903350532621665248508844479619494649577256743756047759089310985381890160720969028926921542929858468178745536698559552770107809059883714148764380848059795552048006726809204471237850878252151317287278101317480367830720345371746389991595455743910037916818575099766994195178031683602086037306803007506016344792085041703896280329283306414821036909082219613131324197942071937691018515133784750737143284465163187682038390372457896469175122483580018114323179216784699177641399698556501110406059523511898903558130046119098722288241122018354703441110567323534356752092727346316219332442863836009226553248239668540868872854717550305054682039091317235930346285071941801550213272154991356457170410944991470796765564539125676206384022364060507319999774587760733502448738937164070984368116060457091795897462458744502877338773600904237573231849810628717748454796479256507724815684039067463178848666658910272720892105516671061050430637122691460969397797070521516952828915512523460143806032278672483970723926822987327391078398443014857936580282017881082390202247428957782860237996484718667758434255630301351219224809335539895619083691199838404759996938282673265983488028834962046974670714760164131934774988047850201346733978007555934806659222605060576715220776911525595992099294271947512350299691282688474414223094547368857247830391624435895457516510825292409208900920341516274519752460036106264345612562075713163353396470779110429349030329456656358644352018217864606315234404003476264571943089348886369123606578721947363847281267315985356521668393915819694448019147777167422793933154887342411315814947649724908643625716747065589299507341750506896561621568358084275803596929661870519442490865560943480066292935353078045114780765602300721170779019861508598793563724531783321098557612060295895526534288231606717193226035061933289379336757830505159624093004390102631555106389786329137901216097728228460414391748073891609138138618393664214864496616737432483010044231318300556754946945613252280358336126364097862324576395147264903772431968726475059563350786761560467003574304690879931382622286121346629106908708557592835701306404933278688495453405179774177641698371265896777505745632701873542586455226558134783717002635025274488342119563839306899566111404073562180034899263879798221210124425854542147836483850085491924859621649058989107506998925626301602750747998609685110038489308818988108828907415896510522613211139271317524359721278045067964532380323983114333283796111455257819484906250932282336284815449665244184553080988631913035199863005288234147447879086904629075128977132332876912648574714669504428046077471369820125587574175136000161775223435563715582470635817888980176068468590467816192158806419017762631270435633236498290830150545957133460982362441459773115587031612323261979065339091966933059075123583222062369451522709252340482851018927992004240758015375731898785861466518074017057792479080035591535455312016046966047683512939569684487654111252679758847814802584883122207355992957923955054526519233099123682273470645119893716834643454972289461959418221725319317184822692199573309889844138082137077475305726969727451971784605342369604595823792733909505285361211876877481928553233221939511898764598490300329369201668694459368885714564630328175954929899186041455397171760925029616598714835697312118132080530372098456601501521355198223325463221812583192143978664624508993002847846407151262410604830952054225373019758363177230212508063788669818572393398904149055012935523730068067898479482049965081138177954615355307683192978047951176580874312724227441012152547344740216498579854026560101150254856208131617101559698842326950719673831497608111836756950442730200334412068856530270523828666709598719403235954366202451275570540976186259411003474155982575275606834058442101997311459919067927618765858721749437836271644822072470460193876685253505850384743627376777805642266517158084228752441567914581690236362449942459522364943103188729135502949123653029460023620455385534998462255101923887012002655343903708771716336647603067778052839695436437462502992373941044286303198459228717786523310905038282499024882405118802020136324642335025515496155385237738666658727946356703899288617191066952613888201633084996578154666465883763031922648009726379626905920917714248619142672566991604974353588396572325793885779080483498937047516066709351982353514012983889993497588959261699997651455175850276032948096096444184394915058502340638276904753411332424725000907663352626972176141616731084952068142912577280284686378613146014332334166119066819635280256021153704527729586916721892468625565108638804874876969196805719314276402082960939491711828990188594174619491588941375430198093005975210860146728468053645602182156905500892522544163659733162246992675425822983041409614200313477648301017983006651296804406344092658658043886154710961411131196855208473744936723154555907334438309217219313363965281809638508267458737567647773546417808982792810328300911707855119854493441949972924985703818104257683611784226786727449121834128948723640727380458852341152887553448592841731726166558271973095384542572148072412883335077019136957943049445558622302385327787465989190849387725653797468668372225045706337913676871463108459511586892351602700303647563776166922141304647142216712292292494264680175829135711704075533658784848995176199438147411327944218865491612544474041414758642127501766751861838955918190785438804587811957563791535406552338654506207104361058554190496098478279575629327766639653986725842731327097642291024806994417383700672790073028686366784991552676498517552581344652207293512614812705698216539482086705740677724317483464521905566032433101447094397437335740034294657309165162668117327813507740276696653274954345923436174664007325444309324352735363446295227378441229941259455202979738455565475992863960114680730217032240149819267512980501213288989701373776599678859593580293387810234262897852659727731407956270111059312426452386130081445932226641604889776523968678468797914421115106931748860184735790632373472369183084930400428852377768422612439298883830722346487893804888834839625548762522055569446317701956656255921420540393512139995444613324776731773414366730907773135526081501843884838245804492278260130134182627712109853193542391693921903587032804164198820541786588161707678102249036141869536935412311639113076162027257867274436593634767205382508398915292076094550106067218919159402247881232714160262927805937121019840961694557000213246409617939036114295222074012830474747963044646472515057662568172293960250576400115588637591007210377046111265380001517553662679976523675822720340314935485335805720358682399989889154223103034104112157970522271492273318636480260857794216795963669351664617976581883479767792890281270894071057432163707976806344063277083901973929570647669316804954838762708314224787817303225294654977693978064282808218236104093558267871962743923995588689697680524291476794368766355484007553834878636018963382871743638129005500740896789892980174173251607463333621416320692543379528876521494979181990147217510798081479483005598078093069566706636033360123093137969979624998125160415421308473533085975604717589004549903771265735717667600794960278540643128847043414314254922969902351429192843743728169402144589169067468272668471947059538214762979593127694955567025518973717615754358620538180213426501937682012979511035786462913444979088672151959808783532622719808712095914199348422521295841424890718341831604939920930730917217967847104662546035813677117173512563575064553779165369018302276764673387550054758065975078351505687928520740538230965779172713351867840844527618946804438419262880329280789905620596290847578647807535142514547645155868004602676355739793415392740590298016306641963106024598890424417384143958150157933478147172429360892121121397022427004588434372233628469860535126035231696666156720546875942161582079917756769118896333327209604767441161435415572620298678544966220321216698448014967958292575938046442812751145201288303754521249194632108083333730217811106764624806993522597664586582334679980400186080730056737825646540210601513085455631197011386461936838957584581382513734953457408039019025978398178260378611367775907503336273388592349282699988684465359694612443061272487346714324184862212645352425349754060660194448642828866865654757568618441509388537853906407932453732483197610173937314959012841999506452877279289819934753258472778445971199994746243624013987609832897432281558045841077131217122121745468703375326483113366276065099761567725371950889549425674632958601397968147228666731149588351330018614640771969151981730030807854724629379429001040225212760543970180328726995296037369648407084802790531681261283741126298546865919507485643791401286835023928943430760803348214765106913465863688067707882541826392649578663882604127944598713082312214994823544607712064122429242079112535329196456319821490375776223269618342945203020164232174347378938828288611561950674129116039099233915179543270223990975037443652047649553024771325984314344603640962993656352929703485148437319793519460837376641663445426899159476810568581218328954603166311758841266407258260378386094539399040440050263483776905654805091135930513060781951620978909266471465054573888608400767305761601130398783772837810193339241317592607189814414635984472232411867078540581514916817557553083185991177578379202432936254155452080267977468450902467820644796763359741305795684578929761626085486151108124226477460622366410755150133710039879085805782039211887978393632992864832075809504097552601464078736673598398971317478419202721897683863292823299084328334007072586804250029951028179636465555789854259458905356528798043806149642233549979415164304186983688600313975867359494618825852750713286527604148345560559801999116111043068121877443647064198154371636660410269904985812802382513077701925820051612863350300144554582653397097774236242819289844412480755647646679074327631550776652773785681413493892316709046181021450193625273372072821203358108648414979978637069872320794475838342854740350553234312388159445061091106854149962802612303519269198241011756153917531524065985099589151402482739913616984123399159204937730423073497381521135041264304147047130122364069522183915390896452901405105514543934178015850039779026165793694008797275807883559438052813592506769062066066008851790560627404762374984096191608997972557779573681273795390342850946663039660427078189901098636456350714887027450475869067697587796829090524879822680753126567675694618187295887636892781560600898924387515460314871639001845935238521189692368490108550784784355921828844607356362264424539125753410528358410115025704347239358195010595952294857409476597312391099932012453004759799660937546747375680587543711063839464435711524223550750502461638621715360442175872911920473919750260753615581765276575700569635310958507552567743803042936153206526792195394031324310899310508833843772053389013681042246817805408717007502856690166550332157497194016576105673397027088722500402851452054477099906484413751135330306160168178442102866350004864222396688334491363674794481407495360264296679400914249323186183583729259957443843402960567101663268492249496942647587031431848009052084861283783907688198642348552601370663184966245152290586897645143929260585544183411666309218545307043551682554420011513292547110080728443196638532662155040357176224106920258027931837869004691470954427288437763043645018907172559443409797556466388598597195011359866405988723426140433076982635782974158080294698950170220099514075162869308268820211262320548305551774894736503983727791776374727272720506988599205790813693773412590645146934733326857482285858308316121136347164314566218874602922493294832028931405874650077051516354405738415863719923370375770009361058701319757046116775676207576482597125007125015212357064820663269905086556994360231853474794344388395176407735151238983312738108148750291903338576263746047893750372927955251455667552313213874386899152976167545558277420669220447829941014258200337800993203067665174337565929699483451947478987842953512154571305185691984875194897648422523444402813746783298619038546038911085691896699722205922480826301374522179588890860294028636567318709901236231946141134545920644151221531922588407576025333273094601835980574337253037573780408871512552112047434773031791768839797906002417479302612728528672528316211116083032582815337537076487938522535671353117523236661919208623704369335811827241909687030616968186832375534589161101500434326054166914716799239848997747042187061012592454717745606292750710717639153717630571947139874973876304292049694240409056953446506424771977112401383347911992822439393752389123825223577663067598142682906424254001555673988614307403118035876776696298548024164317909340940361125821560979787718138092284263853051508524445916367319747503010392189262065711093933505491191731224977056054134630259857593236006702830959489645695374052574210710813807757323281925049838071638297412496787881210875752492374573793877006107395208513815637772529173952644155366316518144769908781776779230187202170476008817996366384808633155117709601632151253681530406031633219986087053381320346395579406259391958095125871676178981247457191696477948360058689495740345023777933784562311185958079564510167824216222396502162691198766588933221867838595105528082078134201018749233789787556441909083705710952922048174195654476373831928658585337448543381430718759008001990199290648187142670671533985802064610319276916925788911976045839126103654652039379313231813592378732430042272736523426730038601969310777576650140638577555623110656605315799116772404037442475354563506885793780804845052196183039438914325136803548211309306820950824559572875922642196479441931344977254018351770620407199361722961361215899164898407794757521391187380404943395088986278801069004425649644842815002088919992684761595680408624573785754776349576196355834084608008929098628582021126506617657519491141115443524300706270440777425406167378266634566729483068400674489337832000259300870521925676780171186983756575687473208831474917084029640992331678693651177542050675780164427342458022486522186688516516535962463467900153998434205720530535478369126228866643265673586790433968130478373013415091684230817793787152961897871190143067565704258437100665161111818554745577798158544420078026370323490316603613473179500380567786914644501028048993718898339182669055320595897424258960768413020307628474768014955193911550408899268184250168250770953913522657669444359600170148141114574449851723568627881433260958798827364381606870888056919561806274988900158637708868592692290315018533819798174003404483173712836155347928466743140682900872614949754556937334431744286773812966001507930669343684874210735518502680127840328979392039077323466835276634372066673230411956177138774111437882135341778727320268163762788393149978118994743015549762129956948697848679308926032821739676304112326901272679153815794690177390147070975299286965974701298029573985170981089134279611534405214360261160888047996451640740848461039790783233799788730632094957610936352939849593586163381694083096447155151794768955516360863257320299057730285799486474125219029592031024105167998672935472530880095174710373996731033402699091078091706327067573632547965585031021582492011587789857862452393896883639960611199374612527237160746575609568242674821917290262137704351790602084508495870356171513628237944162687727422320507295808125816647858229965629551668542582276022748743681952255005967693727534193359757394356839351189264439344172880971573853383559544335072765540118250675055389673363959549140503525825006759407233841971766137766968300439007980815349649095173652883972700494645251238535992850134324964065436979740197361060239967423009813097481045035272960525374740676690785903682312318124018682441423919183629028777133236341353960102707380656245741249974474470984148641957776156934065204331812258868794064421948242227865222553928655481949995673297412546574571927568800683861169796471585932588950484565492316954133277067138066909162324888821691736820569471055226973127835208338107535465504580129215237818114241239375691316830305164098339494928693075950208487165043423167950547316507177272788708029507553692519602076452928402590850744642584730426920956585200769516785648273026096917385100880145680780073531109136910403332064925619021801507026324199821575576096170651730963430376977105414013125984445757992356679903226256863769245315630414692063703119654013032620116114881306899861569216090253294794395937749817619155234014857446925432352724652380235224554800783766607795341105866280277255730852169013007325606526998057797721233515708814594353064216742767049895198806023442912082352724560920502320069168024977631016676617263948749491082858819042374328708908741763084712709850886781909467448627984743859004351749833019765676992321176670157293526844534417142810623290595958163550889105888541488243559835695680607188041449109053879865605298528140791363586900071364956343106710015807547665872016960166061957348861450095610980595812196001496423043075297692747288052191271239472024722976836764141147217661651365928829294319132525454829531664288426629455197149277209616816034489211167574762876581355663926277038933377318822419522589987900988628466241128864530058954717856110188340259954049886860086814341400628914033363015883683348546185386366651694756992446646043534160686469418338288529826661049510522436872438029198702766730055684266369802944661879480150057406015663025614940666817362830297523090458029170822384342726519283856216697117207994832690485613321745677360311362643892819042221577402047646092409849288446767515596957967336181765304010273679309990974719312929310873086189244595796178668132735035969332792344343965456590306787083547083911980480644791255937710878802579026508767590436435083280328660172981845014762269941229355950564335563351176871212590721002320689564900585894647633150786317104434767987420164863389242460103868122979600021054297139255934403982684244384252405111579821521549803316625640750553205733600895147344659909801745129449802434340684408957313712918955198000304619071650246553730629712620574266864727812681691909312111019797644364988770257562391960260580795851532412361188557260588722869502462594630748709437928820633583189030732936468298341179208510671366150388860582272218748377416613252842675695544282393550358495885746672163840297408378700852095470826496377129476608617061104127521977630005313506503267550702930702988013024625987723178693455286895191789612224433208627317425115615142028563594083503072192407901863272961640734158219549728794051399670362154751555803143324355126487995764137116515612657084553560694608285213497841898322515304235769233951415955509119384863914237504183541382274864830241429624977699639472900203598367073457441123772273382778559446926412194377088220914353408684257317549019611744202788143005104911753843892301954243331534896510652254454803395226108294901825243472377825124405159527610174196557915338779349624574033548833309429101594022740360813833946675008826163238744966864911448442928271878954724086689044905299809766835585714459961175230666781014963562670798775749311978487461706675463620602310928309111899784838892308832260242841344153277780072696927954935988470388746558462805945795810211626510403220124674932050692441134252555413456401619191356739943484630692955384220794293571631177730207853575711597331048887258529463259581396848632142613447926715394814437296113648962074294593254881096825418276563571691395838604148427487815467205451877289273462590273284062070726239908718987399229568851674052211714595102132030000728152377652121412210866634223355084158026545877306091699396729978197583234316946295919120709972536044529831711833352522949274399148693741696203651209473244899405201028277502732864154885859365624309304452445750420457010064087753778901952124732681934634184038233422021821986765894878827055353849132666650128498545878861526049104686680132604826976267269842860403077105247041287104273598664866745053833443770948274337558861388129375603549504479063738234564267009241901485882420230856805890126364832930615903539890303052668307552142448058015119128690800209523160081129484025577826844363708261458831290009420954751855628421403398027023517539241920422107351958939493397180912422106897968739132950367682547950878483392578294892146717419055759072782529303006990665357919549917234485767876614001506443391695777627930017480711004774925931540060511065156456253531645786641521977760611235297814440904505209694616491062123737504518733722336856344389816229393546477096519527546281954442100316991917693140832312057082929161338214837779693084998797098576544401546393539075282565622543422647333250174443004374812165175609351290431747119199289750269599708182699393726517285713706401965790856129332048373701097707582033514790383604824994879573566762683225548708584793791568569445505803939541002703713111983131947853079394611540922696047998341012201525350247881387322615073766281462695941941649819002348993024392395801852558103456627847852548592467439117133256807300296240816430664912567712383747234011337944421526331474353471445766777709770007301169396293277054172327530479038163687273469776050390868852830927655098416350574988508334598048797928088585920454613655025460546476370096213988511987934070089764175166861432558052011546099824613686731833337193884303439810792390768013026682876643576905002783924741147762037595986341946471744666254567577755475777338510468843601933720873365053212354728652279989568652023229539237311942522850748952444152674776363103332927175462157717836531573918588970068908597166629862068982119856309361923792985551322719828107531720873004892888227827285589222852070347733202619289333513501160802707192608254815771878894398560219112142286254308178276422319216271487833683365239482984534487710488372404665230902963157083429271024535278881155857139297512378195687299630339813736023496678670495853221124359379127946333218488637203594734254775995101025176947108025756282023647821911696272654931945614512230590526042958306092826248295129160628596476452396204483986556164753726240184963990579462244615270626984078872557998112793098478262033617859942312331120506329737103377890786249335119112367330664905600377481380786598204787445698724681378467808993768040911151186668964836946917207927538707831312527011122210528396972278573215416022646874964981681917927217689111537139661946464703902115043666653493062493809717773184748215566617497763172296417858044719600167978648688617926289559321959569418873532060506227083489869022416131852464661919684384806218132601828382543909026533197377616898358955258057892459971442738063307778354849336631404606520764038498453096164647818313212616075719278245176533010970867094189975410668102436491828917010958303791771439413604761466357725367609877037644691678015211240120093785461285303488625164175132079762343470652711332737890059844565983213393032764671885379063653899925661776871519014606144524675975512083906878153633666241310259672578535000250754706247282697012885949263716200429436052821632991051806061484051002755400679103754818405971073487924994332116502205617928109015881591252812399215050323087296524501189831984767649874476374543691339503389850567402769317952494475222426586646197377247513845113851808568585261087405229288870959319260642842221036926783989340347956568904684263368210210488117898780024420451540976472175817866225058497471045772614900236584172190896155661742159365715813736910284387542120684886540634183426295168542769082547572002311794940170806883107600988363039242398082141833606311685528556580326490607112419090768216630362398239280238278249941763008509078763745516534535626127384332587939309005101771157896471414021003651546252896266904239656193024490096379883326910533497132019664781911940933194582395951190353788076736175470127581735474295010048563995313732532285969039988584658717543300835302828878695584507251691276072900357825974701930355153364083088041367996456620588898860413669067874716972413090049390159951682620814590952093344474384421493089011768515878148144891599392404220519408708778077554545020736263887127639763978291091554965572162118178805790086526406345316413205333853742943720384737408131003528736849798218871191547399820707850287575229948854024121564036159043607966925618262881946293011081897985679011622482939317143877659332842663168717504219646610956930384716123505481075503477534168573353447184112123721134543585318682550609374474749921710928974566692164637595758110594723757535118430327268939104595160066036996201212934045604850951039704795342965372046830143051383281391510312569777808656058895961343502463291034566622232421176402431284160257297194277262504911804453078366651269944757998990377950788793578987108124168897804641700449130009381712373015835405368904548732661445375399402904264910980726312923379036451152295478593762536479802501174325631073518867708612429717996897836182524751906615521307054659781502071734703486714363480374167067751429776076834982316859688820686730538683160680507257972209634286279710473993347266878700892559139410759043129478918976049047360544907526988463903200649156195998474170865431204095198878108049360973981326012400921716214579364111127085883688898909502865754655702077372433155106945969729322686441558986396548485114274640913542218748913739471288051512357149741323205885559668020443897830903754446348970618670334895957446849256838766832584885050112612101716762788646044078090820008424347020459939937435483272636156670915546198035707679177553626663611794536069855007863465643400004131201916526025305887926491344650920186735772857397759619016336864692301922460210384730792281798270894336866011109255412881978770153200818190877206807193522353939812458714947262477194250492867257440014254513578841847875762808446717814137358632121762328710968128867677956513834016266826253801535263402574799052199204676159219537129247535195906303566346090579175302074466389402750032290203701251379245497576704503653461596882419955697897596441176373827668988510735304316008160309978674237911506311607278205689460666194514046804906520020086263185342554821658335614881034124991318227588909189917001557051153717530620607206880030552843615849066744402997212655724512927107837606834248605774992005302087204170774690820512326967136683493452525114467784644555953951448411783608177353316604641037321161704444374686329764627700364425143147709195770654479344797097619596716649782064134015987348087044700275516248083850257337645631621498448854255310632791334587151915002483439120426740100864887346937847454305478370961914059034678159040096736137494419912131746145947388894427384386310804739265600472574640742282561559117403372730336315757424720130018235584286173084574084284511354004270399326781061147614322756026496369725318721790568094858055951112795894000204693292572640405728083598887981905552884521356776904871883822628680373789811840339483983674715775761823770230217326158694148354221616785583269507773269705718997540712015797184182280071182156171211321002539901794004318933259021510152378124081562968770154060590990995091126349168945570573291239253598959866862885449209113424554336604494013281098674943928764365159409493099743000516726424408648489229969940651018856546432614518072386403253434421960580610893761293748226346164794384893428814963537927549838455075935082042764565274285619092349253381357282170258624453415779870686814737310844735636371266186134955940063037747795787906069049085220931228645553259208137618334629230079332716768752832110670929381013488225995476372455100620510553925240693684202540963059317288595118309274801247024736428057171158864659972881929079930416244216402804808332011562081215387728032171115341684712895157107485267831825849196580989332951237681690380691758197503708363868430230291098941727491747412858280027310144578008525472294662730126042295335244798169621070222704568645130459199904313976455772248088325365030036621485673287498459191225637576415988860853308499226141458583761329354224213205698919332366932519439247473057950745050430244907363441015669813085290710198924001358930727873595252257095968582413332842322329982786112759649859590506099295492435646878025274763427688190681227735378063654819625779260221473869600441469391519920996873982931375796838441653237620896676053802944045425108542593991047936992301022659530907421844053592273053512194669502131785057998343654238735472282293730220173661460381876965611216327155670590617250946789282523001860948249672172412266508919425602062684760176346829935719624144642137866128843539905652425129886076405082064854232759673621981559678175905806915535415915629844082161890067904831089714969156292825898092330154407778761212071368819563706269539151140828483868826089009289727422413618121652619403541613570821084713629027132137782624554819584859518861400034394614859837084279385696058102275311601156093353417214941779313030549830912779830330878987955440884978352980766754181856647911180611237103101316050401921834844056596363965800145801124036295353480525865527578636615687605168236696315059736594317784224763195210617142101951391177751965260749073359027235757742289082972593114031059969436477937115272062748493303841993596332422303302927748910838713786003639616054242990479704045000478414830695646334594911309628497894674857778629353420411239786930949653748499147711503420148525694110072648444495187449709887556613627636932016569521827951721214046255124785757862575860905254614124443054194643056202350667223010462039417877837334038319034364209428403792729313939330161730249489936007594892408589789311394406200932210332809776571492021084948821790332045238738666619453984192492048715996766666878301665324931965727639624795489295542622393015901211044191731387623392484625320669689976262259483248704075954332083731413984202198757496610977470903895340528289744471861597836807178597905203737181425720666162957282708751506732972094286335952584744268431187918655267165476091195573915362797626226552227411833224494857350182100882633178370104626130002568584004275207200257424831098635938494725894825122307083717323483572595590702372436405428465486454201319470366470647879586058380467030119761594511824109083371835974676242572072055703087708551971421669086505653088901294862027070794441001047111399767846580159935279421060618393300831518654611549493649739326112197752181366185713754102157510807227660263003153622999175204155566902308971611783000199895347742956699004476944057433641326103034992669030655994375280412128166447523157727358499173788055697424126950033869370001799941598343089205382322551606334255520752076483690173557127894831993067940973995607359516289856963091760990988895538419701409297119315188121929663847703877573035703601803320346831193636130380631733731323893516710052380485847914813913874659864328404874153131723391790508778030156360365490282791194446611757259849493772094270065280670726843556215165290830467294783752634186702286822113315842871282418428780719993122208211984893778039660539138363293669928460544334191050637029350875478701365449703457450345836703882299248510710005492728738927520213908715727349260419194975220706171683644423350546676594203211093090892149199665859104400650535703303136532985898185429918706904374000140734434348113222154567122307656605229086181002654967642770673656907306354863369626377188496955037086132648535699875606013735217525898932672134993736686263139526824560784668001915877449678718442523210459494122587140902947531632499721439145403445036349719636692244202014569409313045037123848885735768480523048550824101247131214298317798037763256885788858578218761417343673340347776396170700161303250057947273603759595950017798911711119904157104540495528581769131999477004553236974810888288522948714303667581760641091671460764123033207521683411984526593997511738550465801033555619394635600884253169232216014267589848277909925011484404171725554621576101868837353226412607545661996165054104919625800969863703295507047682544829903472694987202667515430770628963121266664714692016286033941389634056411006644505798324822941841481552974862649827056377118863871837230145048060698089745650850516914596963256540828056330733653585296200518817129229776791620538769563498530101282127320192128484950955298133902985500074533259640147803498127487044704753820232672217404132432760859607519655401064075394329583759869952951215656350768360984868696361676733275946947823442269591712016150728559315434801804173298462358852478023975740369114956594854130100841449670363982167069548052750839795927716361124405953050657171657763287704677846048040988448956176641429860811530975454369851610039815704095620040590115867448026258850231313499153461279995746539063214635996547990307892882394986431302854265527715940612700989865405105634445404460908165488287525681087803969782246125399904126216469967823929474304860305930183307249395388707797392372112936514339654599731927833359831957519473000918713525599757080432076742200666459329600912968473860687822527445321537307034654643405695716352761429715651266134938636382800314061335218515382352899413492019839906909392155349597195155835737864905773532968779418925189471515871346893315336627548870543451235424866726237975250896199522821644663133594185680995678758545925360725923508222168546577610331637877652484486936909682822540436209127009509604638735832313049483701735160123221676308433046244904529014157724922678734952575541800787524234396238188683529996047729866859822776755407910555336133071505925895215277424760578467315711718899653642632523307534766340235464105601148138668275540895715630406626216264614044895185994114880403072771275713352640590840209106755129375053591673479641997161233528504381865244097393844892109392459375771868189100316965545263864252776434812643710512394786476740800935998216264833621355171437802060450639547534256799300133355023590109604419685360410909748367160168117100094403166850282867202718243216221633768639508566100247129499749143370251937286721265303301824390025797191928896501798485303408157789531731280088781612664754732336978322269261012277338665991090759844740491578746356619935809317095054870964601568026010266140420750035457443987376933399632259599843619775958834306182159819374038618366632792609045178606288171476557165779908040927143039653024521518913751201729482661604433608918894304171536207022847213092858275668182463058425231130793751487596194219098343904876701546750977176158307871428110541592629895073793262236143890114687006703700893203168613028160831834849883483095250895570094899990850378904045441022453562990448237669892150346592539542070815561950251432487462215294009440310610693404015397123518912136126986660577433766716399656522702518442705349348279681241901460179000733513953018627798106814920564612450553541680886182748363559633586525627015653915974302073679530251677185467575799931987627102951332160214194008406723360511992420630696102909898631215866452501155285638266326444332286481599112716067151958043640915774299717288481447918632984198095079670376166272330913524629041421581851133943392409972800692322268775729161717095266495835727595660420582210036914124813743333455061726437483719231747216806105266789090241617516240027401527799046619899267809741800759502613298395799600739736117560682572984683115618284404138372487050468010609158485216434446856446392412791883656605480561732777314047346223695515602676229002279057389482310487691571751888134818495505568954962013807215684490965947442537183575151367224838685506346140340902339021647829857076861597579988721068352531218203448173821934375497081636189635752044055548726252469630824545468580132559918421577386302469261691432133538811818439443747259915851020533790460706764244054218375685844458583987185709275713388769967704999854702213453755095135331218470483768858229741957463671901146832794440772051099002244045611649750676476521582825500504945774734578073912826881677201458120994054486973310378105134332704459552064874925511899051269778977316374167436092102186799080423495561653009162169035479843875417853537460158772253750918283695723442373636662408857746124793250977940427765350275147671966872091011757027288740462404015169209437676925208546648309060068152532377554730237154340806762846526328071462475567018547154913118082735121541929421946466441241101236949714349699118743046224204715424105351215690795911278067967165141406068129192594123467298417787668511001256977113965327488710770125028664796130723020360345632265903668401070996068715253934612038604262106435645598392538298527373939073530405243250466562995386282360939911407147795282054207085025884117008492413171517328467794009357394515278597200654608268101728555725751257437357362531065990016321811809198805721704469970469848721546103148398545196420411293616218962588519406287001404109480600605613598965951421522510099757924738124755609084005057921387408928274821727462692837387591417113857801844717255779502955568893762075657120016482074901548800667339709843595994061939074341105019543102173058681541297844140594037157060658904540296947834608089901929060547444492706913721551042396274977978344184129921730749595473577178662553627988746212872167949736090358519924893215700298791658352481153803520236543943283597843886217090133736211039482781101921160672837626982619702337091084143767034244182645310708862708525482408497476335373990155791732579621816082514476859849356235475719820584346278149065515918391333835074251879705644830206130865406184850070132969697072329013466665165823988978581486630836698009492306974720035173945252632597536131840696779466234200333782056663609869033280305677854518039475479861910721881119555733188859820664800412728593234310489808184175182180228284002814677167654043948315579703660218515133100354280638657544318344576541085769326220222562351475269431917253540774512019609042662240632797750165870304816791706658012078649341032378477868647059149586657996513603307074729073820600635409247947058980758647793609331694270773907032513227700462759136741698226448592583546269608627619847148240644680216873754422245984333710889611887459332029067994498516665118046833747086653489953180865025589035903307674275304613467515167416370708252800174598781375643499469799630986352810740688498841082908082980199230747764849936807520623392832147455638804262320691637543859375255166839105894053431491295497955937486704936572233016768003462577254589082149739877924347511300675999051142645894957372048080151364851078731797496951741117141227467989707976349790632466196339371167716840624258937821759788152555971168146553913699720329487371516714518134940864084102492308661626755797432285639258463096732212087502169422110415585477935284176498987519669418945318441416021232507259470697440595202770317160873144485889458201089412184093272523716751316173642054268978298855195966626191562439652527012086940052342926858307251680929275086602895575696437958813665498579062719299396385067331859296657581443246896594021631846521580859567306926439124257196004811633831955198327699741676093366821821278134049901221310465824292225184469185055769495361758289883949998880203841909968857611603312318378331627702323802587363627849755384728692416743325024232702643925724303597667260093714632540415817600692854157075316349154165176649171378571055192085760109388783217622569985306081561028155741221557385953016381956824387396861681900093202768564995984621401233127038068654520549447367767188883829691453416545758211746842234477479599428932305548808257000914884073272196648464149882387416661371397811697861950960030780496556885333754314956483118170261634858704986775640623271993447692451955519379416687525322152956396259266949679156167425273930854577060905784716122397871733600731818228255735045301932096167001059716082515128058329723966475403915506092485588283371968769060851788321062768286936472142153551129686487450906029477136260853268259712907166657570908520483039791425389306907478746318815288852883322321501890796298985609441239198726220424390868232910340448804311045514504181819346955235831225902408318830994892938019914399581977114812659346761761747151823912855897807897768750998438470840982093318426106275595286504250796095479079580609947078171339114939575594011722664028019629039989379847356620745881312942888100182558599585574550693768005805977178488646918074022974030804355032250150818851457348136783182192788570597240365015061332298750650720213186675611402171143005120157649114575052452879398446532900493958358878070631757136021789773438833483954975740584640385034765234471656928246342323360502534160062041608372563946055022302897270199128113367063943293547782840324616602001188813049575288407271129671151407773436775175266954686425755204641994511160286594962968337846685329822873968832002585861880773571970200053244856759544283482948635844732924938849798609619875308267304616890273918995693325380053360222696305322931470913709885376024429176015071566914069727164670728076277624820959978752501730495274093424901892909471379251831977106164404883755405625065215310228245535788342053801868334256069011719452331618880653090466166330116922073231370765284267516219495608194132134124642773253667354844036685461568256863594726438674972559882691899168215777515322811240341893240165046877757119445683843908629382461578602131760545971607844062527710348908433160733609471933687606203891493259019650291221009845307307240902585559904907716669467814615772505386339102741319175056357587285626498009983541802408395776005417920174521397393439926694502562349853528054694261869806025857874267417768033604206831800189406327434242423447408903808091682026466062202608790917208678330307123457150630015685641073157695013133359455470086494398705860070641913694110394501626814031892526861233287435238286668336319712012271700543176952884019917512881446845553389047835671423375751839618147968756019554700826260709363626460044321961288249061700576353372398023069405579346342353042268571832081184904665734495003108177310481038163500789329127583548003222321182168800155379253597003690505777922281277377733150790913202115873390964366603271728612464443257694361410582999657163067041315521028415528200476731436548376091225505931643445517827050697790660067679590567759447393376237318400203388251548592236638917808298397846495973151437539160006720304672418626597991691818461844723226012339637805280942081167005050145139807400965495767948593670921245003712075418515664496725312017793379596940325391594375045787847035019888122931925857161536782082784780380276103427498835295477002794784770621792697251922210648375470947822070789223376573800768961920932946064797576471588879988743312722881747923731400747019828742629574460311908594442641417164417282766396395555540011932938147059067264063924100645906924130138542338436478140922692932246938276327248710872077017996297668666166726677022331810326276525700098683007921313749933414099562169631560762150880386963298400933855289686570733003395311922211151061185443636752618750093482794444919074382086014182123466195162087347215773415411270161531984841675879166908479197742587558171557292976832229876043385039590292638530828694968866966438468285392394153581765531471215491050193902674219757925067263458934421179172105813628469682838616770182559177024899197716837970633884719204534048924719452228035773478914112963830642479484470313449403427297585489910247275916077516869728247765678535404884383431127195408297446020428822554013532702357440644374198596542466363149406823490412369519650335162019810196064740068266999633225575430983143951353078130745319712311998390494522593833078626554455611266635803238095434323664677483808608653571870583363130298918102381310218329833078309506478634461671913355058283248368922356921666400470496813753321610896797595914478466678129544513520820084000350165355986939800327869648995728997766420152415998138140436043911392880023168885893735631969107110464939380351349361638348910808392840357103693538398124600035865009664509117063125940842996297664345319104576414906465536732705317446612312909901173680929991380883768376073726843897260605497100687205124161147927247894809406324055868778003597776452442110997603695339023021651334647619325583270291498190610462479796676344170998224663664939138547493374184180527973093858004789165970445206802988811740724549622692320351153200944048546853220704194251717038936122310417556298921607542197050958600150132648186277138554571802620986643626979458197421843962245112500808518919183775625021141195393138457698647458020667081306777380414976880858945765897141677379171048126832917708016960813776293155543423093776581425333461954726172746768666046852823897780205411501811645886147119200469971086797054086389640828712115308770284495664867759367873211785782150641924603126663271485340067576769851788035739580253008299588866104369775823706631586620304739072034515115033333907302525297867495712827131422354773043897125806200645015082854614371381863471947122384347190404924507367574208284729504082422405945450059614062890962902829617498003232289021133381707708495361393641644711237543848616225697295648133434111435135890753164579014082413083323396179536706542130769817805684958702790605854086129049517671955932309981531076196810511984735001773871945443260306895392420498660990734851056272783760767934375925186777927587059676279015972501085700548265328199227886981150032796932434159913905583655922538125937613066101370985514647852578799590638538641621065955954815047137925780421248395654605545919659364615725612269023599900848260799014243571790179966134477834098399470488253947877513789230125434451800267595077780468225621686283768426945773285870719519091177625133656462208671450623179710531212262507173606175396308373863142949865712428176826995800845348214997728274784098147316362074330208863908896083628037176969472658536947547940882023378582825855576148187724408274020903824629327056422151001655812249874842489775209245550592998671151220421203774497894020823764945218971603561314538859903047606935451709893209575632006150479177135353694271670604465899847336861605001585637128320401784802955396883503578387047546080764707627218761275308451237550383405158929265504205227722996293492647436057584626544181339920345206907440578606547718792173249535440389107986918139996010672891621792402237226641579442751828319419515414031138300247727885429753416098605522725050454184323387077640880522960193245329915006268117172460604688900914299085923303689881523447257583214532360323371702974360511587001079239571522100059324153329244297578745729630424884148193481282643054289308667826461946321542554245927191435929153386874466812344045448017904157010449277239035777132232553589025898164316958752336264340471045944049197429109009125975695937274574909216759171714498800115950531734205312040819660869472415012158762415182664614237784166001324287765819436804747470430881539465090502240878727144054339928832387169871461976210532716732771746686280071320847984853535774516039879914296344239905872854598260014526458109249981010227475883061176872843017765491093904251374430119486705479383233901810841128980642935943314719899589932215905339905165387370074514325938244477398779642350266910832352200856289512525302060823797010088951971489078627521219746405846904446423841498303863616743398971790686264994204172256055153596539325747287332474123147982894305271847894247442777242809827795832852441141362490043875747573168514854519645191447614861429851311194862734495214708852852671238426419333583755371869084481624677244040930750394218145511227793358244688016745120014364828120663312309856671964746355522757368552300769540329089411638387826390493093375136680778065577974381150859376001166575354183541768481891736615884828257687138801347736305791317017811422010357737306560950096298399184426042163470069488376390022300239963908146839025373697276929538044530372521009728166315973765680962311980302440973080125431252489738306804946621573738404924546828970035103205319737118563436467785974877504383663350188103550697427675152890193086368946221351504435273432244151511919136470014806610015986657921799167702724095505424480433953068961803727749861661580559110221707870593678754121299168323209774707463906897163225317856972423666059615327583891073916667890858791939256413615389507384611966015104102467895863011532482008334892744778633900910383514188058157797204014005107639967977988257631433075273281179363073966216710356349147845824784530076892724142220547164512812364361241772997286569821596287307951337186582663830828302848224046081161279778220932215170952662430708857777423823076192743700048401135265166606164873487716900431752728909342776679839943995023326490427059604726840918683322202905877473102862699385051306260055757155614589563536269631068563760177170627744249718275039311893858388250142413983957883829489029735877389316996525027509625582255343405711908638266138263910587951058922866974515697489753796571241164091883951343307104406892996925007196961928715262751449085385318578544422704963151592705473370217321873898901268798599772480326824964483030533522683844225392374070269488438239355996787547755880885972773908751784968360046922781310235658188707872643285048556737018070250829488620891396379544797828556407136076828148231159345732879351077876944708960400298916883645442206477812997661770339073372779990946220576445151927138267690811917923300598621252087277177126032609642200774695210695260342927546110107457895586764832200024600682208556255573808892273256456043296037872162230701068098209723875815901378413707437031704810708904419697713678139032325457069313358612090009788895757395981953018365643426207012553721657452588205943628243041105878093650583203933511437923633903145999504397860996060616067804623680289898757595689279377499674348438063708863474393899507788046591302497267903652154401999341249223253109721033232508203033861556744623303889418837781260029645227575087228202069641671451286813522048647278928917550978512164902386271404938951000928835010327881763660014897276488873865854591515112687252148256823174482249904880329080062768513568320469485080282864991970927027591081962642627734435204197735579170205002548054439632123652709594064590151841183923852128511203888126042744801278278932171116745187415677277865786855831615683278957971164469472096455078046526942622561878939464099844482146599693050349985945144566932615608157868094331678614334650026942489872681860137706679237003979890992899996704811645780064156089731419833457197616560793325011073190553191325657072191706651167748946041895915351477189353000528015189052478639568897774628462685415717204002100518161032029228799393433543953388003101378992030364987971181919874635591472718774934345641420536365409324828496471742726653809083479757687376629438057938706551600179899719645602760201849336846253486822553271178985435256095894841028422407480007703597401660276732757069611226422791632286059077267654245820587596232332107421487743816031949357926348445683756837503238890564038861816099835362617271358596738097460770172450496416835895463671856194333060988481306421100658953455444547492212915136135838488091110217412498908988794113570597743729125923911012013377964967729361493710782934464953653519489789915762860009934145094872111146385931550499893787667668604772635255314690054581416689190969411285663235870019079366959994504435843328414608660791384630909277476705870945802962214969670516729133814385022469908816067311511383943121810559693247048730804117543030280512848979075269454599228428597295284262320122023380152513296605831540439368334206947025090477733051610830273884836451628977280540951958459620504065277315612056393020389193712859076606345857158534696240942030820186079940057367107561836316544254539335334968261786845534277862596967349712535806902894149236205987683515982293990827067437713883514961790720404477845952134316588083353640120132590712933039667468774307605476474720695983153358797221135146533055902272928965581475308531886927853304974617689531809559262524433356480123464241954635814832179686923062282926773792130528196230345171523449907233741568091803458352997463690200371805799798111654272272355214243160697424008057373045493348183706791144909937550039376739144811563133911891461154677619982787376984631414363458171547721582182763907578856407680424702031831450314594076882963098832890601878069581232167454174638867179137971880824391166238292600333921598089876880805771798446181710178695413129430809069865253637970739352723797047275107449285183207356536457868066121943355089309693503407953005396146763815394157680265087553892679456138514338775076477472892368790683928454994229236053013913838688303106452510528853289142934440515509577639793426689547997116881186865554487631321798910022741213042136973187380569566146501006463618731505765137360202648367795388938559145518231563740046484254177762505239042985751438460274061547820606837550574180238114642835019296414433835581728982467768132481056978099550604232678487549673345537496893582599190851881825114153303010794581963044914892989556237387871198952149110773810289505112116560271407599997974464523507528604243405693353263535757912742789879147282225108185694806529479569397295480328069564994255860217586481624176953838108872478701620442083204297360036651054349294303019689910828222216385116392093101651855696874004171291667816606968459441451344081521623895032889453313253639493000446509197839200275882260944591830656292203086301967803012703063740276704809444175384750738674644792490786194625556520635339916711173227737803683096982548786716809480597015395473133215131070718015754795372494244244166615125842316912373057346605064594462676868662546708008097424512059950752836091816475193457240455178600230131291942421770584252620063679542909026359573429494593356457921670269997359860820108733578401733123002638789065705145755571603933131010452279312656855400262649260829978494817741589382458307385831989977227468073988904713073694488764819824584784285072430839441443762363770357991078103106837313108846788927517453320704669202506906374578318772741717845144741195652920122820310467202847793984782458549003326670273554825023300807493503167433704843193759200531525482703136539610473630478418837748988875024551639186692557482232339070302877569686553509907079395373896761796814926343063385907836281512155728772392892666905114557334367020295056207780840375064356967135465986144714529613965048135839108456645984219089969944042301137147272094562181527237948676929302493570862593548656363142906608704841757090857968777737542557393032562586076621944728515034212046141574926479639353294670797740367536191864521873869970332586031760995811173719806061596643744113686524621291793976102825732425703233889934698854107507831437853467167236714263292820413712599158959844978941882163936317058153125968983144360985689050989026704690317516434588025193690987552306164112098148517854629858278776431095021038594514405497219094218102221609466223906046861025213335753551048852819430749722096928435098290445267978957922093744260307456617405590360839416476875214567567092441606557696359819902434011184268647545960726025582640613447725489916355762002866974520494615736662209223914811405838157754058908752179021537034543271134353442911014872726608166925977375585877742829232261223644631738099110511953488627757048494745336580544825471583097831518603923181552140423736594945335922698792900271112702790792458822047860262845849601120207339644338153174527684920227658611759410289493411798309760700253834033563672472825334663430502961709580575436184808317223740411603004340349209449759203184626506791308040530199160601104278565647420206970534543716664673750844604369305023966828369378913171031018079441950452300715961756488534344097479909843350413520536779361432927217594653233912507203553301884520553915833813279748535839156655371361980887409466033267234039021826447251435273310415316022211642244057395216383271515049707627425971545641744397059399742453802634889906758708967471889215147654158005984933152064669624514374276430022955638229050556937203496685525338815439390545795349691825596069946005619152094602531328242555822434811456000108021567938878697279985115984780347002893883432908053579509015993851098118617772108487230043785628364989147280634254517526344620749853824190120791438993092400405316907853082286273591863037651900447444607989448923916712696378147762317737266326338246659111960381759271216595820856596758342658384159631221633026881656795986605750062532733090610311826227916731740622066017848202693128547565352781662254462461347072276908849944320120428222022239609237425955968385563670846608715718836799792831148982948359650855127996536389343034264140954199201653464843542422912621841632629110821371404628380022974795849112304958671999654380890420254843929166259196804906891768043162664276311688207400176631949582740346203992757756141746218570953768323854844647300134543145286933984264044740957712944591377108999024013159507191162804405899827495417329464726731726861645586066100314618304199615296355151778135577388504970984390417667792232896993565631192219040529429783488294214277950544958826256988090718094083780634297555145396707639944436605653859750435031479662037462064436406524308399879178921766580726698120165270636641315310648720723258307996514034138111280658885984058665181590560057729582172656614162206242877767909795148168543644886309096665300576352894767853476235259814133665926449094519724013638992640312899064314113629388793839572376248875448932587236607215152808059425459912684994421228661050588954842555921803678322994627984983272574928790819290053473300690206368679009205411867749266195330365733506968173733706116776128424256248367273312101189501569305098586206169489326228973691194195276819970800843284963518074374812145036057613716831261091300707533634145286672223481880742020510689197061424349209027741093641581240104817535756919995292452221286676561123165166618740762339994800919532754947518642248538364764400494903410749206999124358518226232065218765163082862512782754184058693866395618148462229741882449626046941849856159805188305952220352957808723286213725162761740268473071679484295059123801746357344403978259020593036157856885105458467506979321822033533835477519143989489624911345338723626615836635839944943964858568362712993346768767355685431809240316170103078948249741286621950774802036984752742153243505124013854508015051475775818682247546630673028041932835768192714293130599585054551211280986367986093203151174241155641010044056507280817684621519439641585890301425781691485144886480547245411364595525669094189892197499748284290922210023760668087811720361764375507302051314771604488877587495659128940800812989253160491476250157960254162141732255080502075036292921556837910058191485472295401845471013867408317651312990055572460918460700460957996459799315257894967459775934942715252899658426728183620976270079603193847083732450586090667005328989667893230606185366286721284927671710014889821040256579537729511222094730093970847804292616529083040215218685141700868364805945684098891731163814656915100424177400397651067276492855405646429108317112389947405986650451335197583732939144566694963058645386713401850588459838643200468223411781974313203953499574147050954323187970260122441263618469605923093299479289302077247881367869401831439868371123769898989702376651844902435163945110405013789593064093510379157019443933254194424798052422763380584125849533042012775297917495024210685454428109159366643017227052338138025360205906599070510092380677497994806060031825328146681950230375378699673647787830135182279790160092744120565446188627989463695953397112035502520718383918712322541688089954098814981806544516371114353545065914499431696922060469025442578073179796669277020486957628608533214138546055259129699913201983594758035065056811254265924364493959245520292041748892296514845754671102722043027339951044258172805184250349449108704931803118963823066573543990546994337652076147999092925039079865752316041198467102461877068983197416715569966832602611998181451225878800375229639401468193684889430178881478103407034124831146536563332346415618837199473556387225969708064148597117024298012309948174297091060193353504606577696340711806620177066744533348595693346398122430542449428774267360260523824141614723536506807542735635846870635357624265354066510841734242275735186186781514260716612816290852656250766375461453974245735393880961398746312457559368155854568479092153431955745632782648540109970402680751860643930217301825490205870137087785090914322859017549079937212247727337929592324852379649175594415385751640893702338354321872766432211476326103590138457207871185118893749420112811403865311514146941465739291033255998304113391591608259568762497870134674928839407421148331722100499473030072731343470088158917522889658713667152456015825502724053305290137712471672191493447559698542848638652625431865777731811435710271342745749525490512386788160487448889279151350123823973621499168341987087819950250787891370781509150330990732381219625968019106480110921282621483636175876503963570354257950256056180594003853328068905255682563051718315711030557644487809713217009210859439756873194322442903069545899137661154401371779973142253327880651772029677425383889909874883131002557993288758955562245080027770907818400032492739168766399360971374064927982566497351989910899358272728725313221480949268109513725416561718433097846979178632652177304273973297475650296193797503593829081668184159655682000003062834214885416807305904638674323332517462556175739266098800861046932524924936682447316321552649843750047005951158287580192110396307315897573956524409117918023428840381508395336007110245070718139286438342075585754387460337645349599810476417131951632190651427979876586441492185109477211905258626563559824735604203384273430813003536360162114203394280418219814776294078262633613960139465911855930280803680490809806154256730157435430750990996427357770030479210720681470555260575240581908235206105920777126164801804809278512998979783804663434394835398680765920044176324613258338565858286548292687538147458306595831079174661662585838494810591844018037773149916609617721527217162068293993243693985538242961201977270711887320181793361176612467667010805622776310268302005740799808297160582911362383704172417639981286743558143454650801537370013736829760572288152006682358982965854408067697106481278001294663917536396117352261616076173096210554621879424878907271668643475083079833616384660446107285355587853306242023496534518283167164684085276136404921205078036801665846109622761709872880057658024594007361779827060554403262997297401739580923209851393205017776695902818537116311547394808541841445574463481076812571497342096035380337043392219239465139087761794760233533115029391591638837969169885402656456404431852888947557048344297773019156888913153391567129188448851877526543994332031404978049536080658219999716304579734876553211675406509841492194094832339798966028807527940159103581684417059439693440920542726423241935714099935681008882725524611703127198798846146444985332224551599237909827562301078844271857826168376674056171628890647006795980002962480306082151739778110091658874791736541388213777946562166669890792169788235199531061327781106174809431779797276618890590708759372863349806117233567911964653084960543823312102426404304793250585386046369076818863261982543054659707111198186358418097362945390712454788765912447237995018075780413232164431354318743691962626233396897308140988461376079679085942113793327787918269300552233792275984262341174490480890694184356603294608001826769872531372891641604236136990494349304242912227092048044132298660724154002749095367496696489989836757047101301078803505624866608888009705041751391104347734981618488469356323817330767813892542367076367328755665921271824394589250028083897676333896446041604919010482858384507729380801715978254486967443495832773831757901938496628230890800674885666480735999886633790535948020343364025746832404579098075999253532746527628330303870266163346339516391628654316356659572989787888166642486485969363115940107481185662349768303145112212696885199433939703093161719354569708581094493651830551842496425089866064376759287486951543793863896253153490404589952237767495063234586522651200053909045081074440611413782031545735125774676861863784813978642004456491371180402948426161503848344558398573228404819907675453566181697876187575282263348705374512512403216108490139092802380969857345669815728425087953084772068948173992707072311025164971205201261562036684673583280399772208950800439590637083914429068043490470444772404732225681759576876669380299856580396436582457752905555569522035896777718422899860057640489501446171212175873279022057196199636106759551944643158495055891813886206979662913937891579475826689100256670425709747168727291332414850062651069039571561317138593036652123665364294281094545078043721251281567144775575179761580833965496388531417181821581588642924792236527634020064334193008621412755351782729555637082367010590776697045755882928785235911108756580493626889277610320921887895692891997571342745118015905511386132895131249156648332285498628072986690342397765105064189590351302704823139116391942149550255496407670541822753496119932472497728067277261621957762963698248420316525550734377756661298637449928328052260955085317575549298794808331052748360009567644684667877159028271262933340963011135649171204029089316811390812096097477501188506764964472654294299365229383886962609759947233531334506999863480808605203247209916392484340020896010026678235312022648505483768202311233175731879698048413344565499367310784526003236602436790156517618703903394827294805404697521732422652188626414695463454630290471196801472501046476106645221455863568098905449371535150425392489719818451923182652894059138921683044898194874337270289074615751117233393121546693647856618752666772231110556572228332312598677681879181053044023672174849657711380049256316303442908679100334342340725282191935149018208438101592440712030850047323428753230514194288559626915813025668363114221104394486765201621987421423706814789240085549933397684845432399097728268856035201701638469827696099157353553057392585121086712300998203244473038678069677968988367542207643762117970572419639114859603468244215681243220866546149205843467771510281509273406637374788038595484541794038228321390609875041758588672029659815168805066353591151340908064974853447086039723239131691786866605766161307395427270993759217686821091632253935149660580043054508751194197812381465994169341281502450015738222293785331249882273718549010986048050144909545310343281652034620665109377952777556210040023098518941241128047239477626497368895786242280714356359466090706070530669044197245763908166341256392695068240200105118225056099770562908119978399981489243810400154703440678822196355576381660103302659224531348366145902547517161129487773424840701340512206126282682922747172867250822488428483907345739674192555650433318459239677693425434531854291926750580682755327948227090458663992636949790450177715126188536966879540392164265815470625106686155169297486093727284208126723382629914144548798341635956777005106829896422839895901032475916652302898864033746926527202564075668827176370021795876594488934807759546217898092971275983393225130405285872661800944671349283267682958113571886072462975587929266672488338092261356624840477343618842286108153698216954332110354761694760069477247628825623537991839118020129678459185646697161554950346499275876266665375450974369018159717500062681803310226525148163370975317238866915268562211256936086271486469441288306192102258982166615344411718392621346363046667148325009769551998437728991343149426997016151629349687551857259635477542225658554335199101807984091654670600197537272495538915665299942069986216948195937999453162009095848034566144693681697609737303865669110157773217431965833794900075168924045912273074167022829357871680693969762831821648580139817358436794070728737327895875436353315382180762392345460351623951422850352659109993723134810413400614283575410801353336314350202417474280406597604876294415564551411329980997113462595094918800771867216249317136959046373156053808750852082856811958582428835785646388064950952101046767860146925614225957229357264614527026023111071198490716570397205905480564186821761064628344613098899659202022193869572065238513055366304284799046446431830452816082611154324020416942505445116209903721184969390828634474688076804757790837235703094744488496776963888067589425423247043557619209966037339611392070033679807531194658449931970617294601457290328167833657482382758240001286804030555357352877404888570778855178409507631139012593522707034936409426414926079489455084562727215355926210439871422017817638253089671317271856302798874190068301592739941353975249557715743089667306260771778533772762114893953252895170309140946530971858936534518858961349131798341557368611180231037662743473482896032618302065884561479152437280485814992123990950540287328530825848625805958382520198108153688576856852109286252214637323633669230557370750313829941025454638491950552757801556225772867249408209895569869661655071141050591697928689697463566100459254703847274818507281479280342171538039972145057864437577441736531287037226648310406913042536424339651936245276420435444581860185543698839449320778062101341292763125113548010127527007412172105821563668232202859718829838182712954349561936158940207239933164511864309235411072932653058899387902205749950709449886423701972993703530619047526005828694809958463299342275335700513109776381279852250372258267950189437194758464809886125914152318438192359842117694686005222801580996722110877064653619192630992494809321523770589694530989576407216317358643092931724955147963985801274820015993423785203075384722406955296733192331209762677916060680513317257749515098568889695101524239218389879904492498383135455478534804763695387288577906980857707079555223545584839601703305607479229475268664776089653317230045530865993084539819374163405767295712283445286248500127827427549808795349722623742893478538738394338149748827664364102585972339995562545542604693829555226322167185786745029237874236240608735111724532251008489080685234690253666668753902727393326946729256480184902878588902215382646108068505660552886100948186367540900398914385140398299517274610757240735374099519468478316520139595905530399132736403687657120192145183805301732389390568990305539803536228986064963982049650637313264645372505257165577820141138228080255842735935192750835614146384297956948420985082918899131760306442027370583296644358451820771247814924961310910457805936528412384684967492565261802183300970207576429629551684380181166919298281817409216102063185379042467273436526991174713503963245072969798223432941316997625215833917621920105487577514713702401321596681905969172617661073383201262535598962816105706304144921427562026394780122027986240763907885251979801443120132482282076534747081460145041509493239249933396608757313292655494639966636036991587651825028601574033392439094720244323176694391485488174726513035493356920419892512990530851603873031301042628510352723174225766690024299108255870133443728352159779169898005393214164187499365480812327244088530134126994032525939165245040380842226838196251370724612114035037675327446088879611498264433679561126456729494315600820111811608033408651477473908263888019012450875874399992873171071667289153786791046593668548078388530626498573042579034098119244925539655725870636332760536726744291295654462490608276484195142428199210121988691214207942920112047285382994723691458616075348967627488576868108251783191240019805056207256108974210503494519503744556965925865393856120616761542344028468019579486355883855441826170590852414807877144665787129838777273840068756768626237381525405782815281793268650083682561029685040922471667664843638676131425863675762786306270800803770108318023218341428068132505680917820519020391108112902393485600917206984091670450765805565295850619306546381261565296194485024797762207258929611736380160779802186992987183724762045525096510592796990783884191773892525811399802637234592236838577059539884315601443114585133097611687344855346512931006537022030516643505950534045561455318183331022739964933870536248352275027032351760566131695843702068785081309330140860262218822395930129517026780589264817973044036563993312010802181165759282048386279739178983556317643969354076680367565648218998131022868789250913062344447809731224882969351718178312161709092557328163398743231806490729409090112375006114456432064894622872808775378625086155101138313075086110020593659692592791723450104593662560857228811493347351495401979952155070782126152836475003035053340928746835813950126174328792553788629283620978997787701407368265665679306201530406027073193040571382816348048057793268819791689201450439488400210084984260960772587912835644604274581007382424614666347286769475206183050570469771416417932910976168650564555583692939845258109006509281609460789088840972266520395958847428632699789921887932689166596945943461802026398526667618963636961380125437551790332448298889055395998414031734533475597293605192180803172835903158529436743821918657918984597497177332893772834222811846034485437132290975839913343740416613202513497775251831049418825666585850084997718668926451595293460161723429862408981227843258821756849955779696646851915921820515300812187394323584147188661915604684025920824794033697231117335208199673333412889602036435769224287899499380860759221645692156907243431522629317807258858411032526243208986627482663522994523961736392702490120726544586912225544542143247322987381092962178676116186802577381856071529938461888822288990865821508281991679700327385092884627266643175162599914024842912194750434244183681494894347109038501843302761756630788400819628109608629912523229039917586008785866575789666663414274263115035407138347045146751920401155927474000633540214571984557160264081861946584978754719290184996172416151456149911481114190955123646773925522041607351170991007210469971812874971577595296593194542759285860449944235731562847043125030354324260515014378780430795399195447353073354747873172502407158021438753042521812619924569908296827091294208643269791207936155873650890759374834922845067571987046759088852867139307272471049439114364129172582783517216668772342715838022771685721461732150931999244359403623710486055403726758110524635753399838366084507624492176862415151518827648911836591803246062221386034983530148944995361194723045944197510145312487844877801822192097037814677280488786099418096206611674763610976547597902506434078419784545542865916665970319657156219728524696684806854892143540921069382289090981047632464096020988697415194204572059099507342557946307166475561932450966326231060890156694790502460218451640255214753145387523884996979614568905747660634573086165949123199215969186743164554097572405023260265627643159953880634184746559803117095348983098085962000128457807635849690029566471095781479251997386892967403675180386340056593943841105018159380187266322074197629929726592657000645329916959858857768941518993431780633281979792629323832433659364103582233273546591428832574044008893981574902585014760689032002968167234040486808648322996741504405609854976405653835164619124575513237855431940158478354321972960754299245672485784528058323493437748103576393619930025932055069008923401087043375797448169001317650435144162564015439410250529843761622866397199588675415226140654019271985293779094627441896342675340147048787377659068369337119546961704818857011908897244407790962598650101629579820923754235087483730457242619568766296636373316242799866724883810464537937259050421339432473432665460052812153504096819203339178075339496552003443127623276296740774345507155187040368238074396617078209661178874424199727393240013396096773079913720483211587865001328964947097005496059162117578951806398868552215471618894952830047662698517611382608837538018351982740493723633864763780385388401279418108870710400486110402919356411035886853208216536358787320169066827913038609184590120032475285736462547583903935106070560467102484931495868678051418312653902116960302993455655709835213667175209686074937641344241482240150478203927082363483793065941019780804278893383338929976202369116724289432005094821641039506569505474518848076371824340563836449541548202898050813190323772829576408840350710667907800996390736138506314400831961772046150264065048387080522395672543141484282667825846292930451304520316272145014285255213686089939788819040549899531328411575901738372940887027762199199434378718532333716194241785788168947684164485163805589687073913935439992363452800132710656084747098167041845137104052868116932649766766773046955983761847389633959430828243997886438339045562590003077383625068813883555308167585265831216329696500162403372027910210579767176845995069834174236955834018769567340430404593079885873815822906656316434710839448116801609568189237575747812477743243644151097514335230407565028954158383693141980369206247050114566934668065354970237866969807023405723499892965803063144315895134974218459105577090627375650741811692867279883970566982450346469166522212816300724681560935084851429750227056768154603985417674949340864430302893823967744513039433273876105871660110053912892686807805934876266575595342303491108423519479279747531712600073333464007821480944968606214259436072390634036762731581525978589534830193255291046895273512609590087991927517990121802692897097956271513799015581394410389445659830552296965573420457551889538399543712921190980713023751636518683914884160995177168150584337807756754514976453235597407032818304980029076462064489260701841479870344206183651810790546313641854453892776189028879842485821368394392302484876017883311034718704468534215645013275686238683698956135075379970819507026890043164556950551153277062947639702601087772997960896942122374147487367930369427528506571564749006893565172876224263100973242280029111933799913145840480242606218679941061856934286328846603075357779650157197980340714187469966012508310102967370925282245598939938296107561872820286840198939276485004201515060492051492454844338482720025327926325354662165184846605303034643189031837676253462929793348084470422456562444034218201765392204810710975237068184174541483480343721220081564696761927190625549531418926483693627791642527638596395668438216700423239191025763194961452834957342800497966584851386361465426671479028211328917511591240143689175465745986112479381547945648356583538372356907633279634287838093019324276665551821450189215005620383984621579478417766745245108086406846263184023998972430424701406814850675509140664661413685976832073603375383090009433035806189832498776988581331798223893225439107342167826841983152352022067713050578636558984008512029554879410125149521361690886664254770420784013813737528841682757500439950065732743090656673699597576437889860693228706133258505780183880721355134650256497938316598549185031478767871581766223465221731857420248193690742219128256537617706515928396285430350546143977061680759218436188067733100788791622722507997006722112601974390981522540869109982960079324225171799215951056954989444824972342102548784204623579777303257711052956371664559784965036120700362001373664740591360956054902725012047108848954171485333332519919380239034277833251700256618892704634668657077296235587943886577126180426778704007002109393134628452558936224588936047511451882266526947088803126669361914475589529872623099076509744760712710682606116244676475042079992233171332743402865399868541092569341697997334620694445135362936928770654967372885866866203633349924655482572534943412902729733743939645199071910672759627407117594831351080227462470896203358050364017019084689854898456551197267493181965400546681549667501161112883086975510162913557772217858567511204066538072356015079102395094635734992625889937676914751122723196819675447525416166580026886876059498326692974231428588508604006683836418446951099453510331255676759764858267940926852289961178277137102210669472650042980556650012336733477279484371226609507777455509297399763031317342264541702584887638576899981009052528158939180195723357997340358969288611869894084360445394195459455455884752798753653638190718985243677930652287137946256985196488218767842033140162578964719465181951186586744162040729148214473916541188332832380753159502221621237492299109395392417183527662803077983965389757158303265910972926946250764323669703988140442857226559564798124713860853445035522239492968674128164995275181637123370648193975708971432884753306471447200771941148949068747149260615552614524730894346359182199100558104615576885061691387922097155989746452533104766555633204238943740644965364331341079134864319955061154666956595236273618343573892610300781854833938235971545276085227322646621158294195334454555135723558377732785472771273293362655315471220058828898036381638981824287255405586662694218119908492861309475741051572613144435245624188557533345765154789054122255941985636002876181668511297411850406710179616009152448998179360538014169728029364155451140094911368629003494047985903800441715898997112479795289547083777925878737996895224063992402009842637356007520528018546891688010013940082134951732448321661923826863570220868025661354085546669083751681337267404007119520283536625379242043073094108433709694098616563783836959273271447724831885037749138922462913450955099486641169222646075960506036018716857987395548671699947405082515874118525040083518664125585743213778716575634271625027222278257977576561542564649314658098592467697840240084046033150927788915464003104168385338031683040493117875282806616129225910314167031710379016720695288228021897520861934063186387539485608969001155857817047263147635373291811874209585489321743185647469854268395306440958814951609063940968022341371754553680039824698085851565364827561036466679855646908231073541556885544119378794904276555230243753453258926395509317067490051216629423642071268751251342168537328050963622375521435179285751371284806913097995433527414222490698649112263930992173801823165077049519884214246769851041698379398647493477564690050147043022670117186596822624581374376856097402707145841627608511422564095287323721692720389123738936874229973862838162341270971718877286654680268961861592202566566782960473665170022396379804505954771155461816403960788694501457278174800100815564447398734319372937044541696865498684617359457279140045107075050328765354459742888659224188872002250607588426563191212423854743684622171743827188085231779748872704491795614941703641213406059240596917679165542717683530817412979784620689999730977995487321634075416968764296695433881809355513309138589097991925287773141832563238930111666279750573464690497291474995238590603069732466586092275129293649250171926881418797926135101339755683040364550401575005869994863972966580702009241597531537017600836387085201391108910734755276322613836551989658504453676830237683158950773965686418778725312603242013238638877735176568924569959746849133155545128800527929691344024412846233742696735511064837142386060632303062910962600442089129901866192551322102617730217452667823875104763739893061667736017278569039978701542845006752735883581204910709203551320835564366242117363954119905759417844937797894277893366605303301837734598516939492623535132003013821808087303483211868096122643425204862516826062443162948158704150810063855722174032690837674715501348610299000059448219151111758320552514651720411104539090955608547071740541593360738564435182248826575114170362302788068157896571162061033549501304531901893625283892031115534073296922352909088304671873813605287809553021309320837533947544040723091769427943222715346696170995475924949739811342370329752543138215940690150384820769361012050092865767655268908419385809938113633191171726925305391416209757312710850697680690534461659364279304552486232189873995595118177044766648838680037101033646396913468403373856032461141445791065980754476587859880527603860410997399109762920681490923059965226505313702597745473441742277643920702588050482328463005669993811264266787040232546470773398911120552883135181317869169138324472994600220301001079292784443371405913590082149836309519987383194572287290034060597023050455304426286354217581832432188978735112151423289682705672461252773031287436833296422638560199027357558436864071912766169827954949010504886470665920489269015037280178672802851533555549401696013595344181609195975480205381769381650412020633820379035516001801142917758024777082835297543961684677117033256978902468546984642462562757868708453217320132437352934964443154076218984546869376273065019699273576977613638094335174333991475028487409842154380070179242045926106277198354131000306351255571066319112342349656747102595609847365890876584626606939224585670803052515401984715915553144045942152507300204983889129901921171792219405604732526708862716343645140772464053168607340361398487922432829815730406362103196027841186155009187313752086791362227398799642352364461719565716533866817664689258667094797097617181178059372772576284232443144040426372706912811413422820629084809259693499184445928087200455693468897459330527872375484253027578143245665289684035021704342146217199907620778728586732410178311295294280097105734038208320278731084094700440672886559293455180945924257794824668519993649953111183246014821090735979296159809436966048042971053854217708309496902884078636064072960239492864295141679966974305103051161873894432764533803110537579746587625450135538698151486988786533874057107157221870001879640766095721181660634115789673307352722660388756514344623681712925112113433953921859954542871871971311916025091011537283776481676491060644679156423338927617550487060711464328661360061137218433390306156052053532114432792314407703850992727263249711193475655945576319391233644210754453224387163376947190061773862104556342352796229291671072799333937068401422971171146472178165624824144287646389697635358291028088790526701467987265470612569625080852828628747983285858455086533087404272744500843953796479543616527144992789765421171704940508097550345172952028050227480915026867896123674070688705316402433460649192089470188861002893043856973605776703561774302040833030702665233503608822434153496252954647705986286308854508605533699420254596769960930966540203156486719130854737315612775471319042583539142880214069340603504444059234833569901697818376612303463960174681504601838215456942591060268171385873265293562498650019575511897753386735455075703296312623442443386873065240986672394138228796137171496030433738485920665184123911753341504119699003914835146511144088736571381199894128262032713069220715588492655086805057517411709356926204281549267851091236031837749510052639313034049751030888872989331288354864353795829776121411063084002286670638305716225907822169875031330564718319102322203655744510493879315507967770011849279039542389479606195258515988333624501114040064947549157407893361548579198598317790005355162291343970071835528043570706787540022656786323033896805608456645733130094567709483358328178427316640104920678580410848111981363968654812843560677962671302221860843185681203618152419251481291523812074748497673744900680997116908177763525934084461314446158234833645298908195143837341841156246777564024931027389584853128248831838602095048134899892120538921862547719176172082727778539022667433356089630333647882693960165336946483083734468618091482763593788637286966007903420615435326295813465337916894857123332983071111885223938719458502714204386095307259517165620004781511168135379604532569119727916472856840941936727469530949541097006277882490415983204354535293016712578007135106760523063009323864965010429804523725492381892854120818464122927892041047803295440383500876384877748182023695549020382745468026065415051667211361186018087480821787918127698266865593240796553320858886817727453272457628209161614424995341624643365684807716855650116251861769545567095112426292215485130906031911286546587837999581034039331345990927249285615236513051559546751284041474034136541733578820248349525905226979755729069248327220509307626795322307422025059857975367359499376813613442056950008186384878821647987290928310304303955297221612866607004681076035398644580565357001347876934265601577995684989893550208797099102948796928973499145002687323803778102399636908853339096045393711098647000765958854007667990419267858591755699063911207778023521917519162660312939207730992476790246916108520931445967408944496261075545819811033228385862372699264031015583033563389144779720077402501810048854952611729499833315064846960589239809470589223382269178754502141187842471642340539345646632335989628340909065879784373546008221358970846178844222704883641768193201746126984229734587326787805689210908632513086064730727792175446789440105276811881473157187550708347480677863564199590338851383086727447771840949196288349670239466906288767205086267413188194936079680705042010376159368116555363992411861497887575449732542199523058731856225087888647811128103887173944544541274034231572264122517932129503999494363054310586045070690581806762043277843016223422649686353391551492260394664727602743320818726862509407418951047562148792890497507290603225701060943010850985444820387235664308944086587666937502796876684423060938642303389001377402907301820308413162365368126586466008046460789350437572790828499300654839207039309485314506577706959736198993547442881623069164323799584191780934797593201013796122664746719953169396492802102148292254175123038938680538934987463444724630096171334197096212068594078720775879349117811214676510953367477673764548085932919206552455582498685183537896644743875306433259550218827341340568397545744183735671843908994265935797430411103414614333209917259257973485404350814850216898147385782568349211753542196397526737324925140381298008179091243806781780722165717731882400978425046286170535866702419742225008853018564245593524271998240685736050897366004892884171159360837073244131777623246055847195223702626407828953201477060533520420281827504360600011201953597869151682947931043702802755558214892564766291002799843198944106663076878426017449030578636202544089542692875422398366021307338879029737764993860955957218835582779648972960059524876067051058300328585622237202511385991585783685718360956704632393583132320051968120301617723690236578010746386942195746917519616979781093616784296492703618569826591654645931148416564521517288944599149229245657403855043063642487742258647513220676887728344701912162400257683856365489056819731548637758728721694418415974807153049626768370978400966067912513442006700440433524001334117821709596059463392705943829698570311185562537179139482437192827956259020154359341097625245313899710474364397214063359637576827731861584994228058419482957025618963984864980911632200727728478711092357358881101114217549359431475996618927145996546317092133520378319026042629500076094043186925073653661538671536923688643994299110960319396301474047335695788223239510058882144401067979590977582978370010927214339482508876856456911085908593433470486725774051552744962867829449516159965242553474253311695220547257031557301401966299676138894177394020406685791250113591462955593575752322054216428687439452966523949608463935149145149860169682391299026876590736826593203492728165537105481019195606900866541941581296070631461213357382973681988658806803109439352872649951539106808897294558804659433533094258888974222553339570593483996682535619981516500335885789749445048238343937590256445894291976922801330154053915997376518657403337611900523466904235030101346118070603944433080764091275337905168616775205523803374502943334952496438241566995082083850866450306467792184139104582793610059294418014024546295423880410957167091658713419257526181324420775916972267332259624112556081949388071699666929675434252451046790896002981034496636220556437542299577380786578699702014223255789631468434557735484157097999815318273924101252350932069055016005305427145594810453502095975844836630177267987927595731925709737385821234603667161318746850364386472157418162429327224333379668300658535967992088021239551681077546375838795832949822721219507511411265292237105279719443217856743894920218334827504138325003448589496952701433530393691245094948182623805465992833506014228544603005874185389771878821641389920808359961543929611948119269194708962434950032595157337667195561249492738285414858896548031353639951195285823175975706814625367817691333259199448292674134165061504508288958033284887871820315688889931902019283001847820457636098534905750831847896877793068180221383999070598207343487346791560196252545625806831202916388817724761372090187858761133788437131427376015603708498393449293915813919465460023596843420077489696373493478874193366273617911116878148214856442836553920047486690644920051229510134431289532206273366398087618500134550134996542845587924216234143655534196532665539704189066550782802100206054032431306855329676923122316694717722222369434455135979631728802714548374328768813489177111020892856458394823879945618839473937729997722951663068606406818629389137131133058876586690235331536793385161415476517665423399705675391330055509512405877622166396194267346773453637610230321326690720485353307974272960684693385709572647936525226744423254413513771380969362843011270464776710428303568055424162259133282048196209100771685931376041182708694776037982072481920503335934648022321468292992321109869232026107431402082549056230007825949918796484285059049033133948160908375204047057881059515541408593150351547879117428975919252744744441871959838030421796573563195547392310776779562758209808897266215010388030702777622114173700848883699186931289039861385950859335250767746212707504297555214893543899191420421264344388880686204677770906625500613055628016918719612011692676399059683590597526456435999948651029815776201699426175428212460092404944868890458600869962028956850622465337192439421497346517133700516605363219093314999323697334983251206721412352037812629423484662659370595225866407832509672774846046361303326244991625633498208425594815892856195357097021851949878489298204647284632326538448606898724108440869389915408842460668390270719049622817944019268634926978851952330586416167660619926295884055207326893035861799894635625409449782971463141858229471991440185324436586043036493313656013412354836529571374041363823287379384442985726703218145347695449351949516857966596122871747857950190288816174911459345445167566159391909548301228988053409669544382282136878166794738965401385178149247820925203438457721698735942695631536709299159549199879282295503505918029078511204363113024553497121739813506129315359613862054398623151871871620430962825497668203176023290266827249190696061028854120029206035614943010579187635582993608825349905672009668473998762265857226818755821109038218272348784295563592612154715053507727155828436185438356034403300403078423521918586668301826025610065314509042608568942567222664952544881965599089408021836234776475154492366322207074893426840622917562731653667987421375413867557344717736157341555291291376720730788744567177589203189117793750996426792184290037850489554922535433656987206314349552780564996050654246165271944690935707779281614169682802608998018937669331078532137796423171391201186271967092195252845704181642209569540170311053956732937233655110726189153238404112190647882892539210434706334560034519891668044038047816591471942949863555522911054154209416606415802369274832923334959492279029928167386203547110127734631247424878207302313330139476778572363152208044243682062374684852550903397757253375114172952220324038429181963551891677479716916132151690067472016961197393753559306363985594182557780165864112724852637407122840740540532066567341499480545249392215605306888017032386026262334207078323126447002430087924365217113137027969197104676074403134219714678741412287791769101261911802870570669322727471096526886485577373597323303760561453258997850966583944831533028363211022846308792419135028306133686315042836757609842175528097704794337728620037481741349425044130845665137544225603995466825007243847176021061574357925486590346709837048437474529942197442323695218130513504583063849497514437343003247381777247702886903670833749146983426414417264963062694858073775206476739154672959414901018215868890351099673121128149582345838956034009493632729962505773731893138944714016090862830569582452851941133925791210383032764174407134132402895956362889415604682403577426341211505887071338349300829996127132799778843288736556283769756089473972755490456091469107350349133064851377709874906864871005472503651257067078050389422411973186174000112211649807104058160283289219355692736959245969665942635704987071945851918695904791846443394521870159873399866648041400619480626256210531653012231594708006590644114236185179023633984137308599840585263214283931169476075814642033634465874526658277616515288501239364237628135214561225191895258020819326132415283764892411322422836540087181657040402939695070144506469819525517408815575533540385278542524759889657773006206651243187020503265790585402904397509906435330903625997602885022960890340252152735568278642923694897924311416707091795324140882218349634982649404267989989302847588901217203667477608332158296681261423268369494915713078963640880893806064017970992966775351375108795921785024679616111619894982331523267346237638791538507018376844881501056473939007896355052594474281757399126535928867915119276557069578773869715001322010690417359992063194383113051446146698553724568979543446136162587112792042263822099515581089115843924548053220124917651456826516255893978288300314979072481470719446172698026406589886106700258847251573476960131022686236930902319505786304254722359389998038477660115966383838259514008173312887022866530463246995585015355780889143802559351540056744450488356750328530015584148018238025840039180474012008408531077474996130192485646704929243967631127174602976599647850148038340412224087700117711862803985134100306793051503147078047298926585726794802135530278134637477353065044670030150847231388344639059803156456750239655371077100536203666555142050222085694401439225299404893622942944571423125923778722977614293082320403620576792174650647256432014749005655992735397670107160756091989166563576774374659113086368600483221307368781802601464363584051046945133299672908845541419354496931922535072584652134124312304782793485028498952605171334974467239492396658092103161049483467912877030447807619149516906027735519962583910021410824611141410487518763781371142083355257213693244405757976352725246771252175275763459183827613128693820214707098475430177762184144712958609693101622861663289661946150764175651111810571565021070069539657111936367514050129235144530903907510532364808301731578244403829714919183924480372714937552511648770729582833536876651879605405722034135726919166700637332820227282213748979650063791489489074772593679865480774244742270440447690461241581067717887682682817015533432855762315139503952327476787789522615017122741762984366024110878644386299199944679616423745274053175003497261951882836068921139401197334306398805294406752288695902400182390171911923204478174667914040006442765627107582247205507538741654247756345336539950689054387858458345122726705536984345634854840889264341159157051663533736646538942110202284094781698883947327452283004241824477300858475744016665061128430073674865457375731487441657090039267415284146082886971675121025736464601083337172058574402325978527752875385454667963697637972745013729864210204441637131573595077987112763666006055433793683573321050904088019180896308755675223505559451990502364797079625748146084012765746420468675160566533022280140671904880366108577293921331844965605898047893135823772821239099181919785464034283349597982455197034179368877827446997133727863125376601548368601197396637699511639667727115305718973083963328447533802236425546708043469285951218975157722674578980199686737742011383241198281145476337401576385542263115059099701725489496574396510443394637859054992017314842721720532283851255479851826449036781618902978528584750998599555252399350406816124528421288464169970536137061647056117578063629360673890510974368026136687020715763313811477828852986857546817059049890104065009776971820922331305866807526388338159339682683923470306774056888010622113619497082211296983229249080823976882611771187975384080293205098331310363467537119227193383940516336390342444389294013293874490183249225201301834809176283160478675615277184977429793383550366525400334043450528507222873980483199269538209713772397346360111724058799862224603586068454194531497481850922025332281748455346195201755024626583073886628900849683052351075097646908073469435184561499301393283731771231984547434200685876422238512366017725032012620099931282813491253960656384403019651553703510552173975530222327209285261817358693887749271803664217611995472102930392889938621369181084402438312604223009945503612573428394484685411640527502234389742021201407045425133497928038688915390232148816667601950647239762763912170674712898303621723329628376739565546298740658659361711994251040062949168401256429923486611415193607873713675531943183870362357334193972780344480022091170680441298101707769287099852944430769395158965753078253199977625515199203421288802248020610815160789321064947563311193481644375328667242242457436486421381027676833495010164861248060497328685602604894015437866632657213036079963493764492599173780969987443185457956821232744683648159878962233878244556309094609969332950599671821064516799049122009727620215461941925331758829288984213290060834597604857307307924199166812835703253340094108695366032869892290683935015050974585889296029677698489715150340485026173191433632884536418786772806245837182319765215465569866591698270527100956329157435056995940575386370985162985346943485049885222499444503540018829541411298831288949777218399781912742183890338589441256822428883339380071408675635869000616192296856289061324326180153102056383631674740454057475311003836482901537445479201342895712667330012139948008506529090805504183735309055425463375851973918796523426669472356645510295836559943330138990458938838588358709101647070011138242164023439811173752506464122529952597502080663803262773652217086892703676028263300300131201504527046028715172426867318046033314357771256636998351100116533046888454630743388049964237614507670200678246507945908915214372674113961897471468554590957935571706277040379648409459307825975480864132228714854719376822446109065385674332176721008140822357991755322799816094826302233688199867703292258394306862454488401624279276436452673464073348089109800261209970615968972971081856268537302375947024476722322663190730050740195043089979413719887402381928669331538154087838072515014816447881328350284605056763866100195693649822391911775001596623098472564495070104488756689054967588147725369907906666905211528270032307583601769610600451010596107125449357248571508528007591998156259579413310893656561522207608707731177345989228503857244990275686314974382907723673225034433082965807699656186898087137576546352964979005516045784521175598371937152778583949407354530996357585255951479500520448825716609628356066605621383266063412938080330281703125408448320996548910599429539056060071121977022593429947347250598857439180140847836013541242072976249320103986833194523087052055653588688488598024831678859957264365385769525885506729773094238200086060388266673425757644005541500087540815141591820345316465849310905896724830849383883144733767977859814894244070675376742915431386241768651841894551197446909801090922722888490322528865764648451766240634152976570297811706105688941017327531171082923636826520762445513390396197020277978689456836718011829103174367062935346896280756701337469896049187042032318485893570151512501919991225496244029391096475631286596788731098746661106914291878886388423905540445774896126697529460745564482439000659651772205680684656559308800357541700797108691258539796420451162894851483218482604276329702756213212399310072492839057444689335938691288073321108391386651549886811617377013259412465058551635891349556406569788864087371418521075053644908769904478291797653922859934361466607103880110879682529375511347951437192224578689559545658548345339951022181278024044580061153591152609858667445188523939608826362970887243885076628859999454170776730081674334801396893780111680846808080791559611023703463467475498691350559671579753158316823095927600340746831816378934687334330589894895447160893939986039326036778390595011267031165776477152809407526031118125115686514743560709112362764730697230594606536428504063288338797480294491036468448416356041222368333562733856047307386461420324907649771642562129260386628857085797221454936151756797694118021816504395025298498907782617688857406192268840382304371300898453820762447141895518897064321753185128942422997035743320744102970050777672248658181980351190595939603214644784922528795775751459618322868295008783477397535731622888471013524588056492560156317143553058622544635487631772946824960290960089135852369681426905124715433891455723854259743649110852049113631188227891475542408322454974144726223389091908890674790073313006101150975608876934841852750193507309273965940869889914210143570236810098841105623923875882568901853215602257270149583208656944831873785461662473768903603012872354689089465255836102118711945253854210354706016022018900402507046485932066543282039019433268758377194930750458913033618953364113891996358025683959593855002466016215673228481889529190658975342083321297737586390751851962083886503028264761791042830588141460127874227964597799099641056285661651178576642269096326007936755395478250845201764674926669312783249536459998132946683784459737387175947292084340616085457821610033897168786461778215069173512740934407091672699735671251212510813046025932551909384628874483628704109932516119363530193577871330680316811137871224967727024371171317434410305565704534556632408177715178481213399509018382672963783217369722751037213183675043346221010819660556215876404592311775242310704628512356115175769202904894191645027557648397610281754072906334156158332738865682282379954116310465535699196781144114314492399753336560709375354952470712263221872928517105966766101000723372448054944032202110001364114171930256947902878150026126670502123811363708376716594398792986829879593004622206580073006053460262035039435862473530248632324309175297672325543544311310377154971675156036216956254706591484142717374068226226266683545805573167793023819242015383924811760374298461438586619675588318401410063060308200670891151142772477230722076857518531660787250887878270282365100239324198029348217906617300830061915275898321691877176440851533367389720604948207772528135843424795797622595063855270172319721523069483151165441591510005035433646995750271560516665455083536669906662744466879221966488605860170285933853403601469607950661148908236271178670082868326677780777156150181998616906679944585916550224154398607000362379360250471248333190888278347660380676617565888037242528994550932321933310852713498261109201932314184021480446921824810561092311279070586719230461164229805233393090816143674612687423922543138998930931329158667503682789272161478930098550050122088162572313832997909045885946565756265442017942620188087602560809108768646498560223052514699068040704767718573476133407231906290636753566738181560698651135576975867265641090827562262572263226378921006700734472504806394681313501509926463528019020905284222592802976079853249803745478210429411887795881930471396648765487531994932764178140869151504015974558695418205021566355582594719132207189348851158033473171364621032068638793497567758853770998011251855182606817652529709912865272826873915534818541876588481751648642596854280585436755850810814203375322621901415484486816787542674510506569191817653409891360261569608419842349414294213218714848483269821107022152927687770797386517404676177747528458877744941077351171588968372791880214007815141951903414343812425257390035406107993863699809944204726941823566354144445920756389623553162995518080111031963812070026092602167424773381776164641285635322738887292044842534588846562362473021715932436280232814861794959039715833951931534299575445805808851676382225478351739237090825863828237284167481964591495966449906864716950117701689007263529717782280670197126191662150491997767688446382226255590908287566429426921526757076684960852621439753753952598031818176056758909721968282672234342657431830453913515759662386692786940802551116256300567621900792545008822919971506897211429616288330900914496700698906900063057493491898650097934159519052881322460605164607368484108316949306337497835644083592479889796811987841238297151616377482496592622328185863649676716199308334868275784717930938292742797602640687168650786592766990405018111007146146923774127103819147896852063696458692168288059571483251354808748085584805009224726826016353496652002896445119755046548903354414543757604908891764562098891930967802036108945218837065836509430979565931936585343620039256620417062304141627986712225788275660562922450649911662655309251072588723431135872967816043577980393582246237620161715837216737851213436137937901682049560481338359794595470734185676116283167119050934392243858997067603284932004081463665090777074173217539184287397579156751683939587517538761884707410538483804715887189863970300732538019765728231296815883039768261411151299486484055092172856905920161802896343808391902236813796443598914686128189508740350025418830939004072847782560199415401137461586076606639516010332367010635686057704921913459752808241901682186161067020171456693751844840604783836492238174562951615092939389498565185972377690120382832647701844941473432754216746867197632318855776943014056045642707201724796833009298223227754520810202194006555950092946085275702484964542655038169091253516917603993752781462353419066583796463728356126109033207307325846026054850977948349453233877444714859606386979749380461214081028710871367741970104469139258443714591147213306059028006123656419819571002445651137922053197279730959123418049377058757378673323212166129499262312278720548232532748645496357404057198024318598346825908492371684318785882049564963054778511313778018436358911884357084831613415468592578024551412509249342202322058348668403596955153474325833033264547965243869671745443607614082144803031817560098234299462362200252960123140953203094411980360423966573822952649752662121054821751476526147189936153036669079563000824673938794428235640231123320353502788568745014302149319591383152463434167011372656002935254950653282481373905616212238290477207366011957766860425855514989185297102551022277275065182472083441955640661046120325424460998237703750366222754788855524834568689422160950066480542041032997634371416819643282526963091085440346275109134346392472161476432608242964864070023046908533123762264657567870944145735155187956142475434139213044597713501379104070183426433740820802881926462254424188645161757550983361164339011250018605576011041285247199262326909243077523950361731281007320057562655629804927054760096072513468352664738021319916492580521675840414814989622274396459862338062018234312553562732868871661779091559289870581125488419151975490529569983689883728146520934136582224065362130703610283481876382432382122380905243641343871878909021438855340799295602647702610184800587755775263362949540758085546835789999293320250065116356434219876722199200725819010730325650037227889135129085266561872177577214499092849862866060868639973656222823434014666503390451593348098159502172158684044338565878735663020127019702686650804111433088384605344021196977104108439954398322605244336034897540290555850088684834799716103619485000522113931718870615720355421755035612598356262939187595021104063953121755395069201253808491637408202463411175653125510514772820333043533588252046942737404442600933696458681973154491855124123655750952699017426023195501620690752830838652142604747730866617162689625948391637401884186196201673864593490848551451852229129582912614457319331126694766619791173707648757651969852994922155756874869700496035709044264459765737892580319108580598091161758285511252305989038290527059354328221762276474320554379771937100242481403808385220924903761244968438533628079221133198868431396149396529400583504604512488609389661188352957773096324131691881517453237015389499561642795556308048431719382913606059719502635214543332036679493706530916550678968307012516213684504880808646150335725908648387400699516459411286420733242200049354168058869903694443951522775961638604562068964570462036579180916111878665625847407511173540508306998749468489455860330689421768178703926684072086391739430115850673153316944725435988191167888643568485792146050006362617478584231879809838097415964205527099172138118718396883232235934473390571527016073341747211657227608433673158757981366515101096204310302357545011352436118846649083387151267888512776920097106135596252429061835676883438276430827692284066437839854067321776984268325221314943704634579651525888730244164572970257902879313360524243514686446369377605282119314390143720707297530567040069368311583284257889648846368727023736223111243354250378119988132298758035874958596181477844247931482192009615592802725841472731943311825584143216429033628286848181548408168004230941559621739272612122998267055948872774213078130606910445161094202554787660983108554368307578911129099911924905110975121974067075942156688376212235103016724436156611939174631475597477635331798462655266135600009242474753950767630354021347101764102343345404896283748048907890789637745183737322139163555924476441437671478430085214121329757020865691744490776561119052155815582786754813778467738081305189902678525014620276218696646504192450200306552859053244090589711420737227302796855084986056353493947478473194742243544339613033957314725232410904486221438035851615754117846786424326385345575034562345955286331475099869463058332315225147394814762286655232562105899413691874129228381343050044024093196190842190650228903026776039885603783168637849082179661758451446054621202052210622475964711890280288494124218323818500116383674451580861427548312875696193504473952940758420861424312587412533865177233790007707005283630541588681580371852018796330779272965424987870460765379381791461388393307768310220932042292752254852020535091923649326558508768999367647497561594054802256713356323294398606177115867948257047694145876874998175245349704501033297023203319685275501781012871810236241284798054125420996415322377169784365048753644135331223335710282231743379693782742765592469566074882021256065360756501998451170574881562377503818960545045150041193239358222874925325750215414292023148031339719317616970227438372894153635878076450750873831678469600111757195049989559218209419734262353812251448152576497574239681910708288990795059950503771530453533281832307761859556236432025266472214124738421614552613757280814646722386439119531350449059293921341702803116077037894158761387580092605499619779762057221944284931028476091687733068954109273067727557705127596557272308933783486670327893935359152341293527352020482110370240359804933646955984251254031237451230502353399052245965379642220142213460585367632015069377980172887574961009102910826694888897606876021696180168083466435105811136741771915994992980739601488566053230635023020380777056647590119777661155449648991287233534185338853110629265302469188995203094804283619025514686967382029452081685299315690478751943825263102219359366701184174529105283880610270975015431139246484938988418389047661359556063215264025235746177008349148259298483465951618712726661183375895517478875178816097055929864308756416538303161615852297129872062499727637506609604216797268661332803409659203828587951537721188045470121265084189545946041149716819874193635303867877042906181562165154627468216496091564889402287268323474544606678173707794179014397099567740975771484151998784275200999005375209831786230811625798503768716259867288963755959720925992110176455376536669834980533396191121829905544197072693642810328227586193069065708755531953231477535262225472650710633564925847277363661898518087561390400566123130509674440643174069265143890971177762787432224720251697920004379205938267605322600187589948152096984100185293275522093707681982605594781968443422111126029622519776085470010497826849350624834178089292595086873910964241949707131369600376640166634865869903454318995156824220421270639468262841236930717077764185025062596397261222376214340125568718085721814328130307884971827687725922566937828176618830465810939012088971130255923195239357210492386795564187206323254692056458818439886079663537142566765095311812958785080721364293632796683080794730189959449381837730947533273346603268974764649284180164727719315453615017883439946916955014735847459562520356023023324222954025516223942885509926000302324207938380011268435884205329497698744707568778149377073518013121626098244663758058379420160992697777083153598940844219261527565121482218959826664575783462248526828687968968017417560821706913598565903502591168291000189509338190723486842963788865066827905408922215126912252096599098207972088323701127614879223807632533510138238154804921746021454915250031987214395252509994670171562562824915213529402589446686171225618582167686443139873934808192121324335921558227406284381668830005236329620494191387628918881698766245639440502695260220307388567360600600205218571675341559357461159950817647770965677354079247208658211088607255193626771595636665320563693774721124499882160893218556468595495295591288271155839632860520178991895434767038037241675089096952743350086434333950988997852799114995982174369676512411787060340302724605596280753095669189662770153801766621974628839241990805388670311159838282775342327945831345233006630151590657199670689424843459199566964245500298869876023169937747551338591322244639362718837715873537792053660562527674178502013333135743951571560934565642702217198927830738627143607875281201830217437684951768473882836335546836232211106309937663700014423732834439340320616584499988920000963705733580174004634533269208476708535090621894574603121790211598270988678152700266876792532197172168263430511657924260400162058390922995020993309685893649278833298959568359599963608566847469050394607922622670698479207663343958523182188073022913557594080488259297944679214057604165775250618498210874189175911507916679802601478951893037536503061241029389612519130194102983344141242291809900127661150470695179039388560516373687576820005149326439139696052678683945539334795991196822686688893198542533794770388416903290376542740005792954151657658807333215064881952841273370150021639631630392169891361301405652385616763203019653580056287753406074266105789057236386406815437921719611868042715131940003508119103973738103134974349369200490996217548253943868998943391642434737467473143825288968177946949334494184395997248054730180980050304116185789501871433770921387161135035765815069033794196393290508504561422659137641022058363711899428679678874407085669821653779873916180008003605962737025484418204484852542592740404997027997274019740976962452985289879340475318484110533823884935941901695606685828755419162589085884791674339337039444232246777465357218048247803687310343101926700649362379886477573595864542876471449663420456887724197136922182150549214492033829681559691303289694907350808810762418891435564297366993303474993324562860645580359461898851254190718192444893197433800173397203064964109033731367730432955267482202280790290928557065609945322202012061180689616289533297329409755740117181871245207067923401109328798916165283233150649781065121736276182119429529848827827529031891802028370509283674546513594583180928212271732375080713996088217399152651768936113580478673863309786696652451881664571496311733078410165056216521795630640741738684334062678208963899172873366134200125821317493990606715837947776174648670375738818069215636303372787735906004781359779371321011160088441260561790256067515090368911453300153249156512431774885138561940027103730172568895599169108199313213925215942688661324146527493899785111414985677674531705762419550455637581263007373797453415338211217077984471719976917578181695912645513128377716103137344611948824733693120625795182855408451343254988704188579180594646557624450682550221880081816283413431035087105383746661996745631427420812045283045397484228065997075245519713023809804266933457783531826969162208589985248014392404154329052276028864177107468457190345741619238373058027442050372268760767178334389296463468501838265462600854018211940473170050375681280562148487176943596931659397555944797844169851798518375203366557651193720096618115459067943051124818079822776454325424599446532188147032771345663034952293944926141014333651204943963405751194454368941123581132613272144081748132899478216587034984097612236563222817998149204428304695783745576276036751401212843508665014267387428619154770828060128859174569256586162660109573016540945913234637571733407201749029108152133073770699536913549147674356031326624396422444858651625766407412098932255812331226337933446809200858509678770291198770495321333832991622000977319601118920504067207328177686505873147860779569508425777259937649406221392981260189744164114129051518017350460716761567756472488987612370071630650952352225927892284750200901430259005163500769798946711487388273957230748923842007279844406265417701996723649128124397006650815325596359719372844398758011655863837377240712953536791141256659036829617112097014516294128387946613558417111176185682467708452711453332131319729516976312846597728561584149651579554899365468672345488342619266175211894322593022928491444676293001055071729597854529065112162694387402783663507172207392672161986639507194822179207408281895786361281909426897222399814023835523527556008445742826805927838137119436604491958150237746974845826758788323893687835262503680523844296510450327535848746470523294012279008266186051763335608227481811165601141964724813228809366446662370724703744088768863036193448788552016799907306511666676649862450827289247358816031291561514949561111678964085380586955684721528170509198550455241228492628407878606243416564978428068104704191543120796290224702410389731314249407904564171452525710135312637909886079996849033156104543944742273033165772193315715156729144695543354800660117368123535639387615113348218925978582168222684418993724109542926004206919143798942426203368273844197195002338237261308675873677167875217718655416905953623659997006125072184775353621165454242679768884348426958978971438401904330708050252867629258980988364832464610845222167572173027627480183915393104596376703022323081837583414459809335921122096919566169162831629364295296794327119442197939975879283531796397822427849457653060172021944893727985589220439436065909484510148620000208583926930520287410454090050285532245053415869115859055359633493044085310199801551832928640310412706597761596065300477158101577025517313761845658448921870395817072647248831636870640902105296142527282102657871514922337468948209683214149096219770781645164902754218080247633253851435719002721252257158841419853825693502403176595986850601151957408128640596535997527383384489345601676438793372762218238177591687018070280425443943603648756915071461130229025992568780340247906660297736237058668157529049377837064539709448310087052470077581425425460413449129887270686056729192899835932094458475535904153084085811126450406268419117100369239002887188864425084684018930928797493425882150597236067195175588323521593027045104372851869824158167388953002124793159547806102387075820339042502149702549901757744402353703086832197550793931288418398759199950356555446734362776066168866643897515590407056415531769366863967234177471278854682084882632403395723270826030425661307846324340128535586712298676320331018083597002051547260078506415063277194874856240903400031317662812352965848525891429493786889401987461991799381405652979613320169962002917419237509246765632792813485212478914421630033754007512405069477282707016803568208217472023690845866385126314312342233982036495976850376484721681923482873194475122487843795404285377665474253537676057494649962448033589279142501797701738679293906611540211132015216300036963568868508777111804534956220774274098175229164001509166751578112785464909498553156077590263648266437058641390791425506991351481561294689255524833456350023020752964030102940870686280480465189232177699596522629859136076147359291592495398227123105041326572190965590405621312250211009546433852214016570963532770623706491084444211549150375825852888740471634050875317374524609093395523009386840837059568172110551194161646744014665221133675068333750338323502102643474756307635386856477584622924840115448147223363036531748979334079924244992365632717249239189449383921108617932743229139895734107830407350681131108426383547677085553097536601696829192014755096605253471866632239102868590532540019376160088144088470544994117734809290056328500754783788589002480087166707788610559294037286610673824794897463424209594825339941775963304273223433222250373851607309436442276134199329028709901288519830445621409884151389693409203845088347733498580640804288696968699032707206409041361263353951008363554621452990712589860032931345107583484133344834299333848628462546428585256750749066350519205314969413218622489454193798596585448332408042654718493917955682439557159851315687811839882542773391212208101931137988610156098043090385117167981672121497873801576328191869843831662753020894042748243740020299404736980502208969994116220696845379975696204441292742262447549425298277729619072673640601727708379982727345726093557152187539010071311115266702642859389627005912223382993155777616310949990098596373866873848050667337105606497442907652650493011292678468323024964257545165258736444203882434923516512719742746830393038455449237200802934680244801660350586274670062828060325076769738622867569615043917776699733516245159163477027498684848029365884511605404400263970674922528120123482012985307311543671706714424413951378924415297773205666396202738591032006557860487107929487685380014819992237152041766898512860671747382714905453616644208859552829943213628675463344186749986118740588804861263508913656320512842397254599045335950770863204871666586288700822827528562964719859105283372302320995216383451552210925343556842853891478296750601699522974989354795452458136146711305021715793837722920853129934858383978330862806886018075821641111242932790178775984996751322961459066567347260766335273744643099396546771183353833074700526810969937187141026823647287698605597643918479196300636264663720820478174096067180062737913404353310537106380474501340978090385401717775227867766768200978847356101898808080005456434039352568453083673356391796824603164478252472334287357762854977561526351603713698828849340174176988816122341870158426018946258245939422425711685425417597418356278044561501838366944196549434859351423177456461449602166466587354121597555075884504130377956967555671552805260492160436154134007882756310283562787483704106425269041863440504641305289339334855152920384592619708860952138732424943079569860808323828250776290809383253267966584076093613966960678250205723887710224251013263010011718814524840345710766595870990892736835721806704866883022611407565536869506215279723891662449726018841330016754132837817152007448414877323485754094344266044629049632744737150285090523663075139840898581808787030280262861509255800077430186515277131533530675196612560741693431704437531617651059368440176274679384644030452388756921104477482980026679455949595054712123830676680857407269026184121035436302962944536403130174609517267960276948175367536589406274275597805339615429529298498264529282457172774460306670651799933673182181670123394268355559016736351094359206651502511369459382953396820090823482207573019918034921983695286229314177778498916678905840853310689914762608327646524910654375633319488959748092118364021960433791413437338011087822551555893173852235928211494634211635548344769263695636812325771458504841652777716527069867513758160668243406349252064460331002636510993152708970785523514067977685664520160000803776062612544811799981027199599673906819996717505194710167648194494496035310459144404137728694788334714395001822740862875713734653920236030152627571451070820304964330818239867001944490324808003295643176301210218291238938202695363438765818661524323966762479029412963458126622183439640727027249464967073481155888700689357595307650708079332586938615079084232448987112764437242476411077980767526124032621441492627534517986989445025820645337500194755506244102332539284874299922593736592214018884736351464899252876114386257680329755025942629364036632552715067435989369951243973740003820835434003492259546007741870885444413575403049538705428511421303488216177448841408320872334134306951702555124074794594011946808581093910728934255463468033604552020412376870494298082975392435923698736569130634668421040761470987169784508235976832295168629544151193262105135033589429596464520136533478368290009689259397395508758454142388617952063120149149528006828262847994551231330569487729888726831835935302470205141722501648657264059955572228093801645246107234582267184704178339349853511245266327452970405314274605478196145095169526408393945014694401920224646262373886398708510418792604142074718756097358209435952690348764419901261694665711402317253679619437817505220225111254615109974687626659427308507626519909610484985612277193153915655752510843850136834984547263306445925175509151501189154421192349334017860233734340924578475327077462616690897346515718816708223389869601552917189240635999267564072852065976601793778708878841862200256672872412388907821112686178784862070608180233666310145447759859209186188331038112508887317995691342962164945334258407922166942654736113288249157425915443322577155468037735677696836330170812375568435300825023578998090994601277763607643088193812203228157329524125749884225007449408912996870016509854811764360183661696306439714331931881309413296090038384643058875152713126944688654744043474495728369113899152094881996294736969039195074814904996635520333837309749682656666682879616259756651456953475821722124738901770786187828494808906341207896892792281362019955845384404032996729234540104614057479919244406687842539665687392200236777275257107461230119267373663124319777039156074119011430796079884426152685862939104106803338823761696265996733316917881823867491790000976710606810195849199828477140944208070462223428042620317848999901217349708283637284856265006662039602546784059972507462702413966309078410832179762509215243234873782199524761443121434437511974744830424005027312466424954885564670306654776624882896570060466985762119005134323265538687340733983458666825774761126167313165313052177518588893883584701116398346014312489636151385341103752753808996417826129550103545952103113289937046353470458094452986160912290660706667600622142634815824253721684335710676533459553058359747131129792922493913361672984707162208326591911172063095204079751605549468934834171154049367678241387123998336233288152056992027863854048272073707792411464848475399219574869341866193995996855149913416506539105875370347304074249421594023179078490303829374597506569824347896552326118781695555091919795743450511961682808914514798675186730416176370190734227198597505875414848346271075757129598137329146335734489154434974453902590321951349080806962240109253602933090966221169357754947266000659309624752293975651274384692946642882105326412521857885346457308740374527139230670276443502670965775355184553652042005963465362176432682085169393170342732257210226517637676317750320219841951669312881088459545415458540358108564172933201301322749558409944321797871026139782161488554255639106579443512825600534816421476856034350794452525992624661072389661141841532302000078338733117561356582506304328806787290538381662244430988866716244499309081923469497028223358780752548763586645347952717195758785762345316973944559023244095022140833989290838568718658988890984433780507531891032521592560270535308204195065358860421368544153817105482694505667022990156267652671055213901065656146845718834310957501562159903922162247849850549266133168764064618086306802929827896659306011745862010673496222198730167032333311200722600877998806808735410512744309768337550165563525217486051991324326284194186165427880501235167349060443770038945096814939743410056513385092246329235127492945311017457617502833791109900383694230374132657466396343440893896128270683853501855264000151767268497710763210607770786105883401249721539347136562087309219625166075948191964191022306556369374364259334367892208947091014612053244735988944766270770058273117150802910950111356569828868381836885072749539955512100037005409888066236492365498246510447463178477721324514625285645207810422981234803668456331688767955182834974347603523980733626325774809180824194936171938279969354796641280563369608432806639293778131070820542724829945839246614248619876583568072766059785047788570260102914314951269802130642708026266114286114068482466819847781273800615237514036813205868924934733088492812831517617509073984401011185667228904203967360391604699488323106211961940672480773392102490595594995249658189499728314070342650094608109434592439165691744351740239108345586751016086984262439349388458763116519100697946417732905259049587460404039522785913157063967317879392100453982273501787625977827313874119929108947089435608569352635955235058278534456606199033662141853194854405804206793956936650487937376993023769945404507198582098085174418368848459815802668778580246666876248042550210221024468938314133528378887029539982617035594071236509098316155527108227495655304825831781302002893765072063176374193793855279505164175455953692582221293563601189338895598727881773573668056324216465903752002166568333553326827815577464626475631327949995475268480060307370114316930847531281822006015039930896405901888978393300710190649924661690171003091769451245637968116816896603308874701862455459421678448418526518350329670234297289694239591189279302567390308076318603142092794970899283806265988964586325395669935677592680775470047731527952735068427906982721575038181858532760818201613151557566028973103962473359945442820812878488860931379401903295548601712810289996743559220338088752139438585287410522347727035411186161944555574269415595166868214990038279712347045479904077431495624803362729626854647553002547228864509874611986307924629801152183793202703907680711625314488458628912652439890382198171529459637514708058114378975922840044236406200585585000325724391549235163691460148913631653902187604602512402517858019989430125197968177914125950243067343954251520334023620629752422880797077444226720402453450591043785496460725890378054069660502025824486046277366772492756908079723156892142823826898556139872284738239561819166424846301759063136879110301332483701015460065697403468871800300270626129311185344664641653231507808942056217877024511752770556571297060909539272821957252239432331505769656821928947105164601554745939133912612518356945939057366042614802395166116465344907343988282946823724136763361591016383473669163701368091811736306087549071440293678429262023319297281996902033333362712056614025987475824181550221235406858416833844012832496319703807588175485402762653318390187906363919711103392000296532236574550329993938590854298575972426188375056607139038746143895940751070385905647382048200542334571391392741315134385662928751103633245714213307243423386796954491279855950568238285249117269684936157331486973778394085738869465540258037197193554566175653946502455679362753590184423259812853222403591879989753646118643664788048986286216004250663986726641123167730727821457660805383277917118209281518422738373378975246554363687596281705245427741194708365657748084510765653768299648698636797535688705924869063211382932254801131532464748199020377225207671127861122984935702612039420665488595645078381113440847951998933335361495286148721268690525090798947248959131473143687644696733346626079908920328052304434996543872871719837907917058750105202001996046556420048612647414497440319381180341986488629380968176670944545922203582566085036756017693024039798550861566428529125971786309732650972719049010952318293713207561101391388550443817483093310550798443688300570492460910462362707779612803004667077267154277988335953067776678284562211320959663254416881578952224182162261053946121782753126344418294373793920640544513193601308989806536262290582191446570889616734529967898652749346118204992116890641562942748004505526379869130736838443215886167493519775143007921758014653352896293476460522906769454401297111942925910646741477082939298427634766841069110693931397717395042113702037945254889260815680603439841331291012877762997582145880140948303771869277324320925396219782006425406459030147455288792549617421430724507415619091782983220981766253725321954860673975731967029777238157711823998188933274694822657969136134399667107816574416381333846147758487393147370710072456935977567407056344824264828313078359779661975864346991334239586735009915205558075875406532552309800293966748565108100157853652944031894856492616604902076011939065681195695869437325136361502247831001470735315844236806369449461538707643549274116907270458686200313276676156658484101684584053448960861488043741226857738933973031776327199799932265408317929198965338808712671358440057398880780545497660110209206563086093954968090506479200780712017106958467199043908643987616496963553991554232310886792391259972009313524753027765721307238259846989787919244567939913532126344416255308954417117957798685670475486657824528138214424197914556538202897955275403004004517060799437690110271990537045772836653651705168807951155943067184719800644859721150561588723564005109418163131436620115681718151346080271725431444470135471124625445322971779611061698514619614563729511824486011245187973549424917549886420458257134379109075649213440626269929881493629452061194419942476794490362055468915654051680286385842292389349024139477723849473679679387628699868134848836199433529343438854595381705267456824812426590834688439692269101845576049926161781994665319481161271866062072631729164352789941079468041026859905920786741544725515600358639874492639743675110919548730324176274495442172892743480948119894560083648389257413588949580166316942509242342818163160422436261498820871933619794010164381543718968997808247769360592828391952894733968455189375657672144985620300918525109078260879297938391789870738880921066690411862448740630170411910702065534129140812955516657451036516167156272011417316856466838650540584126637371978779097246591956682171570586248198556305923061839399259638613416420986857692589306468332882383219169636287218971739918553928001103906780902334897286039930526762537103709687386169567260583434597825474634679532778107839304688741822126874246445445820689687561829250714255296044205932459017978045215619909090287578431336761808746698248484860278032882816347588101892835503017987017573401974447044545478936988955837776538604621633049728741393627572496762791895883322357016300871509908015003107954256229785575168668942789683687306343845786126402988841938768982381128954787629361631867741815919951328404459652077924226629754827508294612287787395257328228463071424161274383575129116439123439727574564040036743506924967632363032030236722455688306511963226378482214935801516770139826614020975514591078021475951467850251368609024477764924913283114212025797098273386537827943888053331475233454029305940410048756173013358062571222904359483770242644441691378858514816615403148017890247558284522152295079881562749300928571894162484613219671131721513359530759382214384040075961574539373261929112016012904123341182216662739892967370239867446379847019813694767017061436876148357734640986822236962464440664569707318814518482855784277438594623231207390695530187626063547937707854730317552229512256850372600170716835506573388612830617232228344210623192942572392430626597136551542007563409365442780827180097751058361472071833898584462805094198261731429964059245486777048206323597229167749077662204162472410158101268395622817163639361458556673834904678860897744809431876480452836131368319130506857385007532441672631955117702827275119131153845083621344239630404330775165812134130137948503669719082330220038210146348026478242086891474894347950227590975408963863873124731582272472896343097668795554488029355148318965453851542316497749807795827083393272235616873836191035777223795360573854604918310786180216150791162095104628872961692187163396248781433671359986769811993065457249654173051084422250466611681204819624074411844065877961120614137136212122379384649075800224081591056288115368741108164315962231901241474444364188429104883117739331153249397085569848797625663376915006678162486645312567782138009752408113839467451661004146513458902811078242165251642895723080255749081637150226334684848489446544091884676599069414388796980575023358998181403381845877886271443851750950583192667526407270230190168207219777220865282957423654159225810154347308304658545677395918831757885191479866981304921846351886352093667610372755898232924451170686261438419870633628852851908773317240579592338475685707859410814895138058393143862637126139892499868826090142065123716435313965547777952342828996506685357350842098064674812754396843789433424096583383100962162831718408270831333691870286291690584262991095754145900687503908670230815158030772611014439018990928664967531279373305090167287054643919885575279111466098564316478598037640244530445441633085410253334472659467647508026757001583829748092516499069870067301776016405155610183655468581625544796823360536905178588583393566384142276393080898352351724353748809958476793710556916826943950229078965429119760066419088531226288237985596576042184320297734988522029420679894079396019973157290121238376538240454973762213081473806770617308761074266952462679275737268570371958415107770536667465873197016433824034576197634457521593228713996192761797591798452714922242761812136355104672963010247793435646351197527302862886440416477300699314050763390087584767281515072604330101682061581718552005315027176502377280517092933853186368516913888901419374757551122973961875976720055279156953437748824913536296589956517742105527714763218662006465994852555933619200432211664386623588531006910592868433806843624985918893564740472807958606194664208855173864034662584817063451073691923203285268999673713639975530538968787377648429695507037583715606738382696347312297139208630197514421981721797344519001014463214673343382761909536086418061933071261657223169072265645939641494247490764487787863900353589944570817659856923577556396529908929014354906404027412999316877289970664231505997778615893220045788736517874747264554602262947262788866584849525214354604403486655067339824489507152907911655314380972118618517093210899381082150849338258825548280516641838740601262119669158550369580150135271078909798265515410172347939512859959543592979957505931328080937486481791602283807508766648075400148655910928806572369778448517054108638422495268865618366476215713766673697913213867151066319295156819192498143842390102768008722686154825503321819094897431762730231607996600627679512319342719823886790806326333220008264650553551186651590489944162859984427167090205993601399631268015383423430444647859333517731229103551404184822616607914940437572619844753174204188713890881354605754355632872299502004562602007166352852706206604631758164923395155320609646150863142595180145128940347654100031486091570200903405170611077980937328050465472090553186608411909422646839399715826191056592036172392630478920225546111609546076877698574195180393074357386929668505166829167706141307950253839000194143640755358326671605602555811384501392579057953579267196139083130560127845429823386322821130322695618225235411097679405100356256784344515436603214722968397785938156293500701416116859278205003706297222427088894263965983020020165345115497245742048653548694609327980320841979240831605872221139092461277478979078337754407122194919995598048154046512515421403482750901900327994566552596978761978392502947453955038522667193125865501640133815355429548583736737052867521994500563147220364153707566769881852162160098584607388962636769295956830914007679932259671670655374232590490983598188749338802113521339248659373107510406666613843646872931764565633759498666471596653525410026075525238286003900367183667794560718672064351954494555477421138026898819526823778869809982837547032735544435195737388124818387117909501275627659864677027701841172078212846512540102663938623299765290892640008717719517575938513036703527193450875112251101750318050145221436616349647151408641697909866374953177135449728502410260820513051365616617619597070050245345652945648527536409345753044661856050170104165096229045787361757955723566011871176621964922822089231456045173115905618174139721315722200991307365141137146974561580713861017183364160829832535862683299298901033244647986023572186951091167530501604782660664995608720374188276327179066694885359780420078044032280801552610410863235662038712294340771170170042535351145643559934766875768290917734324631903795105215278597248335225723944255119206245137072806574924638900819003854396961535465369466992497547813594890120303739265934584588284257229437498825152846660242684577420161819566320127183591049910190546988105298087811112860039914293743291118640163794769116922346309777705300654341470821549983862148188912360150675048389926689570995988820923605174109804496065819760395484814770423038856791193347384299779833564192979790279765636863911504723120123961684837632334878319446683530343843014433854950976890194997407263012980960150563294608874943788553403348305041477626303013259092731986119855676119087980975962120081380741742954491452700205624732801125354455294513031103705480785708060403999747045620258739918053665959757386394273726206219385187942803014105395314304047998735575289734614047166793201311669291989196196109614311272060582759888867585711818394520383110934680645867014150707635012143588753514017182613600520626362163398332501592820773639182130994857499797859070636507605332904149260926446671438955436116148627702708257369161464948270482162821048931750208507958998750909957638313154389343187936417483596330067129560998056544162422097170545101521949724788678181175739899716972531612469805868109535354189110130110189152302607821169271746321767712107169254715014056090873122682446929649907874267216263957725469071160775886483726986259896277949606773306217795564677388225523045185582153616722762316674478671137430408191907382116214906048190642960695112085330755730166706044752694895002708428288044406382744979768551789062903750285247335450095625626273583910325463192466462355969479959724187849264248533271773790207630411651912921486916091412419073635519900715185523336848511709262987573618433170676509130739549449616928294054042605986881605256448196745092489199578229679748007177864066340031864411576857408813412223119380050382985347798926693593848213373139389112068246611654726309770710862778203078662430430736075874176503537796968439263971217073722177755584864655649953118891477651077764541545464620949110489369159358668627327805243780300740657878295741027757904727106960675661564990104922748004086887339226568617657812839574190819174965589775132812843948272659855605431509749354870858135110684885981423996658133774566472148028544506994905726322164422167223796135222814536372785294883039658878157342967721158309074960618376265550418032945940619013249127102306062959509621530737096960410584909775807376325943610360266181294917286564991334776785481551190989345598798242067960398877948990885245569353531035167233543024230838685429424427159200848226335923255813120025742239340568182256712555497345217754624138923005548434779070001073464996907793945908090426511888904268163297856537070161648541155531218019242754201092733700436027696070922228156651676955661291859137930926493802043549146830625059026917842708659282784577243218758090367351249578451490714976772105385077833818031263354025418464456175466486368083780334430801559909276814079844341289455196197562880856582270498170715729771027840650943504194603503286587024540761286969580986750769613835596506459735510207490505676063603576473170230987782682486600925552453950782169138969350516585187141866936223747473703090288739390807161028486505499388615304930268233921633147927550563594587454481934716041920856861590987916765601917229526528520652262203837624588111859578243721045258359756629197386449314660718353610833990450593838506553302008949498044370733545214333832797930593581001364953502200859988393201753869527198117669132672224560301111072338843483508484125971865890160943026384600201105734284611446151546731411993571490705880771344495938195550877367166140463688525541277946804543651095529221173959395537990596554991994995750114568242076405781175636428747798256253125646101910898532632105526839031664099104655949160130899293979454867402177506778169779450626089054944814822195452417818215636442716527192946177078161408992371415645210495842128021528498097366828796231351840084976408681772194125083864471597447163246578153785940693917929932654419254411588278296537459316902680284387455477998318445005975940763321654156844185784899046713927431937856081054408676535117260099741563154092655479100918610015250627796933197148264361842920156572072649694463240091373424973770266751515393050119851254345361857597627570448374860335058157175870253563581617129697031913773501547346468031709731409999941424881077135490936214792239370064602269948603607935459725797473324972149013721864516772117984023188467397227194911252350431903890916609184252972166750113652972455791710145799561241331968838039196555075609799701219947910183589738240532873603261980591288376396252134929523622954117637580430585528678913054093455524508864412325317005462592778093164414570438111928167183913005131751201870737558213903125179708227184337761135658941522875716528699007545560462731280215113177268602012422181015731486294120378836055012112349370627999836900615716396238138977270977963505076031555864491531402430784706105120350928444813421822387655976042920580668295386479793033707259037170369595634693341320643046503556521728792764016478016489236139863909127537300907103239847387677159555597563537884794195416010039039288725394254531002029757983716968774245384951707406390467359785543038540024014487220740596887746190420796746309340486106720841637377534796079868612023589435791365864427801138587239305264602366294533908176746957190824082346265378350571529432875032329598133669486830198767634490996249613674756469089345517818766773836342083259600336955017042459988694193823944400588591366190546177150971920446112287337664854571683857940050668418691990946570533149131521041179453060089300160443231946576977224321544910786906705828276839168207229375669460620820244797760225351926807446709162389404119675926247346273213283217520065482749323043890510134040215414575751536430385993173212077748603966053172806778494739725805908164119111192050059110542550269369969261914421329948070168521301180400773176822099761890775576204277584486145673222456780986009338973728416138079938890566170473616914157945048454962960638185068787028843438192225752019963843317631619963439379829038414082533979850147415720251739587609491827821642402148437866088843936533052458443544486373766521278321074968477194087669153567166722426764827092081215461814196752649407619212802042619750054045106960098765092042208775206216334460966309434563454789638802548807693114204764979002078485184269818198338527260230971913540858083183207971443935493245554515015882929510434784056754158359407214446420400852080808995922890416751659801939679283816899068582359673630232337492926029737104493308532974515419673141969936662031729900620693079942668018657930475108724903389488386696586082798334033490052040654802148291445345770584514968779608664043072804957536547823941228479232315646766903166236110508241447990241803139961615782274796144123820126095721820184734653819513013398621327133986377814828398773600934632202804062890125475354355428283923421099306810923649950929264403665681256929202454700061559357015876322676266300624624767292733360716053971329239634842510101384009077398984464700974289846477724453649835050068957172402788246599048476413639289643403441635036888113290105714649359188183600082506864425319860116472037264223553242303156288331486480952861114951085157170907683375292997421558435633790117925604702455553828675420183601008635922054141894363698968759513478598203712904802026331363413801114537978879183832769059068172903858780735618431090011217355284429845830824184677130012880920141200488532766597505014188256768546731083613020027285855609497504087148181669485041554974595238487842826652436732735398081710986291893120977943185970048927213128564591543955668865247812402380423143643255406227621359944957752261558070442219834834539983847402732967476720771306517587125581893112731107210511602571427560526504613876652585003263407567252141556270402557188816736469624447898345492677022025121780185043599557380616622022419756435469647331611479091219681962539576571093924213295624752396123236734459071555782624501221704392497978193034458955594421503267821799653848427402536259030640774739552881865025213282084564873144551540172595273321494447638887652613426787990473032174774742230704438941285031002105079276491339084380553298283526283501560306499577572874374650572541881597820348224157085740839642358936882811896095431004198304885062921419941416321359989687739766732296507817756415118557001830260179984776143169591394411026319501891847519232522390570958150828076195533462308768404954212415958120472304055141312030520628457031164436047126462487947173733666812903369775614759320891049273153795805242241770983952248386620238582057166394258981732221791990453053664830255743926101637020125372192994568736818975843664785258925691128621221814725677153480143171169468877966216326709181840526864121500491853832576474110153717446642430958329993496713591485932388193535657042081039089664099807486924403904676225309527877386870505323918474924599997282134819735939973217145877234760052653817792067014040396071272872282451060470627597894633764496534730989853437552439320996097152268558440818290071900912921275680329368564456364742774633387776094065829136817251369015472144906365815415993206934773980376842390585820243179443989752589878253017085230977192510169280488759348472517924230993626287653714880248151994077606928678402795870270769257086069872393375596777386122381575960865010372749731736891966154134405997618936241752005819029850688679534634023752336867340105407319238413827465606258653293189581978996052553371365159241768756136445059753119059120576682319142536549782300876061335564493199341995373811459735597248051754741162875514718754020610493510571647822486034733774450037059750382411325185623203182830735252655511438003107895325418802768023595758154037311555841496099547734893763223940643474775552154953867804314524445705394108115537381981730191478763197838483604503320372251365952165167825746287377993102248484863944770065360910751591327680951708453577909486748317102719683556749415679791832269820729655806174753716066108699688925129075812789394368123562117212983477974514268335645621943278900240680441468421108741346171458404404455857215111156918376563663224027265525466600947481989041814575408219959916398253925343542396760588675895781152778435621195172846546465134229768309874833502266722332864126909796228965875606058521362111575954995040550272223170659216241392502829851246263311623599130635175768009247089176635254018594233221177583053303504165578126654094415277146756092377956422993204784192657416689545608695557546000475495614372006141366325873578036114925616794528542928385968902365625060954417812142978066188740018945146765805339035461248474514474010362655199014527834387388753899773719955503695770650470281673641633399873484817446407472669650604387570927600950656014612172926246136929881190707733806877478097976185253632400963110635281020085548005344261786565804769009095932661568299826537924704828291780204568679518006494255235667314597206350330476826147776895400867997789229204609140600573587292697225242975167500645681630221611989403197508470041092059861149707356053340432311933815253545983533836414018113138899844632572774540587056439828235907620427132654396789984649018671326312572312704165299659237573158665298777968548459628223344653349534370502705256601982029213988830319401833231279487129109948541207497569424809165530519141773590617821784948218803149015821801222716964719061636675246050542413084822756840919553397623644080685105716612067976392557745022586704177952682032629035659947558273975226277701612863253228959399760295134319856443530485888622126682895017855773373373653264422253453690829611229772930670873696685784510912634292725353893813277527461047019912410844327106304672416340545672938440055613367440176866130310140752494159676530508225685274559183026109210958863455396540385907571233321053079265002426355673341986610373879710594344083258329523033187726638508237094116439951780596056902647443398531943319919950550714898944058992106459219012351020889670410196200766315232414188773615645145299294498733134871607540168234521601526911835596599589125275993486379800945792740539004966892222972998815161590032786968502417887677347749451332472312886279298722509598132756540412127343385886110569359539597908500956765025305094258886143345532391778965460156441609829209506636282952763088650847609189785470505343064633474006140343918533578543476448014759828034707181032017840553172255882344476724126943338986040069897101454388000640976581414173678694258012506165262622263448068890329137243574117593240339383274540409385449168645134377408567197988416718027276036914060259433457155665345998415969393040526497663546901351108208429769771158892717564003249431579361054269480560729794972782155284908279129456976735410907685878120256264159718603319213515401360114128218346335085331412671838527814921663010348444577363790261372794434788217680575840961015701042775396636413822198055615692860702980206850652410376488246621726308414893987677717650694756962788783849082382331779012510772460995461488010767919857548850270774254503682490775966763981111921307425443530693364959280792168799984886592197452999133932979285120399946808101005698510631245243034470579247136600423557539908017886248944692929614618445238793881822202022062402889956294637341472603481935544455146669534983602070664878948357224811636587203106863480674074130941399049251322841909586598835628987242768645920161644369391503219291301281444238901675501419823264449503174154814583147259486632011543931736276540476827896064982247957445225811626495174921578278219394712025024409859565261211891830085927932711808147619714896775344375907445749850267050926370598703751683415716701796019893505301436385937225683806941504315023429267159527263315166424965600100084698085740745046208090561080675676504188186542209470855680742271011650681126795297407159225525414240404888235306693771040466391047854212242358623068529848214963464235823897086824829765374567839102866873134237516329771294881939490144022496797317644863332919952997575181038857486480901966931646788368363758170796240610515283146484955486013732455533911588622108098185964612802649866893821366223123255550354388492117444988699144662216406310408610818305365690054418922681254307172770236110761758676052094313873058839407747890058563221476505286262846802324551492595571783722663581578439162544113877217013197040341394211411756569612286762082846801795557747819143315628595858163437982588448275910720335873904142521244342763270984606759034807458514469545272761304607292365195054912706887948421974019303479081103860622595196525558739314809138874602633772635020869860049252364286822224196839113984572102774888229931206226864689119028877047601521274360475026871140888120816565296740597993224425830949265322215440209834331345399212595917554720867351218537713988169414335805504011822774860537155648362179284226596986652837719967391751511344850749704263496886483095592232236969334433665592984158794687871735448414418603983896133795383890727509058598950594379187353343835092400579956753146115321697909440803941263412362095503116614093364859988140909116033196483053798809872650465330373162994086982998026606142585419839141680261964666461195804237473381353584919723747657900922482901429109288159590238063751759682834293883271166850261200721133537153627468782458692176550918793387036993643483015777318176226885959641265523932893942391540992415882858259627366987880420029690149017600830774923272575252146450314450285566475414528709041339447030769319829731284809244494259031987566064822263851096158461363507886734260732907119515215682726304568433624442854426150007627082127442346449587321000105955127053353173396749349774742197887002785479513985139368978255552533579228218378230926073087309133272630100184667135946725024215392951988269172167653086215966424034907350283887488910148235580538023439317885850187479984743666300889513653549026836757368761330359052848483593121353724060622167520315940342274543798905814215473156695365090433672317600183737885223336030258175047181146825296011676726514358365774074710422296787652691441865879032172992977978374699309247376441086730200319474482530020718780114177878303129415303515943738337794585931397137783576875370830257955632811476992550235694947284834728708409146686308261111743158131323785117139556861251341425346951777333057912088328493735952988028699196630958839365540157760527909664928165871613734193964220567081614850500619054398309890102845547313748390707345250174849027745815563542402543186812300876136246479187438252727371915265063467174641257634913962952567779315390163337936252081314259552496909207954953968222723618029381426523020904408947527262960378538094436500759548953103906539425725708173534421563711100291547199793592522493265390459889949562800262976911488099230741312344933043104658811624055091876584956451964169062060725230943362444121116129890497905877568958171759897731619006380681692088519777627456285354332353651844475887145661579639406376859624218595890242423561031727464472927237342407901755126418547709806802140888836626340156474903003429863594560656300251377409371400715640221464313461318895334753975507093781598036884222206341587375167426856792420612369593133171732012709687982146390601011335083231854827368493894972461701178603620802449003870405971304791689483572623365623788551091584400700033728441138654513274853884251652928571419578295592079097075645941288846591154982256362751980490520427240577650539856611912129386087365648472833916343912643414457237878428401173346930750248295603877206976798324881101149657519201756112930038419512407535170775624336036048455093493113271919502515492175169070976017301102896390510231198872679865380130329450333823560910615328811824994864547624291411268235576855802584845692063527578719788489520142379757222809176559253552950177444644031033799149261331298509289961058815976764066442590922701074124490238275227963589904008442521472929137131739153070507622330140381233520431654468211998230366421143628497677591499748877992373519393204259722110758115988507038939105621680995589291966916980102748996126779350906394687797057875452091057888268649371304242906239502425183232832200308544403281055444940867869937728136054791648663393968142900019848540342000505981069269031963828236811282181127385700365469590914752930574180836164651978392167366602107098660613765561486269485445165467697481977963214672649824272364280806919811363979193979452113514828076574892983264360845581799652273769711587175408801677828646492450374180547502975073571509547679092491989873115965761767348573431681585824510709229940021233895104228201855695067809812158090336051827089717119882846922498763231102211737847981618369253869429121896716016163188200660224747802424768460974977210305168510432673918449255243611093223386498333348078248677065201885608752193211502697818496783046527578473144214934036116352992105112412377155548589839446822455919435148829777163990136265668791880139346656105430065147821845335433933371821755466672162444354800433474378534261988873653353914250320482807094476771514716811449402664605707079255179757730532988822313189603386938250564336116710328301205095646269175812813118224329923815191189644025215352794277472969490620418241164562001074675660199228544179656705551199178577996304965058897964899802852425311018729315261342122765472763081123838535110779919119264977057971943857002358433261380952281977185670723984309904324601994348350489318628115684173793704954635823101887254786157074683418863163050355381575901384801315388808381563072872211101464392146065462430991504670947099258934194076693773235214861482573763716779930952045617915843090253992225118718263642989143688907710446806522480935774575991007302807701251669371265353557127818751965543780081407351092862868115264231262409267588765638373409916356361843217164756981456933386836124094944735339859879476872906494823124965315421874911731006721526517122939159194428215694427932544472632698274845591717100009154350909541899910873647555740694203853190444665282567904439445709388064306096229473783304131084045682870013915699085409130739908098576358415566928994067669455606720493221629374775539583630737423651031382381692172860120263968643404314826845284902411544133770413184602089154766730958097013762746381263759450719324940094282563421903439698029871394603254242254800390597668600079415316729085028542664029711095231734031307209880673297114292914650511657530405623951789429321726425220789922374386296572581087521417919775467441206165165266972974230494002929604769502633415510139567027901248014998074361717071582530948081491792830528221910061195637326028170320389916635393948897534107731603413468004760588716945726362292270683130972627957857356774864128915823375999340502594077285463814848608822384679015182994616946343985952789476077272796054385195937663358266193223413570155617814298402638322328883396913745900818670863756756222180249543711498140942202735957791215799002421291846601009654812975673586265826271161656991418671254853611587774223705356949309562058989294957805823377866177633642934902824007920475776197018006593258516305663167825398002585106024712243780976363034069022555230218228006552782053927508588552837220197711849043129139859020705299916113288118929168948001284492443974345320580729330032421832119096322388125668978338234604975840509681700959042452192141044826606461279632802843464027764568088392061292440248005914680552335971696026706738516783273628045945258796281470279648073763286946885347934054551708289897790379389197067363685174999843023441849138794487635482686729365402321560609268443952475380197693572736541075453005032596435192283180762019619534385566669788147115157102193165075449665361588785218336123071913054732209143983898283639128036415382817775668028035888838047360828484718308387419134799868048296015590253486272029418211211452146000961950162313864466243759366256264442468572212918683896506520051672996065677614564861182321650152844625133964536492785630242497913647857963800983824426845604885024151719360868768358587939552743826981489431198995569070754539862143292759041794785814628769519014497633365742517185079104554449618819237348907679068574929477767796832587860016832085098012378983703093562159209075458640640471573443123472536179588589504144118210163444457578321236832020939959781959996250676101036908369297945178348801529078693776771913886078903550119036365759918016877525681243253968224942679434722594967887013906153626472460167876430524342415623615135524207509748135716540699587009209027186584680608640261344425176632918294092198448887403149288757777955962720203993131464750185401031166762929138870903373421786797098034958947682520218012615668999811639451807783123928436754343534422678080701314677077157481637969188244258525805455757444528990089538325188570778257753870458900100357409453769076592123187705767401182514839349071529851103644961248771579711497131428353366156338345075041318242648896517183668868852668649815787318689381974990449322309263365506315751748781770510771867819938894056081578171711414804796101624855509492723768812284468315676028233057945917100307922670728508471878601451375536142110301866744594478091277543950928379081700894739475397176261653769189854629032474735110719598919301791969384175418467657709847281389052140768074300462093539880732304541552507506594707735868583130585915567291039012521241146224399837325427088572587200430662578102713161354666486890198327371930874770675331189856286819641287836620041138978376998647874035109028127737930784485760499702984323445947813519279981348368250624036084285519407556741360305768823166029622373251692381814782718573680964281298931131841177264097566526760065428618795497831401914861428831852158699056214974881298752034504888637756764624038650519954358564858453069453786667308395879267253534504434193821547916134127250558091033291646429143465252780856617652224596144338898634039541389682391604378489266961059438614539039408583206702645517113890895218213736608966439710969868522027919392877643355536943081779358061978360351500125188946828481153203770444832529331769214285284685490080185771689840108624982130029176475092586539258158171116901382816695072341818193481061156177476188413259787762768121049084723337856746421482920576284522983904408691686946908043827591622909935126349094702673870844650404604183048216477297760813744538074015159525871119558408391757806282917142400583274981511534210201470525143137987173976302712593749673471934273852423151963316190809256703788820140412559034963843327834903606037808915164814735271864373906749017232765278188928113922192683487537849354446391325907957888696357280969951025871141838029175248117349244422859755903672623601169529360731802761007744494074136879404836751492408846374590248609090629262707536341921554577395690956584506157722772462407191401649209716545058625184327749566339714840620860327726724334358102640956910202658430685927749253892264390172143438047177383617237543311829037659643033343323668412316209493967256377305896973905963201284691489856087153453876632316457883690867497094603956618448925885198455816567118097155175555052639789179407349866802919268268602761921889710713048033190748118466128469732658411108123214778147065127412320959630919020710359981989060067446051380640458630418757793981373315321713690444106672538762621530664048208086246908636117769814493799127813891643942487818149301401053533269282534530893189818706185775316961202906780341888816027700260610664003216046210397268316189053218285262537969442334979493282184672325252481495326119997912854790322462216278388798065699197031331227588375664235950625774598938862769505507576367392502376400731117217869999521185018021592933813993331395824323545750818997828045640313104354847948558040107379478465532390108199061138476224553487426702750475034575720428453628372564663748878804600570902681680328398034120288364658914328587329697274408750824130194528218455127746402013907104975488557960340364653147948166088057988243200312013128898924447634009141708303563112258115237462646296546768627323313907511938781007648286901114201246956020652429317359491265133898145458652424005599061178780783326141827652718249788526835209870289077803343107972497875480218781256261242316779489057069113625296365957275106838613723019550469736225454479221746487794735689800222176803608844806878395616529907364613205815504582775276646068279706406929604434502352629546757963949846226951360829573307239398264764468311119493668955579540383555294930786904459439704712033186055006883475532247876003925785278627420630998695455800674987490990970487875109923026574236285630130331430600535477894248178887924683488545316264403731826962388497472881519597124473778199545896472666238596591144108157955991543313206446449277988475471394743637286258147853122021423213891597127791554790187602277264676246816702606723487463942447025413403416275106497902378283265078001339104312633987703315956982447010125867739554702910646618045766149845324521603836884731483843832636950407870062858568168446247147226008662554502738052993718791819373979068050709710123698991314205119386808802853544696213961926981309600731701709287151198729562040367512913696582185187915161784068075863157299109662963644905063777910717173706831071028604097516180150959060596159551410050177133214140988853247061280081964632571988626746578611970754754806889883744982388129091064538574523443415696800193229108807722928932839179858333033322694065373004382573525949752591513363557104799984121331559840845132415893249597035425719832220631605609705786548222471724611039455710840514950326640319942970538492251428710907829309793150190050620014848460448551232136693622521946523677978296841586945638114115821698204291327795405884429299822278510150109066767078095393115042221449547894856642140894475350973540148766522921313535157023849790555905647562666634297614778637299971754137513245440090767905985345721012437269222544850924095667217200096148217488837529871855960011588811348640403618785835386386236367198734351247276131399797132466577134122919321255921574001635550413339618831512180178809319449211867980103372970201919445562716978104764800950520644888083486101901780336634491448471548362279181611450752165170555769181711170257772587234017669571895810274841691555202656906435424420688493333299766447543729345920129670521650057075421519212102123285242525555728528291324813052395859910830373198437544814585554696844491046744399682616663606509668549277547697134220217417620044917181933646660510894739612633858444548059212286389028096943286642161349544040259356593539239410600208049162597222967493039469236563708707421545394012801003169222216026012781168792165750539029291952589801398814452088180499423072908555803385952277047577335398569036907056590481856243344151408011512252254028267275807099139540781290419717962066523375860852671494524838057331122099996619683417759446944353081286586448937905033219517111373204142015160041973469954833783674195137331446002803336846867334461127434823177977574289925209814521097746350295699905330396811890475860500047756121097063824694710803660340072085234602643411262056258475667933860018753753806335454348667834443462254707890503924545583944182728187039143488166443191751804909796186433471030972617754284646870223753792207302550668306091151361061977721607092441256214390164927427226066359882295089665007588007697515067017047576578317558140657243641163890684385435415373403962933460657366709106492607035597684028479765234337595001171307234983831322199441260973545727081292156006248480873397449667375386016908693632994209930555844410144075718699822006044385347731150431336256784192095184733306463688972999216310307001080851467073358966555868851592489601148183600643765525600454467646784752818336175265912547942154771588397664319077080864740414853516049627668786175935695839534522178745150981257161595011999078120242261708722730968428653909909822108736264542923198662534380676905854234499634434007005949963840764117901569291973196003673496236101087757860681850027049966193866303465008315282388688619065782129795892053287414215796571599672138294310542467193543610258922013655242575284894544572193158189762546050846571285183016678593982660844694450270794823095707605273240435318195296249653134126520043211445146711009898846984265382261095332820736078661703095852094682165713662664053360541321756948639865703797381050003931939457543046273692570481103226256591969912034427561055176517145072747484515308533242681987979147784368590357583577265646859857277758392741233314753270345580601131802678961625173228184414877007532114886472038144344500680521815811506629606213305705588852915226014316858776833770631925581445764627315112476010771061004596611806723074072723945117073646342732892069875557063748299272774595344387954638949444468300227463585329541722878683792785683987011635132695898815853279190417308515197088768655187984200497064488606241003895247986862388290387197435843480108198441537253807185463179781915210517297231025907511508668023976415561240207649785798634326294990619822820653161870407133353847006447857025051968061314859068748706308991800417219984132870299229534931631368189012006322097749792911021253807588657394252418076462796152160013856625392750138982830514795408721259481662473044380692509017056531273703719070504287473138959044783793638626297400140675184283886278593624595873992803071385575396655285022234639301656552908435340184242005639384486559432330075415284028793542676576222694327389625810906292013852717121258094429131906758428182373029967846991404165446754574038784629999092950827032827542078146017082708679894355685623517610429246580425533891452572545254178098954654026229258299915464834640802148353359843974574458976777421218470214908100293821542042195771210203949930807514778877100923695170464973986636061162515522746760655996086728838281163198044176244856402902399043349785020093786479336917659308993011604671617573081559273092216509927292935386854213678545129353512429279772717473774424948385977055501394616156938789386839788323423560638548649529959456918006730116584449246139517064145002413630130544655419844217831107045589787173035360911846362206770876248606845593028078991120496689343809859357718551118138425003849775871044891614629518952176957925969493241456081837659766431989627945665462658879733276044235501972204182776408767082843871658120030913382681123319918241470208888077106294765474628390766425043285615199263184864991521452270368332313450552421587528883208969557426349412137504088980566091033765318182885135724616191545120391358598733735464544379352612528042996546363234306919603239480787388097876703762605461722598553905861989221819689076877526410405570759338004203757221780328024248344592379828261121562413681042992386756271756908273650387059362978649308038384045464951159334837349332595189335191821480489302841621765633297499414499426515494071047926654003084510438418252300065846894493404425360303760539252567793250296288577907030188080881600444853310825133204898422365702040455187889930222481186105816897718923740125622464670400487548850094200625086728751784627951356982300110676437686842013234765235821298095445293983057828341492061040714380180250999677867188670812739021757714342025323461064667631733832197326142081602181224680300061076312301542594875250655386198296531478515758618245627259987601071028170685232036135191267037434036476496598096065805753000370702841189514419216264242723153503018838367013602664448192585939114889968536339904528003936367768923372036039178699035596431600553574719716182625718920614677735115014499575382394211698774370964917069242800366719978421758803986732049424995164851177907470201960005850400466768348216847238199593055063581960389861007293478278011374572484591513264670528478196772823661364513763840172602382567556594310264659846665480927273184311848450912207720367653739554108849337750591936879405647183939803216964507790437822947517826548676588494067825392066801100967725619478837034430798330398826790433202059182845196983709678493135035773144124328481647715207845894541041424658642827273694907372766345983660839098126516153606097785912672422712673310107123988720914016623380638463130909518988672918459217922646896647012596658105529552944798006044979210895336753435200685500085528219864656612037794231215496724526910913063471675951084817274731844895367784728342521377918413202724995303098969823516427788155583806298184926266723247588372000628393544777076675878769892925933943649027286790573364484564916220133797091584507142582092090534600815248613518327997495823539721167824664213646564859893103385008340960628611746024628013000317041250790959471763745246130079727511356089031586369940312148691289276162074326275068348886044797210623118759776169007915686987528546110426215305713267931057291863685475263821358118500061255787705826049020910237129143486019907671692594399334139678020178322270914221169499902250560795811151899135497229642408576839911275736487556099307553609485675439279809953754538116393332377726136842927841119304754722230631376781266754531635998169478056909258654212110519196285688283604962617590754690430463443691384633057138940738751443315765702247685148599841000854300835496305511315951646486304868520876688656650877138410354396696506427281978291493054594245895625288492551560492842100372178962218031248421576058645839681522833951799015359542942628373289270075462661050743950032383106638580710720400998846043254112579917801207462103208634605670540174298054021279722207331365023984954373793348407549557840694397020221312035709595226791170977599085798067766367432164494249792426680079836815755697237924807873370819112380617517011824894904446546931103304073475873086273763429384182830294404295281121868027279911741036972866204403870512318686807126316851883870136808773733289925921428298900547027375246905923323175273830075798681785157835166192462509693573350153792012960937221251441488818498996500171684475320756904268311492304488869590942543547361746630245311604840784738242841385597311478761839570230353264667587216214852893386376198052237039574903797246307341326255555213016313580639740521809772305848939068233077264765202363267240708529864607020806620926184922230409277335320174411280517385760550494915329803621696912766567337738991844176498245204623068576190325328252497743067956435140293110518617724499499413227374420483190804994538227933370907390408114055301278237310780889522190382522431282708548223248014271138770138335252264793248741424650520711425346202466680732007553199013308524515080349645082304394738239559401882809798781911462081879617268636423666747660409396739030484357490398326447896065290237976065834703729349035351534586146797516339899979516945240019736448275769147058417629340561721181370164746418590994614405095546596510617376272973971284179691088900229686562739705323579287427423809347856968472862301015494097794463854100560264662144995753399253909474393293998098193781306767920409754565812605947743760719079325179660677410010408559897428417176328452029376042348414528733179951059672584372175284957747197694188463988162617166795412934709371925890055929102550621606003348850598488890894715550362970132464357192414828598361712893675548599157946858942106371782089355878901891454456740876537384842947185699531734308083875279802525952249921941987664210909966818374675214855243212190210085053717038395734197322001519485628595559874704885530412803277706134504847248795232863507762099708479822566697149013684724703302047528855638046449363452054200122330154402696872040290871526378945439623491714509155659958534797317917841595011670306069219060234479587126806603573496097845226175197165490627957100576515810891630152875560711004883947179565289960321482406666907386734870396109621402968160393303308635293273613854452522181811257758503121514840541239702062191399156193355967908020860906772319033870375262745956360414267066063101589099233048230516266831818761020960815865082744156271742487927152008304419494418183277603476800494094073477366916740593022871399954093096871861489711189974395423548622851241386316622918756044544332373447399022702418921012098299579140470240148571321546977237741468661208797452528620698905766289117088661899418876954721412659255280036870488401510186540477411628068696246584651485069014051095318643452855576958076938518918988915167159907278832443707102500688808484455071761998061306492656215230561011310239954694085959883548505902638437746347935612646112416319308832948213687320933856209183064011129702901632052510925751601637225299178532094295285397479197857263714471297144758582735367756158309037352384573337384527841698933931085243804190848615699191594294931730205553936857719605088518437932715687832302328942058380432688655531302403626491060671982775398793687256545367314185605618279646367918388586380347340447592160080207270963283823526130431368497171520233543125287122778038679338164827136885844620614346281890191667265981606758614647059979158101118588886304551009351086940324238176909723461308892867130369024747208855076052749474243210317127345929138680329541715507988703523197563744171014975876398931226440017935666608042165535954116870415954324675140218692157393045207292429953770853859223759109433766946457211895147511675277588431877343527370483444382343766953296651184184091953092398886880096540378743331890238283795412403571493440444145570679433922918881470634951140893591764025128463939021557649659508266291638506217323502972977782608950491841468426717047062135262935845038921429593295058331280685929085208007376706085402270197774144109828669094235775387543336009460682137957958438648327685933145624876541645173681751289133183768016175514764333913337292405224082169138732130361480577183820469463088342116231160885853798350174823804516633335515922047072654894577370687897092239178321288709539615394561237545058084077311736900586585895426340641472570389319135038528808250617063519899664191004555908713906378930150097457642603868326693855155563384927201059458700998112620028623408051658988067426076161747265329152239526562528752703967234262781388023381281889559795789255529947206830082129389356880729352182134337145878393533022442933868204926878013933487088996924214114177746654005388848396416299783069998719689268544413475076491827828738665538854218787081897095877686364488825760966545493548920443468942642875205483476060490675071250727093071436807776878693138705451850774180856504796863382669841370542004506343455189402625199225557010951752667188556382931163048050589827729366405357632240553186952015134211099937881498823425681935523304223579756271529351029107554948441844067993367872968729412492882673566766525993036697140700490576067669544479503227559706652673237282532429559702159070593004160515812135624904489955768483151666975118624842345589804262181396086929577565810034844848040112936517189906363738462593937827908032461557956073613416622506124909154514182120199985380722924380648142105022278294011415006453952649492052220612466048553137346928376469066100080441265719711690537476893608124409856723172536838790244526377544033624888121564656726266115260316126961079794560526355725200178142464125523414430315265563768718408417295069586473936122092928932816707917108058952943082187269494877100079100773658076150530739576289052300039447947199967903023808023351091443726787677732008363349222193518578677686963902711654818745863022816495657352564903170434186923239602203705418723769256276600402522154859242031110235401706240408310200748888159235167571086234291927274198735442736185578772627242435174649994962057363184704002633872501077518876782701452438857381784664286100577814706202202599141677863669785127752332063360726357982620361218480033422416154220041337081117566126920154061900751484599528353595369271803996969889832910211534777061754815402178193991180454301442731224077189896705435060886976463338494766073600302731987616857765977761937139382478511405526009803624212769960231701859194504856525027116845292658228862673162509580936282328667942586623150166515613021419757649438723375476600539767425355377104422187561639973470145652434111658149069517455314852338624204560021349916345665564163712023978357025956264902152887091566397142631041163882254503802132003873267284214364805322752910459767320273374652656779429910213168245662868588815581186338320177306491391422444248726110057873191269314700263178794270795512760055369263394277989952482003122988181537223802128060492268316203693169905471470251391602706363298306846900206862304131835155239550605860501421256804955717896188671852424939793304889265777083995090186304686131034592607050290146642410595368646850618638416157387040746458691883821256706840847581238479156849349997805665481248017925532830605982819755947435359166651524867296906119372957760575462999648038637403561662742957692104181208139991719183664655904655319450952203973206523156322224452452504310997016620402765509495404721667475289740114717256965711048961991777636580417804780235974268113310757380728022708095597255057915523675931114692274672553768504283760724635911300297396546360426536647499776757565302244514189177903961366199017917767547143546381074902144071734200754152720227183444977359332502679131253625150050215464686173565415960745174098566336372237734868852480545257750358392904002788320597769864838284817413136013708372080583162875406710023157405905868882434024007521954864041947132521382483329819254168228373828083918957756123833443856006436415540369067480035566738864761072584498447068860673374514180147040094745237556335567439480554983959604308584176638642594827445425437660837876852253324646650054813737585013762356096112286763390365765037516409988155843235086925373571964505192166016471747300936064852878092241408515821765124977127979773305767303427607684647484765364186703232405202025938869904890096578432111203281359834632746739410608928396119561994441156952027783179704574228541149847784167732884125180808315676277147149398821382169635772023664045420266875009114672908529934054398818198913332562129810936134079497656178966959953892877245672342983463238495152794937515837554417136420681582614326571553965262305845750445352187290486929954311217135714154292196879581602760016662200075105403946101431296885990922205456745668871329652819841157637253696419768034065896553432297656432216904390516559552985279326104778200403239998646598288623243551846947080223077529403894922561435649995701573629746533566613906523805061909509878081648635162931695128313335362285980788244687093175620203521281512552756782196871440105150884107624607031594015331371561509839547589616499920786964344715337574409940730184594724798967790854833325780738843995277497725363186652156003082857772484100243404001374243308176063413629465945303250330400874408175126855251927893258068568268531627476192460844971614777992092331947751641810366599621756254165976409990987307685017550923408278870497905674348926000942355714783670625922794500829137281039533314876465072901843616146550430945315603763280272883824944367431465145623049062201529061153567614899145077265173133385052460993909844170646618489718410399426138383541284561041135759902871925863673363966215169822446590797049616982490804885366975583659007351158584823998311565112172279974924265177116021956939978200218016435701052072784472213267731315624482513393090652732347152603623900109062966669453093230886183740930258879404929188447032749378467047795803228939583309062839515774243052960366611497577888791115087465104308050434688588771181947846679048435407630202791980814520028669295444965020017826520967533427724353449755232412302807157850197905430496899476880294107462020250690621209740736916207720047827955900001410748559622111001282085230778939843550741042795629278658021282876396952178959576272737614200317272160049049555490878790598501299669222165739693602169833701437771626965970241513027654283471775027643225040435572603184985235291335933477172307338789545857252044351910011544083456365131644325994212977481391637097774056436499189232430709565572796628382634559323491746875392154200373757578525246381489895504899178213785529813942025689848147067984677142267042865489443047582691222628311367655552546125504910073420584015281102419747580711174153582111637195735946894960058087054574966779303805552152902637515289746722112777795134793546319099323456302358006738892997243068262988509714897023559203458792514807743329568994569962141344196491922005121121696573597108416007068553302697623439759801929273279663251739884035117999817383938544982113569703949737908059830109440871733718616340907086642286526539110717967976854459220101421355523651456552195478970137622810687459336921279783945123200480566513078791185836988954536973756241361066597942988486511456904720988665277548364744519145906825791505676222261173012971593050409353837424258267540537659809718976495950841192061837957731042486894705726883591575408494409574114922413243568865305208509970971631230323324731924891956515114484721438614207308392903935386137211331672244130225617637676178692178262840552142933590231098526038432871610053514617058616787416945812649108534579567464146393113456953152887282432711745774531847085379205381866159715466880292270553103250263028105809373692186972230796281664185291774977776715523596379289674282875104865800761852000313737454099651339762922597314831571822641962552214271016432320948655930022059466281976599188703574157249501515969740731637933854951904363939922483476049500952853518673979227020612372389519449828536715076117709877550425991625455563491858677453082847388743853128128687607364444321507047873397598744957865688101792996960195825268265983669993042857103545578987795904784305414972508733232472864011753500102243268725781366227116880538028363732095120891429208322104302469776191035910956256506747055751113979770727618198160256747005565505129637232730899527105144295393448254399741005970084483588781829279163589556211644221715636009553015341355476708707648593782180614515055480292377104329372103204017826967633211188062644478655745012657386926550092142857329943617217042842417073260913967201807933873639983898080239331851755383591936549481396135648176706006722867959531649592519742686535157899582560746317514590564610806350612837413580874428051237232775087898336473766245618588574386145256006454470607211272876889851258922319061561165212328844501965184324521530955504079453718562406453649634612270136072124458249377438019376945640574269780369957904453864269172851839621401683539136442536063526958752316441018222527611910888040964654003920466811246717754022430715035752977265872360433298535963118033735146400087969601249077141815771122497516027816974091562869469121221535548292056395087190023287324722991605280116565329695530685415897758512321830750188445471636077555098155021858470031738841822710182925578886165420842169480020952164748185672377312551087434106639593460023296982264764246147536697431334941081086343533145311655157583829764857559981064723883413228570108723310567711202053207871511704343547046315118538305624432461652541321015639543350402309979515445975449959597891709109217820042743028583786951384301674396129067022070464981623629063254745182203457624243100766724440839668782853049294515697977430848350207438041345928071814554491628056424698988154777719797034159543047340323062450307462544401186433413530790270462728442650587614168195966481013969131232442046818801117094870572075037325035012414380784907791950530609596443202146005074020258682114220359342972189905821755502970000201121045499460006436142076399486068926985136053176781745235319808195438615829356181987176379769012470975374866331986329152373031186598157171327905623870715638414831312592996844126959728678591223238261452265923591039608354041669908260936948828885795465093526660005105508038464922351857275572200387407005377519952410811506978843667173543455731398653416666104089421543277392665817267607409254410468640550101736385515568667609978886753092171358104497120553918886155781149924316303440538816199189006783389605452945633921375445163856211023422785731186993193905650228676200580544374153573097363255454828032587044419720728724198889963013593099882130829624896892755598891497190178688526755848285434612663126385771566578076281022223527403618341760124039848233196067465034551612702599031014058211941858029896651290151745475707020476814862488683055883591274785353034750920007612636080936510262035298995412815206434392865967548740518074616658843882988236057082776248735035804608901194162165090335153466710542424456492960220414132988444313048642851588464078056815148902459771899629299422413881263428020301897645578560195849170802424693961569148823100775437732414556775568755922938447302914950978460255406687559499527249713764342262959376959069407274420617418627752596777212029816672187073620114277850583769626361043877395192545547080467213589905028181966834183677612085433391907385275004742940804900537949885980332620849174965859590039516078718663661608074326016154251949918587673508095351681581562451352806136276760227598781374383838593325027646931998168702270254220507609132186645239082067806510539107090035174261104829569172034801989966173591903042054476704779205394034318979946474168502074526495594234624824595615179795703659309823504872414782887693382614903703161774268824443849003973529973928655452725308367130758120140580885275053546299791386352562246934483449182130772814452897668984875051700789212888453046111279414309188737776828249947535977336313652386257760253182671713212019338588821212549459527238173004996179877703362480241737343062657439771450306481313649930243774206490899942427990208142041361775959237059568969325063879624640968027814795166311155689027617500029001096068591416184890213796033002027812655871820747520381293641815947458860515025580938823655995447816072834267100931643470987396613538538059587361152617510454440309724142733285810109886575659281890963049231243921042583800728988851900661639236337454440012744610996007625968937770189058284829741844200084736993214219542594385583542653236274380339907121948274457919829562084918866336559021380329073453378755109322834331728949680311817345721807448502306347382142250397564187442801596733979676842011511227781476207947046250353792446148796789407028325262381251637436214227425949380699395645896287891366732781095718742547366782607540367780157817407193843910258349739677712284298644750732436492951776636778760960760802954516642616682931605222716447150525444934813356777491265437219127697322639352223347578032497291645778243516634204657930227091915093855445014337931825121242872556477538872135988326768985964708864638966480119985142996742987299386363177913836114866926933390487735263519035545963118025088465758168903072141431131649240530296342375775152067253377363342963428663614224278535533359334164538389826047377914863863033194809212674178866374986173528770842011333443488781993452893258167815253060397522890620710499160318441305059647712839585023859193002399674998172199124529790664577018458444420573406817011468819709858959409699796559581530652972571700711966416865583753337893390530422968168501379546763993935972319151117928929459297955525437397469138984190669895261871164742768755035009690006244905807467169498154259777618417324029985725056653272395345536770155930188679776499029442570949631195518750258150248036498205616167095274625126046065572334333495957193256832949275663438301492351482283909153395008861622339348137401763485761257637642942066575693462579306873930456704068694764818175105111861449636726206920897552783982890458600633752661595491367025650777154943753515679001586007254841000493643071606132861811765635307858362345880438201423878522600068623640374020943153098093897600684577605215096495070919222444284534160298912695787996603506102242974108359643021808908528030247804113558372177692316730060476383732020123962788554088829488478150588570424828242800173725148876106258711815398691849501955031100410002165060537230317347965334282541282918074521230421783083367373246854787548156848801280061415338564467241773746154008100185488145482368455365683196730422056841626608003948844596846713009462678864966486030799110040906048357639404612894922485399430657005967204868948472643191231386574758051680514115643565192594689175446304395216871787899302314590797123259799318104905242955878114973603090333411619062818531565849943873070299523757838600601094013218794594993602133158903681763449597526722306217170968098735425507978174901563922224865589722881424941734864171709809423542997557683742120230665229989167139522263328094347708505427603183323640171899144000131454174141964536699483135790092071705780548151488445813841223013396881500999193150080990877335371204547333008370321475725896140234117019689833092822817300407959084107245464632070712726493142737796341159051788481227583865100576860981538678113129678170798829120781942519701996764336202286614238713552702613845918522589054368184205409023462642174761858590100479721256509705748213591986354410623160931007808512947968594340496593683536100785907782804000428879771963673863241386239956097691462725288627918337679714215958051536586737563745070906168069929043763506638969661618473616768341804662771165176244392268573976299993091004457945623716124547506653820455525587910097216054827680777029727818471600013818519126711731778458437872996791751702615715083390721734381489717207186475324187349692511477693766573220853442138360934375204457681571249635635002293052506882418511076626649693639408427779526168562996805232888979761729449890263907226664143021269489971096807152714260523303372156304435875826196703301749167863506937399454373389738566930907705836077253827929390533444297621089521402437040175265820309099041167780419525997590642324132896517986126242194655570449065194735841967853164619857639053924385247811994924001349656917605649422325628518848865203797248705522255649833749665292707723540658175449733451278656269311498486725641343372309440016072079083730769966792202912106607576235653410886652203823233415478958043750967536248431850694774272228687907180802365225791976291514510584923197962109741065429050545248200439180981826814829146256338809634116591648104530743182089421225772485100876923714867327718188790996442666996020088939613519549274432737691237131367038469770787518712187789376282476402781966927561881645126910168701806700108013283712242621144954241172348571575322649203422487735057576724024697305369667617112604780482474163926502610181681173541668582031338177491098476401844637709445928423591251971051676180701233144171724613826580902615509152154152255835419365941579405322825034293075951692233796606701464316705117050669985057879665305357860239214093978860873099435826220541017375008967112096668079548470236878415422598373871090482463910517011491487667985291503832358107259756936615128551650456423830375220077700291249642743880594130351632505580924790633529601620691774557940421633736959740607922602531972902651120093560513200873038786179071296488187212969923700141364876608033231702921760462688566236327088616668755792365641865473870833912768861371860580787032651833391617591357614619631881802074643437933812386920857764595372973946023815596295541790074442550789031327255574965232165558128959331731157363946666205431441818006484396488812606761875258310131013110167753111587030402727296762483942185964847227353008042862169232506623139231805833018904389537665661317816016846152371643347966815978292172772375404494274425823025236324050115679835278402346582177391978585910499322051997457979178398056073591411838644123237607083425330530559321048863228934710412866010715304733489112096573684081428497757418218413331533417524187312539585997952953278434220888401815935830456861100370040474085808092594168973164469412093402460677645835944919566521154941883686902381922134546661079246009198647651785961004269598620501677794470944244320585463109531468414325277159125660563229293694428099703206595719490224751594087644045488732681572257197665701086154136940881950571408653667096477892235766162311462540372080082932498247842666193770971843320197048997859135777132069218587832912296921174709438301541727342589568442432767500209375292679849291529638247200092962087091499270285472749034969221627446054807171714045186735251022442326174423325677675241456349202487657712043389524600743502748104711162635922839695748167862428124095329117769772132818284099121000261151857793615201272987478777870479242824569394775303208694070538594624014369550058945093442225302489630900372446505822703394566604374456372649966585424391912965499890496282982687100341176501168346110905044474834138045640381925135091308925793533766541564176804783714377486754982749760143315993627767982417072608429263739761026437303169446532808095831040315989980752805717942466449858710812379016583750214439992837108573941672066137251158493988660818179124675267297099746511906770940184652888002120751417926079629100484618749547260454012608086429655402752450517128662348636314024017887982183507871721384786375972885015034027295413398741457128962396185636984147697656979256935279886284027206976486571813973315702803220167167365584187359688317924317144136291779163626239605204238000758840027055539758932812911560602483576674148477811016450349739440081537648758990264181875296653883387341764300250214849573424171643933219563800622686373629246185096272542384064159233238634276960598675593575260932082613412388858499413854688962052716884058530909563725632863134292832102785712401360974969019119453428083551758133539897130662970390471342683625856027653629118621881744867929890613142358561738492658388697162054668400742346064057526223635929438179169456993027256698279032398903766043932141938700994064098786940296368148348018781317848400605490363467165345980121363004019874695542509523134179079099577474107179854444841696724021885630805850718137325249857617442075013188918007624647673623207088230679504088083201800005117890632679836043675729206839454962243528109959302767841594581017565975049657256485162893735434852238177424631681092834513626211605005743558426252286842917293660018575731924763945559225079811720446103432621129156601691299335356651627779777754742556560745092199412887213772233451636658803912751767139897577689624298815818223132161831248800351839321742941551547705492014278018194634291313476014505826689428253586145644536735686856360212927793741806486850263000608051700189629846655544412159387447286810770269999360002143412757246338542991085947666513103334392290423196229491685834512190763093711199666969191237872087537508857845131758598414896859708821186799222454930301136591567087314131370545415355097440277822314843562600964192270396460281052241388974736962862534795089824321225030243982805922347286178137148204008941680894856148640860917779550901870226474270127925603396372831156768843554045088953898539332380944875262023189626030855064516146004884243775443328479562546563332314173150142520334577878438246909555445169721147379587483054141032210780874800287058046457252008306368272346426725148548026022398123223957975273439346965271701282551803474014352523685067856933160583669874009764744928137742163725936147605883511437256675625479701078140166741527632332305053251350827262093973837727370332267126142919788333778414853617544710911431194929989757526467105669092895176153859364849003045133020571404613515510106661022139873952736827805775044469173768623233772295754562121203064486491376492107690013390502400488644521238519246472505270126337504124043830084487822184763065545748390589135670209649300638067457430446369084872230507555198799350545980115736581989633633326145895449979707133389684962973015992847111344661661426526789358330356744176050238710885378008334503586503616494190344887162202849258456243414906691061006142522467718144137209568748432616536966245453930262040278943557885089714198248826920693979943771650837109660899040609854720902151698019062284332768161946906008006672870420286292323344627638944545235125975819044123969585618368208200874038486461317203879774053922295449626067665952098949953065469074057693838275676507455298741440096123708775280945675727000143455463758369952381521755984367594361370537260806488477907962306846223273618552491106574218754276434354266964899030135307185606241700487519502776547947958952397146123996298844515695454922229721840123869088027268623197739623524082472407792099529278666723101301507445649049335977734075636937313583437854991070785600759330271073113999771430421725706652810657739759149194496641810838331548323081381821706063202564312523835387867930836446487641598905592048258740694815368959530276684496642341039206968589960450488864086314495416097911810969124286995551352636662879224922622968215398711844948902124792261068570194123811639195905385751974747172963865169835631841660594510112658534425645355761235498985821732606357805147729637615827965277302379268361164444106047305035599731080928599965494600892551451822215900775639749512536622114683082649939659601897147598335432730049973516762748213609845190888158595501430530630733640065066213170700099068190464782403303971399577893806228736455445117273177861650386195598932029230888307341259940433262039215364265913427499510841603246738656828817936671596152339199901504422005625073409619784942996497368178052732454377602658666149561814223275106500974941527723266213645705453322108208420393230040905198564629514164868855765463222859361488124858403984504663628887450140662971539288162886891987016994939769165436924397792948215816518523146458084985403583945036971975992919136628947187897294223629185437068159944747097612150475485227110121479451260828419934270135902536031203071771896365646547000767354089354718713874105451538814109655201414441625979293760869449108800930639958674195679790586719346114724678816791696273605999512622954987785612874072266163227738055187632625473399982044977050699882812518572936167890533929376360717074368851528212612609856865024369530040440086642100307369400670055454938214129804255780211384756249297079559535520241213144701560017392981067385362252249696750155469823500105525994738041436507562454674463828371201453065821899074855261527220111266945988795633729880267693825167656589028048112274813576630602595947986542444228451929304469854439935719824854820409566355116083291034119797281244165252739295340163091547640880061334401256843626124416869732920832654948814014652057608791795443710968345739431769213461716082937764401851169489111723993685216850347265931491936443238169000234136592545327635566306072807779016634782643802154250757063762494795182314320944074947930702498171791412879923786163977242286199242171030444384404009960840907161981006705228428176735969695206140715714564683173245027148827214350841391212012848862550097462017243271450419601587385261913884960184706404384322722733055063042517295075990508875513688496778510158547827162802636038014165380707669326092253579210579643332308764579700752698139666814497704003754843435433320871327849714801387974370970558447742561978419395490078725613687836346434180626663450661709994877724089856994146587127601413207398984007808063992155013282216006557968516606499092502851022581752536785655213312145611307595357102348012682899050540885587716583763064274544425216527512915204705048803239301058195086363660642716692978476277488314237281928863502274228088129773057999132592049457929985350903607449061608158862705073460694641741308160008269101217490019760513391404556320708015636721248761810971304479530427914698323869815790066252359207904982405581114202454112848080399581928552367944968723130668849143604252662842126479839722363496236479047321218464185725235369287191568168102940529368304208063567911452833499550586432232572100576143835414895946910828276319322262694549402571029745987958480870651970090625853910481878354817885209228835455420675283476843229228683999941003365170840447285251699658069586550912478685751214007937002997763486705382227361728785800968387109860986794418103429049577839974190506931710550639514984888157859192253340725646136611055006389432994612395280662659057381515830185770367429487373341462271778811053606852595556971136858662523369289597315252547795570502159097317655237946035291775226615954073399230382126635276753955387661267391063239574883531595183153154249802520098051773465817419282564571663922116263380102089780778915607337064571528068178330135379645666751369407420316932257020506492498143263514291531408251775179052748672585391228425926849340507505404471261848025349049832383349841190023735082819172700445572821483260792662418115140496060884633717455249222891419607212643372098815030491387273425072361777410578199491954483797961864739066616524564207498989304295619634951160021605668037354001114849783897550857594208826485229545225583181769000367555280271608834384916849798567830956814035614194410925025413273171313604139504104025850405716115510745470501010346220934076919452574350783679673434188604824225261260727280914545316435077952024854571201490334691039467158742451370430106338146199337834731893267844605760838011298369105946542749653940968960853527476397861541782452885864592737523351261596199515925667725532033398948337420932608233115325484683811204628057537342829375266176223096328573652829425682345157335116794408356035506347530703976845930235350966103475545453241593222832591740957701435124258174701182858673752049241022981027216997465262509314196849952891917246575338217871840551243462025094417410183521258412375581491492962476956820434291446852973125868247718392346717365288528178815933893811576999812164212382377454365539148586871630257457117872967289740027305342846073002607107921994609953154460568993264227094477926493926999963606308181702843026714970486577299414066115268933620246447213237905158909633815840263856068172335357675958169792271894056973372219555001633836224028661646551306207128013247109793441263594076726950647359515715877676757033711768313637215955169829359156043027558934062545301446460463430387545117158713592913496248967586812393445698309441020870199807503714744819572887747283910554826120216361808956385388803579634310836850582761999585715691363469110098456108397354778724709882503981376715449423037719829628107955153435816475020644250523739222290648708537238836636423482127505375643779428206628398854149224079808343586732420914427692583110957838346780599068462998663755200538166750675408911542035033276260803893155122184789014580101789832170347951469879396493123689845677203883338862343776775930413271418122451918600782862933936663592088093033278752374102559774999646062557512357283108667789863103288372492192787211117429730387414873013275644771279308418783911892584581287598556563653223832924754950870624354243426428602209220144888029114679920770610736967440511634624818624160794066676807269815781810336780209340229488438937823046598960796822652321829240515658484904895049978200547246406594739898389971326594492858756357764398698175430420740873326022207510886065411826368245800560039737748428205923583000915707233976431278383137588021960305230760722272329186461749560278597076684529133889533066331337800457301672099000909748768967174600959797405203665821522068652567491957053374800166608638945361012664069590504051093507537045288138097818626327323960272902425559923312255916801801118888169415248456859980891955882488835167420768197774822849103786407172781253202375282120953482646781103377879361470639252588255750241091890943105861381712598023276588017098246707424485955363953779637581577055184642663138998481301471084480073700387469851395179628453894512521995676176859892640006862176549586223052110644295348852016075188701452297528544525721869449269940915227977851954958399997060998051627309768659630605442282269290564066989288700656790286909052940506645475797823385208896037933706684451500808076122929962028790838553814736754131229913906268983260527115874906800172776925475276962862440738387418166375549215511265698729446995071859078065676876017960971989568697901674720771489680402529299619771508351310063005138183181589620533123464938142414468073291529624910842824160042747119351721825816663081525860784768607261693406895212464326651098790148101873294396467021352310965784205540405694772495364466489033171167024183520725798015175956803780418772397200624704288529865495631888579137744652041667578712525833780432492631464297993127735960674142640200047877686644640899795212812690687536842440510505101226456268727854374123451780266927222860600120182013278522735137196158144649270129105040180787587372451741700406131763430295501519818251225504623224367610209733896872837465589872941950433302679760295283863000053041914095404164903965696143615997130808537716072538885640875084199923053525502190594447026536633934497002718034434412260057847085423026323705463872567350290190041746670877935105397334622109986977195424807962648477166135263383546800896907932116245401633508953816149881359770992213607308642957026077317731987077449202198575110173798024190275763338084738521964595759825541524536726334189872776821505477905092510749358328847195127765742578972336036267924060494698203529042520469955733104411436743362391183647002894916390169037202474283071764499839174098455493932496469669018107054730404459514849355028599840890722726200301302745578110786418708873475531718560056829677911586717655363277819310010948335439097048911770157340042982571242636867602938689784488670679382478150678204096395081130038482085086872717483636081593514764119146567314526696430838545222133542020475662619187258096896427987311428043492979674641096672878579795921206864739031018902029932611632071350915477344059556838311426703584113180562032116244174818138398284656462041041248924358429254292312302960833764178946308125340699180997867028181106703735997681260833843417524968880511467806943827021693670130388535393055475979129529052627725522170465238331159713934359823633387866922605206298946668773253803976495826265384956275333718182078223048837393310577345347173978859370761867662761278389306030793012774026574257970156991337351542042895619973523334955104372604942642630411175318192710081351297193011699638037112754427773238153590959008103625462420123246454427952460713790445213225179913247461740167967428825944366653442735021990453632753895677194099434555258198998498416776006414576994572588448789087033807290937947077695734633003898828204909910913952478603498411454307806297925918551194682075704984718252605041010743358313083984682484265275760026846439323468445872497355757369119667757120816932936395576404179803000227807935610481963807799835626478398175575946518540046584047748462120897895489042191701549603062862651909302904577981094880228139328078806085326035806533712043533494542860583906379816362388508275561790482693301784629517184914384801354298148683478679150907699169969442402105315829006652176430120402692024689210572401793370762099209803155940167003407646975664991510710084447007513491445515186592165187935699103408016835911276825822512156202458780222004035428638947473044938075748587600778518828520323888391900004828438449266648474027976730098645158554323027297495966080197471901992049234257155539202512695539576548859549181392361867712070437039249846943803920562650167850065123841871659215746168799354667250809078756686001161709757112218546838648955001022671153663851241248684656713518622570338399340403381924635019077068076895089848037336920938315686626833477752517253862384316425410757104327325490738601787740055210203883577636502224293520395205347529119936868120810674567558901678929021646374300204784339383314470796953667864862570895456068241656210296556970599400670882462982641600190156228432267986771680213782202865162413491700885565519660240366188861111414364170981468221767137660338649978931198495715435246515652403026638582974517354399293308105327085485709975985026376002714102450740308729742155168805620053408511982526637072129684799008707719316708698422107002447099477646637603946495915091645328886566779103778694951837851212066577077061637246218236965148922366469218746057811720157364308910355845083558175665764017607621944468404323551402303243964074550716634756710216927941961631067154247060689642264650824924408133472755605416544530734079497413326656804935450884874600349942288477283874052185947977241930205277793375820873360691238725917483860755662571425506634192157779830815578837988063198405660061714390251519505928198776977694309925921588207471283140335047957554766951383852859007268597272446645324062621445182561083691213076807974626530231589417375716414045471699136392770194392444953395516509473923537917927836707231875592225221277837496465693583259742032542265922281664078292189749016756186851561547774120788976445770123132349410919455513591356080169462589834929367429923356359489511231094908191549666527887092249840286318196512742254200298149453231074590730965667660729089113246909399872948799158347544300842803987911383302962125939221625103327771087537157390663775098096547170633158221520867380996132920384710852854091098631823121670631563223057835175977876534584326139840128008841606885501729706485157482893402145885843938356196180467043008040432475803342612912657187424748849569370109294236713461033970934117959030158098515536243112573129588325586392666919580843486700020011706501928655746654959688123470323796495262588350483586928225237182079681429101778863393853211107274708803832809165307432964804986771748360224026581018367559626507649040570286227148832443004953180157304811516171792716643939497398823445568991948749450072975356558353684364501671023033206437952097562132304673382689437507736845521823847564195207082741681702478753649758799363303495864726031989225749240682940036481289780047230669824273429514622657719139590414397146957961411431692613842144600638288325508624094241219168060521413834545987121014818860568848179950860783464478809020951861011212635507005755164589862043211112209191604774742332042038476010251317966253053085940441486257256197434787127272245654873725372700547523038706782891557602807144799467689152393042643442878208530323776061265294425242170097070072341552538650606130262243832676444299063494033215255426723941376884798755312242716248000818325094290529496427097383911118547849672407251530100721709407672420169200865972051935223470247475189076413762315442668173640582845926294892202404338906704199396863685262602899034225816792758266896420631613407341489526111899738088556305464606302433393958792376949235527923862306707130674490446058588815127396628561510210552434420173852337839347391805543247078305205758628118691050820693312087505050669954003658215775072086167110081678381677127891701419951799688168190741971439845988219455229625791966341994178965980339624926382433882595848196266695011347507040087279697183341186388624211354305181894751819751810319574587380822840431488406924354162340358140683193427260435703539587871631494635950510463410997854323002235489092322718699696402976431792399009886633024414322157888533816295824276592601518758617419198063459101141567788372001522741244830834137663288446541333330108900638812158203002301577592199909309939738189003409168235904763711173793491952653066313669973444649707185482608220438283450878753937245985974961163493555299343517206887530670427417087141934061112158991989404588274433201298514755616967879546372354151575959178498438549057133150123112677110872473533971625197654720396419023300273004434104237388322425272207590302579844342519853518298127968478994566967222025138772078936060141943333966828255695797825162484650009461103131320222360645457961823388444816451743277308416883521787295845355139414914235697643857008097517958035288564215470520822141163437071780939251924022552830897471809497051626004664512513315036008700930752216570552192629091338988169489500308526102847691527056760901171860879720096581307093158369281711743859810630974379598026092487078517500770328755097139276039908302634018806119975791671207150802212667225848129496714652744144422133341728587319570562701500695152648004485508834582990782732601956776553088614945362427459856401719001523918729778686446565690793527081747506570445266013434383346018975977874448227389682685047048865369869766785339018222951741283015720711334856817592535112194691153606444060449812521648873071500697115200655695391057189581733022547794265735566984853681353115859221423290352115859015139461932166422522102840564312374514430321215909853887330379661096219415972961751945761794960107693985265738976677169097348627233172509767353302963008945690358613430082247944780837586772025714237262267374415028054981403651830042319494374024784495698652210904282531354827498469368480470834703108663959029529523824561763929380110791776843995222022623802153139125190669278052489831372610672853892369604694071520789138157307846345487390397927077734359365608656155659364839335174268441071076616832138711504194752114303941629172865870051964520799337776046917266231646421284588948339470088329466655168917632744629717071355058482799355760669574038591382776115180556919986804902390976392628693571855817289825745097794105362715707657960358784824713656047049121625819503229770556604745712384729913622476461779681490268989742406695107783416691749094809429748042600857709250948062543330803140702009663764396589116156028607087649308565237195190223716360754885185540034673499851216362005757158238432272444364144329138450730321905072783317049773743010853076910198366802874761367471370109613624592337409719083248762360605069936721031817475766223220031159703254446850567910738590108853951213496104623047905823257261000163716784424992200130896526818045494131825548569055480619861174290627078786237829331221906829334031684160036137244971954252721223042472769475450132919572410261286879685821229227570859096032119341921762541796409431744313793166496963114561086879938518859453426433552465064231919858668526060337690290494029585059583770796613408681152095606552377004399922170287260989030841125230411000052428224093920658374741672453449290990094599180468148951775612596786769596609455935542041039778891045768296454578745669327799308052097920679127879211680150751832569214211276667698396917500162897107387672624852152867875562380877838703602629463156571942073025452255000015518773365947270875967180001383373487905086867007915705551852985755452358809326729381097824968650728868469864329144438928058424831020248267797031727249462455171916697897264531136362644607978904582316530151921467133901627764910233232900159219464129488216361537642920659489773084705640777096747603449274857823778414856272075100902892258136408521664205827051751218433924169117244626378078449351614038885703846998577110842437124709841244526023278073045967069753596122701625865052760018576813262508788415219520007379737273983720864756346911504273727451175990763138301062863387548504169480386024042571564881694320163736145701204160486465871451219511315548315890209295570878027070393776689800876035766603433473809239890868963033865627006788763690992478375062186361975215822936136385350687398944864115223421810299903269008647570078723400797334819335663977940790178139553679898344648213748259777295571424668435860556796664251365244101999379263252307822984322716538407496096885945448673557231278787780990681661650624422389852099423179202777369720092909759009094129152375596390888711942450994780563973483097405251502986739870579763756143879430676569093171936175739385355221578073274864950352632505240716789700190554167633390430790594512611279213268211015478120485367680936736536012695609428413667118027719280723602630350571381807890712464115794674321820450489719841193917238976525938860734869038495075041410302127256509400340266525222636151373602423235265556396363194587842482672194477103802673507503451982204433483398764984955315832496590794454134717272318824036516804877361856505065266874488877340716124482970955879532263719743067868469791855459733181815359695683999531952650193691098570059236001777666569460324247410010016871588521210002588768929674061932263849027275376397154613368802843894215940127547933050115115525283870191016128555200444069370051453147242105002045992144756564942682391361813497183687143845681721535904365519975370511214273518881025291272619634439557647829797455405867821795342519642575681741189542317666050847751238522385678579318017303065271691656760324380997603099021965387781278881398639624286281613092589012915048349493926583716983512422154764201712042207316909544164838948413878280457620467649410260926115565858875185932358391164980072666331851988684010359995493739713736273024505350055126373585353960910421736738895466130589269587707879446610751327914829500569037179107964128528673559058914364157983933150482366072246798595344495748711539031251595974432475415347074956608187930539981905171294791417467645412116287616698152883097600705844944317920054734106516696678682293920016227761274040824151543934403472644440828503951559441923070802021768950684810872148558675135324082887791370626324105314174755252492717049753788569236418382315552611787098062622735301214538322959580807631347137117536238525878493646641781486512642650373202635886242056956094733622664445149625112398398822265814453360994903816573245513469582047326735935381320150580872412750468036521811577460154947533940544100453346767270356643491045372744714376896681163610266118188758992858902637784944535927805465980424271769418744673099895119831879975351735443446941152300416652430079775737802745275263445828824261318751677824355193818561043268354848972061931386902163287534762055433774397452859145384660550965788791334227873346416360066391300867246364629469773521940510896192959030640129376508047234616731662567602839386990971025363279487310322951659895785506961645790941388177385055346596687530087476901350213460921319734333896019742335640231303983412076110054642825030349463938961032087344510549292534644683652099981578395636610172097106270851893861599955104845121335966172700554544858824413876344365638162577031309720525377746104051346372057888926696252450451546619895613895117662004498352544941444853027538171958157056660168212665487517660101280258239748372350714845572699064009915912019597047029221422645455115891710624673236515946496781109994389673842267948331452888185503746269048509310853041559135059389708587370673846474241541389315975504976032330777347449976649202735076185797090571945147864892867690328515444013603927541502381645338106451148649806855564460783068218605711690818990988438296358183200903135205763688132181457058760364502898884158525557848999804182484529868977087534762131268167679015458946428576179436367243076296773710343411075954187446363936220151211262651324697074560829411148440335240093629478327974887134056499755200281258162927497907499086407687132410066009495677636324822268473744059843140030613739887008859294496416224556538482218372125138775852073928622459787259560258295936112879910512628128644900835425094496674519090070478144722500193520629608131773133984589922655313728010387850610286828943405160347152658840261735071451237116244924812207005405774759779854489222642471829369491250943066479491699679136674268179427949875215627066646541834641834887654915091262037541108838843878925654448987817312251052637992492451828839577935733504083645900447348755844526610757013381082084153584698945144585990327584791325244906612393999849008151268616106297522481773361445210821442293049037147629244140635250751735473566700338426751094513907412677430286479840575661455536993925149554343533497404701309822836068682758099198218716228095926834453535079926240840037456303021677978433728960035066065228833994484086786245813501179062576094100324172748426071328224566342558261921674532229822760607680351090142911462347652438346012380934641914122118201156070476074820437833283847745466510763328348281720640133845040310293189304155227191123876015119193758249223460783943850135759287600786809401341750409016945887648687026816158257489930912669925651953114158042065244121413307425818182510808230671549483891344791986388428183160068742293351614005984040192464236629699422450170839432721332959547294149349967275773208262401595153903624798064642503127419461764613344021755343502859333416767088304493883390412885564080219361806605691510555782606280872295075050896179141104541536113671536026048211459731241363867916894192939135554081937171623153400979071418893073102526411405642487378490935547377454242497073231473534347821418402277339679712023402830498881231881348831664015315945621297368475658851584643492096999691318840804637928242724690026440088148254647075765694611662383177540878465200931012468847835324074624672815342838223540779365203274683790833527159871438132854825809790759899372833944489610804216996095517725867757243716707799786863796719945839439060519990284012641868442623096249649743359167793867876303277141977487266037058196127365080193016390084551737697102146667193368592255932987368677968543565840452502372171736538233756394024493305990001101730456850342031108122927769614671394271546558397132333158032865701308648972595942794177990672696249955203147588673304777116322077254644585343221239268046833097076648560520628344840598275559506164128639380640206693948210732690989547333566180619484316919230145379051498135646948626392149966728477397191473729381705065205042473030387884179226558661888841207924582025951444235385527002088645646585289838872454710797829784780851088732272718449140188939112764564773419407944611225024127319357757652685978265924398318081673022286317212117164552504080422509457944050812845275124111855406729878962120669114118519410959812235572632410346984183055017255680208397798809700913122647506202770692927181667438295907114885778860894566482516283935241034783212229909142228853072319985041250057589553947361609099210991010386123788607504995758580406620223137077523769684062518798240971233758493701162502756352742020664249709267583858885076721904436711725949472431628082384874963570774630543384219989785847778148478723766184170699254956762430962435394608725555525363643489696786048960182006701668549853246462592115067990690597141259836787837999203280651773648310313722776960714508610431608729856068680781773177377066709713526161807058183927317953170205675496272567876561190561600813439382363319333453811911328371534892906638259932755632328555360333911487012014661845876047775318703818456448819084799344606668044968072782258826000702871433191082268617192243051985651762395495483953736451224010277969045080044256130223570868102349990874538754492281881393943892920103204207648936603293106027687679229173108872089974384339744417335027995254066542070400523101352028255472627111265567444995185233190307957170022278198376731442100302469305597150182008575226302768858749741963553171476081203481475276255455171538571705825493377423975088066919851764361273249547228784232170011114493611095271193058704621181578578676559924028915642708204560225641973716631752625304102093985483332338890682656444147836449053861120032197000297623312566771335089542023882755368088143851578125211261740598599878895282655928636203958381882273430693681656255710733338841297894847930542735356246835603999262738463019173687866483428820636455396115913682290083281027686850236793156027934998882941248419831229464230081319618260841400521893568607955807066258381329831864317821850071154508844938000325997202906426272032118848860195297184499505087103311805239451618998499827263728919051329608253624603174445561791774849676482885383241588563109442804407251234053355667998549407189845247529093970323931042679856517678082443970666234584389745126237323655782443619973993768767765546296669514777112560596539905839568607434371456988094922316653069744665703422575647836738833641054281757807125171681734321536501084609168718660528761721168206839030846163975184958501039585007472834542484043636506724258401981106191851606383152894155504107071694356158150643605665198748252612796707839142580444858252811764945849798124664074624249169206661207212925870637669540062012256908046752568107696377414807503165502836201270963005054582702696690321582590170311475939394036193303542414496912693989593319938866020881613591257350110336708252207605026431252259659424458385140119532814704557509331730800142454994410439155899069640512932873828467502785356563164262426682152932047493226411668845279247558653835585450541428395396501508589247731236431984015304818024426986001392832265095056525000063744631914150191112417318544804258237196977806775334966456108421578808281092783852851791759660659567757714911983964867260924302397966356790570154698836024670261912062925432849505592582908851421722940120674389336307834521529857276460267410516985885645391150270510929947036330873837360019910358416958419951303561260733882892571182265910825178084232549197872132727801684414778385017886934747275278966651668442916520171741177173730444462772581423880738657299555013492239997026827432508815532298315349573296960329698004538853670194884146465363592501866123359632366816342037461160329112023820758194830717538289010618591823263048561318841628242367792970083747580646443506610879312419186779459255583825150683261363001059552996438186227197282671145268706195470674180499884433578530468691391357371513330851171234626474058269522210909316700454509134357107503703578314329908953670807386273594200684056956084310597542824161792705143336015558095486456749536907056074708984499093989553207527809986780958568010942056875731307759511288606055531159341812412641142896925924581382597020533186684249003700851656046817494777958671368198376876366890936919914376943724218681312538433303656637348986756923243051089095927662489305846968511886536392449182161528162456950520020768846364449304459359879489812054507488802586247056710605016101982129262500363105198358214529889152315854001177886675068780115575179662779837018009649554982508222792125419804987281081667543271824259947890182205970003768338490354873264766195203889943572903158588183454802229972488926313432325409816726466448943076149158984330813431668423250950449205331094160878135334474620896028096077764332148393078064673559692896218091550293653165493167048335234016974770486967757617475947967837300235110312274217283525101690846703109970368273303669976480834429952677408451301791729610663181897841667281781611904673975644234214495634857049532457209955964687706102890488098783298020984445589055016288204598193650147126262546593792274756419831013995099170266513398334423460625734849584169824984418401984443056319741529146062496764152114689456875127538089461646695803719945339349319894268773247527693599492254047090443296830422756297627823928784487057309116707752933128198404372306469273505776110963219630752564605282018476928568754738771143088646161290861804374822554604811448921522945987700674690536225108756033442608884299210500182737772939483030112886361133752220525633896492352953259629428740595751386403771879404165336596421711560082318103445952395722067684184741632309588570757403835523716809888814064270214285522102678960263716737496481119218669023279899437623882237971575756325730864286458510196437978323380484900874354837430067330031684857837169398413811358871294259754852684496916739621879807850248601270543672592441608539581055171963038929271872485666854794897516407294586471923080326555646032467475190152499653061474240737930448943122919257487436436199772989425510708473481541311068572319243341858759483528801099933851760949839928160795459838856577349388899140798153656530824144078331454785406747013819558262125176786664796106022465918930161909977294048122807511639729476316379320185277877016175263546462339488274091593794872808463120265993095422124053275369265046593246986986664458727645778909795812606419586948359739541533360191180620002844507827001555936201745703489664751205920184004850835553858340073368379141052888778155347972157099145509638287599906962053017729052822534451398317712060772343123054284290064370385459398823972918876412283707396593115780810600981416228036790832183604093423851922348468229153519250575370160680047322915968299716810250814907473978757747793646039082428031649789746189319002674946773786803236613041263445852549086763687922324128857204364742627553962237917313864369355231679121262995621721420735135732911050726099493892047646037204379063882065479807932533402912099332920134559959278038382022587545275201851362424146594007942190757630983094601281715629392190530921309977741853226648733542412977967612891053389363951053030655547887824831434268833400856295161920990220608210036189532755969798400872029003783589038356294631877780368764535370582335022065427454819314424713075105558307404579469258753295384173627276760377799150256487110206377660264624286712238648115522863990998751617179419075298038162372601027084271073972813891092307452803122619728769629226210775209074523353824745907960255041148126250905776432136480405699578412324058886222432258889359618260441549583976468432312611340013889607977113232256331589452764202404772628824367077402970572844164480468465478794124375042365040598775101891963845509492020100120283415778169481899627971192984531793744386106697259522119187950270756177991408958045367914792750537017163736754888095526733302596183430613866235663729425043969315468632872252706260700107874570320231640556660626258858147845595673659283034889113698633928699508289999865675173679873015475602643423557674883561900271692682198866559106943852174884642250546092816530608292394799921694908745881717277336689073600358056533658252466944816555581027751481009657028064675727908847134013495913513185257805020831163539623597115747100990478701838078563396811217112381140485867762107291501587233447715962872028613106591796559821278421640156833508220842035178515252393530523064044850896545169498890445444283542771543934001725942656494554543007684677457551143113034483601927366448896747074883845093855706557126063536999034906378860679987631117208820328155154888084961678590154560752112700929763531515228372159297806283054529612810925782534693024040702708198192712470459605255226680678898735837920415441173858207762310232433535553291376667614725605571814456364696696142761784537796801611482544469611716513646400203815120540639267727491471532832594505819404756365913120778883223803030760982327265575352634059829722473403148348833176915809019364137723362872165975489702623623398151371737774810315302304673519553088785967602884633857391432066036404581887666329430806076695776670092422431956523208986303985443200391516931141730082703043875011402926839568413374534577400679639774063295613262549805588748159367445525410728204847358095794912991323928950296813944636321323245515884771375333904116499814619718547409984508514189472038116814658104750008001756647745299909490875937616738599803811386804208368482335859700189978432236642579959460081956917881159070132759072110895026505069674066565881326634993464158174585219352765101868290258832034936451516429779119660581236618687368242426129217184219646684768949581662724158512864870463179742931991091975946592608360732429463013999339364510444295359093070724963365406187536639361579575050620466668316857812973578242296280595272418044719489130104751713514535221248188597225302093551197607207835819513627264961182049927223539189678235594721874657455096024178005242162286517679959852851238121401356474753705567205719770224193490497418055039853580042827474988426193329730810436136525515722223043377647515004085198258220250069206372484990511948663572525161871917372362159929442666818457333817519338079352873904611148583387955665819955577672633426661796437087692534237905475323357180223926364012953788411019660591006458307273820350040621418109803536548348160520646224795567777717126903007960740933532088710164636526609880511532631177384049767550704224006651718551558204379751154104440497915560047309874525211285302683307360656868054641646654432319765273231267897083235808064725666849920753425635920639663301185720368842036823567391366332320190518783459301656175068411756975416868759634347645154947579672142650565748355561474012693763557510350246168830939432522038831782333174079893630103629604655933585898238214664579672124035166792960657839366624399458440961417433425899902583290573814451860463513140305473927273669331599252033166739436986608999162635512663673437991541056741325207906162835601858412227481381754955008100646069031248531919205886566559350974042364370816611899889297070421262961897763574246715868444874713103147111460930354691499988566358061665334544795666910771746731789945616516520419857340226743239290536485482560365650318380670427618843079130949583352668657932712512785356998150353582142482136750264507994754706556481945625059037299614158580695544538813707420371654241060314779239019625788332899998996617951621435852259579809414356328389238346317664502623521317701712863259091992327531650264323535488810908752455183369994721561457406221984908743194018343588413626609072647941970253701477040117632123466180126021292139824927795595948293628825025404510160708086311638153255866219377776123896191966196867574153382671939703198023614925380381739904257469031321644108557916686847378506245446714277412105870632810170321056233655093911810217354641818232417557198276300587704791363674929239207421721620637935404664629624558463098307222239192184813587507502869065757020741791129851416276195657513177915791366918439195423500454754617976924788848753725814787024323477579981159937783288196618025231561595373460012763637379239196164629887092660315795113837277996819163163068705921160471012453482534059227714025507302457839223756702164668966286529902213768707330772337697918869335289168551050445196505681257268181546334732702186940087953053902436497928468665589105109688399054696720437542638419739083801518898813976829443862286158946456027654228674980517699528991159661063206488797391717429379886384584593728789933862081851304941411939644855347749266397667005395463161535550829481813378738088766022424121897807593292776007591100188364312616237832320343974762676904347298739483364628244517152909299172489597162221058205560862088932996451667489261383997464093399080535715581983180505366499748064519755639974386376874564289581143633152609594242726966094838053773146303326797515927447681740403509882925549438502650149856376417966402958555829063026931572006260895675640331284040762995137670537850741322091990602022283790796579255441437789561611395770019013618492691171851339978946364744163748635653823919368703588817766520400525572735830655389559194369913442644593608801699024967034150533893356952472295359344437432672409390154802172895583421090304610094378537133313460239012999682032217111786557359474984754417350914605401002318774965722228171541167941021448828756950458063685440676605464770300447118208957654078341926054338353593248315237336151905829997106552423964894895618145715111930657323565535342312820264067524043877410600644063934054659264327808012595060453237695984958299703009905305123709834193646224212533569256285217565186193071031177916235172694535126268754584047316532873981022120358347482614633583405568643724525534703852498213006372233593039942711232988777240094035883225829770122495076338557548061763860708385892827972059948342922646381222071493730396052585915935580243766526160825405163806621596711859654068619246873320159511501457655839447523906007287963102811859642399820583499334786949088980367719608813031649065733439378837666640770670748526378264444961710453213599662296261262829012690093438617776329148228793686642269105572955295249067411045839293663369326130440115533800803536397526000411212644837360582189709642170196793732320781708328015478483766377143581146167790464523813177146981690607503375481663890504218208149446057529797444508510311432720469772251590305526357070171791090413391331827372561309665002165813850071338818680229784793141502391492965734505368390379925685439366394280501716016003379918005370361623578722346011018149014299743628773156543120958613403325983842154935071843370725019694080061029371047398622705411700594914290014456560641091334931037939647911051374600528377121914757298229168269349801142695902632363256759976011186022710811601148747420709875045680843473741398059086003664122066256413388687939052498962116881668329250326661727069148594023341966488720508582233218481805168909940399979699663821310630155319785956762449638465638716779979764631842273185117739868874972152482056362161069022978781119292670846573220007283836680994994992630198948876814147451101894311827245443387763306546089888126932058059597432062357937145460029951113057320752180367241133048896706152316717773443308502462164851151796659313015945465430021816102875446159513276660607075239485069739086550830443661147074871334722821665275999502852647370939699481824476811657245725041434791267910178972994595063880095874525846984766679389392089685522005485664633839149742230997245156846195915757779767858561660239281805457419072475463730644751769671330738314857163591058988013597413759008585740363777059392311017892881511790525336779141281262909662820466939031003958328200021161296026840458278887617881511611610854176919196212951328696213221093933886928277668124266372866323435647215662962683401865091248575217232023646379379741431727515196407916917377514800018888984134397246558471941102656982728603634924613772730241973248116287948862792654841068116091795570629047099156045805645552236833314909472366839479458583010533796928108446713152561078699100154977521845740081361954886163775878258528162105877581221894464482973149453320143160672191023975140102902337521814014674365431668037373210131655958629381252189626953599858589198299911675056370509182776913868141126759231087543794191407994705605698617402919847853310304378092130091076471588575825835938711791985396251577308817320087139173341520355188219450856456085066102239844912858398269250780261898557704195669355550049203406432827865578420854138680113497054186038614944728374822614944683466522067896143362299824484471279852978173322771114459012252207588784065139555974001340600883381887289513925218321217393716016208713991942049152732095754494882434839030217745553195448568671370500483892573801725160691853245573948657392472968591276288275972649735824080044272000562780591036682811225825158524689097393314000552734683790995655265820848471090687321932252346341904446071690582053227903269153191416947284366803865988402265007889684682381680348025471957694431814548007430349868058004133751771670644018608883162831312952601976223886159453994735315481627007995540215967788013961943983268981978866980073567397606109097581570786896977667469205840246185436490779823280656358780870047005944859697576354444722835479769822047261943228144748630844907288623617032622885715080631780839761783782525961790142525302068564537307653557517955571372958998924832845704908127205593810609860726173684634476665438256119729360978218737835410834159369689436055306888688565203080526394977610267792410374000930724941955725792704979416718551356592243947388791732342359320273813031214964324328680368200444366485987929374342939808837959900529885756123419046900036374948977874737359316952231216837108314279188131958498205933971286321986995597097557579740936039825774590433692208178967625728958496494704825019799797230073667617406411107546916395041366574865167468155519824688468187967170613893758215972923504477483872296878105284586845212077184919147277301695485939427887359374048649317253315522365016209171929789388387600635909798092317980069173371479749279306985832192329536695670290069242873309156763543417987597383656323193430456497013432970672522287041722462472666616808610661307912727760100264837661025608297424002200772172336069185795858535870591118017350736612014852406919046998015428989423388122491466663494262375869537746709885040664728324275963796087102678481306548792925079644714183690261244864688182174256330047891277371067354867484780336293945116463836261436490964516944706528995576439088829563247597613299187192393298088110272788094283146042165953709228631674740908429481903746325672782126372158449517335044770707036957615960746212575704252998679500648417414055724961553638720920621501521640397448625486959017120959281598168022233603045185222200982458097494192236670812281186518025201979698661289001016674265260426298305239859570437803543571818083724913195475546656488203132939575102081001236030412251157855165293556401675863069108774888831094051977671192488459284448216651694052951806691771018294831541049067460783830949566352012849526795830939932809917546756337820259517423350905690328482456399857241665378507109686076919151846651022388937703234848938885711520219606550574500849115631154514602701173421942770711159857629546175305767909557503221854186522613608534257894160823413485207995337323222885483349551630743703133729119780235370955940382947570340124338490056969623562042395228691710973134364484872158283520073267417996138505500194910505958740915144030267232986419086947625356482058713514354106558741434107572798177154028370431961979825942757630738047906931818385410157549416085706738106111202112567702833675084055953792480628305521566559030410022383783967149253264722709810868951075022339441505426709708598577707900088141808401213588796539520784333634082718525195779613090718951701920989217863364368276702878931252592745366129885992517329506286940862480465723884901963036562857970179093259465059882846589445735336209505466528010958246740454459544822750818359600373119655487573033138279031237225516639264721575719540800767884062164483079714434878528484282394944197353618008836423821816210830761220867977655267521831862970078902879039555091289709719195898002512867909624351202115930476508822858710314058825791272288301320790465890343425947431797255707425049636312885211259971183481462907361072104709273052011848698965932574504465396051154843885904301099321630571202819852163354485663515546074695730799774699396287304512371172725787337204538451017918312766822505378479588039813763203871252986587033300243465198343898184396088977610883275925717489966056003433905998401322277860921020463579087567181251345443460030038422388855838725663319107619209137665266466595504669040814708581109715783469953450050377013267499866700676835726070358641827735178092167610174721057278921448182857415099746735367587893900192360662441310082914757897642704615982249273938960384306059074618553172773443653047236329619333436920303975282016783416751015038655527152034446737023252397995929035198467226268206115028406908873651238862899988496818974432082624243875353470252077643727731550718304228087308723566648485393101333910933227326002807780050369115877092915011693176751475169248469307888525066380221307906610048482245149642192013250063670895010318981187797421729123244841473639487610110306779356916640972103987328922842837025846716396210070729609906640985659187292354034571974035059173339710317334462571574621936324344745159588437136284917652428418663695150575751482342066964114929185769926726705660989302030147459702737936096702097088378044990973599139465104655111161038478769425319833326370297219850334805123583878421647846132696361404837237705320620151590743078443108933202859099422745046218304536539060461108915333697522876100772101380107101460772812858968588185738417332904959781508869100923166664595858577763755536632026126855944249071154481497278236881871112650437040619273399854966710203281378145722300344921101698113030239426982034598724212392087778937980151913332871611657119430705243247498648820276648612587540801481493153209621239346695098801492783049336089159436692792803810329463178516800313751595435112030787779938906111114958999554827748010284364479203074967243745608199226533019356907742418083869481787625374390695501177323648324382269825495320310948488206405863061762315291145637229431507437426941904966828801493223346752427073561200889406178454710652468147161920178857576346442923642842844626359954860087767170540663481384242477163290402274196927411492497498214595313072410084801176234591801072753179715856843183867688867531838435609906288868028125266824256866678949398905258866039215488123053453873177608970868201792812741375322236794434277980187879767935884127274362708933234243303884940962345847657728306114506537867783915575520006898329390491066600201301957655318907666291161165391510804012396086226791709540961010247881207227330947824399985621349391492683946633659204097133426235778614337345725251041299325598666266207040116726252400157673546055595921262419798195065649080638996965859517040026196539773508459143987038964483969826623372735766561627038361901330389676148804931867218308022988681601393814861289580857056272562998449980775851507137391699354213808289788493239105507824820474469146665752520051518884838213955553927387142548316437955882944647702890989294003926058873563832706456560032645906318190932472921476706541368596940042882122175732417964423880536196001098762655340793404592855133426467254699132474758928405468915740564782287407089672197503344929477187238842062168552649976982694371855710472853774590960799087408912227293905195576273588671570853921556265291787393862411555297917513095251896832300068251114907406083474564312314376968581669467403760387178474875393557935310704659036146965191443642231839127172526325142485492169642018713405122743373629899812799285574380857506256048745696003267390097542547850232203560477995558954965871583004878672443904909295502467030068671427798077572584255621551407381036874559646472458007134121264383618788701584365788050923453786667013113693156486103463218742082719139129065438069514819390049241681803821369211754351703883220833320448836075214048821512543186897812333569348950875015030402023474390606374572929946472532453064218924129475516479403376253645284954856058869371008902293563599577352832179640087333724943160260695301713604340996826269178676540376049306714133927304760054579004576850784227114429617119383703529395321063286224272291340857966443390413954905085700336896058267370192163575320038026062393681043321091017148641494670670037927941688523576538121243852919223968944758119119618994925408480287811264614751239611499561277847878799359133608103326543610168586482833841324699426356312215067572179634518730284990766190466220953513351964991733379044782187165261437726027770955251127032998087789753112794035420733351092515175587380136621437317767038967568145358030718263457873914481768896606978845870345142487969877384747788683548431255452651465172394152310606236058294032843600999294492231174689215265427599921298834669671214925187143016758167973764848090611036405385910479450407110441607314361514296415584961585323739574289958884205619092132172353209585045960512075794628817096541061766554288577695880969081860258823295763801152177865164270898468825124509922068179748521770406621253487350068954308594746896246528924391964968193304471129404591314290691819312234943735990768741528931953452890857989270855677552160154741026032713184277335918694142362620221028248012667397788800578602472734295840218651474977025275633887103873220847294540414910591655046853775890052849933548959371049666742703543320380677042926209251631637895547106897191605963900130138822312676110619844572321571505891393598949502497229232770151721424241698812606381855336676643630348816652375348520918732797802722242966113486326840176291558244139966715468161173252720009131738885564432206021213938456196471026400843246681986124629328118702297101771119101849372798728353785715004668773399740026447755276238422427236171953568159320516929448404974818213012823990186531076847920166101917560976657946176684051522392404241749535995446367361248267871555057394074043360708057421452495916233948407389882730652154589784594426889786356424286121954147028862300811577223039384633328213839656009381527385160747609896378737436289524421874739542017353704979851163799215595550388799540802754823624588421856034840359665105553167244294667952960145067312639083329366083706375024837887994517365349513220423697379212835927652226052741535900621219529524423763896606847448130040850721657147624630016081538872577683215312283933634365410639499057468679220593577821542942835713900613821013752789620205646769430501073065440156634008215229759450218647235901447510050349270477927032598383837038755598141778355244436270203579288467391920280851947672938995594190520342363173260350100312146426664783047075749700483406625070810743773256988647551826914501108556120031245870606983963661789804969529600546787932322603331415420045154482373584562642392408886174210605384450809680718239698713598041089678158354919804587207215126199326476316234072116166979160041147639115271417367649519135880457008739826017553721509181267816159741918787971749834355340323238274326511594328895209958602569955035623576921481752640743744357406680546546869062550850970811594940931290651900820306368891289385659097082705665729060961293170055740145126336247244051553225223580319464193957322004083218640312568028073283221661002396744624045922403166303629315061766046765127188345345185178924128548673516253546736052821247720531425427616289588241505378710295838296786626688778070555092507649598960341879565524152038779876131690679377326410470914775999213952964716399895618346269381227638091954175896651641761623517614649968118560723347388810576993927977416052814013445413036960306085647384793429708271140353862232005687629880246220819091363772765425411299451821695734975329054471446896848219435779207738758126346888449845211999177232401084918849151500428991345130788906610864994874130537258305677154502336727568858706813413159540574286014171915294420737893222915720258323304757474401258666690537768315186828045645079643466123366983304691352929603620288463418191770820927429548912276262324986998671118023859439771137603548231192997721848087193996564534820848278452628587076794275560892748896081659195726426468958166321478859262886173127097988135850026528344784137805379526904191231774294803330801060617464460007719742821809621785467108819695597461943363018794745113869071737387447989392579359217704837186624052324541650695015799922982465678368786649641272929492445336075625891770758458436791083125085476240336121501432960570813301623683217483141960683415309219243599416951111387607610183211217069430448315083355254782967563985591409647412763420974920657230010113329057632878482981310372596241385046523491221058485427866311167633204131360909876065917242601143640398331202091454752314822445254166389003450939998681471290507291577566081443978680211177591612851422462815111069650693905008410287503871021677756986090175923345816533806370718973119515458993848469272708557737831053133777182910931167322309131595328288885843816255585347296276289007174100170366855508592193262731643071766356455365376692189268086249392171695272098709810085611948995001221465379428815183421966851858323600164319751891411197649397618397236804183889472596393609031601004671751825301603823079005098770379069925449705870299578374292968804007268186765373042575039159692743385138128361885503736551762898264735876596212961388125021751457956385321285880281003524762689206097513453036754490315320480572397782306676106427723075427377570984094426573565660032315784223074767637609900135067246842416247293168797265269781713542805987417117351576358737746762414403104217809002054941077965976333151950098612959993110710700694239460382849996767507125917006366724061713892709025641647781459970878452939674957332818034043834803293621829981124324449724719138762252187970802883055972359887417410508299072433577609423532755448170926508474397052131025499005734972041618461185180348751537017876395632181044514985783588164072918367577687276573518504089855424632629572913505976054937898379434064818648672716906876106746165407187946782711360765472084524750537574308945996663492124523699177808140929708575544030827442908744164079758833341833570778796417787084386813429557629207502496079371643708897638499857595668452847592401071866929827274649940103202504825456719406353097858302696874558248369557665228650323420107578993211535346368568923707329802113567768187039116226099488346922280177178389656014450814598981931642659902965963882377996435156561078766191202309998515495183045142605958804262767478179421515662021959006913430147069570321165740491288440686577282619958615372205954053769580039267013631908094769322930453478498586273858590280021602921774411393038337149981403738548304645590038426420711633570753558217081301207573173018207819874633621388156767365836432403423453284026640732410224652463993230501336601395094537366351911118969371457071201614728768168453839214120359277280043968673769927803230242586677164747115015377649487723746927981721028812974118081559468356371147565613905650873159829414976904469787766810720897221846235385917579389729732488223349931851267283888006956605398827607429775258879323669215903145634164145739127521819640157665863287874754214053353301930975011312250841861810071753542143411668610673543365052624890293465799423834841664066165604975759024758490253658615462627877072865098393913436343329001498127542448478297053417956595165733319564159195547987994980653926650108175775825209302344022408619650459239955724626586000689980912586520282583538635355567413990862686659142634768007223477797582240049774924120644427277438036077514960025575572974172029592224368512794423869018468894384746737019350443360852641822553567733770380741766694771576174628674211482280681871546221040972933719392280534837075364782957831689161924084666739160742909200078987041611211207593973156920797750640348062472603445371001215875654253270444732059010777954331296480280222315739920758364799584720704679247801960519681458935353617555424673821846473609051277736386946477579063420630209213611889849275382897331169481713072357018861405491789658218958162547894714878294441400983686933726204094085695662891820458511425010570234076516650124024505915740300373819933989649687473150302666106860125154780745291562445364558664103648136766953604731931185585634064953281669342479000598344154038989089640088113105698972779421965003103782650827966048339803450081095174847526673732704552583504609332282351183645090983724436537350106850124707150586180093012637113966843356246116776890843702671977490160996987460447585268935443270571343155713872561625203088055577224005509265565747549928726289406193439698991473688456147590590515697030202478142937636538212040891496627482322942467674829877042544072929867917200037922125622412174577958355216290156288627477629761552803749281414443162792127872878808908356262427098986225954212679922293988920705829794077949765464157063457979918865901009843251228883369078333326163525086651028292730720553563950746786887115919629789906597899597302954757752425446356948414211514680188183339955563451483221786885134059231473246981587778017022273268749390277944845461491396641277577173107141889169614644821588835748981524181460713092528299966820706730400446944339677953441655964864044337421815939304283571363867702371344809227248386780152193668429995499020927191762686228435680938901528238764519302724634317860301252710947745316544178826293423500861896066092026230325241259666536654449341143251727314933132466360393611700547075697410207502363188749320712137800211950777555770289893916835075549392444763376138032553347319318511095873061875708998337850761148570444816443785087454478393347820841250626810995443654118665479067771360848535039298205379586557878289383339604556884996480612131285419504510228911114203865737078406536773379332781066151411700520760798815369213438735447915110169160785623273838511402429993539503849623252696783540162542670667887521449763143879121606104267115795442954404954794074673644117190967152521116373983102918052168128167419558199051982957485729150948640700479499225141545337342105850737952242422578033585838302537434061149830081664302261153964957451493434224449569443392111201907803407613040775131262449525429487087964100736709233574740992272196452794235245513227543252050929719182248147242579311065149640176881562546969319401445505908459326639026363435063232591582125969306434052277525595809822078494214081255346400120526786893980746362476712444875616339294550251778035377094016664039920298864344999009329865593513829968557936259727081217375240102904157487775552403007057177866946733072671696491026115342694933040654487573244018883980017731982663801985049799938463282327422597915018838525012951887796814002200043378385334217351248937337730574025611468509393249468813265759752755337208477110112710041774279788614360951194462179454287561606566166162618047053110612688095726302481228084255692113529261200748504161127701000083656318390750129453510704671895311468080555256352283760855512471004550674474602935966197782382443509698148873499938646058421717817660986821016812548563844468538473920260438244340459557231141541864415101205163796893615794714750635239764009776999739580298602486107465859003389866204718647713740749302401782803793685493340891033947625061370893150905364978417418924510669840671371483144314207766851400067434702048945819621781320595084137953648773165133506762793142524917256947291051106538130034156200969445201023781760190108810440993057205659106087826409165144410860074512174658316002249846273368057231520219048480883067049036106728806351754413020448004882985348661233099153034414765475140171892062093886629171491288676104434246193823425840754069924795787295955066752570364912487878297917971796606265353917387239295866360561441942045492878546091370485749134115506708873468781615071522228687921038489726997572963780827910053942953292904209970576326239013585684737085497681586402515008122674613269653134828568238431152394920654781613663849266715418453968210957279537882526707821172747888077621248717685224662758132341760547460700269232951707731297767816522192762013523136265637645720310901531077081662136258989441828411449988941280234053085409433185924707604519082363173491868126249438446349799396478618310156677296528441860556803428998708240434790435830181287354639519079008950299473628566222799826607770631481406673937944662059793426881303419444249904428833246171769510219723909596308834092223901678317020417989406189593988374294786218834200388672534420530810109748407805581645868162858093870650864521673416136998561000544547704349848305506985075927516829658210351773188925920787439708757345864592040606466280128080842374066005468833551410320691784701030198322734543701507755588396620293993978885309107210140539783697782866900878767974689637900139752692935437674441592607848032499587703005205713184106324055355574451302381506477229092870738961588235487959781249171145213027409946291070392233191255530237225021352659053837089010560260762376244501650865038938351087939752226298017059133589657806067319220317693951525228108246392753522803164629046258104239760587495155935991707707165661564067937225893592746096940404823589581206987110481538091553327078736735440358366689829858121708550205940418011494206589967816550299328497477040795098589384682790012822826472042997119551492569664606460128412624154897216638683262342615317241562085275244264059577151671607980138440500815660385872488069554061200184416430283347418356683942027868516953911814143533820385639809298605376246166944427409125127326698304775639217855187599165359194030060145081516353142456946958454514740694692109261715456894665838664023384570363431890767959807434547471762805120626127657545132597589039713356877753884692462427391373411047807265419937451401721738086304273756470324386163039735121977840601107357309323606628984121626429213074088651887128976723446351327203150103853269051810145955932013195728670215506088305107076030346448786405066995354949900772803151896642550998223165229390227169640615434014726909153956001362262886247908777708497311091250039602666513050833259853510630261379798805710830889872855747233401351577889300470045831186403793340143040511039877242650322841916520442524781243585989702706750881382955836537861226631245600031985121061237065176735414066766691180015988318731486185944139781300046619613279976252419214825001145134376651894847681714556252846781890125306001918543970882452411849579751529910207323846356299632131110384965115690065899755608912080454656148752385633300061638350900224217193279279352575330168768769082041310029695228757356340036450725369520142396789847468630971281990702163660580348989015056195965695701164652514026539992626701767184897071620506123451986000297700023649293772255474919459437397447995586193082303261149398951957435931762208450331068717829887625173608977037824901156592750448762585885771774797345271772402973306939564970650269002418355090863844566611430133660045150963810328074183188362175274362617677238634643072055964311578803484518387999868713489436531682784661132435899904131456866478620026042509119137899377498053283141877647837719441079626114501086855653315893031510948120352100582205697557548610532597410866923023740827310327740790150934083562443315436930397005235609058634080881309237526512185411525888209951628384612019782543139487881969146881567644556917416695573804303032618733446388776898390397749785830652097327490300310395044820483928367085469541882345982729236606447194729228850459055357288467542246992714586470548753668860072876530390559515754682311629590865487026931556248516877453549508910440193009026865214315318206033222954338070488886666355750950234492035074161532076775446228230418362444712194282811645992576635592237821409783150802833469843907421965671163635411487944203878975550621508409451345839778285864351939523755627217425655260378091322747696357619168978236940222310372905166718487290359778195536059049943915856506747350844078622892998957876456539142242627266701399944453898246266802512292770475782589831790033677685885255294615544389229350503979089940177732953985478031818488936010128673102829415455548345901147921111559516171015078963502277575225591836451019227716123146187202839044561323945896613589804001284433848246360562874938923680291969254699887091864507695589495040956045452353097216971396288466643632288923195696485441270144104828016023146182233858140529957056041227447167541359929926927705408741967113723809407757245787829562461067925558025917262143846945637370799737275362016673748881867398661756700180780856520873691983856214702450749986818319472616792882131741378476868666118092482366687950559433400707941375707674831524899814639814061657170388915307441094945876111610162616313586450738699084945679442268192445436172453805702301316487365591545595285139824315130937899423139026542010886619851724555694710267864672765423209830817880575608112415775035163906477666058597473179055156005021559428110836020278360341275585590603901443459934281990363001492291008980389167695226743906469852843357238800462365163247621810334848765908906172279402466463174127939468327253586656479895087974333757012733217191349284455608080949157616640850852739382842470454354623764609089178479932604147500751750308521032521736616602352730637725839430722107971159267477491098158541940084932393235912720013360887845497270436963444876205424507451688544508771152741122249150372461506704087310029079488457721101585839333905340513842395659595057490334864278205055182728629906567818429998607643033949186276472703330860797383396180421392275666910934593219883169482383212065870500834320983882112667959014733160411645622937952608624683958309310168839976809560828248831433784658238213830392843560567429183306777926310838237745717551553532609920270136384789857486929097471549601076292440460176221157714484563955745520902046666522837776872085360863960352371238608841284242402182745410177379304720982496736462366048630737131835460610627727350271319785024082575242626906686973058106650258310163471252296919524057041048054013817934916793435859717556391235435837829374098311983085069855858538425299376104971433952327485428657562759946078354975083070758225936534794440080265494014147594100462359242858496148235611991676738722103822360930824207306728820258372524950933431739560328092455546361807651797182855037940524038927366349340089731284397803604845162237119593166424704170507098040380614008042107191922588369602380327812681670502460664038193722717396020590092694862077209255643219804641677500975914455715438955719259691590062636123180189802219850317442569126605023010447713181747811270684750462400244991164661321835560793888502570158358893824066827044313680057100939327309073173985010260271684974672479828301565307880050094107417249076989793083020502596270844037112541299171810897359158622365174623945662092298138476478151367197848202214874493934028568757796416534739569632787521949200473072820626400003478291470420200551129757549447507615574055221010552403168306840213594131124083417698431700080719005846719640031184774533491907887093943390806457475788188415184863906266260513799883995851514973642926454415781032767814515933410570426305774456569835928487903908688827871708893636105764974285793657092871460986114441750142536881897095555176904417270077695546764735386925938228114130787814563361216633282912895307508667992627927212545513184256066932251222938248224272247721831725622411107785573117784080031884357924904243485821558098289063881831134110143847884949221556051313417806969440418666803190398586417805877911384820472993802985334261837573903576034141142077065624184002490059117724646191596210180482520959279539853295788791544529504038959237961255280004300802422363195286995106324116512603496851433733920117722296327456394133512840068884992407938434454623052302223274801031436953975515999461492929193827919831739282848762699824245798411426496186564569984435174987542980217505575669405465160166790423317253126991961877754292493057306206987593137872653475387919207894866326383084523220142462043363435340790736706172133918544381994817602055847141483547453434731860787640635076635623352079012057605744266218726321232774511721939645351400511699959299495086927323402618537563863238791200006995254564545816351309865450027397038111547760793570372168560480213722677519961635025936450063582500450767954424627415886960975270736855568300756177630758080859571511316226045100704587888948856747417495874691382285813251685755109179426641773064052704346879859429482303605044809617563215162350332530154095784241154700240621551240323301833876122153239714903586336195900770374713659505243851324947025805769869654295606629002297688637435240080797683084814490970799859080934442460785851156324982240748745471969126426073880413778020798828680988551940407838963183411412902704891631544285148713533341744217113767226505288374804558993709573850151066049688881179854706799555712202469038845994141352801486365929405610775901426076519075945035784322586148385685735041539187874785835537138491558720082557566094912874254411321113693823771800021365961134220689947285580396276702168123958164081140476866509912578877533977709849535058136911624530812818387653100749731611621978277005638242527538367829513735217872690629454160252087085999812454762414653060750995366336694601764477442613537958995200153548769286536254332308760474279326476978226349897717852969089018675920798880514903920520919170859475960742686344725043539502985883186866693943979878868489741206437951026911912192116220757280425758047035723860934764487838197590291802041070158637162103347300459995612514239419630875376715114991692257554038891308083136766648603406630832320727142185054697934287886087996377871450230474166326009798034061792812085897698112867791451906972450773284026215261787401524474678965470922769418447642581490040843869274675282002950734503658646114245232933011387827355864767792001925945550916144094816588266991275835856837971355248482905778640526183591583765356812563911655574850337939212947137992089409615891154115712989811318955243724978072763448708689140412285573909674773790139603120181608047965765981039409079254889640378980503177199752907824877475778421141733101187953417205627389618671687358463023509237074815895151653770090975324693176255332349660323530476259599130889892088440795793751093558948532498239196927901332414644517282029513150061491873465440042899684036033412207119967589908999675336226819088823947761100014438855733925649739723262864189941441184260298277726918495130862738155468649525099861120396630393107891871112868396505584855660873930187840774961350146494633200055970079452629852457239129695604322946607934449998306455807225031467379681695358577924210217857519193740003632435837406983432281659573969654572005383324622152776626754253765595649223752176638725532420975916476242261238430920615384363030788053909870571204972332376306488945561609357159658957804131971243345944682608384126544130609970575941886891306274477790315648396769155703519857539617203399590797353575997795103813412051040848903934189357771570744990107627003914734412343535767735498217219666430066161351336574139648082646381976570217619816275049501580122723551832377923661436187844599282712568017038671529150934845720905092617684769735300197262109462453607712738913056117328078654569567575291111633469924403463265154469381315774289544765277333705092780982565211835611063812260380715847090659997174582790062234073016773329290664876678861221814015823199857254711433742325466221571765713057367524313828715892864655773088664042480347683421957955591117785392333076597748939470091002498877046922369232233196424917970232972148308399911451836365332948737916819547044641864197611605023570954437698055508438353896459106902401758754559762899237697446463968810339090707206843841482563295940701695597759968015184255471176897235616817591433656813990796028569945550903372320398104176907534672765214764809571663431048420404050194838803154809509559019837537797968821887438326108015351708291154945595771957705077540235883452804081100548431955775438569061614249457837324818817858641216076495984314617202161686408216939540479372170572982564998495941307380169145461729585265852316315562669705018168461760351447016622323682753613179404614051172420370331311085879325147997365469303494203355445660253255836416874147558585903227436027630280209526339983046532078011512225275309604903226251016977678922124588241073882749437185635079826109835944395959204163179853328359770592194390821962323379473623800744333087641727123883994867487067075414166558391190736290194971657782929095585185605434153980348037787733377423130607808724258403082511343486431546139696960265146230953213287623328909099401276279071268749044925110104336419517815269677533980710194583529370597866107648114928164805118934149257653920371114544451772852881172285950845863049448123612251989793807691844566521949571173325098620192246026365561429771752537847070429204601136505771707952647549247319443297226348392415031152256921169421465837272084862637596637172734183321354445856662060469650987385839878651265719956390965937392959947120290867682346039438631242193798040945109085865748264866868853292217076314311910946708094293280521101878754695765605248874421992717918747502616005962261692750291711964320200882945800034373631949947766693269704916814807239321654842102048011903374726325333197284585585611908595006615745238918578993010370698129672684251316323944216703282664633112981383642901325862196547866053929793373934996221463248438908052447486256780659393190219227974127939766549900139519695389025860808760684963795229403806661619802812354699422828873708026917444641319678977027732710342613264889044744666359222808113172110214290761402415406160889995419669273812091338810852329591316196143392065710821897037667545933836961342528887388436770710818270818679261194405685510418538553055087389931510220340568456261122082606774707495728826937569557820959968305842818265499212762730139206108104646782453753252038288113977350475113395770962938860413924295637045959381848383720544943442884934876783649219762295210196436118940457221738553637081043364039738226393115158155679105367412188038668987826773618400890866606492132640995326265233507612553038864715150834052554074291194988276947806079384184376419921213557594797443936340527703900030258751458866030329493345195380866522921353656847870940601047238365780401618960893389333730404025224536875628943463788667143678105670226008765069712302288266671981797814400810500561266288729656348645179649112050390108734398870438303137187522309119599281414023231818494966610980379399731493015732182676315852907712445136752851448036631374293619969811832449118618358863867844280414639585956809069649613777855902255702944679186980837329750967251282768297294926536756300894774936825107644826470601408048420613867024610407664405417500131663436644337157015579248304814500403462121725674033817126497326130158533107173718982782289710535445917561722866504149923892900812141419639703179910000826730401092416798627171230606869822411013107923303952453258798719613543541754561380712769362588128422891482330305211996757479010529551599606190716499266971232452409193215440559625043618255442538503510660686307916454630432425482259892503426706720803501855654441186350538979866504696747331678598459433939163949175168420139458590189281282950484578545863339810179620297701289013529472237827091070661787333181825943745859322424870876440716371183848110582821897080452578525318319683208906223245257366105766544474236928140158795608504105085279289453522674424058571458595640508886081291655470655087452411165513515942095561500623180431475166027859858992376019392434829095509749256723123783367068758074643341347629333856348107801725753370562838876697965721072892638691458248964803230516768572374422108683303057992912160300796860010282350415417408929816318543774930907089023136949853942800170371169667235588232990739889850920056349071521621167135379269746516112609653550622537353608005878876443075175877723159428857290315238873681664171804864578652692461978992384022528670029362488374585603693847071016372197186601369872644043166540191102994737577282595546795242135210899431593557140191847047672118835224361479202572505434960165474237701204152954542201420781099522648871453963807590173559177344339112481526554801747981974146102394956880349623380662788034697414804034233609958212909763854426161085044048560235660773533586724826431581987105640677152721908565484776060487741131387725569665549260754573313372084248513571907802103538077703294208600396582874225595226040580963842092969588737443620555344880956574664020530915669245791731998837643066023043891158605161448416727133420425013635214936404413341818701209834194127964161024183083517200732381578982338590065006409143964547510123205648288769523873486530990850859157609044209279649461630506926063303326647397043685581506914822827205989525939297941571968493807284210997063045828419060619367767951177740442396509657514486346997771243132209197548698322078697535363743320999080763467051627519123147745481325086195339969110229944882367279151053004800527507202563816719430842036315924117012580162707850359667798693603822998803006970271295272021389482946773974034328973382949798988215089413577003726979860352297448822829123549710154598756369935023777111911274257761714874962604822749770071743817430267430861758263075372868198320137165250139642295090774276246708138393941077097742094934739787405179008970888980308029934826305570352573929394510155461071258690270219877000108856213834798237518232271910666118676069187836730146290199788946641724253302102459695851255683651501889655598875008150920569711622388954435161823806054463091275213521184015056573249002021259314853797548491897810595984857396383587041416159623748134771039204693475760291141837256930354522024715251802159076136413509101763027175333659947306181180571487180727819687187311161277552798868853907161279525442337177945961034046036180078631179578980631548916029727836902120896911617078191645842321237307039914168620007976930077776463365929303741502430965290190706815760504545235374144153724014362012151147154385127564060158258447131719053294734988450193973951344212088906089683991265510373901863549354579332653298448579453127988112917487703936163613886335896419029966536656293723760615468065339028165531259230029880485196439800684148518629277438020562423308054913191643101191560702931417423405417507396597105511492534973671773698211507929376580028947163137963921658014199246326794210596193168638555059522750667559257202077416011585539000600170275677792513935887414984739236557972490244410130595000335793155189303684934436692363148451273235528900422582030452175775756834187135918427698058114357800261590284685302484743532865849237918556592860999871227256851510440914499457470184165888818400630247474311913341334053377098247968185118383515843699074184963927139468879305885570013392981860440084454346688679308135155143160463185350279267449722749873428516849968474351400546636056387270782138825485406770861866552996838312059417792795779958431300355862098559301138163397607711755089730643842222609753296263407448837662306799068275410015486367679234585686986849531798057251020273657633189443889900992011400547912938591688846947783633094763629253009725601791625524361984710621382641428674035132669742339119477314333872547380723079000119111272953391766608913274744656487609873434511375005354479955559930302219864796597242310597283611317108244031475454170623689447168053285582064982346197955882678001435350597430943959675303758462263328357531268076114430416679827743630192794404062298643443775845213202961537720332833633437708792153672328543797723390203914975416557535754687250031139096834401456570212984836954714117998454938963929004924777886152864583269318906052775278196256738632201362707323465001337071597470038127966032738786224431648780556042706576374374230515217407869541524771414381729402703787326222717105409934231763956578437707988481662583825823421792039717169112540903411891637860043934691264808292279782107323832939515499412795981764026455361287090670577095467063230513146570529441858998036788162410998156578857360193249354469717659134573515719348968901036179448916659240900780071178282770333510386500831472772541959303582725499955987302404930510518313030153347870457161848937889692062918325864730832447224778302703892084792589521906919478914966285855286245412259681355368332517212251003606556548789310482569613280852819029493331875071467982004207658773810120645920936045934164635885373468845543296351578891179114486767760798455047678381484230934110443488806513986115310641652195490234804515004347031359702336872326193307576719479625047759440508194482979403409077105159859446079715515867310010510880853023547838786418856456259196705382919730180958047671634792595525999221034944839365435929253638101210359279545001351553286871222206930078050534675296143101718855634381774178032966107026974170649294820335884332372781063584767354187172968129525364122605511657331145760824900187227101580821342346919951297599500774114594881543331932070326742664048634209904525796179265351511348089061052778044409612777680475312497220841886398666538280565699833868837871304001171079101359517680287563608773522338375223682616289336918288083009730183015719152522882675867256342978975963037740546220303802526624300757895719824657242406091255783479577564216879016729537188653844371841191086591741433304762276879232524749940887331641489330978029135534079601530791142139205841634363128400141935499676190465989913051253722373728381335571847130225073192513188701604455243202922802355381868162968065370274330963112710595661294429825570513879670690687965478699078766269304232185431286331369724877459600719915162298516620172764432276323051499229196082493882143330997582383707178881395676474227203985465125206008243742189871247488256349452909113271793986962835723226344457314780166571711241568335126352512488757203833770000904826589210576747622430930177024595177915095566011337824327455829158071151415024663570938250460354286800999844178145779844593754017663427792591538271711908696394334024543362873837835101726984596449979911968288426038902733845084407046389667313538083089458587862175037110858434567942731990290633508010319767713301869896029782307637484021253519609235074093182505491716165347017161352168645067123880702277584010015479980035037903457276874339351003412421298902992766881427015141602657326191937567046217634188207945009487887848303308442593209121398670904589534799098026463817435896113937580678292476041087181466560976036752356276813032734414589398125353247232431436510139917963830418362175020318199324323197299651859214756210890509756588386392879873651147643006229254305826714567977570963692502311620085191033429096478840045650413483264396388643619484364853502031924540562627384609126982915660204871308097403499930799040047364650642140258920636716922578046562153797684271658102469299352949704731009867099331440180384575495246295777215815575733031606874982545066896325653579085996846636209171603873264117459366401627089798256660366929968976184218660804309885806654191820066622325254029149472032323196254396704540458525416883798026488262961495015570633585439788375160125242467629880819336216062144146425830664873531829238982976176852523215938565345790621876351620216582729178989447608506890060882446657179556871328046375029579105977195694450362939248081251933757218037843483436664844674458830880714507700026403126752224552309438594581880506129367255203104335690261693001824766241654094791629105660599413426246538165935020699351890276033008807519990441218673456349197201506019001655038256201307317781154466988898903341827562693527205564001665798575397266192290835327938944289265681847967177331367378445276632046543189559077108252776283628882736845769577023384700751475040067014259616469553314675537552724970969104453756896388818593611882374068443878520661798130331578108071487514544199971560076451968680704117708245163115812123544559262376114435996416461505040865739673781540167236335051150266832104874647877441479113823384415509571349643535437033960364943377285785925351631203492346394669011800783173267567281198417424678430910812559018528746751119729791613518988776102418589312800652792614526753516830094787237231668715005191920304976948951463925148091858133893208312252001746343030022399677495275846846711997590102628980025861648095037111951999734512736200226980095541446574907299118091150726942767368421522741751350296161344987645004016798672305788046009126423950152999199223215088396721808263461376393784352804703686520950686974901253068575862552629421209627512085234957425525968968877270164975507440438916886692005194789697389658490289186029314000137192617545256803671941432601564754714539533743243394768022354751854762145321804160512791292584775345626323758061670994806560713903875130696956478824298056650933181480851850549808992281420728676607998453143276278783777324412491028375021972479486599064018446782527161135186979543045591256143748861987831559003182653868167746212301582876808936458038032430210554119870694640522616012629680566401474907761479120084151070900756947763498808669011145961170095025754871626063315372544825535563442213890637124583049731295943476118775660867679088689109271475022185924999040070482475520752278187936690944832430103184502726849922463053230214835766729496717601413871834069412955870411888676173038062524234657332190638915064235886514964643749156545251421558727083715740711367383639805873610018014780430872955866184636326443178092970392887286907821423143866347588069316927841164159891630665875189046280935444387176666845904210499343482777146511767909227229195560493273419931596609662416002158347087241125702826379764572350455591703138537769875966234546090591046631772302514974133291665845824021525208583921938853500864813198997783818231010823624501856570145537217694800331634893277306392279169561334131046032342529355597696286280560027492680954196251884439522706792185979347025676917455317361375076110309125456841023433954083402992214927642301480654820031241549307909550232037891937915587182550732309282865694629337823337827885363859441601665888535608902332570334152572235517756754496759970222683773713883913663736017178997353595873216518987456948523673210778499036026645874678391361018438609467628710582755955578665902064490635423503732606381852134431855883406075205514210269955322077688373508386799001855500455697961621336258468889204054991670865833964112629742490460379449279003854002157724401750070513415900440572051553408967035108983829611081086814161339812098876763807586427505538489063244757840988868633214616803816373343443665789877507151505406017602194481519304332389802513031793351403531699195089367712817706636590080832923183417396139178715969387457747160776052061955142788245787047588329012850985638712859017658567488859575586903528551438141013582693058792454595656958896516054001762781638847034848078242594962848926082809848052827538217661785342001719218300187455976999073068013567219136889187453516538573085728764343607830544114858664360062285000348815662670667964160746140344692589509013267039519006433054509480790104331876100721859496743489394035023670849966570911075047739107211996484454236139951310624789233328518392388903760309158943356932330478293402806777702734125715539587600765586527810803732434147673000525743346516032006775769172285620556256429852455882699281272588362603568078336345845392343783657894999046472551272948674912792888004325204240148355721855448387721913943110859922940896675416736479105855191879894211591277890068363166490823005170253527272726783839077887416955159531046636917179525370091267238857500866687950481533113960400619975502782572001632826675332582496180198747498568356575275628582521142608131031005731569908828141554672326280973057651142299599989679079437094435989134531828862644292061801767863736985129788180199307310714200089301990089998503892400649728549772587708340640076439537626875214436601170962260415978257772359130367628484650980667411337686586051887690508078006014237219442713475688302765892027165152423623742004044839195750554250315036621188205331437532703092945875617250684971047325312134658484873703196007555518609034175310130058747777183847992596948799468338548315178601254442474932364658365069698085838166082439388741478553610742229054566539170674516461047412025873121525661784794161093995580867348376029745300088281532434342067294278503837967697620421306312982712692174819269593449949398152471420650316110329618305146010538010735287257816575031629649498176012106460723278901457838188361018404735731857450608700552510501089427938940378362091623184976576118021194652279318456236730278693270872593335857898682103660905996763014649555014193203207880517519081803054241150477675021774813616904744245164999865670405903051209053091800006440247708134013331589132177218052761366552104459177030582541564075565177427235107888380597042670660288977938227880676652341315013043149228440513668029408596676723380918463414751641267677562110457018030652377860287579839392643476648978475592704420919918309694773697399518311043273521908855559432389857783911637156743049394415996145048729263365053795579358342448340882411007109918181773974594641998723837540848508489906417149891368975814882669353104673731687721679306797380551024124600946006399693911421839891502687562054708375916336531933123775269330957819422919107001261016486859759222720502536855351482139442547226490807281537585486130902551818613742602770272187243633140890890437771364609678735269353283235373196437915651483870091478895628247728112827659719920015158298751112570931364996140736746952131832491995355213657627787799523821422272433051236664429568867893844982229789468547016215834245997219192646511162573399454317167362328825115414003661892798813258561312054894891751117650646400319804768219817452293842852796081957733941946868342573966975821920851487472781598969661235692897195630263063105099795739079084207765542911998467978813843427424770444454291248918242942719359699394814369134687775123434037936659597870312375818841254909847088919624813556574136938373537753807572700106802600970508894183082297682866091025811495453907052952989289122785411211919821524589336254591675560618533149923765015739017110068550719154168647731868188132345648333265480703726279914091366548169919864860399242127405561946469952199179619387873893379728718214057727054792885480382163376463133519586103316212005201780192115052002637447121795753372325218774674668406019405478638588813129218446676378808316445021559830562402889683073547671746154500152755196164301770209428946586106326556212404256336783292532287769312469102226260818669096307872959359695977628808313791217793693842630797017167439321349759683416438802528448946572851492546160043526813649058461300086334292822170539617894086879980104528368685895053324409883025113850137994417294068792141200150187992966696329552300957078712109311266341161511831213566717836835666660972636674217841755673758882363143582856258248792868422657641027238432138241378486605676033838503254143510416705245674282518335300538250094097044167548995718117047051484688970355887472476439114591231039820652940428000198302545305479009640963292478980683134240010035076682656515635512471303674812941766108441333168057416725921845622365792062267809411122969586761806510480262734800268542554596253904930740707095836914267946075704677730651070573206361252182477573382054569241513854126800178632975560916333538662596153597994314873603123789995507608597954635824400643050474495692000978097406650162221315737967586918829230297264327636118404509674825326624171402099561180342151570486835169980860894582718787658090721573313267927799282860453087471300242507739372428076999753826652389496968772546577136412292369110073130677326991030701645982807955578287207377597798810760764515233224461861240429406742113675691611764389589703701674998362884073958519190268783916455820677946210340572549517933522835445146336549005675288680556473922649146768615774422516364674272594053817780921452858175247053416700129599189972393373158184755236153983727374111597442374590720324410501089082521344038169622534848805666186838118716510709231285630613174687996659498916838853889799648019179815664900362271805210807242610465476697066023419664008614781362822741660512451854192177220510363388678395013973219061959144931396325127844249147448946870143062934230574104022518788011296822126333596807968433140410429937821514156436576196131211951856733802336199247687204137058941141865466020508655711985222122757441633974777962917959628281051576710896373795674457382447625924931149565142381282550533520524343283143708442957554659195529101342938896154332117709534326682391384558689346992589372367621333093674325167677772440759901049209151199292167556611731864761997971717193786600292110229549194654689151531158397672711279656690739438030815581108014185688476287221158433442625491938726578870757961410895222550629722685540562643988591205901945202279973344108778118324903999090935100459602196465436430975247068190094482182148718292316871133550538107089127406706368528741671738484574644990515261387296874123429324677310661041116587801643557628131585510237333042692314741771214387817429179165945745944740778158383886109915921106169455542684016822573513829819960377752945668277928748512598389683765729751971434206876912240210468822209381788585211970442049364335782939413711650522548179957568454739241800182280449242545076973324554770131294154508641237571732437939259691612960837117499952907527826360323937954243530457144107514597601678877602347337852382026003658865881758559604330769137634709967930871093441494227700769586380977629839720826543082061526055265703687291463838512601444786990971143820229779666926024957306257161986239005259719968192722491788022629317056584991679084996625732929034838014773952904461182597057237654686182601388278380078172819196442082143343412915231321336069519401447566192888279653088691380890085935752586085915132089203666732177812061682523036246273395607831106100833478654469262444389543790770887585614602416692562525344743716996096345801983886726621803916384581030125049523456487026986641456730165030511606283278871071714363068175129830079892649884423271473700509394726800295723446737813050632683623937893247862822254258767278609122455763758591875987885863045964703267221070597212181557417477070003734495029370066630751667491581253777474797505224328116408834115690650201718822071192468244085609404112970298733317924268041300468941154862611413854713620039981991946058958499559134301409723973610934798976438938692857832382449837202049411270229823970511129713065477634586326275994534073013696924947064460664930171362611959069847206681158686127586752129186031420144492884043796462850210645336570135567379583089755369070735275189115631221160804632829668315862797550418732727453519404140209562295317442985254772738752778167036334978331935060554440879757019728287802800237992958945101512662874938065613336896804929111804533460073786164792093609462692028938371556749647433472559372430599443316754505547041576270342114761789099302933392036526219425350942771755446529255768821173762566308980524805026150021442060507837225696633574750951638790658875620695012832086103178047885547446553131346962141650756274635343531083231443840356556278890740398931179320839408377439266895258337466030895582206254003985571980716852795095964677518952034166378829498511982465892340502411014097430866066010567366251359230065749386833045892918502376109787728121399307485788442475083763056998537648348616075790938900418976792368081395573104207128051936008385640194157869055195101130027802682921436194610733960792313962763814741837479134653107854564364006291502967689175010683141205153142616218497153342901227945518381633085121595210763384434092585449295624298029114913562920387815702074051679057193492412690272395296262102274383024925461646416158573876058942464587619509705847947307140859370404611358255209098872699897877077239620315387777242236256383850748091379975261073975588810525349101711952409232088958267256093927132582761057291499540336772632566278393853385891462954938863523092912499526519080483704093807447766241528523206808241266491722663145186398163361767995779131639661502093319362573673523539253590289873908997381703795434984056627572764819494837198614205861352482592482093089752456265610147581304327423185636955567370205039303615591301453964866391037372120532526080075722342928133516009795746515657383393039535488329001058364841996854334449869689511911773115120779165030175581422778794454276726693668996122947968969040458351828100515369291046563156240976478308711140225935952917413719861811110850517004708680111872212266423503903448345986724504147251758759056622214005167346552207195973230991434487762665601856549002508195995065336910334170366310795857358885910645106938700346625563022196159758252619736764416464566327343729423702270100865219975539029541664621347693055950356200591282998355939006538588264901613040050062853308225366205989129001458753191713692635854710959332856463553281451612376372742827702777349643660130214591614132034999373739264799502584080247876672135936437014643203210904208787323266340434849250681432106547308464040687682782136147173933414149410966155647949296219956189518477789862139405397006234544127027368873243190945958093245782783875610802859296390750741486053134347917392926188217442116097338962866993401823575652638826307814134751843011388758287797798924474022160897339755789877654759228113985947709986094471665404769427021183532945233472886856123808012025876735229274586752317735118170409330274611131074974993418508537878469953762075439134637247443552793489659998339963072323837463557134946363493849598772411888178461544466945822935874387726273814284127541312010608695750265323623381327783909341065321605556715668434488374077151664172368036084128862715576332632143083191358896657864705797550061135413395224390929112216862666523511597029927908837186448140921799831304990879570410997889583367791062038700860055799967714095101826607415162017034455872494208930467808231553922890807647768251929737979275441015650927219035514009487048362074600829189245456035407155259436806557869289420251945508385892355546960250609817616738074424255525823934987007840859446547421990561835079485003585987068929052736660121886244728044986816177623877034387102032821094925302760324252653240137671733327900350092676715323494064946602676191594720532275469089934104482089306837537102585048862235442572051710462588714681132898372715323356535676167304518233119315414154347725281456706241645308850885673228338722450340088075723179498909504998734340943849766423826045594534175661269147442476890767179597069221394847381150545535620464812726943030092735101247160979841884727288472145481730084991791876389809720269273183380881411433721959200892682636373276077337660803573798238393104027626984978273842990154135426631633480159905751101767253545258170701009632908162811173611464867330410158194177721202708168357755592863274608862363592224652379111825421684927884259830599307083052799321973141013962208658721596133897947905738404983503320099335555341634700764487945790019800280691533243131388521442907612559895985942617225037485353819408632252548782638176791625987285990215498642931834547350220239374001161159892257027458633379487150087762144632741678148973605772352047287525820967962899304260409463186965602996064293394633036091755551787061682498271573110871140816070101306847247965931370428851082725370791987274973581106895766496513470800608559023948812433904316073034520684614725861958636760258637738451363455983745453654043080328546985934788425805866406574551311965742367683296602386628591247709666398978200489039002447909548620683017508994479580855080362881705774735424103164151169251172030484223639379496301288288383409486060700065135347744794640070854254357494333486071322337111586427190236457576001171832255941074446330730773591841846573560427024531677307885000139762751122730780849683406136189235559296534112861924892261441531689340952663421994061298832060333129415984109036772341000208874589480051724252177247493686488327618830835264631764612133268958100826713162305219885212666935446685747756844976297153402276539204903794042321667538141412852289400159080536706983446307588816669770076284140470559924180270474851448471406369980006872783401777838712895542049229402612719083160374913537091867151724701535511246266251848671942492529309424720366218871839643183447115856147273268196488467639696887535302231567257835640659013468280521244742436951028806695400952118540454283645990255632887791066295922546700584227986197758768342003658492163714870838338842293543173134073750967002066007188390290971835109154278545409032010163456415443291648331348871196267225552686345074990978043371069510593210870826433570681887014635695920875298282626341109010251813056032074727668383158575578044077048292568864388116721718464464815064227546307197034147540966128076260462157823325396946304845734618221467318334127105627656676868745079268278892122341002806004637171677964273330696686596758142307169896469333494696538502140459016408219534127188945790942727583608392912687952628043795102167092637319418679368800525172247364833522229617651725828264373026453979338733594505636276924952344163433506680892159545417577768276544182748375466698182527865461856391806972731366557200286432209420526634256309414944506185416899656931391138177695809356926166632570022407302719645947901616656113643730616804031038178810753569353192607392743628462953613028151124608164078585211158030128070248180034323786498268662065815913937560722266371855563626838046006898767980500140665362303086491135431844640516409837471973711283724138863545820540796046494822641433668653440852275585944111911398390476081311645113543467664135377456106519403090724388786369158205979584525428246579348082865825295385991562107382123522771464789630154789291883962037050850600736556445459533763985445593049415587671178510760341117231453175090676655113238595689248656882938905721563691675166775116418736829735563606562916591363183234061623803840611951807910122550578251589652809218904266357363548802665696321583198447312123164869874213744994463624204669485447997674661733014420520154327036630308290295822255102561012408850701594120111076221796608076159590711879409059827004851984409354698132634457651368743294543179013774519550358768351810472824636259364624649866812027408895628547960575632110557968975539585834452008854367195303642399952048131730132041960487534560533263939713526828424827675445836560555960303928154830083904314355841710429739563708483875228764970912562308416582687377593255279650056627939542147712746062835315800893154677931678119565309346671478861980218889025303347073135599863533848132533304888020689490203666371256793183055784675888954116153742017921716137359085042311911698953130987691811924758433808160132700695113765910017127718537648310331764597359014994107739640279450357137851478703624759930202410039938494159958351968153252347136071360680523017372439300717835026111681316397837701945606474437101764341923757539310748756861478601415271902392804959266554887570391611248436059216268437534024135408870129816726728174834081784595505043826069404851843893536025146285289451653243064792617395705407124695639118469883799510070408338897595130499412603997146374395275128458974414533160306078475835081815784560363304316268857607660078787575193411556241893633250584464930386916607770793038011528641927483175895753398131320836425717543435153250358432586177013759182156184296491588316550995098458430190254146031246199802294911957871182394397410732955657669014118169117527809343687149507508715639619862235850118623828650678606914084895041972965388911441745569803617846396269255232949076319188469324713789815434022373470736454733597815050195583036569302190324727679736418686193362748099300763962049949535509048183133245197019486864105966921590003068875172693272728185734377340620580567724054488986830301798054651139719301131174781339778107568269921494564578753952329583333537566672138916357285135142362961907721221593420205450708850263769659070613434282943063115295367188337558954484003336316407753557292518360869778064088157421098998493766274356682473059172798721801439457861648652514988414138722571395616413054599616766288408603321517004043685659919461274415011284548756361618921380616694496241590933965483328307707147877460694027250736205411413793127552482459628574764793226708288722333868836279304809508137669952536262564293351149616300265705060440903330322404511881751765388579256209160754286261639936209860763190554585978190371098751843758640948036655388814987085660671454488547437923062198351051024221487359082824217598684084465436400241295956551665009908379938114804565349808464968830336546628342208018899264950377566037096637981716259896429912193766642750078664822533143311360862463703846607034830182653410151083726345108431023366892267626608752099161483628569127789896441776812048256398996019783728312312193502633126856843530409964805134694430908784747174496371328989045172879273544425067859726270103679035971940347602161906230294866785701712818175508131394350349916293571940817520788628187436128571603817927326234034948953031386330406265218136936227363986125571242299724204232988768341966395311466843384536792698943741300559209427654522827314718082060341663128787099174727572031997471036961204912366977231600309667304323191335589488310206433070621115987513914065461678564499207278456211588433363735199649288407865362976347491146554028563773410479647535638087759508679990710746835017964870608155412077829555484570744276227484339813346162146354951858135964273339761020995910373586185769224992860005605667743970113305925106403459149767552528197824705535051412518387426031510515579725689325433671964945803742932054136162356638927470027770618763063253875712401088185734037707237381736731642629876650977603199690760467551599298178097176305684156527612753497382332065381949999121222263081236447859937986303031659040441977841565012067302709406288441828685628809495687818734554069724216713230975141554436601109882454621269217383940658783570555142518113518975088889303594237350014105754296927311881296775731572641208333691027704300860351412895351997852076068630248606649225808928889040118529009262222898931036991843127283613988619950274978687028324587365146701462268002837649901316801175986884341176725546692809655875445472526594392737686606732695367666760374897370636902793916847792960774565984155905595708411527345843338019930630655339745416721170736057446353251392168924803756494325629148635681015869407294492693056273381734378407157292016534041192105289896702340304387202100783676874205011457748347783355871501287451208804583157563624783708815321819736407691051692825984452105786518756522051451761556485765401156150325285204377425631350595882659465001444693538670701132410232480774827985051589118640313256222713913491905661620460071375097989519008888044493573399813150506222825729331328680366922817647956773969126013275705627241690492251844072037042060602419083275639769092056201481793813352825759435190924492049550714150480652172025986066194737348609080404052276792911199295135450426089912616893430805520941683629872504723402017412353553890636548701614250250620036299831778720174515231300363464711861618660309999196175239298315324657431049357609075153104246924251269728525289030570505806403932155395241877367231123063234852904747258557215739383480356629389963695440774167293881174418616873051411944762785678310977874524477638098598748952128345984789087512875201119862726283393368100988073459571213301445730577139901858122056700614821566974992377671915405529873541421256759668056444747256034101393056984693959186477722177016277829843308941776065822192792095177757033351301280336088077575645326691078990577860711660169408699150407094555966869088968675322601182898272049840353835324321420744967963658580852506265660260797702341427887420764796308802384996350825451135364677241981902012592092803241146281445849882672477145355211423732454389685012685022413854755966047888474769621773877101853081160486436131058457859678107864354544802086279501083020434530413394372879661478553580809823306277530262959571367761750393936538944437778656765101350728368024823110402119501519010350041593980240420133434697257274365276843116049655916987060124436274535672641948962236364153252773008885169687586490504196637874424175172380347779305718789881202054490428642325902764627248007282378719305618603505979136629248395663502831668643538249125439193518935677585105869743499001211623509628017794410375725812854198974548628231061300671804358341718161797456636024998733469182812820726446793925803385762016469400574269964735339479408441220888369072551620965740231943325286560619300121235565590485264720365885769494502691551704605075171661511766030994881913756526561796042083084605083643153132847311825809283453492699455531375729887231777197158764829540671838420627263137661342116999630537173094493016338255469655610907787176664412343855531362597965669785459639448430093486046200488495518214360852872901386961294396618536863104199422919736702359726381408619745495116943449143362186630202096140932177415234074946009268449808945436530051537860806200640730384814685425149673464661776224054493870188632658388056238069976715135731486392655046325780128045911455613066484500809230128258123764116159927729177285733806059948085986570350428029932206022799508020467397335977626070396912689269601621802582284968085738386167481434073509642170694586641053593964021426494204897314230331970524941854801685308382793371232069206628408826887087272038670977374427164620024285362435681577273356599476178058056808675162469983958919373916134136220479089811437421934320562452064780715437266105179478643132313459556216970133928484568564358078790697457245603395246104350184595225402750991640399383038692734825708957873305160843112652506359678376630286706373252084976750715364587682216676079862930275467784962042496665870661621366079864740329314115692393249621216815359661238915913877284577075845227270569083488708727686239901238661626931773942062680886140730635883524371587344080765399875280551919149071151992757935604078418610515790391723011540992336743396234235551927793205580514214520631419370463162874613906651043225984754869633875119881090617466970834898562811022358147153799561531217335990622589642913291843564808370071643599267542382704738307502831941340231130510840263388647488377321112030984549825300173433828306888305738053415313010320827833576618740402688202575451782528645140272894762797416433393721616555481593055424881382394558308726665141533781791242437042242641356484836977627679471667451334363151584152464612428577432266021626412644642476947572908983602211272965513735734732758910724474790550768133925669770803598151696139618116925043967869153136044454933396427164833564181187103284996261916540881000007856591559775520669977893978382156126296789401634180518000792213537375234203709857791710114590865471575813849540974219482860917870849768251583307411820225010528600293640314489477099618373672968101787522892973928569103921122345302475118462758349753440734179453842643869105958993722866414888335453132557772149054166922151071430197585901133255309762242962658386250456845764443107366725695911033426338496061722871054820984753805623777756536616254681216535770577417751153852639295436279048785557495154086356784918340191265319378223947372124225110353561196610175373168411196294093067386974339231982327472476501611943773948451394842505476273784677852480442564086895552619855487839421722327305586364990428547059756957684826674161685188489948934528322571924086160732406227168511430396856345140786067093301456776351530695263557367880031574710197932608081274257534431989592519304995022353188777243416905601166660213799149614042941313991834404684595676353895124730802934979225959300498695192781154008035528500530983162234763020005785239599333721623504312052952599954302520089155289948340807537847526220395272771237706769420699995182359956918506726773068396535596089246622542345311838264068236966386954982515863237224547031353337063443828581390699059929443896056635902255735107908532442209711450259938336358709901653842095209983566103837131840763632662415341063601559466518618922377374303681188252273567679532218170334089118369681520402599953625388630924732627214190084401798785190046950569357972595330692046135991332154267709027342179211995156003555858668549978651153181780490693780717647943332481605957763200567241947460595292420531063513434511348083559961039089777657898206986223790589511759282399967042667443729391009812369816360152801201496125741899097059877022308706603397665522060468757270584566386747586664277302198208953017685674092420430319497506517082510172165073402653708937889722622081163635007363951975971742176680053107265428959883284188992160634745176469967278579402217536323645715412099301243805717245693024098239728894890819963811919930610301663810545744502234894270178734063452444215742790762323253382290989523350985006417510939725343580305036055975233678640251559012347366422541017446011492277093140023422367422308739836814657416593731120647364651274100499607250870715218888285250599450424992450326598940248390171489668827277663860247821472189399060018594774114331888482645885807703867264051664217799693091536661893095519774310125037142555081329752036860118433162423319609090007550984242490298877049962336000429484486089369744750719148607516407215274739457468174820864334362228353566650119174239075527872214514046523034477964662336609533926804022568945521358492300626147837563729056316403408609738707771399582493492852551530319942067688061602257544599217012356679298108233131846788491460409195238622722807330794700061659937725854738238029897813200935203869435319894258007580823013711857574163577112046046260165577266853561207086009478536183021098108398838306587112360544718502107874147373493315600175820899072245492038587121101231914297640734114094324399983577191745601376783288357263926880092556341736270051937940398000563051489363023332896626662761542519153917534946184833009304971971528720146746471635585379390488303697970037803881603234086535565987833284858703037343419020560952401531502597964136573508076281935013590860627089890997279483470180274007154099761414208442406483174326637565898425186693909260096828489502559686882263498742327338381045277543527231207826011596155898255047716090106674783772839047356983493591151757476410951241301417872545016760592112966437483866543454155121475825803160886907954022890169946043100089073440512081272863306993384168157245695505507138740007854369002310822071783930318322432807815679832719905606121013293410219747754647103920945661978962317218456894624902396600003661893214707844496655715977642355769656361829126623360778560388704674615924774750623337164927266865792564444823859727592581019512414253068133885205524186254292612785857293043573052166804677529921493311639745192669753002854090875889707932293546000968342504071518669598094970522301243514397904580914813649458574027866813245575738373330507766222274555258702324710168800172676572784164706860520775348192403537292421175898321655118157489804314408537166508747008280662980358701350692571330468445568713307875370091193648027920647552534035081064603980525183040187712599169615707969626777419131678629657850620942177872142584293229864918860023708665337332074529774560552436800096183820771865926710260280526296900428079358596787362766868025542385119265599243330694171995504586989142524106151021372866529363637102719622896673103106248318095342066998698120487901313599473925318615122996475641004058017843239189829461317830669963940831559371931558015285283339295272708540245882538654867484110227319059662712900087114303837518812725630250677025301757418639238601960945094522625109443719079370149322274703871436519606943002844145539727293579331412958342796159649019293413758251732676213965202783232428026716781812724266811751383168737993203926515270891835421689277832546371198530808326838317212488124801007462211418239428565175084554287109444538315536218754419850063283883923563831936477640883275195579765912094844523959080647813637433334034092362713244712876872907455034329817653240603712007540082798631572744083635801073237999854054688205228470615358949333266081478443383167236325137991638959129077010910794801059188985373492593894243028365727285680364520071053288542477374966944208769064047043013643757530831388374879706753867540383375450848247255467268975087070143441275325516124436403631600937691063639209051077998962769493648403868845364337822602325425357813543171553876102526539720035200072083812658962676661039800250195956796722348665064840216752745225420264665871030847458129258053107843420925972860660996450229604392744235223208545396102647087687130650473879906845550058557514721765503685990362435207765228696958732647023911021338054824806775994815095285825331358195136451057354775489723982456810875914232542634695642094311358826571178886105678127770483088325809290896015388195454667730607943120674002635223008568370777783741871086213781464526672172437609804613113520450926136962378563526553918417850418422749184060163618784531661868433641970243840614469819086373158803314586871923350441812940766575044591388750713826486606566298494712970433434400889457904739263733970484180542837018003316049217491057700346922249720377675629194289691370464912638654936790987787238934807371602700971323704956544132866354869325279397230971550294754828339967401459350112555373613974443756063824220870797709174901223991009795663958412284614077462708982400973853518445379112361520135850315141954703886603786530361808597358623879120718045244503110681517655007470778655751527634344809759511033377362258551829469693888637003808688741651676295295413560970049442357839750563637590590752598800453071235409402670254211522167471553982576583254729240052918555043223638145159035404285784984878788463792857783729457827056543428009133224823793317560847330368365215470087109417576767407166681605809171523597020758902483819285890603101753888215845982299924089270907845979204733248543142265792336902457157635442955860269199640458459844412660844031950664334062390541484815562368543775843581043653616437903959083062028202959378418581730288663082708230433258731562873209960695681580851960045987704548535336665704892211158853398930599570276266527907950357028809899726867562440832892774237016329692228505524019607350958464935029721882228973813523901337212136489219719440346718122967463929429092231115751038345126566594302773707576257642180659346399300611328768371313130878654575263290140401540677721346455672869785383616824968512070951545454156905244581297368291174241489680620837962092406234039624857492372574785105977469105303017236169337712151271552487571133779853964568945427993326642412247768652284553391291512156923268256918186195912647393886836435316975350777665653330766854464858748808706233671648123995172586213441169025345941917379014652687072225716703704651983201573447078485394910662044912323780889715760581090755499344613345851676882997364745252354517900400811186944200913674913823236662285471349539800578374461326102017983806041214729918539184855170296884476657753722425750748208886525209510351736920628868971544382931638620485399013777860490828162738612393076003917925252489781618130964241968677354123755943572998321198123192699243464518256949606672633079398788870644049387274444408550369582410680510213243268128131707665145304304671793542990643613337713044077979171348918432699174330027998705764071738496904432117548491730469739867960959096531875134464136983729187566879663440491457495845427096105795912104186295387693988122110324615116613099071708851252060218864862674430561098444067269766824098031253978251034159358675103128337785532577349786006613753812589590122101991949589527907943968761213391161019970244387652609594678542388417061347680408438522576787966881375517813732666588548015246035353246680872373407721870247094226984639587856365990473146133543711924314257907670245603571282451929345564347447877728329224745059078070654876543341299176135492152030412082447261524575070862471935365013270055412241297858529610750993167144941424858360891099491349707439388089282456070865491340281912144722036706506617181090531497232514394030755346230876924470753354950181905073272915525056077549750943632502072361282633070805948030088352758938665704777111424374371926371743754707532639824092562517754271907575583563593982497568528280274928503068597461303777928607835984705540395882305532212595096105618242277635911735251846737381974977999038364856187166224470328101190015567073788847710544811665826501740356484085736397581956835596840560362555606751045912694915910179549470286235098602180662007303373320676940075695301073935175959541190491826109250663825308107822305107838176421962663483821131239250550639309558397419427357024451281021842403399070407698796363497843156441592559211093814977384172825868886496929998059857361767182673575630874423011688643782616565270175279311939620707422157058208428549841216162588759444547193832306089158412081255815200184879931166727759271555781419678423166490489055330961677712542903007403114743448502183777558348700336946476419247581622900488235336191468124704555891692120766619816265431666588264383093165213346502601775641865052584441869296172779005201599710804291295062060455659782089778775669701255341301377669221755802266347869678388659970545911136137907596923400168007391736283722421692124191648277501887883220365689306335615315124132261668148202948726012854559544919316637880921655103888702821446150766207615431150722402307129196669519579201714500268909251256391113790036432146295317654300330363215435504478832090926388218318091451557533912999833260999802306642029543374872610995891199180382406850004821994307583625144580070317572779630644248298561321140683261052956875830686667424219607355590244687051790555254529290327495737519072755338423771591883727832831114699457459651440624548467331192440206926898774044372291706165848574485427758097505641102506136293801487139344646606862064514613498635355709050532079053406695023661114273276814666104836984614816586458901303783574526486930756490827972378418918262845358580802083544632809675522739814859213873765168170628183720917243664181645698919506355573317298899725247734839422026913668455965396164417421292503038301816411812238876348792519924230663258035020573436661801640569362266750755081933910328294882223640222335766994107193215128527710157317583434332843829263852201196818448575539508940376644315545866649164656952815960692052906494928557983582983618716032678964432643917654550761399179537434891948382210670104150133718110281693695334501554602303454890812528344673434053012770633305036516858704401681246797261498529192328670614545749340032413427197691908235084046230600976314526197803302784370746119947769039074859960615009156606820321141588288794365449515525607302780526168701775071312773771598400400329419043917831205434250225552602300964640007630603191941775993757243689538528738587239854974415313786517866841829380132627586327304399711526040794970273603762274931679489335745893877467324619357012171779108282611824193903665428993191824297105035280204675591027233123513836716570584392085060035788327596035578550458621143986092403344422160213300039594771041777277905244078514952885634886812039371653343268946837668546695498117949071875877271923995521241073420362906633195269983872527649111524091287996452817467555741080002243524588786249368315942724349279411961445785685559182196292489704141360533595770358467521984439613952495095369696328735417589748913855002294407999329496806750470900797793844607101997797505746730523733929535694495116837577333794470285905548867500036622757977510054203435517342435285469734090016778993148705350751560670829459907209682597110459519831414013327046725009468806042857023281276166958876204467958690387326326167368205039230400731281488784056322674094109143654099328225325462180194174298693816909266699791987066770884120122656283933015594517034915668100141878492397322568724712234356582045875314901997495345910342602609168652760724260388090846688206398651739459562905686104112076114381908915161304318867924582858840517048472765206367227883554394756549171302668929411661560783909972378158175926493141746277807219075716798400965231570268816856440282922348279780092234120820515975274607274299828955820612981772579660333680598296830613480166810404566871710855477319977438882512560361961794437676022404566151467080983165258832299456466892943906293849803776940369806512344048178154407192159065716595804003724932834494138202248524089331034762570903731888359675906528047648144545841731523221252202022109263554000720188910748325786179869146725100039643983773101773392314577779505406013538042884595853733201561082885133357760787679400783668324905668564608117881198007287219260912695128751640723814769537104676787763699670911110235144857908765546593109212166587172466825244701833445711932509379422374653812955719335193567592849471749363733487890150809931661724871427116402504769833058379879148622594458525302400440354342014774851231829094586215896412070054459841333603958272240611805027564148930011966435554430764680153895005809643424553316089370369603238525658958377008828880333588242563676444855159197327062462638059209217265366119773888716728188444615410439305987420602615254687139459496292775341628520929135064831486824810233901190217629566344759914223945460571084732657934192740416062538915878185297748053341574824742487248243016343523843437761461253587722832289882683863362924829878948589388433100412008125658486075457333423238166700244180095993637135930130557448543581150534323145329640599039593681683348661094827827998715160421140426933716921895491440155044685257524423324712022601642066429581999582792875471159247624982270379713994085477568071066606590955429455311013080162022235543075120658944663551202701694432527726122621561660112031738820791553109917446507264812862834412427182868066073378097868133442434148945528021598848605021897172252485053388862064606587995052911678169369167973575544453813586184507020243637122708031580221435746244145320774589909050965674654737555067465816543070365172372929469276594746866524902542277861499866501440019751549195333458328484735207037043859573516898332999444126409683354968180802173995091699714370390749470602883131976158472329674157164195273476123311024357959092799794271265964018069272172553574623431898576471280499485470981194534081612308364715278475668617359677744114620860406431383790104483362873232591282233979813813211181085545278915403706113746829550835606352147201844663016011624638159543389480089394820734710036392579273880837522480739576489116176926789365608718766472654591289635173359191882151967874654897944687320730239832170176645044463823982070361269364604267810696324176318716749680160007725166945359925680858441514532529929078750307630117408499005599907141291971681431354515258034924059675497742952425531430034133653848188062523742826345588866244317356219404929586700253750874024757248091144071013359382380720386259577715638939863096041698744091094866010859700763701871715577288119084288695880170456812537112399348416515484289391340684191509054856354808976251253903467572159665347283337637552325069319005343552923065668523112736991697492750660539522589148677828279610900076001569646705024434503826084006740297552175986876955276242073878953872711888446387548537805678973884040587910624626936755668340382138321466937273049169401001489547795546675803520475439850242645867778060808937188655030236814680871506498538609127517541086765318205774084006399657448225195806362015282895469791227233030536391518804819068267904726656000439300795917416788639748932949804869351614785061056260902560718283576515667571334737533242826831083855284543470823664715761952889683125727838361554897125763766795274377229652058822961086889761781604190106176966593308918693893312152344558561556624717743517526303567005003954862053566721678110882903321860790366124080057862462357179894891145756210486982502763329909463613747279684203264611392944523573841886128404691096834789422808105768762531779856434231896522821025785576354191714274399673327886785455638633620425580027577959122270554811909762246765189565949488761743428309901536250004901318642414633430347729325079636789117220798595908378947025828217663055823910218030652957784214578879250725585152992963351898287698734143035884883923604908753713655745832598757729101066535580553133733302412337884361464040955764659490394355606193447499117617344484674359227681299860544567427457893108438559072975245434897526893011284445489120436855663052531151583092308446401638116922730484649598783050251798729986419501170012339670875763408918501907241421768749876744553613946657897188481640815113488405650026076089232828794098391609576944758605871117988892272505385676093926992945951522287282756754327590578122166906805184393269557865239846720679533194479328262742097324898094192734969065134906660457763840552880269133864108847151614382006019964919602527230954168878735955497479947998118182235004708624336263323811478953586177925727821860368875035203320575436030791701148892961555059886858626723746060145893813684597416068509279781697031574069311882137782170479498875848208477226252027394104613209398918965479512725927638036640554426696487122181492808121585015638349445264297534085950164957384838558494049060588061644844087950288025678476873278899762528406108477342739276335458562111503429432666198779298320525052207114745633222140812229999144028141237576533323175562650382714367953302733520147545958991364535428782715404201099509286113505363750006640853146762396663586470747270734061143044681510098996126238717641872358205808625984429869685683109088060828613709189457903878183724540459684847209201238834368875387492186823665405024662940663681170867531432404883406869526657810970115314079212458904744614414057364549623614769337317994586520948066504384270571045925642839314332023999775814196852194894935215998021351268613117402971128247095917803706050507249192833261423748878830055713510213668111427158922374373956121189020748751202962037230593954567615082883744418908517441077415216676486952968358516996790763834807272914920242145307878535979163257247130107200114972952941659076769028870805153663376394865240176786089248207762967316136880301212394074579384736396958411774318096995998181855626109706759850286174280147342699537435287721633676263888453163960629209088685380083538091091783379548635171841019225868372467344015866674527041432512500397398132411999872004755192096391286464722520401667675989262039736950074091756674388022337763669400102728823951750996349128068993577596142600837383121710613878628512699709572407376282416911629346028127322424248656005167274362817425961028426058946939117192142664309573683983700444961564363255643952176897683080847443595007276517260850566541405883891319205357604919244277742908677531450312080849910084347383819872271812478273328220654887773340441730578152080301311201482760357102521054710426314167033454325698708784889850787011032997617344721437435320111741380970435026063673664774356477061286272879708218690870390138633112134521120690888718810930981308582048499347180718304763611386448803521106440090546207426783809113348795661571345360658822238481648416946506130611800301984850867965025739900134246584548786232736754515134608507672175297549775227811544887814409263635481269318061181473939133437531291397652428960185658249808131399839994933930304478483361562582601062810542078281220177532939859769079837470731748856046055040362322583896483979901324394986754842740086969137922087253224627338288125084521567639549806087656003147501605402393446870327700709186294565762582032529790064234285271514590739649902699206578052512062672580928282782821182453734017592739910455325479376697779069731871993809903446697095006069288599810011289286249020602952475073771436359503670822897925826137447551317083724484332208715075075754592592533629433688223577532816240048434063481322329042841661615886117471177812486490588280642553011826603113451138579925324396742585670601780924444222329791484651135659833494980243871379951523068214195159863621539907486403320481662864553381360181660530666316321400492517264300151464130899806014759286423126488164769096899905453970433953453340748938469295755678818998745063192456174299639501630676931660482488586483081482897862214866008018381615751849130326247307567881466379385041885493219723794237243259852248610399921732503249097453066724398624057159494693341686216372389845957445040325537514892213875637976072162746390359356497907508600107059854662218176315915605796601326880812666347875758760143940345488086322890839338570204986020186774433870354686932223870367290308919011527777200681710811987393150751765370238166224050802231712549539702566620601371057244645422320576103515300843442242754415005521936205263994442866322532168675651028582729756438179960883292457203942151583719804650414223197939368575179188364243172451194549096751322212572950067209024696951136620907541956619851829290453870969722154419488554428373455383252545220046320644577008193678119313046781771981471754196569227635200332686398842665887165725363601369902993777068204630543416941415456839689159489733617838800161013710370971066272091622235004064433267259960446192114417793911808007558645259118922682468900328369416710978857688464090566968228569490975971786819514080398740333528781183034820621954687721266504814277647862203601459414132667911153586696731533975244861365363354476136862830935052128591652646391498238657249464244731480394348022436714719616447523589195048793537182706148770067369723346530235969595168257186916499561492080398894162686125542502773798825331623452133542874891360896048448716266797994310324783809092097001267626256078854202290304875072583663595495675270539111245618784765055206286262691149607875493810615898252027764976849163334644770004186413477967424853908198082500954540851012163338840917878983547818334646536651762619980691989841782694848173831587758793984771435425895428556792995126219776075297742465678928158065793240818293156343712663284264009425923337255474782684578478268278783879439867131917087691950444103507129339873455011658961525262373618314907266193410813606656729238321538290737020152107608867405561658697543417989026324267780274349026334092831951858459650645701825667817470814262158348835671755022218413206245744006326551207303060743489186024153652521279836270337292289410639200168414577934871366682756723823624212454333400836020194053758071431469193501827262968594260430925462875048193720127897102340633689489895862297616353429652558169160038577871202908837147754316966484998983721109703240914535611549345529658494059607868141259552517683541186136140223616994727779117970810821817297025341269319061728581934743572455122092361380392718782837151324086578031497254301762507441143758017811246655433007756015653870293324231304140831341720817667770492982034954252088097134874923542223703995101302044296364207988161203669665753119340798342450376294763571321771913847404667766570946833728824155600002730122166067764767927409271544400400967790049893294615528786540139497690699535334917493595849744270712483218033695104691882385388526606628677548739670941240780957058807599291822351535769412199004408487755404445305015507937077892963951000093789572648567544171031312748601077970056857527764694083808306407059417739511504137425717548013127061296182659279233282787035506289555078293941172048139014421739571488960582623499113437146953349523447967642234644327638058097798108464871913865028579360230598295530248400391038125679059429855627062787327304932181441022132329307239188723752639526064165039142516236382439955270572471736838891668721584288523432493079334225414835762202151535119977607814486435121502735351495692535920376623205733898801542957318233512491175574372382082664187794011947510949665937133223193947671687780959644695172241120784320320215097357892453859648452218976844974578070233707604637361450699447941126677633450429378248783067521898170665851934697968084527816542506960979619898223348421870851323481552916381887010256889528395007259149599841521129937038651530448686187370575116500758009536262354171082328826734722012322891515718163932791313393817785591824024230519885214154052161378337047441188926644239026975050050885994144576697411853230941737412367241943277958664085051175036713136843817487731697088706774531857945985722975882217624048943235667715488661709695407833305770078031264764405389357132335386004389253126861019291719962720490531531111755004654400405204279432479215311451328675029794594451030099285512748934280714998431415883765955879599691268079717078230305216859095530047626744313948636240352179257746123495371632279990932899413846803882056075690081246311091050470950630470291380315894703422249666899002158160408636152257636267004449352054438967072018311848633261680123612500943344829988827314114447154849563003415387969108181970582335776008428375913659655269553630919665914606952095935087719406910818926540460836263386857069980603547580575240821800937414709118787775603498505829456141421844766930914825241401169880105822781765742982029548753574975648026528554250161785018857012765749626654376917998734787353037999664904996078950490095816481636508889993589272642828695003021980694555274065551273965198646838128139408573287476608633495080898150089760664387506463642819600868205430004399539735433754579024081698100632592725445351233237003999010821128689522881670169787067157510672111016666954417902943574497950434600520414786460910167501511014970512543932744685012698091064906307807111002727095428574631520606810828991964448104303789878307304334387676910177734999256805414916209984515510159771850535463463573457893432378003685223792673257989859315861056659960849033151676510787023868377934062395038183004345379073308515182074612259248849520150275055053139379061297501879168425913044150259121742219067824959688783107269807970729428201251518326042437452688375066694394845502302658056339007992458492332945190036637323687377202655768743831000913578080571706232454958777400776369075527281794135667751350576510391218986904025167286472265339921383262157792951031241106861393265412288395231432769932318026806549785154843070910600395954121926504887136004947114634558726259180319548258660577536036815941404784964369466108078141759146533617163341713668936821163643369512453119261005187089898817780711701525999183366189051817614524928179975493544175288857595510397807187320392988326249167001678261026451717165117039529802038909918867406395840295743128236393114584838979667666581849196140832990720576606441185624623468606248765374329595492668060882279585316556296922367079116946006169360003417157037262189358527065552953176296713714253965180333763626836218457263393399406387744338196954898853698605643661811493451374595945801920841952755687828636028343093946652390086120132950455263352448158620532270888375560802257093174463920091037709134730704669922665324749061059811832323365193604455710686793918868880400256539643623257315529904309995084750217980960059250656109791420556857427117315290741050144730956763962210551094807909555355578448238573819832516592805357704454919471113579660702834395573608827872106242064663498901479910155946067663910473051144998240837108198523124638322045527728985440893885418855598803583452313447193143274006641848327497736129896628552531009973291128229795411875956727719117551403640726160943432654995541357015537066594305261921458769918359695755825241961461543554567345940750111497578478387298145548638473916057765371648820546012878752790121835081982622127140778165030572370135149116038786697222345452722545664297922410518654775687709131705392433216677149662737475975405920476437390939928660575439985286176989551519881364438107978483766120970839586458021712625224419596315777421912521313932968572481716759742555713429134393826854121522593486938116672042155073704161289228710765387962786187564940348288666743386998796074120528444776523113137041711736731505384534088037344189707784077025591666312085048175621609978676860752753029584259362005859857207459977145647308294220261603528288599316269670649332764035111044484688238781990937188982688160835501898126072825831961933116584852729810415893393464536766295846972121428004795328720186828094411283880400133263940307524891634744367374125262466250439472317149741719571683019205735902954726728252849835346746507641979869971044859622007912679327176740386614414694938975727804223894148378434055044420892930288869990750130575415182653809801285223939549659897232197931949759907467745269642051697396083973113301915762204655593599226550140492784223554390796293774075932545033576375665832316065159871607505268281994316526995112681326286337522058673775870860319461927751310930289433400745772134553178335622480994367030253261754168645134155756223503042993292349337047969506412272445130362840161594986698405714131161787761405611699036708797920478420514899413014046053517160096816096343698884298374862427589901528251613834191934155751103146518115399349647262206174567848207826186388326870760726942573173567667853813397081589806375162077761284062820479273157859517263627997690136596371267245530568126978791394433606431126998087240576166029440060387375019968912383208322263084951687338334691303083916304762774526221878212694689017283779940575250663978608752221277998343086382739736558941992850880690969118867488027249236899864089169012388818263173030036978867474424994291244495233181017380279384683975560683970255326607955995712387294910179586511414582823960170344518674844523366436390409303252624574432842622297870152587110434178770031573703529567552565008305692582075738630078586877740787582517082397927766121932112215171985746601175247788787906646737029774477580787638912232088853288690853578391506764314558275813255233911306747945276882415926082019017111694641578002777457212081311036597286130144530555728816134393707295943803800381803811691890518723054779999376491646391364268890563652448847008560513910813678667290977197246361850981336076018707855346010291640643401756861242614858630232960151354807608748304337093574420855086786964734452691395320754646348367897097513795399722952949277081350423340512086331689414616777321596615072375953181761268754872489271464432671788389069225197566516772647236498282003592672390863497168564572727922419555834284975206062444698833369442197233487301927921067753453163092764254286732929465864191675206822709920252966899144721212453458607707602594893861045321926909651490759789949553521378566918281299845594409612016031125936872956362859944812582546451173603407834982602524256563833365164821249800741254744879088209730691400624930540461760117690795213160966344255557782933054219729776985350577102497879589720156900062827087107392752860838700825993809913282111757628826725310557266086852753558486862353054135798625569288950400515468574205055736490758368051025833053681732590742437649878602423845114187018500658101137451178246765956409110557561218639838788071787313131246961088547045451746322419510127386414268835099528628259785866515307242745754736477989247016883003099013066625477162530534213893832625759808006656726626585020484340260663793017737655918584529637068834556217318298664211483515473056171380983373001185082925516840674521914435079304778546497211520952268455453444812482321224758337864465487061261402009493627457214658837696412317427353402340754793078112529820778988696227968707312175527922880114984204688203532723341719531739131023540931934987716990272083424193609986019575864187037957785997522376000537991499247000748317474677070388511408586315240643652432437953543222651829514428578307232260819415980760463832923553439101268189207342907328735685528968444789627288064816719865231292378725028357562661727163472089078704582862322787210727819215737208159431287315740884518276115289112764392341045784553462015392406712153159409641661717347974756720292772630934515293675186832087311139070694299829495203142591202626017956391207406898983129374462713020361645786477264478556081753771922369853179742058444969638351319250389038572816864859328761314695937997118543209300151590944451200717675516733286505350686855423898229298911298074857942752399607892255306046628540161818336702222748145610476626644987157718485236548773217482380522354441245353583106901662029067786305061683942851793744601728703295332319131270431960558464190996543999058926210241408063523402587411407339354924826927666017795867407376418412063502499513355925928050331647622101584029752699640983113447576796107941427676723125582047748693421209380391884260065800562271775162270185847538740895766550732168558239471341599279439418278398616118597173198226498696201440881105299358669999189819816983296541141784951439083914917558078752687860203867561480724756885605700440440277194680157957806906170496193056904182483263186357060169554188723798089720580602923495173017121330289615155203396762630675213241490087373165470444075237668439101117231275173420887293856841849935960352842295431290066063994608823900420810441201028312041092891624212745186609148938432428178331037015273701112648192550296004996118928398506020091957228263756117593344436793661164888091851782990101184654930521694701486755350135633570996445757513746755438899603277729010009305831109007914988766232616774732155013050654960257554558446058420371079333882012627519488269109212563554297326642361044266555137468359304846136547391874161050566137001655400099039674371967918540016785334348484951273624285176046659233149689329924302641447699010325589420744571022262537338452955691910418745373897264963399964783743776155091932590804184904835656918779286395397325091649810577348848689134327685929805889591717132729774038485959725958504340391073772320646453431135539877810135944198699483679985274784380650923315323002624896079429294495836974888532829971258437412527985744319583394586784509634338018599906552299127538084599286760463184561275725903413170183644715968736539862983657465779962931269978667186393929479513999771497909361077169320241191549998340464958722554363463945649363009557002651855324654702440193568689203866952786536741452790559662123407414020908951169135502636378872121663305404169781451058797842439938606049446878566592379612576129016595975261003278627395388400038761712823851980755908838870864942917980646252948327018784213912849450630015600865205897246202251033983386336533032969811365745758254125873367787217508847893965598606412099109415512740589908428770875128303848238707463282953784910900142085775430975131597378213706784043503146179426427563361319648000580535873957771003914691184657441057485162871183231420803942311085468802861041805489680922437828078459715346114907123378509945155000830539646058787477899285374587631068328658956330097301221966832298738776527624523097253048270627967341222810563416357509409536345296148453409252880962380109687842046596529084507860676583968414937031902102666738990228597164683238309300335713792343625827639068821935188518289706332323888086661196325903414153187011837598814897319287411529941755984121234553757398898519014729894643993131144023885361953667279001887447978490750971325065510492997015975837133242859089158567020442007540595763798532347488689177608490402261169475313156968512800600512696173247943137872178164735464100348907354001348820312169644076647504496859561839873628828073824220476775536528518002342991944144313056116638749231670119007634032078631119591245695845903145183481418382169999428005748549820987047780833059505112018579700191059340676980216671012413486111269775160970992286288255124254742114239441126534930282538609124949213092808128085201662091893769840834122843916176673345171439718270238427704736555856791920681357337386988778639608621893946518907518358380931839192389898507794239766060405570715858085112502704296602344922420244779738004747050343782286103639510705974475524417372770690792410532736255367192479349318364016137851823307152780622328133013473450198200556304465722765592283617455524220822391788878760486338610630566006577084973531654562345123330769613364526966734920176641821617126917081425301611782843374457750723843879076608512564814653807370662288658512140370125468053564048677337747600727429108438595542427033610400875069033705501217850959284242928250254542850577231313173117494669861094130002879370177472875201947194810752932626721345965676368673875658616291789865694318496318342610119432691812552174990511243837456061479821471164031673369768919176550671465540563586633537242760612369131633083474259190622512167397054623726370330255236005359657471689465175414585087760790292398738547522518188446771049660951523315524328470677595795431002480407021988386742578003608311805289362623053052950581741061437839004307930445099534366487989108917468729126472996287351206984698627497229767929305285855221238434831654861503161097570047690952435939766349422391299360370583294574424771505301513229308750588572955396463754779405758744407166992534304823348277795795195961236958237117737519741113328200125279696022786610220664018592465440329168557049878120115464612216960520954320506475178510054037144378513818128132988199187705874491194705869338270136382606178390370551201898948352203578430030507278840877425359558928902872759713689722060583550497277321168230678419205315733148719783864693922468753660881091713582843699863675754396936025812215940116398145555824716133189515744201247086816886923365080450766367685910689965274332051651279712152752903025698815347249704483362489437180914221590051209469176753658677983079689936783276687776746359406791490411825735537849366701771421357934000762565464301082336159715448599110524428642907184501574601930870023448775060927831996877766671873468657119648639471373132670515694304091014069293202491210458221298296482956197164930894715694090770574390290307106415613413487403297845320108472239519411335890872156934458416690126784561042500366330680155493501064225436903414330737165360086122376368719395320811737998746731604723503112618192251090002887513210441782068268419084446997932922849958420835648533098533461599185355235415441186795959267069138754310488951129304515601292270239369975902379506968772232478557582503951745880253734760282800632368315549644444178723025701163125635669360042859577012469375823812340171995700306866961204019661733627764592399824707942262504760034954293481844936092097012498290002869027903876274595567450474448703601277282499123956327434038908350940679464163409604598034762800995012161110557964137817038851795053709506727415902150347943762308506586041131984820416746045041376274379195350212946912600366238484099691744564681678556057936378043771489956120943311712931738103557375186807776560043865453054502766055163921151668559288105352557596102285506521010836547908459923820327413980410781769130084633194779439395716939750259936296505849470673733235045503411272170899357989579811870482539796661711387973134120023003873571999817607366875358353294655501216068419502907099387646332469698789422141807456778769383776289816789189994156421136153926647063811779770201354124849862157536371968724145227435193335172048298140903824393794665936306769627162734990451787190342492578890753102274442855050806459092152610201867393209070898694262733497680592985760621850185788605267116495024957021614029254547836794016202657212697662405934690275087779532091439880761557442408144519404966010208046126881835350479784531615563841632194081796626157310589170498175960951292406325627294121167033455887173095279196698211362151037502434186290471437591923555030937262385271887216770545676484549741942290092405476161616436583783024246535288348656191352266745430421648901092348813485352529699402506763763997610758095498923819542515207736408790986555370665152785935044156228803588294550151971151999565789501169837366783535414882990330205054180201236994652112854218430417240119589365611131103596500840832482060569890910504334744188336725260173271483948352676256308427953677344984643180054357287335557309059080874676524830007728797571177691388916013125107909222705110469590961795323666276230904774141435575085219443777925934100971530660815852167426384056823103921730711868224188818520014828175306069700437920441063501504648443145329283794833350271723284301831551394007604713544265065005392509521975190605997358689661075590212517579445852044744128153460836653170279106083051391627069367538088000913276625938441514895978847587000252790343430076494890969744047402802770668675338465837038321077525384914918585932327870446870726921501187672591836408523855750721403447025271721214971594271049397064431790530226031237837681348409072692677336953448857682528065168879926011494208012686173614991900644553977094272002500080368215229048687417956504569114928285940411162252545856871237699289964589976851355180223728872527474910092436246743253969228829163589843738182943256395072049197083684683148609269304590641114091348584120100137332361403359206415333899474091188368088771506124428688415511850193321848313568251374595127988909283680522618811009956038629416743445910505428165942349278084435679831352153182076917677226830152352338719647858951584537887189568606381230386836171917656562335527076111848098326551675407682034775962076770853770831905068105784599743565633272131572854179112702969996268500326724072675966714752715672654408103641134414668498246268146236631795879349279061725097665512000493828581317561008217805889479553762428629145973159467033278616840814689404873088850536046687111815865192043236114059068117989836651936824128426760903651845639084624549045203124736655308634790784799980606366138274798782857854962632905717069991606533148346128484222670656536525849853637222621505366150569419452360814008450946110051303880878204358927469301287864579366883353850672572937049617955668307059558543022966076796567495948503404317232728167745128940103702217471177870293222729422505426547338150263862292320462799686042618430445600881105021620193188438489146769607443069265310331000857313803666443896096350284375762836276897022839802975743381774013779122963745976330513342130569538408128293648888086307306677730908631013166017005974909952546913762277216906565347703993231423076641507199052386014708996755847012597115906597189523666189771387564307501507660473973861880572472435192144566538648106852407213782401765273985384928298935473848287760501933175047297374440113157775438104872360013053504217920110046286841759887498214358371966775312583567752642461067952881347964011742390721358639789398993108384536434687981232418240947980809592727067029381433009166777730272974360950556506034463178741288119900812329766536303286772721348415042569777432161728175862275568319170806003780683998423421045934464476194871201219600579896157954630360557120482799538279343259009167820661593374306711290525103997314584585799597912939306848505127492810954881990679915182128138078143717671139812477665839771282799524960029457109146021313951241775573432356692745368949810075981215450148176018476899169171044764869363663070940969142550158955957707216391489971588466405965307052848535888831123626303031262711945792304835370641375447502589546279246701895921440288583782823800463035040323667034827432201069360914213750452429708320824427391484820339633437032599660493894352826855670925701315219073137953496150193299059676246070886451414409659966126928965271277443006402315199933352933342288112083627565781945281083749004948980790173158663972704278542650906691067942160023692219642503735539958469523372091144425975949294522428691473371329317848058284897919118019826336175167711982918921139810091327217211261823212374188127106885174894714410780495281035744395523031721632405035256604151839016520855149801793703941048536964371083875649204640024284996282837283276980602508908753626683070500454018934725228748738521230530940876996025702734031090505313354947108135450286611816197143144665006456472384525639588734628445301067443498843017652793255601692515183373780100072684007800741480465044083537264597146476791053996820477666944145303263152466589296755912533626293154664060629238043360114326548025801485627118514407223376440407539270454159632613493911949198304559049288958727008576183832971637805976605187736919564854208187925543278373281412832013040881135015348483512984465440428829556257744467199879343885806717684117856814811585836596904140224078494192805989749933603981180017194119473470651549599449698846645917907976039488339882430084713673257591728185487408723518222758837081691105879031306793581215196060607065094568180162817408378535931042468557425735393211898620387659781206338518287575648452488604458592798749373454585346919188477895801468967406375591931946948380514070342370596271304678236009817069775567514253045557332989276156258077402142979613322203445709580087624472706983796705061632027027311159698049880034927048837248489166951515620184819402681205417052541994506344894834349081939968516422342735070127903191370586764268530519858190880306395889197218414022371062247623631282281743162916203786764209349217375382262947922044584268975797449442507901907497658329981513144931162578897876657165280422956510439482363564933306008459858943297835074718975453100767425367036455575416432679752591452747760165066150679213370866190793900346780368671820272324817987262469231342317994142453645870412568188081325147155623114459316334771843338788778916357928112665085340040219499417666567700988543673516552805026476287794026329435747227307670192181247826169210052157373378994555090213551645461749233498519157671617847638691585138490132320883464179648264536852588927162249847639411967295994979675815948959646973810221895328565541961786100140909315065438133063901602621552963217339723566501155451066922026330184603439604404460275356361547954844140730779443989551559077525000904978725987426208248655207692901780738973681544416908863060720735201206682897407157806279030322543847852328920900345145421860308728125169365639089345238967353362476977914391355062172276242747242877399227570519079403106435513268343858463048433762328247240493820099570193917238091233484570649064402357652535380593144621575318127361041000291493890750349831309228617005622375887806339101161775835973154256062402355541078328737241011656043681758767017827588893066528266157604521956887961934632555408038216680623231296964635088452929754997335885182080046182354826942881060919362261412102942501533703932322623286567786654509627786863714993800869544317649689799880983049571988079361353445039318426708089996063261372109646495193214761683578628985318126154185677806962172209518596529816937111634924523210042605300110430327376545754552828791765531525144245781758046996793975669876801408770337125773929200411255156814512225439496442286783062938426811422628453056583564219763321651689518940318468139089971755369658841996127507801676106171915209185133854753170313264739972001650223620246401161324776435793066879947228884657137474206989044286209291764875277936119678163156326427918484155750394671733585951762594853477666102572349476715629441804137682552472070693217902317503759815474565763413201263961382030868530672513332170071262619774738115916837501829453281828044571176911252529082137170697029342070548633264134605991950081863087687015785094389989503653845462864810603255299851559726567822308821514161424576899540506198598915297084809104542467909599831834328629461102470559264431367830408401724306854395697878122337655313523075317488675877136261265877763784686659855455997751332307666378797252810012951474757128599216751767489852633565176102090862459574656134949744303008858479285337910125819832943725391506554281020606810920563654657362170122357405209403085673129842279582970875034616944288410098166180825608308365525891918028785599026188682862173097867372224125403562860535986002009901616747789568726891109694673888875109730726241888506853026636478338718281479034966688800188280926792481803894364120231905132211994697727384530556351049534775792300213960990228812235486542134069879717478558933154506776938152709933996758338194087025005771519266006028869466795760100891888996475230285056367854956399003142807728177022995546039987841891300564644726747743763478348818700810704982810606980030128629818747499466276888024338791248208233414402222477234394150972299295544160459864199788890365980423005734046310752914022043587872307330582283156789134965839626998399139443797435560433463522439960963451739236262671110259170845373879130087839532727685991077108122172269221489080638102146267652717153718294508997841374144655211515130524306341246704463461853420310413581110778723236360348025497875910909175181333333317914519806969066344439879328050898581921121384679686413765687780014727235544379181474965461966583816063139008636067954122201270733629334315861927381095838838182489844656911586530956070309338263643648313552855677654553814353773761472693087999469048631714793942287259703041518517886738895953564693718647442395456425453729485361099998935313334763738890273869313286125299395038753769938750108501067125811463293250978834581620647942611708683750571052997095717509024494278428965292763246253882245848311433869103732564864214313298910718274215156967847980082605174187408994266536043842471767687929970675790401477339667844627639248505102090933983914598948237536259861399279308974130958567861935634141234016737454323703454447829313375753669446911576110032644782300290008116103848057739886914116687339151938498345416270651351058885540664816288453481469234239378415221825012346212863894415325994574431620509327240908450861531966550265006755995706763821445602153452796046464569854034472056943840317258715244324198268154965419571809480820397043978851790208309498310283959207989815465988507055807209545703607566307044777034822163203118629260977337637831296244779570957653995075489682988739006993602864772249163561586454765465766628988318770430319015808842627105745762745735067165162986674577498078146115227685331380623321937340483457295500594650820555520048421916319476855396616161675434133840779176478221582377861767067451300837976639065730312289456644822614466370218622436675877509096411721448079278158576569201369753494644943120221264472200203649758523767592042288859529108035925951665433381755361057775315426639645663834787437643813514567235485885283741128479568006938344046782011767428879914982674116289931836245760954329252942243329595255737408354223347942572224903203713079354037586472855762798703764565573454878412981787692940034343811701472570904030421343237789876461158707693196552297687482740360531820435087691697098822995119888929972922992031883183387717645932300906136852672947628359638184555776049732525563111281456151976911578751922470529735438561972475303821641011014523187955480382740289001630708845859757929989949225251928379481809536026937957579934790069375522395943681691257617191202941439026136367616369805218102592555130350800966129816164649876241036100391609448629622961559241900250003359439684219291199627146503233711633464088181797342166506178032404364232292095199820651379592884283036978096778586636955130758191147984733598480892170516603865099540844444519462198545813518623970816901236974963510177669521235237552787088837745796761397359698464394828734548830124163307574730918925640679324394579076525732620188367608093291753091681927410264242108096862708966959346935760453339172934900568118633973275457783755713717441512236157252658743717399993548077327610430165701966753606611229868840995089425702826563905506506790038552648861424187116633406155867108570794280137885729085673270410725976084768867797096799932995892668773877449001544506411383742893192437879575743460630892128057075279441811170953295509620242563294286939329303886859269028572978270963405421026368264565083813953359935818144617531426407641911871407933842003723263185956930959620005893201240272816387601439960861192729161681779856121522900512625016711648954457457163200189900026982969977259009807464729864831697862794585176724081405245139249171786305692965259269739976373846771002289937444483324593287048088793793794713341429876067920073844329288714659411204900633936386116331754285496071651181198777195581784353767891224705961379498300458534093620471896064865247939391239198371494736534191630889122855311477886362200065804328865640664915875803540467179583745885599726636536866566253802440101934289459810030962212634934483339829112466111733571681994998819454965406058524461280230395054205733981288108703492028862004230913791352854121749847202749667207299661762315378841076412472872161129149521444941154608655872775215268747532528241886686083884396955852234629026587118286288043460528474887716220930125498651986055619179945806014801199882432905978763295266183765544022406812171080062501952041369841489989866740046592475510378915892388334555054413935388509924755359960415530346946930589128986640043598454198572760655468557066184547426820589455320734872249778298887860125475638655573008096616161035095337900296834669327427625935569738062495643071418499592169754610428616784843904501473776504776567624192493603299112301419693546561553745714161179375277656274042031024312142953688525669083770058539600648126215214690701929824652448870248472078831958100252042679672634495157426361478693805598237716623577789229292254503968663914497848979670923375747341726874412813008191012492240704679472129082492645541910601355237177023844202834812237467380312188839590194824881515954740361007562149792326352503640731783118110422810446468469030195119992202643836875833083121438601103158816709851434440786068900212153246133789975179913390536275193278995990014604938854439968857214991925169539349499892840662752500292600633051012091750886439614197365684611868782631003126615455778436737270594876692404554898270649442692440053004948206210070922926587457726285829471312474063468436614909774638263958691814214847015422065477188760835586416248171052503025689758791926749932192795557219080502242702480885716632256565406039033977952440494772084396069553392246074027808592718101453081249538660253788842447605466051374756644062282398960340050253744411886592810057170577689931810300333583070898183633996053239480532243992546960769711641102986382780619907711765992340109465424287093846642621446163946101105288806160501760093217874980343822036314510078150543646876587304415564471989683282057949733102909782616616971335472546684655225278991502078188150743656420720548972838903879323993119430283130928936527185501308612886925002675344733638481227161065882702896594714962880256694044447814116799666726224518225340600563300378585863302903674570034962270770585982492112493454470142217633365632518148877631305066788571973804685466758813921802637918082360739736738496227437932419435051910268611575194984474487861640669694090469673701121567840728339340020987378415580816735672658893105717586700097609459040447312082470656195429370102735141544498211059310451772005142601817478723156315956623219328499574435881619804342157700242922389609624596220551109136403993711409261650551651292497344000730631295299958777474991538732284268308321885545145233910161441891247827578204495785652045978028522581049947123729675466517294658053274618371645614221979080830152929426850605591718778168635635072103485966571486180063437074932348212672679488787276276045704416078416280785276083380444312427618691329345366394221576546575607358852275363593476899803159368505417482465061800822723556057465738163250442523482775434593851087812262452844883286317989640037673135339884273357621303682228631222861226775082438940944068449442084731182198629762920778708419934564569527410298133950874125583211613633194333331989979332878658721054066302704749228702281075096856097273454877791401640697970065302780702091878216943346835618136325150784377588863843510306988161764693528252510186450527129806898973502780669082364658268969885455510379516342652794579581120946333150178927266530573683397855837906420409936070431779428629351831302363733003046839882299244871170320445608596827074595972724590890189605591666208748017190017391349426606059252020743802487039601261636126502041650829106141984419175768252641181671822339646608867761746874202215526450954439870442987724133578588246974122610019016890321741248273627745516345440595714466847422528993608680191770490818691169138913336157763658490952574682981974266427966987852125948637379867075766666547670127417539053424333011234371410440462484651914820774880710062109059050301568098337660688691153017477190106016081426869184172463670892353002892273873910767861350904630954864303076081204031291135710248030642950691086868729009580629159525408963489750037483797966278655973557625673854679372951699304113851782463128007959486548295692317617521984642242236008162202260855779147553616334305886605171426379625262046962790587572460749627879839148144513605603541159505317844699792073940916984290185504722339141392612994046436054451259007214107330037875430711548569301375847790421661782401697938864390190432309571528186283631917348993597129186941599450707506347775376060093236447437931049854261014119622708941252178301975473445928392275551297314431129140425588591683389377541622382123133026105382497218703469447470253887692750977721246877032826739498774641096064992784198663474609501872287261882748661589971789290214624842001891816032490996686594193591609775475245324843946745847547188336377659150478759991080449702837106344842149361657738588220130109519074372505014733290700766417452557920607325895351565902654970825819517838005375042115825233289675218728286985262306441193825520728901655937821446571135042316399135805559595336583611783059757392863516725367675798996653377044249969445293935500734701379251397840499407402888539678568306744429517927048399098084276594113253818578590718137185431953422491813759055317178350104396936931538551046458366142762416116009423621821477273164910318021248238099032374526702229852748395528627762212155779658852733362415359221145207756150699285829352364049916412182897482023242610368385956034866988497648137580326991673775726181582991128915158779376488527544566615663927010353091567964508048607689657532346164821531532147067664637043207833382900234347839690010819742430128029607537929587039715498064685571345459294739886373338961280228485290972099448965170290980857166135932763507916075996542771175322393907469907536977335731371679316948026599760179685698799428262156267656217014172887262679753647847324979308984248295250048763220351955294982635870807636990945964214647150424037775524307908203835348021148526955583662785034376071071854093189406819851145866223987394579102077525126533401176192053039847896750201970241492400916396923895501159642423358178412712626361232412262343047852078662098876131774351958025315038462055046670490302418299851323364338126026989617032751072122531927916393951163622140536592706860853153920498353727593841944930862686918843207207544044338822354943740380644516156381299075548367358472601602397475130138546324376212796257266400811864476293221231541973592573217558537844708048214237544032266686082308329485713670481067551965734808476401766829940554011008423759359493393357152823102098448647785334145543694396083829721635122225794010208207258257254052192129852641109490170589735401053687169888172816100852027923952475149976804280776535285325371166900021449284609203600233501537609325374314650535892617296714686669520040277434030528401028699794052234120520576031646739039164600437312333673802880314397416427406088421645162585307336007303940716373376679432813064174889528467126939869355044673645379795951796769496162443565660101060086344895440050965515654025714694572896307555025948487747031801971636187076557123735031611191447631386368630720557848706836049902775258025404777880569352799081264405264513094834275587899991213851388451280658173555698204023763264007582200617255723864353247142659167978303674649017996529348182012228111132966398218528215412029127186300413751138876875597358611741378512998386380724588683727539405383812399748505331818871127893687094255851880562174657251085819301346650314607818893067544109782439396165030862400136509087133994226223503249280797275542046115871782496599820241019013127329399144189996557699913047242469129793610546643135307053019927441276411422647223395294881462373332123693790673608919678677742438185921318054978818716215987551509635435711213024488807644355903581597435097558980876923926399351129746118299477192263800298583482650358900826644062961915617682942642492625848717632679968409070216653546876122858567859225638257977336296627790462561147436828439631464682299985352193438530014455026146057448168928780229678799005428586910884087123891767083242887743963580237808527092756678752890840734018396254495856529444192829352948522763095705715855139439649169729288045239791004507876364612829669224831419253956000810574813950052520336205495303083277266155392644179560229779180853953582109138587694001415028549149497796515925814499128656297466790305961057701152964270193084473319153936855930130939829878173060233710039305396710002117379331995984036206419678646666796729242358548512270199749455676328159088135459770249223786245942649753107895720984899934991138000623893502537842285992925185697628883295565920346705046667281356042061843462310406021250262794608603825970613534524848613993698488531825349056259236516497965405872052812511795594404937965944186429469564904909590283791344046814867122721408545279616728202900516467002596387904514656508308365925571308138040556396270714975703612068031985534063569518975827413721824701295045958116596788880650830834746394859670983345421041662243855796362567158753557922582762079666610834860871534138226916271002826577871713267079987671901793337184557804913377317928487282453681574265895402994473638347650040081244745071453450023967414525238276098272567505389567019161790018504062040984712812996973232589406494674019881370777603755920485948423766521223185659511141154254660312722451503147945270803397335995483293743083480040090243100382571227511910322096982426992372509238829364880270837655830065638232387949257042142356325761460924239313869670161725483436220863075360706423586240222996500784873345874090234513106282317740307766325613342065770084823783746931691593620169785942896016024330083591963721633975852758780354130248525900337356251414882574746440296362706926835867786658072887917524083851165405176177817275938302382814457741114805331284332937543674309376054256067868144824502918375489409076906159577411328426890649405995442956070528331380781323947431949651406975480738236161138335913900010986244079148133856100175285825669608416725148161920019139438332612937177374583876985328150946140123199206830644780597301477381658058400754687122477359384499470418859574455577299591787287631794388462657443154436817799886627589289441965415671251774799559291188693877938193333180785831249738393478514879342693265819205956930981352193782633535552327769065073058018886629798620381783941008671159279319652228474271564163748243701884197761792338304092670293954936087344025154738869401829792764173023150610544539289208522722266857522159929988057684170215681099612540166013780579515754478703793301553256365966098391811192350389205794203421287579891881887738106312273183192949236284016280634431071328811098099121752710611922284826747910594300216626833433034592361226071689924158437154967828263229240322328105961802451388627514199610410584496805411058094536093515567390518407731932373798805784917047804992005472882645316070368066108627373999062282784985939547605244943825401780065133142598297272956066417184564196549804025907408801708309902761161568384133590650870893496422219637339536793062888013419232196665344189257550956575284854195561851351852299550692680065781600987795930771805792555496767021802118849303996202127993200587798115071554675693868322032758704692003692390302278407807695327456750220675470003283677589423066342900069564517815085706132891363794004759119491384520309917642196464913355496906746319205901735424793421738094833587523551924232468635307605669377229242536182792438576414571399908686622239245661927847579096199177103611335722763092018640323805942696468922905161323951089098250021492989862646708679298890154446193899250322174952518773618047541725197391954651731826806436799276746634745195615254019862771875297603676916435941512538717726878936973466537042819361591132387653039184675021946180422392016479511964597250040117882187352444352633466807913718263141074270009498559802732584789109374161981003588541572799386750709793152461035821966653062303060004909056353076076125759355988768839022355002595585456588003768628697077248032430228884664740824463023690364507583806902478305340269488329516466643073515878717010442722777760762709717855892682199406166555797969991628458485141030801324113193443262332242699768910675341436249601919989616837552557332911878151319284356391961663820919443459647746157139302687151838267284662435974408539453503994024692791291961771663815242211690120794636729494396050343841283538699113971631837065742822963298857221055279555300091859155455190876907515124466375069236638441825610601292428661041096225733120801822631766833087677716781879272413032441174908640664533998859818771832077519408121587030963966592235423011726331745155821932635946393604990687335896881511707420009628811116553817256351893024663935133648986162314845154184085984681572071254240801559194453515554424499332191978600843074739862316435060623124065667738266593740311180071492840627307622563444510450140507591992114106670619415509459739182672701145248572421790756272583057603733066655614526149365300851795458222112461398156980667423229825137526380249684816141893105525527271831197171548217173069242960180892071033885639613539125513595046712753232195068492542119069840575631489298036047782205156028186317392469721127086467723530168562884127073830745650405678457000700999192281039177103100465331924913566571762057125224721965398118585096911126929555068791039374111883427036361376910673379653720230925766717425070850403827048581604377109232918201744797791308434672089402399332277448155013521206906806502671821235194228238147190131421796207569414412744512028243632810565225095557196137386294425007107269032339956226315226739246041256317160381411460640201958093417228519460792133750365977301251563194090498554945951095960427103427884544959748981763317088661012705762807398939821496921693160441941667858527153588537507924146855066097421708836166276219405502322948282854485726003314651879575169333401227828621307435188406501071514861035856946246666369261540146975014268733500555171976333109935223312749308985263157483110427294979087026903930701786509031093621751861877201582203241374384452716513887529298450221093852199438388862310762069732287203174576533739109358636014883973951883578509823342783242088990942036929086480434410496186823531130644820532918309700796603961386368106362249277747526091367315682295958104029425808456008235892273529970500860142795457819117113809375020094737697480247769885774267620121708714553737314869782744539415156758954725570618428333057998514719231304924388801672307656857412309676706838072654429088055573992039857349023790825492725238834649096084691312982909615205232661699710712287264074843066721760999298194606754798217452767851695971061383148653600389025097196752379241255015635738511996314147009728760750071818789494955605105009788388953112973156590664654299988022512398468466294262756513350351006015908573847243536176349886134980292743097077275394373867723089667003171413500677838085582662653099880518836606010618325832141670651141536403052635435835118929755135940061414260926693453345277987766584851973643350910468082791998856925303563719493069360718238061313720993470820818831000466524662573288017338556157687271775440274756019560187296809901068391259642358055711908225817761595948126793828761076879601812703499673177211134240364063919271137907194897450455988811811862470144591517406633333120976316900923955247433951049867618876211374562864613948680633497152100877500101145707495914190733610434107611013123541118108726255501445294317067647631113235095480430513249615322983337316399278188217118813373362059967751557144158613347881722782841303272925705442725342671459412556338466276562387566097980648841052375542705769172833295760516773132724130898341663831280143836693181299404490139942134979805327760162960329858170387106684205543896568858138172230521752505325751872068040733233470291238302602903255932578118004744037683165139407600387090649283165616983277522316243085604180179937274008729404875133416588047460818459251118468156599153668773764752988583826841882125801035840357935886536987176624722620450936919783770373260483213133217268525107764775967308105244236954494755998947204198978971259427722993532145942734771468890090301932137545545761506870095066902946702911660091998836739627195510744249245098596980985014514418348834872489409957564103034991041760110322286192254550353499238774188556094166536083406002379943123991753404755701952088096124153018652944187924651684000482032692859927241120021424509562582050570612723359860657503398992308348940509787911008305852545835188047596818654089393211096137568925568529270580903140620126419548972593078113455481267881198116338616757483178904984298898792744273265582038805003435524911689830790081799016636691899448050162535247342470546352582538193343870774133440841189533817870414388533813476873183383548364478393671472887670196487791433737715196058351687411865586733401034966689158692310555086545274910221307404997699475420371587934014457829239612349909802838749126853042464811776071470538650169268444238580732248803094772428983895041189643377975016030638677980347191216737057144205072354003225652184120512263002396252736100999523641490140122429801396577317163243680247063155283281362712848422090695194232419017711461208884237874582916651575630867175072098071280079715336131518636797409062486175889392772823016902197146270033756751487117600872192249453779227838354179355815761365222990285666367699152792644864901025305026000386687890859872717558499294389913746147749890657696883403427571908320330523335810243546006706119809698907783993251086113332849633756218169521622251610452669580860263885005182111283715272801618411532651353990124915724155954976679559386005458126760252612161829332476552589396050490503906889011767418338597888108345648629658415139548740075464429482702881542295720670953810293666012737071772087665487447359322677518421297971449203399011462255015304842720130770783288678622864910901645811566339735112322432974841330687888133563411730982099297165303796836942878178559940284539913483643897800781665271884001913328067002601453001420386620261080365791974017451276330190148917488215604104337311476769955540448949412134406420460436754130382941269548882716297617614897188792522526135194978104644408945844208619730268362894854394365850035690087785899545510783806255601312362284139846859761073827165823636035815907063327030328872713595168553743844065785961454976813963370457290452047678796428155720291512045488151705581669579462604507795976848409373393380792660013068998950112401270595908522745438657000076412358742896107853123193250842509418564962510858565304787827346068851377040785160541438797794499681322763653295278112539946908325433409841966771627979307889153853577832086589866691284259363335504690277444972681565848665014649374774322081142150312330350093407069704798853706730704077976400427688381724281770914174558393091871806541228119100238326993195715068693130830394514540258891020238051753606314479903312210208961689331896278117813662317695147442653799041127589615873147574416458507112330088690505150075376667696945174339329424666834818196946699689676180592651618322995742809922406948162605473162154574924189582094140519602242993754770220744397909358360235559711731243399276604393944084071221094398660940683393769589617175652111637462732834588395428601119183219770836893568887049072900176280921929563271359998563828955605152106246778049811459026641155585058596577925482153367201088078861160483595728845337151622874930434767754321554502368872626475043407920147906399106084332755869410309254481391867676289275751871594913687017051479939723200578606633300911799280306554967504680365018074454016343412697974984791586849499801436591698259389658047598091100575485118217020604672858854132813018621221751639417468155721959112611537264066030255579692920771515905237073462422403184134734541428413676425823033803722220252145672408850048768739179743090319773770725374691265324328856863706420820522532131400542491578567030185295191313741476713094018984725518093120603733842914168798057596358241084773908067866128280091142264146021749514715748081507584049522737248974746449668633731887948794200538893763372345755527367878255432033048115701077081264378510503602843859521831419766923950522695244162471327464303799746382094149846423157615789508682907699416448264057871085406315991767159440393195299106530280282933038116606375940252222132172293201649133687193364935155482942901316300433324003962399438430712181110697996216815397604069982433546381447968937064608004494341767942623008892093912387623505152349374129527849216319407270826056211658011117718917263527432124699888256483806368102207798380430058199681466841352214590348242978456080943751658575659495989348047271470800578775464633241230053206907365679263167023143551904104571309146305985893462315392469754838429932079003696175426946467384766851577089059881887964627190837248800259670040185963578147071969531595063343150885466067042553556658560873715719152615599564758898368222193083371640182355237682891467678868948090586812983100828387485921288222998308562719291971654452532610864628404840470406543899902774218655637697128483948752566120262041568230798755182604355830253144754641980678229392892864194820186341223314211700318455767621008156084066091144096686004369973853344326121999449152233350837208699332667983331177278865401530446789237039235051941381726787203747758894821372093980426369755645680338006425259683231858127136722932787930372300878799779531378287108967747735090409502678977001893203670611587938277374116173449897219408259543163343811006363165379701129396895313717299397438516000009374753324326133833980279521255838522610488970045138221925153210782264718013504797403861199836743588784475145537023919602475503525550929134579733964418087377334364258904697881174516259333522237445123519578819282737116061549347426666305068870852121435244354824584603440923530379830198112201175618490937501244163794494916075479609976787222508140185061710275490949028474745463471489124963515847854205487960633735793711007980032578635683602574490763633433032281405844385656756281997114162760887342805666454729363943255728680924920082337512108455650241673845337137782203891436359319587084817496245903671757532132416192822637607038160376658846076925148860819456600885986530855456379504526472226460593699182776011513910064886440521962661834963298036562679638849835126235366644167887196771627758662478490866233423836886983865981177965452492841273443443907668354135800582215904509209841660665192003730048015687869545868286923415724762676446230804282941137784584466822472141688749779115584800877048707854869498656355184074887116035465959198342451403176651968427848484159333764572335099234475421241430638197396852639039647658160580835139670953113185986037240223435103762796178803124716963795273021418307412024581696561499601995209934644532786010698677439545072976550639766112849629352780432711457840388241738913999184087003911920525600505973890266492451601485212020364589167542513576049924202385305541401367367755255378507320452897042225503938654213284346613984421296533170349063994412972318451809564203829578032843429919186537999482497273526107072315918964919621576483613245522288606515975258068611344278789672892730950958888185090134528618312797206862099909210617729698446709080655145150962222431522905376326650459790744472287616815107463102115386886668838998007335142279807898278721085622867705432912260599482950891722674391333758822345004808926833001102516514416344022805716701242984451483752358248149461234406295329255501031587143992696191778088075227057964740034804071678506859527962332965322621271362013803834348827182021127049756427210816643732758462893674486425317211473418702225298333036077596062343407563163994135473453220735044984556515640550402933968368000715152257303915219776567746742495169187833687894836053148229361283807528686142737359402931803836929490079935551036065455901994347054440265062122613299488329488434768125784603941531155873094683280489410363362091804491646913096089161049411446281512585383140024849311791267339496671551932747666434290761511621197175849261925604776343798369031385629433769554118277861944511225235740067711556931811557290796245455205739701271678563299304837516781170448135202368319965617235455962822946811844289594712023451516363805592481138594534728476663915859411809668912642467826717311274412990813038563353857838882241570547043842112404401520309853849171680598814978940866892525637227900516267212709575165847818388083480419435985849262228430943122829864612964360320843148155704127222415418170654378986234636210834664555440529606133205795098603178965273024560087845149844145363476951559470375489218856605760538070676546979099958480653607017950808500803760334218828758144424827261632131749384056585260397352937194098945223750567003803251571010494364711276241839057816072490277413465528009411375929032123827894774123048061918369993160863687898996747627703336904570701896020750143910944669472313566195210655820817611193555292257504568982231318548873821653417318769020056244735469335633238160212269041246514218735949698474054718674898195243676813237690495898945064453682853129801465708914814325383334623800861711452302664550008534517531517343687017153016015315242320981145946605358079515668402862720543384081563141329462022424524929796002130423898375180079370643749136128538339453666068618120113193956257100769277453182378496652594499858537342307769551377282131687180493711936116112029018212052839516017543911445791423612071638006831166692390885066870205664666448489927409479270217346194795226131009113676165319335396117152921666614534967493973300509834072302129181393162905793325953561225479328054763272195641884396615043205429171506588005137408353897188905410957028496829757148516677136731585876210944304176895771408963489125838355252483328305595731092814454638631174687385683112169704065373436444468518134061796866562923618091147144383458849335160497279609909458713185264957034178068664294090402626523795844098432884770988680802810750424088984335892783625794781937042430482071850197776650519741210206172399566509284782657003610885630733094569512904747542694899057142998106221215930588522923331478220094027303962042194770866444684761315672005514654124110975956008579358626482230711459481273097760127548626783342208091994564281571905718378715100990572844965109995569154575166739701122746624210876785080131280921225518484030084498930696069854969959070380033975889628147864806211502935890020952225858119548331068280705575588015232715194929474654629310429898680381085777576380888158446828548639984760762115972360783074467546085783035479411186721383978965857147582901502715080477942161427592331139402349625078616648379219719110269609217831768304476751829038698191413638071053776051301935289549070073561106939517767801801857963327954176038448201741971130488873956884159107162113836894728878847457610920133616895187730675675459145573152215749284736576717971847573312362009125802850592112054012474125482431486897817401348369934604225440833648598518006513798924829619757391476160141028562021498984982316769463885619458571817535316218847056289126616725974167737730540347250779792658264376264967530962105556186272049333853636443130969789122850270340864695230941093075094228701855380929954420333928793307501671760746203255513978368559291611397482023398602237743573029658652737924518335209939853951454007814036554284710933067988701340280316266049016505704839473095658571740733877305014653200263091070182027113297271205230504401068618168373780398661804776423123856225464985815097204380061098611961229941522517815354754070504749349069151379698319661358028415293413339999485683322786602083083189358755435927046651269233333776102666151280688753295300545266461454973272556003056659776780741450730112495890955044684012907603633139914652000083907456636579598096195406426712131816822472792592620041698336255973339917101456370901042794822905389144153764946016241587956113907824441412951089300354037352940979266407610057961220808080309440428556633415303101318536291040002462179046138435188514363655955942190539841193692726065661878793569526801908948426433822084293272629464183128720360241601747364676307552500513738209365673862508784697280126432887774229563257404685001735492737832000780575138639226478475428394011866637794239026848151107413768313443845666748580943620662423119471336903343333553824731067160446079031291366026477463219015293854113955096691012585067427188710717657298440795415303980879330487902022292731941406341923437951142691028459579137491834647910033565225743230526121098384445972075789705529631079351524390971620882237692122465837826726275843894716046007526917547572881905996503291744611176435546512696206654521037401473668390240034476908497971796256272166764823256218598612965375288682472517348459939210388077983298339485202515091251637895081942067113187247584702458991860213143127181871023551952561595938619008920710581016575710144088589695329800553914224839092111448328587284312295405541003984709616793927228485633441749579794933465608351873106774416438826938074614992406468232311099776623854426911380976485664951694599238069110729643373265202464931692756563770331227841421150157564747741613707614129058242008801056855737657982001310829695319115477526029262128844939479603348023986724880236244912212170121717907657225293422397862468092560942190105853512352539265709770991454720171862048724436509815925029411597991856828231424014025378209517609466439930879099238366112543430261195341049197098866555303893546213222786526383776431514097670512140924469879150905631692183589898437005914148310885174163134820575348649468114115198351543516841646165296587033127680310084939013537533682528623413770824212296649356021203061599281224808323575755595262314934421184971163852531363619366869524812389563900537885427857651647560824092016369670711998429929992088814690974491019204537732761021487297143003748921829818739682367115254528696193674432136022269428052924136646426183394165952593255868891762508020497823189248789946827776496477697575307983180254596178861869598083701033601641386687599866283178838159916256663034866764019513374437190688844229222745545186693940771488093115851281217171548995378724153069820149999048611634905563889294119392312839636013295538804230417522261220191111269713601860245703051144311532711125447217210389097441415722404852679520287448635208880662665853248590914889984203644116310275087274575559712607622783587423584899519923019438560438470020621263737591185592603397456707614019388949544626836509509708120486368221301966689174438012994800976166619016232175566460646788691979396874870846480108828325940938620078943689043394179615366731981806708428781993720553872977058049032888756648520187218499358090545347669686953889386105550591391328624257723963065626005020273752673100697194762012472399880497628224443272699185833950403736664027298712507556567286991317566423642562484511829394047174296786989985204530997321088385675665725257199666959845083657218931083167624897301675002743569665805853473652419165496382582906247786267638461217447237922430094706666932438267705880476685525041748607218092484965323392089724704362988998233682921753758924446264019051275546891441859441703930134374493179536236356011527179754144523948911692743449113176292042353821269795399183714584220740720872773220677301564050969909952826245804290899037336238425179787620283059587979408196088644144933080479408076364406729416560168812271097628469670746662561773465727906896805858272709280728660843113006581273868696601304582285494702801905194691778850467536458149178816466621714684434918674700170636801921777243774036946947565817060409386415640805728647654432127799932122478342233692377213644986645995884830893377034179394597493964466871946869961656169568634610259364885211890530947241345874010312447209678324642368560280729369479903808316642744074835524348467340989638769425188420776743431475051429154324340337634174983847234891630940152156741283995866310300919137844592535516972531321464822229521892697843521734267967004294241248016247990134374503793690374709016618802438881100056712050458158796158590843913555724826055746862466796045540505419486299460152035097043958718237817671926839478231805053584012450625564401149028294479241413304517293724758835653685088543246976203513726898885868241483273650810489342188287326939464291733369356218892014019655845418987231769437805527924123365799664852473204100921016726198789335933490465339847314765822389925033967990048025631700451312496977861398572749941787642639934796196253498649466519623077477493295223983761133620540322911934519695086156631366705452235297103706114664676186770713000327523940131947616667665651544290151233791347100977810157426864541268490075050380101384901446179156077349174733459588588807366286568893600269003203829101630692829017515483467707634631427409598846259715947000343401766664400346819984444880180938757395305167997449280599807429505144231475777672966890835300394738005805314122354081586946216825075066021376773723770641496876976884563095055202083273502406345691701749097753257201000694986778305679079764803034091327789983103790627906184699029974716456955303040751072553184021628505207497872884462877355563576177441100267656879206308185011772346229924927478324831196254396931096917726769375730876571590908532668443773353142048572818132654321691712243352452755564188352867289566131142628959937016990007044480523871500584267739049901405581987783122203157029963243316574211987390007669509148558879040671421312631014161805182296647866775909194352780243417798925555178106607723407869223303664413367811665122384274489512547911134371973911896754274804831141065961333576916637530344825478053246694845482396031666150212725018280677781473488980525941922377029651383477630767575445396953796817206508609988019669903323108662310984920018737712617340225299787708461461141374873498885891637534394325454118186212762102148784879456551354098082489258549209352125544844401726033744797408160908463939228701732134682106511113585695992382942274762328964473137716857553544524452266161657727088851073833187475239107118084543245791878269683761443230010360829830252483830434876602054869822480318587661884419464787089968549190525494736835472878287898316216037097003640309227829630688861010188097722485205799841121204409777952113632132733114048271739609499839628648830011957124994896520011151436134430718561733934012423724070560306056037620607967424062891086119007153844486361214106646424251292651539790088806001978054214558368553653454424065060936052254050853204819044222481862090628483653222297297057727316295059744022922635350873984282424178267289030844402237438383873516925575469132445818159228617325123521933000416306683809794369150258013193700535132580883205358159218946345012423083025829420770787370661016381068671094154063333014388776599938734564087132319877582037725849264854064785280740785403528770044915711057700331889694727390720511208041171292340500132352560359670494544961260603169514428240411753141118723308029167828884143338521534591314242151882774279495365877900994080583258078917277441252413710357970354441274800361860726710473536378705753696232860030393327373613902086534667058735974069960934970222044571036286952885666708157029756404848332292806552448262005183349231728001363478814730191584987232794069668292607187278130815514246606683366830568770006155671436954945114517757059307037252983298181087591877835744791680908971168226460031088136980930447020753121277195169131258490862747149736454960736416341948963757374343187375384046027787356682666315275130865925445404917917183733034199302983343720676512165922487968567972184286652329355276029986458046079340985724582090574135902370606176452149723507351687280177841868700495891205224337004905173706992056176263875991656117430593419056080145265297275530698583811579782781519790402489541153476715784771474464606204719321454668270041673326331932066634754833873075014415174722729488710770549832933610602277550807145808465602098728996339584367874652045474137597640530232983935413857520556661359769273465255748285669848341876894716771627625380319469951424287069962144376177323141758777725290182875668605371359726478000250538946236426580217840630010962990993412731400483731508913013777441670220774229116163203227836373635130297195798894835452888830547346915652020827370482920799164446475453633465860149457058964492728184777901604654713736737701409168545655921893765914566100397391002455775227806013967577184628999646048807533374711153305466456724750625436470368367839202871136366733019594120520773628522091684302887874600258758292189506313505255410953469776833721441726672305092404886002597114989049540546363662138250908816220049018152910092309376521170119262145732780188912172906353114894546536774208247598326176021853844994469321815693688133632232309694139577126253633507571006404578415269617138260653157512653286029790751219438882767239417475950242917403039450891519725022128416373642033898189767505262330113106449018006127007072945290563513025133685191420118006278235704528823046510293371742202770153717136873143688801154440802809770905949985994268480623341118609999649406977410655677724709510059499625684985263670771177630105726720325372544200768131955102552643321524219928138312963739607771977548557889259862682257255873571300172846254044031461469591837278796907553974839303488827504962725721161796828420300401059947847999954158111239394554339138601077737272644170627542692595568282693718871055008169319939887594034510400718026201081388257446299149708353362107671969072391453722876878771714199544016133094785289908641568220272015532583836401909297737703752470389065579379520395833154103798108495833602644540965185649766069705533094221421200642948885215900947807153377911987518239709613985318245447582735547126642415026797902810429461105179589156149842770342275548843769633902075124860967609124487257197478964099258180604222818017840320612593453197473979639351805266756254870617459688891157869303685131196059983678826474231928123133932862118804301110662118707785485362033625394093384156984778590619120877031670180843062995017353005743332268672791085213110068256384604811127925163891267433221302263981081754801797729795311605509671041165014816295110445468114424801842076429576976051920892261997562983247643626015266065748747242497925920069912664830251042409530683014669131636326556632945174714490917754468793733043252924050843038578793350159129847656718211743724883520029822223664402716416301240381119464957835523086604029485149809405349467711840549261978500271011833714972147623151753087320100423547459576205903149294463965219049864254050085360414443599142877643937844068980439120561393882106336364186866286998607313774226634020807440320373140627932977908299665223682928962261573893825947201012581824850755775153020606808498968066910154784823809432234847949709591810679656204279506539208414203257589726389330160355335150125731496852410123502495209483562220400635480963079737417969348220650979874815389720922664218006279787351705896562272231451188522947713025544106359833962663383785584950734830025967092251868405531014360439256719434037888309140405558850948989482868657905808734419859167999967155574230611707652359084098127775679932578669982847155442219486020737692372585255639284662253113242134621230445118847208092096446397266741410917945437424726150805547999770600504903074209064140105492608540128416773606039313526990580742775868872154964102453682346357365263786552149385886324143763438271263746167425734806601885187512354973411922867630119242758525875881936017202171538502536231322576869750275565005437409386996499290388148120762141820344738952662462754201658330946438944159881649259048540436450730171099771755529869897850139587594017486538151046936999342879834101041241303232479511825140485705379776463904061409129729503475319057533506606552153776284715695301143541467621299659750695331859683275837613942597618912687679091946296856988830953781339247024856876837382166686598712984151845003936556327236797734680178123081150302066015518353535672121868952037628742593963983295857551637292527508330358953593220455408500973095630310899189636188766602516788058531313752887405877709451672764207753623791732269448938641480080840669360928237034467801508421459455712961277694758147421218474137245130822645121549334382983364953879755726817015898274725952516911951219522276040485134878638150025966785177207860417337252718033948552389792876124424095941377581941397507226850300042291678005931617073085223335759125462375330551269438290624374440412146940484908287099887803715595198414371028114166457814045023811875339870938352425790374082469648768088737390108246665190838421718348357243836920395559754441204727259540497035018382596305328161391403759746387017531342288217666682513651653713219824620927208972292904832778315953534119050680768209300510072865629301346179729111470406455468939731153494605846328092877702553856478139874589773601976442346102146382073443251027263262907482105570653823747396264758143134021383345214617900187688911270396437655084389319921565334423624659311178883062270288998410165188169684039339671734093946086272885249346696495493502197671803866241953792813622485486198074072366266048561775632370198607881802453069133516887334868857449912989440427791346020416651494665256544796819609898606548362083217856284816714123726356788582731197053750391058157725849960873938054685261312149924153174827251031109052176253188327477073919747783665189408396642105686124997740213017010343339697284144540361049744188077539973955414188387716384117418353627539522628462339089358758169544332356283231722716542474618726539647446084713796160783863836739505387210677641689993076434941892600901172329570042613513910653206344516149523519112496979583590604755003430218881119695544631187126469688426775102917805310454189293198977402318545988641190043755076311638539255056171185937404122215555181701694645383266634744593432069151717544919204967526608573285022644135509294990716762766711416409995359740775700877618003570319386972980910037076089040987650403098779992431031958170931705903267171608692084209852311674561181216356927728268617561340787791537082214661110937884572284029673289401787789312297212081274987615666927109305353440064845763979808353767723307676347643268784146285669987798557716182756576787038221883577826396062184632192339249281133244860697043240370386868698355142078742613131421107478183467217289810988889822201752370421845667464057772892125207520162905169929895495864549977028232419082249616840600481799767670371069656783723353453863320431409092658171433387946465010316954334673796227965829674454649737340746805470605441828515961178037944431185725032026962702109682116877895877619519225950226429377641321529076857565954359116000632167666158284916838337842812657648521566446285039203228215766317108981215829468863100240927617283642531442371774841020080664386065092252865074415218614428422249960008639362632807231206649431230017293838750609082485370197202450177005734981294801317168874870487792113133974053753594406818588826403485368169722292005000179115612053164025563025516467437079067672687912220235755714310738767368914189927844768850130643266283385407892314155015921908142888208435461089228665493135925914696114968749332677299052109023522683364547741769111307493321049847645785399673502604290591954160313430095689984318739862444094144797589965567190275311899978647972530178213035361228097630372992868392949923055477621050084470808253401977473589213714413787339707447502790656004453190253295053118526525902668596714864524813665516662802359281111053814689940646087887776905717761688861862085566181187208503887609127699885323209964350055205294955760108479752062736066040981996518606823973207598806673517083407481530132980235309029423872233745682558766291832788515520721794300043457248925999068617019475064519798874501186407881381171234143551222427043254936682630429508273873280275967676561000769595313896772243738429166711489672967489638922816153637265637906011979286367816354599125012705633609366622466902704006322894802421312221700159764631044834710069849058932081934290448245881174599772041610054083115087701368265275275123559104469891443221421200301686828210443588563405116732280661040800149670992825679912250026114668509053509198666739528574228969862389627044916507251512291625726623616408409435224135026892816736140012709807222141381766951593585149898852150606388405339137410218760568591919248102620312674457327694344487691890282211389683911556245491614468622227059602328173080046959461164610926560816078104357235313333159916425899990656679205007923221065482765858574264100202531077762898345704205396528050850667800789803236581923275279803586111912891280521277890418095294502569008464524553486800074982644038215372810953928587384696665518150070192394463303957766873912408162390889811255210885656559850159262233090668935336459644980386460753536379857571065796371699105072341072286666784428946938011291184492641548066406567002246462922348053179140318988984389865332963097877162217134396353006948718931976662877465707798960426980090061638887521976515674601467227555992258039688951884982419513369539094933067073646116728913552034568418554431210397300905004818259340676796822585969144989568962052103872006865199120996540832294392134499540839005752776199510344848029949511764862209823582346162467120685290078453147885013514801330265862423147344325686660139226667623202087086207521294885193708237800178057931569690902833949051734568550372157197026361202793876389183798835811847049534854732587844119975171384528787357449482944747803903979713691582529058920262489431254204333369770335961844376129032708002020440549297352395992901752149076096679970406883043524263504332268995449870302962497565203038572836850344816943247797772693915770985123225441952393006887293335324295597373359870326885798728633721387277113827657805664599349348905251524689570773387374059615093347233893335581849277506347349965844894334720344338028121674833024158280959136337167827151421110897801983193917096978774852457815708375348864285988803421597701491637345066079756013073510991541772611122389692841258020068692151127265071313673704933241400137819468582155530376988984986286616452368750751028163487805885354235879695280936226157422140031206085450989729570433381625838639819249318759085473186725425862025995848430518194939935236021720919359453973510741638828296799117437201361543529180519485540416653558648078828366563763469779803967984501156998644099752871849940669535624244989874367352944127306606291196612270505806804995444056543246632801000881254150457007280031268993628957358553186002993550493057937227562298030046293763521272028653742466925947070238008882893795381190365769717499729472209348791294616622505817264204950023444529020210328200753486210831227984844800071307116334801848500393524334204953458364544229285501485140950512675592598561503334980815801658716377379681170320414806164189894274963654279941046512987821556781882978677868794572259424852399957740074989408634099946793055655489080080180397641881374807734442739754210928985208662767761428012750868196247791814661344266561942340937957557434295000163125139077526565312890659825142408597539872535978738860755542922673545343828281143919443135541834351462547826938844164260830958144853969864824015339413391264841978891361204895638268945565435877150244849458282706760996485278529250993359715930584243921197874477564117762406835867916875447127985674762991467878208548960556596666339545595398848189652265161964433928333208253665779401257119405987894908732491159606137167195882443145055090133374549783938496024950846036970697986722503844804994644239023229294316264570877055846187921288095041374914068695312391411798634334727612573359965791365536442015626344442809324443941203260987589188626664423715734611358106310019541473575981279969470154773821111160812856089238571453836808951513681039955117186829114347696310418092475902727618549719494180143871237893727637232412994362979097292110217467944447179639659784614739367425430344972415502414098562754266081814162899274254249665235014750414343767831633298866569972203606515211002604850122110968291388729522476593037272531227776199451906470083760863618907628660847701636241333272120686712174977869628004843786775906945650515200479626183005024117582151756912141250320403026684368397037288764376764636552508722556306860274997304501940534719382586003620962967446020327924729641096319972624156056607760926872308479904012175765738886667632841697209616150870538514926454420567947829011098544577713216382385845132416929634941164821164577456812643104721763521584760605420173084092513255689111000409644170507127858346253847712626992215697357808598962020658644614765818029523948371389328112694238014807495947725276815125215238972175169865522507102388008107914957303303804784839780354291489039677081112176324601812820018652733667620139967414727934502046333215148711548782345859717696975636537017826936513176835035613924239841619296250317740180221269367878964204156074082188197143073998013344424990922513166451923645370919848337071015952754189991474765919727731898136249535996699911851926146633876455053968939659246182288980654826785110313168698652865660553071233501443542045722060896079353002236404010340867220641143160467661184790335527799244323997847517940322139864830154966958275427610039353394357728057334299759306851491655453368567726571665620144864569527057981413472246139890327716870807731800947099647295640945388467394256382952823678996527499248885113780475537361897081393299849184236854520527688405584522076784867859483877235224973396688890891575102443535835159460445864409128760843654600383748110708877521951633603795894998437783671463769103534246746396334798833484114113826094027516024902899852626029689505174285542218482183863579498634575360702435798913120718861009130630636561340341346379313056510914426185779938111888206066590695227309760846049043877772359468486778515631998267132915949934993418165714028802597862791963668541420932313119310513781887663303261789255965201003500000217267957999451490013592424365434377477048410817731783642489253522586912105806381199140325494627536600404875168696596695967355853442903189858284641444939915995558715082243070206466036043951409835256705290591108031707426112819096264135302428450331797824679326574335099360948724482109133439850181627851878537972108573296369319946414286526080798780804323954254846143933184918938961059469002639007018687671458562350834931131257902999972896354399890531669520379384985157317955231589832076853070485515264225394274777495889135602006756606101112411327336833203536642512957437375506894539804757214700954423708111200749271249733221815235896759818661095293815124993304457198876844367762666775177783110457538310682897630536997562493466171592756627973108252896620505162793824672706203261378048839343309020970598497731344828460238431313147510811984879534286670746401229905160626476135087111509028076402200966174977094895547817019032898203817496953927765942748540649170426074908460411570464108390045467091031513183273114685135041589491817061810488256193258064730087431922094484647844931918282251253937416624179504707247375243522761277742977238308432297999451145568406005492902166847632540600629611910943478984269247362704280151147882834048445167107628197466139425892130779195078183874904403398055970949216661600254194272404563476601850364096447788296113760344221929559548162827047094254851441022200267106663912991424028810440661264443459911333143851406126112492830639894854867389226427384100365870031779221913536597583569616014970617930497274082355987499204542903810259498808145024651542183315800201001480473011910122755142776991069876009423837792643994304937864460593496678171088691578297715924554445906626646409309051057490538555164216213668965112835340407893251358106192206175259437232136465718798846373098008489471429063549333473843868028675219188360012881080723772798113513215971422937497045693865806983064863365680653029871306252468700340020411967234081044992716609440740044481073847661233057073359125275036342983712742321249603277503395683086382847815651580380887873498777616474089416188509116844535816676761821192534398940040327309803385191911650761023936790029659394587939344937919231283841411459025384420684045951590579234423231000847842666080687480193596294476355401970315727279136310685640064917604569602133267112692132995455563437383159162526044739922263554887093753797893078082283324109781635909844038020904386543975334451290542698805777908258554720265270136100819825894145432479864665234285344741377426010224872422766909240775479491988640850626720825739817384402631621408748560266315258102630427599104944166316474673109448916183431379593815302463335922898280554181977751129107287320489804591026689358177831147181790575662154352127923307707094302659822753779571811618053268452386885895768820162568296266783079003900327306154178422742009185374011874025994999814239418208039424735019685874818805425261775877864059436122198078529396324833409966619730513721448702135961181163930890816801563514116780602158860562605333153974644981530925710143722564468087323664484551089705062429491533731421867805224831977472145689828873150791341297376008071976377193162431485002050982524481128109487179435141430865772385496760490442303588741265537558289376211026649493365650889503573757027616130424859979132763255466013974680656323864003409668916225328070183567430478201778012252944288519607170838072047019043279920127329744437636052369237156007774006294433303719908208146320620843908586782008309102560868636032095655158764635019203349847286824867448114779957997226910293418889223071647924104227899867539428125565261685365786633530831274607458008211078372369547327613765722470238882095502184269198063977261281017168590641787812688004078653601024485742397321757659036006463480056896866415406893800881509495175504754339169102177693130437460055965794384566361683526452209324879591220568795076128075580215193405022231304222350961389774593496894653437797268853097778633860620612279896900566257175061178765397458869917303619894792599568361929864699092289938791763146906359006055602521442097662904166871446287688110601947459671142101540071300808345051550666126299233101865954790278160803011148321144083123042815980660364727592128839443747250542497467907380187620568628029226948455324640540386725103039952748294764720630986312659001359653345078568263376027979535000809827056153082876796516746124662114973591786848515341063878323052057529703829638739866986259360400759444724776178569014263483966125061511542384771706412530249011862297551052229175694721805000662376485141268838009106704323903520886050818942501087717831087935154345505074803999665409594205337329019533183218693037124832783618941738861211570907972526341964324801695891206076476628992381732410063845435225171780396483817034337409920639617291185203888721945083296740052878239475171714960636346793365312935891888589869580612421167709995886610333133191936343735382395579211673056144699818005447862692107298236589749870951435818250671364097632729193413143045575137715911233121634505111502906043844615130467158263191743973101238650386762474186967557024097578491074446228356968620670111849427815064387231438067910202425428464672584262701184207436082486175867430004885150438397859812044407570027561412236143212612671774784150264360861163869014273869093696964828571575158770106390280866185462903336497971996249254082822981702311263970240313502876556772694370175555774810954919261033992791848824852327326892337921330264605264126227883976082150535399854594044804406638052838535347891526419446473550192160308576943521936747118861441387792417747825730387521909537943053277346644254343661258280903163544673324602461667795980815176900959778576904377702373883092959095247484058650727438507669523164117665096217260765977592112090599662285483969530657153321204346992106550698290599786799177745263462722392053535591013662453346736161567638387212431960195319559103526989225508615507596236295931449641309192308179464640289796292109562387570317421916292824053453617611026875371567285319389001686653511454426991193446193442341600346883703859582156622242805050226345449979646802779057567225240855000675230877686212208071450265811336974840410699467187831085981696168308076659151477424773697041840878784860131908713560746979439114284828785570197069971145210639172305479585554688514905482363263168946273940821564627228218883242430410341154841790886754582215830195976420079250862348729423127252807680580517235549214140161879001073141970746055119571618069709708196795809577747590356260869671370298528238367655269524031546616999777980153345387224359760362100567609707217759781355283576933023372953890048904765518265610094696834206267809454432882965247699102961898351377415489033683496449831601260437865454511659567692317644372527615108953813962457663895967039590368715577882072089763966130513405136060304626689453886140146801267810421888032623371904225732271921247419056927505662226106271113964136120284858819169407620342493016738041752304780765754257781511233957635728907662772437170759928521071513403382235077922848715160774698186812382841061889480457650487675885100404721854183995195891093304389470808637506397373960939960382474550484090800624798711870971057741666322112001731884265012881621428091748799726139040178187688888866847425910400195154016024656261250759813646017513091758015879651390639485988751889865092200988242769578060433023055437848902670594082041151708673326749125664490317382366723618494915718395106675783404716995601945061929755871093125483786701062074422558927178108618305208823477782937025833755770450649085632966336811040424418996740392202433151502480054315908607854734500050745602395206212999846163607407530276479350418591890004080594231373815255609183428941058607786304444283310555217121467032691006874409604497978148691899968423175231209672646146796369232827935151173283149762231081138310640941104513198189660976142246630646570536135672442207556121555854361164678278028328475426977685876686344160793041840868833862157874613448321820347247449696715027934999858159585553092216104746976579543809487691206462106346253666930309878470616464913828157113068907134289757614243266853233325003402587446811141075042649538551855539733273781892984989976041931832363918438111481196788936679344901072315874237610917685407336844268948923518788896846648694901918853555570935225020627877150870100272809233364453577225736146569994034009978693474700523812390605609885437870317444838181383927193279376043499184439000162346412793796654543856801845781106603896054368380236202448636207568712219543216883049072338618678165420279678831679543399260074846322828973374436126258205205554603309730926906684695105132985211123458879576875927002801857801376377013797335039012930184438697277164814454445801763077903949644515417082586803477874921875093082796659032139190361726200110420923656694562485415462152981278466124260966358386683108109344262710426176060413668545228266875381194781309472485263310936140044698645923415454693404733969562016633441206215260093186515394795303143841586471321855410778448209374416519553431840557738229159254539032715254006964384959283448067819820258901400074968795120416452749353215983499239199750008539577568611222385449478501346137497314422303040055846227675194367545912582372659822404414192757024047585887019690984322685919653326407479567913969141177578991919418799487411566701925962211365646168412610116986970699673614182998655503166475339640534910176243688507173607011757474534756018941989346683454580298632340929213778607803549596381141790162280256717075866333754827809052839337322599013601182609219466834098581310338226002796021075788328714114305202447465527560988414779282259300304765008267266739521650519939637163553454280606949194995644060010776585774530747979136096493589569771646802075480782917158619381736219385604151659609703244506407302334090588914275322377133266818296866472217146088537951832761093852678441819269634578099446003633387321339591701109017458679330188386824807612751274965505206246192575421196575993780425637241016034855765247837740016901833396754910306599567354235619611686262572495151589399283410808074835417973351663966470521933908820328149608753241206430131415805474910044234123294242056909575249379779063286526895146381555195360105659473338446016311422280308907651461702596102688302107034802201721449300886239870024233674252839149641505326173326731434601638467153456441753600967389825593566998576037046990014138570379314965914731446694849434624530656624853091283173045014439426329183729338954482768496604295532638676498567955777571650036338906091932549492741220956355679966159555307182958550160215674075084747274219673344497926153167325351481057164612904729513102342940884560356352859059230595002610168745680361185881482978017988432050281412739026167495251066207080858268388602331005679079438193859363978788327356137769167135352141003868177177160859415060728254098199172684809635454494326115680454534312391918976531219629082492007884707373035181518846985179133798558687887798009083870251278240972323570571090580139256124646168668400238251686051634778107823947030864387864542554915560045863177192317737534190049046666210605834292776041294024360155315459403852172830515334818111143025070216810974755435048469396709706150612562221150198316068655005055325359367836250269714803105755107744613252548037306597070794231478283104885513509381271721195664966312423679654285691070957167042661669541890239317658970215406617389359963389159000068951466346785992987703793090286282258351770581493352239974489053748836326099015595285942106979229341396168782294069805032864722645495849458540064643396926590676426759368478450150681874736625862642511944693337457659158371114014667128494071037757708059581301539789239308784484403976181488670700769481171126157502036763298277347773287552233630075026375921561300118268171564742983258159679872672524929100311990464425662673371739688660569494929191235027886101208792855178404149215090985941551816947522019387676550465996666596784718791146614567117595780112391591491007562126693784472131966098622367356533476711716319062858532440442181271139338126889616265435016950392424050656734726369795730720631232065668303459410686192858466564903663502044140459589986142094113436472048940302690450020146560905748928470494816650898395651492345003070898692443365083169921969498067369668978642932960655307521008552688356707051991544941837540998468366169045156799031096894434112015202087955336269969500992157390438641845743371207342027800311756653384234310251383732935563001827090147313533183896212852992479542923499318945023737946661550228973677109343294951173365637472592012311837623822547954090872036392487524287032499702296639530193146048535461757611715449160392235890347716335823055895412069515515680374005947962679871477090124598681732221357172352554488746415771246807192254853217618890908693211230259423277974983892649718230822358092983864202341001402342122232368387420453122772255837558516746760475328856291727168041550662741183566484805036747982463278961768393032532105384714972432145177037077828087296527405513559696352319399229934028287361559991724670244776511341625778057440917360532773568651477318686668189452368998020863382170705430902068087797222695911384595040908690548803101602897486174679578807897054303692491839509000788458798012027486612760752226815501943971835879913520400762444250103329363632763856532247555873682248766192113969243441636889521265743410380333246142851293530653023478032760034641757023384428149359398909499147737728835274450787949546306338498765655872780155477753373137800910109578836363919392389495484386889159123551144995801421973503611664059097858018485743367025531404222734198136039360674600879104870747524987267245990329492021351836208404770066323998957156068381309735130366012716372771431985143793791930066296861606627120518408148717226536988186177049553714768383188375719346948872049777304055404764766833006715733525287522016650608413304721305725496240519704423623973874754059910310895800031980987509480961661397106855642259717840722040356251437704880542014909495649633372847361613370932597881196940818346551577409716261091016633633795618462226910608131656122803698295119348752794555579768831396712059310488773825199682682376616448002194653661983019567340796590535159726118102404198403911163550665997637314665386909639942578470721183348719652751353989791761030637218321978244242004456863069128416005708036894690505364967915277893720070434950083302296413923843229715918583460446896405610388906968439176647131201419047549098152638808604772390771322811380308210673632992019882142886730545727151766753948732381086263005160506712994063932454949369274985434800567865539297628763825345140842134769009111206820548966052693138057838830853378380504930504278116743336724617787661335980037285419313191138713980440801146477359146202023484181796334643011728656617353663518527468667852831607271100066229265036817484417216874030561415151942395240205003940113261205184589799659828710530601116186477085248757329042903889124160219457186762936901959902311159388866159729732397529988580441324058666177245050929660591234349642487390929631442422242880208809508476282616361772475616550197168640344569847229020450400728477475010623999093349045853332569952909373708473169191755982081312078960046259959905492373022504363751468621942440888438575735422794965758249538945268331942805910216678427739779718475368777118285823265266177659778482135378536758874286101232192416632551190882146357428612448991844114161565588828717549363987088436900131280158705840383378281737194312018014900774710863919105796193111025104136545940684701002922313457853024432704342660066368999838066309723543242610520297229458350611745627389500283940319208337371904459171376692165037245073829013234646997251007673228493278728349009314892062197679440127658672986252758082182067771028742689258077097928948473832968493340536954531173409077614789642541698205489171345792603356006589942318464362023344942117922741582002684882560464111293307761016728793997970927469335130007170378038888204093377399477514452732748628808433893541296497042905709024531800941564295561549409444876963361483358418368490034142311445964433848143929872800223824664372163429822441836173707521165425323176171178625883455685376956466087497469394109468588008540267798882758295570295587533744443279378568665241052869369759569924936048095428333956852777231356590851484232968233903900060963492188668138072885410942947422894196549256935604958798104243490205765548753665031325993258911265653907406360330850486627937155405183994215804918025472468379131667239426516931781972930630582024417316548976610287363630979572705500505152460305229653435739684982049345415086190392955882129173424901158783700111846450397561869790466899112414806225702219849274954719459826127099055920909964476620388749238854928998233541982236471870034268824746280592374456504216830367269549435150938791548234314470108981957689633617521836071229360257491115209823020180746114589024977990516838861925099233781528620424825312776706124139845674159770600473380610191063330231153840220076742757114812691217495611844730027800454558434621899305879073573185582354556793564223938486674087507067723687973641473481287324946881347770927796869285689757818044454979963173757770685484327344668428302310927999516384078700158336265974895424398715031685879727346691779113434969941508615274034206004064403190952178569983001276873569385454624117398148500974015367774452029911503294537673234061345278241399545257755395822233466681250484434953805317376244679984047353213675715402960012874244697168340261186105926694810731004851688049564617896683273943668257588028023909438403358601280151140537581007750872643525456282874964000468906168803164557020000004803780668873133506469015175096117870692408453475337380225865803745683833249083911908618824288552731750357291631189988543703554350687530996496839281711658112177793018695206901719289989006749346082406332984357421292164196045556015863346500649205953272625330354894605280355261078946024665981070084431249415547110039412974006642508602629599097808985213054749341927645733132668098500311294215705139432893453413013440604756792158202779872088791692520114798947660560831980790987767693860015507801903796338950703758198194924208555418447561477772142701910896682637005914530602260831871576973520734563468810341536258882230758795695439075258879069284027465976768866004320201671288221867240451685067711345481557520669209837467591313161573111257531557173997786988425240311977689876970015385164318861611385600676309806181185058631330226033282134893062916983447215360087429050967231415170468924464700588096692143090250387119602177119865340452470363624847526265294210316968697727473246080397825258857875757834410174840204701092839165449003906051430142286280830359118088586437341816365517890116095216940682236260922022676955363816204231835021491048332723653064954928023005805108958917443592333761151084644747856459223757218127008836680799806714669000225109101827419743073885818482938535595478355346896836892411975485313750361180233840384672040909603000544013681108137451050887317501722006216742447652258483256797432613783104775828451501984469794291262826019904874448564204755567129830763817876733213942865780829312673179099926520375058730596403034187458068402448714923727291091127056694498008292413100141490633911747866299547008354632871234393450311037857549255289266782157297496629230900743049301388501770255320383469933049671834070690726357336982819079041484927978705942680781361142246019595093371270074750391139282445439388443903874220420847290644366214862628930757680234653405368639697050018317192181538525541292376846219584642400472654858968304572332595235111268201771714497890709606631224243162068486826913872266523210839650715068788805520510595668689835891767426268335322877510611069441182681922791956195391185508918020031899810933185207573044596847266839794264113978543665166190465594780564486005991479118386020561543622236257620172692065746339336535680145848799089543329147375827905760246337760772476603496318940538613008348318611241216231211467750818430207650950814837994679693528694695813403887527498189070775377435936073884364219213442314759350101411417827154059552586658483809492883126087251303321404620603075250638710841223705184019628900420896022551332624590766656840506266381497194235804398021265003941916994837565033067519451452391597284515550186828589930019522047772427514247712011674391772068714303150704848345360050429874085371757427678076012395379245548424902567159835490375300328408108220031912083037856256390864186112166140822542057996454971655281961891568748858919998009827553471552900897822224324403290576838219273384348481784431733289944749890376513211450567692980878145141252507158657945908307303790122118528781179397045222253958961059788309038592345197131919805474823884925053555675906537290053436657702197672771702659066268844724588030262000987625795500340042285582671846816362486733802492789491349128848151051740590629915449517196412272007692772211199917755631689460485189812205065384765984245008001070701968283741471474745664841629433112997717146009580890446471303281795343798081897740150209018470643214951818330076663591146676528512706684536154969421225640870931225624036817918986040766761182555523906202835687306217620036283652353232424808813167527224811844732813441718255699933507855426275892171917487329762804027240131883381951545566745347917227608756391873764466844036483755389633533803969134721606183037401937072649593576839577256404875730824802686176538962237417188321650306002839825176523751739557333879131473544029151876163468487862024478355347370646425978778537248784248099890523977609984433024818374632822935520979222686999485716466954278579636573954300013696878013621673917537804027104800380227407965542154832451770057347619147671867648165952845450885340908476741024601957625145737094188630210969423636766311848632472981345890063188212602699212341494343099883817703400451527581219162374155890039437235339723768457225757683560300678289421206901233202206029430951975842807916110012003461296913877198804635446243137859976297242444416169056170462939490362873348478673354943002854979742888786320536757764926425246243515581258267403247756652136410667675531343979738635660962442106584239751431277100756803190867222415206484012632398312169897800539427276417816402557409864246925003807323704688765407015608997591516100318477056160423648877349478528502873065218083723861297598240795802613451107266853368426575028105770197943983491629794178584036864619990331659434187541729973971086445575653485442232387088401190826655940981615141815244165459303983047212482356458262897856811630995041069895084091799608179815062257467862303348825404109994366156434214570508270844160126770077659187417329796525725806212110031016535366797536248752627824683967639284021581999541072176946656082357514500393178456350704347790977283948200014769793332411979691448829535754993339213509463701698157987413568886643586426056177043450056076841440034087806638601790499932801087341664074576175420512218995266229190151580283080391399459549262674921689947224794201317466450628621200035275983806457673610159067030817552291232532759567101747935903005828427129527924185104342471561643166996726253374377989194538671370226095812328538385217526135599366543975110688982244730542455735497822318450689841376007066992472215182287613135921327057391473141884464476572511293183040446666306530345917999575224017456296349510298641597533962076501274968005982064285057699784429259510320684550809039530168966134645410090225173343856479199775217680957100239352784808931542474904708545812047559290121131916930268717206318990625519093755806026883473687144185681391778285890225966103886094324966521853894479710784876499448746140865155958629424924824808510731880420369280078504398517947627509357290421155237601118990537477303220257145926246999992721878412163909941594911473248069459165450042552744111915516742681624970415168719842292958915972490576553711971494344021866325973866532859949425894573470218493393448625051345586861418707032089661772063380750477836678576781063746795314258200569714682564124092040752505010357300183482336804763767782294746148808750090079860977374937502761108614045834773558587409088812467948480256796420812326716827671870620144766971684222309185864884945565346816966832446582168466607525768191046989994072298581788051479701078777941021015081697199201733317030786641272765990356455090955781627283339393637275620515016183740939454376376133910692054489493134841106840875962629253229720142391732650129001053749926788753721246101059126082196003495606251444631705746555539675496835706255455113855872464298255970332749486505033709292443708718727351636871762729120463573636542304625640084896252012883126643707544053821097936170286606373018715797912953705887736631516690539557064391264227673946471738371562735175478724707560881312191408127390958894047662802908526479247894077794745551079547528910871376494019212936771254943541026837775888261756166577706322582662821529548624093301448573095719296238202510419412311401592604527709003108421130154717949481491615428757220548799223236525168506432262730862973237118731687745238938558264661104724644956101292933234077104785550216949624019010965291930559638692838482752673512877121868996124575643770463224945399921753183357963597597095967839621093544708249818048982105930689866426707717322339067174072040471951650919248150773983279909987302910770175329637664356172343826180032222503495372769026692926043925229426825872460764058666469105649319231378754922561085167473838252600050149378641427309202068364246188653498750718288071863121499108892904939231563991630390087819834800861534052925853450818451103898791562908992010937199585744930872406984941279311424777323458050128146378930815125124468437582321326655458399909790264155567820881196960268815379831124038273654676199688932465743953151156002397222341608406969642689455145927521865172920962323824750857431637621839872092973340472653011659699533524391176603969420742375817158058684320611959400278363875188335168880806199697916052199402211566269608968830536323287239328020196040508101172560840862169916388924197794911021223040740866324324692775438119470137132537625956388211827909501297744908457549523660752067508887339270423459584540386575718282918179732780530890908182356825214590397216064894976197818845325248071534421471841065421048387104985133313721827834634035705692755640881381903413104404307132205350861186559415925770142985317542725582035224168449534655409972478637702008623550360820894862487220753916589609316304342610531326011245216177444484984822192311739406639703308872756822407817884766525023614005450973978423010547845603754850079346563062429258284597987462143291655814538613013986130214325122631567450455263645782540682590408144992263019609908095067460016960159515252099873011729404149177921908913491691764278697968132388337383420501160742692978518227329787311789730727533868848919312870517509973858705494719314341298052910901972336496708073327918686849710515939975228143622309039805466017608429210747957254826150748497975411900246283948158405197126281737170672663386763570706995351829078856917469908550988873692810785547355136773120408093155496264406873206282841236646925960265395789684881987537783065779158173059296550420666637894130740435869951562439778630967756821097181221302626761745652730579994720137736912653278251967825333837936410044047986324976325605817261453245882685325540751013610794710613757376375846773290496742713880316225046717287780875455994079230947807467062679007987597216142999026517284883741114893468310207223141412989650150405134257163333449476803131589234736546702915768059567795079387597097969407500767883989736675397243293188656741958531024210923162489036382564003751021861219609553208467076588203595618699903518768726545993470668553822570916730734927425777106223645750075683666336505935385547005303174559493018917535096767935830415750306285274441174654404303833939690942922461071248197320276839780137718405674164813591220498569753625811127989063993516491037994384411021959915038188453367409130954150079172196729522590202612222297218760469311676459861586177559121201711767311106521700240581954570066602432433583869135964614532999857845248596450331893885850504433095068280169045304659213306657476524596644818950842913086252182894402681103588996774271442631026219682704854948471789073271324691655426285043753126574252432072187201074266766592751567440862600627284225183600744830226859187814406187246633994150747780644296431829090399484418580543972807888643182140689791335277085257574613785573836943883443218061421340448130367826744168603480700281220425517026844295901274483757119399558684046606928045750223310134063034468309602858328212290738019701403846132928489372542111665819860928021061328499477295257688875700338895382549528727030060321228028261047697869659120081803050978354175064392200260664236128158479489649733281365664872512424015993096091716209909970807795787351700663502824041586374030156309238353809163092994152200112014700808460430089887432896867590084103277267876927151924276239038862433263311855969629384407990062070129937910025419178802655353298409417199111545030445102103493548406218920751340517572704378012591769590813069811561205642044028588292477789930057832361053340053711325579989683691104302028409209933095997236768277438879463357688000838836043207659484443764975908162481664039414701346561629426908508322432281251061868597825392609710575170096678531701628227890752643860999609347418246726488545806422166994385920838047218906915163804741018688105532385662560800438328798436201785862107633433026993998544617576177849467904146277546413857897048120871726235107728994810713346277256749322962806792095503916567528401219217920736863713789185458560342073642334131430909890151217099769570035518357591580617120567734386998470863872417251679589050240343542068972299747632789999818430824156092349109442936243707876978516717801132608348839050252571306234060592606053325521939871591817808228210496780699694988890129731119729960643289912059719001408355957288635453435694658935628641899186471403529551533864890191311692497888691840773691895116197443678244253182843949507582914414490433106019904864316972606770553781761024997173152135848013551289250153203588390791159134413943995675557754514286440566086522090265303084501049579511363918263922928119863650957635174577572486822609947515533437987413655429600225485606722136392117116339234925705685425998072463666828064304148166789195058386579076063178048220014113070108005827509097582262316683422550313376517291841659665414510465203565958698143743363173857223187160183692582276256538179812053482262277476257103710139784491254812019312364521718595233650830430535084942912444711363318743984914613140867891124115076148393673383539614494619458217753002834126034336501335253509423032943269689422201678695142318792041963043935540542397157935710444378095094293247347762619241402641949166224428433600588342453110637433682278658554035028592510289830787652887705620331522935672629202075648690951686895553422581043909899857421782210345969021008733252827265465605136861320654034121848816175333441786427107985141170030290731062666669642627008183690635905790867715526486715047927360100716117128373951369614699117027578061075372648874131712234804396203056542167290687278106468903734427035475362575805428681936091754531686753600011088020149715405283973900764082954529829783164892089878324874847302798368389184293458132825569550422150395629997515912501931944525223669183868951398408988508907535866683094673061094364287383687305261435160310385147588540306737532816225956741099685761377948974247869577323920268854068075742881448371089456496702431028357212333801913583748547832167089695066485129971012202549057651579564743933486598043852546883510031766819434333987322081222371157788441626639465963883511908553821779011931569128748055210780466091217295546423564113922280213381592645894087816427854130388403170223281636182580107448674824071415514155965437190427519289751080744084987891035578935178448268719389410550411797796287407526008049343321204962268534799041935122220402830882223891353900205198343707037346796347809084558764833689527395856241970803103499766351261318327400825692401114320871959017456762256494405309531654030230311338620423598574082698140119351330859751879398055894127501287180403501375615552053284577548508210188689834645597697901136923264211138051345110309497963137586288984517619049672903327027695694884696524916716339557815765619756406038539763803718087519217912402610572119394196308756431792893536356538967495425081730631737384081911630756273720210478804522321820782278976508101878973187186036492780687794485020738480727741954342379553803365615677130460711235017755231784100610400891831312878379662573705128108631130410035885777057340876136557900877875324383152403563678591051050865725017909296078347734240210654783407588929186783898881109697420704272411855951964552173318633902630656315308837170115820970899799652483997747663684220410587570236051984596581647714610831859055643730140419594564410314758648016359106858280743462290187795410621470121555089124670307828489992292649962692400919871336910605876666332669844240067690539718786383930322824805517470084331614412848456768469045060740638909953896041665163932698359996361056914231180554773571595005597186234062719966122413182178418392124220146280096863287573240194990120889453596636332508070780266210568020518600237879755188698899937706563647905831801498050811719337767746623311715193718013013610368014051947591277330689097439614063050246070546201990788325586777104754459153740825170250764510425692566437708674617237939421903235489420760967169019626410863922076195419888713205902684076357750152372242538867228681351924458305758002606953074937718945779423428489567453875727030381301127824389244372553371568687343394084224898342872000647233526731118442623983527581587007249157505298377750147469031747096486768573033645886477812248367726469217945712352724539517452896739091614489360672064614428866623821893031240725167492816822237522051262699991051723000855525493773435796391567133655492605871384612877484381190371016967367588458976287675327476007765380703716473451079337268910868183346066751458653441161863668488281944867605326746307141705306878297724650115048831693077265555193654026561756831704239351057390895767434336284133040308858612195113983152551754637852407611046992267905819057798840063622508665961518959615951439114498235325435487914720060102704302333602923269602112205999289861906808624587958125145450789039274606597533655087731985641139290126982504090072361570235499355595482635172000016501111284119083696538240962051328426424877661084383667079620299323415939433149429636698047148840512214275866935138966976844061083995862342995184784288125324373967943990205339473971934527123803919196200677718728646149317164854163494969699504267702095350526281598376911369736884861654355512004435539246529914072308359945701223475098943489601621431612359866200143584318260897248119018513903700119679199130855586608271274668200200279728070813248934675580990205821577278548386323922811976375355556060066762443918369011934669622650668197947004073927899392005798521083048999472167564433805984805829851573952973789830407597837912340932267610356513418899944884771778143049158616635109724203924677093367698004992989660517759965589834141552212513576582840378442956259118215019661674849659756023276793924983606597573115381997608934350150640103492195686319764264467922132882452661636552852703746679339496826337045122517884622248718668052330750118340338165912658925463141715480328028766794747756458827444034066143341821589804458356014785338004822604859895474894370725469098282715788864787817415861431970417475418731639371802068141090349491868561625349556180122351883309263157144382522002976498876945005255654633898599960305744908081481335274485869987413898762844046697774486300774319688143351410591648842160257940967651567125641227215266093578880261763684798798803256434179867044847769451781176852953098292952626616948108294026409810951325599025888633644971001599754307836375287057122498843620824355312734110554528133456498155690271836522505811037860301633165501659691221387136667350463970648183433422314230939277543522934156944160183320151051453717999519739038102513642947844265311112772810464522251511943703850877484976518984706148390288685077718606755863804546261369192153280359700766863495259339388558038518908955228179759952128080336180454459305782851058851743879075162231019522717248234779055863786045890924540139351329451378313842873772983792290587981781713775182485658289621224687910126482392478071439541688104844601958144921793887483006817150734137213296086452584032172185914898774046679039593231707688847576816563140527766864627744534655187193698542991280274878353110896384352426240042898978308745423806658984119490257613003039079871837022543733258542687444246722442215496585672746890660579866867508393986385878039555424439027444187657044001816520245514217714666803341021351994752759272498981960656070408153219056834533702838694560849983473099619697379247041049821585507312767830671186062092651243102764478455513665423684498000578420386765418972915039438564498314014502363134703912762497942688058145879148453950170401367484114586414842304272510067330186017159310005331062430436413351520890111954752730897775737138816285850064185365456581990570118703407056090996655491591353800844741351671763701463065059085764867594098935523240344293880477403497177827871593922201526904260832207297382525740201223633435203338492383349439692721444756736615197238484599834760089192999086124222834728893881068604940998388463101690993563679118070699290470401761906271176484684941670329175233209470429383156210001050869806901328585426002758590658115155473826212073478969710670774279437152517158766104683807403390196108965688192944233029292324836457586548345988481118289827775791737695891067362711452560308477590714547964007366535305758446866643835239367683417351285097141810324010292536121149617037051658927581700792224107320835447398312931389861557569281340128511091260071291578423961627100385676890056738740199594962167872256704960870215693385134948586395366692185436058083689148272252658224990437346133487572539247834605823295603074065665765595566915378574136249512199326028927500163553630547875754855250893497762264190901997319458683667723525228127437995913535163521616631086112511999200412994445615086194126738530488241142445417456441473977288361929116316073781601152153173328095412482737758257007707444347161616394403959735190029594956731812315086555330537155505738074766291781862574639840778307531661886774734684634029898265762917781750561267843597538459532469021279815985900835368724067661094908178134574594555152916019968554303193995375426586019707284869948251412623442067208954905684304246116240374578957126055546510399503694748041241694319797019727650953803187155822886630452795025239026618768954577908203884762401321186819136489477078433266566295327715425886050081366740210222985383678127181963538721604298242179098779637664450676294889414132444402648706844034429819612720859118662924629061805109235844573912925981820196643781111523580974159208254041860715606301138111030114886066686121360418624532457680063480405568263592819931445165752648347097622327392116235275914753700608023298414277477045737376412029973647585558845360433260470432230471623730448854207754524960120526770477466607897746215934663392726908871465761569538142576728364894724256938951785632934884807320428742264100043511951834796323833224781589363791887113325217238220173520361203399300282132734378051222156264551093482057812811715851811295298276653426630063623444621715306178713263621197729077059027012982080233346481500541458427961707363419259773188365815412822090679720566942739117790511339677526388903740637635791662347101629603839857535956515407337532146478336476181776537137027757980640008868188337229445908069343264920268619726896548395480948671002181408455363977342895159375121668459149918277460626413779649540124861237001475524366224174976593673370071260217193633394322145688884594354952907029392972347428225955573095655556194435244872711134016172148666706287388288209638610742491750221774548008193475085350161011544765431017816520036079712496987349264450353209953709333940182727668054403142402933569105571785749136722266441691584986124460123299620619842317514490801306642768100007549805403016808580440853671528262038558491212401134584467522379733123066201773693258587966020366846394492220881248506254918065362855963332342633179236997616714579814805745638862861362580900927373423807761493340175079650515613161891835252766167091307064789398357588393685763336988061291062145660857607592659078127086056398174490601982023023203724702887490048728676014836780905262993205069262557500455453379177948541620141975808339165859172259671472855280709895310617415216864538479586872744098917749768407436446667939398933148459872906425119176060242741421419261667559882725456155634617422948634167975085606272471877240667512595089845613389754012624314400317811520188094212015404542764450773193579714025094543898917036355627703810014131603968271533900814731005986051995745110188098612214625360405715266877891872176045587740292728211412277299252034573634720024585933048619555540982269528558293035730357826946127350372048385622256617592493709240131224477352244213236768805113590248668548574206580667415971262169373470849545547756716788772899438695729476578033758530079022868677446092544649541819393868223468854496447529725299369109227760830385521365043944868327423667555696231997540778032540827534204683760534575105448486824771987263546055642068035579331080999550298843248823009252619763801491458822892774462270136429364613844093885263532431662613295821117230787838376061255362502509438780940079022786878209430281520249485802460661752785832590393493362743292816478017914651504210973635513013028563844616347858032973617914932648619849171881908739543663664158303637352181261354695079772346114761518610814942838276547966631125141718235863369411664712213026597228106736916464678308599069416910081564737647185216079596162259580088720308672440536492199423255391302063973149134359516839626909933722410757739564871775274320017715053452968152982108729742948609004091125111968459520103202972828052948446167249864119093964876349157747734814308648274471852183755108693170426181127892499655192555928426661260262969496715246786139975960396396605943508562411104366123804036198972299786668229269828437504857858481593313805827121421484878293113888371615859522727660470284559004684673401546221022099777702954922683523753677016698167100917184875726401257073072705701710524013520283967112972450024324104258590450637726505431702247009099259248251811650729452561261914966609573049022405991069914916420468739200253768023874796807569400801250346531338785586002744077286624085469351170733121723457545742971831822053989190067949713865024282265474701100417590977331021414293474477801588540632031627006891783121482095445296863176437913673440083166545052141340858059713667839043113629711175253599973027164873821919222574073491236395614386272842616468991330944871052310024501242532514760129398130968157270793646684502500246700808788026094448003994932382240600668250122805801834389955575202247426754382696800856460699896926905615154053024120726766087245830320175521471474881985483160251912371575613245014327095368384557320908749625251912877889986196825102233651652066113855746427601186979420027440315582835084503267227533225767745560659092461871517127711130976521247737121400908426379531108594690305482455940041596132832450856000639772784220944672471533986220372803646688710543464841219106366209349490675488804214198198632894725331775670280488175392476167152412622209143070944091809295973841848235872495702227719460995234381203220764307910557405752076047951657052628292371748156196735088567533363122602468335076624705856485749952507478884648886133120508701413611785167540039665888830175801435695724614212286058910057139773976404571742800277385456614295860980276614404745381348878891904033028386334466367870311607345582902727425512605897855195660185061534524356256284380128480065219887866981627210650768245944028386549885487571560958532182672390635148490665848714247871900774156726785119818340716732993467682895993176598561862420555866280390871841036517492392073105877707728612986889119657874423486275251515870661728120930246864601269969064556898141871537128062696192703393247913153720189285087430595022147429709811929876872604921367314104296076533956849480406200833372399840660357384153468229527626102529418265410716215754688418504236250590739845823504032174911076362376877884506323263926998143855950225588427678231196888709135161788871393524570248128506040638511623868175755649158028080549810926791566328114314115244374463125007593256388527825831862310782778129561014749685573219536968823808026985445540745939819541823250753421941597746314966845509944358073837478579110036969287852225446955413695941392088847300826520053678895919930271203331101153323516936787631634976170469046879617939541826622666500824074973949722023937912530562169932112208175142952210519968738951572326965004287284688608259003944425338933760116788239259827486058478381372358778838482901368810754439994253432212508147978698447903980999311022949834443314072447981085913995377615385172327772474148294977542731484200454241284893254887010129829821362019438923525457903957062662264735060278871293524238193915890651091821626392424671933765996302730538973316695524237313787768502744807302561289703579912949197493005144359329046903740438542380550508229080086691876743232089627480902845861321836719772074920051176473801688587065144782114813332851522995212763327217556464268701125491889850596791043811547099928788458210202104795344701773356020157359797800878720676233844189730207822597962843082831936871502377565404737302639266500205351579855536785011432194051802141788715068825519641843591233630930396162858924692217242285507083329116032941544293795019103560064333441598771783845853231436059093543069685807159828931344543040962870195206227314809143068097843303566140100895521881112474918835919789769382692779190384587745517388164504424799774136318502299942505488612923771997721016990712255183207764134002410741189808242898973812620028152572529865131741270056262291236874719688265180779296964179289616399997442827251683244405947068678568978437089347657000758312025536824469872963391702805406828373749248073677965520062475712414488085215197437137235953864284564313609924820398793206822713420039377453398206724254937030933319417191051723360613691276200521117656933194589193565447087366826313513221567450901489784205228911088596812946687684190606061095602617293867668526236588209736719314613291880931683221386679279120053562015593822694472405837667409219917602119291821835739900478933057232331951335123597846082425692901741625517751546452195734613109252331515848170549640133742045575961197903135210978569627931566013654556647957267476579130809634384863471473510367487612355489567956729538653202949813403612463091744983375876473575705783800323222794002574790905733156114633879910118850394915044284251661480661926713779819341572130309439410529412946581446986447069838803729802119960294027919584774643329642894868429562453140155214034854366836022130021122424038016919271154958905230180785374025912360199962258105727759745592720489929148726312444325373263350613080133321669112817147862231623733081953868868264617257279552705945739146741906480746915372153611946021212951574390957997683330134403359387521865354863083377974993678426977086839886273300832929793390551445862235165085385266224097470869531919049032096391258878813266923814532754504226911489085368958888223723290775950583877570062019334495176540797770093479126312618084730591637371535996628299278362401506522093789827684226169975996583987360179838949636830855507233732958579470288735195816544697226189516255347559578599453257451575137495101722934980537773866960419045452835926597661171677382516914770063961220013113033402507348139035536928144180244401976509407629355584423583952062010519906438669914041162211580246051488094579130040905273660236944883874750488266534861119460020110311674797545230749487173349888277166263848729441518755659586337896850706531512155844059659438303206717472290886540088213217879223741641883995945670420901940556866883608882892193750206497261267785734360351681489158488196867812675041574181006980244264740193915393877445800666295499451516468416962414950873330778676796355231631843642297236023230585425229678428291558656431491416744498178002204223623151905653789117228744000071770023279412074645332942635458973200750347769787628413344284648718532331486920173622541542649993263565676979257796610332441789195997007232902635164984495625385805123522208662744068730560823968306818563880758189895908295747784835918337928482483676083224449075057405411093862174465624001029100600451795434269722307283220935867794301653766218046801328212351746571938544212778048996638490575239353195004685347518911452979228781833628655221010257051292319692311299630518815304761034997415293020152698837990163873814051077960674432389715776304547446002182361124721752184988538231263342719198010214568012523066329377110602084431319524580788891337325385104180209474559096519599966702686615456428512013660750037642142184714962214750697207642150629437560164519358464765835735194657059931314731434253947591387400547779114882177180745722377469570298847396800787661917670505417403479653447858056923399494345452635722708190483102905927236432915894145817760873830292451746721823067707740994161861464482399762261195761743011388360334875085688868942349420521821233269986621912173003446367611122530356229931592895177435277674195772489029394198704379303650407982866897817655801788079245119063603610161642636752389744452706178886628565835140042184438255302880861632753370210348167842023073315450420791622594519137443924514387465091045644429661186434024628085750589589552540261081958896728819017495790458908443329297581547087978893936971063355369736336364754485417785655873040841708433956393295693839472052307049233372161937827868470705168988983854250093755466317430629552684166300872405655737613617640194782588631516942112601365025177428874856816584068940016553763966154350384848522899638379292656012442180708112549236631922625363975669693315149652986824191510264675550331168207791741079581025651069843454599291662230271914383572749432716995354845930188214607297758327389345190093779329128998002402357896069312624231193505662243069835471347393074920860603654358056642827950461808455985759410353464038450752173397634894059021730388213226046010192264311168994527469130860955727528191988467988026987991635208468484372102395472858306073684457562048717578441441795048735203581612116724699622598542083040946310136036646491034995593055076304213406620598542650645588243921592675406512230767121615877294235801444584698352383331599562414703325602080946933800456980667054123362628294697087674122290077131961832652297689450483631341431038977815352269889217335891449396342866385515530140526672335919182389934364325842608320416889137270096172185780847101251969117790967740602263035947115934423487389336841593898280206070272838895298349821015969513003257092866560982736020525262277081590915915551250791601725340803325906986564044997474183964978337800370941554084937155211265310438201640845515406197404917512904006444410431115559998253571253054254779795526877009555868624653009304389828140638898498692546792697074262069065280141579269626047695865987441131967370518894383101778434898249697587248694724672462782192709268534692864712738956759252821992843932782193994780694733535459412512154279617346868617564972124282181922162262572458367366346193252557253225645987583892327710879168819184549433415922147585950997413800350300293947934823900094115794833566892908160167656788078692218583133487812719686907149493209922575386983533381732229437109623560590737061888696230276466756451306581572405071907489140274719516578320403685880643954182896727478654960785339885444690547691165784483971806536558555283046274761165782536125734021418692816808208618878435821274443124031582171496349133869393204844270408135832620985527482180244316593435850339330544952277731946954477510049199371075821652939534600225726106333423734703442947122340530932731118829268845293925811242781431570767125245080849958728269442818455093356566906417839263471306780119127137151250010782020459079094934651305893232573745461187375632006568373673346235294166840829344483632645105983243220002212226861065425331000549030998137074342710175106313414123910017802112338530731907529436186332692263215639662384926195761473520165322787071497979199919753316770194200338892720304617641959085187394033532535984689956236657080717047185417997830800897899188281660040150215448529970480896915255145742149182629545563742976922964795039691384699745480368183472876078025599414277217467601132738690926535139145342411332957934140927743161842462468382507188291261824219445249884547138533349206753859418268273463237375720768609226547182950683586327634833669108823481506649731624068961049715072069522525483925509044868469157833399458578136453182613218181576181013745944006863470891789701538444197052488242536562230726322328759471085968341227347351988245039418927868459971332421661701180089054788421076187634546692422988491117020984844168541730289897016078524801337544327174919763070657565834625130639642898491598970402585407256764284744269137931227960623156870664605055294812896490303421210792109775925273416108386881998566947948169611622139472876290790770526715841431759653197771459649028496229858648265591589954190813571755675241357322987675250683475761519222404817914197995267743585455590818608946611600657360245144594921230320313819775661781193292776845364785322376819840461165421714364442122715568890301621489831392141265271684497688459979633174431779884705045181434297082233355696780694308267330551524251024240197142632525575934414448617062112722814031314878435436622589945341604645302160630667897939347487556451790980583711461270218407724956130751827941973270259116870349903078486967328625915535095402777632551179839141906075386413755142809119436273560596903806624523999043538275917824516040504376382508225107225412590427089617894676820475076144347256081731185165526786302349010005484055261027382024088072202512712275793689475229872511262788657637391493258826818511099303609687283861324083434880926365759412502989290056494983930669746037846304813721043345079350859694244778010070704310770902466079340531576121535252925173590205360311490507419371884548974168145509998427860243887029966084952334475360423616535467456666045899243558612533862274499128538797827169703014784904447404944948457274833967912784948996509182763760224238141523103094824628557917492914368075024263418137280025056233269142648868705114811968543365693216952953917210347676642034988185317533346724343993696951871238125407678484730372497352572843347465911743969993938265316157703358773852619696266598894596588270646137669814671206579850271571879778713936396282210464681459690665543913783839114073251948858205952944462146903864577444189640487895276107698191279857541855329934325557135309971157509815916511809724061316094447279299178116281692440425405564049452135257017786317462214652747892266134241354142046990773981526997379392043643959589111544705818875218421465733636615334066247502370509305605119202684046048790120631897385257160143432331027579069414315222007441653255722785907513492003520782399674490895340742728696412868023346211514011221642831083008529786785357289152887367388276285795447704752181859979816780131637426522651786497955064010623280096854352273188913376529095710570490147136919867966477956915470387869028524178879678489967615001519470226704479337426809309270580005989892505901526279145937627264607983977304713867454423443801140443402705693017752202701648225646480142075394546542022599512094831472843380052594984936287091493515458651511187225012909370903151154800617101350377160802605288517204463729854660911958804697271112508869664220768761809976779275497107297090867242402948248867727169307587185677913777112009240440508486273788785693622981759753601052080788963856424581036549688146262773026024782417065759550744487921019928812767268460788978038817074376591320686146165333526006667839591622740717004550445732437326476185511456457079802282487834491933584556912248027029673637233539905531332671753037888592939311999824165204380047970696262413239177795336646867713560245999452368579343948380240574160550395183523961188810117006362749953057165215246573626905163193734251592751072135080282522408838133133834646919471080888017342110823918976476042361722848756163611237576388315369991544412499889397215725320302821689464542845273884663440555408219003168277540527934108409330076194636415919932502248306646708502599310026388280581212640808778767373972679592737214322130736224550390921881133535817330982707246328129653080059869385621849562013177813286145826092331037770960354249463670489998673077246301940965995986036723718142171499873316804781212084982161888780192815409158712271398512036278731095911668188394319410867717893944919582883761480349260460899267778183106723409585182320586249604860085303929616580887178045155177083780277660147894002791525366458044026814959291086852771290663429690687520888947691011245793149980297335570579250070967265048627159289421490066342780044900457764950560895318325885274912831431411524961381951138910885089857759476844007984008654960949994899508595584737784841604630133282959495838036467652581195068666255876712924032620148328269391113236960797414547751072315530225564446950610788103609804968729016572397233550997766520294643213611067085063504326359628693383081770002588997957255246420891377995251330445084916965813529714578339387833257263551669518775890605433293839947458080405585832190055002982685239894250714932097504162633979431219017625889554442159348072991754184109297745555873392843387512787525953189754628692983504987194231756364251243419217926168093417952704544039124816924949153744684016394857634391671703780912864533504852452093496703226689619068983256520899657410962645931387948789246405342507087896687719685545643248651491353349976079613180074227770854944078592654553059671413799244144325944442482890864454082207597953662088924195081315360189468496648843400145105382306122095160659927057202315725230758373083595878584310939683955552416724269957454897509525432192322176759938852567273977803379626841026879007393706089811969897240732546792329837379810807352200455540084625431039989579255495816292209943328087725253785070952579718293708037570957369824774747506258276662320326942606590916827013105092434694629408653857229509586932722603868162319034231845807990807772616469238107349795246352866015664856285735983602087382618192168243053822249246909266430712163188126991555176111827672638082790808931651236019886290361981040967066183897072410644846491695097434802151485249863143536582646171139536825275927781068178183485572625820525189773005337266419327822894416019925831298037880201087284000794632413795085865170511189280451638726511477753273647261298066617197770452758006720598845373246461314455497397383924248260513411810639474159029991969579456813089646507581308817660814722704860280996320527037769672077673972903940977722971000468317155558435322696914715106266470858650405672099232043802997525024011788722204825025687820964181485526469149883240020725825446701588035859685446034139175349559635168718631701338984609274396030960059217576190585316049714250724899023936714363200904976636644416046069249522075836162966737680361491076904285646820662032528269126520037006976805549987803510858324106690398158264174182982873168498413170010690036728820857325681792625986284072166071290892327696385404962071924657352322256317477048261580866161656909566478725764615707210053312093912453921316290218733559119053453471940917364063851186441089348073214642318690422357083268395044675170852746761164389831698153944652519193231796911851818466000736760689272603182240386432654050052675619967209831791330283301481340613938702563029629078705496534681524199744764534387537514370826241739860562169323621531758813801286265839051861937723682678573645396947340266022285563493492789192173656263647397850699856814122072592597431212992853603369448255954394078376223908292206204014753659818779865218546353778219037934366011720422422406014401181621040088975208774170650867493042228491964353059532701292854660416583976437124803847105409522042331214460391610101418915513673397503484182061424230024975735988616342569673289282756510056952961692383508353343473992473056850471543393847869276064398121367432538333192840725561500622236722592232456791948597361972846226003709996940249902966679251757447643189744350697787820130240008039052645369539197282035136640376727382807791320302069982012249840416662370423531045285759572445952967773084908620096325469259465613241524214304588003259111527467177039535159017907556588744613351254966925170517992215060016758054173518058695002033344009809425679517771214653020394618708799643652065593835357119626552484056578178093791617718080308995986600629510496374797047808789568825828749048631235124065346208046731293148927300355881376691262415089397662372837655032977303475941739133664248783675398074437248023349555063770620466267510578250918034552449567225678729346119105067875957078384156412003446034456735982915456928517395775159169903752270349439567589713409192218497950312187983638593875118259339236200488475844075760353685637341251680686439880562103208730327103324362396499379361767773024560613106191249730839816722465121576846954095223347195744372393199485351596727898007814049905346414627627072250341274952758205644409136543900236389524314389619643133070379823622220075701905501518910326213908450215882625944908678100793432639773211739472786934992615205302235384535202838885415906020352382663298029575082303781496814664025457943314494634548406614089882613517212142785688614508714385069812737625177125133553050860236952891660114404022610541502949344680904745419896378111427276589887311010709712213803464751682279380012114852924903875764380246625896299378188783947292008506421001792430684664271614898538225377880989232942519839397921179365960309260874895865243949823026140132059287993576258252168927029081073945740843841670842317592874313783209668825518296579852991318934698664864280369875339165011019740627729700982421522196949927925254920641813155366321958921032702024148312301072421658136865601741457828377443615409542920930554597105863016053576441017289456821091855952984289152769094944291796044315843573963350414003540061760869953688121052394819915806725679853712799843646239606676568928114323117116455460809471947009263927867283889004627845512364448167314044422583754231825541897354486382110756314804073294051430501108854610083613259156591288836968565030738537461928433152018948244976956772253036187731343445761068939774436263892306923058463259351966735592186334284495443437620983608343248854863880525331406557313883950137927880513080478770679730804974386735378510560994385928093638739567822654686175295966001959676188972612934427304870491984430918412839119529348730119272538891689553614180341097411172221168113876490551104106857897312304739903513200797422509210287929211502256691193273104766788068616506322897487627384965937660999108531566123086660949129951114814106223498152499176166149497040082191602649982957437834993490430072744769508415760037075865872341849356018486596506641574583585364872404943735407304806700077025648356308631945617861584033899663634793479040622142458367961588821563311983523458137116216255503937089838933822656353163450439205917069946013424178702450526836462190015103341866705653979303363073866461377421037515288728482158490446748816632601993422309212672223754545797655589537394942706055527194264790928324227285128986608188251460124629192575914155254348595070641096098006192920882340899552434068466873620223357180301809112895463636467873016547282290426015149397079797341688858582096705498506751856979411240725320795536478205020725173187572291154412293108164265060469914237271120090244937856534381489028707400642233561657915150249508450200332383685851188135981838761948274835163061101428481992024455145598051796519608536555074468232194490694322541437968104094712028022457165762242934141598656925192619126825739255523691244734688084474052882627025870479132078431437050681437980166070388581145864701953841734404719666223915644669324605841650026853742260449559551927648887053016533602245520188807350167248920450091330134369309495810431691182933733548080492760030999178631667864767231881055499469213855897224485485068798771367582062407903318014504515284817712600222968489469528761265989450765619907893783969153675216293258070490314620679686017252845244775555235110660602954417183723697068718061379253532439768060453061213432545674397768878657381698998018108522069272876873661023421217113155566707236221867783692367119193293058182263976106859589949683644856239175322104958249484370709722956053979254951219410799297219998142614502786361034539284216419821352607968927129625285914685145764296414373735315687330258701188316041910151738795660870022662860076393443240576245664051279889664229764457158759726517270385494839727558648715971964749270189209756379938428566436090820492699098839335332170738797937899460794930970250589258702245881294931334551480925993265934391932053001107567432449215307270470885826837909949117483054636447101325003222870306920684166325359401549959835294999357659411855362684064044222257153912336471456457271103650901151289608345911254853411772624788183857800312647876724859342121877299123487659249415473009551021658346196325217388727097582140438801074994628535835854803087764377896665794917231123067141529294135041461504581039100558074170020596977535883369688075802614196419669455926997392864579824424445567775258536935562549811937628919003686790546497080038734899483864456502492515760675427339083745335316238095543376671705981543235119482661501836915963538577353067470402626264775125815015979659214317057504781086972398630129096310203405334987923763786713766123872361555139113121836977165142459692585702120613774121343832919191914755816085439796293829876272015480327564143457108978271232556090475423935572414658910758497970993779024199462518678768477991029641717978749825540502711893503552345799096150450138796986592576153860561749877421036583842763080505016074011768573995704454493246915407384995818780287452077738261086219472104346325840135413410843666991516772973566511654191348301832643103155210192512910787681383395907184620294367784290575619775843120690753212739745859090507417564348948391447314333795888192358248818666956852532951440513406680440323462107951331917019936551824476826979359776240815316541547138389208704746183682370779827272181668884196567206449506108237087773475310944704460624923108642473473942047447407410017841299363814882324725952624827115816321434204855763354640920581793791733329632194008415404018533586514609206524207043119719623977119347147703143479440526576301535386211787265427991689103210506370752984168211242534934873163614957824523763386744778156260911293646607499807058334726248463558443681709699143707081241297814566998365916567090031022402324498849596992225444756446217468771945602555402375284648556890027510416449333460417333185897227552105160303533941862142448569607340819359377922631341482076186123630946601475534439719806368501321972469247829354328931145772103007708618999097483523899018439122295329028286970724957467043878776631144040782649491464835101086307349020746408185168682444067533226111589566070999909534343658851097226276136479512701921926226697929862870522457855216841606409444504270604060089967898142505802844464212198938321024646821944502381808975943081205294923206927514176236039121115584893935751995037605932477624216920354965636571941819052188761083110414820722970335320562417021752524934241486065026908545346048366746324962180979556335137652552773099603707800915230654690727484982614529227603400586682986958377108918488411161850894134400755915756484059913829134259207862087228427984462440989314192933525143792986628972674794589242126579588043760664247109823379814313907622739439492623731119761705731924687496749602567137319687867078492097788132249526001830976796643725690643390176879280120352674625901709047453067230980626074539384501605895640356921944926558419518944689768795681322619915096004259871091256689268087445137391112072203479529084078723750164630715831285289789848575474707392744148164148799564754895247001601107048725255271975674316722655684272222075769745059977619184633381653195764103314496968564336016760234508090620760421332633029196171161039157995329853745688862821845690147604173041429234431312064438368078416622641582258262902272075761241608104363693302316467951100499013469111219715720901987031520734244618192426109106788985447587266226777005955683223623450696071554617640435781601793435211442373193482799599610991354657037416637744204666159207433058708781023769519865298286413403108277906516013500975789944311569162953957521845456305753329477882115533195134869107858721091417905544995095778565617580872228821578897227288902526713230301310974125573004151523247188887590424223367398648915586145012144140167919431818899565912875161008065447237308608301992256762262542224196597156712780785457104181016340490229574926574528941362680801013995520304469413128995172908509608315325847421739287684490886373568128568464084133949613527008347537464430772082473431347046904218490395315667054292562363115254351065420397650608738511094433708114043466883642851071054477826304574253505525643610548743511315016181191371174926343606008636443371397166030483927304369372888510598895384663268944442517718565440944869477767832452980121969948270122773450598520072886116466304674020631386577933507092655201001743882937965883013560038927720554548465724687985756610179384490011313868181318140524966044295960247848591939916927547263899751651495602983125540128581821728355203534872580006787461105699571508243322313070142855388088628104642487234769276912358302988080543580502205806918253235746206569096117172118019986005081229769868256003665391973287905443520975474774627424136993798116987271972610158954450261558306330536041568883658664880837421767555552222105034321906245381404959301601513251106311775424520785307957801138382255043195975033970117972002820616807146998620226977427128255715178778960859273553225963244497559689530661783323358192021350857735684426081613278111823106662172791840532483119571078956071790616502315388794339340799597413841168829393834550560277311004265774591418346265620879891859335994064653741877244796432523451094607928070294604319033152958379540781043510786754469470148114897882427973840268379126951366415256782137556224203861593791127195187966465046703627144863110936857802274894837374955792028479380226631967027598406380502284835418722721910355248680855451442561457105770989622651448852535565662399514949832761358977992018825302890909068975146664630691815991432152768880984338556104853023876947403841413683966676060742821971237575320243630264639027689119035698202756767695584668708320322318742395140108560441850839246721351086609458186058794576561209462804395477618587373068930900561916132829670513595127497493724795983082242452552274737836679707387911860187166042577167116905927066125833448731091622171142861121108125616751100963978070794839732479547615625751092847737859905165337171467054376814331483291824425144952803602943671915996642956614429048185760553278494311800075761987824780098144845548895243657834472333208533077729944383091994805003948102539761699775145744358793662622853936801068495971408204012082344958429721822478485497203492190814819662723810324397910869781996515987671484953308578290018533231721892734995631051822900500140692586762614390646222141877264836837230883828979125380757165666123183986546536908773410303077566989212841462549434937598891961391113327170376801692623499726941486408027790129213776588976124868265824445461301801829888104756387934172156193362539433914087663920679157324982997474322780859635413925102959393909121920508070389015550425928143985967888540900219268442588927934028458571114621643076489981520959416443342602618567837206029184199642105913899439352220155044644642842951872844838585233030650087953416287405038311666216551597181340590885253245475641343367715256603476845845661366468255952689938337119109664552045643478158803992296203084564322316925508828530065644050996292078203586944738049853068221503148938047521315722449811297380704620831222015248711778200853596119509923985663370823877304607798266040350658452470013524177749220342481427379150070430352775500440751068414818887163398659708284217970974191415430681401009642400084591849695428275370294774262242066713629723078782131873536548189170069776679891113682623969973748019242306420703402227754391187514666211666667347790100298648718240574605593163779969336600495407839399982957405696442811450462970669174803850896601879259515005387690641421390599389551267958674066600563675957746181056612914200776952527014599810575935923417012439211820122817756857297614586264976724220740610995709016068931325284456325239166168730686256782817010692441396798855069404642948122106541462884469372185290736093777189591026863356429049873947945873567043137448144246045757624169162813489913026407060914749770728401340946699488994903193852852144114544842448653914042066344253011095276762450047015381231495334298436457040412044532245711959472842674007752651091015097968774667739689343722149757715899604703150756288870167283225653991445852395187372200552165595220061017610984386520663029954058349587900879665032728957522833028642221953630912180030863732376397826963697606507264367790443781267326941001211269961951490824657229425809942268971868114700863335481405836411448987906930726824496128844710902028806333040478150481821815871023508030792598140719875224331402731425332953191573949926833089600999002479062915781044117667162983227884304624235291162614091651455358190222655491475434572510353481350712648113324416809063114415918940062919684033113216573017754411920211346192001928756154094279033369475922779797167487215307784246969560998410012912489283001600080312146921199787874422168084253443210624810225277343540914882543515533791353718130528203412813843610044023892492594742207222071969238616366765057333614832378486554928294682990550975025761601474764165538723818742164780773652502812141098441563015661804200717652766300731524613551162702705139875597733561424436535887755299288593435877135301388835399534691804325216015348602282223150212037339891529982280526988989504840121121687303230150451292430602297131602608356715274093332881094240460129223253106875105829465944995469208626731475246991870158309301990290171538328206239818497194525675119559201400790462191802950503100408224340543830530575245309357565953443106881648296440078141044013402005493563731123540597639016673943706354372393015154047875458737044843742857105023002590848973817504526953504691034307736576186816390399692750364326935237444593340381983363692928994544009061584736235412914322955596268954791175581398004114702299461640192789310847967590287280037956827344029017687810950143225426767156771993163567399023690940150601174085212854542444537926463561028975988462198534051064075560335703018928764498104740951072033118246875216576181958059092408532539220994466392599605377425504774744728005940386511867603766562976661400731021182503811803948655362897936641896459011382098255303906307948875323992663292333292523155675442787154974263232151842839359597692291413310730608228481545112537310490084766042786272528811829547230531466492375037345127437912298565808432789906646966213244260997270451065971313058879164861721497205314326220690803350907511062571452474654689111494057255243567655071168957646987493273411200799629415209440925051415490200340954438658894249149289833067778967177535632842486648700912839515561464973625356173248887798747936546197037499186684311365363037752690361294175895226778004772286754378113651181683473847227825533963410932123823650383087859686884701050492047062755001364707822921339482378980437163927372780529403202308624858530532229350764575779790782708069136590619530467331908285873295567375209953172934825832775242855574361947794841818084606065398728510890657549819257610179112332194540542659130589116978367069435567343065021997515370907983856830236571853356659043704093248557263097352281326171777217020032606062669699825291269690573184516562273413313321011030803082831075996275071951362853737552576004245832213712756902573913953761993555679136181738780316998467262298481965894377022894298489531842909524768526956812024017267003158679722025673877389724335135727658114804015935623283058097834483554428304539961357344818984540238314695621793653166718920923662343190735383449593119431410080095254218738883315881429886773297842491445733235687268019119006634886392717342734002515084703716055892692314703277725795981641412954148172492054275258583606428710975825761550022941357079883384921632380876450031569641510766230661239204031328971850549755674899797136315178280614763069709603908267145165207455987108943498836607879485708334239351511520282362381172523598214365173698295045731403867730042247982464004945681656227696775687615125978744428555682383006756365589647297534542670185605325856562207832808052424356817731944301105006360274391744269901475311280912423418247984588572221076458892775761164033661451234496958615079753048028732344942693750280030311561990628085656283130914211118685562049364269638093280694798555785331856191808758883082300905965854941905538155578662241406267293765604101020293148904408033576030179006884367614741839407625194240854799051311547933717611395923548939896520635272803922480959859480940915756533371788262892745548555722567744967393397431491436027830120127144647969049211514661798986913301068053024855855132912813058374999194626802349774033881497516738375785726864713518633386683632510616377425173898704112326357418716288171236055082160710545237174163654760971763771869208459201143864956830770886454009958447989983106338105853810214212026279214195065055340448712999382426306782822842479849420950368631799371945622490609728206347773298596480542287335122872439559888966838498467357603265889810080459936965065344299504878887211290612422714483350221724003358655627037564128459027245243216085588775396042501984868110545191663987211738868669265298463438263191467556582501286086141207241362712724262930626818860985069321602326357859358375066184893614638181144302420633901335222141299926044477065681533702297569700325242950625225078021972657019310701320813523952253461712350201869232139476541848099776679425800908520182856071995282304722859247740982565040563049117676347169507188965876055326154551875982588556966931024981030677414583461186623997555205135952910350900054446652375777186467765261288811893071868226539483248075740231470566661897386062608616714494933871603984544027244276083588041684320240798175851388631618209802248894084496208345637011601108519175525365468453988025360516708513372089642380727953238085242944531642221612554094736073605118822978243168887750698500092092959270409816982375705143344219990268174732062831719655433932449798600128493156869266643556089168567920691341296463737539660765121611594916009123750487661072816436506282752470659875692183937832286902758752341383714696229432348056808225918288433068339612013754957194398273527685136763668397329058562199114732720910796716327201990458711588709777408968777267610730463605075128412057626964645926414924581794735051931127657154645689607246601767321655451442426326278047251235611912147971674174949553507759177625386281627409541944077993730494991979238045695841669252948508774323536308794650336143955662872632172080221548246299647409025720040429074209285314678321758414077571467269195299844271712770539322618488939251067510555803489257363118017475626897949624658486288239332723601463950084081498386795766668146971152184643500201999191253449495180616299650217397088227816365686719062993635510827116103307514369023859396974632419420528866577024871995122632560752571435881320428188943101499773592959352045672125927600560764161887275898882565656007087788106823252267970450729121614311669414554567703645429981530824855935068376875701534707032565587683119330184919047393824479454930855169185461708488823081860425639249928186260570832761185495032522095356660124539304032186319149180512685932654747069341031824960457620909400092910984845018207123268964492627898300445944892164754177717920189418079219837129289307590379074089597500953484148402803378146442838136510969969269443032215086237991465815563374345737404871201009658961229630923803456889766449684073975212629527507873541417183622029437819579134099972052262280424234577159178100057898825664796560248374241148832050056662064649970726589425100348224435744830906368262705023490024584624545799312851398219809823562103808826722416305117815538570032126273385677013314726053537601415248022467527754134205001751878124683784205870631668072445321184497911844831341255093689326827601824540763681356359776494608018460568392992389783173969888449702613183229637184220706486797027496007784380020458221891534583745170714850072367399397673740057429317429388291499425387360014393066582353064967901333784534455808485654740801343263503086249793188695715811270212457055123194341127619542744180221254664267086966877349069004657664552904501441517210669424406209355210654541571241253598380505135679000134951147347618205195916063280870676910732331938872889757004118567866168355635439503259381069658749261507426968432890994932134823136075010504057004964276160572245034145409728081614988274621248846883455780835779721825279263267831344523891326788419811382549359555243880851476729395706991687016368367874487268203231692141365401014978500756433837632837580247744265992882146877486727300460363018843074166230078046071959683908913811892143440132951782992663895267845471304090818787813082169613213513010666515280264813459301127737869382993802666701016319028382322277551573917877218757940996809963221639405515020269771271674225677355495828171627347164072417013928264073107242830693088019489608452371093539185595012276030946949090100975416989870265275444145191685536456178305275247962122374426712415031112748207306357189163223195520966838178670292499919414699808365119902839317313190589633630767797604167728352242863017404259662450960837381580309446647701711025981064630481702531287568981799381655114958103312538861236995650561057829644304054585504620155150365743156171774248197974027301696182680188488331537492325578039176791221531895383195804723414034306441368434541213392691883576290167437258326704091978071430696188564785026520375646682126981979833498840245801388280166821767134943264915053070662377744786809576837646553669561442779778644302031715355454953121531240976955322207064832098171868718169908159108867746216030104922264295884811158282947937840070422771291333696614991421773935961685678084817277517294188903571401088728023911196089007056928356580577286243215857870278316138153197019376122694927286420046787503564386504960778630864926388316970358757521170809987606722368707414129094596807976578761311479960342150638442033401040840521946749045649543068804109309682728890173079766451018515854039141130188967364527882973994515334518540938422059160477392276884698178069254481238768715110937762335019877510206849825970382804064663403908653077719671995024425475109980884950960358562000912481658762160012840928956489028026376465457012576227944938261883119951113628455226631326225012566487393040555998337289040515213497126524466920753094238767439986433551085245780936562122811646763133844342643157057002114979141496531684951490441795967723668254366981343523948167994552383845434452717255287989523516239084019031049336375195244485728148212892854123771436855680654848804365879218287798867703443671107019557871402205525243131495237017444070330504183759667906545084078075255610648328347791424630692951944946220348690683686249458535671886466446215464712016116314145735768715247298382586558659531013280386525548133495340271895884616667993168958272101934490379983377231043847099353324727705299812545339063725173414099140185518717279461211434079577237638825429088239666389592160524588509654364870296123064971881461621437196896720893700517341995016263814989663905584396265694432144240839462952500297289353264656894826163583913781410839649908953558105309913281517643956574781644263401590657299270229078600822799067331477684273081257867517393863359165440919356251823041605759069306513068795750810767689789366962360852948278113862371053080639763091415245902789622603170051506296748952719145356894591353069442437860946822518857092190866371504483451688287233331439693519108424766822641641575745177702014739240396783432893627488617669196830519813687927155263453392524736563488640732925140123827617932110898312784167529645880429264588228009556242981200060902372697239178939582320013882837419057970999000138289858562561616584283965989409017714146050108796273293829766012309196633550279641169161876646706966571163563151141659174517978079869958112287387243861406531166435640369612407678185172845942196339716860344984738177381524333875164431409447953262578333968123825106966158737851408115411345865189032793270463737236000825584435360923812098989253653065032457224012374169738793988301137411804151686632055550953152794547044987429350062075200166381956031785896641631762323742471516524194645117295904624900243917444681421346828508226715687893376606634040167427260055445000284659533398539890149409461022129066831167494095498345169867106541184174155321917402263260486123962909051763009463558489942597555371357090978119013256629336667750083500164210629295200802921125787125551958882645242548038431315678096405628671627728484778063221427601080871552864910064796716725744671890030132838868599621540819309136877965112841848622895495180622025661110864881221310260779533405543477590906533740891895705547018898587732418548498865693962615246205161923101886891564726229054179331153727535054210184886744762049141564637555212934755499908746330441472570663099307927628022907316865788828592002299588341021107581814718675975521254010512303584257185815941422046625113242031802791560721625459875407361367018015844428211818207080903093895990483353830251521346433795140617023804601086081378263156715800428036673462990236112483015046867260393022841260925039107823232392198621612932793570907973672196833825336081594931676372839284587034382625216550066668110756988408378746578745492760763392236214611556182709875471693492456091238732311959699631860327818829476211905347257037559964802915285364917684214574676307288613042483119367939819992839189729613153353358784351536547975446509622131425546457843787097448299064317035549470928825254925438053531363943332913055831556948557476818008411588739551126433237561915408296804653026894103921877965017647242586937721002301569336406868110981792775716006481197990226224149301578674626167081796133765815608375454210345670355069457207626696886164549535387673690003609990055438532141620697498470045074897912236313699545546731327923260415570855821211752698973170715343916403992286200534324263321353848987062089536456149618328468778964229877417685477370319764719143366241347830756710211320557474684007227141208692605357328139588494034977290666028049324415240170158953303233305703729227020594487072862874698382130938543700552243121235856685740492403322867542369369541992968809535621396110106252892328020011531029239127985397716470764552169246621743297302807539434483864027383120341146589346282963856728353906007743420466022962810204384202584953446337919016805155997593761744409424672143295657371527767431472670442841968445785365821434781301374062464538955365770669944242264469749849597928586566032055391730489701343652441733715883130629206699597418757946017182962542251481546218882960829234069733608745501240456901869455651577821781313225324567315755856641958969632502329212241512821521177973926457957536844809992527126697922504712966271873222850313557240646401827240314487607694970328457957906768791057156108801870025547306223931398970103257730257031369786251155991920237488436216604864283239500828979076432600869279685893381330127935653794482773915361798833028195412787344639553315443564069486692812372799561458254721814256143943452269897081174575962020477838063879933096543054686207981309653797591310293989508644241159863171711492582462426490155588112434064877955709072528601967700124110987514910433801144378015680345441679448542548927317524408018568736821681972007231498121112246173042334665360491064124410476994370924937640760010975074684192476106282024312260916213550329235962700760951171277814522132744975150424021102917603721998791734087957474491822971093409282801591958391312960407258084634725735650781654020980325491134312323913659421880424650569035724613171512044112472258169782941852088556496930195713818772376768442424183911921396232279547110503432702985550162081705671009676724032953591848870857824069265273218582609658573015245811969831815679469757704385202942750614692790150560444134283926720938172727763248207394687309226368139265391439364103702799435996958251457650210199654205093414555995898414507306827368494535568256805837153593763731552037956485727272825745754603879517243657970284308407125025625914043597319066140023766816401467169660864651339740273433148619573201699566603418137984760895765727553691734674878882172241973181570768238767818939878452462897921764650859777196350746105766651314908874568469023608344181525190205733585219508684335010598048834536798966310452648550628863005294203311023165523913891401343820247646401691466455488444523131389346330350821199055905452253424007950898964640963071702072776283700791721560043157016551107108525360654450693958417808823252080282192695894935473186516281007542982084112639500413435442559950401836282111493104754377802253142992262244464724457458942570378128687333115617018750970619042709949700677242683483517038878536107063464038109154090390180699670210924207412877016154920332592379998351661844158944611109151608978375584886532436673893491612641936132232999738591776711038657307394768020083837886112403147642660854680764651703167347269012609559668480543048174831174262055336570573564273880913662645231813625980938438776059845628492570672703575941820387195604747822312764289805180959086623810601538947974041478868700586300516041673450927194557883169409321266844837013239346896579497973884254660488777503464893568033447875880009811549360994588381923799419698321605971990291543876774001755807794450892128727670839337320523619527858292930609200459729631775558299462279832135923272706156885338164531565342715001073220350104200654275227902702331645583104636501557713039867896008715428024467056712608280523167051785650909052554971067848294575613082062680169036565576855390760831009470911265666234040136125683242776040886106388308579230216223005911338960365723044258970723617746739201917350573240808465288314764016362869315639134317798452428135901385446833266762550926563892564832513904135808224180006736541697321410530469336223821732780876761823043506263523953896176269475508878448458826159383566613332278104152112465704060014431464012567442563751112020125727902742182014091520650054201451398130250136617343702358214459120609910453217958141905484445662070754907983090312849947257497102042915784355919313089539374378178837403828915094990573926330313634567209355605981300386880671241567891426176736701184469546878436061606050630657682206674151282184828206041838071631140391102845908492564367233274270676846684472119276545832157075171715077902127733377735847763639815010018418609351774659880424468286416747179403001374316765831570330547666634252047305752398573647553022476616650474954425055639593611444673756659669932012596430353087949286492758938938208834455774571029131116977514151791747382368307388503995398313863304475680238242160597884459912552314946206058967058006789337244507033876176608780650862395672511868248413250226873090288280851820706791386149525558420170709161588745446281202082232697116332558267569006823134013925211931610981965973425682214926782905668536700050105182790585705699763488385672551680582658723472169778464304471419628178677480690734925562579697035325888917878785281917702551935979487648416507110359447372349842165320163666605648081506169746230304742480522070403757708795117375419371178521714956747932726736086213598732058616979407324824700426617606832849903505308573213046847940417401355324583999615264238058613321280803626650637787063517564559662255711457412958528352619627217394334861232748353922905532322900656817291696597762698451895840554111610783331526546235487573109090076109168509308307219123379083698279965522111149187798538164643002437658128732680546651953707745225742407676085053992458588762105524104120649576812108297941645611471345481515853934249344290496249141667974230792236072004105994475566804432231925144349936558544768785023755561053400147055141066536185481423334628274674198402624732203628741159166580183077668202466887420461623531836842231605967714737859945278645462064095757225184673481260266439680155698828241556728783532061303905131868452069021429318353273717025056962793929897888279368925810930283344058272291004939074815725606169442577003703004353221965451702897668523286993592556172513484812556925554449839882656176189434044610187951309934105767429797326325158942175945362195739461299900728228478824160392460565874703749971895342103532298955746552261855454473922843967908805670965203932177145203385246564331404635717348783251153256476462114016389119443484458772843524837573049135824631939516601093495319910593294926887168952083171906453253238875361369635009405043023345399754369050730993908882758931692453301415854799110801292863816026155142666572545232216311003226904583970298702361642767190969449574404359622934667679502597301898855931224556617592309487015404072749722436190990629454187886415584735500520532973737810280364471388356150054091221148104755886884133389227975449245753661031666642476405644735953559143806914844591306271562788574912118038621644459679070288839657764446569063892252507454197237369855417371874053769335632200035013692411052997085494563923068563467761678207070725976421372008238098231140650313421614943436044397200506784364989016752653160639745274678855211476500669648522500457640355760424744082349860767258025664952871914790380461296697767341083151976805802877109359753949994086020837305442479917032503498977696685647863222285016500280512447486939063936498688292514111723170345974845317380066924023300507861134451869412678134723201701615812133448404366349896262734447716307940258173859270175428478513125507548968262394012232314594688018326557077933111633623015333803925370334360462414996202899425945329443311062240473946240011482226779480173099029718362651577145864309871738469398744682957014869329542614143912964415695366034267896287139979103174316806510924173989296386230088359904313320269970094510694044452241281065547580687800266615445050246481809006492846860400148143814957720708766625475359129352690421201319143021702951824779021044029869921010525891416407395732978352037854631614817982050408641274641771508356166420965026711045325442542364097891685936469277277080984269460573338222065203283007260570897229938962248521389638030763357152647763769271084894189354263461963491387973739810560762066595689784286394747258321873156619147880271902876533362847610933334185261298849102563950876199092580493176504722234119696567581083246823653836202644630378856232059903137367868644380213138944404784425907687950433279676936111134294947520048657312256497436954218927134992463603902292706269053752716340342728783208384400963072570180593769713917478885873872795470064724467036482683283709059707371941572438815903651552688992503510985970310822698741519582783117250106773548805195179518150932267719251339247253260052671756650747569166702835579905544473562881213596665669932674318552373090175676480127787482624567603246994195528727837842523518113290571404735166157654503353650673861349158273705910930709183738798824406606250435593810329784819730853707165530094100175913333952255281948050029807217603615646087576378399439855825829296990884187097587866232330574728162496491875325195087006283586207637749667996024207792585546659876076249079537482180410033791519409132475194746295735536922373893798034089100435762536305250895707119561865916371573285366233428535336891091404426944987254301034279722731516833295700876364484833804701160546409920855035906121530062185182954519754495075023891765691343052373164447427762981760430253604221339480417542970121002087887193105738016822648087307583433415303620004071154977004318994170837547797814828799869266534883199656446727517660297828775988476426957026346696310232725601521434620811747494362074244522849212784235323873664665897097277024489190179555874918455029740272199439039851642214968500747657722790350730833365384470305390144730785264946042698547530916761722337206530823643417217833476513321570337116055910552084979624506267820388641398639278603931208383166588945487884303385244750378590016264666746404339308264894840262479016007730957416591075732740243116498439976513468893693512439059288926280813962544391435348249983039842464617206940666178135376171573313369204712572674159698093738162736172967992568294873507413202119399551391877166914587806352321755103561706173070902239662523214784372606971197681782792179473837364310634655552702122510808765207986216373959409258189739488851005503755286725625871060013641304455594192508574887713128983526014124935687154045550513080527087907662972954666953334690834232425299278773589456928478623815223527933955603444371900265535694147908695444592491833418338697006927629666007626732398501383169287988263557541853232227513597581816809769000603988449578626951996367889613380409611842127219229914010011150744634111686696609413577414884695726268522206411747267964091891408638869738435972965537156880246166843831491687765637837765250219932239173420625787792926360788962953079266540150631847093823021387431409880593591172017651310848883000978218501185731536350102715229562121497068104023711423519695310056485452738027971831944747760271509839626409533021317997821983362778917035775041605686433324273914140144326003945573741480805036218748760537494249812276841286246196274752983929636877569677907902482339103799719446046525317988368741648195517593913873029658178639193644049844859536455391285900200361110770354067290450665775500947863157293502448942992747800677887835579465963673702336153137503501601478004137631076727416442176290313455419981647432248830339671907185115093759441824130331929222937105433422660502395024502604145095198887185687741723078109225074386380371755065543915726245705079709399085232920619502837697787591623001332129722132983294943141132186517274591518631888298755281832341801664115641286267082633066114615167283474170592448325734922876058186572896324964195013468120953465958826332130173401219122694656341125833193807262620106803247345835242996691678323326239705883406842648872980340803698518721976541817462830433045089937562122859297089917606105148571083974810928094402515229078693305371770428410860615001640501306793373695786936022272613413019515971527793177363849592993482356478394142049021402769966538655148112820912133594789257495674237292484065359137937000750006716352172687311133532119297856862531763835009609866782787316578949750792112461525508943632565668001331244440409656339905368106835559031827430931144897732759105371585808818672604725457053132977005234904462598143870319419554699415576824349812406942954395363882517813592781991295522769865510909843728894900680199976044086643965510250207955378341937341459404392525599110837606352357912609852663112539234590947970763313723351599219922732706950403970053366522278145251893226833139308709525800032196411685021232079434021935603007343554931347357528415608175963766857784511398282861385267033870756793422436684196600508504544590447897100176813636959588071915743744728257382912387587978275008622872999652707197653290546186612179991183179285879909440690673778651755342300196380299716957853508048961634343523928679367224249756465585712973521919718333295998834135067908228209541138563305312472674079539551222887958512546973057712259129225833455446980403967107497663612093363605424656797895528650045192395815841942064455554528232089629251766187326557317325703464147104667431009215730122182150992299435485198437438484093995034976443379655272325015577881214391816367980755671767025739037963574227353790275769993272542567822201100894440056882828423033059513370420806211494461017121239014933462167823568765558134863864287184877972545042808040603631243923997550649780393029131924429806468663949814093862155501295514020183397689122038897689964853243547042651726044715399553810768169016775190698684208529832047121201065666880834149873320797687652584099164984525985169321193844080175647857390380271183588561170862654688249552091297524130382956778666502813794785282364416228012214049310039477031472515521879104082409469715579408396020713367179079034899075064718498886485122031060206006056491318094067842043659678748344199477987964883063050287715789247193014130214136986529061676374472153909737780856334415931168802162785261212344088574364071449494399672646235263922053260352197804425814373007001716879534571290558940338750790663863483891824315128577347809921307726849225887088421522438074601941969346004799640549400206225680127204027267946331954784013175590210560567285519715039530275184376508248027404757118819512483000025911149144236582691506107955535468279029054551559661228047215356623151749185813386774014881739818644196860622429297698761481455568606443915442951343590871449562508378839330035271469232657666780850166466725429876851155364702614828412865822781903094436312838515436887232636699701227677399251600736685266122605880619769893605931434959540728357565914933805063289361680977251217931105747902174607815625356703033749658862935031221096509738244118010104934190053608826488485403226816606485970709559121702038463892554879672254938694186851693057289766562946088561062787148446146412799717906301930981513969137996688421811524472567721151510384860874368387621092578000135907915672506556742612759828859779280318421745547892320345343338823282417507129539378287438572105882075409024234008937876151526863553455461310301018111413968485947020689240068973451912387737509931429947073390133371976507840535302690162404170260404784845009175597957725687970994280746703535532013575155439532089851018721634313827403991804078317390895122192770967046859502062196020716265161751910114499803009089218266251914116744333929774070611243475458772809374998674219221278611127094984919551054015027003381012918682717121086550006650403701504818880147574246245245076086843637775094454601759688376452982482490042227323544890607106814700099672992812338660200740182776889044395389133357523108325980451106154607646110809802731254476994847108860819570642043999822467850475490278428070624869553799855744560913540615135935392209018274928098390956310435796218790395879286036180898616355718085549694527990670401565744666397057912276233997892086164319068416013780160460910492602333109178916254593356161551104927400244300065272674352051674251021680833631665888437057854773721684065900803634050903668015887920123759050827232744999489907287788790994123936382980216890683590623057358047174170904241236768922277579415736113339662099475046301330861168907462727292517567078637501672852798436692871427092102225813226471403283295545930958022986714569846139504161652465301209548055199060017047872973885953393206795974460739114341968695268673250115749184170292743319052717860098673314000785072195865369539614756803436739581363093701348966346053501054206892192553030496451274479186152184186708175750547468389506204373085772799216702899406510169049634612981012278209050941399179486604608851859265221562076448402439924443065289965276115368225287959290371329804494552066233571037552995195552738886426945816000966697033150562788938570346441668050895788274930833080968811571018901132432109946848658848734603003819408566074472684909895825162491608924205739906319705482264745784478958777957741601869940417660841438378470969276157613648289788604008737527576553909760639711113071372021632635595432507831350437563405253734776207907825993137024852007213263498735538326970912820625730746575762241403607447130280849403623897126682613728898154628062926413426741635157484537224514867362658426473791351000996693317004686469576665868508101973572779046429583317337665820584777725597259106439938193910809231661385605078243274016622968785372235100218871669905356828713759111969514742601290027822417520660037755060263141771335292882300738206027970654977099529158903978741069642800325793395154697549014543393883228136247180705490372997331276791199463363951970772643188404677532931852649340514603203279751101978131227613952394112081493094139021603762014005281721728901014994380097226062436141276406151066456733296494762784250820432774797330841620847598848185122163395735684792460256487942301505053362462430826172362682275389711489439260779338733004224366150106899805039034868296539402497934207710362574204053295901371006324288022264478205699547046016216382321072986889238131043638248818595337157537701206477830210854847356076528813307401692382188498577516502155821937093903964560114545761774698777529007274392731826306383301370601622311331608461407119220060710792505227847307967666462550053343814325785021201994640001750796360650216442766588629053064750886901225112076353275067294648249626426831799949378486936498241790558458362635075318803088920704917042030300454493165493450262219739186830693619505429701217803994709764767185719650619410495418307864326477176758321368816382513380444957344101584235045250769365319621790476093160884257985876952421380950348917881661023277463826038676762460544203004569376530479009696459649874296236537992890145764846377516445439932590981673081732938424778605590388520145346442459158346489397493087542943438364069774513141956433981623042055059749217399114663314987888944808747447248067146331879382796292905943773721700666554258311730792327958814193128666885686367804393010267396743898408357245318261072223346105311172564220780060497702532172138840764526333705404868166187107185950132483693993085335846372250092676194984173082535944811567099370904190969455954412649344346752356001979645190865224161430903719907294037350696396614521689560576319655361282204003360483608582193160445702629682133716077404383580827124577239785881713095739240064798055022681022646196113135742165313608562483845653823431677498576515107734726479338884335395593077363550744956318514010437325881015608075371025266897848432368964559176931957222973285348332031474816421648694148423074179710194174498655496374158489686827086802450242052821649811905637698592581473419477541321024256371143203880285816543914426454316425020223513739157828314474333624297910738699313007780946039363596839843812501685269832879451197470708496930128719799975697938767002367106589554468918764403362768043761031274906495167195006751738073801784798865747243350580382397903278923591481683900180030719913233001903972836856284040967882418457360966032081643475854849791122995362831004178896429867665012894320158657322048273945421539154288878319454585783426261731873345945588661020166971046607752218278347394377695427990199857339076282510026255404449450992220032709596133371842639712547153411835180512183462042378835004454576267315625322633897150264986736791506391360235877951250198828429764686615233264649357961361943731626454947709033397606030725325604602015736870143468378476225490807973348458842777529359290552821328250687171365447344220037004418055771414271078568534129513949623959081878898341992230846075479780903199076027670490501627197384478682679041908432952409310644289755769817121924557367228847928111787734923419152647927498082996313361651985379309010539618651217220838369392027259975879560898020442968972924252805062977722605948360834439915390189294902212389047339229404005017404407263951254836818433319644659072218336740371293748974936207650904394847456199019366353337153556310775951813904379372051164796991408290109760447605976786915574571542817852616657574317375240476232783596520769832491353597270626331686397567855596848081600764150954334210499914395601072135801369375729376199895590676788659080894099175118406406013517854246328029625258454207340911928611273515295303549447213731878231996643869628112863815578494903167727639117757221162714187197909148009117781820632092855195693034773837572425305902299237167736638334122229351947514839450420331649888538969211550408543196967682109641156899779611702740041269681190457186145399043546203004680042150773641289630065533046845120769881363772211282147655804050183767763377817674990944547439637759043250188816791184674889496605263590783990784013432484934912400981462450696165703075469926275181346441168282959851448438010400591730937915685700421311059369844197104308354877780006497149188663566206543312107761495081414672936328110513508458677412579392139563352633844532534030912675592604895380694351098806544163624671911056515132750312833811884941354797556226852702909822279804896766085306984027373493879579330397059455040387308624435598008061399056216973827409861305181149806279525895815821266956713659771832210050046850862345770240171053559283865044222600441510920248340866414800343661856134740258212356618646716862846165267251302880227638864177763753832157434831489988942488690529479253074574737594154767512249184312116598791742236523433852921309871623624786440446562055228615510289268305297304765966756167000666655319041678120495596483232813257699121779743501971159406606842979029420306273900223104576006047319696853880978328188533536941517486656070168942105953205577749784257446284563194649959355802953754869794360407388012550509541412101356233895906902590197334696969144381184822591431466122168854165559360615101902414221191590056537907246303349483158312107178944184376756719227571128133051482497912299755813920565713483749573734334246829597772751894420779194960921365157802403744804510458654610053411594097685290838420732617815736340406224735628798165416181984311289437454132713781695693309467464177373091470332941331348275524762645296131009427140765569298064437142462947008985898787618567010524164418229974877664500498352213391919510471804848592836889846276518072848662333178938223046936240006955082752227851102147264936853535399940781001494193808947394392849382927107288565886807412896015266077715276546928118833789440058863789186913578836286411307977452825067699452085291718722378238636254513323528186965896467065869525777427059727983975255635377484408402375583299494056615295921233206496844851397067779349421258658175109930297670593216646831737456859154516988868351689361662998745241181054206955339190031061011848931362366530799487993469903587072376162404231856633981145822899588235187197707389091140633117040219378201818471301690377632517653906445230726649911684154483204673478694453751962005964370231755986510077474589565713651213344691190264639482700766942147546480640263444189047965030305398778635238097784720383121922590596560861069017350078762925831679016943233047813117843439247216203389523896485873236606167657532336721850810482556593150228499806707102900954588993168221344558788517901843993117251959582689792185508389686042701790037584396058030400030286729788658335569940907862141315650507009927728908747876248576829169259127947734053190850638210975230832531985145456040264417200339099027621941428592328170827802909618940040388175281340138791350237045600579346354568495720379473449965046951358062980165713383215811296503470743840457108262011777032920993253055436992130572699599301117035939145177143605051692159171004561860806000537694130562533308765476170070213964045310861647805916136703875941408370046337965283811687741455200259593981576812786006487105805307408947524504391057425208688685076064497164052647716736784704574324290843698132438760407816069344670181483397147795722839234907849123729545927560625059344369329379523746944880074460355267061304120607674701351013896228980745613871255912943267174332648369404888155698177024192574620981286507907774706917452520240901831500071119494388159611417576478793388091364252022637013344604290308958810853380737130019340477989845295270500689582686838543870686001979587593473669044127250028417213557494045661828313034703361069584417395537014011074634014336982323253300085882569449406307664873102988231218452687055018845536236402024037765116630662770754818474126714936580905434534443950792759343299424698306686108458915537943981370878021005801919714639713069498718772563099135299729301034998877053710094191004415144373349654351583969932525993881782748375193318615589921248985599053446985050850288712898161113588420465072341678518320013301123085426802577794302474052253147422717608692962492828861802286594735354605696486310692825776907537809630266478340574580264138365821174642401851796491273912158846240092828704258007176242082085569185682875481023138991562745954647760852333639945250447503776288506201405639787172380161390197300551336678240183427428248106612845772942958239769014222127256132308718835464794581366417568433178994013894783261819926779760695092738940156840595089759911899417918960689650011664853593955308139282853570496788740100057757471795072313863526636171281654753392595380231258731465089873759478958893912016593919584371085981580509850344894756843068193697757147697095981624025955504495282116359365207652550219675343479128966224287884293948025943018021878009319983458220981392781993805315828329973489249129793779740129834429187624953524845634053671976516387681051984771625124197577960824784142922931968094284777826542484823783638758677325451771801795646425059980709922925346865146299018651105917639301850787267049942220743475245634696390496744444673646282092907069070970786384259724852482977633509417382121340510793869513844341286113662359640255594078570583870998435212754641340243434124404089563550516216066573267058247011338728967747506927669455078329292899228085437961046165136288640927237712023825161389376901450986074099353571321947776821786328647628484460873627863307140940922424811157637279048134848993858898986841556884085001227633926880229751891367789155039909125920548399098664662665950128260397196642757928984663927628522398129042412343075210884581631939329486819435414629146735994393149281173152793689797925417389606225952004125369045686932042354140380852257869321422857305282042565265421337928179509381386639916233627815777856642897033352185641863469663523212956136012022088754181070230821752034331867192966781881293243965693655113102195886111215320811262030764876369972421702941894779029484941641211315900450784468035632171881393781553784794333512164241436735812630350701348796878378619572048614332838686274534287014638356074727226635111381414035808241361364708235897496516772478835072637412736687708153532783274811544417507059335753660700032995780409359538691215482461671082487224487984483974853258692264140539060658600287654621044351916721463415822981251985440118789720146321522071294001707044593130709671209129782262968260160560377155902416833535629449144285568883356671336123893619306822878138295988484178307502603625275742045670702340478032128326838373801315617770113449384979824303594601661036322234854166516809772356651850976010664115915835870390987226222345912018147359144659770453242087989173807543712140461381713712265623664510589799724787453286532315104233705331627304709581521945907730399765855096073530260245565554301777744615181226178927282435405566037235824751176866977948130126603556823212824133623905141480253195624772248135855269230850256546811246792371308490482981446124103154333329846638596520771099168763554999310083078634211776012450837083410377664266108657396450896292704225848356138907216211740940899367220004460776278423851869451145353498978450032343443033298059307933139826471122986699230313996957455336436790212966443184904800776160843988107162813043897712835978416287343477982333024766625337492191273754116278785416311428355042486642750449046961903186888499536030536530860221414054467115952695710492886456533642429125672885457012666226347451118984753303236502831693520992238010890921855681364840561558062840425469051303662045505268339623128461473574646484384023555860292069852841036605931987666048732802305832315671906155445968838976354000443163020897164924539833787220686245928058162360656586948414649929866908366949062376775545457115682398532229274870401436852978939470022817970499777373964863256355635957953480056083186025372050150759252264073536450138970740269403676480858153708144715692538412437122777284249090705732510734736300497698688370292847862128902932941733163746528712225829630950090594594072424859708278507747968260675561435701925971593007713984399026759812942313996612904223081016685673874388876657785241269225222414696574467867471262094589573305903506110280791658139691684522079524213576299354250739576632964962680753864285711915328221906419424239905146987903220219929284132268189383674017544321725977462131807837184269992093841312525840323480790243364235328609832430626934057254445096718507362897562460615803902184968187519971728471950433318965195120728083430495285375636081762019129629760148386328879557325753545396358759216704775854099087909005028939741029593091480094494162474409189902340238194059781652761204693864595661531335664892846732084097989627075701101771610613640884263791473035465120247812964692776087482363536021727963745553862994434427021863831615864619215033226439108298569929830017939012485006709797500342005791049932316391638753908332238365359637719572058580498497200351173399309318982285617647088793493384123332328112979679447985825915564566836960431064290304993497421295143580574170497423067522832840869400915251735389432775210252896580925536569718421528419874502108278160552811557432826438795384487350644177479104405953986309597144203071099406979358804733852671564492648601376481218139154551379692513347332215756032529549022356012286199258123722622447168238039902270507858670581876055559898076806203115569615985423479757432190006014920495855688032351683335710194724384058188713220375258852002907606771463036754741329579338725295936701786774585983001325157450367702435116756313644422534837592288013632669836247464347307042200035536422030968247934969148332952117679465789422345156617024754700647150451674392563826729557724451949027318651130193067864134673957107983264821075984694790765279863590961820529136565657385748076096746687296339071136079489946033147701881962313387538813698875682594569739044507299651151545353996134453968820271667502901384721219684628496057217917215483306211981478134619607071705208456318454354293828584735468041003992985121421106939360199558956461415762292015509085297116125563860362993530591760199199980270676909625387514447354722946646753988104733104903918189518788000045059203204075676684713829120460406107085005432358259475797307650755240104638047215119176622918354770792165456247265394376748048121319957251171576508920427586707236381532571614116055378414792442914361773423701820044913424554012905826126759568045565342981510466048458263215823966414724313330190693628769376213267719096343504243329311367284337032715786657805946425683457123949352189547042445328417021396089758286913703057153917579636694465025687174755475515080152410590846666875682034832031184860293937186130787690466645013382836903767978189969493661210211525419385363240556574999237041556044284122081632437599607497892056484760437586456949375052824165630569203865229397817932802189759287751560752929398508426112841760109650002440481756858150574218643542339064848306499819048337742907764275059551836158338273765076303060539835076984173339976928763921528747850037472692375208462876560998704060499900714767061800061675611925389001571666180022492849504831207853986395707131261286473228135798299610742247335691104465739708705950681875544414733124649849057097958226048177362627693958284248050733050196538497426824890349089847235639807383459687002138204688302639237847241341841716352198452640947276750082583743452267650006529684041690848613779518813606614857860153956996023003977381507811029984225237384678133765230999024486529354696623413185119861178476035493036856117282578972133970422826807786773260448136818378470319755488005194204748716723103026739285060679043092052195868527244465600606676201507760568789369630320183861508149274557617818567448315175491891224453709209922065015022621105327936419886849819270502240871898195182623347463144847295669869096021792093474982805549902854488728540320077829164091099989431265156540520153440730424353315842858153681357529919981151898372616792538009974956197514281352258341659986127011811283550268500297191455761986057401816158698091940278908921467858158234290366920586391762103086418640455233014604118906586492997898717071923855471656806557208433331840899156423721113652662749745714905742740560609964979240325066975652115287964348176448513125802005270911426917218677291706451366558129317985889023675896214503409293996942935975294519324152063917111546330612322174560106493411895685068100458436977121606633361945257099723121098108608751121095400858328366330784085577003574707576151795532723958481144059869146337902770168161790587197072471718899637091234395292501220425102672018195904313238353284376117504929153319831680903824283644229408944903786551376370157906940993047044394310520101509426949274028993796233910116335644259980834713814177208884029473776689447980389664480649766772391598606226860110182240858391115166529901478891192498735009590859616964388944488651381910974242775595032752079546155874455153939622117795838981477846896534786494810337115102886131640329697102112281401748160784495874560518060039591084375366592746611922598120679686853251897443955548036231961241929442518241539581224748722494745155636141880595859715388932132312312628951265330002222839007031705344986163452056762813111203999536285195570950595162192984094514023808520814406163580515540744211301169509190994544402445531756860435483179027535636089006102355825684049919397497332042969571247425395249604732719426181309368280377311765099954101398819330825697765943967250920396723075294929952033890922368677726513925232217225064638941696870416349007048196124366479586937474154113759491453441444156651529783061634074310334451830968351183740649072632826961803893579539577845372118460785610663572648096177217449860859566732503351082771208753570760995681247834911596649477176573780131687673299143552865365755454649655892834152844434682056292623940708110467058998725156464169814162292556941880428765725044845383361942859749373635472449370008485068732687098012555240446612083057651636000541616439209575666447816442244872091708093533770969613616666760603622629301610706359846496553817450745451955003200110966544194843752307204958860485112880327388844773946099478996270341291196770260906564517559280152180574112615446161371422168208491787972154028555412056031119101639449969156371602794669294566147573177670495219125147414223487682597060169324737378320788368594418544476940338242733288113201668620827731753179205942131178489313718294557071802281003890422716327201367140693522465156516078464079675899940348689985630729584766619038944180821294063933113293262210536849975544981907542390567976778725077519847596055332217506296921930987907838735528144198569929676540010619762885739517419070815483716930958632546844426500541817315865217778387695532316656712418489087333286318473665040866182419906603661829576151686820627844926345733193677393311168147706965833553129218334127541713229434044231695816293987679633879929193958791686733949168533191624003887937166377309824818374442115771307206675017666434032914590578609993437453280773404194499571032008904791588200274413788114670941139687532233385827095291083637716999807789857770525562802009078283627115108921563492935522032600299532548586070984354522748848695845911573355321966499115896371140015681875543466157577354815272624221585757331153721179802839658693307581582918005284390950197205324014964358293261087044049637235904192859701817677784968849667754638608140162668654966433305037880285789802688025908341557321542281120681717778020216292559875422409398348710302523826698889010807699636297662677655324078807029292473329806053714758563705862570145238768891381784329797535801943297147348429121286540916103395721464255744964075788815588070253520598982282958800750619061603875387237035407363711999003964836556073212010768917847490389565029518403915824798482123665237833566504385459435891646980093991969796488789078756268844699539068095890235901254825384266711826434891443624584811199426684407950550677863207613342284122885171687197359722393938157240602838681283777153157056317711291976728830713369240533354264948525564885313265025278764502917804289125399699919952438640323579557534202533513190682568121003430860650826211206908417994711163092265355684564371652444431465008603433821448403631999436836959962393961341356448384461599546298223508503884607159860946535359148140246203213557524906215249643510446105258244937134542876957460482561885349639568967976573249319678959445577534745089803306585974392356537214569487378077515824783800676446104789770034881409082243280079338324702372234255755423992259187420850514763332165884327890470832153555738697848188878575951501051811984212952844459593620988961005870886990084355529532415613718279955392577887950548621239376886864199420940895371432936178403784414950965946483938678988654719406969969912380933064025576241686823869093331854554836718891059526393307346627708142811508002692748218291855715928909760789862975153402223330226551664163093181896667820187850164802334640290246719273485958551003974842228426071264224625580906821390171368189321759608794447916408133450550864051276527718759439324200619563824862210997211236378659537281651199551905250807507186144871739310373808310087630402510710878498307804571238347892165579717128970776007559155390274816091622282259991076999950491447323413971309093795271644026767352909480833966927097778476196761378275868202621949403323198739703715374462976660088211767568789676651387146921963793941055233842673767547440892055598871288993397028124135648209050397943841245180289913267143799933731107823640630444124198234776057018161238076349077239501512070289949392624712578210659784131440540251749144852246119900528570265185187072893981576231949877322205342187749098590510599689712776950987738824601203421154523410052389457411512165267383671561957425951202610051509020656708991077950107179853503507928794170199256436058193186501327941843880480703542570574620554885496953437784846263204383200692997443578851711087930051106945229549058800325713568357145144393888193328476490547649220990607720943895901522467955719354925270462132563218800668812661879543990678568413608435490289223441442625090676739681607470007367728522795218748169458127313852372748902108467259715506336113521869955718147533690940901116657482931026524418841461715205299252782333157020627988468684510029543044577561206116659027164354380297966763041302099769442598378507993061849003162593578717249206989717158222344399010468838322704032024682239455830775280355905866010616448276637566356174953130541849730792882682422555970540173559895012932931144543698068298793505143838047456564083116146277391522359685447796593771650441209125025912862490806773398925866664183177752318806543285701872657772235456871126447619636447957161654473388965244597648770379314972544464755428671203434913960220556287175992914076546773340143958908666857756378568522332209987942172192080232286766429867469809423085350166806289307710756177852031210434853759460947949337149703316038489412063095805976901619776815099259475668677057100966253264122406896521280182854145277465907807419560415005832737357330710463020233230107299787017790345252525340915343554476250557417202680854322387203641991980325866524139745450519114281796210657515805686263245897762691244944692731340861414314581368984702952036633180626107455631302408926489719560958293253976384952553299772762355692105529122460219454966000108859342335533880681104697825682330120195941054594535030075664022521618788318547407350627669377292239422879811058610134771836999368691748132235270459000495339172720394271717186002217386031315896749081291750163686627187797407949704513683823290505387146283146942662322234881520753624362904673272609998959432469298202518150671724989229310212113741235820677208373606890927807431661338284214586583293977205731970640418634429576468407888732688145194967059041501917902922419766361627292005895372962178311613279175108582559336942420677817312064629074359709940976813165516393060742548365045824575090640128933826173146891827083455192946366918038737150110054643594046147256868186294918451267427916680153136830906015776881401830342377894942855615102586081989282932418110390005252271491674649506391826509078836691631577477558900311697325679649570351444972520669993057881680409780802726592154330926383978127953165326190249949715541215754762704926143886200862851791107811877639059295104561899789427734253165131786825559550337088120947152956315858122917418776845916679131673975887590883003301656720629644095997726931351966005019805103697124973798495454090905322658265240025714929882961002973943277416755590271664485424868376695260428555211408143204825445525325669938052306948147569207957012231705526963602305023356783025204588508961619275035967125208775397220331827460911322354789138415321317769937170230875315172589918816133329172642841872509366194788988503999217165387149824247789598988932529752938045333556058133618799439578144440740578699860424485751243266280321945627803601034870366079437008396014856481306777071321846683078208918653236139333891085379834079677742105781281491186366107362045862213800618748004014075215967026973958511483626575636844517117779293179246543007017149422105243983710042114444451838780087895482543665982723622727305844336037379648841580207017737716088331724947935583510587761242929455050140929024648215406078732079844433014451485817464413347447292059882992739400603891714411623434133309880288491335223026636104488405537144038338969649254332303309243318523240089986932581590166770832281148005162843267290541215545679545667790932461322787687837429993769368712555133320481596687643935024315404232150304012741793529605765389963520501939196229463028543808893473333941109722410938584776722011544763219125673024478754841474249752772559455067409083197578694497600159919452415537471660054594649149382296578414921343573476493341276718203336542421077127384241474108179659539216850504435812625915092610879208063825932390864557741229176373966012719584675494453869632507312113490131228096439427231829968988673610095348762669481834314197064089651364231173648658511227937387835605238448732059544903525229007603471832838171909996381429497226492910772862927212070688472183797140647955647040337698360228253812356671285644465812578992700671891036259360686784190684115850915406838408539695036793134065930397032805328199861577028250836971864197548509442579728549302867724890294124087070104931501865125622223630024425967027795839592075308288542303286828161287190525819600156338266411556528047095453350684481875076627845478555878719228532211267017690244382113863665415377162900277141025782938807926115353143776342223050983796895787269374254828498392553975767342516662664564833531498073642522762633989060834413139013852188865390264556426924012010289965105657930606794923239878138595259173943660509246311943640830255527591751766061417594870617339286385343773058450676104114401323231710779451149289803009887857023892285769647962303507827744685473580139497208639644461021319304412750472683181813087218605468404265213276304694456115592900519433171521451519647202214182065468954102759832455422509741710024244663157949240390251116945254064690392421773676096959366726513023526944705295432908053534675600245155793226185789648562215873951397628374390616563022448628986496111488960210018001765056018988294098707010170477352365583320963314427972956994826709954701244702849079171958831163468482431141692697744904808026173518621492756745633462017149135975425249762273340803894684507493677581628426880002326675725068047071254278680818250907479756039239567903937578065043004356659656003048860293576913337073037016400741544656345837133008948760945141407756775208439993649433447552233096766034116895607233757804016973308272089373982116908202145267426019468381443429747915396022438117597393101047247034515635586225869630880618122483874731016966728968809906070118510219544434973088858693189558085019322174387123442391284915210132909014681313019762524586158024494715815914158902948763572660274920359911255300725477427620981429460124748334917914766184168541009050261283430216491068496005515734422728556462038939302450735947988213893466502871425918072002068760186348972265946546844950784621076765305201826515661360143943467007596666147823542164020593820226696390419641704864413735846401875399619893992082854232663906293073180018425138742521991648034818031461512778190362850247637466114059452008550335305210140902781023210712831451180873099944662300278280695587198939161400973674246413246179290433348228994515284966246824450722024741548545738750510943132833676002939120870486103578303558078645631929170675449803906088996858228286990362315343660294141701493828831115203004346416424846389117807083309924123166010358355838770523955546442270070532673469506442680023004511091965723081839957234048643058565352492281591999021279798203237189828562806051209258673864408576464285709387656795022771051671081808381363535743579127688468954921848312911985894689411349344042221908116103019828560637404592103225813470093970763437230588483476499424566274758338437925952015327495535547413556792072890299683211285796233511158077030236112470037815153609853721046424395191885559243855378393413156230067085388050907477317102963279020843207223090397241220757725080967925107952170404814554490161084637159263612261263767586288671292370005838442444965508950110399607523273898558866161632112413507341325144588132165304160421165333868183888783246244004924361903975753475048701858778572284823110735274481227574264022328615380295032727609056454457911151858893488954532609963105505667480965180736922619205426513297499582661266868718038633402936982660463526197260762309913272762855735574234459354862875033636620179289854806975225656695249591318779601771187941718399862061843140547538504334049420972896335479443479323667393838610374914739930208403650032829305142917408941310426517026875333828708745872868682023995711366209566297563149302257126580739653091694697471761081423873423812885316566896744543067726145122740831926459015201210359622471739477187216896993141801942319763012909704345131771673732355574826720223407795321936361594987732665505132714547109248695490926459552676553444587438035491446933498684349783038391435968328473148112282719069222050827371637442222351800617698000082887385132178989179795808178193763469690843864517641045113498852575447196243588732323903167486801548737419288745195369286169494662525707833193000022366707440889658087616318546738907720357898811516534543449847135081168641302530297986948000514778291203486674964406510860647045391948720036632770304896842678823452826996864803552731421174407466690179015113015531264779894231361846367148360926604588515304832392308833765060721706243620285800253499537871936608747016005298423849214514938040745696984840680677699619874207204349318867190231536265225055592037842815056838140879136415772657360970093437636713084856399950063496855492302380143109825883363067776519765529532997140975935013945734517903977339442106454842242403984720819885013438828527015022584640417877861754409777177326523622709466306699033534038136900529371317106831391448718903971577040551971502046811393674094377708438388147354408955487351059546334698736738826393283241152891388170699775452785070564900876454084240951179277328748507887632732644635086177608974989925203988649540784506979969978331288205152284400778501584714762320625964604122444287985252371988903949523643958077571859137968370693688049139521702429542634212897753911686236534037213256903136110928270860837986065167564561773234734471550594641472293611838812725484743548288608521937153422765701930954239821937628132342978892817917119932418527429534336087284084592164376521017842922797476906744780001573834223113243789433155388603199040023985874241374890943907648359089140256541653596902307895035284207525942220086540047166931538080569849023235205403570096372474212136624536328245012226115064137328352604626355839420596351685346797645933707596018927600367507320952197566798472137511031326774017650283129915874823296512558463450447864605084939754845658063708223402930937036985566493111773168796314325231405206716567802182912477112456932218636326512288544274886792246751604119235525697052552446207017464475682858265342135119498629169844413237485601119804956194556412288116476048266199443703602433135400638853113870977055080578812454270669151255913734932885815386988508687310187360662509534457957683304292865527021838965665459088933443928879972102487287795802217024379167348929674318032631589538294750050634611793212773266688036887152993339009205396901867717257086435623470247057502204237933133859498042918352128615318093096171149564622246228565133828033016214710521678835937423043077302944362514298693397355649644267344157849578406319243007726889685293747603772219633812225179410492429605540589220154075715909967704753581158903256267966549272400900303921016230455420800920530986507521965985049856515326538078153655309904919914965972562890008396630170473130491316744166778014165117655313307618137322536528455124758040209550140722911797879913192087436599788127829952096203398510133923673909339531519932486303690929357563821421323534014830421688983096903771037450376372984846583872507130110848357123088236046169475414727536673959734471382741858893434612487460100647807965541127508734094971886468373511558034702629159828674997042824944422502632603899206176833480699278188104895072795636583033992241762040178461380731727896739118837666660731716654264988098579941475296043567359018878471744139004984951083909513063926504589141012880216475022313068056969696033745314994056336420785561631772104726731524500206466039743601006492935188690469151402693484727780561784828805445752575852677320092362325127286686455903663962831835280721071609563293699167184428721802340354342498528978381885862528091931908630512402149994553025917411003474694001015879810862261608398471341388829432255138318803097954365178393137913101561112644392098556877523185389438965839205519229380654539325791888330523217183463627865533273744809241155503182034150838971289487565547956998259449626429732816885827741186891644279227535757626390548284666196923819538047629374635688182941219627223495162629336808346309172132824418968732381091198718716899132565969456838090876316170168632571021300898331421650046763750942386492991698834352592489725375078914135085272807391878604731198871625495688686149845220291769211723915340001416497957526380607702897541471811777717879841145904428820866093432511821065632722564327755846907369304624722605664257727639168878959493012302572791053721182552978732002836890757503946951990758705699091191666943109651267353199018523248501910660187027915773845299046890314616667189533186079817224076061416038604785590378966306296471811422266143726207407973734152344745154204808107716273615931261566094149442462743130188489987112077174355720482515811551834853143163403209287510709783116649447437003431361044245471469896174965613657043730545107903957399157369661538312455269995398155738134344244289724176662264696563330537596489961309443761670841800483184866590957790564483337531608346266091802324401917952691606174112355213173536684480648821768764084406405184341970768708533363775838167950544276869817391405380418270237012627772035689405240360330477725366681604714025133194831732010818738942473647029875931515042804361798182110252458783165515193437289447598640331566982264129999671557082572650620921409842374874272485709431524053629550236661237180242349363310789749469120398126443662798912613169812239316498528323152835828981369762587085799419665745358002530204300222649397916332769074720480597384010069457690215389185760616625437743620642111426106247299323425879135493278812832023276127799831970974942023552475827721343427762914439946619682358623114858913575362707906744327903985341756379304315315336166871602813180678786232606197901916566461110907691606857839040869299420829743984954698862942906869346202474876972023272280250141466097345455582959223602076450335014519179533276923463479919140317158294736970796997460260134109703060593059978423753510126131755599929933921085230438395919007401174795636004170825349546381121244327162104019118619504478396825687841987415269988325056476808940728865935305598714017796867458561739845627313762831691232143430763783509204881098173298490310312565477300589952231145825107021407189421667254330727538904899344987381657150230804748296293438973305780212731891097045116592677984511705964655119832866499725315121175842583282777000790322190443071782392598400294891276973054059081604570164485596163804288022175791831804739978928792818508596913800115976529111427342100043648652609190153472192412689353881944687088651248059520591992921543699067921834253905546546052957495929284013878236410359420165064057627786789415836271426315571359588129713006362803251667296500785041817745894292914285761406731731275207768678652165070012540597807073926430480685212293986692932521197272440337899600737636421153809735189366936063160420928711671880714458844676982265507957876443315080323007794208039157204763865003209926904468072603961048633601454903837981015636745601384779723262668473716152798853798861132385922449695283374036239058505301166157121676932347816167487388976234779860828704644790313694898341606529003885123618231474301140140981920389902662314607759429461463484532041678154445743283368156115486012952975081862858622437629754642337756285280897902277432254191034250927903725117856067611733675627910989857533808307472502327881137909726024156939773320536990424113810935600418536182519177970249842180887075464662632121427112094992615118354178945843848059166167652855457275407149547901961129362765780609706769416097765719201796972316245465329501562508718002378897174732718240111760608738669148125047914960510562423309878549152752976315459834698656012326263694940941220185402789751883851644429468311671448794907857504016799234719395510821152985315037659885291668587313515303794816765231317535947771544296136426239059798360563208272019392978125798603923035905756458507081575843058842712105797098552890298826327411361083100293034861120936516734539179944153561134841942533018977560335207980834544186576155354339197546668669371022549899040694084078442019921413795743815497747580786417550197883189184630636954069614954321059335632228097661848615793160986750066632678082858747124765583913771751050497132112400815632445480955943086430712827375001908096563972238653277055040747233439771732788287900580177939567794137150374552134262074924623138203531894425773331008650881329054729587239346860991584355091427462266462862056644733513567441839931445173556809518234306651450202476523106695373013870313371122647684928747854744510352618351307405398314957438030986259433832257868730799716319594073206242873862226988669836553652186887064965463600782331983262786585592695294837986064606338365352371492466204911890243619961723582135208525151740345306152178233454843900991681710375707181484713963371606033982638530512854029716722480007016235852570274979463739509915688849313195246893098942194333345053246334835484281406191856746970810022121302409518814892918816168629098344267870143754062824412786335303702243174586402789264620176933136513609216696046720891265003794116443615340004273267614110492184840943210289247414388968880159552564483918922426844668793226712895340170963575590485132578950347294568024884684610895127764952709370435117807664144038487168640323065832500294956713719160090348945889167104577577441078295430572998045903784997491162112204814186687268536683357482615332264983340840893106871523393172931138753642841074395441739647499917297212536765750704529145491531876563644906988729338686522671506230487643736478068828235275167251800086460921848073321746634125502786841919949260515442494603978704644972358212213235151933998653226643289714072617629468084586346648061669702818622470143807401372506804843543608407819264822379443411154122001534942315436304480140339651882709434258421833090373001974101161651108039028006064433105267089340641305594838465370044584900346583085981401445552866372565913645363770134963631171056733847809423194124298475823990640652836676095373269362011728119620054604891174172759520317980185413883739478553929751523469714693346875335184571576326236354787883238319773399679350099530318079074155873427599579088181058428436265674595861648611340811571978821066154299154148594249716690488926143060608289112079324025802021735390684724255993584768616053775130802309539410857773307540965604584261672548784918343040774478174064634138359825223316473936314633491052489113832864214486951642712268775821369802949520654562610568771237156855398920738892572194118816237896166840749144544907668606419870144837246251989752994462732331384244023514005734662375498322212010019947438488508680510116052476405996129421133824886482250650804811209492249932317361142828561087980594738089470767456151013869629586802061792232358297154558668601327688203380107419406881356347021896805128545271667109869405885029557535747491166236884903849481165789119985205359675861363468113021201552231619990994034659567976584242594609577291817098699065095745890806117708067977480433898612609322803763535569427528571760690510144375140749306007164384353190267910371871856073673503315683505031828733886489735482625929616194505831061083536957711459376142443945636411410678646153013715902490006130275398634685883957223073255825175250748646357879108472224274799873306165269280405731989107070957842965598835556594730913511768465656755487175644330281653238437195822754229846027730078730319276250288550361380477934560103228442092106678408919235885769102330855230651601534697343235200579779077917578300075644463205290128235661959989033186797323981841847786373613438576722850426525501465345687825501492112988310257870863449434537877464188533421108873949797147487370951243875696417397114027965543670294130937469777245945949411214780281153352817107136727989350415636993119547009881195259399889752470615452916160845769202670460220028583519976490628023013542598718842154816978035941555935225535623570916450475370242801735223725065896343024820353922413599750613153260825960759329979134760561007336797936337743026355997510712983938070521006779355324283436674572409551137909328745829972652269187893907381141307737633635158221078857871619077065416187060805156982833308436120446120749803577469188932682590343376395761075559889124697421951625480104479259127517947983666215880036870673433392523278706886612640493940526281417022595507167328284015285503226642523514855281655851942039149818717407416727739364337607580503502436571356216068027912070872245556298127113579130138911249214304134400052328567756907145575111037493168637088098299125576117045819865498325674949123318846137498536545025006854224332713561929333916798099716482494014202919562188314902296108832721246538133819926252506614314943382982029469724821184732189591281845500045880981385552694989543789797100169914536765290328185727354389768936135035497321415845276157461481977557795351276009600135274792773836727114750344548933980762912313798659652841419289220926215881396635359933928841353801705834448046895196631160315552010782130049195295774729751820509887743231811971143258721245996963222176513950193757157621389121594686248403126870768826583726771943430855365783306045513115594385458741795622089508173787432295509041283523878048786739332618564350282928850489076010874165042379456012810005942030220473263131644769009629064789039394779464015831713992303406622564455399570052082976067302014182260679448549747389321549036158212225426094532856441574758332583298813455319610015629626320556877927475312813810185919690529716574657740194096796177720398118455956364079708193947971580813381761158437462372426284925079715496517049569446392032930793771926503966629066734919876697678081669287334924903669559305494120196144355714356857179293749105083384035796021663001126595662999290550133703225341989726805483056824499174077288223087438819555988438556056677766301520595344584425726442005221506496567815699874510951785710225693958195330452564128112625756139003675846918597270975996661682262195892314803387434048437394885226188989762033612645684119698015300307869831472742922518901122973739459501306215762860856737441491787152654535198954819948377089127279083271838306090700131419859309133570060003710275955024336192628684445960361847463153928054987656949925030496855292517101268141487471514214727629491173898218429653886745176496214299779216363241174153575938107655844477239494516599938370848999644406779948018370412069993623937854806944716051902195155978570180475435878126242127447987020825950044432181381888148641629497037138630356495142969981854706409187856494962317917472675983940055705682786942800227375244736497729422945469168641904112409174215784920034599791233344033092336519367451203333158984565388335611418588198796641324211892976031549882002528780468295876859659570431140570735983498347261244988437810610086207339514985208270435030612215500659776743833138220960596388504407568213390349491936927478826947887528372966631392200904597709338852331462730729057910720061791363088354150778453431383465919217987978920098520399194444709021372826711961773001519318800930504917767002505273760210885819000503516451139088970389064903749643347538669701431293194014396613260752800510142882155428463643882670829131379966410576155451372015372916991616592586665860085130002022955131820992699053084682635887776755927873221147278942496721927350250129044756071512496670957304834606318951514001685699631581765599321935000550968979008424020980769094458591233641984645009390036121665538464213936114539326073642439789576778746056263380638057958262232893890642855463609897891386471206860987486809022196975355538699651480644440220836752558221490008441010901445201164136375204496063119611915892773698689738836103564332557481570902381197694616307091106509696346136963706882262593182189433157590316805375324566106268925570135100174871933036857872438669281060763921285530708768124196860023839519766857743099535093168731697195078591604545066540661859515559166462164092141056925457185362486813460281310110678250434372753305335717817390525411600119994680629401661146516769267593122422776902484643017460143558291474490347110547391739185797474874362010972701898372458933500651558506048212606496482220089124250287502244652619409392183496108037617019434419924064318991536356322664353979857472074807330025548679339637193451441819194594199073982785696172936796824836379783617978827565899079639182415094819083469268671376338017719162062673253156193340864293969057719784519601383268455851926393596718455688069406373839440661443952195547912012991678068229848250412251439462274094617345412682763663602289683358503122343928970924331356330157720893203163119353174180420340241575799066650146015217180229716455724675207839561885297414139335525635446432501067245097168328815391893778754547784544805450350943454848375519167042650164961387034316008260294856394841597270776440360617886464691947974801471502977210669695342127208582698253245692253423468788527945130386754090755949639275425953617868795345103987111888552946208584584586504455007584453195227430869670265909199752212669825534034345713893335189834127039639007307996772590668854771503207350626733270997249123921150967837753436435904187689224326641335979642913340948903895376361445553373678092672660747139379392397726263926812549875788781294161740124683750517893041160925715271742307897194743424638828528840251959852399572205797150195445869942678265447115450777450208132255930748241216823420019296916445858257706834561346438870643390513216845126886834058386060247786744995637329482468114675174239483995070242361013421474878479356556349906054229653438936511187776526573972672154660246811155581718666753495225407757699327301718641426393177242830523720925477982675849189399372421105541784698084861269872725729328969309192681238817218350823688678724089915187509134092603747395237211633128432688524483163850332941243855858489406632793519567775991747518384733058965595641548322215961346376339084982252339307337307133755677449316001563610216355719585573526347318575258459794599508057833458836152412884478409662273700591167127874407700168118754238456971985165701317834143014835257104194044449860862060633857402462816806537933910741801662259174571163412663549295019044930767854730285614153214240908142748843047604096277922749714101136227307363625772483344070435516773896332695461195672520387317980025468651046060362150874185324651339124422584758871946643182676657321164783691092318475616476538359926959841806815684682827525289251928227956572979153130954314638083835805508041439394524313331539733630431797529270036810884869439929809358680576686354832768247385881853684217524157238091586880358506595323130307297073526134553062604068759788286285226725721441736808411594808827693482848125900055549093945634289771791288918464489956249387964963014577655246714242546859604393259472680999719214756997839499189625769341505029541445791132719649780573943097669412978449383527680750529396955789563842462494926085272957269289057190904768536396014993763290809986213123850638484557775686845854552199781248605694503424193807119208141106630403250714905139167420042714279536376079740211979025882839352434247598675512899123697726364887707503688368116681623928212580000043652522266640887173598570218715457250818453657890880615939217068074707434021064056903771975245065598074824144651850079652137815418333875201089927376765837551242140505749179617237263830208044195039059960718402499010452727637408687436285978926209340232224882217292367145317604344325722480334261688553256604365732407733781349624381092193812759381198115420653365026103514688381280566133380365455192360135567725042325699689027331818386954254592142995162119787265338560755991883408884437019432537319594701901471714770150905167549210057398648677713980983642919232589334274837846589228765199052297569995518651811998138621997835778357144761795299351952145799038089684302903684814750810676690015590427076675429145533909424545064643608381950683043595368545771675292678542836692358660176264544546594376833474016303881506258407141994104729792539325014509301777210381810141198068319527735143673175228625485393644310069897885863491182903363116523017548870926386484261925195360081437905856687217230032628454096026688300948610278396372044492785695370263561270050461607991326568304755829130051868830628741290484247549082390645212235981448102041458909248336715423084781689463358625008209308988658678617242054549222631521766939294101446288556580943206368951793081906971151359761837115558469057157082140307910071736234639445798606389084457865161203886743739128781312289223271907532864634548484740685820549415536848755810464307200116046155182699577591550419213887968549994543188965795659801197576618196283820662319055993051235866655991449073122264247136930778221300931519789428019445755108029908274935917601959988979097049405241080672694140310325329503224005251531638953249634897826039298784616540051251996258454552178436873237804601814670329357139570578328650426138515056053627392178365925414132229812239253080506787607613227425706426939172347608604844454436245383581339071736742744329304419465057323441768694853752707305824465313009748230018002475437902160195565806637953205095831770338579324140131942221375211768868451752371787723407483315724598414493944511692460650747590949995325503205038563826643244763200915380006101029460021267471195302941620734959998486921785466758096069925725356989200238257715214541968273107690257442943171706506281141571178153210287085731217538074814137556676916431779924530568133318819918480138284244503736133763985775316365061094093741881445705108992096100287570959270059285240447515828559263708563772394857372989279343119102641833412977194371660978176048242906334448384429377043779266879970832342333210951582855630140120982076230491674827459637398071109824440450059383061031507442135412438974131942037796077551447757212297313260489971819815011688627511166583534741769534869833381297015812328828990768697443020065620252734937651738459590861655618190804738127621083481963339005255779627495232727410827653551838187139171414657750459814812988400670497578261144869827121276137821851725575210456079840507714074659945375357921304343393118125639704626485764692382355913468327684640008132040411124473670828578323378537236464835345131300460439861855931951680383530572901994603026778986342409163781770944708100171192231003739555729506968690366864160132607205410722161122524464071500000559853743302342402705587881990128560693255482041222052548351854246237440162077667974878248749311519304458150726748193597725379112194329469568782928430867741928126108985412237241047560140990317388125066702894239899768055700523956407223256489143395630587574683486639754304436381302688447930897063691780443490296801977889327441521468020658304314386745845374413684062890455812448276188593468521636501770949011338381864508816281992756908702646566615612644190861336558613106184752960551320418731559580865844477179397410279994029506394118652050180605001957548019799996659211828062302635940797667539260332044447743343948879320478757929859457015895965109559743929799027148838044420456450054145981837837037894347650933895579753581967824042656390490238439412481519229171575341967531319150637996030867013581755001925884912107857384382926000847196598243818660915454311229873302065226062464755410796955715684520399969687735107939560436683275763085598433857266591441340693200013587545415524461485084821413481008943268794699366101650704734753204426134042702161756524127483139000568066937269069061797736360480599736721467247608458451525216308435217955515221043037115453858509126166253962153049895035391355398086015765800548474876563406231168504327931630306317895423398104965603235463056513454004489772913677304310483487532650330231718811369710279471153048178101251024655877791654981441077765043892836899623305239995809870710150519262600893001080924720008444175578349544973752176231322330366612819356644007573987094759379774344663748399045776394633674147534237618283429364493576081543071415660300155398374436048276189968903079187423925527235761798270717769441546346086805269001469446278999468243667157594623439715301677867481776193986083622450975854684781158043831231539032565073616981991267712133042980022826960396313015760533848163115971842850824073106485727923274300588924898645081146668836597271199995493393794053595805217861099604155125974280010125470724144835022987371298128187914089730905611389660272163180124722899283632600249195133682882910587755730010768031408786321629075354701709497130794180680906089482294900830586672685090847181274539026199723497758246115313297698180505569889048898028692863337392649985104365691969521959427024318790590969792157172996999796062897263397997047647863285403155100641331754456559090339073932744633818958925156674919966421713942152605336804719906867828505874327649768194025573768990416286213478275673764555424636202633118547810827864865488282770430234860124699810258700299132496274385474624267938304939911487772123942954081352139819304294182384821015971239315701142548481846751209556051952996957911137126810182585441623146642747129308185162424874508040449784206106959658587770188109085617944570307697535159086117315231691422873535756676631184205691474798631380290418043166852971592752169842373727520210604843137276592987317992597012378735848389973412206664884688141671949167935500436538623142845574587618465960945708519773197341425461602192681002478863740876418473045997102709255944421531262149218396758909263712615974477208859876475441302040954228942171518678367441741578119925089288785437796706187810992353520793462072204722418664577185804930730197823413894894787681815062904650390600707431844421148322383027396718276384605877265004038469746551946394877721365805155656576162452737508951069894690018654900956151103030215692926042338105092213224668453946134516910658117199535843338147478937543002215230861386848353645498723027614293730408999766135904619628052211530737300571449795244852137858334297338781792428315160623797605467270258412317383439260920767450686730393119167709661588245595899241036168861010704908229196203223167057405064861919262790446679399081460545355093240445346179876770379013830552298556482781455061098625127298119598302692711254559978576236291491057841750575964043873212558987278618082942096970574914764300186029789045268411811526629742813636150973178601168237777190083406811304236303629563372233412586969425022882315119176445979083069704723646268428611274885544483117785059164033654291367609683474912506905403220069811594848406646370597705564453936674917637202488955214064007376844567346094483517394935274836665368424564738238663518258313189802274699467603202526223636915543189823683576926070345958163274624224347780426436846390230453936583206820916149541854719824725091729306328032955245585261107166374112796957226146491499834091252813357606595800092928832881822693986665315302872130624527067809573198121934947667585510629662719362400100076047202924446449263179505730893560680300675007218945882685735087086833887130273715834830250835832865843833941567970897654276396255431194570668280393561335965220215328343734848177985500644931049989209797127704650126797656070797366089113580474183831903946537565470721761974233776711161490149166496176257375820337749455380825967235681327878244908992171627093372760064874779936809929943649291651404857076248554988296618508319293715329904511226267695701744988356749138697120469776343194787850650486692707428427433622774066215139107856245113983193740866866833405264163518132671255959751440659157090378826193470533200383097659507765507391360874676603363070260385643646046239181231920226623414032091868928369967262655433661935666333559715770005170343432555838303659871243740421960879063790579125491399111091274070018505952010750291473175394155366895037238483282655684703388715758002435239744330740139953508805592020461114160749148870497632813814390757191910799064057428219154481692295024352264450044186515834838768553395318037710673022002123716470188866135553287269478319258809282301466340814647265928367789430752636133999013286219311147028924630346757328196964966892391120259186806874932872027946916284065122467424366948767353622169329647194039158538075425474615988798893858671910017158190049191657288813775868819910401366856580921640871110982979800679767723942861346243745928873170207303123213822837216216111834864699671592053226184426985935366571679308971709213354833095967837387759773270215026472948659172475398938091008168655396766418007797164889169996469116501161718714597919732538701888210964169615333800740421726783685822475509793443770030852246585064041262889962100786104814123253761446216426741249275549440867620019979235963195525405856978852449292827467507385681466244315670905716120401637152799063343944671927848405988344186371422168470312532573004509500538713542463497951465548450096246458312071969122596308196084412976673369779789359499438165926091417143833981377130674857767826241325738449311504065477030946647593706014523761588922155327817587706593430882167624727477759341793296066821677584273492821409189368640277755209727350529845064873491469975339596630907130136960351718272900559815477067915406033102139954626440714527819319561006181640678383845152588284145166067076530306244501938537166757736836403815071569085497572415844222878783417403447929187480630466215403345431920846462149646858844147312666354808535929881368947449271741396740914640412188426468524026260219656675611936967215408526757048482842763551435962295691980354620357769185210088384849836858078930252433647708016830307649512860643340784078988299673318176622590540153176736348484283308669316506836643251970595382868258715687818028557072228954901083686290313129066801074960582980082467054853721624401128152322523605223670716768956542582237202295162126765700960158849779853367805377086140621975478440718622166983614374843429027849343515418000517487627652721713923942205946955368385420568297016480315708706730127760479880203430137294525266268141766956542299014901571208499599897589764019892033868299822691543988643614100381546815636386893879246011038226119058078246120315784996480014904749636016932296100364184009535730392571798300569340389435261058604074556154999864111505493696066178199020812033693224214011449706527385509482309470416238753023037018459850377441455439305193615253413386777647012496336750487698004258405976834159362854460604954719294886035680441789282476990572439402834947165724653703808619022039475172333887640371623726468537176405783435327496599053017286232443001042917323635073542523257709590927845468075955468413376255841253557388006320811627064721627086109956029165560351831593339406351947195842235740207137328615856369759942353802742913933747475899618142929000693252908877410135906274925664275469755287834262888859867123150908510348251781914684665523431412587814909930792141851300761723924664670406231976609303335954662710075808606260344527529428663405185440311333169413197425560748563372838481272382971499898316120990024477833075658853910951520509903928417642747925774725803552585377805315665359983079463651769882288298960958190686003494742308345968217487323338006630697032344520097926779810296835507237583468371707707571791080556827957976774950025010483328247598435820361683922571645058692904684073347695245268091234989452432101390094977350047626863997402213960334938611801625041968300010472437739027622167222561379750143659725537504632602739851333711450754586419389594478383605876673049525037522678803165382845118649991168855253922671874996293021624074228399738929348384575735756783355414979842123531233828731269569333553423866414032813928674160139816354721953016924499953328934933229500351006697484907026476315493848518110550011909949804174748632357501169124421917604646656305696456519748241589637048545107868616811272659243409063917227013067776523186795164141783136614809574209219979245701341162542769848614907633415768388762526666828708422159397846437126896751664138908624690313310333061409013500237584791502463031948903475640211354096430722464985329940308794804875220177070259177193537115424594716808552214905639242294159388411976753011054805039910739397503339088012537096671350151510042289682129350421115479377069261199503545685962797004939390797884226254540803467500975545298665638552833580420872151475554502098295731243515896704001115749830026282161322273907676842440830014620615133432069601348018544051366529786902536628727720467014983116022868634865225366566308054134233117758479806812468865397234359263057558843055684795084204742587835126498322533952718793965818236336519644592237272922031287382916745477819639391205424197582373035888452984142562885530361967390195964397122089957557839680570310347634776841811891964688557383708585737532610185343406851271984635978588967842088701786301344624351138740143986028680236247484436871411251643084595530422348205662732217649818131997702934865517465551082155164247452638933728327480695410240736716067560380726346056246863684580035230790646081380790966188939500782738346404707319713792119512374923642487876012709233875536819048771268052012669302206830309498609031548383139484643109642827515849444722944248907569370677789892884864996460096001517640085296583982170128774928663181040769132108562391279678198526575159114518229574034432612320048073145757546231003917097576064903479772175651582250442002206865248689778295434844858390243675003585049702005759697625605205049615332101808591816298612393923267598417426353951341749214666357726568115114697430640869735586902567052288768646237024764024341094268983429705710347222729344205456599186575001255746340909433148424507374729898537859603980123388829212247622754367762519129324961445715742136544771589173561325117110128871062208758541397587728388646635898268558885936222224056315185984228328378372342561306538223344210190064250142667453871255197230813610003488377542171232375192250116846400013649957563838541715596803848848400769223139535072118226724059510778135439769597435176686421950372244665581148040301501232032622363311140318331509280907056500027567704096255577748920934217580752005117000615352614942406868262911052976713055001354521330482443136474975509264916625120092073521003131702926230759620123997941250337390348389226899839497246216070744029366856223665698135367648129973388899855717737492401146722329194687443453111531218642461128104161147421897745699656764122381262916665751999230361903759527632743553648039936289495541037963618176243476959739149494830140270734015677461413875006652165614136362519933352848601639285669041070699579081903216439335014197233707567509775990653309675179485546864434756648840650628792696842354033796182357430884495978736689895759718068714127558886754767762064235978132009162247761472818162838205126355065476946550052727728210392894769727887522126595838102827042146739022746504734595647082538031392931870808667001949111283582110439950329926956242205998857836424447346622570191227916726801654733345263689215315691401420157073346972679377575157223166584475779107467004052148313131727015780641096421143262680762253070457715646885380449895280387986889845582538981304814709667330270886485691237922381170043783801676338990549321637346335761381423617758733995414684648911016820596562811727276069924116335452954791003676627817652243188738163056845735913794240908941762016282724953559714281036389837501915188481376475440098471848559073733750035414710340692409492685094091992744430307421303584497363414039584038223797016738005844042239984849897415655031091516179534068981430082088426572260788033916913794443983737962981091613687893728730299989629980847721060123505122373973158649541991302860470245138155356993286605325921064135426701366382028115180960637043491801748660887591394101298064212998287681532784392616975062130228383146628756212912936440142993882265075697841887996982866256181518035286170419540478103120457301743652343925413055360719834850423522125762931281364270371844764043515792741723631125838696552204795382941711630227956665082556303741322432261708355977897508792198561364763700264764138982314202640875841009883908275570434381976571266785886429035246984857427555175367883613659630641704745842550416793298512443862745311733326889317702241093061195922993908645293633238007720809929402303708869684001567682665682290817473223992793955741900435745118319557940132917320970432762754624504133801370208908019338556393774737292187658441351615625843884240699806982440593375618555900661205719396377875345075874542264605883350582990209077024530997482392664974260198115793359556465788320668103429366548167735573467309817386851616474220336311263508694831639327201715316847790393168786029482900707257647797717109906879909192688458626324589094413571423625627041414091444736933107322035050053110809528403262035739728569945382951899391895561697179611105827725288733200160534846306328138962288822984789647152487199203811904400307474855382659844906719333484835774819404590045986444577988183572915673854339932092571914041226167674365574017767980147959530392397667408123752698877765026765108475729692577671342270378668804359133761794849717114414725408922915259812487210304433663552328848604963491269772260199651512678053264620383767853262573817152847625961268344556762469861585304657127716734060900066534329727841096717133264371865686421591174748266494065058377554968025292486071537229654116199175726930880426849326483215891722769886717982460505948747803983345675799007326640863254789347757411155625214837420786500495604436753174392114684313748373613758816705221925315657817169891167584914143887550963401370988915365966258067285085024104873399576028391329080016767055989070013010267449610746035913890144563268314534737721357313783551121510908947051300053775090638855417007640192113029513904060665222696375334830035718893308795530096326818441322298404882685971780013016087446247547985243591250687396710059347477559028920391259180561320781236739967902713265007055167546502411106745853574106885492598990553409708336182535511850348263795494929428301191774099223995141875110373977315507446656358939039101370806658917379549058846284188886358420096357448120802538475847233340622506620335373493537380720251832708246571895420499731883929551901132013872285519251946253662519084154833119498028486745059546796107024325945689913217103277129644049457315125591330801742264545214938115604967463181529371116523621198447676420748974790440023783763273405549403322323757645635869607835250882839467146939593708715998850746610210728752280303554496561127984811589530013195509140756798194945946275418654220016569208101936404704809187373131393406511629450497704155678302259104455515904583975594867689142966599280759793645977569111079647929875403772188977093540480670075140089809972544920242254559145409179659287154624380375497313808175425723971427297938632912028242506767163252079872524206704648168218104569682096476677780626512199997625983558284404486311275377938608605686547195390946544950580097072688378883117773437042771707507773245900924701050277007271016718421737439258159005039601695374208574804519289071863729309018649946442258367940670592089016073701975124384528335958097897107610344028360317620054192780094065022357694338457895963144714089928150656642729260072389046935480370823629692836622866807361910596323535878035297993388390300484223534000684736262967101601981436731907337058688956599474751486356152981894389953999194563121593441171938618137839644351929015087521814016642772581814022335905658481975506115058843992511572658791769739970285584268563237994099257420000076489425830522079139804312215214649005825896971884636299957869818870549195511267844395383409724530913931720602339474206769244154225382178629174149586496260091019142264764750625483287408484177344443210289590769125790185635899731215936370068259443264008074209217717038565047295430025669000985066838012712795756921361968667731091512357220282602521605273825627649906293980926933309733182128600450634255989870129063922574156764867074242139957840499067708045616114663774640446118298651047140741053224347122639480121978235612808175732930178469027932061548583191455406555848908535901904075634352153928602757705341770965503350086762038620508513881185997239903659432994253419719283967253530181601838844696235008896610940217311347071860264213943863672989051055448726315626034488291182716820872545705583832031189953939160633675298655215150145432334268140646909024015095337266191124487783487710530345936037964530119368375383103193338770240808590389666486247127173010772659537941543268964844987667548769849868126903166249660001700270536040898183985973559298553714510212768670627787418191425642335873386266506741361743566951745479166079139489452673276276554322172527621643653265991392595234793320230890954562116022660347732329875819722336543342945993054701012427221022408082450356721090371367849820014440015547348688675193496775268272902760251105836271207673257020061027073849440770027542109443243857525964987524754337325085831652344657794550307920286240437634904635219327995787506611096732955324709966192542956447871020115405070421464815408984934841540522397058342092905058606732805365618308786194241835572665115429420310098839639716442856273214865836137618856508473377912760381520910389357633227901622266546180632153677574392354297964716946068961129826444224133169185406059101823751910823779810688609094091026478794320786949888322386324309049990378587023042672266829015659812908358397206189776843452470928229622879435505861714489421810729576524911805008775639138557900696348454926150572265647809522940855663266790780729111627130509335696083223926622740314795858836835161903077371247918305483386290931323055818134739176184861181985451367136877517721004396444717781552883814274989546421668678662814359696028777797378157000881699233323534810173272339039014763457606939384134117862077463920218507476494478519615153538382559274363917230843937522437040668743259235173947827596475359864291717311025232408044966385438271848847092036684336514889835242156533807122205107719263024799505738802693556522697679536093622523318179447876877038938483928083265282373322523303510265391677260134133097771201937508058669647340353899849095044570575335283475873408513889923929316783214046251511027850945495675364825358754225525534727046006549465322597652360697963410882728473875425572184179147791369536744931303886649081728997065914804806923026912143988647559498281330804449972627954554549864528413154693448670179548505648801516806116839213485239156798632658567785639982744787635950539798271372634949570149967003382736918464602224465260244428796616073812232728791954066458949619097452840864503551924332169872448672152312284848603788290806179318087076470240092536261527705390670052595032592138577127679231135837303814671849721778823224580801464055366068995298815337989121718016523000888018142675351013278928567135436365917851479057663215443669590730218332055655167833680655397886055861996927202736356989069236839877664162064550853975345957773738658009934227376676884036988616263367673653405220404756807723728094933596493997913562193342269910568375516059098366983182190251200430406420746170788021790248046840074760840708586345307996414834885248647747661493940900618667743497161237622038680349117196376033103709255070054156365531901191738633416988242189318928890088857221117442035532959798602183318975169855633934537047986961024792768032727797837888919212166823095970900709040435508116936682649373867463072121252123903714609471362511473726582079552198461249431053441084619877301343013164784680885069949918038512334178072999709793207072176039297372756309762714947571395133436386518773914408819514898064575576588614770240013108678156439424641361141005475352295484128686384401917655194801809188928910947280985421068068918938304109837022677751253518589088377832222178275420682640012457393930243340980069994625302027437236818143200658405684976174648138672844216672447786282193211963908894536305932731095270645146947410919271305606664381288736515873472474143272918411351058710684051017930239173644236885824210387242058196627243692057753657509433282409933491184895620702197260010260720334846425980645118157183021075011845453018023630978894634667874417491600813285782192478970237387690117553621324579570609916115521821344126509135546709500901408940362975017945103621520614489339606268912125306892922121927571022546347986519164892310429927719023506427531231102889048307299738166812105197666173938858249574418857160036319209241236711045462995886578318451536518876398467448552237934772685587630698395879643546719465660210298390943018466154622657417732391343195826999791043387898030215684701370685307264617998737738937746364561334012272999795162382143505336383560304188303208974788729351798611614640145925581585000194896923834768488128826244120906144901961117667405241312520901010285114924794045490704769625575393323151993982334641250063325906392710932823026116027185636708373656596639230710117316016489239387623649515180650023659731779380899891002696093525762836981249356882347979210921412990071007074730734659418139170200401368967907841394173367318226808370226106528789632953761008031464289976474839797595534342837693679756729748347504735406166686182422121763290113332092859348351478430098873108264892695808564746373497651384138694878488496472617575039477811383676990165052425411628569952014939337753100650798292435955881113255412059924373523145862870750160832678716071514901080574435655137046933340018495314712998746596129185898505296820603419065780775417631384884605233069852480263349248290672186818713701630293692133667074700375485045274978220538120773308260642227365727817907246325141583821809998548334698479452218617018367429473484484495972426684609346736727432866798880162967471094251263906802227774156869075817208339309377586397680553897406414077482675560633596473214086069408022493968976491575838371421551275966522612039455792729878791378243804961944316022528730441929598368919669386438188271895857400112549105253931962858804932939726769833654937768610329767188861700501776791717375117026494809379977855161212897616140585896197780009867449703492037566576534202092694417102264685799076856257399013850562657954366968336077018586039030816675154777906634012134452011076948351834052061308569130373847873271095018368394721840347003736825623846236189255832082810555164936088641132677120534206268453146647299709834773847059805736365929620562408827793991329859336055163676052913781729029226586263991364428268291840984589911875099265220208361311834894388989430110980722753508948078868949251753334163825921365579525812377003564183461338401406197820565633802456762022282356012937346525167429470771719435320208688009515277836589097558042071493360754300989362159610195844489472478456231048993874869403965173959583177836396024448008132036625678423529011029123332394401254057140626504601530705862526852278951135134892228156488202683183077267698389384133144264527465913833764346179451060445367812620925415660301008510100942939640896468606182704586165604273956631188543459308389590114917843174496492389864787707626846176104812705031908502013170593878236842340790817675549142302355445168281514784055886095862434586631802854950809396280863318707463979410256158163998771289186183561538427601225553081946783618332417352087492060697639041972394717587884628396607298117482571040609445674152413781231495305928702469065317088490601505160439569057325554510519232448975877080916958813307769243314845211694982200929322955705300837535477304022614760482978069719084460123191950334895837574386851238554517862275420856747930018711812896081924104984191407990078343347653306537270997383799276811892723530458244606383198799345011574326883024957351470600669306177539644744417520600026873225999681669041015899267730867381074365350465566343051317053047807392155121530352296527936964446176032028568650747778813529060148275642451735523803985055483049126771930837254213603028528643193867944214983577116567629282486738988672955693019554732115125883720231505822011556668146762207812965315254745742185038592902326621118691095501896463868618555936715444384425448070420404771089410513528650962328307740523022782249589778077921634040158613628506868922703000756386635139063277024367888167796971189831471639224113200455632051951185860372538009986799696081599346494216308400286872220686819637199835224856551428106375897241696730298253480066758906112062466499327042308667997033959908049498329305530420528749966795780366297742869652231026371902630322136763769087510225411143889671462030697688457012820273930009837946489525122871816758681964824533837030792234661813120271486748177045424582807228300346685372421628264370770860609979920159034673772876580872182655806312957122269527519665644805215832816836669513083315904774665953084341773246698431288765433646208863074037568651501845200700264558861343064806479640945512692122646564706167786998613853004992188429458940682795292002287222211213116553145069777382545948634678294647536887608281558600103117560468696689166927379741858302591101527031774923170945221287703956450505955656236912504260175314975834166273529533825412752948120129931991512870279950999664866404388490302327762868229206578834667741223737099127032812192118278168757844729452602166144250807455744698655549953628389774747787630110896320324437739051210135337300033954604030127100329146295879741669253157679861978764095629998519174371510908740463891702740985204851500772527732127184452323210202695112527312306427406827476228348276247817782514937073776574485344249373639924790313088072162171338962002494594227584009644679971155691260719065365277722774394117705926312979360844298504960642400245961454927609305066743497879322130795106671664308552720931623387978583257202176603194113090222098795527672578968987098429160133609683040363406625949580470599900601362408002127488601048714921954341202391321516250032441692434729042900558346076360793776174054799520030304057929577086022518486122919462060048335464054953026323045314042055561094956757831380322917059876477519888361301857142902917921560876600714816772712102825713023249621244652913959905428155227119238641582833583325554057526411052664970721362912823901319884525456980993441897520334543988400730204299400260671342997029914365667404322346343160371243405989497858124335806164919960678801768739550329432990966985461613574280586293224410738951059891339884953547779199549652418931025077064147606999889832149885857603861113792656956809414491521310111288915036254991188179684934010829929881484290777923134914525765156054156050770779307428710303868187138547779376048749188853686381068464766387868796084256257269262893265885462056694366430146099068511255342481958804560551185186404257811197783907693252889506365029436021943509362100197044008020956579138432136959279802839246668082134233650631395275575219810524925005019291761457646684432508261983240038948907168096313218560737712628200347992939976065139486876144613017390812508514700479674154726200608528734181727201483113584938609192317084481447253067898407173914580620121941375081759062303468596250374995007351000847367652517228918882823031046830207582479650332660398449910443019719520970273281667586842349121846879356341765204592473557465653844222513764975390507581478775587722935668766822413637558734012469800216699113133324293660740032661622015138561597530350812928425282237752419096983849368209343166286138751539620789153304155630206073790902648736478891708409799461229740840507175739584798452603011626417580079686241416249708051997045764704043578860941404168861567875187207084101590866335446346844038155498654106959689313846379696426284985659201238064043419368837209662013609997728298782260762680826578250753388180526088239484042837560734948007969345946708033603828142092204072360272113703965274173660763416702751901576005185917493308441046734525985388870285481057480682192436478916319995175543951972515237421909110204610302680711057313774447516683436757359981649331843202653404365578494043677083499387006789147396837442233623787338273164241969348012254632028716070831559291826772164378125063916910109942962541869968653992428580635720080290222099856750208113890907117080618367319796306963942390236290961269084373528357782723931138842434208428008157649900055543718786583732048389716630916050676658700887640532838232137100446233264795908546261383785535366424841395781910096286331568837740958963007942607589755683603399486555473242799451801157886274293068270860519703741806008434825676407623586741215610313744239447956187339464204913416460567038356300430914358413399824522821096961443549348815981134817458335983224944898769648107683730669476539542039141358220967873737669081745654249929105449152415763340352825776252685463765331716266862521627407213569357535581765550345061921520587317257280369534152793621363154546889257385650563014648177250664124129572716316281874175028442949306168429615914125903587410316983980325401823165361255322116547111065719713037264331050197568010533024588784619693715376558289620698932126214393867752698297788460855420869370634750221965367415120553222330810581733540688347081525217806851945694275178608759801771141941276322822018023804614329736634237387910056359721851274834106363790378956869785717518129728080154493134753800943828929436394802150559678220319764403180748255301899930422171818822826101008277289799566576044270305784554876633861675010673354953631371989089350136470400610536422016466190406652105082270250982866504099961275097305537346993473057170572163211576312695686643015496404639703395941006696865699030816341701756249594901555341721777486866290665939305796168811025475584326729190554169970486616737976125571533742871670410428249529506135853088235408699376742157805197837718979735210564386511375498143760526792296543884359194560644430534536032633308259244372045263204136550068953516516894200015170229960983507065010135076512627013582754160543431896346369632372737738340093712348116546610502296861675652910783305886036874464124661526692695072280720226084520145126545080743016427706174224759067257790876371603796384226334787212466485124675210783271008906117618053150791475036948615135583778527394758679874837647690087689602771995643833195184056021923344398382565619712749946298755439690205048540379094278684159195987605394693847595644034774833178387976842999966930110359310576066459954070914438727059451982147678774163925597669507366590246999755517437085079497599053608802351596911892643256426632387215741711298338465639418347896409822523857892311511127976137825139517471765118539156455754042207519397144397583187814077166003381030768800269279548319105765081320240331210490254381368348311896325725695681121633322464303270587137688492697928051610085714749563666433520318322597361040545901247665135595604216575425096571969225363194545620596060902517983537028916900533941437382626388835450339426476442628559474100879220526032070454038537671987390857485775854805555439788619528638899257234654359961308389812230482143686850051672584598077735795731654307926596480048763786689411022625833955889616093572252593744097798827458049063901007602782228582785123396599015776611744060372599490950739531081822898779253881524227782946520379644264296410309310331423863394873017649126480381164924792430696356061412558225970333109352062682671985683069966192723829257789992190734700425260712867209807533349966906840904322374319097781083751537215332917954835575390892705158326084247749463184889127726233285558700324935544344418562194001507589442165147181536415557647380172274642669149641171288037776801257891905407431731702169366356638494108695871623630821589513229284677553070784061515829425754963590179765301909500890283789530069551365573515505790600707956941626492730695787728161579378376277445785895490533945892420344582621370637441199183768377895539549651159505144305574515369222901358737255667615685458835044209422949699259901161090979843244632576866796177398638299879394409239016663367936184271466386233950305344967697565516920553162333159297991452232800365035576523826377633008811845914426910653487645426970880411661301013416174394787798387769865288080509701354393520872420718785488423375710783841458030083366904108220298305791503898239715934109352118868523825282190668374047776726862685637914220073249873445076305804859381159448118593953482480747537522972755316406525048002443477672716109018325404434011898014903448008096686834341697967813789950992746499070449639461762581582768835638994882682767218620261625956396518927379343908850583471163285103642807814431866304070560355145585100088935737913691826784321967560005313052612764351325665683732559409085556274606462702833764130565330559856299878857239408364016489247876523124757656076270876124184672761610355446027283677718975721009972630536940018456831161466352533746040199156992937569507260879786436082795854694455545423200645060183463007079028012317306684702141920047057124995761595792557640701567857511656822905212176374420215705323540835281248706205549735598539074485324231717268892073618554478030390113661684503427356986967989870852661538313966563623491689199460854961601253620069155866836909132616155830121969521523423050575676054513960239624262892351516032140353896659795790162490545804205571764406918720288803067104404418441188246238495501558677448114921042373417403632768043911614352965028063407937238596304222926635062046364106394692787944295915961115132674179381796797322369818467033707257235307692401006766539083317255148646950519607277257370343713749129653947814663717787090874348819550765385563593801395622133180267271241336218777292702421410304500575014434661080885648610957076047130546168795008875313341353898382969532286526543418191200571301627568169369894459697933240372892589358547583629349505261487285520559070021645673515283249285716231594771317210300581981000854750194322958807781092959723862222863641173392056787157931868335401754567196912973318748456513558971203839660434332995602750591155788861939357670572659696587709640281157073257965234018143993100119411213929948081340789980378449259133966886502430572029409337419721107241346178308283115813265481730027199881935871524728502703592076491107096250737161154705061647785280777963163590571327830467659590989988680654273601005018918861348724417334680962944322343776861148514619567359395469822824732222088547005290889125699281833272060551470303718017512091644286252359193421901894358270858712003996919367665643058423795682982273867225304634804851889368131565760823421244279959127425176775210679332681954844041956083912984673037375617013892996599331432869054234420912608924834698183811407285112654031903678584967503765299968319660806257288874582715817096077788178578030670396329907590473479951993117332189414131339187161847499433650133267655439403272929735415964224705505701248092738152401129470644501887310068193556101002783106696936966720456094390674126878833805378664876415519686539327428371454234456773825732015460730045388348202500187245872652132207420477897399030022510093434051404155155174263702014633527222816210284032731305801667833138692726866123581575332455933096155871392541749752826766224395725405002868732140441486553628589967884375676258747212239561990659917854228186543690928450372899738523344032962888365553997392358700592616066380798453066543443724963508162572619867377647940761298028795464141063552414309097393489834433486870322691084757204837154575234798816807622000409956012498646032175660993350874668266032840462894816106417774353877415948954274857431799865529242054237523005468237688652135211505925041165241838550729841020388035526916674052101908608419020814772782801678080456186864834598482221901757336677175342572079587634446214944875071375589042170611614999645126113094533710768374245644702555737038809584082255060127529752773817141077838879805728189207078525697118142551232788411550291459230258143924669647448216729527296028699314477487982458545373588409936423278992024380190548061950767666937820056379333169667473719855544165750506727788141356435823651096071217827187017425811016879636086283386664931891786401968307312193310907329316797078752043251881118379292507962929859540389507533643025265171580669910207041779887023240523252140101940776007819537653585251767364722166311068217078108369372866011283545919892058884949371068242152123311609217518527220188393939383588202068142725447198052507418067187914906240789372859779110431163263992791107709077895639035027664027612548686127440963572256049533589999726859109032713921132141507162177555553102545367758217038457721603986559374777046182284812432227993679043403055642593057308865859227323089545982479431272388910637321554008040442996536756549623707760087703012859903658112128102090962552447076199136365652699419412605762773253983547620841626885423634499752200123290985180484967762450773868380331112916414157358343097454523199367228575023606581075515213969706724672072955197928746262970780191996679693864889744665908742787780970358752827255901449792578930124391110841601268418629617069736680902051239753754041880875587126174150281825488014187500537524221937799001148847516974135950851278470709499256030683663669470800732099967698290702994992053923763813970850744800438393386160982476277236763559608816624794514663215768089027965548794678645269233295118488165785321683573150287339830278514049319064903451276090998765889834928829775651341992030500110612510879995946911050703038511659969709495168534351380351340344285923040668246035589681524141795561179372390794812751385036248666226902251623895687073890850685528192103524335374003822659241742024549871873581726553883564165436640032440899695916249044935473526701000702543880453524480827197507390688246543023353858352201033661605497922581185241062706207234220129274527223797426633304662827228650314140183275580355867753369125301242483846900293970904501719456677923492951013950612204323754511283941795400749539357866069927727803822915626653914302624632042273119655252421331705513629882429538645617174097453512548300603383655062686164329939299797298411613423472632639238807980907903805783597628607627606921701379572666548929212173929967257877258328169166203284664301745486567737872932382037094986688786554467275471008634229573356935090131780709000346420180513095518346308445245469836609181885269565384197489121233601429435781575384940219216849010825732058694798195845472383855409831726811422280370021561847753612836784990995763434262557923822122490815846200408462546039981677892885508575913461047081995285535420038899853024111289268480543618396715719961916813981500729433121659658746767030775140903626074421746529397459325223767532413118375124374297294847882257687610406418413392557011366560667134972830766354069475831846627145579509308865083356469249872941145117781174012129885630201495056495127927666119646154830842921212365321977442636788020383677181883651374357991934053382896318616591122824982009316242711593403309129098885885463192392182919842785155145740220237403106695954375651983005635448244236025074373505746299497370670555005426571092158669689645082679228452322479995473997809467077009349953275087473363386153977429342939588319623031839874406299236576147065970379219834813507273673567299398573066213802293818673639384352710494999830641065421940979015382498269576592276153532806441714219438651179221392875958986994037105806748949048634172636657355730456768405125592983761742650447129202271160258327370685468180790528885389107613492006130113995086193004706747314630660261945273456783775596347779583636824679777682469012476731763897403301062654514443262226166531739913319730986882417104157529556711335382438750038586088091302303637583472937490176187901793395169752764311824048497680900133057230207535966722578714268542914376070405518258700795183798523968352707622423031500677452641531223200573622509152238126265344128730362306524676442327441652409834330436963596738431011726307949467818343463507529103541149265004866004287594174545230331611173036313457484431625103648560222222701422319538052901436987077457849221291236252031286772011373463401570655489436276247175439808829573754441804997919147734755643167573740508733440646445175366759635213248728042556336206898704986437042220273916150000585700948290465130407372230941351694074575572634748803315000439103498262507482328017482856632351355709149847109016744117749748687194411457153838537765001748052405232385007373507366634944451689118295087399517829562281093189061185722765065995007288886089074705288335402612180068511824010434973096727154120022638640338527282912157074250286256627570462969731880703443231955183403426247583396160798916238806189146340982288573180051627578661888631168599290450539909091723575238178365428293602728767709912356904126550219789807559686483891910425179360682764754867267090403308620424715298476184626664574599163596867655259509961757209128613500885618722080639414073950377928670689297746589452713771265175352460440731231107382410078553742355809844004586287351276143373989658882102878746440197148030036096782064261874101955744844809294592283464095170830932033609313467558386769205136040836127127142956209336350097334194913147926537781420507208161008599104691593161524616514645645287327027884367008632355437611745790905815114273834222716369781146386880520597211174726872366307526222079827689226942117100332335180711747371481566321053181266295753617017863392518983501439493420344440403695510563392709708200387915875296405028172408946563219878031335969956713484918100947492730840821341984660893524455856123754857070379537125766393743476809574142093339154971950973322425276478113359968972713308053335237740508946966624552390212230228523020550222387072336552854443914767429453701085682795416247636209689107207246973017598466794776644474536098397975144676331048348795047970512292481199229497720683380512941873731594239250297682231501065285611997153902412213269621742534282232011039258131061125063070730623242674037607564608517759203915619078772501273979750018881141485214226322880012996872699723135383000505211066964159828164338079509277778982113554770564237507804577387396036232144030924827819749374636823998968303786318692014334080296973708516054515982044381678593806647508438273675100782116602105540164737606787712005465745109487333424856746285742814952261889522039421015700451472712147176505475227979866035232691310062356986395873574351509751473437525567867448615727610391997548675809554477620097112536201874389915074695805640329554015110702717907501658487720056955112566229539561232366024764948813327748680199908085068637343511527763573799068714321021372773250289592792136315397477766553928150873101892498980090974010341003315575655002301208508234396320262529518904461433783840107686827914013841770056556606997091793637789511659627392144263760062967177508063510585959979470357740388132610986675975315427180879600369627975745931937448688365781847159763514707732697203649169702982348019602239404907810046170026952964341997368545443831750589797587378656142808962846052892901147137059201326486724591167591376580593638382982468250500818207536400145249245618631661304233532852051913973391578523766183514617800253173180650979392218127358231497846965083345910755952864705609582373563504079525161330755034580709938311541488196504798504563215738013933688547727848376292989290045698582517672440625652141103740345966594509483954694145335989902845482773005326173775402971569889859919462503458777699130217078778278030253948579457745042250572483527160207700763962976647944918093174315547289568022233016518465295665150223953775755579449789440595076387868755655831251392143783914521063073958746658392265914290085505859927167357599998078139045627672626169807875302089431035799871063575844264818568655253759024692804656951426896481998585825704670012018915471224031429515375639389155106063405460822052430876066200704563627649840974738834936812825669857448773645134870437775549317675238419663525130686743036128632495551194276529468674209589480888067972293639227128951708570518075544545599346871289670002631900754715727064301668372502893651108815733596935194665236486529257549407314495833845234755818776223681873029407025917244413926598083279204764553377762330040250334937376852453147770716931112487244648118367342327123748467598319773863098072106139207474889463840756027927931535600796233338127246290956871899070266973856874523387715220641815062883388350745308175928451760479314982133642614058264632196304363943632389002437425868383387279139247461225462999150884029424468339181299910356184853076722553913073861200238592911710822494894962072577154167914170723851621886028892414429259052071126745948451274664608706891372119037707750388576436454628169409991507938402001152597137215348228722630799534360081072850024833115024143528653067219571054444649756491588353659636010652109603068190185142116782884575979321471126099596967324565293744973686706358246529923066633246202630592165645838501198591998696209393797683007239658854893894824870771785389530685701454999490251768317407192631333522645325195363888588466435976398422325112160400927203419381160915105968299770722955975783388881134235240369459055418131690847151247674171739117756586757059448656180319213060184655930851101596003452729689512755359756544390533039850623800078012324409198977514899118318159077973633569734367353679396563530108602147930799361558369943792814204166712868582001253112381128013911074233016340844138163463057877601146420346684378748375731681463702797325689877318439276211788008777644345281822364481044040422224640929802143449997141074924165967230821709953610819836220658274906492870916192169011310244106839669753504074273629576734011350844278571572848849652298009876678796823303992845260638075036676103748412073556837468164887694527043137135507863829978318528489547127164599773076822359851335620655104385419744716021055899939138021037202036622232755299023031563378734800147108305803507796690566239912379753956354948404475971134415066160823522579150383658831118470405397393325331296783665241457658808634524959000711741145981493144446451991670097680179895868896395695565060254719633486989041044271638695236162117380680906406884484556272915690921169551636826542805356433902453743794923439296384275848191892596415688176253346633708377635042359646533154856193210815788787920212527154105915342625014511864475333526986896991409660988131293992468846304180361208510574185539402121883828826620861579616436330206208274992361902994932216925508744222576969991510768035805564210382338512414066481756166038141571390262598384030213765502884660566560922908639253171501981941192949647196751925640777699204168156715676229199212272119155139787624071170362438290662512854535771311102354911941736073569800970428058088546634380518112633668592923040532742062927828934905216564674648826106461048933529957320931201713914896286200673476151338342928677185402862039346784639910147237362778062324112844277653589795244857399058160712820223366015233957018407433229403752331302372029599544434565485893648044867950177172521125948111543274687727200031513264855514672945791682209478433825785460565689256684765639172334353458870395880996237526650204605801589919393148053754595796098066525772105014871263838269077507545329463025584621014693617976390428621682631431398028621643805599687752661852920612652971426556859231955601097174175051886845036738059784207933589463673290918299922928180468089873211627199200898789669957811296774345243895448851463772567347426491034198712846695614711363540976690551851012683836242299003928873928661963194168178856406994363548740466995774867538244093996621240273105809030046912990630878913588391871783967715831924295761859304472583679137490969979008798557327756309772312127303979561070390403012408700657197682175813659162364442303000264650952255583285928017816195624076877739259795710900774336789592156793012960221328589744808741569101518448319348072146606041741158956480018779067559266178169246564455172235071504902195583623287786266793153347207905310014760936486220942723607069324091812029133531741541292667976774519438905633048786303718112256532178235405377600037425481033902843840938238001859532297327621759939841527858755948548427536331900404195565402311052906116890623974217543575218654031007793474639358047685005750281226890672031446200460663020105237828307297364025560558390331622208672832651776730203882068619180665208218845372171875072983528325822949198828615853073172616615790313373665660363718650116953223896663537517752111586905891169268023482635211863263569568786284614913420025429820676203526457495754253113211053978904279119361967990524615009517496361814309080457023222847474774604340916032089043913523783561669646828448755689361476227001920956323487014801737193656183052704843303542764834783401039719697072761110720933343734668597335476326411783145284062958370153824247130250218671656283836166060784982041918322943636698343072321965009573589906097449120450401441835801722965131678591610918593977147715401093056007924947134195525063676162722806471318847382122680368997607071845740036758604258123311038421571117364106105024096207090130240550070921454097884998832301659621810306682381112945187239695724990023085517844164267509629056721542849783042599863540487627854645924742526423293141417698945651112140994357458449013100146372964306382424103144142945686547625350495380248892334683213040953263182057128998782720381544794086211263267806496178924823200153964783745723553564140823333892684660918873653654046036331429340966227093170746336359461219007203359913694045476499018307814205776466451963278383469725604143201258411896390215985535044179745572501822406924201990793369125656949248245327145408702796151468672808985355447472773803294724108578938044960168331863510454236559392127095192831128646604335572483644109956842279626917640445179288865188169808279856999287413372106913971847601552469298578280460154725011539047967589970431308175619150822590519727965459152808860257554010915570633875962063352087323521575813469869984285944070846208166613614821785617417773975148487688535608365095670762163527042869839216358421353709395365887651929699488971588753868624532646761746122902100809230611987876386098922705354763332613410474195427370014617251615020061576131488526934253333030488075569301784721931608919480371032979011106951129394342927938406649592730582764890111860020969004288621930401952478633419411744150729030037490363190624558123602887547599713555771428399770351951055417450513388627000383924151080401682730385041518648448373256716857164247960442961361524058961726435076343685389442737997361445075767574100608408451952026512561625294540309786528395468713857209669769921530960797890399150524569197744885051751892992888504716642406629338384230149751099411613804405451736462502780904009753635069432648027214801672988267998247804052934175272759710913822659093490689796992789462948886784734803196455801872895310319660268962994254020448183788361907991115198222729267273520915638467397350323600409140015738795451252746969467020245455266076460169225535141235442912885813704245292849132004291289004639330461132219611248182986890855930861881647776404392566876482324085713674179568818919145347117174227951981469245327058090757833508333201399274513178955430865954007298578636054285628025974615466112681225777394691869141331878303863121842183208209100344804224362892025056643414251871607397501296918206610104799085479668095449217143997825632760856022247070206502598210898677634223534740304022396593737881354799389620637950558065403407391921960661712111385157401445291315088713653915323339528470881500058959790617249720084968902301378416724333946673133330973748533397171942460966068279158614191263732183778871624544472484378636554113689169946687316678281586461819638500059141008201583086880379782333414276156341680602763878317867866121961748586184535642588594617848812693806254019596095487684202028231816987950946730927342714438129407160582209922463150486864303207396963242539488639777205789940014343042588513303958290638344000466938935604972130470621289153292482167307492407470116506842342525545545660722033330080033209413372698786266833443617698773723957914084977012965125244511718218604999767189603541736207729838593286203093734076498533826654116645322443919795252181580498178410936050401834200204294901717835621806477113289857649042263365946103484845210573948087896699886618428841820196331375037737768466819162628329263436781025282928176632832252530744806763548096682437117503491059963539405884352710355987009689019438168402895783529601339770534548661513303788407685087856478656206737563173180932198142440390323198255089551272763304999009148426210995552317567876168508381209973818057450269417668495051245586478887650203869001081980117816447171226622185225413928091771728708870032810059835218555813741906873329821689700421710081037824450241014212138001888719420579627607695910951105022916261646191401347609281669318103227248304142591457171474375928865319134550482965869802178682562419829213163450700521608841082118646093493539963305400600699528353309821278925828618054358107390171165003898853068603719131694977577051310002306869943066231435144519183567988596419936507405641128354859109670628867905895382702307414966795128262482064518957335281170626433424328952402347010902302236629479944595913713652471731098433204267545746465894245867618540127733382225682300707802620540496264529951139186748821546219995473601277357823879638233429569754994285294309817119076219024473009876406135400351927256509774981887856051062436380917395351376671527806587814488742726498249820972137049218848503065946997455141570892669276650859218417596874489430543136216252991241430314320019562336973516950296022799493274758454545801371706614817437270374076755569002346216443293885595369978017559138342684128278859988781735918743450530933538073351323450328717333016219485297847442115058006860976297987653704367257068363442200404475988158730398555966597039992216978622647454284635943286143760556335494847452359488049985812692190391789904153127712605270976123159545943658410465221795241941717412016407777678730226316065847337155792785011825882006952964982360414599812187588470176362282954310652290686243582091877837966903413285277376422493969691482753448590900393825064875487147113142553681897185364992550820223849390659232419857468530658321650648709420518560034516079456239048855303582293441524526511089891242197992810542333295586723143079749727120086352651680053851542996883415552816854684068017461606576172118275090177085309109267990686979337572103347511710767299005801365193283483767829431664893370125498734868535625217080176986763016399052945413058164287412858163431510315571686611834290458139585943774025521663260036682273113110614863761209558815357767712249051565634138929374010156977282434174643232254935069399212441060595410597463357353592862550056452307123590678965655980412190744200517632821339035699530443412356853019988478352963684960248206680477489839044743673939442631141651865229306207081410939089343050525405437850817039174153332273720682853545877946425025204311589263854888187944334050505734571708428432294274386264955123671582420304848731614922337325042036736874976241589822693964972014198724095460728026522258282394889421614090597111015565302363681767314584453030421845369454533469163514274417737387926024768500788743684761670660428013594025157562416460623814358643553921123494998467149235737767002541053480993511867185048683887698459689809806473429991121982686419171412575958856702894391023973088258381300114885204672464081201385531376015340346990548660042441171864608564794923737401697719930166599837888861057749425737767449787700024461916273241979271536188390319380148898989107348197652221215920105799471198042372404821880025290821198032422436731396972110311359241763462518794552916780148245002867923924689765435083353237552261397126229893299868447649527140273844103918298260874089770457904877929096467102732140084571373137715196107697384707927032580833486063199565056407424384446291842155487550176906144304739064663916584163629825089930270941525160413173741959560638333148638583607574500118897083283059390599081166986887693240047417870358155240211286681905648615084787046204070313026180461969153147355598956184875076521608260593686069631940766609350183259795088328194497979718297475524822329022289610400216931824213788133754175960927151781028225437271972366012906237777474079746358572487113899310441698698944982644715987016895783221114789564806184254209532355400555152953217103470127236896042239641613469750602820097276028904783815597998832061035466556267455126029851366600112517683209384393564826844683604235109369439595106185039167673343985170866434784384314517743838730165610654803990820845745348248153276059069899656654930698244398779626126178212276674358554516882825444552691640916766108333692190544724722599055364621465773045292393382459410242967607202045009305971267976426806761625453060004626452570554008111543778477384570631691791558239143341436553160685455016892965799048402572615040778623536155906227977634584205628891333860308275449283965980863671485411412878980336862432526206470619757813936739570557941058669070312786719179615798704153365925627969333580341520708184027536811635657529015985158056275772284219653804457987940777664717154660274567675589649262958979676599007353489857516854383179657037916578085390639290700225020988214013309753109085910941774160037427148912554972739913746859809755098856102096814976144983182912230734365016555314110975584001579738686630477172042409348825899833137986670399688906393645307333176880875685695058746046603975961427086525661555647314614385096011063706630315167172240931775478969642217953421262114719659621155568038934862726453510427992998278196763565766445130499822280416832945363121578582877285389869248279574320798762931552097540283948843020871569174580891329736808140507698205730776591602881850708847135551076457113202152642725779451634130505084278007106438615436597072367980702317195582640959022843570946439694462752418392720362851313472135880617716958195027144988134381188688106250548922618366128957050437695188775390128980205449037288753259614550160205279409208308152532301956448198389766566481071768899558768032371690239013095370357964278122595385194274301306837975498360935346608511873898021587837637431695153090228180113659602248508594919399908107057221880839590109989203959148326415630293400499681387334186244792927097919946030379710153800212236681032939184411651745247258164141448336010922878831663535890394205745028650605973361134890576358979721432119648341669576468976668263557723534294358210487723040627921753419303617083395383813847454678054592399474964990455434324221757935928587325901548144204449419019083727958794946259864674592151499908492692059176180305667967259039360560985320039736810473382692152718534890227374928210192053383915446248023325642188756057983763134765283263354919415724620008787017946554314343002806825242584298619938007908764488912412705205106205610464974999535005006021398687636331143748505127240495376625268622501723651157920863369225633131905010828099375248289407848703599401411547514954196270496257808032972086498912782489955450656081453915517447059667832771440514139243865563217461044931319878670015967472249663122099696750441077461562300792256581239351066709875865797492199495282199447526846139739037156166001779200572854902914248723111849424814779819492435412574612171556540201474656851027442584671655543767062178274180301147792246967200813607145371111362723132572639588240710861008892658802966037413619020906094035943495414696525344618996275066829731448555006504167265501408462583506504499838636201045857242187826159241357111100356973087630651333827599729050541822201082228003225350375887711612512850736526500846042668657754754949499475324272790320092958072864112572389770104411237887707547072346900904780573690111412492794676038227114760570867664612281093966674468390750803077053031768869941898563649205396369432057866495470207645646227783491179754055833528914597062277895347118332256800535822858533603781811623655587808902207165255892384727775265400619195807958473699619388657567440723082442219007839930696987475026719015191268942708632190187193962054691829945820281923033227885749860873244372167527751602407729860038896823073146763188600507569007462328324236359131669618452530957441840461113695455880946450804266552649666175691093442912604129748038560512088916558693327664019364316859694347784617416834590414182272273477232789072001496013060290872666295021140350185710035947528766983117012105783697819783927744921253029358060804086449373599821062628465648448067247877039987037474763129598315538810286590329940540184255867686947614546540474024458222413930892977286954750489576138930329153584169207655801619114241040039721889421693301242543555237490955125870036167605537125325737661156234961421650592408782863690430226328825628066499761577654883888595805457013942312704967179629978982426452962408531412061494284309852218126900216825337479983509321352075153194842130483178853670016102348759401690897898957147431339992720657638786084229120542795165207463015759243246514762101770013367393918981044346462294582547172160999631139055800570188510775235382515031476500281454198146195786437399486137336067313309185917372876974579628259934093042362120892345952928313134659554290549357415764328886663407459721501910141639600225201155982027675476613762234378526208105375705170161285622941003511573673644171583496304908199806426263768824001793886009825122724532476114267613098262909822149549277361927161384928990540346230662182824966055952389660871690426698801792232401800189179970767012183866388191937240600101515838675930170665103769835057539935063669160922450299439543244704599493433600273522068569889793951416802003357625260975617251499349606626568763279695131481498596244488960470568962492847565422941803806096562208237512535553159011673798517874382075675578692117713316709626118032885203426946103294644672874927413455294967675011640543605516365623187355299660670945331444580102971247266092685599480627453391426103703257934916713052411102407471285491532517935168990202260841773141514039749668113804922228895061983028208576693159215825590626032672763276619410216143648601036951301260393473835338550711421069075884443062336275425266545891761260316442564970888953754447362088544104621710235518575718909470609726270850133779809755150942770460328944167972383141706282816230641228082891920181784870327702263084154433555927471791720157644660198098663864228492023558768612803345317957208256671872779060668674970594177120996745775492425637837919951821889908999591146644483034602046539416826188536851310045929096872684220586670260335484336111498919854979475467416156250583537497356887402959461189590103649971424744807256118989739920077768842287480601481577913689784670930719169841586310125090326572075765222220719540436648722475910319412812023880063075181576656330879856168135109252470182877135846103242555748467239302116601001813418299453579418243102835698916717574328362388408851640410242987231217921871327981813491207055199646874855594521192870049351328165177680992639334661832483524686249373961693427950862446246242080590620144261041665350931470979103605497509451948448399826522489609169006067767899467364728084394785272149577591938850839385857276576031978137117812211808217860197388928827632492596589835079142007432646964167631764214065199781507178696883189920379151097796205808065865188112633098145891891131275598590661893915326442788041222803092775038565245190463322825364791038267483664510614522637136199652469243093831015497536862286251465177443308545324797215302688452841062769578488788479813552817988516423240862483653891255358526149762487251132237655180605190218193595745130834524718703320945416706939186488757150942890294794988985016198304953519985617076348212264827551024831443465255882023981911769050099989470673832027300221928226245313379456438681987329963539478845030926830325101746828394337554553745744565635981915609696518277479242818094166528694964660413768303448529992524168925443372450632825364174340308899411013127673828267223437980385137454654230237475319183043731587135978632295592157338954304592258556070158515640216045353347687097944426087115633638387725287689396683574491317267356972022007306693154847176175553919825097886830546871539793818498079384670018914369619998421831456710115262164685093138547762399417653364392699482062386720573659898608452079399230358523956672898362369056668294335735965038353967585703273365353285639263081783058539464485383296177429518602460528194244288488927601141015377933539682105788624704290849137862423617057872893230605473052617245288995563437944520789033594455673077400154420270988071467563768910839061500238041816575138339753535413425431729346390898284441483996358648401466846144550225587861615669640365168701464126840620608180845064894349845814098649406736479680775330931999275681108171957776616856577265406404970607230623018950904985671532147413079807457101187522911231076367211155286355150336782229747714350506249689065287746423560479099902888539836969040752125532781682566866462233262518724407439856179271222996216198943534099371516219286202503176284384542098196181103304127025556107820262275013921083800202703753624408588431365433645398473055207066199060618834871604629817895075993683414533452153549557598937785469035937540266519729620341810610730031274909181966412358492634709503444151172377771696739357280828929088939795545970815988504106905753996968709767967326299019647632241927169778339223804054984104837039056146335792093258742016968692178598862603955733252574536283327106547376799822854533379253253892703364098495648112841801593257803288293309578721879763375425867238504335863255215327663255874413665590723764027984009168732414761334802984036312242920850648445814581760825765262862897448597955278101481406186985165110540413405168767054300547542891376263738097843885837452945716565071402214584347475346188452151322840226747370144258622186774555314342845978245137336049128665778034837248095571290896602005375906612483033290482372899167906846026072458680747569488026231309350477045132722396991632713122451398206966762395028335888864534765914455942387577889019476775807991839658675399731506934846725553038005621699645478166112982516957554146264042702844944200389758605855076512080136241239011636498585070987597545957048823440974524449985204259582403816440825848147351617690916850927468436803302577411700127391963164347914935025824560116530746595015718857483560521038167658476737964121451807526143678713204549194938956057776887976970672487416284060245243063937948778739450518299768038864805826010577026334097957633816422105225538990290644988227296730663580832844524224194561548651005669847478650260551233754796314038757447223039375769035516726436166805323600649952713919022140567532534677175530224880409007990390220449893943016891992126766265015604056722698761339313839126604630394563253093035217974442738217392018459412399926355498854910273092997117885122219568014251940537244074375541735677829060946772712989202914304684686688599265716016542911826035272453522941718154914047050601375883382488098508945375410648832681679912349784183511535777370342941836450817036412470072270595504589355573543560106708752958389586777575690804729955696494684292106594506037509414394011662464818147024506112704786279896603856120844030884698921437288547429517390983328661763035683804254443408754104954916297338166715804646193852380914078301858804559864137080283271520390193423706767037059553400110045095642049152059055209443740899026327526192272696079298002952378063049708136001193917772774557298325884318204445686712584999581578730916181322715998940430360353397536273310955472973078559503506649225631051760377671255792469089670908102428669686082776418430033089470385206934027978785694864523317236335646931967083734354709156016107606317614230886819638082610873545274936595442236402206382230799063151609066774577634944216540206386843646861140690913515777133783759686344894871193824210802348436922245329383059952541034505776465767597433126551209046157808587694510570797648710912117473357832310831168668508701949565162637792058143459317657373909950999156412637391898721588251766876801189183109510777975672789618708004816950076715923988040136377135691640339607755674918569011069654452442337346048049317335870220520409079604030219797128372952556256685893543335766601537507124155436592538651403639700573015215627606450125306309989781678647746302106289797520887405964189870211602294472251739617863082668239316715132883253496352638498970271496980453084200074409090146880235095224773142683703601026320914555697864152120022568774118016790871916605149562373495747689770266989363940014851063503586079634111473889085135660427391178023379103826390128898338517302628481348256386511913941827884148683434743435082096525622022504351389586877885395983197987786633946961403923592971923972005580460188268850019325159113736394687405415457875433030237498809660982388467648797491326854222075436119521037745719229548948204726467598278666425075631323591084170236781006894062289325527375086365386632621895484941037089824009708972160003845283678804572880434945395200884727093405405044447495880296077641754642848189926720017017433675885876303201921853316145789260221022884829248742970013141898382434628467960485408226790963904322083712440753089914041497236700768277607643759701544739902153918807906328753980060964703343868932099625040704376333831938106618050300466301695878558037823996226938073387001128574504999728051704254038987764089622819964742387910484298350682498932864911136391990759701940831077286639047808438364248058897639236156109192157627566513030512271629982868621358512439172616518207126717694885649996994646396552979154313310377176960044853026976054550741999551311921354713541363737808973902755197379334933012742436343996710487859400820853452853746217574199645299586282165886638537120578984938108508732531998271423734339265180495777594225219980795554090440999719006020985778896038590618207222227994001372716112989703554544587113612690471890460096723315270726894530608411099307357736052063613376862964894529336648653906011384607602180924648962684884594193347504982051457123902943135194541664343620850642872303022056977119416993016138707482267482254692243994266436041524915871833900104036959606978280404999769864803961876279438891639325133139329366526898608674747050208854439568838148819693797986701584343664059929036387688752751203611744550199657792982258369723415423198356977039269839730633343201573525820113011563357186705650819734043145755484338350617290407678604221497887763086688962806352320667155324384092459655500118624963093237149170018934284327660082789687323148779059629928492794955512034110877299243427294264871355825944862788934663436751107405327743430893709534587476191741269728568704350980326598408448897182780862575400385358990457349816072216709734672576237757355942041824377489532027441112920878074623346767245879969996221246136483469607029940669114399625173051172804619467674412029037894558898043728551933974174769858884172228063345627485648417060949432888419743686537167740680160356187022274666996664354872198670066047447433345446613539477921494317848973584740255909607871605898445766030320841794825233829264119325348314809125917779331108836854743645878691296219798131158424465597029249867303375659712319979765180042959406842200822725821759524727532032781022730861074146936613313638737275377787446801426412637249190622491247009809655185105686649345715373283591432690563879433094857753799672889321654580362680052373584727479901867927807539306605205020900748835995617429595132011403039030566140218053956807809568381197132738784902531372611278061300679963961767162196981096641133198730665731851033622302737463671451742315753243199892023056832767610532901408018638886626064964254986293458907363415005634487933276356927610779146834092924713130458473384273840099686121675103554389862430151427551022487078852840337243581542120042182717155622455993361361900467559683734875862406858216576742023603329110945325770434501534397951232111324897919319140739920001378180817252699821849138383831565063966485550694029834763439276107452822801385352180441658884463571194901838764607342678176642162825664470751965926422330504534170992732122010047795822492188330223665756837287396452767564444525127090502084924475663223101099955604246680180336711309182684834233004752094237026430631792062213726934836187537277154037839222975515686178041531164040101191727039750808791182516808037473193325144402024158072417495097223817986607539759193017295243775371279945679233139798261218943444007114610960380463529152207356393615455436996443844571526027120250206637048671757864591499004746111466929116962050510879127365248641113131738587580856947769405447401564152378324081854395670001550595181465558610517954858642104336579421325042993029432995865865731062443943396224635685183697922901815707538479752244542896154513758505557771639565106439418545822480958600326343066602323955313572998612269653621081005265378817424921860312863256996221351665248863896985997623605438201181564807983273776237087924027514659348157715133112651542353383359859739235764290730552619385540066603892350008158464139684513934155259123360010550539117037255280970367002423156391754058796963764191648783639479700889163408082708233666858681879567112825385978264239195349327328958986334168176434794960509982517550817596383621028808743589824047714978498539409592166205316144611596294329396860965013699138875059192539353591903123776660672542335579124045493867509204945587001199340689220721259042855008754026615102270602684120475763202374667696502428504408018256633168025721180623083830745778251716443577769653966782451819611210443171075429758405746152464133846688898586213569445669938323605716963978821002263619801368179449953601686527662042210815611906759417960175262186658861479003681480346421205757221560348841866617281729527718326320844405256963449843102344876983196615399420667772655655685676788247663519947211881823677871149990932116145374097094898930306579285619314490358520777692931821756931144984733500061464291373931361081678619572694742883090440170078620447293765370780151641660566582146424714325592567083706701687274770506815046061577204300733463535288940667132868600119828305303241706622225356843385989989190759740966626743117326652090277723501063343263860266572443131083513836900833367388996297298206787899614977849479567071154145272250265231840332914757180705711364222338540982146417840333713325034361790750298593648440416332091811176675985473364661994708443969787913040993358814738843150460875676572337116195542689154131673180701458126879099176908664718494549561033767623162277233325362368597304745899913177940184210182493711299758636046581058776461600394592075603269098052384885284810731132675884549399820973453573322563703117114629006857877087367838553751241728509675035517999926771441303148282597227245148596768182301132826032927153384029938775704948104927764889527950602777186555815490686438337720100590485150394564379893278559986163250589995752506305084589287012028518965067131114369198272386002788268520724612473103352119601435715868687588673794148055431292655183246464003550454073619413487658784487966924746915624110288255538945838649034095590031127388611643038283130337855417488701546700212809822732437243960593023386429197011728958702873966241614984977594052223442497801151392593146378259920360746058555414621659729002398197669678589275232748824746798146521330483101616196367907174961325375686404412999277233337029286966888675693693845334120044366837996211260433308046125924912590092826839960905162417675183797458708584342335129639395803047545950006418035507962921657280830009578893634438172256830249201423637316629525895153690032946132979854802235622741734579174119743333591638314748672515659570329117412369462342864237750392395477486252685838179635596704214325729473331487220926647228210520365851314855561872961676950699762231371457617286020099907658816251778672349753628220783068866664780265298429924419419162506477591416267482746335536020104151073262981515724513697375569189573993232505049966687021857534563704201536845725587173636852662299725483060912004412236017110349474134332617045372448704653919653431540563815756590805652197549865830104346327668128582314776719981956805947403257936522014091622669041617446632394185207317694216345195263954164756548417577775571900486812472027533744813346785327471667684419826624133899780945201880957428154181773863153644457530612636576168025538911395250231511637104413649151565445467096146504867168905311811674126406648335550198539162336526087557038763074259919281662944002908610179000865616655957649613567524973356195125925642248041860072244384832064409284956917090128706395112032584769346306208206773310783639431955220675582715726008535258971403490095784264311822069177750539715566553172808094683095564159610990828685805366721643746130291764909557530383490819416604136563214780785679250894756623154893899782243175851287069926711050810848533793332278102818979786526467745703248880529577540113185561672291982779787992935413889943390760053772606639237956425609305259479992496590383372160760258118866685764304748334163720551035865379326578282560355338120758614980249061738839746733120569315791670729051431621292588954271212735964685833774535331224769142191501585132345190239310750402119586542907955995143332430034635504052638687876190218551884355380556111127852852203516332535301821223061242217429897100185436519356107828355383054798304662520906342384349348360449730117765366820722424797901784874738817969621265374904052422110850924898146749899300361122202393576510342360176024295130327145422934274806623820350617371160964134464164680479856616782855015292884816830617856834695043024725313788670995121021529650383151526931891590520514421295657624496867363255839497579657873254730239955027030670042012197768183099802722441124400346653896509451165581341802474583423570618189793046238404703021344140994950774606772259134069011866909932404900406101278502944903493133976143925536893198045446751660662368767516231743430451649477757921468090526895551821137003814192254765481858611233148446004397869527790906667308610433319315262304144573608429930252192492637243843560703816631604267442812061868302170160288550887089001456584078172965525891267041589814135095221008364400550072892890773189355052358403410882526696460753301515587273779024704577121903770969120501978836056967067263602015199074517793856699049921635067634519932901856253593293718951387434392320882726449980986725993362688662263628209030473315376755396602695901022356883835898943931256624828692854848127098493387907880628299817213585160148698891349534054432661340780056979538291036228517270488445458240738549946970647392814174504125722634772116073670952111321729771031780787781642857612507456689006563268147773332132218938463496243362837938125103232293497511226503523133106743648108616532568868001024790054331913195604887385839112311532870301342504485740793276841067316071783209800098928322498513864880028006594914512137647098859038057023148717765130977130027347680629650948912637439732515200506840833447688195285974187889502894897905172018204168308749943488927728370735536054934683712004795040276611628456078115987674745998551995540685343657591715309304438871529865061424532227120709129381385379033375385188227578309059970721808391908492498103773502331859449831824883107691630022607928092461065959964985994456561525567820250425784995793226141710413031876183054521849576653936463741012980505892896418100558367748152254893502622784480085943884098333845074279982965616250898967641997739664908207350888676031972279246644139224984645060881676568976067708865917239013451170936943488057866830905634671419646487951243004888468543987373251058059528193864903107588585438762749027797879091876146858615441410014708070408944946355474599281440865843155366773120583430947278843937386290471138810319981408647600353604409815477503966800082345176734720212195772985075650222116613947807311893397461734239825805446361287296790869141813906429348889924821703410107140875680064792265012359451134478246273134269193033645920702620969613964906691271610042887186537818955914136449835721180308977810328082049203841112230640759083913493639895143258466594042212480825269472216725748377503590314894088728616654599586477756589378000622092500882707914694232773749758980590858435768790759545590345097455084537776953588748971312082886234250061402816216309014571239388681330129773113794345848142263003789927375388313173855368124528910689645942786815307943910011755649412735136844622986605349566298414244651095225730610124445492586250997800568624872390543591144677825242971990349436243212791385167740798602530688438577866017552156297398634690640010484879825132136991276968949932338033909053912657979545574623586787356548154107155506752024380061306427065424203001542138182369820314819390703135560277768832536510693871607761301620459713740123652592023904870835597692799022181551894118136239951275201031593618033661324701688265776521353690520425577627090756171007809246789659481546502955746580740632586945021751365581548414492246218864625616418492488718147194645216012581960738726511776976442782461436584947507071051010614471905551678433099250263537351897444586499790217808166340903284144476394235516573138803559770391557702593683942867911832218366583580201214338091043392773805336620518666786849605171865677467259022800454343283442646665201165320424252161324897209830337742614590603513958243301073858700879069349065514281330814127129800990546189322094797021748813391943354725545789985369536370179961828943146159131727950627616342929263681777337518845805060276035521487376096037581191387894321229182601608005087837299886525711540432786021169483634483151669384677994550332917166987373589408981085172359038596637015672688351101277393913486433072921682794639800077015941097764347123565508688085043078461833056471555457481139004660792987638187989568041379410531543045518267350550479943233524222484592374209051965713578151897315210755126123735613709163557125408000865961625996352907275523994768082430037156839064674413578571774275012764658296571998028461733286703145013116508386840056128895384370506867289577713660171049519152519455519613103535757341489500287516812740467546851437536463434060982449051608784624072672573650868557420984856572745702830473977748619912813039888402849089189933179515713801839325770720493221041287561099203626986219745102525386178268151634057119224882024322722105111310691277919393933555767892224872900439103622511304166963335674531880742359444431221282755508067542277688744287487438331185884651983922745141958865377852853341075386662060326203536913385599352191086431258022792082930961479935553453662441178406391512999780274130493691798217328696176532657854983576836782136184394753606542574070812825626256820325320168946966932867976641188071682101677592739012261652916982605402253666795162845153893371759990581197181287967250050982681386760887757920573694928251831703204200269095127089390747088191735719516228543938086527189348648879802869001334107875746471199388374317763725421946108448273635862743110072378922637801734543372039635067871882698461268139604835665539986806868948067430947781827562315915580627254607511493498436725273275006933390908787008957662070191605268936064179045043927960923685494432456148631076429185215122680421466972676392936763811036248780861190999620206054005030920028356688886505985421094725145538118485130505041799996544582457485773719591178278980422947410173065076379921833932204175786449061569374711706941003987298808505138895924998667013808789335878880968163401716502326753552147116306341883240723123225204297660684615514041973287176281231160001347554489145715818234111246549225702982100478196030630608653592137144620135823504386440642866460991050870310995858563420777885398543360863715626338405081372593846902841677744884269223925280099500252430847586506183199147934439265698650155517296768222911641073991002511502799453493109593726996968272398710515763997898582278501806439904386724323296538810822414820688613554212469922195786615532632376783805318018283420033664142537043037757019804142147730504055946840482158883425057672947174493665381839071357173484501540095257340005020017907736551077688714490081408409606909056657443952163724155004211475068737538962033873904685553253275198169495992803842149719087142516191460543348442934085618377437689111909687470003023308679444156250455837483922283924062619769869670425489627749580327606008988084552291208402594668541943660999054451375400917849932214494927124199987804010240341599585266556884703271341809748657581574000389532021996044320863928364796033107221822520581544769521886363859559970690058300655194376234782428423244577200266064181198142233179181251568139362982411105930859409661142006720700675720354548446894990038003597952652990376621486497689800905197439011109506432994201902922577662251901468322484106871023638210631603225052631268488568231112366922592666061250682807298239430251200771294398403029776598983966719815409294433816769859501129420481975108404665174032205931396602783482555407746282458663438182410748905171200467837738735467960557914436042017348655089995138413744025599842861503071400982951314366469653150462095795103879616291809359686844132124280366570227140458154088690391267510821296176971170397721426867250978281053376105076375612638100810889093485520935882070687199242798237741107615158758809016750026709229723917939673814352540642000917063334068132995429411568648599010231972362837862512708518093096037064970779083006261038157881998143698612225983370028239881082446228098569078796359505965207627907751940783764717887264560019155604724758480199642259354278435258401762052199815497292948436702599519585548153467924218687107211973850295612228593970769591684315376133287418337349701378692082725461867649319399297167881429955670025175746112359524664676369456854396738309834554154303735720902310766743513183753020475302825864552234686962523038772998157288000493607366714755107741193535085420682730163857937975107231750679261779888004255280127655920164833620942540273096756404546300611197857187801649230494244280659066247759286257687229006720877404653715826880561253243210466704001624167226958771833230733594361991610425981271114191410110059289435276163417905404443183813954849874904552781103214729709965190373336915105633225279125428357281973056082275686124480109648765393220932733313618347714766126777202088653213864492221684132813581875348843953055635444459686584459461090103090050964961088596921343410538745059271180796119699792773189399937941523253406504983644074442561991877354319172760612492339480910367809878100564137289369258587718872957244910242854427566190373850870515808671891087772559120856473674115538331160488314502917243265550159480303820186084443807553426577346757352976342049251995636678456478136311339289770863585402078338192407061273489522825154129443530522444178214267111035612689830619782557390866427612605980057023378908045115239700305850578512303992043011564080165531876832021304776266190910329893888462544983971505989998656350576077613049496385374816439451042470436382452241707530027282524775050156359725733754681516748640897313282323160150388315406316729316519762898467603101310327605288197037110732264701181386080975026771326470470714746573529496301503656108467503951862893714865796711731714384946542744837236903582638068635867025771938889277331930295683279217368108083838143905317704964337735662140505527014381519821397094353210125895155385088476620257113068371889073942696817225143958721278071287585366937075764747190608581883561972686459798281497377982779139487087022570864787358002826856432567538761158338871418872292151045206802274278052077680136096121652957887492412087967171867492476470126193866929000590154462926737732748592655123823426435204043936452612524320658151787082295407541724486853218233624912579759475197341532197779498319774270826064883368116249447992756268100344808627696380869682612505916796565425868633133759888294684879548211648040471509449660102764992142562975845281276830672541676448291080060055223349436366949737914699784669219941993610241005194328016737692363823007782278846289250249740599777998139331864663151326439473820600670915332871287397105048041531220448553425606861616470955515903656776686866770400960621998376710892886223315719257437204327476865227856119136182037423428793546255456841172165686303477958215641516348851188154294817884121198297715006309073914206810932692282497504534640848454693505320656115098117753286740276567460890940826607935006779348018321369469404107633310323818312660782408268546772001446359190845308470268676608007692599217308176106715364662721071759791377027131861334185287994883512636725696791215378999209087777421494753006195489642748139501999851647612027518799416862107606775320075693659509033929548943809049578904234026491912339978845668200467945529234511238323520015008277925014334074035090165148241609189613821301832055453754386313759752399318593369150355515229474568616705751503073750287505262342767723985847720340469052488245161694885359978621732452422199767516606747643204113211768592089268823319361489899583605758130178024329154103161140299752611032884064587577470086865661486532258367658319002541088188807784294311889593218059653167955365584992054220830965264890358380416828653420195355211123905284015282601604171332302080954417220332732313496231988606140613325825144561499886066167333581697221830144187662379220394359261048601884000532413206094621559573139308232835322207327684487430448202980351764958678302160332309711277649427654623458705210047834366795751236894732308963191081505936604966491583535099960438156500767726658287750656916883075268246991666435186608514376668909457224135533710374325905704561790631467599992036212017317627276921733558871245021007216063317201789413989411897913573588589030557197795376818391010154792994129094119347552190717607921561937759306342870156714677790546917296008368789086178130497787807070826595776139392758866326316762410813306802814071590882115223823961935878750353440626483160998338308013531293839906336713200322824434796084277200588116129133686033993728149046795769246965026190900073072874542789778695819380663549551012780419891901565589553184111519016028912772929868473530111163295319116557638382384768399058378601702040958853722519242396931166502743909460457589496437489957391839512460849626667122114247151960453365944361674329986952847753348630932254217632985982400094355159990018339968013065702366473973267636989280754167083514653745523943601653871991581211203919859390304573244593159649677327306619302270095653821268410659751130629237848856531434807365073342024224377086118553615603288165381613827774921032054007229189234848059496975834258576802458117003840786368428176471401751261589650222588324334760356258213678778724383639549212530255537904219047975660329452550241541200284281999528712210803712806573038118053633209555435663010183102287685123715037003582461197839786573820442630284645954364750611555272631680961395481197439396679425945114717605822602944012227755604920055489941105927364396200392604294081317875110307468119563397705534078064290680028384719391114888647025565756437522258130146847374231291844991543660550914804310368164287532094239504178235934515621146049499290968594544451124203009649359388044686975434314609997368444511744217788734741331004000841457951493481140178593009446413352440323086207116321481173671577788631618206411197175661243176015008636170148888919291183796436960244740128615850247606775610029699775224010276619918238489873386706564177730797658270484734985290552671324583613043294787255760919198340077330045939236768902921163990767789280100495151375015416420044321708706026522991944031983602991378498435300963379593199656007960406365976350713061250627574198551394225361406937193922389845542973360756127936907027906308165040355681273859557574032882868757681456299078238868258103060010696568409868884145584836134518825215064672026993096840759292841566703835325035195931940544589327856127896136086495808225468916051357985729601004862394864255007456744771757290455611600282158394817475034661979802209921032919228234656080792055862919857003604779939752348659777029166918816158405202732467652599605528162781155209085784880980072470180322831602200921897120448316674575433726539645173464739177441064634552900667565934332383913564699971456667579345591145057766542001335678664011322954589717341368325506944383808966444773665278123136176842694482133801418685898479442335501944606728256258031818588979471391597462818144497268988355022305379737791191670981530556956369706383990249451036188564675048177138968629070101160988976189848067399288865654362238834590815219745530974019012476194390002192792084767317787980647542264906827190436159700838443443825813616992555010441728497959776605362083632653613400861166427192466669746565717059460984870897991925928608583320691323056419090897475024757720583702964783106442820855798140678231074492073972452138065302316501082633757727575805743113213708088282724417160545863139584566291784065714119567860024521503550058150108521137384249283750254634215409028473548347468077336383980120231465399320140436904314398155206865024493227144354751423502514546859184557757559518906545771362441099344330653911506576313162573866894778381383003055680358664516731797239090899649501652072590243557586069111632657633660969120928967392884136465948041938582785955939169028220496584717391703325089157692318144352523939467816849632930998795195184691185326151602368201131111992832687458498819782315255138959000776458497902353810648549679872117583572754599696336576922875870110178233987930181061472579542554919830149876045740519770985652595964379534989980636569975013500776710003963219858471785028451323242125405353619515165503833068356109982008594602442753889063926541490213345640965651366803881620274790595058499315948675359126000256264030147961605582343637982646496687168494510825215072385007768145709753442919121508616248243183915964172143753181570195357967711726818098151449788710207918492373035797214794308846928531179949998265177361790406803130126264848530146255378001073738401537968785874665775352936100069089750047030207903795383067931090773924967949687678580448175648046601888281222009642871429355401435099254552365034299091753294538972788352324652490913689168008025987279932096011669744264560157359703804456068884145621110904007740625843844598510526720344707871084356501064419862861759897047577328995697324130325969680373725454936880162120872498752483929394697007470064322985172115470192091516234033079166634516010332607771721779061586813602630578284178470184282249056709326769809257081825431269975820707873562190048535308033789061864483644480326187619782859026476862900571395298367511250287761627955159793963755742497922586426929166715366115973037347417981005221227106848011518433857376381405636047091576589048576235352627550117601732372969879118492142804491374904696048468246683127153697590631816752702917545909743753237718870310735987438422321204408787583166532081178332694582074852918091169543606935745837769771993477159323857696945499119028125439062949738878084706243332278158663065892253372822515395043869425141046138554056208037823822627945166518722050685353377819937229727797918415936217530341376615869988365961721346072918363046822489676298462446860195530256757572962565304813224972758768159950234377745303168194777504535876507439658298662068464268655877498813664294225509323151149485269510614624302922925211713911307086744170048427349379240514122172587898564221370464836423224581627026738571802545194668675630287557942185786638983276054559178876373847007953077023535831264365246683754927029754484412137189949469770477027929819799113714069214056270735453135249643631093929641149269744018105905619478189158918297655374287445881619324446766089477010814589865976226328776848282916101593036661761942701005843157985473661597442348639471358334556554285866648053178634785659833844740528549279809746371161630137232324946600555153212449716607787039506335007227433754222385316332343995754321064897345110367257223254076456075323043646032925148460968576326087694804947964274737654762882006084308503626722256965647110633552850927144583764639220905032244910164384947687312568830948752231872836834583939830519764985188841531291596660957932815906105990733705528378711744059222665419119544003491944122923433622275647547887791843672888519440012583255976122510336289882750234125119040500747320723437181761006723635108845053781306123654938059544089153337485103861801057854249476283397990618242772564177580501304115456558219177105673673911923975582553802439198025359504512198989940480727842381279295379388599339762031762585556647061817117207568193972255252687914041911093987801689017692841643914175246931121424210248531226459406668629469972648322719737227999662841288952608864900067485777809438781022151752614653070132152302208755899984661619830255412320770542725281987031938551965386034596301388263783198377732919861365337463511154872427318363089900178364471304480762171369235706755374665481954892650958027926564269138374631860414101374295165973648634252183586759416925838725159870361758621808118816971527797158377630214698721253351254264611297652876849337220215826925840790886940325913578694161884090913161003986152504840310762597447526929990955750683290595350308956957463874891265204132906912958254670700469398954236837841489606704583698658139720620132369313877955117345012622608090001690842411664740809411936022437104960815995790533569201866660441364479645410053511443889328766547542703953991433642833963281323656737076648358488802444144221296854196651959367302457768588470108227381296572841084107373138485313923654148260730170945737927711946177300421835629997589305986180487038997778541430011383995002393725439712507978190562159037118154450893833932776508368814677698685853457174326238038365433611968204972288448992486925819556397516660899700278086331926659475829991775473924589317862853669293741205980292529580701495347079518673292239225008265038952584897138700656796535769469868332934899085482918656243096501164833711563235517274404430725287880197909210395720345471234860971850075672766757553761902797119931567699019662545637644082264636881966350977051103873057433290448147763751047402609512893383742109233721485298841254600421699186122220286723346195287917894727341675478365946238511980418799357697425362027309434500477579389326372492257860366617544394395374770527035444138030831291228391239998000025486480475112742337130672991641117881926168969243173165769976705849691662544501039686729041873237726471927048692821174253355070908305710913178258353403557685151886496283908266912746923708016190597680184301367657073582722387013208063867684753504084243371672903490766807321827218632950214850506511638911820141923759153828453728930276288663729589687343002069156143951619125211247564805104055965572246742677879442339921497067862830551026891397913460672499827712094296143223666422733164659880834199292245934654406369723301141468491753968611492032643874055858288667443423626864046363636627165649564993354684552793611805354896722178075733022109516631439178681805857115333352318652405406621046000519481758521076830972373267279621459063673126590021132093346987432822466201120167011985306225226115592366767792149710583611010916484479464281509379111627724371739667933493074816719431170153602056196546447652294069009410247239299301102980474952866269678109956662866301797825556963134561977455219691564752267457364136023117815521540486995216604080932745684806609559436175851682199461429124052320506370796406357921275791384657431804057092449650358017824297474727255440879028303235254707681686637535897289106674849007962070746803215626897790738891935728327568664035029284414031511401373999064095317797561767113044938426540523636803776747245453497951617531468477122676497594228557952177890546153465644038020714466844557416883387035412355512427560739126647413518067800107803013874593962043729240840986724036570715196199369110281889974224883555935647849553097290495358671961495014239671210879190805515989346367266608681638168298451407370942604291037884924972636142306876029363896676421429048410668119875781880513409977539929480671861038214893130597891791671864024483283579341350551220156141979414474158027238936492297519208680373256720774825067180454848581926976436969382024210883603617003777405418123400989638870607265453942508227981038425227250661944926242395959321132814344085459272328203770095648838629094959429896272689458215178034036692735400275401482037092332831697795436954754759885815586185896282965785285013387140138473340778568687665827255361141678024022830748875851705762445448114237146190219790250468989734196043362666171049677013263727763670611431730571554324121376003502957992122868344933249151636943754539172926239477977726532006767779748855636559231768389444876584244478054027323177818085367205837667240135859645932546188507296751954188514736843527587456296325392122451228312782895985470921434932006483557277853111188115364155110825008769051126718056817896993105150980203873050340068462840831066044702356398379637938311292930061894736811117307984268792970514348209319761584913822380156519855792270639596768494009936207649589280552792499644993896037117072889275611720206954711569534219489469220519059083588485914386409750495875538828571254232217431514813810671566313638590362828667897966841388496647731021433955725452882196578955196044767703023048668009453102547194995979043086388035122336071099356939352193075558359975569764582861752597873222267293217760811476343331787548740357981955003288168690659728498576288831739652494715007484459034621623579120126748509124699748209640323744063207042730331982335677232094330783960039211199459451766537421673527326390027154624898094847940783303241726443408845186275737166915007117910667988931862981054891741783273050703113796438065769413008878051055712553496497907077259227752568535052186788423063783890840897111149714738550706371971313748646055218887391009344002486716222791738874698068338680435610653328592770979995392039150657384659518680700231426995160219510042914465915193485454519459642371047032158641940948303765959666859710049298814613685637752782810052337440036418672545881929892268098123585691342745426471408574314143314865243911678122511169966472514730783474529469462516389177462545240451464154705928721337973659066891261332503365707960213142458484290370601378588142745200298852948223865881839818616257081584917885207618186983711550105537970711778446252546358772127091031359098819795245318508422771589301708300489142625557547326037262844711672564033590942508782596030804413961631515621642017511617867093092306970631067714915742566106568339726883108701242398082228733548148770417902270827049613645779079604198150507884135350919517856846080614491188617584039780914572533131065718336323763258239799786594300054869540300210255670183870914731785071903640135887280231376747146133212999635485989893018090913463382371354580054668444916503178155710576570645676890051307645192518346846388914333374549465768493574307964044297787246526459277696090078637670961547353428837965032567115086107909394267009000335739321423711285205408578998342018813247144693933296042708447247111423761267983475967269306736114821217191593074281138783298198890482002928746055172505714646654059722285546094191894278750696517324267057613147641894013746693174712447495892091252375390383749668146009796391970920421793860547751809971742539102563439587775709529080999684719010505305582505695006253948698626293359352756870981638078068375944036681846516495690151743187758904124245701342858894767652721939379153955675720569491710855341064988848679192055669528690919241171546249603902269702947894028297010211064345169523445386868471941661523860679153007108410297465312559147566594765501467754199435437255963745040065193186586992141227683787469360385195422421635117022480164020970164665511876938235766032570157697990154186811160076946827049985100561305603808439801001058045882785290078639517511741931107735621483129440168128254736097669083690223701018902362949680093180935648640882115705123376955094228860879685606472456140473167893625633313573210668295096159472903371854425102026465435333570737805880289115807385561867710814496959285136559557002228956194142424896302091169342924930741194501737549830239312497374938751066547879671699149076376214715260706893688524274835898363257409004956081560160832324564834261171918917567914779746532381446604650148879743216093318695207210577749030713020481115856576789017813731184788994911051011343220929693302308246777425302148119392886310910423524654608373955596875005836102863288496533623418944146057730211190163344458242012599910176578509444269100009606665810209579409275520564515832920922610325528762077237388604096786003956659105997947887559112712693004680014690824118530862496636884165703001670622623135281283395383258729110349445677745283202515797132243189108627975543007919748376604184175778610983139398691130411076287797754327656415601829782491189700803496536502578914803302679861947652728038491395619798118616692724107210006786363624555496403121240541248761555406804268969817985917099974682355933936025934400457006634837337745764430103595153115040362040207074729096594142030601907884434111870956988738315180459504990001404064598076540705915390032253977475001258263958038644870724953431838248647798015408318109001748161146135758501418426779900878174466549790091579038319711741606208584443777086861892161909634783740583861845016215117945032254845102211616237528356015342250202950221173752948550148292915654498207828281688112400668730449390914640578723157674264012840067312541613930123398965214486071263143481927759268338629811394737625110531268089439264438309120431398214095709614202372069941622855881922434057474110770848736263469258440900532671101150563466954381404929140825257600192660471045423866241616676568477832823202263708950072282628082643805181552410866128683296432167892817937819975022768450494875212280087866578230618627721743240018479440290937777531996043079182121899840903003222076614029779323401669787075276476168361822108560692541908804957472858158151616745077013087553815122164636018925503893389693040612705260742857858266273275152675603879637897256505503107664088518611605919139542745114525523735298749001448992585059281721070780510376028736145929714624302292168239565412880613885180780088427479537029031787286103669669312498278874162228185127489612696016015643591213753967820381834424050434992508377802543300925842497056363975205657379534568097438322902118247741815801966124866281769457360121651582039159187509165998263549805963650052269956193508959678429385888135502973356839238595922965717400206587962023172339676007188520720500497264718364658299136177391956707135879317638089823929732684712084685702449531653000005884086139737451154015646219181417509033394822366059361582411781561690251489155379678006885151108311167351241292996532791501256829556394796830197417115278647567236003571862896655995047319882903845414274077655761471268922057588874485842436054904354515446643088731134245811820263255663043101434812904709361891436969046062704812438353618342086699526067174989541606619381167311763434665433708416203849495947010793776736152595727788369048596209771842737407506939924140210084853917797957145028400735799437891855373925188877764229814652505470936765306771645729086310942244159439152209214022352806790126449885169567162771859548533669955293191002557991088773024419598741053436188021802991700785893550496602393285389769156400306366950418365506019541159115666935825692680266302602690050633940435077386864298702167278299025187918542300777420504228452329746615736165850280525391430655375185299187713153565167404243714596608792513644531995352313685050027461227242907159055813196695054670532799465598944894222911226750806321784524392909452528564307910074345239321847164696322632059322550052368876257059409377095548526345266970183387413257544789239187060156161976307967617308377958686318711023375173824404302232438770353339245725505712096014705287697612735820644625418419666942683366988610505171953017582730634606799365967868883456061143081827713232048951370508900864988547974174329529886063891813343547268385065727951802595917579506559840825857679059419487254916415916386380852959920818967545102117867815781790887231795442428339233967574789943807004470028224555156967311204677774922908425232687580356741630171632231468643791407653723674453705645603217577727390450623824094278519645613071278215558854392902224991512019066763660997929872663661327790769903412260219372487432597625013514028544513092205372999130568890564926090564533938825612462592868787149321079146305695269640182868093819243094367809411929537172506902962795270755449624722011705501416133308373309998904708502341877719337686612086614354452004897597720873174203394512131800495077435825452927338792730715455712347552468816665541660892175766722538021203940546174436316376474569345024212114214811691213523235321768342885631437591613143629681595659470941810831516088315520930111163614021861328636974815808622444390094717404605654510999626430032700041747050505328856427330057583872626651739142976348882639679607338984106822214917613105460998709887189023220799767957071265680375941843382919927127478907269394420175739294456093760067283688175945276790055277592948519474399431330476709854570833867751293084049866537001771536596235818149285044719144647860830306531345989163350732066257897252587417284173848980772033785080722111151283545859947623296938829341334243103167284146191071101752889680478326039514105964019983495407158764147663150090541503900779278144103618140050547532644211398817188011950068554233687651366942810188909983013382047994238237286136268019098768037006679526241378806135732301707173158007421606505569461954428173278358301098826942266855958131462417460267367571498943438785100185002384944595965302145023196314692816342199785213381666346698308584949621279043441482697731131740785063125199106076037447842447513101690338797162499645996157885741298880574479863195538811772936692141578223818730335814544452528796449601257987321707634130707759913220562529059258916877784135238751028925666294341536647442003449857953825799167485811969143605056692792310286708078740850818412559607064641509907964454864206608068645917648906299349907290813739425502790572586696994087179351541132949133935667285480672903686538983995022669423885768845950876343408316456670100954596168555308265196622545934653185717004017922368325059521840904081228471114701038237188250778493110409965772095085581532692385661994277513417420144714843323913656563721423042977000972997145273987933163304954439179117399447096671833110837446815496874310695933265777853154375167024086967744502877100473555831324274289602918114302820041812714420128803356692663166447582387927841259854005322066567283008878662619773296019455711386857324123606016100321788549545739112107076443486445300639897840231759407614237315984503052402419250840764899445039893014949182462628128808468659133494511251750858872914440473929085819188891816741630832858787993610169028602878573112561015162829011366426200985394201358001972505003443749924836014103082145220830031144582984242149741267619470790420116093745490395507446213364423234617226807395845403363389174471304562363504774161018928797452484219648311835689990618217276742357316611870742394816590661986791511848130013428330138273506904201268178322726310975696356584133081027129313333251861222013756411956470358042143197188923044563503404580851768596166336508663949557231791860509236015237246721945144007910697449288691235492597685757572813586860251993102868869176497796470632960521281545607262070039282675541222668752335533743060661280261175649408506195914830834463565192358453351317951211872421045021292608847753610443695342448180179362926517103618237320068717445524875520891559681692332399783623600083331492405282777736909421261831340117753109868940325992200605258894086265684300588370577849551032942712229981379891925717983081085982274315860715194476390218422403850337764299185350842302304883373635553444385405205952688431380333217617129275019104065990954578250553558784634807369112854061755893467434615767805324006159260048814697196495049887688480334221422757479424723104974809573145418655060455480587096300182260473493985990609701801115666033856707394738245748429221982569387466367494057698185589197178992163282267130521653373286289341477858536086133682640644664731536350973213302112560300675989170645975864300840423178638225529643400388813877896522317822251515144729047794946860847561966848113277368841616627511838617598333147086997921731148797853964170091839671954425652639444098907826267972706250432394674236178923747401938196572165446920320534796787154103090655035144518815981204780874580175231832635111485758350156900706549972989300261502349455339742970547879186245356213353868773932052244385356360676122826316460757484594318346799368979443881869196706114294273757893714909437827126548808313980625575572307355909274438937299764664665751165801853954757215299277183121389904714820603794333989298071431876823561679932562485627321250184245332423488871986648647482615442121745988337254556022502787534790128555453097346231981113269502805472170645056796027044727113865833087018725030915578766429208922118519275504859785226871407139122288441461500218899712298976509207920783839468415322336213675622339227844050689055212318149612076420786063789574479510158310962575849661358126677091620990267128381779667993460688543081591399415186238740673845785273074177915764699316138739295815684303561621202095731019013118042437752015116182692718134554035073769962899733461450597830442265699925012855498807569868453295742075746627294119352475145822905324739181736460820763820253908286351111547282622577216628314435459804839246687342000952713715780540285581829839221914718372917839330578369618963928796801237066517105311230250408396643819016348677098110192535212992639290008048559959571115890547004158830523123916938878097526806587800083224058605602491099610928975849557960804861362375075548702500569495696321272487898996380984529470459181672010116264025346259753836535013151304832055210372618002275696276315989399535850001414939539634966336695755319115793869608231779863536776865783935343759489788977448109630867123027836489063827222129983439038541990536511549347683052710041260234555377755685270253187529984076100483835967051908770841115013008715475351736447819399013546034428266497721049061874218630155672925310447599095548874921948044377546214305768599854157624445155786412513266632928364401661665723484888148535633518333116658583484813119164629090609075502358794431716259988478226590089909806888582998553612287202519046029303587433617028904535552031662573135396435528796363242917351707026635041709671119038836180808237159419521613775766118017234759458130475469897552414969980286129665653008019910699440874255851070114388691685967409688746335871212868103605148533321516965584176583952667096807436147286820543945626580608238313948633238427753161449714359374439598293484703674664753343813822392832787038449694869142098166860686597948859832522731713103191752175757134433047443060992325118264731836426838919038592189652243982985629806824390889195323085939033058164292608885482532766927561472951122436239129489272122784969054322424189454623096815365683585409012747769378039748460043320965441010417770293679528706525431307387535340070684645095564863525831496516232826722267412927271915650251579731745548254321699020224957237789036870876990632012561016091739853733328829108185102789320575245549246673576718567279929297290445615367242168900669493898489254404382011343763113972119516374159799379861608719146182488789907270845367784629377791237616742306458516926294189202640516831077964025272780875668327606320467243357308201839884686514635347381583663933097420328517776298844119547009198324548154225882739316509398005725321667981896615646233157507327171714154317269204017914886029237915506742680233524520653324502404583909440000635135842455440326350569710325782212032356149227302858427386386508600827378548539612825801612440700168253088173879075461039652528427482120497474726651380336370527883600103048141490602084714725427759325633204878784487140061314416463129983599407418033043848500858526871709076498526167752715182952665890510161501756656468639872719750222311307903984678241954801465896366032859729557219792007443765577382388128270498382955477602689286077497409985541698238660415101660438227502042411563166823091242187367492731152192752111713986490903595562436304312895293331664090050975087245953796159557450631498982940139174292113369333688630590472436055578370866151826998204038321928641949338097312627990144126733377531605900205174822969656613396771847733039633260230500945488245822689852474794234272947419363708944339306552513172411167590638903097398487426126871341244352507071774115196461925139123871552495086242766548253386059301699940191827570660963560603807083668941722805090536696904006451920777280729858727072689153284184854537821081726894164752563464248911061908383189846393750182505029629874153403733468794306818717527954081598968005904129374995255381339610138013958304628310469390361745084110262082253856609728825462623671673638672801450719363821986705116896684770083456107921025935292235911498487587891234086208358398583741396291437687657101447092424022244563491887128427498819712136427572001233724298342245929044227182644896266598600294805918877744379782271268578838586475680801967450365230770266328502158885360548456145550598986114943992842551176734845534278661255383992951511125018063902078903605131276259920991095615183744913498003485333127531728646414675971715438962990494264919217808732453464999650060838022961689474634025252121960836059183962389637816597069960726936030573242033964130025857393874844166558374847254535011165965130221423218878929418517673232158624876369783103139823150545386183359054979841765066262768385484118894101435922399110931717422771465360115152422989932757424889713589866900129761408659793622078469631478699755058780509082629597632310675946182487233635934580219590310446847423241939366334727197400735874010816582271349037214055490513913053746113484296519862078218331793406561056184754984598899617009143499636752664983400445740234682916174435781443330606265082419626682641884514068537627567432270356010800556627571369786066939518889057872059514454485382050643837110672185846895298542397136370672815007163371885359991727076747542524349268345985804467646283714638637325813721816826504627322444216140210556696626745261244520831877285773727644761992043833614513150096757013629957992510070795475221183729694112184526107747624388031417669077739655202972968042255785242562079258973362819551295403586604534329418002170082911829121396224755166014864039027971083895044804025556518066228203392135839499906800203209339238606772995264434236310373770159058818162610396439010286284949172721627335902485738916659157483992822746040173937585974367101751974538528007903390741289514012739549203519636357566979780861116172562786454440752919670896987561344820899482407455517559045051211259232983513116408650810029936836418610502415873814022206257588236872669179515418994310379701743389568766664165229553586564509222371395910205674346921577615203815879459531273969500896557177671816241369377264085053478469169118896601713562443003315088033957188539461460849817766720709832337239440081662502913938370523566548863496830281271531219887341954068768539780293101020847159278899652229089471316050999522012108138919557954658021118357844358859883622014767782802720273426770993637333061710453133484103855805444913975831286984045817640546016567300426406509715062033650646374599591645358642313172727294697099294500138508628821229822272189933853887086490189504029520455023402005251979671603888144668425692393277624699116794066169082248356736316202118152475519730191773048996369422916990364286652991887815397299174187828252201587431040550944523735971301093383393264796116573150593607548888158781511041003571744335963109772221764532374430818351629188466522066650589697643934299808506666046765122479212402706171324397521901115984964129066070647889993705586967836010860441960798924514448081375680232722218832714395603675536715257774704838305282781071703643724715754653403406462728930213796393948888935565262480060404465541328539582305819951859211996911593250563947829079833673830310987581726272076164443608055182318156961646376392633345096913047309852963797908471119443398128833296273323187244321950428644624894944826431665729388998961237220928542639713098620901911439310057463949222371277015755250648837348154449320848049331112150111466490121600995505881946982299495273546945147716233758553121419073408548008859845290635096254894500279773140833006034085122544565812133732264858910946677651715790153685477709466272445431664271725963493889975579365159230876137198729009162981906111776269524262868751423776004783000003936340030457563517096536613517087280976465824211926742370825659875308645889020843429736445110918232614342708215747537097752740436487347415508937556278660016360158007429722636751993279420197895582669540251357919720200308109119963626795425975562090116336170263843958224872178961116458634616802505605515769847948534881266511533744977270091182692339588118912996688785965722426379137760876030204814888689501406045516818528146890856473550695558307037203025154940866110447562002009907852324062265179386053441589120723873954839527713877595357853691182702262493280630457318276513826956201918135763890256989184309127430895081027750214955257730131741227143233916403739314014440349532991810517772037012144501592324363520387290893534431947045020018948032019123443280885882717552186388800699837732809408797170615495465758705180258111998451558871116519287252838932879803571309537707156670076706049910212312311314876659941867894799787843721197595040397886595134366631015673830783097366386920087670761048665982586938399500707017643622913028357577791320030525304653260287150400036509578610051313293472102168528990288660590747234686826071473662854079019182569137873170686271275681433151768643077669209638364779462326777474824015055521100451383629277559906442628705618344305763676693131617636258690898298847348297561615111552410461121950524477464108953552835395651000061832819531747896696076233297400143051659509978005137951569717649578990743977653673899362808508200888199298776975686301784137072333255276483099756689086979859322288981754429533804047289832903933470247997874290151204943131972738597721222132714395290010788101095145049931557659348339715789127966796025124215860665961660508291364413083752023577979412086019070816291095165987325129557815426508490037867287374309184908729065148528953951835743400867286740515863212397645911195736486389570822675128309693146930765932617437655595177433372719205880167434447542298783759770380516125350264125515086098380543591558985475468711954197253312821195772094333011985276809906087090444836986023834411340784642528758772502350939240969254089113750930638341421510566061031943920600562438775645180543099917468865793273939811562532423930725762114445550274475851206468850819142892184664812510332876168970894783816346081315058325999490688490460387944544289627683866046186449059438294772552829834395713325593956992684384158152431565199415826321141598255873400372026619042019586527111426806793391385766662287521569471642114879770551025888696916879605624267992289182369123450167306015288426443130964761444455846282533146571454920432263015676347204422169851454821297302120077906074445372481565804981608674428418955997951194578059761824605833104819421991905814326482857405851822339342487883071971346435000182448113923168014858130551860565453134115496783740121704213469508935856108957513960367561915169003222875644510235915046991740917481787843755846312539310499633881686651491192273906259353004625204367986784847603081290599354964575081051587894003147563125422383795825080543277134237647267300766713402540762305849082250435397676601849859597177685869756649529014456367539162989395829469876619085282327422187953288480121719984566662415745636499352675913255884407299718385068523528977542512865566726664173576412166331950301268841271957766228787929211313023257143482008441202369822687345196124690817054329548471439142933946936023723627129291857331058469200032156853533581184799952687987230575411807481668756941099235389773321905992334890255044531164499535877964106467761784625765064929215867399543315349685482635194970728635346158108949393110779196932957543185452973541928309429337677163297205101812613522189685121340125858342362006392636172899223423441654141531978516459508424190067994173218934901113394633574116571625714685817311576189245043621700833025818552809288161337187008618903002124371831250116839599829553263180865468832582564907212910667963785936362665998992301081094125330194043859044736346924345444637000454606542077690591817063508807886118325975837232841335665051751074171720128882498484035270597682718301169818843682727888060804831214136331293079406500399968966294581524006048755131004549370523579932541604116199570967572029121580507832558037134978192907368475366289415653393538428935273325906421498521685201895059015359063514561572664344856340974419163706959037128755395917361393175249530104953141336262313587661603277173395302574857271346403800483537316631460689825600760554224661838714397225023286318118323105687543313626403964727273009223549670038819461619439736282871614940046454021709712650500383015231841448284644911787731032590313416411179933750885237097835525632772086663594430058810393870215683387249481823767790503324044380144426983505316090646201949464225217798688122522117015520570675584645340321475441109337915597688429908585058515204807542604566899742710398698645630616558004347130806931983857202719948744300161448224155722351331185666136478377174162091546480887771589415598937853037137203168420110280788618009196453275529923146293963831272703381346588090230652135307182633228327555544550488281622325851776960112189990148240225935728376191559025124471246107300081807306973057789504099812685047416025479963307029979401536596415531949653133925466835816941388751389841136469398967640775967716537627291683163579991971148683510918937600398516970284865874667572017668808484099817586567515200298611506556349354433721883644438700585137102669453609289557054455313220032788705326255808288859138907935385349773227925320735414521378081415050318027420533713113798002454576075208084136605894389505428074250261793820765771090671506561731085692208644020418411353749100940905378208921818579628740147342833878543473290598230879279405843727666022191939443084531676498705359423346262342583008379403388544717396220906714825929764671097944467054247716747455165045620984681787135025726467438995596369166889931150682972610972446211441062003454425571799909025388217211209196788230480761469417042401527742644053858352162055636910233325420305073820665185979243517906105016213317907039239161511035638953045872340756788675260333644923795064900682507003418527085809351564379190214833371241218133191876379133907314979422868270607471421699367633445286249531522533008793883583675786359372609395421931398889225663256415010285394346498422754921188836831743582149591342333482200207208829789855286054376401637582455422435493105199045028069609615867017891321718871847775116237320403056865564047082871234599553993221036695427560892114377122304564141452514341672055493254915123376249415593123754384681300752054436649791847579805302564725578756831161479449193058999378071241373054965431749129126212266456798674191574002930197289978083775103613500776816814908067041864808814165904725821355320383525305014298412777730259139384607287894554494168087091137538167343844652021730228760745587129847476430157331302929500043627209930597340583630578686514385393964836547843094640603580714819266673428018746975892331380626085889019356442654648654539987931836298162965347651732058721734620318013592686938583096041416979894000011322140002248161587960298400182751190661217716033558146358362056889357936629456645890816289613366604632627751211659683310668048083104145218689108539110237573846109702640924183583228703102934532676251342687792115493510488861677576366672312465710542990890334144032817640666149897871265079317533915878986702128462449473330843416520744077806805671344878688192577737368068759669376347085513735889466852151412616402392601954703254027509871253806240512716270661700728993751102951757118320525511954369981603696584263350815855890697644719105118015616445357895100415249391027402875816432410757748458989933285253646471842621897623031362827781218565088666796350965347883304172320701169926497006030912955731066262737614597441192844660145273093196732338411432228195492245729295846241993047267195295846874418588006323415456541310774999459636421597366584834458093661127172795297097238516750153970871991895312289641173026988645756344011252862999924549963813197753140115090433878547989327039442087266887717997711431753292184966780522793688420963141281641715421655461540801131612194483614859430930865290995509662907580880273735762279901508463003774633574379326993047629033949052474355503971214444710009307080607695346457072390334410563691277128186027424986535644102491313489857769915499110475906397675054740544886964946126133389872973735173810100526141015009974766737557150765367864524762001839398226482669892326289074254152240631566970148088556859132906253876308492489855062012135122963878404190314669952742007945052352420413147229605533648199015585475915140288114555892557552111501100773172950834954047342744807947443478009275444026743809174671185237616666576684949708595536746578427513751365743924652163760818479203677712003651464801605065195212730736047595885666437265804360676301799199059508456633602198051875302728741334327065551570726596014500087610180249615054404691518531065811998003760990456469558883749248742753425915649126157429165867847021403569288556928335783683123342597532953821393044906732006935240597765008944973001029010613521392951927217220101228567410081820625900534001626557323797106494606977922662720627324318568658628726128262089707758051254853907185730310390554042425238522690713704298675895276228899513744485947589118867212465255505995959522535385014449083660459745813858933978041499316707370134857325979540330521731499625195405858565023492910443750842749428004946512370129590685624529513525157118908290604076813098103444956923161415232357290407391075720291595458778943275332753558866343899646080863753411809011044625667224390909735723610590696648696551464971247871672688368219496202657603321902840880959501526685357088993764568232490846645069611464529026739056103192873983787400968207439293260583680449891995573368525320929748050419605068214529140133936146004797549015260420182292666283721364502849472688858548232717791674390658003340703261043369423234076337771097133215010658201344277828469244637478382710302129636313322845927087746417026625810236849583456172757093294547215935147593787534877585432882550437745978398870079662777923708304580858936793176755151608780670678653896072852888689191551017760701101259069317265215135739002906361956190558372798862205339420887319780777975948904859929757081357331386843131359562245685713631134086453067119628677713006694882246513747556076488400788702551411815190025987608875522743215238788086895358657115048506067420488890254215695775955622843188119669695808325156177572317088798827371140729032398667587320834685409065454859813794484460145692862638320232186618381599191484592118288095895832747328782610502598272598775352218762226869204681873593222037835382520613581228905851665461918308885225074599979325028171700209109135249745376589164895037802523488473843308912656033707593293156623523506442874975668018265922375935787118795301516255899365695442394664162627404567485186643835963963617916480384631606973212690995788199863151436373345837256984477781937907477990036624974687481780339994967366680806625379273379374930627654250942890793449943995289638425361619503979575404723394994966957023690070296158296319838608466292965173967655157435963680087212938116902800724780537679367592671651344289972632028808560100132205966590869113970652012814311318805149101141504235133497202216484048893429023602997859955732010582257220590768262745333360009157968505741701234673249610337859890870945831553762801735391030771525604609021352638966391695773237156491767680437730079686548257484399696128255774224534003141923932319721706184101478984860603153086119642226717885465867944069809160700136174451509261024010630026880274854314730589539822997805804282504792668584361151875944191256904331674453379225573370014773481372085702590710302254221153631475705952378321657299917426464483578042500142703784595365798389567575129585211572547172169394605195557185124888349183358877121651449337348413217911840486174242283846705340287966755747107431730598995741119821317730635347235177954980081936730526607206131182734705226818971956309111003134577521690029945556301291002378577494959470765464668226363463306850686030552561202319700272753058936697290866447535987650989844665049612056399937202114019764244653611835646761693267139436485845738874109537808077333799047267071456292153006578088730100402633518091339565848277130399897112982477558517854539198045316558571680019935266803295384620805734653714369626801236851996685489058839767777737882022218280001558860849980807079438555853751539954946330119200999460475720364726139675786340842101868919703731191593750547187575622584475566669130130327216097950034845907171724205332592624813898893457481799063801415334761059124512555349500351520231829426865852924415613860767734607635208810168106988225264742430941587266087122250735535079451242988378557157467374236606291720212168996900690666479932635222494235329377028072361872513866622596366227607844376191279586323932866798218932917373653748665961047641793060972910173273754613872839329980990650756448178797490529730268844412515388442361886397403070434146363062463277575604452563996917430537965263830024528525542667859079526286146679792217606343538105443550101830103916519899561214304905800602363633672410334591178934619159810967726029129525707586004368208931422601714184015815190075685382923100402339996820676326605227980278873761129731395167580666963556779483309025046330782823186918282550097506786375065462445334429023600228122534100788270972103286787500897542375328155140916809348144471011171039741076696727491854484059082525839535711239333525762383922540494975099868748172613726025385416748813747971613539871430253489841043547395111816561568633869864967658067340107438325393163134903187922466322637306943260285449563427785911128322366894816817094378295556744024466415624847679531025176858931969065431611757924345307200632959844119738139066819395306391928729046014178578985037694157191740866747193955693439228342002548637913842435259893241878474646355227674922408330410156476856547313073167987491779192714846047159166065942545526678809429044845779994379097059392552248794007859576293937902549525948187104430661468019723185584420901811698534656198126577385785104646772854036550558742500785439331474251470564059274123708441022905105626697803625078324403702644367903455237848233698142052500563615940598872006348966083364341730385994252805916220517921089364016232402331926752900685945935872616134117377366524862958364572451949043564286593009493214709571498561132626791774612036822493701630248011639467467190649156484069993167722116221853475399936676636156700107090229002869674716925200414402450570363687042311608986938049583950931739679331310606439504628494537650606010597208763103538894852020164644608207039725760872163377025184365334285197893018501917359485519630792266579857802220866576868292825765086953154722310460843554700075733250095813063232904101528087357232891883936154669807730884395771836134459880751553971865543097985825897727385680631854732611906006053429204928347124524064699360903569930508349826273791430765126623378967833756497909425955617899585084420498697153626898208694595157249390200291801465746771232548220103423018902223972195242057405888972680875410340406702337861638015018863492736462220574594740244591143331813254425063965617373640741080476191109625092611248163716694199973838070143675900760402570132669388889763244371076538093531217003111640384275546804034096458387125806937688084982326365753381040868427949840536922356059299877478919205108552969128509413814222074592122979398381040895712619757440537068321253861863047425664078186962128170784260821230048265228134223268979145017742617092150867972692131763170149727577470313317210372148675356719728163659128251368577381858272854281630618934953280040823442509748854257659993952861598219781567242883640525194226431516459948829565636691766755234909259752071914059903001819892736708678916095745643453886296279653127096299446185474476460277155817469459562588589799202727877913847412297614445131397797908220863649271475661219339498393023049830126164725381296707313259365518071284311136941085058990757788974969899968989346756814417901589991617725185562264072448499871441714766299661205259258338894339189123362967992467254459894817823837730948919856161831970861196654050673571081794224764168160283049968135059771772195566215703629462401098222702170853171574317471985975871080521802665198697675555352417265670571214235675477038282562944918406112411513996954281016019258025443847149198070713528098309817023330313596698153516678414799031068525759154784704697015590826463803879203832382171951985982053337041759092255931132767477365601375508959579216761417473572692805048471546097369450974022119164590608245474460921333553428674234151683067679713664167978922014920595360312023528199335143020609580391392397133361617633377698694791817755695446315822242070856126846367237584160464636358561242320734302622968567280905444322243244837463609138792412471582722177145526427548425591019639017395368497687028504634538250108254656372556464677689200213508080576079858092598031540111574145544430152035856228375837841464382819556470154124594817248364490054266170422301981139707624543204779466672557414816232992438793503093715745709376986768094516448156123286782755308176685394350012820488369480402312834973105696069257979665853483536985816551747614692918277001511117348648683207796349356346894610243513196313029723082814778541603299931275137659516092667903190196100182966998711349897474845102017440277622739246629794887115656689715743294595713120345595066816563943412401466360393686899126292250549300188176175312336109866518862816462222179509312570884507086929243614609942698698021519833268005031813712286724014918227348896894270194145837428004956303886898580559519481383977378599847034288414248385498794993093620420724740856006655887266143634712151389369613248947561483025677282091758156283518098791166572030191713305103967529438212556295191297891016963086465827196707146325976557987069661271986851085835320374777724566273876644879140609111895607700761438562558920547774151457761436555739630322883189372316768719236280045237400241958281576138517666261156044091394324857403631523020467556226425370752138131634152876879199340130416945523447992763964380961627533341498874088874502421588506759615117252102890416153312752124947621438188713610326502490819232428126714638913547439491417087129280426143593466940611339944720175200051314825792086529207768325347051669652661936441929414135629705163081169988001898352654601789829140834817460394312308094798929431521308491055363421711663925432613156045260554997061811833157833014698592232377727849583225447962566449149251203779406618310125595829539221451286003669927805302747036732942701488000306910793689320760447024410621679604091684473690905733379803684828560169424481336171747139254470010107689518313414542316388332761967303401745885597047442778787384966749412284411102652749417853362067671884765275461512524244146066613317721328147116122100073110023582972847449306311178886379444140368354769371076700043426578175714468595170923775538716715089169592385538394448006947126493382955662284169350834717468685560189532939507057013558417841568168292438990147444145386907309012531933073068262214103395128959841148105614664825728801923117655630797493057730936419843464268208975353302654412743901439123241314385505034721815115082799939098235023299973682216447882703331208164717650071990103523245982290312774494141624128780108797678091800485860653424424316940578188341604599958744005595401293957054405635476432658003992051351381838732559197208226454260943187068273487500700088595178116616520628247541997427626501081436691328525548568432489349087864534057612663673717709641540865314568865716604261746309612669265857802769372857120557404630202347805974458559446984150883256213578375766400908770645357316109599235175207801762152498073152015239164700964095657769752495053448277145142246929153342296780859618852260782450645870728445024355946293011942805352432935661305840205329832753829756790378799731769098636518425861262239222775437442394713291485584905192458556878500458336998767883687426403553332307250934973946778242294676832703537001445319225250158351592798457155664569784216176485532303269748854122807711458380425634858782773405904626138103774818561220264730277850998079582124226794980173134720132572135947988677843487297600191373167996364404116878402102772794727806410463323788946617805801812770005899675284312899981467073964134680545381414004191148875702833129754564452084999802250771793206371600989128363165597749352006046267085723356648968565263580287863474782026325159073946209395130172230734462465288704054121559077806028672289478304363233809813624712952993049062037162009275637926459972336882473467660518068467414241947982837184997251443041700852912137268894406822996060360085292437810808100966991322328020477544499900595225381129295310303299318334628591947254681571321397711602666041369336004466916448750433491980819229625132435257420342513802426516908492179640817927428364832175833015115594190741647777779123479329994518054993596010813814867676273263905031616070261487091903532194220503087959237220579876658534766013581691881516852591354786848406606861037964163308116868019457689248758437464852994105391905636427013595568550810085716887371606973507913702135708443875286873012642948139991021506493650267966127827225469990539149469408334737522437491542126435446561457754688079140575091947133152105810432246814472379941621315266276179956771678791565892109287060916202532167110329913234474716108000402372067509513243946011987832024406504912711259205165368654197220243480471217679174295770651138548571599205956962835445156921153059923474384141128577571493642073683557464145045730584239395609312252919671391557971104244964700883910391372870497529752119340783779383219925433625193583118851862131701636140905240200871478291627700812289504852640581357397000539092598300521742389870528416118254735674152557041790316260531091155285830600295342812644543423163412929703848013611215527178985752893126317763478098459638748294125225579901263281177975373692592235069058259895312920348215104193855955626234624989615857197877167205188184768695380006225009488066952827525849503154214460499761300784062295084430601504194592838664592022020156638529841871588744482075609680877794785972840202538030054969552996976362656548120191025770016915095203358404088546779983404526370551560962136789603718749194384030578752549795548871400168972556063594398332766620550871715051500673752545846669240116873909313607410804625477802840311516021096111283055586932033098852629672792960997975827499739456361387261625797699829671334342532052251063579460518298261200099305431090696590509750832383856067927635309485363498962816889250582861774024561353577933292180086452810062283997207950135843362265966609339869086315744518339791463396421288919656373299846774407867508352445734186033736170866783437648814915776068353447083778784989634914547823922273159632632189926120626486349636617191276112338398999557076036743953309214780912624320945686425848559047840839957715705558452542331452162037632946567288454163219571629022785443125724041755035856535661916697868452438663132696030905723420654594832494004632668199770338376018674632721250029586242324819693615021308471053437404033534112493849484594420285298831316585048437987774693739601852737984028560508281339590323778134961110206315812552320225809514404520455350042984388660869752185895582833033313939525297560975269134699633139060942928650310871008997321972659923540608358578596324873554884849977837130388946771827324734017836394547620673623721297116210239946518449927222343468483131870709772975642973254683397214247065691342037256424296023416428524797970373891555716523862444468363984056267048562145203333428944979355596594307541783066062663430449833076934730849229806807063734780638200684392270504469498048336935847661461771539597660404890550654847313514138071090679456698161959368004615501374896505611792847871670778379612993482172519063578198870973250005272020500977078539743673842122364459429570961788047573119621761617877852163615827481008913327668491608332578959855202853791352774985570582263082069348172282818162108205899575461305080892923967631948362646417804046991391642530409912298208658507933863830172043632859202907476265962066344851406299623599799844185302825520130715357223049450336309413936223370115607143684178455095740959203831619692132211010023043632767960967849964382531380970267968059715142396037693970740977432487750714223403707926791998336864269707866339058477294586733517859737289172670399199651524379380187808072544835322488772842929864945978057476417446170837920740989246540811423167596176580317934651681736425961798360545239594805335954632961677108196195879851745430737163025239935768725794145595961782331151205155554179190871883670186353849924237511631134585883796935800311954906139158462188422339384025656771052715441363018408093835075245107855991604564105344955075232195861701661862606505277801086415639235418217504874648849873594261944027170485250691542804416245880881562477862389400462976431056798555313102152224672674065848860845211056576587219618175667984994945106201929342265597905651487445799344560509951924946221556970825137748411549728469331782449084872913069842991766174830799939222942517335225689662108673015156755106651897402576475942707336249852728241922434430591736526581932462458932022857640712586875961864417703207628961196436202802168486116219674968173399926029994667372426844379474839218284566060235578678489055125273514706499446266412608189034841695082219573782307634216999180148603101427733322763777908160382922928309333106223665311032344235755451874712158418826866097852484049329160683561702312849025341723264129840243392646925002745559157991103052502185247509584949100333306652084163256228338848612198861177668876984294299480730540316624254411195012956312782934808030639192382792220472138920505326358589029687521193895795556615189235676814955229970695045246815033362820515115404035458635120077941189219070598785636810389630879539972194132194038970254490141663584412883715930848009837242855756753297803455874632187968755916412584450893117006132286530995383115494417761662473526356631347061659113580420371038518679565999096235094049602042511908419462465981271677349842154444680965104195455149944903632939851928413701868243164353103085884124428764475949292446886316217864334439534607280907361466745037738712776294587290603131652902088609416817303009633242813302754601076312660315303577757744136773909883752531780427055528205838405468720260733261332266228406195040135525966167327341066589806075385106242072576631045946043615252439811576754421775593109119702404090144344700353745479442392938283365069949058106090140973539239600237504946240029858837238383455297040676267043206928550263916989299198864982320718750444380941008517323429295999188956379364986719316065624997268785265493386222153655697258764771705266942381093076260655350894048554622218203943655318779207023272495112957257837354466050096409465289214866741164840641530093089806833642152433797996866368599656686946060479471518619877896720024766580493526349770904382929774484699672333232981375046477476085820433768187234461301598969570308307100337088772726683385462135263541109713170199732769227044806298017334325600246835039008711455083239809129112230021360026055893148407571694474656474472505418253648459835419915490991671873757990099340858559305780604297901797578639119152618903687442732389769493593214238396826468827802647491816686608623355855435593184620351672971360365220860876983294241353172982727201878421601139418849295338543223766768099228930620654405013534196511009942518900949156660302151430137858033522485258527007926074895457208858654483395118879245782174847486380651401981154044703040653375448902813707093755862664795919799643868987434904491487886635582191790979915584441310651625396212456039410572647350365465968221897621261723228077200413651128760736132125047983526124595199383342528070418060944027476966893222482301731454173171351947895896185684767459014165807473908714523557539110909641640337404929955901126841871755009324017702291243603380393603197953950022229929337922926325502065293469758946449601444367238929001509611123199953277203875092977535950732412496346492491449347091527211711841803274886186440303026541518114949041359849916943773709398493448277455926843684507266062136728300272683284731974761797757816908848926858314702413575861026778011567608429761965129052119209571443573698734410785029601184416614545406271701486576352764114551448520546758066335112680025645815039470730965255823141668338618336269323352565219236655685683607028717523051903894217861729461938140045846279441539901931444267465782466833870079960260090298997082845751738234791937877131976812047551666472480558720263864934178408719086270018192907488526511667793944904827298401716037218436098670023562373852258304570192394514260393859488997584214498224919042106645506983875811551925659543411093814259646158271130542354687894891777166641477786830316552189898710244321921355041874287150095430980975720059936689959197060062769480629864717545126892109109511758848167633329280571602622405510745818067265724804478096748218925444007526637760203964181559120803907788946389479664299898336815435968790214935468798271031162688029126861655146443785267594743133334227022033573224005737954400157026015954165270753784589952125940868440530555029055309438570345585665803180131602144129421396981188983426482822868116887393521843594063679429239407120557370859253899531053947023731241227392495128444908842008459014459436838913035547880569524423041401805840872330834777837318539304576089950708789911931808067520834790335726440334607700060283342142817991896245821079754031009536417121602844892951197217183177283737052686713182567681275308957017575472643467240050727798406744323004136182180291355104241505425532507615096387479996753279165990280236713023204826973113471214516136643125388991367053356900076103184684623421725412834014791222525897776571962307948382311444083407777640933924400344700551840344637827816747905514957033159040092226242409474268879079635969860344096378336010831265708200212247281542607811297282156718558001894448593990686819800950689895569222774026085168886878831477798460527844514030152073446269029476627477632093972942729107803231398580854236713419220201618191269728057678976107278212117012106538887245738391568302009355581405983741849936483490748203803277728422542538385369781324064107361182092093539003492189733621422541095806030492513449785264756984586010971181316558180348059197190358595640308970438112424232903896159528737464302909197315298503834858400550485093608762539005103808762202200934391596817235033777371321923678570259156348559511600673142879449159516214500645634699296595912680186564378581402310409443979931502355427387463630381321296207767484368617794555368722062381347725666639620944975207031088868882719942631105377739230571681793112688159524543870986387920861503520287385608833202251448784348461457118267991825453939258815749414630822291234919586884662281367123211985201733949001346844553533223871843369600107200566924992767348110865355263460278089069787816067760296072656530357963432526572548583949904789149429210898927417116926702556028004552335500052275121813953170279940305443847715276043565052314535761197767294973071717165946629422807102997298484780226881364301995381913910268521907353703807480871464553216349654606348855016847892468904518245811229878843622602125583625187540741292522325453400379734110233396628969870272965328059662728065436232848699196037707121266651997584327307407338122324444559056123058798235485443562163147024529859054793722092768206567570374442316122428104600945623460758855777975820176579130787087980357387283491257524440008735288259735280228907016709304523914308640952992302374106725464783028580169015994973681990391778918726290375408356770377182137050109881161214757758453299366802904012585066696385722398943657375015325232844465843465804626825884847735704564411388857475253044453529851476924185941644712038207620220715020715016335010579932376334797385882728820582223654382102640214769096587339241326993573619753720226089127000023217095746387380355115841259631366288903487970080397506321422717762928108392453115416388088243250020060585549070165590233577056929569374065502160806719923894151022644151576503562005869208864841313658089905776497857678846509174520318887117643080575350558903529176101613965877966461639785110901927716260223957044367798027419648016518447035040568232026904523991369210866720903550042089822366705700401362892332768980115701875278153541402241274470387356189473692547896179745538583995828243937540183691570138335737488842825094906296398855095290265006400240794931471483465205174596591554645760260800850720150309538084176246083119836216234035276134010547889091788544661619152917186889054916391517491795292518425508048191719023106703583443151026800839500527298904486451396321544855736214726407487351676998709388280448884481996565246922382617761670881006730749538231502490883263624279118879928172900527364909292063315882249167319041582247499018991451340123443791904653251927837754716062372853736518654722437432804363981254052018261102273601819701202142646252221890738194505769692131623532500034130236692264575962760731016161715459992626619608132249940836182785500436080018721120649966081853360064199266881031626182070925643549514826075425001489423691384967211474742355218295650888947175042019439316351725530394615592389736927144944289459312913185135280573331565994209486603058430351028830620008286784254410417512137646239097081929933109977136984520775909953795519658713890758020126410081189669847723304119385993689141679465302810791750722646228923695970767253028936201712682391324813750700782335533051609790034737747135789772738298801219921520479487304933469147759825604514772775206717588222218775714379962607510637184114393111502111755336259598428689765992839836274737118674716649631594306690546516395030000079082247177431704533226930325016708587331670469204815233392962268416927106036155690027882314843187417912481477657541244146030305866134215412948952564848994053877977571306408580091083778790196128893629052629322622694808662889571401297896328881364616561810113802195119409042699583863945389848722290773559279328274139662219872121000972935620036010750366743215443576090564624177763930947549106635561257355366616138672758033633913573316841764224875675853143423588839824233597688322882082511601926178854182272009710215994252057263182055713246083471849037338006297768479861549279973928286568889808696148591377356146858841396364527083323598440170891785263292212465717166880498532854687296856554189067671582528313859526088929691669507113426872827183953007427204297430598590843119341242914591206941830357835673828729875403741679205128684622959248620748218024201544374258600946147127882539674370444893939684227122659169541435288226783885051956600832293079190642056461578568320046000580462566361495379758145625244374067311464604554882091850707089712480781226974848699142378056290008663079875292445650857212606054739045576673463477484128176305693614154351042495674854527509188355508242069131267349059650420497937698881082124702139767723316275543213061946919727877458071396639587561808658327604936491955862308860748210601339807650303587371129301798465987646266496020077942368529656884001065127732072709105847313915873472170128091611819272812866351904185351159688806917814688341967923750553868237090963547252421308406020707603306221230316578424457007643675787336008933635288438085680477319268356602435286029645201685121631060471560248931091217366495166714519107020935475712723241155705929815686325073142578854969747262769410674368803019437274336701118354852173534068964943218840141515948437120067430744996851424720769354706580411819940334961104834351122628543859186993924350147370870978337018049997034844816259643332430464698359752458946670471202877594095052158756772357528137132317850613811422477849483218604445989266646483688649335346939384389065767395228651167361630297801956072535067938511570894802643172998426120053318213113577554950740265702495272618028487187615884258687505320184210166621096349134129282527116104270983539704571993147886564722111803451166350941366560891263336794475516163030294667021736621110873545085060286633759355827936768592560571643425108725437048920957315689016586734480906779326964683213153608717065199245986128229032521381920843330032522334634093070418721059378924619644222607375574738161504062638861858562975837794453906439082304662620456498176883166091867929610305725920773348326832383371505106491968650337372457035935954860392549597832641528740276009379422965554610895388798297194272032825770280906963464181187440737459314988926342460135453361310226232570034694480356423746501206872040698100833423462734911406389300833537895955247662681079156515643036269109682045804020397401196967103632951016955118969537121583744299395241868816178311704072916131821920254684179429297485092886982466861410213924538802723085133939098310835626887967484728013400228087811924727988820396437653642895220859760602828396312874973005453049209450579785932771789849730402645739167822557757892193536245328164806631911990258262038705194467943216299764036638490912892416253375781437858276954658560141324143089420856369419188246329752530427159155918101953067885784238338387917282386343218032337224775378860591935052244026373264067109863195374156376922598617301271397036178981521691256374936370938379428629663856357232648661736834970425402156072546536584932205815512439159069950982324553852503663257731214998231291765707189603400773014183076542346479670839652586236032176248969405728583244740053905270955284481365230620203007409137381726502245276942882428536957298021512828867930772643659264848497641670790539266025508076990228056840233440889022916654016965541205077622659702048366566008204220164348116444259101550390410993681823998171345569777192648300560280728130525116438054841688868718295336501156382513457237143629814872432527769819486403580574456762228612157760893264737004439679533753938035337913037529842712868349639040680239983580043134818463691690743803829328770553231230302352859250631181787278466552991161985420009783253973953727520537160719870887731971389159189662826908166901819986607337274783086558692706468606239528818699223089016632577420114887489341303007624660102011980843835052643009434887597858588735226797169964531466538051198005409403646208511721209200641915483987514391844839834779687833855702509418718920396917551699099605087678953241078635237631742764000651690450260668861469518016835901209376041656955776951078443949186923875056946695487212628858913868580889518032205334751622168710336756380985822892247388541814814184606923807720050893385703670806839064891901590962086118909430594872559197152594058471190735945564448832589552794275554759080498992074689494238086885740759381445759511416565454531072665058738275842723660304449942782376792811535037347863193439879857883111266233997579100130579121859037297065528716416072919161518071510658820987913526756749469048532942013029019890883737021024332153667873570024196762511749399831310143195804418321369363325691397691392703475978523259023838992574322410422675591044088371173758385510011021466418240362547226495397328830129144891514457706005956361624072973516472230127835331273779039386216217308757090252393885031601713073364892474139583509154199511638372214183117219828062861998429748429735482324187974322971328371486809951834550577526645837007800090578295242374424900849449859732117003266962746047625010048315309322216299310118127178782474877222156360291025312656305006073429313956099824632986290082147833674597549938924790359402536987717284213625355239905003683279287324716740110511281763149196074697052185946229723847844191398385571561025468408133851229190171156940996222788959218556293041057842994528516342607047661057841190612723316056809154472809360630292960402032811235291405457670684154307928404259996161632222110262910979419683268551113715058187061628987272208472820264143370123621850022482755439288171461055789664961694462223600010419777098009460252402941282024102544543770821632587179827068148899128093028820523675568564656669799307967778702549428367126670185707014682507609442713476424051083119278253196781159380115546814001860322766242322480927305120288992263080776589030732122073041459245078163121714202437104633546978555355130428799212393824046058988673974969921041174933435993660354945572281251847149606781313720996122720178556137430587539457765499750625634610272280105487170205364259228509739673381168456515431165255837698689259028037011758726873404216831587064975127267234940259927540259932305467249138379645073890679824789790402122490178062571713091051828987480841128499071899658588662652407408961296522848186305073382276730857375613356660582192736513203961584063841906497236272987438658581009154552622593919293524563089562586329691599725972565049226629427284351371337200655933309526678482280200093815479768069734049948098690138460878967242065248405394901213396833626106610783289217078082979635358059337762444784082547891130101126202724143112041656388933984183933519785958191163611654419279436538490024693677550152445346285856503331557403617510331823647475012001577934676785202207291901713959222869858474117235961703374515314116998002202481213061952360303457516385093322998164281830974009511146598348986299557256814938256341851537028594183798800096681295265900516468213140810364857624754978320568554671835625317085598076730936533054271012675348210208423509452875039055826919692895311180742174149827809857796944870425335558357137983373586289003579750668979292818625704147289774909125888609957030247727342240989995815390549376266230077212241447959246954279238504399204903718323605895003086235582082739817767864350044670344814593649186121537014034598074837121255541290777803377769565917409369922571322965679654196798806240822283740736659502125647706086821815155376378828299201583625499066781193764069846977947462324206303071480972422916756128244319709642907858030721588560536106806074636587418051472593677936914548601356903611557836192943160315487332670035631689699513527564154925470801710777789569268823533115294947148349706250485224679128357095961832166535149782478453384483958198632304395781132909834294366977716896673341073695814026015233576690328465426168735264163309580618484543036668066071753360595711349265199705459761510177793554812231895674778751873279654558217214744015144933448316672423260526243928267999800483145820025534737150392742597292585445985031537200099511267217648378098957864181781004094169925527065145379928516753297324859731064877609953465433525604233213846595283670938650970142613768745293320801743042182215009517797243163317483519981141186616713367587820569487385690236366452850085358464526586878315666768934742169685148079933997589175099585270613236180814171989267382327527133473138120586588643919104320660394250417423936140874218816751217473593344273119255922931994793198167520528608470050815304751473024695133845601991748314909116301700249937339827052386661821093902607963573139145115953552030325263414244804005546417961750816533373064058299933822444642777653658715977137996472741064708898766199968885071472096059101535660334423454019898667737060244850344162460533883574874354388590827233428283712106148205727768839190499760641724336142556221778795346350757289720176128679183593784303142586876277481909646919705670235825212372684329438887980858202146204157279813149092728447731859730666783135996566548617475617123109199502121353024551996384363507877204290422264421682042964619007297408921453661460129791432892772738114820580334578718542066479946614797659025835502702322778390737459013305384987778923632324735112504972652860888865030245478048853266624936597637511149194996317525925119274481097478729114713977123299570070687894499710951478427278754052153831132624596766570508108592361457030335853337407395706114836469418237929980606344968539108483245445757159181564187502489226734958888693650125524399466024901152823495432061554145128315670516296461253098850870138854663329023356758668708066792083385026230305938043159425300954085215246284296810146227744764440861103520695456098853333883134094217197491996771003771204898968255962784034817102706290585298270143403804196206682027067628112714481073069935408461804991801428554771057296467534765519158587805449518441485043817029368240808039193773923235862443632122815772427262370328665125565237034106690071802476101642256031439366475663932347240107730040806116211427393727301405003979394014743606837120260318024164459069027986346123274395870082297331538600262459114609020541942018874097408206289937826630006581324404420320899440058121674048583633984437266146363568189122812788354865497567578776451972080393291617686647886996454367839879770892479101533099180086344589519544812656768779464773021382785805056404228606740021490624325664074013212248569856988891421993776722452326079003113269645703774331675590751282208240598932690239388946546075713908144495639985011953451443782927115053364337673908029339733849237086110596081069110704679518670361727241924890965547346199814647913908513328066135662040293133507810393246665376753447444528487063229079676032322159124831424656551663021417957435312270411363186568226539320718852052025733938059019769948975474648177304776799592839537075601098139859527586585211928142170126584821659424245281278547378334409454637039988625002468509607398815235029166308193618807163238692447982290950929141950058086776889900734931589268787075311733815800615276233270056698932740667660433498286415312218757508241668501627720069994057281640580784175825125883898855573813953332963971164984735974677582391065871051136395043894519783360241728651970373489444950812421187644163848091069479717472485177788653819500431911067006997091942774552115733994859618511069714384716977997830790801690945026833791478253456678422561121991630286236693657472299785576468445295531143332242855375590990269304998550513567004953956732085140100925025894548842342705517235225617024960190037295158737082298484419178768430493731255469043420772022875111396976722380032034398735620314409748669837995308944022225455735645310035886694801492128129942521603893808456291949619440254621961909475535288003169183968478196228141166917547935021142841618315843062820578563690342659900975012627640005070692847968095833644640108175443893489337688259951723503712650913727316985884220234966814200168503752813881796648420162541849046585063789949904800565246154260676287249014404698084076894086552130518761049513299143211050409023648461905137787013337857125916092249811775874634457499128465749922799390292424215553778618455547494093080226297006027480050820324919237520529779670189391171944655115452214265445601371007818567314982710072456024605718940257845187889737424655515664969343259067655379598572120936950852100421588205703799067702307973176783595776321940350991431064917981194530650302377553039171325194936910313450194140995772398396450749565493355898264187146567844488608665672618858824787828055569322897640712553455370790589366563253976401691918312281090902298231131181803635740877711033690185671174252294778374266777952551484463915226009722310658456805527307122257945674520952107280016026351413706086433262576383487391423244809535081477105613815918152943113272871330864353920271971431523504100198100286980682831416579485817763881745505557506755396361871660812456733133706910613876905095665205789388826065446644149663015726296038762656165829545168589101459702370865037853552862959072606780067768375024702326835013371575513356646635382318436191939203118164284272990062776402480820606734354272428373644719136892970775333836406650822383241645412032675186763698871624137297080572726459208927314361526933620485233415711067206522514487903746683157695288740316676059089917982211513080796985849265148433402446101336254503328501289662510371066951188621112058731033153116740230346367497991369769947167475803127983409993746531194694768572565256156176669598377663422594883419420721075354125748231226162882547271838415194810099660204212705278914082488095054823802340282103991561688823667163698568236034040098656344433178065690501850726081014164187918674911093657431361302397061534127754603936143874120304245855522316972641706759054596466816082893833982848566524625607851426781985685194585559286761089815847321913790375070887800706309334697457393830754440627066285247063158161395916003534022234703793628260957836900828361936113736413809461220351745513257867913293707817866301859632847412741274740321957643580331957105881389125564984143377211415602461653738408343884030646296293129360091996073726601458903511727078630140466572124341407415389557126929816501036962150373372851365958587095691154496903593538462357038048870356599574393498011794584477501839704352500575926144321820575623151618178893052278220828531953453589090689646229567548781639447897082586072926027669539832728784832200154200813405791595491069133692535028550652611785683107818482045959897180702473575462716378574290975080307942074620587697723058965331923380892350860614826767317809334282559469441563361933569820296619475969431115343408029731735084366424435429736044045761498303187962991713365495916424653318257690908940837115522784712868420944833888527586083282921108844367024491936658528145567756776016307405661696961234646559391536779538040839429907034468535218680244829684232068906639566342965513647937031450338441898644403778385125748305462088641393009109115655603352065729810754280780442498375325872471439189640411634087876509354473332245758425917942365950190723634523289130120846299095178813813372942469671374599522717059882268994628822001603177836270207559701999567109215099552951012019681514807502616951642429562838224325248206858661031674789745468545008716966111801455357310739282384737410553468753143619936447300533176113640638780586346928992921045036219339557798463892304447720071348265342136250160916635930293354344948981818295966946972148549488243571123282915902935276187983714523567809552609519324851842407108462541039318353622342546865478506424210294092070830396941964886215083810147899273581075309619020839065004224142217920659047620115653933523532786415875228571424382511165643900497357543998338544871518024379955027051054892916820509793046720102933815401960659864077165571915346284299170631168554306993427510158848847478648916448038082837232310461567484513682620296999932094069133749699754724852077576374592294656684918006069389819999905860472925028001986969884127451986909978788187936183789399548413069332042550703432674105633376808578363665628763287700800908692717381399767343955043097776350401468213121609546987152180497774384216417172134293619111087857552260293288417336551226665407055858144717378638137053084470281250492361708734867524513587120850209902189680853522249065746337371667554426884932913408417644875748894640539535631276157206012805530983480662181706514836459803534691735726438320743378852041655015530121057318009661753533203743443437058902975919789255400129463917345147037495487079400044029879887524105961371911041203497923596295805119982759017506715313028882805939359807015311847118856590656910949281211696121876930517199928469602613335569478182908808263322985399052966557896762628757531269743610107396034041534161904671004815946119570680408748985752871769922739214493169875589119330402761513732132389019682816245277456173782585278533795336546321737031361561241312815053702873717191962559988323725727161872738771682204781922451920180815945846027112166280825309608533526899254762640860563836637803713629555184752653306871850558042492131295386699563095461808363914009485365925538256261141058433151462186949692438795028480847248332072331173970556611039096053805029929260908832658951199987296386668244360632600561192415256187097711285199163854700303152663657021032421875586257339622291150484344939936272356813873145417941872046096821490161039479976358268358938374840824185964770438236177681801715114522193265613918955888206279269050136547313725349032302560488085746319690298652233247059470100783113820099852672253992914007195841687474242501439337171483526670128748993119337834826951435016621142286561185850803885927538374971020915820668454333824366856954360674895444985232193417260010032217107648835127351994257113863046451820916359426387821618981482846463614040640122602078069640893472531037315868248313567832132694321718594590906197672117154294631270937531494475575015392956013439670502720659696926595731529386112397056839367974279896590006287639097354658195097451651834619776628129054626077779584845768999665973542898690610823344501271085853443941692302976514635764070227472425612922748810325879589577503342665094941667597715021049450010856500854367247406835561466277143410828810113920872633571318618100684360073340070937048818736111816437905323517698765707931498503062986404991417277442247091494414694127525364131666147923054558542294770922345835479613448715327702281509243938581681335558899915928029905237948495239603237102998705130482097181686779607256655194405358683533579661711495550010619894369886558317559858700832049865056315849853342517074196089036243609904791878511203697347501608220055734577789863995766854624525081971247012088117305394261949377062349566492555993859623223382904013929161514040425446845555735417081652519910132998273954876903480794439775793688520884588073638344517596852853589071194315150697137388786107477363092268147633403202988699338356048959901975012071210714656167348701912430997261898558915317364942246340741378412962017570570734621462534825035772559530535010335413543003920436758291021922136924165160573409390674295849734855392575722409278305718207262409840243807488983430582941230710994634307231450736074195572371004720104121377668374987747705031010905527052385235261673696936310101502406789190211049789381708688057335205089526950912185377317908902906817143514562491073001393416208846596860403888427906765044394290907442150127065308465929508213293570378513395910344032766846801564101338676696896219457564084436848597184010097201263888851851239330134219630759837636786670680590771103010266220042534449644093613600604356956416858202693788294642831945064898072155139611122441097625726632336298632475486329670311491995514162292912481818659165108305172043246729922537766834923161208402169387544903958395504837257425389325581016878982611793768084123173378098331469992228310266663245300718544202102437546949337426060476213554639107719273659307778753124353254753331175569935348637236644587373507071490688088390810230332861315482831166070365902656827138270334850500567985805427438945369316365862694965455211784076203591734036833432337836733252492589452480255383857258297190828621511738821015900349023937777452569593413096772228264933452246312083727000086778777311697304264257132675546543909806179406632622428693933495503967649938225846018241735230411416816561073480160555075067638220843808408416723174186404503206280437057117490682418572344597800517689155046107507741569664349179631304658835422056724249385740509236979965062263210165456209431820194778754263485388792920875071429386623366845889950178785701590472577820735346024728713462823049883318101666474606370215687963402694194876111608990798931202173542560489359643071568229047663639805500052671210266711804322036603666787477870193640558558966929399728556345725567969897044835809625123544163408957181829199420594284392106002158611514781184660941729355389830173521474684148957451901351114553049181649841124385474196336905072092328779652282978554656348207240230758282557749798994274966749363257013159155953595911720484276816358410912305555408197456354508915143835446299864339359443973914974573628552011207981963272030499626259183904533818809819782050340333221361048429150263193198751719553701747588680878770016484315865619593112830444860877687651621267832760431349167681160685174296363413936769670807600021097970486903087122932200575940810071281536534265259206067029114816025052018176172796450243463138402594052896786312188777439117831160144273833440671195557685035904122111667506895755226795763783584408031349847299256584996756567217745583251195480257569894027658913712969167777410291170852699651784427165105805216264900107936605354006490633810801983306148803353858195897071828631375119659311615039213612218416926862012223833850122157392664729787737548814834984817938044524902871986522492416788072062179925790160399986131671286586937336718277855310690206120893796704408761870048522449159067823276025722024812939154405552516668368881363721506446845998892174824949329306366889279403507373386117463244411043551164818189706118893526066222720398887890583964071437910413289720967579596725869660643253847494419933150333401776297385714459723915867670497661020324651923804797470907086499669886348882149327201309250075730499828021368069904257761667559854227788271188162442838813702419322835529973202929684868670966097544433768118797189033900611497668456012789990748020676619304213779904075251028395622114676424518936960707011518102708835696650751618730540377520357954829643465173284130152904163633968652939326689217950000173433646481902132717890203670728839067709155598950392195771313943629737165704719946919871515539408587992037424302151027690746009435697525278089342995158764406751393941282025098400206976564097465230883800880857751331209060045678151808244899750332263801116505914093691323519125145074549582601376789344056339521715903215200567747878368478927481163186141206701687300198283645432936902046296965069797737611565200478953624000262869154010776816413838898792589151215770880101436471685070289732418279135348842784523459788990218916298131299045083269436023798472596588489499994829775122915884376467663356292839553118615865835115506278664498129896468282923863712369375717461188045745089778822540768422643261449476561284239117413245961652091784510822326776100745715822729016501716943787058359715508802730956354276683997598462179771849412082171091085294770962051846402894486138665359042050003539027532413621042725509476005049420105543618120125904406107488097542530010799415248703245428489749016806620253519139522037918029704609580708915457515484214185029140137785429299504979208265473056422282842890995536208104722227860181701760129031501679830937071298387300072933121409284664197420238787787893709256747620306394157027661331438136761969038078429742035571528634233265831948732162010198053547443136849178868073292225361938328186042718223529674843825295490608068818956334993167872011400348182261255439770639749840324047855482924518170479337524276668372205528219355732129569910877746073973457678179723425745265265486296164524929369229882159239238257296608947290076535330772854684768312723092422564486656375055818099656390270603206970140349407837840163493671291938529528821985712912570267967136993848698465087264112957932748738998129916785909414977940798932115525627052450428463030231836335883543719494641096633801374420705244252956045639572849881919634417806508918628638396882333826447046885116464763442315568916308582156397357275606683312544328006907786253008388772346891430748212397261295915034684749366181227213042552926027358575850192371786129982190921318499548253300970104246893126524175261498263896809934317274591007230425180943894097671099704101442031578154751525108144575105577697492958078037418548884599372326712116706754307192110222921023050591279152547265563212553870456236580478580984971644473167125788280914319226639829248297467176233023159586253152116325426265566848937596903418455734435581488237617256544688433052871703581184487797035574591034896129781989798729342454165215795078383926028668258597387771049717263583901693415200552317921168183272989003234804617408151978880609800307920691353655203793704993909293282438309368707753645595567720958443960521858103032669678540465523946712927480914695780921262591243560574845031335825347718442377311268579746730340134652398601799219352397674162164023878977680993680605733183936515339512167477810970357064022101277029054787223948631272475463155293355789132554064222037825398826502848896249551189522056778531889402739212744792234769180528999928339717032173805803225815256004229620834805643942616940774177088132180043085201216835144482657177164712479684948072165703829009721043462975506425167815691856819530341403292692122493212637803178684169821625414407247805615520661944538745215431507207845479898345142089864953828910276281760858992544331268196182255447051353225567351921168954745091869031108071693012659692647695964953113755722495304781160214171367874776563861550551556294751968246278002341212402763717319828760754241954710370937934859275103625648986426874302901227106916780117109570931337940995689313004352346210121593086952700058762781932407268503996077134202853025733774158509255624089127520697176998871296924570278339043074557932443595752430086040042836084033464020750191531933639572576545483869607376104811830724694294943153136012381555397761020066375981601093421643464816477864546292347319390322303936411782653629664115678297503902013944812134194328992579092595802521575427870244438912485794607925509738377844414331717693429465108493131268993146333639435662026343343947333348703815115482576838580897510020077932064430397004915835772148530531841351477239692016167409261107784189878601909029999586964460783828068978709814681648611103998959451699088659680574778328008532208217348153145450472097782003564349510142855185611588786437068232657410390866363114482656545841765419449725162245435600165309541250473994720437116093266313239230003224218480775412465036760983062013693647104904398228747801531276138027480143608015494808013955975856546691448266374640648965599798402465186203719403285673458346750584780729899209319282981115096195251895809988210235748184969851441907620981099113162470480837050289630493190431778561733557095096074138762095774703195121494171064584192321364887725613150849702656608327008628137034809433212113897552557597928017863083208185376244017460333764290965220191613158164663127446962508034528124874309418509614125557299186651008021372919797593936913299860935436882446947131335393430418766280069013469402804062688648607961217690516714197282389103478633509682286799596887674251063547799928879866966248335103767726813482992821089453660228914555421884669800031932731343470205286852184062120658300904817081100810178249914280528438656790863439987207558553972281843422898193392167930420800171873999178122690301914010991575682322007869492899438434825251322982158741677359614585761609505452590769551264386160771179126241856186463356777285052480095741407639008103034683076953489998164885163740245712890234144446730745987438081672274568503997170780979427627897037306057063618347774328127361340113131897528006889456978422418715460021943935852637424809748570755970884385299634621046488496005822367374947273414969582766426225887537675225356966835128317861612785815706784110218631578441834448772484333648218928400535809995146028592282587103603074467224737286273249831848808051785144715467516390677157049035651556837295367269210458953376296636375209753413933918260729360578524317510816546632591947924351003825093072890644474644982838713949807109242682620555583129172417735399853093553038372343293991897850939416951088669582257445340266478268195067009354019248619880549001686294529794127467148172307736007500944140929764510697425267794584550755266920247879124871591762741432298938930138050391690070010416840736463408930309697201929387905651580828004372591794356186281434139469156524098524723332868330711469311523998233678744602316567024140057797940127739911670698450760797667318244596574965728383564256963922016228889221687870233481666285782694698425356563951173152086737859878732438732073147911487750408264175017401903006401214232448889879162720161322334235132888008986177299358266556825394956494442683169834795120354142661042178133857861328563846668345842903762324853405843676418524035356514791975754291433399074086114283847891644108802580243123922085849510754949613025375272822112046857949739460308955342668406856729627595681607140333984098722399842702886355747911114172139889215727923607929513668305110407943665887239598089414674751759131360468288017609816733929132391612377420130433276645329832092934393364861533152219921644025915162236498789683888572006763815024802383571918258755636709273994073051974370806300039981744921106816192646007469073229961796008318295287743510833701162883817635932261715086828986772388484336770690049750438422177086498436397112615228798002210847577668853087397330785817789101917658338310874418640451921460088147284554946225672993599962055592111070185288194432175104642377617901266404420981840940588078016993578022046893764598256120987823234503284123979436374264546599526358865630221351483492316721791742347556079368555710231056879646789502857794598320401126269990465241536906563777834467171845173680020245041889616285130099275965236018732999529822487451605174888701511776878740145956068982321778431828314665090231995144499920483727946818708593208369641013693675991985989668116498258570065162621986011003257979728940459196010624234454563541511525097914708015068766038386960804846382625974917816541734057330001039652642150057806135270389220484862378788337887155271707719847564289724332171035256994711877580731221651730782580577579660441319394627071762958849287053949969843772161223882897244274778710792814144878624918845416587991162244154354499971100674771847744788475526458211299488657621448645028622585277167381763797582062072752253909248050672934369117947380060584247366729220848135331589726082898165064317853954470012569520380122949954494934100831293110763358297406900192823815472383429492666752211384921951893006691925356454714061140479758341110396840459759953429284755688604387489270521290191027951866701932649555788442581078350610545948956008331946297303558464558997733195079414147444270975036645476621630738517335210532785500122704148168712033414429511332499070686961868821982507083807573216534956224088239070870372887732297410347580566039268454497376520853307980793964963234938403755936137147166688100164956768181118043955226432234033575595484138370412300120664964221535778643527118083079570575026613916057915578220573805956209494556691653769190956120329942299911349109999684043081513828064195593327348410674866683663825912821054381256334319848341324915056754590139098344957013067229184248333943276178650270745913829031204744574362137006569896970366219722122399727335011573196283931554589276980597291876930358322721004333947919326122678976906740518778850260929603534066670859899758953809868929218159877016695715046771769827219012332046918573797712796013862124226585400256698288170228569063568657522595158597120007578945196778300565946184165187072745992109739989536628879469919950427129388888800343273630942284189482050492805904052243076781035724034245227573227199918693910107398040633044893081846014221123009187829009301780314642991455531032241811218403563979822128439721250517430498045337496930478255482951424059589414178790571927714974032349803981142190500423967676761558400562715051263237729922524112469141512232672829978495850002430904014226499700215531302303077621154869488756151125749497446027993853039931121575156964668301700470757015964129401396615147386257377905755057853459716208302739294354759119855881566137458687933013402879136278726218577388494738907665312318283653303680121679375976657248325479291805125360625541900396527734898245751538397198591728143177035436336551937604855243372994485888864129786430695304326461703653001602056918837141793874853378684295831504635472350827767521185795259018274458638078038251753865055098226180140383673619500454490847566780551685451584678760358607872162898511838337174351685475515205026074507396717084982135173476620751653919523340057755446620356210010785470986083877678621105441249314081254766107667999142151057458729026299842079612430058705248926367246866331511974932824191681516511475914125098504283222994190108649607603637298246805512700664902063492705493591144034080113859165031495839692737260747642039601675022232612225310093621052187925747828266120453611358157297072198892901299219729359172342218362753139133488087837790305056909552607408673017793046108385214714631627635412778410608695815668463638713989019607094678395921905458441828113686622119324721920103947093951547525042967134842374480068348970844711463330832299209774948110052382666115215046640992412392219763248349185316506617671337679751266016170791002907189784327766066785252541329671447059380212127747650232816394827137528875717244903310170489887581890717401931110127808159895425028222972494640766135539351194953425944200578897111366153114450563535369328748117656441172093145319248900859332096732705262335205424646896835631005664780695221786347835342785916274143407784713988723368591360993528373100516781019447804430483199911896697255735562925959793092337551166908159695673819771455821815641171468714130311866300658908064709279455442756525860698962400343934201976702473893822372302185586102379169651628686101296367484200946795159565249989796075709117099668682819672076040910469806460054453331175518374865754053689230350562131433638652874843669953034558116250774838893158071563724296893753945286445560332135417172804844824647082310021395779092656977689511818396579051560327732081819963523434900936663892000895491744338224896456256937955158648527723507847576500158990485823682298233349006213496981397477994387561601964432375159648155538458883175087564271546217299606785714257235273293497750874748697472642697822269395945545744913626887809537970265546160154866992608174842846174888174549601630641550894725071432755186072986140956781550879496111249804497481435685661208384284196960082610400132081757535160321982516599341333824379014557318633259298974943826558547499691129223693574671436404680768791525366704245949676297001425586711378644250136704358630863708767844459135454245900942751217879357589128131573392312447446442334274703689366422596194370524781629549293500079250410396691942394267721144621337481000909556097986263751181637687951913060096082320759699153623991163090475086491348621596579200637327765061022960149104771533515635425133464289494094016156487583914068607349342948747566812449649660271201589070489783278731174380278431474421044632556287545578380782128041687438391690474308019030929953342375737035997487717164329303882406859804176601752784888958436025300412413872802670665088871384017555979768265829871979016008927438169694008773693272396857656124264948431804817334411069253611478408713500517716063580488590873478221212350394678641731638687478046188923941866730566381013781624746246083390135005468617956953307943574252157075136319194535651799550864799563107232472956497995168241578655291675915528638388735495077494786559852788242870806075418429748070495573076459142481285919475488372250739093839095004199906233190626774049139282622734168471984465758869573675278632048230672200475406927209113628237042087979783180385428525547069239286539357588836134567838288433885800333286299995357424388267159370547754229334869932218113480452427604691741079416116201276649156649178761282551871155141611201721925920438492241981232164023640998083989182414243020605229008846230513910268753559878493080365478107346235014792137030143786571463506268074328143713860996806842376154876706618839370459926398035893650772363590163721374682286397880994846390654802653863719875548380656607817583242669147178341346554093101419554671430821839742219841497414411399635632326132211337007388600065553243011902024048625654827454192155260782164758583145343071320536624539347296204080770661296582916826471969301613636905542401737997694252022302793165753497593436070242204289442620074966417525588062378071549176015800660163875027986981770783178610299352504802995612752316756147148184770096679758863764393831517017668762572319348561169529277071070806606932708018341753945261443141955818085262905111379625084616511544850593826439276740032546787706193383012521477373498674410480690379460386173516352640885303777724159698253565288686117747048049649818330496307689247053406280168960216530337495823189265187826105900102934951821439840688103352123729068951123158510693942271537565490152364568360081993876103114090403528905776093480074640689261273097176189722402207494551210166363866366100533875664794009559835158174387189368951468597085316471990336542035950578971903245862627856925183096675636457009470232141592833593071541180518824001262595990133524082471645918464477232028385376547747785748036208893744093173168645310718027449981440422015154990226987773797855024602632270390580596118435601606774650997858821668836444971011809614137514832464016317079524424618472882225876380728305703166923369683464084802675341407717522106610425628204027554063438735552217086468463499141098657183760183338194741530186420744415595046539396837544405029255899551177747345977157864713255747716740945129089995034529340350991086352764216213110564739509663790783742367393651789524035827984110136119070408125365135408519770749780801967874679630215452372381523667900091091373704523753681375237634411474593851548826300280792013686419118471925449098418066737359781215231392585944218329680232297620062408183053099738794942233562124781326543390443720091231339727269796295441383566000744530582075870744821608719145418753936945212173262456082375514623379314110182677737625752714677000856246461048214942085021791903930648462210049975740660463269675037062064773009383450201008321925144272189196288148092027929939089417069024917333115136560253233692038494909632208673013741939706614524681124275750270541451243586867971291883656671206431431168518933636867860451635702851008957113494994120199682109575817071245276696460420224077275506428927427638140317177152404219126973022413473378751202730794498355950699154836752199844218141392338955309173812821342531840163824991102991389375769980524935119285963846075687006372616614501926113778496623984998945268195047986157100859936354359206873537614095880550046648699387608123954653891086353150968370832639884800397847022997440408489757578938579892978811834214081245969094835219594740707121147149287075280953286950662804349530449978858389456495688785659470999918913433163124366153649124143039965719368061141858208952877773326476612406078828206678257373487058904723747600597171130793918797735357423725458327307230668782548854428454150382358951286094530934213411245365891173160863156130160087717963658780674620085054351451382786183408808696385607188348809897977523200236915489350893479694997195554089012150948489194520280634411471190144191675954849096484281460433683969540978104230306751567997918212249177931375668964887809844683839324650149025486799272987249086331247972416615197322898466507865963385550038388325561246988374214881252575258132393772019922303244443668954448404934348629937232873132289823169786033871453905567323190344484728607268018707789397516846803977219264529642944889985927641144067373075728251109893055813337110347876795075881805133762276453422567833264649834261561324967516017994276206700351377163595091345896279701933686612870914568320667557604956317594099718134827851637443267024229528896182362283404421242713807802410070717082336500473238705278582024796976613985190652915088411362922688888916738314212723396978210763749103650995351154132496756516433784470552343050117482664457611627181373394916170750128944171779878697285697454812884236745866019982178668320993696886602426728299053449503550605878305725296380147690836742756538614154369808017759185933807310125277255645348214749239997534853281367230700540217049627610126549310646309414926210216580796965826780405645914835432379065778615139199627639358846496598551695450567741145784481162168464271370468043280116051278846831879701118565761279106069699993553494090431022252077375615721542937008745244508751761429212585476755604011392856637709716586070978210976893784950901562312233150407201789432195816505138248178029326235641255687014588153489771740531663512608028837832889788676635835664842866417793762332604468569734157944290958034009224842782110599444727410229346217110767074636755555174137356961424326553259312981126704317531804793488196233968753318382519406412846782319523810913668629186153117369050581607002009078298166248917288795188468172778170945226743514370881162245796423108565607128760397857385541861212881689590348602388104956752477729021314591089122396583598446559264176499373617724635677337320986167502667598043221139404226908219278541519080934519198836189077601480750091204494866115824977707483262400687344784065885775220293845089971385983915981593975215306181024693719949102592452098752559937993329507987455814237188632365219562427400966708772553843843417638874971284647340708916313905085462568682869102205118999025437731211393902700653991878784034770204807961626383148124795595838458323530793888645364480450920920054370931141319675810045574915577996341843852800131532795393305216264718457197689457046275311944019886646503991378875206398484525872034325016564819001114734387199938518241362013870780571554672838666969125240972736744894073965069542268147322388730269124590081228355623239598444704338824923851311026333276014599292790598145841991570590866257947727999130856975519181243740648258833267564763450205536370912829500834705525076196945425983499791756703917202881871716318427173845753688505403638454174156392988763817545362250057095281221300857906378925544762543219712151191659820524411816309561732830119088338162725227717507463203481111781733685987715230959558638155455675413902986288279455565039002634393584536720917241224934494786398783716589257835529060998457174019504674763300039105593410072854585536172760228640104913158036214860951031690532049432294719181173489786822725304293668835961421487692414675406685708563099685557951114802724843667730110922370548324298365979026909584156444922490845801887245627600691117223640393304745903186183768186165584755139818779417904132015211551808734588538006189640581633740945316374578743600760162784346964387440943610128579897743760472364395744405880272979394903528072384386742356289421976791398951264577171124688522446304686147504358109184673963395575095650459817312491948608248251403085588411529240945595372556201042325758282548371876706149892045886556106589468050280342226703769842406562430210844909264316036087446563741347220657474527484058070007243861126955409851691128998197000835118903028533693319849641177168297171421666773189879980547351624095957492000069628480031042029252068447361583460506519881862797235759344232650640797455883546659621272792849130173997089755472832797015172156422354619478719767304332972353778231498521294993272308374014221534308287345787819134620970715523496350909669064721756660815165360302455137792373936676877771931127742294474537008881516520378470834653280141716082369639593046111353091187794706676499748515404060470337256386563753605776823642140563773073928987350137349869131131312025098453079126670265159958494455937851798847767201596203021207924270395184933512425686652871108552471106153062271798578886825521289624799905572716654113282819165235149316470946959420007012507623385125096503062785591288093783192872696052091769242936448039549862833919102421385383571389003843081873407385650548059050277669822817824077972355176616747023913353611268251029927711230784486693710439481700706795552476921148106595177359581394401928090982215371562555742389812526191878668955275669834491277821583479267676329517088401972476649757997021758837507976249895148716758768260224275962669193633772502325023613293472196323771020281975852568787571216470323444298550100293127456969509949142694442443358175402092599597009108773279138594344139105078971506097487319398654330367473044065870559190313799704946564281709688397155560625877960539250953809402809575397066157036131401908904109705173593439581890179468817245259592938038749548147509987465211096094290113823388955732025012733677618646488729857851029190270197654196084259880495164692014444962007862769074356478383384056115719705580300509022626295675906812243329954159080709575214988538372839266854909042449414963711108073465422584519546329535442277101365973792725288082953742024983406140760667478631833334732584941277451545634292465780024629666156004368166480172205527287521564330705868688587619217692321536519391598050757647676004612347562784252770908313505132701869971994117274981630168319800518506974857592291479181281625947670760076144080053901984548870136434279210263429778486672027473181474564568503786083366608296351671991015418455532432073461435953333373025740589174685467860921009598452086251713604372611551412076469813369148845077954179534993662162146070892742182411507367773803999631224436444826281416785558101194237238307504915035851959637731736102789308536676592918097930683678812893635225603455666071640378713503605457290969690710812005430667147086884684227975918234613074419241325347978287893701349241951571579476759497323221442899776041525330466784610646452290678927858011159322508316027733192412339901356777422284903729749781728548579730840004190454475284115044683837538625969266415072861879875896673981188731769655914795514201054555192690019625640365769468288168516922930970745686028187935212692104282136646369964987373374522768392504357091505908549816247373537170658355844577878303213394479628404891305033956934656980881156819276300428096978217281612840302587488678544494638769163738852298434007656445238442648328785485657138438520376962346079910211100315706541931867717549799352271737748745126418028925291984536725479115958399301946824663456556102230347475932982028993599115914668925116186021551841251806310895809657622098912109175036985523671423289996768666486114839160094626337421905959578988658887372939553895118427671944377529756804776116447743683863398200828924088282908281382870807553485461260858116320476231613320459276192525569499801938341652484418295132519576679630935805791423295876160611931945425542756598571842621038026179007496408571389332420631434632156148129448807505724227009574349734112105939042143179794051809622652734611531635566573619448341812928567368475673990596544165516071008588230124586391705387418371758501402643014794658033624900451527918250448180902911003569622436813886536356756259975777927967858774756700397812577465122503459659495858320917113722320192011805673458710350091681540547398840176192057092637189342666772537564876684534105765824779881253161029232015112531850396867904220968639990626614544609374713916978886637259612590916110532792554429374154699325529238255606764761431980335811129718329177684341325332075019275671154980871742023956556069861997799767942232891112032017561858945170210834563268830037669661273048245905785855549820944287826182561409526917851393751746395569439223967724980815402111921275560453689505713661013324286595786301438914446195996233367358340501896920684184463750446282265801796705986839968402251867288080322529846187542919512929550663399309240402122729043669870648039813644442316869946973093485763433548516239818893973717805958430546791052043575349766005929104308783836784075214732853440930315480090303017463210644048255433223954798861942055273423930824215962133970565449527396820503257017963758481687548588937230999838879455202310055093873645500655578778787127062162007413115696863391000592184762518473689463254766282349453899637234795630571892546931312714808937068205278935896046742140653961215142008828759097798748352909972774635871418581350429682254170552525331550626983836698874075173258317551091279394484202996246713972573664388835811371145509009730574432062843876657143535430655321060579291320533362353374364651483820898857520967007238467314022701637411695312681094531694136235208658185820487591926688181787148366928885659048916196532943732568201270852828865327136852259834980323680644979529176658894899706976152191749070457931198822108256554379423519764326560408594664529056374799847046359909610748993678766740162736139681433290883091509590828004997386048300486879903168646126648549149497257986523253598149501938800047759178649323803785891218131602850300454618708937380257655708537053403456151252840451228160752636087211244091746962279387514525676666506476847604634050811491965221448969538635262650661038031980329341763102867827841550315552117343657952085946275511374938326239676742275662138910195650493873465286456779589391826100856168835398487004167452078649362837337611072492395975108006943037568761289557060931762102480854255219194760021986771733648785167590611015663056753374770556644536214462163259023316191400156155234313254919573346663320123913145468810566333324894520260238210174733092327910537593291391748447731923592982961957573165286475379703094000181252769518514923900084639410306862404735144893628488847368241844597564961049939224081947306152863910007819559765276540726496199996589484635352263144172058861105968906354955783153037399213359999685449121267447703156241703557082491877663432775128202080729109345476972743978779376561246732078152580547394066547130934943706492801897002467567082105315269470579782355057072960794626880965339274272977968719690206528827095380469119320175540629991601910027363915147793579802956561543516968895597922542760863559399256553020921521990482727761427130984402776816366697525517588795823917588070787003943354389563330715863028699499986136127717266736842689597233325856399350605870113655979622099778929726963865721395113643635599642685275843110453208544044918976001423015698585751771459640406534571029324683797034920733369565416070023893591019045603064913594333668582771882453369769510132977155218619539195599906233251881157095696778219605408832419304244939341809184267225605822482100261352964586289253743850334940772807189664004966838528313988924879765703811559423577186013481890973498705918222736496442418609449061072067463932139328214593570011986162320278665724882995134386473176857632097754445140631830115934381640423693949825482242148514954898085934564253359550584708608289035989659686959496611538040846107370572786197438814969910377653244784281269542488490201128744411707048584936453386712372339992714979534168670322226220623676632455854695281116508315159933391610982074745585178073334925090905000240852873451402906767232606446152156695901159126626182903564680829244995425706409111096925890424538498192752475763069843965954594089092716182539519220609490438203192821155306628350396264417474203677381482119053526683929558304836567193734475223130349965413142774811347344760255883250070942050303406022261148378151934585722357490620123255100356035462690502074995386304264321081945026396372614611045075403050651754924656002913861971602819607594210105085324306092160517299626924325621966887407696167515633777542830286212758430209937734491905689372678290110943622288162943942339565907044539785400534238669439013691186575075857705593309522809583843187158086350222605862126410454745040430149588407170597887134989787997873534519083319243143194029538009799058673464151402636787796135955613358800747999871169402555161016182303833143863084937345685435369715928666637818177155105140273410259754404611728564239612912454317500718068085163251796717549524421097794117850892162400596896268592051342670865906297949075813098929499078990767531344044957990685479636923401766847110321762590338108168784660971649566963609551506819022965849340115872885869352038767988552002418864409294165117371631752338389614726158558557114406998814603299295238999930788330462859221633950148958787540004809577235614926246300469263180726265194699713771105586956446823611720824429550329214484104870969291538328024466492553851916682047288909337679501889285759809282793555248624057897587651413023172472890340375479395673862423145000189231848197040208868085412247435730669664004078873540726889708590757059219859343966016013389418121286657344497601840672201272757676588765407297318985511398901188462757054683053395245204469734138402231665091472234074474786140401803374600772907511641676130695904883500232486409584221653614023818178941489761584653622365187840092154663523632097705249283776671010085234466684891661008990640048580584259794538388462752966208109619666057004900215706896129451316459796403382866951311072578575253756838031767509205583548085835667808646194214905979353315870834244744997138539938807068772925911405412393591392311426443377141956037564227114796205537439836499835747769819567507281921273047565665386283673282372552704519576724921646105901696537232997343588751764357021133417745068252318050455076462761535981578721067782113094579889432885488580780127510529580876805440919108632999885704802430424016465438680851791474395223643022942966660537906321329938201328052509375202934542122310094512287632358487869366294813311329699383794838536720979346192534080547699064800433868714319044734483351173159719543172223128763973660110769934131847004376248445481019408951335728228283504500058550141801687071625404412006417776040487271081383994570229055665888542195310044028673516594042941811603372056720805416983689085824659100862340426763588878524616479741361596717119031274211894704769570615079897761681989973745572955279594801342392227284744706737218029622745058656257236088475154538728268416301496241217116151528025990433239559748584346930878998295994361465740451418922402952376633830434244901194062292218041302841274392120693043485836498320020504879867535896915758011222999015129454576599515812392966125651327735444759442857841002070374362825211222706771444260043362774207282417140259252548806534688715203091999140977015254655398222098261566264843771136872339174885739566406271917963701921190885913902627628795048440484325975133302829901895092464467170107472701235905855476471798197953208120131840036119499177080496543382170808668131141582270035121133296184112444791820175615854614517010986695403233712131349041333865037782156793266525298505121344937978128391845276932621663096165666607543645373869765659289657038738342146886966013032784776495966166902702645470969696755244493669813697254699048753008750112033879577160198307920643806654711023137598973219629156298736534441170920322482732932081394527966753678914922792236546670892986287774757006405696209521807902478992226922158982658553071017848071663653452553255528182296597719696149973147771902125401482304123339468069830097408260056122136122591660977148091047462196925046434025894299021255116726396568731128448780479265921068160566151153317988423900764433532506513723397264609042091101587096097156502838076612285096626697006460724720376629468049000940511740988678338277722552920976072430070874395532010948928073770942979488279606327195711933940517431422810491567717790431339512840846027882733200213499609592849692764768569903668998803432187714653779896389074320304497162076774795672249993547382177451271874086487418688676986033161195056330234082440090946540044284931957557991693450486748532243657103091342342628014902632274608142307966717944063387854696206567856139428527650710061300470094376318746288210277842251969730051098053633117434087772968473454660874429607935915177078717776271061126005122255514918896983577102994781027096567195863539253759059296581790370239346741067211164503791277151915756509746118334064256639138552563667162151723437101167043898247531153011996633453606649630557463734768555720446836803082556489080389119474032030761035779412807259953229549574873237682846745344917748158123446496323229712336736940519565803469579077960949152145794394759341428173055495724217451732305139235453758522952991794926956417434193806586029828907804214759242438827098884209448597024532521886787647005854509169152616500531374498311195408113733290400589396591988044008971293479805315194129182445571750888448599826716054610001921219617218004533550970893695966649996826603897492399923256416033580634278533328114224859948624544953034808170701627764600791427652825541814908430655054993262270445115044524711800654474236548463876525886743756152211085312319853050264627952166379522177594979652813301831497803731785179247440879260879977751167711295006347983027395046274480106233208709598545969704030773457390853135950449735172104232050056222657948036871142996328798854407615606040454726875652236702874398021486261924327715212845599690609557044049230255140427544090212546784751179088412610287248431194800430031175642070604835019128396379550523139284194407358720092813460644435067078317534167353347571896202399663768477690346181429356047190525109954259018469708196712073989620170375665996784774854201105671224255449155437358040546171400599755022600542559742194862772711571735376759914261411002580268847082282496318394934312786286700836422944946291488645530131874976816235302975740992757600419982835428863201687903089723179188392854809971116459272699220942252265259475397385800899403133647328023297216134706914624664832983486553443196806829498961276780469496014174772700975959479015305482840421385623970026552585460887503863942721346078834586573016192645621655586073829042522896623847851666639081663528218541121461534347620001257493667562008957762408875036526761091462124411832196826598410758573020788774600940743636903245022176296713932756509706633284673547886804477226006715339564491404662819256795694737584932376443270657730558863609094691090673883999910440484307757478948507509957568444722450631994183532486347991970294202776165651162228903345207328176467122237884572189053645482561984102318133889313099913518751023604270500509770842900388883110270161388886637200449291937034676896225693755368181567387563410087017258342983515453310715279964653182803798427096128378043892816242978396590248701949884636424411511781006489400680371282217344390899291035657311146440597749929925537413008715673613132729474599576435384811883821063427176254118658526320583742346982670061417560739605273693774433469113420825757144852190893273066263089918393857867885011130704962052559502198941747621255079727006461973828184743469002150872028936365273237148946117178685957992174307988761395583947291781770878619817929823945178790451449515095978488127624462113010759779492201683772873125015322339079817643160796477669258452589256309814074445172236607817814183578540115247381618728023898938340922093427939553628892549285478156222467202127833893916747748343235932554148884419909325073296798850576682785408683933650159856031762466006656905303523445269865689970308378677597292806251092420782263836765932378807246782011459633328858754585973901643381167399900388180083969607579810952285180487205875481073179838023487680160527781414692226814293343604162047164106718464830065907426833830422635211277742443169316782253324348858821071265234697525425651324630090656055878117043218941331586456886866175254626768079737070434707638853836991528123723745220059799480290515971633492439099030663138850573990400252687740898310431583883876784312703508867052836609932913845949768821800451609698509490187134694859344506185266145010569369504869643463880581728884878782142412718978999161404687890835321938987711994552273003604851482500010709360191184567200542786486203131324844101294219938762222043778228591361851875149707208388704346514595865842617486545937800332519204768232133686460735213023427916044561175253607107101087370637701666734120128152440039164060644858573039665556354899249646824161197019587849738190636186354774004838510771443329260182597217939917021434709026957911921979348914680958911578484333653991415471143572775992364980302275702784034107771342224835202899869609627216690723685855609779247564615852485664500086784582840537184984299677179199121371175459539549743662915807890893467828669806624114033047235229090189743724377663600478696319274297293337642491256005464074117244997413448315900528257857796172310981574173684564323882096586863352971414174348705492731486346141123419272839417385296324672623685118553971260978981203555268769574996133803595041977795798177183304514378618539481012517824441421252735987925971368965059434375452172888348236160884931706596777823842837888187918726713009402672076479434197488737545372438886782027164316796815313183707567219402920959728280648243826355215367498197182109153306055480043402211689417815571827755725421401928378783474062556909344347295196657768573614105088674006983866631631258645108911393283657278208462667455152575872485826119679640509411685455814514515177825238932174752811394283425017804144059193661343326353095094744671965641820494598308318356358517032653315994732258627918129309603127348207476106136308982829359996781166899611773467916959151907748402731995585429505083723984759949415514356041055236720854833108941313562661529712582815501908615008231553750002080791942437536189693487167958359840123634178154790116015436736467869129393344298292807052012767038519949489892632111223675893862191376272215793362431326416656527699694613608935910264941364162639255865063205897858872757497332707334159698105640574137655677958750437062991293244283800207673618717564017396344776444324967860598719672585025514804199697169057774825140117899109818508591355644847904323174451724187356392542259128737214904878430313383015809287079840188919603484924529261777752304489949087206467438698946452116775331502072161111598351842589126733371511958844701296769764363276272207392769892504930978827885209414386080833340987505378423491982716880650093526549016793259854327046404699350385173541721189188132622968814880033146101130861467987474667443263565602075778064929237167773066684249767176498420538558278535550591262750205870539498748766951431108961255584828388516458096777737936733524306582523311195296051378624107565007702590943000325546980093596952568269501762082407612870760681772167547102257571501567911444710791381193573002966947990359102013062552922763779197058802549261141143665409249955238477060083766215201511770095731901332267063097134798040009493912256946681828518311045218372580013992914217027981069427520031763379556569505119913940828221001091724583198746510487840043709394611076561391269221860992840363913098112082723779189206209730941123861463759271213745545454059352128715291294954283800443654745926437512038376329132987485137329716841545463674095952322658501605529516546756626592156480442759081161867652478842262675406889616600473866397530335375440083329144612475319752344488402945054564013800972094003100875899311217809271682827046785036526741530774940913494816668064129503065352977978948887848773161196094265902459618416037215852916031264322778420204540523574063716233720803068434789459381263404612245435471480030150789213757541821482169241669465626274323622073493264377620162912873485640364795106319798459374066116649670979445145377029830629602192955106390974746974862874966911722085790907162595840962059356921735095421233861174105150165781276745549613165227819494417374277223308687900818466810551377272442761707246162365320839667254160392848803488660180673799916012704336583157323888911276235859345157642260084677930138093352913401416428363739340355852667771635507369424802412972365600033831806557704237403329721196902178125452111415974020035770069980946112769308807008318405393899655290402903092341195660373925797462860310088015357965830778045135835292186790638284822745631413749310165770835388594349170431006096951194540011397892677861583853687088013763412165014264301965132201302992634551295811033371282522529273058954869199770111234151662795521478715058075646255245629388472217270952400572088820955619663306322275321396467075434334694832491400678934670475037690505603466174327661704482837494404024433285826934693425295045277092151089751269435408696757064418625595903193615297004158556322214227481866164393276824978504314909310517491079560201174777725563060190676469118689752799575518772383963696103590561577188449972686163403394437215684024268515954389190696868506871505710067159879228319560060438420690135810732758558433707829977134127933239348494199982002109831321822943977745713193716383682470913325901004721390112966469030271261541830565366734035835914146437210627331524431223893644747653783060285433215230962227722847239029985966155371122227301580453237310186715484177252227705328737535728425635614324377204860315139233548074114065616033632584169194708440809681147082403464978904329622322079589338271069051548635593047878607094439401423171912057332155828674171867766517959864694479863477602440586035901508098125087392375964107967479301463385650665436033097184370548289083204442674649356437932453002356890307317025520333556929359844703603420236938093301359425014941766821719392074004584181105641822024049238169365979046371587044101802912694952644415406103247964803172447836755293230288666639319363079975871550230973507505434126936682327300066482275268212666763778216934621031659125076852111227585149511828997396828496808267711524776364469993603379415763534057822138163250623209042765377667162872936921569682278863545949537560014188409932040686335387966268596859312035196374360503900535519015723689942238967885392955672420310040805008429989669918017961341133706915281643225399752886324509490681611401344940162093532297568103126900971313780659349366260489418733563827176056813326266299310539843398674601412215236728780556535277631847470847800459900730075993515227479536091979529695566389216375082010951766087897501364348725185205703298113905549509423967957900222508065711529939933063284490510730262099333168655166589454396756740779473010864124258102306008270864184853061214864522821089574739021955504924284684049273718310753265533900325104370391218901901190921941236825298055547254576930621349392172360000528373397211407719232620855339363004365421219113335894063651030254159647712921831371352690718773399248241658868588720311239836511464131886980216361668484862840995159345852136772958029447321188893847370602921138033261785566119718071108148249197204389063129953979840741339900199981247973622385930931072833769084199018756891049548400571231910902248130270432713701738351855049403012853048596124570368343752295636075916963918525920707547829981187141150999195430787432947826350943817812872486357850051748653495860982327244047314008053471863495615482554154938682951696221596839355196671967668970589583939597090415307224495444200967467132563694452344892957732653137758972591054411532851922177053246610195453539533057886094140105263535448134089652790762895755763562097246788901159084087858844185373286326127868186214131370757622426131165780395166413086540155356662945333787429690760127018169785719755403040028397597553734296739276025934367773485591467180284810516579459903610007564290169070184929611969455706432805747519480313699033847618423873816331961386358942610634198584441067191249682013502168864166543226009867296444062183300201172826799397554283562081737585662617656518848763766854328902908971541941483630565790467667329444041752177596457692234917718816124884784502670340007456391314075433514889629170807832024464957845862028219781746683827418427612765751921077310949700242535166173738178550291589444068113978597925919499217399499825382614900475599020015227093814748035962255117235169929014755676870038970810847512038078926770939561905141386339871985245221391677104077060777531757300050620673344423963074061527861555742538050355568153069941822057762187102656637546477337981761611734453058091157916503563254624901757679051571469518843344558185884320384711942462976916086973463846833288242547700010240728910345368115824050243075280014711736951273781756597567709127986408915023161102486337356231376339384842098694598093959815512074694873806366421189051477783715470923500653944838664384630070013234409899483629267386965350254990222323673074734650614969642126670301340448409668599433783279977407720307798861025408103034186813217207424382939710526438866485777842543049644260935547392825636390037533581850776361537149990401670271902200081873487787360841030930104845773557056544616101450002343801844987660939442152074435184042717401974987969508859665813071781471334127153838702166368124961587466341356006816668866096304355383532127699974205295011830840784145070820335994421661712341052007893882948119761766886698079508288301653464641470979592300134523378616225344324570066688008813760441993669107095379523010018344517891749415757827973938798229335661004475873332727892605712552557962031394025629435704632588419136230194436763485268350560814155117504319828988279090743689491002909592909855764305774234900552013366878025825409570185809132171721654661288474743237414600903323376267119009282367614208488880817731969495619260339541729939147643669059221453017889515375096818810593946124744663139403378032920672756086949705448046899986509447546458642936263163190325892549832131263409105035683552313817063584502413545764337980672165933947484086206373987939061336219114534276225294715062746683190547146931700067455422365969089494052044498994870750959162274962061073807782530920188690761988123271910048115236802732012412656536783660772890492474891309139055861843832211625244581293339416168450888942121008613753529402873485590621075729911289955556725661239388911360691169242074154985850556487448936662790921930619354918676675646266031165816822559948074943584729414715828380708406107988236516270012253864269918439357995185532422522868628632470110555191144641734875086767018386705625791773718923407380352312528893273594195218415196542695143839981117635244213414338490626932460151821347996490122077689367787666534410756416361761616037353440591840738687518998675479142862858309522457415586087664470695524780077992933837918568523544511570192276681401587505350496641872563214964653967444729798341299399708575623165890817537868831211727716456994143425146447568686838614264527155241656135846450089126681460776714295202375796890127410754036266657649427028069721672431695591851646061537545939201679290621736068658182432624026185225900337771331788059768150760023426799718478655152482188969381939513441939897928498335115488133217714842972470065425798730949222813885127429155951384742814131813412532513014485824716684790980148553995169073515995791526126557771370058714369069899703201162072674585821260950685377018238922669831309869465511256665922941890978088907020036056758580699115624875093122100251619519544227028917573173391222813378079967771195822541425236814602754923331554817428343843219257655511560773116935301562313933201745408466327954200476025222758476413448653802745968530103701693567706041291449367240352520476407075966434694899007678928183787120845217120024786556695171717004914090935519122434068499468755908874473412751075056552872384389666873851295746077881407967114381833771414430123710624230471137556472640827788085128919498222613476043032100342181049973367107806731802495818875638969561270354735626034780485609613729970749740593360718373081545854703242357357531678898148021814401792857726352539567218273625027823546446817812190183381640297631171173997735764428327782316852378872214854006619416856642154401614167070867316522534879677015026175463151395800637382572116250608713212792677831949290116447126365739272820396640867586647680068647230771496009495538838645796607534634764392354922440531224658782157230646427081766610207298322575716396993579098198750185240609184290859073552388783827475706087327612172095852490268080513095874453285323377463361198078828290739695133310961016282840939549259785282779467602170894904202611318982736991417849691347476801260974308817969412658446378253693766402756469342627323226031513037133377823720198957851516431786187380030778414292645089679273341517591315225815646577083455001747323787191492071140862397075424798128488099016319356173048621233841535262374325477613784580266114650551897660840327349873140848482008653193288189231911716983757635214335956581288241085274947309683704724237714499720363483205171604034211043325821520317077525482736566992877214354481518580021665930553024389166291535414211761525600524422136050892422377731599572404107424899724490021055051123421202526963275574252716216431551229827656397332270208719645088225063457369024652324786964373182214017461122775621930937818618509041905570354231154383505353146392067649757792706941019739350258617213239323805262656785399535714161835146669543553400883651599880983422923607508589788620446368033698207283751581455400011174196494129312146418883832119672730382810038999703561473902003987092600334414543447035841955375710206245310264472392036216391024753404469318357516154812744603224226456391625562736228202321719341760733338947824345752072155365829193180814996430075226560137292932861920673158989350017056838069403560460350043341982660792600507205990775081614507120376169523414371472389500845468931045295657055570109682311563328081751080719660569750389943293216332318274157726096525203774532621629652678727346188328189223707967918170159459252688758516025959055319157353170991019903867412215030867050104323983586582319699751437049875051688474200298844320028988599075522742837081850287894847083521101091660400653871224812807590081173410313658648225731977049759274138026436421827204944448264332648501863676177995221487113344495773932986933946077333453072177658566579668200411177181178453337060056220200034505037747260871390611612096164653166341729896116520844029201740484392884558452568516376538983318859808004792892521270472526423224058369417944259801337630688332741741554018633222550506203413113884980269079367310407702387733514010083679999208231110473489465636206182127173891551651586922666545774521132761219370407237970795559235278345936918932875911607135520085938696899228420546786359570932112254812138413096559741443628679258367176664171490299861097185776843689206237460210312538731992998031897878174418375394571628943405313266247099174379859749541237453279320141929602873693645015211818374791433808873309306034630834870915904772875263345941144407946822568660739554815393266920980570748745449706940112774092265840795626184847711213591162279379711753665077665390178212829940032154713417940528170037086572594811027431373180306833064462093316845242043953725673526842582821817993507196256566310787150144807533850595935113029886727840622118266822281540188278003800611111378388847531302187342332643048244880311960444562444011515460020578464347839006483144011372012661448071727220867751686574853251654860331738542815242866557877097060823419707424437454171188088812778312063234278111588836204965616087346730158448158986531139430771182987115924570728203840736679620518538828517995250593768401920316572282160348079433222883370844212958163676625618154941414912366893548393940564980696549109402650552479053699455111786537332283136087711773303025041819511659018001664762229585991827485916499679150227448354056449594410750674651053904630130416007538880902105435471563159110588360134166318546540200132757857891812199725130003186285887685095070623837021172858029050789148524628514613469242836167667648167017086072509184153964785044035001287018450885828986218221170071266215098187718182668189027835393053059514736345323701507494279002338142002420788673824981225301018270807631503902609293743440698856389169952481766412550286126624664692003745427642605373601764685235540466984567630630707357123952961276111405326399819366629879492415051812277039049047396376395620736326990869707232520812063013901913899464406267796358801892411152200448071937887401283267532443019517860554193086546317930267112656391486144504581350026648593396310655393106000291755101082920541581867694397844309613235379409038567256240549172971310441520929907081068979447936964057450531525253706438144542304555851686070811265437091565151471258764297680303869084814959427648164998141789672568291416103346340371974377976166563348961876843331874875105187057641427042430966926517576384850819872582501746941401253970867881157521301952569315520006179331293975062001694659418988177749997799517445699085100626610611846733722771310527965361726576614346618712349481344677829777659815839935276855860985636630976461940096963402687680584388413794060156459916923651425281245198294803514901773123367685974847379601086934010575233673442239579597274136725029265763865125171558311107046773728411036021816204444867030619389512335049201649584549727445571854405796881972557757007028476141736796763731326274318382841615076594004233390235911273374553286592205929289297587083358672488776911289754737710865232802233066001015324097440712676436465956349858497126562660522517930240066301587316285335053067135821655280270351096039404116183273031594945058034374352880638367744734716312503004568924688853395788819701395654069961005546939550770946547187667148084481410048547179043751372004879264858434829147136784443089605514722525192710974491812513075201779186096583449899222362933085632136118387461998334829346078531953443672486772959441466716209582009344713622757965853270587205814582924414799322847219376803007997626817962138138714321851846146963995323849995620953787576666524955412020381976134072298208944517334592755263523947910027222113225489304938653678063035953130314161420353811033245289100977687960861146348228600031833802609400649635648042120250814849287327263971221278504581600113640801651499079333123740102115363405572593088155642654606631363301761471462945152894295219539717617404112111545301632183477566119771004592623727625832729530189606077823689029660294272261305638702659043353085728295387450919424078624944907624245057584936383923465660452382347177741348447461896352704629751941479918244273265451514043072954921273991198695429790039374977930694720023655138170459694168426330060584429142179885727443383276811569403882588146411141818557058149878708654425713447933658401657504297547438178766515437374647369157146846163854654109790475055128691091194091955972339544395738342438210688288044285885492001914298832366320069154228451648147519468235666238710273689598114912771653653381460369368292321694614690150179865127515198235032411729458880923957886865819913220985608243298629053495650725025124947066855995159444150400451266654272505376986555881359843249140689830968671972666821057017336259316178025683813038382560091517906823909130783157885419135428325574940031332575807294399107631512433292735467780829370167875410926695788125646824122296611084958916802584331650686233439684947807702272870884277406195244551253658268398378140545190163470588127989482310049657154688098936197820560991433544694089700691201261026009992005891396755164216265508783404985041344311851982827870751888300135064744719432104865205371711573475875746911021199793854268789709174697938881987413727967092021220505020610853199956032600609502203439559545088189033378648944613341437735214148564756515267009210148082202351349936100237507104348992768054130482125927686669383367639778725660233980019470023862325518892557191792165359829419978103133466521931756035886946555284648897693658359256289038504460018682485020002697670026705506498372450463366394620912571398829896357090066617948123138571871810624235896194572401734118436834493702429702197038132711529632841686551136236693260286209019327222315459446535802782336566679217999209113342061928646532079971939228943774475257329441334123128186846780047544514551306018551586852875129868969587505012066400402212936431506741906357909264804170607513454097513220345565837746129119778950506846570540119587636231742728461116370823555055678496659975655564498533098617854557139615762755824157804459417449504334944423377827603705572837318094126064565955669162369048066421426092428187719869355455942507779196666752638560371599792305640809718674897358175592066742758306592117696966558534208686766118261448680865890230201615956102417226330435342807102939619109092071654468616501279173085149451623086080199305682578624025223184321499671924854872946429330334682343622303130566908064144694765084824262578546493676139090320489475342533671592620028537003083636032308884018752730941365151511810129638630569710694705278471702245496632295632766135915636407297557908831777994980243568737035614345119273991681364140699102944994767289594128760303383490187416894218510323745319290197209969908235430361125384384871010053338260062235149915214307284669367883611902763608480337529891594054341001599494904174283105606612242233671155869183098196644559870484131706315553526415232008355844562710758698868427002845757605269376167064677531161895801988739669004419967192677771429361277144705366285774159432770738035591926169978641732440903845672200956045176305065123791798776292145875713941050336948879113359627118276780681580177401910989233432638421176211742182792372556673364514747802677044941855016588882503962520360791513132927621508556755532642586563844289215282164608992246344040645662641365929571948633786286705235699839780128353133575500871221611321594752262853095269329122975501367435822997915173761672606906593507499005055119525511298788307624529023415531842451326236409181993083235384188916705548058536707567676713580721058656516083099565198982936396002668139486202600167398415143545137336184025745850464263704381130570730552962245023199899678059010112475576449394850582027201826925339793141329914885332271700563610137599816771629408170745980867237259384241133736974807345919522273422497315377898744782646632355185301108261560412637199252373313857722837348305657641539882342619439311911867185572019037955067875769509730548883427624173673541290198480277270445995165494615079652514763309037466489742927369296933681533291036519985940097523775211822742847259607407012275876830524340483556824070152686717667825318143902686899821458929373770478102050592108572589828358187885055761688405595284607919221483999105029344097911923814410334901140833179901339393275704382274342267155391359869366451919426349004178093275955836299199249361225925972767111088763934481921716360589925211233839044716405462249137569490704448304657860509350061551592018599956509908199240423576342064490653991696714495384891844833932267803054083248294338335218097374636061127389327739755220912351735911871715567884994383134623054114026885233734264688356343657183847668593426790645989481884103700596199552442096628472974174857660019640591693201401696671198508291727074008413510455639223819620482327954974799335433881780291532608116191806652494620626128827551796099840019636716039873267204473690160918174815108092686622036387629553671256888176367604377300898306840739911993845551599398297601974018753239031159342822216470059233600596480156144492512389648790263345521952252430555243550881650348478448208257752734286192775461272854933950449260764343254128042573483447369568409688457003140602707957588271749853767819378368588150664675171316006113104079013973179349282791661003759809325035108865577723511938506110914087290872023838347794998644641860386483957617328270942209144964316155053256601481701709701338049780817565284433990155304796368030730366184919947355025257820549071600865640854631009942482677676761333226425984294565178486881864290496075138812710948697358411475317678201360270449017903032941718344129987212274494676722537284265552357995495228764077252950191028912514079642234541381231613499236894561887767772850359783547503997763282858998444106917432174683511009975016848489764248979585149473729961641849122660400209824256853189746255815667518782778045362674966607604649165634155235208754502818582557640861303518395434289081206720200820990187216710203314886054956189756128061249095793277177045027673386388077753744794042294888745950093166591847275477363674122901772049575025696866062111740801700441391236430315201271441753128287387141580337854741942568051386788540560541821795676622882801383771184669479817813177448959985026487923693303501184900637489576153712912147389920955634553829393494997348113106905522562067112278399020621780710873805399156493379607396413574042915826878703787341423355366265768242776246116021564100175486890892788736708158757804073825185715364975525482544664580261557223259120501228543806960349635837016341588272984142363721960486689829909380048589104207160968682846526441651041675325100312905274703781993144533877205111397082356630281943724473380256038887746542118357615843682398583229587948698060266232912940302414390900162547171872756420227143850375869187395170775336580142081766903983259130787423299434487314928953433517761849470878634047365643802852580884686879012520004004681227380711544772588059189040289368585447532170709571675063152955064468677126164139946256077826950341255602855721990800597947766295094407151903899951251896270408815157036318345558466210493457266034155793162217426660297723080428002444496246623976835188711856856820863909972125700525095405785904404124614083852212566695837561024170780307937549324180205634374894906237841851409251467475886110997999837586854837734550861366062031289965376282364424888127741043430123090923255516830796888066036306015071904212386818029763903448178132790361499188090221529424969610052193900731267306596314759574979193911077328066726695101910371927420042504797250326826051643982784720725072851793609235315734138334948856123185153320541642434155821485174088185299593345672595212400741100168013051637355242324598592028025304142819671326557247551537390187575422555759108115522248261947095633347013960585923548922560725014215350258960897083619292208622348482281095470200850325738677078745769614606049135917168261254695966320157994369561521641253724249388536359766667897021764163037631586013887850175949115731694103138556577147548922869383067842975828303446693800543757818238363914826940054190465190445593496770108732283695727243487838903721354260107448304189722657789092383286648208291968376062842958272698534992798719979598051298321511655577435523755119724595795232564191123182062184334977328675734075396009586130270131951035126189077476332160918900091765531725665333345795101233393763306779128447114252728232034331714675600533020982926566103266594371170066693660562473938648009355451586809050980004845737888019747939798629623443073932667607567616339521073507077732587633826740845954788575806340953035800743362337258190823648588650381399224271534624049561769978754715233270656529999549172433977750780401862308888535816396933057656435375435306690145867449292514882491588258906557667541639218985717821514903969074721135873151834097375090145763444907543102474539784847277398117297799009193276839009598504354032511287704081820878176096261815723017405380672962112278167423533112075151197594435389385644189087648360952687310732707443990403057831299517712596269216346784231180443874663965846657076081207058319449560458336727728847762419221214048143149232604321338860027987437469824452547115514427647614127261689968552584840156387175844178229155366302308528168989615351302656608704484948681949004880996455974066388388540430445722397626511320476416044723481200478788821414324983686378898891531911177203381731060530302828876595857443320072896208158370181013665854304248166874699607800448159580576377242407045023281151706539069561109942490680103065216374728734307440496843182541141153950518622042423033149195631735302740960960066543194473733200558415151825609413538180702217686533807292077821408176317272849436777943187924197665710747152022614273246517241309629125484520706875277814869511482208146703318711605596754123579218573205911756503279059224825113131558539483575398150058599748407406569017634644960263936615437428680136385731392862365005909647790755171818994818204802825887789487488126991361545069362950274056950311230426808687545147146927232705582381591760783373458442242024615364088008473903851077639637683453935028683842592366012421861146834114704540275040009240834242147914919463893713459835165798066519635665995025895523748917757364901006451312735030571909207358453641454337543113313161825887532678313017498419027635181697699220148518982570269064879911893935569155007441073398713140249135245516999705043369099342679942963644189606258038661553726796757016845111544162524819920077480290522198662366408041313633683539854232362209370447857996164510652797045501520707678492091037486427993483855165908991508177215369164667938634049949862124053599008378150958044898172753445049637823143587457112612663561018431213220420583082622062123727725923393805353187897591861603128623761798148408002638008737683790369026821998179969804883439417337790809916819562588413042091544914131382266114499664261922765141385887289588401191653077047436476561107419690185390757539839813543408946287431836694146157132991970489742054959430373210470403469657351545553540194871201221471041791104677453494625634808278049947598065639788444078284339022441043218505765269430711621999394352050078200469875248512239661884082477094119554145161932268433469016100642160985234649100540499880070800972328293316606085005315301841092096934906000731150063406427324726908474306243721864495936061345671850669136909143498686017819936156330831196437820471625660313160657090075227969722309735693541474223948265260450706608012825837344677221108473553645927816314206190455176764539950962545727104847674028004558685143032975143741531763241646691999411231265129638351942801941142689707945753813321695732215783704826977363781337576028170263518140622615415032727808244159293547474803536423011478947159764864269876165641093975818645997265336142693856230211967149193280861041340287073670819777950945456571056812812323853485729444567242919963672814605528659355788746055572905481971781743697761155948802864755567585227162285107998220195950334949454889478974383315212586307665767702710839498687779154552238655176343592977640832097552571473766113418063048541294194022427460697409626561155760606241550220942364181407165876193737892376027711006857420860401431253572778932750814997929030017553480914939983627060023860679472791551384471217192646044846564162919269607479184068427988987897272292942160715969790774981735193514243712548993622719775507040887676498988658097363131122359673064843297310065949181976336036505476686409185924760632865326490698210784531214555918030510890729799771074432109205291229359213426956791996175789213310085841386274958965167278261077610998898391133471110820524934335589262968715690832763399392598696460305857815061129993122989224521126707140939419600619451817360313715284898467620501675929525483963533848394187760664907019914658839208415313255105412488638381383081738291935166855915364948209286131793948600241537524386421473178100283736757559506528193344047965388016335661605731574749003830451497766139410558421979276438569790197604517018281271355267048067316978324161027621358293959172947044260415151053320250042642395563444457617935142059947022919608219716110520462374030420372818556743065124414131015659988003772926372209143119672214845592996162089230039380249048787003439616537569676881410201663218745322017273935052551226543975650560163839279899114268307684166430640673480608591241235984810225301108714383802184988435697087500029774693728210636087924054475859696007516425673611154420506266346658597851896220747403304977746686812106141290952159752549845127923464457363397076894242717869075844732273455632870723877562360253560425545494784544890788035704054634862041539336865685318896368801050053420261300692219102646183546006623737374181022287823501448459235599742149772777606371699364523911255394558816072299964145707266787456598757929681659599545171077435685086308046424464354510109035492230076842821037120858750710096115851641857881841527450604402829381206938425673794668810303517552599055014171445135539777586059158596714236474449144904540897487815053527370217170672242499865061795231162422584046173130819367196391377424460600886982537602608392502683194348331843481238645031917379259277158238321512939869384943113411227553824735840320933547540209349934835060485609458460172147600096252339587712306276679206309397802888342967738425486856386710339267934631541263272864347087786588115356195870855636077863447268798668271465114522464180977084214670556456245766808700331190918304016166070080124417538145567762340793500954310022164378425777656699387192504214974523407376437628408105061510668429976235605273327108179133141961329245812551011901195747881477373232742301517160104459250069401955353188858435637206887490438805283429141667674984114562944332424425496049979303011879407236248311141537589819174049090948090971185715063047815476343624574013170416466555483957256209406783897008281878185842883774915739980583939090109506220676386422400907686474898093366878908750721149479570728903752939398488644686345546676209568105314921553022904563128772204808103854245732470904102488349696809980858290216096106129904440208037876600719665363684984025652956223293401505784795733021221830074077429494563602376029847626538397619371936690217998965622425020540795910100141454950062874938481744612335285671415245693107634947683402166702289467208366099968928601703727913438522103992160828689133014739401079697557852384750663774588090813424454935147248264799033433539279505137575817133257541431101272427507148378700524590092098812047342448844180887443890881187360189918318535537002859140281342947017509087675344299998118650902770169608221594874603094158891780142770209948439536045859297872040764652994152118416773235841479449281099512574388883596238418995504655122656047833917643458351638186629770499537924344709016463378990793466644442596574164511794302179365601467592598487641017797317766477238789719653810372664948749351190125464484942850839124868285430043057521618092716160231125702217384547122665399377553303052095217178877716085015503524942966443944863369196828121017839579362912893906836183032755879058619050087537238197873089843804892700345822591428337382811453798600636834551533720870395126691941654195960960536146923669715697006706115725727351643189159141870679587355516723727033532124036821522120619186497660487782543589353964776419716461716006625368485889333145377137444481437120906612414305654108761795172581850218739324666907385355883467788436441048346750431569754362146964967869293437375885841217323267390230809974089515504822802051899090542196716632824724172503340779795226099319193012150451349939119833781880006558487453379430549668503819768559717449306681286292858123255344539131907729273127427542070311838519665112354848465856590146778691679337644601763817664325278435240860685792170326909070063105754447665207034381753977632843889518598990414996981682936682304360312939633037189473248292144191064819882165631980914658076393941364004525285374114436397656355374505337288005049770337096547265610010287491507068801983891894384814780031935097384602446562374532334075828283822401037429320365446017542292051618049523058412466952268315269922983393332347060659172761809907076388172160637816239068339128112606917357941568029119569534281458640170138847253875427556063819365624334978083666635167834442122709185823928188211663840971008494915209863845969487275527970616260532493723303865699640830196410115291759444170623425587401570552283104364725101268766755311244164526502181096306317961957756334336192401718686444525461917053049564150812628929031353017874764998281674940868151438453651032715484295653755765617344317585455122439660908004967704533940761141706313414387914034279991024943322186882747193003526573401451003554457133170555003406216727024291946471658305142012471917331467772538417320179438385495209887710154062551258095530956984520008439316633373522265105828907581283809401737436865399162197881509893662512134443713504007044136448701961899471921016742086927105917131202468267206507407231313396136321461987358676599396091194978540698577484279958662508959814886673733252712449895720689189769711713925161384291717846252802357859843839555038065227729522540873822652176027573775686359440854500551725628955950011149268921877798340008196256262008104413588438978615073394920675692898353327202259583005035127897780442649794806020609242232541320588242322378645682210765749786732495188674129160957283685110955730108764630890161694302533013982995950043328858591274091257602460079521809411816149910704668770500178158047742198703127269851647627349078440648984795893735303281344501832926577435013169396225842861850520193253421375605424641156642089778807647126659216919893955649383043303507155395426962732654208336971202436771401893666580810251325417081330668837484260193351315436274576089319732306720508922165106970917211199803430943961159827382717353071120744070931963863311229049149939533832480804770528467426169775565879062329156206532951977287878263756699858097329561989141733522320312793138568821364089576902080552726188392609934234459485535085545641468460818236806648455583531454403815222762394551946869230064870304641089290969966638783321454905404865063656932605205440856075453480769880519147063881174352104042022453759106205980725216787774637840222180082321602725421812374138191810138538091443509211651598429468308022519222413575227872148563810020264596197272410048556394522627845527931333031397982658198457253130012863799374947529819622770742749217654457585750918707764877971033812825125234224103901672029695293187131275484842725743704291818393794082590565515690770893887446551116622898079655651866214864554293722553918646777487011695383614973223826690154570305202362672982673697771862457943062659161923622094743857458928845098656085249151597573050276801875798872442990741789015361930124374948275034763970108105990326032528308720745241946884539279950254526652716304640708828477511848647090268392416527794993065694534411352606498843994871979106938532303108551701740140206547980195300355395611554083018157388589553098929744446386342057442869311538374075606215833554608264493597737084733750820638606343656116865071951859130260691895643512289008017828339062300280421649205627708516280452608676171394357391413325038804234012155396941490551116575637803419629830538403716902573615822454142363214558005214346279130539387467770163283447284290120636789917417813950146722368809729409094863708124869686949048331876368290602403804134620435066745908000552871357454268610431163321045798931632050028844406177535105976230145326060166310162725779188456921080829450624104968826727665812516843556926956723649618647318742419586311669278664916236495549764216793877821475276814460578849160754914944527027364579955387464348433531675664087488082690732530000584984798894476863236206474744037985096834720809280170828423600224045699583864357911304314776954220799374079920808783156371527761091610871142553021021378754782685887085905555721503723241961979405124875650305738292317476823631413939433721986954338989825005267308034457382655440213834169533529043425342518908557729426155397241333570411158316352369156541689352571201932034799653765578217464547620079959379448137824592655773501284810171489423965804792354627386593489278492710085991722300664945999955431342627967203991905379029078983437878672794623169530945197222458348493642987636636760436998034993090459023899063996015392634111279779100264689168578533647685809131229605093171086410855243969238526101086759596798695372182110325753183823079878200270020106423667753709175892621822271783531444577798972768614219954081693847161512042255668993869151385659463904164215563994476686255746476194071053526744460757790436209664387841014194740628289755972714232117760409859637718027072451030370196633037455856682680482706535784279071041694136771672118445300601942934055742020341332625625708574975977135478702563905746589354033516032168168731042937668757619311834330401392775910842235834815214015951151016594370584722201223397252943091965825604226103204407230960571900216704558077539777567926018039595174389913849991189686558351494151865053995440885825508470168473999819560791062070592109091042059018920414291236644685675956455710986388718939788766848478976798639056343514399501849683118056516470811614563935659258007296096125872999239428230391119465524638181338357415041770569145726140420235812139653395568226154822704627330537864509383674109806179649071333234449330104695776616942979074218215542915417855830584497407445951573617051867241743402315306713858325175293740306673617458045880895956990589432959066184049798978441022420288514554874041881244967491931968256915060747736312414795010137629784435425510240420903173176124711269253686884346848845698654344455689287019808549995630796992658217608042845757215755637160789789790187787116245730013762364104335156544617452829287332348298263366648756019382232059331832312074934180469267551869456743251647583414639598407791725261298183622736936658611465433277646285130877329652429112776474279901848840658543423408478103595454408449032585634554130677480964141563359004836309372973471587368682576698978745710040533490051895705404572651138098592227513529842924739312331700218713478977223707154295915126926547396831306355596824772899719909513022787095566958547152214580802848098625352663592956454539528499907760132424029066443926797095810763567823697861236143554075804514593874679278173293134014912839965766047647412866626699296567627506049726306924748344067845426651518763637081472947071086176928912207132694542490201429501395884632597981403848286634903921250814481591622469128882941528414067128248253716710173723092816075794307362499897845811128571660464328295924977701360899890551283176155401946938514729531832950900512712117906841163861956111093466302528192045218669165499422704944488025530839406339433040515795860548296721297187043595029776722590371318979478986054976508250731918524119446572020099563283304568492863608785998346090312470594151518010534600512246419372919463632353492654169032210307866614073587769015335680094303228489024983007963057843243118353665988449607082543993973440051949605798391296375993797781461591730100107218926878376072269220731386871702105433787813119727966235275258722463315081208705743942321792549036596926587380870997076153646689500637550161782364253093154804865403993306458920847933045034467658631483052751597097459024250412619228891212559014051530412238514323870982399539486263199179189032335618968543887889860538966985861162231151294178349922532515041611658182217688659847905205616877613999494304982928787101280742944527590084413459945397591323410757716144500874957845516611115859444022938023472362727975256055074708615063716906988139090673028030573845007105218867382424290408410234187023646478405455480937485393238098831470658542434766631141670766460084734751967035307099479505625484737288705062246583501527152802689001335774221484463528768208767729217244357401503926668478405702481162957850462343626860896968230238038725136296838156464513475814137253121026453900421024824930456236948250983791936818792286958529383205856962754336829907661628469199890877781852713744985289560996912108116388704614356452966952298264041439414081265098263752202979626835951616427010265924897537782124306332166960282689337247986390967748605595535414880427692254310947593793239054768647232320747814252819709614581830691711873962660595536935511916380421219070783737214093192651598174390906471551070747083783126430249910955694994049768391608645458272697771759695535203802259065369029176333298170341963790555052636097705582110379077408116939812581648709749648146028631725816606035665583709524428542350411883144605977010205938917948591345565083218634801271258511188496655368258814009739726133314936694101555870244644831710777815563653532016645981601309409665415611926217336274725276019730875794923473512171032776686209324229854661402430043726128443738323128536117940944001261138528806085805511184669783596870079497023953909618266173326620044153786059251643897988671220564119991236055562044875972076887339878442901183611144396607812381856088766938399339402556371483840575245599904289856028343299341557137334666438912795065803983189366600736380523805602276635617137513279674009613118560344947722938835027399750911245978592087437760640411083796924160277613642054998991410604995471881823083668777696954406129641427650503141207743236457000505937594011896971564571166844577939773302581536638892522478436449517177841635258353914859672690799673942656213137613953743960401747696523485101929476670653071564149744333213005748647184761498562375318329792463147585296457592558510544347517591767775616400488772831847014732830375900942682375987397353960141035975233003863193442934786909879390602920088842685887650693731322213049038502883621662740451652274023470916834665164256406515388961360109710107397450423323477736449111485677549691304397310802729937913323231543633517868943177963285170648123805270959808627278585437584288417220270086295597501471196063783091569600919970382309160672774571549594689631296859254323175167396386311161023847939761646848290558078877229132748523157380303115485642006786647735677217784989781731895734100972849281606274121606011972172689703322912937263302190231571624358199250253026386649176470824554763206626953824002631612090674755789897665641567874247938077714240684188230489517955614953262218925207770670686428386118281309248337599939871660819481044331910346510609089419538441807812761490496667675333231005731403077721219247178678388639130963376149772881543125710481366732092288972295903036112197724311948255786220689380214448649303471758289425278702240709505312635948765072934626884375131475305493338502862912018498419702556592078850079235870149468864836061919385674926574012564088252794389399100622992383643174833458500537147426751186446278741038076602009152505085266530067789696302151901555991206384602676314383010259477838031257025403855811498568316236211808893346912391008583927730732292213238110528762824838162604625713579031185501586509364640746398619427954034374149218398312151913491935478010246682167691324555995524369765167582089841013016290225952249721276223889747805238061352701200618434431114691300891945544317491043918296526221791958473590409960598623462198090327474821695164284501680846678548034602048244001653505996231530997282443863109771913805548046372742621353568670594830694319128409627807125325560875931014524569554950597750286509232977272002388568712861010168526900984619446298014313207076346870569132665335491897963788852274904728105363678004951254507113865944858203651280691114314003488375865406610728655561027919550266075799072203861107980275215211390530449410323023017359980697402793012115754624096815483188719184209637085312093659069022595039369447830296682272154151215545426539882164548207996980713684232315616056342820166447561246788787888287557892524415267686831952511290385177919706039620957736993995344368546918027192096430421501126740849926201946874323566353712555796597764696311992276110975670783127768237256550731692148829329920223072857216547128707089381792224404274489246077062761216071998150784070845053872806541745290274882083386885810111288269537803438850377208424079470677766505225225725687820200038981596058438233927882769347490857922521966633980673206041209005810852342001984801042350509751757254274585741594471236209783458240614939758096565925635880308231020443745651613607012614188181190893207911840397440572130173771647580034953577552998240246875690338634004816688579437077125840670578184955743687805487423159383012555231653789853612373019591840738196587577411640718447809667063035846026516825775968570542672660306072963676889071316813952012023265744325773813298513620974053511719701465005568931780037549517794305612031452220794008591662514725983418287415982108030346286991108343550866114953852773664310725803485976217265540347985306349580828971322431861806068907869604852587004393759798315050047231469815458028125996276770727054555673445898850672438710722662891482122030100304024946923844493313943670151464761288955068297215918250600433782160195930448596660429712728019604835741589200695127623133081810311325202192007958850942435946305588043514103603803634622465937780012524994042057042100212670118037575920085512047837230825800958644571043233468010312217064898636283157783271217128357920762964627975144488363413378838795487469591130681177678592137342697150616589454645417660244754929462991684547907581838839089736296292160186513789942414961243823617417732717535076352204970401823325430400997091101058190691504510495069068928001374469320939461983816938374262370735171757554777439325849441778670922964920122103721532335925394359293908297556169283408858184797799802448790325407696626771399575676738768390672486870377822133731896229086404350279090498571048312080389955170668687522304929490599587355831624896301046302164912795745574194914123677227485153317859616262264357818498942879668687818712457703073821961604288237653371366850162251342200747628205779463050341265810624501989587175600712782961492078873472322940455550186585869126253226751555817308037708449252550488876123215894293588647705810611296817514650935099335951207478081402159472286380691663382579632567215951430251675443547035836764132354940451138601140906770581565397970544059540590743917009840220919271801639804667341297063907034608235632487735277105625596573385769169458672942011643247187285762787086755696735254384958902109342129833860497294179218010614802004854141145564315045872415213828570882599216112695253643627569817648288115393451075797993920887897689078627656741687324804206909077811186686394695195152292843124122290972617300393357932827967068226408810395312215584088786962969024380436831301774495402141802443799941000149743616660387172388780117045484259914677484325394407957084959079361240789532430243886301800924145038631959371721026616076680885335767607374890531684319518095359631854685504301782801002438211451276664769102572054141975393645338374380230955561029959336447493603473206476788483102587761429528037480357011797577284056111135405819224771408601043501440709057792469319960268528709919606966448978339006197654958919993211588701153846885725079057819992079468370175368430772714713332167271597206812435272089271440378991819425747961161404468911042112926277547732220431545904692788572293127723781680052637636642167008136755226676500822351166410947951433656063338890203187449141585179759609741416212959298592026552277424598242027820816505727954011152882160114777106804401527499123376909478173148591919524253068601582472300050455380875110972120694792821501379911390288793566869000421394027497784566097141976945008907160513313612121493627409761328113657915481522272322230980019031835089219540652591991586090276163953157861582342303639635804191298297820333103987919784109762247384398890096516645100729818052630874931776292718884570111205487253427793271408448921333422915018992694045192567399616629355139284710394513345872253263102836454275570276209781466481727375737354548868249004088083247698458316740049850984997104509543293024943789136450163246653031743671665714161112822338749104540015920131354234337013326076899002102841564613057236489155709344946906984529596343046932058844873860264962635701428340522817818412749583514880444626894904553898312737084521462548164237639738261969774377236510669104850022257404427511727360223505752312223152951015147939795201618746418517428505893101318402632672267896787237262714889568864530546806392319186016523545098244473048034604702744322789980514515487786252321963066047089881772066844174338259939979632351591467025250442978758457062229659359543242913755149732227300412194279452828873976921006105420185548860257448185936557056610815016835532449692922882188817006206766838621897678740771959804620311469935286234571596714314185889400067440730377063665447220059043016422217647114467139617529970790208623968836180580429635583878673334373148972844742133495599489252166771079416016398206010052815781327315793664856062013266191489751449666258940804741793431960855420097605562418939452203123827125129041104125714851251952817036421492700883322544868454129212287057978078423422470519296763003005817946764439616937019357992493222562231226639500645113575960430590507409192279086258860851564378287816957588863625679477512748716687914735283567911845691992481096839921406018665246295608396299813344605600632443700482345773169691531984155506092097619214166891717339540522633771084739516022074498549307066233427609516081411766606011384622810955554834906322658581302144398518555989656982370064098673078708572140828812827333334442291123874580263988132141455470614067841640067421675909518998655402640749803612418118248045081209415810906607395029223471523908723018135239648118602465555355043658874862496740059766370405540427756651461654942306643568703645390521647823470796740395136744101394512082759977544312379847232340919905120551736375238790035903113894146684378081891136059790709275749080717311975027138820173992770621722887009939044511032304749032803957801225786306230202011184799311785770077259487784588405377644612694694214052559291010719384819424211110574824953765727312052906413492080016615528147614845697623892841765470412295206633801265314782641820643639286127631831595618176917669657875183229903183663702398554414094264246075818318398428291424169403131608209863135181519492232881666835111073828659339366204693479544828504558545456691470868867387245638278077841945912380070532285699434538425715981016567009278485699896621409338955905876337293143954542804990764272767951948008485608974255509737192443196278853769573560924147570969440798934765115505148428816132002734821137858486023508794058876298307224084929847455895080910970698467441234867277999971500676752207824253094186512342468139363102981694272280446536307292857222552224910200941223365363201164144113460442875101291261291420003030242248450005507177232606850562291071201911871345767072441859712084492100911943005432318985115605379282878867641340441043439484710882936605459738801692299712597186891341076349895294155094808899374410996251575244165987425721781063363026053572964956382276917536591476418783528589106694995938309133724488803167545022360886659116352148362374215693797195039157975899938723101673452773307760789261171071848137370286193815440482235573476559078792325969434831997349614124314717240210004977099833395131807952954882805808844434584966689866427048444553265691158263270347118872641579762430174793790591536333675129332358846934857031091295892340786874070889406652312819831000528731878677898976354220290241388148786014240856977541221962459192228679983764368470574797407278315219645423146084338726183849831154181476666654458863321878725969864046609756516442788840718407537784116444307883089181342686869135145426599178683231952123363269912278394793772302081063334362162214437998831893793098120741626532477020439878041059890766117121282861974434303679080558462266794028092615115395002515691357904715250452899987882290630714484893286246208771793784316131419481309310391478595964783666050509677513813250559097910777267086164715101721024624958425023957071336584111985200462750806335848909822557989048518873687226939893825351112271012367205986792584980683557727505995144855457935607514215684831401852215212239855782768630120160119678050392618832559014545420175479433389247258028264687417042139637815159914893302161523328965210336108397248732949647203903001225980221103346728328581947047810690731045192025164700806427993560215806046510519645497195485263682559900988384768563943951273534584149641725769742971819186359223128860790544060364051054457530151563003206852818358767511449547978065842209966116956824502748011160605485023421090385830986523378072591742761819098942104514054836219031759060254009787439218524515013913532671295737715928548943623459224059778992550890429578208703884318238065174234987481639526834180108975325225254088750588871730584928550993490757752605029877493139140259874802759734590803016798231558905943491759226266436271148287575295518009657208985384951207858124422468444561242542126658078472837216058499218181850544283074548411277951219931889045648361583634842803055476925941654508437475758515947114650472776375765648095762343856525883031179537745576043758385242985249887222587597745423824256860898196312360822835292521894170783525655024776817966922805206953577371959479667358032170432763047543369911691065640003157695351374394885668021908780383960269102627265069454276892670548063682313834767680389246176073036132779008887673185346230032113602998261954948801985797268215629642772033510814349127871206068083058274659070944180616818191524078690485513274458277092289541848893779649417578357836643199133596579726165453436088693454262398655335827990690949031139867163061317529868194590046022306168217563004174807866086097856305608371308841012725965903754600929849152498273409823339262058751333267847524857168910556301838629506486596235701932830590289290286155704103834484528308237070473435186267164934318163082119142455865111807030246794004274022601317259264335424159765015243333887763195896431329955072582909692388580945506916884960518889326415685087541537341072095509420998856996405443245207664801172032534487419742290595940500705009360277279378533912337065893227926722445425226621629781233248215294661855370867499468618750104485948524216533280149524742862848434785257262014957273578558216804657488145016245429785851477827563192060660562321125557811585992519854080279838732355498951702010987925764869365456236479695750903182080085579758590291994593393716034260107249091086759557692654796387193793754503864279417334373397178142383116552091615947706786709037340987874251340240789708290362092537720080521807821419368248618397734387489848469937207859649739102580746828673662871750268726702742201067199784774560028470939082782205833578780484549945706928783075015641783216320301370134080794362709623378957444803462495569464784712672829167297326559372575455272234604743511137581213601861379364844745388976203149922574362432786886162959563455356921400952257508628298316790881539302274858595379178262759245929133347803713791190734109884386486787373913075006444083681633229873956923871134295417533175676420954196561553539136554224909832119673225040827866296573125371261373732333814645984761813918559182660861384473441810244113476672114782242935127478578994931034543153904557398808588327496791099112868714409502301683015140832146277532696019125275707974539630012088735763405728030514830736833144319091203781152478123378984846024917064132124543181077044234957305537929222947034722125287202820037696367213573878040919385134736393369139163394851658803177001973369855340333611522284537413342327224468147999371414615922115341372992993183346759502951818170097195335461045322390127622889955561572797361694222663181891132106491840003175908557948077170246715577265416891552829804265165610483065831020444011038822591524146065547406347392407161759645154150609435864350975622120930001505257917047086823130075735424245231231922557186600601431137537850088111259617966969881239315143909780188977309704866600876729537111751948371441376848730949529916145486363242322358271235197398048574627291307567684223389455201985598378861997651456868710263174363574996267382301479999618970610833370293642033468215705960800980992936442623458370737513164565609732835903036466266703829909290768260535455421353169398523324330351617522205101371873553393648137735185839848516119177679280862682033677415790852847663936273975555101964732680259852569911970372090656197385608405790443457367087377585737034221296881981141608589276244874108247508754094168027685053470181856945591799844270880947347874074143037971560478767208730642276310837543016420668221862630820873126045048066061968286110995570562230249493951643341652562294843252191545158512334758485686719039495136843656099696926302395469570518424756119417821472792464198804925773129212132771053035302175776087475611528866894121223635199494116479748327330036130367165042535955607884236342806927002932701270297115496163892694278652784768690866591279512974899649500679302146937833037978978208936136486638095347813216659543415085596625245619744634181418639004672565012879336029455881706423550678007783182205487442810316992316730254265250258656293428329239034804658348133350176200553242778263542367002956487520062675280924729758067390629981004657415036608863149619132918205066074923238152688779977454623614692635958236698961583297121686262964927304590836138142156026117030993224265035297744656150417934592012978800891307008245261347932742295946183227534501409188773148807349177641052506905186323371989044061653490822563368049337332224664347372804106992465607881444549598192444669465574154654131652276745153047986455367430319611933563722120521617360973119625039551239800177936564223790869470988954855663277658833286988992385045561929588781623254629314376303317052842273897170384035065649125020343758443976229090333176355969266728102590718553171861905065697368443320049444614380719475473687401552988396206957148463554768285380051969563661821637596986551787116407421166439112813769318614772173555561514729992432033248632135356352363122939058192535585839950479402119978394722321549488911615094785223667296722105884479696231278347024340981813901362266335513665313317185137183098809286145697153314185828021705461077561764513088662372143776330964855563449197799776558367642654750290706131853052673773636184374722141729104716477179224070884882714329672649581178451232109552881366449431953808582246570678275819304977484223462373642379458922932236673565171837084661361804762113618748302540587516848365389839339015977294353378975806540581711038067387024427292789766666161139021021460519470473334499374385028872689600023446808435769096342335619086865770719324428088422593014062350449915122571932602461165040064397383484457068296281703811997237973501839998290062651056301070389811508742538716359006271767896653113958184883566360566530407821508824940692237748143597407307670156172164556822232232570416714808224039007726904913724709387294695993350305752833359735932942742215042459913525535803826591474886064954497155140763475395289273087809473754812613533866456584167862440844591203971577480464321991117946732048837974317022921280459481168760116349155960564820328449705506943416829401368045326759878057871745304492130671053329750590857214231540215929978483931767872236490018157232667895773270655000679611792763698707879816086892218109835625199342543566883200784933792730862958789548352927446744379393226208492804536419803376216064831451810594638238506407126195165044449203250164615261501390337186833724680664973613422453730098525632786463098161181431304873629314569614171661425824318031155703247974216235044657271951440702258891789382191133650497486420776367580676025171540586242393895244120746702106527596880666207777914091521810648975930163672284689951734902466777747864919207548183391572289355623379698996127529556833720139400816311296604292886696538353828004059244071571625499778052792052954711820192045745770843320747247857495298453108030377468080972002498589197244084864769539549342321122362209729194340346429883661106180775681815325269029632050013141561316911156423594310534546342414903715412256582051040331367064045792557746079113282458773077441527903306417210333813729117354475979597452102329766615386288487183246252397733641807756393336361978067234255090580490470180662571016963395953572494198662205941499953962257496540517903315008837137194884192413004237709828734139340008489706368884505727886827891662603393325142389992818967286629201768979012471945185668241395059255636719377262986190241434150885049215432534035980795091059355048556495643151725597444692863067618457140840357358457609729897902129714784810492959905594089347985600286474072988995099894853510521191820325006031172854910688364854083615846330307815728879237691926356142017031901685900610737647845326560908599134778675187460549731897410062447279284538108315215440500512786194734919341091033198206553715327176023422887626937875181879830366191395677685632385539129985119572756994262843065042877591319862212093752232656928398966049861534077109164949065467695288161336688401606250342906917724776689856779689082201316414616778042931132533338806390002166616419711502687647730603939358926095000903832576463603733334428482952589697222988782006856262041330706617486946603028775822824107151750008337591814416019905345276220411500189091471948634385174982576115787338046950856354282983352755758561872440163064370193543057782167101645907883386107942394238186784188560803245308683211671717702359662262013825458184211884042131938926089227491427673932164015260746770042104121471635609353173733457671997066058765539859908713551874786367604894083323685495163616877850383364718606124670603898378233761079899788911811909150307234660512043952051702786351397788591369539180364154109955946316363240530764661282223961014809447986279649188797179908020416236773268164810175187258167789124858216619121009821047635026916661756309061477166999225811921982727643423394079341265169057306422200711428585387792075219495988432736554516207614022692304443395095518273763969768335378410170521302035026339140701095533136223426915250612371999665905336490916102814370980464070269053820285158574606057849362913630594235376951622486960943549129050359904967679154273221062325830212218018492272032880385815249490077096560920504291505708114942993706934144335687739155114440936798626555031905011050793006218029119924965734792348012388118948764201427899154720684520357545777110923673542300655944165515032531304634099456297798657244052690404402835589326894158626955975337326446570996615510316773115725753951573984653772587283601355257045049648701993439236775507313547540902664186453857051067649962042506590967399805300349603054692907669191159418757706698777890718467308172067412383579150777352322969464874164121429890731270694524388624838003591881572349235756106323696272448477438365819062527876209843725022637393293891923221830353771826833078017195541567900301485200850421768822983583695075132931802811660755770344228226924136475731623429936639385252079543156473879060457464341030117317767414923353773187084102709819672166535865550527602977538777699249527295364164179315583668403043570619803831795385467238271714063217323297930754125401508639206170181819411838172781898550889847635501842483583518162884550163693501856744267116323401327098024878787291207973548048567171058432050878484696294339544976380800155999642048187864751214428379929660068747642150506080201102111163621758380935572925467827588542556135696392225229992441670463578063889667398656866586693157582118736059540176942527779341843502143056344999987039711096052078293188799340812323161311190362767366991663611670778534272050345412608588023589481029304784571447053216181555458467500932864415523460232464084865099859669548332682904377651858624010434361181189449409202219081498629414730714369583152692494611897175050562327600249488686877092246153407324302996340372691906130226806724033988594943169935017620139331452441903376898182072939502203111261618864710327456198584796898218717064533878726232590830321721731745293901686561678459858168656947514851009066769006033063420374554806746146098554998249955447145960729711881140205665039141571393486605609642007484197172516949992773174550988527119710765225821866474909927014629070732942019704613117577042575286320047296816955318715604663651497639746890974924018266090840462916736381704819172155522028263975397214482053905294322144797984549169769209851685666081170150338348853165054745241346815281012819036099713725601344865777897609362521850898922415725707357055281970126857781071487036969647368156182332760027225024535920633142943099800649326902763553616191830425799762315859458615964857494860104850310656250604327555426328864991457806398218397653340238404273464705311756898759968655413211141885627941684073127254760406200125421829976176313936156245722424638385420708608430543756406454534618265008153370209764078835237541815667890972629076858943065403724333742438708061763428491819381480873835085430046889103692421637348167658569263298408809744952866975760677900026166265515793566726371603181820042318578939174269684821975171738714919387298092881206999422132862916497939192879334387628329400316944751168504005390880193089221353811230007750182715911997051497539597976010216976788683379606422148741588818871325441902850719829153644421257189746317161974069673197804192252579253342827822299409263900900249635504202713987712382043960427076103185428856592724571157225076238430664218069804052407673419098026508020217085426110333215326297327546666722227316655716300235135032504126536108722703307820780992022238057856914057405216432923504495211497055482534995298092036526229053269078605462170377848621759940822275553824230126124193004438124054761540532127233355059589592254656905505314407414419770008638459586549625052835514134348374795375306804018964247802921232891437902592195026321378992693574379930953632240455951629509861148592975910343864308085468199039672657797378334315836431401316981675695020081577602027396675531858758755147583508708325931551529122406906533187091675112515171789238916503485444876980852657512284038989096806163111383478120085034339744707170241834005248366955892889693333028600540798639920845652895285777533900544428563436486617663189014313259459182177476735901565499558013961546071074221536473974349791865091157954144617313489536271441958921882820965973544880419303296412669084281651113478348373631701860457617835592183895003753037306144427006239372421757162904481832098628309456149807993819461235360885230081082417333170726005234504995525262961750115754779646959253858403295286803816280527957897455037630647957651458242830547567145763714626354320537091015559676305394757618363132617122644892917008211428763794646693910998413387779997062620754762432459500431117764087546325102339622491256832467674035863349932880906808996902778479499790353095911672897201999574722759426727099831404146302290552406091900868116058624589884598727022914677012159175862608509216675533898345061360882752237262523087349294698101684948431197121485309379048305579626071280245984537565708989884443007203655904401821662290794970175031782148434908058515980351227472260899521914776545661949639111044696972981187005471449418919446657344335532334178530213603115666591321314819295374068905187294654890005753644871614225515336991787374171977529076278438817593357869687759250811601530549290937701680221456662619098133787587466089845440721250673203547872788907886294180420778878842147261391415811762718804256905682704110862972709833992243275378258973043273772079397649806763024451818391018021112770961730384798532501710331691549503235735269348812734008233363941356041620857885352856510381246923015796037457555979012851832336830275177228139522806813589542507293125652694815715163952092359885927035506825520220409732217118708529370379059697423011388430133466793269032426790096118033323657636550700808967133263508107931457913468578377622705031943347663849729334086015410763326368406561698605115002101308145537869983936965162407040891527209186256074493302648408769953273873225324076461069251403949298404205249318884433130643620218926574520636365798927991834163472606257071494069420774746821472611036571863347406089896854854686678035565569701708065322666341801347725272520965430362816490453860041117289204415837681805083545225025079710746525805996375779958448681632946020365395327549934718185661031707724881106704107795154881643909149519390374658661676893450526169563965745550399665532154854010812075753840947133139446416671336881633589770181116425323283251100750694876080362272150987774116038775744756751901980962187195737909555551842006254417457641952251104152850215901608527254961387248647632522516258609223844943621913709589768125870648037943835807667092775292237327560403233165157828189606767058729475614999382558887831003050191850619345383057075845063128408873392981035349531868247159080264947110500034753513865474049376105959069298027651932127400802799763454312916875130391369684114708742446709985898080571768436893970203424984504033274739724114685231264506191385318210969302837926347288797132375320257034741839167411952074445700585490628636314928223516324841977813858372811403707757197457697626649416667729429233779055473986258890150063753036917220731363686373050378139210392125248657059089977149411572308178135910114924880863093024739544893240945891013131093546046826113430638404912522111036338716780755478270842588506679872914221356687547375837898917570297313280526664522303620476110940613343656734024710657922822966217353179250323027453740107982702637253192165096695462708292446684721049120187038863550764976739004767933761520446059045737107675851099753027593437040996514368332260867574544528008647431194396808954706813116280345338571603876188211243066026297531767281140620969014204819928208881303394631754713712789891665675780265267216317803219688474870978463355142738084160025811727164215724590064240763607863283242950930340122694969735233947214539919587465595254299251166919551329048810553450586065448265775089917080911548535787506830019578516421164682700737226495175359675107029287535129124809823984198259249334146821797423571439422097326352409361737936786981387511029794964871720071536921662260560159967059565487028308275707386869253998443513146550633741922653202308289930109929230747950775495547523366676273063123569756567062980152564554070643363156424766523630345857828485368395911711816192658298973693577955084975853504883067877363108414796595312262208764347937140777261723514314726597219074504371482355018754137762147447957920511233162958027294226624542760611541676947124879716048213719281583914299559557336032957204458604846173854835270592552246044232442961107022081524992888244364453646332617238965159034258516787744176833119280521938221264953062337704411401298705786788303541694582221939476718987365271139503419960532078107104863023037192569027021137806798915960025421799645577580510437639497555508648982082076625570589066636771891440873818597943999820968268840826320230794102200844452835680245381623199120443296570196664943484332709010412491187845302094703785474807103787596538109606039378564859964467808069072853369269270682708064334142030264789220833342557900038321578936080329446686014545433025066113340335210172827807107920704913623212367434940049989759130891421751892138770373225453729262983350935359604474081716360991706608594366329320883116870786739704589916000764728100775427118337779509176738987135131716333105443277109653304931965692578690055419511443483508374340704381123390116344332171670704002466717560166459307141592332369920828107320983240753924832819898046262126918885380753095336670951554610795318831993973962200754026431096685751211332273065388129697620479493221134353091866686730565494216433582308694241121283375005230691107467290126817903440805915267195426390753893169828963195630152342882904678218415824628711915336709393172627764634588071600815783597191968210184453647737588382704543309803446975360830666884482440482645912181440286987761173061115677772721203121675615884012345342733958065665084224870601918418528678448890776775118393790667915837705635941674732625431645360371233646061613482768128201703013761477377466249447841725029671671181367835951914307018922799791415457112512127121733773162784862119702039720740305195740542014364649608962397864372575372561501665022516801643586332146451642529401661071848931293201118478052623821400961871941078400835225325285554443022669419649255519197867149736684622677339410321787983647195671599445691907352577189254023685218753467048001525258615024423268481984661283586142194789374237658349233662454069778508501456264162309164792124835043443729342970615626993168743453797492532442836544978811717582721537657740619158283510018648559511608275654580521913832292948776083393651467314758433276338266352160904075667500513576931902765275779746540217969438812706823764107441202273661422262948099286612612787074535179735302215388012705945623909671043142718806754628861957569559763133713024428244532748385246340462694609607608759878925184165711478616249473652994776116318859239109918367161926738583000941834592385239358476448968371920005047647984786853256278245651046069299283074505198760715682809390055530525493306940825900658626260335137963253753173456347752870226397253515548154747051547342059654216660035122085453760706195620027569813513673701415822241333598391570486076879480364392407824221068770390956203147185540714944052561628201269330005138342194930332440691097627245826604346740363260233895496548266848187564473977398508197775112882506421258858519570157976823546148551603869072336772902486879684748304921605485205390126091736914413377000652940309363087652830834521608413611047574200671032839291345082664107062768470835245821805130048816288219132131247296598780586597510133954474946610879364322239146035299783249440386682282185503941484030177984042203239257732220302637988359514108549837117833278739496503014904816396500692958268877962988235149756369395853853248030851426075236026277017066393186073205038395898018420944948365966270960465889604605471140468523845154480251103443110817295627713802703263834800508602442984029582412406715188405689094283754799815946604225712677848215316334110698512675108663753248601317185878429555280320998552177025077249984250383640559435212713890374536812136103799471582567485773852920008075744893463606091765257597197855888681142724903200990576690955491669531608730101004319286368660366168499460761900965567940958560394646664814980858818695275944031693333030481137283683085803512007830845195425852446296899775885616241678128461060615879369421585857567089732295824636767964300472579342205389110704425779845821886840024099683383434823817388966669859705613360227583977639255701019620658192429323867922088513523279605826310822882667653137992792220662827268511438568668246743112864837244803862571173879656758484716064044270775782326267364791786888477277475037519499291456610751951884651464560700111712487252743395820425588736909610094586315220003620671344860916632861445985610102907057690506168636764698155740742344875779005476467756700914591452140528724939770963126335034422649821669351558819260875945368626587056531679739757150818277021145160378684358211813548925858444568351283368800292866364351007833345618557456935749274756195249984570659073120338007623678575176225643299805058381640155161216930835137136502172476436148493211348368661126797265882925289201869252383689043033117058860714506168853572882890139915242679035263576472826250472072951594484020020560516278630582934251567100518653391428507606969817389100824274847002388553067289689934547614463787927798598200557380077271828348355257295759312071047674394888371076830968468399867269559013427896421327178912965575114430264702098490480236429984365801497431173506482173305066004147134752896392006013050139381938477218629021473452337040661392173343508146755520503946356951366611828143925891146941454316132901059178747569032007477324276843090693061717803086027199755984116975159499681483343700407901075313965935269343811157609344000574068885550174818162512235022867355527118089493116221154248552168549456530100279270365860511122996456707526764704569370717890098780850325464358644618709522477182843651037461166728165538219591638042920604576466036351313878710154295499597546501301818211891072246265049964498815557365715242956991266463720043640530132561554854140733684225054003456100862984840343340369659436014055583300093436102035410666189516057077822018806860659078462678791481549032179025660703402096820432590596271694949965699322832210755584795181330032236256178410939869962567234346346305806993824214250721449660961487980139056784192397846108161952993651291738570834273906673210127760356992832982123355396336603702345188217728636137953260353254849411900393013430615587938319444018182992234081934312394611132882863542039600967778511775696704399715520659753911713063783524689428295595459926959569762887091505645968024176491059595314627481030375852797083631654837246686231999401147127152837449662056219748614354098344335150855753158380550924128041587570799390144709265523966966941584070004790089723659019353786870343699306608532771028213160435897682623177068435131240279845049946742218249425658798418088729095445199164593932504970284440719682819883956120388926028707362194047537872563486305217809188079585883502073089280651454910010915944058300824298389577116732869431271959659214912034785387951396427859576799466784244855662498491392502400033747148281005657632615610001740657732869425722048374555284114732511341368974141350766936185890974517519484354236071097512132313043690330440295003038835380791717078906043681608057790383911317155757107552997741486188708264117650349514207448630751639485892900519915972557148341047867577947177858110200454598566517524052225062672662688848062654428309142904127278989474001959020987682513089733386164932159862228827022305779822277675802957528462903460780720148049333051025451264377645463580798590182716025825983992012467401145954601818060093286719575185752704879212241013156437725765598011289822083792982778775339145110543617997419997353359092276612540975620692130089641262788014291133267675230192804800811324073066558709635663513135820981139656231627422428208262021900178377127392990532982696858555047999287284526005313633467824853074020178469544111479541865273678780647006782356788830863055478617528031718642668646113343621237379661117163051456554762236901479220758249641480805027841140952331524977873512585761098935772263991440849882267675998607329981718852674044333320558520805744863215256050078340538346240408899663222724675557814165789340345457762617966953879076349119640158217820015171461668777313016937618393695983762642848971781490344785384557138210611839661339302323886936723990806507262400381791941577896935407050751615391508441667530283066841582229558164887762365594062327881409399415195795487056081816481924003037720098836950971891770323485412523149899143561432208057248600141863660751859478988856797191298574043973904037941107126550364358592520620735827553773003413124040278286610310175652363155225360810461637027687307373467413491857464092133308569911663213195846702399197382635328958906719207780725844984754046523214922737106646435860571437226695381009825093775119076519332146457882175445670563892311885289402820308864809517203867035003579293523050612513150160882606056387148911105349794888737563804202120280757320200780571554193845920196591328648025005716430062508262910533413090979772148377713133705851199749718569795821118250776510691208539485639911583338094873914971329603013971617289029059690461510169603847392678898154789968188295528382872648910434421272358591342990013386683831511205207573014295668052097964722915607060671765520648348830216145211603933518017622063264182014763737252289794273698624800914599562808632459812327264068091053462642521457471151960028671070274283199354094520523408250011951276779205690170540484115898510806554462235498020184247457606144137711637603426453290114492527285972938142507053954159415529737803577038322085072773229477953784787683037866068274882514059545866474491325600668714698755042493204395545000103006843841404124927267156057924123667460932906837011805879529832197363742469193050140804965214568890637112735650655586156495042078182756549777239336862466852185794993567422104143015466459181422674362017099495028020397521463178987090972764216532735031111717629069713307793050539604612696584717802050826919607242986978238432245890000787077076705659399360457800861465880783710885150002335381650643505720317689798094352749169870534655021490105237680994796830430495588855821487688091633964066129497816037820429822910922111179906614315455012805224043695912440159662136507275614896497510113309208160989374140869288479211911383188313249670703800099270156539968228411729873052510312879857015874459262561297558215208357831360832502018664644808571429303565671031443328403319887282082422979494326375057203176456810168900683983803467182669859724328232764539336528672611537956025065260923331318087200332734248243829451525052389126336625474701082914037939089222280181312988137922225041107860883177804711857934025625170827005788751069231694885207348995866326151990196228487652460598682841062798760106565996856400918807066205000745931873426597579906436137803192341926062653134651888124036226909882163074790515970712235122293436912043015797230950642799066349148879300834011800693531872614249054321680876503557103237725900249274920723355797302199759910848339505277269108419953764655415833752914084122209181188262096387836192193047972407672146105531769923240412349349900601425678884044249865112891087455308074629253687377654754055229054819922749267895789831371603377591587807092464854302191075489210910091381988485675764941428188130634610945184038923768175744175369581932552003681687742989212604935244697798560875179071828804266683313705974880885766412111549311457366622280611593379779012948078896354290090066329994085248172523196090699274250555735189857132534527967934445308314398037313636170919694697763503124009362173243932092451429105558798422113878847584475401199193217501146780433105656137780596062419759995331115614796008767771612312401179978386099972306836978648059286515673720324118515316116644996418571610077650111957475274142657930632135913742441525553675566668982225133915502877691030886814747329545987749303753362600498212288375021786892421316835261469925599666093306541895361800633366073471870180794150586449610031450113411794447616660736528835937191519125950463893449000739296319995412963039091349215299004654983465938546453421697682371664538058139128959999498893084698421698081953623316923822368887017357388441550991165881571719117519007996336321447978829520785242428732855883133166641288378753800384908005697267980494939251206390327334101071058009403813815881542946292122180236950016541184241412411787270767304430219215193306930215717542454194655192114547702453657111528174649333290316686497916883523435197193502106963420805070458620817574851368602765076997159138570152626803718853775026146332887556716620155900005157986217156854674062521970606925286457324207865121447617637925116591962012382549953117973442378279013602863172487369237700751462616240424062439407524897730094579414779092111120084119665601063689570400163341533686884576832785789220158170867987473691710196475050254478883373866401098085030366443214573980365718816206151541115989609349689573469058933874500147506026382745794210877086398108159658915328426135742977664900731702296275479438642898493659453618231268489439423447464109427595494083282531585568612135440455103677925510475470063980781025701687720687502772215964360007244439754295917743101829467154656256062788920991449143373980907680730776968740924351824300055298336355931029884274432293390952557020566871275822461750203428149829742030851270128440245835435752626776623541996006187969015579367925938620096988129162402301727531891299040219439747702027628501433506066645632861153200736294208312797197962706312180956269018636997827006580543169495932312246863171196303606436986287941136013593635843902586742125922338757322210454184374163094422069500038971332757901861529896247824954204961011374476635840113364737393513596163526014684135876128590090126083810374159987961487329792359483719409024505762239142349308807506723743463115767140025967185518271464909651025083552826958510554688356417187716667325036866363989543134702507894684374580846840660059183661011394810647123537301605134176995379477633797034083654304351087308062238168484841559369252853886205468890970052285600256385726622550865293053262941704373430783632798718544625697675960176953546130336400799882964042031401438513201481946207917584640136448352876886702897138751067949126320129020285484971253075593778689601261896923616078979822342433946356809226184752998141316393617579993769325285256644836044672494566856433204761399050528009493391146227235401073334355345522688408640158383086692077446050282766146809386448380961108092276455835787407844004165010751744740770109765062318107366542859715676541423172576140895957391193696383168009607489525257318440237430536070640536071979935913411399375262531019527521121573788678587745064389578493964613889667428487073760285437055595204756173953120602757169147812976358847960216255357938920335099407970026224460276887413312973972079605667891304623921423177651862919253298347313663954870005128107136162808284419551404686693873779472529711398754515114633012204972576242778903852464937074440051948093983692521594885324612878183854983414439083063644374903311553330972588883652584394449354204509816360995426565360988785681061493480940203533138277456339977749688723103264024722455806682453525799093448706612398524621254552808549242156934732810837003924200303706599220658864585833334301363899245486766778221757083236974391575535154545011178792764943846466068165131301499652832859482966466385904719032139638733977072930147818970426256968712791550148742695210604544623658037359768204267614097958368002924088154889649007544711723758886054485309729618895546912088203413875150839843444799964170947051996088059385491094801737539760541406327044804473088314449183740950881061734264504413645872695015097289154269400573118979901137860167645835122266772201971895236979554272649036261554388181071255093591948432106483832600183038778292079510974541409655387251131690111010787055218092764759894256121867662765701200571710747578322862201044410948916417069657128883371132958661261814593724890141336089953852440142952400711324066191292930365764076598370045917191493101565643461835863460622597358015432949503195048621577619777931617329658924498662750076794576957286855338498835467514493932818359039493132253142981183593291928247378010442855754435344745701580074299419169457927626003243602547758099096717077462831045659010378258430962692174952702416143509134693626344832090708844877209685881679114096897439236528039696924430757714704429629720106764781650983332373766600246359270202636231035992064821125568797231334996322650011567197119074942911346793898999555856893880189118820513661633317428765554205829877841695991532487695301216300518651243823858503812281953531914106611283561407882538068942912831184653645826349417796742426874631444213728941934350114602726064431697068343358095111957391812830433455089514298388024760441323135273728626944229196544491949158311139637352185160060366778636051069854974292395524418142811846254833226464646075000964787459992945066579340903868150182905516704844237185305415347135695658998537387517886251691515213556822781836939588584444425070055448259302334434672600571165843842330214742326226081860901613039465171296253467550993477428576418716460350144187996052042099144998131161338235794569316197093260295016779041151462897945867192028135162554765050115894280023155134917502887876942555764720883446960543935668956867549328737660733595519697125538778260649815615381805454305632269049650084252081345330716813004270251610661150146420863635234337691127762187927096539065977512537336196743652226351255376678625196074716948713093725956649738223290071537843878008764635012256753595860635976169426502843613846569127966302939814967392458388839109055720515834930335475364158854785061040146814736411843143086045100622200589668963602740449106653628434810138163851137001993857552126912483453984130908293422442041786835372191847273255932437776054718238381160833683105165782462470179676921339534435533563961077009688739085463665673410108447123390203616238191560349346331810938386990475082421570320072266041401593336792136751476889182042159068843028945068053590756941358048268293677523377464352660709182041539236349723906391813677554080423254663075944284681316780387884345419857548381225700200779433889438668791818731295872511870442136608520318811806330656862992252797631678556554669163165078379827267603226763600498621622578407748059045288500805421855851690653922494397492948252350453462244893850626869706613848393690575163127424881090333268949873183763832157607005602083979494161120626833560945172202725346913760160174915869449825255108857797030481093696108268978477108301681338759946146799403666545812488651675179292371707634383620972127960337798279147898474986808561275177612193026864180445563830377800256253454272112445104060944635250642857216307817917508638591326573953147748257769035410765974838737614748180138204641855853767911336949380918567944255978350498375420886617462446005689103446509786996493592807995916297936222662789056352244310117235609741984849882978083280175492385218492201598503828392448475205100579461808604899048984507308532897475996945687191710491428946658321544122154629717439125922952181200030473731937114395512290806108869238250784560088883128893107373352615806419594225109659971557921921279031563979031276818766853776293978427551083816103607108350121550449404064861032343959580706778368767991953490979000049229647168839052003606154208030904581745272547451457668921169730246963362263618102665221456310866630707375886425581167442778648485770388762246926936942564296339589854277198587518636550731955143225411389652227828317134596361078952898178735416607246523999958451938691200417709726643184180461413994743285300713572561429554983352110448875242895675026145484303372874444384357467068219880865640692604117303793330345495184435471066674720994913364632162942136049049027699871929859648950535395793817961132661753383575794904900779646580440553945701839615680694083530523455936388560787628608774186564030730275803750495105978373221659278867913082738245555853940371250802288470391292875611032619718944033666073161720147814396845059414696655175370511860640569949423823835927049735799687549058682216668304225760187762629345856683544432678371794962219875079339994689097672246095884102839971779386129433796272928138029077812635362399204076937427956880916453672748022694499384559769035507388903489108498285364870742338370736431073179311565706206278347061308406275899966802613064071587611799248138081017144330109574665030592432834795156159814474063436865110308718915521872404326006187835557028268730997071348075749717707555545521261160851721857135056832184039993282598059800813510662719377515901625872498423369497460121031420264406088756709362115582382744097481565375013251340454069580647967703325951575407444003177911423560825470103596641447333589228491844222393606374191390163403581234860212811491701438056931329241522502740721725271415814275230549671138916613239513914349360007613747606372130413391916230133727329741389976408894075678388214428615528108311866930708443815309704582939454340250788442604348784433876494834005826350490504538397511739147204741667086026288459954101714316395823835578979439185387281262079407750419920302011303003765102979805260133827678767568681759240203608394837959068842129879346577336698251399043685996058289544159277133193751047468782714300352429934335891282841680510605508996269888169196930565711582075602316215575716838980004403874239386714210502045681143894933458533850852230880662012371320352494677217169147904103447819346317523810679941399460801510012615075290460109501741578910690372627741048095111728306019465468638576953636099528560087565478330551436939197140052411332980524671753670866621865998585451982569275861059099575548660116222288471277774406551134510584720872085337613921702940377559633449983216790260611016427523596368865480473564520197844114063697811197570393450376054871257714554974432114303789266154596356256052939608577349146957283398431521765671873987414869233853006675879902325831579501477190766966095868365472763681255231702931970372491455611948920090642973758311772405768251381331269723675373370697374495772264956594244958740876900238728808889931724114834568050944746684270501585182997659917630632151806463107679962873700889339645165354468280031955030417623790938873326834461775319823719945615992072141036332534619233605354407516157705083399469655999181152722433930703909140433327139103201661862660022173041730839211409793806231334229814629659081381044849742139549203682369843809411796171779914713734668612545854505712586649604614347241335281806850310211597038613912226479676899007345681835438612332874435195770760101928790983778437985659661513965405175974521333839892847109894181217688910133396386761442163294980487497315624427983046154037940209597568664271584680298986870052315795924215904631085642393106287092180247186825197568258910384475153220080380133442822589489247432618132195561830284556962362543539680303928434245851214712272011996510547031130675965153173737681908076726397110065024556718575404775846749252467822303693665916249524023611781407633244359146591801335386768329160588213082536644694337241868764323679568061168726870523458025419294487861874773637881173472591239752381050339140110827665185694825606978904698788165509714038378339425924769887651419710633452910248918579422449219654881100970958505379067017927936143093506846957304484243283418124983888917020730212598842015539589055408057765998681253660622882121710219817543466024553929837319092293226447206756465013895001495850199848738085287744726139152760030185732310688135577818736975990394447609410234778481606136831164134308358460834337901192656260967290734455608520634796388635749221975717884747254835459547830151031219659142374436847241995986630291274846354845376488894080787164801696147003727342933657286315412803329291028071731881166400701309131335084396808993127622746947638196377826697488836360493482906538674058031021959998696129084931484762245999458791791565501335421743744511869656683542437976243667687993994895736787579746488763506447639399850040948149550686016529349339564963890224124973248071234412241447326398780861814329541845770305194949778196165644122665627141171379996854684261872571379292586171411057599058451874654292969971646797042763473524299798100122195780118960093282412536118527956746515382756395865656436995421839364698381606359102348825623346421339399345454774190058464707688297347836314270672745343534119655600977821094985075464536407105083249899286197988823597642293202483245343733473250350839248485329002950864887615083037178775410213768144656324350301391805462670136987618444250944159974989406767886861734357980590177027456292882836051613689579575966205494233535002071161618008651572383121112058661996135997315765526169843479978974109704517882939038978217774583844845341977928499533674642285485864346273953944517906360922014122334188647041554156281670370747362878878972269961642810919640897130311474383406869291484133607781366337502963471308712683944331861648506965618038397695178340270950418227904212456103035334754338479190067376936516649847205573926314355656574360911989315601541497364070955632424402232865524956806291804762669620106729083545968572468610623253023133935412166232471803040979275001884002211066724701790964881951578306845844212317930789939533296751691122888294894997201895679410129648994704136843977231426154396642350601030304072530776056465670343571701688529283826087665538245862556588421949373441990219295762498317484029189053362462690119838298181460002183643974963750102626771389485788092032329862610076283501199118484710684868187274515567223678040640481620968751124303907262103531159187252871505644205331819781144747162139451995869847824088834283953065411054922841991007890751098881284255332317323833855584368571527763304767203967757930886381648144234612235705281662913837441162865330265273539508980084778905375643323949292164348279657617381937704362750154747002756823740440593145681964479670663443683081591718971211829915579211190881513472122174924880177773990500823006834297573056570909210063954672543296098912835918566839968845305135883897677254270566775053677677254693388900070745756576877092593016585753769671064352984575996358080301703901570353707896656491166643651742881103057378967984774676014750518504301939441267707280216736765001355270416869373752581810877556846777287309946095364042983895384851842672086633359742260851405464154249077613433853305327536989411645078760959452751756375186136737283347617495171108802695034200815287002510640647495124076678675654443682956686834371438232500257761035262123182898552789928386540695414525095684627530782161144326458307169129631597241417063611255627308189319673285120367668589948244430486685360726536561276607598153515716816169806063339805763132026376527228808473177588615192743020647450842160816552609049358604859164862020307858654991951668648239621295284856458031021573993717528274783904510186105177738778927333037315529670836812174042503315214367166140849110543263677264501601472504196024844847607497492440061975231229969603889885108445774593338843779679020409610341266585954486686346831033433930085193565739695326109368001999975429662837902611561115417511055645930725842824347319895785263252516137111503642188887359466027570163054263749389615576746974778812321890887197833487377765629034296965509031012335941015284049484303894107564477040267308859005580507991380758621196289715329121797536247557726242891368816250587650396371362962426274474815184092124118007966213980021916915458180170218041573680646804600548656344603839510791359687300890604351063917010385452405452142637636181119781660057918075675843384415132195502599124082015893138793551307401993330679784803891335321695604470197453076953784454187556478579703930181899902993733902693174126261566652465244237352378334490297297214816955148134980768096474056658165976474916161578582605138116067449680854160124776373121791118101284331919215915397361975038181144720966445966119391547422603643897907226608991318388298543448434108489818282438737937660256356404394435471736812048183087813134110591822792857307673145295409068550623476566372121437941643794739067129937283561853762868015421040355104423125240593732476603477234456300501624759768565870973787344507272406100282437118400954104090074448850111099445256186680266939677555009695351711588732245567637578465366098358845252892546064191415910000553153415688278339786013935800905098226727534883074540094486404483706536877878578769670649507877918754083653389577106703516625930811129130388835465859576359799044285246055493116068451032839016596002473357785315501488586416730109631929127228392298061261901001015612144494161951700376337767132084228618440349787849545651501149734788043688831112610189544130214241490826310113421238242960360612880513171443122355872525933790047924274804049401391572485698741242655275275463725199007477119555050396787374720912186752582619254540686210984627415447549838998369436389881327145422137094054552796715179422393589560017397122794262025034522952770240834813048229627906799161187740547812947678367053434369913253398143339113214451098069279502776000139864002218456421273278570173215545061518610176417266939278358491702335246708643764599332556719994672599915343114968159619051939843538033758347737160747478621671534036486064001135877371843032103408301803778132858388977458193336997892011591972476962954878943475700653645890004829990625241309872898744125611486127586403359759654840333979529811449929659332250483331125856074605862513059823776778108074662594377182326534256698629536214269615200433611762350224004522694547445531162319034961573834319285621448586487235377640924387145489054981216830472711348075170909582583486152881587894162235132534261070437675104785335471747829863691516816086428009128652238715722831418392635455256262376985339051494585509352922533292473445150723436583102502640720071723115039812716611537254931474613976419138663766374968391242139619977824885327427115500121343339958852302806504427690455347162261317688571871938109760999330416699996429204852222049302532215837205241006833452169286303717786268380877916002704399291879940599571361629349758706425431842535180666519908473415132590868714221849592233023249324534881616486703681933791972173058059505172788494562698157384740056996738688411959370584459451473359580561295991705174413010560242152608518044492172603383866819194065181641490962405987636118745675011703489565613423487920164905710235427708345070101506048188102652074386504372223330620929652746597774130128014208850570175300273379398616783507006814793737021831423828680206980623184796556321373858832383229839964563033001786422547313017904722390455537841921650947872373020094037359566269673804608879131795757314543793165668090211054356197609237575280595720087055916397815181818584239967184883203164754307777359523111530254921564100706734283527003198605856285770393062629002845046025381579226529459816524422335392405175436076990680556258895737130149450710210968557403277489741111460797246958718922493479867652223877467119939795522376239476999372045336620824261478262643305014222310558064425217349808585810624906633769937185766311872004239150326120550576315048663174039176686242005924423524225690513302021475641948609691950324477197150618838567125507900442462271209695533079541181856966372209946906857550204480736389167074068060259056716882010074553246417141473311447476226669781460148713241043611430947737919929793320085050825983755425738436353967831049334899762749439090664856425744507843159322216190195540444300400649558512101140025791658135212056995747124052681106887126863413814554694694969797452995449977841024120862825479106582655933259744435195932196503887782440343036251382440295985546944888613290522847523425569307990777154434832071077279189681726541793733258920946166328528548024269704417039719835616653081233755556785613212147517120633178137440592382698429502412691640832215923152694937484728737816408944321441791518495574016016502042118260925528817091706560888952009557897896055725991654642745614896457742589596251623518174958194298975911605387643663597310310676276861732249843149288752032726505858152951813911928015757235178955482917390346216620469546075735560122166829445939535047779549099830912501886416585232844492819431568985749843406987807920686112264085548208054751325423171915237826510513608886056299254432872780754637120664161752451545462883361334769450872448338533686325238317482432806106568195962955015674772368708612101630755014190950444537520440107369354954692965053652595139310154040267626620099554799899711591915096944967528299875459186933674483098079701291030792727988630241386068376096795973659019984322739668719049692647821560821814954026054378141354493864077166932459482638995842379739977748803509658665511207290905626195866058671828694866493567421073116589242894144548098958342952412437585231146491307002524346192430442117577340766842181674078501768268896862411525936328815217963695650003033037449415865477529361858680744345104059078466936778909370079831441382722278333644857298290490445563918268554675759494056349439488573268165923249632634540963951010114918447235790685544471061722719371521848557403574821064022296150305329399889307708081873602244130634446702378895094458659391849189330125488199015742696205999330678799243744706513851522177338302187885403535900543558972658166873192330711355429728069996652848370849296261890433567007770167898082791987226795493473929604269848447048338919029246954642267239784936495719053053325681093666148802581926641265790048900280269880478400317429431800721977293922095496664670748162829684368172620606691978004188290167275897090472985355746588403022602857280446116205590838499691126574750644041581577559712335079316531560277461386691771197991333343526896379584415313540675714111697480173004856078341035758499494144425973331192245742312224576188763342848902269871893387647810156884750014127503619012233362630279928026733313512987916259868520922577232188425878121233521658341728110474052035208682001038967345163604500967562557973827901623807691058260169507735721386249027985422425628285470868774883142721784502223151565138889008587867720374253256668672563068594865431628083394151995783721000352675346943211071334459405200783088483990351153044041168127115287123360582480217893298781475935518896845192295019547904659352171638289099817314980567886221661058407927721797103735064728439746592735961715180460209950488217383190248982415647981393968775693111250341478018425052610945652858889039840521581680167862229976414493611535679363444255171843921731413575567738936427361044164547768712100473786375870179429457565668282731543381563165920668905249851995336588620176836235040009275252413477597897711356316225990008335498680133024192957567952806378535675800075941564328464790433303969210406840397756861238945600865411353499815461608829337466507897670570414581762484371977453386715471216842598142488609974612709465863867931216564972594852276574476114912181624626990125800577707728115502730868854677084002254101683105975731683083240221143618344007010511858985397229688224765185946444812654880784646706121574091246650180012587434939935762721653387350848178665952490972810362716053085572456161428242308205337690607060117274954461569722007478971445857231992238785391375086029263247910872861441415071688375760703817268966417808529635711423910593117569286203337927557002456991462614512220960428572844372846264839461423218014532659166828030363787751941707817893331716445650220073230467692428763032768746482215017734946924285003732013071231599170228742431144480275290271448009083462607879867072433956890871659907610282901512952870142835533094713466057052599697910894897932328713008807175770832496845819198759769362888909260578026000577690372071361342336130088806576473849459896739336887161878987465972292662871356325268794174985285967558934554791323124816808626321251327998405513277275794889676512098347746771718413633154131829070214310332080413719877582918386182776238367462187859255393275725231228301093932319388289161879687280617918701506975548799414078151504440888125239416176716513919161253506178089350485886446189075133092046997613770226432776884401314275557278673212784806053879066487080847390776840545294245976045541421279027478245839653189730906511851336590481518415456810133871816968214345861265701153796631952241891404203534085583721740819646107657164227792557394203557907375202046085661896627146328947461634759899118659825935032977234941270308679126581751177196114444991505827658919909253598873752811981138515540402789684508535666794797251079940815565594973447520538558216839500985844072860668267722034061356994844044620510627455891183901067460001171506708105417162856247291598251104963166103242393549471614487852080180238722657358718670924472481114341837082264976871456728197407343952915214339245694103934788707036503606469065424224437022786068037050668771808740605420934763798834598448932151984721588309534801723685585737383178740383969753223473420763803829258173477100221132168907080365579001743245024149197897857760471367845972046958707285096380646515614392775062323835934196551579521678085570346678008549437560780963983526527032812283956403356225252561112036326106703925179100973276970755365472166854262779667146854722245615712678703120648382572193199335212389673117168980572424199026943366542459307591347370909706670512486421405509550415440246773557377945871767203465040927628852784994103425281222016955844478049976046370586046478153747376435233126469509416216643014843012735180050257274727867946535383142749708172083048756978111972714142330928058255889490252908838327559360716671099533711375200136637630980980347056714863860063763760789517915099492564836308958470070493970452924945463922858929155228698632705154014017766538777656465322857840356347645978258991647274962436656759298335482496214610387973551496380195128336329993779114030649125847622920220326054959631739960216420058361741723538239642105882058150710148574174775813304998424092965962215014227658606981673825865161006597985319642664905869940862844655836535395046262694400927768163792813230095686639935174641689411236215494290278611042005750195282731777517472731016970607965762732841763771695262326503623658968658047813536769388949534455399102531006594601438062673572129576113164861347340336036484192539427030329033308044177382599935716583062717861688680631778346177327715928611657408449706574186226537918642950382105692132589528884149408137310182888201802903370940667392605892770664219761909404575353772661566337592861257782214746755932859362198731812285783352114241533976862615998920063021888273189566982167842879518478593582790374712510892564417946819015733988019851010536182178891298150153536013619712835139499184160688093903079796087826413595560819586920863891014682091335559776541032074826775321888860740453465323447625286721818118087406977127290677520631391369511788823051633544031568653593771022917567187102093029404796662408441884959595849190389230517284305535577116242938334916396620012458503273948081446946163623663991776769271503828118933965933346440085657102149334649524700256108548545333404820149023575982909401401963052561997247048690142046399642818078153403379474713155415375772769305622115226338953863665049179146909428898718931220437741994269687229993390909301033326939910065628129021930431102556050830729487194907623331073166698759809056511717357621693706044283477905499593788307250123317018826935236401928674824656000856760714748534432707396610054159020082854181977232641673389883453729813872325363946195823690650749923716685893740138456034150467700161085376723854279191702149052172663730110859126689480195238285323047728055779557121176711983025834596508675944745931806030139269814152031001776995072905118525452236480347388722849491358207706925574151529828821942849279122821219424913897454505408771594667409191873186443787953705411471789917446229255080569999407565811189675843076042839218606133940585927296977122512065890190561704922154985775588425391516224387531936192811635049468601999436049120844747724153630426447624806172642510417532458994043590171725483644870751243016670167318334015584221170068002835554540453555294266571125698029273171590927914625253652831370765885640417455633091035380713381201142128851839163378194632716712294699170076968952088763657205244604750906454590528204302829472650374072870035250621482236175617177251738824635517727401692772186943006037026058813040849815806351632440411599401531974724131866673531463833352054804249895442002672988499028975097499653319282428641556788064153308692339357929239970408397437211674587039075145321668405798303724877970210027195140710752040150746012666439143392286168829559382608314529465518973439680069595254174405253971886261514532999225137246807635228327278852698991956528167661746219871231290129580905699880614459945684110881125238463929210439532220338613503451427243814769824252699362887439678061779693295959348595418078513742315116875392683826939847351486538529450487545191286151444041884187038193560390438552321384556796273968953157207346507007299982057345184991379243753389502684873289476420341825945158715373592049617044491549620281638128302430212896716611812742060131908080189152333905779651566728581444157490946999723510698251892480660788551954795330317187969138394103221455993419578888605386586757109871447300382983489765145890413011339384909544654964700570074788587771303447373792816374513781308124779402034912446910371906250911966058627691561596939880752922920160293449605077288801264399158443827994260097974675432493998682806654303959686550948644428892328024980255122377245834030684381237553711190725186700810877438486797951494710277970212806125571301014149345746107533682016154321562401778932532510030643524280460147320847215159751255134283023722663519337326657513377132281822260305513484546618539623235887755702619101539856957675430139557091204535627239728140602676711159148752535708388559926973626655884136229580734852307579190501406402947132794176458600709156658188662941422891740946061289755762783248820119072005461156862796494058824676114432359680048335285972683854399028385763104979006707551947375084224545323074529517355572144627040178885746932864758062901510759201111189592745040548647016199324807414547033313070233263353720077035579412540872561721292403646236782613435234967470978335427832823274386832593696035023778976544809148245403867590446023570021175085311212728379972595729864779721085971946661001124381441063789264415071416689251143262371714030227770436956092370125922806682260515231778999512930327545034882979087542520993214242984036188328936599483113369764679804219368847878609225804419898115239370665453018692023575788214565919461930117384401719072524201306742686790616178155414053729366051122610463134133415527426767398435443272481075986679206448403711225931252623151090968321128990057359242609769017930092225180578434859306243756255602332325357367350454967440884972059373866054006026930861240467640475103212546109203163449857026599870704500404432530760993772065460192854397135066645631093859499002238677806580420674912139422898767078253030494946069359997088895241771285308321991985398086433247619925496287636182848064471495696339687238588527462589314605182123823362014856580140112956811154572017226110667729127001350095608975028225643177818858634287293223341006495285640390136266224873888984095170272776487694338595078614072332186666362042068324567252224515054467643561282598131551264336758704819609552773007095579438074625067091830814271389638910858490372815082198237393153067427673333303257376000170075877438477770011901949623221644258820595084341554958037528503079732998265819959214792448253294535240538477096904541394679982890330488570541586099489923526215995550777992587469861809027756191084680482445194112588495451090339585852857041808878171475233168491366670100076872518364759757483425343949101793399285633444690053852055623326831195937291336934612844509647794904064116777275509010226438033425597165376272601052272092111370677100850361097908993027052954200149288240141595481915543457828241609036075455162900030292527388829066783385013664898177789389366199600787953920062183988763882358349351862318397700311585012980822452319694271284905319720409575265945753787041613013108200526146129410990387341133596142630230271490303773720142892353787386074840212640779096477653759849391983640640630801436717039854727674916323029788790110696231587325752945774719402950291290772363598096551280131717380318770418949424014142474014607033245262881527746380598614938463787717789122965863364327805802075281754912500005464526962974485009193441641165669130881626481760044350001110663810700867269030470385775907972672964266613679156879941346734373053911199184396680263150516462916960846382180325076126819189552968978011146434579884751115012418218130811359138158594272502766559895911189269103901459040581654897893007839088562240305793053201853458233872938103838229230171105935791210313136068675470957342362932957605983714687615891284796427525646187921820544483430772374028909569331150794034808062994419432526894515750172069730905330182572950766799725568664534760908357913677279672022559471025438431482342368945390301497037421245370004024772686167199854627714575632837858174077313017158825487318227374109050094509047865522976728507605332993991519155430672953716209406543356959599452670479884728102616307349954052475661828297696717424061848738944860696858860980764602396981687737020899054489022366422645895591261054964629750223252544202535622939768514593891693798971222988480480467307357301116613858161228217492932437735742333151087184581473761585347341770995117609574237843797699483689704983521922129470797569543112047349218898031887441058960245486737679748341480090804137172461169262964371342920978125407465523413886361975494777044410176611661039865138568785635150014176276903862571488836792596430360113911484485402047225611590006458772765178571352762150716566806326218492476311424604338695667839644015258917307533356808976262893935126666493985181597467513857405475360878313195936467897981375045725692105293601497662358459233049901977747359255802937924188073053993262772645759809929602545836801792329233098045158676647275956921506492483100318677192720508821433650948418662287185421002687136195690879456069339604552711609745773069341348423507019273316917776993268427470246088079757133781757735522141088258598007025200529771289780624632195178980862952036899805739698640627896272899088779382064008359172957752509594495357279578908215042445438354810801092587864343265909533918546549665153891926973430105247167907075858494787678548324844639747228972646649617114200458646962853587408360449847048940266465871393244955961966223197279948588035293476655206401483409989118740771895374893978005451250296166420481874504196036537343024994454772501736959981489414028294812690760215843355916187872458750036404882001211902078071870559392963193914786855564067269772304880617697031138171749089534719752740778518241854865592504498964637559676176931676264720718036534042791555262459937915644888368438309007215102696077899766482691405917084302608713229427478587352319388535077581251030175166587229737550796829370912845052458017118424786183494350227163359866750464968939216047408354166437285762929218624781520210240241971695527775482454057774335109441449800395508903182904841021474274838528881862442177962886966699664743071202905038890021224617748022913669927318702120289387087013021122235703359420737351733312561690514325235999958976474518396452296032579047399963829391407376312922614011717172813471931206116145430582240079503586706027875308849444780574134490354323180900618056575220951123582873747377981898282999827066203088586072776495255593300245754870529727089207902888955605765663656057828504519728797454182486803394107570796739273715651695710193998772209098978731475785471404333994294540533439736236034161811542174054003316071291091298058007449350492800918716395899063728085118670539053438313036481932435723899071512282431932668191994811678840117267526150525647307355126932605760700968022175578065692385198724450771778849978678038319523603914656619852205761446125034365928626070280201700255494152880067845406840296457068857627956044860161326320038806301662508690492256769552150792354445985427203405518222154867372453027903714224239376561315482389779603348363034984049792133789900804597887146213903705955694866456180302717679684173669557580792645404525544663126048836668963037197491169068729755876950300178228472459742920304898336508200688441709302601843670516552289418731010335717555033984040855179086999119588005984989647102770359810618823532790392713041937111966328309525066610182908522833227417897019538142827648084978429027264791545998204285888306057404033660007282439706483110659349027253255893474721750753483614887922467045041177736168144763728029451616308013706528022337912739486917301941148267346180964768243154283315492469900854967552789383631030880672396736579912690298480234986109469960484524667795506249509176700731306527475492982546507752238220258235190028603172918269487870265633644938026052055881155648507571426843678505575222636147410397181813229450254554203674544696354360280358812531370253038051911283110258703564886071282743219906064173597898072020817120111221599906026893372103726594284563793945684511201048922733524202374417437571649008155120705362194627260836160784726766142732780927507736317583495028457881866814212323550086008250204474169287987533488056256376480297407660326678993116396007322842199871278362011833339583735490802480520118848174819173797209777550213315468322382484909871101114584667801371784442434403792380494972507581480231082995237287272331362848826033878870425472089813354140300246484578484892249836034835732135780222515755242672444219685547155550683859434545308578090454656821303083259746579638435829427873871639940674787760805051058470635667628462307261004598802095199503739332836480115470928241471175508664849348078891591969010031522733069719096953959937290272473472883737388433805633191046095863069643781505936799344455273466326619748726931828322633334125568023419226437909612387925490546723179881791026887226411867602186110575394098426906032531873065187007921412621176297000116082484196214604833043661193564191752208176237729028545893710514104393332381654639686544928633306632683472581363876429246698246948099487159160366365171440952253884945467035232985722835867648825052626738190551086210421019065471877309287828243342698594521199457973055019980258674528472607391813621711329516375507630444846393735897970456659409948840492927138498432256576776252424800950238970608250126556297420543353156366634849413300553065160666875869682939298104064021636668398125026893996532045323893115754096107764954796965745529505192270535417832665653483473071649149061193433843173820018168723302304330673130481971445668930846477555189475550462406640935716703419858045577428808126258196316723573646769433263060739219899135333721416741704250990911532300585938704743431517357401527502769671409888530637969384256423850816808605052757831406208649541446208935595423188035140224740842306574622697727414695673008625138395957512792738865622575593085990736809673273661787892005096606112031268310921410522577303812616964064447804113428155304783298049636709023345723358056910372235371672139169646505649435539205238110989693028157698127916203143605541888612790225026065842668233929857423143663617131264045341960421619779834761840427923672469254497249738870347942866568204756588432454090117363665451874576868987512366734925023395599362082217565653222006130500539650481428071263785927320275230163139847567794819032753818559649296876073087982251883270281361348042684513936750498674761178889229365085000020956830050504372124971212724290911109722445837595650567025676163673243820016839469884642511909644731124553178590289639396958209376079466968966098369382168692127803474210470805783888910471532748811270397422835116687549332404479005978179066375324181409740324933716760288745439910585235986140014747064757639310552245944001297319005608930901088626274513930461275783307477587796992432761101797416005684421768406912229862214635702441181312599943399041667641896415257297332943805610858736868832136775872749993317248220621768379424534867236396237989158103548401790462615643225289803674724140771956211114519380672021142403574935503624391535748410170701371781691041063540100798807572045064415328893002887891685501910355637746040127280114274140780265975761952098720443648584067794109414215380962371958320889228147842217822535046011079385031672379099214191299967126211366669617109352409527935691822418698032278362333384682179837844079627573292080347479483647430156609062222047612712739244128434675165802948101599220866932118689491682030996017867253778975840465407379463927566124781435484546179810734544905496798197670955235775753134222527561662259106096639576481783170740429011703522647460191427293772823240604656684156319231539347570638086212135390176216691886212484283881576292210847626833995707447999062610242849234380044256108296226175880564619091722558853991974321756753997141582764362381163618809828303754100585084579599352581691988508690762974355204704217243277959758028688476417724044461084010215320852674422512328520335388239593283824279616703458548940824930776969197118720532810034213224465449071836113682800128354416656635342837703008696938226369313003747544364872888630421010128627188889532224779213414132694882484786605549456321674720938322980409774997431576515068631462052703402729289368056734749231100038657842238403567234812902428804091905177921182741464980592173845284140444742290980653338479065495319104511093218280840701413834283477985783929772949832455939695631965647157594841952491541205788442313860859034422327156884181611454092149462421319974815171088217749033830541570134939325955437614043655191735163768255545745686027203100935513856985412921784034682324325352606307508265547618937110815335665326660564769792357098017935137916079037722180853832879990125328384278052621364507823163783686154168893956404494341690084907309005344166357455049151613385662181508825705574710233793708336305403686859371293326355973076001692177539622470005595697471941397588783192762752038893017053965241023584673100751116855824159745270266759519350495477919563609362324586800036574527884670028079611985347708380599682882254548620846597548189418952688827927149700724691126777930901146039446193906075121546213361194379069112965159614001072705392254504049997427772042639919293990761087282872081676096652227612060126606323969381074793645760330469758457273408313361516785888922064242783951890931031643937407960172301857580168911445099594662078024701863965895278841671392882313410547319443100606482591518253773615560606792225016435665261243242666513048343901598181256950711762558747283452710786557572254805003419536826235226943345978543641157958719092360584420036087181728647592028235425837093182675412005519245452477394231464540234097812801124438290553538746970055105595847768893770932580137865558592540509599121369729701463672794533784139465613042660685982822088190554819576762026137107834284046375320063990842551999015378546114890965743197038283916809945698289281826447310509054134893087612838932323327761310493731120859815866193433625574477531052776972842131485693444404149856066213338246635361019668888511103322487577717500115988432594790966092578068608533592670817549962721834670700471059377647107014812910453396203575805166801583626809040496284166209087004458646548279316820165713043044469079218632805671146716333784922547514848976930039148119453494276657334582156777445075582554906349663937273057485772657358782135769848777698092935765158589664619657758583136940730307538251572704468756901728022355026064959808616127653845291220076301307896699800395312630374062004653204928845588537625695257255267417715647748410340308680489334600949773414441306129191256586148140496736647271221940761265503170344795832208257496294869958307765780922732063154475963792328886050850726803415711621653871415784427595361045198939860202275645233247172265063166405853201099695074737769034619688440403323624502391461083509415235729339963144441102145021290631543692309846421993761519864029096262369377889753893896394775360152456722062742450095912149533424199666153415535747866713198640211322335520113546237065663176696465593335357404030090660504903186425524807950535947920974520043108621491932680285693307987343332061424818764832207168605756033792291103860256456593060027417621160361409007034047861257748739001399680301041961830338383554311956225371786713020497558938955470541891420341096269797657878258625252638762448503869246927591176013129445434606582312542440509917796038295794031883422758718369409164398805946738269975001776534282000016231615084169483971006595485142622069618501468210328741474761578924372411895915603156877400340966284300779604502529108133900216468477636613003524109753295231654797648033123024908748310662116332532768421153894209214675711845665163119164690733701290278206114375109599323830425695554570349036945612974491275666630081671125448715184470830776009089889363481668718568325324045344460499980763482463439768994288560912741459420918624221478688578569413876268051094592362413521486595574794461100764105977618667443965416178563996385768590296608221743145070223125369535262348278255223687341021451575366445783849045918015333225094692893087093347735319800660114738102488074333795727381942963821190912866856918159194459819927278772438320190187492824834938348349168244436763388104858000685649459137897080197692755420561013557237628627017090705850298419810331478054741946355530215698785754149187874548760701863504375439814807263803362346114794002487602657429028491658047907564631213230444258747011998264675779599340557330749855938795673853063661096727403992157041598045558091694937441719047340386826774338557219412229236158513544672273925882154516093685487806214060578771816436758481697504611575048818415286612104045293015763245882774372093693871705124589153611224709821558839865771394032108162382628316026389853227251504042668486744627528346044254386911488323048755341647554759797910912573804035702960385920319810344753300869849322785668164530675851613649880402672984245026431051414079773822548169622881601556384053662449491643397004298652538850383217348330420469958713924582876611212232141352093679516497816355805297182048067731551161712400715610016450614561618378640299694067973185707146580933644971208875186038303066448168520573077599597138465439900928744884221255036750410135090545343159490798298065696565780717745076894038579740955804591119664026126923344155076816830015267732454580398426931246655146929365306047992914225490561216629312060317415619596917533385582169400160069696686157221566993920610242062767186909170045948108454006275887960012511469508960681247028462610717756818154408230592539803002137324252228507620503521169681334943656599492580440108113421009296863538201182518842713524289057539314555095383833681291268314600233968342086506923381141908433789620475873946017960544663389351296752300701586473512998783951174590783570249195468775908746891249480766819737540882262001021720284051446006791838521516040073695995613702387439531641677840530439232590189110260903664711957441154495311261799845698369883628087509501884511608514885106822506958608665879685475767988811959528840331358312074321937559997176917811613638364885275845178893003677717430415439613543236797369678756604506067920624610676579797135046622207073316607757299237475082627545674413337841286460758210962534108294937474844492507476127255761863444201478284594719860732377921239776605930656929930783738630129517553965935929131981384601864862731768940342953059571079459654794180135551686672988242386855670364616589116218089461557269973651611336312074530512641865877434156419501721748079736031005487224281153997715537460700539741420952682742572825819634728302592915205569081064733423299578481275996590940433536256583554976732358805916973025203087264152471563088238429846754808444732447846264866793718333061326950460179626495659993597554837697610481587461701420836054270192139159389842300232983506678798233227770701268671142451185949874868501984945950092058613285135998428651406223942665553678051496782157363051414195800854972217919351017751555445264559399950197896462712856432139526863880195480588955762292132402270869107477413848732572366873291270793751492732830360864222936637197286990489557391987158314976786844734712355712367684184055582986469285537221598329859342476222350643206291775115343343837574544895908210430537818831998689563055560771827228708598481951966036307632773010125419376342200339579887610702458579581366321115947973803916530733083850486641126548721201764353477288448378702806298240725809724876337198139184839451384811094239702281591698765248740257722529766239678121056166781625507288725484360207619042336660673696525536172718262424814657911739584213622197453424774483236271116081136867689363600636222059561782558045793257144788057347012587930129121071478376555398612354045840037037566605022268462293111268749952961573263268351990211017761297604456600835578258752271205921656380808017671900464120915775979740102415531700290799995317517809856957668663497975213563706273684260787778335884751716581456120843055843813600693198244340127446723603032556096655730444258426226945170543642404211416453328045992551298813999935616649213472323675764021909256517919270118988796339840112362918947615210584782424387971760154012013299717790472122754693766318769005192651344823779610608014789321932355558796455730214844994823168823018171592705149531874147381112464500726825182062989840898497359404313312610125215184375290052874860351125948661129087659495390158686366139915579943223339194973045614620289801556814070598550081843334898602554638960418844428066423762350031213986476143967083056871009498946573994822907210805652068396187803844993801438659710124571977491333769977679832429871411542841429994957619316561415238035533448926768955322065255866965050493939077257475769325819025512024756215008888832420369058975288133695670774267540359794886848764137704234804336846570303942354895315996812275256977551448252020506424011518396230358476504824533975301430583313639534247447599033446642069226742416326923315995235273366795052956949655430450767463343006016911178469049940928610095253418808661311113013094384663605067509101399588605113458779853839653333055864165671247168357281253283791036902728108956745497347791209141001734560746858069301429785864501485257887482703705060238975480090590112825426892453571252904770569474994566269422479811964635216805919247389477377304083700616329077482467824240267792165350284070304324353135123438384947231023732377025847491196625735116793108380121015921040514183849797981224522386863820865689650672344075982782660101342339852101171949723509221463448130142753882670682957340872732254899513674303686404509863704338747436994581887888340330119114687850954546456716119214639048198800017893675837720885463388085709663304371644140613573550179006779050214155030030506830974812064397636931941331586211362647331876397402634287424349786837022623772318820584990395425874395834749386967392975039096795499254840284440376541618846184352119217711668818574448404969718879633927807658170339456212096184871298143800694668572214587142641730300542414323079025792103288991652514501130615930336582814654893367350783017780228275834516051894807715547581250219956310735071999627490303531694843907984219794264275325067064774889985994102549114827528713435021345316251235150337233367666809522755955226813709022203959808912552609255720303618652523603251095103473772652949195926437809135184082763966357113749716225717724849394103597697185718789890979644068765990904515370180944020423498401830274365251735298741049418122736551908304991942651265486923584989599536019887480497317600821027008697105900962521102390766909153136488088558171060867900286514746079331918412354820392929064051514449901828788400420177740684064249773980666885381976952929634816951033676967556260054385011177486043691963359415216129988232797862052860809318463552588285435726016018144638737257272327484282848823221325764561847046421362014179556944058960727985777859722483724352654187712399814663082836254049240255285560446973500378187217372861692278067715622450674057973777901528800895477888396675816892091037264566996856100892961413363954691750364241482078747778682217403442662889586558543057413560327239992455919699328540851949425925788563158397054262048400209501490656360648622965263479573593549539724245894399296648249495399129093659270583474538769559093405430136472734396546146628244994053848684240534729933683018821399689330742559530792404604942719070479009933174734111969038828561976012834264447273916303992408975536280485830211312130049727970374302521539212619916749271349697446140035160030177022858798056783771803407337384288908577546782405752753881820355616117305545478639323063883954704403201649669303710176505025824609973850876752118539155820677959600759254193555008531973975249772717970606183462974411036721755046720932963059963054980904226887489764260680095006909902955030908543750541586838562772146832942736930869753298880617790877147132195962960226045262310432263508055614453483733493675776048536425067722084160228774604993826332260688132594625180690189717319637115449014966058854433523925956857549344983603069792456012103395570931518778250190428234630213590830956409842695106659365827252437644262146771094339048863780729453730322511039506866358086793918238777507445255959752053952757191867824343653658601928014200888065636451451341958436113795638071241686396037706883755102685719598855663644878643834508128571096340320061149440964748285104628867951842050948394272884182767659518205342621286244240477851922356229171360636666792238200445802243657788861386777862502916387087234019483212423719450741444203995307264928250126840319650468858538918289171371806917391978177526537909850609031969795654844168529094925318317752383811865918026285527899252399333035959898375436808285193066255872943997148804229635133693730245542073957707818082791006005533742010509551430618982175897793058865935800472821768980732947362411186817934688182692564500377825996101121167778262211809173583357891399430508476466203896653834641224007274455856670380737255697515461544065863323551441914943804232431053021632484888577420692755177611747179208423484874881268223217733095852975692010485591894678480166976176549131149181546066297096918225244378836544212136231915790624638730516300430362050975154391444999496413771644815868609884123786819019166113953981144272738546281306265617609310088017190995828005529171574595975550764917813266278412135570493183716042658179485588732239890543423447834975924012805158174133783902884350118716113308150259390129254439553368263876955939886439516856639378123886340827965962483728901280336532427640019814950422273546926243928469050044573085373846326049899194326291894729937690628837141202339644451276491417418477906431903721670798811900568976757575459610339323355647617672860614733034668757869176307210055614624913782250180729027058839405239759138126992021916287863238597400728515897546972581750610193102049217666138514037988916259678823488668509734062286926074764753117880991322093391288208257453696108096146076859972851129232807106709883453898677179917864224420786235236344460568837262050116237072847222863859520035850272586951176553097611947806732276172029276490784100425205926181074776753980117268622711219700145923034098726955989066267160350698620777023810223019603553994680779616613965266067218168636281436046638767174348206734878264389195297738048008353797497487803211500824720507176637318035780253111880745157319234593098929227252428118652460059829168059950086349626720375411677958580897906682923788490660563626363318816459997908233103296571406839730665077435955692229395890585586802686764490478104914239154885411819063505017167855029217131156597774492610000125390850355812502111447052775575533869527065369077600815564408046977452082509357965068224745235919925707803976424201499386633684718403001148318535244866397135459019571453012448147257861087063555884570856096769589277697506212143159822001917079674991009549088246546251953838946700556657448227733780322584635838339142825742289239447354032323892736092202405332008862621493265216786968432363279582815373276203139180001254325512771500973529633728656822177419175645334260302856615803248089741600571630898596546903870941747149917511110948892078318210421543303308966176990914631336333864372904916522127010609482458265870475515397375162397356357722161472212368178891247653946218973308192187876111638683715849251785144072641305349748293645444019602776348190481423564858400078471359797428800969799781698058342231638999657174411351512312735129629568767951112061503594743942840406821525152439410291003313956266839704297629107281814348907489158940284378706690570687326426040935722762960670657107809697636848484754856767794608127965528881448281124139527282767292334161818653501334574142872634227630904419367090076779624136886122610375425972146508665489814325126938250286934171800063329925729053945247574217635512618038422726445044196339710912174857792851624732145012003953389405484437874686756704090048854351253207075325913532492752069019608065352495408435866486459957989869259213032082993872001137193637842479327512117608655539837898279007168101455199440168452094647414431192102978839992877297206890679679983855611565385046444071126490237367666425206691132684689226371783444435721138204006801127482635509121343660081483880120360389681538914154056498951914352715911710431850914684060918126566608848103461659986497340614985779635423598372468303074671004434986420408655656588787146476368626783990090961649128120486280158164284453187711715169262459450106812702601547262310735206053181703354040302908066200121897960471986138174330261175576402370417399177708181954621478315755393323034159508596007737296448494242960957782862477514417878930041787239990671018909175323248431500823503888636446697463812138792887552874967208943908210894853958674805132838704947661635287028446100986012451050533718109892638872395022003416007333366026766530422974733650668605301043663751419812264061660605127306907178705792313415228208221871764720103167691534462696917704030988132282135504502889155706727662354087628368582031312914455673970846444141280402153371816374273136524544487697567501652421961049384330809319607017001436314137660733096118823659818726636868328281440026120923537255209067690707464721000967046678230648301836600454355019857848215324206089481187860790069512702176555003970347945558661778065406413143648055088896429344945069015813421860152058735210543192801391109203783600905476153454252966919752077219291691032373684775473739053975322124403185847977859335343999350244231510048571026508166765477083616877348490497130657993998014630349588131650131931674166708936281074413064881774255881481860402751258742054669908992262443733518245733407951718029372912383073874203406553645550275871549454292983171822007139407316818787628406644772635991409163121113429779102213763974969622505033074969688612875051187726307244251271912599474659130301537128066153021428068760643468562324447586119946508460365973376937561670319800107583649562955862827240099447269453614187715876795837972600469561787713225081086485930830423341851701618608112971246996454745478866039467551517424904802472145178589210360694226216134069184282481227153521138639400538496922158386595900486307187415786135700822272191835394294917142134179935490164744099300990028903656015547050583100454043499348743861763297321656815463005837590693935751182915691669205970800821188652023726964312189619557458699359430764672928382106092616139932489812964450960771087459859119768607443508995754977623371105753251805246855484751372431928122735326277373841855708926241365027441867042188513604910590982767450902659992055798582282866621259003487575186129879943750288589264605640542460128561888073689991078681529267385889324165552609799292559110490631534334870656129446489467036279083282022191690051795907767842220958378126846661696384573992969366698651353478493344239998132495047052229475763839575064000095325831412072713715509375337507533549720256356627172345028285739490139889601579281595415250549070921035063112380206666732256634817294346903596803165430141846002136098412434758718311488124941667212537487562325421736492170114958507481551816191877946114518043179783580639128226554113906153935463347864642146795885375043492579795282723777751641719483506745406267768392415574849351980088578405735494237286882789647814898520091594939299286334275058459640815252518683977526912446934121670555327732754262719683448751772891905823522140219338693980842730281922181310926496379901947405965913486945470826233289061409693205625184703180570334497260168275985460482471528777503096987230120448632401675069362472719656402337032775237474357886772245204940077675996338924606198280230880459236860763729234121352730493275737705168918221233995016546461756739744036852725042804220227185326856215789273571262268021331611228463461011307915478629972956760908777284529582993399250946151157671909794400791829635510788184152813933392048944613223707458325699385360713573161852705710886938481199094821827497153739557351807029261861588261454874181767731842860871266795108617518289861690928594600377868809883768450703137568543521560272419788411366229812122285890892702755445378938886224971959512942792612274443664533089373681329017288353329387625424758818959432917918686072060473665060924687692728529752068256035867210980116698731185855923626909852511150234840349904360618071132089275110420677208723198436203034244165417278607041746882190060333297712835995549734772691134645625406034381641989613306744310326449355934169931243745182788994452235392710177242007476562342942495782622398929320326221711447853548743842940982141339676599908344561042187044873205182698447999319935380905910651934219544787653005854696313074863278232409715258856619841586334032214617110921110069850083995689527088067031535207746181262915030098888206043985011078299757025611534618195363155716535698090497174297661900436230931945553891072817673498681131600189066200812432610655394670175353013841472713899170283798900505624289875266887308690787476693330652553197200367826235197073651795370019788520820387061000602869983374657311222936381221321961612748852820157210944288351374411474267091059728212647067716393227887415078139265487825687229837194553594035216281240831877982564873641413567254124199604334418630033787290063228156336384627359040629633262491866035810080125380388599669789674432675731354467302564273446150951852738770248455888166796473803764874821393050566841138027984967590160206192519416704342351486032710722397941114303830843639695676385330294493043734256735184700554311884173046975986404924204925974892747410512961355874122389798999247947915949370478330566948624119328909158979223035378227902394925198591736163104663927936756015834785225203712031379469102662488559754286602616100665697935954523771082003292662328175365260374754920427325949420002693860635576330493938238949854052311589868565933054269143460939676124567507732053445952878338118355586697075280988603573921917197331468765743071900627301151612608309987694162042393018326066031980773208402257758128696061807135826649531936431061572980904417915387144181089232790544412294495473253973291149117540448460006471172005305232219510905978011925429363344084134338131218788346570115570993948430817898629678294349610518948119318052483217890393244402597584929036453113534741337248368093535435561283206460330016551635133486031016818244681948310357948824338084769009617221082977383188410652510221374916095910054704357226068142504210884742062624348515057816879334513279084298302513356734692967418092057787380610068075246248453889805732421448775734462823399638198201421835485892583019057531511228811273502590931546222157364108794251282971670963117240413042420535899139425010478334165783026393525781245895606364715970033100473708469915181417316322844704313135143921997679106768170021566101758556104328487119524522338623835909434867576416007257709635668424986667798825462601972422026235833439521599577015642925789100483686567342815545813945608233970680534685089930775692316368089933971255820821380732354712534284958048265717189572031264723975316540709045405149531146952784662756856374851036611896129924763578663462378858638131231009861611661686655859793073745157577275828528211073951885654478956590639469888362379511294174284933319193041959096868550463547396389865945323962447819456597378670294931166708703387416111635265869863583016572739940619849859272132356718984644491856562139415293371071108980470251105447660508335018767304558310769104766136887812943454604070180179200347230731632892870392691128010557071114446550771049231880508457894416016652396120853480041109610604351945593754826089872652593987309996123038655068293222366320122111691601696925793824494409005219983624485442302564029064696229678244617910079173207870210574102568944667433810504249051319672743433551254027595933419942543925298890013637148231625883394907800279914198754836474011166556740430821127879524315261570294996526577427211172787297566827136625998767241687038058236722456435684706204184438432688856146086974348242799454851581023112156221241466085307653917536842479814431494316630680284774665332784404886279544045952890546909726494566126844212386141399194194950453838582042022362668697557937386669182459488864200010210433956820374770891087344612616267636280450424776908857610685121425569600199504239270529493249105897774714933178861682259664158804871747305994361159486665628146944809826106822445669414262593807270063208441517865982038120162818686088510066451572154958780450687327150317255184618511306308555657066937405236933652447452853562881086058707035713387898734967816387384143180176796369268553320052681675721127686315267991763484224791317682324248515143782569643381481198789743415043774252454395157534872078246607344898132513448869540096582765397031526993429872787278581253877552096218110202968000141494812203163617399301335528562482478566844256888905917319950378026755006863015612763423223003767922023641027141750391549880743131126292528187931133495484385957452854031989886639675396230049879581602727329589385012778268517780441624853378807907779098672361362884041778720856231130255133379342963198642021438353990107523913252940577719438620949364879720550840933771789527079072053181807062373140164582825894334115272231207034781059093360616163402090028896492548186124232768945687386883632690049328616075274524291534949329261724037936977714858351485002663334803992642390150353862968031119214791873076509693605712010691051173772537998257372872775938915628231744494017509718825348248250846898209215140260127672517497710641635389165967843088989920856392215319278057448177052674475352502573927819937545991349839268024085319982114064752314967264084530298117873331915249026939660711256227166380636372478322415187734416076461367825870783932411012122516373050485029477549194114019463631664146402597934318459428500313718385651596993242767345936180984385492925502005916854188476237896118625870771777493882874123451033715537441075168160483033359255211805315748139742872932880597405444155336071097497153607373715459441761077451678183190443468138770780367417361086300062475754288363228307629991550812257680042600501874256597462118717757082353266135379632920742166882633638023594237584076081756170411067690303829169344166783969058888185392821513336170819194422777307005113886618500508104548013428274799696186631265598604890917045774156683651663959154788800585788672871246813509282913165797919604696204108173573789278412460809721469048976161434427450816020433255215760414568838530289971539812003654664390514090171494491232697197954001629191442517485603844527886139291796822482279682326542813142019322661593770767815807065347386431197244880470664243480503018294432432398665321035813938680731434265042331060987888822194403084928322663399140906901694932201058274958900188563230982473306505015929459821332669698894263911355050043720164751020235705936292164344954125266073480520107777727688084537612428605442136949797132685072355480481714519222676210961330965402030971529585456567572478637025553844367916858872623172802118301561435564282144396453742850272154357865642615459831330036960114567929653702961174114894609377504269389037893438318953707085235188990893637088548084721176767661829922047165432288398228383866164208798530420498254720547308687257218006490194941933139057685015994678860464345830094189601067279633682543242989349834229658728147914153953578057694552487124068078652836500215441376960878075838802916387795914123747039610823348261577273590946392015604509936103032915483497842786998912162963139342632701919621613383588818646501498932378800932020252898390677930687546390024892751749375956915868432114567317474899363004434176499553755599863755460487558170991035758656463804824196367998281049327866155877716694853726452545726062888895404697648819800572206710044945183776451568665339694822035009925163815156498648890645183214273156762885038302139618620667512653145352088146380156207148094833784712994479332104082404701595975333453239710254457910733990288803582352811270731135834976722681834779079536814285782971401334974021331333497141704305651653138067996154672348094199690963692303521267710260879421285652439968011963719345673370542752551643494448192138096325199427338966405027859451264844929634295527784526824396640109363990023327184561266780123097979362674532430471434582327282082105445991419602001662604576403190662755988395257697798650492709472069073153114258229966644360652724799436346348586177220682985393192454693106101867424418736190914799935511154483302781825618127979980207200288891223611124249285094943618559738843868962333053960702124509515328172079648050901178006005792709343230214653535120079016914299758077553104189536048005699299263821816629690185086530983987040090346266384282941709024076852718717299136991751391957897656376760431778671240613619523605958196973103323130232500139232236026342566533539122221317752645031693977404516188576109335532200851341914448914287609341431863782149677361808801669563704186236357395177208696859060553312365805141303771886958451848721089016716123859560889880633078144040860406478710686375747081385828312343335088769546856078137050158148964506294125184468056696829418024208045381301808254237310468695168502010778003307171482902625629833727945007115253738489255044645576284617063103348856868390139145418378778151411996320289583654116339473392845744403490406491930654543073220074399976125943551224487209108093589247922774432127552172504014680071522290244799537080581093415475251306080515452441759501948381080422668356841930182976531505896025948501528501534316458248394116485129001729620363264028164062944285568855659081418879058109703503588181403296058015742107849541018586207546601541326469178853386419296797219764401788431336689966351154024234863130504193960937665555448906117880951552862335143009297198068126561868204139639197080659726668333874600269967334460837046562925420168635739694699490264196434604107572116491654348651329740189414741396856680387199681806248760515207717508981142798279029362941477764049774398790063155246695430495269294895077469093500339313116187156782339067296774356909725337288999357548384253119740956520405583173880687611702357707595362329428984822809045048513217244975463261732273178045598305197971197732937966261514475888346330008300387750058890802005190267929827883739493561662661311539691462713288111471006037260873968977824375255830439697972050200507832947340226586799109961009556751345047581289373553132756777451431638565528245885691351580621034482306076074826055628198054675433704501172612807603996971269376513714145635878493429880373500218317843099297538803976485342349500496803166510052339519996246118470803367738174278603447111069275938583177395517954538933403903267719887773678112915825666759089889483217499458872404746424794027500776438191820952767860294382905129115321215506255743471402017602915090636241688833569975681015310467713285271352519884963079115238825072378440976738164821757446398686349825183382900488366780154049980526259202699467997222824267734368760474647961266068015237242581627711148279542019846040724947538008736022792410746640603255743211783885136576628530085499697775958661960124249691631948857758762751184307951887861294929136184823089824342514213143198544395414237370240858508439716986379460663303092760212398649070471206673706541514997107618446282385492307773512518029234822886273435731905855920504731784000193942020589460220052292849131110602613998246823517554024025063492640731694944523969304163510267643399615820384966262568434275843391729258949945623489892156455917615005514895673959493963889092015318944072159276900672768579266305721658581812881254895589929542873099562354775462419815119231725865236825388327130003629000531467796529093940429501222550126783960025780479780207882073320967515129138532425714329514434460463286222115356871541069083706133345677211243652399678854729462201986344940596693654481458021493319509989439497760362950425134860360108815628752302127956522212336448801534944711937400241415747911611776777188296360033511500560367755072985514761063699165928450683400753406182725748659297032057559161811250134507492556506758471471353772927350050852768519162037647360499133981927159586371439401351103038657816318811519484598949717323150358657652520180298667778959108129801891451666043857315965522086690024639574280602012642974917321989583752503466099880320436046405434468795399193266055035478858073193026326317919413102787677860803587539113064765866440311955795929393174322587018005394731484380786973920628922413866016705790656274522074445865253367044515133407540136102820248282194135470574516508021382880882535183811906757800467891671020402418561379570928947579385681319480950840436240364860235772592233868454464175094668572714812474000134118737659992577042119179465216210819296695778908299087397100607597124274977265369404851504374686085428170826170851169662771867272898727692623804434198491165802120340897396726901175799194285277295923605640361605314535566766784004533467093988983330907716685224334230781166010149033305877825482927068731536050884233544838992120356874418212988374439930632258905571702506621306585828483407737032314721830174695490395456636815037593716463318762699898123402644919376228285303549143403647004095560399338900801132316882606260250516633348465736549488469207449213276985104684515108340456863050328807000630569411478951777223066967705009766808941714191463480924658236162338028790560501941141097536563141905789172816908180163845184690267912447683475458925538298101983215831188683862143375019901183985761004810608160575815665411553891110269627575583169539055376071643997314331740167893066539992399808364250489220435491601199043422932412304608355688631823862707227376439219820102645654677724135861043614110157625667146906577715160276899767828592835172587655771178912801096627121382240987739262192929642840030684910159009096229426927811222317331854335578293642154781026342092450348282125389988551336536295560039293074029276666878908324471338812938891978777574915514733440529015279306935872806072191443070108373694656260671036591260506210804811590101106961670153821352577066096314287665788639502938752091691968656921794265300822721146479179838045988091817446178871957378010064306647047744772264925892297102741999941256404272360047554524210055789955887728565277856048017636084443605051360714318933913403690075870081022559322694640793920988563944443695731042774597357336402918496611668000670678569973068530170744593847085703516063878440011535101584455202137743877971881821693974861739811787318875502418124488771643197601321007834426888928666855506498508155311534936776175667167585673900222023234702916848611281379246892995270005883586186317160815932657802779577605577811802530214472111620883199577525009180466431667665784534666179340996291083421349571725094515266085864093324998721632051923978996692915396482154450648678460095359285984339306714149206460783561340744982691409484536202738077312677127701401275916834433967452358847635408024721362440345667011896070856773520704278265115124646451735984750860876901133230022771885200696463739967668999819260923873591967257335869646214891845597993051771189728454722115871638476803814462300889342321409110816142701429823000324158651487645432810040153004700301587241454486688094086668210412841687827393015015494328124573240454523474720638821513971377708417470540434151953310018450745981016342373827783926097394845649217462212769008830456497903749169235734322719994019791441088473159635936471457371924334498901040077783681456003543911266534641451295932410346341086335195074402835146652089485270925862942099145957836951255019495204974206159913194132080760834829427978165001333423744572418236505766394110496311834615917350290389267635492220802028347490101752619645435579677625479784963626378026795411087728194623349608779361656976969672034401692477819473461126822295208520392098111165302122432419666372498731386579408169039064518385376663300213100937873707244255420487037777460242263523531865231716231726095116751404447233047687023930057876108980526617840268375339890292064116154769575373218126680660880111162364810473893409581978416099082465636878738841138631235731683460332777058750963132002186953018012399009908593746698425549458732566454581051351760579502732951109311821353591987675808097003999387680836136261565567939237850550601171331927944385507468126468217023624737352684632074854000254213819704574928568741683950373816255791139357977016449679569109035541031517276019650691139398461896766509733481675159413312671449648301666171434509412083614473660145181854598872756630508485297006053947181468493790828484035909139193201265710062783129796345180688723839835351663525612737663057093709936789273769261651954773899969427616081003735252127784856791787361073186614704736806229440736022839825881383726720613615355246520873539502171416074531883075729439783001696424733298384785720373170855799652462815972298909086447154935610349600004325574785209263949765097182841312712681644591680057474421112472251273170681502468031907043133664892437482965655183847022411843047126349839621371339834374568206212807746439921883116556105071695129986734295294478821473966800088587726028140676666178272674003250068863646315502702011928547303196233631252877831543960677471728635128921866675971454770255174261657343077876279505815854398514620532377393232846820820564061385870816540024072968251358168742306720590661859748379526523515301702113979486773004207368379593725120503842905769572043888088018706568830662418000952532434436333574272382815382255704430360816940149869220484980557595250666940979382618575108456693571376642934519636094978229240287345506103166668419605506266791765966351367359267200765777321433150476301457435400256728367366113998106956635394510311544637248468117976121914266233380832373641587610300655058555080185055027776035381622559921730597595639509638167541668002912535397026158716201883255710818536303488597787173823196392712439633394951850132019054434650662872673778866461576916399585906098292307057387250424264201876685487699252403013821693500448043408801786035712318315622166163914259201211974714205047704715463185053136320154964112625237198972308732844771091385568754110650532448981868314241657244450332734930345177531927111349129779130077197986214383618416181398351321325594150235010381345785938926647490738906441889323935690483120688077268484151457822701761178874765822824083996908964916693829274364592999762208981981901627460238378935809235138236985007304557611257960685408373469971510594788021992922310343248053694483805558733918470950187657813789653542067939881140826572853556091631276811607771014233899695369940540198254081254386525585540370766912998730565603170013626288286684927984729131416960525739457707308031132018891153804124070740864511001995731116106402836633353938486206268900201987627591051939564556863484178164087370326789155576836005682772713733368493385792275940032769124253887455597349790695184770093926882081381460892870122625441499480194674940840206883383520547494033094292543518730472818750798076632917386753351890430209743482650774906709341273278992919647958811078301582472243055088791870886315895300844138619978883776791493108587753755650172931998830625815163142550752080905547184155548894582793779341591778448189689389217632447859389817281137346107422859375136453965427926666132264920832096236838824784329179636109925344725611635849869367112051585292014393846548305862885857931514030167679088848669990423245037884228567746859127394131611008803148105457827738826315321342279695007905503933236673092984039557396828368877944926687969272556281993748160287631297976310607040397579289257881862267902266651596317344227444010555399677931523078878938526120200745886887976633468717317842985294000533920027689626380403238925629473945492406455500592101298302591674199689876402146379801926059222023410665942082783380666125075189343739180190709774995747207780321783173368686158051431252541908696395965104386842740565442325575707528601638886711989375182712897276551578449324902218633930366982444288306013458620037110663447915315742145303112147609932797287539896834936684894626259220552830536030615162364050175333163525380247291799463257308185215528215052631170551498390136862308112435218961933550456176784799430658569757822103838671355236646038974639335968960392501010667741420117352258377789783488223617940421395632453099847242429141812830580656511787804682681245909258315495395124061247374451185082044756297420207819896790680126740806054539980351784569545190936261789316159761487447136961432277041132530400499017501228453633892283038093425461740029141514218598491803827395202397907974140461525092457617980717079354660071259908257768812529612057932848567504432334231502381754985897306271468261458668678844775650847694896329778266549028027804881415753323677152086284476372703584185012125233007069835473686154937919284187190656761154075397337310877394448758465548332904156612973183982334967891575984756819529495820890299418138767050263578521811904898699031176170141632012224308300666287623688154599468879941307668367990084183831635724147833119701538065545378930515615248816828398718466800651697385976932698999612106825574255815858401191621185625516864388845610530409197852492412621083034429058737798304616756768718263341166846394513242484748389190860365404003762010823653745969688201600828613955426097507095072058008508243421515656282046053394862811663489748491892728005795624230443612774079820459808158704299376676274859759249999650811141693479290848321266521776255657931339646905204841991402808750196283715334922835971019321320496170603818407370980919688112732168825933886371846967219727513139335286693284546250550647666392867991580871914697219857780947746496427277621432688918383486904140605427222672434415239008809271287667617370024877838765808128694933902261450010566742343257789811841861415565356543659630993999607758923975213853259714283926494036117635159739198147042303113294411615872013565421447707914075501564976910565758450713577967176771099054102695570055833527166140857567802919248637903217207924608544212550959585324298463772962741035280465068144340997007287242463854742889953726451161923281726843023166075051880188366388242682569931759999141397804869812825572591580869947619509261911309409222634100201228106080790016195680246252081363825480194525990479674882840083908618702483169104836299666134753749976411634060857903868181396720750019993571484012529796877250131052531914614496208540754332969660273323525040824494273679356989279544881706704941260553385933782432213905325703577310088073505752581947970353881450521566678571033980437941091584476971081101622282117688234933543572551960663447523962669769964175221290488049039024308672564334995920093758952751535434577241374087227211382399994412262131932790739202102619885062416218581328719426116670309814825601904196118006077758573195354626103975407198712815611595340204932146274285694744159898378157465289257139428829660685428455858942549233312748188662076975194191522483468632131633526093766182887287746418200015342272814279315133382204121290542664288377372267233148172603113183437556913939494400143447573499714028219820730436460403698451775304466613544487612784841207545534861392765113938595876116550732003776465594000859807239342376588485732642720169025411959363700675781675963189541967637693260647693186795031820323702038240659235418191255694951264928830419662257195288381690957926337590612163862355394027480460844061989401318447494155082866389878575536563891744650830889722732840518163402211235716933568133721158763959651669689750591183087243254965257281749388703385948884253052710644118037427231348250686934305923927753424755057604376225988763366058615640885167713860807723583727209850353846474533246679593613414785931435164787377733470892621241977969904896547555499138633150632222423168991414851355147648626209165525134747468632777435445088354577178316891423472838945057623301788148727169810901331702093958008283591788990818964945730045278699303949236609174210297089494167098762598302796314371678299474264421223373289216159806641333603846634215125574079017179417242927337605711092205164618089214075695735914095453934372625061282538698642009763453820046339894298492325253554734945413734461243762806876307012131870072155593143623255368624420884070844037971408969519544809103566877559296763635905043204239645258676127126765843115115050761152273257285210697536037971389440225263465432225131523904151501863204843140435443571003991413658061381198227803048962583730190827527259361441715623978963085376008118064551559670343931709507752022775117378215642443783230930948384899738646123442892329248890225531233856552743650798313116510473624523280557422411310520925179654737372941893126786281184890756483650532284920891510521557221854307179104343893041207276482150133153149279239684226054260669011968604652812291094405798257092146903631394435747576621872419131021096007123930467027223255632939619819292901059568199401126312138690552597377093260849996328819258623538591075532017221626342870881915247612964318862511527022256153890765910633438102867222995916001219332311925455356163888990415876951724747039903102968703146050744154965409173084030670623932054363068939617746749172255025948597399591093689267638727523377213844247678329928048381216790008535616964296171629914183439214416052315221956372264830877818152810432051545048870161427091460853940776852298405284762089327478155824721946114974549448063136965368202342458841072877094075882240248867099486750298819098794296554003003878628406731252886951116878646613486409865155248862092837082378063289005318302588073433719037039557934779577083891462067425146755041929173328395169205855003417483176192960500560520923455442312594054847226590053183365945376931322849164461873579103258493795654918978258093650573132387794494619804913332383508057337113893252449543551839067327130206785605509773619441492290801836136224219599636225200265003898065849982178102570768725039681617388378496235616915864237800940232595209408187912960890582207876106949685373411834095244261836509737349106238086884995257366651562814399107034310763637388193306015445443852400664110623805419236790147919126668234219552685835240527402548063979651783742069038696855805709983775288861708793173753711612025782412872184040233001412072687602538366705669340551167438539874514041932792716077966371564187183998307303051482563359257573785613639021343416515351246370154231289924720592600663969034136708525926741921612509124137032281409043413151000969019422294643016049440486842125441778594647209158304861059625085938255520531172400958894162455972022309497726148100209044809215209446420686139098599169976926429095155775672677375307331140614514577915372525795566474252425949961381398046994609718255126185593730249492768702484675277321813627915346917290387296865195217580351196464422540544153549006085548242472300697651513232117717981294584939929888977273997741559458191380949888155506998108937392727370978693834914642802506640621053073259659684059935058726981934907931050514301814221861309702866312429844240047306814915752231955181110774318819273513934331740213395628451750779780070828945126829521179095677943671305800494162483288180466150192957695827778650318092947773177440294818286948841873382777968855743206657509256955210144624077799939761525830420032125785051844355234269968382124822889459214171835566905945097962105563164090882237615820249261050168158413868084560755458030345288186163602775432856096810414296973972992594850957877718526486963132487988839002678394076541479461665895745116076304445581947793536957978998753602345553313122183782734078331046128010201425823264647682647747943196485265162748158897108476460932180810458060416415132301771015550278670431281750592985594555923297620013568503249123803502414231355387896668752056576199184239240083372411622803566493627971541284503515390723254900383650091099217120397824303398638512110978088748758006665064280189017158844007044866118062309976289453321214306105615622857612346146828552820994150933719188883417334372003857498742568939008754516225546765818605987743539203233454170620557637477009970210281089703855947172209644500440722135372191059462153423918586704191872230625941923424389484272223480587603981322794776709455280671033946224570487587069020177772921286093092915137411539984944270481530530575005798551937673204514640941453820262423696579404528437097637520352954721583184195785453230402280950598084050071773055828999275370974750904126088595437989049304688176989864603772496084727938945502139139557935235871039450393524828958904600163622629193582186411558604677038841337500675711068958989904403566699648416179731988900396001117595281562953059727645293804753004455061126118015287820732327708760281426655434878475624991140578621567299824281982573951761528714695105113871599881217541530805306432415677085240691129261053128075801810205066646818995407636661097860299232341619658576786080415107449056017203150315260167912369786852546289333879888999208042958203739013239953508697931277211939578084928394158477586895641670803413339586789815575211508741002457795155942040942170376883297721751041346338037736226322016353803654485381714830941974637778466101535559013151984806430523739844038681252904750417406723873690016241216715876961530249060893205038756868483851976812165978577349892052746779395762846991412641492652269049131677788578261327793596894977038288317954186368434543456721967092800303782735600968523487050407229474285350009465614574523619086911650469725543230251131878525311929053266583331770273285401304608639103615742199806210129523807489119893465105657807436068046439377207201421617712821053229441133701318281929724729079110624080082312062721740917014201399595500173368178888002284629342198524629171092516267511664376024596500480778938647675493433514348596651339271985243060576204299215868780367561684424892134740288004822352790429905286903532704020832666903641877641474673757646843917243902779131533133386547551813779652602363738275061344225918295731669612571021289388244559458326211607484012990921331396221520871944727885744414282116210142527232989533783981958894144621099768212510773208853732198608332032040312303262160096930134556867221988100400285326911847767604087674314209965600062083763785286891555113131512641512236765072459068170053467007678699243860019195929798616386381277320001737924921219139305216823009460257109945668266895598937585405711768464533236030329821146596340951583949476537040553671614245975580032732734401442408079114326033074090137213715106334774249997411944140944006553671632846546898687659661931790023813529000621953273489948387782206190093209872562284692476470013796546348464125956159127121475751807160059453186080493057944386517190763060617071019023401746504010339902813096774376189118934752125429001049032839327407646611142651814444370620116174477374905633401685239375305966389915629227953142541371156004947435185113899737860772165337320305753951750744311255999159204145086129038508348354400701122217980023643778264456205269707932671636610091246800571396928761912496428191188668763012965715769297788978219831772390883711504758438937454614120192850371596201067582586525226253997949865738251511745788891628751699373230529070714839138833822376368760321756567849211587237088150668397382692402134246502469517677520953878827758979131042665864589069025816695961882330798763668248624889585462110130391310986810878900693026049133338572852361094527013129869045376904279502938796918022290267638046975147016686023618802540614686618507852815899131176317521016271726569609371084527683978292199860982824836722017747329983053390880030071193055801763431310707452322965359876051120750298521221622334178947227068209569483901649252809794036955606336444097279713598482604939399528580477247398612949216703019912954915360769596871647660094205069362195753303055927873919869131203495410575171029638642579803736943886663521342644132943379747097673218211947841071501732665253014033284424926683254812923960584520869909104284198357073746225046460933380525879259323863987891685531146847213429263027673077630855183059891945335119050506926276364747864493329275627885333064181125130436534086235497618018980965743494526888295927451268373815910164977208668946214760878098041988301302710245084075684322354434869508321940693807008970826451179208898454861759405136264056200494302074898658156957646786967384151258884269586622652382468302682244919641179242521734834045305667466922446867151893994402939965680549954052210434354577069152902759656356633626119731432484130872242804921511426085540569823411497876392018901857804213029719057200708830125835360442673586496727404959221334290961103789261301898374161736575056992652975179561547273868071930899694789273158280404008097794673087702643602985937724613407205110017131611228403563560207044517941256745370336675498022520439488208286587437050603320606882006265049996588171572828821074449301110562839225760517944330743874270834338162701215661897662109050352020144127827360121935157944833930640913079007616637009022730264834534969050773898962901754811326269060914584346364120775838710853927080696773279623972777521921798586833473799473646803520900357955485634026888922604955602997109386276486201102467296432988731170847308382036236791095519109103798045383966659933126434582973712245119642306034734402073297442373350818283089583537179545358322910170929585527277323043281103832621917085744983084401709605078564447902632832174393072804091422454256123546414932007070912998480547854703171415763294489172965494247550015497928294949123995060961793285087537315222178134101325597536635843446717452322691783420835183858921756192610524730836661955927800681244818286505911134792716181936102055063778786527426969725371730206568777627832770632010464825405657140977404197747388708942858794342422443083925638750503313714421460385841978378046248310457950596831995755498203203081905705904025374809689369700851589380084372431790760897157530712863015177371350377407818430527723857998130334562308948263394162597764710395546255100609885564301520489157136671136803407681011610748059859695087394533260947043081648287284804664958497583025710524913813023461821919172536742329337645420057957980339026360708285013882065870650859318738273992995318475110014485491006014156657046696366133709973876791007132946066797748256397525645525947562718729909782023392374673970718767593265012238385353438829970512973019531432386515175104924799935995845851595483968787395231638501994181704393764081307180959433120605815475924356015092437551568383237037705546676734834332553489313339493358156984702151168635462663727406933112653601452677252589958989656121719036056889592633962132331507664972952760042055619294284086536070084722585009522497892246674466336611853167341110227768985933733927218983488603807944764938630812351135943323476661330160287116805783057284335440747523448201440227758812278489782628214704180009202389566101863885587401465600326847246623576509752688582191525869213053068362465132220930202631185054788942659341390455341894042187565604419102276431097275264325056978248519718000633982790261860892844801826434227981014006556623471345121535638838959505982707579643177147457511113333957553467846720470118816682979357486916102373674583078094750688962455105839239739797279991375235325001337172259851155380058419561507149062506044143404590500944462365453058397276358693620468071538958172160371634620294581449321838634084961193651616350793532624591413821035079083660661972436186768786596442533553833011060353674748485844510402271360812224994165712638106760419163746357520270794983725585530876264255799227594953871383965936179563821147019516018003595864718260496481461511011625725039595116160689723244572580092599263890389770957166890745745070209758391137812209391699353797743839655152843187088159887714476371068745191587521220600924742764591291115461951671873137733187233857524959436599169095460104950958279510745330617697380786374712041408278641152068863880750854855788026240071581007967757379852883760962499714247721844916505150987769241015130088495384519435075814637256964013186372119962565475850692033876435653711115959134728987546808913069741237263492280000142802750752720552017080796621444227772048952735117115360133972533650142892864006128591980482514199066536575579682567831023689740907428344830902125936807320471916097169158912436236337104782725685971757471036742034636323208342358915201791459942594978583537405149886685222016478225810584743867756690694665815323480107180275824015718371542596213884850098640571986815815611436274628726846700143286934291862747925177828604965909957570586161218203064373362611435343527012638857313289335122137834575321652468968664204653133971330618485677857607123903588572632021664851403501429127900867975877300445685369369720620605346310269798171581734171971314668174208329937152708544599450199382668378996611319605605959136894603125954470429138348434184945013405961365730869003782541141038170970473196489090314277785961651876383443738578302338305716082343292628482256917757661181856668760699809650867103320754623501849349130523525165996909751183821189941447028720063061162404521267546049559616086522057193896213935335507491446820304885457112200596362870710287576379888455582105150135180143757863889042784629660334760665639167300849551203854857587842971954934636404878891266577929904022194612546866302856538681478904394785061854740216744693729447364973487055402329945465945188948335384422061310374187294115928868588354923322265397835826660117375849145530461924418704648397295189980639824423352072410713691888136553546467982967974287440054335889496862685714841238640073706161291958248359748615063981338175802614829129477160624052536159389224198321159016280219399078215275611141880963963883199285364892606931779539081405784820922027003339687101561589366440143049528208903358693631237707760111334991510193291496078610480529994489762191152655333392679834050168615055682982334425036623253512297404534182474066965941162289035025185641923428983786847033081963809900858968340267930808093922246623557541276348688341569141013992040180229210641166583203241930452826974588676881821503851524232905732041580623922514155255345783501190188793589282741017707579763293199910623449921380083461152113393395355432570342561743972909515569444749066193116095242055914793127028533335183395399492552816624490679918758628168442785388439248121427943647251304190212470357503179376445206906391984067804991505396761747005351329559936220057763161827745416686816961806086721686309405462396012218625451948691260870292266212977525460292819106078606976955284254106323153415723533001524859842577532663062731844166543211827963252514463471710413069496388906422993621941407104953827364317602000294193822356091726107374238381822308965126833644174750009625552016630821997681792835724452371793483585732547529850954679811924142745433097360445564958854723549405666131139919349402777717424660977315497318801722932449815277898129486692602514085687175287538274726684594880505939445334540634562618715883054706876793727092611906160841267867999893055190134677989956810802216731532382479590884900778424349453350463331684697625439673120540586382483153315712130651676538676310008969198951132551915027609055211880360383631515711895414054565074351233211302244955804901271769178226742507792320030669963393708141819384143111366378765146839528330936370638561650661464080188240220242137122418717285945362175816122714052740711298003938261392263019673490215679834133934939866528039070870937863083402750656601672617577352869543311138852712903423504285329172803304620646094249912728943167723240849654594021417920163584841615377787259274913751633972624575834921943065228978761727436916177207597400797506313379206967150886622040067828974879693667409599088907248367952249964429777155102968016205032121110071849951117486583782561641956187223747053976029743903078700513820125159739384458567092154548756878860498289257576822442858877491515520494835502216611788515641180910213969923480410977142968366027215490025021081606040735325249219888695157676683612863987396720140372620165444791071603310345026520548379349705800569569878233655278420740136940751252307626169929082782926764203084050269817694344902200004521468269453016874734588308194805833901797931901208688359701389255485285165772532859172251351895055241582632791146771685256526695553897357306907538392029491696062011520763114563704802525023624595536064030684539473090653604795071511788617248087146711242518283152529726138321380737568674525516141283031925193174332155969854064939175913897705979401401933984660615322677613416585691178146897121229723230157091133258217409632446606699755915173211271029960810687599010739390902252359874235645507630111067012137130332129488531554390768271066125501804724882773559027193332986197591504360099417132510507211942746447024731691840032722409272409279252895762041543790987804418162670180107749360805441986111068248596034204946333015813545278939221942451538834606112047461413610483452720660676172737054252315637335202852318915873182129129582189214205817211425536666907046334576239254273102434281862219570491391684925277565132864091505776324755330007339349268136620029258466201275443097869603750338336834582950201029102531338516651390972354142974877722898182003428217396830838473105032741419374840558493518365541370488880538969186845575559374309289954246827717653286440278913213714588638742743215504762024088501819053669889496069442154637975982157251386887197358794232114206258069862137689319286551157966045681064161536135235656997394912508437139499294593217912566463655378419605122788620950930336782191857929740664752935166811609086071328258030818953464520666827124143953121637969790005385980558432172787456257299709049463901004876508754917365653678343762149018520693077035920440721996941511478904794770470381088591223154052389387545177927587890721935466540397810829546451208314042489710521782541699739844976307298924717304018553216557048352730520995667331471754327556794991279060192411324668949438787490478110445573209464023858603426115080267607599507076570415797964672488696280990770510690972288762938168530905681867673814083116379739216095459195207425824188201891040294805504819404247194514326176881932561519478665838411531375750020650816384086947297959080132259947477984973921592229429209624740582428184479108304717647166647746157236610628259683409235127426821958548176802888086144036746524368841220499299958035987080958246707474834215603108896841774506577915016319535943199140853025848476003424703437966339559514271813777672785456420927774237491576318353863413643219069461836620933006604608399067704974591612893702488707686601251278685191623864205460213351487098951960284427423583100025075900022869474411441526795813694373231701723585734226524885541257476780466713795068456664876010207811934279462475803861285156647548519024112844256724645391060885779058890012321971522142099886117538891276842875913176179855756990876188456636919840094874232356364686992421859786167524342033069005088243176759732254092483295284384797560992923999929167625197116185805350988357401980402965066508238199841084563978615844579939904523374370351353240336380786675558382795746856657890937200175671725170498006124601967789578997720803237126157088151210408347501032633803604661729812045444914639718041972644593481046160071345231829676273047493464893530518242332975067742645274573675238464739044640339595660536625979027811567342687027507563677689983545292421790923906647919548192697318357982485003013735661902716003670413769453271384166213685774076878086780059640544598016318897540073059886337009232056968700300193766345874897011980530108749775289901319497201879508713222766422395471005743040840558827462534094417079817439046145429446563808368031135125129768032866832002676752910368309285345892042718431529741893704038948340436851509368922778178652727518601190378220377922951062132198487439955623185972235266120248032420389808814957453961493462659452473651805643760710977867859223132973590510403374290733126024494656205037109157052565148750659564972389517476037027557004748190572733220509803219959329583277012373456000414059041087965389132735834796014037969241892798917924724656454863436223837964073191556813726980804952537418381745895626357686770727002689933543825119946729629801558503989722786094677357357017908146437113571371262182753351061271662016726073906092933972617950220885994494042276180177691480121928874615840345589466865626151941586435098739779080426502740305492659423427548698173006423338281512886107763929715073179139414404170238919477254211103824366843507746446544939722376460896754578038180457743419837257784922175676749549615902211027736113938142429520881813763332274339406780664028958720085675618438804440151034532969967987427725299438565394128315469375935421819725107412712545934434546187679037448476744644554295247202000282734271175898555343916667438455867640392351490172488176814033665524782633145718091463960224495499307680699048647691483251122595997792698482309350159910476398832922722412115124727720528524261802168683011837337899923708810869369776083368145832084209303840519383081947131326542813053656055931948288874994266575088753345882465304812416368479055485360978511107487353831435146441241053270972198775194248568747063407490893006664837451734705809293965667442029316140867105451046522869808368625803428963521531188549927245360232557219275885491964559689585785446294770514412543058538444915421102909430307640347761955402813180910793999732993847480220172766328365493564669081891828299994052532070582231126703537933339648479932105785023406038932950133979766868165657705253991926788783129694129809405417263821634620305668297658122864003555323185083795489755321155145134297325761372976722569560874674100754409667440159289088339882125787166429075417804817929417491778396213372669784220278380620215758482095892042341976520574879066880768974748843717402453441251421031648452751446327816071271344316556003143468640926988631816725081924446872477721917216707700685723016484259270271146394797223209896812724632039282292572082922246295000521332459493944707863148016406501860705514617671228059462060736533951747042101534037669224464881393257320751862618831797735119681844816737605193649730827850227419225082982014859854838188391151762191607954037215067274655263890368518414668347172616435111774990198222833275373379783366838964093454228658482277673737012238549497675837013633347112479039005555322082776872767337447504832690395310726447514810812649118626399128558710161497701451434318238009719126127883158887097573179770245127672742247810099625135513762878635952788907476400663521574726659685178466865087353902881335836856066425842678151121306291165605445134928945683831082412320736828688496621869989638623390494488224980895989157973376194691900058849607698984421219756475494025070253458282942232091807833370918393770733778517539086345257197965123493042590170100105534455013045821212407245198208222343813078396382945496317030747670733236394852143227727581233081854421409138014615860408207286865533679901599556692901032891033442658052941356658902222660981288361151757986502294979743159143858920957694016520288524063368126445827920819215302332293084816856979788829585554203026251328459613649663631482823397355576576427452071089047852667896059440159668791200495185702969080006280470509740523292951595508135018613276434391887510351773897364114229648729103876837770725522372533526122916277899854641292796161516496136152153726848109334361437872093937011171921131059660753623175987521553508961024221856896934206332715402019263628906449882494047605955705283302791399555539687444613067384385232458704904219002022834136028354754989747899074226723783321949766263253185219305076908637724001613232971353873480856583079853111583750844433785680307560805101603578648595294184112008583615901627265795128397316840329629910064106557769320606374197366345022732871116164937762495199485892917301252363213872833112081110079097904475297053710732754358968102044350125276376298024472300560155089621955090225394210442937977810885706710934304833552233591976778417478377365624385605532923408667243937172533615501415882456674129424427477407629894745723515670567312572539501982345541588528850889985034844604245784612171291410750630629203976939207332222732486487275015050914811469021453886697128263429850237269968271424521248597112870854349375897544534999093231178527960277884794846786236922515239424966173073348899665815839725419987640801823796813606602620741313104499013304036900826040454775326290236211731200667729640789767546383865432860678914981702761342052026872004128979201111911655342511602587016662615367442157118713645139414938267292454294869595398558677492043647367744778933493480172733232110676169282369472353992984292242621046357507319760892166185576233762261417569149859641087161523155679116737474402033479427408545905153404082428499460164011102323057164456526753110680395456927606802261288432524817929449275166325542449427942644431833079160509671671202975741832810546933180686473518027895298257879431381749669727611244332491916369120791565315466842638327667859171419420927416735249614454313388595249693058707286722510442751128726132100657612402317862776176967201746274832024672560761518561401730226986763838959328561705405787090920261675803848142807473384739396754107675834459932757445258786939127794158867252256569246119502451416276288029914118718161809736925586357949183904302390356458899413653063787108288289251950816171784387801158388475084905747024343291321812839881565627416657592691959367930801857347922636108868713024347537028621852971734432070902906527117549274346457217599242758519734605334739519683838511288397048827028652785545731255695338379472569552334260620041886346833525520565560931136881522937517599839084357779058810942446064290827103068857898894929001071950772050324823558597726698596976762023174443303770565585686729460015612244227124756232239122921700231482880949828026700335106305609925538825221926701911296221284399460598931712872979826964895000347299006058265704695608477225943032854409443096817450181708790697531992776066814594482623133129233370717734414094340904529542926262986607714827056057893696641250634949206761784613594903913349128194621966679010791033520011877304022231483124511576708416215048510838335117445466639250982181480330439508503446311654245148537160011482039626421304777493753330735418328214067175040339738043973352302151151670013935402473353352739731675146882399072148424192532369186031755162234019350411526533862442581182978537021175497048203500817006886641041430570320317210674580433234379299419187538696580255255411156186936611611731811455937247672402861207375390624856274522823620304374506584906676632812984023488375195824897966404894193915896294243673548736715286743341039845652360813602521374924098771952350532775940801698012149556885741129262764567023664158827119725545580153600567008838602680105251342805652543245121294359564355958831161568482843528815839516201349343652345226607644800039459784104981208587533820887742208534185918639619763489616075388745725612644727939466523644853593666293919534300992804549735301861172811231013399983435069662731323172042527603424325347100257541175967249085930017118658331535658189488694711065829157604551999370319331335995592847321168363054434873217467185883963585518332919443209747894679630535882201666788298547691979070404690743826407702063798648561479015023194897609032705007442322998963935088210462404691547760170903468694327640198905690963461349395654663737750960811868728473188105211716501777182669891321659938552199364628712958135720434414097333859948809131659617941504101843348045305281665276563151538495410497663073516993501338541653332041833150310819856563523957223499111016557052526445193084813829695951076686575590359216032666253638586899624608069498836744462707005406020871975586681652920701497965919213580602257550261583369616783650063515962777065317788364611494322346904595781729482397685052873661290724700247687087939198382443727977246295548099318924332736803988612250265606082018181989831251999650602754687208243892585381171431798909583055002460077185682664000435372663717708173437949926509472321371597559945522616579449528933302159568865665767596427364563311814176192730403035166211561138470854864532618459760615445970693170277183286350365095052386215064681958339544485563130651193438590583564312875466602839246046101934562327311681883970283183346116556042950677145726347026422660993439062612626142625413004540560286167698818504122878940582473310508531637183935114451884239990822153429580168312028405686589600795130879193636032921328857871162910134578527309072295521231830961355571159374314690777773673500094205982339069696334043230229851514854871827676300135567852812395801826780239664616970558385839410478971187722272886838345028705180319095602624755852398165640832715613955911146055787980804321123125912774115782236669355841086199638868725825017589104913381263745354990158648878445777513167895996015074886851254595996776516813185526818117910355675363913284635186834739321242858258833158989750636225620628725474897602846138978668564798771211317125184240680668610877515475604517928201857353076152844504640148938379139102953203542019928808512279183056812848825571174408398485342141530683454654579161974540531777705175145915425607329178264400882122168918043388715726598639322722972023393099821033287146968756876535751202713553696731988817871954456374167532286628340418323903807954574347240616237893617844563659406863498488569568252836409955043161443840849738360547133757351370517200287054900674135941551678121139349333169932939700796790900428086049258403113002483560642131323333484237503844790068573579808082771795560935033537912818494015993629175445363492143266383169356033369718315729200866897632141737468347971652781221682905025290509209941601083280726075812584397593855633646762217339299221644027947967830132458660446939292540375960888872412070123348584360041302567733686566605377472406980516810815009875159273421966441711852164798394576954285442674271007866308540430703716596821385196860077774522642982646727585440250499945112925338936180226616078592129019181932180845659068991963463419692369841104063127440140132136219706642851604341496370251797033394039415148197619329110873291143974509508577286842865243859419214099572378778064596821017318966900891389040817561017906603464604590143745049111885650089521532585366200224905515084313287445801617208171173614189103270789522496065986787720185231908647432707728020381124292096926911937632690959414566435410638754089553792902782967367251309900641720450370604680119417876137446045233468973137939985884739563367325103177693903534042513563274533184657920603332170520846177333074178673012091949720791180741356514137240199423816656454882730314636840254369435513943396125074736445612538540898061173462485034963424785728984019199685675885747931164092034202994875924507714083284411853614587458037097023465012249535734109591835234232142148172656454737402051020311722628884909962525711788108677573006494343763355025433736991861474803592284497137332585222159395662036092444671843612144374885262139117711130390842939010821706521138302838856233268829890775550670831407285905833622429766453452114688960836397217235343988467897571570366579478715948610491987229304553541407345047650395501438147550575697086529837592587881934528828127710288781542460066924269522102232756507381753377305914113911890718771131114089551941823109301856482092922357287656629657716105519111070987288651383532790856238272624262826576647714001631462797424226683328390609066183237288154542346643928357389210250089882957832139482381179622645673089778278026170684637862600823129747079884900087927922879727225908789335208264651122610977199678695194459989115542128112932423773868619268663070092656502774385673704660127908421381481702869701575261588486379269588722696289708796113932092875333605964090512372226724022780533814962108868848561917865963625846374868854957971896414771206595012951664299121341371894230194006573193533905932439187774066313797806730527384064464152661584021487182708592974992086184464334965480230547225104279915864967597554255516695752765260638325670558630714846816858870181055930357941643942745226385239346163544626220783971717725102961077878254743644693789473366655688134189595657871172597627258760929081781204098121113601641552353095512907588689129698045878124547400475415336078464312864279096194945048531909195006417882295782407670894193260768483654870271681414215436959855231739152456038250147500706296457202633108967726058130645077331166772483097519593412332516038535504224522187678023352257551034556041966553296191348137702605650867453233851837813274554754238971006579212594469757310582974916242463693696788413696925506721036702759256955305202229547102544447419608610899949063494445326139504277088160931493641114470962017759657561889997235560997371380939252018360740716468515746098912087369744566906767358078097795138353204876254302394496469088184742813688476414600005074808249831464140502083690294599404120077820312212487901284102128042929808959513770264075956184820822585226248054846642771668585781100861971636578608960720078563077425049153073633723345821695001385532511707523286693260447314358763800250700121546248377803765346972697263512343792349598660771148559501971044943202747403916291928055944364208119272743650255689325476257634031745133928466243840692710351924726889749573963611351733081981913718024353845105842005687198618494976543011146864571874946433350881473061429478526223600835516224874819958132353393068177913709046265922648028649405414642433159149685270365027876660906277864798215037181233222405338006468315115741650549141254930601240500599327160718386023956747913674369155615437728006274273697383771979589745639610943995591131488498015244460969917793486447652365769318019846416719548631885756648213939478873934463049382039111185547223295566125989945054647265936861767199886131979299533566224749509490663757562267659319491378210021034070617063257540028593856271609014607710682611764823507884513259999225042200744237973069580327538127757241834785759100472331459920880580421929657520199020511009971244522674924805635741448384748374034736330578894940464738099096201557508794048275108257248704547149868278578537238597484612569382478202122619680233910738266766249255816392208246889532268682490001990951725156103227814067500539593792080123591607387512976996553037172145446430344027543362359027068855771724503324559701751537453950293760732503860878327658104049488713076734091473556101004254797916499363139120808582717698394971890884467181342309741894329522273707379045252992537704149100852171642190244543959895826442752930800441852683426438917099432505717125717218171740199413440548331451623309514265098295918283223465018271410554862998640467225632993735843171653606727938231366614702397603478629629749979510046067094227463138735767534885517549319534937443949965538289997282761826800611942203545313895838414535705212073317230327063514937782873481430149550487522799728269697746412801386909500792310813095142300828717323482281462447928940651473458497836110229479915360174775962394999690269132988253270248349470959209523912963693273856871434869571917522633918026541578556645815210973013427713442898053186837841013358890492284908975976767985577124268643164673680559187443867175910342786707596956382235724167658343054143009673176800502991556979721049877179121477817482923706762690263257542126271509939177824376823607959635676763352442439164632138447335130711178683688555256089356932288870752197998445878675655813710026170660974474289592404700925519311469193302799861723177938580944702949942734747289854918351376814060784433083576977344970182018608373101601787252678316915612250457796751426214135331304984841466708863582632095809348622805558835925091529286280396244684682621229549657707396230691910225883346392275043811198991262943479654861345783789467980049963249880563996508233961015175097776890990719001110298230108835377842572709400567451669096648865488046361552148188362393466583915147438743853724282372769804658600645065364013736303576196978286169398360566365761431034395402178446685484026138401376192503833890609532856017268202385732523717249211574452247131630133724597285759302912350755615158823647010379103461942049865267515004317822154585629732391494239927631293933267266207430271557267436406590336728393738041533907983938475557598823230676782226698739237024394244982692865854592451457124011393896818375073696543081950427422129739885684795393163841124072804380785237822773185039516882596306461727498770413994634435358396601760226424107264034017309226573041576968630265855296945931953636475617312959622468310837595636827892759533032784978321817391667368861810718922778057601209806771847014652400185503412479109462088625696700731749243147453477609846675176700692712807296748262214941108111359839335876153152402355722304758207710663976027693133437955118887785948616968046061503081097356127603072980643261962800696463188546848867332562670064356328284959562176760406739514940664289505273337135922269751493555069999229223831603554300296197831035544174341697667481343558270779571482307440644959591677659660533127063739184921314821932257027792462798683962070582043293257368402167348717799469168941114640549439381501446433673318037165967064224400168336324624941691127878731888240345544844059901931645229159233185030060415638743631431937434861314605351891951361422571037376822858906929671205088695616955221611493473561862249262112884080286990646411956639992189440036262447448240641305493424692122570009882862730342587505468630437244491179745598759001311034958416774987075240036098986134522687786682539291286754497463979265100601009374303821137056362060598701101399659080020142307696693115696146396615488270733832764705787684780481275064476652437380007102407811474950285625103958851137517279741594337536515956282341540661864854484439643037412328751165009847529164147879190537524824453231873033505803138199314331515016000354876731846780725082475288999404253641124482486452034272954046027912709744085080895191429371454530641941057720346475261231752248527269687903860618632388902999031195743077427437284583827711253993726451622897081852102998809610000987147994055341089552109830948652231663659247363010765965853737561720518369210988126222638856093716625373163696550820417787442403226265287434886281791672306951294140226884068065352724521579703660627122159264054514809437694706779127078779668870852628143674382764189969159820723770021946428162686313325854292821706397352528765746482182629785831443626003162533572231868772374186019439056218746127938932740302233233093376970591308506941343063358922809719253276944686372042326629441269943203364394250738622078786459890941489743044781538367749039009159348160476357241055886896230672198076274449630335477478009131033373909464660183538843186178818974910722200196459395455266463843331618382112174461494088681670513372725684697796251505850958182422601743049267474248742792388028922508764537518112785074546495754049658926035607241011863968223314446790640168610697464454832398431959296976900180214933309003294446954791032083353506524284663318235709776254123048278019477932921447293135915941405985179236810652019211855335663692929813706884313971784382296549944090411500789502382723788254543558561195854279249564521692560988899140302302927588224968885070493695943109483526749438272581964388400733276252616366247131372120889605877765721469323015272598425829732288334193378487939131472950444837026583240832496892034765391945161329036753744745852053903275646740791843618366072269491007859727504359634792774103356261890646548773062483937788317401250867885862409824674834302488775625277150811470348215706571147356938574631875871285818715146330986209594258116574734816099305987612781066146725976153303688272481381491921646875269289507999745147677740659242732549851025234866125582674136681960050088206837823463967331648141189797086428922082235038118530670579731530085958223839796585339138513062680515299033998110415175649704104256106201965467620847305549491535019925969588945962659193417511748253450412957903979477883399427095640421918592675261228348183218858938805705105237355353716867748992732863620452148135112845503785182568400935482728168225545166811217579783979763909229490986501701608530745989431360015669858613040880314574357528099371953706908310066204436627059602429830668927272370957713653392839089795817592233094328537389397974434190346553090913352732554793797559909817318542559729035251793365334862016454579360289537645917072351082955822878899768732490549452147579755007989846561609071179613732751312728706330571055735522439483368779469300615124850630350955514309549882527874041816505829492645536492471273403575346997210388998823409231172688234863672851268093825904216974238881073280705482719923624416425644534057391600832176862660330992618936099475971831909339389781830040309249892947581104022922634032241357748389092280096540119225513866490562828995570604305390054884455058722046673541808195009853297517674708929608296397670048980577519084814363669052850414187662799011945200862781983472244276349078317958523063749814181093377174050951516059047797766825520178995244120103948706016268974259508507298559176008488182445093082290843864427894338210448127213665588768502306466793449155752241419196533492237068999804143333883438633368709940347562063527699180715810836503648237085004610932396486912984973927251288387824835193300892775046329343810227428553914326331162570814270807516047181869181913443039728413813901379060583947020207044115870215209305892520801960524100064759941799505317599202593890169621133254192608458239779704261643822893076764769337685392782778063971544408192484385975787092887093613715541151348557733276634102076203103029606893748955092731304936142881765472463347921819613329099837084579362057427808884879294906804343691957067102725192240589043227266424884496738705578059601971396127553202159620141972357018579233202458384039192299499817861346639649902945058364517690539396901352736048787675334749848000802519526165551451589177959938774209688084253730819927814812652035005075972435435564783426231206237495529579478629780196508372301986706664708831526382095449736130730742766771267053019737683369817839767820860603905105048237168616810882078220358754630163280446333042774276238260858264968414730997599284033295008837655767046242383752411821144452451784884127322625617011461535736137343387591700490486089557346401783047285932809010622677654495730866401739430755287705972980039317981851410256663418276885904825552887187679990427048478963981918007030178110920158491445689542447911539192809167365336049487407189517863563296435721767052492271078716408375165419728441315943192791530383030850172246504040844321595703456207864552982636927026712503497846048921527930040825402968345958715592990687974361947672743596342145553896779943270178291792734645748592876448901852588996916304537004088984418444358043156356918817666652530044181513687967444773434336520750628109536984667865062572399080411006167859924274143736198500394555618728587262438420793445035750787787488877525817031387728527806263223565108079361118298181898891975580614518152705703185441612381919753563854500853964058220351035439911824321510508401751829692886914250006686698316190740674599959730367150517398756466620047479171456458534495791392697601278259020381619256172262451447558399491349278400812827360462899420081406651132532141015429890549143825911298813646631561552062016885811297927778183852216794748615304805214803417591281092852927572396280339430469439250819185967762478073689503069264675824434823787461688830688500126700111991789635232982770866247809503243864922356326070566019010713912659051105192252467049674989130771051687739236792065406732253495873746893725528801444688688199279552274856984202649788101016450264619150673165800244091979350894749145859347502164315447351536512512531458458194363018551069925717394707812035705679915584977947927044640756955515565600608189502340060817086022566216931797970137429744441473623539271771964004208696111065542402333343658651633584577406354577676453254097388265344906645762088402188537233624091578620891154243214845667256577070485154955646864686111564064025431610325904081913722135009237794523976999656823443711086642184985370670972359787562300902247979709612851979414377468681267685776154632054658836226905722829089564934035576913483705515939692712478228163555481456321548643856475789599818976728328677033215148910778140734739527149071073159953908313045860856738065644024063063209465028462282303259195529854737943132216023121296140357853630061595819108445535942143492506924717273467702220568770464163787546198440904520875228055920983231075189624465175070626938280811680714596191486404323544201745651481363189463588888886944846925636954173097528964811025755928212417521348291045476147801232600651054170541586574244004747973387864861429505883584760754586444797795647293676284222438271920318954116663092370247889945907587189486123829972609125994010749374079908223971198924202526052955056964094198306876207623608122666440134804386211475121453415958913790509717560903975329082475714271694626108895759137557358122576205725347258110522587956465395253654668807948985763010611696426814905053386198781360473989156189852281533322927556551643204713889841361382672273314275069262796828315145968976864703471022326424722786002400255833214047948626408704909393918168528677006490862330714806991790969818230474356893305708404702065906222588501549880571983069743371162135684047838162260506028505307129170871477360543450339572226806417402735954807502780424391558873096337915738641418768771869171572454563374322081742404810286354437176644579201606243782451671993556438445447794599558073538939358648764861989073110263436471133857354498792381693281768541888294454620686927249750636262593489842757168811732710939934434438758938151318977155390213176372130815041413597404978347336193212936343294384587343344115848105694131671980442325243201871329970527293214183312006073343684436232871436174114220232722551146065216904371602305543450740587617431886938800329301166485042040118502590799269324908759303370795407511908368938287507292778873636607417069067415438089684960771559790417756016480151719357473543830868210982020897482354300199611796313470561646174651390831471485792975085431002260177876832677225438689443657041962702297917505364866895714248863278171108001131589524271032733659826210118829058944170037334240047287459125255669134831402695067460710801446677322918502622805895433021164654064391880567509097677432132855485789804631214944850304717342162881982533126741084777442698222578839499178058188855569025401968498331580926182519504685052564326448433754946187189827210125449850649164888849079506702877702309975433497886226038924392787317169417109854612412710930774559696391000390163544609160058022425664940589386504156767897620663948106254480201946026557949446367057745336532099113014143054169822289579850771089771145134465236947911341974339062897739794756380554756762781748534773874947808717715498595243936133140856536219665548791274233914483520715641040698642429233944057077619884705293032467487045033456681776434478529714951905842360945809717410719875755069613283889130602145502124927374577692557265488335844336998463936256656952998500217690974615128994280844319005409262547870957240517195520862900109678777447108337886463206041479987693617120454613918510800237767974517706930377118114576373508408016067171101013353667486291034462900761271213038761844947443391245330494869070689789878164322401023500095833241535528873479519118298274006315894503219250601398569666400323968959284737176862686005469846830312007051369274201734220831877615172700211785776974907026207504838424213347914195142507041356952418651929639823440788317065688857958324129319223213567131549445644897706763605529785508849318842208175747067666713901601334395073170768917941894633406697425238463676959552382888555832660962183045785742325789307621221603748011292085404014578784054772014992158383540343279758020523363242148619631808060800854153900087109612511559133446809115350390164207669390735810047754378224280376476589060605398575898115409849471996855812951273553860192912685208810000829601382069692367712657229795780878190090207900452570969129962510576449594341907373266921561692522847557695058066153313388968720606533785232805079079992095126532845179867086140524315231628290612257209429962787205821857622518316099014266532728385584438139115344885126847905280993589962414302808121419539201804586687909777387240877514495489368119083567004213692834804252256757322120554599207037954885087404939920721074357612735677985363749517354156357818488645771947230504331005261482770322374089470159223365799249484634021615706711279756656773625713899344411916487905764085734005840247152006887676399269062720928998183797930146486130300791261678656566613791275519025466965259389525671831154080418004254912501313065284505346380172776403529296317844609680632627648187903230488623049595681152009263325602112411652797228977129389724277268586332907874984327780973877507464304504785562673547197277268853207375085213502050834149937578151755459960806463288047474780417957012554612414353643776556666665519454300232056674737839088518325576608973328773368951755363324998463098277684506044826189433627916648980446777053600677866885641166588147738994482019621026270096892832701260541828456682200709654751276225867585106935986666268380999666209193534357470792526667608018208783927569008044817403225145229930509633998678914659949203877120487163570015135170741922123767221475467464883347969008468104034400487117245575559772118792530001778659801659404517908126824004598157868722923174637047337304883419585572114800967721575850962532102518013354234785643181996935616916000079873698523931455048903906944405389374640700376446930524306932726898495353857419007034632252203444967800237711631906704250443000950430101519908488924422066964319421228868324837670072969904683305790866826695356320048788566335292760356152343493192993018701850047356576164400104491649556849760823255886581715300382256623267518528582745620809872225066151395555005165223977537869369635702714387273227516664350102642385204537752909879028148796429866267453076232764295549748961433108705316154495727242093780904838912460059640603208642892727960109733071629852151912649651067000572825666549702454839298900103931309288424580622432250545765224248167576293386793200037232626740717628958563154463998836765721900091001018338226013034014401194452454984985134552450201125230524202877790628382948545008647578822617797455509283168478887296327273793553993243220930837592753815807190052244263749303379259068451174831195185529166494060250976325827413296133400393866116345967330385269632856503698040347442055877929008888325744270202213396675395448324305410452279836445906777130704934809230431418510993123407602677029958098687039119574580217550411020343221534107528162845650195961771318231449815709393313728873932985978129039164399541576454211201497448580696163655428533988854165994209093459025571055506030152510709115362389608425071579610066732466885072362638559925506127342989565487249137871529195255183179486055451320780725989588061369578836334509452974378047237004315397648449093790358659716771648488642520558769781064553367838662567547703261133702339284514706805260340953173572717812511015846503859018998187796124600838908521521328198654388174330158575712914951462134204897205472688613311236280814443996839783898440955749876715510813832672519513952117232100088182259543167306557881434980094146387099085456322232603480819150489824000071774629134234621391490476243868504604422874301311781342114432798465950882803650534935894224563459925386237121687466127409367414945726674133318790833727324242146085805262613117801122683673555056599121687414354329340649085344399716930038686982735274547278150541779660107033177963927431790755879531970941082690555154558286538809709672903657569007611675631233868757072213930650145834831748176770056648361309312407686304034276229594814668621979758619498843794379549740592976635114961236776681532138566543253571664557480461999421835474360359919026379673050916181379706000072301902536945336545328856488186224591563960727371332942038549403855324168689481840897809826353018041108821630980511935482840274880709292422447030497617388029658737477512253615386290067088591831822009877323158968346486909187134569332102955291738702479026000896073014745728254377044622955984523679516114868181662068860638030552945791131732641440995388278928876424999466959412934166882039927469955252967515006624623707500287098486267600219050212545065720807879159731494891941102659958480173787485329825243120313241051108062585848001673751955680851624069114656182720877235412140023627122600545746386868208122128205341353716668780762399459329171745254795460037917934192923839842195626208043879628943235893078843980955599568333379559759539194084563294462972866120032341501415947557130373893472063125447277578732994414073790540241451765980205180405205724205466247464790152522904853797408661921202854282338553819864628908341108115890373888044359316895258458774551988094131481226753540111466506044437080178551349086605643079145110991750363834557719906578774201262178284119461446777968113045794789294146308202434076774381515726173045748240140953402209685609755048129646361869130144254810418746330006443493163407609006028865633479964281764393460188747208389436985699212846984486522132981921109267716715648599574382330584670238306414077981231668108309287798712407979511521509200253418728350128508793717313787232637625370132749579666701985480692140350478826387576949018818934346297564734417773680935289012393709100643730480049425150088181934436842513763940252039979613815463283368964734650202321417450942527063594185202154940350368703378780500678892742144797359301872580829723972614432781736563542402832598830436392665619732636662937710372382886923493573469740581546174865572533247612453330116611183102246829447010018538277892767430668752316952062770516874764994622854967916685705642865917603904906455854139347393542828474571089522308652270869412391039610010791657857184389768459275782980874023817680991308170365409402186644213094452511294541517457030053619300152867046618312974045232842309988490869927888774860051076298966051375247884572473834813586483777955048560049941036578471200387921601529942435044037637226652950719394738214312179883464223151030336864736900958694856560090182790387358746184734977313591773623234376027202175836296588507916479289090348926510624628761814865055518701575570361388374851558947436943154243708375249135262023622148951316703156812373792636097543972322165255031977470410922862116632335785314747155128712627316032146820466148669677888171997715336108897764444528050345237397963005357657216032665644627210195148884056834162516097228130711469149387415828215682380347932815850288322616087809951496117634193354904216955031761450352548025319987704171428958315919690172726949183639873721744647795168476265562162558205591381727697915838745942059307958969075817658198876025434110672117427230064415842797787981966340966537658028041351128319886265295820858923654313528467829497413574122684316103646285326998778601036734832936868324751268157038600839043669700025425558548084156782586843122737084505624787267265274714049555743146795874292461765326525342428636823642227200987974510012720815402737880830624540035001196660443085061184819848253783532736091452222107983084211815807683330094169992345861577932667983772568236144770604504640285938229702034483293428643958497173939553487719547789015043190694235399210422597534623281821788107807411047973393469310111985445394833171140087335106743151441617539355728768619285856480671453922660883605743164700234144422961003031824730353521486592009002199798525377383427603189225491446708351016732719101735183168777498936654069281532805764386150188748753860323754893468368593347034725511778999476300067679061570387500351025686683106442969074247276547329651609100801338503221654135911417750980574355950839878298947771134917407287818298956924876537979148492785425981074320202427169329461634542790301228345059915208483180413300955521692883349441043034702166749246525165297020662105151239805092399528775891439554472539680298785256127361309448828329790882545581405933753103797657689324127624208633770041442331462913865428501514479037131017268548501868397308327632312944338495698516587895972072599647551217172085109877997837791822834680600384947157852395685023817827147600720744172944761828488218139186050361503714176374391669092303254730228823605960650966564379839934873282154794477896632406003072413515837507635960217435030393700677978439036277812367421927011816285818739997472066973218451152733394940665690147383416167186589781903008303593114940022933944709600854957615668681174347312791788286557839876371787066878110330010791392633949083411919140592653653052826923161695306685137237434900702654865935674779561312431258539134583699897552763502743150193037568736580360417934746813819994128330990826250734348600740431288489530878096355400859227452648326569482687679274110587330682400261317576596409418462592581944638167639539011185592769078242230265011527204880076245796376253319994507633743890787692503851865162631349671539793440578137995198723707352461790691798529406191842797018060515974174801383551176016424715497001284524692682956008375407143197058893058681861980333394761422763443094289483897131518178075652221102018019344761635792722554745233249552705240830488687198634325280550893983369669016025869740050425223286547595698845450873785284476831990933304430405450074192309248229352971114269500619920320817300708911871286179550698939742744723888311637085028440760302345955554486922870553017356814748896928918003130453374856568997173095063330426391717615805809485089642522329755209252425278533213865964023912303752810539232326012186143748291385901039764623644102673740077701360836546844647836443694672150583055496320425026141922163215294857446250816226942026401205177108601698150529735203187344418900809398202504749604611778633359756163238294294900035533285910374412005582050931948177633890730705150394917023890540872331100274907858824006810110077632812979067747471187857867294685479739344969517424558104643116107536620559799281336837775098044393036347335319902622338200579214010177901421913627798254744664072561129333710325019734327712662328262574113193817332290779152678747010969719225946274492650703282111533426330828652879364140482850858613303278395013934211132415569591648895208177223090157824460090450347625015769351714940291268819056821573615528111568456832046601290141739978950944152148417200105485392263445530933579130970128952150405155184332055607530122106889736883199444553110710594976115583437653598309870310584815816516974368839180048947532223763990939392640522525778976434464443421531157684067157433979517275816670169638484923185864734955274613617570173877101776218474397109112682917281574807726719260919524177144301274813816179854557789776264553255699623147295055462470355332558132768129559743816663618977132388884450422741291986729297527831107361419790202089566911017334826041845675502598465839584720059540581898314041345053843069297458496085829567818064196024851343836309249996008752313938365875904346410676603243727023813363397126317533183055738081376237830443002185844712822237097268321473537800925356741141684513565813576669084613723393904442364878154069432050162273579426727460462050301508823496350856489131302735132854916666816998509655370906408983245908943656509229284435382152795670712022690301271118769988329414523951605660770273619066246781882890386219485091187130277423114143610436385995443155903704565955594485935900626880562143251833599838379658914456427294875880893696727019549871076246350223719080502994133998612418309707120561873618745764136128637372220157228182856686204593116090256753886098626204526259289561534918771991960000837698381588154545671348119778614632603973356709355794572824466823535050090504558345093502304180911494784374488896175425711926570132505902095693490851247751133326236489069684527376234416678206046987168293345408841842965303772589033225893972697955023709860775267971515543594161630703821107954210465239203253072403725623791898670749137931336586613406498588653638825424575919116007722061419856737044347446620858099971767641911946082708683674419588376788965911983781480710712636183820847135371373481174720815484851303002050263548130132925980266148390552436616228908806305322866886888694284172531704739644418607540749106493076552351585975566038038999493951116854962071723870650993276839252873307362722113456965616022089959752549895547813485511134743195190013137581830650062075041776404579059713816990115535824803130610388279040519259275665222438931664445742098145718040643525444135198368793128152946600680863555379883847196013538824931236695853048070933917266645817399850880009164380145381641225528768060509794212501570079230796064706965153325502709259727369144707096290662484687020709747781749244554674532707290591546347479921728942468023721839433854784193930229593655153893847812623145700776355087554584494505586111233105628254840223713726402269822768529265925751780317301757683890046267845375134201638120545231834518441608743556786183353746232719988175228880387230085421676846509467687676947177007318494922864762554822462902686056867671635332262118106719019055216929770036181795642702119034312114143336375208197118547688372579468906239623138243288267844205433986071952959032709553413738475683727299882408781789681540621149515422183916945889067894097328935280533421932299931755591402288348899314517233313421110802348499891140443657192811199099505950395632441338687385892810771902938829461051241686094328938270478708618858138164904071204789368460145210811711428939499267960394712320705347346712082367024198160189268530555610404688013168855111529561858300289126298560842196144418190492325823472073044561858438973563230021004833826038354376905658083047386538444579648396609828257980404912993379011665581002892342926538772362243273210353586527037453001878507194139870242804098778670214524881965501727209567977454681882754209247350271876740367976024374873539970961720054082458581572498222866027797185132025210451424631103493640236481507867064664970646885074428880290877079140508107628263601232476344451636666875182626730088830889011473759492724936328785971216743557783265992437658932467116462470058223452173778598318355640580778691294324061136559712638326032295817453585995028034522520797351849247097334131990774543179094149295668229772052637970319720083539693026992734590445470447233112150682568705009801308163615339312513566986901872986744806682329460814690541471529245479265302534897837085680476708235177211274325368431647536948079466087829191074871493496743188364092234944067697046998338783620582608449041842705556315367425623896082880470994019647940433369763023225797298135331757728773883531218958539514584538242367200652087999454916218274659713790775307609581879824598685528066306893105463417726139418749294767038347762126279597998766015570126592309479448259939043455325286362555477244548168266568383037934033543963032895601351036734177904724803141226450403881965528920623097115709451758630484807382874195092946989349629376655867529727070840804837860466020743207496015698537941550199053812371654126371497267969621391980279037130060588328174984727277692166188428451703086069641353260163362276123042869590311722529920407330571304484911595745771259200845942569694442598577553837802933869759505486726997655706794990762708023833870379203490711155891945345546084358444538230291560009052538879347344667428898603397906080139187308631876729729879261906373048489677988737394007998840717390672277613294238785760947495205098141858329314256757416245340518028437836436121304847184732462365592778498684067088358383084343387370360083144447641104120448354316171351191101397849789151153291826325418688254343967459375698634190519624669038012989336412500826023557488260517306938088235526785370483985418681952375075896629003266856239461629346145605839305617294727323622450388626868674440663270615563052715747530402814552669473432417946242299681494764573152375663476481547778730474950099494033927493147424776615371690801259098750156527233569077046838428381525128980729461833242510719969494355837628860090025288562677396176232237320515589931739759132326495388767401430497845575264670401749701098358670218289173467001542495779217618484213558472588853080768967334244289904716886386364884294788140913197939607986312868967379789742913682674011493568495038333048829901345934750330485685150636147128779927402993883687953851511757348560269183532804458524326149326112166120070315334396504804628477695240491394283518896613334137679909158152642938037768604508295234821627329464263690915477520167709380602398211630931675377632995434931446714897742081778327364844674502833444145470930497435547404819240601209480672049020292054439835160596580770719986250252247793376173951327741391315284168012616054320855311489157906943697033743168602012735626825224479847993522867284435122872285212994719239741163710882963184359731783246704946027958618980798986370863827543107599304360064854207499457616516320919893744389353736515624820762505503363500688930384218759015978780291659640900166116829431482978610641990387304573225906248629311317028641423415379002490389751020761164207484774170448710950719506186329602741398153868413809996041270401943870266858582542228628759934386293549277402939433922850075884963766787663125487789850834057989734561500107748780894777601606370288025301736642229730023332347126275019320421002949997453946606776372811151450661503638507715179298727037198216027765167055362882728497184959816577051340808137518538618777431986685089422063815329798041705660526591279531452127642441647684444636791679899635605517966583520826417051979179542495904054209751475339145543496386269400305779075255150848722244885598701114278873902365561333225423315807997522849992735306496555585988482289028881898644053362758265247229436979775253754711514860661088962431478321560553513753407270781546265367820827265573436660901582491258107180544640491774374442796275428532125338794226524469719901636771473123944693726142379158481137520847841229060783423534555912483788614191965863837339033377069847939061953138160442199647801118557676909621604389968483436338703102350374161039800078874834019814726015554916625919597110151282538266750379004237890496244090944780900588249690060452434953600565870331594642831804709621700367929250817479142665501187168212541033434508898433875149478096657944958417022165711623680623220895169004419787491091635647405305207875783092250368802355944649046769052967107187396648333661098183820786629148890616237612465303460147883778832772787721992069767220289077759315718225145159632551309506723518077041673216115840437024532907948464839407469731247447900024433201345899810393638399305077727983548078937822935848839833239050147076831411553898328008312360941798755044290906548806532725900118860463441836795546475131362619028908714592050733769502113397608414741879357313414927527486119337971838175064903689109371848036643624554981327570780630391480640266627997528856725898634121759362205547079329065347565636667900638272686279449239825938608343860813184050286777859900461746567986874001744015890979281694303371277574832443469261136782734315826200386821634504181091155661547758271131448288312733345599749842044066682331710557384045356116848751252424278947513918204296081698588186283948704400112585825900426176964891768051348512342038404763268732692991543081504061874828067821630957674312509871453070861439858606164005804477010088437341312774580217853695679612403641262952709477281740794640100499659286781553754090771724877953604037785407504840021948923812683892354643907045582099400323914955628166954456496293898723813478650577867837509087462311417298686758575905063643318733044980977840775752209591774062024680915029717148468507822993941360328941198820143909792290250265109963644558191872479861780585863497197017778238571156189828203313991212791272256749781609710133716429391215583235135935506065430555628981800621472294226296384770445241184979337386751123624184262442967277157668258227117020055746026072397310294267726320434796536303184471988820575651192914109966235542210783102861469842652070819303362405894387138862921343624334224747678553273054892182822790259511034088470817212842941405568347503873915697672848679786466852047147336705353488929314350127187451493144998645823777040890275228645206165827159929564397040212766041699389703886346199668125680950549899457101364851430479229217992100829392498138753031939801552901103895360744226644868918928802313299065756095395292057658676843502833049315522718040117553896874963296668539063772816190248185084941461819658443109478836001746690664618712572200340824377207191703173574957652187013780793670419650849344928000418636063821563622037273293107841839964231620801165937714046359915743066792275361476721809240704651173632455344863203828141784990111917371808536370964827144543585506311926528400651716321350227837408077037000314961065660084631437372364486049007420590018394968625646625611624727893575809170377830732867012390722013766015284199141548312836309524068075260140195655276209329347388115654598596863495448822339275155522725394842052601130158548047962049214571062186677127651635671530973451436971977177019360296292321049690751020621419907492211286325522709379408899081133129948421442818908835468166734757851595567804133221104075600124955212406363055193028139580298216925868787356485823657906989395199755386443569666963242971516352739660802053994645326147277051972835320175835895623220610824422462639204741057826237490190995399233835843907338501940074515274942820690388364087197931524620794586136212473449719176199493513464830980119294701518325792539275806348127457667821604179045771175797199967168995413594255443761166226637385211351565545255401394471149351515402197266668892070386278756587206697313853603309561305312095428079344333481196683628256791268547252775162521479084913393854390800457181151166177338972746663453207316048018382542618938022963981225254737815694027248949636659605662308249129189118510114829135726529291234234914638810053318181998281777990155079515041815962570911627138649940025399684492498754400871400956760544001991649307015460628158757140347515164130247617651433289940968227592461219963641501297234217244978258472734632988581784886915044678434524158650706256045238819913622291241677785559837413933790668529045888787740213338368649069598458790887200801361706337380020485842986861300893632701911966640355345212783948549311795113547591593602460493994006632673490696904497036305201301376733053294224877201633155737078868882336516460525157000866045963672166748824161187585568363660604779268959436993870766250620320490669335214338723210737292073409400528032077440562900751294951212779470476996840197310751270469352147315286709131439734098766573565720079266417050516235748558756519533575631268418854244328688832719522459795992689364900009561514779723181462322982596362693721462755089847218257536219307987222590238282138796341614602080619162715688230884232737274238809113385821954799926532384075649801746947610802857584860709859989526996028435679932749594550428672046697022897295099561456841693075340344985385325375401056425239568158699822789479356243885845002453211742491530187865116189671005694139700578799281304862710305463165185665396787214985591562180546310374201029736192265904472870320476262021012650076433345775703812570415345648844784879476355446067565040820120085075997478002878892215823772629164721934511953443697176716154441222572474772255717531713897735981714901391267219230637518231000349554207861096212589785426332085608962838156940055836201173078588852976665888735055346453060829488057058873688586117246817685647053857780557141191866742153747514725836181665441543319138902410004806808904741733211342250479389381300694541172449199012008201831768231292060382898292195624994187581528476929916581330284556769984380060778246392626326991650071291042097303215325546600103104866204228652337447177453887847713820981269745258741117716678321085015757397323178406912304790040537424842744577968602396970096986264475272617995815724383703235696132984491840580513743079204264586098638180289076015084230614293287661085150107571668749593712047179918004505210057893307031149575297603986104041717875588373473260812146398844555657436403737809071662116012483395655945640405682737468311788546244399145403111821066193759838951920138245894169206498625738780741933167564314146310329864796201985477953537846157352246992175357612495115337904560489870550707008878896029392447687019944514077136464682609002875244565885654474782161777174328966985291524622824912464040886672294548792148678638261185669823753173757707060772713604083638601615996272665656029660598325563583924152589765198611522405947982441680072858778433093116550775043516199297856656948032266552793624096986649117273697811781928612691236478108320419736730042517596889884716943862240322688293158994471163141778247092656804119389361187055473557168413924472238813361339092397473335483480119122045261814727979616580756660026355164275528712279716840367218195322299742109277927642535590155418945087156919366092285627552142575972677670243947225737931662932857120786768808020277811593875609546154965210528817164880106251680470273615657318620868313386934435477185071596811159277142251854020509590096388100041944569497412081364509115795546430580984859222276815080494047869747767863105374059252662777020882653550045190497938897260930925629679635438552177910329640965214532235281321137942892025934539773032070077091023358809245907764309029302143981791019097128133249094084533547883739403441158910477511734708221928819359061691396089709419424228836470362549769326443600659079609819976229340133707507868806566765779630677214173504296742744076272279075468605336897481676042156666398655523315184857626235866569320506095591558542768947038310589875222975985844806885615156011651665297442689708469714789841581176934922432958877230921476172931670872595070345414713322957364282718549953699745717058181983107720225638778649704584546259703883376926746014579221848569434338807802684374066525105546064857359179077112875018969586597412076499687825156115293453484574368350548246058648194984126141552501805298718795133681573066937577802148189138099828798775682755362646560411519596654237605072926515863775101022774894227181789392655873981541500512084596909597128491449890109829831311278080466341223270376526331594193655643971888245671102093399726258930655860914668088503964166776968917959351440598119883562222301081886857824455837773761114963363533236739351709889701032304130258033356711821324559936766490939684850777570891499691570352903894921152138037775309755241417383847849900810815615338636127955506509861016651668596745989602118450059293375626985793383295954120148893135636361345704922463388213761455983763290624660799890659547281132530894096683932483773890044200505991419288940450127723529713319762296343984503426747836395125416370919892200370842535585112168138163432889308542876492158220785874987016638152514212519983087005497018852855277027189175022719133737994034430639050636937261990957544628835460378562464074385963905520686700041728191531872264417812037658520404366333047994858256926016831435248543295146830321119857137090383736876355792881449707475358435544935293491027657692576289656415500187417820293078977391189092650761562304053421946201069066300558171362498007497308903095826288463634218784474583906877738870853352417619947407879034250550714586831601596700985227703464528256811418962122897774061201670643748318102430571976265163370499994584610414610771701494013708660931798484885269609989670700769440445797797266240509103071687429112486251584356553859469267576484545738624137988431124264117256420509751457190216236571734192149866567132540402180001693354142196619175612834576399634948857617622747393014105280744891994277422164299819733414238485323597070881950175396331264261126552129948114336465571171536703773365167381642103004813306505333368250179221779826669056499198412587549360065985662778197325860634911020590852588324878749994032951229519914257509080220432927145389751387272265558630822154762991208634974604291096725219891227508325224578347534206498391457542782931852269959673235175772101333105159806201632741718031465635241312627329381974209664132243739057063351750620952924174109377401847813724726783873501801303996670007250705301522724313376878779321569277286665448297509262105801572051854338539022750947692557638667747835109599950996302198067971791344478929842962753683512456434984736786563664958289464575348099608843356810859502749594547504969335334258786290622641788389705059619313851194540774039501193621548586873833888038172875967112746271190452450389177053296330172165728404322413596939084493328907545654564779548265970632089670070705647641584918842204621483387751041271842988029860381764342646431565418868464078661198836329644266490339219058494096026198972155053090228182998592624150347997127374342898630698548026643011148454413595720731827881485675643125155711380901645266432596607936725515389409316234010934863123143562148831949324236617772023116765250391020421695143953655968822816077150824852829817399945106543848114233359809426208181633209982593868090037113578119093381786954100548755473687580382719099275623383648437678785519882856287070551512021493721175602963281478882165524578099136866494241401478475247594933555984286207688521047822043330687723580475941297274649170309741429668035895908070737365605401673363201215295893534605395761214044731267397772586092405027064531215885615683093986289647741323004176043356482697486509067893367461642849539549086990398962724301851206427532767874373566212026500918185333156729508166875814789561250504519380923138060557840139367807348600631758995777748601031116410556746775687980086968177729947470311201763506520192300670372195012091068385791188797578910933241152333598458593876780431965937249391655568117905244987050666177624481567675431002063719403426890467944480333515508108109289596782162468495077913920012618644040778399188905990234061089566404026679885958404438710483287679548762817128311845228636927777319998507285218334531318732039179084523541264492476073956604577337997951194896667115186035847297357377732843215216263693743054623882828528229903562189295047280966451347093005210614342440909105969435390496557903575354201658321388768390150872526756923835478966303437363645151147753249144496734354491448361416474920442644598374155668239789794159658526959416902835713219099549921378623083733886866379562345588227250760455867499822054603201972593322290556100727328807730316201033755295351166671943547359218203461073457723782006864461176085756934232476231535682724858995977664265874593013675161054242379938294778155348369058776757246707638522223355157680993900007867361839176789387620977584820971673192595044373526388856746381988570810809789287823309124957845052130060439596699545510834445788957275051419790926788836569633981907089747840712647749181173065582328826414947210371178551854110098127011846233717698080217227000983477464139404385180665106838340844297337773276986325850672793479096739169061533316840613670685134259963263073293970872233800337178433691678840259472989626514536364148436698594862949282730179022787573217951809239867435149568737919798171557376172596969510393041560825584141220817792424401895092029217754465356612283450993784275065744464364977871894437290357278538524834763676281179189291089817466339445999574455810257250674998646755870734924148528961154441690384730903572024126518031254535453597321877414857175962361255688879869666934130214905162578260572943574466168352309317751894163961761619960578197249391787280388101605909670691877492540121176459622801688534282774147786116119152847855714170300439167022465557820329508607434763332312065641015891986347528740304872031463201685593377881880395032725809136574187219748337661865941488385148297101116651943062273778934230550363600130843279330494356620616538671914210216629494936933707695868562241975075743680707964148879092590756573629165075624176733230240248241191823985217373591219714342829640615666216443000184186436520295859099537402223321509426964386250166555806633522386503973850184854168923643178218428793384031866836841191040553792858024953760738098325295255017680370018883806414302115864934773488714429285972218419089800424387020136895550407701195403616946403082509491010055949504890489209795358512448272839577211667766401444605917802341921211087840803299152976319716982005064640765500077447182361840801745137307785429153588404117831528515480109217501504568524342707407665589601005848585044799735672402794507267211403987707977003750799548141044315808054550922603607504392177419878900977548836642404951220844524381651321008125109528431045253242329212506430666460071273133181981394619686708132008030318667053823868405207051788450691330398102561048381021349328226053235710130910824030241332545571571070412386538687396497971975177483682488394593583414027120074198842944753948979004233614110936510761467248619434530083060380406274139714412383868416477170621506851024150726829529523055259394727831208901854873745239401792442730788033803665504207976698538658693794497767867310487082197593536365135216356386065875484082027148481794738074663592373415079609561959864160748349343114636614440410593393269392236927228698072771850720080461829685382929610503000229383554973340155699244837118930511918641518435544760979795913403790605416813665631351652022688570001638485080940930040922929726020974352675877784746641119888463840133551385881425714933352711184770838134353065515076513526434827744868120303302649341476508276211269808541852812103864885920521627300604605141758781810376802857620197989169255970371426239595534497491709699192600727895932806965540955217572663465902121993939462603694959417428903612875701371214716198789031523879933432052672262999606008508407913872890182567153886339016629914530635810159930602780514315492624615522428062599347367356507994905086079480132905151867180910871137188509078136942146341782570825126390352606014267734141045929352668915940907747680151728937177722586133508929615683405045395853270229871581360591824733300887705626187827436096692699459616601694594879138145831099464067287842080693127892947851682656850478082103810180824225761610599766052433069150226753842973868921288805251489362479054536422973970795962595450227274777836271610721776003608421088787054046124854618303624122404908519342749573760864569698354610927775210706438026541182926828107625822306603590074564145095579865422234571540347054663005801632078118986264978167584328557359751376464602375922758239396163521833308839078646250308076135458681745234590604295101232700129284208308799270364928932183544744987341795073712941238290755484896507171183674567707949110566480856065038539435746618876410314540687738456910486368961067282044508978516908262311065834568170193407792854845214302586572708117577268652807185064136761011887884182947032412408611664194616771477200230803151299641762576849152621334330767202372004854733236391283630119198855106775964290655357283057137822459576013808802343217321279150842085398665801991644448601459148492919629127553953779071417217426750156465733915518444419567806251576852576842048351914208891801923343987181178875502560143643462693111673899006683362867124053805422375706883045367327192683461796564247523703193659825423512667964525471300351242721819593750843644209690024323255420441505480883500622807258040184528606396444488221764527830910869435787068018462555666545601103775147354957464281027127784007936125168149186338512669345173068068456254179958826713299926420902493576085333352813297972786699565408346035107498685608008526869669765573748924807573873340545958269958073154496513423791391529286059406759025684442363736317784623642074757725881806078362101498397638118872708015517556301026420649726731474866021851310490075754019671219640482779562261771058813817360167227194268981579603370646840507810952624267424850710775150718525772628660656108128287643577563097531286718265749180209498684166674233539499351078067038751525647972613541395297083899556987123842291478213390022381521201824251223091835699248178180165518544680819744679200389778175164453184923182953797165126871223494526640104483217285772469881934731324399734053510653542139081573111993180234787339359577853577869479516511619542176200162936410846294975460765643212472276061393314057914564350870104154695603571615702756794265839881880547224725855108729998770053925300981676082764528200950029492999265795383643623012505110672919589823432842604815234972027392786044851631777590754105552133675595927060240915252329262624079875835049838402066597600629973594275784750979265630251285604744774648549615255194908992415756597937961050498515719768705811074360943807191045528649813521632177920784815029946534884889367501734537042366418344805008226718407661157988911863305571246808413943538975993520419023480382532292440186565545474286240675685471521791858473467650171047939198793756116751365128183521780290920558212117861976503730261461588552076410558837904286163107201007724090328024431179734402251471713597063559170664008297272047323462408578613417208093262173799327624857538535058155603648095346463460948738493549745282022838176496404275908402591037663546902082963724275095573150639116762985087423582178811474673219057203292496455198263592474606688412397766214710507274600590433890083786242766363302360127425196476717301139105042052902311054186289401584529642328181871053159559077572315580835209655200017927428854556330210005142468812224006946610772324238245527039201824215510541500109925537383212244346660525145826472649523880594164903970179307266577813066329834720191966937226342751154427742855643368981264131336596025824933753520804481797642208850337712718114014602359474189130552601403128880516742249072957350019234838795129953969565001024205139441827565276659775004135781895138792706221789135697299952517268720192729564077443127219434774359972974840782307030337877201574285750291562263643440924841559472771720033751934149885013006935688940834865779032935805419578697523974407327529281538700041953161007062689791065195877633875231114208373593294994727671092242584205522214928429170127655523555419119006703082701253092739419115274053820534336610420453896575883206820302197559425384178301580615107698480698193735482482148700460004087858482649185483108501823825093432317785375394267097549220055391139921869235377320635811593410020081767320802837632857384877401498159855005565230348382843784366972007371211153800732589061662973119884849309378775313570292971725263693233629213597117969074390062818799687734862173801061731371002634934475135488290826842112490350032256800768838983531451178328892651934462302426177031948248610828787773315138808435618727253472251127189642064774248013633513842045571081014847933337047466349147303929769147377488108352419089801756351942548926698955630365098300913220198225577642754368376714995140418358859116448163421219416080186612839798140273779389287667378942286853430834897609518006608603324365571094838686380386139751846560120399773876090452206080519083372249635530561584154255982307065561664992922284768692784406844082594750644673085277448223783156789677546729039418357696457054060153106941996458184096336295076802504420208409814067678909648894130012992669827476533755960935477077286073127778932661317909498375235566625179055472956106583941958524585097730342689312438914589515267500484765844873798432584439964571869698411070469128808876574274838722508029612825789101340667361840687504331361524703338791458404552356010000730681564950763790641794364782587107968421220162336079355885680346740964254732721086189057434634449785216051971450769460409648585990688967827346330295699085285563270351923506710291280862210205222989121036857658164951290383596769735387148679847316525317737494471315216349103566990288686915615586783333065875321122969213134433509533740715135134963763838738293314792633248813555030726887169730216628269027537793603046539586739239481717668256400799822858199911350525782530366448550405433960655172329650982295264016780383852872160073910444368043555444087922911925775061357425537165378409327447465681415928836157434385688724064443383460660500321706244165024589949136514088353270495335716138790477461175723971087398949695817596486338742461505367742497226844452404393043810215101992870880308649712434916880802175408306322150270461176201335736094224099529534150845114959479193850962852883420019944262158206047317351770066063275606248398744519119264148770630409786080783697979310250802774751668327377525240467356350738083741948751874467890218770845996443553589189192395197657583610825334220133941172040689536057898672082811646159009916679306692790026496641970319197057075685447012831173577881113142175809912199973619977694146164401399112988397121010943936719527143043864709889123489808579319997870205332884452579985199958793814290033638373757860754033769437800889699577490361103149538273384596510756828824136263259976126037151846864022352188593293612626915560903433273523099905600269467233527073439992950675988688799166129353332046332177963468152948812012508309598331362102006670239461612024035731520343452527459109665651097454258691557674486567702844708209117921272305364116121631212674209357829801829640944337853215589893041975077120758128027417116201590151603400299524782209651929729995146508818152798558129498619558660987598207206675862194981654735638295194027253795950548970434786832182514818946199738358144241406186448886401944975125400960156653493063479327443802850792552113701258439233581827314214263777479944397898772553383421166777696732652241910868487128417049553881933043057098002290682305331547274324679047526931395265708813503105701707862460743666888330782440335967225573021458224637246353340277809180066932751331067287800626579158979303968250713404705648438598765489270739530044012018211642450975135363544531327750016020590696349711173607666168293791637496249078055930345468851271450643870215329456760561470197642110370083057238125914423272392254519323368213938139341960069130918647327622149516474049535985463554395737109758070789684574729054874649903600536827523357183347364271990434679707709112380817159709515287500211239741015356105742031216259202500891332534659320796414200923769636868729250446762758118438159286329576995513371965713222723738396273051164677719341560672293558367812313387911224407683771503165985381459324367722940128357216175610557079386734783691245784960125205646512883694361149385248379007715100486638430108499571244836422633442445298902401941167268480220050144978774505258954338598728811226141723779247959427314094790124752423634085601691911319697488198125790322433044289504950721414588639146737335993726233597793648418426548220981559106469757575574634663130477693803991932010997821988148707894873814179861766752917198439186004277427404419632173168216007874008781829784242078593937926828656331280957973956360588909024944400919938559469406572990779797052719258192559785063072154955934532689556809174913067308068881186913921691100046357799371360440560144843263487395289883687843325848070112259768645744308544588772752632651072218870699339231754975908608591521599316153031504292595623370676329880717845966361713331451133904018816130626862988599413663032165444665015591545013339030968774982784431470124337726101237978438127212188107680776228964922268970682057025713872284602878908453143022532644396161948700600956998525095090241381732156689694137897135489558924582200535834907423907848451042245328869307355648314860807062492615394821779330119603824538322670126872447776313518211384774327658918621839571331931054072980462407212147926387821120413828284966252447845861741659151401590963642929997158146128901026913496287157354461709448885786595988529102279957042478924619205797094150735301659897994508472709023659553328223203839666954992145409500685842750419077995041966735644628526599428546750507630871100956129553154148334212299062459017263819542903654085250248277334610137512612137531390950880928248994648615461857945146439996786418334263212526491968359932782213813653838689426276807937239328527870168891367483290296647630268023600228080693857163946138691266329587819433131924622574501822915802493005530818168322411279879571333955152430646570162228793889941081913173403612107446540130548188820700839575873766106269064052994975490973899381512307309066133873806773422722555655609731171322044223663849678806607107968347774650722518577951346617159993297020297680269398789667326403989082147063614870369485979812464462482803424152603212603437867036511218319695913453395308265743107218470505108436357928655588059939772287247758748431427989157412388016752102715246419718344896984361575138986337473214771364173001115765450025188871222503673072351810125032597542743784668121050316274071550325463328649535139301131537604781049775563384589829191256775303902400434364777830203882871569993831286284977146248570588214406276577360623024764425073129321403741983039534690041567436955128509374516474522071178282426878501315040029741718298462819850087429632754660594128581547451017096766039341669810492438604388491647819469474487453271901020707771258247054002525593853408751566669552397917451726481268337728802305709150664329903497265886171703359922130695289133115948581636535446533951044129836903760387182202078238348020927144171720922870905196387501761747427918981850115171820810599967342264398050005644694474693269670265750437304687224970690851401306669635190252585306629918148331544060404381574710847086312078624081959741120349499185485404914502562087754404291588320660057605172836365632585931230871081330929643193390438312363459303340439408053761380643973383768577703375268527425905112682924575524908952203620120331670235729574254836787475488144417753182075637605754126410706402865307355852921936536855075975406793928882443101455646992082363089994712488098755410034400051167913854921471109286948592643383600861521917882427943822061734973053497076661393290419998990212954355982200758597773463863517205266024250586816693648746030677552490752466911995000073971958945106785737322347758174801317118350502794329774780426319646305986349017576992540198455283403905507534201227746143142320589743015686375231195412438907912391415823010907885034356079968890169435289350651870714947579877825087826901151559520679725195236106153478585254673949483799366234070068788984438561423826052236697302377242572349038808329122272006133590726087448452612950200166279125575106214237206329444261404205488520518088058990767902674491215642419875108385869255242907182178585869052095819403103092140811761994311496014511967904690416215317244639023814417929786542080236207963895920938687014788192009614974403110010938748905744070610496629510365680324041129280561495789969456300797713045535606521146545368587542067917147847265946536822762213738917601409102221214232530431745469285549608378690606668075932132416248205164891650201477138019308211097144877122851053052508806044431074130068760947356660660455107692775428855145949969521942596804789298073484271898004294149091321002958142890100040996297698842465761592878235991859214946195493650096252217901995873244236143464844894938419964627385543028518070500120368011674429315944399908185476612361892235010500519681020743181345778893927882404189508881737954570568673924098091222347118233962447241227576378533421516245594952882258077652081575229120244224346216001380417049496177471850508835577220389009594350689762344590644492940846202885995715873767624472988065287796569911668520515652793279070096290649999278237540713674563928810068885169669748790272912894703548951882275805020598304810270978232158129737045771189489696601249000240870333766352024079891011053351328003039764772315643910165336714098215018126529177373604607854223888445472482145279835988407923623725293374751763545595777726444161346019808883099495619634181367697001239026397359211641159371823955236354536997277083063066534186714993350182900727323644958626661422839515332074569767354688991815122109590531175876525232267160465702174473433113782590477297211651152985633937570932026837877509091538358356428555734285961103324728202944850202002749888410816799147352571782190826366486519843596537141923376792070823004847654792285081085698464969214171257222057360954618221202988939727410612444541451522894710211547383632638296048620045799073774075448849425660279346635518185182546087909218654192608132374163364300829817160157333040244385078692962250056787693310098230672468116669633450633985972705673308870220229186334250661803463925627261487427296399444582731892512314373891148057853119400192108794297290781718869494552143241410560620673832189823832283850777368695474792577594003870877710149853325484922581680277605751974988103084485872566034476012632114499200522002360785184101555418212354655466118357871453121142223988703595630357001498040353780641358172469480149894795531391209012337025143714250244444186141666632608893891061335284097800453152803091894223044189161474506263353700676830329804405803512453453040812199301745749844844272133908333390075442226568269783599870726912328759754103980340027895928420213345072838558875036521690668715504501780381887028657774789395248591260719499204371398432908931324153718522929515820553815271526852979891349813728818519691157978423845407834177273233777185326440846645599411147897835432900326914183554435405815598509417378718480909760286063208634354239718862039798164740678264029056101306881867457565704766494107845852122347169650638291405296502178889712530871747217322477806646077517962277042061176212111197160953700472279445945329341812059909186775568870502605701819180876479281311938813856279378445283501682615564896885696030109108509803548639237169460472271831757807372966727681729944201879199904226712188065399539854263510730025690940947739601108386911858494591986570644306611660504746147197256340064938202372810137914373039971366321227977034387618405986256095093673692910743066082996751647722681537742384867712221590036709577119855297092761952844679455183490522575478011242483984995338464529026878948260794106507909107893416412721998116635594369157605699880197259496372529447804660116335621800242432962751885283239293125891493619135166692264088202793002596648453677537732261503064043040522486002577425914072718616254918117011148234484979949119680324758218157308640138044967295220483992609737713188105997391301973169840768546243347823384748929008599241439340230102411771322904619117996204462414266469052251416298283738832398281103637505242380857391732302188275829060512778951520493651049682439529773789448509582701431149033705118713963746567668655793005985351888581277739497558950032783543416379082787653539250078882314859767443751272757122677307413625010487877472551005720164222473652741234065256233489109948027181850991065415368692179321218512093154952340426070546132100034145422378181825641712446079428234572845601885420867905946919979530941607444509557774431169728265164776886960186430428483451652173777983801556212658340148970789092017195470006561914173726727517247053124047139263298149175064675496501514037945286333930331120498481172730484131826998623445256922134755662629699344480214231037482194573094935296205705495867747330484961739095639137719364510588385948051053308647996607139181280754741785755390844883782388080056559669887172617486917868523478734696389402082749326366759966496610758740212968303194624242689805447128416283080518284452290046652341800438798075460446455870187102736524715584562854211437602667697002613336891639613510127376361298817092379423713898130057188721540981202852021672840529689240399971184671920027135508172333374256825201886256795283550022063240155395197428100289648004921733019171951804659923811168788991327574719491777694595030081651526844538786593823306127243729318582992616512414299225043859257207640625321170319841427519635854347452413475476325932765798877458610503149031042312691176577013314178516254609264731998367265628089636530106475080564493700092978977400492306859631844683643560720614783452102831048597792426389715308662240681891389226379308025416884004125304309580359285342251526849286481844950551360643537657046405401752775972624650816897340180025687000473675849751657067298198946092765035277612968080205736121136400853346608452697210980000716405847722067589338637289943115810764559765205064095581971342405454467963099536660637196688052688465471712507643861146477586207678928550199610376165007613479515045828635391708079886533748890414280403348157282059982512836512482809420449261104102048083131053911669736837571766521987063666001314719024982609185090044176841534123122267442177123488821610742695376878371864922138377035148993848193752700149740773168762529365628166901643037517014184427104027193065103623458026337696098348568826339157903235277699672250242244757800795135296269828913502434723432735864705885720540336925192084540801661327616617166649304106707783551980008129726855429410169918907984203216984406989533425394537481664270429310951241771582763730256638263771082802921092335844470195212191153990833604754939969410312113089431566560904501001126848612969668124148591740137267580016989972646558110399887799716701124959978958773901861227761738549435123983421545064881307796999277809080195614943405497223394953147831940947977029431147170821123307396915152347280627403059859014459146439103332903376817143247817284105414311140292405214877968120871357718188554106570258030213363438903259953680217922336412991627519976514129143897903396922358229174557824095310017336023574205894969689387889576012692220691462174862796447423664934560629473385511253571443209983181241285164404926297883551242795616546402986655989729186188947341450120765188040406800820390788083788859163592461324527410397568517018580900353270544246457036090220057286731682269874018866724909088742342662551983705510297974666695915631738296306436288796844828919177779404997827500429798828205397937502804997873453335983762212480345574195351429469968906645885493876288898890658199875766550228575153052197131321102948541621881563425634246220070504831674271198758236156053258811899697807152488246406808325026708685213114046938149365998848869469814845465069386077187763389042822185220216905918837447754095014913303878400504198606511363893015306604919006260045076145214332636992229471781638106029323023803171055487231026729058394653399373237922641331631452558063671632353473352430283930164463968046653627396486685030216387308668085886618925027623061421937969925737319093697239627480217758315978867843209527354445061791679211634854130171713180404885905127616682802935147464696814713884540704498363944112639363167534092432136697550695128212491257451607535172795257497066656798395261455821419973273052110361183865919670537081203828566308794733859021955874961836654526919193207910172924324189386849651614415426420161040708855119566478636075787086162147525110356472290767511923078508472301938365645812863339183547039398716242144780072834655057158960015128058850808603253670428319485750115469149344065176119062714276113721954466351059322675972776263317293203582844052458366359466028740163588526945173772672733035328833522184458280630293282041476464165586135029049648202040749317534507461687043115129808496470556012538750422193783284328272519061821619500425416280431450964570747410206422286883999081864676209333095628943976662344549910811726784319542427741667591908839544455214560427806334310913737301815519410369563517069916065268092179848745646217538507882199145553682236206780266943813093599524784418910040617552590689216534316626552732574701312412051605381144423449902309715200501319031125170044368590909245180359687173187375446621434045619281270651582437318983402615581838076869913893273317360414106862357796040589108077797924692730001546318626275152597236823387641968673160384410684460529201362934153492025385892889282324859570073421530637236990945505169440331225321666180086865368888572939859650347216491251462972095675854615881465699116078208615695143930269246871651902402030827842048978412508867004006728701479136846677514380080223251920827271878642937756894319865966804077039336538195205506361863666756236736853377997829294862471954747906156840675635608924423050911814577736835908640794606542448131412472872179643979683340359704373931383873124405829968784148536727711652818656976601865511259642114403293376136068716606844987872721541330831155320129903432636386396168708858875137621615964479169707951493709603787796448396042441600298597159144402164099467498512841454991212872552774827603461983198523703855757892686147421641820731540063501846867102273686292167238173690258169502941796482478867688525944655815085675630429885481968006976477576112721666390045587353400510077443195872496725412681709530020267653592549130193683597598447761233230133815735718071223801021454894532047028558955575941461670511407146462512747152025967076060034452769806546772957699828789450996180714011648351920851944678454175602106071418601245627030537674780201952974031586997577333845522978616250699910175648175298130773435832271103799649016983874179048391626558388111740148744450822787901126564333576312059695135412689398657494527941439439185052068001079490541109654679164025218258179948993702210780386086751362747904310879268559385783834910223758973276497158925249030070094573298198311310667039044998922016239341164698092584231008106028054776198382883412427555526412658868402868637807201784815944804979366250151341521111370138012281096609988611514915106011148734861869312279323748072459323406971223776637256598767326309803712896190419685649622646058234122006566049543541980751690165338302507308622671675962819978444745788224273310596624986661648850354802836103813272371407755377178984122505675649651635229486887350914588547556137876499585966067098200754832004885058516553928328151975834861457072518648528110219954224756883779702328938607786458236579154814711320335856471567603141590969777826153858461342875603983431301110394594564606681918932336854311319982009580443856859014551083108203343053384653376225104485323636638125084828187188489334286400889509840989632372948126128063794089967433117190985889020734614147468018728811492287937781825672154219872704237565672676305661028586624841929608095316707068337574549278675636763205244538659976522039668988844558833560347772572584619531556188333223111846482833983585252958906293889844716312677913615173986674033309305468202843777356615619657986596973195777868149396852609487695011474778553613083262308035815415401527024392215135147639456715982850452834780806278095780906989790571821416754299700677287939344779555721792201168617693004049657830703576915810847633826724788749321284742960026849285941191623634073607038149251288469439435935421166214411631765534781773519582286084144401120070042831462383011408086436368393866170689618969012078112204113868756958276720884356794903157887728399066927728382636401128528228200459447031083120245196850624811814117332466637789832030755158164742704698481268933692515062895457824521615051208134452388332061300471389617835470321047355282152653976707204512793323558903485934638543060195073558940638089288943101599027988899963596368593738550063443538511879174303096432036708658128927588058401375542438109662219428034288929921999248055397753402194033371384040830859634863385120115375611152083283608891866453964857906012899412176681076691986666281575661862138244205993607955157399910217406861364479172207030127382091364146402902018302480168778166657033663575555280172381413446605465776830563398853806654888223792971284747671361787594434439786148643770658162320008920564595275628034777874741253339034935722100539027565879785313115779623586776363564078463743901748379028476920763926117387380334820838652704420584660478340469556203634033408595823336169824722681503802716998606581451491821745403655178639539006355091400793850328834119685475782701783975328687335067610326253301371866997053109983698138117494575291735454955261071096514573958437622182190249157689602693447865242063891754671472183735932365631980393950206317924197035942622829912968675205666425633863155365672227064434608649321232173657522620323557243386821347110994056714854091065049269203880331153598755700494015972570327733702479088610993371237507130673901042408822435691820280944184452916315128813377067617121021104292335370722664948646593346741598894433331984647595587942954174002300886163437351429089618341519347608470039070859958143711070299590445784237488645155528512889679106685995505574088984506679336150918060292449640152522546191797710530740322677133003707420509046296794537656652199868326223654030422969564621983708711135264986574554273395877788319743704039230095495139283681647946663541913319996805417675876533437570668813854267741428530614254037180891014618299498862784789737693222784890580368085598164208562067464117774905688141502552459268530447080543882357608878185751236347139304778992423100831535421085811479763605475430724167340435312478163710790287337443999749680259438423949803343256390624835494489189746319168356374891801421350301068468372489625205349142202237855467782120899231976009040297772756143241637968938712502853556358093504657017979308060281660266348165493823408090084243112135195679893184033864473212495781839521102895120864013528897277708605526771517853580400760903222059316382256738130346580388058665871402596560813852318926359126381536271700415375191769776279276092275151360293372799383341194891830627247069474229204537211515998202396404013383498293298236217808502831450111546552102982554624633763524395346507099778159093087042814101329221455287106758209788709648537875621439958322080799820375146616910173605756676990713014899208274518621158439149445519255343796325301388051306492729394470218125193940466642882811709164760335776228841857537935848184921136101669077212949794631366443246521112871315307560066528378674296878330518941133686239065755936908061385961490212199802509083486294063377899545748749338859624304019457754353325727186993319197178309175596452694995029490244542285121122553807323979064127374582129634554824961914040332706077547057621425250579061131476733121497645628245080077232262805653019147046367095504341543085587058317237949134772157610879860772056659172917483364038389979272482825662344823385806963572300088930677457043092864586581550616545123707951981512806425356061218403679650132796524071266465498111967239020505370353517162753325474376027440847532052573994468048667968570999594581312019607024391069996234039055481942962124974910130874401804418584909602154757395133846423995797718292040985321126985805702467791045683403815811525186695249288018703160194531474337426749395820301336521961034375637355282526247552619550687779561320649799927336433018477431097450102192840194360564745416074245565776794129433257122310975763833999292010856916645433109818689968577763684331791383190973335724739110194527698508879886698549604926194037387637675148953686281646356969035768760381710505635630274182203992011766079882068020410374402655100278693462465579579622057417616752584627535421170025848988832021117528581251093433620683176869363079627345198058612078024720539739431761104385814173988869793566819483745895757008517188944467345638720239978896274889236388912552390578035967431319502670325655976614676645031141656185839018102427588020189901160761595834137942429354808328665027726232730117876216335878512551612366238520434088988071612843750237153264924457140048181821111531150355574826069561006981172771708126511511417892001942838080584516674304829826701364197737149092072472057505018599377575201709330086877464377762854511656344755056013147654503177320734210501244643149041151067707042960274931849143735797471509407393895285574587673253560749383159979273940916344720983908271742422687186176841708793342145440819091144003102482675712900079615456318132811730551273738200287440161072292188631343268409149772408871757589672870373829727019802264049341788245069877231310206281257324159164002646756003342483581830729289909590883453854459066982883457928762692093194517730947841593280164032584274150432558923895614299060255731474953495908662346440824760728262487827534959837423077637741544117490218844515052183939516881124250908979802470274319800693171869312790637092422471768602395561515168590230263301361350992596643253385771102864491746256547281540631207711951278533459879194259833290104533373990902305372684189348478557838424189942751318865045141060875376766454436755559673198450048754386475192469990677456989364962316603041907632241947659125422643929772892450473273855687431455746187645827413589464995099623220719510231584230008547983887324679050553738606195957517972497102294244801003585142257528334504799886414125942851550804141497345619286896595074657268790560428418486741029839593239555864980571105258475256688878892630635330684625042535340450893741816586419055613903597285715897200455243152971488208723812663421299555950866387438055996952139352288413040505086963796565287089943057920679882162046785780481391547711738179719192486358232751942572017797172052456538395747313849246547475333513161886876005410177361982865062881790210778008896099294751449699247547583673396086384053953634385830599594292500189893365712386850719251915107728224790464858198365977776964426377362317141670827612496287008659259567178710722323497120739879620786072933821715755534521646380234863030465479122470400984641513185342067682820287521154981502941528005759255453602692508969211200720000111352271715080376680932702073138011911867665684313445286078782030046575641475273458086325357821755450603794902850182094593581424393181066484972012738364126222407653860639317801444006708126402387898628364843430960263127768151673249548683543424628387100870317762338412075791157219428656074690351335502067404745825595885740936759886665827464220941164907470277416061452986516750276589055057198890934171583927429016086589166146433479023349633585741286468702960810711630752818653164525025491651242082840232790285653817121822231329798786607027067236353558716856390181397008317461812910721933146883792051874586999614755490531850206863164662425455545236009546466545877888470194401852317293216911397770469154424559995263756341759651424248245750357649381369468725503051332534326047169717786635809209246030701748864951376524971453357806327090590541416927933033750927225227987521430084706893526972478924983892775700162282001871462065971614920569797358133413317482339529095735281928842393227375374008027430860595347882210324293351387186391568583258029254816076025024253951884799531890958785624462207049013660421893192729213369372000978418897068372777085539094516196248227044382381075806905470773403815528903918799963541152787126687781046198051852118345978261548570112947833880368620823576483253812745657971556908645767794428791654122947976110149771502349028972320418843016740101648586800475177066679147813628575760080818280922322863978949577601431892701290496782644112294883558576478023479667495570697364205296308915307491395177340488626656995044746520675422695439409393798897706331582636680072429257573101430361818619735000336705015660888759421200865884529217388621563720537263539944946842809977481873986266935477307290775740296061837818757067941547523333330846779896651408282399542007355064389054642055448138062951360514330016854194961783505615477716366498992006218538572265696086748910133788948352095104106036019058255234017974682424064534925122057330544975522117591576605334868676613081731948714062420339500463337762410073687609732294775892401460846734401364878595419502834452126222261088727322040755597107815711178837114480896447429558903994185227985486767612999127066482452375568650053876096649536203180464338666145807949396935498509718039519961650237007356340179285175312821043539534946997337288434633900448604409747046391718575267638565622098568046800349928251494714942075529993110998931105322731483818074525655463605928292119357128784633047405179416896918516238102336275552911100713077615583361331083637248538880961860657815905311720973450249116268513602926630763106823226787952844902680857155706437188173174433980734373681613289528021399575834474719940741715162238307840091301376109045250851347491644689249191354553138176224508165062008037008105091562757756371111227521102647461671674751401285075617971583691305610382293360494375592330962426290089817344848530889028600532581565209590031258513392178687323870861173019461495063974219779674547682340255940582068241103331194082494938491920158884451044978492020385231551512217714740051238935906471457585260793573868804857216013155168406883709197382430468648341883706200900072805319754938820605305103197962318589762039918738735476345733546509539392205627635697536826285781932390637538817449131881263384782309961232896163738352550311379565889792147202001948023631256127964768749002824931850517790516922229168074090899238876320132707479232301853831364857373230309568844927569452449337151476889464339064735070489314341181749993362187272903289850467111229464609578163435860832519855885427513413000356957292914450165556051986609666996625104479451124789112666063406964489454977871430447068000773690979488710769587886578265143126667648417130889119092671063022596618152070258115558452126219943431586194578055335489975810251766577533422037717641041301006952530528925498364740334624339599715071551530887246344623699277100245978314648023859312386250122825873183225758469681748144754739915334704291519591448560685423854660746571658163177469338315265353931170744150273490129990295027277313884670790638623953088458148362253275291198390120968426286056692201378056283949634919301966832931559188698673302389568418239874247272108314985732029843763503728632888217655488471909538769803764956889041741733637668966949204533192716041932336600996214652411217808471807391886959214511110241135906352226687159380695787059607051119514131954735461634929792007007866301974038014410896243863354094031595341210013677402150725152310612568597297277343398669351264886241640087250609733403516696836658176715566260543400958667464767132316308969848986408859646272856988904239670679943661000847077880786846882297283703471520862823732553093214911475078199016629036451644828563312127484485361192411969503787591099749831780088806196618810895999409934432704073327143282247253609249180831061904949627042072267742484326415426696505590752007627641675931262608399854083230784268173339423646178740535265963569361106016766088749471954721880937642174615740126437980726537116785979213438121002724135277648246160359916963012582644391060170496817052354974742833212076687941495641911292385067489802860890164708964990265173389716058002697208547254252109413942664344244104852635579215408371723102764507728048683917546414023462025213676320240427688176524844357859994085049318551810608957092436345099592890917277244604409580115788445491975087226636185668900985564851937932628120894685512702407556719258316101841469404767667500634034912744046901168142693945438102953694865703457033680646393535736584963446793472398449260427492879471202464616465741333154149303928924876872376980697094596095048305455853217345350389462028790509980454064849329634354433608402727822562850987244801802419541080251851213286205105428032905269531233225655175581661309052284823894298447913322846701101572138132775919168989303993961726114391307594259344622637111145159473771921863959365871517015835362749011604742984541803608999046710132654184324571859193839984227512878394554691842533831492493041098303208853851093441026103123882862374931612772941967663735664434006737695797767852265719465433477324257174567030864210665139852623499304362473359674611487308178254866051645912109034148213820083851495247865795320350269469652992139016104251670138734101591756675771406104438853302215848471668814076834538257034632202118157852596443894181617554433346816979782102223253388975974768266710092190689065587398423419765529259449906554659818089513639111614639953107311144411661861546024297734625429386757085134724496355500328008254512068968238538809635505224899220611782177249945885531031057250649589158631192088394623272230185727214933337515137657263156907328094168300847047654101418135288211096369683778539976544088798654335106239669715451385562042779280784632361567313758952515316950577840579804090979200825241043775148823084479934250640700726396987183382699605967221569930645537113004892751919061241625614958873837579810182097247352272223117096101701826192222980402199280507138482462890597177671231650780724618432834931471266024385461534956694586680701918785695793567619648070656819259508948460013248541474134739932449217914098761041885266946791975914393074387530324388916731656504791319820249181790473671095980679568514824807700838684478007962603089943395854104328063312649458210235127973881188926193976627825144286327935676836118432871112312374043710385168800823251148724104839451053558546464274166996123827103637333468925083641549566805936568629819152682424836676673417528154046101279731015927564974806650429494792557821988123436330837523634446239575531005336258496913459710527882572817848804193200152988193421553554222209625425785776558753127404344080102168210781986414283477451825649346841688540215484392393824720121757609280624474911034648919464849945079960367335181619894077978277689227820760534910552519271226622693985574368890855424642300481199782891654074780823889686776928324572576085315907198232567450098753069773135859298493455685709477713539205811750087844809648090711868708766576476648463870284585790194718877709710225979543713284934135668491197676575852847487658399282115559314110298877264184246316776367592366151836509275124879695156590299137964128468508628718995596792468031924089250731979490267326036430725014039457478678019575527033094138422971580407898989762002307632451500227346834711883387347328239439232054843584800883354109901437738485552279997075253420647698242377329769492599549401972535173225811839209555757805721872021330590531791358072919168173724867032311345896689005521552146927858119473368021585948666429240925382828171961095684316912831368297287268802230649815795098055566867931885359400427875980960886694325276065569212799622323519956792610084266401886188894570245830220406302053404809782380174864796574276925040020581055744444873237887439731792230514710680821105450021496462248923948489536830327322946014994426295384484771259672522165760799697158012050331185793819805014921597198967515939593118930323221154252656095408136025015953282137889022295114106089798954866066922090145211811931574232340153730460087415019752665544250151792160602043067865976544052981932457543600417440163486637173325434355169093711713756197662978500189324178285847309820052355840325174090504142570147216815716582264149803976948853372397130948521475350321204027532353750069577228866704552473617617178377145695268160282364590493259983798646056399056554788551135285495906290747708630810767669806072749694350907008190598611101445074665896608575003678801533871062784077410640345604922397532990040439420166797344183031160011893776405277872511653691024613326137534057623632855670719629192969435384828451206290826010182472093803635226540404839291508172046906344799498713991220630378612071556362269112108079289520799108788160784793544946630933516332061892003181801292537701446750078837943470038449571972273078454873934771785303905919221555210147892542637389403376863839406980798877065529759546890884769694871564072488098671548496438471915134733717662764750071431148938377526036762278293909306355325319617073575734247380134498073623283165536401837321610147370394421061787089289229353956185514983997268262951061153100883408540524194132173475781856793128718075155286173002773568982908224326992820280219021210436531299304121644033691297756097710398809973646966201656506318785971671043184262589975932303636119702553310981459823433566915576362811591721570369518867536608578235989027708095186423509819981043139188073289908341284101342370600567403613199235784643376987527905027087918279593327626413663879041175885936451474710593706050258355252826538289743066601789236151524790205578111291668321985349712900556370803704828012206671700176609312786188500625550238062447828290822018472371431080185792163998720091586112234112523691007592428157402731169693423680148367114014276168749816599090324578277516036306265849509425802886899511955196115049148828721149278344741448654381948586943341194660032208049816761338104852598924117167665156936594382546040399093626999789756309705861489717201914610171765379978820250739984799252179363042317956384696687686168229843871170601960780433500806622066784716708143000380959518245605914043712553461323499044483842794098471790642795994817636345618693678504879165089135643133380169652967157058904847171101265097868158785010656217597639870489423704486491998989306578083064276569111638126167290406608533593792062355591704102786553703083495534590812576977319377931311253686735555785412709755848288661289656264939454702839975564707977286765678515955441870465854675355609934316846081963326035414786585656082547116200915561203460418086261314182429373979190486557533591042754221688009215103194197526074931903876706548253274926138808395430734031882559760954517822866735544850621721151421909075965936614663363599339692443606927283571087217939417052317880769775222710714869739340978456340858031135589501445824901274630402066598212079417715586411233554601560825284500261526240578818597166335745009368072446713435885696258531264867941583106451753731923182958874795098214525009147993478887533274083194366289579544129904159086639859807704261965709608431826441775928352610239458063493127731422720874805162411173689181772345993390894169155654203936177365705711997212449660645717524196489224129023595169145066362455219557109410496061789951586944969039357302184145148877697063313822232939908420304214779071545576460887163682501345626525040062245532063491949620329167148903056173211782824165132942902214591140022270935828010234313971858907361734313159877527656177532345434325703271253000126279597281214760359255300849467173097792533058578881422932880991847183572368677778000831531718312024418299061535184937403269929859377089561798015939326637857273566771444931832582127870651097934243364529013523604089100885322412581197727539670418808374238107002821858554861585674690492044735364760204475519140673375053489118081538062451822813865109160059033738481527476885033095337066559235564170974900670396805218839595501182394744138168051451542594362345575867464673419554754854178839189339896525158067432432662497558823931854150034656531343781443243561990414209428613431857742649752062365933102560496262475652163067536853423027130514944348174902916946112760245184552096248579657686219609783229745989944800462996116308472084253758257888166568454671028823122110527920001424556620701624477230698513980879511553052389640221940130605935127118198560962231084007573347073335907254600146845702579337639738532951558193361341021677176385330541729174827110789755402891865716790691540101934162796305178881579518042207788152812296447505138932433824574864111784512177702553915740238221013717159303979701965880074595116457967268081554696185563650422764113336708603552405026871752011539800069362386205980248532724016186791988485446241279032539723117128465083356681046279561281365812191408684225329901046840642253460057644224677552944698807848423130330104240940329871831719810076012103068934126095413369641701685354458557568837312793985316065467883465904021714800659584964916797580288913295447315965683026917801149760125820078817932764904186196817650432958609879994937375237053743004327656927049190053898837502997719099799823313341823432964949530418964173769359925647868912355077503745745202714805805932021173810458508318969040824848437924795465668599506829865697591843987672399719476899850008595146189719709698598382219709690049417088392374903800661651945083531077608894195954586872920441585340637446950103336328461108018468738571793344631945502484575927514805476292971284584236803335953378581698369757266087821655393517054398738535057140884899455796848661360293635079368325909544000410119978768918436567586145385756029750033110941538355241565190481760201279289800683039217213687819421445493097226062352916915168005940608398456480376437947501940043661661779810124310903141825340285560333688533594527726434055837166723493049809263127275938919457633214925684594970584055597895783859764623207336546230836132342597478097824554549622682560162347916264380070885668510911394166693349455725183921257429723432984965570276186791984451659586275067901473195237572927894719806044784779241553053433349170068408532224487984320613855710535181167763508563313189908276543426493267302041413356006859282504409636198734344231169517130905733545265685979617104835295885270914182003316849893810682200085891451530303433673188776463103893620791895951023043400785217072795228830165095461699017439316507699053791025366059916111154205538222574432511086576392353131795641278206278415112338923218652963181472487074824457488014693674291415026627292692965939003943265068235783088495932336674622286758439575515001235751705928759402889696817883525820937178757302027934630225336812850894759014444142106482397671174111745840078460853476743095113332253033803000099182683823121938391551205538393007283995389155244668180579170998212033899164833093817314336728753303348319606852995354185209066098446380274304030025362663939385231198093065699322586585578287740677410066415638414922118763518027966196676407933666198176974421538645466775113975540583943097825244198651202085482380053240626450655797890054968106276084205990394852556834803429388024842230420570939097092196335254928614740725462395769185940557788378887541628805875540421967718090814910576678306584892241041533175854472920284133910771213466530241499256688740090580551046917578379705578243908968796840695166318805774248445653564239417668930720957512296498924665500989964068482594569598265999745579644618122397178216226349442804297626740238827661918436376339299457657642111634558689397658497932437280695743576014140279865109965320476694152624015483324282115333620613826303192076008031223674876657107427886248415833605297981335543150545935385603673839719845599438085874923870684140055833661785748077255447740536608829377372204003327646206029590017925143910605715349949360764960411082699160980887288832817225698874782629871077632284304247561678494506773257167232007580183259395671160162462670313897043516526332307893883487259760649621657079364154225015527900152757356249574099309403408459074841274239346000807883560809996307730522228277243368719115044895488500367390090882834249633548479445614851130074940696216070621317716783133604199470643672121781824447662654224035534213963370484149921267176451782679264424450814816731705122971036735675294287188567088499676039315277706282570667956353033301443999340472439580487701748631788766236374530038885039012814466072476482639400659228588532415513179742557631984548211994305947602035270799806714762144941828277309185362422812468219896978296542963028014532514619647498350878875486740771881714304294743472224513969057571786539717395047914936182953931877553231909317020316389588893067542344875395561166581877205964410377392103369403374007309331742078525138104906101488870481500280919907007745106929871408515445701908654806119976384676415257177470085129340665267821233537666627954834139359541791068941569189477490030886265704082948165708511701614470228877541728795668379812498953867695902218417861855227014856134756897976802117839153982564761363578572773121393325404541808452098174065326144749052863118994300450266589411006904790445264841158721031525243558892373085760944911156818274985453880027893791698692233502501924972384490533518039135691875660555205254326202674211837275500886014621066543096462967522574069289510416022249042587685348079866344908867100637063239092920429750566384741468740617763639514074384631095757893165546442611061800822321938755700121375735569263927941499332029849100123816817773830789588257057234615818221986922398284751794007565188426913784202837953481617439094902705080591595555606256359282868106761485138678068455280234585536723069759368131365543142256895528277449267539580979303946614762176791580883508098984696615054759007292314138413115663613548860133074204577307963990160161345190208470812464515930663793192817649987861558428545296050443751018498514134875011392914459573997544374122206782029036668562592727076350404596370354191286296454565637801758757562496326078063283341263980049888094988298565946275607320028272538057470948984897932848767429395450506381118039055115099560252008297936788171702547816853711989313765325961354911310536776548205702030480581885862172772752515911638292733176566133598240767108211231888931472748310493710877315667902184081916886134923611994742991714663506220372574026938619678776983528077037961930817669279772089630089700085912222602337044481368297230279390228288962681264993698236115014035937635915802990609682216707550003083243933290619349170743142440264555021777224182852970836936338730992363501064739531358383833287585660258793881630701818411543020469776669453414667886563317107026513852411483623963297062534550502110387039777959702903225500508020314518792229390434305839799563641152166169180401085101990572009431179441352028491379822115899659240359199813632070761290910621848087906572930721039624127202481131369126872134382960768168358271872464295616813067130048467266712137780253791533752524899445131612685561501155005859409124813995181455964239074967057997633518882570067229656844407440904110620914015309549803275720627573163875700434039571819788096343583101438503943214520851121224832387042249469263841073756012276832400257298748723096074133808356938163548553142370199710116232502291011943838037177715769387998852742308971868064062725157330504490434403452446994850002167911631726991939511533274681403658274856488817238264617484521585110814545333213913452537692974171224123977031483854881951424473879115460538348933328562680895674980967253955495354294540819400482333288461043758563949731737869844421949847608310134324133201825129776086190525891629754873384906035230567107482942628142515668654510480000753160152275079819456142687253535955396645073919421793635149356994344110124268031629981142855569201714032532847165423131849616861133453244719111575999136268426394526052639340106918883570792692567085682308786711362935566017389025640918850515443681788122653969177403285399199674590580916720239567177658116051813487267759829101057104999166280488022248127385276263106803636076306827990050819002988483465283086371839041244912507127245982806514759147594280965126613644821967292408946584628301469438003152110731745483463571165135082432996444193373150307029251595476155159006029663927075852540867587722273693511881023636307249348354263974381210317637732530153627717435391355927008189414508134031902446744872460780438742237719682304940402814755429465059938048680746199774805309781543036316320589705501344129327377172045091189025213180974407766167367551763564881518276305167831034677355149748752086693261961267328591649881776881287449454848144028791122443917673245183364424353488014293002429455677712666081284965706188058972857616897410122300734181817457133237305377092047196642534540074703402307753856281004098096713144899041594392000291177690305250047081596226707265503739398680376332795772684130797128731792553459104518142042987316604122753756552881143041349512834518325947648753485408707214139981920630148166342147333300687582460984039322620077205981598938215620955463061429500880895708900032128170251834681389394543579082501696080700403556712088454130158250829093924527684034838425104793233710278265472098429516978236748756039912502708380774918252020319488256700557269383258747107781324742234535890801621205629542352660193902438557146238604140775045386962843723821759238476890924314309469381842229591129025173269023999827522326740981508582645281438812303242360325539107057823706811669676943841190625357071283530763255181063874866391422258439452422698553243636797455703789481038786104540871450484582529210573119054524187588907964033261859271983181348527079201972159892225964003651041653682584220280195958435585258767441545494837582513957358110937405907150559090059162234372639312547480194549012374174600682143039483002392195402058756563489105816296728067658217166800821402383839431034911886640137449446932392729195616319466508423027700011388584782318276713103760103491593798613327267767429212665361974368538454539218879452465975824984371776367876265636457388584433834693701873073293146429411116915783425713329835360018431731413151070209131729361517653509120991162072130323617114745066672215100831493364410661538681155849991367662901884946830003528690486200409183626194293354355310105525127262916018094162245875794068888753843886288742710462576396846640721962374601620330915817930915402464749389628498285834118412491019621455110726941089108296998870975838408569461833648185980570013336216493619120982850713469684305616122649463955639680352915569645497786538869394220936863996081647345798188661779654943386011135256338888834544621505724389679723374911462313107467861840925779089368528581023554389427059922130068278991357480195121446716711397792478054792749766218211747002802190555586279080512183973985408108700904330648249970054761823939504639505371813938621274857166924308271077370363355085718738038299674113962982558388497198329984634833653315854254633513471426263480095350828210687066412114249456635586394471784776067325257788985603051980112997246562183420497444391848378958783763674491361031780623584130306540924970548386258357717257497224435397330629742611154546927089705315716664082701872971569862114912352267464205914576919317056415340644419303512813404812924841982938069484741659481362914829711056164102238711687365259350529935813884810740342850177792776302601711335884116289876814030246174599532042774834662296101860108505770429695280428773582711431506421273855045925154746329187307361643476057975302649228087715632243554234089452336879263609700824567364775214278321422839483702909546857867908347557952283350302095328243898973971967573327716984541475811164166284864372246858448126419903989789528501249818783257182596945312852105550568226590555761556580140706053320067839926059375205947822321257901554002766419263906999447398492600361114711217716967372138092298433478694600637745504298719426690102553018612170588267366752994625519228099036224543946770925791421028888443475716007858090905564887800190420464138671596870111834551763035779449822444075439544086394290635170980832113662399009752561841246605836462951163394988704345058019845191425032828725857562840718703959275628509066639781251966940845863233459593143793705131239397065292995516536747798626058897508979351743635216060335071316252305301592150539943097546126727952895406836221669390269890421564751430861198374669275490958848892602398171862539790585417492608282605370221616388367672031470495306663973050311367129685412404115246077171749337238943986739424446217303375872923382772496413941187151039158612112081950925345954066476463765987368391709280240978095957729338952223062449127981186253101739368633504080310456776720317112084191310858857846246340545255964502455734124894325935650146136715069949166085492992224220683889795095814320229260707953450102413817321537463253582813270231128604446124239912614427651219071355232326345545857220537209560758138180898858575318475434401679053150080875913418665154312142250451785043740712584571108340684200625391119638428954911431732643115242582084024587535376398766661035422770022920858548600268068246417008964177011256181194205955148641487597153797110101539074634120502232990566467956027136772039631778717964163601764124679778860970085635909585504812421268493351163193814523821567516005101637407877694626092103092769774154776801945300610382356032124538844051899436024475999652667394553962501188257219761562451321975825626258734880652117295133285228919659151942930842117946363499639560759073715137940153487759465901849955648444372465002616868594216638146720762952350048119974668009725337667244226925962590942655654173898845479696695479889526034631591600602420334597886096946581118848353397196576147577852637353908652866467161892152840607407920656302747123052057156180494204254899312125105913287377404336375122525991031613875227976191760862888726315971799815804783445692023377299653213643804706164132770691602252145957925417888160479546434654653315235892230603268623980263730809128300495529901338677050064352191442858447964243013314170411826406975793135150347544412784692874184107900188157223203398915881519656062188830819062664932870009170889269240178105532858106697053247680021886438072503428764831433753125501759501015796521648448506465080036045315034292538032972794607420171965701436963765053207061423848237132262133890260265511134085812238523750772711641542462454122391984409471448791470918610118990921619469489879647981862519552802440392464602987879305441769472992352818005376051523462520711707677361711800947101529998092693612820963551838957724390935758239433970062392015114103268154252915674091718432941580989745025376730580316709335845580476787523656693942824680407754880881809225834439381485825963326390089431956331667262831617973979222579168026432160843021428011913600401445160833897615400078033500223474224737950197336767833373585009899161223565636271420111335307924804059338473261514958499592778677246054121842407439279313190648700926662700625304234402903394608821203639036832690110732862625682676027204936127464819235689236915006351962190764914862764440310158726706690688844876824963044420408938405948563443271883944546250175553009308609882191115293746661256964632856983208804213455221315279033059360827815520213960033477963008576798161793771130491863262802443504950529707403198865095843242071887238256359865898430643931069099896404035909810506239394158329632646867847713957034097426532103276506666116292540370057219332560302631088625543327057809407031655933826327511520711221743350446201255868356185247421716379469940886245397916334298764169001704195153169641423914727339175687705025548918740959827205334130291101034421588072766892762666611318039924319320554391105687451152262781624461361941997950370982571797354833591583342140100442675276802103385108282058987773165572236145834358045449769245923618166326238430391258406163197564354969427506622656554333891023810470569700431065248472078611334917865951255611818139627782702826018888362713508708711843524477734472084439998855954031806450034645678769392423073326910187360390742979648423273567374020675052652874072433888741626639761300849097795169557947584945472020646696315365200848930878393843167778022699800474795237975258714487736311000833302188484751845786797560115107734476863966677696372738776029388887447473393907751520762675689446798894489566691289406864992539330912340190415802204836628891557301341327605056083911627099778546741632823125358238604866706332659693731468710371803375476809295023783466831900554828249142817190501346377478912579946904232580428085713196017104779228499866715346929686232290549240394131052314078261147137971340179005291413616054042877859892732898425977755614856852726705081682022597268781466963858222445484938309523271965769496190105887879160623716173653865411469605042195041814217290136090803707572300998733291053340568810777862571464483486198478317704633677466467326155509260023005614410098452320879626634517846250933476390056325669241786950359991242010633641043293906751765762275788550745651714647191732503234751444544671662933783235545073140631934042637050782094782869850257423536929517595872622672507925057258606876635484679339654106868562816946712602353271835152114083290582571848579049752859561856666070232909694530987420010181261411386526669211970918133407763331547404418162789317979842878621095325547916390925723396050534897834197485699846361693802260440750739119871704339093160061072977350615164448454402264707453771880056192384025344534029010925137936812949654276014576920078850286425242231977970046438727291892157619959037543029507651976476457147325538879628210025754597637066790665036205397628094563718279634460387159939469879450618129926043263397226955030601491965010497235713789964228179683798423498127273317848671495258293899167474347381425927364268797491057778921188535920451276874742225792263012185803508964615636753057321027826115691992735739626700948361327075356032258322447129629340363857510370587670578317412734130205662088060117802493852996754117354178768750669392800906742966878809358678390023234692306230000913809455999270542251420723554575868091484634696082777209255274087554418980475378188950126795063671222490398961969657937299660125757321077619294407151070198983422974570098270335514180754552040387629190697420563194224055604475585952778183362697677879384630714621321294543995154447094434736556427268147669331836894805275356299477683736080284808977414197730199297104640467678196998262486638595618532349179443304057026207756644268875497752224939189158586638504236408180010919808945856440627924142211531465676327313857876094626815660812259459851199222003806325745845561038807686745253078888111789321930887481497096478996957383359778637370300584835176065022474971218345189674514968793024767168297577747693928749558589201718665584017306973000725957142171618319402326155465018408326964433594342002525831607370931152142302079853663100492472937817245223702957058238907406070442909987612737922259456817112633168078847629949532800504017637877124092301801329731969252755099262470830029588209053091691171236071382813026098265903891557075239518235068279914135389945274493529811259221168004592972530262339923767907285255003100896735156659783131960089408278289507591974536651381393381307309471817687950936460617765306105020308880356375639801503502032463830350201335360437244353655331950707316373762573879194073337473939297874167832838951928136821599542749336041405105839272777467081623403470013091016311733096877967527982871206703007028145611214558435909517906975382083849106146606020772614294869695001532138974707847579575680146187055309114238619522332940344008895178180105382006142472307464519001070648102180654874616327235904601414866899476489403195437949538624843329537735501846733015990920032116392759517173194182865923223323409754931287844751687088490772180342564107093724639789544935087821068636043510665145867390437055744038195619074036222401861452499314573663772277314215344851494212124624476545464836448683214093080992934036909436453875122566501740206224163206767968930761478471416347019824701362858153126716364066084527540563912837990816677464865524816619224463368967055233303711035261683580537891235142217781249443412080325775233897025107793675356631122743906127036371178690189076782237092643780303153081613359535296477232564592691501258089688982717699035034376753062720520700972460769629197608725705979457067170049729277689067011233090059632355109124438565554105368971289958986347116190466277230330289646216810743079761933871006393889442793695272723816724616378693335004080310257857126077203294888013907201909670857443706721421531340361112311129350355027002199348858139707153797394983772735048464801694539069316325380726254484545085151695242909642972616046378955649855471141407546102593489360585852040067617445427061777077743453466683667918395662379665120416512836434376659983540477445522444980808461143702874721483607427124335665200195918399324467613222704588608561007400501232519355432067425575068633217745957764355333380249456498175258149379774706562327268094520544968880786293027836129540329796627871438440159876523045841574266662864771279886176925364391545544651016080086048134936387566830739142606505988912582215192410724581398353999498349788035094503594508427967575230819284180492651236871781603194192232803580926836921769315142829840741636494392458011323592351320096262216785757034625113452063998609872200218123307908874073220454734982099879560583195832671939189305875245670316607284165177212968409042045501236230264002311968595169590527631530751558956972479137442099558612018059457144946433974032631467245121911771532503973699743531763911612400557207231929127724843471385122265974822809228098905965983626564693298014584200316529291967612711502332697085310147140119424165364966128865584644492965188939816965259481233411302061919068150780869596360807831556715088559202588711247045074958880216872831299251431250337801909587539411264521631864466565373537905480766031913460744857465636201762623544831201708662980612429347695390996319556674939520664383150986493587354191623693329523587312055066973659645810044017693731842201970943643636558627976895017900721637560755749955162640092743490056880178494588418449081958312167323239746227142978369862746486380094529029235381650237092054902891479415957909369302780277066718630827915351294144176836342757246375842130909494120713169960417255014908517268602173623369585143999272862531330936025277988706011585825570352348993732398967712908149453412821465457967219858520607046436963244795866250501415197661089211977089614544611872257704869937098680780098258388783789725612901222965364574421617682297280747313060772950945411988153274906382374608405670150002103307267048637477057470266956555428190912327616339405198393906606551166007696632536184847083756928924409891429799960658975130185781088649208726364877856695789730792550254873749723597035729881435582683000170893145357037160490445033084200120747969871312212923784767414490649878407005759784701841374835579604856638954799737513700864720705468406227603999991898635939337491513830404050673216627443078662328619556843666891837928029708535934142265344205798748698114327928286009396523535303871768655495950847942204089280643420578027324382448392983497927059874276447178061505205483269288947801644700277051951430900289088122641287375739786873001395947490606510090461009136364138877064751191628704760144640215157073264883624030754531104645949128502487018140182574151323756697982031649572998643077276257671997436093005960868495972368848129724881976971099420063884339304835434361118420978650483577055231113952586746828042690702932542161143597380653311722169262172885213012894518308910391341340563455301778029397904127862949639134623364353018459250059104611045734221761735696939193065689670394410741136215277985305917541702899887511035808421465454574745383982768953601450869092970108746486914420869622990363676414620052342018002981318416447672387962023109658850647163319607637148043878892766102198664793987701614325134206096723728257999295854634046562288855203886178248869719113078433130772026137130009424319455085586584089383571879200162009841889911590964901749588219442219118805424082203985112410520343942246189151678120720620034717569093236203698264469314584390041731594774730972654893598907408239491610154032141489618148765393995803629020088213030110294179340035450401362999228889745039567225434339149538964578858524230755166691420086763745267990260628201537219649706286747496928357410708673568133733283299596189685533017223387530374154570465178835109588509237899707605499996946831585005334335418068608705997133008054655160975869942933733858837490748450928663772256295455884307454659422397269097765016532561987230540030931602085234730322068271733922473549390096206783120446735145107362696471977090623385608067482068685104303406162003669449243700551302976749129536386163179255095874803226230858601151651128669388608524346084411011919799129128062485715268890063905143390581925044816387997275620364231891989514489202550997916465573173805998565036132885891765461350040852378611274098257497000498492972766597731510507056467469354969365016527389046800972807222897344505465616322965798247730616827079969156027840462852658329844093066748143729222692513858676688195996817734592470431694515819193482409693229869635404014796618190791756989143727552075452640149077710341629693150462150150190471492161001525994293305532311729200242549932618007963349545520282419209635482434520378510237956893587268909503393140222962522987339794710446746702877399554948007557385716013142061250292784987837947271898443159524682821309705220736048382964401149212392624185908249662435918043019301073870110094499088414467659941941681104006406319471581215376804173142559261683915576813685254029290992099125405363399365625467556960658059139445309983267514922239840080086143483207728077499206119266715351047664103540858862339619634417647723345844136591565364392449677440694855885507515043734870683027116211798411538503718433601011812383737659851317645426157193059631074491547937708356697959915863530734019175978791039155800261990829432097687593805148057007664754769062760175460960773196574787306434810130060985560201452702456032843669073343442625903231145533762012695389072157852587458870739991068939983355850471765405683849784977776475726125671880714646658092681618425153295464467074332327753632229797137746270649697980389571878130001642904221743259249771402580231567644206981639498683986573257184199970786098048681456301030240543176824518874053264553709024095359663086153205055485784957734879000579087104643529571973955847583167359700393178725639092217822459063525708808053624599596277577691853975559916202766564309482165354765019159442766421800295252719268215165195486878431983063253410259274882964834409730479293157120667997367675166639855696259991747637248193152034874039988524423945555675279522870567283515168123482279214940915845570465153026470341198659935386764304852194739379312544647305014577761307736770653448884212841865792057690497665862677812656713951495978570845796624532464537204441623100423763570041452085284556887776291710526250040495129811000447863037814993116994010033344924814011917970439625532622191075654297471491345123208191099556040742741141161507395326002182719318972859674779791095726178029625628583866420006205788986893104653430937942926491610492712528615112976317210480066553652942446123404440606130383560938271462253672341765508812854437566830477304226472892351070225942940057708684167346470955328953171843416781241057885250356077833234321145124958774711703768099355249247019758864539892969313010492218507731801612527688032615686679268459324749771471564868968692955393494839074900793850772108478328203685792807238704451449609520515447736107876111568855344332421365181536184447561412211003318965166117943750076624952049176517262688065808712946063671318812642993892026278540527299594728363718786857457178489636665833074060551294929407488334820580465927463454823365907052973724910371093805709017999211176798905989380558214265306134953153740550178762445133049521304112415441989298755488977971055507337311053676114152289352664908851254237821656285893349902159086607372506194189672854927763351719087045586908369366499994743397642805051585103442763702703209242518351099920132565796984100002562351407001864930070978344882541806978584503465496229723156065530942279310600688852820842180326338449945647904213181637260886690704507254839075453246021566458819194321864635881368232484007345901865702457426846637316541619007999547759267377368245388709714273789358685864700893309250997352405378283827817767649923658287916458832565549262284542729544865998830119022784897284031188460483967874943815632849778365880045482950799831155104471038805080964798977549730720162126438545336351764007695396775943859300722054654660398168143146564469526850017188640472641730486792270399562699833075454363602788130315353480983464929591040741618050794041099230560297932388412185643211724787127673114090553063199695509448194586467037755951993041545413118662552277528388093897337153500366963976576891543770183571038028415119267922013233977390765440572188795433990314198860732986719991295698130134168051869578762811078749062618019739032266575508963284237952708330442235690313136694274775480560053136052014996924395010740139917204402563765517994879151814395521555338905947254324332566498898470318245864582273715388816492723860749225532363635120164865753453733518336431095739006082678971729803029687472372048688560663534928799784337977860669888467216124881882021997002631044050667623885415566069645390542635197682246745154608381283279664902598793531251242873895180566573538755771261742502176943963859900685414762303761167439772786330812781562770696855197146108391156480435380468707745792299171559185625567342453583116592049478427314995791628700827208458113503236295409453530906210876493575503544657685492174355911455899053934349721577571746334371331082323387468677737812671609983435792000110589275062682057535748057926166955068439546821994019825458133672142609403473170253861204368843416060626997807270565473960415972384505543157567114456689338929696456447792836050668495989127048177465363103557609301695795662556091878367553208732518276710425103192703818650915703637032645162287651342857746542835420477531102748532111627065493074649046639437658400785013014417075372311569337893867661988417700691655064752071354381714468551699017112790469551292274785067517989057093170385870541643718441578120568193582727297698971663476417013329719296140572211847927232876828728688894873324355996159808671250391401394313700875537623499998281084349026852194527395677198002676460984266144316925719066009735967293129497634365200099763248060555680533843448118510651371975510616083098754666311504614975691718579151610571400375842412854854042653064505868010638456028832301219525047265400040343126347143202085731485385228918731009425769825576619214086928704692220998591880346460418774654992641620630466065943552665212594721991623411774176940531077353080286442973176959361246216086426307145798953552243515394040845051458013926805750730489403504670818304651530313666458908957950982309652563159831339302794857087302295378266781330497184785736123328077588307513697148842647469806192461815692739968906420464545469491032744206871863360735770737320929614992963085247657307998832231687167153988503875171673071165832114215674187166592147640378867456495290728307769171574553985693263561071892472253748537342062379662990892394603717134619121416543879711125251027997769026652767042608949339840559361851172618642963708791900438322686437299929251573013065508210355662140324681238641582570088945281220705989616309461382736738963626374892053051438621282640724160038912736293570059840088273226469397532784139717007660639710318792553932977094891510458205606717429241863304447503971238646496300051532502159616379979531639903889881169849256592288561432441684403843827488829241307556321589544226580549087548320886538940045124327953106646496577360256974002972534556468552489902018102279832978648855092105674239844575394028223090597486033565881074896092519230605393771643142059972787644722774678796127399003123787119248405228337700445005772855088262331437453161287226438524313447319675192624120233464151754306573723789106086821261075760072213047576772487271485221778723495839037208888121759929932702061735943684961609337629992243061454850628412025522712071781893271232546812617742251669020051002032821327519084681669326537056287518989362578917282697991122650674679283861348241551409237029375386707500529420970229363365164971050944914288549156361888777577819052727519227563593889301014208475962876811988095495520020508383648159064062613941620215921631163581237716436571374825263897154966035964451992116545272289208334428977948435840482745421082977099879766165679100310393204436448860074788749565083742137171468808498887402027548628539468365127659691033760729236968467934964229534635314000669020888664832295754064634527030424650072755479511594113670330718434764131198312713533496006897426252878590232205401611796017497608343176324877276156732083781936249124963649942097712693451939855991198739073175223383313584851400643537885993756203801340506442278728956670981532072549793134920687348711772009021452334395389343751088092361019228142171215505335842552924643628159487512839079185294965104113500780378001616649059033958664203296243779953702469097373485091644119337538128205032458922104894980683440379970852914828974513788460056837756718651693871619700150569864664873337313437816905503169658272266469956291000056756964571566976807422781852442466004315501022595080260527213569931631167205514744027129837240397151816645583418512988058106501899719830829992297725212722232645459637841806909311684658798063566919404165992673355438528259770693272268496565496697568723508979340450854435737869346918171722144638161279487512689693278339983590348498741768092671789062490513260276648724823064493586587138015542553263377221384627576494525036386131288083013008014895664438198225444012505894409566346685914994616680971701488453858132325745635240801716578934036366009004147840413950586823729405553276797592443960958735499308229566808514917301548173758315203439261810620150074734331248060544403004666806821289212517487470335460119458349670663528121036692545769769998119701549619479264353247342984759504087778621806325440941637837686853887101858363450192390384190887106730037567483473890722827711351815676880597155820807246270757907929021836516431064560381110795890048155744172585004567168900404708578310279664861938512318826863431997295057139005585348837000170987120907936067739065421076377328991834339025541211990152548436715427756800595325660080727989550855549806073356680790381568500178217313982455449498112523372143376663354873957505721757532267714262552293358063375494476962983804293474777010632134209375389203829739695846376029653374568717171707902512046519095657934752278356258853707628831512846640320629093596337478956762199592089831159738567136078851507856371291246507164269367256853870981612795919575788974710930590806907365884870012937106194043841527349222175977439580272049397027294790463606921590113971345378876303518499723571739946656276336313847837233498764437037557318047819390694953968473267936806005064520496629632735370871290607244915656372742703241541850292182792170275678324834691198460997254651690056823009957030038403906550870191514678980765977815746411962031191609215624336782890924235985062325119780970391876908573060424119808557133584677497347265859891188489461994549210586384124962354755057331771151647464213436393792973956149992514768760864447955476619700383595695118765600899059278681917675464752234174793542365161928413294329328333218539565649577175354059582533850340756319673603129156147529949295075884829675503816244319366692642355312217076258389517404798105463869674815652385240742864324046747786020829669672950177012524023276002508729974266394322702000982069874947180350081131991549159066535130031134107125225528150456737246559358380721100633762272531280755638377675894217598968907371145527010291279289572406454791195691626654338680491356442630454500177481684900634351021419712788587307566884174720754585197004776622354021656001468836595241943099087499551679278051835902774237736867209348116624977603342087570036488795232757350545897723580684842182106990947431806204317198961394537909670825672509170153365568225895271028914732329951493535245285607552849909418140575643429183097590781932556931258001335748873087481240434009797119609918214355543971802324430574219820006169217728696201252666654413398723213150576757523162658773701686290894250672350226077198392685448083859409807027806491769177386044645789635150048970229266482821618841298508803656683654860129768451423004381755811739233784452837350117143718923629058352505534845750741799829493264267169203147655649078675771462556039886552543869777362805746520850623536272292004731566904485756330143465221854332593848038625293149204138557329493371117408465219513684750337272683660379707939627314628628133683862766731950777916938273916614433963841774487631145073892388721753297594527694780987875692280875633765796240987336780328117312055497483829288554803099091059559456880107657113492534074898432961229130822273599001844427948033332044077854159206754979499517001903064818428650688771959245818789720159668648554777845359765047686478256826746616339655057060454150031778797974572006539083810460710099634326862197654678247874520117290305125364495650459788588862752264562221619859321652313554647608298681518087596196708419366203652888126173334194786558803538114688211494825395519193914760479812223549363239751072977231382094834256224561053489938665865188447166742239006686407042948452790992792632586632395236244776804931499835456795190783536680409230046514828858375158925854255620903091564189424299404898847817352086576471313151230955746623559287357994787219695634540072951250140215459332327813884009603597679121254836811269283405329017319723504536075973756316541972816926544841731572142212848949590889881056309092074267622887640721654854493760584330584294068302288596630045355661404060093002820900909361701306960594142880095355979939194709580486167742776491209870413634541445616991458234533356567522104210016580924249254898668791621886061397682578352945398362235275684433028301475557734538730342467365194046684481605282878483338904030127360618359291613616937899833329052946629348290663471829147953765524434716541208366215928792439707021427630433002000365484643934463306970835096211307968715010926799193020450635514911222795441236389185611479859498986428679125885763250258896455183575235976524145984764769789821967638054776724535489248579436950359523895672177814781156877044898044338398828563098430753842247341899420308911172522055552343132772337120350480383945653943929917944374833425714862384507209710315512054772663642168976304254344155117118938488781597133160366922162953156925681230640176735068371663520267634241377368891547744332012175260792644672756892609055632356935979941894418106526447764303290130381830996362645637266528712851989475321917924677617021483619682715736313449064401463205569675915737477874389721621296501372757008262079360222192942848097865067149459550647775424824184433460516342033739023276295895092309647093206715415949541455982037519282462164175830254951866064761639458439449498461935498515161694946646638370423541518232429907457711013754710967567203240387211749666349415077647393122912431164199849663696270342657944778273977876362265255984601542905107939980753591179261194139581979306017267152257554826171767506575068599888595845878398659976749280875315798067886421028060534322199937560676083467554417539153545025110798443889987525507973236788560807139275888056621363286282869946595565605692263581244514156033634235794267234933210283368321619962974826777019503921888258656451925100883145782172132503161195462554450670414951952018896910050395311114758459954376002403968819593630554885853781498634712224106551761870530161583410448393411142257136419886818082253717737039111500379412179921867075980543840638029707043316025326404520734890376484512009284425290403684297940854190585083880084886359460511077675563060839128106511712320138270292249497719274420700576228199150550707917126435910307272859751835762284752022393697051381990008504512772397655925833161829500690533334603313502821758005869426504834001912874811434236388045195637304509665125521468290855280759169769270955883916156415322341064449943081268050415203978152080175687871143090074156139331720480440813309650389745471523529002114030392688768403582705564649184173453456388098565600900785864763446618219095634113687429753968537818765159328840947955942533502832440552592206111764836479588548425527345681749180337532384912345529357526937510386420826172472404624285362012082993083981828993813985359691549071574826665117227513622690511457672645725007254238565535667710752089676326732159112810916705950952474646277347388700506141860694922662108329583262880912595421257207474082126693875607885716198215559729761188011870835470197895567135832939069189346813782264422498166585389586660030759937129711604670207392294943073346240886962725739670817618821887234984792944116106949725583008898406489315298810680229235629030136241573291050554901081861066910646489704297393517341584724183957466947756005192498513916796129313612364120378742647654483964490979278001558100071446216070459998715231517976001962415150152403810103848425068862120003410356392309021990714437069929824033539299309128349479345231975351885707943711423676021995318428035786568687088102301013122070966881907696833336639666066516249487270333826885018726214100785753886926868626666103783906785472539259218352578462596735162219734081014124673135884141439978584041760475851423587002198035427479847296188230508299489189817011431445725857286150304383959728892364470271261412438891496057776563851734342900461829344734991421202106884458910076074622273978679814903756855238922934990602277182274915138961880977760616064535499732626901692761840826800426260173940497033545748088554517788807283908229866635079274076435499292891701990303618635153945901157871927020131550769679870469663296699330298645053382829298585107397294370078701882110939417025918637750730943928420239168199669262649280603158755863240500842638168030054799538725661389722024910089296578034038490301451795667432566976381006440168078360335073509362293320701194807663947153148197293336819983276376429310754835818027729835061742831087566440089861899582484126755153178120331851826169000688837933401049820421754298562543999583170860562701584818285428881081975722005949539490820422455284920134195496084868501386727571952614381245015086058435737844263612432604941094742157434422340410814276642179457191277905908849814456259172480823794472139818543663485154325947519700240366914918541497132381333853350318085270101923944846287896972565272363586591792687067983537365726491533065466031470817643434620815741985010055461083397589699785310899385081427609529523578198429264814171991823282748533839365327988628294423223465310468007321442523646280865965367661851171035914260431631446950035977195997437125278387426918148092842858396821490356291204911951953619965483348308860813323215201937178389314774376668243309854246195875006619228814921799352003116751425208910447917578174440489612428905598543519834552355071925792990341533572574045376675565685647812107715361346916215903076249231859097650014989734378365523635411580712418091493696963178990995630452919841650964599273818849694406112406442243901877427328520884620974250570948073141418075925138855765388320349489314919221544515047001616611422148906315191053926405365437540214509207999221798378277661948263692883023277789274897954681353643481227496328071150037884614427468570452252137812677703513041401127579740158720411895950836963017084722792830091106359930450942564813806722236439354261237137333171423256514567428033904398288165486677966472873766337214417825351960540987960148469119128126567140362081260567918951465804932448308942589669619412887041667744236647421223020540380763547986388901376201563834880842777536991266320233238383804675166765741078351871816249812266043960442933322590297533618814537034581109108475391755742502028927904705139176572203618773785520810663530154275010045706587219181673080677561034360450055720206678479122321143210941580810214787873037646246812809619113845527827223812935865529144587251536672776988233372754255317454963213326035852237100293497285342409153010784270091224306999278918835003974251434388656357259493072633052366886417794488711024369486848470963650776295266358651785388208630775684544544482467712476783117032344117229056951784884305321288257781611961602537960548600904692709222101898955672858556129969935666950473242772932176470412806401975190585124604497567365446740409917568735026733137851170440400772559873571817308095275896814145460544130229620421512965118810186828064538709567199310901959812397769772571704263380923070715098993880726269338805340171903304983655672297302287388411715479683801131790831166357007086982602374148561034536723971053471933949216693137815151202507627371483638660194063284776930977151661226716718759237576685763877888002622815494483423464769242096901649172219999646457686856599386094097992457989663410708406718698311080873254287137012244281143768777610406716133146171676136255682920297554328437201598924755332476262160935774766888535230956802294891229201774925438668410845147569076796774974998070220401052267114712812230330224350607601746445938113020197169953878416094945367836456935315446082504532168835703581162565498698598225306590997876766128269043047182927565951029384934998812982445807166345335688445089827297338099087431395346741189682312134138520840677092582772647446576951118673665926376518796043990753150332090240382035121297179549535102436229122228719525409170905739183750724918294155168093591685199418079458519159492058056318385513278743641602225815534631555975270220841059215284959772589284129178778870030362532044417895333425658474007900784979012101538809646896103261435271611618211374670044639915862512927189943927875293745587976147457963481995173700458879361016821744246637572723079996887282955255827469123874937429732620908340337955927830095880245053906389831695756546399176067680660110371521966898279207918408037997984425695805369240613572819951041568440043151060482217745950581125848065509540157315479931236970820970314122677941265879016718088154102140264096397405885977805017008310800789446201992100609178298573945976869134530747154117216768567687845597452173892437331631046331548449679882293026542605769347915872614124881450625229386798267746567708381494726772899898672639887432944954310804989219926385025525963374225164753654217878556545104387158955128342166720772064571499128144175569022420380409866653341321212576435637979152994534241524440141342088304806615010285748159353109321314990878939473059897181490656902007853263654408888675229203393069716941092484341962583313754261428605607851791880205875597048307599830656726192352497070529994955115350002957245416933919217184777765190910838913201354692502530046828025308751505577199094566462849424896046377343271602511480482332062878252269924539369995830122713557790490349397675050926633668537439002674344739354043970764850639207049940178882582303789306851881036503529796223410598292763974456342943962372193245911897406382354224638671190824080313429178643387163312392863034573790248644970305311810012488081492528258593507545384351022492721960994899978614600186522612440921869916373141727743626922631850687800594231431915623536276058157870991280737432947508708905227931865350413131991152232156627240582578497956233848076071261672279065443754623131937238266518422035915646230758912783624071163651750675588070828165570941907704284788268341961940617851304945761325375929470044195549727877063350366655026161391422406276773559741073704765435243351431372316091140485693328363545082904781888795928274454479628056674684674461040707795571804521635633253968244095318235860112055646786562423449756233971286665924956126692953162648534167526147490744504656988260906879279595546267710904412529864384968298014480311290220371139973454063870725001764064497085870156828080264507716442346674912147764278916374955629169197129643727578656886187632370320185707457559326334317294141782777872468312108389418567151198062198642993370089700541386751604056432757329810836052768597082765074948156805964679817755967312891195290707561803832014092122868409978265019141462819753576420720368387255324226206983120423173240436980626594742488996949305081634246052921793255595860938995025255214408054511592101843568936890289689991187287896482071965153101711993549243037044728921873636466390129828784424084397008539519991964895453400552460073200174157800459015738638000406877118195917660642464062680859038435645251946449092336668378974227712143350993326377966946996826953860250603253555263967627207967126830479982581232988336806307366465751358652413484557198501744293087133289877538810335619655459205388275718385679031048129509371613419480308028799283532138208424736617917320041131831773340569890230499887097315208619178350578618773423199482425733412578482475515637658474172346307873739804261352678363903990419776290876098713172200418731284024448605834065908183156048290797508347410794428381529419050514312607735493326659141641550539472663833480634831132551649133758560774457004295998694541623698391551366529806344888157652058925309703540346623736137347919182622436196922837312862357474870473479195017810480573670299788286001873964417627267961667131787477043761137774670068253366285850927474989238780826654927817086912498898473311261877271313387649210737439133839784766127343556573070950553441719374208159912745058316296305756057490542071686973162187085934666180271346494399584044346913629382377663345915768693685335175426545795110642102743700302592039654090958025024694345950875958443689623971164209996452969103013122099231120224566610432036594119383805766904104532923059175416409320651132864263712302640598465215285567827845800506308656230278996193560593458078276753787741377934364421970326433742958621556442626487568934927306300139520862403421055045433923363607591485272932243040933256708337032472953806810108452602165004653436650784590215704809038054511983582827511324526406918066210819581735424658664115186913522607656160654320964132109217527015288181441476689144543314628782530295792266004411537068471853045559643365391720022205963958722514563617568021440784730298395721474492566610919725639391471921692733335685123107192378970222078334392428966044022625706398868801982017251334467734674464502514598526083247445487595781586329218791703227198850824368511897933596012863530206445562854251512413395135451120698784141458263945380913383963869531691092758243216695279753226779148130830910728876417974207965583602390673018828980821008665120229586575443546889044901778421015690200062098154049061349607661753211267896859530049842490892160431681038976590942890030634675546195237384714466175297360815093159832740314182888170607745529025787193065238823378821078991123788573673331344101762918452912329810466038163092683613263247830670306737531663855254270218803876902099914227558155534571306681837281542444863229916206413585770577182030000750606687533675139988924325055180858705086352898747155418952031737691927932059558573637925152112008659879322181010379236192820606723489746856161697640157700397266425871202346154280675659477584351132379343560972415906276820329103226755762188845448666524754274123100574043243080715091488020618177587519973936457631649863972312562561971149325481934990702827130272118654717942133551238736605280550391811553787415130317843650015153207355093562594881814182923909720885602214779082513441332469586153357325960350153613086623645419262531802859588317149253438451829011748865430004944269085635319906120478202966116631190664523806953282575923560105452351566162878392226936150119652511599323078811910672713197376781604160689042129606943580105282826355683936006607998143994476491787040422262756128635739829128431234482858931176983291451971415870757789433063248515808544025230927774148581363734417891273764821605508543726318991502430163881266224840712506619997017351057819738398543922032560874636469509801238114105437899643277781722957379809326260729807602477906998182741862316693166849692268249492089066746195462058400572998919100830632227228633985735752350614153216196831065316674727899219661742434368327900870172948389559518399726682044806415044748013128300490185643671277333429443663517582357809966222573231485300768153575392782245525953307144798255019760692211721353221742356030102732243601837237114186283999459205081623542819129129647499533853241344579375272650581287637381451980672628260001466348017145506934594987592933516467479602593889695088076344131354095303844663819392493018272644023025408485353528307406083066042429796990977852514788159839249857085237504159271912216608405016914561359036407321759721945043678389727092312405224832279457445467640620150532694679215593852637894381647480241598776526409774681704266764856436662732405713399114958669558439988811962167768821888034099375899911995908602095203022140896531153120465041424670939534824571346243148040932767088782275332217403211080397838316234755345326371298053489324477241876759651540056441642313656272502846191563245638053510043412117407958250789342386580969751588654634223487905818934206689399383898767563686116630421840221122736423543133054806775430764567577463184725932287801344090827683826532859027906931766962064651340498268814852406412623823373790477773833332247231924292786751867182991877779864265630928562451375347102681604984205131068340409810617391367022871874664722513270786328014559828578265768213232573908457767919039076608218719467537386359996754912120007425596332933336044198544191501170578808507608609479938797270035137482186062134928793506795919681038786151657846306710466756474726672113582946447216317729653038792768504527285079555074596682931656523795756673520370276677494351641171607463237019251783277635921653772197549988205239556881388842838862850156516124628512351915125014122887631732007295630159442168388344255851794736259797006091158748147788974488685293295143641969012125980537709274454907123851080283700428373322140571230588371114937577111026625194692091844910627861467413825736838035843210228264184571876250636209192850055886548401393887580943598694305320915279706625342178055153931742127867487082575464623731761804632492684561523249087634844348784205719116195195886577217196732310330608862472106679505470110206666701763791329804872528946635018212329464552945376143637052680121075731713646869841282097314160757765734336018020873413835694263545827268567565459204715443206488621094664661757983096098139824020094392330232239492698563297004338245320843826059859452440641427747328186000233950353561075542769908677090493410649193030370385681037680552259425027494888719816079116420249427091706842554560209974940685680976648450719858352789527606225742644282007221778159654386602441553278771835786632163950137159049214973653028712712919291433035258814328876425297583980026308281491860837209467392365794259886293736328480859447256296364156602430051925128212583663402112892019956776768540947290634323660266128707672819118118533579913647125083411603460698367563873160912387917115241746013693751303762995994912195428285304190941745601372913988667521017801510066869339047734339321782672785981968081437190093796890461242555211649052842064247523073479490146295748434602102979531036428790203556199647776822216682405615991752885817308434191414356033123089683897548758443414716308511610753446674829346827005280203126718472161862935413970537465434556797233352286128124603892787743142576598627082872780265671031169353944233586226497297593592516986747319857405866325444935272013171436930006230540899527698463360409474899208723380075631560697502768888007008060234427449159298428449718727229562196136281519794002040185567837182415625196905579871082678713471715824889354378956787525609901662458406895199132260218634411905174645402272247734978220639519366672534095764561598982136673836650777602305444736108400008253897923797622867617178635820302660517340876523786847636156006260229461182173391952253412089787184002507205965024567483222396538176532788041098472979113854185166328011107260942893052231297996212221843124190916456290435108130368060730885631751617275571520662667561385589195307045584003478779880534484216984574232203524501782758480288109490592927034221255859367464082676308258565810916915926029676258920975321643436616536176973363347317588478442646542329962379063973654336057729587230118107053470139313227013260185367290087220409484317385182810932651321746632092381925351292622382941104501996149165932542946398931210210014857956936656881657233803231934584896861723243229375907621484076391072408022530879985999747173934465064873023716028201438924909637265781375654870217284972479086818402793126096689124311454769154197874880601295947300530549025618407662902255414854875693566751807057837974729143282303865013034027518594670880148145732829228530282344742496631279090434109982377949458815761172224476968874031977047882661030996706891108541943734246054455333521583050554330946207688098497208266466356603214306372228729030666123297296214652232908432291566399722499765291334992552246782508635485679575674411611284556713840294795143008893420170048146521779907770276755770199201575521044935051654239429643567997703344285973587638112964671296730141102523200446618362896383744223661952210039763967447359341848989294243746526410971165130379861802121605549124940070330311977792665588565688403901994750434410278812529386097409317269993006787388917885320174686136617933216413365385207808614257341372196942942480875966018405282933111110321864465648489607201822313186721398336133138515902663817394688865278323823376658586676447872627055365984139271043601498396700515412593046114853066260131879195006501139376750139549438318525226798141693006345276351803179873131071326425298690093450846882074121156718702247595786786667501196797128634332932479156673852200385759392173055207275582417265117273491923745695564275594993612779013000741204724794334328074480840679872381193181667558879098618783326409036694698273179209979939650657416396326430894018925698469093792143831473310250894883595418637118244597534125040127755454166059191724856502114109304849524651832921667793244315212988387739683302302347292307206520582028630593690869964934818522694459134017747602763218006133192939528049995879170317001345523630963682473043743717786980869919685311407891507290205690063519274518492434341865220245621320152857628373582999639606145127970733510625946541712254208159939054587616683646397281782070651577398667539701712341060375760900359844838480376541175912894209123557898776794583753007325787168287850433395532533092873223463936350223993195824015754289314561552621058235082040363631159393551700925185140432148306684944639667021844924635300571925721176623350145170794115981250161770008619899699514778172266082116637707455261856382040203212255976028571666873466354465223152254337102793756694790191863575098098688937161555757253473369231379478588944144546070684433185288957886579362116915954341792519246713873922030046159169979832806468483444751467307878986727221480508581893084275051387047056717539153970811790814583345900141063078857566680194345067240865422306490191064513180978174409668080739141365876001612042253602843455845961300454907699089554585001064268248568105466915022597128398089335353651246812631393546997238657301590408303188545295171951524974585445646120771823377397327524569677411920907382533264950140571188985050495016793117454513613135535044985282025632185946255061199080077493842274807522141723194323003348826100362528957226724930647628898025610167598953193908913669182672782711700742933160496705875117462228533601077038278310960661863037027810976809095506484165102272632761629412498082804947306864436225256319098390200551326573512224641970590293897652323481392774657212614903785970561821358214427544275152994516585997625135352993656787131061622509212218528182889611009607340371976815837153891607651294918066919336912144605940097270950806987327163960155637604271919254713856682826462773884696248392615378791597556914332530937691080406194491363468678392483074133361500213524474065715390718942104734680746090397983043858741623722859333408040917040676957850560941094960062439437872752986383930700286482531273055793475540378459792155292915171737242829494913924079115285527752990522118061950884377315724904724527512794406114935118792623587354580515268904103042064180719258616598553711908491061126251753259699796847063959709624265196792132792199116172427932786340317812342618623636487867983522375243815341528302602211827104653429295185579254274031162146455476902350434249817611228001693488080365777087449732779757393081811420603022859862089219238676340856084101310280680614010764382971109320723434657710507752073869648704795990413132375157181511950109277343261173416687716271178084627227867100520849670621381678098261111287261085809544186346099343719397101249243335179930352015436432241079678415779986719081656654703564021592034891622232996870362278889776061728658162534197972796492592471462130545533306798651141601889733505458406930288049810116973852625053152689320020529254226226693767426217047455202361788522111148555504274547254516076683877960504293059226536011660487251260313127153307759341870605302537723539320465998267020713160253398173168537286097894187435116621693129896885158987508297395267343584340825128085027048794431423883696472179545035745505309165801915371545739113324208793922513680479893925545811585290895038019250454269174537639432852890704680918946436656343442312863575947933569666553753658715026289912232261768518082960554317099476191561698215846086719952730993767566324022560339084252091458588145069221513025575022178146684121542041159167514496187727401144468773051286802356340323349765219236983297163099757894884815784811335375468893249923558815275461941789459748024422783376513994637124877516810568234052873830398196564097426291225470658893492361363615048129160757694539965884600042317024439086782227998140525817482532361349188068340799512998077660898409360145366936517448352655852067954826566868260518558853481029777744576155760562528121572999399797520980236135183664236471388418601697409947983889437371295255967051111598359762294643908716093219019730917446574916854421348567941824066081793613954750377569114370912114571991423845402692432868070997492624865924749737348415221912225265517944500430714355856118486567565283812723627583854353584977906383291985167062801508176492884775627894142948567776731562889728450667491039133819644505330703995276925857395063891537128457806115648968441869360931969317155164960190460433555229739683337511307758679907145038615934823750323662413710336894558894776898432103334106180798353534843632558594193193493815514563353406580510858019250677666138003419653102148404561749110158350340755102897457733725472011370154872739236493861521877933012843392647826221494158593871969268281708523165428108773191002143890179815151944985554684559839992823503683207899233952746174044201866452658544759408779471888792325729242943804223717221974552037062246695549695375023762835388543428206524166167284267433964063265221144650436422448226422157160276029233882198198771837470206632420213355596652660094733616117775974688903706501128165675252863918060530414240544580144482238552603987285122732338074525669556690628589212953442588787413787558359144643230407132513238093839094193966180624953106250448458063545161679047702961200709754215041558943030031234593976709087603536259474479037413232061243123060629683969994834720728567309261865955087854210543252589154566806024500280951757493430135702145418391093241982952241519300079751831402376116052403520341044505149484056703574092047100885063461912707542768792029084872221008091286832982162331375880797857108359585244608464719893527153620608083524806997327640846986514894172153731387238050012153159430876942705565470769338872648323279729554084898910740001045200587846449255933118117992845724072031681931956431798535881959009543853538404621110434733273809827229468272369993385405185932621080130721802458377185530026118016174613359203233258962048517426392975672351654012736973191539540413754381967505124663076765139778630343754860480259116788723157551754402875998314983590747486552035522665914617433890271234051123558546202241349826793998613241273484939887748406451532901805300606424083663182374129339974759504320319413856187547078624582137768500571221610670168868017316993332078258125250313864340025687395091098215548160177106032396749152170875997698350703716655285590481068981870488347147258795354270272997953535501468836301158339252245697594276069356490429273764803610771105519724110941064891872975163823724587315229747945942012839877542033489884864838030357068240482813504991770388218950644068731114445397806506517014825416843387371597828805448239111456268788476171695171560149922396316936212195514366400386999213604824273230365639795894087427934044486540528006247769062804225093733028337354717640656659704771311631539993244989433032547996792922526849615160691995366822315266258420134781689102934589530840358250671420971486291566979370706976080282922426395695460251085969342177088531663469406282769258066161739139140557926952606231149012190632520569802461453117107598872725460488950736246203258477935759044294953749751600480568252586697762735302804014410505670377164278108515502517483863603191072925198737864270543025633591625650394177428321536210428764173010972209302414191839822206817174354476447686869311169720638868429710999391617305083979674400009213150091278506700141975802997412650193854361719617834797965833241061827804363786030627854531148948243392739128018636313262679576248037886277145799158221695681393100588667901687802045132496566089781057095341455628142515753717335565011343729547752465455557012293722480336403532567268679797517112602737634144186190116283150801080677680932833039218370716600282223084311269192784513007973311868889220380013331908563743875484767901263613377711628868614053069647971981857106649580114868406554109311399585778104089018104117760432821458772533438674089871275413106676973726194458522028032292248341503981035436949003489957659686920895747447502772664321195772509351770490319872660552561950955101644418398580033848868758282121689180935477339492714732170570972034120015723759646293503386827265767389433724314055834523075098725330923284456977894076491141441864304904700620956213743095821408618581964430279214704051575505946492836246823486626390540566844466261438502797467701041060178696997163093018784936465615376065771172854243711839320006073026858212028247268321133499103420676901368035196228482273550123445531682490694972383925117847090691837726975951038882224999514920246895310270302915430093417341447839946297655824581131219181384910046172842443786253671785138109391411334922852393257371936506899861054705034949441596493435788835424247037855109150899211137784255898252449193735481792653038348846951168125967189908049345188906461246198844080603825808767668135333098346986516469634164356609482449120824271069160389827977025658423465681776412596812840354682563581177997243816492993201330328057482999164190620653328253644696504742819697830525817640924674017175493042658127816626236006808779794141046528361739414317370710070226465172466791310997628104796452230334052841823208492365015911189342490845061943554579042546094048210795195975582304199726120135745756028738679436065560202700060885059615317149139618582218687340461643110397919014671661829430751213706997058535148159532282444286600622432934571315119727388915462097614263237203366516548966889913227718233268565845833551375011235379106495465655828018301741551727793746265977577559808870090710686137700998241550838714000335774126965033133524694083382067513043337421710656932356964388691827868326633239126573734301544283366941115401376035296814286320522455388569352050480659802379633755942631282628232804322806863374109807311883024624904237687295999880809728512482707939227396696213623893636622149714612130160963073538337844850538564885192423656330487407999375647460304317223929870917901130081145673388150689991544404584964707646705394097824123066887159340800481219284532624127711797492377601683054393534939451013851119024294182427935401034306610921951680235677115555328911861451969040948799694474976463617167072906160383499626937610055697110618084147305196491340252456358943686971743976326276885506184217748407803241808946649708676231359186934711637240491971766295054599161008641125732659157520098697678313651341839173620530470956838612014812390367094378899535135653421571494236799098668370851163959654032357380686080067109238277150786109145822764411091462416364908495339681535988036707716226776358157741512083738376776112664146305716378172672526409422269181223179956160720487340271335361998141293714426406739323281573565550010916710832184481293076838848701597436747979561326325332073381476591043139241471003902414525342201507612698242216636509478350743236870408978891104579844888729976634950159162789863357078056249983015015469103210202441501580695823881050125607588211832067544378047691394231750698199173084278254868929674038059858184527387687952981904528993326587300871345282595191855026181931151588379474850328203752228031796803219847691804263106279553428559722301895684016941401358947603635610126668038285474913116476181730539310825154104282251797680316829027965879294296302309839398177233079903702585756890046199693655676884719339544246705567318254093823845520292545035263255695209234612586683218226275489643806948339875075880017430501468794450905838619376976697481892739221092981045703903004496505371974175389791458234056283436563107647321637212887723695095333828048621990936387853603471156745658659951798321986825019178217040460551005691409379779981976545412725362001008786838030983668398436486425618801182723463656896453003759666375950501737197449363351552780828515766672218430783565268729273471496737910011265814213459087939088621590080075368542840219118870703525716085292991302440223864329710721749766384863085214709866284314173380894740018738625429246231661358220819036764311682177044068981067879383123901405315257710313863043292749237155625438196232600992068106856042542417246900615565335659200110283121668695011626651818337451688078787999332956859044812824455677253618511043934181398371420162157229676499988295551670806735284977821941264594158438308435772852617036383364609436494160366909661444499472849224081430911254681515898258418991821211880444939449273385798237569670842602962835492854867441022968058847702956606880191025877786978139033228207411304158510398325393483446527874687501025484722013569707324280156049027085059172356827483778853776009104501720171298124198677538893734218332198146794777123304537972726870810886034899164348396711677017835178972770074392582627837903045034393490765668745247923083744621295690855022015292304847045618376655556475474712637018330443811154839804514934139658559765133113496056581629947961844173409386541897101303079182574755486484137292261817466610033167923490423647794525385582117630543299181304689039900289192921107903948348996856580344392094988121971765079707901507642843168301699677190960020488010750369342825972936452992950273132368925580048891177651348823006760272281623141421464237619305108407951016617846076907183332865515315573877516710274294918438756847126347167239520706330343782944345387120655665420454150454251768175587742459296005157885679508128568676304494435885893591056298215134766557701450000626685343626007235813668520494324220527334050994086739563557156146874389743312187905447732149252185364694128642736165175074618052200620331683351187050347410876298407886081510315748962935985669749301692870834612313481037193001792235856510470917285911730510546700199848426169288355990969614415140858977093475391738348457137810705106238213580066707016319634967445158958232140046169299960337625762990135243757987777840719405733150135403594046416391404915240872124797749350308547326625099212515214461154932514713415899984351579320359322673653121286077320926015060981450807500708107412931830778857689766257920865887355378857103798005299217827994148770326514478853243698788340693569791585229937488930297029998209873011231054219183529280740754124100267619463005703504387901805092736465374314722982934871087582755660428434889399948928050501822931850587785405327459034012353280183982065037997650207150157485711817238011475017366944721700091104645726358212840750281234186561040411278307832597050456732661417171827725058753611452106405428708092455509402675897070060547298388830602436162170261269917251029041888341453602311695150295688193607623967424444448153541345072518415859474382410739665075744241961408413685704257910792320994010418388551378249737222937846696454439718867617990968652750501967854816873178119279112796725406531935306510950382907414526931626262383212288352904559034241768211285054901006804609317368186866186496516514499378989547533481343149905717420175637813792377370050783672470154277575414939988556314040297531133213150236089044156560437594051742016010260738240119475704666607156692629822430944072938576382896605632063198519794878904112241413179102497555962659974055310759380626478012636664412066594421442554268129572537697475114910041340031534753771080691780697916752602796353191522672222492229544879843832635130899171330265496801018020920241539578693628049174695119794974846207984543448796588148794880357822882425578051300399093099753926278202965102573593417985969329912102069050252371767430862084293979122659461107293450331220479864054550141277531082623212883191088667967030867221134154058841334684257959651663650261109661676248950852201529823162963798192189579117575107325513859379914362622336304818002176854950269874114941524747177112226583587930749869260572523480314342753274961941342707567809640436831242344339404868820849814682333945138854268156485332393597575921238616152393386534816515990334112912181386049651246317624896085164034571262030262562308531946587762285807902259428885591383704833336826568260952133237947641199142273431519884156645257397343597679707980801939724830660500099933013589334640277761468221096956405279213418166890659799411120073907719715285361729822599702302239027103539682676480421095206962467406329337861665384184143142991007531830918982745318200910023951368802342612878514715122924471049207505696552683745394186354031013911069398004109587242120876252695778407448897974066074399792618416310235942250728171352687419140148253526780755575472275717447645158798602755022906346259432929887231789067836611604173213767763913783570690793953968541148046655328060886267775973131821301632388597811453153327948873013873002815416374883083206470352766501735174916591848762846494624062868687684443386394639547178256436960787065589023627525395744993976367805602137696899264686249185098255332973709026945273748656503751104314574136999572628926734912549006211056001591038243667498552647564536497308573453136908363278123222872453920465657628742134872552480384384725643696487718432499428764715085673265755416134706580638771291476480602633337346635940499324430018809279648857287790954607323074407669860986159637608835431546589817852700789163455191193432998596432986719842780979037848746064405086411232935077989719293211350793109209342636331889448415292689219275956202737655812812680776837944245941617785865991121648791935478777633326800461942214448061251217031782732676883028464153233529871172033829529397334834683007611817110027976421695466347654937818363994706549008716278089054367580282048749446325068061490875196064136662510700876492298786250231939037560972054805092101749756096292510250482076076873242601670959174475064512345169523774671201552583719738038209462300591880430138703883529610114765581615500677937911833140104259615298763544809984171414769597836078484622251631176483423232941522850576062727898232335260416144752399092616420997124759354998603325751022934472354697426992078753746142504456059896044378952399197028144596887040833170394174378669973702486235434867469233597101216640834927309427882977504391966641878084084972646185255500501143758263117548718082179602567099721277113310949585202788805319753758963693489719869590240950143315457886212220240974984694627586380819985050255893204641227814218484662388540790552152678329184571975690316827647197259595730854941395791327165138469151426015899043727119604253510719491031915012321107495411813902992098035993768998003072223812470369205344621896384664135666491812632809616971964498717354267494745573498011338210696672044982734328805467325565100974598770090922301882451793063811585008616304991359010829912892772502208814195916093645209186208058529062110795421724797649876093684289465471506536915926510650330142452210712689256332624932334890447291445962654306367208131547904377340884845770451816865986429691617878935739419534708632500701137220763678587759536295532229437651173063014728478972503183603064286387708397219222640132345518949187054842810117106246167648722257625889558551635521941199588880742677233864795487178637515301786119271321672924077357722042884973069271871984609744474959074056903348862236262731448647087461912587644954707514720363537537854233011622048289636419255529934200029886346044710153501466546932877202004998454450827045658477858692676763026425037840967524353593735986053188005560249917496723594371799283055353196347500721099039074483295043390366046730019755216551578735154762791177986573986264057732049831793220242893083044892933956821968807906766571055998617635099468355912993978442508668765852792323894545347283458834770213795657560575485510356637062618253607969616911482729130877785653630080895760021044175546558085428578866683396831852824016442589087737832811452114954496368218041150616966176447902019173129005718465276173226683781838084468192699658282626488744208105232274544741451243779471472689329302824004618636847469692313335161868680364415241738790986179506529885538262757774567440007328546759107973120495972655982685198119490977436089354671702414353585983659806584291340387566013398153403287978487905190468178348822707028045059300872336982969703323958323772117601977437969599221721387087719992487809339629522697268177276825789117771624008619617118118970934296024138862915204539419079051574383927552656031379322639504786665786352041454409859979671424318402533550032338738884846422737503994018556662141891721502505677192711373125940034021102281889279158863456822340113591779353684443536991315395135378227323040664606436396224359484288200850354272279790147991025657452610809624976513102483889706962746315100609686210945069844858354850090993661869097524693738638160911425127899017286412299774496764438957998313321018008992822715280602437224460935664766298033464823687969633923850221426275139979741021802917363362907712221294134102140646928021329661225665717285632910379234530447459412521986574293272671910642934027362711869794841592829737654598108365654374062488664547097386825249169443704852954026730159047560406701750635110987237859658066003111082092038088727879967530540316999297559089186071069204961592985808438774826732011605269433928078333969007137196002102872284294597582827250291028817551688798033961666783025702515261651965340967906188892304069134276274205834722281525182098414136957334399366369773712659205676491344064269668949764240970253835624055337138784303931265974905772971186220881348671555062081282876934736324679383064978552944782409338742033798702464285952636623108365930613854095472190162302643588181882661359652233406435839443481394630163747277411802518604335047354438800555954739795423986649494633794655726984661708737427950609689089768250435020356865688082786916103273400683044343416391804715690945144712473041214787288864918897935237574478839349399668221868899252040350625163739662102192373269240021430439351505684767160480562077055000064295063796219753138666980509811987376442073929163232797915113778355097400828566511679519361282112072102084383045928255253179506643455897461240091943566746899010793163844046523698232670862032965071626126399123418634117596384895230210348406385120433436261346419736152584672508683642264095331219046385271543002607780463447259499219092281314970651221954275444304186451995522643994565768999003884761262493100124310335970635963620703937672567428690290089376071539698979808959565644385719977943104987062816012337072169796674251358363770683675843120470415772397484583264923480859012146735352285582783320984686900435268300704202931648609912703667440794782420291150432195907482132404368190444600512538786315614462873793965265214601103655609671139329469353953388617054062482169320320563943068092647258036146203324058434570749655377693159085252985418460353812281263798008850169702017031158353758658321376764775079388442337929413813822212393442289212596057297271545884614438598109721606299571384537502209854783092257601426687605932871300356410406321399542681249388281776799723610707459259607517639181305602726285063247859094897000977762339561517384746601603520976880294722380074597679200450043242551042991572762267505101232270329772974302979845127801093723141500456788917693780215906962379372565092804548068292761363632879054002457425211120723090630293234879172494575961048052357345668675259902873544511827576337442342026127132688275283262745287420503961954719299222057479790022512442245539483647418509416585653423528628851817187664751376456179576830531901244326115646280661688449377584128020495941206972957083981056424102611916750568981055992492527642057216809347581400318099062930950892443936133751332729158173272499372705109888879037876057813518571481960728713023060568649834135869647254220864841944070525955407199934420231360393232538209091566017603321689823576999990598264685011250376681068264918619690799862394334670153626169625969323048748623750460582549125478705117010799377457064659837976926551910172557124685816995026789710641827014882109443030868831660003185374645236909567027756575086224719507665938437034677071367502881284408158622491036020302275386583838690719170652164848191739920020013388831740706980183027598291419686053147046880775136902469111903552474393243061315047055580379706567119028537784620579455608560027885121319843086384229612068397464438311577330692752817246961632627965360619858555795992905806290156178856155883363704680066617871760727538000840700761883562491383248325663104018318477580446304271268469987285590601131255835577010177062809450029733897697779839017112207548887022068229058666222263843965176156397147833160340343626456093800441393169404480497445155927579313766901780005683890846913730901821434883412462987169302561903715195193918798681060558361348314229136149647422929352995469923150081976786714501664308859922855203923442886479218094369266841450033958300680962732203146658684149297224809495960223496817818772464920035731591085044807411179800082419528249364970565335077080151542885134817545355574937961127523560672237470092807704266484053527139254585742827446950107341495291639839372972214693387996614766677259172649138506835190229887698753866669961831946414445436057712792482966324858938230955867780557172960278354907071946643973179076193808047357223142606260859307088178765853281444974673052664996875438813765997407517000276691187132328217710081854906667718160499395757700023922182443179493299615695220139038645628161931986999245855150268322351855141619704507063478989387887602381713521432786295188693733628121125530291653268065047430182654931483404504957789616514336653476894250676103212052843314237211948336909056046498015311507996893945928420936919305458680872710958090285612429500335554257444928654117269229164455441847615049236761373339950160409287441268756761990304311964967653585753415187950666947012559098748834852018048947186705798122799719780997629835877568897249447823545262333888327096786010759816464056252386280576983558868612587882743781930810659655099892827298873302043396803467128148776133196260813185080562801716097408730693444428955047885414393006619447579820112646564859956357973544172612047242312701233920704109385559482644858754877877859415666538259140676758811086319903180269391846747949304535140117162706901485835037999122540703623378407230817393685466823834437031124915256094133812100297357283769951718744403311580584719263766414879872309793192752210614879395305792058451566800964272908798163205230739161394633122951728332172135857321383063791618551915189499976235471202333920172373751037870703735113891422004910903917467076306414737712421406287676694562951304089335588735772691724282336487792732677579690647193698299962149460233006746454305904704565005099512939728984782169318314944685732026050364194485836250495735022713442832892150209552550983743588916569837530455724733494688988250360010527921006600542814637945147070361357204398074212708271410733387815564238196723845755253283873474303466603394948881498029115974146387821571215229414434350559202610180721592273701186544593956075815364538354946458086447209190364851399914335938953719494556705467717913844020330081035812516135005892209101264617453987694637985455121177370069803177908498917620838882706629335868879614159259135125166123660806128419973675718554967064407809257685895213606065834365913243694910242883986981548832248175543632555062016237777519397427060543375644631757013977503089745457152144812129974490683753980958332935963069132447170098901065258897531765645181220718418849171167841330743705942574732104105368966708970896742738848695815953686366265257191039377089419817740879859924004212989309157133887272730869168666066941534782406569233560309470513987685138847366700947780647721115881121353774655105676631761639296071658873497351226490185964466628982947052744459237098777081923305329245521125274160346129197049823037956735465924140782044140936423519814916597588806452745069611229957205843953987614808679350337467075561080924942120028963553379633070827288505316561996118760818984537183610970117001846666707401248405265625503758887432785907715749052681250856212535719815093243324601046609386280646346061821043705847284323441123521010442019478619762946532636841047431108954420043323403237556444976814155847922900709918891324411252878775587505740290572055512251019800435804781604037733497491024876562469149578425275881838798359080486260159260725939782380691550039937555985314455773397207759655777078318549485920838879371864158135580900877066833086499245910011738696186132758976131885131551390454299123031265533645261006928309565713394405940539150819506072158351609125221534539418686128128204368541065705927343240322925920618118331044806471196974647085246341314919880641504886584544011352843498490180087417586080056806426249838699896114844281463679350572201848895390828963873882388636455008141722818919138259174233712755842998064693497599831190395514749830708054975124959333278521885898164392441159455901546623456345524037748659685807225951669222973651123034728113679558564339971965536904509431645801589301536044103193734536064726128333155817246395051008016293800427916965365306772709583742441148902829310722818179107144971276478376622948713604277723077061409086209533812984117799340537950315626747110079367259419817416968987817062436597276598098641789733210199149227447460807440795597694139503011335084851231385506536757013746050512978642706468931746595836860030925773981880120117887651075823149394359792990206647061571556365970841203830977534843151147293789356372473472724723500874171016595076868362195986748386388962337434408544813170057843664287961490925818506664643758340365692576571122898430588608668409725881647690175553723373707849837176775229686042179177264788803203956202691752621521128614311935836693450339894341563147266460884880576465577695360834405877689360936414637878191246368856222587653947464802308136429725878092936024682398542535211000779192152270606693912332329715055390796486296981456645456377922366855136826394826170341720723084291831667437274001170192118131375156618024692892518398451207444242730039844151308535521990956318596000600711469014051970558091535144288198662436498571234067075468433755948865584227412506794585763147198081912104541244643393600343717217457146679120136446618632345517224065396528338728197897033738923357127632829310287623477339282114921428236594925827033879486088490098549767105644197739895492258242205717590769569319333539172928170266740031821795966057001566603818861712297772603118866671849291341274159452603612776958755843913673398404221791900152465053415142656729370816194319843480010443257906389864189444562770327115595079994142800851171875685071375019229082464472988272561662263605404816187981721895909388618483546530054148708570756179360379772202541764889551713120587296329680504623592288046129784288863227827665636771684287312393011737933645435138969244396299592297625599195366406478709964630987261083872609053145571369534931004863984356742987200890840758160902702500638911588685500205658932956497205272142190827879954449070065677693228350802646665650865567018099362665683337303681661368331513394768648709119009804202539380564202193468007122092739995565738433710835873773091797032367155734226692916801855230223913445324967987637863918497437074283715888913884118287797023916324670123894686495632074306172186119371213351731881362215628856866744991454891197166837963576323987373854029859021244338614264934595728739338825595978784190180055331402659820013120095199321932652118920287346790055269476329754246584519515160008753900054320907588709849033676574659025550100247136485784420135764690542011147928481816077763817059353952822639801683137815943832539467560410544107438030934953111650781291934430603406148950303920365483548600978026180994262803910353569930927882145936794177311937080103475661428199191658915024083404504361318028510543420815036376320217284760598662326878452777757112518524854300121713406522979281149142747999270611182542892110298007596119632487732277671335759108003665022534972159997263562382093436663289850049027963412413800706851248872349952017775902549602056089073004679031212069213627635319757046117827253957729865823705781343753689042479068215360997268297603364996513733712420772851980156326257576377592541296495331494896515510682004858176680321305874508580970860279712201528578924450669210334274740653312694415433509601042725523039999452529333931556901933708348188193970933716224007440133932697630502708310443059580785258563952205653231632054660075805324663474702993330505745469930390390249599198881655525530265260992237581823886032542471269906886251598986012695184347272034287198077523549932890401477478290457004326118711090579273383062885349184428926352103321561009055655479265205538013079606376234617426020511662764334394701916366132554665694968738470228072194683100954379440159770114808157302261147679802989289571017830783082441726816417019594896302843427405999061626238080045650400951387794376072437040091694367720775965637430524708558442302484147975472486726328109222287565056618232267253427251138376165607241443658234695015053960524930821159763540597853672122815359242156427361199816888040949684283699861180053650718908959077269188582648886717234389090712958764586832673948065196043590704337331293263255388088455448092902391365391152300423685580867707685162557503508417809631394455240849738004979125294224212781400365298356209515357824538297672008350136200264003999976291206290621448228017529982244579628055035428259526411131860679639131593961543592951262528934236691710238309938466495603507919935781939489231570005686565603174669688557360529990417004330818430461157099248003509905551617872615131404468781954014573266340016966197054642736394084417005147288781917445305981788263874024936410137415281120726263554996359105133584770060234433115184396055402820817497753931807853246825286644123946198347814589967090737864509888785615884104063725911671567479947347528811288824676505531138973242631158635464714752739843683668318371190862581326538780799147384837912906744957425780152386307521186733172024956779065767005215747262690559903156693200524863277349592738438808786603607743492279601760253911662189176632724326457836797169187769190509639898758577801713316608764053084752405470488341114893545853024786428357719499836159657431017739497247072426943357891397156606969206021540922964491089170797731373963132274291275497027844545813796040068857698084225669628909865589569265839851921303269159240744190109497690949639312121728994835429094573635111231471830604774763718244859387324426483438675681285077638767507466309593834122395120346404570250053897013015433204935898415733831270833575466031061248882384944321972267416892282798857257041426845624777020643449554006783830769675862870779196247182653851678537030492296462351651016191971801039512319507163521769857327453319834313716681759795042857487316928437708284149586826613509938468321981234582255944731827172977427892790670333794598156233995234008522419003696836046897307617864231205227451970256093208334798817453842470209237256980688194667487705745968235461886280579189283506833610387053209857379439416812864954984079502924249990573710982920556196415577908803739809684662122446846813377361362440473128816765822725551482214906724057509564366150403940464990229674155525323741712572227588349081130632526613498411287094200591826071426110728052737839770851808315907961940166967884733863547630350558552394027482167290023882946436967154844154049756283097389876239590149683733946316431242405153894209952466382097518399277768446621367133071247967159248441295727011555557402859113201867028503116507881661549616395118077309524103199674523659637772794935181953441062790056228743056747621263385129203920455562531393577742704631240923207305659269569527087858922185506575789077462369217151074294351941384745927210491768453584219089991712902177981397229353980643303997559663540084231914474253002511330603310090910176392080037558825243186186318644409148187889308023975228182676686338152664543712867636498269241121345535951884679752862730767335485819233697457714059525133122870246570783273334991445136971011643752637407598769005746170331127549387884875082275092564902970001278810799951475968872268084331954279238867623499183917855006657164025100480001183366202215408881723694997485834106560021117225463040499493114411750890260804923579458959466431188085036293440372713639651804012778829559325597769205558565818731079266291700377375997077494310278888320709174792956297164905962234623368541736849711372489733467317610611073868972082353371039554175707990562721983927818859665788698965761235760913638576645120948890237070918180287349364270514921649450192734859163025639056402678203059432418186344074436275360163486634051524107892648005102147104627120703528632273037124698875127504204871895129972878578758080784595874187322961649862799343590975896689755507964185441666328180443008530946735249451690202394571867496756825269748015101094086251008111540918315867877419046244836883774240815919510741230693568888494959168062987266738990881683460272368600104071690357995813686646386421202998059127093645485064276320413723807951385737243213841130255435698716900031811896364939305688189647969684201189249355492088719380722276159034550872727261347675563092984274205697008080494281502063245411680083772425728217846932534696236598986938932721499104649847538330355815423499819505928134828652142211233974429811799630237509662533203739528163850591165956264647175303509625847588613726092354433840238640334313995245425420266487279325369826218568284693164478499011051869191030577481367146915787889585875121146910845791102378223969595751764034579760722706645015913832114408582249126838835308669829210671215048604572305837737859091409007256098224338167157572686486719418586978432448171034330745892724373543732876754785332506199817673760668717220202534266064223118945951301887861445997407199362389458328073645471300709905775587611799727037706472360467134678323176946018281797935355939036627442976516703947004689525154010273192180700442524292548632999796476029823698512704173753507118155911126077088213376994944886522677545430404446746841857120140677397543260101861671338464296404084822820094171258707744805076216526456018492121045309658197402947861250735836644554124453656299996922611339104586841553215780087103352582071053359210794301693337535013343864795110749339959272102180254248536742850001121439781607977564077125029745947886987061216543713489690993128030035399253252450192261051189509503994921526994188427049247356196076133059967026490263317928047887977881944853913682813072829788268126363975261780746015334092509063130083224168474900770277045828026613696418575351427274513028005941355442469045179477478683162714665234120653263405199475451958218773627046923800709258424080481617315989366833255799077615545746499910457809467958564888635707347628604238262494803339599213326271679556916067976747989493582237363446845486282196959155500028586683896760299861879983176122840332303492846626991134864711501198215866220427132893361444724194661146990224820298035880855947008641634013157795690795704796320178680092874025390360069550653507607301051582144720659512705038786980575082826167471799879843168461421007026323129580761394374906522344513364007742151899328847259617797506612873819286143530168395984206327946676290586473944850234207157013565618438898967220060572241865032275019057805282253375715679432957195299394257554439858501646500687544599310857013847161544917743693349170369281964858800631394824563503501718836470783313164446496750816143559230267933920583781533146201466606034358080243485232257877220486748083301804378492088772931023929413794409267915440274151264029535435361475507541597213253408314786712703156793417476633965417627118612734857886277990653067873173848635313527352171817181111634878734596509228090220548954102577274852263688874621473642764335860203233985959225588147235867694108010607191966735239473190209945844079314678196051174144136884770869143079452552952822257828228470209073516182127058981016092534853719326310565734989372638846947468792363727244963251570054965431068245862626323140153187515656847207679784476123139431214590372827853235406003744750009126408786280408956992581191118688818424866653677576125157453615745265120456862859178586364681741148474941965559036436708479788497558923757996153130549701258688047924258270442042595522473550279809555177995754224843354006533513509146637815984160286571129253759280537620257255321661162540325656524124519099657786361444293263187846188355178287232339517066448321838953580516586116853955063226088201090836236343406363022414479429736279602854378669745091195616296480138650967502725583809173530543237027273447328249904347987351555138375537702286564833745733921402659987690907103100657927812188982852507934075702886730188731381350397456995180182379125639665952728284423020837805578901646419137316845535197550059181280635203353747365825095626925911110244107304905848083138771568884230773155319000874010987901721611470492723594456717741102322840148492791788805446618635772547372338428896649430112561187665863864379295872656683595131277340981303638079383176316467662795250404844839633165717434550723408359872851239607744975776747343680328553372445538795808788452038414683087900488958626862268337889011210728957740800138500596913802480366525323559723941787088488462403503159581021123601382421119591728718346240355358364651718331330372602990491725330158040912498340982266279832093639664198826386097034348259648666397392202707247991709803328013641155282479653562972697389881944011446482781997937011510299420250455544830043850223508371803515104909295871943552948860372080201130109104052085349303911279999271239380502896870054031394383468729889201860595569751262263236438203038629769971675698068880559419238419566299775506339341008285330032631139938440505181794137884234550947794299750276486466741676450059973115455391674115637743894717598941985546696194527973690253540919093038799771409854640323377875240335402220886955404132521680545188414485623124050666189086487563171335807370298178612980739774802546589968897170199089977952115482896926725999728412442154745852880854198167359028814845530208361928854360805380099400853538457849031799259628554234319582716767765086667773092376358612921991023106260872214253225940068858907951311926326070910728442993238685252684928925418630542415566979307752301625291503304478313816377626534398858361258619230967453876154058369352359734336371284038432373555613639517073254095871183325188344633793084650524546942848179455603703567169867953290332319521097142567537569342562354585315967302067431776753900046717499046001005094314142755175592994122633691113703597496596890446876670487490644357162980618666318321273778063058359740844729859015885352270682769980688926194975658170347002146806412202089044301510022771196498088140145166047952390481238069929105678712455077786483148824192138281150851553089871993983050396048158241660254810985673884750433714489361611857501863437791024138515551751281923568078631852431013531374146244593915737218119599184705834346190905208262666167644076343368402185159395081173515225793723917780648193705622854997225698988313157422472906187238167433799115550508259347395025275316364264753201889223809219406592194866610655988882524667907265772960371036152505469696219073919909936823792626370997766770802478715611163261371836349729778302657328816416242309530724202216232513635582029684728847673237146563806449090017354968273729371514019882828675309209902126062260951614189273851154462635673383214526337133614418846521602536595189882369835637888639408067694120490716006814039207421308043161707704635848411374688209976710059411969044111441102583375669783541253975362609321869796593888390373593401714874404316337861505045550106462083342987165125564606478692378686885468138118500849830302143746973016481736174766088732992782173063898922483006854406854503835779864400861343515527886958482526234800609401943784105005647094267972525327426020367467369041918941450814226547151094339573193772204353981482973254291641668776610506274539732846496085766873026326484443850705456954899948613848770064351922478217998579233490837323130959268042331920370999345166295319550566010038178305515553085132626793857924477328640217143762500800840270181904898253498365439600927690021014020750195088051403898474005639500805321436119912388998375646222160034765267189765590945717421840751520377735672768327042892142014575001974688150432857561280509327946160267485079907513731787413318559162972111379204532322774799617684260309798969276106857250320860786285990966622600106394920800807824753908817691210442295649028504230666926799126621555039064290029765854053682298725397585307587147820909851378412944394238949448992238931156559218728283320222432654083183127843918747871094098744527815269663298395463414552839578111770045014533642444056885401315521069505285940880538504518040151674265549626902949867313719558792813347041449982086460107303739942027581032890938347389695877455644237313682944175666611487699690001753928650997720228135808197877989342490387738892425971112814188328032151564595540466083674009143948750533613364273458325484199209956372475545209590807456257909483020464648603983111492128262090001754407112587569112873939756755651771378926750640331780123164538383432374647499848877395584223405070422067432642274381290917752522131837918294600234739679978979429992151139302553983423829389738670187264561844151186890573819990159867582234087446912446751821785982098155771345160365330345141869501671031586357709262757641973035056910017402176867772259626216429477815990501352756179294990927109898540438063796236623917161992555363489779685087324633812323522350147887752139552876886822999634457447125038067102374523055427182293729799030504403608606643847600444612855658347332226211609233600567548705855899508735763275798606716769659676948802535017141345642760274388989886101008489477024402800643433919470308813827924326490131042284291178414264176568319506488876756375577139084085759779501458171157474977835580418838909731750496403892485444046750354378174079162481074843326581932647206003130736749371801470893311376186483602831207150393126726480815007575319857159426229022204666024116678695282529450086222148017189927375287674407149399667134879241759902967655895379785554640779047537688313521045631866988726081083078859781755173924359344315469826441815615326457572110927927831472342664999402176779667023271874985413863476598327682238957602827507147709059236386452269751420206448045766164937546058445279378152782072748032258682067968190214675801019200965954106910549262112894009171491787025065532571280244912930498563450453491738854352867248498935985195817852643414471764214519048769938229867086360229613532067173347748151469172347781015122563002452419494263379923581885759712336490873361329339132682489042873545300291528633166243693790493825701128733573552815128475548520570688054914472791726204643713840713989626795385257774013420945662152440258226816695038860498236042292232940224666439808417002730729883783084160035924775585262314497866324525291461021111894804385367990410291049111861581814035492366611830044418318281187523649796729767277459026752472287684983374512587038959296730712883394135049434927596717966654428054812734898589480562527647143617668180713006830043869822270567273821067751702386191151210500850187196614070133808983801411842891260378667007711517121419389492964575969275990289552803972801018319543628106428314866435904284809220269613257642403281988844147768292079562399752158779715989340244137831567568785372073604704803361113409915000659162812916787260541947457556208170691121615256485111441891967965905272318090518073001454441287519186508522631145210956318775172021350859268330417159773702903645621259086566331192694735882609995377000731357311484972433370690900428603769918041976595587005810120014626115267461675103744485470426934258730393731619938089144121174605026663193565785991384004665733213018892872690392278166853547200789085059387098116325474909460442156148975588490211300166208894932415068594397220462220456396287298620279330112839257071039190605680562907545595919937052470214312630219663071228601520894890073321710347283628423932614783870986877056950697099390753081313799340274146407251107918749851677440544803636313823035371295179555379056351092171348114001064284775904019096318980363174778002641681012351460444265673401012263718622003873951619278910750633257978481418200625815224869739726767525452371713675898019207526652840162500643564385531529245330396104009428580896166700270301927548689131992110648084259567647667111953083214996635617495153773665881762241657735225067823874929903027691483959319269425750607793631621598902119886757039959110561512021959930840552922027838995387997364656605630483313426322208927177339438746781769781685674643441620044842136659246098068097291466188907135041293932983273687619697367960495566139011397058946732976271056282456159108537764801729337296821510552179804463776285157223979942384225389042205979384421170127780640196753274806508314731833757139349355785530507035226733270472912049511170241398890515372908497445316281205439948898365167524688625125157400003401163625147102157501719864699929095878988572705050771364538384127528965426399675472933368846357428641029358707662057164566395828046970582362309144353274301217713209184901244491687702686645728241144587933208545433147471436957207323338484686296355374513136209254038878184373256219336174824059307948349861901404260656932754347397337771500536881948035776916608098379942337297436044759154575366734220909282100507830458018784860208974336364058800538374219139650657355461202009245228789137162582947974066431857881477771963627171124632673569807211697280109998652454578432407218044676496838816520900360728977752239664921002408442718988314863929569859396658445468559594690016828095617908634768332463117257142182362286176203562907393088211710084828771696482711629598416299149202500486795869192310147014093423819400017025056143733614082598035235479282869202838580802639941406387376867050784737438908017335067680052331475975933821902024528444790666053587872943553143334440551410713791214702517348205313147545660943546713986517474460898907840149262169877745614715384998798141985743734675023694122346454364041634776217606951795543722083307830377108935524792047524827359279986251010871218781188839706885893297604485136541940662377403499233047746046396520276407800407959979482818935610327446257930049253188687315343966309832668534513199045924154559424175776655451554601408196020685477767911196407394427650191028621314426535231311693072629040517131941135769978175235095839259580554075550537078571825481555096495197969514678841420946795670051648060292185108140476532039298888076939218071960094701545128854630316234282544613519335334466903905492796813923612570094950457410356774766203657462028709010773115258974433570385275059074150264591545087250641498670391520394043861154761560625164979599718189991219751706325548440004366221107894589291973811733842135349690213903024388138865865052837323761581300873309870848115413973867925390127676064325288612549160211644833698488064330631554599784880458498830291632282597146160042151115389124126552814462824350707730106228210780416670079691364533981245383930908032374938112630248482178891072433102919240090248069265398450120498167545440086572701174428414817331842096322278381391704514355770757751537038095625058161180245146406549133982460457449038248229132740257791134090672464503946416849489429089449067486068991918281840487999353290215137818590625067466184916429351597002959881462168182274804584953750418304544865032237690150250768585791811285411042992424386529577265463212862255920501045085250208769034133346860533991427945531058928895990623742181506794775864107243953512851427259418425203041311793358890569479827192300290750402155137090294787689589026929701119358901448410704798707564957243782936316630619464425723122658188235832558475932267658201387826942219759397720851108769680452494281563273349459068334855343796882959507165554061383762638925454461823019609592424390364370068184824049345444040869005751210705444643321352933948842514684134435418935222779451858903139362543927892757250463357102928553558019715230507631522103108530782412761731042864781305509878167919272262578647454121587245877583802811140522291657069958354055426710386794729432515595548609875586776900482145357295669086392405011445686551661490856447752286196089444594957922573627697957817453127722663738713159921922562409533939172060560537510827554477804511391550339038004551015219639772899036538613148344767338758052470905516916017392923694481199619011226310244721455841682744094446480502303675783421868349512328169695466440127774614548594065765252891181450368836134079577242381684039310359379487012902691696225604867108889690369579765172606857596464947607035001021837563357321917271123714493599603028331829358428118638994913213814502881476785634975885382216662992023240121350269589681424122462380249023756004935689851128422787663707344667389381299158532858881340297732977737171418261379295583919978289310693960117872196249844494298285060481911640580348077968113559495139441926866985484183736961612298443966767704330144208921350777635776270976803697465291692563528378750611746087113840424357847615675198138097795993332175259746745540856394898408539410785706182383259851306843892339032345493456974488534278685720741124330343452570717774585000061616536328091648021066412443626951015572086235684478398850361154749099663738297255512792727866639773460231273792025070690035034440391940085378591522687915399615082343627459966014376715316675375528501851549244237720160018651373554081900465984221644299080699605842866550659946266554020337759926902968227363071529396882206512506735825209481052197347088678380242898238064405833035668169496770303128016400563069640495665219155487270499447334627624226303496311639262515472576862493071053348935979061473827436508196435477410255329260762055184141020360686162544406059222619774215331400761841137554837739617669886923175409946515226956438439887583522562725390558638942301268732373605282746071811023943951632215348100242400481996431012908137386920362678288769348549481884488257152026439592384708901018412670427178384054573262006693860044992630041141766912962148519643645381411194835210218725888314469608916962514664546742942324197845333589874789838960129798324702509175374975871070566570919448430768823561629677138290967276893197164559516622942767442980647180131845570990783728299024058513540794000367848155574039561762112026651068301729556281489718452804436217368196783181944084089478819189396877482300235905112504051043990680548783468686388902018567136062748192711092088860644586600801493536228408069781453614906899658622071207286687248732035295103502360171432988590009037050759854287686029869299962923573745278692143939533538421803869275744964757815233915129696181894331777051485696456036142626676369629943376271618739877513995327491366768216724507371697921567013957095846307491899946461920374044480233323978393099364780069238072959878566592354760382520416759857134879834325560420323492273162789246482685258889860850060217892532927127554232811660833992400202318523062844155084746264046497903993560055018105835400407014083008217770709393134006494627980085575750877223724573345641605973022854255053378867570793346287683894162919195878332289071747120208984306748046499029336947805692789375966161332624125740566859908590461665498903022465810758841003286509687344498170751519175271702575534958394168310339773689649884610842829993720767676823281892672785811851907983764182058696728964406047340379244122507579280190947096319800731875676539703809483101223766314047626412116243308013022938193482162514740584650981330051929356613351048316121334588832731471206251411084541517504187355296139821559014606459824509257258218671586294463849357511185263141944683579915682065959229445004499522261813327031685624162674751082609194291208467365238027772739985227679732114722233770046153686602586327366868192444591581101612443029610058120335819621013286958071024273943198332457578738396495509300599788503443807695553450138090296870186239706525788614121209961588345582997610617611419028729369663965023948033391988174240808711376136261658549831579553266765617516986599633447903007008446115453996604355945586611795055735277190771191730838060658457997758205303415575968111987583618747880349710982651779544489293151193806396537976642458715814337646665163775425720961093579134762751635691230446032638029578236350399774819590787465105178091865453147044219049938199149943568488258704861733345478781416955528877361706360658454765200752926036141216299632306627548523791063679349258427474852249357833509211290397173400933037710176095008247509524739577737968513214852704044388209268612594452249212056744612763586982020540411185693070319345444100091409476401641733321424883735958756929667291915538576247251674568249020671383553101868229600596974594516673770137004491719351428584912985024739769469370801884379162948972581433177556861421649931818936206183127083554633290427692564028265722966308864600987947940672637468653354815733799059964479577306974570367425033154749696798440552726776250389342157402898192835627863481448707134133108996314079279390693164095510640808412979681645523764386816418048242894598312535068445949783260188456412260915855428277450101214164164979128465737605724914486981702509150580829941881851258226983042258184653800166786335327616801535070624993321629195281454999105193360617637469448458815793376296585292966272632469183787933797639502830939237369820609687752560112017213054126614283468905715196988613461260468512351408684819486099744958998980408974122324992311226151272041298880448334880709977106018881335284753722669613058170225627986398524408346248557713296301315854157046336393842287259460322252491340250696680562585693274919981642467195827045547807302601462962680908040682764443720238626490244012210046491451231294537824311210327884168723317777421336305681542239641181100467153435908433502252949227506242350357618634666320153499506707170931219518731041094301964964757361055420610579971882634869319085255736926485096009348369221180110596153578311080952446274194794060714311423440117154149685637690630602332203487337476690468639200484024670351009621687778864275966673327502915099867279418773328297592106817034843112185272616959235171054853192129842296388819634009603126345349519160162104208301725594992000303313673904028695345901369221342457267754814792162182149863475072954824460357210562570368581126912661290291660352628521619689755766337981855237484113349635191091709719610746745186944819081643211825236385301470365817031631013952378166863816456970742545392198882838405171947883536065450145244936299761803403139034417488075554451158194541405755016254948253081000785179037496370404664520186309365485262841468068302774360579271802891705981046363195743545946549261612388596870087637987126217616993233926096279955051219020469206670102618480473742784110555456407457429123091830761148694539871125080886559126094924485287670196870149209807158496717441038635023875538946311173642695215140105565234463080174878107753055331637132923688847782459752873296327166408548934647102320908871326120197174849936651188387193567102596892933713549489735264800060636844593738525941166423282310286262111022421068826911825138409975644108651428522409460552829430977451144499825821107401924951235733904888763082894128765635968327277165756751149248915539505270776632461376257759305515409824381622232515027689974341860568256624030904979493194247904550332205383337563407833317212805348938648742444052074419323742116139144223941503036455828888171395584634092866407870573912735859478582830102186777899524120705622677287394845905400156384719572067229030180836464332386406578294092693719152100646692353163420204116710213150528131499434053444707993991219712277739323605611534421316332426982809377280274899488275711006455374635314882766057548419642597364909347231170682076904036985264678081205759567295964693821094839140091571340933059072737297941886670896112477396866738969352493666752507802791604935470777845635952511276101986900737808212680961287085171377529342487734763319539427442483471243592889769630241656946365592023032076562247199727424518381163205843058744417773307587867886992136462943092605644978880176788111400322470895648597490969071636181789560913799793652263149126585819360603054849598573143574839685379300820304778351237929475088697070172319146638725037461300815327812140563716246659507552472302745460454351423436164983024628957592667456265706974516603016147666789784353106831848859437123874831586818247264253955586957561954116263367218502885798091366640350022209009144149638594858917615797039477541629927711845776408969907276619686823577789807094416007281061149052718361583749637880804810524696898735463488616674511205687100412144546084647296295624807127179861901721079078571108151906444517019033873327709045686296563029226222054927356333423051546444300097133386887444111392981357381727057747104871324942878629812347586756403596369138638608360591405475848338722426984479902127032120792865959813721709312729003991796245666105575199914730664075523106052497364268672288238132352040741540789605157676110632393499018211557188212699156824168099325434170211516982530885531529328353055488733884029601116158278766736582598275094108284467455413721688285015369069747661332805090527321451967854451772677880388667149846546685178452999978341599340192583792425123823808474950362879979353211517326551927998191705883470353694694921499877559273872953462069120965285927782600086439192854447799905905626273364734397734904991685940628019896578108152122228705839460213441735698095110458484849515326436684247000871196135569766654740470784375042420546297344766051268328782116329838990723476048777636592771061803831522056269287837799748254004491785795544984636759137605522927178515068616472455523289262414246996475363767174162000747471810420643008663082974470525402867491289762100063595420151294611190963277460249121201321420128072089939817223969827601535859166999204992359372664159730994163987697182777427879285389470304429330749552820233176514950203573374533699161694311095069277488357797529340616107221044735949408647600681223662818859320098970374512828384404813330691044862182881515061321106956820635856565931001868122383227535624069817077285552692173288711846077090581747963003117177160821833930878598499799842829909865623947889519621472559300662538527627006149036352265795787353897775108406278254925525173791944670794030547531221801281889334303209334686118755006107314904685515573380471276010249305928672003983053184294775359794498533420630654775674555214575437447937227946957784864597275711775331455775276574561462262847581704641597789260838891794190115892982111287916484073167935573397048090404630551356768895578124706353054934279291613039871193479759446861816805820449442437262581587534852026782410024295674451020570933535597135223764738845546852240263169199462304161670347337296512073074714843765664569423206408997723826924141214185699942778541136108557272000822801210814144131411479255101257075871201209620949989782723717765626404538676058997673660926262099923394366070945654330230208204013765148954084922484594548450677328778645587220707296996368435972267872128084533117212417659232992896372734917270745818588229956769479250185270310837071601731978456927840021087501699321924464628171990930090026715992918454307428669233949782158133028027149182268736647529567833317825767267074706179715445358938675581505874870508771539545635067390879129348439529034679951129586220490763931194462149651064605484552223300456157988780730005290297318783375546528563783125722197885191774751023396490592733252241276810309776346041070770131531849448958321840734449674523384446316288394912356363076644144057828597434744246416784544259531160514071545054540798854724730630460958898024239880786203485554875938314214093872045113605320357842824473407827447691014895290087564551020592935513194620768464589901182600187687505313285840144539531654649835227614403973587224710376609941093270974137621458189921117871061502535946095216758374657935857113945787991682711844185608068920794127363086742936775497586700451348106578042217127309870658905347263924416176308419498385794520911179693876807060050453637905275694408845056646535578562368847341868817457526619022102758924636168490129289027061532393583691299175764714013130735790507201833874436785158612225525444290987958512864046656700920252156616586605935768824857029877372050401080662207137107005957412681086706772675745277247244799843241821678529061137412183034159528647618582643422484490443390454596430038901579079794602179998388745004898746404698178913280296140424483740990215111194004194046661227916223626765525523106902883947615718164517029740611547819675135134292362255438148887880422350184989827631513675303457654141426737592771164050818497288919409967807784592575038026101231398908953904941920060844904399855756504995839983710328087764910082547518705065679556699630507491756788782527198116165857669983693561228097402056333273817121088958146434268115841536086244607973909972174830638184649233146774112534483220749330834505820587290067945244233463415913846699207177084618648456908953114873108183874327681701128636626297295678151021511860204863690802570839588687442841691529449255702184861837125948216461499078133627271391226021453835308380705882237188912530624887802123758847960644052224706692700219870377651120020765994824180029690957417722970284380042237568704573923794841487118023965389011470821144162640076419739904959502712608796647750741350060595169021601301997841135269256534929930143983314582858091834386887566281043794168475019083553635524027332130696439201219563618945674351738167272003766339533275557960139514175886514553457750873176580088056140457571655640322558688600869758059880025672165017559955825159342784769103700551295343802368140249800892654227252900117443658075862995547612128629007677436746563879146782199027277437813924524188947030149704313295354202764220918590384564484022032194597651490561991047563959012227430224828610968507995484462701813681898365796728922755621435093099429064017000386448206465120530105349848491826737488256951739073838255319766570298947970708750281756516645264385932790059050246166850815157568087660724218723761668917047798047696157312466840249056923016106676119115449484430091814470069736930029149743820877250717511594142107057506381782386825320369959824911173359943292072591357401695094987543175737559227839409634137500643318479421861125838223534684276010494686369287279055689397143573130906340204253379410121607578289577129433442176337847751441947393489386909523628180528268918972126393726251359207583084160311886644014542112401782602442155385688950110181626512196226418524572141873119189259717683618986051655338219840622978503184761452855038870397675630759423433179325967271466986525274661033835871903761435253245265171051955538555813766602283226207820967122945574590550974566210180890616498626421112704310064834568086643537356082764605530582628364937281029018129846934520852320078544344953515940089843357756428025991241303558618578324178177439244536912502735576990107373592595597376860720166506755389468400684175010614146695624461090422197564622963427392507979399652281255984987749200322068993034221545777191540301842429615985021941783546923779701976371523586150953558315889037775006491146224580733150282076916170546930838948471386407269371917204451556817422386227028003303463234854351076216022294647787210101824846399852215024063148502720334020816936212841544648893948084935905381039992743418299568143886947621728905538859080710391822688920935439010915207201237672193992474149626384210134059418722696112684264241202939216005818455271135269842276623728891121225117620962521691598895323203251009563329636328427751740859210614160583219577326645285304046495081784815447724820521531681948458282644381821827426076293412638147206499630776350082904237731638819659097844288493541270074906508136404604524740430065179304470197641863853627392415691762244167277042906965808173982919494635450487094750363763990735608140996354231611136202242019025107066811704971492365914741433485570640847649442426798743088010301173820256769400784767184088750555402050590664718478139265850625686542668879544574269338126265091711183963936432359492212074116513593548717358873352960493829655709101105439706583293151490412445964409609220850265620114251284212967584740462427457595132572761509128025503475109016037102891956438111293974820273809403034179817360668115380344619682540610379225627827222406526788725391392489500816732681081310418212375008512183503659685185320552577878025840027475187252268650498850548839093351984476657244239380879753615718184584884837409873170926702331241278421397809929729292718145867902446361923352764012408794872086517593419177451824121328659325413148979826565376277247992162886864536550271221334513079584171937912111837529405206434640781269712017356172917288033750461501125777272283092273389961513146524699910445522374229455656872106092324091240361947401437161808382457427642765351798570252290308241479828724838842743443952301074955461361347175417194978094382526153806874938537861912653330819155105461039269666032894716778816245191778634617560357483752944103994737209704948974040109109848170356632491085153868660614452058998298760822931259229818090324384414356183758977714206544395864593180164677670800621176352938714386510166282425410380185207566958623163924153694370544685388909741513619104589809772036400375265210504990531364952244366156780391891014217751466124174472730432811983159737081514748540977922772228954854955160285958621308663597829747537062182564645501354211955709227485832929153187820317917623775980719710817458623140503413428438154336132139979033617849709017632793895668858274263257524679135576398720389418623336861849403252840408976422802795542122799166152350586531677193283059484399566049264074048065185986662034685036026862569372459159446533256219243867314014033289980961585558494732815366085945290803593883985981807562463494890740546731250980772302250339455168917237751856308250713290147556789138728377010342272111677886387185624486322498676931575425225110812558716706171097880107998292926979279640776146956917116750574965823830807840095022178474953125469013367186927965757121241271510131079327683698081434737475312066122870648286921490815199815671493954737721986766450584777771700106572442747879720981850640867665506265452914640065199118112782371309385043248309706395961557715337022479560844211617418381489631204451342336109835251246970299352859334468371635890365467642412496413224723636639777432620847967152540147346392634566689636963270730453853730190046705343730152788431789718917850288743140624112131775320919654811191598420656504195907216042186365291369491175007603768922736115734275360605128832838557157611961346643638434254496006409830762893846745254576747598836881975606408890728728470140876758363480178737867849762229759676287172777658382748518119594996444378770385502335508661527600417260096725266499435431511277535726111002488830048769271507020380974319756771080650110331771315565336510021052007838841165418710235746627972957615838515966777553199166218260192340335192617074021877721974591139792238663911828381168209012952635352006898128291984269107017413988424281602972888920590412944538360834196874879699915211854865093148590506524915422645225934786832067129732051059973482189603166826605658502501406731947220273066494922985725540791813935254475519564169750962941045784617651026346559089596319075103778489743442957905969828192514145951928889758041934419263600379628257281899496792978974355984014500283695100553063498710662875919861244598386147258995577714605627643332557957988699195135594523859008238513841730548518928853005187049931139259318686598576588652012649411600632270872027493084765078156712495481044724709031678074431809504408068156033221315882945170321601063794644779029580082868267837529089425764899664906413979073960184283961360536588946892384466403349904525963245082849662491297381478724373446731402317036478498960079205194731381744469234144695541710946010833556253608442718900740641724376281931696110409832148930286706643874819190128735769424582141115318865504954248092609956920575682109870078250379533857044918767193245316023237503398979072809066052689180610854133169715173807049880705879727863435846165700926604100981186098225908346946653754256528359823190191934674892263995583099234580503822384833141915973979428208215167319363228383186616509464976545396935261802598308469955641284732692447103626066893879042028066891792542213403200091155153919087545705009364411313994196698198596059668611730195423313143572380627731782177267548870918996657771450103821747586711264230878360092376193359811509782373726101878530618383134666102534457968463728967299486657223654300273514608522750880709393348131630979235080399599024193431307324721884551965338522064945954201229156640900305149212386737136324957708147165422117246136039096181693824562309564302174925082308635143980841097124504337158496929151164554749762780077944949141299701322144667314632370742133716837622179045245020437305407859950819434104102672709047310668339542103380919284280208065139398637189300779146053951375104831479818783540173964034023355741323267982444120421427992858726417546392743648529540086253280178436280026891844014712357535752358797247899136416348826511245676676830202353373815721920125835135241967299544162524107573293937279053579607005844971146180097658184271129921463819178962424923053908041956995448416153633887592590449743896638459308882630797044382678871026730056136234584352029351406256799888444125756431889446847294007134085283608187415658058760786559853951524399802504419684980861419895425436229425518734899472922603664654658119147761157686797792677054158751652918817696098267268214892850203874311617515371585997343294075251937365814840267558489856355590999529171864490792844736169665807955191583362298634436218886561479836800397103301482075639844163491994501166754573393348919856148914515720700280259591926263547151398860055611359397300181938141999373612874273825842750317495344207889946532064922458428462786096399581832743058839966437634895073867405513483065240537078394648365685850142504243840963203767806878389788770974710152132446867719338146083730946624181960791600803770524644007624987297344483030611671539432873562490742108708842201751173836475060877109949918807101855586704666408432988086420706388898751143642238908744643643728946320118716442907857335691177439405167869249721951466918564112802000769734184434374667285304506269404712519492782030197893580196271604490005873163849099071118380513778035510293611694627525932033047458454216084970141080232029877803787822994001658606052028322343841683819809106914735722218931962586414667232172509183596798928607437789123723480362396466969921817701526154224936226632568834258852882193702353917205065874997308125742634858324680111872236006952013954009260030505344228597360101131312897135224705387126587618485780887908148532934882815142762535638185298982817008843306990989831604499199479562459149464927636088971593801096505627219496254030628613919460791171305551653989070939840332102490231875017748694836636767047725734201883253671076735647540951654221047996931025531183556851404162142033016215249246687326538162156759055279234517698700585502537039613290819604940060882665637326874300120237968340661718906001982776697035516861461215185121187331442332833040672139679965740197100345328906886891517605008891613585707387969089965094762227598727884093817594718761618207582502718763314904013277637513469169481465994084256737936462973774765839642360261778127238663013828752151162722196547267569011757537662597036943245561492430007346724809144994542673166059251796423676938691900336182226600928644963159901577061963046003210413022715222370078299550004177596272279950347553395415016369920200553949978733950621785050648654229145666454351556509365049688759881344670412685024835678732110709567005199674211249524834990717044894636959626039639867017384325052265304671767495252354455190003138969286946306306956285880179166285949982419403809260640631441412284870504615792741054851552354497120119509701923599776124770427894506480917187776186903499737388087567361663030977545019343521016005750301999735041166989391095236537059841743250890787601500691120286798983980157205273436240303043197331012025487969568046488397092608816150040097603881890020675573361960989745562988204924363444757731485190507660924743390761917639667116687823978894256334314087188458636444647148202531057499580954893380317120459387792305303663803151168204250597844804226212670668121658360102272331855478961350717414017108069784088208359332804833762183065539236026643474162227643322205302729620840623234460258795698984855979640696785830058512755084782548914279170839496959952742817285002010955538154453521707624482876648724699605458879045575885618316695753207881619248280873281569463745567688367550859204502142936316468909388780556865824815130538703681051004483748878561587894818045590086350406135531096566434953285246729747619666882756710466563745280088605003880478849415429407902583781902902648858021336987805418506519492491602448904492563128341580019501501941444886573203445058503754369985761481106632137207202327555191873816527263264981278547679979099772273843691589584980378431042037854623820766401731307104822207528434056325548751796060196019049610445863545801462226964530098461476309447168719076100185006302663117053355126281469132989567220275465835480927983147914360088059072908880157988339303692464301127876722389458197225138603782971522544370323736562283992521238360539482465508664178276015969841309873537845730728902574095900423933035683099146565682908200676497088211027565904447861213493332175978675985631662506573899763057452187944960814528290031624446765962982110485854910570809163196240602373202640927992885525829528980340303552766616825430202113675222680281457086516431257451639968138360634585503617670541929502998610525393379628270170407034844906149704505456065017683465870885836542887327615061547860040869028625328741371576256126130935228501245669368335527375238556397069677463912207551783186710260089372142298168533053483469116492090775992377959915810073934981754203203231341726877495280550211075970205394201645162701975589849366630629471463202708937677643050246674367860814765704068242939789711993103816384011789541996753230220687657335957871945434816214475141931911529012846263812516476194829543922273770173948943363677977713943992044100461207007208088719977718484084534556182796340529895303669443114729805770830928169645125063980206187414250996184735741326139363185318938454331757589125195681613221991883981112727936256939711048314963105692875747560075037886998675965006179986071716245836502762112785123599346180013292594984517688895760481176000897446591987872277188431695650334135897999816739887330481484417548039348703151353480023871058608871789540450315817716962604819371582548596754652746678307820756126003150027446601136635414110732339501464553349759452778750991932889481248360111147795502190304572440949015548297729310494333017857767442061004942274172154957639130596049654617404525848841778644003475741313028773499398611062989226199925273484727355517655341787592325515526637797531476307559005146340334022809263490970456581587816454133506231468883052970615710723340957441945268879828863720543956843724363814672174892438899804040178041945031460188210816172825435152740426839718336471819114594298938440007792777359487017395793219246501877657882426864465135258615928292831696836878885766210812462790775567941044335292337597535434808308100727026293365370968495067073423885124113812567493885318074683765255734465070231543966749301020821021243062611403911491573485586131993422591719517083469348090689380029929621252673548429892545728623602470275137048837827530536891340137185878314129234635718605387936395216182684459106786113563887086895238891886012713303089277237817926391728468677320161625400532846198533561729400738749643632488420385627526985447708974349611830338874006537109978267450249652086305697354143918006160491142407288378048742172444061152473600841157796995449092480109489249326091966787460529496279233099022078702948647077636368601083858571557922071489353742160995878522062313733361699949367600213923055080441661606539100697947015254078648424799040647935044169421242845705981693539474333396887744300880179198822580056395590148850593182784624112557375398205566885758514548570777415944108127270322770115815397121906329786728252282207868727535450446137537304218650369015986757250467070708001684042414441273164825967959289511956672026992009322561363596423910529946403037288089219119544017872289941114360926685943832513071698999620561535667578787011360696898535291139252853827019805925278607144289163542462422577208983145175337604074719309466885993837665425703122148740601314879383161962338555022828840860340034445533704858976283973525019415742605315008412588373845137521095384554500620297833615928935870651651356423044589111778943174487160895835832122491529675791265533041637235229373481704836418375727668640012920601442342588795695067444424581076421681043587454962368310848801026163815358482227891863347530151182499575932946991295138935828357025548339919467287748533337341335551693747312506918850255054460399240138285485309730235669958569084818682524323503520304141488554880340996501995561593665016375224107154223891483863201159309690294857776607688939645715343446877491255405061930405153795798014196307315039905033499833490778516620503843146772860728857563131032044767989954115039798218578173004017721352913434456129227842312234540047142466805984986977911844176501080317084029398516427141371877328330017957130697139224676226752049121711998594897145895522153617572447763160382595404661149332043372364612124084534212915758388692968877190686524569548121442325024928409351843614405537278452938971288772884541633046848103878021818281533996055213424663928879354771825808693072758482793496731876298254500171886903565974016464886521609757750857371789122167508807186863082361378839091963197308277219747715617486812531082036062876269168398276481152265411053389892361330812199531232638970001350652042434952026370378866727058950915186208163483257244847562789769948266773652500918816716097268780835759083260167238596797962192388014090134079814053838057214170609787412291778944323743655963207440661875408043880564870487861346205587410632473906495309681087834645212424947424038153554463530938618513821007398683141111439928249006057790372020123434920707752679022429075724908896474093904594803550566339108733812629891792725253429628254115121022376304132020546285185989930817868761860347888183984459723245416081427775316016077579322857939243637247268747588000722907358584640078522692541971166146264440605500634765697858473070435412151456593521510327901444745065212089445884663056031284069582798632674982958514797744374148070727134920612832954987063947855974248710236011759677115454442902114298617439937664884945999192089124000374158141844459515022736592109506912426148419195327334170123715870853663092626524647092566033718704684094125366547162704017664451538518550911473481006841872014315944864687434272490611583302530743919781875917402194623897717889110439704280128822158388500412273782815850258048082848293570479006910858679707176979149095311133661415246446070170218449032863976173522787098501817023396098171189662775031405800394009616531531072106839899713887059365149250707849431980769629010290699022020176794118052995179060008876138086373294478185941123546592298380623223598137238794870796399915828707077612272723547262981565780448580547960732156874018299601736012863982406237482313405121565320422077877242844876694174408590667131941171289202023615599449777983902691473844793238504630133738359870470446811089842616760446431278956777590138706738482063066417588351343459122460030581741378282713843225671594478434127160584871305119496785243070685138296726871403186424808777494240396173158984442987064635639706828806083042135817740130422203480481688461747059853223925045670349747677851455054146363994826013953193704371638120375868289417678186438823208500246162483336441422184583625723069834906107220517193308053643427118040789356076524478680744272814298504020721775145566461164185265102549649045413967181482423698069229360201268019347753426697172510788510216685170048648911626015617026092072316868906787953085419445448780456481899688735623168428952714266830649096090481846865117070254874274831744012700616370346023683816256809624281194112463690009010191737145219391573658673087791257434794365669322052954608886250977544945410053960548862219580190231130421531279588026685134738500690223712368623970541897262084640111062197061850663617941088501401587672646416510550683225661954911276142782141506223635885016566950337794291140433386676631935318502072675035778342757567436058525900552478390835663154700204215010178864500009785049967071668625947536789023989438312846602909696921893504974283819137580451578145869455321760264709328119494408436192450510753591856627943324574066585837850957030291643698786093454147853409096738754837795157573513462762848874569283690412595840529656609490225924214793277704618331982143216083298794500071700201242031276873725393548868435376454298223860872605452901150825195390144231808669013898905295959486491478852268839344936875764326181036664865500889014664971903135185940607771773224383261655263905929463157177062976804077645912161195920695604953621187036824871861647742312937850758352114276344342163298743117585748109688729008260865486732164931445373378750070649366690465470956193420617577110429075192176776564863124902293534870334711550220445458780336197719839863637956752512755442190689173615442597285004399957632213093841002952528684044298753509340459475713539219296057729105873117768145909472132183155825211445477577728191840464473074101667175435003172221831339127297126791990712003144195923291864558402160477731459768699531507168735180833308727723455967692400424385437740113969967316992507234856075435288773556770089035125116974909529903936233991483507043426782065005367566094260038017223050714344618331467404317180082030768725076427720289773786304662946809915803506722332871921342902280794261618731692024471204471109862472846353835892821299692509051589597815622160238062473868183652699443772552337477194629723981815428308871917988413858894590545803395188955233407941956856009082586632661509439903207825943785964113687081983062126853895486609610114291124315246570335583302358192151744211189141034950404317553509488538485610724314565552511578180978951254217307232021694429964342522402594324912222610499422850273478637150804401001774438987259599714610054098615689940827872208917435206673563827724353280443172591736763527893051080125456375620585716190384334222803037369655533152964263351979368611609572737680114948906271602440904218794071220302143322235121866758045365823446703193009987417635922467647076575398187203105302688046172071430046297745196124085784644832601858763667429211635610343821747963153120177736953423112626746550265902846704173114514384112449355311346818787437756246795016654771360999065468731036087162181514177042090029728944382658264482720833259841028874269927804519343517043991529677991696893453287910071713902938606207371046492712883199128932420299333454822361900615541631824978816590657050087920162997172594094797851515674005896777906029387684824668633574300408207641731691882051586779395368330335658314692895841043663701734050793678520491101385260453672363932910652008315120781796861469844625917176295041534907530169715688894957148154216520097494486286821607528515067251690389209267938975053131153619720817191974492230471065890208345127832254935659186119141049998910766703446250980054901792920113162159732300112537652314406709380160919846243677217869353396435566211088218171916424381177787178720240381645837331330587590281619354220060563967443043715354586796021533204136189226940709368313951173304758832368517906294153156366796104503736746115346229502538191473989119121832193659804116022987006514767715065574266805405635864430964634646682983743894783952749223155087609986460064409030329678955857510401213602382059028180219366205569485515608966007962265172463301179164998706353373503775175524552892931863836560118596363229023251811373622679399257239675097054968197629459531559358112322855900880653740832787791889019662994675825798082063020297022848244237995098893967142312213750601670332203772884188256133300132781348949618982129749228921690920169872625641988054995789587583978742009488444844882401032789283155679735949855619979387740905368378976809802032266022853788299493593217485494331210218594737056398494983028002127824951601842853071439774971189504104692442917186562964615932756419126914876510852838896821720016131000460476655863570457902198299007119525136570945340600080267924127185180266045166243872622062393617047102412327485862793057759618588827283090829651835336634765648344442010586909508270205266770773710524842793345716603094095450042661340782323980668587692850480454640272316105002796522898879313208922192748619707773970322635217879084079308597641252849878171807715269354816847531439759954983815620226154215935924768242949198047282236446581567923520720338215627354440914553923056844463174506661207073727087879942038078782863441395627113807278753789026369826124095812073279751691840556739620487155006123386335561090204591388029767773594221181835466376871369823647259944275225736229197484154364445393921008986113418500674191336689905359224189891323821890426982808651581448454188862565705428664143895010872390760316550469395586986890134715781031280992050272220765341194896457140075558893480477614990989063283791727119061754595734154395169448785962023314284407925234845157438499896050121226544725216216739695566282819168349953156948285777476775688780602836232457003914289029440665075780534603279520325747217024695173252330173704129715090463190134394309934409406416144688004980507372528011169047269244221919751355555018541866862979249425622102443652339082569920244046037277947436172960801840013730941002037771249595021036477081046376025471321807986942616425797884206657267547133429012991602960959003480864581280270829986411676113521611008018192358763725761813363207132197040898940817040219531776914305028167992191859247108097297960798754795791114386113106375285926621092130343486022461455388608533849521794541689894676418815572485875009397921046316524139141643764683826700277409570871759211232433738131514633182249087942571305522159317216355156611082985378141905012268243319058596973099655077617929676971221798310424864031046211882032307745172832308837384032684935901551164465444337041380986826888824349686802483451689660541170248112089122548295854447743847505947629653545175528945222968292527646512964242377554850895872891720003568121893308488234131405408540852762739226288042071158735093404107644535938636135014905088388897449977029834437008624369506777197839260958735944701661508924333319123097722692646044986864347168779879334106343049679973795693431357534014500548596461460703257469871911137536109358275608836243446703701620218146586241043307809573869594197979363444932141822995911380043921402255351750661467324771952398512807397245271062378425940504820373323177420547049309585542222292933822510652374127578960779484322062035573141677747430268711420395301221672584214630270648875897692148434721408011981235580679631012618049076053409324246928693632668556101721091498073762869538849500112025188011712215845466553275659717009182934809912823273064230895143062926790779679991777303565582963289001723840692951123146164482390209228303426832298348306922967450576957318452631170102401838360760936462698542556664510396005457916227912041175906542422493708101423223938089162247834617137212647614196115027214245396972014575546291434822613014004887750660073004133502388677018978444452442097601098776129897887867657020918375886566489250796526110462323546370618566330733892726112509080484791155194084490325435649165180997000889602114542349879557121494240128408764664437207293527005087505113566593289161897494605859197255392115389404196629214175135960709390150674717034591633284383380922821276699027769790452500597405339160023276484808875992578839035177682782810565204042705631885375385854332454130869545287132729197291771628451662339317419518915306205178411252469828548456129592643976737332314960859443463045893917358409058129342527752875468956668522450700172383012291655970415716759882240481428762807901051802471459394240215170583530480052293850137119350778370603993167666213474312508568218151313864744853125128350875546771608112171268048021535321125029415792102307287868769833554046468263936060875068482186292390808252943436233069640309777268850353108854309386335872472664031711687282996907622193866005322654234620320347485697789244961582710048091337581947120146230641739734831288338759870445572347751325127279161657333164136660187306880451132326373655660131027118228725064842905854919891829285626589315441632529886796706170764442364304997451346564310287903710220984310393656226984789707594117507957594370125444288031339743660818121233901149610381270477417209404330321510959561921627732310164285914748170977480940956993979984191593186867237889375905153503794275424819429760205073501165012907470367287041942431986344662687062777535251817053272366058048122276006788543681391494947962328391118943280941935898499254205164458152228249124929119567159837274594125703001738898146544623978769235920823719696177150707959097319084742476841295451589817736460707242910891786959642154113423945729765458293165560970802853416780729089014042561484526003275961130449852908102289380240053802330288362195938829755307340618956621811966139826673817426413384834769281893683964133621895224527924623052768778246357867029726859349118284801249877192020271620421895634297724869173194366174656914064629860889727251805496318211215062490932305442175608838247461333469582733853847628150936763830688451841811411958410309693438235882120989419260736702537019328429055217765141216896863339688883359233184189431163310104124750576414867822749867053803677261786460546672199465096903861625000097220138498636836425809959479684764095165841098768858402873249624095125584220767363777119382038261975030372218815337458829215006660988651644241370233903536893229773757558614161652711868576368523886991119630884102967294827092950346098559871231157520219632287759872923565779588798569991016575665606010504271258575199331344438188867187395804039255072001920785537176268218778779041518822242665515592317495207147705305263159304505439505906069981213596024659600643339377758225517509765081073923762148304678104642772775278473555956583355998185940911591917323926545577261806068358946386574897204132536548518356358435842422391971575432420428268765667328948262246443893004135104067850214529100410211591784339462783945357733710434125880010244702499044902164297324867650138068789383888480902854936215591536594924627234279192109761275975367655719350808739190958612870103588944377050963037552818736559057748669023971590481570636214283286235648484823043783719717232868375689414332182078353916031341630888117528948381785145905609961016463717214949221366859963858339473593078301762077896621485756345794501174885836008231083227356575226292745627948784233524863354336111200757679938525810518059750299717093124889982341821833403220846422302290225444118755996110431785872400571705976846099196619855537100020925201651750365208194127000824444292787906354757458721938005081823440080178781823058535527943877370860927789058402055361988611367148170131589552838586327894762675423121667568421995127368734344935695695593821373488686716621591600515305834518172491251795340711630381789710193564104518649689659790725405763856562667685153400064834307405945535427330469672805558319313806225805197704821156549198262681488955838206465479918234372921024868137384273081618464992056051493321785656621189902516054650405620500642933194166845771640593156717168299840479261474029592624046382784622763101743882749040565340381037487574138186293370768814211813908759824700464820272233933710736802401036666962357303901656859982775371402578739975205047142589472588552988042777448284631285017708543315424807027460728141856636005193242058254408813918664633819759294432705848446804929726622390269146752080917102932231889629818442996497085244834794689959484674361473595516119786010656719210987427951039827558057274191613022886167456994081941505691161067141825798756334335068829821160801138939610942447036522847294130830504668677248372461018750014901605343173711143212946504356155935911424236929720025485189065560991512714105696311897895553668225857738347859935214644405374138864697517582373161558419911646919756951268714794859364449380599766238329183893214213026918877785598970287563106229856089480079533791889558939906938754513950865537852549630539691993136120917328484842406293263744950311265065192128877291805584707189260248887805581681286821989759610048909661316650836970491158420615556998225223622895121107850049337298820227270429889522310991168342267674630718899927210572040042938107571671618562530397733684041812239880823419270538694012201146988305119503601580880323753252390966748123228667468750918386695437688677658889918987254128145060554979106359766002303551401958005327961390505982873900242203277157599189408647373904267237905697751251969129360730057721417522206636637752725335699490858471204561353584571042092144322918663097677574854113219724300194875296944061810609066640941237839302070953443886465291262686246769071050477345943390544088862733015890527461109879264666169068114831299432281244061671852579580073398363461200194471777049457572365299157583418875715530130182576783326493544032237414192923509933827602826289871055149661944164128105664815852340465383213909572975638919261211555621818057566138137343383718641413486006548846085715235552932576482324319032679892788572712333099732981830012399747632266411818294693707496624716796515985042011398010201742839482626064798820407824614549772406519082007268366632938043872965572534147189936870887481886716964286957112042798273941533538667486818613809011212774710212382312017734033738958664147360491414580739580178986991052855470491843438059730670987396399231391544731601125873324689422392796202041562115443189038465048228032217390723970337486981115341506796345610137457263278133668391342190694354112121836023266877972707067669192870250549274609738492600847658928246372180883103977055898050905498458030881290623377564743917619593276001722949702844219114376859947279580018906792545819106183333372747387604604052237128813119330879058864282970136082717092702619656932268020866854850591202616962097808459982922528592867895001526403346292596253029904232940367177212035557284612831179223340698709916463587225594984808741315337022209897250915470405395763235354653045643447183724574086059341041184463940983279496714457482469205841306512715207183682449766275877524659609169135179409444817058565528862208273925334519180862602456880426819119735277125866131733775744854936275971586752199226693254268157676767023294961595170324161725064035864981577319635721843520029898471278518485010900956160998937821708114838815780344663083833897060675845191351877561388531404251959017236030982528223216691048080954424334420932685505594661113078825046534059684395257560293118745147727804106674913510382245208338557505411363578784890736659635701906785286532964651281623427510253869873127773912273759764439188135126477175360786703638025396888826408335912890787186123948081882083908783802194088049102208513089354137871900256005483786491548805640753182151715767138338425923606088099436308667778716630443426505404440574693430908265245150212112889078676261984390754324401342091853860480855087673655874920065018205797905861154913165078549430786354679769888690016045691588828364375110093354618458075103553735248848021777171495135094983398921328036996461586458916064128252148966340506748314237796539337308370432488315315796860541204238473023885419758593106932237570053745674996093361036583024467660119271341977332175185069425235673649061729568122261830405776937160099194130279255685960639609029748732668898472631580547823332616052810641850605431740559270267023737706087311915058028588692193652960474516845556200020147934778635882578708031007343690136023580280800781872215805655380595041454966818109630939038394293530690097418136996415428685012735091864912196235094236163304493485595659448480301945839878777160415784875265718906232285050295590957395859716977837064657295544683012154306983153757660610585978847668954931970460358369775946588419709184380863027816736807192512724540996841687081732631937008666387910759027036569847359342856929578988428612219110882705456800081609485187796283143288311667192213580888140690020719678636426700880435322177242135017765759434575929360106872801428033724138271492252980956754458387652644561858564837250201024245493081154198874820588519104359681574400443578796264719878958621922870863058851010634310649777006462362967665394945728979156236634595822268444522138500420426912478404511109200771590798023727121174477240098252930463642529342059200421293487260337805497577870700589244151958884220415649837063809424661293613323615526957570821368949255906196928571992840662371660735636630060727059704813315322339284991262885793882662674168786154781063848503322120527888087279724968230483045513102133822574576149374758088097743286480667332520546001143016306182885965618782420762327197009278313549543789550673203628002686567908482107151211015617788415366496832228365360510870510363700748860827726172858019506554414329982171383031042847296971755775884423619277863234925811369587856845438242795975876128235965566292109356185029844802306842956441413009044065267340578380932159509414905440736780079570166806800924250397190136051024551202398681318633311436882483578528029271807482636830515465426533572644647416102413945672411643638153424185085317863880845482649656533155760733303236664797786785784748921427648747743931420234491381716604379872948417838252417211466965492914272816019856166448304585385050626037361870364088097324766096988195029545719031979091698981049630840691295271107510834131662332735009970645741924611471992807160144719333787931291166337363918079407175256271582277124704119139312017148370298785876459833338558527004482283391239564435718812756250494937924611631043526489854909726476517659657037084661938892458180279686037904427605877775524995448748788953514485923656273396870159667374741591270700034894809328181470065924655152030769452916553554169673513015675989182673756436453492486192069531875402706082197459773152202158791469447454136907875931461661603218097405724106124979373330857302409555656736106728695066663194122899660029820571642320880788362643761456253307466372647539968867665469892283282393740513131701204057632237570163128057799470131706330346749737128614996948521921979493390159518579751081724197023578269512640285280435546380054294132896131343982712671548395683984427448665703691780272180917806236710061215337963810396241034053008736387889363561283879439100822232250915826311155470498521196912058562980415590168709171705227962626086329413355812494256299087042698782031679548748341316937037501593566842866270666632443007895842402004796756327219664922720876803000875330371212302485968726707810539372723346835802931094920065734324670991975358504982047970011147231997821865383654498448473399282601330857259577096188431809396686618513136705479521499033298375216524022948531905086203320081259300750473316974554934087010172617361103604945405280648671752295314138580677760564923339501223182445185623816294615147863249730143514948235467652306226455467642595503230184093913517630423497645267481095999018437584924025781317786482323580378105948643794022132987599023298774619257599839382363971108058767641397467498567835037847707733607194224688832476858073697971510552288172033369695656722579567008229424133886562510152458066643905341636596260802712886598589772039878329863058924584307099479403933856870982518740598076330863122890204112672865740907958608726218070298495145349384714838258204121249325403730158054755460734991825044621563225818229451035126399620196007157695702262053155643153157366961685977063950140021325468683178932363033700612199252012966665079363759548167727916142445359374283361714427697568004074727642177078581318735643479768855727744427908509410162316434836906876304724774724183065742051355641029747455453201066800826946189855315291090295359743745455173925262180527236546055523289755639921574198639735714071997916603315774615613537409501537694964505411282948541612778855409983073356950878410507580757329405548218633183325669361781549487760450341296485316256585803750284023863493876536844710756226097296583690834802413280558499837495360631027459091221392785322428118753615682505732482179593478042230759906179692710077411380122987047013027535252627528415241697312962705554025805476430483386115200544346674681537818773322315805827782142722712092696641964104880698053576837361736612021400977563210018022683628645978099054035530683249773719076260376515322067626264117217092069750348841309694207090300949734177880534153744157089740133866919669938725285675351603389376907834173271659425029363703438447886897794476332687916382515866816315376472294317896009440498704522443597560975401057504792319298867473874487624793344222622365606935210738229155619988883314546613265181482498035482314914066705598412089109423796116010395131507503470941181877508119620687582068598303436596495617423189611974391131914147967214473442955822573898332124165334813366337826539897831786479255730665690146597002276041021886819796393856501467660103465740836149953118663977316297863390875236875506965218569756262749202115248007971915250399137587459727055299780016738493346872086706347250542447978427658319505181474225446749683913680012453890851997490957023126287510551448432417559825755908253253342423976060683994328072231069397902426506746463632930469880472266272223859364381705142141560382623306974167915388270331369885547837915910346837806534754849828059830757624436824562195186989286062311442396515031027112690340007692147507368842883733846861022223329677525471186767512453926905536928435158434271877552968791502208745666150650973443342609929428356374099074634704312887078865635632078111901056021210838103888139157262482899115172402156315839007434548734972321370042301229857396661293594056222421508160739948293767713663605626903617151681254319259484413083062636182818486116164867082981865169298659045394830166717637260028762852241423197459728193899799417452345047479384432351453605909669219820436213287497799586335084296215453861959390150132371031374374198933007736715426147098009007609384448156434016810585065714900478619736039122792253366454738915981356503200927471471595224411353290008420383389594538578246553141319613337721066321605598707369694206800547544483293297191229203541917878601426925047041892291064067988753270340387622740404425545835489644395127043164117672333480721404276493980777152386946731242873660385599164881363451316149794443289130682314490386786655029557932936900648800870280808152070318382808075215895295512794598402838502367810203683463979644114177128713390309762834265250486645139355776503985384620067140814281822081587682970377821806683156552783513059961504328620773168165311894271868086647027200146406792991149247918960892161584506201277952532323292554261327146548120014658114815360199516565318020839247612085022213305776809578227003261073310192898432039248282258355374775292150962513136977274364726658927466090176848983713535867988192367369699295606294301527376094340889271105407209626581870894003297445119353045998556015095924108175650953511986955476895565696195876109223229590099806228788404288271540853436817704123364939480349782004103645591158172270350748504018223087920775632682471241629687315728345968430574923006192363376101712291547028211250904571025157919594508265660981513677972469743165062443456732336971405622343968856140609908674473606846091095720092613034709742142592339881800435610585270729847992798607627531963111370369964542754081859236379860917491270593997861721604873023046976396809093283931310398454268711142484828259213399208798851079657338500658122478156077492536362489061766583292986842220059385053995256982606816454768680080669444912793706685316921565290291056142605337024725257929991796118360856021132624985070372410761200907507868287405900829339588963594901333542146972047853462162773334609549466799775202785784656412420189680461968886108767937059455590324188637215279120959425869998013660301425506403363898975083725208992233629301037641339773364026685197707720731933288352023971874562506492925498521088563228392387771489022289710676437197069186784825589109140232641221319415352648989369743313001625912095890463399560499102635636535158087934631324288002599775553192059182693984890867115611100356207873235835856771464821835094577692413465753350500178809919025867662310818499843408769008003151572680058306960161425648554320138799923054054035750048465793597772863825118725006273112813496058039054428480063960828276939218323688163120976723715990717038692213601725838191385962730268944075087794402415764488463197690877722775132656327433155193458750057359474233840986977250728125296674644049515276550804788856796085829940368517389454229853078319546124811801498271908927424894586901904821250663970089528155203834527921640834516557866264345362519198020773673525701210826269274683308694121445793771402973478818408504093875942060566580673350756960221717906209333740148924493800494359412577067451683640442959487248474088134650727217440031559606613436687156479758922412292879277913549832103752780987873946468337260177702952499759949183756084054867712134365924899006064260286471254774792726287730283544352462256068816034289624613848302697094337435319741357943813142536200129764876284280561654768189427854578031284347918798306234256492346073227348992479318313322206839713312434765495369690808358923954212605747393758215707935435780885170294367032463799720806340234095832965976885138881111102752376707330545660654366977891230359235412558042033921620085764259949289348971857400652123569570351955083932635603871659461306072131764381295771095498369712726826011310720297481572860509782554438432195523988537121330810339640778213113812385934985515503015083707816919028561064978931548360643299124858592520495726410753305761165750587172272452873726617588047376662698019426338421681051920266706977027286407098151749429502889369820190221291904363116524613366627344847351120182698643266938198183064464532164679998443728177732261683980752781797535210477780435817916034012351644448585904837736502171597226341527765037704630951401288756886898028374049390096813886282071808655080668668724658297292098152612704419212959104420293876544619173056212185779621941936531795829199669829305845792191046997769334450903582140457630842790818050975634527133284809197923841296176831953246924850652621885378161626564164027108460787049913357391759108548747299730299722500375464452919794228657402046102966583235007202008134603954229476321823949945206909314703955713737186166659819737328164288728289169179702224645592158891538067459875995123165070911844462319515365472211296086042969471124058736128685858715656987087138153626783262057662408236704065557446912211762363546828065877598407648906828032308207075242466397186155622700045580332267911047233475607574217678075667730703197074156694089482683698673091959476259836386911495940833219655819737510063988979281697065202978050708183637363831334135765586387003183716956041813826314259651821339149691457682521666290049232383413937098921664162287172180997575769787804193868089097125077718135579975847764699083706141797746107680509468677525988078409044129430644874680644809926091432580414721868199024852280416656235176687091893249397628079466553406017824520598200572296332959190526022506815176526278833784901449268308378143144539911139686709278825634360250716906799948571595879892262700252024161215561804487559891668344897949550338154068214857172325397454833176411791852324624131127599987641658361382355954119021295391718850735566341545401409025563226090084435317252306097149017805063894387261632506321247841530038813808476438108681049554397014603725881850477306148947910936975165710634659247796439462219769004955325344770216538282387766014750572917303326975505128627507192865133890208511376061730573600975196924559047224026600047106573797011819603255332449599446941841483868284359466356696507630792190564899568182867417725488320373578718909190174350731049244828357962714228451476052947780076357275460995485128118094084338362812271133294478983859202063409613196569081595572706547194518873086052286622359006779431209958012819590283153962240089099591736205349148945847502328042066007324615847119113356512186228296696536305570080565392370509460853274991910105395639122308966339321414778902433670533903482221889272490921110562283534059205371056147506055044643807666547551191660664049932084067432782305809639174697374859231941117253286911318703258738622465231536207192973815238471119444107965826048797603770226522335992830861869038307063392728765398370559850939173661292985697001204628308647089455447256139962939655331987789666313733339151017868374734619298059454015621123045154989471292733861403407519402581804034887352268116887074118915491984172772568709871992061243287926232844081589558046849730048302678364168085802562633957547854813089808783436526121079371170627535685830431469946999727408212833531998769847179284841108516373844558692028371174729590123005421839543101843916823647559210630487675213215106541041751455692480298741171186834938959210875099993336362298568856794688621406393916712364768325480211477897999717390935336231315945572387768163077249451951006305315313414932590264810593775316199092745760513236571276788153524036218776945920835097487709018888896238938648182048436236943280380043587509228299298940126943985500592472580138588516617626165798748847418068750100711966474948935003567193355877551309970811443062660735724726578445452592198244984597856334739011719499491712029809784827840960877326808792633361157324328153056257411549287764148530420094000496095278664153767159472913900917376095643903380426979824385268231099289217527045891164252014980552370385522124471155294324670167623249780440529378991557090769527550816247702723873749150985055493920384272858359171339682296245760103275007611942463608101806459219669751199210537839399622841591511850786895042448019861089615130894488508812655024726876040380407829605291261613125551607930720687739225404545813407609608607392701671752569661490413848848703082036481437734935464673353183681046349719538182884993611567849299019360979897965966310693674758485885781524270293553217625807965708675907233262266323755963731154633716705081025611312156716972515235760283852277659157424929491878905780369214907739400838411058132607472693751855200462652847376503707311003241016793870110951322658587944599738306921786573953057036225826658086357647759454700414384386293695666063369721191428511787870442395435396060947060128424691770982106888318084203966804578637693412924460755796106114382515355073165518124013145121615298114686294231884700623864896916285100619282973805496936465989053837030039085718664861357757917241144625462987160792023753266409402543480496570346186228222698162411135634440282355854904393368585740034817904415458280024198168827545136384127606115822133195768072291504830559085803097675622174912158570246532375668231649200029320589568035336305985662860672982163104644314076200652107579610595403514405398073412173230721932886791329413755339315649951908371309477369969450958553515326879332246524203665112910278983366862720327037693047786755825359408918499767538898997814626864285827771129168850106391038478877523008032766658765793546223511954995819643211778563010339778512319905412015129692390232513555821257372160186938741873747688908823411982202890839880759713942640804083049714975549455179771112970635951954291565945305526019166720709306245924197951810531794279383902754340177645904461236401394544471295045399746648490283351254614872187268490415521094628349354695923530348958619282936635162138549733654749748765676656784661267635335470944880836366098210670727793624079443404896024430024910964890219320268120738937504519110404889136419171911987267135314377222797546484420521580867012965998945816595276437055114233601033993049975201447470775726015806692707427687077524906805821668891936468576064159789894269293464967089330006222109777032548559585412480784891892073006103478050463123577415987277038560997489409710103372682269418413073381684048768688741234837527444426882796832905832103040141674190111095829222644866332864777049251877477826268770990529746515160334252317933760281016240063345596031905546554688314699834854018251117453236298118166349165160277565681370733038747965011821117752428211435997488528010473522006008598885508004023044735087574241035179163992715429939141505430914744048347924939049768506649351975799863892762218765991297319902542705730745610373688547149921839283978111595166851907754699719642143863330905334245095929714499177541953819341568001997730642162111846144535661214666465472598029128089214791017087088031610035521124685671904677819186022282523292269481204010150898980896177218277446465854643282109225644953447406034389849702392932676191123545400708788624841930754754560669812246656205406038624511534119625910197346101837794855799762415603982650696239579441666910714561457769833603161993886086527464736499689620713191638449919326572104603592461252750088938485260804594864736374393777335066413522999571931045369330182371583225368692135311312707108976851296434490828830139858097640747554163708384874974053968861680815900629826733248582784920305990212131224726597211053189841416944600090563733156728853976871175874637740559771096738206314900246166640428089094819078708392374907670387525831297087419863925046602194072134727899341988139475827799528599345363611957264059060641893232583786990889698482483037310854897379394038052053585277703768538053958661518030839100304421905600094088693383716526032568159551289261797566455780657929787891760975791751083430470846031140173715217767994861701708988618384293805101207628024816545763089694689982013603715133254199407788467378128627447776402798752360185361125255677230091499463560678856016418668281341460831286755218615911180424844907928392299832822415298469849384975132682765442795314704838012459469366199918295529047830538560669558316310600061180855445957756812954162435066538195760634441702117679132935988373355271558420078087793077597083521370151195874539934611420781898619192527535706045289907985399194965871988727582637595721119327943702935112232171264397850444533725321742927449633105087665203830662249088084486015129859497583126328449912242537146878287700007473189822228586026648753750342423476793255323229040994402711563284442940179965039043855206346537229937219922705095252535398849652973754246053504659452724504686824686823387859436942907371260504186835325928753764379614215786180106487186120192769827595658648567610180406774348981586538024300144184389399739434936236084816481098032964848131488021332283077436096956354156659473352598504805051718921679211869024742738311810250996442416156845879726226980817167610390632404169781784635685009489812353610179657743487926144330490960889526035077173238660405010773365048507468912036406452749051093292726220591200408127586522046513370875046179916622424623433513126733723409877594861259086746093648750517355955152198694134687327909195972484308998369466864254511718881408346213151122473437728011484220216106445058739091688496883017706110476666467653480321399964382060374179648550667654729719689606372763895112302113505746471832361277170771508560467051212646538697411869597344037217873517256258344391076590789798073687616554268485208532398717224417495709865963160309209965591524365887652459241288752824094835285270892017016899044892623286719154929619382877771465898208537692836276044695778357820756249141950336742129566232288287060712029494859728918233481489487510067063832689822667288696660389845910947584508959771843165159094715303138550707844861842936405786814895412144684751815483718631562813211793810127165121866901934503521432043518061591076604050193590925502677528534945172103537344218915913575511491461550418569633248432268929431844564920756200770911302276241284677870858397955967455330337384922922595400567537319797867578052915862138875467396266549873519315928315089463402002014085031508550962534578982402516403417123102866398230079896749106510943912011464039768277031540781168604530730400773503532265953904691710370176874013525719742628692245462216082715881284162740675552609192313673909829344729432679393706202347967499848153444776413805512838608047818712541316526260839211380188407246587947777918306306976960872081374493582212484421501317952039485047609580089348503097279490272439068011879235020706206869504175274709375129034082585897848367902509479043868117996710784246807889854137652148270367601626767478256766655836020588976846130734296056076022118918768280066130334066588283589130660566102199443245770786255041113497503728389686986465559120497786077367833116003654053610796221040482491418505477018913900125465194536185848388377718419853123725722546708187086673977161942640575188939106793661510945561850425109137949039197125428356257286170451943791168114893635335587053279391783287765220406961537455394271330963097372520958349284988633297197936747387614771242539021300576425715446993790494126795435249448317441809470973789881413004035622243616003974689180421815475168422677354902054029141985867624971662922675212205925295453466797195048086439193356107238102380086238840229827408193074573933832330970499041169465402048422753411961347691408310779018927333098670000629428713464489597926355494243526644953631122891693595136114945375146361331591690151771414296737045273874513764653168330515983727661908665639830951145937873310945053379318341553551259415815223445251966552242730407254123338520540382228032795669888200225024155013766991747844500757055679699216186889209929182038146673848089701917238412528850152567584255706911330917986293834962754825453749625623046046632932044395857497378580278658019752887914190899666905219968240424798141488940280834745276026610131538531763307554691401777092865474900642067115016615807488117354480394941656144054467700179259022205601044768446722973974496076742142308315111136900305737616859396913189307623088475808179429590047755702979512721260495439857475950539472128566160424070281888291394130183036349600243123769691255565071061991860365667697216856441008767914145103788480555833086127577013198969350617221104859103653487701992949661399784804181268048981026301585287647431639642732042095325983675048964650097979683528214991019333207105627830794874695278486072006300459420272762477000549458575658633761885904795206606273154233648418048307290485992475932650224880758566256328491840536454032619750724964884290831245480270212005372893718122438286168315606045712876206619865203534233706088093996301139011042653840657692932705418981842240957860511200206408525979334142654408738302747718782842650290482868931063501189510310182546654418186346095068557258196283083453193971445860155160410198158151237180048734474166270338633916193024341262323466373338052075021716162953869091282839785416334327546903043254589133877769770199699612059529535213316810237359978663840546968245972228733277259515677127163779431969288065210376586813022077199325544732487064347900752421577994819748146674416472190601878261589011670714315188646199639696384036141611647911260396663673537459460257356613854493104126780577504913205920708296500484462661139368328460415784634031500707845588798199103041367359012667402324418163525399106027216839577203505179291198426723772022687390634909656654949959637623759026175852912277901665332780942218957356895994616762830526252569900402780756515054381441884972492844445594716452933952401312000970585303296496214286603571549555159461621643843287349471903570692322004700337645551452605741140487578008678789229572090648269350409642423915180697530180075324971559712314685228887623853725252529920954068341014519963806813195363595136677817680685919593697012822225555365076739603719796878944428106329260946862275633459564434831471612328298054849553858755778208830812395902748449815541881655354484882089438884768786674596078073456608577135996732290979799944331543993184295002023823902267358098067151798395388978505077273650638830685145717700188605464255174708587824358534493193064725937744785314455280453769091411726814095175924278589975783584464207118329505887908000920527024071535749166844715850953979907043700627854417201040832827712080200011658364742800122022236644169187544894382135787563983283723984952645259159405288974475859799826946406999965824566870630525807756333531342744963295195624042708952918011307774429945565257405557992280295853838969088864647172428664112296658472151664640548052399576728595622341324948270480836156587219359356811531491363142552434434680698557242209703157300993023113933460049752220422602253658136465724640758311626298623909091058783617959566190963381059823785592964489406731309369793674886486414033122308234828178608569828923990106098690046023144121327244147583584472278649893149965726037773913304792059756004649788798445617952757490362849405418043786559331514011337298426936752182610633016535911038115672426111827544622371903647292883104025392093126217112338502588181143230514891369128206250889961552991469113597833770251326241415130499179489636597886664088325638311411890374165691081452660033161594453099055022710815623532147619942687018329512197096299351351106915236949810385296814831660062921945127426478063270937923329999518031386520837884216528902318629477164372892663813274631627998480473760979030170795463891210558431749356156616891684152294636868917906961963618882264946893162805702889394478308503312070559876918499180013199861549460938141152900480135378177278921217435329081957963943747740133055288836536679591189085794528758163612218140945316972870577376550353687209534759254251654012243136316733142935504255397864558006790342003958549212745299085459819346447466739634229675966009510625993590895988946948309439955453382154573082216486212465362286619276743373944775573993876372047061037893580492299166024488757011632339879766331321249920321200293300207206588993960719641152848589351952076739158199048742932932445000819070312331948804853282797596337597117681032434073612970079847415273801829924688858804599764744503897693773895394265277268008309106519277125351618445221538944690527852342393442102371508750866364064647232260172268097194289622729349820706837699604473793800374298024290744867089312695411469215212585685794590795852059463558151819348038937922719336425071529281257672450437641129976241102782861628463575303660084300927984281250856363559137714505097032337149033506308620672293419011101222620241108015222206045150290996757258222921544205884291035394652744505288518031668755185042751839401584857261985631745741185247236755953679567054522134339957863345591602361315915012346017857587714406685561235753975127634592300737515722280455911559666727738634010818346060531111594333262512010182429014382221579919320252554593820857256177720265049515198246312133877634107274621672542169300496216894470704503815626056443182472571552977270446578851157697410125254879407764495569387235288942750494496810852306843434881091798322637401455168428752186170032197706843055509034528714618583970692118426880519786894308194157070635541276363634541619100487076685822560568014922227271648440720809128704501378396820033882754889199526980717632285032458469489616489070748761967911042024705122559812611460557323421083697073023834162277832106530706274535295801365439667576263706312712042866365321218984712403782895091298234030573232855737201333900699463684680906856491057606879144225225380772987893528065804495233675733714890635936081685130303169763604439664508950995708934532081211442461867345366393014832250177407361779230183517985653679853862715915042049603085840350643651165904497102314443288327047747268998746008710819961362338452793459925576897649768822899451516997578641430461123779814200701549236515032736656096687589390322538354162438007753862154761533051201127181066960202872156482933651915772210694434201159645141830638832330364267796974490715048643949487892612351350490936693036818557679319613119326745169530668367741962202457672288547114129809447610256543744950407157212143128718155770672688404952734447905492054671249668343445574094479351126921206503238460982648272737637191451774545064354560556307717748597227568023533955542252265130710763057725067047790582904441275847789155687157858792810724533829536685242391378875084092269032447432175919772757783837609044293094054046996557751563899105608342277530785656731756298958145140363823334697550261248884349609421298440671278506466990746803182118345949411641629300923532556209015072096911029967053308029327166189767011935263670939942447915600444549987069039128499791011377322624589383518481429742991777624728163298137395972786583899435385413253194194017942801860435569575256187047899304002502814092799600864483479136738964808986541382622982786330615111128583859061005243125075709078630027017390460744642557946688934717485149132935342532666074686143491296801354418729746785885878763683347121598799839989275441676755039626329321449929440219931291102083919403877578442937906299281774648189454558936980319633561450013416495848250678826318882250646151619284415628499405504163513369892400112754142567449580279479696819883984404199967288657704210366097950120701298542174474489402642810795752601510335857201770235157508654961706180853755986206395982066170855843087987008109398704179093730654744109632956821717157550220666284134002707636176888431187134953696761221281138247280011683544246705085799669736057640286141819886461488634182756559609240442141195997599446760926508748238626668182496800724585235104748082667119897934708112609903781460421355411066354030395402895013083694424866985168894238981549472938013523603457672684706738720373264710066078227505532986960685141143519465322783412965650949467184881839377598300568673880260962017079418462969845971108948257339948808900051467059669847574615959150401368100927188564017314935926401443313825374358080495203269868175905825085324997447402391918230019074172026489885556912645571198724029505499844648130001383767412264123920106624361772205265362516626830006230747152240633666108021741184876934572196133313967373783691943909521831274176438033991102425597308471822955499825781549124111835197482210283945171110007354970847629256355652031626717789537665637984958909195029712653092663389064180154368408308903368715434430028347601381355684087066181475912340524937469022087213687505228597297350602364414626458145349081718276684381930497887451039029724223394026109434802521638510304665843610742290980795999754614478039993512556661353329364133826675393090635929735702219348915184424277784493082184275135305491127605115046193569880237711925839775740537498235478478735562105614703654300794302499220769483820795104161461895210038216479882762604613552163859047309361189169044524006658966412898197067519784768622137153508523662884447806084864893872555749902673447398863735971679593033417410218669119848928735010570052266166921665571740098049799649840311078049095189440458488233221347583982275781648012402044339545341890717289222479701000530091253161209233560942831311817373184049276405934363673363390886187351550137102830845530465639521616719961190628411206350572229525491478445607659468615188102385054372067446076007953351017337700381821411614754613265836878604450084040238483565502737943898147788476288956123496850519432469063973205396324561294753553074557884755452374007508733042893585522351237388235181400474174148190420251738422864997098822541219940745460171807238127769181305258475692935634415697377586893080995753216037427352618011240747496385939295447246626013998703378835287616297940168366843802863216737394748126610565675068471736767296231331030869724122314025020358829828383437978559842065406752162324072602992984297621581016768863380598642979114017326905064325786926991234928821665787945470786121285760235101811725703937692587911176184324906177668842788858686815070686862693503327216829276456342513605710593022624756356482824465922363288533953214191142343279782690668577371302133038042555796744819767826207449980159012174465033375910294695821516595448190992753108018846829241950838799476197349167330155841078070616317789355557824754429511796297238933136265391552218129072013113708693345757214199944114509349472029035536397455801652392491939677861620400340320144105782180858658910638655803560624301562962031557164642159866868731300725077351466484491715877286523726357829749219293872351071850827004431501502393712706176416647852424737702464864747531662166604316307667905357966821982309437630915313019553702226353128794390500337863153004349712716167908606619654803525021955422521639231510509857142265817826331380234914252445554134576139894708287510956477544645877127112334442659304094443039741580343092212805869436878479505378640916567507703857854085324088409730686512635141817016260178131442140428458781078738002979083621278454261752475956645495598226720875332652216909380057121561517800157710685960476840271739043255886811830432201324414420796284766470770429388975186475308033087512622516581811906110389984806731471466885118365560760162212362820229861443226848237489410930334234015374734977339574177165286226051024715530384807506953818180329564267111914937832068890002092963715288928756650877637698890088722253900585719635551881574137721666065881167699403518178527244719145955014386978811361802716721702482304595887086707603016134003768472683989837772452071455709991016503674036867838594426752108102791240876114923331180053624333071736141479845844980981927214999101102016787205364669023341128034320565961180090032389835856224244876347453214732999596475698474443249765098222731896946979186121425631913404375800118242053244639350580568399038529038570886035869897099423779276053813147682638084012020055076929611440117928574888241963476434697778721300715125572877135608078785076285754317045491730309641384886064329643075344621720766974055437013344144701786202797387577271780020941436037417369953480646848525324007796415312767651113900254444115069982915171197598351069670039762452196629978206324335021237836501692982532146761891882992551800486187320436692636077700838374208412058819047093560986881480998731599111871751230057284785848264460066097632607345448338738006251398910766624795327839306976483504571560066270464395947731760898566658556925657331251049609298334824976074368726866298190083450080782969104676217052837218084295060508119983822564327603853010311830475597492341655633090742822016231061537754087053551792505236349734531247751844366044196141011363783831422231402308364305772482402285369890131941395865611584865254369972408821819011925659887325277143783298174377829137963376268151295678562349562454736273443371895612809540977450696702017888208496264577824141972308722996335256100915011096789921505171098101029160489883967605844548833757029975983960234771184870674571917527522699506739138681212367499946319017709557034399040674717896615019176578256756251752760516039585179806552883052643454273982981005556565614472966670792280679646246285826168777756520227089705104472368265144102856322910238574039158715010234487930291369702422932351505120436146971499765379852911384759330619185087785154081056526270807821927885355122319534916808337195894885454888822790196595904055788270699753210141138715746125583277994012113888450476930580515530667489623411411608430620135570568845571043880094566266559197370021993037290411605995836384582957193267083139876938820111172306230933099438653288885470714000961443442492989314364664553594076724968540862793589705794169755149572067343237774652646715332290066315924173814183283046805599797928219005116722867721250489065128560408022537052820469804072706465175737093864798584372868513793581886126201674597532417068312126155477137506278708634399034630060441337168725448089255621400826085962466729858044728418882172810364775771173633651830967845892837070077080486032341492135653237831047295254665978375543259638564511294589513431621118193718810149501308047608335026549138448678106370958658668219915902856962779364751191958859000727228625175311468924571695168413890200191165086591771502892846568756867842732092205231191852311576736761790097700292944263450777156180597843296714787127973375229267061189139762455921949962917057665081916812769400421006697296736750581355019965893532698067069507744862735911538387330582834862697903056095336956412774589041670108399327153119202263265164006424481993406713807689281463978343878919800006840919883277497897318247596813200409010160133565936887265929754619483459206557692076814013819937765039651953357697421098066720508127189855412078138433342827689990738281391538547404963375152524259718307955495715411757190698543320640006225212971486198094641470734104899493249531912935248340481710654260067325666627134022399180661740773647338158668300608305170020924005958217560775638653347179967480213522231388102377837666800079437328926530283041823853734140486328184111120637055080388871310449990284162106851684579057208883853173334042635356433365939721020881708466239476188990528295479157413041723082068548901248522296036611077885257001695568174881818256052414474863190955814142322745918122471290637692261818765754566709982699086723305263088064412368969654482124949417803202537887052215843088971510783369076142104564243149248321719678491979048117128460373903648596620909767875716595148784111625233999214894120959484129541082475355539521130696478843307505317870435919559872898158378702807973544320643735722311178339003367923559055745839701108238161685812206367571634392629241953039587362792821021235913473843362420534273979437311819119924442463018044521626988630773624148588150830349127864540269938010586024805455683102086081435125717834995118981728319750703177791506794481830797553489611842989099178826384365451195529366837638012332831659042806405325946009492227933699069374527147691796142444865364627300257673913602954078703963121676128539406181487877323205424343031984638018845879616727709156504969872176153348756796702681575799527973367096593173730795324443188009473005164663703591510950277829223470774630248630393459087628206138734533675589231444343508555986285572379608742328604330529297501251446384414021661089467023572329388232943843110329320140694981176771729574673705495171094845898851211429370530726118481363469206653078478114841880361636217007685489379003702707677773163545033451661697255600896689852372558897936091820060705544703699076324821624991244395138120552761640988625325393636179298634535173627905489780110193045721857327484917879931045236509831150527312880441248971239461259594175541993519862130586966825899529480061266095501273337067672994538370980247518081820148374387033163744286619939340904805436772233188448062264442412628339533608800717855173551850094882466089777289919195070009180479589270401827383093710452846741899547790660904875974850266554440019673190627101417853885997334285109491589270300134227055809814932265340450454956420260876806592043471954690653764558686367001122533388158793037185674849221606142686418362471197380677078548183839846183678585628312065708197304718882625487624530866385300514915253589046515458921765162775025939187969920598257351483093281343569618767114428184377917520230299203856763350938073442833622568814958466139876844688506432800379192091127370809687835187079037888859955656576606677875482542081230444800961800124570018863256135330369814341551862976638187498111277295825688312369539131421806086809774101813829019819916168979394006442764883668787632004180713408484397711482541163946310099975148235742821188667154007061101868136289399759559932790701921534814483046324023303692925501481628118482397367034439160458770110264762311792560442306033554067486299518917889311352450391545744789047765685931993819801929920634154843768496812398831792037043324756776488083194596056414069913563373148166928793744514135448016402565414668331230047063479399284710974550137608406962430936483257440162164967561443107915206501325290792475664064192789577645899665977121207807024061397778997979071968133649686129044992011309064370833432701291462020313687524062867333277680525244420788706367463860915555541467255440036453460190251321683300906736492881462023221966949456495650107419025136228506437151538466678838821176805666181042293279585988622224013283117651324127995038642181064246233693304314482190849169243209422707895983622592745548461297206706496189274594414137590535122332082352513904681593099371320295847107662165909455923459371483161698572719032088468758059855517573390472029929474897625696381066228467122609367796616738275593531502193041018330703660729637638176944834007190192921607299110098070697739882236093708296021497448257348547700173849068432667143138988190131258593544210846783089263419088091368960962805649795131165541810685398003096999626742171133836185402233872561605605327877859917848866952456235249352992786589429109462854525773570761175477865349085310157155785846620149806275216018515337252154221823279520653872763415251003061789259949149882371223861413075743877779262961819854863957628768451357304149397690782421045249209923456778720689339612963845846796580797024571711619580086127089510333898032496946719820313906267446663328621972917790256920743327894678040765742019598784486132230880578406332156824314053483782839270293411107638606951142935213083414375894455980361781584267184886288250160255364659883281258667120680165552743518722923539562383652782398669764465890899858227978932508108216217744271886997152458071623546944504639271032722221865613974731818049800381996195849709111834253374019875416907147177456253876478704158039974005500906148031301032635778151026514731445214043553301599363449665733518527799547714213512705947332823055300465811941995628874390059659430132085530869755747608992087043074251819544259369772684862341847695927589807459393975958220340676351525114829891923746035308576555866096658663134358110180097889203071289847172761524074022056394649966526154240523624098589008970893358775999168059443707388998633229034928448618670944212480972743935081793696154902863189170017613044403686496825602342487623025623824132381419162960175553208134101450267538552199962450537386349940670258688788412911359661680932063524495321935557411310986287804480898296913249500514166237433970085639475637942576805949909033606506287310229319805995634061538233056890371610039904583723500545414199990698661108894503414406864838950176363509846728305018487186405312157986643502849400480265655417842264395670564151719647337680500619306171868105824290404971017334082803802331366171327040484052721516282213791156678602322210138764117476346560193563467238696105925226822944878985972789713131277118838191215028366326910773563925961193515775174941903128437635296491475129342721794880674059690052419945617134089646422628499248509455939348360104586765710545245004091241741778408869908486967943447475779003466032561367700240655762575904313310550953008308568224753182143148559204135146207563455251417894806330532198657176057678878895846745995294903952647832890343920441243915295337281330370068674676298175343200756706687972145879765820818978316113366136325141344173282517991689447011701798325737021751756271524728556034312285038692292745692472061688432701107275933231770087158865344904604011124580189713088864335762274613232804673799660568946639599525376230186763346827162598276148949221912135994909297599403163025766068492531903102450927118575130558129976184400099244475056899730338739541393441915375945779788116000145350226737739295968362726826248056814042350894989005725222610799991002967197214907283857227901470441944062380262520482188837346984341432641224220288142454136313571976771359544892701042580784770572683301146180949674682988133328212196382212408731401794004677810819854252306266368469321840396644380292511402834171009327147142633504939897038214137883079963821108611588863299959424873847819917483959255808066517680845356980780197872997196046777131988089807516105708118705624211111024298538436048194350549527569746357609076032305890808303123591282357958623868779336470090547149655489241865940869912270396594003127858011121359970254775236978432065071149109536324056612771613565521287553789809357157465105286838374175099994907892719622693287648142259435077766961329526573428260159919084410651781683725335887155085214708155483289917843792707378032514948856926818819861367646629718826996694556860532985666452669417856577378951310877358306369810014130662743414620392591288101395940740416931855093778975511666100660145925172975524393399961955332450348530453866531293921997451257644050587394422652750151602346164225849343534139692866948454718446607083795875566889666974752361992705296105419307696389247472557970458337991158684985375303490852712569049730720956420020656007880596856915257778120171738683496210828062486820826398079521015678255090537252461294117960440772002590522005795050521575108797612363849060664932796280181234121367626743774073200404776382081610873870202505032994375331066683566660497760859765594418172754304776841285234901881207419840323248132005614718134961820076686183385666626159905475178939252083373111048600552207215844942657599104929233096355139463236625168907187854141852204101041098928835271868448494898164397183008677026649687336892435023395463147763605703657521045561517153401140405252030441553220519623651266207980082442851800300331058289506298558771954540958235808133290683885633256493466066173528236321883385717622007411115495139514227582633115481953531240003042779211476772263140124901381526767894023727703763333343164458351602623337319678651059487840627929389113127836376018366136029771003820851172747882249112956897037578256320275637745699676613302155120207224496356516486877608853989618386531558455960128216634569578386855321937251448306281588066027324913612867807519990662269414845041190714919925352103447622759739762781981122128709977387085917805894143119379955729507299830747044362483138213169914680286296600988861572386921937940888987517181795974234622479857666371875977601267707139149146096117580189155232202567142930490197548810989851992285792285243777985196593900750447231377506708208080647682758716995860216282008982149638575141984274474179356556560545982803563384201940479562124301957721690116458421267891636047708055006920804260340910389535853037262966762113282919264390596171429824529299314543402890786908864111495082944288907949484439241907990162314960600956587696084626542910178464920219463915518711747371315713514193025148233637690268622904186229918478549688643112653506681629152609381247049333645676813039069597035606367272309547051383274371670064131077848193004255607909903304580019386829032130339601689973871957334368856575016441570924839891101802506153442906992231191583734511170427111932446115723512534086854420062670480007395028293416341313066295075747136075739173071690983968795941160739566118291314030711388895696147294874825487532314864589029021311558513328476746566713161384395366565734687039113523909156442940654214419528503694733036943838810108607534257626692156746062830025865748763896148966517118810821330087976806523458040155035207764697505626062820049792172408372339230337710088789812720961215958687087699404958885794019072249694643093958541438450150469444315203652906741350637513630117153025732018182529756579953989348956508162996236952603449350193493018876098090580356857886403120062179780337394217187774463523982343605253231129737133138153617805354517138070500893332093637414935238073359734918371692386391921641863925997006397149307878671323748959944793545770927610835836220244151567119173326723947076134383072186744140014702194687245895292874393089272595697815972204973622323609345387866145209354120293406719273976118032066561908739298858690112000153624858116738853701672545878520448768974268556914069403494859577735054123054265286725592628354107614545230576023910327675228465500652874598728181694680263113250999153443005718172511980946769144974578353255313044748285468866047063017620072924186693705021757902657342620113012208395261490173651654885707124936228375704700300983025756855665166435532509606149873672684237657772722671876754965732371878205393342039055520076634727174606262658326713311760273836846446080250236067170324355446054040893482280970589226175887964473739034610529441799790211397941236511828016429435022581395331513761785455450519397320759801702234268508063810483670540857645986990928352430242247043718806207977291976726926368460961916314152271619822624342099509967005944175686982521892754802677760437533290975455422193397479938123800202045943859955595755052520576236389500209992744863803488378584237593760984711053159954662566447778655174601970682275883224947674879379295416247465083010972979102044643318865374360771109194087771310707173755850012210150120508764035302869287449140903874115412532265266382386415833145438640511304637867050112419722081970027743434500636613403988808980832030124716759091573521626576000813301930433545132920523436971001759789071983771951280032969063574069863491288833504149694578082293254587874609405830363839525185836015816225461567490475163139812853880635410912422020123192369220915296894576402719934491147994542885145334562508329854127807016125070732524094329301551493180263052938337684422968769610381203833574908720844655309311949015779477201429334623006206222170776021216838635067635878885900634650876271900613971614097783413388086253983374762204138537694794045877568329375079590962674815215633299275039618089260800515435543006508848705408248408628729058166035167689326190206714258327535909825365484619014813800674580073587847154108892954672167971585817940376962066318611389149945733267636321238742317699596710401055807758715625930033014756122284663342783337817665275483548664231239805958018610830806474087744432227126924920801446674132150805116252032177884939794282758327683513318000405992586176765373259801279102087819113182799405435765951341864253251202957298839676684169139144399827835582278134077142569487398176411665718700155572969069794587500341106038960780987949273207287598615443458925163964500012237851829960860774841440950204629983161589214680482556787787413458804535273340977751749205261838472361625509835491000544401079081130596487947968378967612492485787099860684128654878224015156326386035286708236811775466648299965662355684372877079279434688631659784921178529021436948841087659389762336856455692100680019428332547083528035178115413069898385225638635219123094813165459234943900054826243199592491293548258230459372861787372331311059343806966671485522316252230401520641374141778212741266391433621330060094556368344383477828084550629306677358024787329300654363963087411151208997552064067908354162289250954550163837948036069346862677477404402373081729791774852439959540489555818398253101379371453944446428861210417621687364203669124649340260992703860368118052557513710350850701101830024682239929809352191359615112869038524395116778226649831314107327471922195783531741430039378860486427285733914436814316997714009996383636592533844000645717749284061625281737005786962767650313718006556623934626572917036310568625902148235792840900765807119691021312247957370315264640581646699036189243797521841251664938354928234736563198433524421545790303703721172976423945383018799363477624159619429536524293114133287710280213697902811739546319949059678971109709726040781538122263748235856100239034609706440415768268283389829377479245657036857854127736779735138852704356839169268956298421056356826912070443036568990020842318548193475843186906045917377434562044151891614365816528752160434729961469961886389423778164899878655071640521864235150623959484762636154375084062664380004306636848066445566757861563930380529440980008604984256709562156420578404171324573539086514862178872246275121712656709735896328421024819862449985114985847155510014570822323658350302319016700588694403420505993333388293577972172697597586650250291699629367823820564331425596587709574612555777463064038609217877865353477019891088842465400375981404935306561493510155556867269156023895693660266459712989641400699537154484673317061477913648751373236616580980844863452237923161865016402305151478684533928362300982767669400330753910563993099276699263379469685986357966302123316306555523447135738633277796675205113720997222603310610582836341150592801943594863048755492248966192433729873444381350451128340779966429088513500324565945014145794363455949558301390860458036602632474844180357169198802979410551047836352281807314672658053599507658708480165005602032037280785659230410210089481243513192830623119473861707949560699186010929604910906961276661635981914415814742725130312277510991931960216279880587272577977939425120136089101917422111817723048821947678151828541671192165420290323728000517089783114325925561683533557714517506576761836754679057635226016497900334043076722902336813836850987130066652622756448326722954739146944497875181325387558696759103409271193561108206953198040502919348966455001401960066447783200383319282257130240987095561420784977080285738652636612648865893027768657135769456051736169166577270458599565423256070611493889792996559900521974841995668221707752540580834160081077170911818092221164001199676894906161564896629043400749291119638577721857170232774683636803623892464718394715153560649591745062495422312552477000882898420862703994512515659626972611102590807597629972966353171987552467964403401015866928769779495028646270358520012159293016516887442796429579769101973780779866349353638261543834325103817904375244780512569623339723697107607266374540761488390398801318106155069550969303807510671278692801922693885785093581338117755303864741264437686947004189280747568390701145826666088894505132010832663908235474975530065641922787960774352678374828306231608798534381683159537604044913643882860636009478212325932888325729809303738381782957269276301246362523007645505671918135046781021584364982513425925167718489556078092175029855002070394096732276938260817377707588326451310989969879562015910053502049312669533546870467571053435314910519465715114348071507227518897786438099346009915374113894427015144862501096336310135671675553387817551996149339047128228857928989661916634358236721096044020690292139975994212428357317169377885646262692269224581178905261392432023278153160562147831592114555569346834038940483044626816697682577463101388554752266339945126785417444603487179913520143337027213900682743930264165753188937334211004771789851063070407730259063482406401711126019234090927425643238508322585820414178112894569960326468908470682841295246336768993139571674713585434873012372320790416626385495584993982979403770459897224451888212053620535582810467325844352111450653721296301268151718870127386210694848976109196489445706520252389135689848174364458657854682710529716960664859901820715296887422087309845142806013927469719715092115290012509990323843480101059289463076646186254085277374362690494469440309875044454751320002798510801065318414257823244019256702623343481667599400685910796668286592382335465677671696988623597475882798786574330381163558117814944283742591028688274738688945399685334624938212745382130501037721392906538423545670674418193584291225026027755367593107490980541224763945245785648219958962733315339476678411231404022933665965306292911267159243830602986919693177464762284045637940705775802153639224512875241763727998906562256481970932369991367821100073961403361254407416156072575176693497029368458370823048504384246687873387746535764107220309780802331032504344495163449942710046633356211071418360749498659873157211141463786976832326706474255507296365405235880399168441720074458060308706495927889760204382983173216843884479431135914278250674338787764969492709357708650144992040249950423040149673022280103248170217051851723636156930835966563692964478168504319180682245735663183217528499742084476549876253573003903275919414730940192210304314893846862148461823151932358916056633675451607583703307798234238173251623909482526779451275935608816183333971871492795114515407677895223031017472263553829934956267388863677289134027470154601382342672089814752656445574172102155625427904674211683051328482888812039177773966929540239494446252910551715406915911008506461513778593313854320322867399955920210236867947715944314359699060570188774955076961654036268196591762231053148210075584224552495983481889135109446063316507240459427584920630978368086100722102898250967729342629649660869078282923696583243976641180607347016592920185622343303722307974562000621635709633085044292250489323597030496630601163703388611882768966796818724663295585475833033242797601577526659624279416170161472886608373366364408415746835320324272981352224496463322066120496926717737358014385705471798198398459427000468471166060564533780228647557322457489610698666600471960246322782618346701504389105961355017549055384350487817569636848140790602705984722494788122538406190308697261478705218298108909500107975859499079320181498861214439758718199471507752507923626528536201878902013954227861546250777411401174597667890022112781729889269307182595483187521224651267209866315540565623945426088498071437653898763910171630840533981439767616078109260912688491176146011002727491811134427004477203433295098503169335891057991805351453850804424442793680516779006030007917716771601764834898093351466750319329362574704794147016237087666946539720202492166050268294140418193870075988836049838225139232594890849257896342290609017880442870180908430473714374785306089987625577162413417185751505288496509663140859333368507755538517640531364576043647827040352584656782487307708721871160497610503659663305867217307812876122845030665420867361719381163636302647409500446239530202484820720892784755222346296579999805156387287557995096276024929609700205425148760304375578082521102800089482876283866546445480761573177027075807189756210411811549886258533083830972880314439332882024774277236097777600362076533839345762026195386122507634197153146062090810876060277927687009867486791547114936426481006704342535074377776446288800078024069322464831940706726129266479906177312814664192912765680803267901224313005245058487675627020778562534581409180894904125489176190681034387583918989001734036081548730897375464434648746573008393231823895705704699671134718180969957996187560622105867606332310398989623779996612020630785623315379562168263336831238712131054532948776887039760392217163028832852543038232339510848000467798497097772186596791564533819096525240700300290119992821731105517576155996600677601485931191383135775733814126879586303653821386096117585308832059772387338844099007569102042732960375273970427263790213067473950139422645693471533308388780250953253693379177800857013002693390151668430552486808103752035095529454865828491961656796502393472006324313599526414292158380779980652095420827688691807258271708469343380677405521695667674034306077931462583440740161659282529939040012495183960723401261954238577329793034043814975658666768385113048729030260787934598874352411186771541873045164093666485584821495763901451832877509494306919072163238874997528889480352090083298879918360510503562378655387056709196901077207060275332360486057866839952571715702800827701692212997132632597598242630596836101074091001784129933332272505675336353533889019851432771322749840724199893795244419432798558054589167329113990825656351830747478641103885763655188453182216820978725642176980522390326307847543794113742135451844647489057416375045319667610664628074486002083625814891011721706316144942648525263284639407581755124795482150253570229433635098834711466063161673923777175660836043581678166665227657793438984114586528771768726699469808716104649422757386544563345750084313030965816089219676791950540165268031055142102997235508068387036411400244780465455928177845404343201431589578425135004920411941181889431935079668517323049831962198906045765943623795556864937748240661289905661247168151357255751509655575001810926599260281994389670688325415300673902379250084061612825715242782778637213248488676495138761738899301888021705412637604731128277734549860865636669298951991536466981835551480354843383094132638579568925029428957179226642102063524872681437572778102385184716110983954063349322344851723453099478607895622284221043013505772696876559424160228878710201975345827842308000056158344423207123938921954688630792796430430712736451436179385574706536769503483268455356280566363997021358623483896520266767508692161678288254688349207329845552568220528350612863191246858836436789416632028277142247991753892288433943147722316589649692432056616148768904251311672380728720243038865918395709389256963794465281000579688375336866684288726021205932256957928887514354463095952257158845885358485834203229002146150528034899708104955927136384488996115357157981812291484615112513234442097092489955240063714650655576947406687241315177655008394914486703172362242228183484903478956831739687684106300939437546033833807992096621156520445200601866658722702168223198549799962158801191308460154938128493604170320487029675012342778487541723470594285822365723530990789531721057015232107075747480768115030847479963361035284120004459936992117878023013860121637780658229763481433086440928407075624182273013298066544718320862256843676653409196632307105664382819903759750793151541598822426444015171687985481485069110004803651976499206970436805612825117715970831766352351112370612069640155977091750427322148193114450080381577748243277816017950524870237421021928009354312102706015986181327514093888387812461298390205688738083753958057223156105516922896587869905591748164785460713885429648477023522452668447693181370919444279284328549990387006579194656727339555642662324463924944397636789580270556411308643556224404693825294251614200292431839287210972461612203008840783427413126877290593891400123976087294392236589008036462975120383974238754191526789212526457834252533799323035643869361005321272438724565199098538896756781084999473828710444141174604856714505406201386998480749284803853633109189690487753052854076468569370880501669780069551935811934334953604018844273054643862842933597635355110171206553136911899659629546656849918683730752287249102755197927800919069466523020430334746058962550266024755325608139366462822876242579847138889425566150937695803723254379362814873612292013206251777918826933038697966765840637612680823170160663770467841908009382576092632227526924112634137112426746995761000540947398127934210448161620198798458570510739899648244133321046813670369439527992126679498135354419983347964141615202723697445535668283948002067219065750976332875980361353423310876657682169689705310853310470387857126755863451290335528830830863825957652821465608328080846320578841160467704743251800580480134620622147970840951222055938204968739346390571707079696941350750101869464307990243046419908923737285296020969538507199563048503054490334544065914989297105689322858990448911523843510679158340705445709505957437174775456452045022281267789899507649948083926207239206368892120104021260311709744407146061515870113816856996715461311790534257161622804072241602229511355301054915347942588652463834915565720258068863955656489764955957616465441617404545166932670391367299215189326239233627321462272988731980282631389750587983823709356629185546484442802445753262800980072963266739596306239703836241294879642343538133766820249711022111140375978159807815840404540888583494239199344458960786799430174486606640351479753133414584412853060795659430766780592162197500383229362886401371583407310427840873886170528808070562261833143859490110039254343932750365280216444977396970182309858440503615246178623650029919731365291885430742442807512428221252612935993247940023207236054387737784277858075751100778531847591527077994583410594787738838692126736496238022504773600723760274685914091585577662894693792663119029703177188543186571258248722573623214263296992848300777612899644735600632075210385120842684492658075352617822926105994224729239055141254754399449297404280736245432868982580036707253743396733033455670657133795799505252587292373759895025223185570920147049417610492487168126528709050746394054279471203267491369071795458581751250484788040824810113517155615831559949909397112314606455683537386226928191176620388068582132443270718488041615857073011301680088525170433276536798933401046840983756131323395176077558587722316337993591252558005194602376290032462137541822340005409023655093842153661403083842095845782840674469634692005137136767420948931788531897903843891508069086888124874149161409106755048026766889550261113476020057859118190826368462632226466541555232337318495069248952571102795173175586866950053974691174751940607309203180152853692035430979664170402267741614410904515846548544050063492147222568602434952511260332330845606193774917632880744823953369143108095183332652426610970066571028902762153923827169592962512780764765725746020954575922687600160428290598734819542007304007349124103538338592869563820519151769094034310804426813610536305752094479301906464485312212250661951719415527199941742193072265927567155663798013779143093958144117718943519861051411266393036655307458612086719238284483958443404017868221165346130867954720606438140586053985543975528066767936073942693889588003516263626182826439680067626628112125719074690456548172554192590966087888750108898001518825593870743977476961223449199263053253672427563484848225709232947738396602271437274640368423955106973378398612627483067570001163942825001501436857543730447488675896016098598659610995687517779597045430399570768787625878953226782204034282028492266316710935273856232952940143473671289540929651698414974480027249910246062222457432166386066236538684463386316015422451451622465814694086356541787661078182638199730336800292236538756216317104054147661579999456597346338629561525597655609469023952135370152019450559444570992515245826957715949205987898476277161738439373253478437471683635642253762390300196121813849906814659700575981841386636872373338099239491327480284419337945972709778734200818694480666980718909255013116917781639069154767438839477327292768459264133437853374977261243463319312036241309526582261644369290017537237296658087945784443826233281284787291600209813448004365044963961300870335990364488380430777376703836024845765852399948333693360851517362148524665146734972051682594865804815418418626320851646897167238865413307897161243268039589263414485682937378185034412794916153111513157751700546951687750230452364608243782981882995154311234176174910772825016599882109609838983164025782776590947698025697354078677411421731001028594797199005386235050045524514486761221011024505975507498014631788774471668586698291592388686224938123031323870230567884413017319030623168064165900960419410751211878018378286547274919720973048001854526469740804263696360069426570895098569443914807063712669348640606179531021666606458475703470104010754420223491926798457610840477587224088801203861129877456858959900776340028186099558696504274842332817186492107736442887468040172145365759493759148335226524829729739619089659898079492463398234192471017564559082802070736273858925828256843585205515910761913248329855965329089566445446496885997299550361340195534962481610743001475352741798730915865742425755027452880721819792188712178438366695680424802406015527352622458758538992928118741419935932086052177463374079803760662658402225403363142961651368081717539531787085143059132969530503162006145494030742137465924067738344544241679228403038433711808049369853098847875503972002578143303363707551085227723289743860400554523799825243614107591480001892814507336387893037231184034165876100325125978847300830078142587220391510619291682982275726629202004965016449681360747392965328725263240730209449537731285113605154886505482042437468620661207783586354232800547229193916797289741285298505061330398532915399323424488447119817787905796106925018393477225184302043976498392299694502891109838812126069388097400843400266372126660488373127123754663472518917852589070649802279248680224878565050429906735913634301185029674588406882983543200644604434244589862533488643227615344128386177658750921996533144218640849640367211657082028885337740486257145082717669494663740826295074777729369804735831618178591907337128105880223071680856118431355520471888904458869875662268467057657630851314211926976229423090816575420764500356124946419587042615896732138249119023584721841193205708310090093839390044772915843141447675373390438682486645166727229759113502878842826566766365243171930143702175685639706550081663673460543054582540110647623428815912383417273479400147536520553964366883068879016970133923257251577655505496359222685500272735916613724792555045995435087373931932676522145499934148228483608044072731339409773450415204814721647250901404989886029517713205562245545646779253914272688907024611338580314103341402295878026470304777716601092328161740395376130614813009236177975465401295904622981169895805759951634831331830510725966900496262388961431991109385903953124650378089250361115902872596976126634654831044202411384765075169862805773735391228737303933725021504031864701525380413642392664777849918802457045635928198495638452204896400693971557586910099213958013253550138276381061875453236828448667627419126921827796588294877777541788830012617660838513540121270354084035166914890240451088380029288024405345993599905834539684658157405763869081184292998513773112615705635148449479396956325774689105232290848575811767396451003442704842057394073205964467457024908294482844820046933780345847856350258945408800241615551654405343267508270987679166053676386713197845985861007245111375813995617120550314140922270986723309886357073411345390685729513993055588480060721436082828930923323637992784931559512853850468822086347798567301427091492454514141247032638810440756703231681448032899966496310608952553180971299068013291498265753332623631044011334571046980898916765549920075017543971659818725048007418704712585928420684420029598749280727595585815912484765711434647585237515990245595568851776997697821373382796278341339856502284504708401880588844942770963936352927374197472644319984353280368436410132617746199891661036441537935204965848007251279092831776417935687388843089904194842712038993791718662990696440882874028557648949112358036871910399168668163278446749736957134448809103595994008051893909034992546859118681489053158217939805766709638920531862141756078802338302299005643050259102287003148393730453921099340478839504341017683359629080567395158994229373208924423236502331953009275311481655998925730214160616698173817669817228535816637605589989927180010843823263388537390611573037668308627130274663759049684831245451387933451615825721973408112444222627826711347046874795665370260629722041176923712377518764991213919141298485566618039491203749923878513377992042569838238137589579068856479740662273780017205303637598788202889279014677760112248525152945975630422236322139207922153391958274123644094701573387103825359998483046497577183947883732412015333163746533231106377064945956179658422960188282332161275983533792773873069306452175067988485301356784603795605413082471514728196986116134339032214104250092270647015250399843550834923198458285251427043295392008313315594997607058391708304034293212695755791081620127621546427707314985451484289472718210073576604502320459028755320529442555114010683960873966700025548706834950893751079137829621682546780994590516153791348552076772213475203065806570642322533164202878733070605098925049545198196724111772843111663178594790980553524067592640032190673389559114352149455341544954883850954051241809402347514096535382262978466223820232406247298273688846158283332766758251907476931063345197320195347170441890534634613049351763979475044452615842101368202541770874546847107349138565651634049247796293391012161352437515938821631966318834828391820668739473934898779092706268399547914554389065068054818650664487581977452513645468037487402008687686290717035778382061197696146727081487027685038323979122667234456755715526028490667657889819975426419486107163524567073872672294907598683033205507373062042220722669684934987533710259411024277037434721107147513925236905721094278408276676896464755608023598463588219480905783286003765935245956337644626955149916078186613656136827885806705078067951184981500331119482226031576601902383299203463883453279490744029340783772560519848092587672874873218668161205169559045037704284801977939151792365623463920584519142822514694317297179793564817818914078604455329839163078150760855039322642658810793657076940653659846297508002042832891162372762580824732193011770715251797152703421551910697174913255932782001236466793737737545906952245604338940527459332108220079229648721037100240151446631462392619027990164954466842831945950546710377755308369280352794707537720609124520526858695667444883630680094405660673612019839492077976301169450912006180852707147721401554550299955750567121472229222007383590395571136024531723746170842588329883274717402413969785971434105108327749887396914393888638317970907666902119843088731067282224220163219687871848764713377919614749603851883245139819639742199666471427903456390907203857195180646750909622547580113856763559241071853791861614355407446709038199190741199855395510916181033669895770172705927141399932319617564559303934832691294376244512827742459580711603847478704444670792577340923086404946011153345931052926801302999819493075408105411527248676125994145941605721357192030411329600976878506136369018938524190969356923806675695724695997426629077447604191613912449456661944313929584378247939886965767857196107510486611972431462036703247447291129114658401917085569791170224796814662380019905259012052732760400091019935328918677779807043076951349300477896816537898496922442418176601213485669834836943932744349605260808484407991259403026559362897342528946938432295057083431571074526073110346264633908030769982110070792471945999108788847343862735901686467266918780675572516774505955292727521954150497896495283342465081029655170020395346974152663644375735768396726288821554213255122864378997807397237357673586871700714487624538981731544854338763651225929563304927291524014797138359974381180173766813642011140696562516601376103873422394439200284674351011653275175488230155548761843149766574404577617539671869210301691534342540314949864939167748746589889290907527909699607434786182269377602070641526284987328067389216086484516199589832063361943251892434023368431348590621042311547510046342345826108521653838050086935757666196120642602587326154000198908667477772595770858333516937454392212582784327356605765854130049813495606330236051415753939521334015291864819763768272087380336775225431110117696416281952306549647797148442563080887831606189627022051367664903721628891532244806815825262222942957891339303068194464132605283344551348230365512275462971764820383511310036748221169637286687404358140631331825799901801474491731020859487985633627434589010124691050954180330108489714227904309316094380283649619719417354048400894098223501402750671598609699335320436292588290646077946677614665652860848766692386698108974820297994570099146367282506725718320361418718317251532775005068295169577461677874877142366057627781460035950810634115748689082894612370942937619326538615911850835172848453033103464483662043324566084874739081187761325672445301831340105898257085680158771846639608561991488018186773438027185953899913227934801382665219400935987685248483046388706082905595636988695460988081616742826314559574831642533229472248592022293950012954643872093656921830575185897697732372129055056778984844368782734922802419459765820342650583564832538322044808311556831540199112606048894393462627320613388137824028464094460289441182891249077543710420529475228078196444805589808304456446864839731211019071122208650809082788106638556073714758660592961701240091345107197654300919082916376102726642306394347876078085183750610298130443700271650252696334006416266714168018615006455538952036284008445876472407042934414708645631262993815577305475317410498183739722368274226807896216404595788412744619981092899729102501963019157889455791330533296030381338596157723438390702807768080330320460851435408778814070057225090924660190087018637902030222943224904851338245287615464165798435040491760416450757806336818705618511149908508751545998644787766358363776982418335456621010829494522203087091515435485376388881334440033187981109709958994331827782994230567356185659734049407905350254843147182951205499559223127551715894225743738958373578343025260357548796842259230166893353873821742903479527084324804085668468031904225335220467204803601951107452296081437346842868238547683355244223101746824085362084884166757780840696540109162328165133792534136607459774566399392837326229196327260017380762141445306123437531130046471121981710411505943787815334505231839518351447727737520904875274822577287285331117826668484835771067666007609852172381361208789304274029985007664651692782446349859366997895116273309416849105754339434447946408570328785694234627793968281632260519187313789883433018440122107314250023552139947239700149674565526446770661739088909940643681364397030028300925991759616207018862896583768299254462313004695142818626638502380919038131218574342978909761309899178964368936664244344460722013714772989270272309272405816221350494411511572460072024642352446286860217941999628344969598752850229965253831380365935663183729776814818605547796455066367764978084071091952804131025983635795116929581823353991844899277923589345898853321176991279864309049164872581572036180623341802021570699156368115672075359493913577217069118822815167550730384610304515391483066671930921945636451149176532250446518765494492715241172447855209120440347873685542856549370744879583224270498657728046266988506054609287877280570727891287373418700359761916508698293536797308685037188475647608389136338002579737891500744249945964196086156548292009878909770277977775626910638583910811381829561381166931610207472272086042504682055019060247401013310529797344134727123524744621814401678520204289818048099050846769914660090445616027671071929793234341550708217455000512992770477181654816429507756314357646137386405138517428519028061354598248904065277644049906002776348710853254307250207535385573191257925676124284374170403768750345023574897998462033141003835657257600218172326548273543600943381475987903006597751463909532945144140998944284235899885533049684596047603251702442499703750555965902800999911795141362175720330753499714054879139306433389435363105218430818252070733836058720669949507843137080838081029926433149107913367687018465457308029248037353153807350167442380934844548380372640028216129112364033983680060458733140375327219785956223044026092508201032887528916998823975663491791004774840648311399115727070988963189759344681543082512585672139873268648248704142053745884839697983900251403636677336624324846911831645399991054642361731745410008264422595765024872969624931516869035648212749069038925346145220760645695557725210848265472989615538944607880249756613017531925236348767529511669028930996221385614018456224525100736417420318287091887854442904190520291577274012053200733787506747911376006716991535174924125342949187629849849000842189879053692806233907237331554567026739045114157076539785415630193334755808792036282738364203618714719431530050950102658154101687048585554348619137520861640738224988767662082843518611965429502271691545220528582535756572182966531943757185114656167308949469761063695219817217398850460391177389184677342925307713737500533393387623373844626715823540751854658178858386285575338620461912449948787027268642736702556919457724730105987100382848692175352920135193204246798027696306281642415457306312803009856346111719213274191782232784695476629084627971655175284139424632462519970424899279491625464641900550595901395600182707099566241329700885533322230780782482227132075456431643462678050115518396220578909202381905980544155651562463651539596196970707398516708544466594360082415130509758776934382947396381123475339734910198010959110424804485827311079445917416686204747830191616074631550777838936262982517698737938825529208191154801662318833605066210501287392695701253705701537336937720839245337135020965429266307778222911125655349899955973392451086800669441270601387994349404263105346760860736355167201024550375757760154736217336623839435691665302051683207353084876123451724775313383372934580983147088664748175137439999321297456674135422982292134147338918175087236229735813950221223786828649274325622775154227366548499024923556274972274358302922350329046896876069034154403860386462910613626220418863785697735514469045464343689429003310873332558222612309694145555926306436933452028295416780334981007994065716552376437042826145295417442804259379218362193162565973999910926799051495138705763355353285447972392956027214962351888144559408127388561146197492838905428903589191632838846452798959607546470145728351163933744918290219019470997842661439457723050301653389331316949042200246742074735592771597605246375297639431425611107581261925188663753916868396680949207115027305705903945617537723953359995911690834656339046659993962095209936393302579267214598853844898328379890246688105409259666427600979237206082410055813802605501574306514769949734897160263716797785053531893993271955728979050213785552831190429578662775335473070793707052224642993091067089939499074372913802905821060490350106204708038939238695489324501865126076624114917001836221239659023757540217896208733824041304923265611894786067847954255937665159407563461207502401382308294834413750917049007635844363000149449240038061420082817004394612050543083866290232254411701911350002780385648599592398265158355769911210844758446084629414486458553522499124299766863081872683368842340572958451077452438916329490983335702236812950893109046844048379570416267923524690705510513702521749919770263375052274459554174547395945039769160113499714731712548436222347757588210264475839498507564713843676365116373863129987284888059963458198433633066168605780621610750460797739092068066212089783293302751180659755024499084381346838005722662551541069330123563168602354450257764279997934550940693578509923328748774957187923995318502009401260513461022597393245003965113050256173760850449252787039841167938397121708265170386127845810940791332635200676658800981676043867401319933074139764667440562648116638451215078748895172006512680731577442965436157867774032645416434589433136494093752560644950833744477625148894918590682389469447276984240314111034899336978397239740034887236238471429740383596881885473613324823575368072059116011994347016397305140104364722729666574297419517893307260779643822726134504692218531617442726831682301943268274772303859316519618985058607799957626245901824469955273926096781645596060676445085902419812907349812981704708315857818145411660454540361317775104795420543469473005472296685250045176170913286766603645519652240288388176636392880624459090031645297984260821372026680830025973471829010904268921274899331427880844635704510038248987314733114024754537557959619305792051332974578313309086238548784600587108105804634479079087738457126857395624734816458502267811633016473748586281818292080748563782763359067742161447044262706956315970324832466504579983611976203814730944812516103486140728868307996379518608010271198147809027245016042648816105554123234270312693381605517774691912407049482525143009577515214348644559914842977199878984654705544741021039584810461409192610436975944937367853699599026968215496670829155588417225674336282525342645967496150512828776566787492494967437044304883208081992219081992079520673936104084804098432205272110698140169057654596734546669822098808807544517049812579488312353223109309055434164339017658251527709410630951282499714583620459860526377872552612609054933291354016717396821324804658611319011563370000080140906690336461863540398671995885591111098034170722381436646952384723101228933367281662169816663987018889111465223601577522906881370517738578704266501354553229548530902728203713117686620024039377713125421751345847311438149461868937965087786477451695562003578549675524219757447555791436828853751104618179916195388035935273666053840571090906226482891817799962745149574315068987336551063680933546517186677356814764376741769972490500435106310683764756635240139089574272189420033288874559789429731776213972070083670276539026206970445673938998441171899799380158733492134061785376015932508440281276898507564758341897155430723688212316417832537397750122707385931622825558288708163162072984203379388075437438244727402563470047603538660808277271767554285332025461481219597123879858484693960938854461397456635052192538607294542503108371601473851708085427528553477219301528679253208832788369758616795893156710939146793184825718829175847996771419382924169697784200480239656241077765448610906542830021369208397438971121301976804240845476725912490893829911215685935571561405101077523117511956623145243721796258390244005589797111099741816223553913494722577517846312244090447820426870486204084131966101455956685975697541345178696488960067713595402931301444437594906573601118529830775645407189344786611372899434606857054049751182279667143423420343037815240265479449889296576795013626802663002067323877044623338351339459821565335634279222213910078177560828625256641975184748459737736356191505072308743912120237150546976449461025011452334757051170392206496840259586464018324261493735421837768812503932647700353969270321112143941500916501276893354727361808044566378184702237316535830362004126951717750388610762808314512769994086440146625462653260514469405861545812217339485150091089000608152941978988519022284934542357800785229027771909080234376452033796127377774079605663384015873615904766070998206670257961144097571110277798491952562395991184079668959737690985869208207059590957154032814457779394729046060192480356961920856963410879507608467725145141392837950616359930056662236832101190304491496130345155663792264913966115488448048586152368347524594443548052288510587727615420309477512693604698155694909951733014685752964770053255837627211138808878516015149645900432658196810570706120330651743587283723322743068870174002863467634900297017534100831524913346668315763555990213811813198475406184303327117661990670347426471939555374927151500946717530478012716331412931057913063842875347524724084172058945880010874293562455636752390956275517013062264369765214122387746607220836619474590396782236694482020944380847096457982944188666890299525618390351773868256713651145895921022876075400304404528507696599445501772592494346923532285417488255632284375571273197956544517061389606834464942997998598385459755989741300256616370276651703669182764677711183639607286715974864459894563681818045101639127765424101080773748536268956017871585763200065530583086612050352662011112868203457430439827772237335841969785504069030579615695679108880043134871145619302301549374655683334209651096863354947852898943555371285990770493925456634983356510764836172555621378884725503168284104175617750438334671802930766137891305829767150827974585682285829718201386033670663912460663977532544386214263479784854754657796315183766156429297559489854152091760455616672820195235910598788182100520713654325812899960536227448573628296310326117292478943849262776854349838052356244357024572582845369201573585209089568627911424085614170322110038454504163388746303642321912953970201983758526198105404828211418326005314097798579178191583437309092431246795632871033249169234415367562002001632129919511900544261725889819445319773734921049523438626067529957350125426122104477147850220355299166003148872367106662975710209799576373711178442805105845081728001604167141809929017460906253466635187059969961411426427266092755619360090106772176037342442240101810656447290254366220012569506255137113453058443717715178157343286332653965188272320726655512424172151118101871310986470804851095931804280701666982251918216301736988754528411297912618739566696353615108954747712753438187010788264840363907355992397467145541892647236010088595938755789778397585174415204646592315066587390984189865898763059526202112902105329598409181101840389632800893725981397792432982657998287855885668719401805750817899823165927103354144460342374983558198652049499665747853914457271621371499216468489021346658905860352883687177257996324629884779892534531155421767147747259842897169552109202274440067624513733871026533426619307060800175128253681732854324823820414689523349188740331897427077514715993971686019836334104519352847630093324743213862650016341871020505594127021760295617850574347709979754258755660486254875826479273981959734791647241752636554669404187610945975006223747182469232587063137242570953524167537968275227540285157705892256824459188642780463500083268425642593779591574230283373451465861592748468142099186806024578904503741519808909952068006913463884218819614659988339960588194570308934701411229029056479871322440054796675994361820530915959814353541483400746823695890726276089070133736714627739803115601227203885372832522573792587661587888282164530158752575657569567340959483403874510969981399039479447613840289399712036949931693509707333656374278539515404396047458742342507769837881520869195933710251021651154290312477730289172654115317154547190444689908386298855628067710629243807717863244777162675050736632018727444968607215775416515355379461452912267934516320211962655442657261157415407815742164810751349504231463687628701180209163445671743481170682626696735184307785905151589620309203788719104553308316838225199996143376563849943656515698978652160717323405946751330036114698273185733549271944022115055766072458067058452959017369714736852865160501294094494526530692250808956296740273958946846450496229740162125266321791000214197104761926461802878218969638239560274764043260059115447213138371614008494242150522725893849997146661760032988511774285320497203112638733644202165627351688892171111618679039314931351591202515882614438298406415165192468398609396565207387156538331417270594423878019883326794267434501387651673363433425114678530746376217480466198742668395522303562651915360193643506219117110553408841409249272770042757641894686599055104959141466458709911939591027849127150287178473553104911203189629694983669541266470713809938658386062916624141419908348260725014572563718993790514325947696402597980999334065270826412682435834318831685420421856148005428783713719725785246101726962170246318757196209182755294039396465145990729870280099535961017613753550316071962007688332101599603591877777073493354489903022154815698856956760850899864557066954260045051822919848448402933190690988556486774919907611388645204599000724469917275319611721792179749486428796842403802304002729242581808633333692192162392402567497926062792723475266850239001721916391243155448261160828588462016906076395372041740406205936031040597595147008000549550067924398958317793155820495147140742433328980741917207633089510502844903609017807055510650442051456740333163753239245645425276766310954191837205223321277568188815469491090416830885050827901423660537732346944045198785447508031969433103195601150006101384959626032179313018771574709749007968205299602491819389562972427143537084543104575429802990050794067807845627490084616397184321781945131247404197367166996153447589327871441256974589526032561230745715050650648582793363567781077046075520960416059611126847431097232588578420128584247710380227034047482149305479203346189101559481817116702474304135799192123952251522918206594783816695011026590579797095074802272544227727760872987307587786016693496050811283396565113584342780048565953234728501880537989795102884416208632533092129474837433255137418577124078637399308683211718758070106109238787572332535488952085380296550167864741728913642965999938392223863970682326627457373257951985342898376962143053853496554669091200529164671261381443065364345990082757837570005154555009534684814005017566763177038678517784916573141241521180482730909632432133143588849251160358396142185932997313566425756456106912082182943322345827684234310199464450826137651754489142876362759959026462122574053279651624196251705833896530732154633832036797777575301599665000388851104592758127653468664103815396188983852423029796639735714963194372975969236628078128746954455788025552228027561275849834685486699326927225120341427907493257571365832363624129427044905232937275029004039326302425142140132886297771809688251090379701208942350945331899684520347922060666172181701170294227463133639765109257861962258944344845016496373679318548263376515118401154885357610161826681957588397910549170421657282233225982665807009498187194412262419384511540424564416133691681183197918350885842380549541149812548977969735875923835512606496639580187089549021746112222001748318513805921741759415846786453697573768361275204345792687600750476327082639440299634342012210691550509823699862378117816990891696431019939300019747059401745001027428257562040259024031768983829574750072325666798208814129109402116525485910408573704884639711127499788270360623626989771204608551308585241603678048930791946868080107413180691667976028822176447150475105981800989101067652214584484932226572675959573575557678168284957234836842731463146396158140998351869885549408538748144906446925756407666244610432340980957645835162703184584515673052007579086698614350221933086544167660550600479709640078415067328311368877555374354499642181214810263689381867428964325286364695767456723273533902200288853869545308305593753552892128130294703140702125486668843104384139280998191130719246097547304561444474506827651809955867318726140855005521871921110931964849784844352256235033645007969910735427652297433112382211609250868041438109906179430898431887802992508593977254578664048974469242914052064527349291236069276161673418153870923243437733994928332020527668636183007118458373937809704833508415246759661767419291358584448018610501219742591484176042360167921568498372078331255865428243819331787272388061757580446748514886378114380513722271634536567160497183500842162819536955940525827833508717831116763396103512445686298241529765548068540609203059423900956197723578421066444640155052748003355794681798964780679811032105719279967378102895150246943194020312171221840846164969553721782961611075898960432232342190269125301833024492401623477261177101789528212854522225242838567487546807918802920364877674332438292832544755832839579677136690925456323296022375210524921864951464953577174774218183280830171787379696949213639142091640355894146848073334803670349587262566038282775344054773471930806546322538598950163718024587973786803743823923256609433836470504146036759284747584648130130182866176809138086023059001726877108476328819361356639643374546446050956344393484865189022295488986596317205008894225067595955384380014698109393243090358524384852518053329801532042037666356318678269952100573833045091475517303615736920719065549830767918768430452560785972749575234868138895344831550613095866323162659219835615950303484928252497870109720329220874379848716776811809418880434844724215213215324741797544848832371987912498219736012432528575325471645544196592388117465414572022694688114769436148697496270773295870614735282953654263279396144908328694867733219929110838902123065454407182292237840851133650184147849232189178027461928220856025578174760774687676984507368130304935599291164670756217249295540013990452235701921974263483253079824295344501539155437883076759178028985343102475973102611788371380072904858549193216840790541976334754461839592452829995326681641568523910635132655136289741814570704958553990455264857439087831976930554894093516696929934328621644964611441655652743241994800480976582467049715306323969043250665093707969519565744457500137979875463337410167963340072566676004559710058204482228946128198963740311496891019690951899073143132867779067921583703545311942655387705440870482286683935328244015469929661699567893634570644261614915016374983513004497042261614972780204718651965296002784102491454767515562648078521846112986162252050851344298107916963975143099440586641010938560154952823326893509978602952043299164903216629565987669859536599456636486706134072430209318967275437146651624674102712989090125591250209988183383791493979975605100464321668932620976754900003307982488901353965085207256542438737205062715223293036719382742726578700075752229371299036929849487646358656231478885529534165584197086611283293261767018372508087625744322854850740080260481659708693003027430646677061493208340614783810878803154425577147750004003202135062275849019996376526781171824803744321241051696043304173475777519479619133508042205319153128638221406978151190105040816177151115167181964405656581859092787424598061102575428130758380593486225451145175093422908978596852459737484420278767577356264675524847790192817351348860553771403464617629360567281333059508300562372442138540795724122366796509876375456526514013733789488156828948721201443079207092044849397435666284242168188373572417188986181838937415306944389181166443710023898439597975814887822639277142637422327449061495617650594795715353372371927328964229800518214178357192579249502997062266461524886163329464507585153335412567976386107875378431788805962984384490031887318858407846138230413884926026007096430329061702724033092402436981952724981316841748126541213243536333798405198909492724818988951837331359452819621009773968944697003585227478873001174067194704717471443443373754955505860646412990634733465422409807709272937552186805303581346965092902283319921861778617181859572989299415769723785185213099488853714676991655796225886259427325210698955216079208143748352890738606525509022077655530115249985148694613092606364859846042312243636313463322012802775567428289169435572409151881107837550593235007374135161383074846936358635873574741243013070402122583140658708633289992354761115124412531948012845526286829675215184462380697467735445460394051114660823331123248636376852269334574319730649870721476622444047462748261131377985749848013149771690894612753786407625644706357025396936151774330198683747949163869155192607121016481406821948033228351001689710135107518830537522598515439879107922636708098619633024107769102840657959345533787052667456834805620285297711552800541639866508028841753478007401907132788055233178051502541561038953693617427586526467622462672210801168655239274875607981062127023354893183726343162967263120845071764753597526300747797754063358003446717362171679144495728765282274641843722685161142149732993883957957708677419966772300802653601723883580613628333862166296184408611733657860422306825244386371180799767178158740085228052698328589485707900588815477766219951999613732654532661557053994210282658036305404575579350618316897029773748569514460759297025162852299532215756921302995516836724917472885860974641979251130546955475056114200565388255666664127849099069530418644777365695646915994441625865931791902444036399913530235767208777300315203264101099037090875002067923893757796795021027740218689186277824874724704863787856988361744653846990617668881109658103552706878416380936814295549222007093155536574691424223345937997852243499624876317984639169601954425176899851491842500858049923849827895890006425578704331119342654927786196563891594560820990235257957415577657583654596302853220334410310193257843431406095470108357545746923879649831403253198224478688495398035536769071265711466610115932210936483103381528178331632492862212863707144987729853707087653738326320615976834433455946821794695137126785556512422079684148077010581565383554484279781752745804683148381871931457703680032477216697190017196749646521066630346234020176559913453438612911140637891853581203043862066122405004287611660348649082404457989077883527524788068485388400180246673143296826165489286184322513239554771644195531797508849302199476857432993518880262270098749158493355546292096059141930332281890961296538772994836918386361246352683162711810077143317347748862621066824099069797058160547887261188712627357701463322452007598577153552187933000477307802889108663185007461965457040916851565614165154192877908425196335628434601598694794890473442344536172483318038676505692261055652775524749984570697985185719561041225002135978071470003489122384907560009752773706368417120817060936245161979374644708057814212351914280300765253953415866020176775710301735620506920858425116632999424032300833115156940883093269784692598821455709604175377837119752569585400408983102462997842019445125013548227561475184296795345656912490723677889538860785287041309550928239039091104403112111824275346964074653978704036598244706741879627109585539020412778363912924565737400891616930333462561828233615651247632062245284250193625782835256418759466318269689227807336986064120029889677215226775230743373412578918442311315783568023253478356398391452290693193334276375756521405626492215917928181980748133440001087579744797061850900827267288361386333565170683413746107632383282994068164303882265937601791992757219967285097813073592077260649364607818854774813856397520355701688355156798974908806220153595423981177425339931517247571813075997818108192468370612453139909528058622058494996981873045670712134425153009345408971756260677102184751443693566326880919219910203599512953775437374237670255349994737376806179677734330371149759797139120712400426579401614507448365345463685152429525961234100364472307511430707615942917491449924312438292276798831787298112247715329974723960817088131580165182262172031931931883032714659053301755050304738007053693983404245365906291725732587095109766989060506464154517256025391421879618482028711913719672371070701409898162458280216482323323398149876775616508638627341988635328863076122325942122596562078103157387818277346004151597583913091083380940998921277329335967264349121724168382092256068006521306064704990847680515614759103720105962095562702594522075641216144207178138499306995106313423846109765636955828761730749081295569908884322380405451284036684617516697338516566945876167961267520272410931718544463530852589070071818136052454312717592120817283585566997503426903781258773201107737280077853345698492551248084223610181990491925184056985683818485579870975108868673281323362219547970808274573419663975244250283287363499620083952055001045084405560639393051247276247235483583471214291362786469421951182990970027979545971221408250307486562792446682902925288189206642387965307210734931623678353823961011848255645925214464681831317485127981588675046229246204610085487959884730064036806780819694428120890866549212557238419629957945330450803527212445757626508362154846485118185525618213137010655069171855551731700089415644554614167011494099933392547004558283276936608794605752106600699214301647380599497079760294071736516395064088273583294188066152480492140267898507989406879752383313667916256616680885190390070075530810444009250061880936615829207650215923872792678753199686101282576378194721583275624288859203314804191888239036400976317274274156147179040141395237516276307967876913458341242347062473643944434263262147831383580795417188364506478141405286141598384862436111197537297897370184509767377667059708777782487247849191838695412880081714172265313311716370291045380837410109653200512407833473077632687811111863051388846933337751154358609942251468621711465309122145980713521024649039104990740769459870666672607136604817547961095324353306747749603797895116854341468289264205780939030684629017677274494508273758353641620092191183600924553729791086758633450481615688987290484445492017627744428473717130658063117732596256658680539409961308642680257204941754375560996489339756721356102676197160708287737316750864099916798449532151042133620139790133034937091497668623965767118772074060254769894614015876255413745724505692438921501399939437000794455341844610496915777228403143791148463848143569174139460191061534189508778679259784367473894975415349226379595222657713698638833047873946571294362610541106803977601413746392780753826759770807601765717898655821311064791725311609950772443369577724574272348472963649571391128469452734096752588140025532217733869311925808585872118992731465899216051368073501206776933501933953843141467468636021379833128626365099683918486237932610603082987740005096057575377974851642051435295496654100228353963425468273525854473714637127761075565234742581278620148271300945954333917580551759498946932375477756301887212966679307338480636685034542611312746211951620329291994336351316583882781411326779827093501320841013952366538850831204617884517410129202610262739902586528260682233215689854561143725086516411458149546939629945722688239729960858328169842067074488449844791382100060420339657570716913753106954299892344645158363120368638287018106613457314025207796630545957099543343589607129567732944114853018310916353894148286453464740343546825301071448117522703422204049017368202342721164498969392042487469850439507854158623664481751964504482634598266423706907674057282529479887892520472331122986272492110299083061243709318905571264573660085911498448408653213754164345705037932518330869248656048622144986819261333344243564347447085047770251832591943128812463204284797992103150541670242925887755226885154250030823531135043866102434588765522530493971669641562468456853413909260162315215035919585097605254515497892631982946672988944064333019830140641815715369184211310292485928860254573185171750119883698331507700290327493502336715268442372493876608944210060799283179593214625499992763575252860676742769597583276541691307214121965928045515664776010340437557109804985414680720959243039999024515199128350119210275341100019075464932635234710555660757397521529467603501859197109363485081818668229361348358907200672739303804882478735385727984476581553013971410002609242944770810140080252520120629461632337918163531153162240589150101787643055832035683948816958794513163756382595078669425201304558010833163197371128672652195110029446957421755830344412610520078695531591601927971435704046710477707956205462394987085082770129982775323726931940974675877145521014780918475664921330478191118756135210798015284731048471145601070128353879857247860778509450457651125300558967781783862218401472998085621573157778220055634975763243142893479028897242525323427244655409133891766308766662266686383359079485395957442876198768604141265442164670504831025050595392045517376817920941504256105776760300072479491906473551949868161677870594370522406549311801876797139601960980973904725168995106543001739528213104221434148467709068541332935384703808696530983838481314040360309797076715874812539379401830991145087603613995775731663993615511146256869819876004039974513409215511988441656703319428669584084779579069944023536424187677553546837517235391641522643479822598178771939047494188541716335542031113375516605981319972524089722564497098876237193063588712217405861620435295818228636421061727846719204711293366403365445668077404931112248826513176073358258601207846585173225160676614220826115341301817796378887940531773273476981073524978296262504843021601002680126861099774667072070866970622608527152472255600683497021950240483253757631356734922027215837199655868842137397078924519801002672269265951898348367465490144864698499890804874582797821933925635475429261870372441344266895874581734221994161291816129232259330132095053771183510375512134548217555017927865677605774310848679636723573721130303793120014260442683314936206792296466308824402462802611439664979919420017672683805478807940499059902898994703667033848585089617698866182497427594624121262503429436436921181185117034965907107658419016620806731530985032328364213987533846492479365078365252433576770140133044433828175387205939060407141979493235068785188032852111663704078971074426148826895191881415156759976416992687704158112518053255187636602101707593087331754327565178939859930940836415801956080978565335042272283124590618586276927178562650275283693303417904717088395934640935460404613487910450422981492281616380612591902036352739626589722968035656180794260996044705670675675441010522956757823027378332376304525267099841195785977283471932936943481716979990810446449555154870264469918502618833478966344573009453178161083422350538248345210061965225052911877371633879002703546223151200022712010966227248157785290801306995751821259014597955321113643681446407489908892617761662027840310464775175171592843150400508081270294455243845446967093639368667376881474648394217890086324022751319261557961720730242722233198959586045234241803022550495607116934608203195772186793195583617438202725324504784355827967448285034294066505146774769941083911844601853681482642029840284641553934675766570972944236071737068544956020346266387540035946314282401217384313364530446884853118354256494998024973638451874262408293942216356059356346312018906805777211256723106476172483227878480721029403969296283809080672666638867868611573112258437069155206673405117426782104320524294954829869605942204783780822782419656883220008074271493562750659086068175662668501371503361359056114681013054432512907985597629889697868042239810499888532584920831389754809908904121532019757242962283551062491931682370457506992573425752942553085356018220425857192358331791545796797427993041400933756897511685993553791615236592591546418620909065694621269893406588998386396528997633736136402947145879372538457982501318764073346856601434369920039140320313558405925315354688035994884768152780927529162795866907408182665306480721902196281740709241479536418600173960156829776945056478978782586657597564722600356970778687186095357707332180819763211307710853075324432294954708246777815932443103191128911422366394198633841693140478180257448745549441299691247913821344272100043314531090846178411077685422008229947199469049313319060611730764275666242554599641513938418335185909568648353630046659525077460253113808430817992402793724826235681435315186328345216522119997541993197279899374816009198888836097455172618712927095777329743177573007022660326567069399868283344715622039120452101370197190510007534049653153489120370115420783177216546746336630448615709841797842628705016670378391786238779147763329740565671964891624282849127180954519235285721036778394741923380702413484066122196972069892791224730109923291630247620521705624263927550843592963974224281580541334390422914979959995341663438344589914887921955948118248346109252441292149939892242645823387139403061837790740061013368309686735964991576370794236177447569219678083509739873326534834132559608092046182607480120002230867595767294366535109605355207858098185772605135186783953040467571385761029528547177859896683303726762060881809830143908900912247074139616628203417293036317081863678412783982028298068836206787304864204923088660397690802762302816502257359108453635621458379980901777030409984027402898533977249781683482088684141267549206204843056644134463486118544260659945654131632381752274746241838372534124723890209767993888206815065572286485341055909341393771292644557143054460271385585852484401050045343093047262416176932464255090007507592263182483564601445733076817174983323306100163960763518251929582646978940729197607794494133990539283272455694189764723190064921222572655233526325271867015336903342828511998703723422786982963024833112458428363849240790903550468177418472119370892357682803461499789811964193875463869496515788563790417064282456795588250833262257529364033229037536903683537312914616177363367386366344404559640725147168775290020871467498048578908874110048309763416769795403354022576365973437859896410723653302092922484794229680824558629072130444520021610265753226767412265055829290989120815609682597417783950710322330742780224202940263126705416640107890490486346625551797077336426068365711127730582111448000608147650678645056175336688659866081516764860092048814870350533238232420262606942195807467016410035170313737794070169379572412325794777610056829429617005819290625563152636551725120681819493428202283196896926481412126571090840731726298483397014293260445160828654422811146503683494443118376397457543982475323829258505152892568962227852220321705109503869340223719004986547504258810813836117018057662228011307854887724231776748281962699074318668190437570363944957431159423222814976069592366442454278821059869804937552956917007375698154308452873447982116796685362662661169796884301320016277575700766230069929257267752799158842947798942666127344742477986953793011776817925891681198800037731789927919969982537166271613096003596632943389025130777426656539427029109269285437527745385283700108942517346585760693623973600000943209199127471724247127867588620168292071575242706046790043860931764580217513028129513986289398670643536981050883687856234677458327449567570655696439521908634927925284610877838565839495433205389001298038653671680213336739464788798196354497098878668794496487418508196924752553942434420306637469108830416489485071664188086211483841303490474898484128744457930493119425442400838301652754754326576975886954149940963192579084811798385930348379550612607701453179084542471110103319584488499163761366317241826644923761516943930044925710466610360372392292980773476388277034886622014405004067772875169692023499558602534927682925007970605040703518699863263471933861494338556484156251866940119087588118991625122530204167989951570891085049671315545602486738445443229754261472177099129485383316135844503439569556320048785130982419031193317921307902601406412573134849559469828493966687434819738445955478902358667669231465775218986530939405578787200969204509497147238192975065207383752266260400915617616238621287549682613581122502301103227622977178823721214346580223662562248677734797293607283189003508669757470054065393310524643791757507945205736203499867870475590702887019478762247863284711205897800360436711792446281547998586872379071784067794389458575537927126150068749013177913013561968948271379594384135005706858609246705801597047820362712702752555752095735285970596700700888718091340665052845817454045822187133021314926050573894439132879393388232645498514872625635105441775599292007968249367433658246526895593218752630308226871079411945573298614055347221123618047435428080448778894533050823888822366287166585524431501934002119157743071638667524389242984825722398524008723296098760612842154206012634702504214351093648922711536233065440604738759318389130653534378618757376966308803482546134091094253254783158112019339325282870072453961543208015643539230447597440191276922152545229973399389309381516864804429687065891987866865688560124173188736607123250783235644860203440747380202615039574207848713514426885212979664613383180174148765890460433580503629054759513182467520623319774652501937866150791441344399287482565951194942018992067388862870898335866087999203389823358509020562726434774647385405976371613312546680272880059763373445040843127592722414336011020953858775811651982501467137191416814897764426576264044178677848494565691856317382867538428330539470884366057576539090452210246920808666766905888292089705496644803048231252076630426601634431757450637144264068255847194088443136694116017934168012022056196810658065336536377392470018006357759525557432355060557780619151038604480314771408047300152574531454034348971439902119370820742370591638320335296136057792662269518137892718286240002995197048491370394475667652272923953093590923857316689794397625952839467801471965369765438712605731716358638372360864795263273017966594086971601762637276940726737433842018983816776817345243032303208035082499985420318166027407485734031443313195572727846377773877850138823588396836969779670569632584021323568573592406349391316231087168606621675257649207638206000004330969637454869330984871207671140554563797499438034331200327286166629780976856427888597697905880654961212728687699070112398873700468199429196147079041720899600262307900217765419212541870018473091537640864076716826246191982785789746583894282814962407782430710329712248581885391647281300924603993847671842867323067706666484433788743450445691256529196958185339726344710019101768658437373949305781776255922510618090806303670903980450145533050793205036014410642194132314506101414657399666276274288656297974753930122291631982555987490287867053509942339119351313259369614547842039675968701585770197119469225134485532542151095256663086242303555770111176161833961767142114831661664090407975635211384334149257258031297770827268068560771172171225117726339723567479135228921643630965909479341562116747042350060240806029666361987209874977122336541140629250652648917745733518102684908396862967113497988337585989617841556214817054563679085379013121372081797358033058005888490394914635853871507765336097523044357897429783097078820997187445758317015982999244645420125539383344466380332534105924414593127339408626839214952525585978930176239372414716545567933456128414412262962184021123083575321793581662048834579567022282391600612425387401371133103794015935724791997445024083704908250944837598149984620503222991563039138137338481318646568703599002143572831703315424923571933339973246303006337315138876468913108371422249915223500351764038461768112566546956321667078385439793045137964397877244279732659027397621046906677734105722101788653103953198482933523874523191621395067848167195885655996482196955795167041806231631352066256159097819169583166713936552865651124484146031159280967389324863739361541174579239790050001391938107873215652843528659889272161278357510803490547147437203880526903382418424443425835400087840866793566819379380220995367976539064269472667234804010937063656487344863101986501249720738439178352635093636084286396565907366472293329887227783130262281727266952011983433543260793969585126123740868393138723591484683121578662267596203694024258893392246187185649930671501780859005705866658043983068170238278994616659480581462498639464581478401324158420261287472285134083711971082901666817876474125241913602509016820488888532467895516231907866039250628050005449579764603064859119876319066519936625810070616512372773131251830212452912921610806621746730031095538996186817585579767545938843365827941865718998988906418035983666275333763811700582784103612257592135661766087885539444008844967962989230725443277066786826526255457243269846425233062015828161313875243690484992654410457342210828397896239060841094667566629828717079220291998153586805539824656052494607484044978791035241121982973453328140069088324408837961730932177510722300221311064734510339103447888010289306165361320599818317723991518423210294965626701473475570952151025179046747356536397052226848398044699837608094187437505499780803147779153025550205753039662705808713036273240288522147499602800999169535711637556098437084315727646880019529828038234171999291955896614560720898481334208043402555426360797295825675192946532095431672303152636351826386047116110415216449001931302298457234938472031630402326308091696783052008271561156682978887390201713185582410528834093890915586045097875786624881552255958075326767099975040863876353427643962679888003950695479263816839521809032185735688109082849973948380331276214251815271485410692872986710014187994279377541102703742233490448641908822878037960557983812148115003957037139816609149502042144136667213365353943508764165226377108981833726319440606457984670784913727015461202688572386226223286127481074705812325546196828065078949576137303092259310041166145605324611140628103738575037281729198431936160250569560370911538532911301943093991794278642783617088982616981206600733817545358711417694257719170322653759696993706792152374192317148859087106615519260201263681288907052635498530814561687585609570895438103599700615239739567799162795737829061162308345830338222517806295649227507488117340656361695468994250889570695196816983494963223703129022094610061408067671471473235943308328781509721482543355357065488364036031466405928266407549602628065002947531047762175332910788314051762910001555476611356181035909843294215017626303730708590168820669726427851676169305338151639405773478463427699020657031001194751037579033549445891741761365694935147585692030909967633550848670023133733688949815216860580444185358607282218505739179902288238389895159062219454941239689896440230034815664374075323626689709130934939128051266719054453052360339050877110734893574342251352930707305024563817140035050542739686292517984310268842985412340451300735296511855443665232258538947733843419508784778217743428828916849954307326455928135557640032127850909399899874542333227540971253458872218008130538370884715265117739911322107091689275688211431819777323484194855658324030398490437695630436636763647390246289876682971387295432390113748840663915211480428323569809588036217000431988282277941659617534732566763882559450895351973885058662632546603223129821692706056987912005429622983536081537136806589116348673720731116058624989114346598572191562816874438917092906133529424835594409456884496348993258526821787210332085476752325423278332555577715502101081365769336567108668874087576501896970262400084494181678249632718512502199561298538698993937236784073396566616844588839992011598000274495737387673655720726724945518362758199998681783399487548376746517548089850774628462401010459488483116130342097880978057856985956777773721742975849840359775505707152413068661457746051914841803616369104763989607545942098575803754199152600748377249673303041536576053013983254382551259580333552152377684906625667936673023563621293719849349416978883073264217792646742095023247485880355035367146952514898117979528232123733459931739169098329638659003130679100186998942061824103702416178799114754876459430466149863148450844980507096583454616950667420733684768324639589985050184804566935722033855093986814711515028290484768041995300641047995918841085315268924929218696173575413318600584222086118862451914953516847208638450527531790322463221144881860974650256428413589994334601410186354118175808798606095320422152612449222877256328841487329835767528314980272038237613828339692630819494489483422531967270605042950785119028180777143076221984840415113622585761726411601397485915161193035250306486234507582449110761531310730559269022123743498470953218999758443576787941346676016218910790992334171948859216661326723186416374529109885306990689737889084141267761040882461605087541365393631921423958615870478944970562925307653926546493011343238461079079467671930305985431107050866816708468468579174765101048729403748984360932967135702564150881753790498477617244753638267076099559954258623581240388251469400032486101039464490933190151175026452578393531165218237779259364274340005310495014641023988349357135558233384514049171262886832720233092630867055303396072133509162027425446537744895402061999958370176229854643871884544181383997577571288947122908950513683569056543276605119222024339193632725506351970088412467558215646251092663571078976384134105330431113994383918666561170896967410084471796545548187079099538171257601288081004327026811297222456495684348951456965423895630473481303337353578848616390576171157287043437412511979862206735353226305070588821573392677808496242442160883365459400522561988722172256725378021124913996452678889258926998090970653663920573014461726364836383001019270503372924635892941162019431845269857041736493500501834086941326261561928644456389879072484828166202861443688062612239674012848199501505591215121477653715509007427867449569545008496320887035676243109985798314095342901228878471493150041297968460787942239837973263360301977990239563439680753199471892032277709572150399669203342208233609120628323184396571489577930270504788809227529764424701305858153642928274328236551519594259835331661526760357401283094136490228180690291160134610287385358561662664713789659542689843715202543082374801086752628048019192686230005613742802486111495474726771666311858702483480931607427673387691518115225266849759002852727220847571801964751140068211725147428115536918381534822558334502331563626638586482000961147508396260077513735851694462139086735551343158462106951252463529535035885199618768299204032665926265232521775881589623142216023879089786138438952604055957508487365008307095144365960963788849447482342188616606783337560056224412302560693331858068013231465298165487929066611377237684639130320854633106763474040083367523388344931313048776696528731994600674780660916413509567898725214746247001139066045577400423929415682125736175855811618584594681296486136729728856886306096201985496827639298992989008807933079697631585637119016899037626486787303546223268342595005708350947396946777268571847392635333338172206035675367731263269969290291040227827239067176992647389045091596478353186680228126793137044082008678273873554944851944742170460640672963691469920102033287801669807882799261597693665371357896670508470026846002590313314718024278713560937307808413334222165946265821270348165768415542157201725596067383549421951418287351982699151584874407856668869437662662029137664168374430410685309303048141345337769236153103124787976654107020271303806688425750597436907127448054759279788000838908882003440643862802610003038339258206538429398270221907610585072401420151479934152871812004011379290510168985954215444694029823912537532797447127683678295151787737938008109057220596621938473386190858018586937138632851831319676436251560390496081704568155686248479912053374941769259203154196778518271162785419304355478202142741125487040773764611793534619034114603283901136371819250041117416048431363466469734172371649443675599578052656503301147638877906809815171489912709766463665415204940533425712082923827848466359698546182367696054167730995684201609496119168046662399373298342877996339402684920788692498592950140767753249276451226453300582148086660689426223956082992574632329222957248502936059255707100056928261313116746098540518083824869436907431866676619851132387888812754261549012706766963134211221736297448652582750669263901056462341765805949963956047848303052494200289375642010878680895195910742184652496065332566903262120197543399785982456204300753750448050248531058071028929236998296551542924220817428354220449182476110367919354927593279408952372174115443340584299415161389192779602314164738595220463564981713062143542525306660983829017260999323804762199529836756946239557763168435404980974606856915888487012337434096304441649912116520249031276730995303433928342275303906582194959204071392528465074292845909639418796774066092733564408310356539665647829326555615746542995986486288680138742595358302691902817219474970099084150545834481192703400135664809793181107659116499719750178788802878742136349615923662070099034943293558636993875256179945403415130444841392940481926282804387883944944600328120840951198375486726661176364672203117878958896691630571534464116895163150575724236173417777405228390126278972967821929473039864145856981388540270904128542389266523772852848556053272918668950511158605977020440716304929010751590220078488966469058957084192745427444571805019977657657138534843717185619343610485263742214716330966815254154643092939264584630141498426888379620938001435161818055860908989077816396535056837927752172931993972605621319611461247598966488465227113170506908289670787981933192259509099510920910953345354428344256800127785741413507086094200376332178378355685281055027829140430605092965356228852737571023164627108845455651617910606507119395853111058285125714332687769327765140925311516471676596665344288053614963286589277566716980243722887260018027112112027632995495066572739797307603656743650380603789561419617932972020464245605369041872700482574398396968873560898707077338421134937711977791828592157818561184416103321451109023628498567753517613015667798108629131536653333964137749349925832703208216492802420361371077936278851975407889936301205900611155046991464651983509557279790290293914640897888267207211543759943871313314552234696470913558049541791488074988583741811748876863775478440180658383388791551593185377270603250392534595820239080106540754663826537423360993671095886913524182004003187039966468493200453211972455805578785142862485970472624360817501347013361610479822337029437329670008757486093242946087688119066368598311764810381492560661043214300430018608027859869525108401623977343451408951146032253693836425634439038543267266493996113609532227218121350506976085680534343399369233530506410549051062143622553878782635297499668480212345306666310584828985770773676595456254917415005669791215713841339272211912888208903520247730359886488280863174218165022912108013802016111510015645012207315627646871266832898822060010355622279788692905588858193573840328189448864498707520212680015065023918688930629589975686056942745709764183921483464158436146006819088536822440958636445304373118019511059422601822430855521060718712588530626476819872267168713580089657219022291075702898530644946484296741002017446910588522027674079710621454981497559260965939481382368051505049812232426053154343599365677336920557086279789192189796353214835174494539912179542468353258643000836320831985219511809487185096845241185574458342981029765548456154020406897863747934188902769906419764354443611752712448905987883554436002857477429963407273294238662992064228489720043540725513402212630315690225917756983490271294043270999375255728925649873197663105095850965476226598478977923260470415742422702890042602229167341493842546554279517913994141104509080926343854269886133811625445603788896580251551447217262681203075809629846733764097741218303757611268122133381152429535215059933721926540766975275884282742651751674630001479265067130698030292446084042144418842449947193803103946901942968145804201443120640116602273465195197704546925388506391986384254055325315473400925237615302636570329036855292648813872649383789484711350738200425717906642893935390919073917153969570973360518735362506357499908399458420727107921399966543335257365885526746044834257605989357717469408370462109244380592226780580887694873086211109567171024353369847317568705881507933715327688935354986743546311870904986166953255243401768511533546806198354959360531711406669053688564941656228495791095597031171292590951844846534450459247438025614948794477165616305681887185608405979956554590873605846560406963867080127981145072860492340550977640227063667191915644664442522610649371195524459907496959359477682803867122209969781497148859095063054649044472110437857772280242857723148659455042288714462391009179838393169950193745802300145229739415863156164627639898187588887500737672861206710627211627652497428002705756266446754654649242885167296012580830761681093307262862356104544036710615791603391626010237083932490528234427702659085793994470160125086805752933833210300475025227437727316566844374562815428307549304073023287993792761576681480270566734408447203108749983779533308023516391746860052812818878365426134129463287458879298335283886467206019089434655891071914016654072565918923357390793732701625399584069365990487244968563493342555156343041887544348462156566347315986724467281893189046510259684639324987316744343800999477480233746224271282608473524952774141508224137264371587649105401532517698117612290916555880351458077247178507242800751364905180243986530955761843688833581207094232811945093177969259046512688149326827325809473506293809012358296141736152393025376523198564660679819015514730885021040525499400550654708832596730886725219776431270362394068828671997143526860328560133145743407551768412876527165274897032705069139101962697349564045152779521985460119714297652629220922211116692871748178356025405155418190905113503728619240351553519074254385104274726587034665389994402971178718807567532073386492760807572477550818516574023076439291592997798298494847068945363025586947020570803154325547005182719317009032641194276783213640246993798199265728392230891701680042653703755228317522053093082141600623722810580061607462807320708362805324205253023170579330460747979003023552002455428418557724947163207886620071935383803015799663809760913880260254572725899311744162461233014093799207017812761875178040708797879264515859657341437289316541548521070631160966952849655854961242625932302670764959818617973187233856711179051828243355306070124158877154219813444800517967895019043982302976473144203178606371524213814407743126112958629398822964815883060049290596311832372202632594867862448810143729210269304396625857184105173581449649966432279889181654998995116121916047598900275178818843545541242625443188828445064850210220719795292178508998748268462013650094872427561954571685194313718675689427339415141246338666664317915853962377825165687736498531272272909022422027712529706762869476217720329161877256314091675250220134158516101092134028721781311496893055730594594211318376500109525454903187938862726347936752160938423296275403917650939690284430623164083160088753184974628284202424952151309703403495623226970078336802083249819522353858690180292006896007872902021646711006653462039446363289162838591253009673156990650237735710462466768270941537835792557550523383197611212032310171584540196541177846857315892061887360184184406453788792676269244953795737191490947133110791436303419593885762532218345842358427260855172979172704970266671605120487674392829114974463638800633503507274702182083985941634233995004560179809347627139621295044608706586619294785527155153669490292903370097326847584360402151062086276613861920833842380692010680349063586187574418027349636438072181610942255326073501348295397649634794619281441485481044459391558436206510182729537518431113529352416257720621028557768366991734210695544078154788289850406064191357592812158989088921291742512908794873148616127528243980381683569591010272302317273058583235615525274810000034047110917549304413760044424760802234677344540094580262057411079118849412122210076476015987542766904244834250821939767061790612958331861892152999144486745717076450157504826233760125755530559556239287191870725586399953774981408219586920156663026128370305626019639102491708569575215809227148729654329368457039910936776183478449832983198315223656255493241896195458449527280960461685544685944743793459739452747179974193126528816770625369582061823008409892810413259329316405976540471586421328200412631796007242134195752400156969966670296662450232631669434827436300006469158948128705863334300548024368826661877230842395796592182726541749839760296608399249965097554025248995261911326139113068748420834740852669015515252032102262745971029465579028363374671105425891272825424536928665992286135379772441052809630631840372190802823453231824588484491789506882601271928662046538838137738774519870767182603244540189672266502583779004926006884317918804634735187500999464334402098134265552303269821821802602368330841314883298953692365222182420728981871297340142376463484907063361927408745961867122882547879369814223684414677844574628586759410625456739001448205735785183913780158257445117750285324799262650782169905012259380754827978956506965072139758825236730115970511028523364667112722863708843533065338300135120459316318102296590759538098245851961510252922830564233417733051898216350733620580884234710369650789140500141210081559374396948223231100165282615122211799513027815755409471913402862595568862085750087846026982610466522688085454600516845603621897656859011695013437587029648927138966813025999742328879450755573302699451930921954767881268939183523242705871585966256198240034986172719950346075586978875323289666560960669388064001820956641979191545909431154706357981796354741547930377229264765686217152105585014323540601969594097170868422642257731152808047191020234601343325522233967411103921555149072340534225844595322314404695242328428101158911964063527055800516830204708445248785549642679925142378721342098721879594912286489915356270326318142272532021527252903433159205106097117212483111115484318167749492766520213799407005068664085821585073872331171223757260833923713252753486641265323341881907359188250091625749068612404826644165280397900605238343336539242628162510537478950962469626592991597654804696843716016470622110672695154677626093992457378257933295018649846805514527096304858336597218867620505635819780946575662825964735795858438673163114530612212855734856297214266128690217748523904715341467514873943798524715960284089285777891034389703567159976718250387554243563669381922296870203143112766009714153857361971094820356683281895926980770702948095869303988177159579606215817056179308702134990474452538310121271381763540798377293536789486832726237864584021904064844214315608251013271514710017648939408838526524730032911393021771895900287500289509019183990080995148506780577069814024048392611201037407823305733206074946885442845485731050126989571689163251506869129510049762726220021741193864196715002637957505882762397465628865821724902734552415603932923878445848481538320693954287981399934433342117780593955206081950483188895942426421434841719486420049460371707716322610980005661174194846809613181160312456901928314659282342509837347232003060060943114538718206763185410939352567138057595652760452539113441063380505551635658035129958953911046600455354618869642815922405457575514348975420959818299145046421615841274725399664293426733142474394219766218353866636392696332982983543886556531259354674158632686383447460393592706654916304498114598087945161031192551010280015262050061559935889303635421888786066667042851612915014278402308403760450808837026029502985421579503259111101652238930285005366587017220727637496018441035023722169372585583472938896085367644407947105273961206620500891234909023336103822678248516094679350310569552007470238674816145326805791675588046714573508366134780365036261811025045343419382994046203066790194498648321005571400991095604923435211877204307325219072532805245278063148538379930852464341057654561682886459015069270020414732222229922090439313443044508866097027098372496400015261969768798057742240176564127677165875246652138131774184054874087338800724667311308677646756173249603090966200242269716270433126057738761791193987696879552057466062114428334520207932000635533367905756798109566444199179960993813312844664879443564850647723393402903443912324390843847029947029792214358926797984111669776718914446481994445266484876079397280271714080352441555711939089419858979799229798064980511158950629921872095431065364832834085405831739331013238817792192793077194317536634524656641710943805599060453268702487212707873174564771844451075449179481896877063070685106903358801532035110758758887823223025975854631912182225671171820656286701285246408136721985428353731037173833415961697826137147068821417006952385520188881096802173011025005714464039116555385420231899501681657185300899045741268915439590076352135217677305710169546365579902685355535926562616823406903606381919488217524280674423693032040676915887262114885383306160280331360800228140872132718723127170502351995637921066562555157913455157179902557264611984160388423304094077403059301243382274708730495233552412623179721146570131810251534397025384423624160213284705965613986930343343833290574727020126128786403479217686274702200514043238915674029499665549084142141257594789253766108602412648833253792792954334952962618571425550605205279052839250494902882320717248994563460026934734486095523336401364061675934339066566692686537396705581938929957954200721068144713441179419164514245845619038050571497335505910911743666119628546124124512160973322610236334656012979921856237929653742616360849057433198796190077710140058752415088813646669244888213171854895184882862176523252743232506459842164740706982532452481148772852803658926836532446963621937213565862082687786859506140088981856958584794396570348465845628045958098958515516183818092587362888437162215898470552275916695391562849436669498432620628332173586342529187232898697493461961684562098775080664340785944484126463552574572796008804494999328054790531017076483026297484759125965795370360298920177781970788974909642272024338504415551822923540878701051910682991132553867433653349919954963276792356615272751758241122501772096209040827477812363339872377119367723077189936653246253721603389929410778360911345631785076733978324292004073894468904564404507884863047349061009037771043879207774120628814698110465159120382351004657142059083668432549337621678866748451235635058280532445546882486930970573377794945711833094380201235382651726235839806900252852552074937675518878466943071961278358492171694327429619564511449191769347864129139426225106117669873511162274847823898998262400780892555722631176600162792380664029697918286764865957262353760763905478700873397546048450565624127707089180537967744226917330871057801241420971217618479826910056300524522946179034199653765867558959838141509510452610329436170725023383678991789154175048110686530234564521224088276271565591415663045810653007425409070424486572593677101750680105408759184257998357070318467962410483332396966182098297057635715450789105491897336967914526746919179062933688832220907682312252359106619969129528705038976057869932014909489731232567809184040040901280419918702769921107312866646640908126785727745732445427239659188638473161398581014939819703275703788937691267979582988092326777974460526552165119439069726877235598814821922642268890350626359415594402486962617811508430869401988343701145852874531434424412129376422595976261146856986453570863276742597546612117229199359961852460318555940069432203851978106367980959141673472062267876950546903797238186192416239501579581149678263589104976416249620335518089561184803253154651776281299881007408374070746956211424753474872620489171999988138775819106883751691785269325530776342722454712161503244672393602869020015559877303589701697534660663668430168100804396446038731452554697655629152129009358103994969908819528434686774576653428758509601261984979035054287942709077603168179933189432377155282766269080373164569873891854866418838005002138005131055807270128675017052541497358279709731829835944337607993761634282364189147243718321881890073040845614989018360775779582326547235724931451162367550101235355943044437664504077432203056034562812282182204886100507058849144210629141159412128669705151322371546071592102923378951950837973626485370423803317888321200880660864982270834363186485181556712991728480673037125778096429125608326804198675081707063236889936951222057999183085057573912121473953469453691996952145548094879491513179025595082763385432915605110478962191473715583179503588533453276913724310734904109431827428215526348821251619918795385975538689196884703998692496131107174503650704244632478590758250869191361212011449304959504751865965124486766324439350289153284655258762709592506763157739698269558207943834968191033274880696854284187377121888585129894307137435268578645046223815022448394410016714099185566432501741091380194643990783344517289553254145524204792502751771083039343689002355932360693619214246424590009185928656140924580883742346879774525964020716488802534965615273340919219543259227222915299172134665117465886523601622205699219881580201356903439848706198666441447734469789668069446675241701801865044044480057478927963294716271956272239570353023172778862396989882836920039016461800381937522519709754413338337010569607550732297921520350626681611185348508062387908935584598044121703416258174762606796815111627061811539891297120641654397366238594742326755287544735355258227795894666730180893480354536687536634694355631241131927381393529228199385095249852753693745513044640236436316879681075573955234908269242665939166885305901940080670852490203397942447726702831556266373431255410119349492338130476299622393895208921252657098331926364485920081546484041110873185651669941112907739918834697789858642951475773698225225055107749919722050466446088191550746520067630491472635267822406441459393815364856450295039703533775205146500127058058632255513514506600809258127729732973350825668725483699586745019690265661074294271335152509452380143695363431187284921895256755858483912573174194663683622705836278278359403486054600046781948757820833480837238873019237500024590942306376505028133075522423957430231559231193173805043221610090842669108457210831222824836785955133588498866692225730476319475046459520429870956681348658580158915711483213202878669026899340527779808734213904202626870657387436392882050342833351265794529598260471299419173897100850867511166381578929462763623876494579068694324920073355602257590846913450921603500002826148457172403730755621442578061573234415462439180728917821842689669014944982376714500730820425222301724933054035727702123806095944017000245936057368544446137171214913363977841415510938148609251057232927614574812850061994063418476652156202191592809755661975578716154555742306350562878436402233836878865919917769234495520195245031124081388856580452181647825384817241099047704158300955298400520783071262140416472388632254055762873318847988842912269341650954939238710803086276971059873889355935300490852205485502989301937490967003037914930744172493523893620942417703719236478127419308589960787682334879029816666569727181572797695997152247025482851476369337707737694043009933160875042028948072227733656918721275387666746702276454628154824325043795194497704673744851667504339687847961033365236002051676155574995211474774915798359701176913063056603263606193874752181084347511324218199236203027245393324450893706999557443645887566181360867702436116409460419713634663550524913742063412854364307969896119965625731371861922503220460549696303641237170295035226426907071250642206254950595617817069091798509684683133960792817280456019760357364541576992413467879275560328437003024475737824630559379513737176316774334470144924735632735131460973742177928554516157662091871033520333298997249775906854815390523626301833658666555772692373776604019177673760837125485835226648510753142840839029417126588995806699669060524675620776994437902807223647519338683782759871993971337931397861606686096210826996201749854778824750276384991197205173295152062673159248164321268505421094256410767680330743190685418092557286027084881156547858317028168658119443666928905547754433729402394497968638185270749224757780089169389836482267698417797437866169862803372218424692085264521049581401483217473106116313693404106494354308120134973840713273485406728894184902397557939107058498573698656724716926152535074781949762872826328635675370356227977509212566422786333289621209508191976247970469997683960169129075905892309641688647564916254586478751270665161072107728366381536218146595818848970951896644907018968552760070207187986972424302497697381352648397294553916749268684940351881858456627799448316364282105720690394608430647213796875434424374801101090662171968396135854052587070946576862994122644599478799837212909477265094049355111522228968420360136562300628805541208293650521530229361247060284088326085644329998923566318554055705563954162848796974149635870174643382899321859155782407603766529498773430130382417118813812794938144938026004992657963356404862397134436616947554860031536670615811414345171147418424179825764645312459113301533762725126426599658510870203389138613203411369432690716537349291371657076662323028775739948182338432823342558971115491338590009721720729588479230061644433483153842583897348208253458094425015417242863915277740408985135362397261177884196266464661852047358533297689927131518574060415896939035581840091473071714292774181258869664594925445484195008116633148016495724393969788463684396288734075279640138451309389717878836757831126405555088040799401372207803081488090514517314504060275474666826764878200054147215489724060409837869102774421054439368151186796810729224528157157613222651360018901021146011296410120770949909154037035820331783354500083141720842490191503932661846911819278488094543692357612587962106604457011240741464605995407258320941329740426206038520810379208780244054863666990893521714972094883336266588521507796079431412536004997537403172870950985287877378939026978434988534385203656990678434438349678124649060628995550523204141849282633202334391455655685201706678524348468614057421477956813905826373127356597453045831271294980694134696465812286630943985731899216489539409217452762482361243510756860072760717080465582821731591753616674685256681790098185106828034973264142689296917403319601788740208937577704724165002675768107082565776633050745410522466222063692034252761888331558861039514625200554904233229423870182535804978501598768300716491862477338634623836731765282946506519757343424596220215271890570160081301241060235782503850527077801045403691077959708840492960694599676718684804353625113801441878890629950110979355165056970480309107052971474626375697908281607580067261486156193481442685263087022591736522270689873276781425721531877627430972235465439071415760095942300474291169010461387381033459867238692796610021985246877121642638472062354774286335430945724829775514983319232677289517283435300753173324624271287848121344358212800186990826527992129057034567206317131799551383875511809580098360804471337685593382170319811503222967056722628380944709954704842526292847306791501105454112949273654957063569779811886754879868148551912065174300574476010605471320587409186175830088815130120036003978013901195430928148428165205119480720414025653692381111371482262706010212782099677152613328880967422733224702772995378104932981286269768604479650945465110743288140365255837655860870026200085443639969933677952496637740274322448642203185532935645354250608208151015015900675976589160919002643802613715285438240138917511058999988490089465654858992642092897332801917798986192147925781182439539204235646263163795798695488236543059703896160661457838542579264732571297016570370234486289667479755908259155064994095104822050722391707664900110122900419717838384919451596235681803487841132883774702347727856778777117562400546182145522515347938181418356492418919171730608678363705082675453540559744850599538918430993639499178566698393154648034513906233734870376152252227283928951786049736400272913548225985642980107629702062455425495836881197988859798189945872179772440375551373337515137844232833723844296143178202795841464137363779563137730143933396768783368565292777295843447508089493710780103084420609641453703670253742198031627677399886841489233057885565367889427733307889192646634439564195722154036731091782253962880374719932596615771769976395218077056475743140709026756849309515266984460607277141229910397572741955408856325966220311408801929792905781025863700924697047765203636853690645496484230362900919684762005650138984096498878939599653253558773642674615090100292409010536121536747536872790536952370907281951113866212493432132054247157888697608848450834584100694368275174242049694213659316216475653110467285376820548320288572790619741681468369969052387238080142816236781095419071553440944023211940531305011046441035249302865167406324462826292048882346361193310233151208351898737429778997786908553910899954510115300563175720710233372941757426681194082598258716096904290712624101772187305619310185336975926444284988210944139492138422071418683337084252838496131087028848057208762797092926376812574080501195842245972442791957739831369718333094956095801731521072494075864464218129021373294348011847648250717549291203484527226542021597921230251382998965607711243543746262062943997052571738113781471750633217068571362213213404530237700201637789409762087371526605194505885699390654035948396279467095085706654666703007534092835151618649844377579803711320604469909940495037036848066970023891712154813676563236337642040381387611966779980697812516866513674276683811047903809491236454974133476191362733034030006429915860916883198669568614942974449169881307674179865771941864064234152864502860090390194360914902270155670498680087843926551044549458183189554580640783600549600547291152614896052437545146647498063616522899513998876671040627770954611730870610045156511375829014083310379781012223795231693957991235432380736246061944159099805447536772371696588000794527963194472825910277705901862317745875839292123522847023256820896829984971367022357291519047687958611673964274353010348944008688799925736825283080698402735754618046158507345180789808515969808536710281247372325432915077200850128574940197467758609454430953781279836432726133912578231968537420505034294253771843239303061980256680817632532187750471279232551145664027977702523948315450321857009534242640574213483233594588731416811690119481781328138045824198232607082420817279238337041682840366847932916282489995628002139127660015592497388757336488894737034196921680647934704922579530585484971107616236759662091576127343772647049713198578355535973910344709687207402988595529206537457729481228443282758608277461511725900691294189671990327517615467291014528423336697116504520813662896698759466283929613229659026618292284097345269913600290546293800824592403797106959673101373538993169493847165143922650390945037498244766218374086403992598129878740916791322765331371580369849249215164275566342003779502265288528196399454982838612842613538252846072512043516716780404426682468456254942653147549638132661258005866298187646567014527180568568750328594495526945033930293134380860382394033742595993194924538688458191769072566088090794752772397323557802093346580038334092499326034981591811509071633224622266157906002554715938082363691207886050789385121128618208313233822935355544249588590212798190721327489966340683520027278395063186338789384802733004739652630673925704335774250967182401085311084820081727254283965857776912858670146777929538181919875265691422131122866099256158792465232445725772407106581702820959189295061377449421553868336380360387772801053987321290889846810370312799581524789857516809049519448256729605193898539008080079615224989475177232173483243029466373482067305572361664307210085332197765976128918910713633273128376641501555492717729223781822444762464395777729092014253329801861150875259180995837069076940370596727391721112318772366656325634074718804877656067975588471180258212393741500532054490611311889191050598525001027387350314450280004234380526525524255321531210513341503860928719505310998874036121042207988271693901283253436734902676845699292374771413383686413571776208375957602384197184904525776450497489608564392383074272681341273073389085053205454682171573761126336964331552593345480542643009791712535091387452632870503750739200303534190986046737710768701005603803926335068539962564981653432495085711925060023692192116515621788567089873336085001835250775001158808866619165020533463488732399939127110162289655259788837630297191515470763311330114093968018934028169301895671601339732212614920572778090629695485745240027700830096294587739897516243216641979862984175161334537157748290159362862986623292229764517311344622670310168994224629125915588881999959869237996957296199260778119211889202336988776256474565671235907604919307151518999768826520022587913565373990973297562171155149527853524689846117787687565116219801462861571870167550734684988022130604274834587433518775081885066819657371942415688377831498408831257355516922224829280136747165984021918339237526857450676878000590142495908961424115663993318919364819804247883781126354534792913606561435552508399626823785381980445942716963724443278526946831551865128978858891707117973964543312683861906525265845202563154835718110859678457596330429943760594090609846829017494455821631644794453205623575494310554185943624121319512216225930227547812609379984904932761656161825337727932046039766619889741598207590992869951085353097971717717206707871117264207470229553457215060208380056157836457486973938236587633348052475985180969423773088788280343865677282680238463371067587202035826964932216904571690360944891959352411371833223551730348720488651249676830840723666864144817318555020815352500131684756323763593323419243916905861565117489304001401668521303717497614508114153410227678328502052257876391798023610873651328139218436266321414134059469967948495653703055817449015705658947322765523352766914505821326407659557570160884398133531166345832722021510659457801242381016960447029585436473153183860430502900284317229070489428683821641139881134379865459453430915857286179505369077232435433104932202619276264559772543589204379829110581527385811738279577156017862417773696652041336357968450286036479534653488079012347462344328518467237341916473984408446466508615512517723637880873356958622051471797838706935015644260334856740217154772918865165591741707421158432929324577247036184483719869952411209451486649828971172759481511871033694732914775302935426825552988274976521609384786100258608440253101647469576714992194890018529938419073233872560620622087765072138452260824435153443770609863711010042662339027521954537912925742015072218391993709241258962556586967964270502629084185187374666397271413476083778661327714085083703224635594242325240773984290279395331764775343846641811170945319174559708159801182845468522123312981041283943489932956658764044036433459429596288571423042368359847248344928496035567747807722812950438937548724851812238233602413062720133107123134282359139803275734458755494296919067356130638266467452123842234254158630606399644322424232752780138986251778937452340960033445948800169331943153536637606452823934957345430345348357050248229711877081372240254932797371482492307511625290367698887766069881936444369580425688203412821074908520769834690418655533017794657471493027808071359598919010165216622516246461644484650811653828656087511520243245796017092552263896351850739007799951796902589327254658616451396132508147725246862820463687309856355153333316486499786469786493978741661785113802408752728506364178822756426295996011724091763554993236853724813669291820796621755325232487431761660344528010559149954506225536075158698372176823208279318352417229995568556376665150994328400191661023153176408030963197630497033424601319908642237290119877384895676440212154093471499323297156282044208754128038916553398263009394614132632418347848057418831602001686382894167183408376333792442986584932734168774575844747254070202622069495428735933763119038317141853398225667305379030624734289775340014275097086426304535712968811441834191739830658627330655902767988002892675878273530991723255221572739867737761914680403860816163477983417868460879750737139527791978306491574050060868197168465832245573795396537690915969593931566592492987750280895136676712176170922882508984702087796335868266272653579772411727729544624324286226094611498053442981544262156513357832045657794256017768797844972784180692529680458459998031217914431571770378296424249832325010285783311114225589929551987794394689495501931090354660664111586476261621023060134353339832489378839406280943731629314811061017622215292985017639062865070532085468819675013530630927063897158488855460057495113016231079437020434273674873589220878825769412184387284855901435949536433505632266590448309029440243853675857265400798739419121498862420669757941975825375110127963130119652822638591351786211820070614460875270830986909453718341021222607995086346983689336110400426911297254558131580178838337463316033113638890997192690236691761146570974396604591663370583458122709072492245605889038497627431605690940279119793847295966642677270658464786962631561289525845361316972549999750259629863810286630634999506471401807745576222679356227599006135760825695884439086248021364544892974520230432930814637160191617379867099539246926477219877470165386915875120955888643813445618645199443677783941621585128655241868581561163907897687153285437306110480273331173593319648518778288488302819346832458875295866192323745152842211204432465191540694023986753094241696438774564052798012534248221061549977264033067938669217221322752197897154524161987420014370207284319492244309185640724065103617431741737549778586667954094168383586806873488448181201964697513446171331723575055487547795914455467270563461147803890341491622513245386239353215287695805610677240392221300927863866986346477951513356177927387656102538189481746344151068459197410901346030765642176001949678083319394717289853983794810159144768791390888591780782790873281336114902619759223569059424727275864743784858660284781676575092435162110607204709395772521641272190125010568707858038547264064851274161766455669163564921302503648700165219678123132300088876377939580281490502762036018047036567901555772087462966971946062396340090236770552841110164756154051615414330376558247981030749136141860898553422652188286593238672178536766581746180491776462337484176713597725282758511480360912277750601219306510747898452703059225968647471655482843441981096973793820338344333551902980328664889066844018279290233124231682441243882524676530486813554267599503584253744467265038639253377300141049116756421521164909624064892229051551973193211286751414133049492343977588351141837911057310465920469945128785500642867992994428584171567123988579085500948833832136137061422022945448291755279042757401553996147541982966142247157190889005993436151364086242629203323077331702485072403163363039561427312047999950196874456729892005835021966833346225313576666791260173107684724313633898863029568813813072299772968673648930283993517965603080622293528860641400823957669681450385460902721445764269900845204004220172464072437145079452324503496596722621196456118504292228680400305989716851097275218956464965335967351348018429820187584191427943591544505840838411692795452148661300019221899701270913223752780049778591054671336532580410028017882890023067148414263238504305415065010231311574960648975389432991977618088409312946946777231599862479246249939345786327148909144850172579130645753379438614231015727693906410459763127560681328621406809844573342905246683222632076486114357723344401260719195762271168319211674155779941773188579253399613359957523083905202881792605541804983603767559264521952394084086542150369387748658200660817481728998421692528120064230022859815852008584550327098542416030651112329080264669844420563310962526024329589858530035337194643847998841056979665389440501655652031596581485915279342460632504672052679209856077160589919954976068144720391017794693791815820150784657026231561484316773224522920638757509591820977190672404707237084798693114292211130808533324986551588188564187812106934950127777544858541832259856772126505070954857200447670543878104960609502666346571845334416011021732409181906185195483137963861281581070030882283950376268263570167749320849545353110954900795596921422798447733306462685331559121407446599202616045322283158064362693532696852386017800236673589007902813275268183341665985159030325448281302946240053728441784613413779925742499669795434065335310581164646167770152341834701532829142112679315294194549108038595234340667967046326990721158580391759709691156158640890182824767106787689178830151845665832669543265239925567218592485900563859051473913963943291505198614281150563445885224495193176362821264271240805826212209177895236113244018167818570063911655846044261680219435704470510864641363963197667742913730422218417863328278406460885784680753519731274031843385565156587597182498637914141172428948127464178176302947927065888493566196003889672520405659293012951714110066609038635916793803138997747107281082815377622559846535590968579961058018151329895914686462705285290312895004539853251486660336898928286843335021122236647762899774718065094984818702809474290477340083255431539446761193384131594837454405277211050768233395980455200911885749659695593332294433898657845281427673232136920408141681894930826301154597590628107316349281907970889138271317383235984646971809790086403585848087195248645182787945142504707771855112788337929130872149561795056313389403443773597134489324245906943919745471856491465613566218026754320623882966071073826438949938176043233633288948758967452118692355442665234898075901717273886310922613177558730778420351335934299058318745004997927039459655469583077076200614980141306336085085539889892095221997082984003576365853720920432823224865735034711111709778511713255832703912845014516019927941608883324151966379443074677494977716139703253741193141913718255102814902904188289457726979667240574052794561262740985725381373422218215164348212674140202175798354542141340845247729139650924823387742000566900644979925873159960300866439349586116820695092718461833402342902024073882610704113573734872467899820992623128338787365809418040799334100848045276372212009462971204431972877211434481094670121608614203095928234621374096345559738872674726716466777431535117355236404675371498967226969885299295477023235761650075606617093056991972347987179799006592099573944208085045942754418182101748757991665602470581013973573869207286768961336869282906186472203615692092940326560410429379732927992902149529777738452771662698960332067718774462411386917559728209573401948591143738306803807095656283764947396081550933787664805978609320510921333832255428692948924049726943083292266397829925283958843086023579718279537190464862749036852657322846207592610201020564889914099648685288298715556569293730278658760309635357965631349892825047716188392836492356398138852013123029580511868970918538902466835847261523781083423257965045595004447411665016974780667640820267650056206753283406819458443630384108922605206739438278421948725700315643053527597177091503496054661921702435269156440367419046040011278295159938551335663497151147400281644121153206141299146595666834277255023021776741700783698469026655821529236234474369044527837564549703652312006021020934118366740453869721842513775553377958799244340888836680285079706959848059567911460990417028811123698207649243703958694092436663278114558399111193350160943385185788508527470085719966875784321025408397614927477552276551366455254790659873595256710400726026810923758488270820944699025264300313316552303192259260643381465403478409125435052805035221900280716146052072538337514665851916423893065683176308810234226246612770560786299814574727004795452464096029514979083956614655556023827592938040100967869400703102798482895328728456907473160399516551097486372583471436793806501520145785665990528706485056823656789128137767237584271112664336433789180296658873659642424766566939084542087961436665198601116501390490251017622059638172118140432847630058667775016219529366917061442611857823523145895669071323803829956558073841078964685326321444589695447474921791907199499104290812648885182037206240772300792229819043760470645260192180151166979356396377187241287195315475929181651001608857145644409512347715263619654595562448104241207748819291935430265113296898358304144790410921178278064654128505530073716412469734378361438126945339934080882710931433315519163999880603668966350059990599273042204011598301112639115621229998417002588656854164745477709809086745323554955829031395005947327032780491953565515412834999263215552069833137592191915809548074025553813538861334959751887641789022665567907175969063262242797301113207508335237288713379165456212683037287388655445812818253690304816303956748730809959571845661660863780588894950652596253524567305285239728858420356170778419725563719701899821529984499333911078983686287011806119093852458463090821925176210717002751410487212407244074662312380623040075553006218116750481755228145626421647417731634253741023012916583535293985668698112572450520326997224172217590971474374974800508440878835297279389654876793494197490163631921352606607193454392169519061016088711551204127630908416894393251847696313706568464791561010276643911924368194830438738764737838184027913387942688119716360209296032961447349586740209609622347698658149851305182081540514079600777443682949775734720721743679113925578647596197363058228750215240996026570513348603432504422824650025495181754386808594922611036286450174584998309936216602150974313428817097983002691679967615117268074365779731715561371498044941545120477308371540107643352675763889839956667176615022433610191295830498119525545018547842547215889076895518496861028814089311824900850104902021101207731364477121520421285312718928429452668346350728387104140478868365088550834838323647858119943545705557257501465020912010627868477645088914285837292641090901360196756825091480681018142041766350540841405205204187036173712559867582910670067398727989747200323238346713426270825584425301947833230593442525932050889030054473098075346031406109942059584905510720762109812973408403947879097380741461470019588878329834408990063965961526608876345710174705550812200240185214450052052170147702669228663351977358407274326306707725334950048820499100165738918355835812317672118313800354641686310452514026475506281719115107780657829997434020434146674453399204472991380756298072964292410569523669811817976739168477985953691332608563845987520770212859659306707734165152397143607492264119087497770257463939573033643620673259207000107953062990456499565898613380787297836701010799700805608767074518908445386160366089184142969112210503064483834132851759003383140162205094775156069720968634230409344454310275293793279822966122892792001337430329730930343778281578110685505937255706526196001153353449541250558684159931066313332813118869549315322596156403880083438848615720775897377066873312053537446394500054748029845461778717315340938043405287560347961532600649090535874846545297678339276637692681157960902987131517280113693907667302617052949878282150379475685642704315479142935004306747281859525976266561982106652362308165108019408565471980235157910469700604573601196144566565603688498735833398104209265916751146670867855903051023952254600557662606423965461940667147117262904029559514388207031578046705609082172678529161244929682341530923638110170211648587920857274210196856988302883851639519289791366603583233782239056255157650779111877850762948965872223907406627676287743454682196222693747422860552855096088209538982973665213797762814549447888370307380478580958953827489591121058990111563986705114723297210870273965516889809184789831673939207287123775475561477673008215101447215906892986779847672154674020576782722751697532433176927858065982804614441002841184644116700300743463914453283497200210064762259983056067059952208741902528916558704876279926038642838528258984580007817901467310424003951153297286822955855099616430073024109668805012534989047831673971637441194406043618070324246875806316379767916990209236603387202165322894800126767676822129539898594897239169392668276653368389009570357931647357665809805680011055271158089435857249255189904427385350765331997048390003928182243638409774397407419294975352334005942680686251391514524765282872891950007993902015676520866387522033734092945523264329827679806151255018157069333571172911576926187115497795140665759599533371876092831887227031584361628360061600176006365682718745320267381859866231591215196329743083195037197760248972176896285257243219795983165456129954504256614613240434124656167163377834753750229397993566119962637616334081055665571449283025457553459598440151138153583973960620154264935148488030641204343097503218229907766402100856335575641275119396322763066628888309844596181831490491584446090099039930493175771860138345775658827181781421777531490281914773516417640619836361147876112891181048645785560952863452860698963332786485072893817071930564971503716237608128479392341131026268971852334818208456878853236252666731999019360677001804413822659211070236975779395971710823269653152131437922497398771713349801032358767799563319744906718468105133694855123478513193398143437631343269415164397732032210839504944680853005931705705171974954817222006151921753081669901148020134750982727907370175001888835856931885592296262210476431478953516759103359125374878985787760736558662873745837902449537753459555003467341435543183273978974736191636571279094241904340647183898032652692000404955063254002495525409351104181461248192770785329646847223089419447520849130947475936550139324696219566524407713884168687832768277876163280967546506936018477588786913271590707196201945819111499183550182249166011772462318093432860039476359997484761884965675620021278251776611467330433629198835055620908550934366639922626272022208448150962996496806978400881843672873823289548282272081174073930395246276305575929621581546595987700106585301521113044382870168915843501850366659330714089181438439685097734252697856695332168579067409190446871238095552319116680652454302562005967973186678626886653707019603113338360122852053718209960115362625069634295371976413797904401902966191268336945762468459730353701668997545295872002950382839386881297270627248337953526664822900203111060069936320355678326156234599400546929823541236757874950050845411117704573700249325405062743970170900940094603919647963696309264217755168004855543194079405010556378259922512442774035948141820847733966949307814715976614466877912479199566060934478990541387955104225388290741226996916659162475304552614123754001041641166751200889243062554462774824159246217484944122200185302897917901679872976333637257880861118583689704032855913039343641172518284439035479453431659252200591348195757318603034415779640460029289619374407587892898018666137931126409690557544547698227071422249316102077579351859180541670765258401576961411422363183717732270034506261025663192043232557709873745309716828014455373001923948260634988382357190885292586859981334369503871503917036157551859975229153150553900847822486042240757618547272201873738090683854732827902265936019776842683010557308089499916095238767551483600150860733179572289721276898157219708366935558921928735437335034103236915798126193440462969908140546162643669882686168326986594547267706102263883993803301878703889093727532400691314174288903845534002358171557178183048899905244305757420072694854967449807369377044494480905927390853353621873016847874741271082517222133663031385618120739634975173439930625733163732399564079378329639023857649988264154770935343422355741467089232245103051166415093075865038319000930681920232184439985424053760757585406613617092005706055833018354653645069047245691130477181921919503718964214755483843285770927872146856481808476985947355242800535891081237628914550241965139227484596281315702126514818978600598405831018392772832536176625195506749033673132993699843546495211674018637542478990184056972993265890407510911032497870239084907707077199569483386281872326491938283456878727285669511613897476140631566858569405656227532336303291931995220909066878205839508020071468316790064316534633384415908120594110878578366470560501960563509970156206683166888463514656225400075180693889959351247711653515622115768193397720347083333489494017915640942294677047843148602871027794874275266667812598285715908129491566739585198677600278018548042834377819203686742812520908463366347554710197992053043040559201854888143649611983347682148246339627274795265424329900617486625610568788419186295114032146989805678484942781788893815395171674711084430182309534519397227676614056436739900608700538998392603104820048327995506378346838584393384476152013050589404049676086303240223447145095190295017415633212927842490151109932585349220698248670125736638991071067780011219485227564990659379666956704676320304049253791150158106407538237504109031574390815338982025903158467379725206369246224846457744364201431382778815055594889970843492241983638667656715987728233089717057880502670803289604529486302678191657568840527508133616710965545269781269847888353601654923683887875239011970577712183271208110653162834885474613157290076861143990781470093372160206543012718609423986584181857727813320670580293771333595289367471507795911274490374500232740201647437513677301005069148589925785096494427800188961398786364462798578238643050808237180756166292265323170386166520005442483610233382723160305799060844871490449164917102192113950948375503695018303637614965269369025814811324489913916513837879581401760315189002457933041565810750359837527902963126785304356005584098930485778290688252055099986136769112528860590511873836824140486623656869630830877629011571317336062651231813740950738270069651708642143981613657420717135762371289389386128663221226927587443131050627055976551693611292784420880389802596014306649831109678987511107081512164869244227934112510014005623936922067403589122098039160197499689040259061188893807179266513216135686616892972524091997649892624641879492103148829080787433670402536605746962362239135104678784971891758169283912199518063167651279992455220720616765845071066368970225290268844914728557607955099571992017820532538610511949211633534999538723961412445269217831165653809727559732425170859837811159177551838571632560408608688686760877246757120299081033244825475933846389144674163351197296351928231666357135812014157293117749386292708264073370211882473922335173386145573262984894219438655385113597499467886680948939631016520129059698947061236025307563555509321519333391380740904510457476199608530186384165800327868571679448691191623194132787541281458595853378993948972754967241190911218052399206707218567451418050622948451626350724997384632385552006350137972261156878120148958090350092060413063207884153524750161107625876654918354616929980414671879341169776345203648826099922999009895110403849504793649624213616185635883528445238560788596589107982387646497745828878497910368263926798225908243538158338305269945665631257527187838724160979104796191385909857035044804455411268291961502827508043381204559931585529295429465306901993996315149940423959187961397290824043948498080776894399621110869640410203269545697080073578995437438100233912023346279983731084543567313550638683501892057427348918111450330253963348647575160364980992147626396945306837844616340585469881603064944905851752797969709145137739605654386000650713671943515508162437603173156952218007626463019260652104630961588835148521168187639945976743448167003129547676574519175816364348289236257029357640275080650496120973539909390904642877388829372008395922686211030459675550859156317692926485352399962363278671047760320200487112388179367021379703542809757825296393190876962195825180743344905457268569889937380622835376131687435287359535791015583718136859758557889794316624786288223394479748108997910538777091419769722781781389725661947817704365515700215334424345008392579001523296478936009256341463831365850942426906730227018485890503684889749210546170692831876354100544232104067257513276914581858526452160738028658241287046006126305833488176952874956861155401489097389526300880555865405128490524903450725312422390182444573004500516311216545487698408874182655898765130566452679807439008078434137064720947226151730616972158050764742579131615377428940059859956309292419666248722225721596342862881348779757142754948222944047533635650275972758965648925498861881738824226200023620189473101774661119190848315048774554187556291921633209275429572859148118518608399274389900501124049315849000400918028844908242789389683137408464880557834684099870311246905480394386790811988552944170772658017782804273425437764586335136922977968357601295063649742909905306059948984045745806602794541639942108934710671370397245693535974496477376044835405540311224303224648534609118146345594251696335613975930306292943569115121111067478330879303124054273404277437271324858884266200224893284297987812291111203457504875251739312770517166576991850167488850083554018265909627535756866102942615401392702312720367982471070345878577354992661384094025274493785339672571193569557261168201024153761992220781729892524614028600361072178216007131561080535289112032705646970706114899499736205701422481923484286688608699484320301871038942665655607035087947168098867942333279929831071474192163275070335034235911571913009560001387043221452433261662897829703256367930907292648870120670185140692395114142511884797990999908283652811407259113649268588711619295699775066907311944099022319418473865864089339661861709478840452933959971941827246206987277854327429855334763870952214974815045159356141069570254644901906263741134649463753812873196355529589837296899909425607357406322426741565264925508725679808571586395130101177694983918194878529202924330676527085576831997275816094182611730634097578411739704261293820782624133588810777369653448964293839530709617505556007147085172520837536861511105916488258717350157803284026860303356478806069773066202844910466475761829253339974913712384194165730887024954056733365486455760908558580209052737725001460436991535907537976952464968724382023828393805000660102004554411742418241879732349297946531039876460014697799201997290159476337112011040097416660409610571665779924799045076180683828334257580345176456926757724298660770901454479008392932726800467367871797557796136748132407637193188944794735360567054045866160908502606182558297986949063779034032243527632816576781833400183685939738446602620024952494676450491070458881246079900214561183583416439937623446960183248948240865049537435477551467729323062721355068698745532282954336807200509367736432720817478878907013971530809732641113601037856717185834434021887702774515852601110504895548553194115170894136290303589077551483591032091382513316757840988273677548147545774933197795733794275301201562573102307871689141767554192374054744282848333255244456254092786768661315233804200332944912621116072363234904172488008518152256837958524657187620724604539003860241372142117255178187495612908263097603927594205998822109400464362613727134074000767369389781321110407345447209811740717395055263828909603892822361703031386106960733744008534864168268321354695207036728522569981048231583069415975242641648487328935077914869363618649595467099856331213904324322151644253660295930256815276620391846385411927393924710908753920139010618737190293243797528621701178850823182292209022534408187063642395193394096747322884863763819561788064496652906898336012135539087754178860976872939634900303328795455747715217835427013562346380868759610245459123005776736034106758057690506011113955522951515620002981497186934577923666213088654955913025753353236175438276624594164825655846725137055774132106861533496707496752183852358040191035839703807674376225256581709580635753080701882172621867472251441064670473758649802370244128460536109637596283678977516299889562582400561431565317770761524322642590380128496976903172304839821325348043201251337834751747086384842989139142468195692609669353015797911935085592402581430638600447095639771584546367657156679466858672397928568756283297737041101988399194117760897595593721702390529788584339395475466025117743561051661647756189442920540053539821512572278109443622209417739476467851109828092698293712168649109485594748987591764396878593779092593894290185464149897792203264220977802471111769187094145798810129588851872478428590722573151281380228212962928246697672421146610315775729059645424112548034848227035651551248662230083103852330939459581159731534937805766667249952535674183939789303912653963883399066157259563616352161271773173505923646341776801962605340029715175232331371609612405774245628368035477488521770085902659839004050238769809962505214950780087918344185284881583333503142535538594565855778097926673831587198857407970790254655463125345354661387651496590985810212439629426610462798944461406433368629608120692125213839058511613982360248388880596440455839993731373270874836847302811205759919628269126855854668518153669043310570932266032230062108691017814513141338450346601958295785596745311838503783309668539246108821269071516326647858820469290697420470877957148604164006255411101417095946344052449735525594511557169668693871939835023234866613346239592913190786640462569203146642363779895873901251019863438308357784962770355559824635950235314613224380432519690190938747326011629314848398746621737357595607549507077024921372499479612150962700687846974550469752071701861718740963435447298955054202792894817791998635224659873485862269635717371285454945866295945945953590861082955108175074628952606397012360267642873941243837718720361998429967083498563694996427751411082030862579636073356509965306921067306407472025803401540330905940128532502054852291181996872973696127985667451419528137488436164820009778099288578589020121226572318832742481463317335669202809236710929071820861519012827516599078433468176426039109098235496514125119961308957032857667577119882634204932200650461824057330994226226089139692055409793030965210856021420221675279272488921214066064635865790147427625420804708056140128740579005381119695489056749774917986491839412284179121936737643206868483481423060993824415112344584126811066563002098844141348922674249543464109482354081487340835659181669978252745545388044488234637147427945435085401058425541443605030963567996353424512757529745484665804779121380427706484449049153223776603148381139368765246296279759264910486720180450347990613706942051444030721328729154710133359148867952663626147731393784684396914097963586427038634140279779309492869014766528447883676143025283386312857437252153973465728427195294821858533533933718560550265472298394651200848810137788383554151998699020957196513821127239898062071400827200239302460047838898950304991046598954548483139734428773473418861825494350359852298164638199038878463361603338246245287971747099068778065887101465797780353879553219073343197744338125807188900844857841217332683040891816722012721569364274320020188265387142260925037388633591801163936615153078206856112308021964867775170734506195361288143234217564830998523192383444623399882473680743355889804020299518477874270767608972315647498947908905418434526284028063094298760186669214561334981787246215121403123479572982535788907722425756011384986886274936055937497427655538664305318935913306079791012817374666723602584323367816975543713887843800791576137592212125544722168233416423687548016307425846697265213265862712546855229647104665708948206573439407588799431764146083947949739060673656822397227872895044279807986366658035464308542120582640495102257027685549871949456180363955034711700617627102283920346244947159953505783471497473118895140256245044861876989421607744349075333672463568355165849334134332892638207042844347813136217664689068947930829117939534713130395380461546438197634679255859728367308437671064731186207079771378478224701493739836821082511773688766707423116322780278130899453234649078784000482861412978407225919395893369958865991403175494172930475689082041015553102934291665140110174940061897586963943178383538247100881836806539453782886448311907168772631270283322944055868913851471511264275344196819121062739545825743646981949835819689404572007163107717028463668758758674992283426823645044463549025146733122169941596082706182464823497990502893191860705582461529217556979250756973120456512392860267497420150646234488034099582996415944238754127950015030433442640219582539452062909734968640957627837219534546220022186060613625838895984457419859013944239855629405204475635019190633406725112081650742760073699495625123240660321208466422836199849099610361521607658062904793086522229556161925596303611829601205692645028756783295776840724726273621444286282087634760464856424175276409298032954315155073209590587423470167717199476790508988197180893561955053837464002660409156558555506335676478359990932091459683260280804224035836890377994063624072518322951223795058264278193043441399973339433072905526723785835154047058721461347096786925672659619472973324686187552578638978867440534621052405215592907091412729885240650410146179807487128701070224661190902031451536699349155345838047116120147868566821060579149826468924746627948037116004297599075517027469514558559077629310164717864333134281596482346722375107081243517880623944261941448744519033481316644190761062376066843891662600504688810362238104635131902372114713358890404678005865562377206305300668501218236869156364954184384966065454312083561346142091603757819796566456325747390463464357426994749528525828603236840746587210164868407715345477669065055010228638715513577085483300416881426839807487389954777274279744735520252216644998319594123946676605506544046909823395025027818600956884358305609162256766836952418112816933237522087468062366496721599115090469529961261241917885593481569526083019138784450358179932368375328631392056410381472664227563184522252612076997465881585319879707823718838950396111569488800771498363255540181557780305188838806144504817351849046394152456516304068536031441056345374806209494407512619350887055565704129009204459999843571415998894085909192705775282886190484708451956832378549703194956243340722347473386997202569245831487781485044338123759635142407071050847244192342079823670051446961733077686329984643027855169499152481296188795095367708642673130543354377828323854359359906784405651462652672438582999761115035723259571970540304016201221131133928632463056780005931631946212020743611471119100874309669331928143756029554815863274107623042770867492221174185549591516184635647100602799762199914170709867281991160453192326951473140357513631826405227387709803713241858434994476504562504093779319829440799437333556310094879247919398484256807800460531828380634844061923970852164771531371719440008250097780358835371072270733145065412063637550757037507379079882093983206079066374401408539496112141339322958756938139634580120889665777182335793062946131799506226885180482310978592389398137678760476295059111780571007072224809676805316763348078048533255796167035062817039430156531777672561977722818568243805941190754733587400570843403326020103581089576398124973108810723963407927297143418697354529166090555679401153521500000194326361597851527757670164238201148085892063666813662005600501430449594934390646135494317205423448313204255868932443277416157637896780762443203963104178347730243503993543313979959895653221726442508605671049917313987131862149114123743100260457608144150821481949143918761491989992719039473694409135761821941475264781078030289229466489448546525773808800701880981747319841847426261878783824612396318894575796886130253806726753107092244512511790129137475667487068553944487192965302433298521238563151454595763144277625702634221860802977847763100381871572722375329109584577906270992772414914593112201111276815904224320376345887822988194509973082097692823967607083601494584788631423366823394181176613795392732299408361395819261848734331488174208622181580956086140007994045339632980685797871842039446056849750473682867263356787593692589707359007300978644737570544607085088023220125433554297985456788869869772644663461194173112762225245334790950487111532981120987935949243012166423551517708188888170331153529378291646865303583927480050332673051442639525666538088587352879223965820740607512501208640831760748658015170466575364571901834345936909945606184571012355026793493687553660375646536461264735796813917616080999217672564472384474084516662117729588795226735401375875128359312878200681234460877721863442397837257333233965405012962517751708226146734941744953234457605405832229476723853516025195946095084885190578996140602068518738775497729626729356603735350432029183913149527149008381632696144987681859671395784899536700698591863927281899418364089811450469765228692802513125299339361878632958092309706514176889501674693593924252932898212218959278558519566999767058016916822526410539594745568980957127380084891944584291121770154594858378555982114032457668569200786315444565688987215055648369502029133834306918023038676735382969964842613998087106174861746817962035917204322956980081779596864545833484884225519104224782675954766056841875931736959589984977905301907613382387753414435058124086601915865758248045185334348468926738303844212799981615467350967670705128683041528923257751665482243783655713094325971027363675980025750070389240656118740848544174966531156257298806074406625767507182687353849545176262939454403596365998873644969878941943228336623827410290879206131451180235367767725726321935323521949194734680209869963620119425953943462136042395423791592832723457783324206703625433516855350769857864791105285824383922883158775532262330843392887485196404642669617484907394491913700982086267261619160478846216258295021932487137024799175175863753000584498163897301762052740003391222952336366455709479598823385396757209367389882156540836503281250801247264545408505205650604416762435857706366322598891101984735729936276790871290879952115281965250293338375650375297717198564493616721934371805383299436517018508146434123232970628685684340248133293432596668869733979837111659801139520619756431960751669306937734736024445796328300550172891790303069375876820376927480031117750053826498745723347602760968977341586100207526391542407116531981111822854091842939344998134341166252238997718501022820244936334677206838930099374545043999398107991595887468534304352471055573072297900986884974407581014712617116300315137247189102162452354150872000963656130794269599136885767746051730273308821577318259835472860405216578059184481344419066419319375701230492592007546869201651293316806989424719775499514180995677138414517870348311001705198078149260457261888204424112595985445662626217262403581421526913691636083739710025604811599365112478078473257375212234716720496690062067925357292239043441077486617571866891488527073984232750381630717657017282316469014971864618117918309822900113743661124139803435220794044107255295885905682354392059277744585621774324626169414941439673670454778369928594501655772113555026006008614075061231920134812479747288861071079195709177450166028059655429499432779615238816705429918415908992482785938621744442958317125781740036190644016274385543495765620448023638129908295403562722822665354091320869370806196556705803335986295334918839293453064053077302113128849734931270609578072201110098998256000332708000276401740475510749321441424625782231206192646297208368209173964150039320498060449702796961845808196964810994328467436136875125956508607246551247461721866820724262759092755442521096972336764687812451722878824448685470642430347216274132353873214396747470334447859534118660559042554681985781756592483506081253145607660748232381157060080489869512936280179292261314226550938732800351311105176154062126244501598433584020480743539184802472132090184640490431308815375012002281177549010389354660755643709868270279432183683406660990686079106014745384604941031950864757269633301437046483230004214124821269135503433621101636783533609664677824826928539464557430528988753406264054331949559375910621493228194172854154423543652054652190394902324165244429002594376517720787917109536997442173241784449777272681846704565388149055108919442890127756272890320001104058717758019182566798121102148639609169867971996598199456391220544554484900840363743648162644005767134616160127232762558393672025039177427871771882882703308707412653405188359607931629732230453227505102859528367711042944883574979579129143805337143976515393749900013011759291509631498250711369686965042384585666239574180802983654083327724489766448858858034759834960988181989076633331747434648986623334377979415070194847629761957104460259192807718004600182633445721752661522043839475043818612999602114293504951947202907680622836488933174119498133535320330772641367136687642071723329520381136949748870347453923302686650831325459571083663310087239699689640868217285847445195236030593354787895533435437936980016686410123020622700120549988652657039317985164896849794384632890267935140250748582599776500219473933453130618527297184342170152528648809519353955421176127342710782501810141677137655826386129829252446861853005329826152666963067524460197940317078028293677789123814771446070572529526209201186023104417872713476184565287071953843047353626249551223164384659491677697090145414520251912269052765916370696582737512766407421571760349589535376274214375898350045902499244178341699423122565909707348654829281731124279700020839828737236133786740229905827307500033994370262259653291505589499127723746794489364203788517304229512430908658405797123853685075832135378927944304484087032784347683717344697911891261347289544923061926748391015421930213985597130617757554026540311999146337456187144943272978274607668653182821032346739870862667283325728743019542199571363230812940514111118581825628418886217798046824003087089419304365960736769820440259320436039207033322352303141604047822073487293413953467467973889012839586988585741709370897063867606143200334421217343931377008250892187541166473933407185708138674728904713896704364512766047292923850645168834944141981185139956991369505809529978513782632797520147945829842102324625822671415747113724310848045983762862678570035683684513974591088769668581159286966606654224118219001493112351662822164154314111168652101162326103230623363047284166504669543877200134448722011593749729122299976503972813739248445078206491468323769283437800026213228398087135868269680738964142925004048093414439139025183244737267446456370799880832740534632376033668015012086462082791219677681273470804084895546877822513080897630512736196499789681360261692320862630097659126136810752335632705692641813554729340697587619577333305393771354072573113009006041768707821756953762233570778054871005371745355713376582738423359175706948722641417319590310970363455214306721430966847298878944331758764054609966373609250357157683757799508535945638197791654466207107177926458906256396963385420720733676693864389436492541716416049669964437345646721950513968789897017317924912446479060246819257388198680075685571934503527523226135350489730873106346755107125834782176246283838302446611198233868366339779676987564345689625623249016112875335486951406394916407157288081160599616912824891068847995682543698275066374043504378439351711843542381832783538895703804947234682117470455287061179803285671652120983544450005779829613085919409400219094522269342809894119357443211663418621367718921622122839474998979341092222827089815647392366600047303563797454285491397835439427816995804583356518428960860638894052917296804160988223098624411213648282362381430439235654746047627767794174980609575045946271440419049839972915541779579502153725190816902493931793277124376118139593994650563416315204441133445273504767549646450117726423037574828878295905783507318864945182293698259738558561617028885073924638817225718486867763801978501757919549086290552063379369458519022463857800556971244134208179998656299834204427912651779192406796524152652729018982087704743932627278347782188779300755185079832326144082327551972081376240816248376022849358833654713743321148756654785310176713810106696133706172010648651637994393905092289273629798989402640076658296741364976512436123278116501388487035987351012630824031312434345716381486712229123336492688895110063338634256069148955569926571615171279692654097359294920649365592376306611685458542015579938684659037439804014969593574215692143427720348657957554193039625149126048426818698156826642318821441889928069573364579306958816214242517912420226939322960665220769976862922665188601191095555590344184153263461821407067910506081612235405998536705711531448238640178093779798829892059397953262182939744409646576919233859326328431474816928804005614817906682942885305835624744942234101396956803790480496910125053611570319099099813400966931087392502714221348311445934861057269540460953225204006932299127384904721544235208072779436077418111683680830028309666718772670313370270428442650221271334254915575657737281111932258009926890966884901832563405675364311739911335029807716871341157416358137652332643130174407697014099599122815380784376192977155261291380031836504745881610080093736757631545122045166829936015422454129036105476748211689581692969972853975322697498554273390791788317166726303530288746936213436751768796626146203930177092851436054330811073429515882183102037681950181837447198457786869538057024869291735122585453564583599571456899501459881778457848210792250461405823931306285746112937655403212797654120274515136534402538455822136781403311885843251512007822450833238415062330120053663568686428158733257143751707558281000077075847607582161791217292286176586150745128695325961226509778630729035366177553404971341779898349469654073847975114316118662707125332786150276244251529097575249801718156353561452984421488358963712127851598032502926005589575280421924447481982576590460336019482428356950282717944104798616453273958050867576622593361913923015343391837989138834781722411051994380842104555482460992857000373276812337608007510918432662219589816557185645021625829990943727984106301029383812914998517971944049552756352928331051392696472419723116240658320314512902664533198961283519552661675156100357402681412453115286025468923218404459635509824973401420427650277612939572264222591492440346047421081296437422330084329815307020686341773901469038282070924667522125200338136399130463485856004751257264451353122155238410873419315607517646527942326079907965998805127457409122506508745096701865629081806503943978625090469788316168104958431875017410788020915905198674348539404621453981743799291909143320902600701289278341247798156649564771085748422694034250698231011548789701739911042052111673025119060362199684015113123571153253079858172380541857727314223392464711951788255486549019624197217061148300886262468339761845427407977944249353366000876137839717035439488164596101321035573080336991946101393330610969012822770841778325512914391575153586282471829793515379985771378258708757552279161650091705391416400446101854231513502759063985939279574496614214992970446774917294738251239208578554580535773039652190929026049836587826043582895159390690836887488133887627566198482594442916746289956480232404240279094008218711200569183833081614930250702739870353068299693331995731381129709235630673596954426609439636784384152856599219407837945147896977674725542277736464540031068637495217089113708982232900776099695589465421871889779101368948326367853323184857616462530679789415803362053094268640847992367583275591063094387318622197992866688866992855638307715926450963312321351172797283199365963143557506556625993835266956974108711420293299884073837086213240184812796395576373946873925105220620508268053724004762873019886767061716974100255579292841480194405422830745104094422120500189490233944241299923951827894161990703045907364666964983852534923995353670674934399104615184286840069472757850702488972317626467599878482071616358756806025927674695509571360336241994418743108208162411096559582440035424350502427328836666926761670525352022268397206787100211127341935741316871228920280464867986747508842784989799255587055368373376768350477707552126211328413264590563291764489766844810908045873507862858415135590907837219817898049106371405683799928497536982426265280454416508457734322846637873109544275807127081167747933095680334524712959994423086368681042656087554607579942380288348176853661031648419047343877665828942079342640779442032342619728659577901942644945468872068297507082878636403706777581464270244137542160106460927529118942002140803915914384672397094124999479833663861242521284597997830759241992026924469427568159355329901827195301213692707187617370563571407480549605942205756260522846409197532757535650978236376381142025413043400732318017476726590618199131175816130590415919329046789307312685040795769833330763816626268569289378399120420047296629795699389963266377953985830609582714950997612542693077183241138767857374768760612113836023305455087705338657151141664698130543383790876482766928295001750240114062259031081514404018989690442233047279009517423150618091584310525990014429215595429967219615468925510071806007600618394084478945921647544828447939434250202939423668374540588733826450428462274462657016478671591603294095810655312240694155561087956767339834087081958125786563154915614530286114187385649517074154797541504387389120961146110308450940110353019676453336390135976871377088739215928438113942083330468029759921760588452787935636187911382587932410857213853982754935295253886451971371427046277047600318675916095133439111325966111612781706767644887021977789983323971966816586312281091016645226899484111959030090210416591807303482940895736286662336248525107342096217448674659059784180778233984207091710940253183854006036525402994872854700736392031495318792075966535217107590619438417393411696367786100989212750155395721951595364369512415902199913393251058273557883145946306238394736072411052897090136488591371552800977784617271548565298891513937037445927726764511437413915471416638819699204571432352215090733704405437285503724036414829117358357975357643685486596387621256411728794185729712228451990917257130755114125567376530402402877006553367375891104594543684326859388530117669155158690317105487193942457603552449924615903544607331640533114034800377122416630923428169112864007950241497144426206705782514568194859262847379697289768437119204170927444442835573253756195381959853814918732208431773621004521933818474222659097609637803759713868742656534601729537059783694865515911814136995844947286102178403625146531405695710138656484669847483967174734777764181685733399255000443212307724452304598990860768638520438122732406872969223404393102436904696647057605730501587569995177726288494823135460633598438706012909598778840128333004348997651902532676044365734578321810769682579545345476351469802960230749848241360811882789409602085960538820946305345336185705373392020083163095162754779715557497672920217419944969143593918605381997520411859135533656334300103364925038053681645597009465638906327165206362837715670676219586493642692740471155147091795646404922351979405982133770431454996550647179567010676232653909764260304412260017915230338940684372115222408195509282598968295042070828757146847381441799973134780820627006648373717135629670104428414064598313575350279011113392311133858281219542525233936557685969538190566472401181791998387788310359511497407461518808248473761358798342442723088920295252400311078081652800841722472872810866105828749057525086455968203785493742500287628335794329750467827803139604185620612140577734090792221599035075045027585798560535801831844528317831658864409057790882885803503502930468162862785886701731176084551248501938815282868873871479587837778902329505871928025447759747051749231181268000901016670789664206844596078727084645924946711837151283067330697261571888954298405471622037526254701694247675826128261174375992003937457069545111639338770683990910700569246737324616347017552717219557183868918746794222213389692609140388322918904470495295080619166191903643356826828250867204883797194758559416499837586419320468569093947533436548715715823565598455007876828258623232874015810628644236017411842378297042510819933183542349343481173522675391223660732617764246911583409533672108092232196254293824673035184119421127673591634473303749816232808707255962644455696682734570193955722567758828679670110159088945016746847111821544281182709861529194103664223712173550875256908505312953201685473611286942618906418255412757600126547893521643117856699378454428828659913401790529439005103040908928552268899516470389941764895488377982783575754658092102328645329249184544853802274643014673346317620028488129515164294562314122774304812960105920252484542011572512550540198429081996643784057929639171455978738909555754044191512733287085490530593297269504300124332533616735936886047242490402690736656943834115130194758558546335316454338196828053631025532293285609232479158245319414078683973593410239089771487807992778111406710615251272035122910642382993954389357263058216328884158433356580910435398503911712402053825435770330349004518317039850738436256887588983176500377847919075843678736133824146025828093785340589108021016181162509441748660608886280049117957855637124061347305809605792580809112146292215203568225402790350021696497722117752215049475712686844860047284279202442884692172787015828748863457246961562436894474823795958181832514389001351627243800578282579403124766192054428211150987076552699217627874204859264247734678750426542349794537152127228168983640920856314760622779337493825096545122991243977896888969680848236246893184019088751647715989816058186717460508144122276625584048513423730466458147780060797390791295082475517752064012249702366862550208388159809317401223262784736170658456729472626830179586695090379378357820122646642226383963433228315449008667036099312579295975595225974876514521577392321332160522494052696010174054116125358076213680938187488370838347765583248590504309626484619675130459841476562182598273839832044918661407349348596097639369594023388862587917287657012969653197412638384695523331935814704475890378678954331991744637351751987740152312113660908053064368854054492848654109591686253153856562847675631665118244744225175476133459129583623921502851424170737539765247188692950745962802496819199920890610548594147800135957937401817130921323762148321231895734112152224142193066534657668619872313433312467792944648165444360098968117811475955720657873659903994617181548554542621287582152705020762149637382150105154581476027401421101333833041469981078426594898354649675053204548306292734016596955856440915238881850978457657976453644211084015624870394037640689330221266514591362287539639474420819809489749857301995418439995256775632464719970518707036975488382994576248235949233975150659184225006129330471227871617601629792179215682407508875816085470634942895750952232367094983098959936745074225843209911985151822571664461560170011877888363732912640571871320957531942311185390878836821593706501838808592383378442703824386152141922601525740755310170673567640338659018428377100469166044177389210990493059521670773246625000454641052153589860732863424780076454217222433118748178277036588090297069724213890194864844799628095056878762012393209424227205558676000519042459032649220115431179697756939900422219279413483250005243520342969994378460165129606412980207887267079094182334217071097366215422895986054383519052094086684397331943475692832411817892666141169882177399271437198207726528377624862506877046353713431843221232840227525915796006902692522404635119040784816153907957971558477784257971392880556852246848608093314907644658597422365166700978154362994704387875722805606910988320613800481659926374164942085893801137096378079193501857751432778349835578988540994397851251640492654779683401978796742337592276211740165262235660966627197892151121744002504597438685145041735421364036182795128505044887284209066684428385646426937352710191111675866650945677765701062983562833789599147330326204115067284046165808848833892732591788613767277042256034192079949113503645937794925367090669704478144489876332751545676300609691254763675901036308644206817566986914709004235359916751061094323717725586783788142059421699912642475027116793631284165704236541783314939614327482469945971225706415659610446521411518036509369516424842026927097317197559000620843271132209554255259112572520081854859298549345629492566621125437764198663453094860136804539748384914483782228172258866362795402205172831320745949799786528687343523067643388887454930533702997702064092692892309863708220009125440974843768312777932033458287232245414590914427683653910141166217802782026977749392657613969457363328809250026291146895043194433077343915959580918377339926036492548561775401542083281915070017978238303729794338134955270941290654455944094461762705966442927713452458302104881789051240604464239443843590241163250825392578749503673121185802112808066142637485877695615328917876709930437165858039826284804846081404477240260948646576932742315989181131367060730130558370527697195281538242586185087367485868590044301210658307874186935663932941166070491165588428160861830478316957733193387723591957045411759458835777902471479029643089003894824356148406580844581834297517345149075164638760748617086295691742454896257795606432367929747717222646181628099477160043335983777338337799938802953599442880282018253911510390963075924475476043838518668658828196708101724313438721138086983027643642200899524786623353798065632913864044264747231614049823515139994694801374154135514127633856021498240639809576663326000509970606959745922844403646191038407429477793789101955449072699847926095048286639602813060546594057113070392986135168336370603995703723545439480268171190434825435724534448101878531799212946966542030829761176999335424392715523016158795913939064532768569271778403162272799863255245563672781195042683982767102154749102577533967531277039778927949705065955288544370272745864192218043766399544578249354769048926644788483623060833478454347251726509385399085794834298276902728690568724837517224254863199979592097641046835021910819975406505699422637497282134992009003883663911796279956582667188731829569459751972482887315197619737507341461508813154494834311503197151548963948237845828813475074581425405135094099849634671394895205865897796271257705715807313889774304833219196071220498532403021439558913819954381200666861032563014413912821140998284872668345577531438155974303784339202354469768530037532740681990661735520147566561678751834218264848279555950061761600279833567268900159944905292285903718118498888153632874979615295526420453117387182926166719841870276244165239162845983412208753165504644735621875596195592446688797793235321949088040832862852687792015060028497920130420882939425787482988179587096724404748368784398694259410258692907478967031880766297257251262920745233697767274438538573484875408445158322725515576242161086554951268061242903815259622101412532369490750320763671970607624783106693327190735477432171131440296088999414730332893826455041135337782053093659202043612750259076248479088076962318293432888352073119558259283295829534947337691646533198340425851237449208026469065496020227779755937716454021886985705951956107687564037962946957504855993144509730885993592103953374962339354072782224309124132424677839372372969248681542746201558468234817108519446696053001551108907613095184296029390543256559270746994953398322620869047923698553881175816175034377728055974859982595726006120073898198260731811167950559410322934065600220115460034633508528052318026314862463161513940852894978857667800727227420778485853855284093437619237967762388583931899324373223254317349983510286036555591287556531257293680342036703642971499881660026673826834686185308315368319355086510940514605422525443419546500045074684733093157117145170347013644986844468394997852606494297866990544788248682342704370102894361915967044934604330394412741813344358623836647930180131277697917928504815659017566105424040298104444495495384473439891947096772373744791200136291463279400121572346147998945293853512451561678878651570901660441714382324511744201764664804742429099089184704821433037210348036074899002493930534686510236111341382596749790946955444677200240119858881983355460788330856029508410207052590615908256575047138724973149226399174313598002272377212518091428081079385407322219014707965814458546989381408673899427394839884240630381221800027370072862125370369515704004208016226221141085832694722380732145910416519297331456732278094069099952691217930590782165925549102090361052469599718952287730921346933174273772970631485083200528680523298897945342549445570878263354384585311835256096421633611663727645641623937077540449036014355302510580617436871711107796798317720746147236390711611871682809862595997934952730696260549698653534480563699741658543236452097318302276908271871710741856352551790512245113159718271620989670293927356991462631870390222984565992640848376485470714544434324044865166806715870905556206962397598949853947200931024973688553380530866369234917485230245255757715791827034165588936322866713375969845788700459333793307125727119408271279119240137383843438221610190833169854195328129648539430635999304606201972350167958965439851095838798000235410778167067617013099295435412210235238816593286825431990378250901905194477269135719554266291333120146452004594350108619508921672622357865173201390392891419400244046374740575607723778300050708889534486114129064332118174565526641190847696121555537793503754650751169675227566644725299093831735076891937838048229439313081168631651686136552310576096763060245913872561461502532827162848195906582893486370152914782167768071028248786948711668768251924654022929168613017698979818428479798214326133466429383424885126935046632869758217520511418982386900715771531230270412284919701471793687413953028930703255532105072422690522861077969518157432911056177185324695481597677970619989210130413489006725772515629240195681543953876519561975806123041762503944661051153864876409559647211838427803446035130706605133120170647941807848431170646169336551791021191849969828935317893716065168206701472406211546417682347243872997702669676084702802070886079554047165594392728340618614225382670435374208441947266912726944445132672447582657325960961697448564557877977889966762298681873575098470358754884210014547838077214396668914814612877188224505667963852423230428154049309615653674218374585560164618088047998928107488070543027652403011713325399013657794856846625237647475448705995530341632510075898930449192805780923967839275478809583249050612628626326060394915869188812835505544568289801306436799396230995039993990327109715028848071168197470590990051457830643879318259307563416284372395281918723364146894957620535822695481402931372732098334458986460199111369700136235720488139473320290435069312260282449359654249476022096861145979398845134741947810410755756333995409642151615666240138860085872802996399940975138608280350694185234470981895263879369819089102588058663497729753391282722039459733543064453762798097092454427173347834380252727439708774961218961500903904054483996959238572128769258374174640852301728190036509188726187007706063959674824484193115648840343725396959462085554668302653072049166203373012229690254925813989259727968596730605158080004022892987645199661633752415149949309309946247005564698382827524565308449533914838782367768315576367980300376264964380377860783607589126243657611214254271486738150672070984099888389914825980811965260961675902022581601936148217824230300715562003195552819563044000748464566955899705294038536677797362239987970903194228103584868410321515727645817100052082924344173327601313702886967821923062102894821771643151815260485414755492165468012908538747344075220126008966607983582121413907817098959967172363485020573912329289558164428048042402662158976799010811846262172823281586098571278398211115615380035765960744531296653337662584534261908939046670186033283783655477565032850118561908734479028667761502201595527123496107514876276744470112781070423805197156951786265163109524886659350172799227293290381164855569326966946545970693298327811575977374074460404937253742219801654832977528482166498406245504125676988215111478728845036073124889653554344803308434901635141747887005303062613944211144235105025334196180095314565511752715924475557837937356134425865431796721518042579196188611852071259593401851629984789592474342595066634028754507383839296603810838682356158270933156913134772093992457877709461843665508891813065363203450281045138039720035606668757621362745809240229066847979729501893151201616503599247284508828271259923732763757488251152595755201302929484373609303679120798786658858294314068169869011174263330561701037669532152704345268049370706674522453513290066315827536495995928002060781858239483124764845921032946523882050246651485525410227138929831004130056578131600544957010361434203591690960847425900741607561287942305870582541615605807719925131064126244698617692560300097401081330978570632264828898640967439167147686117719093169389830792954552836189375073938481421987635224487898991576565446414574432547787851902419208889845416337935761899825771088967625493913197906815930079507953742663862824037863296415654550463271298897158584303706917495311648138525520673704254235892960015173998455020239899559555043320882145240814513292072226486258032866172600388119453193577851876463905536851082285253121460260412327959282669766687159718048183956893423780447658995463682910933734725678497086764885122185258226517733358096449456692533278290750300172248435835420973388283142486173477405355945741391313881629483991404493588891906179576043057288483852029939575276140659188677485155297221183092899322951295666111175365215282839017175950531721692537717666353155978257535068205841677358473224340247913009558515285160592058273892591469532150638980599390674851117921672474322910750119539708059995586614188341758948534885654751786994372734226558809742442033324572668627372172048636464971045728295082800028844452957135949094537105229753715123419157949435496714767295424995114528325119877676937818084994632608062409267397373997820814534757428570070637679284260093051783053611794583206711620131453750597451629846935676286551703391992649674863433050198006521033032598334497198150618568972208205031628931086560278262093755943770846653201763430721860858596647905280062220766962829752901306068976167985474568443123710339069368783207159028120101933747381989295152789687994796049725122071396354551777649613036277521703333577021980567116190961513301069588192141526834657713529364171382547149995312976997240040981763787874324366162538630820015470964202996074874525150924929018312395705316622340515319929652508094667926034990874471108730131396823836860400465059547187880970701951525102386633340169404869208410649115960558004952993580655976976139614808088081087112084275299208362896091364513827230860808708574851293947217328992230595014227484478187789863000888347898507711037430470722996864360596825241788655918699851557636824745612574468217664327256165292549232466536803450627149237126122367765166608887113916033964962082294269957613668411715821852305062391314528449667395465298619248573033368738028651115859529939965503919063399010861787843269499011343718684376274087213193830326740001839655667223785467017512561493971585628643223929083519439935779196727834631683287178103791518234910215852665575548181986408248879807873348584170793077480599006546799045329116917196252894709834942037370895927535419823972762450033318983589744399336039123887490831780043167003142049753846248031378958485133522414519578758330482796654258083147335529318003443846110996692115702274613824847554810294485514634126164521524033224487681705323743176189153989882110647958553386953123847913496818082609405295196168909638578823123946352070692343481578396559717669644724016547279090960864049172272861712175434218727036104865495201145423385360534692932565462985168857133933960361059263098328132284636855408914240800146318762628870143405031486080063594895769783420413801570532440154939556295881244548129049687923569596453127296898380380131990705867563961136653231630781902604375377505240762996242494514499138397207165061954982582419675397329775264971322041554246126529403348171858695363160618867220382706917562913701091876266764785767156543423600778582633269050810173828825112607282298922611249005497400340279772248781764969769487602356501580703106116030113189610254667909702260535635318782992371174245195476025207505934000497197191737371182036552619470461995098984816487668003185782938429759559218450625710351774934916990818154920092409118546483667246141487796695924186911014816899518015075806612233860876616972015478565273569855855781441571927571248472122719189219882958978655989024130513895238475775144757876593638269234017091998586418172983143890061475897919844734215871371551214158135674754897424077570324423467260134838584372621157512813042278953167873584529107512829985884937849621282239504801819105471890926607273379293962281936421124639322385015726398363153727926986471031102730851262915414486926073957388407786746183652623348063410985424298763114841677896595767797430096977899312020108441407860727877960356974061468731676571590146199461398932580400418562001776592958955476113270195408700909391467884287244228561965921156260535209283809356923870255116627996717268339464039266650638458107416271733678701008594186020663342188934444464929308723902130523129455619290973918098335412807367501608446423855724571672808404328937825990468241531194266886422838642716357547723206960328370703891873788942496438044996696440717469674106853280778524349863396407162186514125696928429889282348690686145728405448689168459229063479438241909439040004472611111118067749717411339581702965671238346383651846149268118389503324576117077956706047637875225561750585738204901585253590369514674562938885461237586207885193899999912091940314542448336871236363184356462727611589918068969421585003288483595738895450834297510836948773193538174897874144036671823650766513041968787440293889164851306231715953634956673777045181988912845746567866549499984781592162068362154622737519756922116641460342254033241827081918568351837875328352552910900707139137260410085919033155585545362067659880603205687913936737485601579740090840169447332726620986584801365418540868095499326337769478363458979274720347063973494503616091261439406662280031876902500994668901093672153079620467686379426732257106542645228449356622862589613237728062904961786063606075965829610761629178737186920556207450069584086102342255403076466043575641653393263247671995059588868194368647358933811465775970895937212289810858083721328016473136635157060303051243658544199708185484429152180205922334741995041651545522317205964242752809517944344694757924434624963777205109240523686177353008657839410548497468626362737512153233905229352635962210014812137011353278377578168763561033728944062467488902386652193935840105858339738317423237484907509275402886265008395447402393679482321050036789193450454737872603947467704166199115010139507559704023505342538742795394530512839045992405975052151645600008862628863672326974717287109530119687465185931041369645267181314048646101649748547759294722862408667768578301497229299010192102424105246399951182616312427898709702794556255971921116395678194299721534523976526026030747302935784360292929442391343136381097076211080244802949152614276505640116540571035455039787144644543562047262491765326046738057369234031352161245667468041036768066157574210263553706621988138811964395762254974176727541452990193374015950842694449308516889456771383527832519338689255127993244647710086403437329763012182125770303156760795217183299191331717339847856772767461987559883741678020696462925116609806236948233623238863078949956317993111955415071888089471302827988988798016865823591975988277740837974869478394552912553134137954493150081951122069843068392970056923312043521168339734904979666109676682881726980015911131995490146335949184256397160142411922906475933654991043326576202050422371377211963414936604343506497048478420959309830685941708646203661973454368486295765436255422243323625504034195158139839607136413443411277504891190215302045332874176696549082811287488176513077568371072545207345486893818423465827430892514799851345269773216551944064927044877501136094618253127471002770143013536233799380960068292251706449831970632089151517511589335848984530656736214323399274385197631098792175830171435300424437650426918192545103396727940364839537746393628766517464684755761876845154768230999760899072222906076123919729802038429339931260490425696720122124549022545943868086286115786207569332201400831662453260877397936754375687425520228728698995854719064744701342185546613382156293289403868585107254941184680134553237594785997638276543832559159307027058984524600000379780323066590010568922679003678168104548871505697072359200554159635573491653716250934502983951289491596367218055298819103713242565062622377508833194083299389746628971449080084448015830027976099142603184631600665096671681215096878841808422144503433073793818961103735827048672321043981421972056984960072167241460079093208302424463667199359478484107583206651649028858666077493804219120716603694624701574883001518791277512096807354256025796772608199666896016495143393280483082094496586582391715292569325439170555522309216320766965356736966536995008722264572189899401842599176903637164306132639006623325511937177607769925344250285505748020607052037523666214866708360154050077367851317340731396299866718983644222249051135293681116145365492888460114920489988008528672102550731601035057034560996046143676830753174964101318780597099033986301042378599617355402503205623734533034918840121049990736578823056649428129645175027794041509683054405176884641996211547272816772266889047376313686443883634552979090252005528853855676490897185265649613278948534523116407381721752957394471866093460339145438983006588509897235981119360089642149402478390145570445897023013713537339697220338619209080088396168859387777561881373918966893023495464748003627246161389077905566891501555076561264134120323113603069548631284184858057817712850409100037898662481019723176442434475856299114831920541495289258626254360269318640624911274991052423606051350144433810338849872845727139583452598744386865323501328648353178376452473103321133502985269509770399106710340305733050219976445264937446941053153432229424019513216022414334540673492966431270677178938375914202947818502670816903245626085592006436679997778971230279177023381008488158961867730814920691669117929823114349962084323393924001961530350959586757826745787057808847218492722750253497066102834048823146137231633722342551293970382982352931311771141605125640389613200800914099718605647618011437748182652627217991903119825458526287887598326122289878109174091466906172755935565077515744751879160437765784732336628126289746040382298818353659141900411090188026541266401651902716003246519195253755478650296275965944332471000766166078437552610417154390436702540987638045464117459748854630787747070882246769098271213641041650043506355364135643038218527812087656642019035766662681275606153749573480997851895865305866964489491771353322466544549008199373685061374640193754416970778369528899435303938527022388911330195812747020228223494432666102435868680477392379508355463039426170895030734916103331513143109280989217046254009642011983049838834340017108229979530305491385055735953822738653021843199315340968223998978424279610890669811144697123117351733222164231969441288139729224742430240401873450092570501900326732908686339342834306687240898798608371736732629436678682965940350683939935963996186276170764206461694896991338721726468014921141811510083664636297513470648602761463947544686923146880733977515608275941224543242598743435387305210394351308769753528154339829460692934557825444479304444702783823048071444296727471943050046997694709458481423725079056677615740003048021639060465495216047911473220794170663220008245430773739649367300637115381315171072654463192829183641310507549395452908425659968008543344717139355695206577476639293410314355936133867757239284950722903810642796084174537519950083257539327553904881121284021399445882776870418978137295833351197170883221699659970539179788123393872856004412987446521542705150941988542802497316526176312260807171140252612470335632837345537602504228940321147691376893120445482343363261792959028624534069351416425221106277114505380445713199700187122605230670321559414469858416042831058001758621269475243336543903433446410489222323824821765802947423327623963497463194827975899389931036464859806078185114743337421393417918416257613819987697123250774943693384531438450788993396586278768567275621944714843523286321801194568747841964328568353334253700759993435238113464106720830239346432186225851771904934595556093338410775408087546135879336464315956894420080599294583271912678082005261530871690178988675705493109892238515998359816325293850573528025257952484616805645541007716316308430359617118906685185893544810698601031554586577200740268025978944552635774341450328826671291464445625423183533177075992049063393801962679545844406096133112548057553023051869362697325060985908448938334003236999237738565658126522525051736473343398803886683470369342010278723751935813749588576042081192801207296957588190094996182464329994434941798022009816930253844862940452692842477855725820913104391977394093559284887190705346870144348474018538441601689183621684358179370365123386449262382370335111064871551198089270225950469191691612638082754589274830891546546062213997322475642874855654427981780701266278272973616309440955897350072868514970841030559772546614056641664275030048440463080804122011026568318729489099658095722458797456326688062141069787034662584626368976582383942792193906737821874259669835461036438984657388240758016445423305433209251016742225392921380169553433974707061373531967658312313000918153396248575423428040143689165293025934294856881649070167697502875460961113570185957389193480294270252129231098906202991794350531607677569636988777375026628650006476092685230859351150205619893733195231589704684518088026306125007373606750393917338712754193310306760281670437710416007025738731129669869651552541453120060422093135719777007303063981975275608224063671646629354799104614351630964902693272502423993900042411693850916425463937970717607231734824096222068473996159715980933556943384900930763425137874624853874213854709697191232816481567330429407976700030665306393979857182509709851395364240154584449124869689220195115404635124376521090960368547058249760266497751206452526840834403351082885000926088608521042041549536713246357010115049968101863374150843234402448230646208255628353036619080241152040638406159596340798088846433136515610404505658617604189083904532855559692564446166390937374681658954310498823037377160760495539769220887974962080093562768043057650415327342630669446744224445587909967263523777375662239627813140972069478858477724683099736606857127776491781497378984720169637003503285756857782877270276253197945989793381126083366077394435458176428257845873376325682669781263406602379026738447554270734934136802662972844081269935585081196806671778164314700324604223187178188963481872026097163204086603918511751515648860810127742613943727647300965273328487315846515276962496356232743587305898879769707023163361768564844682355438770320633416259217505330804801624724140499749620997765864935233734780451383618637941636962979590285193714653724770439436434073136136935144988607157879803358546426883577922168228236790968489839267278738337790280243335509638780549419376561324488479788128069327245127656679515647879899311620681193030153213647646264293719701602546573326179199323720119593667994072679404542296314355633931332157843353651709103406977325612162747025419626414885588509246769712415346537875524127276221633470836836908822714986782161462673933591467496992007524073895552368273603448382934793126086709710664212690724100871199239481557265848983605780885842890617290867631322788875199817144656306629613165731210414171240851176534253421440596785685041096756757728289159728882956018870111322904317738958734974817736525836366281138978042401309686591068134222191703045092511079458621640252344379000005618464070586450866538904953969443261657432499259799705788088528974414169854634262781788010188544262475970428035187218765917451667792714403207850803072253347698836755027531695875330432419372794353090871364607396537226660452805024203363267483925556337195474688749372026900753849354825748196398010961233248995748083118600790324036215737127753864970993435797230289941329635455959298762529044737506619439286478903606943972817088919404890016427554067723865431402085594413744008851383888188243848526046817623175261580008042221033221510045252528089369019645338501057712102464093746278412130873995816039744681484254538200868924522588111311340499486124301015039537398598568144743722790794395578587827904694068442647908805265699867752460110049441434928019312653102433373611341785437039416745578349565542148408656728036147711654007376268768588036856598099842852342801566498327625383855343833500130301080692079798025849075483391259783892937081201498843798408970910866013749627739352141766571529010482233458095273043701235839478906286358851254833833748345831945907844489666598929474715083658824336684400148127226156535744040388790571965781934014523980574787109902799196253651522738743542454465075969916405062680926817167105657204818966448933663913304299745520005444614892935560068605681597712567271729057185344471646423971418185391804192870921868067259984645146285608821142997603629558823234509023990868907256894421345132647533454730756903831387035389231359883474388536445138340798780974007251916529334789088370878269080276411331463809056629266555896628047024640858915097583126286544886032620024678286649844833036345280467717859551120635371193164948792688831814544417448819341650102592655011831832214145332727826385266235105959758554228104541337016054933875780985819498565353305443210027088627129657009752361904424141951215709194886811547638133515456136030307647036239232904385165702686201485459484074468481391032088841605296798106847059896965706644732115426383507792788575102173822949786579857074017702059656560635587415195407828218159788026112625783360874025935359534867168915033239927093337283694677134620273025886421940954197823919828974345826316240673257681093746116818912972356242847463064223339609247125506533822498478949389676056077084262539548133914132841825633123028470663790410254918808678630429536064931484924511879745128575840457146582688120928912491341685233418017013678870564831516475072330288666474149145749219353880028258115373202480838525458546115030916190814778105865638444142679437585387459688694461841191112878383597924681228750657468054860585982282318909388476503476478118644088797940784804315294622720593763554962440791461516155870939300557948117435315282334789458282568969925613984457761687310303617997675283043531326379568260174557567800017707008966012581917969782913511149853750286543864097740098362247244293664858465240970343253839709774318703233931314789267240672169317734122730008631821170016579003155752531305878617411007152567744380836422687151009978180095032883217137989885779470499332612841331069206481208723134912674173136273151989982420989691451961370167235420734896398630696460189523205164099135857481804826380012872612510065221176968898194234966639309701355337497927547795107090231883187450563505347855141964255325596333459710793657516838178246085686352246954142479921491822133743193675038049894337052837800160437675566007837888705386755495035710523770464001029054577079644734201449948200577989993548866693907441187601050946468186676342643167847657042135256806668932906974407650850030283426084654249268910576869121247603549661348994572846435486148367227264872522297218434564189901416801338173592920107374178182245957311836990426199525027536786044683370550670836610905474165012969519388290379389521872803950137196887170027537076805220448870968871236772039323928960466506600322547640046797409475095613162425220709014861402659782421090763566672353020241914455145903905505818295300753171066855753698603312625159089299974016358847077205154165723631877130166003220666502811904434938143161294794595143920460460453599320643016913762933656276928519387507972261616098335808702504765450362590354778500893467654134960747296358965669587506314894813866880777886379076672415620372749608498934046099647058182385129221883626999141182904006511168999203146711434293420363380337887894494127390998044866473143138968322744275419043565690488104229979317401450155506231846558178445570740864545688804090149110235666799583157652842207247618397959779611487473695702202631281154053741695289152944578638839448396920025812915418354974759510465725398208664744314429680343490985141642917995836382083182331723846416119692724858086199990349552135374740782854468817306142235884959338342442197635550195538599679274808847730169570545894738807023018007191438389538989953089077923650003391785514013162292898963941006913622798912778942979154143446060086027763056713612778505889678790218538317382760074194351818807825721688890533456362867575142971382229830558945401110587064826265239616700033295616349724554212706008252559340095288837928024754276687815062168338443883531688155357791075119580972070003744448180094070624393179963758122157642484506358706090748751321861651778873571848033744613222974089517547516027876597649402585567823810360236774693895692297148686576628273272764627068489141664430922749910508443841819337789462651665440652387027318659975808908096785468903861254917779622898493427160152920765065489331717264232927293566049085182298656038042000689422739746000352007831477439767566548283915242057302812771056187333720761485895918462769543403853909871167228177299028126813994113176193073033220228093407935067955326016922992155476017930717320966564894181542874617718574527854870653693577192211267491612656557911752177718495290706190597944733466732589134549208048092614679112357507032869056506505450889047706816286578210826295705765005175885477717607222323500454854139857389488859541565771127599962367765223372960615367374907451809187141809891803943347601296229149762608315401155416831762646010789946253214017674835920749732202478516443389219283984236902080292641061983674333655626578740770832964481090853175975668831570616111935557106076191887616134365800240110096227791010749487205933717891411680032797127997926945761326872744984808620613641183770989006388636403425402748784477223682309880212853963708249149395153070405829148584752565077430444624942181326014437840950460989961104292922486655561948467027183431960759400685382127246723618602772067266317358407858941890051387165197202791132499360419979411791725266813119451944130399536219178658964364812513548740912376321746788186396902750038944684487437397713203558419898289951639608040540922088143497795113380027082015488233724636073959698740883910800768461451697709576989336056638100443404525032537683856893160570188678298325632317314633244085839065162816740493130118784943755800319518050370796388520330065874375698236116026798390399932216547508134025585234632760871254409119469159041474433939986006575237970840780406181461050787329556791705536268060769497399291723236464871633530141399205603419623888708563687679879965664503199048589326258444394598375680613983256384811145768386476894741404429525659996675572819094418467194089082741165636619707848577221357746539011039226252315269212538723287494160943945664114119750976043269300401006838239076342717623057408709429927297353486681438689357759684141063401079994224243039946626913477797663862990825318124047963375009124134710762372047536262072521434537259675060029557937134563558376164477172671780371876171344748710004256706045812964266321086857574021385547907251565741339358602477988244407717216418804550070904624167103312510696219555928795365900299898945178166198766959732998771944360062552718137148098933869213018704923267232740758326510130314248385970374028580213652981154094229848914661750553779480391078681315445744879720731784706506545236026750473597258664576321377567894969471734210417443404129035714193298172654412777474443684427907393416394702737075716202066942660936361911694670761206750322709529740982450972629056156332823512122029729323784413862060212728468399621586625768463597463962409671105056719912401835630822912509249335497155859731848337340370820103403977685032113495768971361549396796227815972258282093419753495875201103308437735142020925645729976538777138523141874446741421499654431560261096888473362331842570047796133924769408515899810781456988528914058618339841062182737744756834498965909294989383939477623243821337928223684415641637231050671068489583638741315661844458881746603024324821929060512794053140525181159400989267455656294946892101048593307800184986297377171752895051459252909018406834610292732968151607837658526730776540754699959023750694791465175283274580102119079863463164442802345602358405284012641298154694446629422256788303474544012919581821455928557932447328897627467887574333042341093294451498454246817651867654793532268702825603676011385533548042715192368959992537547205694388009149094987835733477065858057673457601003581489453628754603276144497677727163756334437730443131820722300664644738479425311122142094006015469079187362276452644944032199803990286678702517258942745646887725663530255527815788904075957828003462552443764438630597060863357113663802385722666723656134276815948512447034592349763521075491942515715975896043505156134545174665808426637640336591990461440292203327747705846867658356092913384159557133046792557515572950830216262612332990728498283986424309500498725707103501046880661280678460139168275594662204551511160625594991393375871092285121691841100759887181570993114396785497512900035266820790131417638610828003616016850457806098964251459021816928934691902061118108279572487369168262117967999458580510292755753997084849725818954345808236415665040510354146949371616223093963922876952195076033722726860436291813773209866020323675969598042148808353916206354223013723311919705600171895028444400705369421971692194557340441907672325053735838921056663174551369010305992076740197209112570685606147871992720744497158763486970589418543112057100597116830903873535413439054117641567679576105689564773866456550071373068456450172578610304586134748179371323071417286755967592291826276866267694116950226228021790151284577342223041224682133885493114643841827641931240691142100161805205068841210840273912757877037458005256180911106232507395189691480448453487619656967097971461597120757850883816123779782518769789107432322429353127320325890274638242268874960876475319023036680021303639207773945055882017858875193036582255437219614594586219848924384795687227961539918273962551663372515398328448605893308392285533047132544709403870250163566132153947504493737030939010964774341194267932621274903803696217132803246293845093813756394467316998577395248794921888054553105503433551174379847998881693888431931839890300070283841663990092452664803623046614053653899193376511409087297208832299187452798278046205835446943337207507129982582562423866515646015997893177581502838794264874822551477392669307109749279594841619607560402688671983572849829421696690775315402342053025379241374680527280592644386268703180793467528537787880497365579816147097590259150370469486536745744692842101208465862830935348217029302563296934773789793303549998330311807799584419927596986553432646860941284960512818725360357607120173388049772814233945865579346878086802950029449557088380032917413761631486413121159431114839328365769391958807293069807164266993906483532041691762166042643296654066443777625077191800758697048335109262631278173967263612691541715174969522446850524172998146154915142178543898375365333521805415836208235833187871514774812854990449689192511952008211140262817778011568720683306643128690450848941331557986420892413719274633372171501204950814809478993714503975670339562380830450502073374872393854077480063100592253458959335531813704778910637554379193658171924701146329249526556454721969156600083081246393744902816071282144586676390803770970635252521715256205322388488801981841810524305437622819152638900090639750351627119512464648039964236358122916202934860333170895349803172141704880024610460797556504398218984573232139256023515422604667811594823324810110940220487130420104118264082945222685697558139739269718739019719971065591699777359693850144404355558330637355227287953719787672756518685936772518569762606003094686738588035121104126000831059643910392033200292643620013858877358439929165479305317936760672579855250591943322570524793935050590194645206922780464492546438751287051939241477090958224340169593016213467979895402123112818449646813979153877384776233902910841187745725833119108730154846033837780250040314106122763057763050503052317607310682214561209006288924243525012546086747232183878369744178498898277820902165778893789789124502199405316782082514493715470447484587253373147424973931642753186623771808132756190089154677891540565149524071505836010799362178483331979868243441072473011424659817354708738880485738028244469520842560731638902419715228066343313331958632733355883550060974214091905907019857065856430792987197391492854826021142300154671635653918463181267061641441464970877778611899316277547528295569820344653863516897778352329103519383102472284335035585192301652228279145245871029999565565782656824831770879166918210912857796479263657806327140102352765730464449647575787694492287804115857572746141035794223130122430129337471279146595021268911628032059856881689140553014916064572874431314708295064488378354905521511306450709911123369005227339649077598560198618953019664486302294004629119746344558313649051366669732369249204768494577361906640591820889779531759845575735166020335036585083856785823172042610914645858165465804485183169977868243948223009134905233015069057752395869899979938619890683588844675079023527214561080709678303852224212108775607242228388454686552606148590069624614695686489643567370570942250333097151544127131359207355535783145701760142898192826033219028853162830655098190454328200611252596283693920817398030340139851471976713022333771560413323061501816805602006745488450885107345201524642600843329112285508445258346234804324664616280209404645679360573715307953210783947105557059068644463525862311309302239843626068837955836928983145844610820449356248882816491099070636676689461483522471860811479149782288523809536414284158903113497908112984150100329272735532254541654928082793086713929268251061417543826796776378365179404860931633754809248741290873830603546387008647333020720647150039760200218921110745190403657946726946647720469022823037262428293880615354210601481736095435714879527467378059528308569840091902969577891976843957053961357590307139565256459077628507253539394512516717493178550446363791003649038181363853321360041878252249613786682909890585667370840205339265287642437931975984394844616726784738823882230860668614684665314055394487061258307013349372340844794947650349802381432090227186242863807316482707410760816408275647972246589208291061722192211788982033360953174546127563422515640134821673431380711879669805323889071944797244914994484498584875013513047473900218823935753820069287952609568094899552647687925459227336668745668732078338197301704453693050564556818018276984744417844390167232295782338367098900467439861412390109815369772234281809208892769560495817061403023360187624408590034666927441693215090142211333842089721168452368666461600150536164867118740583996236179431873545869374512585177636857417701220341038804075756675063808542445733612027764104231312982838509511291222939676859406303432677430132173398767139056684931026580219131982873551539850106674233114678445755304609600282560464384745096765935109085692851223941359154424358782800251442977314280782459935629700916210322256680820375455670964865745355579976595256363777058939335047791105429797414114268180075493922011429465608619865352666631992264669039377366126848166444381182579851291511949721824869193557463940682213871834875503587086631558547587145061008041545285042192428708429509870561496029529993186774226271622271970628581558271419561400589566690140595497856407146580652111491256473815553990915908224546471454733942838478334645292833776241112855653083685968049779653140536227215891700873837286930912186355555507883703011255800504846208486987413740133285239626785802521912478629219997950355350088239629469041986816900876081194446408382522847235661517367112935580848448007603356229514256233413476354879456047448486393142932527088909741462131288969114800609488727689470635701157590931646497143264564454478406144789679180519205380167891878419429760283252292377652278921541714391137822662724379683966514594972228067470406298150629793619022169302379469954261394875182813292748105595214860484901783093920412156308429206892756954833362717094299800529578504200213131486994907885778242197729415486898580305600869436315750117309377653729234598260859063954356862852549309306511512442432058676403667476663372610762832075031471985314033692606154124991294897579267539470963894411234311245497720977564946922731172159922731087189083501748033724432027292108052147788757420682392122258121918696586919495161550161280831058274199702681701487757838122660613949783128990398374473869488564673952720148944701279421050056375682519031403733518926532869118462398570075066711835149104241305133603465500861560252806300563526043697145102670722984594137329270915505846371612743536409620482619569375974113441019642363778846165624261781797568805200728060277207448326526456257195840271681768235120412722860997244588296285774589746901401449413624814205070984333022641484272522634155909304726867507507924688726947694788331767334241107169337034380236543581510575696799717179553633572945944192097554780099987171942051037529975171973366508180731677582639008733291208907603989846806482141069038530103424496648585299847141642655063013876338841967796404085734980923334935023470162437924546195101450112307833182347455939912494962674353298817003952832929576684284065352527006103449349603058105024082149538035123214901308607599225844960432659920043382187135583692115893577858701714239106131810127361158297793940234571091345403104480907394876426675061906478618281274972094480458109459240530389940242996731237806048641973166469603787264888121214246882429006451787932560548020314093835065404959046747279132325144443703290096915944295677182751875915704146202197143771523197996421469233172252785275843802605903393336794033975079160331498022171197352259629530203594996373520769947274287620029899681481114302381335747703195396316542519887928815047152411796950984700011730505633594337076938005604572704315755926031975734216762497154129264349057657040891724302644829751060793623783677287667530637397968038388024952956171261685757302823505915450024723703186625505252192100612209575907220574943158506094593498049870022194138625893521530886785263562418594491682116044328195822488382454813383325519368195525735480947461499380139117865439333031649923791777278102233437045621271604564460040338317496318613527968429231266069930724821136001988184458769534739200160620960709738999295851431661211132996649282712206903756686677336775968530617205673893352811598759794313233543323498719317205405641314954835831171243067139448704494793223973189708142494253676793103432532791439181568068957245544505932484641849020095003083261428472629053193489817267231983325493880826603933373900713158569232451016476458648982064899760820974804050025310856615598815430321888203094038564069272897106930601353299135375888608320561645973579453464815035789883567269704762652714390023310352287779878645618606464329877533574145870844880643198172560769698050385785124877023273197334625660066650129686137981277297718398018932548656920118964456888686227477652291797739809883303855646771382722230592698348451549683559404960844307224787252237052840397296340425055130824643230355439415215341276791199201496002273401821256439317842360431812649252383749010857803437198808797666437352359971215851675349239655034373212544301838853165091181117094294290333856800340213974828585502821578720970774886739904154820483548475462471958340496218884101964560882717668912086073356538513015952047381009235495711365958688624266439625444127020016195819156891081359428172967516270680246419149431795156159933442802607397288339831040487692195379753650740286113843207619427078729013104545372772547202763069672338378210660158592354065478349146487543216025163403764895930333340190336420083457583891571313278369941809410703922940507851688535474977535799472614686070499900080635560031580729897682199193784002555884110582176712518453652184441315206225348663140131809092928132211405098812807759328906032200102303526082245819503167328442494880173192602421392117287097006986984623819139220593791969801839986367445186970205074983914552540677811436297745882609998494050011421985612800757803348911390004734439420389851906426229984522060590570506884944959914340867297065559698245745617458148600857263775361969556037805559911821028580542184888286496016952767391502284025270811938622984873348253684765125399295282030783380780806495264388276767406639107124494710278168227075133935453906629659713805874020934906817150940404268070638205512749194508419023676762805168188973698542137000180240244803978965759345263024334773489319783431642526812602343501061125698966211890992899236108380119509831111465343270443560730615726180226420572391532979987486014129831958810332501137313654848375177384875675243213517918244762371828911070384387279905337474661641659868107467047711875661064159993870754539367258145116974820428490086697323022151516643286545147438354597122203243942914112410363696650708988190629048673590369247579950765639987657251377220709429373641110353074709901204846361145884242360419637086828683395883508841840301214584528428490279912864341902047975603775124712729759128620030175613559551535128680260111319861622808102615950793446810995045077558188986680537031296622390525609085552646847972615005765050633872692732939937848297478519180457843803592760058268874719491998622646687837429998418665707151733118905137569195839000704646947500112398879737543907414578394409745638821738659149235875762955463258663084500755281475785544806112357950093231350552040893057275516124220447097439357391751988550723355591309225357779929317332017955543717826230555120157409113846222304852286493191521346665865348296459569132210416685176910497583979905455836582552941305993053849996802323209230952806804423123501201472607737721921880038795593601715615813041767285753602823532483047236404126289906604866376292359025281506349071754888462999437010999124167750524708004797911638973403234937175008728556121712675453888052078533263475084608999283312010938068000389003917356994029470351246221323707566540525544794021484827097716778574032031805315359071700758812595078440961557761290860267460765152124838135758779008202848720856116096269512267170332491479163880599808976443807333597820835480053034999686077665403633843561838425127494031247826233757161124991594907430067454352297096079291851967558678911007468761162634649127168995690135812298155896344166464016191693920321604877180530035759031361039911233128098683873068230703060524317556135734799230778425630418247013051674571669943141269347571017237735357034202632354573377451834040646738028160194889794207799360293889867456742744250146791527196094446555490012526755516851256692603088944670774595198164081573684921240887076137831460255225294251185190465187058113576945820016652872125058663046027882068576218809591922112259382798601040088015991709528897858790869017749280563935549132091932410499817929787868213822176508464539164284749601078914325397330540913810542422979258958545677488480407043209684440434137472156952959087127628009428454152912514017424434276420590568096567028152542323335273713134762493177470470815532054360199595782475833698978258074899204003396118376174232679023414686745563660139858230005797755829057358311803668496646486353917706774648588684877901528766214363711552577590723070523227806499657416764292685559310448780404371720680430659415853512783145769075762257564038097818528857855768558511097397685433483546980546601898326695792554190620322199615219807201400027609615310011567974161121742386449478918937205354074919059700680981004409079032660729949851134234944321729760350876732176504366836103828559801515124955131652974804003073638653919761693951462888097126257937993433168903809173892006204144609403193434669803717790221261781611320164489419159651717525820281508893755078572198954951582844400607448797521718567848259081013694239859800656538295687654932275796483334149940486081974976135242690389558460931924959954934598237858392063496607763489104904028963549949919612566393797518939606322389014414368695995775739895336193284112558976977849365359038597262520726938560756963861642528464101379155236232402852071388879859306212821530392105452997961458373865006908353415881960385932686061125506134779876359548021445518306831019249864524162988939106896014464740528455359036765574178240219889968207718285034660000786998323812123553616365327441439719017542816423958022614623383337123000627765070946993485424131985076292562454125958537623685207265825523146413958905875028298315868594297150615837630649130973608439909818875880138281447572424052507942716585028847005018955887495903049762419981190425243570825390644550769758534581360779980927518272651981814329540045025571415590882869788080252069639286073180821840497646931552600536586499339764877559380766042755222222470650201337819563680789450915063903022384894846243350257979750227532895798902116105477578399095237013719585714753162548970745427448615878282915250388643636720772553470533080176069027560664542683751664715338049042726388746841602232871031227794386956788436158260982731776515092145252272547437202197367540188777081338966878634314139543588534571163740728526000696236431937780247712785321954042467290891665247397971176450647155059686140997239149202115460911422383943708292732994933830602598118395813531202802789310753923495010137593826343839254760572826044040277522157824927413123585580630230845974656184419675748121887089433461731879275082142115320187242894888345286976963323436477786146890933005257875870028138318049861906600733288882149307005052720643551870289985662017470308316328257287550865546465477696703756266036892351203596834138152508701961849884240420964081408142278554401851010671544436026458676235161606861776907166477444322592068035901850167080823951809934979695365888084766957946806207754501036892109072827173409640027712148217556786362459250473419698778200007488449151823677117784849907006538994419368597883474496851523839574654788158345093926292167174115371011859585781328763201049468545326928283483199777132020535922919600007842255427439230431666424689410145151083948135287296339902163211365343220279314745000124037753211350762352379163176246816811822041862418933611309994051353187684748295813247077512193469922724244595916014753240272578225330847432255577916346795315178461892889917912697583758369815417167240131437782946868869857796678772118656064730678058018565021919950960105532011532677866081106005119331161263985356853254212284874594386272405017742247873907247472212064299263534915787282598225568003194676766864665939574413252092712526813653998756553952818562094907804240226485484867740897594557356733189114363703182152503011368801979768493084084280266438817599895942915629155181858984411824539237111044936170640151902501232449851810107864414391572060124789845239609449958090122895054629835405748017240250686638242628700757832173913885648347090381946864436667962674091053136908152130622640945224058307310949103123739607591447319110707748779956252623733349439793542192161162104928617418863434400580539658924097529842133703579533244798371059971274126190715585630860392382330781077876137156888572220210055046289002106346165914705083416436614012648096156362329511163410996616575269840997877624579126049366075676932263199674558232757578524339800414053697574780085727599676718439269297397423486267332952980460587700806960561469510142823868791938183761684790684612904641944526494442575352471657272963917406538647774672114308132303421317502313759146515745101076326168797807798389053940236456126834881569530772460549511720032790209402382543783203816078787119096878510100420826372447602432491277072456692058473078410479147864376029022837370624942742986615716076201930973768795337548520796962347922413798119230137847599345501027458576533409393848784973756925556166241582121752656137017996694088087266735799464994770127131242553803187537502264958327443812618507639523464142271426143493820677343889636509723113056150024386791455256002595433531822623903280225747378711373968226498484768433006464524067679806206342008797191175804416051820020159390343885887586690777593221754476854870651214152994462986415800186296920086402331235012067245550667520828965187455630126571854113375650706835696646756657152865563875177402149987622863238238197386172383437413193740866033503698871535279649902411766997850256978285844590004828971064259350327975876931182116487162220507652070241384827897020242807253815140548183205089377920751564133423731530523363524922749841079654710469806837922101575976720034077183024454525564766445615927568745394812053559776157021664235861908847223144845519181587991739339049857465141650763856443763166514194554135062533871455415315509871408842523841903534824894714420016929288438488883963735266227600575845644861633785232819875824370710656877250435353667523162722562943086628065407267361330161424846619810651098034195342656833682581778540098673185657783422180296143307805779203758117669867906862941019044819249400889284199883899944099902567492630502276778227047050461859888585586890806222080973560901660425434099574070482344047212752833335248366738568934160277157666864816994998079859136502865967015002623931278004074652307534544407220859957681054467289926285099423239392875113382335922088549130904559619555201217687313935058204438773921490463847694906215478287756627940412303400968332661998700163370653566651989512675647079764512132133515863145619026108554161734523097741540032953265563352106061534400382469745922452181346155457181201615024644626920325326869626255669359642215156785483659377063342274841194770653861586307055287037067078327705175812012000506931262892462921028398064364122600983829724502492764395894738692105336698582121618468010644167947936688691061106979308099364161147071787790678841018510646831208245027987066756724467440794547869874220529464294124374436637082107435101367396718986397305409541552230300626015556645204729906349977139808509755162885954947562396038471862602358810459132974904129932534854874668266344336121377472393495962662706876443190257036783626913040400462811088125993627707244777313283241145651943320404156435329500352356652227429398005340789874347287302468176624136898286813826727267122731517018121385469156882689690819832644990690524737579626508852330955393764812436925104694995276085884861917169359004139810860558670411018517725954829820104494648179034452547719753045622150684093894534207332492288095940517921420404253117450841320779906126501329435192311591361486482477674787153016221156657518168173171866981446690460595192292668190024484912504516360638035350689687164438269679393009114255413124856682975879931613817204949207545404333779825054693714705181391208388589293831761031919627435555596744384501940330709779494929749501749879398420960605066322096605310315510223832300301226589940803310107791561111224034045542693862381702384958189500631291207010925845944446212703055201145814822034328983072095867944656602057115790601025915612830482815609083539195129056313156108231224452558779112954112772168404802668916092676876798476996206318542119983371449461941603661259632342354299293120075717956286146317027757371860617302509782559142406948100100389051388383273031197819987796879272256606441517122378593231405277072409305190139950811719076246745898684132248980945658123366620592016661284454420894755270611233097882136820534830486265835532745124551658116343805826932917661502832240156825745827001077532327465094993937267913993176729678128091249441666762554608779513190320134319654008105375644162287544989609540042719104123942045262794894216325068091697440839605579777150814920942523536009836622024445322788472810743296562642444883703574605230585010305241874845293172879265561390324037360133377086215919466312690320010327147603175214380450514840765962980950774768758066117461316149765014941554051493018921399677074543130829725615639644628144845053214696478700831788524005977644134827017491747256385801842905753028740048004836566541469424407980336354570918641532159217346498518929381831417205109172160762286369403593942170922711945087723883506004966858260666242805480048001879454681714499765262821752852316043056475172312255794947782038653978932930684645706643910038636556656150826142797899357405071545599552895531448046740280452217197559745594331448305181015642371589711643177983359825841179686436327837026764614556874395921437487564838933956392179992601335171506060964528351752947454201899692096467778979820654652113115110031033321139505957852937035404945041294156789843886443208038283553934778035755576651473781166956521286101893100526809727157989431386929286954315424462092165510990552960948559489637439350177831473223714420413893142064867423651230827636981423794845001617087734849979887999403617303295448043079609512546175835610738207516611200667623100142236578365225216359053742929368900075097979352428843004263864517766552097002007080296827272408952155747243759689620912139941685088215124207347704501309476344890647418560397348254094046803730151658281195869057362962250044031544519882911599549104826662650873720061542536784656565527776079443888360767913715102090953726063119659271812700422967822864560029230785953292015784902527867318864884273120202034416424004134343244556905452389206653633397085284000762370001218297963940329464081386602141676601443254386525829674061973100282226350103087104446600527733537676219094420499611939400438159660770400020888918249707184705527996770100030485477043290575586087814378937521581446798854941682502950132498519311935049004550037976806682424550072349240871844768198835638440958991216328985729460574444596379855284485095749510009274056099585398476509447876066420248932697261854031465438555798190337444784458083698580398742983644931945431919944069642819100161215032262089500605061957665365782589883360824173910985808632147208850406922552733000663380148268897795524677788621747592830067046765810543773657843581944451841528236969573174729964398175509757748284111604285285303658954676232024563543378832148659156809091246232648404918429614221560430933682758233122052760031020327787473486515179903292267309495437618394207127730995074942813564367653274069968096731829100799301183502535885367451584213882103425374897379175841616563687027614216418209760159216549408176022652094076166958290454671993629521518174861855166427493775558336107450992549046430869770008939798025112788931738838335517295290430339777228770800417782261429676133922300151724994033632851515481629546855553871704083419592447282583699814669585481197789936516380374928380171063992981424557729051715206493668704612288948467176932189759251918058734743766573454296730221218439440270530203237131090685462079370400710991649073622648705458397511607431239726004015842559938591149678992703633298621903503542169131003881249237043126512709084116456574806813016334821295809657643087862191558482699291062701396880537287013650845588619327403651304082155252332881020323199152474514600201107357702303209592889600147869789222818858676565858085953287581670878479554693371830354999800320946459305103811062085287725122927521679514995307376258233131915699601828416074151653509523898136363518286145065207046235087445702188758318388515624681733634656185921760065000244625681909274665427534374087029502058708941744921261642827491349278872733994389125126794568217384975781695933248147780730998598977162699740258148135649214460313083181044098842819014510006706289433788042745608333464736940769493386977249002294027627575534075357786239776801354681909871724360150995359034588650974917300291477730518293737050635494306257928345607139013400478409122869650288266407131933314301432948877304677627110802288042692232323484302078731613409513935348947153662594654620606226177456928955603278856874151980451432201118588282534025221406076198748467860542620885547443999471500500079356841340681786664892556729921217186537882502687931994279662028083669491288559671961397271689719439695368338320946485507967884778655726693572968388446019406601571910723008694366453734100916990397762376055525017723277055724185189256511365258736208763224516814945951806122363299032585023605525190997915076524877236465604353716662798336804116370813626424444396901001689341152588770213449257942383888193791493926675326394056386825578107807289607428613186857071374705500993700809260153940636174044786071416896123736823663214088953757379660906466123904121506960158652207115458284160386087018731272186793047429280555319478151046443457010254241927758166642052798392423519990278565772959678627843812466971814268921040599084121104197841867519762298429943708896531751237501408437533179826378418799641582287550314871897982332437460011964629604932009272400238737325715131617265808986036484998566952032443057002118495026139744277619808084358943272812681856789546811814810920842481955301169433105053007505057585840295539930697288347418779382330031776965971864801837839057453031887654462667773107168312374422280935228048614313691222059340720979351216083760149560370060175273036799566943819915900908550185422786955787328962455901486567922719038739390348712904319150364806420883985466209197338573874801182950751213384946946003222373220776342812877971395777869982485160449098604956718717517122376415875866455609275201003104300809637519102801258079283173858817770367064623310805129936435214686273994454203547338391480852158028119528417333917126464205502844569965865762282073036232980206671522632231984652363220159795511607417118166786350629541444842665226281684045412192795779932548663318526669296611807868578367649038188493959180464139560339278189202105299941976337657385619168336863225767019589246453483055244254123656949087286593240706974390058456780576535039992791194165613068301246294974765095565382946460552583119023192300019573223474759461392987737764151534752470794711750622481697670165762723030621440828501139654871323867713039777379223915425935535984116679279471719181926461804713949892911840857916232933620404503306091021617375662027881381281570470343924838194737044130481030475579075743589138555912743223215525083120132480464535803459836597450036555279268077657834735887616055904015199543341144759959844773064577988683125605806434562257431577284776035135462979882698695322286440742186149987079059162561379354671888096995403311388776284562506829143172966374233664346783706240881782691426690390664779866091103554164962791257879949391362660280503370817530774047029471189640591582544245125695135675233867815826301856510434826862539303049396079202335326559100698818160281764367474158947542176440301952158859020329219657016223838641651231571021660016534915151139573758547772500261026900153029143705920750877401727459715977051603432146949075988298028785675314992366384581656817273803844734760354357633783049216115972818283468052931077697404106271747825932302863054827117655999951362753095393606762344024840419222789713559006111118545229086245880330889381001241643544781553197470910773258691502118788187278739750238059111356834032127443253489903618881723358408648853520824810201427407431723820005736437701755870020587183455592873435519583641008758878134181643977198974602923734206098653274129697568157282453426278211698182632297649712527318348446729947995054761742644605135013289286029591904195927911062106908556951412679391279606532670949024984299850646782018849880775410575830522243706277515428574370883867291671536169339180419275270124391247698051569524717043394910302647448693292754384904446391398762953856638852353528342073731977469025896799920095335805836837097589297422803351839138084234007087395709380329600023735366692266111669279332724202216580467785680396137926956197300469870288714985853354590228150163795463621670373395254979062905574736225704752778995463463192667790127986483436111408606423628142977536250467835393273842649045804890422371756257081659512585193631078929968625065940346251299235243409111299323164810555810929309218450635422651992955649181910481020419925835636549450232747201077906016259741368738077816955682849282289756098153252924195326721477754328785171911822133155683673473507770706057135450905776130704948044013642439403207083972248123952255193848448097611428943434760892697916365778953974483694044588341093355429262978722929025005277666627970057911363069161256624346861442941473398962333679403174015383599163759080336727207336141970889705637629863362325350656474551602991615216063099118254587793900565816803591373567084038623713421948969205699912891721823105512344245042349454901554571821556239731044717100770120504683279846023484407613118274902179501389729690671924730917357594889824944220290001354176132688562307711791345500554467339349556633505768046191576813299267200695962943976517682683371015707393366784502591473108117552407159383919313101741331824333082139403299944113374192972639102375132876585457885953697241133920583441525424312878477513207986315179938113626031100191205289040652318382938566016036549683369857950250536405468979476518833368055155365831897143941381088049373389919605494642680035527090885567291510031330213724036073418931956367411257070847500003687539579481781987421100636023161343442495198076316119887681877160307470668965256140423534682200526179499757383411285489831465653122066011331644203131002000399183322974565932402752047701608074980041737883984591393728984049947635072924402446055493417408214936035023815970321494223442074901046114414189055116329557912673933687041693544610727140447016610163059654303113473750611129769446850610925408174239256207613456986011565895940995257384634026623639632362588323777835982124443102693976360844141662290933789025523390804191630624894036351539980173960135076416409457071442580945308459201665650498547826688170197338869490771740587636703056828116768562839744597329526264151437521746926043185981945747376049830083143948379304325799884660416183424815299915282295288810934034209843493602011402667686817967050557637412471761095636478868819547753698013332286590660620140910761693684548210695109266605447743650058144097491828745170095493751603975997861578324463215119871594613354450248187641233695232554878874638980038347480292575166541500517525901980293757218399072493039899073234347843961465669603812805560132310929159148917682303832806151664597522636171420156096395880193397061757847764280371396609894101323083062863724737424747080324258626896278347777395653850264461854137553757442675264262260390445034315121163125818550501437202965170810527537970995241729986361809322556975392711266305550991262997740174754001406295547217089184225673318267323113699743155930547337948562564051700617303654174671305008664787087713145510475423581026749315359224122235959988765930689812079981271376790788682631996711089600597235137030314769866432722077878822271866057770445302883186779412694024326550968536293171564481114719100885771071639491308494746880578971547307913604960492933254970004447951121519173026587263533669876506221036416475065012091759678606394125997962649807059538211492105317215146388632451025105412500102712104527341767525446049371933327714734675985959462699384994091489244332068919751759086357771490910747616519924822841489807857253054580005435561317575500967059204650723957248020312818320640943917170151796391660025241421373744877277431870915756282039247431270630847730245088668717724095184085097826930078403051324197222581640114517042672370102740727317374947085580361675253447250168181673569771799680758427555554537844970864698794237532916366062151135846167555157074448943280828901823649139219961030401656719798344451105493045642222417876138264999207445336908488195091756210258495679984502773844966064378387897591672149437793576625314136291337324494126695581295169492893369915546983197146068405245691215335364942837750833206816813437911559949496351696891276109730874160228937046785019374034664038885087642691711896943299770972188514857261777631401428765094680424091773405379913700600753805177300532091135864633406493752726269143158224939693563821998067504627972780683548949977535294304447873047408677745205999889302825692677231689792241375889913022985484319873678627682943353720181150493823788057738205832948238523633785913061002158095847833097650849948423920740224441133111055877793677567778729810799734352179922563681974034907371255647059162606482783081589877134090955250400721556520329561212011983829611158693316371255525473006799475702251491494296652662513436564727323054340499528543680390769490706400175127631495041820592822133612890777648363469124289223586811492426202387239426884838184282189590634148282665677852276004837566410527862904029092164725990033683061417744589393711395852624421374054748029820485850663746403663106642878138118077304491277529547810574552455475553279021952985150557455574620230897876610508893562761431477754763834688663950911935694350814491029585480933796337556680866626223077479716593746162966027378381134876883267790171226386298635138045807891663656090301365627068549264040420636946682891548203119760510079090992089936791287671498026904955906551264256832640124254523499080168991137745771081594915617079703301362859904222142560767080665057662091709825345623174958406398488353833140211489312426497477761484538010220410059091384022033521015504500838981159557444634389570739530978260107076224978072987907616961917660051891498460562123073187268035914199831095228081791476568660545232891413792761642306921279614446640328524205135546735589000717426181595794932008590039517025985500112471212281013111993780892890111673942528572884155897430660450654096316617826102096969980205760826307651105332557822793011004733974011095238244000580990575618683041148871091583052375031508640523459824972366725366399970631969627680238485396520690505221121744181477711572942325002708782092995591542242991584362302418163306836369525703778910900460133912657645395086116994669977063945714626598423923745715159356153570526459676866923411595796643253270530755582062355237587014535823323994664301014732368803553950478405007303840239042752742790938859126580960076695977654831218896405933878770726727809755822223636359758066076569840380414660186247087851373870723729365755705074736863673629621812222210261515701035798773161157188938614586877569707271769907507021513677791092069618063278869791505501581460746177843713849127039191956933843871092610966526734470222755482931195767832503256275422686299662843995760070951142077619058476935374999623765308540029736308861398865866637584589148721700660767181113778484098919054843081290551890390762711807256266850902272491957842828507326072355246512527539475280473635690427533144890233708082772356638108939660028623703258501487395299925645753099631491918148486143213104023721766374339328779296459866483814082558274652054389532944986706322413648838894846659409706844653719623959892075506064937717623427388630823871585917484236456689603017505802452972202744190660444367476357526366965601444936583411882431659179323489067783752059407416334083773211144213325177831867349908916760756750866185969825743153440766179021644280055411597780233060701384094910413249023143458869660833772603129735961862144033224484242780585933460446618049326164233032752994621133341886375768687331084573632225247599574876842486063715332135885771458251551820061692359030707745658605718593961548639306004815533582069149107199191928365316298455251572068191102488611939415663980529554850581455389128318045204710848276430009553069435166011417080494866849914752252473281590360867541553541355715355342055454346309526343919339459277651570955297288972724142206175096620998056562517932692706824421505786245207126100571810172237400163894331969889826318245658979831906640349856192239854660795351207143931431214933122094323022720223636022830510065596237218993322905149948606681180792685705932384185431264575597522367966171333554065973328579659571409568986733397703441231329971224224748802626376944365949536366563503316219992129554284818360499842791114928914788252141572290149618172213819954350160112323210904787110934728616042657970179395838124334499018009684916516034447878307679796461310434083400102239346865942748294320991255620960956988086473156024022892129018507478248669366499099047678932978523661776519155192631249113995389087143610778086723876875602230222104165050516909530436194669074107962630889066777543818847970017291591409654822077279647756574947063910451099798844417632227757201674651744756267197538665395523983853236620735575697206680151462761638514964400923669738151459416359062419465277113147111539871233948368093891846063278926275074240903848169655129431495232375302309655923144874990955197434548092331210572803407054098321706208689184282443777791023161973457990746761226274675074873469345615918723633051096367478101970158850944750791481639108234864993452460178437857123603770422747964436465914917667848153307049687006254352624929134433864388694556074710335994638557660909817171275499431648176658354430299391809807695274315752538930966068748536707537111348200211739213482221370373780428763488446770151119531260221546694129127614483627939994657292545556720134938062185224915828332197234013296724110565890689743970487176891690219036480922276799679716226413477859761204197257555114459673952615476837491930557541794060465345692350357306882349102036603065284580327071904523397137883663567233875905446365829329017110989739658280908398535905064638170236321467433002618024405149970173953565137804562307786217648155613725416952638268758219358154200904612705150590255665211477996551546919229941589695300594895368356161244065974734085944130918036487221196090559090309779295147799360340923600843653446403487038678344638051034964939501081280619114569830566431817170649285666030742390344005306840806605878733778762289254449555066476093116201257028060411177395103965304526123821834358419849801737197556991945666505698245393974946974144719251171593974722453941968412607911009843195632360526462389807295395779885936875041813068001984501689962452176283145436880377749063054173191840531127752216129098681456589883362919101902275374874611143571814078791190107512826079411857299320261796484070844130414624823417372286880683636445861006378929012712618818952761045487266184971937033733056946152241677133734494107172311999074881484847447688023289086961784027989354466473310656680465551166794098138120813865142800927374259450550833871538439946375871713051606235206365869750392645338325458485125123885285310121876097316256442002569345546696962693326481168794857376975825624889479468081072529365527183945873279755239454495099248859424044827827977081158399888354412780088085023130774848489766549121362798651233862060279269648887923099419709355056278569977888186727431373508792843943284223199135725202730684728765419150451957401981877635549290511881156898544675937464502490769017376249948532866331994805014391397998600908318130780044421998969828498761421060719655389905648825426930542862190463438955501591325132046379444883172993128038323475925643755944301230150352446401980644552398069267878983152934655198355575538075042071769012214001192781105612438402328650297531842333045776088255439719998520278621590455769104751500229336663311965308774869020764144958753001047724082962190603328434892296076461704259869919095960910209134177308620295674717556967934521421346351265594063604585432791673232729907386963479855284130302961476537514249293829952362836001218497572744153348972080491060636862278095122541789903125190380908390972829709781417805654979295515435121413430408863825542110240734476833020464318735557928294347256818939215682913070479925697697195654091874762164888089120510197145600390207466750577845625936695172960509534158251830398968902388985883670148316028894450997653006614583333294240689755905490614328457819478742123408209487955570977326381580066959111260098282702609160991252355154074387245496001740446559166434599139510737596966238631151179558514991914137184065382394278388608054737942780095938686192403887932711094013793748483775224516525768862209649791481570883523759067837468801646319856263704592734644574172371630966974858257430747378284326518751821546994513668583239092152774262735657877274849065395441175690594075908214292600269825312785088675180385930677201433281361673687382337385348552662946135308037177829806244786842740846173697755619383308256346835473636405142056423081869014586286179060125504293114205375974078625923609750231961837929943861187714048187022290776270865720337709043858887565739116313243463825210085228709527322713995888815902768015855356620536033454628519270275233094658879420906833991813761863101606220756785240057445759569791678240815277702970601305713868856650829069278335200901132774245873316919461367320450250584904831570306654610033836148235258343983723401851696323797431949210599608832346091503463141112491664761401247674999588600796403222765776546311546512107525694591072333997218672988633164918528467415333913719587943387829120869018469660578643669213472481290116988156402526022436592978331984931297322442049002659100833952441041260778418900764225717111844693354919480899813704938356266185332826321869052989486753809784925609556954624072750799697879444855198613111809815664917098524666979652138048466898563339564693164156347460704662601939902395006095428607615944092290192533250833482426663457244262616149608637993264704891991300412988136438214351597135555125808451993096593361363006009598845068629589370632903990792842113098208627024312703154826355680277435692705953505559132992375488509684092613583533378395968803731882661068477792585013585509141113453373382391135537387144193240947791206120383018642016525625862947669579457262870974105734375389373560129745003982952385302012470764680401359276467245271549686709039675199688306402376328192633279715706702607425726790077268752154939869689396480612407733509958515679342106449763465597917101031922728678836184789043043594818732153759242443159313352735228284373736844875101661964003466011647161192409242066484780286554613519958413320886123714240151509776513325942381976956460318445825017740557429855705525442982520049478958192694648752421458233842016401598151673053617519476571362154312068790179790964127350700620514270643401954397604662374702392605717776364113420349325245152681372235090404436454465673866887267541263091387115830860870736870836971288872683901126266917387418549453777877703826522955382091180802224064815336221585328543235490140960233719720110552519987850262682192313231258951440486501554617777019624218659569177943643016308264220362891406228292226796238140388995588151102285821520242810910112242718360903386988006542631085661367762391746869011603421149803332687719423462342930748037911581668798222358917196474105032671375264364171030844294863292577660310361911001509288209611105058920794028846952954416954968961902408877134299455479214516914332081168718996885668944339566377364427084026527747386101888438503813852093784972246077151626430746953803357369058805244736621719344595522355801577097134085418737493013731024435708883399301523375591379663251651580869518684840750991228159266849973143968219426698443089635132026746389842220117829174387374904801562226163146966897187980747536872589113476864019262699064025485534645376795509639007674995448739999772469553367181298885125959945643829724319982711723666279736541689734978493660009960560017839109577077350312834333258033630884767173229302569324561512998468110667665391216593079407003105940505793740311368979266001161894457494438936928846836070415258031181328969057384247611244895665270430036485726936825776335975824262792413285124722348768513884181319970882210127902283867831169584428270201723215594179196186668407646176167970990893030275604998007229399931551471031657462946214364314367950247533558427698635279959691444455606635465167051230098178812305343475001382092841985343987023303455196738251615679790295981973522127382033701544718854675453471666085880342596940913576329008488804302753665180215292158109381172338357491604449888451685226632613079618768213267387515196175548477345989182105731462633111366428173371704781240544261892707483348527621120380540105613531068084193153352303166704361278471137017632326266051921195229787228152409610981584022574304860784721315833395943520769256206983089578410764630487618177886085066205123334047837109351318138143972511978533783731556586331638509595632704935243559367952986908413326684071637130348866240727831882972113746563679219689331128375994333033391384247104637771171180552806691637261424941232443942215823743205571979115263676037373760473778023329280729886105279565413247936200857331624432357493489074561941290697603455105741269620729774682581480703036729469551773188941721360480247345903823655167140248179345421816927888671184074362006893665628179637163215815170040883311952669647522249123946534096893905313300719199384801336547449524323171479529634522894676787521926887156903036533312998483382156833017345479415230966676663692260524588846672621696002378721506649724510366297112914347666762124233044210650665675225670465585217278515662296386818148985565661408241051492746128983151174705203585000322459670969930069848690346836230014237141780344320686421709847096437639955058470386323670522440617163404943127812412690984388897327696320465818893033687094995021907312358292634969857150260307128201503690126429476209895587120682044169311194338652008651566172442661303308638975769184674203616538183446254887169002633950252504289856868262733346076565548952708337598165438372024137892784050158448792611518387833509222796064667544060606893105369957670886997252111343258226169905474582355353044006103473078947135998060408887467804655892490837360727261447717900375176679806496378418295268167981384334197987004095912522743408099517049196147698627956463380094259866424050766151172171043819646044311770243446918656093203609789764859260166895252780020331038090104560924555222045503270457289251214425356561198702827381620100638254255738637395552594927451845927697559602796160588861771439732570471203117928072520866183329228047121374489465230938745429998421174066565054382955292635558612579924936906810805830436597992446002984319045403831064545861814236060336603525522480361133508803241161888806011247641847563830823985250731118451982724477581748494180797919187465539979973968342288692286708650959970998587744802209832525716184059335291290598067640541027484140351644026163051605288034431007644783281594590513012547016038076862833086313172643844637633658397635018984870518451578555429080146766038004816895391842065709685701976457673383791476212896109630464724746709349256531225854446432360796101876087433635254187969113973312576575644995100603598659199133929820934186965496971745479695818148540531307277096364340362956484411259363287932602021255749502165465108219820477021412665984163778443370884701751735774425550750119828160079912893457282405124155551377045606723530482563220649718622461741550860642200875702337899809722184597283176393774916656061461503925337787151067021560658886896869572069954287485046111812837412934960437707540751612709512975582762531676435980582321413486155025183282645909025990424880346615020176458685606009555927484184258455030478061514522417402177471416529260828480197425612748404606395134202401265658277518404589653387358402048010838178418097446517415722953943647470736215599058721885443728894668788094738975149334309630743951083303389740404366409152699565200767985159835382967592346228123194693383406374234349181946571916198434071237329180515107685276390444680169543847945940363318983425593109056475258289884154233081518136921403671850426816460823143821153594136636065779245038314969412284949270424886426947533798322361089447938326960955592076210759551911578286683350949099771348270751161007128255810593362682010498063572002757856660573583611087293426107152076370219848399626176643706386397988154709658033959945296020149998621836358626270011222488640880933486842457795326348001346384434010764559041215288761711780067293213384008062406150367681150360548383014637603705479453217934577813500871967970764500541286604279890312584552798061702032851542119384994045806407145666806424897253348846751904604039636609303967222367036076776703490204659136935962181623846677467694146755145620896115867698728496965784733630905768116986677700299580125588871951574482975120757191338930643763052582210908922759438023201235401537072272265745039896099015485698720301483705720511523910440268404410752205917929375831941757007780974402012629924600777185637456295844687654326977866708861699892925895523648391804891984638160657168219157036685995171090655752314610931732810403871659897197703134882487248717362426293312615519150500506333775256193412171013603825265905931147157731358511869183447130828799104667312027198893129927045731234422241566684796550886634595784204326021798240704816370149978783668004403102387152268492082260565359667836544145703186293191925486351035808328018829866152229906419364353144419490393600853477209761529595010940778882410948200383576944002579108400294736160802979728553730177980973984004254193238199666141111797812489434705783209426465868290231599545879543922579911018189811601597489561402953083672903916121727939549690402012622568088459974556667561216384902903725757821198219207003630474462360509348408375838411331599866273644394951596096960244596396709271377082738072641120139816129660696871862909239171022196716349204022585396758142295789556304970468084509370460426524212193406652889569854529686829716658108602750274710666844770830727140302912800513104469508883236019835278714525185428212132733414694534612936861878554661912517576751055023109564396300138320668661172302010260937835788119532811630728656524712484828674797131098073771907042777014360368557642015312466280801919379414917885122898575312106995631855047212021631031409932516710570756319611400372930751614450826076603728539513803839387604118550448665590056463252067779380289240530603161908373850971293787284975922107310143982756151872128104831576545630440880201180309872777665021387469109317400279144112745341295677657622529012019730606655746349771600694399786604514893258824979012850678673680028800758720915588748330101578486531392294420573342234581160464380034722168330061678124495642397986991619011053475894643007697823025798473266305817660573102757962971284871448924245271933328766204538249968157525465537502961391971494980246711669511443912408213843706137568153174246291479679222384203318772264893867501739593146249993576327553861689943843787284725084717701474436038891922696969420587442458891455302763088575977756096787451311453493476459734117096504213403954867063213403323699735813808810090361426752664139968248124826864994854924549252453779427657862544603633965295903861591109978936556561277665740002252830759685440985095947479076509699792148279991610236087813587395145385696078032553700064953680648866454127111011622342307520904931151897750856383195255248163621737153090615892201982648889644269473911198428779441690477797971044528863691348679768424755131670853781766089215513435814242111482962404305550838103981922869718941747775353230549462467117913056864795114860612799140018808196778280714454084734132915136802861040488383240230720070429370971198520646785918534718478008052507219874367650208211952872229752902201943448844492784220223879762760620703785459656755064703454745902517251068853211677196927687176621844675319780359822883966557242944085759489916855271033076222457401986357354657957392439168338323309674511748326531724309153706108367839421863384120061231707767891104679999647670391435974833785785960309188098840361696223262706465412650726045999382215021370894291414891154934934043489429871181245004764267175260423954238511610064696586615633330033679049583456301794595118061570281513568968016553746608180321300045820324792478548235969848496734795704791963836360078083877090900815019031186656789669199031817571382043729267198765041394036730192822644634552125779122011650605272509847379754804830442496089588843150541753131377781402691019086764692277290538471619651817705828849218783314049186138251238881760650290568878172804958082807114670532100783038369252873158958148748851583224857244575515383345030302217906326713862386837219167013332585912678242488647511659344853334327335164920226564795402597203108028855203722420400292089642705132610947056882334798897361144289945791086814350366140745425007983492799122932737743744218167525309156949744566692906168015827565209148308130846603234109436190206541596439818282023376551469910111519168708250445741288148505810450717696704513134323510830997447207097904249309581854064682072856643185710036044408451430131154331953236663397077393494679738718710596497322001055808642758244182612434063237715633095239381247264205852536901042259304923082248752627290005291915462892195699962210813409052168160424713705058108896661914718582829736765810283111226703526866140864615759144571790305020839541956611369090033245224220927258384445370355608542809658272895389134864396985308477655431424693240878052947090652348112421233070575471056483103878396983259138082617989632374531586089186660480098209387677453440483034443287703082614075756692446664153917506795054809292235911074420490350540021104082365567954745197748303170754309290209283087042080326942512070673395423401785010861004500962296443222961956111578107067153267897626999172755311946207561597721917640473207969885649658407115995684952438118305405607701791318991248062021338153924794657853640598163677509868379171318893979118517415618393208838131706208508722620030936691400402912317771035846167761050783936518017044627532999572786956657723808631814406762260885241609497796868766294511424960114616679527035076857579021509963793215030786763444244407736026762172737651325407578300558375609680451236322358606240580644908981878756369078125186776733204230945940898881512584101084733818923190588607156691068980645775137017704778034678326960414894929435804039651979650934143481496915987507484353555804885221650859554708508752847961350599100330807193151829286946570888516561652541550957906569452719162678857680331243397639759772437367225571366548395974589855260806278563378757226128565300888673227899129657684158817842488974707961689169323689051381616587365146952062039863369845605657971821753961417358115903909323477083467112592165937531779207800417442431936734823594208374651592563264977933315602042992566252392031839754385325107057598333529891706657050135392287993070870993968234751110040041765945839117250591039551905607247956801391503368666499661342846956639013088417633781958059622321183269593349840531150286831457012298394826411931517574709155184449732686585198029500031454849148801974712234289019483680319440226401615120827453076687423731130483389537386714497813026676007031838974427773839421553590933285119698433515453709076701089110654516132081251708413889819351942042608992987350056224586682110897683923612398773160695149486702679356909729841430027909975031399086278723736098099618575044284006759514411117461254943436086939243964370095985432337189724401277828508403738888269569286278354682466122130971933174675742162898247470008448192033442942358855554620195622186872439855133795660909595695485348987516279150801591187822645541935065092886876604653531770583303386826506863597893778967971092421191181722678116798459301584071427898054956400355933143354971371086944874571078262467946407515625403497634173590557128212546529479595650031576071693601643840779771375344305694253232974070861793849292837822043072658417731405321068856263832210984386486131647199289249804752196630983021619787655488841923243151441508879713370208153409281070874175795039190846830380567264547834077239219952259022996362339749381228699392523035458979674242095175947267748456517397870064379677355943330948418881829005379158807076346954031719121344473565050999619639034591961163419892986046948107351828705271835727878531041508442807305929470728995797292126647541999595958041520326342410229602914555066655096670156137923859330356148577744310200632552447012958484678502817959269260270834098218111443235415889715714460283030009356385299550268857406712849416005395415624595781121550896998158481667345822184263369391065875016639207860406633139200313775525729580037184413040417826402748712046058559543175966585405676953471058321407757066640041576326561904765853556428478683316693786561488238598112111201282311273059165643113168391625709225587063884218591098081890110813896386388908254074757468015720453128910516679342970484641761964263729231474531283695445905212498844751601649899673960387585172476799761694146708112989716522783842996236214070838081363187376612238065613039682734717897485853993558439974721563416780378267707016050103393764851120884140395297491433252321870074769045045481533854524941459070299387271793234270733602875403906928960544334013431315121341972169379637617074194910152403524775486609162387475135720283925627465722651621272682125508340504609099755113624378110814353552703152762050609403135552610331405415943509942025462934805629639902839710441678674138900702408118029171758502590485324078048522983600067969045662085668143325407735436053012427972741195813120366408811633287044946456304790241801961381075796074335456925860546992425577143459556056842846509366536694778180657419785024893358750913605158741065904023128161109626196891349856233355150172799026887351266845506987419722087020294223945550311523181293858691261621210114027549742292355655038631367328746316072412954299357247996709308173849604874799503509699965858192054965220793067917906229994968572863350695907074226565587218168463104541553508774846389262040242105592701290335113313187682803098841524517289802829219542591923208531786522753386154355545294442983062638019827160443281574521821303670105088117519291606895169406456708443663556452531055340524889778367107461430410692680210532899168387944028340062602311479970793393354100785053345369889749257452047526545794937394125232539977086331815428255329600241446950606365889026855111864037310472510027375857054449183287516959685974159563781522781356375787148773769174144828202065122182004246171460361527005040316805278442052480248754419992630307248988702495942048843278404927272556187724308610164051255044651053203923999285702403684600230451281678104912801760878348020831474541872132960729263750439631190536573920522322972852129644609348668093967748240277043087214649612942934708895701673592779167781888514896607294272727065686281067262529156811060273518857436141869058109609374714463577698643877900250142701654776645595432347410789493834643001986006393379249087904434392429818013771177242211211544331013930599994039377779730598994994318922891978515849373666732198342510045169778237031924651607110956987670124509201933939796801317585647272136482723067600049877795843427521775955333220757293027765784570369418034559887729591430695079188403194806660258816828741011942127904516042984993165762930037204905015809375608392024230320022318421760871219989133812333395684549139650764156325966274111327961275930222681659714032674987345891320662642463990637346237027536371486341648299239055079298916566709506718724086445080391812274942570797300421897144383661666532140202329388337340211183157399209561839485026520183691826683928450724795523557322171216201839279715876057921740770790469501670038565453997150153001413436401544272172133505411422406957896484949115049466876790110891283622643303830540006404147484599576401983138469078828327426787285032137601648456235484364562211375830617246302755022056583342775179705776868159637535122592682987201560808058976210202161307211993016138567367507334949597173336049019395508723900555213137531192629047137971389411770992321055620796141959507857074478389189819804097367008289161587168104821847462531864577857437648187227090815077078468573775431162032531276176178898058041319078910796799044105228940405785068576982724489307480582653594553707042948806422680106449255468626317902397516526152904962862888820978225765721191896560547939724661682779017010104462489282689544222782281379119810346624402470611362129357879595965436004269883652933757979704805527006189856758149874152213166068020595752936290882747767993012234363985396827136895158529498630424690711824744427697314154869454388659103948687680540276793684926844741687336948569051359685273714417590610431217604610558802629052424677760836756379848849322617500803185584937439724596734135618116689699512412782423756742513753741959437965806782376750936426275969023990420766855710645470052556283689919993423572387409709394599484720719662320215788764964507976639670242734461389660823146760828976634871572206756159822379862767951157284649403134767713405364164634115170669454640599531717356625651463113361774413860008671570426340630623238148734050175276098977645621515371371262271237868891233337780597621940578372398045488938760911712468371968590043978558172291095901029904860653285596497135352670674259447228058224874057992153461608328199106860069042279858758294407040790486709452145342626713844710947435698436551354323422895338898456243287392797068228301484163153269672606705190087240952256781908792732084127987555905491955062097685329736995315314876111822276141198908609923116275838286887342776507728224415634874653043588958009793183879187681440956662720908741418811151208010312042085626210760131155174729400987777563131478320831031395156463798715607462331224389965706379029517055491062609506002338597551969352265504028336376044218885131533433304750258738427318683700199362862064592470890030659547642611271690489713665663645529586516416956931185645172794985596449233794493623803195895439075604198928780198414972966162575722734034919958288193085192505217163476166875665361580674937879091815439422526587509829457729525213142281479005058509096092339694732973549510094807736803404381567014179065577518913586934785173719285370202182344098163600737514432102602615091400672062992822684694164859649661943803678914361839883521012883404236764866676217348799754150678255520410159638652804123125114170269716475327288394480453046747609344932850796112298305393579480606625089859927644100036004439050527895304982677350346654678474164476993067081626127417099816076064314714545737445076151999284454302199665013889082282237557874788209133310636393610626586364902241686283089469580866455664373668973098078473166605186391944549381657941838301918195425029881767174774885280720424303956447482978908141013256809355370744296051917858784494294858782258443032480681794202804006557825603507266573522934568527669574715370149245770417618264045561697432663067088822305730151227060637996296418481697946388119867023625864293806968209724912230237008838094126905772918043521535946949382451776617793251285774635602726150838906259079539866075248178140157319918052374091668985148175809800455922029385734077440384330700598903929588199652959069097452377692377301480770869533051415112473705454707261614574408624978999656576247778924250617620443906109430488512695062277816385369246443946986390351046736231278851498605662503364045095902212081265279685388510886691975267400384702863340579857082446318874187491474431855666314649859821857248354144500540161439651440739943000649750957788551682628185943266020030111228255172781368070954703271505591634185619056562387522551367678110034871359731185524963749753122839659570516858205681974622281493449970961304046736486671255288871275756667027635005484019190654866430035719772977826421120788848665312966235855270598795342293433578233946765858438345562572969996295449271438365418740859656619873144095694673917218600198202790185202725977162269992858298875052104179237274757093154415450192389436081336702025970539779316476105467575465559493601789516476818040064101550313205272772488183810020988799373690232365321301379230130054161468397439415666502569901491903538509365867666986978192185327920324373945175661039604983791506975532921255038624711171940417169547487472301329017588523102478516164277275275864554583754002391600003758898937119124862306341716666633428728962798247301043243791981438225045528100682144210943161988803291315731607962214450253935367746662680329810430862458185863131095344374346420147459260942878185513188350387694328672954892394222186420676395189159089338102201206282269060061080244091072290025811741902492985674625594699987581439355078342330657663630042061841062351722477541669761056237911237732795723228911096821154910428982284383827999845893666852210285453361294809704371587573028292603993729449806715376700253409234561953521813277979468375013728293502769412375769073859977158089639613455191783894987041743476196673141256154130003354460999853190125846860502486885958713292031308341197000013335175561744193977636695765843537489835967954202316296677528369583461451662141368317215483615230206822983014080571529427913586340356836559386234360269003204094562090881639924728872286843729921842205945816332051141221014638560798434323797774376090871597388562700625919330333920885358366351308607897486389120332071330097438706286494236707389117045708769009969268589067799512937328660261729085553935821847512353467670631080622883263670958339558715326027962243865074007774062749956549895495572091195366269347175393031505711838960274947835248559870188578103637863946395714939701493207861504876437658287259646099258801016543549316993398164750672643473393839602510367060794422358580390029449547153208882088979847382336573221057668228525368317325844234686751412511823692492022162614215746262304012647119647019515661893473834188967624271134430928978195706586623400117398276582599515056535896098566791662179361489944757417547695543692748517483860143700726832472816427025015336140717031648249865735466903514148648750701621732940205834499873676413463005969604290827625229981190802050143948721022448137588561129355110149900003074781108006867745314214337312834108564889724629036645763102716818377343431484099026945033486956825519542243395725604694045329522939878861221655521552686637198369944323080422055508527861237891467669254521607092018235774499996581048497436012030559480168266219154729183329658022619683803876688409624115576654742262430048257848716533814435135790872770825860565080688406506961304388305745485712957974693363270747589664231015945508316470644136975957086575738684741968639347330067019261047376326059020204216966074413515528831614592193487945048735267255973981476952801044408250943163260477105355236245607437725198709405170547404241967059040298911974094484661071760887083645903271775460291559906592860911326540579065579626127605558608431668218154737912766443712090872929987204832877094759882977204546378386412180735248243911346593819886557247960054553929158333635764510937628087797610879178499219921481569885749939545766589118405308045892625962697210354317457407085737922054377803708133236036164563097087043364297473268542288280930475058186896879662592931604570982191761494601367246458622870201714861285347532521028772427060257143188597507736267382729836727185906895406384407516334187590037999509989480784081490328371476332196997350329944956307058567572398560380167367295295390968662536369380777468708901626213222647014368066786417539961040685429733040102915613609514499564542868502411235787225144207948247058753312588343380245994484096188341516520321531176587768793469667294165946849159399419615113262378846680981830401937001197744769703008186475405875035014076990649468421632567562168234110224750904619295976151594985973219776937286108408399386083830898148297073593408395990366929164439050067664543181552536671032432371961558740454158166243001075766615711105795909124679614234269703299537279861433008453252834525045685171651362641816807693787023275052992758466907200020346415234116409315579107249765726008720303051604407622099127178531518143967761436148774634442550190199554330197188066736026641983124434777974444718275511702826066326439502502825334506001987243664165042961722647267764615874903361030473038430795436174040771092895401471776676832472424669664555160816262734851039145488553387111010599950526673903900591179541094382166814019564956135140732886794734969214405166724333954268905670193971391105749446941990840473357414648283052278367394137937809865476011287372187165058602315020911776399303085900037900411255604514673364669439921610836506428611930445254707881150461139389972721357779327215694200678438614136715588711387548257334007421464775202757661619120333905571253544385056218913018205527015235995247825788760177165830616398958577949241626870911561890304141409090831100781067771991016158186696125039885225734503934423746452902217771244713012788945839519827970123166348694356835829240978457632788913014031617886449439187004843819486738715374101735280600210776367168728845379428254225511699294976448704492793815942592376305618223371059348047665361352964972523497194561560122865108999933010573595250964345874767501754468000374792323968970551468841338025046354289334804350576260749552180014725943555469947256391157612749170941746900146698594752341573230585799846119331768807458449319017142954636505256690473329048255210396596722120580911734929690213164674669524695896926260066049111463251752175985359142035532811174244280164978096385976418156887000339437867713131905529619825435703991370256435573102902705534843640340919940463701674384009747121968589054973715137091732588265406046710966531475537986186989037531967423667286727083979189957197090612009145928245160157563059438391574252824265960869670983160852856107681972661134202350698561906298153953355502093597073365276455761136079054049822582066278478839554612888294769895709912232663403198739200804035088538726282600361392054757418625067100175517486552972350045740601523683897105643818138837567868465207171916936993330948020716016679402461057279351014959706029110252484689764502674892121065465266814049323858826495425157400291315804312842531446872078426175153893882653146862814533244400722560406677066736617387724778529335332912548319535718418314787617567158901305275055085468827561549724746221312463169355427643923823607368753779957620039251389944457918108977233619271435912532529787000607462862857657738424784832083237125141574585358661578808769559100063029146738974159229833494311197557895642604341755833004258125020278042008500986320205597983196063894073150942419231803873680156861357669746521464245534406789614461621354877253909214999102252448696262895186440755180232486616208367723961182747365856535979726234253222785342982304284401615123245255323303165292038983454963792555579491533065982138488475387832529503079820488062058730482802990322175897166447002092467070113366726422071001057848787093071057606034586266955464061461693333342405041519426396212727583302569242148535629631256059723679002925712120103645979224164199893290725619416915752848363782469217664473890974961209594127636492392120151076382370420716229867506269918365844019375197207466935366152851286511870160849450755738894808021158371486132636295193086474295272662990498852287207571642213435655323138369817765592814895193579548259355051872311127131393356465133074828365017633997721779860887181904853722813674385649521822134860568180734503897535541153966059492898817998497073455087550157401331602975062140110438892740434362593727114389029006692082449794011508511141827968464180093013598986945295641330690274971945754331188937404279121422700283636626342328257829373265463376625717494623267109951454520982435269992786155660222092389848939270943069444112335989745521779089080615785513786606117370696376751929339763136961900366471845847483527751343105386109697872087367322705433863093394993997036219259925672122293523746313146373104923542308060087399754739532063800928018367457244281120892062496933863777100024660989319486414712459949467309610638541469294315855852893744840203249715015081040517518129433515501659279692828710076119499819379222090693998222447392276893334592053420546026127863420059808738362238760279538289940408303425343512563191634808386861767094230902816520945864982883515168082174415986136677913596109471997624777735382860871138771899202068698561935138614864690817936470787608114610297983805717132112561847923839094447465515117386242964716952457848330326775770500232929217928400827022357790420960039981313238528351428763064896201347618626108610179687246656281585064832467891037483895536799845047307762910418247523183465197863948906795616727787738649142306312231976934943347200227284181672139459692750747822359544214198571817694869247056946098591005291182354373392913573068401466817880520510624868190702232429320451947645258319432928811183479056350805797956928717312389418678401561262657207732727366608104127281073943878640950963413506841157851605893250205837631567069671878823384562284413135034567530303847832936950799100474932032036571577662578963227666376634170315177018493347994470917453551518990426562395607057204842857115641947961871761770762548983750359556864429680777397868907320689792417415136903135714417977169274646155881695587772964981932809357438459834256835684151648768189965078140352838954228237692524284008902766524128323832063199787192737834820252059229181303418381235882853656524847039642156762595815358244648808906120529366075865409494614918541278332838960283579798270483145001891641459607376553689237969323598003217421283279284971895115864180557333490548628511731011983370504270371145500393822953270384229907320979954124728674329101909952995295294442483338512579803098583347178816597109183413513930935533287192119923051955480515440540750373156762898044394740193826392987580747493115318035779827183975157321639725166679455912473063376556323750979223364462147877473969015867430855826618434630151793982032742657037165988791918603754678817086189198600399007709620479908915859017067711872528306514363824528988154111524077470839238793501696318991969961291184896082801426655577424702874628975986594366030489801626740580381601799454328961393070140560083713450976172995799064213341893428603934923286010229571459681161877989703820405045243175328970185435579813389655365890194946205607031166836718607082019095240088166801308995655433604654015313044796119672390364131586609662005496284286350367799102173208773015522405238943718413129598069011295976848183890435831608381755115272286194476499341209643860992441942072673540513649196458408522385157651813646953921567729338797051025941488177906320608037236831610967879548876524435268337289213215318191676904185236262327034711383305975209447997867379939095473497819552012099909485513760542793265005251284781799307123492810625330996514634943016716741040350469238157409104209155407118768355077638896677206011209451934555434524255063447047196671210026427829809433867487856560660984989636529466905680957978620128120002259207302931309750916935657873446097785642019158572967241922452291607440600901724620801688262850382609956013494346036958085297006076982472716026041536350722735198307106744151381558088717340246923811252914388771881258917708767565778758937485109840317298560156852714821728140530146782670963391354096964292674200904642980584141315140272913984745015655651407773122172598449182443419349274396092473887388532320604982812279031428136757452590612703021266924908839746891849671653632516785145586870281935550289783796053653600106668102772196992997567137360647125953855987850633279841069044748080639131556629340192795941927187181590142127305698547914310378099404256598921946298287931515793126028815763720634423001706735037446210679804652292547673009963320853272125292012567980573653718066354802661444810157555146556027051095486020437824437417449800439659900317357506464074875582527053350822587427543849116737794965243214375393430800144011664884235537512101510733625787766718013279234035392379818389238633861461715237277176603314612573137260478194241861662006827715103118822244305790691543271408944069580542880113843711119821669083088049969679201526405231327274478315670687508268770098897296575627686500896988762216499112213667218040706562254673562391725325084723865512516908520007292265266368439183640757394154364597819800698668805826670593248564634439528305022793092477164121580810545465964651692219206439432430056243429339561635317603029441858388570835294629786752904065455760965847668331065299266076146652202028070367886700666326788611180015367038558360185317223136152561707363323068240709741062143267173744223935410007958187899989615944908205397705981149420561008063874744024332305579365476246919876351559685284493405624868449864861409921869652862455922163309021789623063427699073316769235427476643484323931789765630769658392654178203473340823518742694910854364778695363499298783877843324334837343877550567412644344524503685996666538145960618961857238493104748542946712812385272558026498654068318868893723561333813040314399032763573091432101489366121298212896743865210748198612202389361292630172009313205988111507380787618532563037659782126060401568140152584835691577178260292629557646879228158287487655999441648422048137724813523626219964630188861538071476945914308489367473226795236213517034487766065980699052082101258441854690655632428304940873357607657683593557009995848848847351926400015653474663874262758929959612681359623724459848445451958838954427674078911330611089423561751827591784443162609213657712916244454218960703303155031625931630846066644742167005612229176894664989631767353005974411905889720843439693075291281744276004718042835241707593169119891722538208508890080519648829815160437140576039286672393358530680092971868308394066243297214759273949035558856737937854694010326821602816682765142500756750088618327803675730638277948849567858219638298748877714687052495044203455817006313231304174179442083830447428068938129307209334606596132871106607032351020734960390710440662479380158887787374535678055432361705997618549572201061370989390152234643327071725463138399994247003733252608194566404409193821744508398601887162048722488281468741995667678332878038321456551053309601884063022416404732996971180186204513156313320867392166716265829252305578761630530239116788432752501295509277962402483153312573511197925817668434422221816636165888655750621616906425115071261030788719512316653465097609262757852769709147192834153301098438293760318735903357766859808557167204996800151399132280003099150555957615504019286081453866807141312549988081977647250477154412960248604743524995544407845302673424640744890328537386021965599068837878061145029604782271802795668666801464679916403856343426612214705072420543818769687989812508387671046331883357256583830601789139152979755583496357655359937989985744550501350047427190674926370921814870972946045674003670636222332849395768030686408576034679831133946229210239252504220824918035150904711690112600583995428253610421061438170192982082995802987522497591183562511795566082198354115737433939545133246237051033577724718075949885474201057510228348952471942970846954771810757586340550835228663878061567993071300996326577106587679927193485485321754037785990408554608034858171220566054940569101845827307755958506161776340051967853162672987034056169525847738043790457077459587712946761895831590614217584458420616689181286969186693526747144831177001466575707215866600989576317016670728168707863129471373506969572581865742699952283592895527042294736355356007194647503113878200787318712215557420965949450568917521098084874758200880917330060018148069421052125752529469684754151700729808007203202763250289666005778115886138055057033928787778551520276621799110162446388045180115767275245524476784825793627073261798983619342106510466828783380675123544613401109927132602060794298218849885872643494189610502028686660217988666316374015102941313685546628988670576130807112533788783189757507561974781757080171115332382408630961148051209163264816575144287690620131225588227281646311582129181480873060220608069796592226749380027672085998710827524585338001147555897752243759000094345814740803546430754104916805197653653395197018686320544968441158172098400364470844980696034602040901114075566376930776983869327403676996646494547929213320096945096738494101262339581559216401795072760624020775065233739606413865003628682162756751491497789152748953300625810923268459045754476524074717169532598826945656214847138949654133765742685432264100711942264929087463898962979461087887202482896305762846327605089781433695267734065312037298954664658650436429561445811613450986863000845332997571231829245030569941997049472710498799079812553191601453155956314460073447717005604382375470645324834098793760557295163283702626149306733149566014746828900879197165302574694771139985713987699223026705267356252532966297012807559011988700991876917298967404178343780161627308960000354896883165766194661427007427251864427563491065190959048282828509546023323869401726469230375514009274762847075464093597208801892984994041025915085500476070189839418775239604156233801889100624324980709634586876214879153868337880206804000698081082116143218287049194600159641415092510253121254187671182684975125434148643189983565617992378010710283632341863771059586614486332974607301588242600815818441931304029749078582981853048647878843532585253590626517882380858282644851352276065581107351211796318018781913154765383036488236542628824382683006600512363663863648608687979853960361742123470352345836540785094394034963395566278819480650320126745892277344938350651433768087243927350188033261891686005409014865838644733681021184281254863794510535698868031185967759766911526076705856017213364308720057067081357549722750626334656018589038231546646593314542516414367495667179666125236319673658672792786867342439607013101287766718009615310077531767611671773214575507416961859755711989742104465570292616193222023835753782909724327853355244815126182309611718783827561478271729091134068378353236958005965165723960658035383317140303094796868623976477890459913782935850733583935921191363619006321182244765976865322831980287597822323332474706115444882549040366927470083865958476404590474059569301015156050377148766068015018291290350783857596316649857917583630756708010647558500340243692687220186642996225022554804910407892143399577434669155233455746876687637522953549456544517335720560491717311281563793195241980697246073497424897296890444931609707622534587543293904600725408639228854322781881571147399643102738657794058166012450268734483194453663328699357221989640071752877747853708230870241273520781239353528434774339606034456968963220131326228104162455552920224123626984039286490775456189469583280656210949527856539863156482480479347610756600386850755895431056246632185654460658908809837826567651007618759215132426662056123773627299045499835520963735264096500189315598082438447759534769176282789507798039410621498443253001187283659453438926726909107094966428304065898365408344721768278486975719279807182802796389697645492323296024110489981006810813181472812692525726123596644372046246113434725022278526329642965548442985089860776505241953158905739779879935068152685343964805685745477113302380165769874969345259849094946405876375600049904046522372511810387966880112900662180426196803741249592760574816435728366278192773441834207847165326130861234451165401918804275355608374241468668000515921927223446613081227804599559396632015877571110007304008332328753431487503961644954611795857195259410985620032549218104743902688964450351416439760478579649757423664480998287624571986487074460024967060430858816086888095305891393417092441735008160596770179650183279509078964358897655772870067296992447966382384113404014928858247029766164836808596222420826671698969149404786885970796202897048282002481393977670844885297612419934025588983572089691549844980022076547760977687496576708268936405049944067469052217777373698571315700124791196608160517242714578977409070592076732802580210022392456226928930599306612780130715966262336062130309481738559430624436185637776768710304751442617548111136570703716946975681590320651875521941437288187507713710977828976816391800161771307984333606151681706526606244917193577692587014344433684580771599174219600790843510390255974704856601533864315917814228753183324051636751357290115008384574503901672567519274644760915827472144629574226829069865121281447937532764114018523024267344439325422575697765851646496507048175396586331634994464147775526100518460757672666027891384724759986270445735279454865085173951368493430538365699390903867579044284916206755479175637281004161581403796072791311421636510388477880121380958244519015400436145288962184950225350241513931855744306325034523420932576198479587873333945558449777077584203678218168118855069085184389475290886926682957486845257630534783445080622715477841181508220653271048420200139583234134922338792641775646387911547655624378999045315322137132853396226146697689155276430256320580176715887521247186711625973535374291660608636836060731924262231114822151794253048411769434375951782733813340668747789875080949227851914115724939702423039046879469290599042412927341668416505746139190485949995883279601433704254753013191180418108697334780019655230720574933131544524271832147351675334380813811786738949932575116108099815428170093531686643988688183386325730305884384599131859736099318037218184730614923755496492012340225094658951437656342493382514204719126846508502599094027746785875824656291359451496068358111319949973687917795473162249496155617544386899485291432084825497141895372648592695261804755755891350448025368430888190904047069691452049506552788161973918806139226885858939850332050401706411258367821659983075469605752144748573666845519116580653252300671988006781563729488085223406357007451838506967124623291968168421913090552051666371911393904367992271922712316947398237580930720132245717814888736074556973287226665101721094933991758129194903920141461320578069284954091370408461938601919472882593324922325643004256857461979289800131948935681996106125145921721401791665652737672016175549037161749012466165551774644638059322988324815633630189796521011404595169640375347402114294679160617228796578154915945643731236462675504807263060362383706045457092517785091360033956275785954572990652011969945981986019170502696840629243836265110851944382522522115010253619685900791966444697480820081388916612447947333226811013838736962276478929603160738742412750566107576774206514379310133751698776405438335276794964465511174332416960316774853450631803685382426552445469081649252453594140627136914902159399427218763826187882244319733832865656285306077449072723756077161174614961317677596733066504589433435493701258741692424094638670713404996716520966056344207442780398208524030234035049209249146773420645837545650334251693153690775742495119229486428744743489095090266824646308025692315734904765358194738035739467375421429028489970773611268449401525729880701230949352957134192984641498275627975817178381883544973461339305534078465563728930811527731181346393918965392652437064526056435495285378423670213091071393266062549249518966882443874533654420617630550954403103964072050509456076040450163506677611154655200043338615871483982398897368219971418456996799331656812656577507753078755966640771697074328463417469731307533390365744834631250732601658445184108345959646217383666511968146785330054277078308738777220038708280894573562264556685684058600240068908084505283935393570358879724982615826374842043097236952086745973027440456525149775553205453188878047822999942636102645786493720364586472702438779084770522729404522839736723631557040355765901298747188027634368687009895537293123430168857989238776394363727978001999607138167670300141547494687258430073843383904156890470491140996738508596854813262946577745787687739328506494888533879957203122520547954424759023690882261589838775928085149294302561303801416010394675492800770693401844022882535587001619383122430875291731147405242646395218919871877206778102727750681262560896858737711395660653451236098080724970009755870717688374012035969790518962001260636308668728807474467527412739511556012714056712133090381371923959175308634545188757843793664857464413774851204968647780505610564640872854729819428650185830341230078189451717313797161740708937813501023100689807090214200503360778714429849832200867015504568508836585911902292761980729542559602138217297153013484921887291872335010628348372635401689763816502782224934203925540738040394546787946199212814843461447510121339804308543495192656747244728619972103573839663538123469080922027619901210892601385377118045514927360856872240346509618963411325257263137602845166683207406445253767491727204836399587569745596799964604136460805567367138809931165058636291023063962407343125793537341141205023999359203333858909685506668113803734626065443738051166593587351905705459902506059077059879815713523426727901813428475161483686802494041141042335716793852417046993206222971994794220404546188198794689329313231348827758679249016041406802510713515205849422928558218770236586627263894532725111740136859910635249667985383923411729771185858785841745792857207981638140255310906890625134312079233542491611146055691849078727998725444356626094738805111302570677543898248550554349102502218264953432338162131856964199633212430454613992035960487882458615624100228397818783959807137345996984629467045582061900533984140292409429284302484996563396515125722047653219865962862197375868291470498443292624392919331154002000926249842504054857704630725600598285571434429861059944810816532484173248701569408099070564593622329045039544099880132206671562421908290923592212512224998484765067146015981430819860046814142858843849709027958800327062646910911572281753448586831142615393141643636743148366724216716882876595270757042324653377753489463972301075717700447130102391627675998910577463218246229953362595162038911762370600942852099001880059811098514482405289349956911816702655084293240060661022564877350023361790027077462559392525182924036339482440076748458912348865134840267314842744926483075852694856970079331428945367373362064551286540608947952557972080011470255332243251602474709615530866201827994312132396090970915940910017789043641778673611403088615682975217025917624131604118491596316190103803527964272419611691990529945661291251637314095313459793068625390746630294896890095122737241916727656059081499602901136869258402143500141114226753661146515436499570162284829343250475254644571762159026205077434588948268994461554971694886540221418807796672463530572872586383889076759969331569477490112868230004129759935205373923119638983455740694823379481230480370179994915207346659802628219904513358409013674466644148891117147602540753113536490480918864216192249207465875535933664531633736643460923640539437922271542799995899280719410195490063150076123681398184261489150031177250624032758186433443349368749306198944360145501702696820258101569205985994874991711168673391147039986946891668026638762891273576556171710747254377382929897349586362599432136110455567983707294131963042719960113995866624601347897398567488758916218509042749609632835177782231058709386902180301456106992288728222436674020189646117270299728338126317174571410508226544083040906697514469669388482428270391965051267615985744043504840486454393738481129599225533231737147288115739588071534275236576408195494441372236941959627548745497736509992946344830426150099330380435666550132633067388307346390875298528455711244836864798674314129977525395039985212835757828172881152732332842643754188833413014039402610859489690819555752043173613525278993075307964244046387262366197518625533381829722193142099625494671783897685824149750198808875324039910954408802143847953263134276439886931762594213746498611726713259104587005623296519341547609192309347348345523697296343200288698435622104053952342137339543280323089917810652087941113745937236609242044090608767299713427238790561750917623203407423094714933780520038961208017255495491015352212538342043676706508694301874322388622703584613977435632266092634635433318921581297949163974073259179484355744671059831650907512389027635235729831659749449699253734737160115635883634435118412919849958615595297426486763793496842182381355329425487543115308851887430796373316593619856373273165753767982760876148567759226582416904058289400232952655739232723519040824062441400394372278987846022702678735267808627511090123755541343231622985145062533018692169799601902071458860128805601760956399184288026123088691985672034608705068068086888934500147450079765144624243393793828151795089762872618746207860436022170447023649317610664112306424705330943717566454413582467494961489363331442741878825382613098042862186828887831945490605555147715215834296650099077355671277490525938332178949883417550155745477347960469871394612938054539251500890278106060356986609149617524361637538665857488824403308924136916710333195705188382166745218902230970187764419031487024608289522704631261399448560194441174888089610474810235559771609062906511016065532567817624077988981170196408035369348112495075321689166894780782140394820280718128054461450849377627235755901964054348117824485715221387507650548049952077227067942164891075589813266419995900402496486680055773845754978203497887833299319874888485152653969078212040310637063545060803944873978393349289976001672350183745824817356103560496589866488840148763237629435102040532542573570878272183188368430367683077327598857215943062011080750658235165454513213781748930380720833717607577757228591743585782424279500743671207367341021727617828268865687919386790294802040727296693393093037188499420330244596931154940095024254056309734152439551121510612856767023580757738501728830172002454689238262570486387866139987717114756379724699122757907085851286032256594351252742989003653108383762258549597013964539446346775786128577259567190892719138158388603230791816073661180295813524213449612199272990138403738167804562696385859744194598612442878536438599932278611830474950602071972169437647530219824337972235926736989226471562741281496050045285041187585887711503245229655300086294798247137093492566478750838033799741140831964443369088923702062464967110965561177648259636593002138198379350486634551249151744277182681743590253294573935968008127175523861159169861052904695526463440091544429476882826965168312946602995566019700360212631931842708688761546350552212795819509403238549631191672813107600865634186217592693710188225985735034998180425764911888941247857047596560450960736564173006341118330867130259602039282031163530037783890099579839491887792880521198847015868401889934221512441827814132768409921995656444312677352293940311419625844382193192098900048026320507812013770174183767584388883149837500553221023119111807268621503058971083804286248416419489881714159184565421656306497415541026979193198565249938958289410932152947005598900322659215437830410311944622359732608663443583288911499057905326882749270157741236083786510762459664253452431371824669823429554386663762348994245492818681926113243985842428388748489546998830495755634619565401379086823948067205668171129861687369458385917455825770038227077048113882309370449497540528575317341212660078678162392682012572809647028375014732925072120960526262237434908903286346542269644544819518201589068534859393035766231760359563942307439512573868960507751401366322535583554299219529807586919962679616303003841125811932657025370648960700353369192287419941989642618253715060079002266644331502887885685476924332707047159818937300862123876382164974112411844091785267496508379817696952660746776742483176158634193004732023138322728330090755106152147171104235619121557139510075145791136454182812554111634895897358418851570986345354168726753540102214737505537580582943208422994705795245086388748074800459231725074970379502060287402990280265260704252993273442544520770257687105521547708677418663554667831899195212990053205799599500636340289167718493270246480130186326248369181403003569359168178694685538346408823246741730926496804299121685822177942308237427299803127570556943762492924751528844162104962222129427042304274694827139882797046902843300343307301898118202913492631611904030721669799808484024209996527534901966733704358409113311180288712904068356150186059246793937952858009163256037969318911251064432926546918356478202107274554481213984114411317777331767759661967138394036297125535452107629061909030128471306867364951969440383098015759925854048939206628022392568702357933008954121459804296302494798853613494650536298308841318146572335727637345352483652774967482890998637747874855690754429876017818119391036287562712622337581232004086353405741622560311870448166646914872596532672199697662840377805409314049744863514192775539681096812455307591445476855530284878799647653129366109586644633369491706824038395227175716440195511915452186223259010490273936715581150951332279828497799708656173996900728932484272868726009096721857457683929079821102515556998835281262778638040839268881068935853142244999674273610361779055350352730028270649109068387918911571560585504867137431853438873396815948561294221869368948516598093596833647278734517049193109811657305569086303030218591072147965798483469347763787133438060155070441784717463992416601939088453605331118795589885777321623964180990362398850408324491739147020205034981356117289449212604204760330667136506534286359479752287963383863668726973501514879098164768328045182541271053040702168275242836668415343106077171020734036270133728429216884366524297755762091252861467101773418541899764803759257540937917745452206308798943209405683705810280402446422505634405828964041581572239077579445481761444973688097443100103089622570091097413565950411004609928358876108247029498348697263109047202540780924872500711730656024668930536589535364304208231478815603455542908846056081787813497924483002815372925792418284151039802536589105627339211587743339527728720350201726158861980844811559827379838769009541020053342104222855925035694492298325769469409886566052148756285143437211817047921045353943033598407458115628371796114758183341068981866055680104454518004494792666624158408364380579163392927635082429794701990276194406011328683465165456442971065086234008584244227313614877333834319727129518764534131810654801593268650505316060885933376541093955922375452212838936395001730460173728092027861943712074994782679291659644505924337715514583812806928803400918556446882175849079543814742596294533605097236192437028656256811098693230380340537931680257322743129720366518248446729228818022361780813330350365279714749835106605318014954882658797106958267917597977334547093071866433033700817100543489181631584422256342321650498530562164048718378580135717199606359969209146332619895070498909456943995480163541414492145485910729992726518452835904805807868387249411299274680812907528641003544495808235544567413837416576484099251783415628607561836308673439027814665119167011991744990137936769914016069155054011420882760401625463055364925885970605932744168644788269312708367099496752154568503519525977910068817022285290783104581586673669147214012973889394634369383450142517898884032495732029412508656522178048962041776402820774737608346600944667764198661244054249742346982950953483345948748622698288484697924623557359713794596398511268689994970173397545643919989149790046590831080873308687288790268083362808433629073988349555130337537901556774406449875925499196696433706077190268304149670796873458441557561944045067935009177402911000283594443728941496229177407821754145348518570908322057124050615232590925486855350055829783281256350169339275369042467336203859301736655213994200486875662978595856030679555232029993725467306051656048937975388125696495179319251964618678650069627951946595051939772264434502782766594208765343422261462968296851968847011378907446835501302477806575762646030073767603249701586485657703651775807838196830403416011388436414179742261112573462893308387168498118568681507388822780742382165978009544866530913251674071768332053237691629215056171954190982113098736892381758002374747154859337482183263936448840864361241615651958429482856609757579710110954098733760886776718921449121365299059432578720541374924525514001983210128335684285698188877347903104916258669116739721871783207758710012418254354202081712705953116920210960599211178792645952198433224025025825974015558450149483478465257550193901195160265855969405272704587640442378463750968888247679066096785374752220431574389394177422690450103509645739729106230509885875443226720081204136589488214170849245711241318592820174725003609783399403552950566721581308428564938760832599007301224036109549604412299959502470395521754461822343772726634188456220635175979768262843085651124905463111619200292013476590608865430904106351358155453192094168520620759702366991670691069828825391412354617873845454709232106218994436985795389467090962704202646420843097204109598457872453006893819758761185956965962044611587670138945178412147889021389761151992347231574140344822713594444203431568527868812420554801133799225668512984295429724885196660264355804739570180280071709870598793403928044042358646602230598617876892748478370436743330345304359877298488604937017699616434138327193982744356880800970001649665303116609754835458798432785824932072974155727364999108615822459751182413503507169005216945716196060153480088742116739540370168167885427203733149271913511709262827961134897260111375126483715921043639712009106507981402249090716132437645354526474199328693931435163874364268030892369812278165270472135493234178204247944449595369875714105800420728712177686375512871762271327899278660401604493644957399581564357484719314801555703891046222587180460423301371655173165539123792308163011744150172124825506952244065325894891845885123125400969145106712462325343135100182475756011020810538074822921837092496882101433853490688261458649077112430315386044079227233036544482108922945449964474025806204617091230511707274984972815661675664291141390151328405997968134696777551715561672952383107925738566082429910068518276431621596600472160438051041949696618106963943954909873503287441001877668367175027714098394129665300626136080371678046756832222704424760996557469532255615778850592847079503353352104852423403953314006686743249704788783363118939899974494757856448804773822293986526705188166948112728969940748671489610663698333170893733594950154611712908541946476685929315333587146943710584860725060463962473993227902538230250583158064308914181709703714032495234981855961187689816642878195382558501730181664112554967204404791851332464464127814065387468029303538399983349746574182802008718088951093022946160532277429493007853864661228704562937420866138086129977937902276271407983548661016401942527461144203042138523357855465087074949557256389570822549366924383045643314507119176616370280269659070731543636568250728749571605359188736532015489835900002103833862489045368609207939171649814037655072570601838060402510050938149252496739674554068619141132550876844006733023354446888745056445173506459043347169855587949569940717181362566659751220590060299875406476700539490165087877052189876696945234128633193257181435967974179701665451881369437381363650834951573471554555644853578873170825387676402550386068684306659880523494207700255662850470571959334351127342817090242080573857837063795931919354427128313448405767768384259431464093183824029851345602732226405506878889301941308424593122077076295755752395066282817474512155324315506849942261238001697328461190046542555149079943829473695151025757087630603306089964469928433053767250810572339148754843348505977322889303224591826609305041749321776274088183773320660789743461581831260749933713801892227704475965099486820409611885016583415248322699292999262571583459988024543356980301776506493504789803997812374734804227570587251573051045389678140427966984717938147139275483716802150446073485973063750056981108215315730700490436781673842503524897167595532115705394522337733635610501806261309939994501946878438037448538999456194217258286018301407885115129231932416336308502792626115455104639093129794389427624874721182059208314924352438295623586469510346552633658301732342275974917549922526447224664070465221088633592984983693540835081675193025573330656898881990234056170316056418164033180045933825177819349290230463092247335595937962017976266981089513342235432879779261795030169459529124936898417811389602120135811464512932373273330060969387933297751332951563731370756438617767696589037802255849205421993035829580166776791764129938085016898145469299059081158372324777563190702454209047687893992262622020030550807486563496364010740436507741970155810015147094428252280857243761540251165074383749034045441857525451276324645810265632678042371873348302176771886503450978059025643408455433709074207936979309582887826794521204803702944176889527755207699562382110681027667064949743382235978568196276786080055324092245841555625849790695694915496865618152977663896093355036742463396557236258586528984196895621444813777584390364934686513700216977752192420227803750092991128537049694034333296145552839573606848359279335400057872445366768917686702087520135661233355654570069924232552539470808047085317335613227953763552286086186929358664177579953064097250308151537414819136800341482919131188939821563821002470709224890435874470883813199658571276437093033882229111656677156226523284869208860835886208722011612136512295801233408071152677722613115085777521170593104155300052293197454511263857502266583379104616828960369733945025282088800527024724068395390944055720072212912178565724707770510922916466786879835753258131508550046079192780773811839268504220222064128494976178798716352224530848666491805110712374528223571168466230150292861239834198700200243557269648386230059088828156215131410984202988040666957819468549272132184243700875137817104814421788163109187104684338286604755257800196948433649475456636930802404571438125974527794427590293649730160576203818146127084436793273637657168002532067323214326616777857038179138014323421337086055837121100490374315482363870590689063069538667617908300552434748036634870345667412882947179227370374046491910733184953436282064512383098540419982199266686832377257242000149940946238910409862725520455656224837978631541764670433005548952821520365425074329798163351815848208981346284347360831818849957119768257112593054732202584557232152081692654020588378004973401761369961163328974960601735918599723924018535953231265956901765008318634864874697909441377828557651469002085646680062490151158183463933867766351877900590212706629155371290941694636269652699610447407082823006359940643231322835557187073516734209530569149836922032318535454925369222883542002785467223365320486947290756613424989165031084549174632441122289517661782489505637456613273123292875786237826740405756276883330480573636415602053600919364315319859704626909610050520738104541773618700306347086506331615290273744539237961104321578392564583862449820201164246219793134224041153813476225933468818865039153088342132031140107618758114250537096911877712796469680693402413725281910260159292237043680913218326398433296677888193614982848725679582305003249003216598982615313553120574777182946299446876671594228896498927742616557895231973355992546559151520438233838212865700976010112667335606575960812255535653524323167556237279717418314232777734461553435656743159416279896566831654058165659398128758677393354781310110007945352544217682573316275571278797687257042847671885476128444620446548729431941363115245385610224529130778370621652225936120359996009496026688924405864309180701618388575291242603629344740664847173207352610260227634420069536504778160802839267334599546056731270220607629258147132758934097778687350252260591056507838692305019154238533270225721196815031014564067390752892540869679816963107093871815623670843178299096905208752707073889447539705119180682774093888886486982708661928474657891813977640164861862855807937441586496943417589547617641836123686784578824578909706921718254545595716422675114982624558661930025256504275422015333141153403409052953240340441810639185076638523450110611571495990880568050501882934449508753797137192403202784930158220249835582217720405923819301296052201711413660259497876595872440755228920151408675239364265342230353542353589542238902887104499571373928606007892028139638698425018603321088042440812606092507128431131638793265072893791862136993039298205166395303092282705087886957008908477035919591652258737716377415396138730514677721718496264586055138878897809362859317114800937445047886019485186717592891332699962283650663493735252698095842180689532228328202661755090419260613115042602522883131258732878764951107511481968659881849895389760502317473824320711120718153648380670714732486435962330503253931069363066789359658956923927627109457039088066628871179510392013749498608078339581755327029388708557819702193690605957555227402670188735607854876934392286817327010397627231532276952211905094304587140745955040046634415734891078442882427772180452836205677391916766995671406900384920623573508613288793445207960559211466980970849609777931611944978215463257522878279707565059358016578148247703542125099355978966204432388291033595933828538851330759689443337526893094520123225598190445010432093293645714708407774921337481476394445981881815100770291448615692103104556871593981931174443662044261396138989556214755987667537193693801396594869892882281771441473985480027408120428855266689843110000626006052915240191466923140104014086660084036453034522626531582045337920286904876563838451925915809750919191070238068123361919154282252685299682040078093035192471063402722116804393108159797617534656469681176557795131346891338459326012343886679791829748301830107097367841533049800610776773387444889131254729311086001315366734595859714754890523925686974022714395210668829393364627446406339326124475411586628653723269463850602485818012889400668738924478751321993733844993220812721155805546285650221918157642653857793114484989245938666700152594310774509718622694472492043621934765557310362210142992532677524148875285462628720852332557200068156844710147884067910271711163726017935524155042474336078696527981568095460170899831310250144043056171017989114257000263465038021127944266289419465433339193228769443380742984661768010990680197955165660208398580153053017411453895980672128857136530080747801868635585746927235528064068808644805289235231449950562135849255118835623898845400555960731483274141985229186693628149384371715396755526410376493739688884711615136994795900071975128759128326788798889340472478098059418712633791787209943147638666952450517882992960588463275595510897654050098403730812695094692800402043874609707364946138020307477128405869624472484646840099252081449471291366334082723489021980156570016094389737605510404890286701076513904697629644037885978439017911109331469456411794906896511936022830447590032734467496848367028476799301691864259037246709860222258866092578424646067695506776554510748071689803212298763702267805992259065940328594368921076314461396849873820658184905090322122765129019710576621839379672601832100558259095897198160572245479716024988494888466354052661436131405336900888383285939394499023698412688623386940493940065256781507539767872651053964212619577721362746831660122908301608369664862387198766523035995680671076189342709346866535045822973361507656066319898458621308625520805623882560507256480500107273608531096602761259056272225164823017725404296482749666502926749986050133687525284942487727707011402609577042877296741591266720649187154775681567864882778098177503803601721897084786766964429504370557401952289767990725986275557757904126395977445147986337213766392141564342875120553586436283887486841004250878604930130000227704219607421319222264845085419195506249055189753163177830047930151969658849939153896588780860264684867440224622471288482965499430462464551493554776343783167246178775003790334372885487576076537929821352339217495116936947815186976457965053870291531875043106287070299490887161264571965951099576746017166938920346462156658478456878719817483595771879307198182408201202347615934741910057739723102963937247988742130641830343405140849056543220132566823538139163313874240898736845203657200583277974436872957466197218293302837411761693153837222994592228209099895161740480179335169065110603198056351397888560360850894018320996704340555268427686673168042609215644915926151025141327024302982583378880751662059023984559075867730551474979701340672835689581067111556801161656787875366335368137255175043757322910241120630492189318412285378269408614603992287952786442488899946741265633041065764799274657300476262299566930692740674881504435310352397859005015565180641626746076715223235772763721447616132776311627694064466395741858051590904295342113639456828521557163104829434555255610944578188184560007797300561892960864240594517433382660695622534311892640887956364852645946630723560662407680969177447029521865256685729882034314167222862286017316960178222024632114288624540742625036510508675154829757056715049189016587870480188361375595195224407539186384514041592395986814108032668790429865039335448754385807869304184308285730858815383210686749614107125611951766205384604163330371652430139053548398258294514591215048819916038426365125322933892140790691814224562432167001944328044211515046258379463005826675437501977479829241984824997793269789345936660470783543927522395677272719613886640057304404418102395728415412477338151794886352734914936239297825659489089759214730780965788442173234445864098102764086038410366094723278534736788659541662933228257956751231912415878049194056642228771147439477625442305720280425700196022535917256637654225627419721541648322572709163812241951216143233926111954685598569189670654600374372426361767910520214682470412512921575533655872758727062293865028360386612698000388432389025303453719968976411464220570985042278965696886137600225954112837345167899173046759715797291814531991374694900597567614227839676316718618122988484382287736182141361003885231809813495175254989747162011426564539306383940725304543696022733236626579516649914135496399666866848678754236002202901134929334696650424316654774905476145953116221026042451626934155847817660500780935544311529860313899176897974655535119562676516139539410948645407663261080895718848623780883286736500823921724003716788790559972018804153743270682949072853259006222359352691751207090047457012540754534309829636957510322001666420236178083301623600663627064859444866427222336042960330212737275143700583687294407331496611844549989436393612888908120164543393572269726675818581139060111478022072681916710689996173210830339645507154912956477308514201366559339179472495124661752709488954953968843297500773103407884512382745012542166052714141069941291818304218401801493092532020310638440774518639431456213497280189532034850280362121499852631238823337210245342225062746977256382330342371166430710263673430406865390623730514388098077798686869128341226088943260250922627782149503194169934680558153590850057729330740640509082629848365469329507290450972739283204949682024901949006264697218595371598594309779758444941134621537153204498687041046603526820499708270333416834020081513521425892963228986850483179667143726623498571031192705781019145742805370574495286986923885479744694688973909409187994723230058929388341479085700783973468185821868392864251955869697382662131868258634396013666408175377552366036480235451963185130018828692693962858787512471772805599951649255089230031500999719613572754481888583186561846858619202598709998019298878542607763546823050110074881365864254357561525871201421206950738991348416935787584958106958606793318363908210166393730093523946527190474838240573585738713264159561111085009240935635315257805562341645245470270542249292299266420934958144421973197003601240761434174974863639599400190495149721231448993541382242172289887342398101270614164831225319954216682735207131317255810060865099412876137442793698090219274736282791265860664290513241470955791310027558092232504635324605473521802516895364053540537331972200931964849259433548368371140389250893640874279926797199233997462786050163255153283287370494643959730407678275782539000684727881479726803280032791276422178638653521635790440212392000419551300165668428253077851011304712548459379234623058424970012518388713143081030225862917598550588968611802581459644792963833559555981463116349811762034974999817032988580575178508875947106320777790512283254898321296815823848604635050043246478134460796404182547106338051298021090780255107906440255814364937041518132404030439661841230667798775197013603201700385093441479998566552449921427149894951933655747578816120533103717058317243686263794092420589852384126796366659389667563702204693536562274046674345899656942371074567484730382371240419245383812276713567335461454152084633952452796417789694570124982859319435569239229713964961223620510998401001758460806188564760322629333992477601199616681399211449057542414859803824044553629047806167476178258770109486282267558003351113591647317504049679265179327627917701079566701298546966508650164947763572707925128250358760069363146505824822238606955172021856228061858009009508082771880293106363827558361623058004986752349072588397731530161376355093379336552756453438640150424263182467267504654883463239909604511381646803132097749315124030230067893631579822304816500058587998918641333464016954493270718296319886986401954920948086011056950812847058924298461543448799522940841183898647086069943665777111241094623241618966957639420843591293142880547862178259675022693956469280790019056433287128890680616359024087501234286384515805333948414736464900460815787467880679513367396962500974183964734552598791070668561896792351367925533333326698315490443789254860148250106019369040183927209277278570538084056169595078656986255517433450838425568153076230205125968606173622557463680188483206672193820288679052422507579360305911743904501646734997468179672400888036650386444653920549220698704978909889032584452485222611993957202615783922453432735954887794329003804898366634570488246220383658885833582405943696016036922382797770247766955502454655667801098232797721793935993117103291282177047768634639327906622223489857282119856792976080428598761427539607672304058274206879971645767454279530031112190661607681582662516592862480050162374951450698101307648625111917226957265366333107591753871474051135768314713159688225744339295538886795720795362929933783371105299489315330892026370871585043164815856580433348109936242487064085563027640785207167578061513184916768146839305058642502847267133552307505971537286801348289834104400203242480979513669172371290921797926463561520008625107258771769345242076001688782778406179999276908345221512686489957715600208159183229565006235399536510306383184513930729816300572467472930338523664427769990082497047261878914032951751093903540429844119975841450733173855740010409348041704105017539328555088165469047150619394994116812937862546411662449883914163935624263626253320859835963634238960404448547266323623725069835962737053962324759137032308472346109353976108546059331346846678179781722719492764369832191622844105019925932285387495482162360906757120555526180336353766041311052124937814456978924187149249577953694082710874313758501899039813744630082459418219686059843589674404887238122824600835228898343204318571315183392839596688431610279973856933727938950532405275387712484885098300760181919519332293228548752134291770452880868239616152513398754581559672482779323601237692639267977172288191220898504592924745011355263920843762238755945183571768907662043158783815861885484960410281008940230907906052758471058554540920686471417068467923453532813212451379307909534829263751138851947250744089929645389689844191165176008111059700282020855482184599934677031870814845081664879353665856345919492681964244315264123554415074105360727216314071004292525069291831625061288283933522660437194531098200938192710228661848744428483501640751016990152642771176159452198384100301939561632232830106644713748801293931582688758403551412024608268926550443394111110168198364397401909570707174936023545523027965639367541559041663443329393779681102612513662234039648966243919281585779617006939698382543989001521696784443252564755663158822999880461118327061157603713925842007626725386559888557108465347716566383237461805613743041451421774137071571746160838093237002415059084524507570139611260025488555402039959205766141142621869991229004377363750851885783713707167393562867603007608586527980081219995569133412212880096429836547723278058793510556419123173382117544108190951955718893962186878944113987830842065308991975543998804745080252542820210716185503639400073259470366189343486255856430097739079777154379404534524513541319850657549612568390975230284646158674716085798694602598308825539982507838245610718679466877450987470740241247710471606035103602893262162925155336476106599314017500135640676843589337734028910000091575999675689107453081128885730221366203391631949470239106903655339260973201501118894746131365570119344004350984512028802637668928033483381096085050756680606606954370428396446873906823029601064176319308854919050037270549324945285072226230517377737439877779014549823477782247995154472351906133401389498263047016668531487349041561211255296980538919289208584214743451530740526849115824104156241524465246601299368881736296885633141935897685614020118362470662328396922998554915710656497621686882447549586714071429383846383037427219997297438714712671652909763883167004240308076427202871620408666895543649378429361740917948489444821402914421659105565423328709345772554470340575219511054496970679653983962914134687197384058758211870470160519176185829288092781060854640976322539933653588064703357848677367916194419080004199395044536343218040808924992524633309261705726569335915479209907657670045587802278726879648332011387708011646130015359108396272538490220009487439599093419052444491591977306109669884451244348238391683464025513363811088356812976595671389176307097752809714044528696678877252050072239016747216503612900336162387032924032563226531528455569737707161808499469750069664665466640611395848228264070713661892076255285048268583631682888810833542830817770577091551993863677688654942675866063996204724025136812250368382772121923321173698247812816050668305561418711252446632218697392524007903094386193663660725245577414663183289626856072625235079636922665581173852972324787835895674819883191453840180401806381177464199242589849971762762987056414555783609337375919881221354969227318548502634494815124989433251497665134670447989875698935284178322514964913728792689494198191513943593727898329735711517166849359186440529544074601268640016828473636646854478090483541807781488976820582970609694945381561414795713345011109404251122452719752244276754318809021614310812731390825640241805744322289155284379960044880343230463978619370898193641827130722053653047132281892184893010709417918266908139983925863387964058977450462255865887226112696309966630922112611618183462347668536037837875680439739601709254047021731251237188692058795577660074044478849750229916025493191060133339201789267947079075418337271118666920488832061862194235637459677617162633266333406258897693939337016348968684384933924115520469523406551740569199559945944615153483861146687816463671489879787252515350548376888939050735647457495626944341679156097875895030714302332182924455441380689274162945919614336662093454120796692665789312965930631023921905270693982257032900959276274802569744842681738527807350355106086177795288395959001683062617123236873385669755726717667972690995996429724372716061746557839040058817978518805586335474694548245221171223395012368095039095431148967239206552336071100088228721010424654410407485855364767944361265137920424584429236046923459575770939713392322010551627167218859933851037236615322439853066438967548846326090265918548319947785158777407029094187069960584787321657657368569518916226862739251245999661598131454691060637640205145042098569536253436631886825846901345060934151973878102106182236279229120701541686526425792789804496318640539396003199643057550375210955694773763985154010113530851084267810085620316180890125422693143225308428495911039881094359039637910453503166075657234346842010984348950778688863170614791129104624431219376174071242794659546256908421392260172766074988329939917939508560545225036112385213107180581326569423470458723285088067069905671584884870592328217139963400466170251973843798513425158977084272457419009383024405405574825482498058387621377557014869565648061296998154891922606527691887001857303665560803299040748965966284471594794782302489116027106380364889723852835902761174675784431968670931950163895829271781407567976556431197057211586441443843474186460995495090562124219569064276200871782568741894698957063220216937114630652087363212503677874193398251719721116061743421471348626102646127287694329836257772170715805055796607510547366216710724769492003367184367325659912915073335013969789580989127705824930964281017594566960765941527657606967995294209201952095178723070257484543787723862530173602818474151305531368660719487646899395417342747623799294502707292658290664640015118746315458649049543842102595041275763367970286302310167533581080627706357125854321609387516943974020114134915018760357612459584362238051343278655187896593756922371565944611615249204991444513880036093393678719880814507177981044257280361613797279069145901872159191206737768918321990898230346863433076206058268071132774909749549410779110890864998438050822811282845573210099497763605283657394312191592017036773033441612637327847798690685764193064065464805097039309061028010157464803751132778620066683633566154201710783567855522854347521382926446034956360503620483282856852926066215024852807118209939712417375243264671958431533920296987852855418344289807875913588492669013230784404887694444081196214674653158008856586885274275632724702631764498859011510779526940889215049661739488999153633631795402122322798361507023214767621411944643195560521909154814988418882281553538598045422080497018420305325810314309460055978905977677100367345805357494243837338714785651865350309483482060664075823366429781697402767245563663597332075450935432873861204529213787901461607400729591510627431975564242241532508399674470301705637569122396581850506262674186103386079452609786290755845868518074493165074780314902845456566261996267068352482550510449020609200341848730877269087646530119699287207820733157470399601523532007837990912081419790451976483807006278988425206551804636592942277467622965590073122289968368889835533472144502905922364398449673284431056638746110584945590104751807624154383554712565669332308618692972622711218939565065551315727267529403651061285574569889639017392197314767351205641540842290621076104782794332290739714650547002115045951632006405426461099945666694858325847621289601045582003168125894333904951101935243472075447512578085175046443503192557818703925286438627859934096311434359682863050470779289136347095121873747527541853097833537489189715249650068888905982583671585375504895958707481687824145906371880669264410135174801734653061138446853349379323681155333872525615636562652762297507323423339688094996892476914999463793896165368656253348664677531784240441749345491940064269568228087760543250101804162147307944629280461547021979630824226452070087100992191438221832984172126198353489762350243223862747831239306246883176291479688860937822774335513506978704026393526286959202284939870827752181617868553470432989560648508053574891109503704612341990813935665932673999097095561897219533728314205122641115875215847626398789172839756841007165491033036758659046525982228917469373338179937114222952486894602810544281136360570693713729914626211503751057367737802765122101629874991432691102123809252597992181698054751431150656099319450101194041543955658281471246680344707091167228308746719936926103087871895883340917645552751521977092087904731885676947172913880517898177536264246838328988998039960963363598193569776441650941182359293188472935360949151613357380238243331932452447399737745080623782657761832172378338396393094699300315591548392559135810769221414177601901593032447718509623623545393584216596495280764376649467300850898110976374595314890907921066129682227700180127043846351412287645147996752510768078711537471720972673416816463957199098151615984851161663576628913291178717185466916478882277491919415574008074030554210917729392698079644567522620381160101501347653220974254134856707276655103714196825669461827779250216860852659468124928684087893779249782023216293332861205182642930560186732274397790239448604442197648421554061378343227262148660211957231039644357127178454562935996222190758880418504938987099028606459122817563830732702665775954421710933311859709249299961602131999568915616514933216913969396000687313123300394234825128672258879473222273294268475237605955632276801397749548872632605883789199532617030452282585382928608215699488317035954707606639428932874349167402119597108218219824145878859823920825992433791998925328430719639564564596856413566947563642887488353470643819690975350933273687187330834803151826876001300700195998036688781513909368310076676747080260753735359359757105468999937460319730176005119026101799583009954772600694988004364241831022082375099404189296658724430154686438208938219954571337734478442176656736607055243693683454925517092730630951295132968342459218325042036446795215179496129621239108645054808322175191469531530019192179705481651426707913984325275609376099910282777214476382793316748039738856799979849788441314583524119203548045319442730881830296781569345646068464569912620015036674827281707190463095398799981642214925064383302488151749958428561056015207513816601131442402950123035105739884890158010499571112995524855492412048012037764942752107583572813831325750543913429997618189599526473367039299841869561921579812442161040766081466343305305334317716281142263299931277240611210443050762024864323266322227469093076641738846412726348061923068335284514222238146011922521962967927192638431150349945465303818875217526658375421938040880343038266283961510246471391689397463709823435172813610754655835516658744153378743691281738208147472430579685294989569875079972700210003917994842431909510642786005054070986382021472970893956482398274927159531843621642335039472957188549665632820537371089496577320166764039572073154191719503582127326570260848667318481839314016971553255944088534606689171909394178852331379432653134072291520518434347034111122669257324606763071022696330191454165291771949274003310212934933259513820632794804672827496269405134011366316977868915414788265212944024346634737072524051106535364889232761496047852664819512469707464481723818896823609172533123961338148861190039084324868735561245442015920991662604117352124255985121641292337755142586855764078293894365829812019575486283065394634701460611109737651823054827604600039929791560505468067132368527882478212559238012026711925731631090546376252128751158709366766314065770488712908613416329163584960663744120754029528488658788099413786728020371902551958372321575640061989331283799836321081576899598007796654005796289117528771533443141074980443563377967217883362593138083358333983494123663699080038548547097081230718757874670564425892077470132622250517906178993228224162315215425618408193523610593733161323488145888064645629368750509958311445365011093697697196033905506922504123747669781094768657637902965184016669725148098604221411279006778573102898306399625508161369319876526733954902845906728628706322621628979838654911137279325945767254853398483195309006876141788358414408277746501593304290453603991750660199471628199723901974175473932747792532324249589931472344375482559496924464256154445375328002795225515202472789539242998150352488684857362151444035052955441892342727119588342731706686661725714648057797823269009791264567750724498227413533857378208633124614056365511615661160145959568313967382033637969683547420366081768451310223804903915365284797546146774103435471935877036714752151383460169925067797882329355706500825549783895468107772030190667283558178287991510749739478318151147451961335267745364069665917103817614782176511184234669368505474374062626197371433739064945437839171827475191817503037207868887145956207369639919228719501005487165723708217665394441150127433498947008632249186580963429053686138870351665540134962563619043695204269521673342492188643505224357684456170760793583830354804124819622651009507751197755076604965303969496497221664948269592383644796933671901265561801581074007861309959185854616904558764575841822980762548363848054604594012348885924799622128338126594317907161024077748877383034825160343078054788938341059640586434762998827679394107036131802260434534000909992846886943238624758465757383632177878750594174516517912697567219163285475851191598967985412403384047829780765721946122371411569513446059483613949480754233865523631213248784786075096024615826435966087573617639054151513933958105687988858846382860515863770613223174325436294714316063157376119162307375567298523059466784511578884642652618134825116733787538993995963966945641437797810515897525809613532882275448321115820558866240630735377683417753349831949317746554472784853227846776748072468439302093951328192491342480637018363964126402470620042940861496719187871319093300171812683797730675065707638783915505142141675723247704432828896670163345380954330434200613248166338716173714968502527098657504177823672603028231516782363610567642709842836095240016244502317643943612455437575454748468545982453744450728461516354650397425638445817504568047295574947745608116976673646927371579062563491753748183757932628393667514189584239880845325362989185209978362416269201422242522534432549626157892331304486569764000475582213331506541464202232934989331023771815292829863308056843171357390362838479661832404045060062992830564164498492401810798755088003177007677407735158114937657764346505252626634983125604572583306914050078699348761310070144124420461260631263341421615718087179451676533453760376328235008763810598140131298752625274869317540763115564879273958422176300559558129856531835042185943655602078024945629667259209261379301427178349188301961422334384561852496344335927973499420876027338398393668474295740222676894044303334061833141929247834205303545663411547331200004503371340371204787733850214434839290586451735687038818792693684715129639079071599881871481669325505882387469898363583237184496331622950387074217910730812857623738693761000920126396804948276570485730950589536494194588165394777086677276475703522623427468495988232564112346295716769548154114038452108089430848986392714004800633370219845604095205116336405858767432622522086674812445519589275858300501112033936254405924163757650502191192781725246100505460727517324619684718023495376287018344501632656943519565764342162850522243175555306153817454938261707308324573651302803187952362578894782245126948283970510104172252772102446600038941012785605593547295758762765611277590905576791194161011507207931668909567339866445058919204012236709722306956736766246906961822321315648087524080026180306204671393561719785382244838583246547076351246173614572983055167693384037034720127209738823459504846784684827425180427546838071925896060289301302712740356627092037252472186875262515282349613387291336757878822542262721562165897002104777319059979240415239204031146580701055948007605706031995070065863869285514731299109577183210866042083062442256232652520697214249730106192874816745149463492367327392825287441289202075340163426228790112792196930637516517415455211204380324339821603763264951169399449209597773924812155873918058021365896635085124235379003208210476838203365224028711091834575511526841179560858090283183568460544839926023676062454333911589967180176129071161956538249957346845247736331897717729897617794977815330972231722001343057980012408800364804374266338265140809142440573861975650914001722347066819082266579242398105339130522852747958550249199925867986253543608779056332910366150252811374288394553105237679604813119509151742326822170104875338084682639750076778656912301334850464315109198770638090674616638072360045751172508719882208997540640421985229147649110230576946166896395159695948358597745562267807757142420141405110892692169109537613003494501726947312825024940322006449991114419171204218660641829929250063523185677297381969661154327786278673566490178565990295576962609459829178221618068331005079953214694954828365745442322379858515519237861180090745310042589187207018267282519331940148526082328798777276023128249590472009391493399754127087526142102162381208086127587491225054626035960205048458106540196638626379324049704206625718386903886174335067515064817007452928693950481772371878414014935630423444704291741001690991309878264953487559752101775669850274297104063241729583904039799982076478166718261809486128124491855350199872219799853195361401314061265232464562363706265606745243689031355669943409210532185235748931761341714340278110124807459941684052513610464607503346757607375666502785403765928493642534895998723550759408682811757181340368331887186742517561878846719788220310423964854898488015360619340972333426076772052925366928053539174076938047435213222006579704335307754694946028320752948792917296949297148904926395562547309274494006046113857025674101428580175197879327150838582063847975906756709108704051703087827041717554597028867895753163895746214779477394913813457170703442724899828516709203271089945614839754376087922765003721129619672676709134662041336903514509882722899591641879555259677871760241906914803024087049746136019750246702276108369672973288081024915428650070219209956734653524920993202750882498954063771441828592284215761865038644267206834248126210453103655126928024093286209087640642936647690769296999915406236939453367559121087221258101293927090657012414777709939516978724137978998136953405296399001394193238058035656311065967697395642853977906400137342231200474175314999315424298696747696884849163965077716231613409969596726861433128987896006596655481849461691564664562253486832634785844355838897298579829993485471605423764030764869936472380026128029110420961171072457737162328142511149018355127891645972720069076239995204981726738469556754420633554888755041077442158758574881070389506899291687985262457576902094392971436929309432737265825424099010652965896950275055877361423487293152112387538306458348916560116189476103628146659984171971308012392885255529902324173560213877779935675607360883924829139880826357200690249827094334418511871624910331560577672915617222063200407923831726797807546113724293999444701647072272699578632394506546602257441392655475863116391107429248494769528007253576307342199848404477202655884764502840035444773390963617599687570324452585435764116533238877351034893072696557172628165698405973508502086065342581797947700385246211579717775760074802452562651509641238692555906179763178224834903216634946108243447649439891494374989879270651431314549285909187832135974059622439518469310812165586633810652903790100039013876049304757098212168645066718876507191373099922635014964983385492374769358885054147435670614912147117936414045621683087488795480078664539241011820429855015146976496675402819527028670649371240945371316944955774050107188408658972859247668484806802215928930171795748256126618702887758214776576368608876098205332151497439579728753918672849126320319721036558201096868070743896462055390315425353105504722356060059605702174709574363687360986800420381055232852645782972502566201939602884381095925187240916362651366517737709889975743930015072369333383893062490791685275983807415627036113461933365880058464304894199228913397906160323794037176552651825375637285254757778920765006803792771892776535603880479489461055008531152653422277797913846817156919394495812947871174860028360179647638764329030129604478885468198591239686359156991900205624221889362574521722510480078513076679659893328558507995109224681289965032176628272031573201592561049467307374050684971298568800083971971447486768646802853901438731362909179440807786226799154172558907299169734990256961788476835175133616455769158303509962415402449246952238729231461352844369798375410720256393216255197616465213835357079097553155725874618397198531623693694519381435521177415349302199687186307420035698606858235183321335389194790118543789238403039172760124607062739283443846321190870249300883573010503264615166753811181664430728577405113320326055767456882747307539822587320600518632106920258789410490484111477246516631568188561841981542215698505036943051980370043859338004674170479567214944759745030407388229886987715387275998251143753665484935103954037718148400839644633171666918288273417716011600445039088679245537624691163008318205752812838555474603179014834468529822092837232842544252504692001584330184686808003273196893503736868883452776108651054270032582778034727745958769503390223861045213273630574845652421304272765102580647365522960145956624197961415676734023252356321522917480852868882175454062567983821274002841939117751773647244797229562758140953440982671964516584310337962061719402381418806657523514000863416653175277179932616220724066975916635887909655645126708624211887967461094704536321394726765873624855993393263831004629007164806944869759687931517673287201441110221606632799289827818277073614152677427120030907272599807986092861295457685790348947156145213574481310620900205737572172684640842608127567582645700484199736259472386952690594418207017475332338796212141694796883447859377784161144842684855834626070900209041559635860054373641159510044147578560497876515873882192015946190341923672135851802273277530213999776829478665682301690081078744320145604362478744584259347633211969143766046761002035807582810228614693225977446787607484226230991677199380956559216071952660979097673615661302562745263514236099005422438378078530515066315321922376141351672947391357952305884535232641683041422097275205661029052162154329665781165755446435739758109757825221154290866877905513960893583601095802174009459461659633575788303564164900125288864454014363688305117156143586079445845672897524688942703883077873982746503990121517203959779112591724062868520147335140193571964714701934715356209161614966887721704495182277461001226694798571989400327184171253831378861117465658700611276226698925500581125082159022347984488821986634902036359322573182747744987982193893195089021620266311155475293102045168147186833093883606004450531691219770479331796124783848489822836659445208913388599635973522822199200240883581169014996736105106844327599351482614248334846049692256517719150878714741952475325567376164569952250509714202722273890396300907268621885774306670614927042712705900481739419100530756609987084814061345850280319152256388326795221210466194898460141813803333961663999076737308777501986614171691022148551010195484604426286983661951960637262947758804027203937707052864491372036155218068557953091521410219295340888436088801847012734188159910610008820318862628516768417580665389104587499332321313224439969783342222933722557751527854640655770776229026706401607812898271372437876488762021093264042825078783465637737313756074806730724683896416529647601114353372085060679402674432833716940746020493691686151491316106073373618177706162730636679202741558699633082458212268662524526323836604928009909535135190576681010122700098028961110506748830457127128897649123714896939873799301914296214809239733101086270360509025414592883137553379174823307643955680449046826969390246654232523339590047538912124780240672354445682312543261631836911289129809067634596326728283229363682817889720187848778500495660375370865339006905655905568164985022892111222439325356093749276253727390970904065106191115739711730199855314938568451295090115335827388813603373379980133688691561152797134228869980056147391713119494848011625126677538363555187594976438072418127441801663485638677535737703544145652218127505298055608024958378223939329452607752565687501558648056102660153649556276102237940683014452714340917286401758612322639645734495986255901668834209321543391349589436545706280136125250062190787788430816628513658954323927111737652610290341315343037746028580198925498835557919425992930659982577743773928090618274487382917960854246178344567646678370937987577448701301791263942578867678661875964488698790434285192773023601823475438887088639077586663233471189861965943788832860551682867701941582083771600944302294191630607164277097634952630641422328858366202795211699603516454386282079556856738998340068432594821144713646338871683050088161471449094149753975509314052252788807183808635958716494351900450569847420223703047782351946940425349401684162717540567465724611704502130230811596749580081709708406244340842911897982973132790080532718279816659657548399919194751362366946475718307423350898816544208738463912327724905541623619381965039554849663059510805942695078618967570815836558379631009815791241462433473070977005268246421808757116765073891622860838175936346330688212610413269462946164710083256743064439045832488432170016969936301497840699991266564332835980987751035632982746012872915304226215894805039514332857070374808355715061465102199829647636536179507515673862894182378944990240303984710031793020593298375684180379809236802084993756238384545192386478974447554627796398786670780762581432051999409426652333545619400187832925005799875793274577769264400648496103169864046442066120467890003591522032970626437633280471001995885108412389601347551778315993885152222370936430295480361976713754248186101804006917671547535003583956183876258719258361359976604361057476129037960843499250376650415231775775016225815335348281499100374881297143208075425644172206338329533464907111513237635597951082445161664726617299796850299252317755902947895411853225593334959114617300880607934413581844043278000998507305602189210736388244246329266032334397181705813745851417541144747571668934555109901133542991909633553984843576538911694679827195396197151406749704065388544401916384426632324104138749218476600207176336950695893522156734035473030535945701856397116921590055951814785139806905784487377152606864785051933796151402239382696370410190125630848977150167327188105497729614253970207335401209065293849506065668414125174607865511899584100824296627285977559436979443159708355531775435503822099445927764015867584682939224118567936306403524668666108736331966402722436688372051380903374283118231861291883001044510840865727240222137149333357334541766701889990275587524198110868369275002751329226703080336033492295633522722751700983743653109781151401471724708127356934809712049474986779103853041142614360003258833155528226816137387484289129677783538208816287834261498557598674311720651873182296091874124279781673545238749846649134763404357498954435055439829915539238058850358578455763503261974975386767283905329529338759484351687459803066951946379281678110996896226366592845027241331833298385895177232267409343829174800895820750612310419380372062681210944493597486696883198282541738032915911500041423760402962602526521875682565773312568613114395373690036021452347457569253652816509140267540562078665728396655431266238672258951606298288341999016943942571991342299349744719786308859030388233964071463451366933554919686163785721317960069279954245114014613678845751433447602265649823415591125457351912356431140276190676188463636198122391685573745057744935435331941026350731908549222022748365632408014443366958956590239830139001202559230424924668778133326098970304387093535101143869790381227411272740481689714183465801992535591168598934199415332343075495652600050416516629071153787450595528591235984825530752187645870733298757843393809918454146261603784542298328812215115321988931886191473522779990133473138253543736391348252128175924963121120924560054100172568538229690108502672384996595690582029878318859579795913880744405978865734772680887978824381585783566463394652017512126983078161273680339439909629230336279297487627006528024039941488220219343757002978856003434949983820736470882271952660095746507308945660049842519632858860391263790525745352741497740030337783538236821684388765627635425595033735331916323694597667962678123115756926388404817668699370706906150994080479282268764605138767930835949476516996868445211407256304495429393792069159218777773029592510193423102741255097296941072812537189888715704867356047733705287559027087757454851997490141181206419551449942724545630621094757556913328483830120806014911102711019374633141383917058767260430188264479450943592492466821963654647213435375726937016211362829060991108338594091506633433265829187306217506834506959930962001597641895495120049114064914337440540747745036012641188203077987163735181546515884582019613743401054930127378437718433409684512167873698490015612854625794929221577811935225203110586106955194485403258761446461415469981034844220717301704491976199976369705720446538182132960625879278253086410150190299913579880278879574677397388926763683156009901273799302026973506404248226355004757099126999119423921160231082484755992863306521293025319231020487153065168900616130814072694518719803402618249875881514755203682995681474391169129455098830532107856330244904072871179476714785761641278320655508471837729334959890022831631306974976202594984305308155219461976901460311967431844829058839987735996394999542408860556413307809003911382914065699731674126094110130815205543869097861743034507474498046549682180084320140185980212935951563187029398403448070526691797330551920621026478566499793338845518715151238396109844478312197798703365895800230903011791209150060674892942547556106111055192389428787443375381251439371835332880525645391582396605096547849907081473243749600929348275164229446696002696936308540947279418520441613331541475030915472256228059513400155226061387977455711682241975465653538218831643485099509610094948431052126645091994662498257597165532590837852783169557160997879014738558608100464928095282969876466692689669053902492940615822599992490020880457248250349243906465215560146113120024583484544945974356817060422307752124930677327494470738269082209078891217844475309313277743528251283902231570183138266932411326117839164703361948118805169042968735834577320665538412617029488992584884279913736530351128433329299854153485716898825353823653552155053557843600570699892117547042739347366792769642712391830396133569108244975928994359198663864524593272776041773355607985211070510478436359988741167127033459638457765577644401642886045141148338692737845955462548489230868302365484886028591627173192591668214560371752020194234735238996636515802015178342611893985073241007502053942614322828773976476518883026343536259860576133822202214381475106527086782550592756352423185942235985289626665971201498092703998284141123911680843120348021022827744932360895180939890385005125781435048563741724037792151800811897971884389577747233806646357418927447830959923837571481416259284305784978390175229737722007398453004057039753656981826536755270427150742570244683839807728168663237603800066986871282640179304580505158188304342738206372791906821312800117667623620228348357506481139115392985152242035374013454123704754026633609173879050857337736521819463876156151207515778428978078160560218175201471107804488773487748277759935529247587820109188030501973831849550713341754562167557299058141194440052311484214465454459397990799467420344783205732773999508805779618467245186281611097989633162338612515647259967056225696101296251948325015478951393040247518550535350378782538583930979234094952621015694759925773592712520496050871071754390103857984534220059664989873071063377576521821142617868279316036816231677371303023998005970901074436708762129796229018491192056861836047583421416001758224917641788196026375709420953171990859146682947157289761259002468691825877827077001122223276941231283091219618878646907191218542073745299106809957528332605645948467486906997749896625136532349961094973621907485113769607332523358773931128594952187196258547325588382862323643226752775027179649161877334976528994865468492187050240598672318967932858078182242377128106789694330523082197975675639699785401681699579991529669926743756170421338943858282113597779168422966520629174911061962533031342427398989852692122965478119194181155421647767572525299545096484630498188938417861470088577164803831010842529610402295296249836156999165836488761967092331158640723994892972490612829587025374915568697639035043492103008186767415340407580201071214478473637700125452721770330848142799443440368103949301234447225457185761296425483869718715344555197130602797165876901916235174157253034646154240334441278655123118161701206415149417678766889882867226879952688097386082367532724268377602944839177062611632729827939142941369674750767259814872132573249060831123214137051727773745829844920121746512831883130871185218148647598865908229368121274968577554674411090962316338822381701225725397110700780530120033237148643165923260142888344616581573537598396035748808905012455568999203854721887280950124687503377526361776843347856982336291476221216255303522344611329388071740818323982278955188916939509914207278206836757992734202787493411604940141591736117140142598023173198728985890666188638157273271998801705505883347380645451025797674326033207984703600879557090130909319609092662761204079360564890188664130731844837333463068522156830052355324458730471992997011612477990783710954662422004105991844908100741126405375240628133927048189479959205346638058078310315714308460390583394572488069071685193583740114639368061210852789289090693205247273922256660598549759606549177691503274313527925080055910170849572492356569737645627975287839363562477138375088854690816674515019161768423324179591977487916802907347706462722158722897547959916202108434356155617876332226389994208067072978394505326406661041410686122868603669028256889719850822081500239337952459222415436506063750498559932289087880754893958243088674988178311311731334230594299412142016221908119973584286697280110888747210138237981918489666988614248046819308104621842455257260608594663710084607851161668399910117748628222287843159137838262875049434993612995907050707935502753274159885197231227753646765206902358802363099217239701455061437568944569485389649828406111022949487019969461735067985036924747170391153765309367518168716966194799848301978633447163480153338819377578573763333489444524582498214064830938968763579355217355112787791569499345352827520923516202252753932090518718088876513968652922064361989658747609610572479539203409888186968640173027829146139363691695722375131256249982104845646095701544136758636203992450879067809168989810376516982422516371534170675642959578608498172331836493198025747486638223453228244406346383729619680409388589466485042105164167154281358989868443659570734018085685047466589898788377123169049422779476388480408265833148000611125000991272707678658982109044331209192384083034504338308885128865804741913005249989076550504885020401593942493968091067129736101777986500928641988105961738940811640309840361071414024056972996842678410190235722547857663101562881199555204036106071095425079179740556005401347300950677856515811784008908074088178397792589931513433228099870582221862573070246650754443748265871322215226454701670268130495636418415264548500454738826255928379459487895796673019069928786467242090168584292511296554819959471032539114905653760495923238155785158068149765683090774025406041249867194180221676707646822315581628370973813950335977113894983053554345171947190366560098054825753005497858062598423704886740273666934138816485544240663385416451790407218280459087043747523654077028433775591028858047358500507247477560391796642177567689545510210070146558783771549383845813616347179605700770686643696656185381350474779667002091566700627878750828642632517589412401087300149830793878682625729147517061472845150849705299498962562392813781504271890994625591853305776619321674787078575109758275680224401025717719822704713064592326996496679442048733400609798068638117944823458891058928499753805214458510775996012620471669620524140507903733132451611201027708138221785213325786522185738362925771563800683115937960114764217397177180526992852725454012959537833393836399022176184611468579475725626856419016705453126413028726895290060817414495651457731453127901361408183972435635879159780520452324749178622744873382978194440888472134842794825964675572538019360095863238138650697838977436325965513935027504839017758085703138369147025772933526656842861101078311229094190379223371887002345072546535170022884424506773162920440455908034458316085273837657730816038379726708894825641036658235453784903755358336083772415751502780635361719541121531839531057218673111261882704036189881060076214390697504466989918801838899682748927505426679289411286917520438281626178716138905012372034419630628150452679638863090358707662242343677845411263886282471993952023051736584235853431637176569020231137382511664207711339906754754791201008879668070945798303837365893369023460144529008470217263658146221711490362555421440411129945171166144630109518870006104628280706080651966133601431214158104447149763714081440288703694683614727996280946472236536000997886034789907045230792859500292547371284261014998936262762914889712769219895553135278010823771787456415103350799862878231770557566093098703640189720945327036193957554315097598960225663680866428067907558579622216302041847980670826762589847129506977062785228239494078178930842326301363942436509746863847947095902472996636573555238753369993757229846485995204005304889237768797016897594928684217683007054524911623983181607805422249410359462919459576604172301490656755634458977881895226747788339639703493234230924363014994041804759395935670310437949930573540889446877616310882040310499083436925110030877330714668198072940865742604268743382363473170344820868815788798943018627711253219870296051081469872247271288934399523630847433002992416011291750172674403030056590080693792494835497530538756651941569963751406458582263789430849633240217271577457916063424097463549955629687285305059768521718444859110288961317229500677858941997680681863855076890009556906643870519515796325717415167792786934755684414370850983124612649222901612734756168075946534408843742712007475167746058569608986675504187975962066441576445998082512954523364216456125831893349784567209128360922274656264011569951877414871722855271085341288482962404606740631323598437960224846180777514222583782055594757329358629279823231771119117238492190499660426530756138279299110146050023780927690064985280803915958115282704515625451427357968239730032302307528544277810046096524553095979835909755126588882934408883597071242323870428970141047848146683096767178188978544145858530731689382747116720183531624328945868490937449229663676511777030334787616569766444267085012928289103913302042284268001633264790061247164316402997030342314185817030391277531886728552615048761897980861516298656972279463093559646788829978891085064645449381053859415244037771612603677908271571080322064182705814524949556130660953353456202578595779337172833444240623094521761652901591642831813962606483507789699542208567873042134736171332318356028356314637837930736921331684626443130537809606704563957020541974399626467908562649542614382532134455756865037875647753449052507368294337362492665662764360556208238455197551490126492404430967957117814322972058309062855095734715968474375707482763112255211052444165757207137158403914488765926373823464893918441226361602134468237950268762354009276858171328707193710019965993482680350766756928371426836018874977311280978259045062045011086490960822176023520330954122272571473505383632419851425716469138733621873709966142595506457940573017569570151105083116784892003016062646148977692992185891803618305772309707075827666537406874742426212998626936851327192419712030056709127223659584990725527843212995424800911829487899516306463954585995698362105351592003730911104757585931561451871354875576107611628446281977636029272682867802488125347493968216935990356734231501372737989982804050531056971910882916358151858920981418720491370950708174151887157980315353402460023025009943674515914572746562777226299672918630740934538474305819774128968165776048771698109497217737932174246031337923394170496906791268518133086031465356754715081455282005659507013843167831054832310795508138170777385671261359917716551385088629255345539919587659070434982605764738754794419603824966979054858863287274191365578427630711442064155601787591429242497327306106786722858620259576050085359826445480217774007878500242655838622602137638671560841980341232418748357484210963907059638416005332644831737457824001953788852783650826946094873022613751961906848370110710930721248254865570626836458375981485513532274278790393685078572213977847947310618022981607455250307443878678494072833719930251433079487992730729442517935762572536736660225541186779695497419974808813350622234229483371757346778858621197307336646166481904879427488032792307026255825372398670066527167207107181385132570952125927187178479885967576808349724930194091848625609310848180017164708731247408306868605411540789754284662181819642852313605143379436046670952571591697793028560645799787885722770331515211036612501162328251064424772539598934708754000516718683944573285843987379591091794676440815814519136870214374709592964177250274813078190848432236279355308227611475746315652566584881008108646364581779951562190030132351401625093374900910696335439088392573658354737736724593366028052869805411439681513630277773980007285606284423088313307645354073573197839890790310760208495324179734479696262347739365865924559210386761049301464874787919318692074311691476439821894056382933817717750557061565801851679765986270268118135160543842919521259057963105587320143123485215466891724807523117539922186181985820891433508834887878426692703927416484542607960960835443920235359571957675657454309769901714195743904559539829427145210924666411585415625446971425452248683886646361663253554057250422018265093206448346213622120642138674053508505582625545621452534368588048999479156898050107259636602591483974776675459358684536748623243746513678062640721145333841814276503331475423114834121067949092329208199185761131641848786250548395046473383061652389245101665158966977288660017277006352812737215245882678332401991383010788802688413838226269671299322114464936907021909276392694072438141347833539862762183856627118565471148452524063526374521977726785882543069650138495406105725179944355412310337804473370609562923507849684688442014590146644144771913405996988042536158334142029294831905064040949406939122965127574670249876720541035121164164787450338194966995530889414113844089468819721810947024376113765482518009138700111847073853744825123213132244451522630477589318169598757266341677118517081484607783019928424128709921145869155703992392513538298071368392082632766586169949437427916971420682903982855526844097213003143441382180057891292916048735209172740612675553713627038855442542553311739672511653198338372887541858978722618083786417209550138559932250762442792036295514203400945282927511120064739424325700869730527501672071533934291001281763782503201191442531225402211775615539297563730580673786730533589466934996800337438347745950857663336131460166279726934258845162218507408544403536522888186406294158936892564592788012049525769902262089997734872879785221081602445985287328224832288034261087330461238278982137823409380198032823155555042555891947703734654417991476519013975451372490938926080832021528401785160128065584925185817180707153651012545615785431727351782242842593342122532192311126281367791415932767569399053299938643883291989200010782247227742464232601443443638650758934328155291306091695879733634832332105902501622744648135863063963195570576102378457060183667596527382246047035317298009580721679926043397603943410484318577554901954432641374645996493300118995442932572968368427629604941910182210513819261232921055280385049094608654205043213347638609373461852725260376628892094597611385791539190074411206266855279039357356038969612239604663473184474379268567382529079498177718688697865844264677875537759428003881974097818213019274007674283341181540607472665948864481571942322466531771612873530152357219377069915786822334246313921849078790397406234790193871661346994151835334919687509723413522489120256410360534684614126320218845731706339754765512999581005178768455280666537309419826397832045860326183770408380572502160177192154618589371789294260288550905618951356347762815692256326943494544278456165578491356782279562307439109285875169732766425257683592047495398523385285495713196831188043412292975165443302520220550712853292081934826522903729939363566041964197432682239404687525342386234207499317108375909228413774025009189736441373504213133114253073872023253940585573994852122275673611526028778757076726973157990754421781608825104771036765085607447305645098336506220965972906657608481851567107005913534219264611370653230018666451922254659703893385156960443227646044709404786996490031858631527212700428598347314384116915294294102168947470951430229614922165352866513655074730977369923986347028345860296139284310704366394456383631455479880137875466898305701629383388305312539031754138824902270791244890075020826320440853773988794397166049792530858456814552501327795503752740510240790458204570101643413207638227836222752946115531586164252129817508172097310144939677186971374737113073451370521155887899643341556470127805729117729094544469801973510068862813117807118302740737758582129551600907243487108605874048666165982219387518904491277968355446689455044590789386326436706837956653576644603748722648619500407579278776152760006967709997227249108385596927249672579722865602119122752195600742162828968135861067929437816170200021343040080051893708266157251659222048129714021336472358984175636595899891187983057724413393465141998965710261167861479850358300595931115804010268818876071402769171858218909179044748411521279822577965942168514221436853007988635001700170436970119995128689544075942275281155874288775038696660437980275975363831115443329914617123969344314539292598608918829835434905489009710985135827046065412712293797111976655945249681862403525996445687319729171281853408490135155332506560567690561717075428465463947379991392022683319790558363284296866884805588519531198360388468725743710278170995721999409796551517018947571631095242528772768381431321291664102811682145268873585504997031350357505010339170228937082490625728415671314874993082721718209574460359994017003701509811301284937050986514417510754723396468995834305832482054529778870696069502945777452729700490967727035747699263649479435244152126074147400244063314749066379854506671340304531600821625245642943851286552969863280778294674110034147758528873985219477910132731306131556849603155658036845504452973165478221265134786170464096473872267671688374904688333347633509460027485590599787453185903371105005345420759924292245537513718095760146431570435321211536118627961523342228716983546591723022868538506899911677472963874758100154463691035231453936666239786611058473379534675904745092072139451816294319187496653059050210006859098760245702879179441767927497602828224312312123463341781215172876645622262923609010664127862749680087992983755279154102714540033979496864835045429435792862541184581105259254031064284516659558823957345176988815784324871388232130729822712941572081829553066643840730526814098814274958438888113536072359982721238609703672920511547196399133565811869129139367179901362904447567676557180096485180438451568182228578335788252632906534943421101058381132496107860958417785833251156233010131799946707651058955997982465384719192656695513252830418709334436767188413741897720024283004440310544451211264354665695004207869818250536589540299947808724448088022359292075274810048441764112183299367794115114966751014317262701444519320799793995928145533046709794660105418819279436311670955891752305513729267102775856033321049337245813524858774783961822231509732797216302324091104959225968600973730097731031517209898520366288611885605961654490262330568752633112649437766332620289846949496294672406046703313751128286292917382445279625040505678558148050762902568807305729067334539548126944691142057065961858690794973960875201029628876138151156598446210629983691264647348490174257027165909815717341759355180209500323679158951990447759889454091462534565294199605166515665616542836593533252865055219313418362510970470379600458558570076468202562970916056570062365816775781014614736830914247256194580441589050317307124275030803187139108216560977836533668649191011737599951611819337336626981781568374164738026432914494748795603904038455310063517443213929385293205239611815403646267910648516136300830741701582054875789439964436356396898768336909497809912407500128731034629111661061202211068658000842411679160341548424189220460692458946356516118797766750303937784324884437786706434340296718775936635292419908243762959642102002667727456170722203894569075946993525681537039170848591152795026719558230250017048974895721989604950937467034560263089032139290341844965766836730335432774398656922180630223537146706092782115021674406535650489506493584058530539626806874737554506291810461634959873492954319383585611385378165514756692272171383600536574955042826880583631497884117676346946690313183466238085326637951873739821158024948337219576731973965972016289310853427738922289177423190327066845920260487774145871156473615630732626847529743309002410703812754286742282689345649006949604649131085508139170969293488562774450637980058594560873147266017775683400803276664225131489414665769316091091813298006347443803983367425636780615672069785540483846944162977017633619923131748576598864622807367897908946172740893588729594386283364884672037034810572159284335778283357107910416340121184739780234916732529478621129078130742451688796735866173271362375648850028093448089764132278671847124196553618567425247256183714004530557326749549323648857238171776434131916463522860583293018251062355483123688712714311056280267954356525288499634583701892340392523256708171861673700268170233713016765276128212830134260729788185400524805053104289846966831782436004617301592488586103494885857837410721466369582118707642025237320555424096277224763554440875211640406534523146972456083193321424998139779129573459038250709359362687734986134765156793908223893088974887651957028591247446400030924605277074796977331306739905152939363067159911428017550839907567963876077108170829556711407345511845991141848387181880506105928575804122293209360178270403500125103728013437503238279708299881087020545422851982063702943027116135734559052624086421431653622427395515664037767649668855748703022957348015207664497290742252021553253598196694114586646240474187433587493343190964905852641285779314753365219832428030191202639280371632042206406506600197904761234484226003904261186647982892688381989421731903276928772691960306685521350005889196831694497630838209129035073081969222187962270463671538758505315088092599846889798518595696292640287781185932105618888600182426401622427686822264885493362160122553066940760082336936144086495123044948986308229447195577647248023462147192731645919199660350667996357583832557060309972639571548114782894828597999613665253248354044798004679705778742830931855329533149457270116376341111244067060043106778656361307594556322318602598509090643855546127375853388486017122665264380173146314934549422423875616612804929237193315954122480673729824782781409591645127365826507049738466089042031680146873521162791377467150771228211937443299273890317016507757515548156137352311362279989185098089580263332653186639131735015749700779077324220374328988650980123419408123122485919148465063287453246223538371186601076307068743873007749856329606021492689542537259029560873475336805951906336724903395094848729933417535504163222800130565450128895607519337665963188715770598834999718955333180480477001948677576104420753802106655538399803337131155047959736547433169018078319026094682970223466940292863128182857537184188198356561461999487124774996263236567933974425125916106542221215696022042979842344247273053854362037428464823743518895148850428980067275525584358208947918781522442610793375931503377690006017308625699713900312112615198727005174979526918239916993628383481776912830511640660255206304822141980823147494835063590691494159696199339468873059284145966789472576694486152587636350408439929445315869159256319823640440441319974483584749393464553622685661851982364716583024304276649617988171018908491827223954593304359880917797676384115606477040755978312512094631682750505893234439083744166896460635198435980035219406448173299680806078742101530471014411764290035931375099207591508160252676547497011506484119681485455545360586701771438037707739182069289082814467500538152760111390313823412268203432506161292264880951604625737714020925494556685983791235044527146864015563664176477878740454709174157367008779495921455817913919132517579830370146269979707299745603692979276038673503598850674129102653987436678645168686701481680409683782921785812461881513276494089596556713982430980741206446510544137685350721403244116393277877547793014137121390086689406768207114750764396035656553889670335750838461702069350245197628468288488935635534185028569102869411053255969040936196626640956866975135688099081346905642848736353022932676953320915826874929260560937364305355858038482651418246706857003726255044192358830735799223369968161988012195571728343437282664065698218697375096008940061167525454739929644055864726957975652189788946859478079225779277120184378080643089493653476673643236694900293246108657719707405979380995337235398396840490285340278356109991588800816481332058511389387946603668254868436218163039442280468003759121275450161636373179983253365929555609400700746285722992227381234358742902505594221496395441816826945821746331379800496072239813799313990081383730866523911886319819761674793418954907330455452919636506817711267070096072224420589979008544049733445492608152596539825701711762391558019746597757638088094532934522528515940502347622062944891569188492441108758887389059191356496813948853977284714872757547159098519492596595108272986704928586359151793234186603974721277033991009392347148908245892444877545149738235475597890870089261895504259636827388108723996935853005066311434301114957759698096662504904049750372823808411968652770912070672855903072560932226317907035089360519031073406096603237606813895188298081591487081898294634044164993462575570946422343742499222619228885269286783743710788965373397436201802354148604362340044673645968568107984621244727754703110454271929164961463239641112718731597762889379779770799266265839632321124433656056531149307856824928670292469499976513670478494820602546111131619385033636139864798891429780834139624879794630548841903940188416684131869094664075120011355664531777707521310852633731628743606065811891942704826251201480417477383036830512507114233117255011379827888246730476864745163054527215934279577273033618252459265166014585169146659870473082358518762231104897518326769596441380799150012856249920319518480381894894683760426503678220746330992549982512082196551297376120855632535715847171837144612299141978025461831476461268345172430558202404312426111997474577877642359609888969336438164138347285322526979788104491218385527097429793862733700352218343008381013028344948081489810691026010724205352135170366250420807360558735416049184982259927352555045473469997293540469183029199056720072740998432063656628495115492663183251830593655024981336159754120927952878659892855209261940495962751684767920870601337104247728359789537313751437724509475811086348642918566314845436404237500848220992126980362017120883644813187494944017246849052555762084725141249769609879293361091500198516967683218791542250356363869306916626699480034612916100225485620284998985850757744542847911248933912691389543326406953196220775964466799533305312884813630491702817966619906286133204129843683546049011251552063382749198270532650401622876867103883333678702211736404290487561320797827179389196512583367826109347290170092390815294880824448304096070684370540489001936284412662699168533379920511671160197201583158685731043132095001961071723546102724886225192669248735109691619515897472544786132083331452388186989203306761027475961253184986530343469967380939423136571554351181350153166347258906083902090909530320711819717705066593300008931633647830350406693338228564862884013998701331734029789823454970378740332354375091834205549976257537967026919581703604944427016169691924705220808424918885828833323229830988158933043909213619864393398881154980219724546590396309922890674670207074683125706174835095079445133207016652356275281823599841612006251801340151530255042721547932289655856541272927044178894922810131642552732191891710622658093306801854018906794651666927114644893325921311400047551161255680811609629636238063715713908923551513884022887829585705882978175532414159908397407309599541973322440641214632633984186427506079956841323313801354691226862856534167499375880195257717620297680464085107733597324416739277928319042509737066655323751730569185455611106394059315170012238138929706956430673547702547403284885582875657665236251664975274942022406352466271406821638062963997428515492550191999224279989286294587661996356675978001567172899918348392484018751795037947222342541833435320093041388913886123832935660298847156243353683206382517250558927994081898641600307249173265244110522676534731058955224971630230591630438460123682117429887038522641168017347772148415291756091935811955441753377984119691380461508873177737391708314363221603695713110807733925360615414733883057460445583036366797793979386161324509965785417378426919929443063501337724952220437404685197203945646004475121890840421009398368212131889577325119302734565881745465208726373103692059131601672941205754479996642730912911474516901432144840452050003060339218579066459503058352812870829621605955128868554869355848669547880806543752532740045332857899309179962941363695306892885432181476768237566168431826047496187860646396715454331034114654525269476852028229479082821912933554943045615036127879874499429711376148308957023507427738730806733545736419249540994116905333754232555355023484374209914685879356834289600323937635260638333054207528261925585454792029549187715405183914550592965161458365344807832564682571046151047545844071020435924849800949573726025269002814869654101946446316974405709029553764904926013293298236510643959776676878724492110897370702930818169358202867373577254612468958533639489014365820468808491777381791040996966163672587074742407856926562473011762879392093510594936863493655548596283788103590584651276221099025219377014542412052692799553722052061885226992299936053475967705761411203383262528085903310219775203600508318266432737172174292363784568548355402036938133038364994878450231594636146697835232339659348247404615174526586913106555405447789837043290945809616552031755333455493094763201392131358128974435011502669193818888675243338154877375473082338582387510279350352820071501661840450898739820246124929864450448132098022886107469468680553093754688683012056322860498203432477918658138231401765691705670719497977792734425578188837681833717776347757294582505989550921124093484182150412326387068076209645159848638717087065959438057464446063776521263215918294889826027561582992317797827088222094671826162801316650339319389038940005620760532122845427609722815591553620408069903621592981532659371032519149245661656864357035494628316886386171971996603961594287903670435236702030854123686764765765401695503347446120536427224388496432714850604041202563696989143430923843682272363980914181898329676869677691320322353652909402673331007252923189084297709429837850407406833606422754996041316337666850806747396210465290219156294842822290464592478610045525363490147327893263919633105993067788384523482903732047129109918060267986171901174538462537240300660518216880621517959219011432574651044712058286747255807235248709413506833160849436278479585915191193123739576826151521407623940753687202062931671854250044094149161868554966971197179946888770809824581247174399177218681116333940463071022986044180018925103860293943254316437361409279008926018537742115674646378448316622642285311004334071549741983641908624083238641300909633147874771273071798691923428603426426438507618911365858764092866033338855641565054641272690860677313815143403608969374782204241989192397136677273429519179018518561476209689833065797245268240559899191688396386667872966638733758853699846170109135141828135542420721680166675994033733594314250811818458550371091537207375882212840309414603216879322969188371097534176506828997348705747666131419475607152158290541298903642457999063120112569712319604611419547709178497744828262233131684872272349676947828906775736960625085146422005338052150334381875479993002510014387304078224089292772838439620049521732577092087386125876794385765183888483784074252517342095352174253708734842171661409157660621137525232659055581357457358440464699924299270448280566232248597225034195848327503710452750852606979908109149650404707387065187232484949601391711013924988630703096666214332140096687926315370502224904049015950340112717156721598723390353559383669729976468569506062138309996730171218332412418274819974839285262841333828193811371085498926202329996482784594469981039317248355431621909761867198966698523943299703273266293362494289975836414715551840763704414444395674697915305645714219212564020455607467055676612023817968781129950025370089660870814500974490598959827876279707614871700270300962204658556910228985011191049636525080937294041442862400871194076643085594734440299303932314447746748359340220402243504316983367464957016484125286192863089025441638771861205511761508301900053912149087596042716292299342508852387488776215660543194589476799155610493876294834084679751855215685095409856750595075127317757218180457668140578207824989730404814389739011772483878759232490774438887502025220702833171949061544352776824996963738091340224936701114741399393883823411341165067267523055250734810682296816793093549122442518124246913639483374906028670106734590200136692210721052734177145858648813308827825857990103741176960030168700289824107119263589544677160246277929976717680190709611573959112392992143440237068408265981728562779642362543423670173205456000727955755880165230443498530433050582900715382789139981054155962752688775958435844945653972669540176254267716355374192184044145066337436000048211223458128313141326084018645603853511787220343874630192406192667068426627936919759464464231263627752668279613787293506751513689628584816539590646381836158826928035157521997133957424870952095515042556336775014184992164764953167001674395378300403432821847971100294077578458020175005630336869912122378466863200637254569602361759038758073725566293231472323879447396320859375308144202075377712714746282897053433757681752811462889016688485880782029590801224238891159235311393229092799520107105462858985705230889680005457975436134223114308952679409932683016570283548270736270373939673633167157577653072594787797417239610241944806611832685472872400528163673916237436063740990669069929645600582774711972830157363809324625700197511896110999390915649085368791248965685543169381827218277755250387016355936096192905677559754608700218196751798480471304229652985697388597801104362046007628463282134424583332266400265216406095711199716259707884882805866093000945693061175170581711392697730833275181142096233939244734177131513125452076130986507263577251229229497117542634155944278029571166272330046618783972478583985860132528296974926550821090757589613350000392494430880059540169860279693315611398198656018170448492550450853324518925269240580932484385330857720812465932927654101383348308469230589532837309507547210773303530306666275950542732700644658889946884270196843384519452367642560438704033042682256817275932054108098527108574657559335540809672980485947823111672947858882310700907041899389121167057994749370363194941176829380253374652424079060994142329676250385813654159588374711583319828582669338168119804561777831286324925848675834886161656605062329651315651101379607155020099811089915372245034518107872141438987004622204878731565220150999808345368980316983163843652553065136255886447032210843472964111124612300020120813193692926035122512961575698113647791307684283750517038713276575501569777424282312704962644722430414958278693769708468366668102278482137727525524374018971446310879235882500177075656188719652472258522036529165995170885772710559538325716281686851118253443180475943831688149073071599212713052003424815002490868315491131261309749224742801720996999912488108258021963143276624596601349286597457701714938328115703520596832851765462027498593386799095772139442847221396422956729101934163977779204211115337733239679979663577306322948415920106183254856265683704319401592426182047572569727645449408956101866638503772265697329596187304860061581363612068611081027588514600586360877104572900028591568753120383883135220839891892037660044930297008906702708382968210004667100916101979099155668086452242061612089815012611201551771173991930612671352149065852037353093206901681775814902105273170531240738285825013335224651590810841276114689919798294052470605016057689426306970248159118357545670616460912335372814985164560897379377066204596145280920055820517407099779619631563985632752320852916300574055230496738617965196609763930379229541167868681197208494355924560649331252850166692905926869597738550760131712294164310248397450626802538043932751576464191612506367196725833442884172422106212662570781713711698510817355992230561606914116390400400876393762307021011373232642616872122220933766923792083579080825210528797118079553448290620507744302309378496032660984252896339812172961471897147913545429643197246475961068389054381797948021941659800788486972315754457757782596818115255306283671654422133571796469254341511920731732135077314403160662915855376021684926020231621283307565936637152411373645228514678075747326850328554026413580239130949743731124348319490890636061757506783085396857138433368823986324034606659563584055606983601122473358946587871834239225863796356180106445637800968964939496521012645490771065956657728812112987299702293561544945984997338809152309142728830433656479828825906255154079647009127536084817484369933511011565256530160767801688190323566833810578993775687011733084913531845296844468343523906572849007975923556080204136695317830206383808017222759143106855373393738805230813044762277471917468713483611151703029953705927558768839459243317495972090972354601712671728965291277943221058931617823600203519589275791545736250980000995984399873206319242874088857302029900607365369578012452417033261921388341521276936559423915219323586598681903310086737257454021162842875036154741020850436263559506088764513912831334084928842300200055808679379382798178649352498390680676093150123140540247382906229674115504506976992526579114845326958740578390731370384533088916397016704985416216699741582607095796720123182257546948215817689407203831911891575495867464251211876345872294489400002527782951698579584922052650988629962966109920265609223558815189778927632991638047268396055064726487135840227889109677104764913142035822773276589025343921124663714296232114192780742798095262346537898304755141696397604381527060123085397066921032124761896806917602224212064742725340720702981882534090712263721367398809862873777329867209177442756915037910269385651745202926246156771522693173876270684692166332933461667276310066964216409442868831487805099539098401263683812619981691965125057105256928983617560386400915838888259111278734722057667799025426775374986585585499711178758033623906317538816502928337183375290701698273051492493134491132910519180758441858162751818493890123921468690283945337293827072946611878310946981628828274235550325349221783018195836907045512767958723505062683269190037516214018074273290569768898778800622030333670372443207523386963938565479194836136020516631180960914476249004833796440457434475698995718552147060181345396013254345661577194210010029949652590678248972515585928703734886805401610223408080122105130814007801497863842873214016615028187514098812454563156660497663796521677473502100136867882142091835391971427071555315157971398310392320057763897161585236606218065544256211570210535773903337167356898826408010384968275529758276087366587885399501547177230036288682143859751088092447120792864882332582667591257855614708626084867160455980234618406699493586636012784851437742706889909221881839436672291755245761430606827682319460119548322695991671771050512857730379397177709582554050351626201486339486101384942264727623194624753497008278648330353302865895486641359029267200119938131388036250736656043420814875763591195490341038675238273783377303836836356301749015192670594184798221554297727667849866169496795859735820851480380218187833646848073269446514351647116668366107994453640902763883552686297220739273862734440271819006939938934725375742479371663094016519855814439066525051524131201656598685725939340646157759284653963802412540096394343120877270121012277035449439096917899695051338759115432497655130419206405744494292980630855551729545300378578943060259989207486763783847404150107423633570610615910205058724171794387330903712994460972736021610216834024960357522312421040495315600429018392659649311026659879993632057885941317515486112618252517959038107690637952429679427827447429285691798119529726338685016404092182996709519976863739439254371411705881355220550285279604353309863093528465963716368478509880310074714900307898247723211452111041489088731325168430268324675146961555431473656556167995420454368453845284077769440208693735184323440537938267893425874565407014007315418088271225720595922389818605351336319516490031536617866991456843903970853238285083763442221270641988992361210864077038096915060030498163112732008701226498596264308411864267081713088050750751547958426738224879090307545026270775645209024163033249987784756884212440927374155722348484375444932586285933519786874913580287844926523635690092479968148544194208301951150380753594095315060723419882589317474686688785500424204354101898593625984225914977883487650269930727918206944716984695260435535668795878716436215596263131870081447066132481293644008917640882061827441161005827098023773473014745437151818673731743574262096131624671903252453813298260419702793214213192843112408273597360696876972994573063874790759334857489184172265219225985556940026866578194744863128875209149947545316319720101442399650315148635020388932063298254782949956828049069408182768257399765039421382174327781058401306364806683385944481392974988069965372410834981121995624016927269326651699598179192200532583727006381371594131549080252427142298398879741926219642293923507281057830903071474826910202252449246592209310373014502606115030302238820326474981664371174290299079397258863886141588982638329569822421120589588713441981278468657636970382519804406453948849579773185168655382762293398476002044495314267705578752176097765604865474273182065385154306199227414428198682536886443120862314044763642710946946475453075566374898074490521980145741374884415355682974706173412511650906099619910677893172447132183109127835814812532769476325033255781160918361790088642140594001217159885379021238748558767330136447741871160547085001914377172406173185226981652746459229073758907759274919816546967386335649606839637081919697453858476978931810023826725564557453809677485118031558574019319649151048771744046595878643343666589576263992318735419360452258272993815595653285990577361721860388610626270931129033378402110826383335269487677050361422888006116394694791021097481181603647706365408146002143961682975926909448450121312853089286521620692078200074345186693464918527637202265333145153549434623413223320558666657537448257759717457031466091889486467267117429597352322902788550031632457498941001552967820384166746639730850632606931267057640503126277420197829590279217433816594845408048451121712261816223599894852298080069208483367345005118246085917001575906760156608318305539003533378467591506876162955538382933114950960080653866567891596091768170542329374687690251896278411721392377644375671165007266597966708459163729033935913191002355124850970848735635469239838907967588272877662413429107380947550020776694403057165919878107183494378207969537948894447127820664414993415097300118609041796777572465131966739994033565730809077541327726382228079944133821283746339823952147503312752155394809408491979086416829491952258506162696621881043600033422474713062746582031137618268069289059906769256378843489301960738413526658626959867435655564002622257286490315884563158694669062817763051817638739463283113012888284194602998503750738944032568755704275637977939446675985175376145465101325634470873623081087156282328323262511200635478958210084857723414587345512325287876547380867227359681620431406123233987362088035995996200661193195891233564259874648995301737612208427981020928830799235799257771534843904491312727844339992398946636521274703628762421603153624666587388496189872377712637789228009283781523592282480858317579791409983629373274911157558354294259652009637328450309731572516766872966147221032970278443708712868030399986031662033634073530426799331136125658923501095283039689424269797840209082573011945455158418462466142140110257883247345508360611281962691833910104414262151179290805166981557798551325796484125506796483092671757116291834800028704764211109800102625070503973507238788180618642841234367021911216918112265486950413840711282845843633297303252559292958187091904096920739348905385103333394543540572029118079640473460905547640141962984236869117162840625157498232294277225086885982132565879229125136957948243692397341686519517978355903938012294952008890890696464973220496332560820335601104743726300972126788680744344718389345326219188067625389479638462232452869384177533748455400256440605361635177029047114484707422177731672237320124422581401585107084652247198971650413317258401419009580554255900684248403231728304843471802897349920921973515204809664074473724421193057745813071868131262631911100776133171759626143327978655907574540961629930611875644121378762722690416932434994158084856224609872853972153336986986642852036448339657085046417033322459938465110763588620639818827563823337827464572344389291469357803104178017302285032140808736628081929680586256896541239932118415161391086331199874625242342195698041919761784504636088113958477322061136974827477221729749577965537958577733235035272358519685632190535740404317140850225478833718645428086419652543605903771598477425255059665702100107744034252909266442968458958469119806579812068414652004381869168379166516717658724783885487022152521708595115088130282771384183461693906245323466065934823780454377808612108447782225408055260895617051892393158634114816933390025591106152208878639982683544968681543355577427143911769447867883362305081096142320179887594084964707752210375361449262175399340739389797648091673465615487303950417498192066969011630898780220743276441645432277975878770371917865644237431986706822446085653265576009372145515964721560192737014682428468927213754161238733868813443791429379040908896750587762185784710161368113312861599013999228630946604284860913009754920359377479652870367691562578574422793917871368374994852427101260198050857487447668089016082404011265612790118231626892367974789010600947548708454302363282931104332932401546497098863101713152833744882844068185032278822970731158075470491598513894042821756824161306595156141720039000986193407423324604495242704293634325546531420759980499196544875374199554662058702460749466933701973071437484835227756390044325313299427814467624611951506580734891814047933300264699204812768796136415062401227148359547670055969605724686741459320327087571193434733943250717838899617463308381538743214808869417307459084550454122140139266610731568034586006119386165595898447271181860652513887946147768622786404744068807833197130390846809153556859562404986564293167031866383712985073033820961649295197222546613599029012111106879600443004865132381115514705291981423498400074140557410375944606162926634225994489945537097511021598359338923708519462577926320567282133624620907444153988747342440885465081692938161460929703038451126188711446153309700661987258779383496701894945532092127712746795537322242061508222232482973666982472901261804857755611924243277710751877677698281978999724838997041912474272534492184376932938822068154960461251636607211825793617755962129983737698809831948067041077396592029333807595078341940903360378972938638988277746767646188869824402052387110438536956722836908582485722948370909744634713993062007418658738798724406083672420056890946141047215620933011061430172019394568932860703823597433404745524365253268205645578198813960846781814963270137589126329122805095091310897021199787534893183247585230786264637488323153874094196380452801483302469403606018983877560782270719819036238669293341085916370028357522907414172371282831619352886681468964807847269244555908178861633827561038631744565535856785752652734837929041338628049772326767907501107018946136310590843781140205546077153797557480515395809822738692724839535543759145581913190165496289969635987653896315695024135900640343027963563323830769332677503518650213633468540785512255959862168724820722951243495438774265832050038591595673891583748126184615586223614632241041089662016294965847441042308778922287805124006639482696316369841656762441966681807158121237085497274698604819093020176474689353462835635209848524284544028752716789617516314308299376573530564174228190599982583016863353667564699492252415415362965075236714822056228977551189481507424238667661246076819879476407362409448398620193023881020469016731788074973586892739564339779422872645526097184604180371567749181636772654109539181880287876496876195220289464822115273269125318774490645315503677213450545178684241277447818685307327650497178654064872168760105808541018656284905955649863300112260594494589136820963438491926665552864719323607039768824792489684404238635735821298721261975865129999754780714423282520673465557582897473550862052343890551634918950033871423432360188193259801160655872678910878437136599789060956235785996982841572172465625816498381259786788115115896829651574935292509624756575079879909144648260541006386057718046030044683180980806154548232250344696651616516242499806550181124091751123792989172445843197702983866880553019124624737703124662185263617713565478403469929438086646265596597009923157617871242535312265895064192391203710890394781278042084446501371393265605078057582158900932987901580753828313106329929307489475941079616694029495930656170726327516637371962025004306386993291363313207938760057571313735157087955245342405791618008485513097567148222373471482165265396919087077513317273201582503355096172956626186295467557661413551779023314259318028646493401336231181954286914450157404998354042608340977040071836325217222806474976355504366869058344522115800969402186380618744595016861895268806334643027261751004492479462072515732119761020211100792824869023927996772927952510974751017021308600546936001020687858366603799379164888530245539661589960234203505298713748300618035343943581397210769010585307748520059375734879249921242988755310687575725956574721125165485074429886919699483941181799747970927869080066317247942523914578931194928158215526249281406838926341763689758251983147631341492975934629438872009675643096885056295597789510488067985895590282809451979740132299478968119756380811379733954584004656435821877646866999026035500515584619878406251919405149359858817405479641900550683322591540671986423118005792124544761085834804279417982239833943507468161729678179448678832720300643708587911668723238188801995156885587203430573054495734234534580458768381117244506878357228516051796010782359260874240600356867874197639730082109310531168387655191909320612854457156438930173643028526569204339981580836845744621616155249704618552568385217033262179173070079311752284191867149297218576170429574223742657704190255257614073119187905515896816128816002033197238941347879762387530771772436547966238667218084917168460417270279969458623748850516280930027289887024965311314764202608147103240708344874523579534254748801617098427464734965859776985207158843678584417176694973548206505916406536964571345752791643945144996539160570749928570053934178026379937352454853324823600608112068812672528584922882406661375473509027015799016537134660285709526815278106294773877520086417969963024224360184334957036887388181262612484998334232904239744494280552701787600327360619510549638041731067341939420137885604786995482119637375587432931429699920296868055579723883212863308104229762295178481035149674217127050707563353679621083046496189733655384892821800051318970279721893016787781476392425032965853944497904684697012291969081237964132909470154594999519989391525933167821207722523263361581252798927763235136875748596976811398139120760856999985578529214790122252962755642989475975040053152761660918306616157653852688632017008114246895087101224572481034042363054666074463667991810744711644636013687082012882754235450250121791066342570392175865931174284201824659507686725001064974118784143490244405117936181059751628711270392045276461688073869790878008852602154842191233600386001548022518322301506749180744449417177394812348999944332438867628268023915162646414872468366482165267322953289294802217798460121916790326066408825898170868727161691329862001181805557849436048314522225559483237093496168762587397221153125528546080374212195209045775395111604735139792918932009803182837717688990973291343647616714015694482620714321225135273983273587153639233247574431077537364123455753179240630300081049858574831133075103452527594445783054599985034418168887468035651187501053299058998746376108498448590226369590057954794004125755914957811730059948282671501100294586963764794526210147949160665116059352493735743172065818397482150995523564228218628410057854461310000785427575026299476392087415245013050795873607712828250168370742484060717139311943516647200330162997927990315992195745544736417638490079674285301919015575204064536877329505145784036669906581519400281001828608596034994736801929443140607568032521812522281493501510486814416570407480640268103503551173498947488459094469623621504678479672568733218874928841604018111243085761344501692186778555542660244512478416738736261725270887378773565667598665314823728477106105310746992276543429674250408625592401224833995010161853543697364131310891159495075518999326403706683684194589412729235439872579731110868711723416331512982085782433646895522045636597852485413709619244819215825191090705021862370354998773810700727595076271717987491667973689284369450105593643004563315021090069002979724301005934686822748618672843500434747592389328477732476248274710842651509908380886298367034328130390900153038240479063324022548526916541085512152582591056693811148043862303219612500611066331914981343666934430892723555854003450992420449568397496971176149626371350691601665456035561041591968297893702208287634908684498163003042071787860132224545950899671154036361478244236613872078717368434473199107641981843544952883076000270885705027021901320147369567509220898985264939856546247697465333709585888307236442754370478427461994065549751189967250009272388039008026714702957538552662798839219461993969284571131463287386121725835868095997229010868216019261597295775193265112676121398651395114395748181585770243458532635396826773397852789751388267848230527704415565318906189606432297502690217948775994158016856948165338390627630824591222955036974678813234950818134721366273538282952565873383816828148488768036199121672382742985659222236206193251466215262349706055515671039433573329689868302191871944463240837101881966237689900184716777048273231398446998648628601045117180236684348320615886457594211231901062695344008638397664546994301910909579493972320980381359138841239097244948416092861130812945540939006158637164999327144773085087426133189064174534136269038297791128814186018606453379767808038822078333923680661784476571363883534368013108762211807755287277704151459271036535720418260385520006421790695956732295245645596776656277326320216105662952970654382899279106663532983376421451056236877844744613539081453757800271115491535315291648116095799409184077520124405914963723481202927695954545195945660848066194145111712007407570131463021907338768962804547620507960766893974906037101112310494242581725525498145771247271875927759250628286673667308991050638345206977629308841708163410996831594981859225623535240229847656370891390820881084036644723640899918266509879259615441844236479427286779655581141831373663528898909596401000400383391776829072819225378757502094082085695326735038470899284028869903376130168843900032779632828959079635165139992132451761000325400701762342382743464198837579281244759596497180584051806013549991102993570861736205927080089968571967559936765258044220854449879323843325795804529074010005626913577970323450255120280344149948616959571088784228363841893614967987212037191326674855611510429206479538573263165688566300246865551826900137441157907232660118887743712201750268721057520364406376672199671074324608129902151329803423705593211053926275810748454896460289993845476215071431100416712017442440533023683844290827475046037541491293140760867438227551877725137378684928936566902920629183261345161984324351296209253702276096658872051407809828289928393781025436126072549837120525626615393081194925616097083270043061761821078882866669386312512957219205852181501190860239111940175897541516452380687010262158856288105055373219462658217435159380322888798136034152038136681250141196095004514674773104063841306918824157380780981089026589973411660003340628655664878551435041957544750678421565873697883739362617464257452289736613885902257400489619947259780052628178013571441131374364044159459566209092098331878326344662584674964015659815844039106013753729907385682329427237655552237759349247711686887337177128041037230104939678877252888786293315698005693219700235076549449491709853573803848416962429746274415084305219631496833193902774717368729274271197839379148904802239329268183556697036470314359032678805364494955328966250774666084854471791567489013093766202595851438804215484028745531357721773063582356039653887388302892197102715738229944669927654512398365049845247951536925012872681224571496848779285604155969075780990052735332560829626970242107422256677434508591058769786640099842891097512751421222470128860138578135259074553138646208163806906228884786431062668680462464717825906440329635707260736177202643545914218799889356484444121268494816999319127867541458832954245207815562588537078717197307455653060338133826852899532473158738953917555607768189796839458667028470106598189497893943271148683986187118201403345958006160143274248742231983492639072725033166613219060653687418353321625960762792466404573162019360313117430779305843144366751237938632715339082538046616893586025905743979162637303521540591850217577965947014765591842420834367757118202886141578493286430352951566191088759619172707009221114030728498196238952075909537038031080748336348946746691926493198441367859090587430118938569287151618786986933203817235787752880474627763315633997635422978029281229880814999503865592766111615086061864872318543159025346277915776740573801293102652702909120796755269245450345626711803905220020307340198564918019899901999152158656610676109164023928135172097793640194302773633303935150974820362051467669871217312171160228897951260367472960956038029520800929278771677799510517482409402630733993469702380118739516764451367045742292310854742584244598119220369795694794630126509799352350343995244535998587327450463719568522883915303014527728273908920551885445753746278295204003629220230807018600743467278540565883281600958825110368045895210869342111208887749984136031789811796025433467559764274219721469413642644153141360887254472014898744995239225253061376512159046730452299323114665998320384485601221002462008272898058698610682993439876356183435337010372552264344272077095241896633965850018439153409029746462407412014291322540756139803550674488114040554053505889701674278524223213599948925248460061473012915047689767637949267310529230349853635716947629466807575077159686288283372712555620773896834776902518136263354165610300171471335230453630551836289085616445282701553194469548728622432118116574111056447456112836220610829594193721039264017919790772441335524775467972322521459556502754847943394061677041452054545366306030210940120543593071245578504503994969275015206364337142453816000575830114234549087654168818238909093361886115894624984729877878398356098067311008590139530275718203498817822789317733668924532040740506393346716311502969753992732572057336859975188771465413011639977267328750857802327194887387860105957649111827421304591194685438640380120442333693878049566138061788814189225492534379049515386324167737786159023064537644968485418957647387282594544079543525104609486745519586441054618405850804852257481334741508093520519672387561068912249592444840172560660990840134381822539247238528261927590681998702181612119734505897543723114392884100831068878586587035376756485931910445809509995469798401887361012023465962759250792259304864117856581018367187250544073398478162952543701614034858178924265489578244438373694419486738899225293719297999053678629153620992599006442357052893685052020733004902683952515219966693265078179953489720900799372503800551177031257794537433585723129797335981730307674429862181098854131695802608761554171901851344166240782952793021648279917298537688882867150407199023904834033185445082966033119314508007621732348099285897041539184940042077027230343912104723277151343691257563025588551443459302495801666287298487140389389223012589851218965212781148958199288366731189159612236251701530662477239981095462344529386411114858349466224897921081904318818183736894529971358569482034282848427879990821631145845611114778385832484413090386993122253991405422529464963585600901358741263524062557320344414656730277879653316684953614581247631750334160220766781456509320935057904558101133486392422472901580443687766819868356443235431826661972090076701328227673738708125015163320475960424274343529686916778166955126015456171704641606176369528476224542081683800211783590562359284255632202128129323437968291843708199331224621362748233597042760218087689628981034690045433633960377721363214075934816628869680540069104239587241988620144468945037348205673553806529352714128988980444220044958355790305669340611213734890541454645537275857233330589676997585648181504257742109474449972978663342317862807158404703234171416092247596711547085551077543328570955288501207805541477314139355237498659564473672511315295719763663116103473494644639268134904594499040116446228860945537031815673005160615837876983177265369831567729707214925993457438789962019072282330186415613867742423505048052235860892179027451666041121983354566741524059777366398566769098553576232360616673859166760173379459933310431904613289171821705926503120583351657997728925718499727270047096050412874473260878439239381539338160748827676394223966064078392154864526825764370068837119983252989864220629501038070719320728089985274561588393827600117058750394770966027880002002933082167768557514411769357758531030684789421496017899258364784662370506029258615952246172565267551719756338261573343590010051823441368415357250188360920907049421126513093845515831595948533560639740254284288092164214141532416481627042711111273057547266820728861554103166196432805583393441556732910296579315488410873817822443963125284616555223000614173261195570858739526239027417459202110857559276076801237937845253479523361961082651310287260119505887245455997247658410704947303528502298941171962952816732352296927982703731730127326239038758984355959286423704764944902630723615756526976422601474520942562654560090620310766895409772465135781335288541246497655112888606090596797384734705475578075960808472899553687730785717254219891784000762285160855998597877631967454260373561330819549113989628054667265084797646183196498866821884413164162001723324115241910307916848878999799609782481428396718833093046527264487489852859081398659958097572082993468390717477867961097799690493661126864831875013872099633906144337796641608879440654797344246503717490744242706732468599352793213421189095408588799865871410128500775537376074718219749211341691042549669988157689686276972068823973264086265239699843593319569072152121526865185639317729471204310502643793200501344317184675569800171056134996331747793223399245535096439941686468373391532444887243300777359886136359775895102584884302032418360762086127909370524544065169328403227086420947070026964464820766342500796879096589289090063956233430597839415126787623108051409843199079665198200806139622683085825440795348007043175732320253315497910272502175186269494603406408526229658272490647599992924090601790945304171887325343942779875829871151604217162957151219341725947331950768746008932653750973780830900492312514783911362253507918200890942320953130296414883366304299812520423746283361096961748912000779930106252714765161761367818180446031146447545181945213930371145357333882360690515488420684697521009102266028075866290030099526234527203098620405706729339144156976376191260654400062833961944428264239922509045242682492421832079291244171875345812583779307388775383831611267010841125997488616821372254994464372127578805765018406422031698862599567194598884620219606626971054403654102028504563211901002692490322021367002624631118651656629985243014492282054558271290946014616789729016226635604963953129454555221861559841673727021510571023028970506818892908936536091099873170966949578345826093384623602281478555169060123826597575354250372129525796188963202469746993816906381133411173163488207647696573509731155057147835621237444493662788982876396907779551833209257663979337830351885559935960092548977740977697976080023507022557692573387208224357265527774129577762051076852442343589819887523402098013301724356449871216694089550031535608130581315138803839217660306316304218284975856261883132561411112657655917115812344728503120270720922233492241193641829519642749228506551145255742277330387619112179872978392017018115874632698706746882790109548241043842425853957573887166347603290725757158295295177882461481537336730773378927217067669371124581573283127286647369228510369625564211814015897628538671167731260627918657080161783054208379100195829666985579151236621307179828767931904065483747118329612418185685361717048178152555173847013595473475513102877337461552858563534710309032428605589125426167600485730053639456642627000036287665280561902283476894084179328660457316032231871365164878388668877394907016503991385850077451321677775907258950890399595022051752711184527618030215929761449481946550942762653537351479733965993193143687225300709982051512863470181714429137751568443365390135390409154673795717583402091544895609109625207972891739290479530798485276718337987511628967260180944970976974430164031546162149319525178789462830523757715759922922999986009608233233437584786158290178087460459729223209763338224557956717451020081351598091878150379963978834067272366115791462152391299602281230538935448572244690887296458497528662008549185914174591692057294012499648965258759399107983024808861052080478963565896089127601862540186826665616751631256364230926024031947567437297067063412980524117284536848956494225297287110096808026740395913116439824304192982287015736951849871924193618487707886157470917252425044077567839114084458771053088341885287244993587047303928889372879656074959796565984322607891647005487626506973331964953134634815764123894340357075417565123968944228644918637919513832288736293934941187061852740421326081265403036486334591917743418269382341778318327505779991282780200415162977026929587420791388548909752690762994307054263350806624544053511849585598783649452576062776389090535844197185694481008656388405535123823970388423304395395416399377313735097533648411296966028733068698212354746054330454874941682604103038354921686283731445607022299575540703782486927472393882830847959152938314646802460935689207372078569979685703523279631780157782159108515679344661473422324297535811330276324006854498422543551886903486311626991330329473583466343212495655396494356130630703760217191140206852489294213822856311747469981156770137622286629469882270926229784926069501380523625787886255361918457137636434844955677680096950771445745311079880717752656052743397207704225047600827260199669302977098094673489466467453005330806980153845945389951359148158262127762490122813218531866011128758199092954334862521437509009493559253658390492106225563079783900722677808010096703263527978777237726984576434353444934559136707862326786992533594943867613125076473347288508974626640609338131815534360858153005603503791620061796121048548952673534698573699999284892686974539139675219903015801717595109952003542512562144858362283330961721860085417732709348097643846993888427492646829837560051518489974325819155892300888898088225595615333838552595046443071939634580051991414337954929277535252208848596786267722251495790413375972138374781715214142799614963304153549350351621804133798855093962292557603542648869149146644339585176648822979676953954332934411115225176538504080056638554436925503419995992514095886603270478626323280815530788656385456326739553077194998773459336135027832348251460912189456048171302904292670809154009815297165629373133240972039456855813178085037800289276448712893439490952845184266402961471986378691020803990894373588542307934848244723110224663258158490066740271942458001633527834965961349871283502979893563361747575319783353475597221360503976330132626978415960106817030535534258387141797608764041559098033054000315693415371960517489863606187069547307252744970786463991738896661076563971186044244127906260973869195949821703349521414528780273744753171555140226968211130015297989324029486993664904090642938110294342940432332859314603757734590829683454579154456892931131767714035887759921913314344967849733951627663216674731710160803433548903530791927846352344098867470348125416306861289336099849266529310347890117540360857873679805288505224656272972535331408738850242230300114003446569800407841144017362091460443650895783061585572873998831293804042104619778381667848843439073278913388602347669794599099181661798920672013303145803279677485465835216440777123266780305072138416768353873121676771925958549465117895766203646728011505615124010101504563013342469208542583423796839346528672770135831850912081730944082504184489341183973628768508199109279422467544079216428316994687383644262822376498926013221360101389945017648953050579400792779649632389421900226024937180132290931116868513883012868820764954665718717583658090081960349636096943990347657379493968702232622430735032796257190760935191702921113910652461415310218493794506624316881472551719100990375116103371516135058969370482550278287794937137067907130907840268893468783481261146570745385144681363368721143788332465632496435416325718684714493331521791246907386772360936961582508816541740863161230484788634796852283447284189364938435584227566143282989495240143980671431578885519209711944754169056243505496025629893437028532968547950281275582328219149241598757725192220182944802000358162695854311862280024391249740806975031565143298856808758322290405315091250600723483868644416696707876700194588156905076368901440326277719441071937021878302188249698529290576051860370037116051973300316717971861270878934391306394481266513720827658683921452492701430857772910396656863703623506967672632260276073992602713212712901990605118259843563115399861495932261024027671025216673644764479102346813780428278637208431268271401556760884274932387246109312078419053342048431112928094063201896554218993739908010500947399420438461950020443174624145635486214132434542441347703440884008058388106258192977123649746729336424486072150898090116420337486881582431926807867700005816608268037452059075010003168054460897468863703540447373200202606716591578505221025891822001998479462397297984042832531615358645026977826941525450211685084185384333029404482005643129043089773093326537341430632811378500052006586073222184358121528683018667222860405394259097296250791458623161551304966459414975776303457088122052030594477938135595788350321909132639112583167342637954511528943761624336225004405738356866067783086574502035461180601291236433198709973539601212963769695539070279178461162971367997088491131120017016455273838843173202995893203076116482580458915665992500952990811781756875272342469113258985978414646697440323444556602260099056929582791916528989533400856851131602768157137546379129882696193645969680678497230785392390122442530927098154801359039479398241093620495153903167110434866969208951517026486120934195012027054255682728408276162116453471397092667971670824503317564947524000980295205206232109433790806060210457287796203176403028650736413958427223018364330379787827741436061795816862686871114911576746981630838983411810517828168737855817925808903026477897327004676099213966093025884586060686367120419848620232068615290204659759931796846756088173318057259790925578291822804723626059142882319187301981538613246909852092325651897927380118637123697389723241117877254369793440010991672367889835541463046952596250272624272374028682438155131549739675457342680659228332190385960641046531587582312486363884161015016839998967491457562641116223103420597843977634692009007694149405160172136645962443989186142218962850401493120623720272469728875629773487879036141141370440124013986363103579515537416596203219881781811731305918362122882136697008514428527128254275634572750117388909998163000870358887091304575828519953942361964504346664960457482112766694296154206115235278207580858879600435016766726652817112356672548119999678287217934980025941525459955696477163507882175304388285838080429675473751441416388507050528754202717071240764540045640816022763998176512107851201903103613464890089650822856853105051138817115056634362287069618106518453885407564478157688431158142423776787610397860693562438701203186392089934211404108255770173578114184952500655332878796350985511335941941610666051626704923670776388556290937293816002927568792579953650548947919948430576418997658249107178771787349272423121457062883205487381535832618884775691209902137228390226874817671204844869676911415923860267397271330457096091848667686931092505366390617000683923062109368130454003778109857455798033394511095105127299208947512445721299785742447219222506936181578047767540290045932905488904411716971077287444421529056658452959558552198950980330322921616834301652120832901606023478254457437185235710529930084149936196788808221151793041173630986148935542457806825421095236802969018002925724642622348748875266522377391034142059883857342674639411447879266096864277355653470427611276477287052547169671758379316335558134245912525105728048775330013970737456221677858419480968997416556661369807312594436956826748772200124203111104122839632075164376280064238408670262132588538952916877115498746862769038489084013951079700322043319952996163405452473849985451381432694492488101363622164803607962191307791742061710241129261377016129598259369488560113973211283524130214576743351274635959209012859235928509190739144416976387529120787329739059751036112941182835117507635219037171861235934026356770432556991325703406047182649789109260506601194369119390913257215671781742385553989309347653004054412771514634154923826748428872731106325935352493021159765023916194109416594255783118643551512990775616824013894028086757001818027238770160521607497957198450579680503957300705744129354377043548838788795412601623222220457788647743725916050329764185936547256437200797182859708974010827363393861021818469572080947553889346567014885636776663512196494152127837126697127341450768471514982117852515011992256173552683008793795486966692073687832877448989408441650268436169159463809420970513666767729105292445607961803853672713072510346738042387911972767454319844515972098048287742985378403915017663967856837890640029283441461301140463390664693177999834171413559339255369522533368475634748954572053084531351476505984636228278151370174315102858063533913340781603598648118309159381929196486898425415690271863654113141440850032865643946779948829117433105492808411210423837854382342089951617351930683138251596992445771399782681558149881877080209318535176591049461872285755226783342418368092356512238484345481390857966749309520520524342398074773161111729711940269391635315658814793890934820493041175753088795177375851388669713561502124517987427731911544461971330088146753880638729383042121331871160612136758004529711793432175523510478246080281353298179137825005305451851383745595519812451155815525746148389343913756698967464095012151791199911088105587748985615601805290879139090477094072393141390964861604744950405479310989402311835411713867826672001419119240997043467175731396450998418461408692860976353541818384369259710565154728916147545700777956560492109029631356064427084614460624446363477334595684364460640479097206305578239331918015384894839984644704685355943979817396802493542439169219873045395201469381631294735596511002076415357967170544600293266835805876950251448762893968931820869467454279256804064450310018293007831103809717204166519992351761744764713500602534093539246063855899647978117174930551571359909041163945652276101639910808868463561630430626023707079162208881930279574408786502224927461772074306058333837979062606533596991319758596732248392945181347987947429764232250152788553630465461189068955768924507444273293318401610685087579657912461856046480701448105828027293596115885781452014806786331986693027371946562858031858169508254454378958199973107544804811492375651111947671535714395150614014893664619133002775147320076265046934977712338793706814191159672087690582130386749148740314800589122914301468165946336327256546247715731855690925265068201708299595943275006991601314238901334458073078034167470942240384084584374233917694067806247342130242442615157811431484700910960511913051527783345607759742256044784664876410988340192826606019135502317752864519021487700326830048583331689511942773777475743078209790721912233294325020286978668142696196738676186207942626239228855231925324623037990520223196785950356699202166927441701635803296148875545334610255878878645468511832472009022762226901254945293677777355551723547853289916317808145067692117219293978292572609428189753715785043737956225072155315076598554564101896678430734238258849994810828789411457582623364077375681016250368176626600866840649105091794023888110789087744082478707401368633781562957163595413190169469997784190506856041347717290475399302075914615516397538443976129305629720787766064018192597408009123037529678875478440527892818170274152382555623722018397662948434106784801851679853244182637462145123967052136998660928546724543529377762220817219180825644949001743791562370941907017466448289426476861976296490213914443178558892207438916347220442748565696060395587491413145476932052585590334639876470483217531366332123439291394724032457752561325759845503300404393857332457661852845348721902188459837974403688386429496691979652837084292559645913519573859005703382052327684297563361086370541358682534110621222405384972359890644601766573316792875499260276539638913755488703174899691468505999439348168801528670728084376720188366606079788659125029622012372659288561126274081182899256641172433569054516603271468337152491103389878495758427386638166029308953890279255718645617050292597931120114583019961887356610645722228027137006065363981941833936539949604417939400863873926303248094870361414346458799775566868944517300456705825758401823115976932953463763151740676269187392868945638656836373862852939106611086108040066127232364748030623083129622744263281752466434696724223898589444454547815720530826647443488706441692685830450111782535676860996500706392138405696053215115414707734355350107767348279862334951107278480079447915988026284008955553620937661825367752260274455898384757975523065056283159399264762636443558623614044000695921034734115460296208294280288805765370919888998172889424326058077525938189835275307506966860270504857377941185193763509404723266281511518057897208866826988341178110288514210320347216031366500564083149626045519541920826913197465339606848630638848922854486549426963936182890458618047888408544738031615390360437609620254250223427555752344949016269230558443346102658096745672161664929781270838747036556032295989953274890046089387458993452499654784503019930611651936756800569121565663988684576333755536893444611978068322539002870342898426852012663664689647250923948678370517372223522777416591856574666357315107569055851546159197039349461276863005854104436161942821274222028023650155144264359189563511136082571827475736454746339464127091482373296518266857561135902016526442796088293753026350715313517351624780679800006863846658830740851637928087032693359728954489918765359772313289266642486693748355085405640241770523211849367305065899021120276415324017179229290985888791630930677177955526952564302721451033066549585199998437477774009216477192422233339725975115921239910144895037573336135583873418860650093266361741212559304556288296054141791606005066397811861347564674158066288886329066795599239427227876611476743986637145668167789456808781551846770730309614074146379019101916483486936378198110155274907223730026600453009355621468788686387544114434443510790415092733397069538197825261192720221469796453590820600596305383106585325565535328683917549667927589247561053181507457855323085887886380330573181081568374044382020480477903841073168591414383096680634933007947182956147058209892371059390497408032820997690413492031850474427104116410018180286183526364473915571165860885515429609533592720218029783885108037466780620414813967371703114479588936749118962735646032499048006927839237196203197885776076949952155706127051914209974565207386994551957758919544552496818133860680097613703904857306789351145468256349604151858219300117062611493525254977369112389676513470879294755759261232650627785047672779155364921908338891397907561376843829083947388964608795957731733448279128933535067053029435532785167593957067169757472250719270894343500034032909231866551090041127167965705534819589685326959936101586246167542598646329020263110115708463838249704866254921568145939539514831349418281325479046503844809137104670560753688187762587958906789905493332484513630419186869150798262360561755790295848005952907827503009491190492666691137642390146302637800747467555263555406048401486725899831424365179657103856123455356437563757756564780143392847702772025579607337723177082720478019830305416138619821852984404602804121576619657958508731549181884685031866813323639147776520282196124386847173880418088721681197320193432571752462540934216298605493283172372080644553008589890852028285650624683036643346807044459483938840192118631619809207512004099485924203716243893435354089742830302374516373661130618098320368560248791864962930848403343617655649594411522606102258559749229580122774081934496434969423035665192913643956339885932853774548689969809962686622049932126013239153717181977564479604323748521213763208502779893993845517345244928065117124425891748561325442101625102222356765758880424079456431685169908646002274998354413494994593482635450476327677893354496384009823828554139697586726745999919478251107235285513417129333416304782942253138961586707075520549466716243239803623590478477383362798793488844030566738183826038987911591310078322070777331227170465307838736092853211322593601795755603159513582694413958627902291549083399548707925066707300833090795359929323091583969022443728754157037695507750735377926401245949680135011060785934992223480252181217866988344613991274029726953103863961578160888282175136027387847120856614216714613791746677709042331615774862434135960297257855219661108760384932653679473340098633358075636548268084543170382955689043293381677971412655721222015517363587068225210338937351251197811763187506613054677260543541082606304703950297569225287916842894500676535364639508591838435635780348179701559617655504543423829302776416960015896592691910443275457887129691044787663507776248132730453702097360637522755439390961529056595421191515206616666654763561405817435979547627012156221314251728345978239993694308423709019439075506772802231880047392277004248339086868582777519395045315255904212996689398173623016385783903930499836220134934623784224553676768408297768248990700417539613965551119976121514303982509304949400654044723361965208794181288694414180666196976350803349213343587048959271953881736895228384866777963431556402031063901945324705721016873734636194037554989366935033125708307800873209778290262254296923766284799786825041840491316460193080140036009355516596570121737172526834850455366600867205046082217080635292049677046651150052737579670197109021130534120287766813018029125572788730749978332081670829713943575327096158144036849083662555205418701277219138197525762880138947004272165145436882701910714191628551383921783281991487131169307769205272282336164296492849452257013125643350987607530099927915357935211672310364062840230526544784265440430751665586597237567029176826037778104082827817736776591581721869150037357262111113981419375979072911043848813780194442480420697120722336225184236681160964088616481912173584262507625997127483953474005661845260180807070168526917278095343906479886302834210958408746671389819046763531299867182941118814802966459742594695957487400244356391913731847851956822649775132861021994295930950590775088070767806953136069814082294401474498121452270077542072997371106824068533092501843715101514163915495734975976338808775441076922473762534628445102480404972232430320386077150283384814631315643377838203840969220028812020219696195190237459900785857323409796028314669094332772598031832406425888435881881914930796187143823914270005370014432929826490583479752835400264961420762619211308889038107193103016576367187786776371680810720246384780624387131327708324978406190262587322676769406462562727383599459660040438199607955340607733983139158851800134331203477793984970126482650920202804622945314427683712355332190070648837303372027454955922512620665506791580681652441574679190831014687784806940038392146484836197702004858916332253230891690871082215201242784436260548549794283691097467675876178625034770143184840683643569340669648854331201790034338479892381103082423913200425176112218858465986944924550613260618243488326622468976730478876742493682917140540229532741049081492196608024455219325898883773656803365014938241589236788716926219727061075042938926556049934859555213886509632269826875452078887326831367932413438209423906263409516654992239189600283706768966027704898212152860529297945151269032860653022124455584977555663732563964983101588998845646470284350650353683390125308311851818660750964490248115918535057222578270796565038494172804451846739016712185011388409951783226969520631089709905693133314264579184028938958751279414494430529672837179414015982037776196876631255035607453112138850638579131555592627740013313235735923917807458645396340390402130309077962684260541673532010495075341566267720907786809747297676934690469582851266563555650545506397775453372152184019055558920652766934028817819531049036546517080613414847151215171306875646334297651131647462375130191396371596379028116029818887662915869036883976149555588913617352667732223708590584622447448345779938497272962500247961655959851382994570271749889988548675836214815741273590030972180834477137618538103644515886631949580370881794569640769674153058812994236112582915592382716799149603454273073314026029773036524350255484631347351846450333692025584899107190638003366479022486464307485626348780939929782727593574744674825261672588545629136098816817424856449140125343703588150540349835727187699718375207935244461385279026684134046181418615322318100441845179517804125465267419262822101766084308691040074954187906563373334232056651557197711898379237750655979762703010043761449582757403274952763137237247961577175577304039697688769378218649351196143397998724855145350010767244189304609061551497170751202068613823375957221275086081162331060038511181242755810313901868554173321168141453728777362341029067999063628947369415701983338356595712569883840985747260536611491491359761776353190744664575763178116805145837988164704239877183932812932045681582110551908294673279047765831895456871007264841146789883733453808924760071556321545109188124296613146499956540209835968995516664304911155742835330715072678781112311069635648999810570092687228025756800900109731171414309411916288243934254042469393910809204999933043828128194618521749002579212534874025034236009788399292468579027948765555951360737910820637808907271570381561706157154524343722659604677675303954496534980701699299687606759115664190969444774695890976363613813907445620967433158293711655908957511481075357747393571332872852831076672150252005433892643212318855948299520412021939444774202229031548651441197551051252533627424796546145936590165974771956659578393866294675906443378466334276729380337041991872441274360038935501533804841974812209242407582359437873744195914178627636487440779778287419381953324040279781922814204669938770132058310991267839098773058278635719823207197931798166886907254766196854086729780857514269093147217747428084493901104403449642846984167998963052349842154355599903875278228181294059620946670359602800678892600168289934732488140757456710512378351663547235928078653364126556997035091142355138477786466624780724001845824404262742119164662138337622000420057401706818978664292337171039961324450432742351133086588220645785111144048905249872946974804924270266907187674245788855132417531931205306008735110872959295253890582809223742022180967683963180283535455679385423301296570921828317960307337578824759203920272919034589093090775285308688523512228829633191270640901884632986410092325115168821076197646071079974898799911678840930056604284671023383903143811345523206812508197008958406522187524400846930696078756528641775865329680888556049090982922098098680178221498806947917360525297332409833612068314641367844173193551535911426691855311852538093573578670315692342748483984666129336839253822981648461070211743505448109700976149738775380130520290832047169346557805704006146087985888493972966526961698669254728307864186707233505228332428415892857331091324606968885847509870609368075624660271304802507979419102273675682304497234949324199757576024108711475607669270635363111303844588073166049634925899376746631887181737591782166801196992567864335622976707617605065946540680441186326669024916615046853452335391725085812181057293279552247899782616844359407434758184481842942114271123666837000004787895667640228517451495124711731063108452715707438866706507071935080951759221410449810582657202334090556317671625423088317910124787932129509457997214644207588859954571855433185675212465732827627589025503572236814632542233509209403742832635657954033156903689531445560724731280206394496884560290447313719242900899062140024771778719439964942550100209226578956710307128432696180386319166504963703945519492569283370705071923961622282767742626927103722954151684085819358054647968330952107560773297988436620060595649616222139040114127691742830334204488679082976072492741705753200115128688521025843801925503412202785849847564327324205825664074495334509941341805565723075900344197578738845662565245528949072153337714998685150384742475100942304612516445802760411063086491310701812118572676243925413328719708861450713277030487440507499820350374495524695232915006224013281772731695168466678583855872799347736832447861221295436875157396667104897534182680625796150011672784218365834441178915564504506474807753148576429830230955170752201669940147918783512762570723872873163538820175999860533699058245657804856652508409119651542545143018955488365969121017893494081930808721342594005579444929335103018175417318013619921157133061887706722935827267492412735265520294398266415806851247055412050651411515005694675968024666490184431752538300210075736129160511098871959484082639622619914677124875032496923112482991200777399692929725159639082058038626064426710272688438182399348065521909655200399119437991288786309611361086363304782897848554961696155861458388448204952290187996602261706273485682934275133790416511308006572180387191617204334094458317819784038727589612185761705182190083902716167619959361824711814754974446278840774663886553010919477258988721265215784470875397505687680600847930666072087089272611917348142176136092737078509786406158104868296311283584684138510907562654788462928537950511359102768353728675441457992011846172361752539510552662004782120787229384337161339406980569350668277464633595808051980888055251073479228822738004886953396003953634288131149970255950031698115473542729493637689318184730855306901861830552691292337162217822606048718772267115467448924090279520100335505416450569359274216950914328451851241768035049893783756056142345998634188343673144103317397217590946404097409360952726284808554578835654887686015157625237176711650294793048623989468725459836592030847540010097856422762065028949350219654151073219440717033398807255247740231065831318675051764936206739127416323632090299790780962995984017595437698126760648590555015605981587456663494222408941140353263993177281215832354535515331545123631531155089408242402085539990777768623644811492765827990307868242333568246560081176441380598950801698706454753419803523162422546417953139892194136276152775588863466143705219350891196968211031902932275204126641370167863509804357138487568116394943740836923210884326637656921571835763809848053483667486097532534840408833563866393940879816867131641748491553628761764600177891785995745510116906596020269696038725252605084201810110491004743538658448945053920707731886790149790037245246631219484521726076127435410861769386299108968978194484833562523472398537588246643472342826199729458329895624747904312235139416954680976072181269478702562579153542009114132450165066060623637639932882092043377448769500434823355669507494822982556593424898910235380566297904658979923344293906675837124405917492239610672930005356920664508998845056861480943733031504340957147341914384071551486806937020769952080127445174277397843482704391815868770658404705962661819090512894810681074792879286119664061697476669051564006268835092038195631432234965015385730667466706756784118724525297158230770389671785996490115993933025884902313652967843255437885114120714545208445383692550851929654234662989335777765760000234268900016556015233490964157970808895691579248626067364676299651849524944641765446845424219988634576301711515413957236844585142035160899664703405171938961286672515927912848036879132387525828395927667809978134350216745627636873415686040564817439978437201322664351517360257193750789879791304511414141423822558203557558535130949025350626434514491673675964609109035273192074064991623838867498161067893920569275754264777287542014967667781778561617510581562985875592395078769708320651619851268176093304974227882226180176161252265675030081927287463448266474528908999961256764889577828900168643981724299053428314973859159025081308874135447616822394353593358196415995999545818105404560290732751744006234056945171793829810617344091432610309647964271706921381693688787099385615288892464625117403264730543402869892525713835134547102554059131836179598912516906783422390587071618655821344291194374810892368941957991110778105685661641846655750173027180768027998557802408609102923173877931178551939415139687286509085049896119532647945502496168980714636803757468725386043197335255606465217353853211357900680811902390860245090880207518041760153911611058952802758867727081667478470410143734248730262506442903212907608098701880020736191745643739217939570235547015676156902452740410601016881246097165706119091471440286474230562696263180432673872166975991587091481832745698187766924440411869028516482623810322655450407557828411356377141552527052788319698000721437068725430450772717168101145214772516098149074209772010629469476381490108698909527892343284925872501511688776910573791106009989216800923467550704089274254495027077127204492197022988751328895878135556071412566686213644581112565307862770733589803738295129561472432221502473250790832829668729414817099958267163367181843566486895839143298259388444380899206956959784450050188365641708912116308761991553116870321891972445708463109216988052818283915090206708756046696035979595380898545362996992276725660372181585420493580200135052785264477662006776637299490725562655599299401690042304531082528006861098098091822449633544266505060815484568754886531364738526377075792660116120292584408435097017644434092323738263246091534725579713351416740831670901626453708137459822469528730009911924274767661644590367531732436519813803135615300179024702428093676906145804561549646862555501893701857507361505484718110360329144588415145200071873266631710133297096349959611350169041634686294155014461559447987545326832358082661277692942497904853142701763202868445879032407492166727736954417985856269364099887831453639386101564260178332387614708004542793830630634264231458370327372737387570850277109878513710578818063850271562066602249700334190697288824822016554500334772100869364996564431964810608415596031938097159688353171427217749224739384331786088910503037950830303552080827465670615730328702643625139511917065636693196451345488628644289886308191320704017136793630575787463072113423516553878177718887114049689680195565923409896951876437658361716176532543759271333285168491780605541468250993926740835046674510172204278825082141019992435255897944105908616037988168322749283663303905997611066260330246459519146263986069230312336338874262530302029488878477046837971420271473229582986381942616825579511562100521225795648933636118673290123352801909325488853258198094391991521303906166967095288738042598457561304904361264286979694262224474655422775579287068177885677851671108085089343039021770921645911758895204226400698331655848872386939381247738039102201883110540495657036254403829803717553965840355475350067441764754049581784661625598248418423467154270033728678972767581752259030145854177901938830757365299069759634460324547727956752040597775406031036075998266847117427218874975978747892875342633393352145052512656823498887646892640112695071116550473606047970153688422841924397389049040339745833485846405530115926278043835408652158858024239619939329314617431863222671448830320259201202676844481608972368291993133547488095241653715740757224961025024948506269913535714544310448072179493948215519890871773370926867111580372762032538846899423833656849336109814696339232255108265510211869929964961070076158140662384304204260787269293739272377890915133091599740569732261967535506583988140257337645185780231839756609746677396868844892348528242727222776168398175813165490787978575010270507009011490826514448738555063573924483763082746400875476401566739377403692854539325716649519290335893361149414365863124318475143971631789431110728673102741335005846718846231136796863013848982191944061179961154890719816519343456904303722414881639975614046977023409490833041181481244091988124113844033342970415157230917237411429722403479529487961511942778847226895630931583571993884430566731436520231922920643829814050138853696081259682384240084093227145739292129533288685316865493445584325047746443826098750555560727830523592975269625460227337389642947063382954364709796724873042464230643386530121846698382337852346194648600933080833628899482894488857254477039605105751846467198698810650889534753646572487817819248394543837047390128924446215799259520554424696749475606970805016799061630783826931753420827725701966611228961303227437287700952235922557724893006284131650903849013865768270277426731841592326109408559374395623893486076876309997779911285077434619264991954633356829585426140716230479947844840113085511386982345785751306927593568234398676331586420828712961498895130319818964068216487323911138734238806397771928449401583500272761169505385516046439054575598798461366029894161306277558929532836993736651005179754807390571571889328504952447559689369453337253125364771217313207117700162412694181536634239861447867059333884812022430966731513897512190214255382877142194084673690643888391769069067167508050791385654395941122455127612162707585914341478849776958786283622793258356647706182820427898963586514443402949777231732139472163648238248942819214009353292300688046725278254896772812677713908295572833413535333634302827688472297931402112856486107471663731512127976236208114208158311006401385396208357257103180038762443115791814073753774373155205213583139455287063269522104294958121215004306827395115043600921103573125243400514006725549455944709107740279675118419295190920438823877875468770558409947512212136133723787690484121792662419876603907740394308848832529576807191584044358618338506293054584090524500153555186323618450787807317947726724534940563667826449040511722476116152125701393683438489480447209190047443342687810785295411334652383448387918979088969692658038417915475728390220070919924796600170605403234490494504063447906916221619627213757197219991566151049632161239418596889237865937731170374422129248049047526289058629062218935489485089748311836109824785737685814553301038621256256842626472816162799114322281918073267882629621867409214325867956058634437648841983595209096882492215818818561203451592854423228385577326321520374823787317169117732958141698525295862521509923086709988177013905444831727250643727568369250904147197066053170511672214124044363535919416914244002600909569921319862978331534393432353988392914861224102532602956795481412239020068169786632561119929497521329046932852626156944242111260133969695381599447330536536609255958340364387668485372326003835160397267962955498135599039124271941096233798770205076916881368173648889941984169982693535791203422285407045847020844165137435229334994700978357646620533399507602360041013648773058771007454005653022972230337187411355088429286593243482368752292806066801065504955770542319711535270323504733486362399256196377279788668164002671098672720753167628357113064340580250423696873029542897547484548982724410850023351509356329403177603673272820593197151246178352826950663464024530026105063365439583255667838479193286543906649351976330774339159439427007431791155255939173044104279506018521433085559481530450356928716305566155056182676418576577661515534153268847561700592207564489046892852288138459481509155922318932117036606101544855540469038093094854614320351573329237674378533969730350178671908803460149702037984997776360020004992813876559376572567354861449030875755651830809710905385770350582142438336930505208610879568089764883421759680604035825931449830622762173366391838014881997804003942922822737272418126637672250953731016268187101775156491978244793993943094303049151967844325190831460412108733756155362099881001759132142399312227958907811633635321516320568461235321345317855987208473522233658839411147670456198910680644893610058032215207738927185041392789339920668891226278822907514583367159792606304834207745961271520876707705810903224541436789852049244447005198939945945221459517973364708661529364629387243646438311541244268816376111865941539265310073336081238286589411617355114690497614406967398437090113751551134009778396066809543534490589941913007203720920616654983509057700545181866413954207308186176814881756405624866902034539626499681516983667185477778951178405963177163407648109337619038149077097953199731540134072757258758128320922989475912167397536124538934026109676806297745215132395783869611149400230337886897907079327432465629811393570622523003538366545633677859102077137823600554159802080977929860832713494022805791539541425251059208444536864417551404772932027525862218051936736233219031009904891829400177145539745687833107872304296562908209222300480910504460705113430720331111632791891281626467073007642737100083561748346457119216455504420931582977761189671209535059092304575629107944888174521647596700577165766387606194987891248761692154383829028455760525386763870205662206566537014648205764861455707039582220769363292182794004910103218822475792239840078792820429681478530924056137717329389507649917541212790798623968039815906166719148549421066558279634559432814136119561690747999331838632690575316832369111544775129201610925224691062308992517311275552626849403100938066327302049151471274311971691743113532945715609139905093142872638109222252112206745322869829150362215327777682779867032028991999532398130254285185879746839269796755501365434577966343515650017445761115963010556328546282495372692759440148300015474912193693221250132137403127401122034283103762452086370390024349265123725678719200873886555839751849964854392028995333049135957336865410580614026836752800251527336025627970201413130004793261140822228016390935838943606112186115940611710432167306065886446290420299759570129613923228601064480063095791541966626407785813713086148900818085193416440561730714087843824209571941026297108755448386448880862562518217594052096822037171782566596141417997641150678189217490453170690064321098696183713581727008441424323308488036911125325743806552751988448067981954782401982214439148217048299512844286867174551901317981158350074697510344688775450240772047440159595286727686599350983938616907324860874802650105964822588772133629410607542530517434611182455411865934003425814333552544015904889830005922859854083283541291931054175355788660205279349850096447571423373757893332688791092114980745546293166238530180208306643587324077891949887372231320277035084467817704617068211289599419068052382257875916747487770332699678906995212973884095691324772514377694524902833920629287972042359173775335362676465842382782695053229801628135176618056006660731203915625904284854592037860555980332351092985585840882095556435081619466455813488804148501284847182813297366899763171897630342175002865487495038522859710722959951409664845739579317525333652753337874534028813955352411331626510945428662695404972853950414533633429090962694687917289377651488769754160039421240643209131813443830894569224725306547356849565862808170301572443267109905100151466009573988268787088871081753390333878947903863441897459088873068083827978598341680364228090225927808372276363069910096469180847197246292631844130483996678079560065499995272567096804373905067985934081748111370206044833106209766879974092754283284564040187439932973428832116978157247356766641343363843288574104973453850626520625506504348330886284314844256025808995544452291311178009712168305413901252862486792374207809331838803452147162464916814233894119937448673692074370507244524578108572912348365825723322891718419406124268214052758284644646237284289155572755935109873597588648057889695816101491486570763911722593955779641862024673437716695060218661000247921350325749929507514220572895406371503090959782292072306926197610915994523663493606833494110998685606045298663987131831691379667581187635750470124325535858570073164646320318429095536047341596385408181087589064124135341822658536546147736396214585705704402692318409599274276494432638520504999749572856922048402878404311136203512884260163067047447422509069364337740083470239442083653656863653753202952289553365995764509504523299450294858604000795302596198263064937311894732448739029810604489252010401545112957060497275425760255415630651341458603680837018463115846410096995960483616101895743957420196924663580043089113766763341920040932299565640971037423860706696876061618944918289800837371165119160943341154010886557841120453604635154388539519191904858642848073083970121579125757136150369344762121839786937689531997841214850296222756397238252056995315769827742156160904894456964429909072553613307271363929866015391122472344764379634773298774812510334502831684210357346423118635495756902041934623678991203337514724642716717833992052338838287491128347166870088121376196413481493989065296031625071998667891835067172045140131577511303440857777067779421752135306355532613410074623999326302338537743481564496135546716742023437838403597656609590459493532941884951764693282224880189477060839088482334154401820956687348798525129868326611631615787009231143472946735186223729069637965741185576386919309109697758668754567658608136698789575354662089351211033237295504965874203826310000642964559603754109488415729115413056562044909311058569854513874499967318175671950544821140597184498738156557523178578291744028612539895241235709579610227591302969490488915413300706909543480070532206140307207071547023909958595009561850142271024149918279787636970301710119653692396154848791023869833293986265577115079489645853489718920126321311707431136662773772728530951776663325089695973303405126151706876092562691970229661155557714365274026268921270851206056435581603517104547673764730874022302023303983473428524051310035797632531869523965870159000805379146676136390036145882163155480156778373354032248674865001147777270848520444790167587861739961667156288285077956554215460499170555175253393141349053321036651009206543361388791271335301679214095992405693957950388658428514231063508653409934145542648977741508383896129189623879762495452371594783970954469643970465900838290120790792744805649661697261466530258614582421291521237331597267689387340256231578157164616884009431404181631147879853406066028943793117680652577051090050607830746628901150064440424291570551144790228744242442567274022514888235696470027420380150636824424435886615223417084098975127453892645273419833006004857024800494667747511086379801027752558648851980801742747956106471059309632564788632409602859993120727099951751704789569114518299036153605649828213188719838573869807145911927473649264518033472992184136843604097357392827939260011229402628294480458681267813752123895265543035122090502652016838748484947355274480301678874569678041494854871069732274713385369723445694055097760531223626228827858832901657614409796782796736560877728724400722338533027346549865456869241022996658997357617093247135726670327206819974608900306367795736115699087392981773409340095104179341730710448342828048025023953383263408820362042994560337049503477474243736157408526494133280003411470113241137804935162564870963907832752694262861086639085212374613867498057410905361104502558685697386526963697986523492997992203067625892255075846352500992191546409110262230697690072113087853616781856662487562542507846428292773343799050030533413980466864636804189883402305073248414209032988860583216288555247700176298113400256937106848042609688260358093321570159875328116818901101142033778222256126376486812099135426814054204424788749025565752898633945275741403784622438495769774870447594811609364422244232636899349421185307049042704483404434122437174387672862157141926929138502796038252371863085293770502539894449321521877236551027505795190991751436405570901456802772819399411236658596523151366996694902308420835567604842275983798092621129368754885473286558227090142318443321092830850733479414434224539809405774544227403807947101164053987034770836521120353987952148826919767849278556584425216354898075563155841596057389091953809747239981396083663282699477776302278807677892560200154788318624926150807156708469164724032255801388274123276390938313878141829685910427796906891790233399886730124695326278990754272222200923623263666275775004988122082152012515594770290259897831792328374041371537704541948055023809106378336337778189740335663725920394831172593738681725116828024779912740676624465753944341059849623153889261302488479554275412493004321461765473642883479764785698058648279153845789361850498981055571854509918312771779630245052080539464212152350600418089585036910194552194987455348570552940419548854296439863674812879457485121696299110708965772263362703124140796861693995873350370352613347838058252696441105479692429077964543056610160122401303020330031598649521617478801718663481232723478163160906537295340148287861250098414010057143027905962808451885019248648247753606363441913391931529752778592417296748211402391794549878277940962973933745866248921045466601535644007421066022127264275122101569963098868350788532036594942155029290521022763885431586036407192700342313961900198809083239207346498232815395126514257340698561280756696987540861803540982177452747611521418405024354641033919054198208968662230427146120463198572366152119661894985211401774927885362847727814492593483547288807285281792419538303378771617919839429882169956261786508316807321832045568722745985238888872615364457254213814394055839141528623378059216756229105694723798217551896248942582807253077393919356938724159388242035487829845535419220391543041846602788368875876221051212695824109975394878604339414221506915701672457494378601701085126169985152050313012240464585163844162629170866059925463739787168043652698544352078779655764175836012224790906193871270089903187094494205847204474240124689727831725143280719071146583227005666618814716350561571155181583219036382589971814596445845249210158294714410637181189753366924870406954013154315398192880945869883528447910655401251861806171737233288785772721027412373811624624470634794822991961180812678248061273006966919536440659636571035552339547074480778477247158833589360962132017851786080369171253993778053335892149848028611448904779097015763487840933533012873242436613884355941953773064371759321666931528555596730486724988943886514229737683515734402256747309693579546920873930864086309470283574291481356522580171150979945346011629524205476733930802844469458225062878055075919412523270256942044300290007258526592998170035500417136974000266721501469581095952660924350575328612915794774785599282950848754049612925365495053980931700500211518103984470957722949863669296515527243232034510378363943588503358250431487653360622759105242321678052296350447357622708502521348333049438505725152578152838837082662110074571007070268883460888846821083327485806339432564448233345568490592753581533603841096256307030035568348990306331311692629336592150128718697949616659054697906263294940579144738882027713188778327766670253731160521733750615307721711296944980039197078664045681953409094221566627702059711871915976233993090634332226483070137339350175793603072565812078267757647390754858711472002016462463767862596557300204527232286944409382541726797724235510410262543603900824272884935496992666998456555374165899387369030761751075544755527276858083626664145383723017397820019975329689704252061299100569115690682048191956541853921240266728508705740954873214794320858487193813526829484100227952910146078145614184197407339311995687075940023522160396384153121558043344029739157614832385535691230632244134069431824375044902114707169922611777636251358319073641816759552039169421687279412727426404612568327424064609485477422771559812179644226411205239731211179197944923266154595815388737367672380799048441572453185894576997012514566883622782816366665505638236811584182230230154374214426701113355550589132872446601720868029729304642492229596301141966152042755061714770611946466396196388405669305367086879391779128897533376381872280211042325069504047675553262452295715630661049840533503875609655918380235546693763503353280793462573426566001651730498916107877369351931657756210241462814693443459655754669704455943466922856297660400772441393829874596762739905849529699886978076133607736817874181503642631539040056507935330831715133125582514126745020598047106130963930341178373554369955459147037779891703094154394478213461119081544555081951984669853275688858522610947931798600064441481149262692332209953699857481643577906487855153070743016326760378090671596253060464450887850278326928389955458551944495809781102742949419083835197918335091611209501714634931309889060374870881993377602638321667695493818020978567091589430478104534643986171601372400694601653636951557365020456866175768149889742994902320246262854242242140086023525012336823560631199494703803346192386295863149727380215891330151914090553611745098966006567983242230874655829783365623183599277742175977578670343612985021895043854265177906279734592309047254932532595769107986236183679795059389866680473544133277342836403810914176948498027937300786301024355843223141320156282696050357456294480127604509457271693157653557688098777213710099261271903944048171426733229493668779327809233157497503655857901533632299922966676750535612100000364007144090802497018379156422397658628608443989753873669197390433602244117541516042716808581571754076642003843750677398146734270724293641403461013956077807242373149793050808480478645013823130954526667014477048638780981676633373151084114163110603521539318392134447119299105798230548324196182818433958707821765978601967509059040397895893039874037063259331346048223136517972178494913269705015585176307048180908749468004055642291753834339134347077376131383525361129818932794680860239632341049694276641497813367762908521231640498096180982154268218019100797659897931777898759066179241318761287298073415304879270572481803361721976847960018054011306882291440237102453998807167701062772289561335618459465714443839094603528007802130375410811108669360661978338131034057141285509563172252080216638482282577538025024070530266925706362965581330266964637905790780154580885362501890212856885195289445185126427936182856204734656562947756582221900068200469154139587873317215931137939064860765492463277935751801885352584791535824891654264882763311084820571655535166403428401208808189572496229651782366682852567933055068103361924188071261530631033669728853819279441530504476454962946951588126078292191202925701892759174298920710047237335223870331534922511203317557283745502907252399404564232314128759146556270834540017686034542096762199687613054736682825903921804468622775958665158019583505110725087663665267643030763120697136680282040629899920643655954656991953927950985988510356446743482744060645177627665985898059927002437516072751989481107962165992005957504621962574305283320804891257653490809995735072658969323111574337513800902364727771932382228526502521244388982089246797948768376276645679896603516607828905510717867554707849255682712385529622895735456381708008628459908877541945708430458400610865297435488419852375639140141254680736771000017160092901443684425447081021502927337457562739439703619067094074932563390235935152605966678351042360745651582722245324342066585280739040754297863582101099648908022664642088341821860520217358806776353362966704636086123686105197237142752146926682180607090925027600141925686011113673078459430074061820154540446325040335097931156973323000201238976356210790175751786747820766289120879655478895966393860754405437691249068552121254113343687258493940049854415236714837493629099908117432076494295121171289423108243872228358988859092706784381660017268480019877586040719626466341615881761761090610226209199076454514816411916805571153143523412590044592896081245452315471520769079954574596517076493510163580793543043102132486869251203309462281098313895192712569119035797068740919536101118654281513684383915226705079862148323431549070701755758633063056478561637653100854743383946374813804515820798177553144140868792186045804715678382177738321901392834863917970245158671803047087100724509172580415844047878331403210924708054591039729921212681885134225471613208982144045211767809045124334810353007298895084012001738796563814696004350004997894020638819233319022618008518136708178582608622213599169687311268935286391511141037964321657888132947093539048902789265342185260434418025208651001490981053456069079579975594471337852813059996295123252187796783716280985138801789987358547078427301476065089595461582825257771039728204770454618488080391448304427080132088035150145062233355703020642971803118903626179857317238683235742737443097887615675075118479323011865900274908602563390699432836317021835124852839232463976099545134292060595206881790167136444419771015663899042817814497364529168201788530960942570618228022555508072477693428102719571024739825474063214844347168677375734366225608144999182319833471023232667110724585659413749122480687246014681137802852642196161992553123234747072184325081965403105861421253037077913783118655809285661710079224157330863331556809735819824695856004495009100704066808008754136596246432248040568105228149698313327171380662612110723036900908613194094696470434768131006712900184694961016364509746482068962150586978671583785364636278414589487585594704256940174041106613955144480789155372045540817303917930929900307925137698786406094008115429173800082938792194634249122550705646335075930350061342718496687364361217688518014342823866698939774824308160624026244906525936087413137930667779118144919271347833684132245945050066337598372929358052908047630971541342121854503159889067404446188328915287063920076971419246750512924262588394991238324764090513955111537494263938675495148815115664067471920337387002081750714613655136763219004131228209850355087665733074765964095965300259886586213163026051980873481127015878445858321651388261409122781467977443962482791362093637580610454296542659274740599083625172807686476533373174408310067991008148936279380238811898089769259081590012083768218711696451389952273224111884860630941171868241776472633198325768153828964169933648424607515851856509767382452438102703650710130644814936870687880221506263223638222336233214377568438685188134744190215891643769093094523313865187648321471566906727856146645303479004670672064729767840846645063583292576060222633489926787336073269834589158311943129819350749058659870546939589107333007270836412004651808099176506765440841611191844668710212291695292939825228328268734554690959071124807758202532064253222466913439475725792569163779068188173073404160198417463456296396417816331951231377225807818104932915754457240470200432205822316431806255772444118799011448504857975397614204973991142022118099387352537648536839030812494938975195924206900354951814164022309565249051788301183850516300497926177674886609569494108298949688309902029244224367613451334771637139645854000042574194710062986849174288463751463669588775901245272209392640528040965820771984950058766994976162265540599557282497217564699638924540256641827143381665157489514021026425273909591523744963179792203770682990709180247083914716179566992386193298072716259236589532078482611656846183375892832954920980102646723811809429319761335753608053764633632561088762673053919167150732126581570435018857264218815060565601835916538322390347531117597495249491928853350856797643514401341629488550653814939858350667639082608776356164068185131509835813353200839036291282419069977116751882878494927000902981845888814785320197046623058076999864935089145527431597389635188471333898814883861077086006129537464191540409711419410702612747782128953843883568092275610998016967160263555374116816249926635033383376274029545565215896172472046677000204130223956837485553591165220296798941093184511407189713339945059428656257147841773318123684419338055707973712883081345246279059556745615924798732970316156506304118859577617560286077410652684344082665924360806145880852574470295327970463462325957137055677095394529039911593994920739878182929093112794651177582360176379419461202009190932791727781571725938825156775149749704065021811767985651412203588039485352468576748006097139542076753346995941286967899620611900928762411610351226511140535907622465493940568312886706372574473693598148162445679886104262100634047593006805835397107412209170083644728063442347699307949067101127997817804872919221727158622217080236939221369577850720090692072624634162545299217921511129392598470289953125670669299646568642252112024434433208024766122072792481051824019376663144040664767769218673100345753306492554917702162642745854045942380686143495873249340135717625888467040676820411462468061547481689013636243399342205165725023526407460749884889332582153909206340264495998433668292245174749903081204103974505578481624960520874555454284624199877822076462389924852547823421592413840426199714631333210114690181385609930798347942047543250845311797339410329360424751923694683988655721018990679603521252502821704835185020480341507652795800406511115182471349713252077714938859007324093712358620300106913948546754151746865522546985235341632074182972160351545024219399417219030246150727855666432923637851392477960317814728451639357959814909336320535143562216061716779596055423152122933554122699855218563245222137750626001956582029336842483771070888628429822044082068927731117163485056983247150862521355658163628503185572563593317993832618571793232708925413440552922488059251624589107227507120425450215059241711454401833183073414602077202313436250673623467989534625448208391478969144423703561877297461105760140258086132473043996084551730986888641850379823047286321496886692792767614075368171041767349223364312170089323475373610403372657750058144795393284541035445881124690974501025043484254674265406437207816466592402346065259615682170384594250924850663759190463245026148924178237415229376939182146801444293657525785743727274377544501120016279901536164075775889530954449901927175153650856844746086717671217615987153554917162741283753461052447605706039120418859576359988728831891700840939506581502876376647075385924903518065496506172668530071472747990547757218922634788590000229747175513870477955494567179873109808483545741333339190220331702802483097551738222983806930055710225612504998464680807863151320747703454952772398636831668858573001337722070372211664350346338340026820073710286337868223330383132271789934860383306803140901981945180835757956176226818906378463177909059070691038016854057579166291478685773190561255292623497825301220055097833228720550616761808843458410777194239502599971415623872841175115926171296540709266454793623244271818775021308743188321184752346518865442968644443366275545599019925463375668615278663906370758766467495654425658448365984810618644506294343519195841264218150940818848198457315877734053795345044061623774026190595329899453124631532501224844063521943848395929579135910402916266929961750783667385469535420103499941048618897011087694505378481949363181630664287692983966590152938560550387934476244272699317635310979494358879670218470615681761818550629154287830497627857948733019303925196081539406620358969094763316399815656831296136177432567482665412692955938398521776792945199168567417741108102295833723018583260895159436905703002799254981654909200277038088996041086679747615802817093866798522003285553165285060300956126381038932120369113832713871724383724331990846068583684619934226300565063679833276151267342331864103485457309009039298095609618834713235117936821542306802994889790162407736197681464048470163789428164781130913684185758831187576905892203916641542107636769667576082992183972415335117971780777971498319808926843848493913309266767163922646799751413070958609421226936430374363457800019901525956486749282335277205246634785159696004488104785204797546379386447434966451420615677194345526094193471179190675090260429350605324630178694938122018565363281509843514662701638035145335324966880466869378766894367940270917866136853864216331228803758863479407541040803629510106736046366143941435195175707703504453273797400405550405513074991001207388704577454328116964560863206152024588651289681963685962349679357786170037212846947496498594746103562772876314500336094456564769810446945839863932515270195541620091949719361658346600555802482858758087048331577532298435299146576433199784138733465282404602679020016139754601543520876668191782530799826050705462951265842918249404603063390254134016465143774654848959261436540901464420917156402623966660665107834294066642375017922492637659403911468003053468662854275181050317707431986269442223457683475485824086528309764083139677819239603701365039699705090870579024775920122480809654906048014321985503002319541622647828472222256695746961967430208058052779638248819272979570081944580079035381660381581207906727185212818826331867410768467221514567548967069265693909926055225521988124246092396151596133753221431773212178463735238648660385123949946823583426549515639640789360578189801966610298856384080853457893551263871902688361725810532398360694467582411381615747813888293126926463646479165377881268283136931793283683554077465228257248940953890214767557338727947998752194082092293781090910798105080808302480156985772168334053246402612380673176660406981591128975363433051566609731535924662527401727169005149013875994920831918892935347914139725484649407929306879967019192622577207612586411728319319687083429696977218036481475628285065750602767466365039604026558344762440878205473075563995170513526527601511058492238870910146070609232746911445574006487688733880938250420440360329922886563607376762012605854483328305898882718724004856783009481836427058951560119180789877428785768537029631421567975373098713453285015010327063774519285863317584239106485581882484040797876683350209453588276268239907423334452765998736869577145600385706272195164880178393811711349597750164221917582961593563015510348313345224016680515716570194567527123248534863869375389456130009945732494404537011407428313505464651154356788768252263788486776669153856013981476217844550980114460747474065968161370831496393767691822474645175257804772017757811174987206260342782461333143916927227592956304810556113333468392542015609480241232272435691668396238799515403733237291482976363205324415953438909232445597128653043262632014233410285962583212685003976764279729142422199314466721007408785743262496778091699873966197576101598519136634534178978514214322896288590948898304101258479020579132137709934739650251449343057115258068452889313857932245407650009307160502805045748304295640957324546109749138596878303045060091804013243301180410593690763477650068654613992014535401785695561185629573398421655630637368732730311776102141470747769854376898868741559377651173433370987031909440755703435949187847252465085417195868461418570755853975526272722271106253716834252458519059906512965730665458655435355096293042997475369107441608436132000947698517440176722810119127841237679035934928572133038427628136186378127970325176954642432296958598304098147418812805574128584361913531607821305965561219123868137486164306847973778395048818514418906329762817594234020997294030924835091723022618171295218251906627471505415034195680457524638866177011526824072144753651616966926441321937470798370280092224791725288956909286517996579259505556336107996196183820087576440150480732520453505114142148972824214303618911200427626790930969023031398255610059556720203684387697551366455867788550788129514375875017006387423165363925998705494192825592881721867944403229197086160404806990137138034672422799519953584398834526141680950404881411054366880637164867762936478153363699096966726986054797200996749081973778185582039540922719409605973816377404529094327451208709832363320155120674615902644738619823212982301446251912839046401442447428264859441584357883313152305380754352923785603193898598589622165644163825124787798443356217796431494480949722032027953984542557715953613854818686078139975798702667545898291883194089111767357326090634652392440590800590811631090746861729030928785618178137122652268144095625086622580946914334969808446024849025170648035350716831940920032937465151845562075397628424871285060810739079646157243434722804205896474980618594666988908027643985206464821198636875790034421116688302390603382521199729782789618256025589456096291314858019356190738130105133436395566461912292059269174847363111465803065120952487976089783995147548097385158907790763569894335387272346468806545351170691536904286902161425605522431908831683618894339354820440772033845633173142506004106972022739277320564788917651863135464367165087687491118100115695474173692134873143874605788947346035451427405972488747773235830086781021071915262092406501262634364827695225301317968541084118810005211899587677379139214642425356377394229890103545393427643679225484621099228847672204630818360677676656687905036683904092947512932122934360338125626241165530587414877762630211255337390287881859797805576976594329960789876446622923736689399574264736192333322474288438624212504391514599778241620164271351280287985221449487756684898602648863377400195991486654692376809558753298208386069048221809482907794413613390756132290710354167761459512252816770536550823701778753118637266592856106004403077905713294763047587146525349769479154048604168953556413874557513697978362331087909827137761759714816638431592041431195849235130999474484239296256263001540639129418860742377233491146349755259677963622117632887213888518909767119534446312278467423593952452359157044380429240282934469465361909024010385776017826450001270361616056531395571138759043481212255809605058180351185373185263257417385915182212856028089179985287896959728248756309096015673321415266631180967902513478606167666854666491421450686716056723971515353072477409287543861222001326221714648438075664242541152623817031464732575229155518698426220451104149759396877667133413650614146144075533304181574484468387863166898739400612837420542628917404278369417329710429542379568245539710710620184892864283018792652550237995912084461258806567826701561238581811128897740640511853542198619058337296465749235334977409619073771694204683365069821233766487282974236943948872862197632784771874014097802817830033097728703950385769999468231128752291629303221222728979599693491977364511812539248291335540007017649680660999211689449426552991230089145339210156814280856088356993103973592028830483079186463151332189337992222932153081261115641488130313266204664830313481599074823746198844590087853236564782009943564429961163879802195039648048458792087001971336268327052482392085581781980084959994214635579408036338198081683285537887766481698132350810976873350174956026396127964760487685363763893066580251890372700814318195054890665232424491425534528375946295139311372925204212464973157628765728551947997850971047930112973764584827090958495761370827289616596170317558914231413135133188161638684886675741883148513449169665264954628136031784161369191529749424955914464557682062580675015252302554992056150806755933460771161264929287979664917764873329979476915058601071977349540720699354441790301179451776888916676952833351127745037204102345081137272512329590609035397337715534560526089391893054304300243248475653057240350163065129924542051710365440544202787865979409036426071162977863879122370603029406600803253133373454740488980802831408879510195452159748639668048074729810506879900490872741533173979804240476109348746051458790100108032451374821412931895514499352461207424325244656160114479108063027037749911077711959022184668761655856313801040661397087844060418136069188018466012230410696890475648775087801658521637953404786525536830021858720567091732738072088230801283405690219812858638752811643960908146885917590175155438760798517888632085936156075418908772944254702301691721691850114439916995403494166552901432144973890707643697079525062786994501371082684137007464446264423351617635318526351788693973165280267025009814398600133618820047943068592865667572583701331685353071910346078596438187790682348205344273302020859902419742907744012411940797738596562723824470419178031850458597524871962484947990984056276768423082774289566122382757310343216527195778737768984034223785531953283667725537360112945548501045402440627447980611410553834082004282024331292327870030197388233492827037792554878718953225993653912367605656344382586220346958503873778427687817396763288337593966200230645479168124994235121965768703607349892923546598851574202653121529491104396513920142069164286291048143029490927370416118601057494441185116717930468418336238221469091675303523506088805559878572472761074755138756009725898340468768679407875440904358764920346423194025093768744585163324950643361826145001586826570314348283236477421493681407481324087143409090676859657179302024619754303217708140084115488893082779661235878781463895774221043852889960738181454235021538730993027646035740451989291920421584332710546967493519683896478800634452787879107346871627982337179413488024134686585950462226496289895918014457475687803354356997310746662109655047980790674429930033084079593563846843603697867732020558531576913816371670309833031982548048196543739353027518147024506695829106058438023804596826723670123958758606574960691140314931916702410770206737711785839505444103002690098171265244234503969282287999582461092376991204243936900929098897301523748052336686287867177382791383942689283775265629843792186655440986573281986376929509659613652106696560670298362101143885167287531785715145380688020900105640710165705748811471158793073454525814194597097379148297823894948267146081734994173062257159343781971470389684049514736059507678296538257879883219277026324277141139657836238283369095354573638526146781774586395726625569575748054565002349569829379419531049730797177670785751186633804198025469127418201385865492802963330388553893993737028141728415914094059190362444250441037113180863806033365160788168698578305728754624531216447053821483580480444311750138682649771810577441477616724594210339075858294476056712453053089613063783407487321637790314484110489597437024533022352955551645404556538577633253047690052334451184994568644306157482574332677882986600444261996119557921010784009161628246034676025726518637722319936741432631484420065251236388835160680529132065473123974884088822473628831653340871411392622894245152635780341975369992829992151685009501818862188632246510627533144810896036883124940071670408461169197851052621024023625982821115864165970827975757768176126665240121157802179093460166354256072080511656468387917400052280135515289460727134769316302985210020841258844999965915480789742345607381328881727903067084507597552257609673506823498010212270871135520668583975986953019759930432679081680673070204338398556570068387104910924783485022865161811706575514143443832146295827655123443209844712428033545550243589267200824690992648806242468329595172688176353997649724230723576969699825232711229973617176790017782388954082016612414438618862580105146957741219260430905465351204275264301006880384796515371559575985867227478624400220978125079491581175020397277304411848087148900612827154228792137874109088947741536699128911961623842802116547380400096307386370832798552295497570420045216001820683369970197374835892930712030883435708090456343924555838899866898501813639015795688742036765143316280089261299875966091314098080136849549046320392293202259608710693206360635264417910302179014464369518774089038544029649672892483621886092725858187858031249654181142327481726416762797705990237453306224544859241916159494511112574542122226921308524953159792235514930061150258780370600386258552459100476813375909212885947803738428533918431350590415778332559776405915954741636046863962867057357450714118200504750048116302235807103546888866487064465105793915561695609128174634575070747012454927707962732457800348771498820315887219435752250782205580800413528046528985998116829829330028674539320263138999399141734384710161907017688308429982133890172319287496062539082146867586823678926212587472619945971494561810411843633575979318691233472045921828732785508115956200717629218320194488976854354886108485767099432721982519433386049423961693873192606660863346942437637804713641133109836602165643966572134521803083855234785970622662410760472087132580038666076404951732074558850461189627385203995390365777493771087717698548993824773228405916318196130006544873929656921689158244707008103822045555492696167624106533883078313284536325093296628825759756198698701618800278812134110401234352929871785424206179067555284645077680188447239558914014465560539886804799439499009092622277902814933268449271445198735749701993894486286987312412313761064913216680529464698399049410751342818369270109925974580327070689521581805635170226135647407380237972996488850120156862483594295169950977252579336681915685377222870073302660086939966792517784168726086723800761819470685601646920973124457426130215984630953458223182177717921949287592129024713088703385183127180951063194366615172960841990914030967479999632284103930274199924160723748709903105390912747893075608799541229272563916382671487799345525461277103986583977656402560006634889340999249729061047376952363592695705257589057128711630270070715626758741144373853588758750315730316973241789914646447367522378369129324646985385953903244771474207981345882832114838301596895542245634287593974857398477041611255278560262553941806159703950282583551588825056709911076726710296392980612084821735395808331659091403558212153640098988877507448873352978544608933000485458867794881803668865421601341111321943943193790287273910346555978944554686335057322953816650374054848995915391156073359604672608133479687855159962416251901995884828962774725148764977014103942979128251896851869881996298530811362679746460498721700271156655386856009340625527043715067078610629527101231240440764729945797157589572385837902604420233431691869093662956449082962142454268334568092501539687534878985050311631803726540202264941449772477027433958988260848328737160205662591268289601135247740341464602519236255259187617747895920349245878783385413412353278705308533370259298999290939163552359259540312969778856921825429389992630280527706797811129285941696428872247758078585060354847419398586444067087726856227593604155258205093319330449685219569856646194975381508652952470097591350967801775278438257036268008483745704999072632075169526527563363401228513133320926558918857208547978519077957499951511391472267115358598304746142747598504839800187455548584125877978690866958383141191175062228481952216848412724700869273471270000627419363261607346835892128079386789505980352908868903434393727145684631664287339474270714163471942797953999225125926095235886096834151321104622704236840649304723345536263993965068450188389488233668265939978160803841843698579417889342548680578370646715821665392663155784977578435422108003832907276032698796210642481019139031519282220036690069249241047317388293804649087721082756775674282462687697681828509941457624300901254701012585694229998998910140752299722066193254594591844540300356338031576465410803565849491448262530270042220205495105726696725205165186715145839409316369326857430857465311594482950159141985986811498317323563089115370564669180774114827713250373287946031263021273820449079790527177624200325585753906787866415704676181115299030727639976975584110001604316418777559832593551533021449408415721121492877088365021151112813449620084945647566650387879418185091425879779358851708688437124584359896064531716519245176938939189782184212880559194330490033819952803431066248247059551839342946236125461251966900609270491961226483071058939642377064664783831116135930744631008908245704022271796397292361984534970448924782885921333636528013932082566887366854782161087772532434024418843017936143862448232369698968868299705015295655913549431983463064058842682757455190587588512710284721688709193588810796640956518042188628521367034598819182206992980877831608669262372484598852823179805330222109473287677965341781061871098854334429916381181278681970580338563345702917154845897697210350969333452416337131467392896319013826576320834295069592227444046616762601929762672217435236703416791210915685255424733273116987210487050724262635173215692793138706502978264366418688653578547942317659596135373280559049429888196895076410345026322512100269148166576040634663518986875813935492493686481719602752522241688643929320197264656562170582638818955996520546374529136760280841391036966023881712386982383443389094034930304128576927439778758948785523650233813996193229001632208323004156666632463013956595140487736649695615075229954313289165008820249375756869799905040036328281784677844772760100000130551878561004131232388767127053697317452806581911486283181221858281031665941629341802886837064495099998496872783395266333878183640755458634921001007588763862651136259517568401474521584968153954580219790157281198161644446665279255172337704396285208659746119858592089556647215288868663019774556274960140807046262861702504362706841866203628026604991105773910904637548627555169974732037895928797366611381185423074445231724298892530449299948523945431756550751992316119728952399035732133036686530520039100239149151356687250162316671976919478565421396059420761252831631257358553171989329060139534899311144015293416228095217507571806133092835260654666636878956618634573887576500688114804567969780621559841626458779739418469737190968717284350620472548122634245254381699802717954314433139236105540463622868940974555544386215577970308104421290558084864867182033476105197985008961863319791718546964993429009596407175643120541328162480740212942222422453385995478626428688483230933003331421747118503930416796562404784699624968189072872077069924985048323721010533002372173915979751403347548477132867368047486272337458013709874887619948962691430493272500560574114005563862055729774117967948029297280164132889099185748203722216351654159621662417729021791853386688462084626580622787337105092078951757948216772889081305649804732144066082464013851499020270363968880499551777793114791482313952417561277879220200002894329953954589703675489453643267306463710798647075492260257236778333666845006985016213988698617858570599005282606077926558540174169132426164761356508004365313458854840798347405804692563681258608211434157293296072841366030011606602553525161904087948986140382224573426364292439902284361132917572725526668527050088160702008619871479774596681242532555636547439187782513075006936178430642975922223753149698151753916769378468937588408996263287078757206735042259845345930432170987941762885703561922631776019841215752006620718137084640512473766693022242864695618287957879525772708609067951076831313191468877347893183398599389380513433628101693220101940094848044330919002957185551658753856111367436673544948114359189255145268400245809263107506725439344499244969842596336608256448735453393090212979127209825304286173600775271511879551040361650875321256685179227437892066175362928956314615981667254542686584754374111225564862763615676139270201912565024115451734227976558133878933998261940447767595884755066745933032279575777401049471091154068322266056801092124829492498247990828605519067576918773413189079272023573354242189842491666024278838795872982942555838782562084283344059833383761418418359721282074974308303948641646831490356067101340556932755551877631609918859635910541886902382558375931865839936024338509913094682926463458426001748421142434559802378526909342259053264992596104152732927734385240015637677277160356698769029191817771601101511918213156814968977573081119390636153952147081187249947312572499868330494850420141234728184236658765963386700210683877169091439309405230506775067518170420030249810338554019582166346577591718730099355246876513760893139763509418679734206853719534997793461780300643509426150515298361250822385829353098556685645399010756556461721173008362888573086799224672934744662495337452220152304700051478823707335039224849891187952256955560069208812347176553680613898306179767638359838813736091398712513479107703137550043522960833899138948758377379346928623713785454464744710278282417064795789085012657646410932499075361061427841588132401435957977833298070834554992546948764830819314504552230803285691499232844713043262221569910103251572060428300001392364499874734811400819335275489810303006194599698438655779646056572357972942548779335158205419101185479152877101872798447507148141817184472273342659955511069213060507734445841128406625784008466531099285098186198979393816005996904487702498909503856904671114709620892664663287566642700960090057196777568991412964290325131593038239371160993439682039432572159793256829958829734968764187529027027272032239129569732853481624439690706810883904073729443241273379450168062214322347999073017389623386454928065971890952151325240147724257082863672475475865331233514874464646703631363521528712714733198109559894854432603458978878711144451385672695434570977626186887250915899044644804106614418346942243827663879682593972171703203610647861363442529161661858026068270633089078146236585875534361320819687259613806146846739540873381823798291775383432186237991666616402226350906649330100952938281979290390031317365460155606547753524789024698742261389192206978157129336565463237164245131411757004072669108577448731104921412921784375523987241707108853265914146087220086556533182003786828990890407640330864569558616125231531302022264975454274535330122593401923271894875591108907491158012001526351601791603769135297593174914732617682913399690538729231453620310345096674176254853421327719865017159692929883943738931206850426137038000260003167026119894987605011241700156599112985898023880826726773976673529112189784736651726831346801412516056943922440954543705551627349430345929013218020700259829279634321937179383496096473428994170324028277585959079386227636884443064535368996990326652076645469013300553732854095960570890729883862251682994150711126762849241458958192397953655452874149465152094445325452592350543019543465589473601971458190841135063348213160389198776595614973542493334596634626273088611263394053512367885133269715063406193757007687020154799695888320471035063145456869563913914423650078224867897668501325804581074468021870645647221734486532413129828772575858997774336176455573268069881713416244740856789046998909749025330948138500117767827611799443803998714604548618092238464995744383335232678855238480065366153147704593767549836269687119730796019782079491114191668436645530410762635604482321710762530657882166052480861457537074272075204952437316359583827386016942133333112165189726635227102427029754281264941383336989623476302000626104837812387818188454227150081666222487894988300420966383096926515026401198737531182697557434855990662652352648345053867775504124930973387982704052371449384213392703662656086941624380317946994898897195334658112273909789195524994486594385077063027783032877769644077957654735126947452778912054283246070130680983792935239236313879390734985249690995085418612840465873882210940863902036193687738550213599992105381965302189741261117920818547479829046765172698286737502956629523361742064808574496158183320044177853190911323047363400473591748653088470920498688790715950942228152074509894292202567268367070854884810643400891916752531306312854637779203949961789671034350566081713966079607090324660586122446433966534816742411804366547953183412151200379894568481106306696665535506408927561896971157801777229115421882851429681743036093305795345210944159837734147004678176378620950011274198090457379338068089912365258799052208005566866548708179020093651811235577211171285662911774037559419070338235826873832676367580225780638054232833179983705968207315353527715563600848905918281924338916700172616975361649470913436246221276841136330309625364946782650296446796146671274065263751249836510888644172044324122331169735919172121108277204667002240402647393106852163549153364319826908395673401779019331962942857235957062411012607925522473871403572787325336260540697249245047099387360427568089643648205147780891246022175567006974281026685131280426314119602244579672896129924443179960880655164146063379407018572965277709091092722884068641460594315899538217223709950861965157024704925041544057315015827847337949357031706799728958958537885834839395747597863591137106358585484830250736638611670707440205011330419042554018894103142214404085654486680075877536906978357752501267814741823015846670576687937506947062634859688427498921186661495727741877882509424911069882085670953798090895178290827536726951116722112473328231057038139042349528063516936934310382307036589872545094012533656760152342472657341264149899021079651527599867209935910572944718019635684456473623381907181807590787545697067847519105776289942347495862501144190516026138822725320444266568333459191992101854926883474394051115073654488549123741581215023273739506299103808214096206254294102637462654110770469060175395658844480648214375326441060666482865318717220837717608121211510243098493740176494645253586105367600464792157008484133972785114570303150680395853492159735743905156778527129085912395286380534212248074864196323952357413339614684097494506871902612631836564838214014564000437235998921158068561297203326167081329230494255956166932787972984918258390971855482632775268526580716413783297335119003408244944560186760858733287783944686686067629865994556395351700137821197817131228200120613292529590899747635898948752898818786315340984328406924643972726104242660436306725164023449765150216863053434042797621768117206211685695811452531856295086233959867359730663184667079826944754962099991251944357100693900076049010612610146118594754870494977309985946488083518924776975316455831876261569040127328763785222039956760399298365729770784314159219591845519083376213405004423928312207511966638391069455303185850418364026776988472922148097543890442001260640612314575619433967569950544413418600624842422343087171015429250997663715748665781983506993684912331029936868703588953022851647629692158705764706705223781726702283537478906717805150556187491907533215755261636834224018945454177994087965732387103983421338263238113194207649054500424070409273970039613575954158566678119975109207007018964731421073614391464190564415345495101584465137331750326571291133969156761222893839990133406754125839567592693839508174037205861294170361482671391772068218085760751314012249217223113083647716666570575998915925807382789280066040017201767969221183962158935515795630083526656906066784624961076306117026336486198896853720467852915461580051991263645572267566712519791225438755616732412054192682324832202833926460583136422656004345929258167003538992649979849985989700795574462180993406505802013376645590931037824471822261328681289427561024036462776486653527341086288610410703245781840848414779394081736951086535784863895267034397092700877532222252411267624663182661961649142449589422318778021426345460038414985274897917753772680440666657348509373364769494628617669347239969166361699671821879846676852335550234637154249015529777787616351459180540616438813057737803201036136026109323738516464275005322646964111597588647967052724943223960865756732547553413537857328091751723443411610562803893975402474656697500205329798961343556459172377391913709076021777092256483292314449870303057242628384503237812735386823460781094415178960692285895828059637282826550295787475082182046633291583511685355895898713564999368557189285158744105353818661830166361419511360660028192189651766736359758529825253505259630349673455568614977260414353769260816960412996904998965355049523587796574778941106888128604742000783939221564644732883796575737523270056371099757503089225154188120495659566475958999043521635048465274891718534011246095999277319081112719687563184727956517189404170237423137010220705112512834257103657900851201102423954440045162289634640843185469972854110388929405775948948232590335519145904188556001694373606428463321826557957756301439001164975429313480947611990135260910276738392497159108779702620170920525135470139059380962133341423291809625916054992727558058566785006782348323539949830939865855034210776430819673412191310018419188124353319554309318554895281725190690223444730202833206702455477133614117451058244207088782025360271183932324777841806105608123812352610272803325585465856104082571477885971822186303131352936852005112916109496851042161845117294295303524487271033115044668072008840402835559846127616205894731261173021175819527582154818003678410082639802241467558584451780179523251195608949211450542589276048156946672930628393147973285062021546458328353420292304760025109206701460873501327486311099819570138039322978279992947476780662660543815597885522136819432755325273780192782911940041860120633671560840901861663443916184864682006155068120770422690067527819652847998038218989339792846349907004678257568473921044636818261213524111126592331248746785906760311183022588324563516663464576259793968285009149699013233177091217095086866313657500030779153859138446909496783449245522069504860101357733062469225729299394395548040750107908211341415018291901293118336138600001676871888823827611199833762463280575865048272899889050728726239149620898545793447641556253175066545006829194833905002304734297191690724441425031794706967075566171474048192029445318046329076184676295566857777360711739568308372763700278661194561116621680001850875130281227369104976558554471749033436433866808112028291725344069534463997219326694062836407067298526247292907625942719310584464622562869230503563841986077204746288682664024628608905191534697448600934538091044069208562526617803016194125785610338017029288969227085833800049021351442547349125614791701011068193480357340911147680505857989634739914062311861084124275046180646701639960903306870728512247898019022127268186479164528628639288594697707830968758582839812036655067666504915628345947521911604623461586410338083381110553614311472162682221685769281756438280622362238009669475783644215846708455863259855616294686817278112391738069487819962588478557859182667177047650257668266942787380759523587283369765955178954770441342103058284763703350926739300593807698835315599515527503307833497743504091521953099864163313629812086016531620001685349238604691190803817809960554302297852570221932104188415230480162772830670296564394115764282414696248009032912894682396410829519567430250740636331438603320876694235765232526130022543301897685394837961558292304143262839402373347568074821790322664639465215429197702354267260147101516173534359857303367681487643690984345415526706653987125832641907703972884199208004354980514008782135134322184479735990805762112648925920546880661951943345340400132905247820762159556619541167360280993368708170665192109363364906984224062073853473852995828756402227182554499437514618451697587092971046772687075910649210032317294455330500960213699196997593741658742035722967865857577977984240509826474184161918938303095158742178873111821741538688805358175774564818829048652803394408862492233682143625382519879215776856486664906125969795216147108228070782647746420611031996095068069026323961228812566062992629056979593014450544021738902827096894903642556461431176255808334293196773020481747166894537439955984355301759670111187560131154955617880952356079818455991591702599859711596567964810787050415736281777097304966057244975806051568986623232982873455847169453298388812989147908521284234229690459636238033319900419604567006165197301958978195464027772118448885422002554816438271817801590742449562629349655168984314999131027387642095141080709380666014194297298947787876371923789457930008270394730406662979621688114266255838413661648933791839084558026390254185763338277623412097065247453768814919317860277067748700382327873735116944791207465206943844796550813588765397117191881417530909892393463051478357501358196156772876316305266369301861572196112940266483716523966434653707061087436118382543019176993942453872913508353197366705670983571780536938207989223368942732086989973586954305425511045606251338391374806257137412683329510224630089484469196325817412506198455746109787132265988658412797166793838133376631543195425015799011833942248120600171031102936851515131013491654910933262960729781506874986652071783134483679788781860613596028744325052839189213640551304741046432555939946808716643468736627763519428960843647751853783266932131969833870709110991168221316483326751097767289795716409928148342077493351079338760267722078256467194997940831057925955509986163704618557759279480396007933304665051667847951885089756264281131773224606592465151498431891987249308537903055122645755171580879889422768064391088825466904029820912043163802031630935184055369269536348542605207243513641424751932028932386996753147761526151254782104017705339612660515647903333815813588221690005099708620961928169171782568683142436308011706768768630074912190987412045752603738656998493931927084376920843380673603359781972501728312020313805635838243587015931956002196053490701334543309366191817677700903076877171756008816366372921916850363620420666357294840961030519056274229093044549268790652902452350999129999274083426112759869562309583164046577448077541839305298415613910336790075834752489725884185804071955186360373067085592236463288160713869535263570317198265461509571134344035227015316331578995313388107707498833387566779973318506879714461885261410384138633222351910667505847876970014275541731654122264503187120402116981550567857166265385444926859594393258020255606937084067099849823988696278349636804760134208395505423963171237671427428906983567033659484153614789150323352137721735677778751872176986110847098940839747927652221634426583517355544489470491134314064052264999881249133835398662752378558246448176934102146483050895976479934803811889884040319030614058198991089218978088642111934824896715598484947662454917732295482979330720350665400779338608327128952751010106943304390209030856651537342343782723467059707606108415678429014725437709997153389399471918238615248146524321859305974350364684400470313027961075827818829205324782507578728257256732537212012159863850021797266807205316348748442442374441338647896022324815139114821303817431769893386961477858552910572769314136026022652597278166365489818621988941666780281102415514639854254960962572620945662697634778343610464216380354162363103316029831594832666356690156682844528622623833655415308888826984005965359397096494221513992050302617588948320898669449698808258560839751441494048092632913016255162023504023351659466304347905695169437559149965586859438511766313026715711926353416308989966399929754076079332704557582548666615770867966863052437259293293755277347485915341348094874019858303513366939070739693168218360241769015514676751923623802780025413989341928300484799353089260044754364499189806876226841291923146246540597514752462231802319053952619508475851052617841283766547358936017676537348829000341584019395616800290948471876800920089717495296193751101529170455027484169491838587258939491336168781675234278748595376428379618450333192450765875068485997037354732942106891067879968206619349973002637902269260438266253779754068175198089608370714788565449696304137686116058078169715019033804941973634094165396885071337861290217785769743964262964023345120854554832715488048364715696474281222296660844957153655213815441551087012818306849036460908041669492449929022760414180826054290355567185316343726746007258896928781465255943582122208310826687801109743046806213439043487694204010213561335858513030762847284332120658019114962417355048826344949816842131539433103550668856521297656568657395652916962948579568309623595797299450719963345392353453511937170045640825263660098237874205619956257438194364634763478616658544866493086384184276803069077244292532084090463554065464428833982973018622763300231715890176214775400105804470507224243558649019654353171347271227343976114818184009868887414529309191946531638595028291005887609942178807974283351683113164029395102829456200324337699289375381591889378785081086745244846554919731459382040354906884934176628338956196935724704017588939016107746902433820568239389502336675682696442910547161094630151753668854358893227919182412469670134868177968211410865321969566690704366979031600331969852844782118432844594652347792490709871385727414726634497140211297486358001252044258972329108713338916222331302888057481155509804757607651866374584942799659790964627593134374493640079949141413385027143734603840275942142121318454356521331260150524056606650433295454104916077599758628313026332498114520200070531951639855130311899759401891251198515415974787156135285930786682017627806048866157530947385575615508080969705972198677345750675869151372372026508766644970788297355747588417718302546753352355728443943491467141139589372321811285576588986826971542127023653505559944740147969592825153887083022245294238939321497199671230592534904774157345134849062824338459840601986132626347609155114739009152540797215326320128911068563912999354887592169718343355745600173746043116706896429495202529668076100301690007659099566872996463433938756390156581596824081594791353138794117371035600498863737243648860731602292859451496329525352046669897732303758529875542110052209903866306408727958478759495973421488962566727446353598006830300076611990349961121557156804539698477027901463675115264794496473366667749682541646039530628659813513926346111637349040404324039672244352749592588200801867334763501193443111422685946302295070061286784221866415926735148430444495764650705202334091015052602960643980384652991749671173590619128547347789929617532084278151075994991411255666393158665620283938735183522050045481485113777453850079562077526643819257896568385333087142553172540832177852149891469245700947053635952943925107655220693325953101383501835520187514797583619176141010129854182023232167594975683570443074361495966932461319497878047779009287363130360196378646250781166450362354827418746384025188709845114372666534368835042904338813101725036756577188077685567220426804494044896451425030460265635389087975532102376978347917073047877204080283330119187185205910888394886763420219670399491659283486282589706236081032234893847952430096461444859287147839980533831136122321699024101594017061646904521751640135966005344653534133493094663328444628653351893275738548653598896719997716506975287026452792346945485016678942230536079490316245328143884127270536841642965885352654140467918160731455373001233974430654103468315517198204641986715880402794550431859452521485591151621122403135509223127440573846633772469697374146388607912780842929239655723588300459365080934736410574783664234722306833083759083571863009835164067901681482200193863905154100799399901528178159749167637057606117779722497305313098089858419038189171266395384405369488564969379873596476536916622229016036062254338341150312622274841659493471975461948001516718836695189862073306826842839004038579143614642027165227562197635116374436169898656200899820934911114506538397969520857328691498082387038187247239452805852628500331941292330067973477249982439157886585176160905348847137634679745517539200342817643080047348266622793259133865475540433813339163947313367105268978918613151506842562599825330463435172459029879601542110526702914553262231723866123057832081994042366604917442555975481973716710949865738201898284262139003632258731556747607105587720706544567182826643214484374006001708792665330549477918212865495772015532512359848605246417819030553727213275020129361352365735545957932841298271940608785423317107523569221236924988499136817999302622060686926057018385992599442499967530958046347403616609864530512546062287596074077085001679041665646086727038747446695336417876900919605510413448377867565414119713038063175187980467981712924828039138054757552318390386137928308694653529530797164053616710785479820213926478760672866875717263695854288809907828820111868046611102795033855723082994202410790044696795119009767934369846567433580187609370915654701831803638450093169977412781500437753689319488208081992801659974787819246608381426451002423723548582627385935258136553900680357415369670802498477693587382521556895878002264273080631043276683140890766890454896202789950309346642592024089476080814461625725521501018112178666902856152270816390641321577071927222176785377266761495118883541640429164207690053641807145887306091415230671479597401967403811020481781033030930925481307941316553673490891950761976974995514511862912612461377227141759163554651537409482762859927679823491029819718671850196624109406579245272127861909476080029970884358180263603185396456370174592286076474512395105280215859580310586228042681825678850506756103551700659025346405810250294148786423793884944805244245928404094762296505214728366527345604062872231200249342450453305637417747775153392590315760176532487243526677562751801689904964689969422997918960046368545254108504874979079216177383118914975289068416016385870455655168278678640873703231294811933877540896535828545185036840539348558575271871715917215944616308508341992895544207019102730988903943229570035065997311608060878162501647242262199257604049496942924656416350963978592336341209846132898468630321279737334771999469872985852138738699846955029163610899939621040566643979196620564701799646420150266149562106098511794158953885754885113757566328209833601583416164364871453410539799562590214700570860631083516489850615008357752424021231204433490872056568760379521314077017080226143872992162088273881564568926480745978741317402735342608925189909407365935542967826269048201992963850893521269694910986095665159643859514279372889160072232414315648920976312742252359602202467098844281513333302915808443898810513571495769860939034249539762786937272225441439919908614579436807415883675489257975960912940941952676934227291442331209577380829495398180779231225403202162799610462903733981424924327280999355024925667001211927028605280090008665407731509251139532591323163026415858958252656098995467262780361686396279700901472774102894894600501125365429304680148588404618634156727049764221351628906564179045977290243519046468044836980780361907577032251728130544267804911172947233770190066090332826367440269523843619308075717282783842155957474345778678313133579851485792510573564054097397972495637694973197128090445379294880927602925074321745645862531206825589258390916960260369369023129790178375411267105321529054400002156171942344512969106131755912481848802708500346593507831750296216412487901370246397321287757747158988807466517667977397326031719481083600966795387230557225261001590244893798435633884939936101300294729985863113543419212358193023576849899645517236407952397633924208598800929795187309887361270791031676787180599234933971735852420756856169942992709173604303925181507295028600003595975867022482979809761862203515516012645097930212413989616559851587453786566118154549913108211556224785658369850893956562790089063755079931975729611672272972781352965700157658350704390115816497724373618714523568214759047641378622441738494651705738560162371584062031480229947348955576618940911526900187553439520809740947591036801484024155072845230737781864417462461711214020937505081540700651850129157208539973153181682532503739549259269283695556132037481664592610753549348397699207042142487819689341552023780873089162821964721673421208976615895343325091176429549646769219791477089565748314938749464899398371947013596330394904674729555138552951060013026740207509088645904778895135727324945343960525652799199474720832818387890993578322923484762820962575097470602451439734757691770349551665114827793963741413804429884957623279753748228135427042271654232552186831804107356205198389483512500049278013453879852219170118075797774204709127476306692797925067464431976101422359226613201079834257835727570920065960560766104101554500749169391889357127340398357944741707633378608944401200828536269032546518803143232664634793414892916237073674611895908548805011739755471360915287962032756675913457820352934885743607390586860174720187912374148285673685779780806762210983998851546688245276777794906646271768015614258430509419366319044274443002804201392462209550385060460250770036221657610253393782394961436476597597538746447672509703315029910505580009089242313687266719778394042698537538455472239647491199190641101437258103566733037066430218145628552790557318326936944584803026037782892287032929532490878845569959750703616878532889657882684052362267993996047766651787427930471768565261487624636124697603143784183882997887580880963309810617389119018044152381145399877182264641032462055153363955407309743249212516755974469680072201546301877600807231240771041810884851774729654035782391036103731762105678107236598774724328205881580797433299080555593928027845913065609351128041782291098272320722940365988736430002001375153622003380854137044443375878286858019018977314643751949802009035986753625906610493561830692337447182138008986210541117117019319501258686885827551623563207701860601979978275968805462416992715363209840457728039295215517373415327631782224788849693032550455185840644954711523153748965956295171962851611460795705058502946897397119956489176822285113329128979228420990445997244946956173709049916459577662417262075623861248032239945664174301379122304953665008541058696019794439681599448358863071725344582677137980414764987194921814896900147503499999155467612298330508454780926327839344125648607631703994661223453886304131473560233357016305416777067688733349228095521693216567912168395386411797658954501062034096201789406021553467504071273737911556589113043876686419437342263089094601093344889726043518542738517831431102617093957925030370793752673996358079077834329053382243789842633841827052293573282914417069237194898944796209035093959227068321910555249651004246595192878613569309502811564456415945581828276561333028194302511183874445577107678757322567182839576594152629024948811197012701978603364089768330750976130253355371040402123480512062219758712748535407133114157682788777661323143147755285329973439424249646331517389316479451274011213221886068928837861714937836519459439373717349632303830920493438143859976448897610920247324894493931108751364008157316284680272237613665089586333914432764003145100581989670934566678540806918191531829203294382194699007428767716064108058452982598535303477361815972659268386394314270004027327805882255094236781267251292253440120069568987026459537299057600987278330035311658560367408191200644502544616166797488028517904951177468863180601637117752731876538795588131817906699781315009364551002228684241287377312223334907459590277437413255107904679503357987284742008983348561141602464438159752471132793406232038519427225842145389085269143373651256428968073715030042610461675977899129450125688897236597963241471492919926334573760854448079003306773959119749062009725941606520299814013047603307201579048400882530481863426472370929217485894419037406862868332645840337476121386824348987336318122278229963362875700237465483496866151857953427831469160441087497467116370639778129514375767156573651097484814697990472701230422862489974322349685382811306296797218421453161563695935067475904902021483331374647149895115124045924185461476443232903616405679484771437499639307124800511699817004967613751967238243622224337421240541132159927651163849992183815549768255178262883588962865843460012526316544029357152361331723432480813352084251896145849118962234078507087799445263738060978930905670764579687452612367197475388137995519628754412122479357360825897110729648119901606712082401434346798496982075705601595350040485148665002910111736899332842117993159245537802551085734011904302735331924582405378479709005581262896650889263904447719071219457844602521306173577348819380065310414780250503721070113258681810183044492975793432669334914878424150911271564828004624492445964714517246622348296899488929014482149015639155775317758501646458297327963770669398116357850060072748672649704781820748039603262243809624465063719535739549455447965232425182297155689825074131449077331415698531922454173168942605892934460651984706322566664763094539311950490984335983884796925852431837856177117231745897764327034920315434935922319617981913286978912234155835246298103878011344638453703952649131985681388527866728841750147478523607485770423186918965071526504212444951845362288490966963689440031883130846211858745922843267248129317335579294170020358727114481179271934658252754017891520360604484550620648581285037585905150100927826111521816361093343931782408121812846779429219888424131691989547398692333261843725371135915566518063799900059648044413174229886307213861474522568371694879851971815572557656920988257610883493555941705032187997142682103061650189632531587835298934054581257603989914220437205415572359822252319393648468813556021561585483945936749874123165459619519025258325969066933757902538001291979018053423013941809450462162642982037254664935095571302064317589092378438241673299821346391077521934747034950421652055754341803124027928067416620599783952813746591031444793379341175451155999656756841584266068483538218888987464942404513357295940729750542723107951095070808083609787730796405023835118779874872725509817899775006621523065927786944232859801143315927799554312572212743361483584129508417016812854211880480152782514108725618345700265088376703784692467481519033404041878358875657757605641126295354578036496099414611619888391738461837368107932798110257375175708564595672448832565846491983500215802347109918971825219575388049690971554070435736033057720316160801508163179631095458350726969391739128752476593896893825131760712985192819416589652630518388618443585986394748517754665402642330578037021002687672464425258789544916010530308922451503774093611436226281703860756110830441011611165036414925506151510300189100410609666514954037532475355410313680916432838916884132100202841367834797661178016984351323797360236677656149508574259192829758613337688743447158562424692617145039315723974164986461610679837924577261785559277849559989415836060823153430151808644615943722640111270556224150018640336749145910289925419764095523106575797036966876297936806510633770469904720252193985173885569875948402462913507163759359650489967874686011218823565468686433754487845504132316106540707799044470570419148858284703516155377817032036185223210533488273819231986280350965607869361269104547622342415370877786165149202470018008491316252411587908022007427766094770473519054369177738170622203543952519470837026673641609271034710709285252966430604503374715313127392149387233370375436688486815782920243780001377929909654007291582340683318689483111671142993935547092066791115705155048846525539203155751870547313691462208572046289937221991505675762133295884990795555869218880231216596867395539383822136810367225365260142155563308084755008819794042382392872810625142430275940523702027453858709271285696108533149681708849860275532695071804818907803896854360034968524005423079016851085359822442028315100234452006638499796186293188135935776333847126955452104096102138372071517598701654150691848362381004435109339603535414031830702128233237572771704883316636436560101532189932152276606509697477616577898202530549558805258509143111086857208836758206016044347450095821055822375829658713486099691086214766298330452825101819516999371753937701525691301362778694989522693163107341078647619441590294299143595162303282961743293934999818134283827239816299651904660623910894486285258120362002890520264442987711751643841409967891466182563354826863103932699845064179375384053240241702554972528897570170217795010864382531565882329256848129706493390630687461522747619569095637635953107731705268864121860528433041365024614119591761229453170026160821955504625063471920186059224137400694749157664199167556192182135387797631103886627086752429920335689104343623353439831469751496122049333390079155351198444575592870575266528028424941449416901352645073078280697321083076311468449162981135136991050039027012964210022156007906912553667274325789134200545148286430303862951791356476691276366874504199297038467244518405678751811083520057179583113806907581366813874847496415425335785236073746945383125030518830956724858852287240754643207509532861302530450263183421564978570637013867895113138720909086063386836217377663132782675057289740673367063076390660709971415362567067994418351827987597161050959615428265592511561018572932972545565442867162348944182562025819977978135615342639294562935826255000372254327152628822606129817232602605896002989957070703170334903894542606916847248223110628820561193071991328677441670773979234803405699957464033767047661009130033201014684048725407430187851019634050633034404589012591106020186163961898361308772860077384407996456912907633986294788566778649238975149418252953835751008515881051151954520501102526528950262868365081088013584276412199332858121515599165757683664963906574457268448638682197583954861001048286918965991398675112827975027317312167327182448278153204047274896305433020533682838383277732886747840001254780293100824743173460498627766783328730727775613972199979682646982950284601511462212676989456198202513128214184822302665741779688802326994195855092551750100421714814503756038385684113706667322984937376526375315920584815857375979917075080335489292497569557127095289908928010156670100503012152075434189683922912176955425818907957933869397619860571255723182004189872447463820753693640271012935468932249404739100923864059654286781615406369344365572281777789472474431975763106413828312232078360856362388945945566754699994175123086324199363624066943172563736477294040251151315048044227307120120036034404382311481409186315502196360249852633353217474323653220256524866598076285906457695150339305080137223744854861672477387824321556951208550738290864351305466099624995766002110020374473933341938410947113739709024893836519396691560299939306444835196960733833699584591229619950766032173196736347297195180552122475361880006594738659066629389999506871025432113019741970344355805767885273504550807538144046780719379129356992214589833040462557646830691769602593469582245750800717600805247988951264973663201366491976413829839369694397415077549625420536453949354407753078444659754124080311419415638764559370386170603583916862856592954566511032644554079585702548169411795563903206175758087540090009195961901945066216061577120735553280360499348709265580081902574952372499512111058308040564735984004446654495696886122610466617130755217992490650882023494368936407838996263099506810457400330741399792033455199786725057214913999826283991575764460897790896287038675504813037250128672204427937445717411859653741672624492000230157041707929465486821186503296383785331003919396705547403614563938529778932870869934544819949293737553387305368585063286200819729295778448616251272990290677645005911436432602244004590497835349185073413923427674472673778163233260764620113750652340740452605867910196938352383174375667529497784634505224337296462038928138447645231620643760964822846361945397867659849416541245953463860906877951582053769280170253387062811725534739313025655701453112587534110645474945314479248225997659941562059979543892475723847806492955455307482535705090800280648548003128710510070285945635694198825036777063799304610300360641889440071551710010036783194477422197571333812461721483235165319466968032023506499319503999573664771039533157382020479037262920334212933959817485733770137647927203108560305724170539612539477022220228144716353125827075708945230007780784541630362403845258093978724710106050284135180821263654726665913128083731657666744537644950946952837961586579886150456473624670267282874320727821854345464858106517362255797378754471959114639862174136170869691320224133029963621711765274974589780732701232133876778903110840909618213718028423065509631877938654980014919816474968728790207349431954613055613306437798648411671383779664676219960746478898789421222743663445639515784775621602742031781187111818835667880713036386567786243616003957897053394740936593635551040027156007947254323712590462462150842214219812664528375314643530680256960071637516134680050338454618499918544470663740190759244898822239456384130590832759261946766702571230370432677944807551494607399280867588196994067550609210480623260173779318076873554431630035495323333128362608885052410903260699459285549937414938135517918445806447001374941762673679050271862390940160589895528594425607705053627466672693034813740616912682585366326843100655865335619305596751188782799923506430530966932122830721127179654430842216647448384119367589129672360255778590073542778899590565189494179957027248450902500662336821866055508746284610501228101461308384670928674178928231787453502193689471236784517908427628106043467550725006524909117045687116137681865558666468387883548337172167139504009418590633006357771899759502513698633715970695275477704057452883033916949030049899430876476608004030168397876361785063382133894727135583729480754277564395775587030729514502932951576694292288232462403154681835284701497433162070271942238694800763611088651024612592313581696255709397764461717924284817027550994086558409546894510538516288557843595894278140094221685491250651698906893321336878511437642821149737914336102514053054472591403668364021797571706935720087128214678355831027230784925708510567623458262947497420067210047178791059529681248169017244855294967351796841354997745034743352705997570755164288952525316124285330968868353902452306056066992759645766298229571630016668851664725776704281969438631927829314514402139094017115263347790499820289680211836125698611767951931439251923806773005511517517132477092674935561822404147631675869537918018291683183229130991438886754467757776765367110253864521305533620739478039922030060069824151148320775104286626728281175291297584633474719312924810779097924082539811574184439010583954688231205453672925067605064849813228228887080927798339090885918976637030304440516255803293934591192300709138260998908813008160624100842987279486108640417577209635008301164847716928376786553930734111161199976201526605773657878341329881094608861076668929398998364432020587522546495875914745331338062022565105115937769653586142889749822289089113938625188681291297644894598871364261966132272090056851214894907066457453992629393733289873609424189756573670630079857702511444502047726216066261636755448869576992031838810382422976225548539606080423948616213166599176066629783596716783547622163965966145121593428076134097580995044386065467837814977640857863168668850779996623337511670621394787880841706930146108502447018449571865170265073342609593876031759836682345997633650013859799319277180444508626114052582574213044005480337803596072626969697642414076707415166088767394334987761501345784343177501757917165774514551315064128163527766584053606930974311261526145006853972289339319933055149340952681470769179164556829066817198648176230077517462883838877621508940874830701652134571312699479414851584712074819728080639838717265943546915584834593317087484138444358988939858118624411415739982316442325601162170735683595428302435022973108474605164574849324345606369207913666184550753432583430995849418461827706086679087095138426098621296399845706174671128335977523282416105396423385038862353963762207160141832385435241640510009001692646611639257282805499901264529521395161992723301181834429007888627190586690636778486587761275354696286730485226315576579780921505383396346727120968955176686479854996485780698307403089399225730345730472257208199948767318140689772486314453275501284875609242567299240524364330119382177849052169750763761216284066216051491345992167348534326919473096267844041050338501050395118070565037211709434466044467602580562030724955755829679753161894485181460889525091816328652014648343833574535010671572811866462803092056955470392594287405840333619198159779506180676370106617458887530439769475367658781499496145265420814406105777822430026914535531333596530695721514837339456615151963734181133053092938209565946016885214619714055179785784975560999972214969931233241367421214827930920459592669391767916961165123842071258955270981178252269796931093807074820199077798633697905968584734442336985064070481003200290926792873931735859807438169007317174068343634474842844976334565802095138301262804519938842806430376395662479380741417111670815439971289869533936505147865758322331906809535628217185441311273776687756113578256360170044765971712761582839063889840572007392520971915956365394788167821741304393842600115923810447895843671586636539062796856204821848475349482090733565763067824281390510777965962357069146067856239506574935550367372315342288362330928268486955374028297162941155805103935357254337960763691030171532609647086258418722445645197942919033487144736411373058831868229984918091814967372615790607474567735408292007643528642734422087712331849923877942087948209930604351168466159253122489926113073479896232987552840093213501362626006876343032156972619430809392882776378362246661075861769115307024302924765998592684398114267196497333246784914397842651096376044864843894035572980439626803291306652776036879691429708762383438736338644711041953893697379223676067552689411916455630034233913252432915777370933911958821164001521531799058231000012796538672296432416244170771493872003170166232956434890466146002460048719353345286605820096636558842134989636546634051423219090714402033807792153203698671732375960058318113828843027840500017741358886665934969266708151089013728804467457233894191949510269681532801977858067858540269783202223786680513083956789964808361762771115819749217459605871476975449023891386385770210888610174352276495886203956120057145513797258429264767131761956958554829908957435181775009402062157055881717771388526089155172246109419543197471574112667306373652918945323723421474270193446360112239975667105431445426573587138752256147961608618455361963778526523344105063373654287283725267220145187468427764220993334564076167027368556872924124852880534417027685030243918942659754898324810577644647617776727608580941501935566217665667359623083154383886807154731116916585506647967698987054054054199332629328381354737563672560084354865834352339477391940928801097674347333840767843479522808722640395499092155299570063132293037177133318148660345808103266863022013550767470540023137043414174708307562696543463782787596979369177273750082096258136428076834928280124824498214053926611177490429027560962752131255404404421696861128742543231895134991737522278806948242253625633666786746202442835489044945896681889274792190369205478013263062512986883107549077042705333505572369829848247142969817357466319210150862164786645921353433827870036604163730410338972589488914571551284505737372774044712559909562892594759342204196914596223025823526151587484422959374431194758875719420647523462090376383090572807648567172752245113176133235064481075406647194604993116282066693192581141016937347544966489617032890333600741463741765212481917258372305114329764170665494934457424291411386254088364351593517883197369314719082921176056006746781788099083047407320871335036407551592947484515320492346179860836418500084900533216200122886714045959124701425008947239652066884395424498369306521733157293962742722803342190532303757243281930387709675552070255464724207952280247310199507937286522395703302532522549088532097581232289813931087822035987745454884792177705259160621475101934705002960499448910032823938436318726149493543868474423786222291936694289288514778107490268202000247125905796432447488027987948003869303584408803505288180233481278609479079344471680961101303575124120936099822970952674737748160020564283125072521472385022232219816634330658470606868138587143665963468484578950196572350103029243438253270815716000359986654438106499944049012491327147109879387220332041876131240999594238326949865868570932644955492239827055630530684625972651708361705996169240180561674354635112538557878027205081959707021925248195810420597025303923207543661661733860202089304778710142332204982614298736955663104375009126202005496514180028932039116750088947347971070687606841272912494480882470512644063755120923629715124742433423145663038569068468403341731925338733423157212654548292894973160735370886426628182284883370144051546805534480770033684982032629470533719022474457070997003090718680136100222554438636808444925863313639343682843929820714104731165322018197845492667618664396052108717906395379065454380550599033446559328523575122563638514534388858537979785481644256266886407974910100753150933967405689633497088813265051174059534982599950506361415857576648552347226147499458390826981228599903277559374938042669767418819042899760862349221991629628754055991713846823074649863239684845490035285231865827948867411112447127564157117910859316574325756171076772446752216448580115220552020381296873948997550170035874534930981988208966236937667939935894632603489203984171183559879927453840453917761464533101408357026166824834366279922717878273044696233619884225913325178465662402883704938207550715584960264747356442675203192676679690299200775178455078007752392986295413829977794647275850638235624048758855926973147529532744018172428716329670638041761709683109688862164079004912440299641828415990452207033942094278853835719894723684134687406175940016253372973027875905756493217674182622709122589178241767461325502268836023189452957156685083590639932360791208063259410266812657406405627000989921260854580865820142773883826622027921541249203448714462784781146465233406013282576589139623896509957968642117255419971543759024269790628881573987138034216434223990142813433305772959995095295255234045937804735759229667273493006349178710126646764880338323444124806581906118150667986980469383898977750450643184692628067144878819132035655127426989592529876181475412153520521224720275141052112716516359871094892568293024793859351903597787355915336922827222959668712818935171572784164297303310685806250395886618857118908248913112195606712497068143445196479259912500447243041261953062708237302548142552487503433027145906003651255496026333934251031679025079189589899414648981079376882717536669740498631755863364272953048188859419246917383288923192077749667495311303884946448097669167409363608842743290617261746423674442923375594773323852111897614964220813418515262095979841960281745017392636100004800859604048994689090489909637633119833706306752625756517005064284332449922131693779052716071131301530991758380317707343761231047304678631790044168609630535547409057747571663159273378831390789581087300658078117205211610860764085590453431132388891095791962725406327705237413371132855032389562565813827020033232129179353016905975925728383405165286787384586225736829039740591333666311974348552892153284799154790985063378459421636026212998609855753275957464654591396002852751051767760966569070269963754314632342523306723613601841168709640753366509667277973223111127225069292989551861423500664611098509338219154693551916069441483860580362781298356082456044936574762215490350751554064510917920117172959842936308371267781248544539976441275130915067709088986761959008930142291704151727470047002827085233519321889214845405052518243477385074195917150003102515007315011037989536689815202716998318402565530698694935653058003858292818950316198644767397832915098397485324650882486384462269286912635159421170119229939188564151073161053679268771396566469085646636191173696807921959897775150371519142784773018689905076886898860322581749660514841288644141499891011001743164411661641836701003789840592790083373788436152056754497703924087853686001640587602226555407979820365848517820546398537193145629081950573532152164695712713943161880482654390286357614836911930462753468750333882537181374099993694507713279151390712359556650343508113173629132687667139614689264072266365212205961782820171241224289046489609392471105257882204316906504977650785398537557104620210965021358016438496534736231209127244383039794134633503082871120828067230317685386161535859111473320669340013170796737010237356794750815071064161124653388696374387751001410943051461861811139875236918106342512023923164405512343070347918105470243120318753115263460634053785960546051889303412547632281467729171278201482068784744937133126531027638618228841647800445622355523771294180210222823811389198725944431698600739925436623449277177822748753188248864254479014189868779035209440437649799664587825286996113671252445700671757031996702424756642373639657609730491855454068929891711655264673413904763854864458875229370557395311415949943470262069443308752862238174619342717982489696172602216604471571759661633481905521522678841322168997936881589895937702359357740252387170240058799079221908621163153103316023641318481266904122338693402715337320802450482039933730043976061491547825927144301534653014534299106382622532597141693209127776601920979889972763915607952198749318432111818352619385305253394656090840214722188237946309197349364991301738599393075002574427808882032929310067295621961913908797734215354075383265506598004377267910434518660668292730322013912920678628796421175503885177065291856143760942951374529576170098367345971101412342922610678803604936077679540203428954043319148945177841008252279540689805276470312592443732414563832935330309480817716042811582615818716377045121370795178507772892913413412810723680404355038349355817780698271998488885405297702405322753465844596595438853668031652360248599205800014479232104100185619857907671159786636104656478457383779359327030196986753467545871103139270254112294520898161569822269923560960602972117131528774703986390425333163202743888454575445910795665671125950095055806482319928199703048737428320739327205493252981144323802069281872245353809451258208912109354223876464928186355723175858779118988962557640540628945716169469417554981970251509749418179625731680364304896022988598405939765616505742139508010070807402678925573602854405083338065525143033878389767355555328983790534460915624435355624004020110678369828095239389907039674853040932141333155675198048397185314301155672637149954675383812144442866347418739071672119801862701294786653437528138621126952323123687798914816917139375997178855895918145832461772186598519447633662870068031503392422346298900816971561240629944570079915766533719199861021246556766603717254335228624749605877309750055476518317798562822459840007274523600349805485753355507976795084840214205233750764805058642879835188772429962997762898172316311615807915094308567572021773389010120824322855246357697647776981246568320578540631137706779581121028139181194123904927405860664252507292893194924488583154720009324106434705805314593250120704454254643011045005639896585209780769037295261709005059614766786220138037249788136855533003030547324449349081746523577962872655382489836594285217150499353474256439343001484182493006118075189081194159424288574826214973267544923900613577559490977024127860595326026170143627932913631083895504676278840070315147486314601792960469388194572184438523613050826816090392940998206206278559738366417886918363256609867529605090829945099683538303377194322308576254284191477299393219122940895718313750631669628165091303435747602767047835549827914261818559553723305794072974114244625670157339240547108445580241686394741770806651297116975492574997146477176736213563708962152473071744766960260579267954627916712558891275071582049654944462033627012330348856447841169248172477417149690054591857282539341730176598113153699233258683943630048791267921945734994787011419584902503785423042330349425352283426611222668250962280181990425541274855223735859245921147798191437314851030251380543763217375636637680530956175681798375366149997674420740329085154943354238653208120784291416471630801206014608176268692997515659514297555791940987481317683478242267844812179799428189580463048096445147708587625843560487507525772457451881266915740352433405689091121604002956335071864576610359725348552696909850171404925014041537847025379048824226438794293554021379480752453244866732927546606624687994211522496048231260348195827610359961869352136762791399047186685454629406770849404309780012673545686971094373967707948182503856222355229989529420553684624595162188086870392142543403671483319598931034462046185322002438900842277603587864706449462980935941110932074014836538126846024737029356995766372341269275855568788989999456591011604340086699512926538189364485022845314123517176131738566055065270249057517084902148012787143416979828145781587927679224849018858864150361250623208556541037419970585519486668755002867152357710361368214101089059836225770099073753728608592463016107692810797321743522673985818895776723229267440040603051492020191885132935423692552446854096153145644795262088445958514388527862667372530602959539158401557829171597531154610644370535883093294164238352967180997628520662695907759565276114483195963562063135317627942632839694699467771072328771372443819415295426211165671265461021970030706807604995287060597428323596721380486162174342007054156989181008836679979902165277957192446208689836228595541068568681398090809976162870839862526621030959046067426650759303602987971386595029667341777376259578902012360313788276338038558975610570073539663396987363360534248017350772895690726519545385421611253909831102119765098136243879871917661475410839209455111414023461268650325695401048193795202285405721958179285241718161617568903216387916730507166885180327772692134647035047028378705438830220846055754914612511002807827710718027860718170346627749985251876370074545456931523843254917183369077086987574934612934118552514268011394343997426840989898023401193034268805118129721454027605629010676201678643687879451641424135763295870459272173538771554352002621302876522549899003231482462716357251042678495215898963226863711342963421668610656689228777829057178748689782496044746437820185573604168072161213977415209700396566478081382284055054425024236227182444464490400576896053901213919480627341060233530728305880785924559990027514344467977614643144802334227220315007369184451489030840027180166828176605529088669736495090399430666087049312355554167338838204524560166258458051388004266554570109758528825720583435180840686467096177608436464258019461097030028497252866295756879703208168494611681136873995033746976729964488218713139719487435870187502012228552061942205907536673280516839450389534823017807597528166958904475326022093784759907443221073170165548814098146936565898099617994604811154916935393029814578674411707236880134497724511404332514163971135872611709866414718284723538792784161807324835220934436225156230300552493789801040290765160184998998972227861992133933279678714228615431026926869420063889319107429161443423321873396462502393791564882678321461384776324694569434785711531499428709010731933495492284088735392432863325288904792056614752888798645989352759699633871822459612326546492836215581943884856833588563667084645668750778535504913621856036655425796444129881442396002230038278861248779334992925497950624237316295605564658378912476879372423440735067593241942321089422444949663831236749159986204394645231380852686882877108929782411234157643870616881799017121589592545763621421260253918468002296560789204365779114732972011727665673774697474916467227416518806463928873487958145779982885403073339183920265241925911569986031329668790132593610154225562098887869351119552023308704966777737355509774441325803689608543763463978216953460919117826005241697838527174453200429899639307793479673152086241370993766393753873713692246362776075588767991174835640307395935147862553510865513655206793502066283092971517402895484357605860451024664669125661837026189638681855369031936052026356255723305776336289389299084215845054572834924484019176385319609653045714400587848619564976352269182551651493068115948661124502912152381846044348147199821367313825289943597641445759970871085939231035098629705621917790834083721983104040107123568407634684163563503816615305774748605150754722221591321318898669027659140214653462028780396928699446944253040674482708118771285520814736994638887451762734832870731889557896704601066987195609445037773329969838324216121379407302867153429318275167953927777483818286606499127996774465770611752127000912643828209061544099632441826957232960623269712553024827780808986321975014892307664672197323442845732442434209010379437472578128878778335626431282417667557666975201441682556266418622457174394939105833442025074094094428228380200205895610355526610265245093319364920526225636273668361239114270670929350780819575244343603536055045656317514401429580341264993027707228198737249265473033869789046291136960594663770782008439421470780904926146212748550333315792227763100901890651577411259710560453474651244388028930176103921521466163449103154060917677577834755000568177202835239533763662451239519981838616708920021898019846784322939040274287336383958434891929659607342701964271535274585597692343038575271860731764473366181072887958463953966363934015268459844829604985460691983703938380445860257176792715227489604570695810895125853333123754291894262043175487547583709568386348246686908986879849227939205931823668858585747956826266334119466011291636178754014707158838598965684833677277444464596675923084235451044736013889792890721131588093862512481715513407046283506420363029867059104143978384185681658629951348982884564028393947937033775254672259465989047680712038580854238776168196836493927148687553006765456677075173941386228048171618037235279783836945326413247312915861484386560561057409429400151895718539710210161839119852593145487583174004786209790167143247814448025807212399276081130773220482105205941879349382133825822937136671395424021093931481126527920349634356639601819933609741903696979200446286715958944711026549815751797619872276659467313834555953886109146778472341139360833836250560831997573156040939371880264622556717933729628075930859890064385179747349585657733989979315900261847171416411190065187992868623095427496303962965786730675299542386464284664989941941647755964375318767708183507305699277115598301832358307376333060311372920627340802346539906103324503751538752026363136890710022676695503733871162029624243959678003565342500196906440962495165643349697115675737141892848172235115795915330237288940727127001241063442755014704769454521248349013451255913795914303253994262724769188824933754836711512338595146640595977306424891014425145250557812038273187773053358659149379683796509838747732698193891316512931702716509995508678445374586465641168376319948815516733842646747565787073753681897045194932129380249177592701224512491714900425353664661548106648490391526772461309454302940597899981916224642153099146003497847374252670514006370526421054855415190917949910687978704083805873730596990922386260645736187133241967433847889770771497383726320540194543286666498628871579548437691760258455401615775640675537122779638988506724980695136764412508765372414076401483819268016561554716554445368072982134226629087251594766948587460348969804547690218995362050377010727397816181699821440668474975557922080512770221599868139677127411652180949187923206898243125695438748239452660532255161620484752522820582057313912255879829774252115958786651059181324798768577405591470365417548553191719204718886751058306859594144176116943636122465000348214675157279916755712831286475220518670806287171186143430068103881292815787399515807530519023255129817633731792291762851102413812716336990183336118576229380976999151386245373925473079084488940341705732964526687091857468115896922507952673927589365665913403527952371830037694780427321396148579603192184556690681839336798909573443468340577181747005697218384025946419676169695524304917980552106260299254755679950923569101472642348576044537321940570522512428572299917262319286854244271134338566286011969123333266712159433155946569960723937193074725614197163023479459029352599222448746044083631617030306752675244076580051042437512627323958766931131269257852036928007487038635761791629919391402540532418305906292835122182631058369985276819716973499147444456141532593451614207110126091003976226149242244260194272605345496456628506711272314017681543295459219891282749975215007786380078453075987132119029984214345189352725646620945334372167207887031867189287303422328699345635742306668014533597117703191555785900002165597441284031355468227957384221348822921457793653427980300229311462436352992186564537958525901093366818118962538350605193441054179042565199551269642177516379139944503335600476444862220297424637039493361006924349238499409024197838386305974776664215352860376432829722597500373656637824567913893993575943758221340284958501868547827061656634646697581523080087015628283502983355989209426689535909004083974643580697635129502957327897274494441482871110405465617749874056776913526337378497779308101636990482992966574685835173055453614368616496991800253309212777940526762206581087698256798333384303388613467645248068146882256794538159380889494647471126179655138912659082109412305941294894126751340903048215369203756151513612396749709791047024579100157192754836857780910036408364637520474660663518710955010111700947923792919487510605052778952469619613653855934345030129795303041151909392268796612967296460945652235593284357925077968330798612463917191116645088866858730427502511945914602519969937380016794518533729579399564033973573131095525279990035419706028411812837833556815790876431106557348190984729777954793534309286726959428550420734015733449635135453958230762612245488579462774921203824090919463625827678809772143722371943285541923766813102634952440700796422186969040950641011652466712844585225318949916884849236236281362118009594868046321168948677415252018091922441472689086210977726286727583956120753041892306902305715460232941064154167445009028855871244556938208790114325705866454648618475259248385803111210430830892360363996761379660472251599586872299101808490368011902849554298299440213236813012045844845238189560566537505295785434944546316913262536506531440902566426430049866642956068238388409555502978655071314360017397042467544860227294696175951701503903685665690805382186687218807575434392585953087216283307595180288524840966934204810493630368568909093428521249598551202344374023662599761618421777064526334636555804094476610490654446343190602822265897824637488835040964951658841479970978459360089242118099568908974673509850836506755870512164294248792985589982777388446437680983953995733579965813552364274727040059631182328758247490521299546737857649147699761686741024600118743132451865755523167639344449029836310993491882014708400955430969220678884450458901437324992844282244634772453402523167774780692621879943382176962213526289192833053392663479527963763912195173345171629252587574634064307672350723042162043802568886779386543725197355014766301160985452940872104552646993332972881171516350785837790639898395557245286982627525423183786181516892717376126224894146618146731422752051339744926154124681968348039868689727077519449549266822127924377304715122716999136274044074680340124645991154942059852162594656074647550168209297986268951096123480697025784137578891974074863732973752084840705612103194427508946385789753139180712946166414241224717501003103775974922327763740303165139412581707821058981209960605058353845873079904856942279047608158292367278524894471184636179473275709656387725407706273462204748336553903287208969057679030560152707208636238925390551961619067663976021472793893297215214410762318962890147525486044936852946256938948878181016352454860896568225998730536412844635492714556477421928405140473694443012500458346245372049879026497113259425593190357949636161632500790029482899245526176338150328601161360977489690159050314316207435220653587733167469235873815160935897203248481244198253122619083382548391277196585468628596428397800577008026966739213694987793179501284590331595707328634688421571533715258228272366936126964297155181212395013000131524995811165515926621042736087506606616801944501903839654582394678278581280198888955934379867996134786738252493571764344975471465967724226727067436712616271085117921285102572898180766309296868153096332963925155715316790102780991010168057996096125415535979771284283428058854392637569624061131718110466439497583767708974269327996420718386917613325788352460976165475086620720262112880052742703137270975169572265576097323596346254094198909000518784850736861796427273824708322820535328545429099000986147242332469882925249545606624103217187346789600012544793417552676023550375457850043617762177737467851339349070922213586273390590655315456956559738973505446817573647208735552226209440709677010041069339116158375769590710477976113958891344528298583731686081747930462686776445583492109015519361455789965953578291055063270377568200500187131012998513077270668507769818996141412619916405274651233683758957817798193053193138148071363467212797510979199249835722831103011573222936428735813689252342153510085342506395998806466351304871514260050803009016391812673230106854949578149586006399085513874390716090342695772094038686295406724757808036992990632536040966162938481171873557040899868480312144642713500386922406742891108632738799160074916239800157981798695009334877767451066298140364805866654854171870415040646050104240433769340782295261839693180222922034041105186484355421373857170137753517113455673295159223877114260516335031890643754310485878176055893784240583333906744372701188183365811513251113468736670009054517089331971969779785447395274655397327868846315761001921057567374065427644291106107612244717549850241676516187778416672861434670569701304185760217878603797609086502587201855179796662523269341927642577085073310290471750498247260091065817601953682237563458603943243897224465690751227793057218204163166473840373737244104039389468324357479427016912819318623952685233048594666676418151425192181398713898280880055307224529688571741244179816211441970223209582661306625525542544407764464336853999252205791248636494868663668914933065354641677947943516760846698943136749924756468128048508495739716292444294240716708515662527994382561059505140780188720745644426889766410213886590857904338090981434410098664015449022193791527581748520748749706833714197619224004661993522979354649527496902562253828057138604895774903717866880316739180418455818010801944511491154520619068872755270516370190459905264011587162193162496569711299304039689046719976404948572880548757427527947507976759326342216331948285289549402194666824602518026296916095186524571883044877268911307457523201611677643087173300854846984694376695112121932304372282484126259494770049974858235039026139020825117282582193942630059994077203458468189713356761992601515349265804974568333830115046582826615061911704445895609075092284972800396712434668766629631345813815825063657730640748159741075479528860112796620842589187854542900825748924775526504786255871627656463537092370591917315937038892595065443946639318841270619567969065104603862482931232170118685154121848655590073204462984384160250150692020002660843100095546323502188523919545979888985308527447230484215880619072606501909509344302591615729992976343870118191026582587384841720045064534175726458287338155059016257517986190881700585466318927377466064319328674641320509029266094860135763757229217677007472081154659693368833070505093271299224999054529439720106297267628380986688747897362765876857160189596332165330431471310261266703709207512774875778481409554238510213979559762802883465280012958059064371796135370411903885971724274375052734115775871228820701294356484821664054539823946451607145584424001795743145501680379673347188053554819116094527460408711101569665097370406845764771211104035711752571154719513703539113276286516431931621592294112626879394856395224047305975555474534064646980565576954071002539895959507255085118047700248270195288469773610063822838231095780625285242905523030276750903593706917329051974576826639651161846520999792733591985541833163455283270833721370617247487402703750459504040750014643929869606039054323667032959601072127586239190278117381785847128429285259948175670831300661965038560708645410944843973062096417086322931503818494527724943654165291370807036761492807675724440352167578335753973987816828812217564189431450200250447622920682292057962375189965798830558312687515101887389910980780853363215800491405441102751582268796772360077276079179175035779816948622328139115665473483439309468926899375583654138846540506097351215251783985715561020720998824865388902624212363472460727536239482770371836578272840115095946721613612073458228221177100192985351199932784872266097238926770680537594225263591618379090815932517903909588810054028589533153867239706210266488721532801640162016965423518497761751381003520558877622343771438367683146814465243272369015936918240399370642860439977833416638450437155483000628391184947689388940774828181153923443544369998898933907662978662275696322845013991521860741052086177941525247519901999371423735241578879108281036137843878068492217493845607074543377305005863370321668666020822016457451752185726056127088093032421823857689181038462025471921056241624662314705115069301126672518989951648314037485532632314883350735093192178704717358111651960068959855013832303716752279565931011465074461346615888894332184810471816899904813977505359929564577965041225741619710519833833100280040299177394716576699498002858906058997471828422080350499609719795576780727701754189515223046104884975629508421252574172707802776226961221027332434136345300470815747313513171557431470350631711633201969753471047820595077647968706136502182264666446747645428149230415598626679641081231379415548812996997775358242355162602035271740431088697593869171112415946750682565051649444667216038032170093445784600689869198915185255904684916825888605870447014154340843841917178285159121295909568781668695988376789604575927221803654521389973352889058536020511368146667607226445094872649324406461540481857240804255184115754388365497895069922836619659384875560386211509048497583780046999283496021546456772549974846523986141777291726514009563658665792245100929709221474212746108880937572230321420448082394676972961630039283413833207995049532789410006944058079131164401646813145998264666008657144467359290785575265214932312520005483666457219222069898096464129683226200828486892750362757659328922825487079027349300076276242128462536624730456341396910688157519849121790986250612802011853765412971539714311163990251612642623035481000838060139313541968072008956341264066900275044518962851698183110221284955417952279306844257152517667670574790449228303686331553000793297617628963838472285659851761647813397009506809497804368078350635098460726806587677774014260620915149797466417029087673400012734873019413419362663166762613112511764039496045723239465563115347318039100621606462105041580262402255880547596914294607357159541976693325209629095205693717360709554314829937966986039398796356106039380296310117908554610779473984740882630326867023158515514543501960659937562012290451323481443075985470592039927153477443973298468161070487800659869965468740715384279884870782206299836789608188836480699607264185643615435882268968039922089276880821488281226600355450152307990934059945502634866875336489116501330545244436446242823966904614676096497771763188811478046744040250607043844251623829279594742734016314537653683633106042486401190869548820623281647488594987885745863596101913374626565413124134841074079824488736717276205059581935817187071158997457697899765385125810492294886481068682710006211663504883914897776896596966062855511637359399492462634042126611177145271343407795389661367949526778034838065720146448459407382077259107998248349824489136737214928774995003155773734436770257425373255744511014259913160717912181142081020019942147174631769728526727239939187014927399675712792410252816579505851197260849886671327226265137332878639002892664965570768925340172533326465620890562143816081029680422818848271479596066848625890454255624036226982573798123538948474981499501766451631877266371036083886025274715536334982365926025947258770255977611633082115976870949076099723906272706184662761295873475247137279335292826761757971536065299044788797888353880375128042854348721586977837711157773537070078863352528936515482602441533328579766289849009143750150450605201018571843384676400876494048215756511042590637886993601955828375840050331305286566255804166875319993687307512752307014293212133561058585547570369362668991522789391222172254978158145050950713225973420416983628670311439513463823435580035546348035105190282464117204768988585834512533630378829337343383093561602474404541973281408221329461435095417708380918383102401453543688997200246487155838114444748401975827379187795482495565232597163189211529745594200356666471895027495887741581931102021877642533269447351471321623934641048210484851208504036797250250955635550665835717060825357330037626121198442981439760738490008639949098870701568781898191993075772464701121883350367276663667877639859939171560320020627211526759776883632697112743945359466671826686884054002312599172676139482701801303077859304424188325085131971250364394366332431703669786030943673399199657653385578057649405208457232424872067326086732382884324776144746665235950617076596884597216399355269638336550491507930220938100174446500566612483856044491201779588124666639343771584701341195055500242641752097773096804715872350873445071017836008886801079798449193687456116562984174312757067402640467584318302835917893562826430997649124179558648993396423568032575762222031748998771131365683810662759249350277018551829985458597075355843353561883392979015776861154944160483607553101357751503336779727729584571913759951246401189299712330766702542231966157173762396805911930031623578218432757620787967917418364799568169949198638087810056813003208584723026156834450134980061386033576416418349019478376327601570098796099714065796030528744670176339119358815043465244408297449459843696304377784377818270368845442463193841948300040743589656292814565738378806373289502483241190911791922697183802326528036432437265262081758427574543220066461711025338170222057003196203765547258445249660579270607558377753019370867559867017478896845151857288422652223130257442838299015809409811241211499018896998068384224565577849983932961749669897036104713434717265493593959676015114824769421797362571256934245755035742976876032680214632812790878959702624770035596372127726262964506037592463936105429453550655597717885201637513381393474754983055105180588388060576702708572549708408572764144176142407118742781814350037052494748133049787374191937953581978173245443858027317717200747761211736377428059175864974732740675636176470116570579724823258987592338354704761098956619892233890063578354179818895412379218124571041358534795457901380581463115371081109587149365089681859049752912070200016641398357332472141553523052329621377850341569171715684994135405180665813955838128046632045488925466973779269315158117674273654582374699359585392950357751300546903338339306152058971964287601854310861526425686657784023898413071814686253993576851849307178958064344249908194303282680923097871376459620860535478339754017948654630897537987684386624416241829345122270896928985472221656600284753467828483620471289951523621587334293382916365253011335687657838962961709535249740127477102741297729414996939607990545811037690838729014775282114849669847846690715024395204880947766190965289209681191308256510729678203374024468442510639396230108223068414792196252283408197457578343586496874403273415277930477633644964718827815635814283556344696950316861185072233580591384704791899754595971845172831598885938211016737445871081361240939417459631330342851750638280224835437126572773364100200417376456125409350642516671376467609917919608633173036980635303565352489634927382663590613905023581491423513673527657073388224813174794667415133554898454391094894012568356165970132279227668392491884438828654029487969483496136661835383193429874283176450775292237334178681775524359162964677615447305785485794608667677099111240559261423931795366367249483747604896996271697787408306860052594391751264532048082750597127549627295001780342907286910346606640874975418681491399782867280415908964490620745395356762390452395808628663126844989673327390877690054137918570638458999334825074202439087018558871506977228127201593516829243188937475722238604649941048931211556668872330857224493078540894858625910169718450831355448778055746211746461852121722475343167410453075315518527467956856090113612878415516078303003848729966280838207927694040466699680313381800710425745641310156082030827404864544147017788409153390325793921362839645677462440788842364827558646749840340332176830193755433674044318221695810744444700682877332654367951627588002377337267508286721775605105791518232947496176951326731355681836164921072293952683276676850631572459270394598703761109787070910098544209415015323692533273349244524641079539376946530832278851844178468951487558529544755481486646481469749867578543878237312989334639742777710207129140365009998338566274366111259614123551911058718501672196618475965058114492901705655155205123806138764869425244291449950316454324295889977138875583172514091297081251126312254020302974733285394371024603866286414089447353100745918858576782197194853790256303871391771101349322064052632807782714538380905721648229209117452335248849048186534462964639089755622426938619025778689607362114675624739465108765804903142244844134003891104042911444212960449707668310938630616896706044558945109530549623172484236495284963691469008024203265780296040420598619299978143753791271483375291915701414636137758974921521428722881583232116795911493004150094014212767100013606893088346094013455856948799733840797184705049925071191108703727573382528227663458475372258787524247275351239226773742931963003938221077478239865147772168459699981397454265275899716264426070256676438603964417885535017087511576891507012923352672039356874138765060016813628958018551675474646299310859584643154475047713740408109393454942010621116076579086701372025171397147601011663389085686056942278400425724101169116238841521895877067921576429039006546094196406429411967372179963890247353935225676362936384527471376647785159019710829718045365991478960885439983631457030618308276355872835273587047523690344458612993269976997371102531546900261910769041061011550553702399206998898828708718386574019682109841075036675550129567367886390102456402233468892100077876399732410332841842381426258880034989360269809248046970078467096191728269987789388604831220979766429766227933260284618753342461181817672616281898175501134398711866052440336233547653088245314334908854665336220464780581113027078141233088049566698669731753204338892850028954765669462798746031746284197178235964594817604922382167504650468656974371745475656630830663610251816404706565214112990717377383672859143459377623640261655771129708919149540579388984182679114251209467901084789900021886076115440499992869195473972492241158591847898413355713947440549676214918961459728918494300916077697288862453057204627396268490165264562553989592171957669267684033078800500485521559442883048986066718097532006880534027946139937992086084026443453166614152387984660511261637914090019785300704614664149292756363915958296580261109624707855885747629198606275517741261169320004464273571659604865793438072752909026081287208351723239006953537571946888089199264991941050974929270519451797299940065875811443975762139572705437001952428043713375441193026036664566380631150180810465981740769687016465754394098709331001056100845674096701713093991665181989217530988201844788104181303155909804195033886177428602802915636091557321618509207474141552048021063582522366333700523657035454454219484592259841171771407268972530992768681863731192042846225159344500206310966184871798314899668423049523327439270335910954929274665816169724955681699029449397379886524955100190772065510691494954615403157158550645314508713253518356914965188808591460955574353231699863555994238984102324087377142818872310082961732733446192128315883669812837570441700906252060533042763670679683871381939594513443606714584419082515535033296231165082267759220068917240027411192462342532968924316574406515141528912958707507545265615288425545849417724317995931585375647605086817367010889029332365796356446874515289909188916515704208272318564297708836441118499965479240035875616257647330968556273237403512376351120021093340479611078722309133534926824929094305965873243031460754429825909279874295290435686292791403701943897776203764439175536355407737719874817855466438558023664935310610173029820634487498565055950458230186286279695764075892695595665845025761646130818469828926122925629844451502658768461219925108570344019557465664085581218750563613939401699933370793299231681785449189940054435098968422110887195245261278460521688180420655607035552642446769726827880531895127106014927097926169683692313787043897843661091326452574933078849896128664257975431623301647816375667060596372638020198459536502330363778041456123201883446915367664054769582165738529424793104028892765592030046560892780991969307179638837460025474022812633398094166494878599176310712418343935131747461709099958701739208071103142345272716357704780895402150866779271415892381891139539432956739523592929217236871504821920465560174472223875261513797362842262339183128222963047843553010871734647277155494715411873126840907268758594107081558230727584502021271776318028621654333058993968204515881600892598755099106249955411410283226147927632051674753221502590266211973847877244273121215952667439463359011356972687146076979745160298351755747039975876369448434401366394138450319292664129796812555630462918685832751568065533161572662394391421420531128936618167689393790783356191106457618475572971115675301875398704774381560434762037803594808007207907713466576067011663103440732673297548272014772122099182367946800442420817138983430709109143486003344342214222899921347356675222789216561439735045621255805094677904305420965482397214912001117177279826471975138107384133185360474428501613937703748242693739523830687103717558311032553802761243534536995838095771452809875710880337577021759691762457376560657571652850420262803964170221394824128448840216932810896637007831499076717509793655753389154129602511458196398454715997537250292687389928456384878722805568878554527786155631819472867919028680497836951467130781132204348415772739205272527954139456917475044349528679844706889055820648612999986492130247901717808828575159430601046737465852336304369413949260562331353893601508814861746238125825818030303052818133653475617266676481614048617384780168220517694182381444953110634145811886217853602818118412025377979484945575695896847178579145780779860903031923612878610392523866962426588317430905414272002060121870981379067885868540096339671457694368164657469142969188534960447133611403808563831868474556744311300455572173134281441775349941265928086749955104272614611935044484599871916525942442481631657515574275647325423250022186161369831882255429623540164370991574925793139161041925290273834603230467985554545573440354360758810507602765004283206821929181380590489969217415085164784307223770915117806253768887910576660443024777760626131022448951671816145784935925883965633357551480053322420990192401042851830825942864124546794741357345910775559475207408189298644995301863602631026614867397581962479385223838038223373127902172838325049352691732346412142358075802751232683378918282735217677339080183641029127938020045260332088673518326090471696059372008758142836875389184561069640931784496658726501117725969299427010258492441729696609852588248925287904013074253695092223677973342166190278861700337382008177684021352608113156286874991864097441378705799796307411445018787709293389704336192366966436566455862943311226099615413859631298451439579422743690628909129175998381273398294690446441307791891082909152724516286125465443147339756870369916134730252424809027416899751491599158870505836852644806477489937975913991224187747948637433086754204041770797959259784956856858948516718096516632794853822132300247000355350830044004522531040939796411142071172631497049658019185894836280078468239434447362261181876954601130650876976456155575983067017894363382892074747887840904096178595704078358106416637174557844067815590589184516838999314133043924196978562256592829788463659480984561997768277757110732050323674331390151546162323570204445484729802227711551565133846736200999207465135625862728256346907627125910774102383275130583844146270159306808463802745487261032196370155192475486160107975842166346711830001451388862704572155597219727562561745567128249834117151034278459387849457444177154255794019024687659549199931178259264966109096184485004231738231249032556015034955153917017218997348565297997481478295086093333881374681482062382564454870002696414561470093798644118908468374975273150953269125670390328831788553556827394704666564852004572612153973928940737145825822785969126268175406244857706694270942639008423764623455478718282019934610786648921691935067853653812250198606970532673007542483509870500172672410405083193946815908724463052225686479750166630101641467907212879448464614119752119874838147027266541579313330156526798104560394339703415256559073512583393400674908784100439005910079146000629821037407203005824309513837369041731600473731714650906925378038741647721880452403551203400528953432517367533831799213664591944856875704086099666099839878505940612935948683480753709994607876716977733780066004926977918278390796325242048129078043677341560157669957336816481842154870357277016366500477744309541396786597762035380274708931329540745087761688519349624213163143802135998496297330836825649649150059263346817268842724578612292416855380326051076416007230405897077557142557873098752201202967733238766002380707918970235742676951279380816580649645505644667490445529170660618065758664933705187583860100963593563829655667047663703386164986556153937516082426849501604760557634612987688527469250400112325721911994391890116430034909323109717590712449748625691830959702919331477992560340306275969664296870625659863419615283718210989264935675796120100764442372237946191034587428565479756386025079032034384895593424249371846552382662816678241277458900260089425999687911739178952590821341588175275803968229861781794828667792944545289265847101397167026335917953340218941780545282827394790769263141762065013663819373295750996241979570101968355365195530696929125274955297494951983914153971242018792405701741305763090172666674336753130869446746987993041892114026510340483306898840638991742601395827354936627906559770313420087665001900086229714379147300820039922233857048204178314759895004912721927044617169263084653845383197841018452852537619572228951675124755317655656811213008426915085036109038419876315855310862365790859622758852420440478059711055864816604707434111296885583685001919157191809117762881948763911031213475542318286624687457504375784501454262284702268339861012956674228571299605614681634253602711962250303803639573294197584385033913092167500101791559774476570197278798411391890853617782415666804225541345844140527989318635906541290880914589107303655046358027714560853957415897525557065135160482481567713325965041090112892612036610861498215657217038509163080038817622979204768944250731529905108123578286789176074859847872552998735449230461253746199034799403866976927900616440698281534395217020091534480816691584112309052037537488182601010028420483751018668175863699970657158821511256842639023209474845589325004209244099172499443520146012542628576006913871299227875955763611320906580950171528098631407662191406529344253112089851005567204557441237141875903754372508784420084692946331535473228235648163088444863771582314319516320193826810774958589051977310827922578491113234916544008161603598011595987102175400192856677113976099397468036835655566487351709875463137860221117800763646275787156092660085547319961841442765963001491141638000394568135380451068899442102021794877531740570011165242414176725912131752222758660704517114465231899515887748395663793724602002546290354134543854048467000328789273612791864331930578804678296630638842356556864963552180818908048966394419475972351553676491576048403300318949382875109009840502144037131165575669045794479298599620694671726368663583663157840251820467077668027007589640335808369623834088817033740370319018122552932908169207317010298261657429182315973228447020917655891653089386845889448609659943372462631815115685422549360523684240633300604115414065282146130039704803031861965431517810947918057451190941598989746978505984198881255687492402953283948464856285278766205795360651383778232513664686004417712118529953361269979771513853457016830977046244468986796312029693728378937523804781674781422686354668091327312155320359337388319944643004008351997665354380213029551910212769707571762353034636389345786136334669479033082868621629165122038370314269777864457887815941763349684104243272164970070364874918693833489351867343833497314604430428597848664251659952684621361683327581578366638794028520710499322424477977442333502591972363019773033969960923021514634493363136615905221871255714893220239006269445736961467367230864254863445708179685512284962181525891716172561592476518615698105834107744192889155646750844878460310095564832393489844958658192401186142195984451112401146994570055167985336643643476969528356773429496524280137537888628555006619113481319431130042783916037971126816594338595002555198709179960339417638234907531212287615114724191633067597309734864815847695142762299113942438169977567174035914220968295512329112030275973441651713463606269030733546723989889301517481720787384176948047670252732776208394392289641307463460303940860843776286776687981536912877212305009494166115540075367051036451759017204161457421729891861283051296697989602637286049651858488457683758963039107356476380928496870377038952899701806254355835279659373564499975258511543472254573477815700804500662922544842587175399673444632047939290179942783394686601045410699632314321781882986896788660168808297855951939161648622487005422855049048379080275211105244625414965353391860139762524018377060349453859597218385104075038880532856066685836760142037785018580857947500570616684026445768403589457071192891693269742761150752035939905922923361082094826332760592073214775858469355391192481516914422393643962629162209113919170782206382095195907591889255011085407356453566162568334757106188469099873916727137854041157786117667704995691313024409073630484512574921085294755018507762605628991368942302468352840450778313358610899352204289421170675017941748166069464388441126942871112234478331372360847734635739396490091612015517061019107937347263027086758835766801504909193102963117457242770862154930191093639082200461495635090562139240690511383006739182071563615285563967125085039654571275446871643993167629547581603380572050812394100375532572865361902704144044561360492475651389168052518245964256871768807917717432433228444117736682258030433276049835101682905517525927610857881068509282122080857808952107430816877838754260135826826146960364049933007266764661212825117474926533608127886838436236169292168646593447496557365598356736388538315822161607784148253867536855675157171065853936466993872685129608972647668288141881421646830653859862959168586357949593591269906171868286329822248836572571066723589797992639663917642323559468551842333599259143334686860980703833618468699190081558185896227036675605039878700881604565660043663118007169887809910891366557070992005491796392245230603179313088926670117982350821069468239069526453931670019420440014860640414284838099566488353525271528978373447260131375087220991721534886453835403473855625322303334403112747976867207851095015730144475918728902792302404674631083559890105064449664606859908205530485849618678623592726947868393876029236893999953085739909021718222424805796739022597669718603419028183785031922891321667593304492730419210298647257963376006113718599863913578451145175990666951513196397483894217148256811445868851150066939738883918823957142574121076597430153500844858503994129692978636772797222964461904043611990489861046302386426904690320485160582121154916271540177909968245922217557869268006055808868488395603612107506933084631717621565128079350994681575767763085271147925426704797649460330594505021665684019143314513837580758096925050761137084343189774862641911866471280077586582155714565156521362709103423906733488847207460625168021368658405122332782876819225458055826004788521111930843458250880712623790801280735809106156465394013575231532538410727520532641791982170386440498926979473519714852028078746780274351349649159067082728414769498411681244713749066618795308802148983694328195688926367795877610146971993530923331165946905235404527370205030168215537058050118969114296744546624780352480304646105082817255666406644188974841918276095404289999858888662688272951204653531263849407732681533073668261165447996640651209265820761222266937644755827026991687042712610727249497287888154834352782619887806938250966763941442723038406133855400127235362181930649764485809204028072473672921974684473541386459881098270552174030890227376279213822527112879776308495959915890955870971161063585764034766610158132963985211794108196618314397644045457961421222677701723453907771169635623699330531844192526066903993708090353853690262879369969991240278750470728189519537362018748394957646714108075187149735675826420261666172306881294753470911391214344639970827283126463891795677871790139576471866484263080762155847540435773143268286315016469212996461566498822410669522365830160200984741132944347247500027735061175616958097475586111762067652536820269656673647333864724329446275194240784852841455341305922998862134655203344836902142494698282408952762385771697440360178456814492374359342988407485928190252173954487296813136451303200210812219520801157633306647135731851217615978113722416598918183333966394232280113800157414644785960673844201611251144058297247887952434138020552799859176026965769739704760151610544242050706684878641113442079918320543282769778804766730893640905082613268859835705388448798846851657712341564361843595324239515690874659543510739485506745275193819304125724161090545727897523531237290244705048489193266338280971015377175784453120072750554539692529934947781746808866421308530383271590178363006483535248157562357378530531573997141975789162845730855249611230106293487970789794246399493505623613316416769393889650199309217959339882397216583611708227392434780331655235345041920710746637844199691070816472783436788198283942443803875641437222011260626194685429720395472116031415968091982811747794672997608433139914866563549709068716861869769358442543628245678842659941904310626047416955331176360687792534711266808626703934868760446188967277551336002895804804834215615791329072588919590292267198483222481494481263372415517460243074456561955272015357520558953484341700873254617985020749094740842535231553758594252516012439820568476613487266980421865748255137307283866078390442193020798892841573263015015895437054524862146672531533088121958557985205949350306697016859108148533033042455983120395529224872326399623758956510626303868762249294618412334242158494454188991067976206573382334015690924888893322916873936801428028360558820095619187166757911214808102011755327064940925383993861670547679219262887542042206762360111497773348480990027992447198704058228051285717197913656869831533442163071810754566859626432192156741415867670330429658462445498038051744562160178901543562936646040611135240991004667923663404241745258311102322493581644506331259973945764205546494963693727542654144429778404158038965633338442702239829672787059543130285098099425688273357305547005238133428133643099063229762953098813596627490231756397850649464930052018983524375205069544719916071315549881446506155289052208960113111095695767171229814499391686367153842010583875648481629792179674276999476080274245652460857001247494596705610979153056999245679925747267534841730303572993475285364132562403972822926752726818213953346385901894511373844816822123636211443918691591559946990213431727740745507767006699224676285335196190307910244454492887586468981517178401120809283433235293925226820186956968307539651328559155680019121305740968507109174752828177685981738927611060387756681474331509772216996758050015223504927429743938858936744592009405659630432755890693448657303694033703369009908522333526713079569874712357646623580648633659691861730745726441688388655270960031788884406244948733270287189197304470560232086316230235166745092407798471043437510110223694261034450325243672972316735502902108323310656204727610331518484226610028465483263554399029438533903717303430638555428067096925470914202658918038386288380628608875006155430704078050246626246029448121277986673100308147191748042661318885193415842174495639709086876547857755482548075539882605261708410758217192229732998833118999018482221565599951198161424718065783640309812068587466237826441230730793085160678642169646812933891171290851091889259781423323282545718253649423766878326289903622453022653278766820991983179926629756334672866228416336953491382181884681381616545977915565308040921675237188670521964561981814389180368537259600277036765777482016701621639026311599818389564256191430719008797354714199752357264698259010394598942066863557705642854895336481025608925028627262143376029952346332447334873393202107280383955306870797890233927183503339053685503088938503577568510210757808321270779882304817352325112729202151593370710786680974135565920554694389608575695651815655107071084469370640118988004223774304993423525887893113412551403674838327004025520357209226100326992016474176512040844851938228974213557993530272579965861131568516465629447237449711606947650606170734797779926222249965933269330106918519831116837897808496084100381588046074076826379080155061233126404422037789784412751370701770218554327145628855037242450923951728314274678726569222986996363617961664103518191907746071364316323941265346335679185061726344861296146291702139417515083994766665444553418259587309452831581604641307478854223458011757223110244409036363696169571170791006576341937143147201560012562947179935214552821999914769954050726178659828844693576491039499296469025358458375718464744261436742281287106548330304405344933620547222917488816290667521408930460329168037637320984355197957934326822738399901681778972478364420345577858609786714373729393494194461511374092845275776978512278771240471400008366752940271840207254051371429772175606777304113408342679457333911894899523858410678476815050414832519265695801632094465447585318259474433882802510928795502892959854697607777861027887788605235497543545539600502749746167459357771022866319760988938210139474062434418481741765599484406155845446818890367713069862986790223357169543494302848843227404773943554484050147891014941555717066305882824984447118053510747142318610187979732192012384495587987604892648851485777107180329203604770042282928797640725970609439738970506304489972266025643349569487045678738715673187010986404818529163211392371473289652465230929422909201297554600976783196899179540976361079531184569748908821742156672224445079096413402395923930634869651051841085928528302077644838891810669983739465269140456329000268094668349458974986713585201888613983570355782861408760805145484447397094655896564203738370735234729209873563062328901782746709853533366042760992404294720432998475516654281452723042675641530888867688406079254685771395487501109489529752435767368072879991346087921404172588013673673767028409463590390532466283714112810622676098386195561760782693559258583733007760415118207883040259543778940983628561332400167010420252519642475221765417007354117621785500828505143272756937452188094046045659286183357201488622583280273524930581925063923959736961864147571487348578665943050817005455462462374864618759765496337711569145359129801397328274751643921559702297413179120256224265822076460765967975133125056491746786451876326335258311939841612175137642981311377958272393071794029001510206246724694213223942996062565370569496430856291017782366777679956159336560919925220932379674345736113195868745346176418489025633838565277297565505593046598391049816276859487434224218659137712348573607405873032689052554683672340396892793761933074167585216811770298726686473903123912195774737563802058274644895019697488705305458495404341830858417943737694603626547853563039005715969539176560952879541469491017002151484701774466701219529617053447990532283475819305136226632688811423245582300836164677607224087467362570241751148369484267050403659278376589408448449214909119182305737473309897386035522184770415814002970567513062818617956546403458167338268265234535270861681360907767968298335002686395965338453447103699509194245082051096123150771152479160399350029571264745586940099298772862504295991262842569246999347134006202005772730112071381217585594790053038359775333171147401589672625224165434079592969572317913931984060007508648262214740451626402521301112814170975390384121433052334589034361526081665302554832615173338147090913554248049395932740054095271866763119644816166780349576374748339871576825680905538388613219987415069216248425919662449549617316537566633084196263379928500720371019501723669306343615930585673419402348930015196972558583550632228233583416181461029739507099582129905157180220124665478265749060347572627441986341873412176717668601455870934840403184574107531467848072736369366494223324000036605024301733272654013068115915281615133972367281451455535484016849070100956408803394707566504760987471478996597048326811195447868472736318426577118493264283695633963052645825329384361313986004691487941299260536803025817354156820647858405929485954490829870140881478853000697968800760130370292631503350391563855099305165302271053767780972717341182161205187056245724107105575368480951094075850300878083659685201167170057900463601769632074909410249896416012585054469223513159459624072528019025133027108844223832869054781677698526775866383777156740642849227009204815542195414984795050426227061383576781698230995609126196910456904496858140441450775153189137012987235220944301766654879741647542986321079780651093947819071007432489274767074872778535821255251211621840594363467163613888701207272701382790675923960700771187934611857077745962413985446709491784947293305805193652647435271438919349221051097634772211023987557713842201700733656582618153802164652458983258450193117470857335941675928395114008679794088554280431026182257717086649498375848501149955387639855661054639225845501906872524339725430458515232769503906825509718148691412153342858901492191188007510785347671160387374388226988304218573280039074414207520303973897987872200224324893063702792439962277072814980148786704146421541332367223903583140398416721518750943020413502639865696145230445978998134965133366681590567101802386542071459108764734567954565282830247738502772966379255304615112761988193596185654351533046063475836367888780649715330310295084504947815614643767263185686283285284108181341298656239635950083751136265905944666013290181909685982102425701100305331889905976894520882938082105543670269295376682382706811647352341829574632673742176417965075200935412311145109907993900021684323596571445560371729867239161928579677856428257160022290966176751671997606844109286945264448191197903039839737522973430448471993389100299612079645045740202253695234825974221342554938501092433437199520716539022502529952705825161399886556095751848250932115502663019771480455757485466852093864611051362935030445212033298743255208792903740108211553408641464822024883581865518076621971869628963244559563708867886212848229398566497848823042843520280226331074998802903768057350148794363945969552452949211530057554917966220340400844000367644827267435163367920784305621525931547481870372381571797520263632289849085881091467163239315860245315128253698234007696307632252843845142515663351189157123101607277889031037853349993032925469274527179649671218298959125415718715262959757511088945310817057329576994797663512076829170977766074290018226584210301561662621456830451681004193644114158616804390833452803390747744975203153844900370467884511058830214407344637792616039129881323610098058894996122710922407273410745689676037963277001195819776194764828869922644654233232791714966689920986756378329682910422228048586252546960538128963122876313010624280091382152594041830941166280505991157236760078963775206236084472622165565711188765461852671769405611886896783610025390138485654438790502402548691106072702697567675798668457137964861758986173699038743687464373545209164671240900887795881696270326434111436388756214699188736588233948504251340826804766534375228053502662117926232923025175120298390088161128945308558327025172075938784716343028925175676237280039356838447667184223673288700997168271225429264214140413924450385187592931214979763998422722638546739131100950625224540196097346459750634814715971487425970216722660829345981909850553986599794337266947325587090414323039425377091781297102051664305444002351985050834303634489728534987529696677552388579231846002001506364712500993542678548710640399002911099856891669865600048606321495359324577079078055762323080480911047793764797915665399353680837006148986222008834348933790681708405187821243957105283800011261769711734408557166718771075356285498285025966394803030649508526465522709860250702064684254412759962881820725231493288647615823211027786061082306317534043091076958719182281809858962514586260344421383627154569656761527867417561896866968128615103706342807562089409853831698701762595529092187296314947287351555157820201296534931270860141769988245084539729057294193397056750184406796933679865692779042337047805585738730859267333694616198567407904252426497217305514590675621187336225728046045562324795470262592678700197972491633716541307696515271108777665504193089904517562259771711829992251090603500896749565456024154348671534040546871077158995054781646274656267686054016120095726833135356406732271377161273061882579813888074497821255150112406429931952627027751615510232091138703550785679894482633313864994134716471897166365678422757800005174140340377295561537451095255117339679789404228440359643007918061730835356440695016295982343991513399847317987459193070275520981246830374864850551177208862582423817875081126274830021378718397664575203034774569391732499538064211293376354942362891458513801171362710287924315649414063024978223351244735491498372702229315993502764247650478821494200428346594479948348624826264289990333734128272897539010778349297067082345651319842516054993872490092922591369124892352304680393717634328695895730864627366222845692221962164680100367675939884808770484423375948325216001582931877416410034604257647965689825084940219049653694471466910186769432278963524530536271179254298240199483148332753509168883548869820341160210161721674017633646735265073630496057895856110019625706391207800672724447897603792739123275433746283434048592211186410556755282589047012622935370032578769435645631554840858672018811154770415126607422048246895847828115606393886165891522506426309229721895039344338949495685527652317786780461908335451220528295466884606494173808932603476265643593756232194207969729770052557659472749638827446516813290883389878267721073337118406301802554659450280002898173872120173592781707716257134406242638064399865753909104263351422838404531950205001358296710880315827463335077662201878686018079420151388608338571182455940545972919591302791489379989477123247190915574486326293341178966248582078108587172817870561390310379481523645983171715363762298969321135386120835613719813360776685221203484508552757887885748943690894208839297464013126370336588329869314470540141451006549271491199115246800145407505170280352894631102275139867886765104329169863309331944129267511707618903465965292809310361284554460379537830023224838936628709925515412236198678670882764088329793943776029065185561968313119355724197272151961389949354137168241244524134613730435532800129193911173195332419631397454668060752638015320999696573444988285856376343765856873910164395654833542753644220818466452385398986286264458877929529004141141799529691474870314162639413265780670401666385722320031336831485445206818099145129931892164570154306015383822218626797700184374732195305519308588339460708753104628342746407606626931152886672230267740668013510974644693827188087343500485636633712548503116023548075276464353362082377981585664183691094345648437491556021422373799791133218931639316063336284071018531399154308244864489532195315734380480707580208898877179781483927371076245330500195274605325904099002796643345271268484969680755253957947798053910721721048255863406251386242512586540980198041051431622933478398981748906133018715356971250485389698495154631926851584652414272061537482609274848168263733272384397128227053419745927485778828787795249259821396292870746345519460341859328305284791317371385444795077110405476116289395927671100943080527310712857832987541699637805912666172110294633731630101700541455066079386246373188887085239917616379069731209653946067027134021577921511438317771392625078576439946706445410091958683949278826211755786046785303638570334108791489160838994165149760950262936743045052711926080981661016271315305655380444491074415294243711410006060076575812952794107292799139374986476694015136715021749919223226348192671230286516330123640651354215670859722716965178145410520072792909719341082550357963648269122444149862136197021997668016948421995124616026299374435373980637609486126155657821732689856775659502302615905416157051687632328142473323240732180654733833167713463499767664224581798201164870514847132106266227861131522333851821296036882722792502401352589261356538049845281690040972002004686191697091284185140419574069917700739470576021801763741580435692014241597847564104541183961369809473642667953567973706341672288774010847040102820715694273311597521722728873010516349061247658235755389425012767012642718580128842748518856922401521168069302030858975843943141211867697269785121501622670582703182499323270106474025893448221781206263111332798523810767288642435767174140721544718069562256153287916753839280209472694644263848189012933905841179047100499499000398803370711523300896407694260906304552023672100116581735847079648410045161659758503603878285417345579873544558486459344707785753937633814627870622611392022201195020589256222273224501109692605695863509208351301472068618594396617428021935061874268523068197742454380691211769627418032545491663898933469447913463067137883186383554090134648513055276573607970340342602848010892902516918993928560348144103721736600050470232173806195767099827128456029077771395284107821756987191328843913649624623327785157514649156862028578020475925142612108406122779579199193410228508565221956014319213405966277248673164337329716158004188517006258791607397688369398871113034022223530641508100121780068415780023321838169314187708689342241482911335546826385244122072473508542779209061681209850665420697229746556509909680175245419619514143447882247708765779737750286190609431487100323673624991591461063996652817590560069719825307693259778174141389657313645913590988201284535427828995537129650324640453900010070957640076392900926309128512472043620829765645737296334050530956623186656790429262094581604429038114948533060260876894482317713515742132385424866566182552468276589846066102337135591194900861299460602204611275263971447235993392516284783039281358212482568624453248691531516560317159142978513966931532120081028596748925572711717249953082443286883830895379428572918336598676825980375940763634543291525671098954522976721622996822277735959905581095581529930865115732876572123278444703452601491726887636525480027502632028758516029200126748781277955247017309490019455286747938397743940612814176049148209267482518351511189119671255854260972989725837618692519800133768830152603796881402035755079718122355694831018263495757852270704584118119323859340137159693170748987871313286675571924499243508341823819013325266205895111747501516076683119475297715037589324797686007684176915145533079046723506651696386743516493355465580082790821700806361065895841345982117676895850114360050452830569557740313672204175068376331124575749011838338739575281867385962837028950728071228666697726252881626290276801761332680919828648127999439517926285033320860892704015864548430346063020981007662403529427016624818345582253800376005467384941136910291246179380342052000743547179154066038468571636100600654563412729768317672418073434538686004280749638801905848602725258952854136383048687210972224270222272981014484183124510127248451726203742939088348513160860852504260947651973840024129795151577691065972721503972038004984495215924229431280601248138610244227254711525659979207738512538679528895206882079821910057419307394677982425728086773623046441467535788148956967471077536281586885311409215258333619946284983699844375281543165189068319203452567133542943839563810951442480602982114211283147907189868400312716380234453394465882360033852960477205680350406704368574279380053482962286554260774070902501639344950629104231486582311183320398136486549422031693789567126931114468086068606630816284842368628178503600760517230260942702829335456660579423925803814302692425936088340202995725067137482686491903979094955001530276466416231536721124364805485356624542172925783185916161340567351876049220160149838189172474745663138464573845468032529323593908710747498086577567000422068692772005881855625446203282155401012495554797323102160048606906963458102552138211975974856166911659864884930489080248063419136450206507495189566318772212930068038372499116014725191209375002722345026760279530628461526015239026451325738315581803467696789730157584089934432330409236149347328752061329648895040472774837583291664880360339320036455260448722792048049149649288295489621327007809888975097838369512174770471752261501594974610600936081140601755176809087881164400905803049952454164442599485503887990834407906411103476059461605824527917307493620110683278921191885662452358744282193702886887062633737938820436665884124493694162757700831984021579431692856030849346546484798156387895360868391946203079644188376980744105045974656455836676142210630430780109400885651092966649102815443765078665784490892069354064792115990431546755024815166356572501052339508760014757897600768604287004232136032706110680825517019064792690711334261026076969912694151843017954594357307809850925367785836903543141218894260699312708764759429557862393206997570367545973750372712648822894944942050158975235099582455103537936366524063667774321716542743994722894604136567961615331735297621085205334547875616562704501484637139610568540239706452364980089336544213543544833064411275373683897486611900323595386662186682208804207820726868884843638793019546510284396010983723262716663780430324696307194456031203481523252549303027865805130855088071852507045819958385129056946629103536128418719173781915919694937705232456945326197402955380316610704778615452956192759026292309713730852660010679775322729465272880784552381362597063409497891840213317786867184271233099860042967709371732902884520133970957518758799295449698950773055653152850131574758215315229592316612658154616595440878237382497192150566391486406486525234986344288540044085798577620273597068477828976522965546609472083048030215410133116415053771520570018514380842552809402595800769337452486878830357540962574198136976376128628675369972880997089217596343167909262528931144178330456663493718702573891925273841740362081845915755792685884069134120018876518071135274047467815654216171476784599665878070851766368611365321228140132227579449709583422849269116376592185600989936480746300039821655817375412418342285458131811569172488236194443642194725906629225343332507934126729537095823112934303718736219925439917503280542015981675653309388388562055224580287236418728323596109004753960866093934190939126468719910294977364423769160738088891174439533566185122607171343360431875527180578384436232404464463923805628051618671581887688053417954199077653924002084929721267564464044949895510998912943328282367408019248464221514344852503316996313918289519619483156149836590690061248513234862309209819195997348912429735577682118280051801919426345181456617686841882952435241824327697674054462798119626896205083388558123459729483597690374984704235245827167878913924360538596705946987377066569343124949156451033501570620856822499319436050378814211953558418844778046238331766929578657944780896175505526524165093305888351949276328799154943386603092564562197218408626151765190889153775453409195595820788358109326223635337195508815279112450157741772843975573203066470060828718376050247555711467039590145563275469499298746392281554447083970210205722368361785657730705816026220325326039030096598737639144645048107329630703402664351240918070238117816708237813158127567887832328163117992255865391412842108279763262521817961963680242743467505842578930429327598563385079020137393481510845895369731000615453730653284412631651194365553211105616691523282075653603554292347808154244891320674052626794784552370046545338181215010234017425525288280082281145324423112724986136861582690339445348599147101128167591542129991213238581328889283882116709294317835960477348379054486561234564434122251723178533397847363725259697479655754194846626194968485035579733721321094950001707560424300562830181163381691700189819660423205251908410177334901904573702923199252759547968959539278947751621762776976247215776051913169319528885073832916805869517034848261452090013025086637652864703887698498030324105308835875868091393775583135315299013220841017253952157855889757235030357109965062884255540105571487180659390278437581501838024486491983188612337689691993505612513241752892573937085367376544942551983288942262493256638482605827902977561515781025699716323248338053411513675256999114008917166517981500692730288872250669609802594665057062142885916541767126000805463582167887041428848476751864661995060131606088796537034036379930684763373887555028101046010764682099433545877652779199076313410198872971529251584444716217862883306591584744719189698676295123175124042542306127508085254319072403194193189205628829760315118077017037698277482952783462492036908807054548742309699576835686390993490281763365323196822509943354364643783793601794847062628841654091261686389179058081071524570759508720416108675160099703873277101862785996383151826839532392890881143349015662560242597089735998433967116823871047152460344185046336807031205432537801207526207128986061271540363402525474119628584097353973519221431337908401898508528966544924666269731368643516237642480827170730699999674850348932646886117141882033203468897341949348283100762970548722704705208613846568096009841301192759797165264954099800371931308158425620791448999492029388675392906966862245128763728583224599699049708618310733309264831788969047742519495215094444992253175659860682449065170461865730954044092372065744965336304301962806853465598448117009536964949959746619716938256258172940097795662663013867752323720448568711928805182981312460062747801078198153852303948397476973414083958415388029387091265836244857015424998443546759861948741312015531293039745647503141934528357181938691203911406806897920228855903754362795940226630830057024176249336504930519189916510440043598066714032291148589428173478282736614608176201811078584328775530684119287011596172809005757356909606371439465235760837125511167782382433390272745001797657030464808497656030684281946404204211586365454626745076095172099087825327846927298203828939983057335335475870288076715506284574534761093152740777485042469867245150174830026384208445394118554467457861858042999431449497803812686728445345623385409237996604085199692856257062037935039789896925306781383517602033496246860533992515672841496237164749153283710195947545264936692180065370753067711011841344414259936770440863407519874803865433520983348586575051244689249220989922936914248844501141498882007964640200154551417393990432028752088420051815915940007184429508524093795977055358553453156913371562294870551028295977607999094415130364275825625088428721567880794883881835347299002102176733029469235644218581909813717723691768110939848716880674430042329402842938518020776432852791580257785173117211664661022783973465200784510628877076334405807250286957288528829320205441837009488935464765890155542297016133403090242346875404597101980965596439617928635997983978593519900597259562883051996080468712692820185185607030126433311388488652310490815097079894880876585006638780446937945166752454256999252718655393222991664537563399705813599285909345678881593527284596393441035136838129550848232840482656731409131927095935675973539189093460738628403499284182023225881661131863910647113580140582263410063703535964125238872643545772974187636546850192515334058296714973470360315891066943507767110035389900784227091931049750423274394220448530053385462443432251357885915882929187100939507888580793902742851433233262975757655326446718509265839465191091392408357239841428651818530588619488911401065593019101020992783757890104899448979085576150675065540251774686576020672524475149211218234831495355811816124669245434972824623096418596355700929003993683643755614221216815213039812666383661813551794956700173146107240219692886484655175046837171988295831869890585787109141982978213841344914523217353551831680722473738859839676363348292075433907932106334589246450819189954134725984381448824717124948575194388937083797914503207437145683208541533528800562425876628608055412138088767524937300641755847381043382915591779295813805827740959646604004785432179933110368541512982348836011866549189478519716628529072520232671096657881687916743660512256142208452114062450421732150802128930930871374637735524936635614980872856863427156943500937471081957529937932678690486316585094264122856210114229026934099317092134315804673055758399156146520400685845650333529608793558757952564206160848269076842413102097751295531112925502813363888453711342467443161942947057001699843963256569945060123577420703426653751339829324384050789841260990044438751181221094876194199155743173805184542670235189637814337762410886771850854938754880176522115325346225792524812699823618071902045287876538037657163512615680102004026129500353411922775730717967885675224849097838540478990332532279848175649574907325891177583922760247592100025092673851888131368076140129082060564262236239036375451765341686212311298002317730329295461213854542380587957034768181351354475114678884229906826259634194747021536132351706648509255130524694023829878010724439457401784595502848947040279915514584727861637957723432592894485782335069160497216888068484023740383821339419886911745312938569482338473440399676686922412107979033025920578527609089314909294559605390906439054398911817838856656169575018416266512097410787487540051897291375520651282356660019659598709526468046193159257932762840657580837665746150001537227456459059291722136435355870085965160304854707625294471101743134813502690016345899841608409589259666308045718935047596563976404010508309910147122158126779430071450400542658120640856203498090973382099652297940469939813002712986920868538509999753201790902808851606865562069902844176403030667651020537955022374906221679870589716957999000285145704196166890867752088521043144531788030644565701071403093512296190764775055940698041063301552195161258876859513057488339868202247895864757635570859667539986722530606794072964765296189470873190227113407778814848576887659772389864340838652375309727601985177992694049675088145868596457772161775650286186732791578397444279970925855963383818338406426620933648107464618104463446596653211194204151439931998794142791328903555243586390934005303737903043649467169511246500625510676313438460034256871435100528149116735130783832380409294154960968669262119584265140663161611135640916444340236189951140135050128102292528683313399255973219339126546123973998705911479358924620620820081527880339331460674593589417387369720146790660432963376445261984472402619055060589957109901163857799276787084665739528554698894677375120854532561172096139018613560730625906753615825390622407111315961809515037567451398852520405012104516753861728034826681486804064191018652662650305833068742519985212560827419856066191825338430196981842940473136599061047600289186573724471692263365119431969557644411397641855705360574572478202904375526841422348516852264866157757263333523110309394904465699873722037597460032568983821997296016561067485809145147578673165410905775825413853648896168758569975297023024401833540652319915096245802762877519826742779632527889250561992634997855598109405780062692252877547464893480707680720224727257300325090979633845771409254155850030408949285550302888176435217892056493260137457516977761126721835309813677240745168360511303472126381303493263297893514150150250329066530033099647887497555772116074581693743566638471747037739883173488367651400384112642873188782760958468852172644489032436549603834808709096133428157919781448159174373354319489385564537842622817350941132775179806894723082314724586374937608656994594069664418892686701907974435713588091174635359959932053464977422004115690012408928628688718781272262950101728356723430762869203254962662232194933219669829042033426422738651401775251437679345790913332506880498562651896850384137290588244375250854862516588777274643862200030792488724690801966767859984036249382306248749450013101898740594849280077709776552428983067126352477275567020916403760336862177781124916327222844556511953336948283557039059548348141166680223524567019727679566739544723151372363479294485660323555814848338803447844764620421461158089051818031645456478945205903491662057287581343665869633563050241672532114209729961275486738692497883808955650094955798594988168840099676364972634506858227517493316603456480766306570549426660191161152598102289681402312164464850632992373073393126124570786624561529465199494050269185151493279080878150930363057255408373838998339451115380918117351646964680267524158668129219950658655419307100641702435201253138659254646059587338564094225565532170302375597416345065207123943369518240414169126625364110047610473372085186247864244180591897924881334382546493921561278093933657885479571027182590782189672118394823900404261489208320312236452358651178652081148825266839211942744027650457123110162004281666297105258934711369039458742065093930320629379026380997437714649854377897953918627216930378677606642745582829262707466738652897461995120337757714494365215994783256536189882940338147421070030332303012159514740322955020109436089752643549566818186162721146389628150159363759584389453909252972839739515340884143483908453951776419172373235969388864372639887110818640564573832298647548739155429874058281735125755830544368415611598368519233223564164396231441868131217137590837505664190570069442960957045643907061438785323316130425141143612520276894496868217641518301122172333044851779704693726266782448502508108015822754011427219842788335882629668444586173732865762398659268413265231170359583526199444299334679575704081482712921352931867288038682040249110767279494465664054154336773581111593186696643146381198347765098885511208052151798129476006678243299925640414632377831437828965447313116794195428304058048129940212862694958645761682650079835974262018010668533220104003502338930804503128751149054053401461913081359844529640974948244402058994959051169972973244633522821668985712443044547771829845330562594904374030299187638009429120290595548522420859724101644574685906609371847344069498891657574267868062069495965835479057332173206522846852005278852238244059002725330529897538639878259344586952124579187209432155041697940999670189444061385495509003672543868217810355477369416804729300527533019022949318260555617579471537753946305904298396953218793804609076250007707172469983241470546621075288272099114179966834953031988034404714455557494702330913413918967759995677958702973271265146321913799307420158383578924769218325412545710984586188884062380083219955873694395148402983083386266134526357209747228059647195427120941011881974872888148049605346820962034458420270071964825291246384634867352745486958775460561407420234829395759104786515581686289352730568352344812115050454778320811307240147325206500701798524730304620692596994916733230048884733510065260405675179963286700029193274463105321387693963612771846967769454663003031003564898709804664842332827465087951325289046671985239863507554553275563072375936719394297312633517768147747966134552796767380109994095787157280651289933340018666132642286915417594545580090042105649322183273662830404759297919809297660230217552177802934883247376951541995928103038460536122767696273433044968901439599993804624651284260921300108643914999467309838740392872828651074606331653878838611379720345371367558424634188396864490463906506506072044250294346029101588661363413070390093874481403574682186312062192013204713711405616320666046399371604069700349045818875160327155734486705071202092497502336962727761982104025634167509484809408529343049415761480325813526143201259960862845033194988661161779645986041054138003936619538931548085941676771292558063558997246647529368312184181860054827671007011523601836137313609324688870143527764843178370461682046655610485607989736608157792434040239926942545599405503708253967163425921269078729593689969420958900648764901169421795633837471673565225519143232140765980696220414411413408739806797107371878559092562968848768267413597075563433710723816987392785018687670271791760267915049979757665452727695446336170644250124706729346421279939940881608917786213301973457596491894229613662413062603659606336729849288550755551069408216588348566775511921697992830663246513430361101534834737929246463411320391199858252140395115908188218907293645118502922091399982996174735082227798542676727159584207206210925386799540917197044593905638761129592286200762146076905110113233625322248928465689891001895437250784314290808726781008390110222300422047254636945313484391298002800452901655061560919714237225456694062379206395823076054865343698977862475071201223796830963951391172707593089903632183802686341266978498331005003414808133203132322128389382018468307494519363819799987047798123247490901556462437283779620219868974813317867416525978174573041179592347112725438252494249185198394214078029626525897322575029344068138104633683719746067370341396472175716427364596130687671410658548031250026592467425529851596921822998790748566580271143164317717182530276673220219686300523028446901501475214138807531065080343311472736510151754879874201091342864950897675724750083145736503446879892529638171522533576845171019559343515216196401230901045592361382813621905878709069643490366317808000354602102289134112130710341258041655170233644426891821053902195119897984422216305300984056525034536515097329289844857660539934755126950020951565571962766302591222865095162002501087840139069812539500069031936271243381192840807424725007772366668765948789332851168481621759676043785148264225533053362232292166846542877736054082209687087113919781268634165721330071075031486250219498908721397359797017152551102401223945904164142148023590887861722533275545014022739830148068492418590955348128392324712256474291471067518764354756318728727275985553375468384525140951090868539042894122418746949012733667839307854578611897173191627529089658147081063762350827224042918341866330958318826506177068833550471413350489348276243763326115173756642774337652675516407083018751123061835813406999621490227427957600510953733400032350528003113933392214503795263870388439487725809395953154053767523170107113248814865459509596621516341117224394990855582608901008133995854896863653630335512002104341882951851837031615587376737488735909554237109410139611638593398193377633255320873580414537593721335773560757273573708260918592321034141440115857335936091176532675659507012244456549658258489504759745408811237659646934132754162787527190639565849612626214470958902797569468876201083233111190309857569623663232725002164974961806604158102981839838159878539437559367067042453835362275447122000440537260569898101841348256600780412898105473452769499741464127069316616686356692621156196037216376568244890599387752414640482340261253551530671214966626926484681303745438393416297463536338343356476659930396849444156702096893072591059084214088850309398799081202018568019243975885420789994989481019233033790345490865908978239209588765791106575517894408787426319543514205961945353868514885146713055579679484675382760982229803877437922916745436032052646669297498444212577188550792319552374179894580544437139768823726260153365503898090847331692153397213366217885681365501993755538880698924165441350055535886442019918228155335005090443675698567762589095384437536986025367623246803330256472000338086282046638502753012686979381585903496747327668779035885759541406561639649620805835181374215317274377027415110217707456429835388804922557099186764820909196474002812062488476691881386282673772836236508861015655118155803086512062396172675490937889105804021014493445571000494672543851287365548234112356235078675340668626295930660471786034779260353706703865889159999516459393479199868313183657406248845705501870828498250701790406940129373380247073038782814811155692745620234329246270207145742856255676767595766872326231260955091328321605692424797124107333801143262669848220113942475213093551751184492242127677666763833234081168162482287389359164960479043882471409158943868207948720331338466339420889320183333399986348381144930792329621484933388577539996794535981012756421713215056890080564296568720371252499081406178309987870532091250532970809291845610377825223499693152972913710351827979389635144431222442740107846111554522450604300176511096404267045996013187236271269968894220331365404189990077444717000904473221046609733535840077928672996694737405927534326475257138417550168903507919666355688982980771769504752120562956286257446565698135550456675240885697226873716129800038236687303838007858690792019203224851740880476409766104043998997646269500529373189367343378164495334873829185988594413443794219126697217833887737000069510753218835431113720459670736487497185133036431593190348392315769286294749409881517041123758950302373406491648929912595413306477265795967491789025348271532011177788708426019843022412512845175234007549852911310893980540996734949031175040599703568457965502190048494476065279292296519111260132103146481745287915626611731225643436327825256158034966360990463809275816728986834170658430568930525801619869777059607452122775239127539681242208481037923318324125071719594095728669423170167046960651621448043519784315255085073657639411649040559467158947180583685419011853641026753066248124688616169304381562807009467379778595346700869827215407152339475306344547034112243205125213126497465047335175071704238354772490390004901217165826617944043476418944102376513261672560289207363773174654963350671191858063181822904556964052722616802563878811878035906698873045803750923561759013982085454083154661350885274208476042844105155308251692271943053808980470637798321581579451203914456028764313151159454506245695148715185220877878653373135774670927786578333640142527845293455667356271305102563569441346171957054824049997125070867433943528495976872440775736249666549190286529371483242015142872520694165084214296817258358782302659246292211892113088815012486132598507804631190198195421777016216091663625100882785364826227408023470749506216661110096325185761460091456493121816830632324538677985920308743573726456274983384213797005898145383380934429208654929837755658929594207542550252640249043094619563143479163453669623147041697275472367555559347575970642574395591443079550111939097622224783950776005538668430025496632717953638511191995264075185692631817090719685647099250557404147611176127815432169314867438927790490958628159458346528234267671280685793179574422429717787032306468403911585188348058198960108768387573222863850080904620126215637917932399146146064586069619485526225392803441296197532824118180365659295824277721472136204611618582546759864612272424400821854831867857543880655715578482922516328669066020487490559598528920787981910733815143489766838051908843263516640061869419450542777236395187415077785653980433278113340607184027999291741022546543915391337286829544394583719667474282310156914532715929806139447359639437890784720113075713969370553392861704913618161277186011454849642284072199963083879467177313608825157581358390565441712897111296572516390482052104894867134010690363020234179932484789717188773748374993110655456578772365322599515342755134702312591748087115680322971899499403094958390143685959321239011580500290083313917982876804383565457681624655776644993529036914307564660163471106846815324761930918151148172582642769423873384757353331563049304757209398727720735706739133538597163296583680956235550819453847025300297562032482137330631266985976922719786026975311731210878442842315381855459409973906256141535460170829674690282613883110631832097244387598314203654993724880592197136928258635000034283637788285738241779325502435515087252041260974013660405666464407106446201986388378572276555483241897417334758407278068974098645408837288921897632086184861999666083949086562407327376722972297278364778235613687445405306651766007038400936031867566097720241633954981884791865273472128360436486273432813972865507351234127271501110987139231426068007705279778204751673459562114036851803091233330635832446607137752469010958157778768857197812894370240779085983488656145603642613476145362554594263020791874984755211673562738139847727729999958956696222264698292916718533627911663807870147438947879538697867996363165381982103529790685439293979011315871656952391190000130325991462870272033638409648006567812969381774930944036290572934121575993790080357995746687010843993954847243919881710789395979372951261775358557992973529449156250831462500747803215409708834556124720411776713599538450846261749567682002237336677965613557372531342018234130497485962411714343173712095584989517840455146023336840168850360226519740560084269815292185468155018006316258230541560956784680931724138574978466590607202164190185321608571453429381727624122329272182987124026475761199270271461507909590115542130823990001898484331883645805001246210596287784269242160955220676656725777418442717413144649589347953048391948398120291143828067559326846766649126103728630962767070370883266836151603338793165557754164861520041508603661752153424045120601673699689998080778209890995945566251877624975291676558869997305637232974712599340713236859111998800886411077759670051867643059236256004212584015405720768919243472969155493207197516404215049523174853523257194745741550198808862581337998226664899805835214787293076145135965062693022106627547568221017531600521838271480325259376198509041064481780880714854670701190064539784700406316267457438689133339341777820829816583214707248139131145826175937916686782182900408418861950868004727142314981366682138489495724033058092933945327666362780503675198519640595008677924508823225078044116838564275365805116115652812361553714312239654959097653038437940164738435754254525591116032938436410158985444994457303306783941188740764730570760839426460555829940395219063602768802513045548612300276879191392370730085573991013273794284864585512388843279860542400264959747855355241820471249021865243021457786555627024720043274952932783979395396428598599414348176163665317833621372615475739621934226291204577718810250390525600592758222797017810356890542333851728754437396572448425341858612220160575540223155024931652109046999984605369224018765879397126954064759089389212936220719597975781146669700792072695322053319253388578318353755885741644770416911638196104559388257024789524505301225191901881455381683604560067984790615363312492067888053247874659315979084672602958319102425835369648768779099719386052986828242230659682044104718172076797185914997520966741317733419869678762096458263524532042919203021115673994804894921292400575420910601195152639218356941411456965966181835019856402133828044352900308288152823583140086227736983749237600671523109085584045194881371917235096691935821287199811375338247956429044426349090815371816128665719359442704560622201739381991088370469616317521154966954219244322658882646414071048647454546876619446347439607471356731620326883111513403934379207354740669458301202361808216017858858045177662075931190822304644803804426716259878325777912637041987579723236095330891432023635079624437262759479062302825531678025223885322343728037785669804175457763336929449484164762358129470559874058921725036481290324664004643717854868646005129950640957989555823155538152616582225653453458530868268499994351400176655825591504613340872905385429133499462758937599814442140006882990787171726359029804696308450584057801471591396513583145905921823101042873857515416627630201874638453301269123119517273718317209199681659705686853173242884632349084316722399898053289658291619127169047092642787545092116528693933292122496257817020702245598071161902665333712536625904725851533434945185285075047597355386215068039714129814267830389418547577750310573684110230182848330836307476119685412027786686644730062235370468580930268423229120401111095775729930360847154297648467414035027325317154601254794696667606035473137642562771374767253458440848626095257000860457406931121801444656455934787433184232763161664506934540204488327220221510095604191142449274290192250468866350835420778143003985436965905691946748804938810938224891185767811501062629887413119247216421968310813878635210787955754258704440826695805668003826907681285042639117008624897725596058850738482572054680229107559030395738741760686651420317735072648998933611211754160512349428230279870446570016081779496041402903227730105632611928689686060118329100157833040547463096223540393388059726061502544806220627053827322499939225860013210415910377281063638207776053688559108604981303105986849723556848458882371449173042889963568547381945754819861108844874402437708344996368025065499781773560826177108788501504950230845281023079114862695031720968266201982939553005156375107289729605617705012732400183278281005552347896002674801192591347375674732343950225407672372627121850534054313898115073191043881509558359740413148555392166670605257215284355901112132859837849995873073181460952837510678568586598327835946596279381594227516260950694393438328629770599141383643108535883495991225959540320644006432608954371834738131947796892428149144675959652263025216919673094036839775094961378646672379608337706526006103254314860796197587257266508526120178285127098479486203623055391203130719268062121422295531395875594653397307581793032211258024207711660962361869669695954001383282527148286245232209443673045365131701745150555883207082579595188779691756381882004061488783500744605399868265610053001415393181325463011740229866706047996838809163771238170873966751731421192505109037751418049627031170459958194599729974881514300651376660624075662688704669765015556117758225627626696685207334295171387960229474622728026509991157105095389003694591098148722029824735819251147512036858258294975893454400690834912676799491322501567433320920951434262321486539166301512315939016499206912737408584587969375721699417641776628465406011825473338668737331432084374410473518148532597348265188982749474413369560401683421452747966373877936230118441545588711922777253522871026222890386546217762462868334354600805830335249151053927640222786280460704952249263575212981699114366914240445948414316322374601308572549388286189107958707663270151984995054985909010863192408231469962894751817886018864300274827091177975989632841710647832397522114224580243370119491398711054540365824508387416987883238332054772482189977339264062134312095992598913502720629793816398421871457773156345288291040480025141140691469481838156060754438172088890591239167203263760279350755889069060461057489051800363004126516852291069061626688835270403739778563249104923801265470112288079758870907351654669376769155812647164299289304299167837590280002605522810135678496457432116826511480448952095495555923679524219597325341932193597000476548738725972807093593498542245624478492758640399219394215502735438800644880663258388266507931414994793145291143626009336217570461957029572613340054519414373583079957794893603327350015422792086856518600061851118982738299690550175832235588193322424113801141136163399560205696764039659302065565450970175362505413894314353795235495523237829950569205961554487745264894388536674902464264176329292202213132482526499842191018334172871120148689785127817969552162663958799583533244566217931453078301054800177869632730966373014608040339382824351633172832924321303225728069685223370350426523479684852838583630284738914075962501038312824379499008239557367978427852564765188858135585306294937456010175409568967518114966905725294783977850964672829136034193935052212995364230962313499469998995570619498010362871429489871355674502141850810255101838866338626787389452714939034293638826620707787481851880529412643961594593993261557242522791830364048021000386398440805895173566050609048685967593397580974891262899038586618648413989720370788587735028972056561417571728303227565763102156062770393438517711080011567107052556927568563779246365952843530617201574303758442387603216795750301121510473479289420098515034947990014804765736881340013857710971696109988636208853974255507501984052490238344033802107863848749176575373940287191354752980389330170131249398385251008659231656321860853512843887132603682820220669954875909326430053436369552030245762873695098279483066718432571931632808088901871804307728922987515334302308071578584711425847218286223341625008009177843196342104894043565400593929362260971596679154244989093290912617148639114730974795805587337027037059840209826156690250928509448503150536406689508857131044205404300591806804426375727588030070931537145013651242315852381996114940530714539648160704549150471277609855749346022912658948908079393965811775291193918243515270229968161840736085568058574028795459475174073400285882700471724717580462999784713172076287990810604470878063134953937062726974246281280312002371741480595699683342701284273536584468881391742539804129849508225148123675921476922959190140854708381630400591184712502466714043026299260365965610628716215758488569084813975589250889196036102633688598786080849616137288963213514623750693434865179738686864764389018546828604026732061781717928134983694650390412750234755568613418813968473424571337005776423401643223754507704940549087013121969287771543121227126598253663241987442752553746997886860321860574101351954921027057936218146190725254271130785550356137008883669205871234548379176979502931856015554445954592950829068924684293650656262913599438912769121626539437886113776809057197176006735984691573245411874532209524116307705879013209138987164477581147114191885440860237138559140535441661695090929382759492663787972146771645207197409031428076536539631995042760726547309123717933908974254071505533708005279595308586894893002925226895630028701816580312119466019614992295761160324527008737814721576718718653031901548228284395819795778153553096562470277579918607630261673204538671125476910770379293751295203511563194948859765729598734138599818563760305958099796413829214596018452621503162368644316758201088371196834118936821245255459596955744077325664082300424117597092842039679385587216370744517146163881964292326997065039904642120501291897532725652312219329565162090158274204001279421567235312817195823268063976262418635547639613975207961724002049551286470719910218988405435306546584110295474301072010676770431707894350343176856511915939259600171289855071171328880380002373700295428478341141130586241910619314364843354927294436853617876179545457904331561140530845269823348133529860016457772939204201812709643329954366628406362012110561098104979679354125901544010160550652737266850379554244626511539315371382832004512360736181964998134259928425014309577379862947513653206428846717531507684779028272686974978207244880195286177864244796833152902054391480724338354203280553215433250932687427003452580708086385739166714288947278783670351969620926165757466024972047229733800839822841935148682327651007080968119412382609335494587154462798723485085406049796970296010078524655446497557847284768589158448168095670732490078577893475332366048998922736290868907574217960071069018196946652194973884971864128481814257103399387736933136924112813732781765471406899222855867444988849563694510890479857297115891917734345217228856524923610117279068255542646984616795128924307250291395130335955283251442424931098262339481614598742979907974505536230668238554444590939411468988657572723424009911265357327650145540150040859623672226054611147748690440458618458044760591177903809536978722542944163661948576584364785828068397868645389883498900868787976151640482802553221424976831848139972057916077761926820128935479021735325741255318515251831229817603078973049113433315676251955201374448156757906816652260862114765184636702322945682561427457347106369842020834626211595073931626656853640388296863153534561976668497793220383895232417427138943307036859882062959141571298937934981139843348936307230832049358724277028870355728028581529249443279734467358544910153491306381692760500855740326955542093861400469596788647157827247716409020902140924753523903427658389562605289610334469241492411028239418906300123523921069714181238884729007544627578851464821055540681800022479216130373986946035918629979180252270031901841345037496863551961183978388460530439504296116966659320988387483351818882895460204037176036978278482254332283114648480366218386127895238720043542980609282730487119595607739793770069588045301041919547062199153220223561829388040928864340166108496944226070674724535103086843388316738875052682835234338241429489407093572600701292049306305174538074570881805130925234858982468040850752566377712000779326171350196611532039371900826739050378612620360029106033241462685536870900597475296093125931032277456964106200797212054610763882229679864532886092512776401749229144102059812113122030709855054810953822786609241208655996505950712737140308349084165241464284218067731102288158515582288398803236160647417268507434610448112724758383770809455643416369235356807947025993107554783914658928563519265603154755668624212254849512126606028653266700717571377796727877691577387420560643984011884172786816326422230375732336383931057794649328321194584295074334249709370335348881322976501668658029995141928169305363604989455636836756796338534033876499385789074977995121223955463640455410706310712360579207850293726609123543235900559178910804505639121253550975267619726504556943992906410607687753316982422328344429529301072258022355858533858240406696754671814971160761289962744372995143565640464336741072962047755370963389419927329021607222810566385967179210663682816721160173604746218306677049194867086882985676418329469786367863411492287493363313945435673186433833959885559773287370327495121768676533385971338516913880180963807522555098429587712459525053675082865583914208154957631789369623549411998232560579651993195004073067067313855049554494737020129778731721268762645685761219408176679914021454505212581416853953802261767783006342031889676234725072378043122379766567716295469563178843875585408815701476149275467644651126311028546835711429833522776660966634443573713953090648089792585086576551774648170403012739553231031611124844741755349872000659549044598593251686279499485911643013274634977052076877190469123631612526836668465453446861309573410111339029904823486811231705904578848945688055420939402537825146299370398794157561368003185041355930570747038978073861548589733230937305506027108090247240935035946161847766583004924434782067829552713173340867004952613768306115297581542997960753506637347147194723770514140693470993111830549101497146522308913666076817629288443140705016816545632848252094670026513161539548232319573999845814338741070335352225793423315710300923544513570422104036657760627716733255732629331042575657809891802574954586999858026037273158678787163705439179505257330128856156520164281404292107246265838398370883284581633075363920358208414030757467886286533665354661238637115821219716595283268727484572590126813684909207633844640684125079872169847059439892861427838664072199872372985225639710786854804091786254461058599905378543244796605150789439288902895912631503049949932828319795944796814481970782848773545511584710565189879459442032349675342662204395049302387643634037609543288584951739113193386618229178469659705404929922562194332143784850650271606764190245406071277168777844494332594297417208827109393111127425693460886822017139322903395462286932948465675096419064784516978690528786200419313424233882742891201230205545424243086350370304213202241627544931530540016584874038635181611774879419123299271113849792302340355683841575347354550317863106143718995243785319015448769179467313603325934916418569847555758430107218034094490073817284531780154290273592532816680577669138448921063523483520417042411584486905651992320953575403735946661138017977607962741112293090356558235393114551368758863438573224643983705315077345522740220947798414823101310779744325295672564981888803098424365143148923026668323589372805493106749268317742070428996495974238465763065974554790649550465775149511274923237085802845330722360787174792515662224215865396325254282955865625074233207539803893351016746484630005972806336992665955017378883188672441744870723477612815085267763437187010586935937864517791353439639833661460474791741064961892436838364756161755273061954860914199174715454061439510657197377106536488243318355930266115086160213696742469592643709082717860896628556001262124699711891867004995140308720719827602728542818189062499529155373051870773747110177385053101667954247438367072727809852135903522299396102451896423605160356220919068886341884990523785541808763288803560141785919253915551805446747542515535092742168680808435018778908543511104244657241171965800312404541928570284409141789395247177727438204925057889457969296450753803814376143981914037315525117784163045744041749774908503594524939741148461974157619294256825480721427296304689510151025635992228401570241226621711872957318166386545360598180019800913190104783302970378241765247547254486158960628541010512769116570708615648030819647381042007350108053601102472929064221764558472277898567934722330041791232277666569489337888475449125664863225088539729934661641413783556894946430894860493802597577136592101399350810989570567811833971304251063009213207961117249787039536959637904441488904200976947077296724525229382901996253932497250832514082405852750577612816226126508722892935931141812372471360696740457508815245083121542383220350613665149034835794096482867335582405743420635765260588961949912484484490768048970095156438777068655897481673273298030273100846821598690621385250047424917142405757357736033991163597004055047025532403851244750385600333484124614101381781336585852166356810499943680949044341552219091523277334027603479989515704406289669323961938971258395992308614113099554785280339107713940311122076754087934139168317509023278415247311955042908797184577873624900536283965226598544323520912479844788437865476797192991225638666506274631100181181449388890189455798718358508186130522512111843977188524865657632544129665698849418314518940339185470361026348395253634969275972591415228763002693695385016259096723617760009894868832437257930249075577404128855815618096210173437938268028417141973916499491850738218130229367568498445498021424863468000720739145573107854991291113330753945986154295523118675353673202606528734746738214963157017095750924628324869370753575333243732464571061490312737815626014017279186074197452121220553082772791406990898395293600298765746895534710126731438560619368347731041937629153296881764294328884208261422898497266633813075470559990459122545197097940782967483518056680071011382025405186307640624697406145565305881366968759257530456901007347798748714534825015275782599214008336538901988417418008981684458982409661201898829167727330690646098030671335124401388420556352543651928037783088122149418498924356093180995473672543870794639914603443190123000843507849063378612544674043786036959417207280892930614432069721673194915429934717630450939669205625957918445968175923504780317638370235209279369021400127004073545388648256211381051625848265677312531005656837322815900052356321732134802799698731608393447580492780883117833463021590001406750636166654817286019752915925587268378099544522551908346873402149257746209649583529457357373709115831386996630748974028933203904134109815886482600716943614376989092655825268988991425594089536377354160717419247266797489209526943847981287752028635678321292346682096300782853786311687675860064100851070130150166197882566380800761969274222223695533566129082728781279717302146865922186732447748812489232518531585145761944418798979245019216044209796704536853669600284168639654287013427784512215094881804737734380441026375420579179921126835204187104755659572152185896501027180434987437052002101993270542594648710062965604045898874747687449904868844561972651375438998791868312864311890450202159936416138908248546864841787483540282562626908308217033158452860610610042946817434513879311845924355458202933859469209502447787535231976683995952979506168866838233820606360826260204370427354678947086102416275814829804406568444067713344679829087249852436174707042550768573764525630197704902613446115598482648393442498890863822055313440671294419749066653721363537014845371513668513351535704172325780510272508768109005901222518680750755771178363538916601839478741412049373738102362372951449455865079937320827306107039656594864212612051893435259344185058058611753232120020777843492967564297819549365070742972650242333441270093415582316074711004116924873286874781855918330029134052396623266761607517581820074440431074212221062457493483771536103603386985902680656825656774969329233978930131791529412923800745129509976616091843078306412712127164697482114588444019370724517258053426540095758334904476019800540918027415131070447317990350092967789039326261034650676563698406594955839598994159059106478246012863716173309732307345528078325344595959921684087484688553094031114836334595125165320244139116216022528672164329254178131694553327066045997896981317289851786406142069062878650166907344669778769344171841412192440666325451145437362078670709806018904259588566203326024393912204291682519008830428584855677158101623633598060945193588875700191516348256645325743206715056922801854193853512334204979644472329919890296987031189224469703497938145708005932284023203409590429345537646374694311073853639663954452718128438305108829757334486156640433302528281190139487520531086189781865918808563745310910418041109622232028527286385539407090623744408302602021460905117507942823188635223081119013239522165184358985898687174018477265514753469511415179629825682509603979420596000017440504103604471291021481666172517782577140066037784158609788212922867267020566212515481156046736010959347830083165304612292940649775809119546107515221177891044551795298599646933506136664054689245747792644276155762319401546917963736480028851041841547024076414012368431682249627655742253835001001557080664903996803765384565970330090052093667451703538701262678405087667223142827664439001876138270353566061604865804419290471546675925193201677458707963525165832545650315012480962480505787786385795435639078700422718993292672819818511256525380418496222862322415640864214135155589199630621856598030302522376472840026371092639692953232468909504330950156976904968081820646944561742196030764174970438196358127437039979063888045054007827155705057486882998511157252780603010212242888811421440282710676707724721916110501912203182194418340882296797150724185936033984780934691970015919133890989422554266858931067052082981291085098579969574644753363668058580785201560360453154278851922767611892182360215259140723980288588276202839945858981940255525621856718020204661420629460320168486506083189185933453608959409372962046143195448794226578233931190447756855978595627011108776846167400171664281627918122283187283297444871216653371185704047065875328550425361175910662409145111158283428585844895661747519839323332511359318418467654645567040306071352050365245488135842653844639766644230648925001423777150410964029529783558286709470475073749369592602832405229281957960307383011030994804116071806689196704235289603675469417169598071457972467107913557096340020998204570242347864029809181197849309134418692412751004236235979927382372221516923322932464986937044334747979974639888050573364087129316731779859947008914250391714584533047869418879310377702158377504727825642436270093964085691258556576307142667630592624434164319344609565827584782249776682204984016886883831864191958103065094933874727837734719183488053979509702032717786880821714405592374198558105298601786394997052251293369063904256581464140251908252975423450385994363259430701013795164416208542014537025031182187523768081235530837445022602088375990107330006078642378959751374570790318254666933708993302216764418299641254564361749608304721280355574402484940609836042263887125319720605005156326574041026027510906162668912928178807236180901764639189562567977292784272406491994957722058444888384130254162606063145469568275254809228578031901764457738448646053681135890625853464936970222852004483146517652497210356872448833857255386585326875743432412098074579036186998490319580521501940274121167989040831839853766577181923815630965472774682489758952783844086855210182376114495889087538922500514796331325469982590546765716862732688867200120094675005979704791389605961321204849017228094046853297140360323135508991047011056181713759597578022744786519908719941227547233726647315648742599688685865012765705545940861772740031547057710497411522502767547523339293905320935582255429072678026468429279554854173601567995014055837550774349213188828301249943940153133547509531846976245482181624573348691662087110340801686197370205347187687009156401445889438440218213656125790008780120157044788253486578128258153027054510446801205987889366341715709461190221634745004950375948685517923495718893291020000863175945579580071613522080269577140530894227729452415194698304036955089116324773781828635621687369478317446136053976456830082165797496793698473046600490222376139154238133997460617271049348576528857621438105413130099138806812187472289582495001248463392363657307100388293130671593771286411053873860902116669650393190737845516746950960679035828155818498327576955056051060749698752384069300470753880687912510744842321909682513540783492648211843439456724858369979803773189465964165898135773946654756971589317877733857887119208750188944130817902724683833212573795479003079765978553631269013751728220221913300815632652143933931980520187101762807447081363207106383655929424095823069175050424476843669285514986334516789453978143970104857075008431177453265466392137621494520652278818561939808865945562336632300214750260480977110667992178861603604115587257247179044717439907253862936631274747574369509998973085547081873387166014662262239590517371794174419689967578389551065824031174674124777421005216497648991751942788474022632406836071123826915460365885966029741499606477913021040458035264525389316308249942238215109382805412210146781744821863720678417409165143202638416451752225657245735893678720559090508164773131969067387173514780983600092911212402652753457920221813450292767772598212284031542595421600969322781802590479073535198684601569276384779912736688031892671493781403913193097992113690617610747112515072293481162722364551541840296237465878548906514348085849934087448450681291888172648490645165865485690698244872222520642404433362442513852054594376520759994030803803061046102433982109296981173596336204668122418980834874443912379748100989513434489275040175070829650304523201903569630140606248205507401431963572424479447168666415889406572133917221765021065971569039243489599307442361578476801892665946352770254320515216335032120133323458874779990232132162397679631974286240818988428971727075093177693565998083345125780986835513582782808013716147828372797139554817043786960138879058209014348494853258576786131843732725382164045072950150851365925915123228099408514722964046171266456096366638775895197232835115802178922485446120476636551007679264786544774633183123088290489160594510994589195297136210383374958618886024550079156667873299225677588615766333875663940699292670410706130830178249071569053677482838707127611575545784480722417480253685187827832405139495432869825931013893028907240288188402536600697505320503172721851622126301423426350284711918677807091663025978556442282061976979809597910651060335846991111749135546512110395817687621295417956885977281417484699874200176146075091109240427684892562357763874679979932760275636802887313211932245075003019376569004240896115458611017268824804245736946881684532418176065679553576034917316813697531630873065206001268678663518543929222155642609764903276330835871120666501884777432699276001775982586403347641904970270882929507702790520657412685375293884735188172361249549151293172778093683985212045683167310485479758815122712712401787914659291373933720376124578921676187875843815423949192221859991237130193745742471093469246657116902220823356305674470161650401363871723861427291212530864857202476936231920518005139439495597593017307565333744362734255867508751942574290814804517301466109316889279643049874505015350577778330688594621176347703049089797599951304135730120218051236289516844948354544764317851803156451411541300823743115791304868269211495882730097153121240440965007421872098755964715771069490614525373535497652553483700112780738473312896703071750472005940715005926079227883889359308734136595034046703771338901798037924802617739034022885225290447235902886925545761511854492286175357002659369188317912494761955357983577454395438852266587033276326311549859052256986706694706213870998258469943875677737681659650025605784969641152519446521397554947484190744039618603811063951346733445940727191379546371080940515315098992863975129189494238262138309235454959226247103748461847154485542310382352380564297555107275121744532789000553519916148444982218097845424494435338929089822991955939628967711815099259997747717777805128081207214259281522071045064228723419768316170510175474809202815247883801382386119249440590665291983657488026716764948851173820333758612138588070243625114810423492102289692011679382118298407397477792250686985837505482796302554664819640793255175788512012740039511181757200108259216340756237987657986502366119404759389208501906152459288871807254105373390362517620235247746688481616159529136045670257416218924003299424457684745416207162442542808936368177372880471904964417567847673496219618182491144957439883378023576233170721497710408133347560462275775655536585772324787300237601550156009506107415433799559748435290163658950270876321349690457449242189574780967393122942086171468880047586226420674791909777615198951741186338137913113927703367078813814224248844448862958721981524101258309367241063918851476873588470658123557658775320642014715584843596012781038907614665060114928802622232301166933789110531946798814431334936671509088620747873507690553285055936305739915608814745912051728726946513400200948068754556867632119542836704047112568379541325353448355177590193367786960584994279529215020252689794924306440686497065168932397858176443579984486873643547651907838783799267235614055431891492699564980688892714694872263501709638052276869219393293725355134058479006886334005316995640211456562465768362162881990383980409475416987292696476210818048522031733140311185540655440658202864899605779916180791635220598004320922347552084139198870872265950551558325908187691937219265663687967850960519494123827486193801065450585753374383845666205056202087954724713217028613073711157214745247870804538852154379508621031825429828059669922772088540818931697486155793543862235695630464191000566851288034519433378954192537876168995873915996859337545239336799043297137346067259428981711733643686368845763730308235665767459951715412417475184335511002540027679025640577850580637767572224545264959140358570782385495248382640064951969955715451804922190563670884021620360653808251061594364256484326196210272617683640569983477484482029707858008387281891408981311644624751481155876811805195691318893298950960653242223718822582071016996632176792672657017403999417765541385369579029610863844816926232596738736249481774547806414346252391670746579997006817222971572860773972597225489413117284046214593719413677454736380517780805986262738261210712442934497307151184448768575542322261661128774874906979786831019052926876259671011309756196998898093761702481003099843631281309257448387597925134845736288740924178081235386917581142990299384509700488478874546553900600002931426720700090212137082898779045744211970856144293893267383334369421385413213975591184951104954909731784956139443800961693260859547321743226847613048082819348300836772580378141693514947822611043337988662988200614029978430697687874443382284040967098046063833107429027657367744347542943234908775457122562465131469360454131305823938913366335506818838678058607510193105291690192209973957711825189472179928011230815523880546779282248995479238106782732002601457886415772956987495783685597619529025944563379736976425020519879431974110528490842544246638293928875085921948969511583221577108040516008525914602064003143752473491402087477740603719348162670753330168050803867002469374713708684052807350416629474337262414940785955125610872817230162129470790061243658038345636150667415201303228169572642905108174681835620605704306371823935880215980500175092667842900393646106732730883989930966163240922184584689317171975913397343819910652596960697295593599051697342425819169551233696270555300295542481170016902982437782474693764401646651881373556587516347730430214959569534110279098987722045288745539243172271506948617401585100311575910552186644195050363121011306835320210527673238497711063662213333774493549997501131621585230555875108010024840457526366207937880060262123984945608558050944537022161399978041304566963324732280183135807537667759761613432916635624592622569497655399353856410309820675875634498869878571241455363616648810368538715448395851744504424482893774298880022482187090068902182102462783453567377385214243346383494219414909239531573324455955933466750006528177147449617110711755288227936952998386090838880516774468357559456719156116786197025291747639000668913574770228361704340387315906655422364688939997432098051657707054196015840007975035861810030873177198345723762765751116702798080070472090678819153017926026684614711055939835567481755649557679531629650589305341778472468589095417429897406947194633733516307427889947998237553513921212428110427742758323864191077789354264419299736856713461828048194092212653276009133113806674512455413128896952439142424385477994717546985089792790143099063418248817581426930983243808201038046956791624301376271662331360058025422129831434660291398251885564444794360666909018718239416958282838957157600286313767151645410935410928092501116604220355283148094706984475877370084003474447001749655746171080905344499957716917009993532219367429373297956471379205777246042170306941092680521143528965958282459044268073890781401318347982983137016418863977288526168515391065361329621220024976424022549724567415172348100025197986860626771448147372599463796528028061479395464876308720541791785931530659198070882314763359301203881684205460305165125092596076306970351648047251612214596934556534318868735798178565206789258840358256802923712902107677363491352601227730509059998878557317335060503125107612389806892409771745605701838932301534695694922828280855153195726827743439824103653834840639580378123715343758448184316588919394055469471343368189635979586573251844984687535254599696927673995855045373184888593002376222161027082374491998957740019145241009572838878988965313751195153129137520811209764886883890396562004718882553670383099394046942475401704399631283990655474728411542510343946290105105013853784642586336308756277080588603771576982176146835244823059455128192609251513598301383793245611118837726588471606348158604997060925666543924145908870450662613750388197954912695770766533162611410228801999686144801935673463772343181733617868833589056861658507478202252480643321672209803611878344348542308236353342351955982598403682710444641760886231105650335744585659460121839991943493331513126940552856066535054001979565758493941774819694043107610452327007703597297873206116001003428689569091677013907205316612422100666201995934296634997840165406030441672747690805464925464805176059754606287693057670636290427633657414300980810576504010136690679081001060077578413796755911809836327823555394764096088492546660174638477398222919410174470793211468010225063738116749358524674966280623112567000458836708780685987640489334553491002910186886403606509026579524123858569259207058222525782340358925802274781178567520460196315783444834595103129399500610893782359846833415345490976883179111535146137675664524100990361643316191574879478716651674960752443585625176418588839158204577626554709361714225240883311993482088521961219410913145606981848027203583504739061583430330862440447533797360808590695557864721848677165524814756476061422464824215374769596554911703248403235224616769376854469791550842617140064269738265263709594759164880832202519816992305935634021167364577420668601494297063346323558885989949950687740727292148075108932274535134198471408556394406388252761750468415458099411549838044881829504412773203288860793408200594349479856665422550164005986155888409840626215340201842954542853304611225148635133959197081437865796802554483281524780461848287937553176483837583627662944350484052943979673920366820675815811331016658801890851271828627594695054307572916847598266540773921725304928445102085219099389143566227592058937644584328430178845509552189222079939444569797826103182576533010593507545196641377227290497362566911797067747442267420242818322382026529950820731073619684439771913863860020508804789919114698160864490615917287725234645058875221723229152206594382272846223178827737017179511107009662206853091945071868411601477101228978210133630958823884521920004437816089762300327145669183415135999639316595955105467060464725071714878354266524046594056741217699552157720941551573846728470492021800628172390796544417404879308782343517647163473809331764727545553047418469340875581117060926184551848681750413363746257417172379930225205571292455478549723531415699049489450184490267187550790591842654972557235100492488434037462522882022629771380638154639975295780958627266936455130479957685311769660184286075460080422688676654416882136724195537097596156949954729429832512001680634079668408479054457922255347488378832679253987579275293377569474572285493879735232286334947586899800051555053360738903651859916910637991381062162904942333943672246884634414716733235445362379366767166184804433456450148558762224214937638412915950243557286084152848922444204075689576750023976703302700818913456701732691326849644534181172274773804037525354036214430162319029758823952888548514086027157891509068192239247309986842737721241719293398600392023648357461926784451493493490229418095900062314012572088496495049637100173506820163658966860236506493292332610049363551807794261711052155214489258039850950837659778379087896777873515848039168837463623001237072909623540228811016117665953860093391413663825649702298541793763951075483893727888565833042179405979635179077570313565356288966200629838381310267523915340726596728981316504195336800599169131089159905441469601285901928704794666928127096661264293148533749853630797687283943583894301255772517629550263042734345443500530812201037683665990641728501132585510296935834297711668612961209840316685252286076427975093318183412840583692005661259065746983755366166432770378775496091503739960816288285835396791323549846160427082460326035918589500031616385893340805295406948810766483660081205936381329715110463334181155190448328402756724246160553800819768829032960554217853859463706368710867504812047435349637486202088742570339791439859836997711330582808062562767539795731721253921012962005409909507251135186433326491576731545213209311807862478963524616349142091780536743097442018867980794556789353444375529690025298500227750571507103012730730103414677400146712470260050472663839455129789378364241296226807463453134578450216844504520248333802063860728909436990865874743022769315636741000647115464641696623606202831604823264432485530675684944217175868902120979895552248990656579717594453025639796191745986394073934273642069503099310284181957080369839143688814336824767613940658475101438152873339100984181162292719328914343012338493715374573039565573211856339775411002912251687697525963322716264847211235167686450809857484043524569880154382792671805787872639484530082985509791192200677374524184716076319725856526827286940810871559378822306535491338564183159773449806520813043133380852655617283563583730020378309887473687826729551558159060544123445414787412354476419472190297766952737720727066479854994556093178184854305462684672503354762597738056163528970294599716620263064089982199102771808452563228423223274699915839770866477831664811860452687787987406143452710856497768918344067263595039067897664546776929156644695219771561242114357720322597989662043097036977565377617024606792963451388721312456171042956505344738103132856748477238930168521976375314730775498527180845216305435326118944139259249720347537087868762217753992070241634149431204737990551562746191350059586817754972175089449670088574114715503553067191061643155702688723795500301990050055589396445358657006742718055570345696712845587455881235312862283595821648167090971877709927331805373269687600538676837094448279987870147028487889580776078383801614016928234407028664524715507971784401116727714013739803218335121110002882649220906877978108642182790905530742012414405416244168314132885421671958411231703532771278410231267815854026543369083730142728601021156179848979790080887591605427609049629325076635204484242370182181942896813904275857999604961994377401086987805331563476141421955478461564446210167052825905041583913379699675803918386293022433736510711795965783537623751128325648676826964448054108125478147330075793203961952894131931420681093927386827159565052802202774550675199509885145449837727268961936234428237607065308823767481127524227780673913926003386653787999017010761067978688453577313198924454279042184359378369151933947677494042491900216128957859736014154844175591718795295566917777542616176406303937651068116731694971522161841140595260054803164106502579702846220150127429417560512920521287920224853037323355048044730589353051011187669207811284494498104050888698009057918680340675775088312113543707266321584119332758064270311566511076277643065743786835302948301821935582529764504464355971385689482455040956161723187239619699066145870589819653952076255117600731011607567476209584080329168187434379228184572113504888339842411292683970536028628114579896182158707180849999799763969387102828942975073245326109668309997772942136321458490380865725529327070881540523448486177976248766623601748438624289773773511818054250068879493216488926903915109613411091910887051634225047314714735084051679457392241211553935406664983315595580779448443669569291920183098000413132116625293652626707516164332258944875003431923038883178829663010664978402120023241658426088892855265925901110147858802254586083445650310862316570224825797883830362076596677610570236317607463860308249280267837411944940935533304992626144846481913182817724990587309830810009887846540239057619004453702079173059626074549229932576866502280437975231576883214953640609752911276655202419810401177780916940375402952258137419188672507899859079155165851819619144606134093416374941039028073979107464705769386655527129598876981309514664836358314004431565781997766010907558170581950226384746803051609451588128024021171741030597962835311162916443711237994613233854035384297476981073085745618498371654248595061069358840876071650463786322309561502058399835445816483372663382044817675652285963131669465259861346896194543347906745424756902079472268599517254423731479701182913627248486799667426432829040977709865356133426538621460042455818674140367654246211120764911615662520712242941324900014422271831971733975875196242223630659778687083289743949015172805138116445633613873580899791466370838727061288272494742171554002291176690794891063335306686471337692511637101873872407234170395791381882291907233981229740584177923290141312205537486962042999951015091117149416845710340008135503159062168447533738338050875309579241706444415574354994936110605174877554552526947328061863001137618505988779696022910222109763225972326048419290782946401205895756547478565995871559806062491628939253471461374572651883038503404909011523821186226462050724650845879077122956944025993440314804555656182565137532797985336282173032758150090012073599683171808128135814493931382904444018214958501348543797763892606995780856311268035127942195457165506371593614757650157654987863751397657464899269149297488793956548723977691148833741882327484845026358017854614201611207073126167730444954804133101215978385749596703067744158932445574481392400740249535882736473460748923858271575988625093332172797087623481096754131131662392562537397918829345909871373950785685101739786294160060915958005203021452504987493458889348821332176895535008015759858902379095508117738016873353349447614555568622074116495905787511485748596304457275587314873394493056403948416823243231565563058088215364747751029421113415679558443294608570664684259413770074145384031586625858481963324728840265908344539210427377343913526431494335309110708398314672129234999821776842412019684006617999932232920724313927840958549427211342264276789099028949670954855142786692874707806183619244392030868110970339371300079245049171929725558584901846461060865037635676049300514516882822396128664864724266686730313456294673546970896465055640613672410776385553240537227536717849447909065330815764297559099525449512882990319927719459790285080657015658029120185787817413368655016213706413592253167830533998012930987854127627644463518330364154256783744438227600601115882472948700288410259736285391294171189861686083618828969380285230223984116790970483487524260967202614981455775934027495988886399208304530809078865472754277534573668810981300483980148191361873541847472792433042510010142836600218954123989955509487894702713532451960481856774101483439460701911683700723269602560830759537438569990938991196107653710433690404747726157585808800176358926731411558307576889047570527853961623792282053967133344412068599161030728630980543106173021681647038432165376037503763640128106936847044981151381596075431888174343173899931691818237040960884993773903385289415141355654577003636036912168477765502274994260463901404756560409649974066182429166184528603824995476234475895030153283549532364765921467211597372144144817654853795522186779334765938422130230859234676975412655934225029645376811693057337348308284320570240469206255334698866850117900147918668315683107693319812862820886572686368675731018442818893115853713662326735480732253805540695337372449923714263441624945700440487689592933338587683017114185235920483219914358027421074677138427832920848275713944624888043231869223142451816482089086202387441085844103972008785389747440389252928388446124623776645918263775888345637681401441207270482960636785288515616979365439508475940362738726549719722638912728908460846155168857278644094032346602661269274292015770237392227271233036613711677725968369583161222263516660373044504293173566574210965587470315164608911758551196814451150890460102115148186301410262129736038784431299661675981180763179313883260825896569554455932304156192050812920479680384242263698923793821539266919080555370505941673552377950796429838134419644620112119251690605601266954375654666120456458140281688267883974019914658720284970139011697335572937075398877396125058898082969815389244408757564929369594919236524592650446141149584547688668714810675110400567301597699405583377465260879099242944352888596743754247024342466892006636426283665037297669512975482902822306797468929591016008977898059600918424946101336065160793823563068634090475912272329673669373642858961997097109829057809559885045991903309208820107017226015613162265724483325919676306929526227522794114084793943495960156976308382569857501780007556527327609398754834071179136592385007338551417533424861240586660898075253071946203644672444577612648066214685451248826045092002681677029716161052007141187039874375019151797400770636606912339885782516144554420623771271224093507144540988433527228442651414804239086545086548843258679152524886913941873864466307075983719593645508411707825501554722153810664791252356808130785115060336670192636531973664610082106414158512369285804145331479427380957516582247891582544129056694606028222722719475600906863495638639202528406239871441342151511230811790927189559607931892316193510819298365355073265146285636232405313083700590225616245414740553167564964700939317506781469123186333118941996179636253427592417183322372041002152555430505353552667579061887197153651984067265016562758231119307274815382771391718826085165033355544783704172028917017607265858742562439814433515198436167532591570815202058880833056979836284548257136701213833070819773517026975880687719989098075935681183474990276887229935067499594467668979095128338460072357486070778707103327473546351797775554117944744126901201164582540763193395131888142554215772056652786519532972841985592563688954659896226562282643456528592768545340610722158010303266791637451295888737048697506857677081092247823199087992669464544987853781911395728221155928003061163565279126536126492895698015890101326286805531996212686514676323254496633907279891643152728770237608944266134876825181872868681353191730781199171834160425377747787981416255281581520591345876020516678091768460451003263197134787908275776840760601733447796530089787734667195897741274388537862148786193723596495008420089697508913835433186400739005240650820153162477849705041301964414716093261120207420388405764038608487716368231937122503272788741775500899158185522427430688546799239423009410979587774396042031731269893120673231761735888352910309500350468949697731442244540452975080863419239707675839164145553901954362077759234987009840093284208368194735484935629514751165921198849430254419110278763515806885043863101374924062909194323750614293457927922363843910836630329083839297875279053491176130196900500135642431663336910797548658712554552043932287222597433918483397835761915488425570970720160640783312944492316061590609621052381664290640501664933319909976723798251415164255050258140470125340268754780659467388614561110108775029369692829682838882842257961390218917362290057026275094044721792513168053769180829793919943093883882841134941529529438392012555318099688714087027622256665804613449912910690722967265373435225086102132959957323684108511674164044518458562901926661613702533520132032128815058932082607433028827514010551711903896741534677544547195303098107027115542881244843758794667170855785202415138532476023613256026296435218996225839927015270548141209608283668878201090832116311478591849510113551247257406607262274383885867072789550718337864297418444540507038436083644222290937779383407747745490411711678101439386531917401650235996498797994583379919513023529884250354843035198758512108083239683490682851184045938129710272028737698990217313726039350060288186103765723287442713222520842369562514478796729857958137155964216645307665117172445954861931023316830364692925724421370348247655461983097003467460879432769490901676554331624271536090876334333284217647872971489508601974665376107337386190588646854818012413773042628372716736146033093974875903763120967966977817347771990056275022090997621124542627439627884427185652815234552161589687724091230691063256122427546282712286957650525819449583911490661818345309666270930156083697111669998508590626114787638017348547781680101482843059724208917636958745658146157014556861242925516423232715763757259623632814794207939906177889842619182519217762280160427652003137039504895102899432207205979524177238941636948509080467705266172819933851941387764394612834636722732216014673981954094774914438970831740966894526745090685672907810439591949308907403666174801206662522330991686782566819620956401717908788906750310284527743800537014251123506019226892808124837090392629403191436251680411080269378705436308624810574506142669389061087691173373869904059260270588672293243626243255040220733736777924944440787026406625434730030652797139374101630159827318364654054846417890646537729782529820291955769804182321174497310407472149602964419342216732679530269333097913462291161481341591955648461324580668407872304699765577737832698572160267327850100895586487705658197147223676647683406454090545377311726614347773328561916215185947540256058986779459554668470641490583988187974424033814908553149506270368388445966258988345513643608521137204360877901823567188410192471464448512446929061131580209143370027744213598230744242936806261423601508638237625606384695513187505073454869579845863874209389489776809377269909452025790708603806337126363926660374819084264927244811991858127014811436425348791601198482388853746633943956436991933979434816487829551314998432585229257386408390775569519445471885000116981041456643737781160433109530086584995328763181562171390574899025760497222250562077443724903319495365898293521193983720629818920930119857150705326912052528227321913002318045697534267699342729709502588905853585848712690680288758959353488654029934339254771412766831253780741728396133778000775488916236932401120084164607011622957223234225742528342049086669545305701287158344470328901918030751714896480296461471853794103259497668691689917517232812413745140422523269683011877469201797312717922286019436965167679366718538306176922162515588393152004412640735770097932832341132159381467350155974966983244264567051464462010653535513580856368149891611148021484297028923789164909657781772599326390573121187336226693607595337844864884437600844253148051668068256945856478844278932305632048981014400439292811873449269686599217594348990775548770621437183370121383474442913049249716790717129364751886088531220185512296818883517285428177334904735375256451708603442368631899537317664593637449041567865320548558946864816689468591922328581427634440376352678229383519240460731158896640967895821991942088824853116048619933466538754038167181215592442350738193589535556099985771290913999313968420535291196523002298733125891039482974908262533088398212659958056938477053858190740270979895635206346739334254678877773302169409751763777288436899155142758350886139995843653573983457830786165430838430097527215094471698605098908167295869921560679071030404256960211042036926105638824984674785466637677490628352333785353452703928550669397840910839210940142640914575624052444939662750338132388034281965318083385120366765767480634847498504674698325969779977493431247698547233202978727113052546657432153308384396639047979421098145700779457803162015265507661931766631907406273143662894751660053648739045517322518386333542792772110597523150077858353008567560556002633076591172375656681246990989815643212382714279887155754728213255192323192756444872579385732210838533265463708424125273332147730072356891011494956023458738215001161565640051067440250116509038287744870445146991247884184679110940819005806532624172514121113441881282119133666078952436857755786293363195216777585987536396882572934528009958393029493640875825983812155653826464556240499375268309343065575885262637105528144278200180557795753203837963830150729500515077748470695840611900334508545537954610166523397573117536922245310885635352089256473439196840846436226037498765867758669973363416215492693293419747752764893722767696213583259226607565684245378452668728355007029760269854291927776785368074020893098456948849131205541965753794657124655365264293985371961056520994108665181533016396113120971608723547384662014025423618086754458525963841018580179969749438296655327222100782007842138864800748123085912841919147171821833265352437892974522649106340289505773837174773651097260041043938736917019241170667737880624159443018977642863877894788144313161599909526483012069646946930916101143919382358685509562720112219263287111708720548117781995844415819269715333607874285326012291246862870740337345989751320307759752155724761032520948116346987104365471909263648540783018222657630454493847854326382056794535412465101218574563187924728007236125102821278079632019437654646565135299999062383816105004216931824591667359075084665186032040370898455227392678317262157958567325040936348919829341010024011757381129865777689359048684760572896056337437685973575981727050738770501833990104616022333619436671729136825420306921476230979392988291082466434460555442013193982879335304889446270975373170362523742401182283791207666959058616947136084365509240331370369878482779930609698806700000854248058911610249476721243896222357838178085229767336250371329914909588548940392962411679587560326061634746444880469071270107694227386330833879500960372626126130003582907126243433800811122481162774357267269772061813395703031178916270865655662114458808675598671735313549226664195095545056825402999432764167975580858375858083038197884754735782097582226084265126357510824632318599108621440932211406800551323196054427197231081365817455640412749809252904699821918297929249248040768002912456217302269333929996497284086385884169667628492583985584833067911151106259122939086018492684639187582770224859095728543352865125098040797868805260157556864903685082160631703415083151969908406529363486514064813757450370228469897626267027376737776594857003686876279900566390410091419690627946871986828595064218454720401202381628879274113118957438998384288940898995900148315503706484972777628760779441219193885160709227226119307857308306168069242200728079239211319248999545731713703771751482712240584471930503640359284564910116990158180973608210876061196065947942391243276138780105925538318504894471335150849592897169495530083012606625952861698265804051180497124163821690287634428068076203960107853690961002467211394619174425351809756586692788748503488505409319798174409302668106839887295341195689093523561247128878754685382497237841865680431208612688593251707497746200471875103262693758199774233526661771702270648797008344737242852194770840408032640138024130839581499230593255335856132996973713981616775520338700920624247887749172979002844182442422904142081754033891165219368337218295890965818194642726551244070798600229224706733682580027886590118188764189587692051203119365049979909620716050522807187973063234495389011539977407636585970759108410433812960564376747881285417039331593381099447356921191270945438263190180065516021661639384809071536867090934353579673188998272648804446222135617471858157792742071696843182193069976677750078284306285758521987398981314750251228739393392715410330527066857973693067336266158114385642635142022155827400664526514758802274831771722186154473485006369948041112129171115935505156397766105447524337527035341145806597544567074446690151069381355722646379656559268094180948792563092219158148121290658248246255280891483200674853996533083445644963020652411498855587793735787466922858423263142810407892280581207930843857089175822533011702624974318866757869742708427760653270453833931990804414361841285066399299113572041734191279004103553976911464032754301057351221736908691607767476479018168309872292944626553820148348964638644259519667051370115892434964331966246121678549591427635925371435041539377976791267863956009338944303922924447473829591156302531327437595327076488478476852621723739257276484423739516376453255108039409273876362478947635519830704483359256111306862079748590254483646441717096402738097400300583262106800289050995145232740234172169317999456109755973452514193409485230795781947524288110951125105488322757276999784579682193126048980737085912175677495313945788646840482972118615641266433871523563598418980289298718836354909660308413797593066097609333527284481478817393757310329647589047182982920815739368705540385648361702284213878799497851399604769605176033185423486156250087378158268251651093454042225027198236237502851363332455824449389099136210467832406123554755173522496932716969554194646577212729607305908366623803390622775482578927836559583799292723949339283269533562733977424847387901219190783235785405667391771815096258915623488930904579898249814858105877504295864292786547940966321167747970120938614345037240861066335479415076612096282583895307705597356263027356460233658742312672662117242990059775435621508394177038122036687830527753737467124447045926780190581566434915074797712815144651205046639083815354085371466424214570503204569178754092841444374711260370970438676267396433385244842554924611100366110793464937027653914341239472318116936379770533063064709448773697486905340338899966845962791186186855576598504169245282370525961923586791860909790912908665544564333990550134529880184521830878080960590312348213553324674275794925032837828696866135703490178574223887278324752084283589648782753482232891591461096412325053708071517951267896566468748002424952507313085975403063850324638283601604295545363904171609867150259237762604420999388965154696703310372254322053244005592461719278635072532643927954573517703973574622153330401757636588416937411775117150126823271936466481703339614078696874543236471258015567110367904273274074428393105115201992357674856581004483457191620564938229086608543291242274940431183819704812469688028010582702124984043716851587617924310280547115503942447577126582315201043297316570242228392325625400855817242029284079183017888073687588021823698384207067581684714621324830018020133918800978170198518917973924899352872744688716197942401665770215665006774456567673735893414886015104278615106302167024551317505933039411025220871882205553284164555230515680636036847695487552429889923998092362856933309937941912175322568680471731203295107162367549752758548545743233243523139566964079532286137649771037422215486849606271446499897017048671297105825646259992001426681138736334355160226467005146628359782013012859214395116394168314413458812469275100978774281103212893132925922465419309538369947118081569926736465599101102411442440308256703177271985150565819919748716532046980939930786509605975385661880007530134514055792566025312450329620406930445339970507326298412412852370232238566342852239228419970558658529418005696138662176855434741632659204273899090824245722921899639687183307773307089283255168056065233628883086986920682141958896089078396861808653873612813643440430839438315925217285785365603561105851092873422831447690164472548599684532175977919328638480212314095483535935676871648461171573235625429723473790889070149867674297547721599409947901966372181737635623208530733020051818977802396674149131989539068023865932524153319114165729288452792002819742384050646854285331074671470677334486646020390444298483296634644098967470282173597700000210827704074253254683662239637004812930430102193657489932277358703705408999505588176704130521899164012357033439432056795619738439725744436660175598133359029692683467770054332464404859006979647784170585390699836701299816205191553508463978251976251235769232758905659911715458698224485182192807829589794395088599373880678401530147596807925950384798938520323890836724304480044708977268380229883557453433254860065570740657884235346309835095807398924355051040828218731387573308961116395765086476532652761138007615362870519760644379978999007148234734394323696650466527588970030104102329732647099862352717464788345255563106196562067282694799004763314397463352770665074736394159496970861325129384443987227141651684689787860150206004629984056465401546607632206381380890031581471655411660963294199162818706731703681911399012756647673121259906186167652338384023677968706513619249507644990786903141525219719790187588303294835699018474356598443021002174538930007419683142199901018996463423000990118246999829071640500661960854744736249331414454527582263456576659690290905634044371365875411751229476898852050545347690877455621589238497590781628784792598590517467013741965814231484140627097540406802576787328380493054671234253526712279902071138918526405004411078091183093921412272778163475096886640125687001254379624510990723778922001439090238093031380064661707265330323878518209668272329608732027171220951212496312692680236037084137571903403057554848107309546855592787483081176101577278615489268708326490268107790467391760249401954872025712031510630016567942975752897754642399532255512637541473579852222237307947765057886211489212115368404349224986032012484651343360478867905033263349827987719852323654435773058272248692018034632104193615880472043389072588977441021313338878531264144465485110881724646547389049935290689517439325011117464413509497970075332149686885367379085426084737813184923650045762256365862359408380222137618295584930213469977982773184560614942478589404912420999454006766776845067726559256638190604432060745963967527287959440335497987487953006577211197900695178015302878851360214503192011397178012505460759769693635659355095848071636134365999253103264828515550872970144437771127727280850001101824914116898956493429670629211564460570791856843116372998939461729962756104055927701135994663453258532052207584569703781548796726281792173485127230407587633329759154780524714143161063562951798772906885157861875211949943841092086349110879662599981980858967891781049928219527221519605488529694925944442418958218435485171582670109690527796443339625477047357046058004253729189315301155107177827691109441997258117249061819777588149527658391757841431822485119432402627265495388663704573730480477412540021570093386922960182217083581358694031066574417919476380680387766351921891734416198238286858876278704504077142999049528451659906142830605306435274282198941997679393637532699309164415712446163124680940234861595816989824096899511429087011111601029155471539766378089780075673772341548223353722052363367272988771499068000787469799248312166476288994292439190160578474249586904689850055049588283115174664760624859275739515754361571855105003382510474553370735534625887988956969381499529759163136898300722991114248687632970157189462484721918154471024565873354557189429801429265725741701423662958412835060000543927466034211381011123583532432318123736250875530031351172158868125292083794372629050095025102707525876959081458541167368074564844923621129795830428986673753759783914687277662373161986101853241326816698174316000510455538813766712449988468180564136137345352657564330522029322500146369342863427892950093397373059141733946570052648881047424690090627376065817424334144389327776190243880551752570057861073686435260649934633081106601396146295788965780078119377669548693350527247642066921275169792214410930479681341529298477510860215768666829429124865860600279550770068683477212967601752494756163250095300101489562846774186576387076591557806352620963325062762061797017053807778504431433007771995257408421923961812399470779276968771652387636137023351198149436206788070454706702898273819580863550593567914619034561681158992769682099265660933578435992845326727160435171766281129819306552494896227672252957492867115441028791080192546857400013294984938287848152302059602759920442633202312199658944375025762772692323600572346349603928378631058899744444597542398638216426557251783552832506973762937279276867219871752323059788168571923498580800590823442222395391411574269337600523141966380831620773715099404705123118475667337751927813457803980495157801755341860183198363514506024012662839036321015420594625679663289614826203149825582796918651281299064625231195360110253861964410144863433105574337171102446825689214471927246737345864336057498310564252822864268740856050073521792828029367520987089649392163320775076326234279391879039469875434760180294778683823865785845059244762915183506452540285503108839565370547648611061103631514648284256447677468484792376802119374672110710138212634071945444905698943660271488744809365446481429682280252282076191549867365826837278555560876297021920706905679090484766563102379015160154472588413502386121648612685930913412135221633919046765670359460395911107664050186413093686544103516092773040330458359895351608971166632885233829865417100535110501853467917639361392306762010552776518543891943508079338638398009829636276967891021210088652338546558803790685339243724019333859927122608265719930725208496890252910213491352277680693880182331819694429298555745795998589149785893254384426711911910952188913790059577742265088855036419226331086808598429032501600998361431614269369663079835218201976203984032735873233200160867165053765652824636845208610613701857889074563827652104330264058426983784374260388581562298621644302215277892154144832919224927215547152986261569225588901078953206905109852622741420250734427736131066387469724451547091555261744891727274922274298472261138801158260998431702744786442073005186372805681478056241991800698516658281724151473201300824150271169927878639083618539756865667480144052055685366768053676870707228496256590198090418907698078737745196134297568930516768544747114339381124815966163999442724227908984039376051491821632859630951804943820583697263611616101186543234553339709536628987772190111005768593076217399592551840029170917029054590323221692854554836895275759164788058622854574223191548278044749224919504037447091476579914896852333660331100918080207708519130746327691831272659260525239433843181358008787818146434245891485159636673534924881281584456634039866792686172473716072975635200885347338281833529691648592223697224371639116542369707083755955384540199249481847220852092999308731777399012328207027536324432941649485739466472239410993030571591852948016498749318019522710891738463483411246922264815685927159401033396845919736870553155771204664287053451612481838822773040526405822682137785801401969837828163727222491853581947350593378269933171279397264985298600999515978001568953463817967514183387430225889457116246808110176842156338093829724371506001772395026425371703719625890212884307712360196440704706638094148188667146969918287166622011168098607989086140732845582482159554362885314295245629002344577349204430210360747562333342904470900711203384282848076679018638292240471689164746553296180766251712470875165371815124596667637019532921426837408825015124435891320670791357159811538318715449911475627416257410191401404587518238518644371558987968127340411581780934811775963047710015892215951069572076777782395401885925619064317752289393424310817943243318540231884345003137395972389477449083579823836787619163459803926088542502423130097486863078204968552947445182264166157954882659840884898323577940920346824415630119410368904130096413641916041127894941068255225200080289656391386675456565372078051349910417830431373230717506562409646878359769993219576143623979419050628218964627481724174172773501412693570099783026136738554069852102686836086246311370242312354318318533080356428885655077646543285837204905646151377197247217951481075891344004665896434424232787298458750240799797946247388818533938111568696612377740515264570564429714636956546465278732730997066624474968198932671470561035241078408520722961234621899189778606720830107149931261482682433294419337922596295604543944354942549888638304573699890286595393683051767699394553215895749162887923156321906031936022072799770454905705023288457212201991597365858561441278947608937073188680940251700404106724531514376208317893350761066891292129071071725288910558640546956983838798159837856080858677415324144347635278147460027294928082857765194918044324498246983055692829533645195967898169837163080089855069454072934772367284560083427365122395512715039428196725306593520640275855230082722460251469418978986489255629129418571286575363807837086572913508446855829449937559018620395066346841206407100754674025370522284798296117408026627342768506382759181849536876163044413303165712523324887893835425370024900249903388749620391692529202097298394671327975690497804465790361578623306226441777952420737420805145289486075308714326025849490518270880120384892750760382626013710736768679617874068277451853679738763638952498268991139889933248672214419584358591705081780427354160374148508237898734280232493779326420080163842894547821823033823267097923734367737397734941653897307470251864734836173021462959285158517962808169347236901889587842155065025599989393695249753906753837589210323983148587059391633586922587829899435272648373390735162958750607872670123831466005033529784423092008482928600699952962574700618999796160674583923790561363592510795891451207498172250165005830393395381714961497459073298971686898547634683942190268312092419039581278679779710256660872961824101809667824825204462189593632738950842014029451258672731352581985576616141908327230948920360518097267479803555468665630881152613026305314299504751663598414390338092277755770534782931744193393187728890955061767870695161718126403612746022121381660190240246872920962078470480807298925290239369495554565029725460547255053220203601997380162100149384387512472368264687359720142706031083443156632273825367223679951503773437831308714255179202232840016558895503191516399328336929592918685108358875756292959039134971563802131511737185320874088267814560089758671529015764780462826383323576590689181020028570677463378419240708067599402235161366928038491234231547153823859362711792093158399982994165951192024634591555157077911927988415112196287330759832245391732513986317598768044635267867023348106206349008381279806491305799807301679207516156518548560023982848908599253937914559225176919731426179763418633833416950007913933630560020489804581526475762252572344655136153340410431336569888990283798751327119557957666426746368341440661163504517085325481692493110752141739917648490031552646062195501546570575699527161731330719439405450920279441635124879924267339190456698803205566702274160440747472830476258500783477691464139423070288047616677675369992638231151077064722967135905883798675925874852061039624295386458070328226358432021696167459887251332059664306494956141001653035592913638385875305711318162280723250605479147369606171551565240832978297450407598772658316280180524497860473997056130525506286801567599089425616264289278494218660224188643575192684048631617806864164865697419653553712118571693523165172735967669113181719113478871033499221869499870187515445519983007915502838092215820736031364083715199287641315617944246546900606972913122631636629277308097163747864001198676491593477983003443832498564591426785534749314220773800157623846723999155427374632439797213075207010281751907205973872906254561760002953059026430888304325140850427602981371591200628919336435943085691255505173988288752905407531848925964163953288916721598834523045253905572678362800381041664962252189376927961429395705717929488797319937892872530694071763181342298958393090811386001448304988902762934129812291908711063925543561759743114653740720849098823718315565517410169841315056658456985048519699267817098383185247599516461027693861645837670772723090559025506154611049435599032161941560937343264336428282206184717264622586708174042305146408679560978744786059992011640048392888376975903364172703636170208148729472953730873710224118180338263311737728669916334878572733188837021910232964386386116849121689834885414388412558059849737287118248245804997480961626296078166007195557458333847563909322003255905520656838983359412579991509211700531717598280344851520047188859362235521353576567470792310478662087320294820302641882822393844427007305318788561595671360265516782877597771710639577837341989390947348819499201491065258871836227368196990872763610311104195897531458633984304111453945515412333795496956453152448730515575190755338359243197172059769725264311098949905138554003851315416860741212278676595269563128642711653127750162539144786751738834994969595133946860121516497728462888178231019749702040114376474242941980723997035935526086960860531369803712596706392768498469557303998932597520762835969694769559064901537887350608132454641357419269073795451426399451999861768591939034498187512887543120286163816824108721845352770985338145740805343393995933896513811368244243667731467500223654249452113761355629014261810418157266141869430002923684857748610292787744997422933170071719699465198455801250240376156862316382310921243327154102111218185150152725661945669417009181621969435571594109475840211841705821215224931762165876022594545899086017636703081652361945379201112090198400155873151985075004721882834709151522253829715437585346735792812214742015448405677888818055266284844810692476060926015977233960867949061608300101168204134859719342016208711345364799750097635377409336279281405520887081923743033050697819178163205270734489399757243303018777324536387637783727009144543339140644716373625421040152304636168909862249702193020684165226136094106686033178633871282427607175929664209587111577455590177695327805421286379991959263325868917140489676680854417432540509912531105584976291665699085709423203773013194109117648059811530157105324576435048708258612627627577294670744603424062586564395294491532481589063496863058671039010099076788259774944814557626634270712985442973219139756911790076521712738878597703755615172575098620153053033819071858737534183906104868468456997398359151664487758292161145851872224956218161042513163800561059391069992722857712564587220241234875471463276644284856347684247021978673236438006106360828327097380673456282760567914704194259350963797391147427452911963359958004147718424116400353551889159410048576571259470158785741866550375242719993402701208855219028935759644347086785657246907304507252855762124142172700538477582678536463455797933309826170415183681109831756444617805983379664767556881060898201184675623904161065025715927567141787321836163037580039245109297985582309569863928472584741413549511405782422040533100205555136855620190654991203529497750695635150854182526813509220284768360211405596072835008233032651561688220268910248245377555738171753700242755248120836605088741195278194378127570512899656909096629205927306586164432207877291323975966354110831352110904231737709235180216821676503632202884554028873151609746582408499026270284042329968473043856714998824752836092077812999098992341279724805641903141203467387604049546404126583619055232949612758854029965626330597482581430754428534882042051149206916039334327392289276763380534379429936172182608097084782559302088502315985105520482132576431339649756757177773615707860711764232304061212961374908625590322651081495613798266919879053746599751457928738182839257312858126749320917747277430638508641896140750445514324966644366736776678680731220731144973542169298451505484839336022460297836514275601947612726292792094378864368153440734035962763589462392929385887648200123100038792688641234770302390606007083506847059980222010670766645465364946895991525491159063208179997996117426798830073908609282004637913048917829414006855294380588564523714223422079107582900400046728540450650512004655900272157093962003478575009844318597239269723487024888638544305868922327929289040089124700298279956557173871835928538242731489815161051314743325799788994207713806039246633693591060786435915725710310385692919935543274360558862528679904503119626602788348437412329154620423912545091153471069568489930430903012133092877851393247908814971772986261383015971391979405567182586711602865168279232067598457291228267263567501178376795928092903707191910761898980429120412783814040579404183442910074658274883419642783439645929207971188798575337652865994643299701559917491757250916086164353566427682872929318053199859754246653307830574660225092758088646081935908432633319334252192110746412675875504975617411334035077069363447023398346874156968875912592133894690395925663607979777691319239800673865088914558002966531435181092644050745889095448428655723595053963972360450910038599346015042370729977184828882438334710379903602067206540230627849254021212419315480145376781117664636763952223652168073370110226450408787905787137961943780730849930721255163574862853072523652545192832973449668830989604926481807028183437483694586339212682045300055479275791536241729093063090354452790464716291450398114065152357679837703971781191836137461919666647005537622306594986672773446925501133497307345289546081902818329821657215540986832872663898084390764925565258697495580526918951256602826358162048937233613817921243998725107076567261089522187533895783891772468607345992097359293246937077614427927576812970502040034781226762300262174164211671703152205697298209224410853888403127190919944671956122172710934687630427785120908515143670058706634936394418382818422581607570617605206071250359080059746483284091670069061839103141599521207564699557821896597519067170828550633160881125521980822988298158894858079912865252326268286875858207607590808143605473352051416918965231177816826270404739319789862874136871818990918875666330358570327067061451442279040005718947168847552494340026498842542780973306649672798795671115722244167852482401854145996809797258115364268076997275172240488761678503848095536368207283622792573501646203802529419990126674430641990102331244742896598234667843415307979469965020898625206088351741923193632977824324181437241916031519312138877081465765736398057772880715379404585939336044530240566962458922439771685223499608685711174728230048697400007908094626441779767706585232779855804832950153093317558256548755707896350402634592229899687976796720221071659423181142343664207331617209384001362362657904479737070377393302209907616228088061380981247851597851969789140176296087031018984078052819779170229260595988081836249312208412234548329525544274223616410343238463232167826122131629503784673909598403408024961457097378680600984613267508125514710691358454900962422251780930033032153367396650925200882405032736184204959766419212611260585265986422047706269079258920602226820304562196987544207909054061687988684336778109095420816826725560489236337221277036397027874832446803609412520499947881485386697274721526349270685047219637974689413635241185532926669234844504373821064279707088062567779816253887156978537207784912161750785327060776643611267259371419287558460292695660979506870177011843944298664912107462747675358914005984196315974301025522763497931142299179201859203659364192492216575061752748571391989269847178078240057689068852013142285624440715253613037918041010862968117161476189400307829191502717707450331800204562587557873302818172058672567753875875778922453083545520601769081849571783345654470236037396631796102270255611223621315845280831358988751868354240848043842781216049383361184630084546937083378467745954517680277724122643567028387347745326714625000724776230867262000068374104498237819438407471303565492860955619266162818110276195731368097766829604003710879383162979905689455381402946875868487050028906849837411450002143348018414442513381967268143057010815400354265078245436795124923747205248750393365249407723183626827558003038070936526978540926606051876787860072435112013834282451572653856161284571518732058102449170987450626196520652291846820921869748734081746956091711547777063829032453910790432681933986630870791366325996568962082667929598799787047236797766880663817347247853870576519997100641716480751322336191423157255285096105290223431670346139738290954191031404860105733399533134743560709703630577538269040057998708613946572175494941784796294572473410268280808509340833807610335220062979941148545814422356444010910513741868715346364615175936715628433986390897644394961751388579677483902384801265050233411994817002985975097485200579651656852846816302903082149037355186382522584443852969803662667010938895422750268740354832577706430724998340086729747868491872654622119433098120984165648830776663834481072459376519014510765947593873249067469973748231753215565494444603514448200163679665859941413705130129122991525547045121200696289320859346249204868808685636262443084246162002243658360348839467794529219031835882343084458585404134689555742136721291537450439830821668164578160647452253273145961695385850121075948010941525464027019792464689603907220919429722700664981400927678053756643417519503557671109364254138621797871558248177878664119767916639393296779998526749638185136265960751707936206808026065490577659560368959165456606462445036376539669146269360434004256663434742269774324413740592551013670688352131936924683124835429722767297781887263661347741022818152887487917267247113426944730696392330523925004913813923563312432628411340731967309437224980684375012410635506748765131115879807281773407599865570426998722810242600649744974850019455529660818777365459567844838350477290996476874080004551072973263553421178332178260122441529258337396446920500943695420808152666117391519885496639149268015771881507695358329214634378453555163953026489982380079176937886552119604479771874887658035841519090454707019669893745378526558442938061038124816399124674397547812770854740960132980939123684334580123948423714030453877299800041668116026781516138841077045968263474777418316051137208909378807755725807112938828332518819498480707430737971894903124954972295512713973930048599774794930822004174295543903177517905117577504467268753656097210062735026889959927051824223536125608976476089422606257143106363039341278762920856810545894970839566472229047609940443856356306497637261690329585633945172275464311044144556100244950860040056110530426583471439243678891473260943884353252861655357202174592857231686444596531494204489895254387901571182379721577209870110477532742568544455375139242634852578430347299985730376939880306898364505958968593635717131987773985762189569874738106703624530982413158058542993859382060085325743919677327859222295756012766063485655741752700743778393326391034513440220300949321243964460839297158256279803366001511547207473931146839942846951170919118642148641846647731634004810667140579166837480913118139862182470708117882545231389311116675863833454398391532147832301538100720198875195933465631874806700434525787730118827607332928782526715896933032652173239998798712571205608587796764770073064875506569026897349534616331830419929042345815469196751682875609865705031893280691345903112734811389092510011243308150333219421773939618400919775272300447485444618078903541133612848316560651979467894364186256359329862529911494851154967629691720192608768609764411372978689585385851302270136123028393070059625320744434391383517952583076913869404952559131291558704491724667324027260781910474833371970022528384051910036753109139384845100379201526937332284499868174777645316948346335470526479253590353778904921588476734179037495409699662823666360102552033678296284550304819877600799667443141775839174754370185147541048097688866603733846583953931442309093605294234525546057887214705944479917856410758546533421299249571010162036565404971379780305258355888066079630213913937305186707627714754419804560817479740924948596655573594109560538125628260531917565266337379799990703706261043861880728237062785685968630455322440567543480246533066174235878310165412490639775049871746298758359954598508503362034884276382211984151306742412302570147569385658390776544524782688168532275312461693416945914839072198156018993920289972808378997600113004204720162859644854161056794122924012507380748733489323584796074682049400832207520532306354733252655306202862181976025867609381951184773587579607808692688800032542226045239698796430744872190592932374266526861805298453996979948513486697168195106981344587976337408526217177991917317959101712131842720422724768065802307500875393227218898951931527165406354962496838533647378901250375063443521270321546738925289303167334175483770255894556043476934722510282299575409669847887355699996487400082226415612968159330950270629687460706044882349367418006915759291205587127264719730496984786759021349725429585379731366399160922268226007107639422355688054745199409141857503660954162771528699287631394717975281746693382438509831087573174123082318560070391020811982468934479568612506218711055650930966671626604979655546898966845753000782547969286229432818716383438449823236760464800948646030073199413530261260878547194347748498687118031702202887957255584814180436231989658948329954424838041478098095294895572916342032215273667452822788586374439674528203357560574586526705301375053584264442767833426640451775583296128960686932387643171463882777583705110514076419349790061178753987350685450077199857795806542790495869661542333038110524321665911534323329712442306098492872290906280642332200519221731590767883145704670748839090383348781433905018204986698364756484065324198666540921745703595026841716060707877218699045611660126864705365652602342115623646585433773775632454576235824556255073636026830694903212510077677440911046757889083096841622595790806217149262208148523911227526982894034037205987007396450736459921252257027443292331241688119775548771206590764765831738920110792670154559741632292010205118753687574226929003260072199737464904621148189283992832572134400457272423357625793857778849313540506298893171212807260118992518063525981540702591734014974938152064592370156878652392801681014784679940947038911895099833011343139126769058471538314032805928870825915311062832460616476402296455494376743018776641271932042272579497399071159422909575696803790957460989247391613380333703109662990593963427185424352425022440938815110912578287275624150858405544974754001509457021568270518188842560054894249250942089260322462063565309246517314506299213861562956182586060840395062216768849182258054664538195951570223011470410397472378939953537803165394648849258275758152629377584307660552957333925188377386941806169289530737490017997822117562927263870477162475824524635030283099257085985343918550746095021253248864696197458192531367021788498153215180600615267851367447931499800035841287760695528005139830755026225232557079000694162558438167269766429377458303724616470184747034847319805322553798125657258555655469474500302210315911953822535532221535758372249616573065810270844224694077070628853235936399757639440061805225556169558878319934322788669448257106753580653298374734516897214539604521884530414339801053522758251760918099003848868740271111705921707478689118037145204905523925937541478088314905406880185858041999260878216650241600332089891814209153418514549456086572588154923291905420256505340171840258073420251227910676186109832692722759125492355396978118004809848821836018637128269628312686048508391712144049741967490999940147474270519296719709115558063149647375025795085364311154126948313113678641911337275162260376161103648645089133019079177660509106366694020965547266150824032549733986139614084934684402311317937216924267677236656019313216908348187158383266186363457629993183635732744430005701542789277601276676250531783953583223450754676257595140101424746150647573073461039803793990952988015945744466434734715892127859069250296897375764650641038269585826910020228136914005265320858740085537032523728029100937283290394200522330529503749148452398908078376997309673488804743464017227494215899022176978608037813970668385233002326830641359727140223178907393699301008406877244144644794810155094100518362643107968151352495612483623359886201146895793178089027021808321866699852666951294192810652657724210670489300814899031194302114825190877686923620093296241165239145123307290470780645946348448657594920275612639754554600672924277803402102212593827756599455783230683834042666730158743222609189694353085957510554416048661459911722455722659613295081534233128241744773769752306009415689739298127652852428763660353871922574736006744057652162638629258013770985270137227766080905915208338638119902452870308034037396840619292025905384192572622770800009858518134073180963475643647309238097433907034908716454541010745717212205096582786279542158566741434624202500017871247659975307613200966635522451420438083676414104390963057095006285773657235894079105267171483285335040537199708647207795954587634166610274383293297726555045089957798114070468159941226077356816122104757947806170809192966878536428442156039145586369193633693682789585580339329801337673585271398320752647966238171943008356137517065069917384701657814825419285209600314237524328460893922168269168342032060155464963989408122547531612628693012678700919655669859143024117805977980016352372108637989394820065864744793526148932027007975168395232903654925117324926108710205717541916429350333839554927335281663290617588528593100414908995081139785968297915485607010269841872630162728357535077416195527321681165466738909087619989353069373855498532679889098277405608159191108591035437127602072919604559810373178021435016843046133586279067239075222527980079542977673377762188694183600181879980480771800404622859696591522809281789777888973348604879024796748299344799474293467603399608254249007382757419277264941053075189279116811363697160564066962088625655405165772003979169234122068775151625672448262738911827893089875341743929281937345757792041020182689913258954968066201857593604941798470244993668572782307517051696171588957790725556278713324397199979725767399252731948364820787633019158431105144243642721543262186303198837305325188154076701378281681803024407102732860267934065742657143016276307145826177834913869846270387140405764419715908171506203147219859378226660381547327692574657381977952669453957019135168115435684081181174762647056564694768015569812879835121717226335674177173225132206435269868345640709535468893323201418082435466887399122185961953479722133432926952978445845483238514637327026875991769477606663527256558231384770147325134948115481730910312438149031049752031779206536222745809966149514949269713385220790606488305208692840332984763381733903930703654106398190819307679072587527118433644332252026384761261704851845629231369574594152451845312041573636440826199756036503487001701270213996908876848037630213762960964339925958351395605552698232785012712552025291912321913166405235445737979717930600718691728962356611224732922489821852083019003305798121288455297429884977330665617655969560531313621096478619513047766766787755910537537061847426508189873646062768444260423392957738144838977147542478890413003122180612654066149126499113127934238724845508081860298030026338485626910280829938781667422673970150130117867497734397224715081043361869586777364205423519539794799741310716219960436698805020406441327580790953870638980555042834629869940484328876638239309497303454618381495946607331576491060549123138902401353143547583631010798475547746647927774458991273646227888764654031308675786386946271902489320919848763864375111738266610460865204897040791980222713524523158559223048360055709729932954995978925841543875103338711953872607443544337246279151508578456492788807338797218183132538308299437171115385401673086621563078924276539189912402766874665147798351850473703141378111662882326666690395859230413810519396352368861166074089049118869269116380520460960039613525661539162017015849355174564934091001231471821539792006451959860596951580507884071309210604921655513731245495892843861642167954069933472765751516571351236544929795635351210948873319995134667491199934166638737485161317295576337132269798288870437271558803963476880811403897831983441154800297557118251937261792943264761047489974841006380342589020270767726528642789487113237506415209929889673646717102644568551583972355875990491506657593494578299927886255421596591010276747124535513026813496514177440560275650822481938267009879310513563971257906250336947958775133020489731614904017150986848425413692133338616959590304626990188064814725385722393413537825147790865600756802792498110764950605102637263628212760566277306622488831209801417272230339485475676285698108663896729196957652001311371049246460143909433064793249726773427468428189403760664470625742440149783321005053331736483775984553362958720702019349039503218200250663501583803487781268151005387891351094230465624162130664127479616818071370097223434371720486709782354676716739274932966846765123701517805600480477472101851810492978746978749200179248052355865107045603178113122328739206293704056851980243933384459367911767648556601459241510155152698220324700679900131908744078517359340452736457121474201115557377250983749514846891169313254179758189617817016657471872320208685550608145566632049710691761047639610999442882374594537555030862665050835062716838987799301069814544078559798176016344316216034202360862279796195065185087265890667527185160842083869151893804060921709703259918454554974622980546620623161458166956083370558427476991309596532139881505356674274219879346799176419992419478361548168612098134362298101339517397282189308234879948885409352534512267090792527998490195440081932002433418768491186885023008278959277018364459658709587761720713083276542180039046402288515733415264804562411079727380091264640562023214420051634039230045647624546403952577931386071309384762368367108773479796751563643369168342630886864075320916569901629648610482866842096134050018410232348268848059775127236122542576019651570483497189845546283553345804991739706975628713466370668891494120034493530418583526927091298310938018052415729617862555964927170976582624448011188511383376835677940313003907302662491438066516260023999671563182449053123503031802545276522721092475115871843938833800178242927299687165237371463586437062680708295501547801305442603899279840184545553189545872018461428697857740571522447320945832060429264279505192186326344934116934108237394241386363304504370970609729056003931736279149785006087981773844663907872962282003305329888407275046702483566709835460065733763587720157954557305755319251122863205237878029879350551773152410123062239577188141048445390709750643330084080802279027410413581255865127910552453781626863482782224023577163218170585870250368106226154168723595089576944844703516232916762507926947758976777865463221629394647742380301757286997232056859725197508073508571343171492192996551837998874529781204042815998002760087221357045858707492127895582479928882606461040085015276071395289763281996156625089874788471259163261390356006934971995054640341471865529864983666077600087466512554097256437799185622745965960603867186223409321633740718559594163483612568954419043629795967578308256027326556946068444986560611925364055747121829209323770082585834484888662201663914898240183006772768553144093196286922215744674337147830665352045751921310512682910027509509229803384302382437176391268149264450590397957513420561567125310105439127991273140008662644929542271582107296360180440834548564381209149798039870769002588128885163876781022338767031112751973995207998968445888773451133331997547606653666043624162046200696806055068800324543119242224189778722268610095768353412945531023614881898623084030338888285568594801559316084193391556258660490026145556881216572081131702486422999363365392146939084552909199777352264084614901145214328944470385134501083416724749866545017768153612761320194184141819060731904084405726030879369006038535846711080553854893566488667843640589622064294164423314386886707626514095092116100065273007348613878598955254655456262921220082271109663393342587811153459883130500178586770976678340559665484984809115859814976023781416029238790637741282837498532800140930845403165965076016619318073427360542118283894924989474996310477621005410111604447348682268137573470928632138421959430219646689568585076304052610934728775355910905282348567779545763605585269346417506120974129885981377657287855837897369337267789428537665074023099078671031557086110914300675340886317520367730094892693281674943556535165172610086175303683789997863941764379790386877746007864812067981530194816253151757950834424287699879070106114285944133263400284312942924226727353467461365149647645161283011492579187636687141286533086850638010347559943445054761794949645671015441709731410207572501352457140461499198432194816192453657236808823086815764728565264827131210331304468642749026765271042117941628937087331855724302605232395159039483241433616476415278846513451431120730047749291983449378642734077257343802833373369575407471189017301508284377078330647138179048583830355028254716263079937208945122996287877846217669177410329856885192216431513835044389209970852937575816510698718348295829857092641040378870376444437411648368439342871886331672053939030198834032987883792223778487262769564392710401779953806872647524353097408238300389486498595537202861474472205029530715214598496225880360381261614403045769488879234555294263091725018289333690319701751998162007254070922181733570472506256060069646464112408872582996724857318676404486873974784516430369129232699300813819743661186461135699780864793699794790907919757238456314182626480717329618720023926214954020936705574351589224135213910203480243665321448090990585248306163861201579297422462034995576325558315133600688004026484826582044294985135617932606702963024184739551490404575717424957490587873947844924887882902391714992154520424843743268464202722050866667082106968736562779859714075441354642708891594919508023610930426899672297126717669590324925609922435539895374092919565354422344377689740253365156256074790410219943622955819664783614766739914729268036597204148506151298621889329634437446411575445104937346533865681833708674459420826570657178752672094705165610334048464255151830487904570863208087082611476652939845063989598226695567106874186324244526019338834660472364845707563881577974369310582528087744554801528196016556271052310633250644518295307102185747055614973985366728795172021943863735160031487855051441429286893819542810726569569236993060469407530332162822851736089869916135429217594423706641482107605079650591742500597070504837945616324707098527058878514869312952280523332118848065105282412456031624719739800278956595107814511358831650387078793266524621456804065277750060014564697037157716186860046404568482437768553927213945233342714803989739665443744648177569594097763567366864214277163252222034831240834359551455430783056115628401965934849967024095701331173170111198137248868116641323568112990740444840848610945537508966714364671466877346576732588457579369234452616802019908627696738957495606334985500010078439594811972548020819525073533465377745703434162713099867448132145713310587306570554961011085718429817433997848333247242070206360055262331086586042538223641681653614767308040176009181873174445733553110583188635049855931256789004701119619026594213913904902723527189413046792598705667733700922612491180446930827481131273952454021763342162395767299799958284354317773088125877190698212575078216918192571891421907983380793888235350713621203606510319798218814777325902353947676923069556982043064775121718580858349600147615125665763380981572618916430290814766055735836521636331969696047514618037538733548795582480095503742672238429401977412125246379052427291920402419745034404306871800018134501622138353136192839629297193124106692496553786882441673953653595623105957510404887680519341577398055546483512489065305197882952529858928762663133148703905756742988490499127024833180234553685643320353786235826162111559004745380079318345495564303641851036102837984240838519450740322111927693836013003046262846622631456368089109612699107609608546739955330468048926369891672628321131650662660882339568284873610135690022716268193582755000408838305664683248540763389082218904062738226467996865625324515655645775342708581858527252380732900560299279590661230314636639564106739482755143166772432923045940503121783160018084617098362631573111743905846290686366673139450513907812504407768118224690809236046563714101259846614014269216490879728582364584539381944299741657435123772058481369641753860049066598375554285723906102288471947304226176636096211358674130869415769459867958330402472111575167988502888785517157357307078002995289756481562369527848659881115257858712641964441249978912893761457880979398821735663327336239699286162587592128260520285829532259454820565476397040779292034409411806946899539025720037423350673547390911576944171029231690956837657439591063075787503701997756433344594542010698408412414426829123201769441414774670358720572062869928396183670467145885136572404071032909410867369853618744787170247884231188194689125354594446302864793179833010399398238586194726685107466796830443191908662055845117642778423111859044020498903627096528699502119833426545218404800456871848267360512178150563208425978073367315964295176396437339103344200564995531609863899653603993549905891215221339291810877452306748553163964503128515823605351777558558439339074249827786014509547638276008313530290479982265842878416736047594590799089087259123913483903814442342841916350800688691100357013636270785506120673239605023747570459144015685038869480727747667164609665773507315856595681951743751251101369600845998971638317984952065446815585500854162808287693417130829768607750276433767651806534130976933596555442234520712579459906568188790359228209502570269691796325881076377989048358699643156190377847912936628460152648842112739261701288423599572338107522258694118651112382888225779724157550932351948933980437180985879874111619402897456395122861736723145662606927786049468496615104148291110466569994373172347635751464493030965524175011841640432817328271653699522171655991173864842340828181689039821288860705660474033216109992239683771405671737244803880610679544084465329610342976856639646148303248013475198101011599207072345756238532689762393355145060054913248219499841969631663350220789358592530823613272247653636130066796862161664999423316855480005869780637843057488525250962188496938629174876310895492704598903008929745101935824832758068112134336217859575398609602487625524597855452994217671532772530570523473730068982773627591340689162586566296782830937918015796080431061990367956673684756421855611842882371332488693888920569483554777120419761194036224969175491481955306929404387638822556207843525012695367876776868668190563352226554464123878798058193971365118649806696938920952243670055343276012589369219380367204201669950986987528885467993618355135053046538247917387982085571944577577568007867387122732602378843761167743722492779082735092979809600073039855160239681292937814383469077036324267048404792749767298199202222993204461659302103148043139800765638980474597997725802172120773396297853576276361596688845140360324803461649811232048654777023236248285338266766682044432051352104475032317566869275338026041671027855622837398378319416647325678193713514756389947721905126589792624308265118760733891414708174943186325615606699550910052933832457618133516663692330726330282773796383747645536843869557719304587840856508624073807555246817677873148273331236691566122529976026631065267236741645908226162337004884799086390398397629650157651857129508076211639219353953472241085469392841814916946300343339467194408551867433541714936800377300743392254100974371148691918863920813207570515955177721165182715695805510201929349002152634562327763026279005283474521340312719443636141434696444881789073462952034964895439280135884099683451312671724013460418193214764667068468946702292313246628353367392835326785418680842183662608501064232891913831438642272586177170278028440204259867680000069311087553800986426745567962535301575032717853205903716625904723059480862933621633272070125301218533371307083482056901356501231757778918248333764014822527405252780556258916137393286081092014818093406233455127341623729850585975298372651327794970107092654205988896853597727893817760429123256775360098236589879773994226202454492621955063310249105760496672486731498567252823661788673132845271810649437610005319100926211639428813003249959314993634033009456152503704138787492929123349563009468006002753910798041028942849687753895210096437331849153201400786810752094069826087440962697896528718026622359363821312829733280658345687565286253228918570395698546344142456926087899393389644613057803086652740848641303642290204032790840590187501346544282261557851699538235111251509626887382021329331137947775791549291047222300793446037462791470487448494259408948812466839833668310247542589225308724756456354440997332921485698395113647903763669084179577877005416261176326009440544902972832292625682971296878958723016291481332025343389070802213476712907339120542753935716001312653249368882648690420561363641172300288571050934002791898676641950401743524784248258614303412865673977189721139842000167524041201865223171668545899522023720709881660481136821842838220116097488291218937859788398516082114731889955650391729527765171352241152994426615325609104949397048380444575246554463870040879826995295178234210356356111284262429586402263193837102688374017361268812286328895724382863855313165843312575590028072372654240199696899386475716307358090198364642915671826876938543064311286271459978465600557599238317986503375642996256497641635488716514759206458751486513122869980099073044806107783187532609603567679985817141700970631202859909230633357602187600227402904194960912698285682166231479931885490817004472568764293546722745617845213008746498250277877331740054685129058195881252084420500924231924458819423394477605932389546111216342665003261482956958130465540921398518657169254873732767087257520104256617104963397557175043795300207984562835756876346936402203506205609561124852685680801353134425439281619933645165546088078421880330636954557966555348961423024734966799557534135253952428121288766092179042545743108076275717004270523817120925648828787256660798960505806700835694790718030072976188771377068525029374504677983556059973746274507662217628636846239182291792551234681736019817539172074529531906090845561445679496950740943325229877621955329290426139262530320542574461308003035541426892808444308521106153689153082120004274759042287305809052109489414230437316475308821459238748607428733069395176351572616445663284637651018199584059221012598490024100234187255487932656811645382082423565667530688578659988271519335858489197306671079031264382292455230738000954658034084529672066861591506524185941171351118956303871551231384760853557881575744312785275638920273779164385741372797062218402102902713589595549270997375513717823532519977556466612369599329818756444522857658510874110629416829084766151274603243035271855883792226509369602817618537891489696239556716728770853141061531075351411268163774561795912661871802881621393000094780804531676748325647615890786392714646331188419680266314712600602904208822987574072888964464977389010539315763303916475340720201407149516496482904511899624805140025935325046023208334130907389304814715812410786496025995841406966465942424422520870331456520866676001291432012787348868607233900317461280598707717777837227691308060875709909416714213706291517762833772216715223115451376244079511769586555645089219765152628515261240389549942395353282331336959288641268962802087407956509531477120857753831611851342239851269103279937430359243646165526949340178642560029805380283991888960374212543397499064283333125851719300742855411062046697588561349624959640076459264634129737464745095791259959823980786140398509297647826938362528607697880531325372245698330103156837720331300683230845188653264501015253877728788310858856375598227973226999931031261813617269525057165734147967369996941718249722416190068726998259883360813071029217467088787271878460171815073633851913512632792151412818056621321546689609776907391093035588117665159736254152515960224576490964182961918644760642094619702666975580936728107456463734447804623230881013339413523132438334145099439380465041228681115957182055007576354764561723709026204745980170447938017693097628903121383164772559566892218373149715463790361307512860584715162456162879733813945499034275093482598073188159540724904260485452406505289041069325020902201388090431609627196735843089100859549641687654151181775003908718696164069108522651581106909441449417480052966590212968953607623361289742316787216810626518203790172562267491937006184443394102645200027485952547000887841274154289970943776978489729159094908475952603380473967750572645191095014608691685140332391395226391068334333617073005827183143193175539652583475451080177989064039736292741434055908807684837834147760189902447693382956455549560588906168787547702470033735639154734353091215936985208015113201146645134775625368047958119607642231749492884161358152296246257770012068082429321476682528552499243906865002267156318497913146580772083553623298936166660393624888458587730956466922006335250848416350214011000742171651776400864891318655723036960261631244482578818222189685642366393506462222831958084281588510659728672554812709356604327008763234442393320276367097625340578913457598649858205644287192877473256086877505733869171667524995378403977337051067273006345731572583932170605350750767347581712646627838233640741022986379652863661418940523489787970030143793634828023636110604198431491060606599247861632054464027054154016735957151898179303668629278039038180354989253826128581784811920823868090741708943382290485267539964350593336817045677309760130341138312365219296247890366769191147825129135193501650554320562691594948260892899098650367193372462077096077839054928758092003560799401773890674006285786552480298281849644096441376743565832368729531328298289692079635948131900601481660157850176709387886660269652471551154236440894036616765893754822659479513121901971045123375334897406978159295178462748522032526716664334950513979047483343197822333216404039135500912671925216307168362816465709706355837678975600039359755549074376957989322626940542225860089861822219511664320997010209022004122904921651905399823058721412513157160212735944662634583718745373887813959921228939797823127262468569146294811978572714278449976772078790434293755388728099522652905347884307644169389772238471272649367658509175923246305014032198428568303152803900259456926269156590191088767935054402839543966695951374523951548548969312780433567606521870311577683688882897260130660673876091852076663819340578975612926382847560729019696708839342663169114358097063897464913898933159141696414428391322923788536541079353753911324842743939146009952393425427603311372193346529306222418550231023722825818017855726794772678175455316000478296560683625897198461968764508811132985919060701978523603574015964620530562764004279107579336349127782292430626936821197113715407637954751453538041753888806648022360459917249928566542738519638441797683469925329351009292011461148675224984238728940475985481378156894608106638611716185667262265755065812384578201068064250928954042567893208726952151588386639688002716739756252951396309399271611875185050579779644688385433036963537848098471955767848745508077846133317515935056018336066778198761795141560614379087597216724962882678802002597305547651214639223204839114369773955030158333572850490070131476348447623221242167320722994725267934460277790184873817354833481031292061823222582273320942174449468778311545927998639883556925629605165136792280587781378761138626879888562156574831819235441991316426939033299235813359034165334756780715119167451212962216597957444565915281622609260190662710677879068424895085794847264930868812455899549537521781975931051914731431300569901234916383307797763338426847119237150187818720033413562244527191763637373876953518605493824604138590212340399490342332464872383744073694081000158797632425367086664104442129106632553296701465349928523809678613703368063416395123761461108064601857217378025862779226803902702368914821561292891082313801763747299641175113295207546724248591382509584517865285328404420872316345765987873210848878765310233172320914315738375935473218084002606938677785311121643865870949709101091955880200454898344990960808604031220301715135835627424633328436104916661845677405014863612767143950851936142405216151535267624164297482716243513043552646935475667973876449348667003556227064486583339917572073418512725964932416859154910560797031758817396579325180849481887267634830483030222933609768265525100449730283421936894840098680857361301547362405143626900311789800463220533771193417422956598978466924282408032892144923939093693014206574041937387806234103829992973031420637807438251083884064447691626995438282472841709232158735220479797082070723610677037146331197167957965514733973350352474791658912987203573295487635393280134103441243100027760579377574532883006862437517531235658714507021001054090633397223359272514293543274839950791613838128005796520728483018117727812015632352073044614472179264274982113194834514870900460452175402387250728987272726247062883212163740093020881891025787187958012546560740696907654759093724442935069796978324036251545004860475022546174937950362580729575594125503958498704716248133879856265857172138282590510732508387912182961675982727661134781604542252439054329614479993953318940008099243000950005438592206859494629339633118456350423971884442048948328382310992475136908766633400382041192010064896537087900195040165580174132543835652093993871720729391218223027050538221074713217385041545099990246048327444190492203182179838255526811289790983664899211453089475176115544349203034166070286585145105214087643374102571304959545128613156034540923006858498666069977210990820885472907376695678746867933409616993025877832652422426064889003505965472460848225297054692220925517758830251896086474218596473467377835803959606072081858844719283270696541645827680014933679148290103177763147438349841907824128025358713296015728638612541713391607182690982749898280584112342908839561989174315927657988893402465172406700620032919470270600251634123845312787439744642101999530871781113160065942318763776506914971096840581215777442381423013559136585289205114980575873526441936440121692027931663575001392339326294348912098773245237966237221771857180903067457486425936910406592750344006934169548215176901045724875344375963137244934677999425169361506900304190715284201682570331880479367017670421771686834087330158613620240114436266837434721687247190175947984252203293557321370764695744367936189928529126966956946559618302444904001630978330533639360016205059456635257881137334302184441090098695213171903815702431944922205720786329439094817155699380645238882495892316315662304333513708825998306174379397187393510603069270764318188926214129094763598457624640521018985372144321920031265879410007096807852423515797703805706141835661751224665895685624606448575925039565675271326578312254933917640439249001495591008467392426737704832386010449894561621188036645437665454320918505582194178337956845048757166930277349661187273795916843370968545875007390368430386548358186009418003787800558644740919146718525097517616802888698803708779689325863243800689581730438284739455332113183030416906896737352190746067009806094391987326501836130747538942819103426864881033050494168687818868389330138145635070899913060045171210652858754422200398336302515450835238902000550215884407962418057352117243272924927214033644716997139165928301408264763957474068349708362592378126528394645365045176309939956518246239711862194958226074550407903249554020912056030242298164142447550668618887642336801894688610306431141796355760531981459814011360803575825745345004124113919174305438532626728218693834753031921998614927480690294126185503531320286966873769463019409647545996830081735612617170402275456283422435573306261309502150183914803972447093967450914072046342974773889907440237527521639052553687115029646718339824603395116558527429360408464272499098515414346969238339244401317528771234706183778793032714867753727004336248656402306955022223427194202445285372478278321034059002844223977212783398795704544517567910232737306240575944421262077107533844398746582073956547889758446310584477434622620559155295685693101764750954814538949753323390366039590651522970596070932177381721607641387848531531975474251003606311420703935050975233587300398426070092941699023712447167976783575681261933553431422844422840064193240841251725578524560671684420260873496943089121426871012467395664313179539935074903549355465369952548116802852384567333459389698871614994847453935353185255857369965084247816461398712375062906155063915880090608419464627544610536041680650615364669629850716098946806200791987910666561438069529443186009657990738712040767868206537527758609127359881374201014269826673480353053383365984440066623712571670383113939463508726387655894660533541000405105269698001831516684814690856992587226772450708763160217187354481874175252016666286396681837830931451800794763085470703433535457569603862007833783967992829479071525747023586423423983174343276936632205722519028101228539002338323577110628621810762439479973071140797834729864311635190213229271366575771412127936754681305455464633390944888325826158138548769037463156734061489508776816982696918575561873222149959237752775167466766384169160054802051422332692986104089444498733792170649704974236851887978655007268702996992537768034999228167373560546061698345705165647396805945753663078686227136602726224056919639323985896745144824032084455131634809023490683918238666921375272916708037480687368375228453917982700093752886801491822925614490037795266549489570473485596280244149841728358831488516766336655875351960174727117395773701393485783671174880044645084832293613277435159278109442815126308682773477132925191784098245599853717979920780930221168107604109958269396047721160870992185146064946433842913194406349480230633562912785847232364389144390242157971071941984265476331861122155699573488082635523140694083509575124066523916270595674650676516096478020814302079425545169840736534259406296116727019198875534269862876788138781045361054653688485827650986129823967318852342158037480806311890419988395010289031005340776834675786780374951614328601134240159433150990372904259508372641454499855146221631951924749941033097610160589184468998114510325498122186892918487427330038998072302731765125937246919037992989208736427258281108629688758171925825752845727170962871727067562192858780781666237061181178629011945342058443479431971514959602331952347011287635252443848935454365452681707685113777472089970283724023099152260541107261748413716688210562130562420408849612755347132665434720268702823705060878368126847754761961211318574531469520449471805398208749932214366336276028719147105419788223470654499380476259463283999976258331429340724582501845977744336329595213312382584311639413827750196395600908294151383863596322791204322600668136131409197016179332482352454518384955870333312579633246320305942465644409143353000243196558112872759830150483796488035974094719018229469434173087651344916872072543383937473497686452183453343189566906280800826990404468642297368281884594185680625012902528044817602726661919370153005945206638891400142785655485564463816939059335067819617365762590098572889581274565828667304961663784649039359247971350692611451309497843220415277645427759370031429299492941240042760774865168514281573695652593838464049054998366044059806048169669153171378545600976557939888929841070761202841616892617924105496038477489619655469513135425964147649640863338452126753823212890905968948413433709332393122668295651129856209415584710961194551752047822694749539950684474266172089038584662286039019877710315162236765321619771500855055446656386490106041919593784780773853800824523760240681129283986444387167025651029634564490691608063726044635453633608838842228352288378955441774993379549757927798533576883051486371168503903119954619258719850528767571681905812891225520444523971248369844829111497352161473967914475606395103824424885157559763569019776268943707059557088425540384764655912940950968559813352829266463135482822580998715102792932803585128873593432866841036281882090418885603001354342049844364472027056628339215085081915516606565211719463343128934934339925225759188981521037481245939507683520157690035185816035285830930333528928375789769866978219918121978715571496477538500129645625789706215636420290846677171371529679197064037877971705598553204890543385802046519370807964763492677620287251793432639100834269406099016912009930763531420166057906905322864871309719152317402641222032601360318471944703949727218767249174463310932208057553987680871555494870355008343543396377782766723561135679417914987761167687657235613703181267236291745227001056452688647645741028313663326948173686728414699501135686560088710283212651828221567957014843392247967560591616738587303949070199053913237735588876511314407167773283542515935726822086367851643365363142624145274298141386155732717731807325207641772963087864066041565257348871164514228604626646511609577501428099611699708173455328148662891064384727456448650631317496141148053587341612387095580669712935369527205647057194589702001948288521017382032959349856778869332556343470835646667272649300078255377144067860218098754128782414044775170648388892849383772218649056452866999857557377635358150003096603239477156995487192923038779339105694184005133055928671302952072289131411021982071291971032416798068568377525017563756994914119119662094529981676301906555582170133408783901237531098467520666100007986712554618289964760612621417174183146728115486865886563359204803507566992182278361978636288400316129485660356511147094807686883470227105398565810416594502974002737018400063056375508585952754113382365409456324736125653551352005792755209537950743199309909720113569481121477149827254119511711193171548952535932840441644080445162959806848104249707868331636371350104649477363840786867768078906769702590591866252036019209448234005435912751548785951264194884430258832192638696143716651633022173282481467547363850212462739982440885362746746628845312244437250643280687287125161895293429077791306659666135370377362060249314270222300778562177991394860009153587043872643688655838842338812071805870906638391434218318945557743588835592665683572044416647598103299845942644375427260195504748050020580282337343449433904631175052785321155566039394398675010747743568148647197299501385809579432128778187991568610705297611141455515173127367691800073983432394427657627416708791292432701794699524639118021584557258757851992978967362286854205797833508799659550885216948767824416575712456151117123232230025267798235424095054833947876138428359386592560850634190864282874207145824330211797516059171909087165541507578344187793168202883095484526958047017753163444037696593959990645700695015627084238421659929583397630713526730966633038417377577785085631848354262517261558778238091997348900398785408618275391954594354339802664612687134677882748679741853147268263354068138620994245599853479923297377264211372141538539973471577737961378954395334956719012827972047085389502106920599863491002211009000317557694247081217443318317753895382417314941887165137098304233970409274904673020119368198925174718930127863665424504204600602694746105725841658405826830798594643730660725345673550816224950094996684036078280414159088135556559714117042800861948781637409954128920424086096372331085760365946799707612953024607233927736664142960280629648203918596114009097836780819057457401506548143919403251292232323964746542657831795670722829921345097419639247556920776027238429363802844882449845053420543938462777100089103321140115506252821959562574370234429791479382293855709747382546627161231539628954509907086006770655028059282867013532529970852053496141046784994449792887499401910463812477957340208865784654571421423630145141195829260794207569126174721305433082422554571091132157025836853193807610476725969274032848870518756039004224574093922075687083811742065091096382591971552136103650540947776063650834980797199278902252666126736498682364796387193603166328525408171682756652155615577691265619841638826015125795664511625582466987607592056531065490539999485480958723345222396810917532687156570249526156521281105963639859183185178747872339948225567112445532346839505510157510380614025755142002643957273015144428387612563720319838370903455897832571392038233535001717277166604764144790082642119260467823883646885593361501326975517289646123837254320560698575350720329934904256967880388085809742931251791194429556874511232996906669036007444995868507289356593716092605020897257791088040724944827475342202375440940487202368103072517122356594278555048357251731497346136325873456083985268904075212645320909433493703919523928692765370868987678263767119936349838867430749708894334175165449223213480711921716782848738499587381446405427653055240569244706215449220089173684551984409681870548269623908661115137672363838091643577652701955469023861876884682255424212104466255795230023319532389067527060720769517077352872157043200030651089204920009421913863491399480338160005574755570674646138584794817097731663022471730904826798751416051880560749496679144107380773976555102950400213757822987043935089631995978365987144580112451938546794769542230370260157365301121360081082573025467310750507525526235498102444661788420819095306452381652655474320633918750891948168502507204873361851765546873590257074756761778500537202255647819946574010820737805584845502308272288229907111171233022321922675693356689686504186697842244315513325052281519469157754844319580723355185721558485102124362236424357004194601553167054701340723341568033505651652310598694444541427468492876350524598223764278148371715967783341097203871983429018978981288098125995903595021673582336851648629511411134395348786844616928426142937945378111687629293178537528479899917522223204187318849157548777880163836757846018303885688830280174899445662958955001203388881361408330484348738143003233791637382856138702114877112294324564011906472541751294096394806326329833141417241594684290052750352008274678158577121345872322641774234126651727237179471626604332507874587217211764539787075991219324696198003935900703806587807275529320064941340561992261944857216411167203715247800840466492073811762189603741432120542398497357404299160215818882681365409198793812935419395573018513732140909123291173602374059312959175562319347803628443105789837051247301135521922046426392076368040417631250613609731643402936738818747475027882143959683215507937959385701723649449353054450212115570939158505270846231053301211785282118487940550785419254820486438907999544582855177885884285796731913497927144357391681881831208049326178116730480171620785646165073697282281151629647254196318614614757907185896059705340174637346181664191902576153246468035799022575308354754112608333253241426699393991968856036110749162788744000502120155360020079524211815869714968816778037925201105261236039526877652426721220274229805559807410029381691409983606027371781345928799145617214768523677753669365908861093839730943615173572907297066423653089285283504265575972513637562600254393961159903326459557515413336912452873053223461322249927979516273832951270035127915658179368815576350562794361880676806921799357894012321609228835006030729681821856641009566795491164330707709963266735471616439649893988878998939693332056452631499975731047002097871775483456627299869475595299760064280442014008796529449185745006676579136430208486542929058631656181066040508835644619271318842377404183330954608034631311280309421237002008216237042725973153963076590372444999470874206373352636148537051200293074510138373125850622672645292962182464228129925367161905976278109295512386811042279367189854209418496351209636606529527833805646134756226227158527728286734698505035116578146590958318621123985939777774812790811119919834087805916879518904518737081729446403942651831991543329422797872012718796835299038901832882249446668789273957370215256764741859047935533682805635217835552645858551540095160981788578247543562710831677554490880983783010725482384672898157172698843551934746057155077117107751174649984357174174864601674219889299848388783119020295073918349222996308384314330297252943549534337421393514184416460325137958653761210937664795328724865907033654726222967208278846577519087558604982106097839456480407914739905384284116533537086559980294895303728069080439756441953566702398907679762909208633273182785296850475389322582553526177423236679045942988248533900838177696920100716858958624437785647511115623366391740194875368101329288798031571568241896611814247144323965684481034616466595913446600237475198494315566696419113953790813590492552635345115896001854040368388736171244253302147223656050304082828730483509595441360868981621006765583041018281977016600797401777411122416501267206287518625606046610583370242968503210459943034644059789629035218522096967671880118201035753657271453475977150249235600452749897195911449117407173073799976343839204377582135028681394386152857401950637112068162514871975269779079105337590681982412382461495443429761965044668767609909564962855190525549679517545515102802125101492807353354573110793800310384885834618139536595813861791477436788891870940041806690023948963283507751311935209508790240615775588917995853923604568436077763606299939238350503408555892759448020252991466451126130524289511648848059441135434770069624491010254453058270386447152616191394338334417319051336541657107779219560519050304861989991414366903556987097409058280127611068889403729470227043303204977784528871036991430277167897142664207063366619912541873896606599102672635669218157896703831858273494318183029336290041406896378407440030916524667866908602584979158520257050848622084868765893457945867744774693026260546580692799562793233178494219922455602214987202630688044929838141738362673226263945157904116644752578375437925718688003434008188170975656815886329751067700433192631132157950810894237966390512894896778695133613030419576645266061502774268903352127219817843123555884895974192581690117004761069182655979522884049408441997612891500430764554441022816143762447831892755907109499942300450260546837526357770828469086015146794009958783094305055860831041394815467307785990599806410869563916505019840663005218031710472164493014289793596529847561989975250659421575004129126286972859549770338905992171788848551576141034728067569653214397361441504915401800423840474195268743248124545549707077228217659720101890237970790771479318459457664916595371660243583321327335437876016094480682016345670924162789765199797813507374417141690942134909244104437533589085668357344793090184570120404372336559941488041256137407053895203753891695073307149002305930017795946873651750521951434936608923179672919479005402543192606381900372673130933696721101451275773822292295744830883055839987576752858799531086765430373295012524946805504289069028916138519598549399242890741949226193964314839830215812844230654534357182714682671383678529283823944296034355145690576561647101394084414274783029612241427642445776530395912525281320923377495098662851256014482168315064565918312944160634334088948457830265531950149485731797096444388233778397457348508593861120437034843351639361292179464601389409136464337304775489500397043866797985723340654466934111570759082128196690315527691543454291126920219315436950440499631012208901460153847931897341843548815387252480975628957425252706300306182849098213037748325741728202839857021272908287372644096935693695096368697615431401153582925090379090793504220629619066465078252422248693467659154928605164296801387393934933199922848451804535470820861744759869146727907058495237809259195330562999366717842984808585166563862596518856680086274199958342797517916913049547979190245602121056949439600302634345662223077943359924780486106200972837231441268571203252421474870821055420619150988545552759448154514037211600431861098064891162336253894429138550905154288873336685530369789209756551236857462380008269986846104386011330894465797731280040867431608770827766104037419934872119350088760416940330485503144178112161375852810371440669310363543081115707513379865036930393786895721711894101963185208040228770282120964303697342209763665337778002437527639063071871461762149347966214580498764217080962405541276397118796750542086421805804576816184607922784523818368203274246748372953482211422262262267552411177843203559903845010286260468506532532230763948672031508899856086051025091640262718982368631872897031024339872765332545159024424483200659550068994072281993103601105897728614727835003923421315304238159784109917547203905095185276225116991534467297462475532695217519584251936548409365726298544879748198128032955463471619558326487552653681804749962543546188733571912159842533731079611781815134489654863484977472235700778593405327290572629132970588976897581019234750688808775367268922608865637507998121133563983238890684907775755423743300977869088172464243533652439996692467281906126576260273338560412064054183220914607565674090823382142401157606204101174450392581890694197157628346277441628134062321889267807296204254841006692082742236276143463430841145082941303991048981048393092624171580773518007740558310316425346986338905385245362161715115717418514804724569916846432333050035261112024954091137874500839986554905687533338264563685984125245012416495734667109982536211591681747522906326288337904346985685838705640974345325501156820175058238222719481251295710310862494566770521128283323596299537655471619036125161677552167015942699283424416717039518264241367810094136991840407963169232592993778116429716694553748915057064709973871610978827550188891931737548922168395037584580529898751263183613739409340117208621132225648579524212409022128315471743548977285665571077790715732469865263135859313997485663033853523974198805182621899416725157713618634261533762460466361791054305286309290472816483609759410887070372079267393716237955198907317148195212983797608238760050029077986319159412753602653870842474582916206262631484736091384364096164991023862389254485634779559277700538780299870389896653553788965536981329280056838416046984229643746537891437203071684511405002451256295390315271216672803542681474305511848626913010780583299696170144801383357145870949567593144170208174627226524711967085970642085083622116855035893151069460456383081873840813781468505149714937552958141763882539841636129038906748805354395127017726149025163037385966341937151002639512803558851935608806929496292965123743148693209837470064629848885238210471729814916651611529968708919269967513076475790513419803943624979139562326999091082503948148552908737002824560314853714000982926971035061469812177639028676398694463174730867724403245246660772561844617802049316075808679512934197222292744726086991575970247770313121911389529397526661799398243165486895620378265753384308398811923488144080007540766752289480269083868430970346663838736170387973207309926711572647573056901146798333319276196135504850795789534738104555481330886197060467474333442974494416043627304216761750990186341997073065610033337828332197193721735589003371723700584520235982162808229520608354619380174046003532283703341276297745075564099012893912726260530317413880112128192960573394799592645894355284854957540300925516258469528737978856616741578718365436773481793483665068282298547319767832308965729141017010139904813188640785386478242328421354960900176963375497282254053632737894130634704384659847881151492231626609508938958992711097771591364621660837580230568785074863995465261110800757186967018153372033861421140825209667511579636081586431779769762048891642758411441825598947225179307644748353675070255461841895935583699804472889764723290986946403817571834895150294488320474015778891218317731062620397090443560784331523752400126909439083724474924231195824770016811328330616990420930177907734519095340946708622255817581713863909000227995275556964590295375348539941141564865985229482035198366571344873040002816449336304307684173264645054297310196309205913216205172456129325525644827004436352120486551940492234454867935527016467935150858371253637818442152442522727701613972699441602043904196547283070668747286876314736142237709184106618535076785904506205255295384173331320288482470669705721014511034168966862999230853685714962896915932777449651160630302085758432489989900948021606173203605589311694628570455294259225459904904529723776765040411353148180404906038129201071158611657114151059350660605280103979179394070129316215644846648637017109722233165628001365218223751788560645361762768419541487803087061063516438730024500465714300616186032731643180610451110620645894363399180488996653226710938738029426695835374868357206883485039860908227564024826106467601626833790760645445550052206730866460925022513470306199443097461998108096140706795944106820988922318771389141187910726702332194171709743189667729810919248418393067397317917120481902315236429075073204169160314529445893020682232513014685106027487248535514354704266512375794967209633736706172749595096362183179986314409850640676166396516017662513437536052219705301995565167781244673317956190842587267675939217995732258593225628915683970805609194614744244705478252864748811245524950113560226760734368208436391534285302117523497982087450919342554525129637195755868724520366756378404112182408460383612878619690297036867288111309682093643931633105064979426920357351972595795939334212857092079100513022108022461085307235528115881593308191152517339045157853495887548866380654689828897445952789516748031350598093660866496262493552331726899412082487299590860783156179649967633587988855982730981025360854886627821146224830117251262926802565128208847751688794546861450911952100757631321116355046120789280317544725010302876386365160632971264660174581133481226580433771417781681929311629284309156150836152447694239298536125120445446435365426608725557405482548915946293892134555250155367733626091261721694826088530726477605481243731298879895607015855248007326292046019847305667289177442106882262578039825890339505044058378090720612588187302158924522201112607877148884928717324427951846567156802593320999286572666633318228903294495245913948663010675912907245182805821183560566454543297113911194787916306174018860737854118604203626879135221430022292616356926790979021753131307989171805007343892199735896095731088477864700461630015992272088972172308994674196143317634471190271255966026469472788379948778303068791377392617801264455352460716376616482669816785791073405538027998268065870553635269616821610158009029292031729188442620553330356232260000162872122530192549439451208328980800450063264179608011489170096217889846494518727725210672068769702294781649447107978856504104657686106475600223987441787475107272316037776362126960289760950741003985305855359595035538531426957390366703946853172781009874946890369900122723830782042626613388947317912956250161630739673452573988365963737003718156000458131876526123224393348671107608527645445517210371189855434743190837349838533483253112404592476113070388949833242451027173581539061866895264665172710457433321384064264828661953552734014514903284932241785400578759066992273303713697221792534625194994765914117467561904236314259562927189504707484131098160417324977307049984412824245727130566573012256415444412919628945798462295324317298993800825033264242153813720556560464103975546516958863067554523082841383510867185705544624385672715721104348210602662702899207892251578798402251878816306611486586518284399561785383167643623525349714325520083456282845558388500175688696274493652812894245470932447294832171022785901539870993957650399558859165379336139391547463477962864634405330280984552239711843178652164707082808682319721780700061193374660306629140264501019861621648782938061150365349436462901914652533363210497143063619562888162787194255706347039067953817054670523067061662306851402527098821763145339012877759005029811811099928118601171666155380240571799017464077174843271292427502980275286611256690460387873693017477120376477573153369323882248854821308009424254573491210793220821254303211668676159664957256879432613052560980376953725826793536460799382718193933313009051369029968976637136870195746816978726883565331257093230413197254884018354595140980309212386925689172084840200307039236026849078359645435086623706498379502067134315938930075699648235721897595733491271843207933259047677283973260945375363543201279015772988567442189537297869304265516905248624964978943581661668304893580854703013900050097038523582167996088004828456686053161302184434982587407905147992734782974437056463068053250508792795823722855847356695450493571850550863744299851380101812110863989103716975004117608419834406888761165561927519794599596727076607849596992170803859605395609671412685520957289378043330629203424420443936729489923064433704639642948077231322390830299336364450895161513195216843665815704787610689203506102595606024967211894312034461170474226658268618522096012830617784271127730957266185387585676921538235095693242315885800533287479820479394532188335379567049018612197896493713026274869884654635192367549121254716816713524072081075713122358559512358796373507484637550493334102828783447411703747842578661150230668749166838074317685259766350152737982429911205455902810726887856582794822439903991392505107346392803101944072226804740524494183310384985998353602058167910886438352332703859991838807644960234298464652398523782691218434580319822185701042547142217798763750844652514908490571823369396970556795303737477997393712279913601705220402992836413649947405495665718944520678991783074617326096948460080703026437582222631253562921484490377418807980717781213122377678158144958984154693846606134943387335349639129023298086944950049425591780065324106167796643562345362535733404875079506961778718115534982887187343051372609950940986270273887952330624686634341651687652705298118934229327264796156663057226865718479586903411533692001413383720165342365183644458011511086077363288232896215911323325619809109694470610414339960041959812605748645382669745766420402046927364868983423527068953262553689114067305825749402001284691670715702092692329549404246280703663698878786272021228843527959453323453778251404933933116413282290274778092196055476786508445381555181032129574412058811921702011969903565452310179589057750155532561143481794654558071125310871299081922400312802509427015460140439534958707302416325791459981821588235999708895732959708587535048903494231674695535068186942201197674308131164087605787081092846105496835433538467683698110339001774243732651280157437367968163267600739012847683343459408327282228944060462133871714031424646222949007361285237155656840316487573894423994067509145974822712851816818920485212106652257464018054625242564362468657889407644245544968166792993995696674032276080413004898152763045816421899161771916104175069273477722827205059120225346817108808597786048755180544776126332098971756349430761608068722971674976398187168908537056980937599594602414832114440709374479268569983878594026842761639827459386027664281786083666813070843386367538949859270150523464277978660440614163056028004293849685719229425324984309925017215768569901577106343009459330935864773743197388754488065184985709409340221827852822608619722290368264457236165380483667820601611618826085315275835718279171111938365825503874291759639625248444655922015094311021982832292867116662222379995483978492065190277249571337627275983157571816941465114384003350378940874917206357591722438901951539577700140138729565086139238248745808817427076159270257156834079776981340380286635069154522154760281189153173986758578721482187341440935735929278078298093733262419309304904138798299866859986830318132712489369504139673781765472058207645762971276006141239517411924958911978854309460315401871843785235489376921141122467161469296901009481142121087145509641410301528651764750196596855702367886311242295624674174061566042942692320531772502817212756405561667402926099442956715143227592959326639183980087692651178486007169627053070262428410802879462529375641247370109692487984815788321654812949064800403321375360260573058350867581748107464736705667439788793536563214812083844429907560580471596398782760566676247652119823809658733866320678653368444760614374105145525354577838965267112001193779982454034778228604203312708823407683465072138678792255944605657525178984402862244520749966905127241743039461562701363821114878825413030070754011575602349253151022130684044011553477320059075967069017967019280354665515532688766768073740974182986343586734826553412025959646137756012586862601825386313481724179905223572133855598222683370483326232691143440208255761195938532836959558738452787108636585842146195975022275968328523319216293505023619938778766648588555954602192653542456849225029226404348719100171984234448090352935489796624740277279762438048042588804408739261242089844355638046450488997510025365647127965138162133073303735149058053634748760422938644295724633543306240153932327443274734557980483935407298356911615745616973463606610675101644460699345593460811922646915706641155611961876076973586694859965585041236468342593739006827069808805865982070432505652509467421504267948465593063029554697510254389726625015176372188193422272999713574042767326284177951914268535831879576536064494965538442075870051768499436617340516801690752705695853072040309006725100089234731673823211183143236086568734804462974018620081540797368808361921906443169748606625665709861528417698200395688773506979446735715618990790467353102226104120752767449282395130770004616924031513263212589148800989924290539306640153091755495789086890816548308253186546480268492072793595045291009741806830524724573406473778445544422259976093594541559297165251683547346078443495406515153454870588955657046261507501136432676861256254372298385095731570938756058612855529533779256870909116935274028099380472957049677957688753114520188040598940772471831641195438564366191569385232253757393459500681966478678178835271374525387149763295266007375365374438653872720694989228376925180314875680292886616798622094794626015848577329495791490250449743361724742740198675715903299638159747828845296570381215409209346302666550268820517691900446788606783921339436657971889459553671105059675146996021091428229809562213902471932331899082785483806278249825807310564034974133696699244718657041497524449455210570945740495900139108778082443928624228541001232388536571535272534292083001278354856948104104817916691307985856134733825033711277099722962518813703648142649291945347824034937565256382515011291221022255652772512411214606460409355710553240910166543231444143078497149823600159026682449809032077616810091828736204444064151661396411171447324997030647522721565037248614741976915092507311106728466418487094054550790897392624178307484534257383125701313317279517602160642717204924914319911062493787496662003615613560687253633091320403728985830627771791624294164506628427700426910650956296919406459461921053998050824205724924096530937832113423683935221270357071278450778369552819811006230690239491727698582485295086364088749793551073807361811445915126780535998482657109174923165998790631697407389493292704604899280151409933618460915173800717936905971284907949180708971988514726681914562104449805063699905821553866398472865425598854287289245333233805401542838418896149350633877911754158752212504697701802200124899521885731285505015116164950064438946233512389799684802043313149861696956301217741398159558295690198059556752225257867728031398200492864336374729629280593446755425272543229011339401523445830509736044464088203889421864859872974985864471670602648249766124293456920155366765074862055030687280533118941385491572405657423764842556237346663956198990433231735650742311543072424222986646499452866578253361690219701639265894410705034928252870644934730845703434278216451587467768017238532868610218088279887397625430580620715490924874025968050980423310160457659543943391567965760100698331860398201417824944380697928114118966581772355760968864746563865770069995265200316514226026805424337446585607760876298079718018563536573992787737295318361448546291134445325362189739437587365406530750850520827812776160538996769723508000466108609079114372841319654910272199455665883564546828915054961482847366314480252238465858974960239974144873549956668275275595487612187407351364843405887759227979158924539683394579440640766907135012855410622505482404505727869154680555367327549671819849135472669211598748916348267740999683737439556349898014380425679763947080955098715846065823327698561198940920394175097396303472370678032002845968716708318918937956839588790430082049503701157646497800947691340408214844105925425033685619917596356639610504200155173947269541155151489409179843091330426839433777812861980414677370510889558528691921628616224771533370369784451120559992752319678417558403690673408028500456525371024792220275926466329510633269064278790284721774822600154697100569052489855982490403989870274344861328430076574945045923639418762743156721891397216251214367733055299458821465584838692231956605129407305539060268733968934673172750026086770968804553582954196339792688239368281964776555388440108550660355437195400486300508611844355122844040704816798009805575298637578778156636387978900241617867519865670730784972691973108064647962655520488842102407356912848816358426994655735362876592644695190562415502946648222808815416403686744855290148741993875620820648668742023623095986893769998003696296672247352440020829199738428895819475648132842127000983342779601695459200858087541478190801561476660569682156831284248679403556447871494588049036689858000814654939430584686931363906857759470388657349687991952934718407028125412677136543287161694515760355345180650204154772256247476422271733887493776023389896567824903915443645100357773786560314705454158510632164685589596196005124662726096918410156328313943754040166927541486942472199494803387375281350964570851945108729876291625195374017790853667412373890455591674556974015056924321670886744967772738059135714943166113941843588956945458178783169035262239564686948433432007958273029356018106440750260959322556418480913983069571324735654166846573593679364473580269216297065176764632697264231091914070854212472377470056557443880027022284769046231017145895489536754340168263093763177448687630446513598765857643232056913300137607315567347223486188071822624412835443657603281712330666600021244451237676386509973324888037758450356437078024582514753350798636162587388570842541808222018027352825970369485779000092876919681915432132602336311329740655764522280869886243062133700488344262326365354816594580639721336227671690781819694730533081159622879790847129237989539056324365596744781013117321466003006290407776901564317924204326386026604356925837378211193306089425097886846286830121813754897331212107452181516538731572215522551043496855147594604825117894609060581375147805189734570528073944857513830216954543215481017932020289464471798761957829748944428474448890268706175993895335902036637885246107140698706813225314921462674501528087376083087385427574049805391216193533126535460968792844006990446157145103542766861584437589422399077615425182033679283138448460927462099109540877565878914577302981567026160801659545606856934595478889657786398960957997862420850568831504887437979577410066707464603163234247439515663617330694708745587688373367786343462545192593614239844453829442835588845189203185218475703417203883808622234620109172310837655486088827618858674944108623812154435001485412476086847064278095477983679779477618191754155169344895486385195660379300299159698498256705983592673947384736179250719596362440501389101257809461232924894437861519089890933363641986710937675916194544595668109204638254153196716343507991756095964736724745273230091464659037044764814765709115820558408221369337388971058919935463579787972891140288583700516234746237103582202299754500479484953457882108242792416516133359448404390273797476639861192590092784861565628032487451261001262102566380874476448974337541306660065058815915922275705772225200442873202856761373227688662369007605808605609036252885594962685970014104464999714917230684651022538359542115807744195804362465953869475440064791982169421578511593996021262402007676946878602675451170890636232101492527785831460842377509400779675758108457721147909233016985830865550691099528750770140184571530378549528270014880369693978706692266829083027818669738104444386500638759955615473995867840671291761885202646708456170812008923286282922311949225117758657944113032354264588617306980040604481656532677185928500324236563655780163076941109197189268141122456676270376455696430756818438085953872734379920548286406347493445040437945427770289523807235472562994911719962594067382404768982810706109747560234967037722968868088436596131967555598037767674072411107347794361219934852413026385131260259956617826907882596466175556560086852280358858198394407441570116692874429526979683931687883101474255242955722583262231442906532020779330261256731907740363476028297946185952982386123033783537284942879067641733586381617179572543345097233745052470830885730559173761774951562483618941571191356919474019536427255756283794240319570887576455607605956238149974817496924449797969066969324140176937531253110878396641428571760160623825331244747040276140908765739039572927038824560119111963471284445788013075483250038242621782136407447227823192119670370555814686511301561218849719049393269688136368096283513469284002856069542841689433013059620532851594316253989617395388852981740066925029238571340113490139739807472894822685446446358566917843705080400724371006180435232519958266416146548062205131748085984330259804598111946530201576175739226423344216411215425451828982069902132195697371403570740447142481944604945980776301006491163355849423940011219561649858682749195364076529195448139235982748500751628521622384066913020405402384905442492075100175039357726793490239166879725023434325089121421467229175593770468492305487705160035249553559165509170227420852003558709290976361357633008210034777587678439378908716241598513990894991390932052442609921972610671285664632199298511334833351761927990095758146666857414970441031633023649294795254408013228333780342578877929549053235965635242442265120483891078706195214364132399532465955219771485929224655106054238574030721151822258784098306850582507211507758832301649382256952640857171340489619240320073893012221208379053917978307187257771942506493536766034148728842965241022918215618890752637471792530884928993309624500833686981609804594418767780733562782812645332259110092590722275307778845344093574034887871948942671233312214202938739167222459353066876806729691255536582047366368521738277411807894542791925470367258981194414750748355763223546939160458671051129104426609874350162305123455044884061200630330140876532441643162158388247800874301613631385339312429384723828696973675728247847820646105021299493398440421605870130453504039519840994088615237968356017786328760940337543894828533506400460722051396208798786096673108470699445388074326316991131481394404137326714997281091731635904909810817028393861749001014808680070002803978444491341261138216985721165875575013461681622262585117847728424268281668888233821774894640274730797999194487886255206721509839599131540325542934730048111836315194513636504825300603231623796170061714254077968738206312448482745758612722868164990639501603648546419437042547919538378870562729213176875800860534553355706053294592351343795782414766466701457004073741048335235006937287558509838245442547305461019465665644794343995317400508047187647795224314312505774605463559750945804703144671521979055693230135789628678070652260486037286331092787750507253607521465586726582624372296249841218928290406520334104984642894359818570118624325481935009526499460786535549307940467527141443265562343885147564582744387269733139622743178147234252838720824820428491370078706320954599858929087822943745371378729238700846314736614278424356153985658188897030445853454568235079530802383765398709405995124336873142438171244348969608499101902119444141607617060161348496803646366676287127900452505249837267266717304020211554189842155714058519309200953090010140533536582877401771585972069311755996957805628922229661175449459903560369211651088130243549642675782263529358161790842191402689454672252260093123320485354184363509375037384142549494055354481108800416071877301745978474731917025688617806626173768333174377606558778249241991799107190933838978841895512001887879111056722001577446393936947932235187090930004863719633461435132574004013986024140712783883102239185193373701674570126457554564808092888944709713407347002129519162552025946266680207899449500678073286296998966538242004131136082130839300818959212436996385403085931523531958212859569885325604806139282436238642690611676209109714897349976260622152296348519980253948796483117910698375416596626542002550661505994373561143229506272888123567545785430652102116838171979284360495806441133296006550474653746900674607321304740554254309097316142897638570957811480464301587106788661432311627700901892835831268553831706876052371272541500133179372159119432267399696410546562571415248580802963689756803081086908496034565367846226385024176060679189026830547502593524823717510540454458090266447271386382350713520743189593722242755517707030255977801473444199172382400812278081487930882598007239275034599000101593279163891903739477450775889675530952834714189054427709419253329520004055775073732175918981669144822494571984277435928489072710851506364449677710413547963967561728151637713143549806570110441120242090665021863832610979593675024374947382031951479779620252097840349081810799683248841159178128842500531687560130087567832845624464668685836968244205211065263192250788073576148104181523744173359097091536905847293868253119710897055046049556252203622372944592664224037349854224283728320393876090706952906247311628469560722789499282679798251444690970081378976870823790946244222018407716205433711065697011618255763066886923565228150637788473887666310341975648459797914443357771419187216952075212272759904928992976004071785993531369699054633947752147773238436920814900811125028098961508340120172168851049292453600507627619471304181313051779244530678421507659891607701015388971303126597932669334266929955968769528043228261961457451447268639696969503208696125998486727643319283079064565489418709941978078762830639243080119272138601528498159591140276989501725614361224149720752431938008893935793128835155940006720353698862354636745223688684223058414445028550349490736092160969491537264560862268024303741055529645296949213579303831390954565039568997080494141448191110949793381531075568960937356591423887395247642297415675815485362317235147443743973195599813311608743192330849950521152953425519437256591797256194935988786340603964055832576029141424883097910854743641103622571789840812048451737175160908056663092962613012891877524253078209238469002606460144114099394427465551162169023712288749213219779280601708426859218122621471778376397374344383809057065512979630560471760196530572917438741505788590445559140030071163073958106512997920546403505662596382483198477384370878280401579499813227432133925276297602885411496672704161352307382168543646076043728272877371372551339565667664302681075116499884825421211625418846503991254109555712796353207285067394413033447315045633784681775470563479265224017979012023522478922742403997526228368692160180088161339254353169393723075008776199806347264339599702294451589579382966146826050098044821246286597434517981311478739959057553575583211620045146528447365379957462000531783931033651182019351004146269452060660055453719131053626718092808099119032829028604642379539631136042843553776283181259035349236256651121779960314773131596800241764121847019528201205085236234524085107682860835439997353922204606086002068073289182968859748040304044412889875271679339722035082313983046842896530698775568412924052270444471375493668736025282843890955800590186665988974617299586518429291626763739521485945495115821001780556631821930764187115719954901361541570490927422398297662761822046394943059957529115968491639366581639045706630090735874530948227642028866982412401334417630753933863434436901350126046752626027977902488251931764024704686030886358803558985945050575224140312263207701289479977161854361082786766367569809792419349189784149514028386191017843658859531631382143825636975389482538636801572295747373354521475629416224422527331476999857000307801591244857864628222308971872701506659823505923525385399449489869537455587240143426368161699624031813673076675906549057394701551979456438301620660699616128736197741926757663793222565610185321248625555525386566828624639206411636989924784349277359489151091613991476781712780610604441395692607705362962361337006727743693205023793955733736545858148767321315656527756142944465921194715518436568377325957821003521616186902291229649595547759425151094144628365803515982850420533707258785598124566299195188559320079499546003781799981390295209578065618950966963883329547741173212770757533209066914858155575814173033437770483099219917358521414193239615279957570976753418012488641545562005726445192607728322568926014969465712534210536677059173802579605501328662685789831165937649956800525831270821182967524767143376071348738578408419127876211914109080904260215801269951393098971996297408033597269987001694406898378231238897840636570978503080167602236732063433934395670355676409872362045426181038648126329763487296270766880639517889843498114107919418034856553541786626534318122383242106178039110289471580662187196753549034288864473654655703055163551311770142077561757812778666602900407786145701175437161776392884058793503053359677066594103432876592187264174189071684809817329383652032125734964922612443764971717482534905813080735059868087098378236252270045385605266844259823709984710506074181405370955020993615915802881998060085157390339209351171243139367629581570047000866719848185693900336218564010600086033608331866404555085789125409417776803884973593660828228952288527052890313329636513072982704642759861555539460989382919738124521419899814770341636769897657466668933011564588903066325528596876900967478093279368516859582044551816428094320941964633542725915395781631708027379967860383569546001995399156564256805472998566911083074792501257616787832029228165695684300338087923995912403813251792325913244243587313814495404717796379029809118096129082509573039986899665163683967860670642271333509621438293343226955057434793350403012407858098056107306049329357088301561167363420157981278928843331405996415670612713522805868558161381837452008317805429993225835128323049887067786395170276919477324427319527842173637199383266138282378133192856235172693310040486412795880521498926080792635179411792708500347463327252904461443155174266983684802608457591177559880163808966614836609700560960911658278984520285389584640220417487088954725381118117570700863740977598497610790538825989776845705909368676373938923111436624190395782043266456266514627331119757051568453048776035811079587759349698156389035979048041090616680543944232097999647237168354831610338215012521487833556162403649630777999036063081631134376644255399972431830816561446526985368906518811295259412840522975416915616391599819365476960704403792276398784587469176088522163464685900869418723712996584274294303184331777145186568477407300102119594891884672925629339007128557853079011020736083791322120053567626157089152724041066076251541890143070159632153497079351281564228965611135399366010878605401349883195459335266388821657976684584971989460127552805918451847241898539824215675977125446426770909810874691843517834114795954318903395294094828422339626357170427033446740200798584560657721707886383247886142688109833804120162423455597528478024000730288428718841942266821547056421964718135258319237679259984924076031550973534832283821748503528654219735299059177698001973466380993283343714136863219987260132000756679208418472372507804633948902289910766023138606541539548347742967411916060735675569891697563731625878483947334184405676973891407709205758777954240960334297841501832604203369319426942910447816783572917048299131106447193851009850688379132491562344270977100988387510616698386962931957872515186362763216499535928875451228996107465366452887961493537850482847123031907863006493007512551331853990941286065207626773277529001986526063631869373505619845123955101048551846609045124887555261741753327687935175135515914845161504517676504783982950697054117146879099936024704032248679534919201482452016164049031189156597407825522595875307094327618298629338143264800744150908848746138599794034210322568085308049312579915956740341684811621627942299467448723657698134179487658312362822769543317867963394442967799800902219355578845613033975453355226627657717656279471668391485832260510339592329654345571615781355022243919360774482218690565727468972311923452338257361533422413768191856029028091686639829973996711791158648404185872853747117971217065261716186726867996195921763900229490163791935458044890703288814712060825182403632742660066884294486775069531338063254154338378952908295790664776540604001380724874452318293051625251532540730452945827653122354592591437104751744923676510726052241385751362895910314451033286087201271721044716514477517379555240286929301299852896596879660268798107978528075738597387634314204179372313278390801580938611976946082761552211206883672996366361765800319523609665721285698786356909748131401022131595433276964559152881856251767787471347174088550264945848035762012568694834507913967743112953359668016244405266256644791660613638148586602137667773642797334617328039243351159062668625329458249323651099017891359851701140244896019622536239545944549068270887509151630101274499359510613249939045495776023430424478855605789049434604737557719367797663142998023809882451699200370290003410231071031897818169225821310457977075745371781954475686719758378286439015247944505728477157137221021254977342748141782250147510433688595006288995688823937853221850075317973389627831866021583724534150298751244676283063220581985637222182502092396411888618063739188896328991228689257751406128600102482292451736994118066889028994556558583503965713633534818892593890240628473288603994466693102043225128579737975401989527630019237583373911817101801678599951135294801404916921546549976382642249566165047742452402619800264918849311825031396500190334083367540844882509795906493972964212274325849519891999460908100898321022430672384857441324972915055639233052535099627458968372667656049754666445874857813297750449303282069661481535932378088752164822731037138961962256432359314014268065691086957021911300849404974722341248384936345065021911395809000650591064808863807125905263644660033104351116876906202749114902839282102830227157707203358667068460621225497630147017069541485653732557794719663535547692378194342033176924923240283596176368986374348196642422937762122493386987038474154529913288304413348520275255313423868556983554194256948198777237857419031051161237452098906220522604230619880360026110512700517642481228691430781665859089468525988573812302785823524632723790784740394448234668243435840613897885612372611267605788414459533462456917668718442905430832988458647684575254582724979725237569906152195286890904057769296215930883712993877613261840453109569863275976081490252409249494598806266554572012864318520529822678563071181701016439068849796286260755914488770015616068733718234812638273835993031597102759877140807404607991880145223505837378373434862181029718848555223797676494306152514401742674111991649081750582366718672729720823669153332695046260626311669169886613661269351878111252381209423786039583328661491811429988703061234975934375625694496241139901861624423481901642287503140926094480994343777933674363581437206246386562364269146299088010370815724568243441065861453561536017213313795369372151559113086581154087049367789564714290951300801878074459008875757936447921677473822537829394165047422554870119060845558891419146208921004226338736305814960375353797046668451793340653624834168416795016717829172881605448680600795436652770659593724001615631545604567031566318886558422088879738993587862036437263287499428596446404053178859499246831165230942442861328782863719476467943479706423662427732850485109204170180048366159641974427538484807966154124429193423443840755679968265529719940607017514359800283553951244715563344135982434017039996525847012184835483479537734466654362425445245091867778184271505986622302360170018382525041903689602247989802400090529181175026140864907947998384720880560090998784317818311235321227715063778527212497432646556792731097581740813919462998859594123247030577303018872658578269925487905330202141725136307467076128941467439953798608199754069167722448505406643184033910186982630261844918776263092749509678487433024495042516510885451330355436011492311678987240870448824249569726881825259640378157774648845265828369768376993552963016212957497124689812566738375570897770764586763109956464672452087546566564192538428809171735697635004552197147059746246947288086065791548782943016708915247204378232717185433530139996856086676407934978299112992868512749628811984466835815809233758976603695782795224182376910062347269011048386744186943886170210870940382219613747501655651724622748829820630250568086876015777297618741061013930658251473549760451208644162578900757392898188774272760785710373557180048333904469718708958913898018241686344087282140154328775160765586515513996726169899800619751779466970166916787520963879215828431222836146472910208079738185334950537539341164428361453909969915099515779838134072289107961737149544864847153470857871589663490316603187618063893670975568600743428820751169796549604131203484925537619445957676485706237978321725073465756686607782342551099625040432373804857473907301182539889843720492924077235414422618354078846171221111182507138020629023233292750167696075863283564209888967404117680712733309002223113671182369165023709476641097752015063270258980180365318889159540010733197383456886788946383263568185277401778470114083772992541014417306876885695825030465512348946420369525722981713766247768674837733304722639816371308323155563599328527472798569811951944139882952720404485301485805924608135672783700376586810681663707580454172606321578926113021827072823841407470062575333968477377473864740833540610924955448277685534338635997928039155563198507027056345945826845580061764928642346843239816064076155471347997315850482179758260046825394519515616631104584527355256001707616826319839748540420118262054301161241477940330383019176955482380473508416218375494242936002510943064001429401154411170610988024930747175047715883149046645885359089512108888569521020381367998569443226320842638825409430436331592730734582734022462859489094518215361814788418113915416695091133110723408727334137987186843793567730227437922651130279762496952984580657563940864518294485150803791591168154501098900141156421508500834867962139924512531596129279387375437135651423669814900219558549225873254942331680679474348643349275471861749871844867331014067777673904079826528627517144486454753146826928794573352325380445064627940983108849048026128943163312476595562579686947402232881489652743990695642795719750033187760352305081413213958488754949534152536558815139411448606003229667729867371608562656723310888273297397308578120001242209151672624833180838172796560865702519664989017566000926256197239997814744049838079213937753093439529315709589873471568169608290956022811601011431977124340715415345295564401606150538066218298066100724457605403246185208204819415846452148639818620733863453410309602690684082303157746027845043093988615716785107578399572254361623916135405935844719258675500698916763922121371607719385866031134762554128588609540644699719703792552230062155059477142946103936781490360638538128512886854521894788273769534079163912798193891130445059918005327788351123811511190362147566274308104936296793136342820623411333289018776762921638007187879919988633742893308725427452979610832873715379846609578737375281184194010093253936706632916949633724166964432923292257716111587595379883819545798377075769258091334815887233102825623610938013705855530270706799045697979460583691195356886322171333829712801983709815451565254814126324956279300721050550384425412784432231812514559325380806422361431833515589606820795306521944608340380504487731726074145706524641140862857758778367942875276248452086637745400942355948794122858395547969006073866553533197817704817302107102026482287649363353352098031930797405712069262464485319733117738114076430692427083577238226612620240967280744084130271829227852606642325543590079544240691506617417865694010236091460337858269154017745125508295880217760647362111166041588387647329198997185419954001232812758099567988666904289443073715541384837205918013168462463887448058875880466175804068555815050937738168265121887352302835424394383986020959923568268759392168825796974122721331556753274089717369183145739416447074567247058011283151663968592392090225005467031377517857815682905495148546021168621344578262542573777178339619837457785796110346289645772672478224307560675968019367137036679593769419695604813850471880547472868841449715556360758087288533297807669049135209611180506681958607422958844591704621030167752600435115953410377613865342097243634900371175424396198671563226960227359383416572927640705063301743482557888898718253104105163447275205831143668117248775343908630391351968784947535918491328825018208790354124011731095318407528098348916824676917217706957597167361028684062128727389718756119060261850965377758692785847324083097643760874411509237671316970127579415383837940900907675082702124041013551327026507299147013261532584805414844644770358206339591880398689071017249653959826010726503525556306334009994288338167221345163089592154918529676493236753025037239167222183544479511401558117274354286462093323899150764325561998974545219730472235281547591907527403443104283329262909683881925789218929501239376942951237647238811576909623041928812347249601101008557662335328895752280179331610666519727669363852414081283639265598719889245553570054277957125804360764037910800935496404724748718668645031173972446222477289497034130049860878823456453888770760493885336857845896495125273982321177286694366749240591388098626946018955883320369156675716643870176292741405341745479975672148421847719650676020567319811035488622399852159067453049120062431054089013463389546052484724041897533013793040236970853182942108940729271385374929042269887799952738669293741834629437658271765294036278636721451655896835928489360812563453265014061923905930931773673425543004987715782276948481588141589497398078942800545131391579872115757897817509412678589183300619694605430221677628680223347721793653508687666373544527661071089734231978811338127452641544659964374198875512791761021106163358246397893663094191278057137698823979632569220415187176895482259750867761437297033221936102217037553054042020709287534823216033452188850528682903807739143780051924873312723018884282217504176625571235620773010998670652555547790138209884950757854893651500937120661990626574186354997466654725776216523476496460624976168073534967118744943231206023867389052591992223115448798966020627881612215071017293156753172955455105459399185376647694967567414991477989535965686075353747677456995733519588954187992463633714211464215314038720100986591143130804256890694667338246078381780573661757643707689257847180696024054210159625299423932060156805220931132306497874529875483425470235230106469775194274798426930560674579229010443097985723406300188121296983005444547672341915147405767994797585816301800025853941906175661731118737983703917568016580169290835950197297747117123747181277728773859596397412143685670518237814562416140208568099795345496181228834076117361388873297933243289681100704325132455855169826930589532610081202827016406126161747746386191080512887361423574631331616885459812569961427730434605492372562654013696892787543682145411771028798678216910963015788416758101945173124752455837758371971910582936822911827740762927924884491816532057157246041513832595823104877138262754744026742182577757714989819008314097135607599331919392581662599811060564579140219312046056241132671932249353802486473934144665681304975331645605049895447560364629122338290275499535254388283219991974843967559598278740670704091452599495010994621830251171450024220486511237132022836758755844078644015192650277171727610433919430189697106217644311152402551368294246661199046485245897209222944613424351836528060708277620236286062384618751191981006662108098472447609661187291066668953670625780834262529687222814802368714707018382517101678938407170262192942658944688037878433267331847918727982327723427926696350245731269017907720671096590948929680478467747276083402843348764976312514409514209980995734719518150843958531584826244966753850077499841821876889529830917968008520909296085967639027892595402746976723427852026706017022663626523460491105895342334330449409374979245240226884049200452967007238322867417068586413723633794429363816799075241320553973485213810285077229757746518827900211268569658108638691130019884657869570672846105036283563025233193619757058195429077809137320361781743592698786044238707567927090176852685396450761797088934518258363594888026312888577022189038965322543078064843916186319767454429981251489569291849655311856409533540081835038933295508637710574544996471249734023748936736825432887225912207124022370476186724687787570369389530026374932620820702414278878520659360067209728701251595605565856547660585086797141669205806037692547400592778596636455563809179159613176208931401086609704838018880357557221800918568613422435180895765471640667590617081963960670445846471686601668377341480402955239162843055431238459454086808732856302498515279596488701773285942987665228064718953276186583028746730901473155650821369269197118645124575339005771615977809796923225591633309080008798817953004417504417891279037873757816230984391293842312517119548287282220558014308657591633480074229499126026884499890005050055727719150949760944389746472375644908789005533626541948014720600897314591010174326817441061324878194705042952020964604099110125041384694130826191666987120950628756777227519908204587629699418529081020506760215019034746985949460408163507399677740956236475188154225155696838853104798377930231503135078958624845732352013474662649019874550651312130964864574791088383370679571758917619164789188154109543110298319641214452528156375380462194084265264330190325326949210560334255716298708471591394649550318314597805839398467437600783153865615873171201891875223131311259966153926563604480391962573944360490230857189733168346420633376200511842797218683975020781422419993144046289047765349237954347103075818186824915206453590274817839802037236499004948523845310093857419451447259522078640177736950389736612810257779925378269643845820532466809301213980918429871236668954707424465599445336221305749096919490736952873654034464651405914806403149594621310724692645643643921643922243648589979195788863160198090058292868038424572050528710926971231118899253376956518723036946167991499921432401359757651150301194598728683370758813579946533023540362237963072914624982338049546360648122472409174891088656984669183802484354533744628660976608165400727342577888059642676406000857246073328902894573443179806429410175370006200598719268595042536486151598943711253386897287104666563537790386140013642384583200037446129222582708532166921057764510381761263235929725504973021432497465627572296275647411266808628501746586329626478481996967592577898061913340322326535807173675001319007071435204501106223322853327783201558739469512938084977622697960843596959050706177202111883514433472216062059685933403818301739202697957592365393769634321359392961225684444378586948108968603380534645236497703677611037181093328596303888323548198765400933253353197690703948337417507817078109842499449729999857953045100552862735106988109526479511734021759076145864147298199454004823625828785423460242919540763478711688038312414502674478489935295667664951366148478435602008729267719632439753718280962269064261945752675580745984524237241513900268722929560349360166133960631520471909165615231993090329762535279977969677630631662202870970002010680830861378297608440682995142318589680249118644176601947302665871115429720139371927913933995543891814327201967714005290446572923407290638814009947257039754091907251414287796635073797994653662260978949171898888688918860148257276447437717057526060383064400692786585938005455192937066800251674174574538047708185566962281180291314125275602727377220246420163615216101991292525581901892427882387983522396631521611058913016334557310625862968041413046883667635196318572281884208180608872460377807233253729082793233231337417832174680736666164804853538862108787160183092241527519567918394351129493216743196236282160452040121155487427467695405888395893465950582477099684835374052544259890662530347460790025960251576383283132610093371414597695391270560190939885566232360495300820902201001914728199532964679808357156433449685692578822077266015318980057486664363140976340122537217355980638459906633502905772407051610057445164073499982503010135487257511487474801000607937512168664227380095891478432663123089255018012176198726993843954218194877921638654792939799319846521125632508564638052850569400057190761547487631875831753231295275616205461551398820512258335967722690533119002199255257864439300116069294523536429082471579768411737709735108941477819255298993072104158004899936684649615539612648839337605418217361480118695219645838995977790779362998018835022519033147880039673524207864665539507590071501346950359064751012730490086943259574305205943773600209382935462510706555891045158136168509400947824314789282700951110664804961750802468437040202711553687906924067885136968750007535245487888097474380792774579863745855398787359266775997796211191220732387076628576631786896762098997118897690559383432874785248938694437766731462526240249302843658168578946998747483628655606926255983289167481835574444421376981149061235486344202244099154477105086271279923796876443446920485942821953161747213528205418452442734215623403872470601103771618276570872576923809260603672970582060332817161922203324108111818646106586962166793217719927687570837599717731710962354706907131362058938430290972719093296625233183724242424739058786269002927184076603839742867895473428976770599050523772572655154509241235949423739913871740957692465582987201504497662498617238259085073003016476901731948264597654913116066954293584714566163979700160193775688608694371932012893536440802282420409021268162869373506968025672044205036436335694773111349185131437351873392125691646903202094349360451126120991565357535585453645466285157630968178837420802092923694641685409300167295887971518056662700817645219023374744353059820813922284107323503497517574336368751623245630818361397810428795072265469650306498591741132148473083578527170962117063863444305601036629874747762130271066261177112657501779746222372771308338102759482663269547948643030865557957818675904519309475057272517614698438695691268717657323994022124052894111063987867135657567746128374235112452564339286178188241856521738993504120883827050026747342609534184519727617409948517888656896469565600849179406629510887527331176019387816131033528559391859649862640855659536938105208598548627490063938968689977552548783220206817427254946682602467519941626555220461718010024691384219568338004796258195451473040593530047580517068592164108393852806019138006735870097254010623509916023666797080693036783510417657699686683402236820823582605853689376821370326213071662061902847555440029924292847051443975658958995929299398640568082671646125518863447159770342638393731574970535242859115693552603762143227500813789769650603025445844570887022255319418979861301400850780361664789508407536234471478857249127084356613237850464722815021782006325581467493022367660556817694859703669739514518866989003344399533601709306750547404050502470084117590209938140697500028753242208028337397032616563827489062480526304002358662084972578516046058285489534307562302224119609952021066169097935802123792793422192912850353066150205234313484875377140032549857795837100364882135417729565150315518124322928366617478246522115751281732613059552558585720999513285223884407664183916835325851519061985064212089318139777860817413897397313876836558089844509187757367780880262270543025578104641940252363258902789149831064355461389324494340439611028428019450068189228347714315467655463886433504489120751848577716322851682233592205389309697817533497667703041306405217535865782642602660015042440584285111079869115022338764932371416987638006598575271515932257264385476349391806388718618928454605121706631407203139042310539623890696910046312922206841033743387904285804831232937069268550534680125746999142350973715476494208673761649907183592955769630225898120221150594965180854784191485028544869989666813633933511951181545692671642217373906816657350671084347120803341880906817437639315765687100227338643537601140585223889986065236359141989842078753996366745187870599516845688074787541945164648102794402440995911770809003367741114518528944506828443818322722294102943213977308272248677957205390438747323399583109933108076610328881224761107367120613825316854648841609133700134728849081257970685503754880589401897981249744734105082641502508747656843197834797754825737723558857840661483506193936465707265172839619095024255609796037897744650240683881329326089398720286181616115024405902361583469546899456974952711436065161414730408607101759074619838032794878269023723197881209551313841329198135555327565739425419885041562769273487686966379900497693926115083721556289863247798693749411448056400393135450659118808796629104052488407353471321859992950132412384140363902935722199227706479071840579393629043960718449991254199268444757910841444289849938821075484922131032889546731808686721012452095662470205045465665488093733598175403437019925088638674735218817717583572593899084752502206180556237035765584993732152319128848498346419302969058087873720087455013475351614839155780204561676438058947986802689406669582867515040035767964383285524447122246916596314624626704501945449042949333111148537922128143698459309329676394296422421964452210364664774107106116944699095159747832403561627434947898462793131683586425616791116767168005166707023035565205306599409863762904845463048453365950502191898166071214984113315201618010228393149207265802356381829306835888761100551753213032464840085435435982730438571128097678415429456508588745423207476807387336719833679342174718293932849442507162662029018928443366799543415511111936830705174147273219311651300201280704879761227347036127859891530418264189584150477364830624829263903408007085372491681939466237276249914988954047417311510284679494727908241301887529309760489565807308918847708515603936299657651605285818293604404196693490192770223723924364722682955601441545990284385542929207702780118410418905712743322236693193335237605247492153654150996447318938734112906411185474768094578144191901311893712179746854642845907335346679560545738536715782606773048979573641861346756728702343004734070871982464920432018090765072444229722538249810917844637853594981131643125484896172930204256802697400165481657526893041404402506094945874781934012076770580129375461103039809496613844752922376884215461158229309354019447773144435097353459968298058483192748344863762966697482556692592893881318142258283987101760877067407129468932909264389963430121330328187001485827681011439998295964321583668855460904062431969476875134849678159106431310835909326840111631008392142525383567639799867148387078189594482811435731507599309555765805288743343232861360415373478672164504152951324593818722759551766140762560583625850009647767232136423518667228434617091803854607641330966356770846781958084211734937932544981173385242477497547069517704422039076094324065973745410367352234669676845101031277744181096349721506548081351152616305281703792622991735243173592552019845109974015562856468255072184169005734984736596954464021908484545822145407058522502441510764896528081995172513100927685027902763738605325539790098849501898168878150863708723618316700896242428833885000424603310792269063197945647540494722368635006705752320065672722388536770833896765563458132187657871169894637803361395284242192198765014035212684494804196453804847154989515765881351755194756458436274759008505888586487482840481109771016175371772615464995940757706346474681086058029068357029128090440128055278433780326471868022737096763615392142289085997029980022722679011957577075199953388199039946260265606153653274403914968884353216056837887441621612709081576667062535250468083340415941072059763193846763018725807355503956346864776242413577299114186843656005638671612386357795964261585722467363199082492712051231453539116464671637212582363501265664808013382694933659731965223421646764728356616442897432930406169462240422835185155373671853072483965421301676771579231067522133575210347732725006292104143748090359038226020189056704465080372724630588381086635147956591869903329152032423659861609013577048689665821755579210344133870609088840988421188526098520986668781537172129787454604762511635750692629390269335277546894000640480133842616763822497527702865355529879546116106031851747460888567706485074691183585304071783957861189112293329381663020253615122689353129045379819201914731305636531814493174228747207966591317022216957625630324147011778802046178048513434467168426908980919642612860248712618202437483658627730581452918131438285136000201431278414752259071733680508496325203571176163277552690949205227661952785674621461217036705045011332952784677427903695484889724523121222895399028454132595441495091201209140828377350401250666121854629812757364322633557379032391437291574277137339213953096888606664882017024725648710148066029425103516647022888056103015491849332249024778522178994264215609439877186899859139247605866133182959241873073521112051394501531257391282752167085669809038182195013405477105790673380763090708899636851231659754712801613705585734324854639281047344989719288513746477602914843217310876631849322139150596796102592701455597101996207715357446891283062945393373972656708912986972199362723033833540985117659740005769984961246946284182737303142062837677030595207066924122198829193349720221728762940727837917727672933414646060358762219580781982278383086724969142427892624832063177234672762788777465379282021292743266794772403539182918708655134734416266134032077406832630103718553176789038985361784791742510836398104743986820244039338199281680652688290139276077835187686232929207741762146879351138632434675075263106221239213902306907863021391305115598679427186608411128124661984961755018482769419587203783930493620540530383590415010715563347304277241241568932250914528591600156863770030312277162596858274106655851584490764436940924146125863059080740694038263848945929214443139645048440151594332698464327378002461197324018209775391211499187268772510463382769307009199284110056157562126778476555400389999373752365429577534498218884592394515019033411922018881777160913346488937090309792686095864117490974643441759553227801441734203035404771742104947394953440091078585868798618861145182241982724727691482897056180736158988347323951875805743408127798729224871908505444786787094819973190569407864562285562723354005144080979000907717080244314716710654026399445585220114287025950939706197270806626705552785870272226189707359212861640013221604378000373366367846218016069308628938819109113446257643402852974743976278861117165246181622078783014857893776195728377719798847867165393345767457258672380731805721394895577698680226532345485618194348482678719848869778168856892582592443393546787950607477320488458753867713997128973962638308299562603156612802634688042474754026477755869369628680046510738318396260520747305924249119337048802442190773159204259079378238150897901105808139979327917546089148798836680730273887840056389359153639141329010837775265321755884103691242915292758187528378246737523265937370764297664995270344431437201295186263789310282739794390264081814227461666389489694286885626740605799696830230120029897625679798662153673639405390034892833999525942066984560338761672087124554059399206638581775415090720414436228656463871428020676590968121901313698536293324952246054683740152778092117534807343617430514090030898225387799405771485058053643288271452022105176615537854677409967459221962145025450735340185706722848775566949507019870863840102083629129743710420210159535180656527120667915331201840624241065404646966724441841436884532236066764408320682656815706071697376121628779377145289835796480685529980476598211151969626280884316167498422465092493185468551105139838918934885933199171675485458764947448396398148377264719899178816264794201203010761590966316556993004906455610747313938557938674360873000045361001428704568042482392172458283196258552070700493397351769612391301529573902829426884932055989214593283046769938708457693268820401994640809147863040659001983728722286392972118160208328784795488776249150141820036569105927844197443768931661232896361799378147649320881600888270839889818069844915436000639886061677320644471351085009904294704979262124066921467208967395668002091210767164060417451947714034229884324500261768740802410277717721265655075389562386477315888147242599880902813044122214616246984201157340241065406672188281946393210866717638476818150262895832690818598533160451805659901372414846524689234881629907150005218211923107793770238125259549307260981048700004426615740105109413183408113165569653831804805478152261452102190441973653374227943416209410254807974949462901924261367637529564159839073788408266240276124638969998666216365532580664783326411041497323005492033068875717830399843369407967160931373096641967449177937021584454751260978609854510080535142967963661470661004316427585684435975823157653794307542803858948482077743485640569606704519109140801164297623422553054924797500031726543486455311496064156558658161550796152370616069811093725985534582134393995309852386740945025528382183035504155798170620318109638000058151789086574607125851141636308778123751736186859239932570765930654068368138735864100021981453049275103708300196854867341052589410524366263888843476412891213737292080659667580766863763620356499121416287976176163968682376788698138594831037178667785317468347916162076614255200334948430443633080693129055521437139751102215331433839236618651167859028888208262667060097397583635785817353908034236787212058993123686688595379405558341789000199819885721226462835197656709681749378895944674351395926159089487386303115321875618366321549835764279154129956419670503350430798236765657886717760588568511747949172890940229124862670103854517393827701247033926776472307276467587952459738561767424207451873191731571744944418092328343664609096600291634995443196210046984469946911481395113005085563295232348340620239755196021168361739852175627826969803194595085443348885895417999356602906923735116464332070952474046156205290565950340803930799718614760141392456285362771378688638961836073595027385982530930912201851837958835580985904271524651055708925308259466134788037596285491904567346309851651098931079650879742660093139102883564535581180571329111421566776196304446440307360895412861048592824022956372906239552605684979641485412672219041308183717053255783664479768382653801333362826128892981976509243394061444995398091785800563850332208730256095329757499100860734741355277330144420385996899864510344934397607313961038417296517238863408013874038863240882690845364872540915512048338141190497525778695526195821301069364852446507070053941828852725286405157160490062547731413085043796623818131339404091394304779630720527446670182805304048234761802028781942384524780059397989281046388776587624260616170525636999520384469564322379387602377932060194090383895990037254734139908318474076420833902006549168730824124262296521742980589907696711252452875083799802082690905650145762264655227109533057168410094977020817301364381845932254733693698502629723150780999362311904594923606336179910202633783816690628553500642997224859546692973930777531353018237904921836501896020160253668510730220667258184007643207643387152448080195625510506551188893789330140578943755351001562132477775462615582834846993468813919593261378659905041156147573658977901163794273829886545312156528949907107331457870083095496670061264257969089610561876230224050188463068727303938476477925879021397723231877569013804247897213759823878429968909008930903539469833754447553119857677276538488799260900302908206004944447257785147235549871409487029967389823512942788942267087001794205414536067343150892239758475849290777836649744945202752458854743658205460603999256423700906328299043702227300717435802143265507958490003524913186165794208128337680385191770227846353183242034368374119365358480839719378316546902907293575755412131371841767781008061799779018472042867279003132408410660963433877701372866039142367979739210808951870897937907400828545433229762534553408473548157050840844998856074550141334603474169879780874668037732860373975600089353921198887905373304531266539361272874252275930271138973082768824846394948888639220537462090419872399572765573597086967400915828858445252765828753694561278102842808410813298415440578249406455877946034936844522055975694709279909551113935786134073085625054202102737780181656374014308579304218117628197067394075758853469315971892998682205515751454989288643835531679442151519779216648818451779429354459195766666523629573159929169094259490626503303415638407221240421737236712717309801891445096396489799288010782769261473619930740040934143706883376972509692489150075735844750698219078941201118046249429329169260256105726185883055706139742978448638066826545278355826991375014665956195837976272687834992652622947040586296091965963274051205979762088841543249202678162054516741105608321041968922813960094867738045229396946694398749401126669842130950671068569174745563241259744373478402585638339651171426988699098020763944594910517345190924459406652382356178709733491391370436924007210479080040730232930188732649853087245081230433808964635670939042027281544617082479141689451052155637034863518803069243828033005985725031351799401677590890320101820833526276172066758333080412395323161959574781370025338921299200630473182355583589691198211748683472504985792383803444678890590032507056737385461935849514690434950548602974186747212731161397586502314895164220775977940996202927922349948287559532472605260015956251738053321664449483788733394631794688464983364768561429516686296396396095687751648577823096792406091704643148139855612399544812976196613027494724656555706668975367858828251907433955079745791874400822673136942817376634095056750388086803810801980047801132483950023933441048157061300668981103244184940888236393582525483752792713386821770021081113381090591262228500844887475248399914646108115588542610948945614137678601880713299405214321910592590817602389309599581769598628784792629895835839773412648946939841784393141757396524903040701497133324192927551295620047855735672803172605288773104178151552481811938629561665820621490688440608655262361807758763315460295628636517001302401765576895876779381351031089680286039639790037515662347483938540748984891461415834120833900431571642573172291099183958315504614286642306246279319946363666088863696032969438864370737761787860203760968966219222097313605463444797122780685377947531433141092012385386521512399075378085890618178179840168638292164858955572898379384758050883895819513893350982950586892044017103969598726668364579600046501827831267318076005251399512710113015635258188620361423868843617521995878294778962220313544268300773304754581665557685245843723329843546813300795200831470672873138953157664125852448971847229496484618597865040553430762050379887399693438539261758934491043637543429800493141295458913814178734432947300913570355980421551373158824067356635324983562056915094129723897364363546699527023510545537207481888739512970722710525864516714422089182323129556779817734434789429172907316986317955312729438617110708406766252960018616098460489491576801663759642691438760691665884955442322727734919762480105954279018318563956117196712978724334649668521820053729759990346722881977141615514915708550214629944677150754472943956141926912911588870645434127807432787135473393018202997024293243067234208313954550039756976254744593368395152470872457673982363807546542055736062816149314602891114852714794755944193534023969993565985639593834700195451058847353746742613731011045369100097832417890736758145944650523019736105696602615480376897671186640597971186979873477280372477808851692143636484644968515145654417261103964641824640657831039143716755630834134850394700960334908409365095030384541815206713491580159212352315913633181610297124161936675754382695233667898619557677735012297262878056868362848479924204357611984442188154136536939779770341464890638828691991287421313937087093697596919018869668028671089524717802454541301357997939231931105496995135328481138782959877187499848782253571677671505066504091921008401546654578256104434642911421858835383787193114749983370678082112193803417531406537564267621873182301700394095860841319595010149301462222998460838314088880570792891421014691172074220066878779783941768982433025539811505809922087128709609940514487528268162152046075872747512115734523134565348446424249418426644985826457661587799032575239344111373516498558969190774015938045306774302263452353994795505390634299634857467660004093899121140714807624583697932039921790155146129206076908927786250107275119116213914472350174704249843080755430099886359581928185038301169408909211103424669313805448513708624523683747449501198166185423751195442617069419280629911129882025745966328440901995314435822069453782630993894982281028878628685905522412961810888855539584434043543475541897970525980059940458639838015076656341219205684554786056102984870315822146713997556896787705368389059613958065474247555070698676479499164516325344195399714917039708946571106882440350600786236752463703744078690104413536835557204268625233558346665568001442595740237030739685381723383367125364262554447591245063188928399024447211902952083270221738922847140614988417932604353500567462163913523187210109282721054267993774760944532526031703341313148831561162386695214107273609644691833667377423442049654010807639175019467301423666677358578990230063105872060087681257472586373742944730816100929001393415398320862328169394862219085924078146770229188509709015736063749612985949756818807777560512653997384164615028530750089769276173087853654691275055167314247157827066672593764426007996101964671932411826813713373034721983981718525935722799991025507186695976708107566494430782346373028551159146014298081129063782970611040775741127553114453005865049351629127426755350828995080226362445940495083029520694032929248210757566375024515947109387247852167639627146931366014865961195852994352482158505196115213476428999218386215985700572567927791712565367428523469958489082786234411791045800521215647126825165617298066568574946268449523724750640855924976135274529295971172656946003129006332209131644186436362853691557075347372978015172686421857805813554544562242830368831934205608127413242773085834104887008618432202531873824017974073555318093601098799925155269315341046914454293011166115596707699534061605279331284513007972946747311790030053422219746083070913494522283958985373992126293245852092624155369987968182603770508182430779229755150246329026813627963292083377668471372569161035811483381778705833306988573724759631377893108182019926862912208648464839081526211955131488616178118270477695712752913511294842121095473606062042843891293203350304117562601662913150449725347582006438135392831346065274974929569531518553537931587487906582612067693769498897019184181774640215718973454531974880824380054415059699004150177130410122582503000784262293274167769704808735287944333602892249473031306589571480340974726901477932078245510424644925742336787530985669871750214809418691397270439815799152259223880489130934668562599972521409500981412371898643437019704964586625287773545687028260870255087177690441715552442843655725481794363510497023670176782872995298986838400776212724322608445911138616513198425009704128412925944834181271193481715833171532923996141350137751242897707148965363155554572778195112111268828918324040799328659464621579492217892832343390082169413187746203536562251288510673476343654072621963991896972511940970112234903562676058221847154102939352223139868427402289890972529782749815738991110881748183742473567986147266563385237350580335013647801120881154360233508622630882030862465487446602813675963918477036327837796669387345615104977082691449903841636621967058581470833005611691109731884823681411114312526031924219350451061211481157507723694370432563581823875445868781931488265348642860926899475029373611184836306709747930841154310443914724468385002050870856312658072654071645860052121361004270137450212938767386759323756447499157175272385760779004948863947846093001135174462631653532495043451077655520163506886992354230775003320466995016943267553892136188266457586517248904504936512793387064681395203072355697603524803930518272821149087077001954224613352591265477389521320692459049390359041454281164992901659806064380982302543910459234040224787103813384756182243984996202280452521032102125794695278919502407499051630520573720207266055031930374180123684565741450371986832717102273714952442001337499344124090881634849621826353536401425547311619073639465615697484258693026322762710012562873845052671218192345929372324116152029411107542826106146696789530666144986780888418009216054333213531326019237666730371364125737555303051994705544148304409020603797120783415802880122786436777370112097968421704089628880046969164069333067750700368776759212056688578955064401127196527199100660208139668506304982883423176606561290557421266351849126333987463933380269837095141958674628297379090060917905931983616627745986058376145448679621682988342317219962302843373702234219009349139798630489032120117589203039733774851218391300314270305588220732547309754286425591406460187888896601450863482639170073081396697968324934875773052172036316009319380887581305004827241926133026355714401029421311648127690046061265161373965219819524431886065942520887362136052878139430472616563791567785903141978689323676091833697668035886955374875873640854556546452724696333081705404187151375311441597444228445911266140577360639083425005602842333415090041698966705774151291305542195284857112507009893895580802414677938776375318621859311631144755462253065810558355001275127357774409832974687004332630183057372757832809953961009015274366516173866058230349621374253902567624218850820713916018020041988683810413011814768333374085312944430820245806190759317134235023337924112592024270215707084211047482275454140101030589025867346910673972323768170003988737756200480136130647781135531150760577014806597076342355735078790589958513748187022127373483453107750874537868312835752757397955716996746543928893540208909026872803940370469739343933924167825783896680671899361845020259567900616560245943526324618773041194608014577980508693888629529742692425705072980832983781635352803638603078999153336562051536435752130508806746087727087420766923093931228038416416489756973741889854989046368025953059988288450856915624752846999824781797448606995039815474140271659071042654834619836304057137440025144198209719096687579693904951503643224213397861731015358986501369223140114212401021529514183092772836974435137716632815410126131825926896298794485528875249625962324131569530217240359258339718784791780662183721126555627095280337205328634387119843508208296307509136704002344510165682770045787388574548774007038743823923749850347376000849906131370284695566018687811039369492664559964320425426386710330733875924691717052305671105702552917589926781753462073153239560906105886602987436057049271018349466990767741371116805702839606396369805029603188664003652323071822214900634279949941679052923089212206663829914654183287901191568786798741008424964999121415370829758419119286650929579483210569829023262480216803733487619536882681884399998532123730992643573295393093733205205713849904856374245891302590438030504840426160151095474149110240246150499243346734163955240097131214457104857042024872632153594851880289119234772709264462870981024458952434617181467669010967847757400334682017651664086521324312096154393224739208308014325898553517270671653711030103398587866205741673470536888208218450597444732165716435570656931277631920842109541339983245559493882874042396922395265796763593118871779075663687340325388921569550774846104865446752421255890309087291523552096905292738803916881997129292818699351082154568976741510642351843050904704423564426196126531936686626564655202115737920742125872527389022559738837675982101931945965323899614592186120951580419627643549815587068590953135494450581864098846324934820548749419316043827338746257032225320793602393182042407708153373565782309929872066356869562103892298016382243416589720245704185461906962664871576752615050415611122180261287085935077490254045338954989454310117337554317681410694050323337476197239024555901470418105320547213802430257085775334698977792895970433998417497383292438408651524271815415488650383960381820944458895473232127733125795471578381401277457683704071696387208605361584030447288679760617290505151538071545233096821551712258959937732911361468265207491481386859988822437802726743181101280990653362081666515908643138635060607470735183554448531356993360476599979844350630342679087777525273677568322592440552183088532114264244909435462657386192387655702057894370596698753398001080683767631515303837061527968633429036761952753667470402403111323408334444517124840146817556528685152076839038775870912524717875352007459607768333585675961092846408257889908347456181590626969230519632611248567297279616841808003189871954022997186720786160433536324880656260851963915810426037841772966627725557050309922604887170958536144207505284122599200718040944735050747876771456875179840285874901480914110050098308171436498496827297237815963147429740205672641329974028772019704645529165796066762801053638806677957525242006228836116282334483415452505721111774507534076229226990288027446662857774422140343140918837488752735016720553096358490247021251762322854868982743545767371465171881982507935106126617636334300691459328209552494834663043470483771708402176020065456360681063102024435463778833889353777778095289971568663057097225125979539643154526668343079071118432406714287159741544991084459845154023461378654058109720540723486447247295509781287086741653543853030930239614725256042642804320313105482376909450794931283979203605574758121769085079575082605831229254802056754228073990887044960386387139749204554287199846333505710552847972109978442168615421220150641514557556560883863871935608127587608395382620054388146364336552590378803241975619756758101347223773264712869825809214850975627153495863108655511259580011297541151493645806573676359298921783206787400549078326995405537189841383842274848764423198223663446596988017457003276201613695115791550377631365825737221663494097386504830858895542130934043139620578267288703342369613906293044628996989916604681552136478845588211413600656271479203656439174772044022548079778374278793971015412192255351747970485757307237776874207533509447100063498983147719403997871616771140926863450562536221751393794520369450755228009446554969553857865413653707602787342758602517652495534848758870043813335681627266964669929621096964274213943555435405844655889348646333400315509359674617407947741952623144622375736014024511357432072632476892712344478614573280799149467804387668132697728272566959276297137195650983468917157413253900891358417020600990288538376029374560439447737289157902180108033128576257105481952038368484888021881943986456992203876530657218979222023499825182497527611111481090356145313898565252964382604052359642129167317379148293146977026754593928151704173123895402220963052808784206164465988117333707301670287522597138322107980796438604020140357222529580213330705348806858696550462806124074608882344018242009954993243145506419546077437890510689466683059343707582473959183452656867534235095790493055991266769628075338534585219397412945119680557977305138057588422118820445899467986295337132443637030358778158330461666418326916397669357163644889102017903917042600186694496200523876470699651942321814996232041478928943771854776063507936926827402152493064941564515431051540643786973770679701737395333419314662221048860639618721003793017246178201185023710028268301273627271696664622960585883202982210670273783787664882127581042993176642572396834351952377146816551874582302371740262206021815279137393733848138138634382097223801585668086691561050394612494091846158512378623725204627930393171903231423289080031622459013364110858314944425568800563707598576983960968631777470551700746596438260841657016667900000754729108215549203660663142230417726189469525187346569115529815415269143572090100544620634378736994060986318743182470677174605653748454913382249612925122262158646343757790962798469386401596385689497632758471667736113115394133799935690650261746423050743585588336963692986067865657778150593610825175541748991765837498030822070312410970895541243906447206357178942536408462618512290399900870408008600864093112041782009667674212781358368877042518291200955999409708670488066027242430937138842109051480579322309331899915077049168290455089853422349472173943468388993784646080169459659012061422127926596076833346412664599496461127123415130403981148418709834352426983031472232267936384036875182661906161855762980289108006843831246294794143863815974501314477360014431154248836587403958506437252450611802785795407069444944568793557596779194233604293496985845770790365964362266045330225211714501265674964850001842493023443078861578652324257481517059490994375659849583029127124457661921729126675119545603047861243065485108088832318484770495115086658449953608204150605944271543806244639794839583558523415259392249362554571866862077390808755391841979120443644619073800163224737500856459897428192988791020233420798853011139558068003763089952414189068524089699093132108821941945300518898284661050679628272398926745356379932144577924322860856649108205770350854865202217706659114561066177012243419025651211007153989817240117966718941133374612577647557427876993531476404365305797602026337245199741252819808590462611423602099789648821422013017103314743409204646956435994111245471901974934472709852685151462397909958058294876292320481314350764762192134419097899196374201663429521513158770217226472003025310389922682630630548600951225621878522547337425631627944413256359531852484351465747816463125720894825888804798025541524908335435977416039174714998890388365410761388186449525949039501975012957155585113656281865674254731950946684129650246093317707663424073679659124471599952271908911998089810672554865246119707682467808886265011493438060718775261013221437725541467539078417534989514482133942997949125203298741453053111536016458709609848250336348386207470774514845605606156727313993456110600522293189110412692374953497596270033571300750020340378061665392316194804287182410569090469257469655293312802698476664288183585407001100958305092249762783745376527674586867268891795339128048962698027426749321797676956175670465862574688685415846001868077672178968534950296662802528656467169041033777725321610149383879479088391329784838471242099043122706298242835484853918414049166366279833472363379359936732100259244153593630163357936781727539504893118363949849359547779872077821504804942666720086499811945019482372480203019969617858342834027385358981959872005465696991216835768421375846875422885911782757826010084573472152737706750530130075334896037792341232563576207855136767129814625236139945936052388460906113523771767099145629894236537907333633389003767752540205407183992815031952994698825420038839249214417125065349152648506124185861816454689321498436555928613408293423047136048283366539613878956637450520483638232226310861070626419122494551478929013234588397659520399098850548412764457003347205314098958875705770874381805122671691600087563105785480732818429175607939912423964923634549639612786280455366828794528183702276334042490468002782689306054667130097945582503039676022581645012198835011746365008973403513135949149366494607813857584487847369554754862028845730421914631237154288616250928906687805295874170089204448249107088924380004357784222351305758818598806645034669900013319820068119592988390232116309230399382424521669546563898186387300955147158570149852786060348829517067542766647035646168948869540853617398703388251242895111642603198391436048607636727454102447123700216989091938307316489555957921594138774229690375104725556049712520053627327502128219273743527784311944420637397691283205951084012922353435284037458168074320835989987551468271515742890790174413305406518270851351074708759699281762296479496721129809489987973507035978086296208534610016917706752537797141290742099126016150025388696017063750668111394485173220768798145995834317546840096378750145983728395592402923475375833649572003589756138631674634835329170713967860963614460362229820870722734509995129542337615435373540845724946426690019202377174551510687737240104767502911279592433944925734006492385337864309785302459005212466104457844249525885233517417073447400024868048196731226015175591662602398531675214605954377679222920578226275458360643548001001830316325396016183443515817603736602719240684956985943906513785616338113204179560285980898255038998058329285364988003196601978015460935184891972414664761780542159142628315642668180908390185309052990957154462086702316820310262567613024955044691191091722018938536798068171550649201098282665083127731032745529337099465722547372799776132146996452671945015019497124905871902727008845271808625919721830295527617557777913152697170710836936539712796368228896820829917333592360089876804766443799611520473738188943834700145963480629388828600193372526855139670420704446279359783100278787574096212602367855750431375198203461058396986710920066758707350145719498562307539651627757011261390783370640435703819984544540797714552497617264878511301009031841096854871805672479996681687006618667469001399046814845081905755899632861006952989234332385438128081962966356826059599590568816312261062829420225213877589178797324778153845163531299709685001577275296895338756461210390576525310685898132652262402288393084407208400461335679321664982556996537779369741819179883889798594063857658088720990015223064253967657952752716505702818298532089005749796440532901530658409285801440565759523776155291367431082651175723574674038020127572930601565160069239944173920107414525145620423272631085657249154273831636650618866438405824860774569207557430605885645591234879628740643487535404811994936470208482861214236284272935814033611926246588805834289574829330728985357421711445749055331388830785767490232608384889688209068562301214127760564033285241984391650120700243402869779720464378688157601035471680882334800068840977974119916106404422580001114982679791022279060315544906607356353734679000221100279149539677133785179199596920079834379249479015964682612296123103457363111621161705163352367996101530351690831655299952983465431748602409082875292605643135673317257010988695444011240661691196808567248740633660642861614626648543977867256223977539188462567232460003733550317957508065199065918733829265715409394976333890677325024267163582255810114833376424183544662785722610277743342581491480849547569116643054885476881841297587797215744143757698581109694186947803712301950357394378831695364516451058893233126349384525547781141194156508049094324875045697849570323931393685507718368092115808774806533630558573993712988622700804858305196812195172176728267232013636078797419093496820630830549592036617485582242192931414711012639593195273642996699347571617395036241015762141152205224480762686159458636528621458018024131297973277478712790823406837023029978575102269835894848304563784901741105207377398293060699535712278569950776344913383847036588929989933457031267050255707078700270545644255051013264524029247077181190641658400943738430001614686430465013848274234665134901364408759297925183199439079807308816843835074612090874985502396225702427963099867270951801903136939134292462382934136519219972771709749340606612483972957414667416045979432367467807991447050285205548004373709570671053213672333510586799787915542861192338042827773874064074504284401724617766024665570421450929106134167534027870453459911041247193782835870567548516300053067629428987950982920866961985632853085615070757392037016553496272979704500721922340474396381612787280681668170762015420999764837335996781490474309868694446589517066795259682499519330187462387894507543689744479794464459154796514255135400355609396657625876864870630210682161477015521939028353065048534651260529153266515477146570304983935564453186479550584287098406084168115771577079238095126405597019461609954160559117755945187384173526435975312109504581671195430141940156737815416166289493988090901603279367167274714603239854519024598248176075035070571299102698544231032070847743971681383750671775218939448211591049733747384173964541434595214016820340826714257949025627200391090619923533267447503941786203687209533896126230807289804632562487634394565471104050276322453608541562682724773745661709293235013036279999142400318294728121222892985781568106117709618403802293849278164914229167995599435043408100532763315282224477986640014572678058005937138445822586079067817159750881252823826620637466310874318273838463954997583292643807610378628058925841483559468441030208939887008852570404191567555200224912596212268386066165129533107434977387488582894842486619845956189228288937746999833562511142483464008169361015771899296393330378815396037845552088958245134974970861107350170916468649978579694195998952055305904204136950265028510279411737506559369907239540393187852765673726725687206183986038226176495489625497925367685665127914838020247533159689650815690135875401382528673924960499957019626418095272094609774269620891802854637709211568365793499545780821215731565066407120167296550727878553671396877425795872008184666947183647665301303936027327017120908763316469258132747049442192267942515564513403968056879392978655628703736666725269971829446226814794335404293753126841414009064552635702338255928486096310795105596802521031951756934621714223397501284689979922245291220783245213351047312727307919601209740693900627849397300176992469655035468835842346985836046975530459475336684078102200449974232482181464758325296243514116013508248143748138969732641116927486505465945461319615946665734282395275808902387833064071742439450740770323479240102469248470772723844796326488574800245697416087578224420984315847204638724754612776186601691541298401020982847723966683584365658990956759549235725111611856955179614177992889433755389683308751398678631151410380533668629634344075498291312426645641915491784814123957884162444952973357716326158953732996415884171486390683965182363482960009186279229365597588062032501328245679478688853569271677313379896043386083036688345873878134580039869925967163146159937854945751012979517681197686799906911972261732562111879949640725057394037964880952603463184771568207598094475602586890710534105468815946094263836577789442279376149614976929904033625100333763378650837071752812298254477349889621632385300084904264655957431763701162836339041758560949177715965189417498897993079043779031233718518281985027406793460659231651635025013352972836033201828858042258294351569218368117063742899130771825896322973433129766005681862258930983604643028962577619912895123331131448546656299871606570834547070957139571244485848633002472616130835243827287914420400448551455717615527895219022216947817726531182966351024936682340697399594004269835360754256068468865915680058572839641343798907044675103336735180158861129012707135841438758407966696838446351276021296726492273485740048215096206542147446580273515616011407407922296308414605640505224831204947156404117074457455796995877135599324616614969175370521652035401421732931736519204445211241850813631272464608779602576544142710797699614759157623252304526019460790299082538489397834344149280996897388460708974000564681814346752922276631610642553902233647612923790208995575299669840738889983818454427790978127294624251597310243760296371032861419169568341692751840253219984259679627757969936593506374890723431156064329828308209549571979717035075437339646172108490686566736049128430603984248760591789661102968949831299844099204826151770565104894720455752769813167109147565570788389076835966052050941471351506568120577286260589010148130555046208636187041818028334131453224634022599243263393544628072108795498761107516505150217146551789209491427895655889436117234240764467249368421791956371755794617534095854173253844167141032877936329054609911380395008144330942885271300012310420285446702353259156845062070540100674944844711029026706998476636662992847578741410151147541005449698212138933675003018769659407962912518428536691638847877662657379245712781751056456624484244209573383234110492224774272404456586366003921868285040545103609254680820361874548448793014455417397828466250552268681121125753426013697303288124423925954499015782601585218205026935897552881467200440661320707347746489000603614532228403332540597282830008573915827600914448068556835186202338555131396489974393416494608663635853861674637158862639192513220390119677803233407572874598107127661780516443811072518403264873132882231930047336227323300162087599255380809711943745219526063557278698904424781656653069810905757496761721436389673543422310894686349366510734882232621633608602715198258825082984530057575474421525049395471949739020966222131167505948686911238828779191089500275781243173368004230265389117107687380057815071949102567291598849637280545999624795917505516628926849605598641219878074761503947540643901819671001103253209108370943311074345998527695398938304777406739960170908839460976238423396676797887456349425167757214026674363793770591452741377038673470224336684386967431054854183774767853491396531092476892628453790646937178158598773287774238384468067376150074677544965237023095797950465110185027996842183133203591922145030056756643379072939215350050897271288653419013252953651408250194494791980019694393795863613000678463413856383980133869313136376107372915425051044757063751239071920969290482518310056829454331538694321378652452308351982684563421326023324968982505385935015207993045019377646094843387968368074782661279845258925274744351894867584892247223608068361852447813136356786777951680540038392110555951400016528047424240022063579292567631252283049327310765420927790915084497129894248493648568856896166080033950322667438129214841572381057192468254573963126674105112217415104568578926803851083640115794719976441645017688326702239008190299080391055316132149134317651420939061407968092310731500728827648737245185623585893198204362802867768086536388644861394631088315797881388109358875917175862686758062402673656566599864028134781539480364276794700212607482755960059662357382369436466113964084680712615412438508545283824641346825187936714674789799481874643100957743685899813638780624061949901642028592166126504509428159761762773436749887297634367793488526834878361653162447641082877547804637831500143667529986559771606411560256348918944132098766154691200244904603466463394884396644948304998651690973199751442546251486449599823879693930062452790362066052037233439252358499264568479599456469635968697204162148318902155350579673698301033925801923043878949833662137511103098398546377030343173716285360470098885890771700847745590492529157931925412196049109593093351307724223532041251561260507304704777156493117981915423281473018014971807458150395337389671138580943466888432136502637970412076015911455942158570114297218908997733562872014113746018422165867917288390839028204419544851050090925306374089273754579415336735893160002359025018424398746979289953085020310872875158245489520991318880673750654461082422782616545944801739880639749969945352440587536397077323284770957885197115860317225147137807373633777261088835689749611576306261013411118716533739111231050857380592404807407504950631349633067679084607805771007937712495993571696683891932754002836865124721573453671944379736396939023754341344202073703524326053270628348557033438272965532343355285262533084481969585376046781659123166033018736728756413123150253345039088987363495537418439446057050885383053700195022371515212486221684820094827708738061498312401866820178774093664233213052772706376707355516638030308036114627445730298312019898878366357626846229342606919350533524208169392619338557900118943698687082138045865519384905612173027753911258587004026597299448875817017516163295083561844826398676334701388316415924466245864561932791088287827969412614396509791638583106549231601309895177161758186926604074114989767262716410899967905305998644728331893657753021686011320910053157403075126833968163326278387286862995418332355426207609130039781856816813386377153029718688811765982114914157001674425645055470090397951000787645028238476902917059141350613118276160100562143833691154104959722167181038505852576303059163632220057311331232450010862590295847070141794075979077490510288955128006222169114795474747784123953946300180737964379849166542338193917204315234561336984174662009100484050909594102853188182792723210907665057722411371677646667961079855952274361520672659649382927241672142380829306993730481655887133583615720363802247551912322460653395845453108054146902525163262967410873828738986183296537993301527895309702482173476007644247200179779594378548150581796871503873900477294426324809214510526646966275218592263194503585939443510363080724473640296557594347578678311449660041677571999371637951305395757859247270420034453209271921694309928918287989177100131486592222068981300359205263689805244952681049325816320056714477253333483447550667581129779788703374834526299674393963590047659732593155431309595783686740091219168880425129531820443534549875293940681858411796204516439135364332212549154198667351343188040198343040097667675249185381154383874806676583160519912301397562220630596443304475443237960947351466046556174935139109806304483768781657090847162638106080095581815333325262403682097282843202118196600163038569908102107782839764398823527899653859367763451428860799137765446863564447467730912155055839639641577998620421059335232321287251575167962465077902130788417904859997525121984179511119542674249615428034143134096180721171220374397586784310221745002831285878509505013896929789458662468931597348938325683942716482183328507519963057930745696990803338028542370877409261967052040740725783517844804735055019261091474880569628431116616249817158053677218438194605593299472759393201853633766251579126542045280151371011302266891529633338912207143961908061404218905401352680215694576548391448745588467142443220895473862273259947917256877755784669690150576080166388680848076905232462860428413314675796517549759177627824137216600583152025555746859665018727940622268295984192592026887739464574371458891003385923551669553916140835352936852151327877617164939261516768269347299161028399004423063395816593859482492982895876500093131084506602126437790469275752772925414759852900067433288887389333829650685811607538406097857958622224122430722392597110539052501005510357237080036922143935413027914243029785531036743536491377222968195378734697730367719221215754893050385177295436667400084298890638086290600038290204710243342631471116386125345280014469888338693071392620303800005566395342278271607521508478181665472569933220278472265924518598437406953810316798726995220758673735756793136680231174671664324396752669369804929298251194214911056437737300758935695725240209178626743709725274606876441408645629183752490921260984994976653788185824280179402071408918314102472557628020247240220794707878102258844912736376409037247586953464480439633983720337686438986185185055836716613419902378034683199757618137804357210787803564907376621588457349979572940326933747385480933312232542996552263306328783374034122265803343453156760286386631192632770668768718687002353396982455222343449539520473255149013607249442933846150180772324259756479023627935522912213692742537144276526351535758464286144196936013180040332584438534604824812094835397112232152135531796815622472433195779842042801383449125783205749487602893563814850812158399974499116674311031047918454195172980756415809005993755194222424514413175117968547284661507026319134808538368789074136770042160783977729053799437297269426612587076819760774989729166015779959078127257652306358168332850856015822607741770456835258117139379901396530963665756999640314455126173169280369508362491460903911494203939465503389426932519454148029254392940046377834072517245240352180334406527728640114569015283041894042363439619649428699588228763689642089922731888770069320739603573030476639365243164871468869103781453747639673761012007680993683546134994796909950182348907112309119618402424061152717190764422718065223469267146389161921860688014149208420769065017683249096318378407938083337126083032859573106701874858403377146428718437144872355715976420810323243693811441160303729962507889004871705256125924933952597163999090912773802459232236673677567019272623279913555719120571144462407409640416547406855712593604958234838809978920224378169504635115029249348790614622290515550810072566965371035850066170993813636475600189795979618941266367179359217117553081004355684654753585017619088752240868459866935388290837421522437857948564837751885319383368130436579408767569287392776343883941741587978184543970720054298494098236119490659114917092041109642703108472133084828094950731611182286417055040683875721899240197861795697936932778261118412705493116364200350868198110433719821457822835869145241785176300263093414345918546429080705820063906532332830970398851623994843781435921507328622075541033910001334541686197101342087447279936012947494061968586017362388275105131308476354061851507022118722926518960807402570285136011915192153106816568197679331485241322916344586763440329987678063850568008822821317060217579968761594660270956559225452467438557475437642681011384737842432717211040895059268969449887124777976158662839689006527887967966107389187326365035486591457859468309846689666530830448380509134051444569221275540067985873518605407362857897070648139116926596793591388080812103465507260684142686384592820439825037543189540285784104246436568116842122322693981311510263439241720813726152868234968044845655825761576729448247663618549768141709184356084876245860516759361791449546910334744763894233565367227223669615650873798037661097032730472000007887512711756278649186264457676367692660795910419343363262116806760416093679811691295321840341776214817641600082695246118136161350550315584138398264988007940315861844674410693670190805258238588041904255395526233207871281634853370069697526632401652100412985061882925545517605526368997648777380424955367866451447098168541241720384068267570335599295000841977404719812730987156401547929092156131891435676826046486890961341052651038559956209553982769419026230183063677894770510045650864306787783451223970005582184910490364469163151882203694137505097721633812826294653880103321337442033891137648998214521104836236790116391920885492294771738877609278649151926863578594571846193882599231746125340980944983679650755776939005360150563029533561264599730394806889356083825949958923330284102608824862654911744441227378121712801549807134091789081857494846951536832736504050142111162624755427576335588081707710305666139997288647780489609473927727396527296680224728369049910107510119551707774812532330909281133371324097021139638445934765948601726707307662831451087020784470647569865022013210299023801773756141377669857851444682936017143688124572736722984680282052770949876936739550212594133662025968216849422818752100868692524810360854121947177546334343729272322899275657979537897356891976071095166224795072603300938848286434205423202356637306180977307611547329309893481690041505661606469709053422177369823727388047838763151031518170673595750005636793130628917022271507867577757096324027134970284593242900133329468233657327213338167561120262780763200553793639996766141682139479530265124707098471519142076279758099488645541757454120855546989723491859330671158591034124523897178164216329029208695650820768875385169932407511530433120227978230747587838857997098904022902976321681185795583321935859400747499587985540037237806852068734561289001118303470969413025507992916095958105081579022009641237535155814818325973591730328069254638610102530579349831081439177038115218041553108985514256218273041193668928226269512667481050591265371924087707652373527593146299901953658874794539488281923215651677928401126989488041052766219540726679051588018474981936341607722399521136156952339417884950548871116141191005026268143740745327408181637499494475380825823341273866807847764806105438725727989973442858825155555278224251532475881276299652005201908086050241587476195282980803517523023897476284245836410992523053893281479844984926114718020805151643073570945459653316561288361095844395772872808755692885645109392211436564454424330363320591197311962628808891097341125109226435557896686101025570992206088616512214078145477699460648488812988194370747657741979554481938540838661044398589268007295100961438499082465206030967644574829813776922794259058924573473611171090692761385842894367685213212558334631887923706208492088504482552612649782824741199064087757570838351086547252176828568663903711676122185332982494274891787253293218529039111306125972461828877528786925431522221364281962118975568369136824230536019072937766853403982563009046829735331365188866301057539558400798239498749293075177645941683267519237411772818390515915169803644474065638557729935375487850196548511419465311826172345195148834681790123032724420324041294568118597429204185258387019795931623371095904363973784231469601238725656782658742056346516763847442196377175049049900459051260135699483145988387823563478377895771540973085933039523989131826494226235315751028504663621487988974287508901628538031151251026199896054886360589264096636736777039351723596124800362023471046723551153980359148053172165540874202044075624741161313341945388461252478267054139112407149444048567842392557098987483055880719137020973294101473142805336731561046878663854666706308036172162318882906411576386159236434314960863808715343605412629788787824833082311950702100723763102131515528909674729502580112156643308969508559462121673580166497919672847785446353886035967632623823824113765586240585615400177411123424976242138910104587763839907211462017749012892526596201930009190822424423143584782310498300847747641917039312628032823139747670252172915534177411366881201558669293015397529370174787092640957123904490406026372801585431297639473122360694355284631536306091702728975895158598972020462097576431292156987244797470809862653680678421330473158400233543612897107968416947767916257054301702297914673516825890699721098455515882822761457436755568923532943205289627385423631547052206538520317020931932294846115708959267091239778933990663960445524148935834054262788409834122077024635646348996362107481252018226886279828271401236438790516978612064526490794783104382519689024962516116873078721354552135680410385780358546089272486562189283299177742211503014165479204094193205479254687620182787179020479963803488594182074460354831070184882141106734170796843974857894261651092364769351116277134978919156815117852603980698409551963745712607083916078741886291095267455638341597700233702929359118091623877589663501125541103006698035280755883579643025861138333093221235298017994897996635436316392864753999946703319269097009063329210404602996172440519873725514758016071412132597396856989400623475451273061536250370351346912444814852978596820058982337393485262742191382776537436088887913385466249899387162680164353378894004933921749046833868337400560036752790850805008618525575463894297807030603886365604246348675348644770082303754571234772903101993803105576549587443274212017802784592529151461711139300030626610757612237877721153798722003158669155120672597985715518915005914875004892985366657493895217239003945229511479334197387384019994481359542638945786663463269947180187338729721551183516658060173585383838172259067581159078879034066925988201290784362755776452680240439569985516170204281779826249502000241209253405704491338992010213184026231305325663708581222776452573269805014364824695202638293376765912406874044676480606959949068526947421543707076531876901919069454564136794193449206774741165761908592719973118025278716212971570158226419698394345905126203654421582489730089141701553266915759832759567571135599939499489337922647633608098989564315755629467824657155898280731898523200200744848501580832751343109145371796780662915693508384528511790679000186692886891643060346816414187345806184661260337802108490977104842192653406782990930650908560333630776690151741908710062279462239658506572617999472579029834298941376199559670112823762625941471813869989811168715837393134741029322190435548228799485079745638610709511251007443255364060142266461838537175643333859307565100298144951420910929913086055867671611440795481568310209896571777013689291894837817734106030518817575548873493096216595939448814188111394478820644733572398581197629217584133167717005944000437905505830342355677004510393472123350628256723323389398716677616800676209295670757274997918046686583858518924191776115482382579157419510984721669235002103717378413865231060868092859111787909326567860416416171337216497500811418464816505392045801623517363357462833250669162176168238355122166746493279253877784824706683414468175381441354751685981464543999807723626273980344240285897395165979252114607692369312505251561335026505998845100322686295093421185755213279017678353205147341478970382115504423438777777546083051141455821149518034038022393970757792556514555482330366174395773417170134251752399943220347709292556260727148969875301952339512323013965109251814660582458297699362661338519758232620690164020783825707193493709202536367637028708026246700292708004201065851535085599491912231279577774120680114018498761539254258354082508242213578709409865989750209562199891729084961530587905714492776461364890250115217238376052954119475224148708629918992538523542524928664097534852723975787947997326818183917775221235552482011996051181176292680778217167112369942203880401260405095755327144402678389505077895876249159911738540813969132314858611472299601395073337765919394787876407723686363788304741511967936112356224078428103648278787091551984498552353769052356599287423474272841353467962262698120834128720867563753615268637069437034282286280833507970095078277688187323610374710648989654100539183118426242475991488976681490269654948931385616867934887750617097103166807734276530049829434372493212714779718206541709708285608641839163720501572156047014993028848388788366939537858950287621835386068006226896748413117461061239249153329286197297208982305457453983505426759985979598337474081772919401835257944032041129579446085458802462702880851202216189831678748029864880417636216429274716873467524669372197944403358367977199393775539140740364798080635309446472782380001362459176094024053363292192349084121112101518631291996732588453075709137430320896543295040537052931189639578458090848109900459504821138903424941778745320353484769631407224862891071972611086509771776194715224573261482427025350947157257829837615569713588022789631818898947584587418327874312473771057500738687903054375822682743252143786632696725354509908880756376505417996819719692983674808297178534826662538321622808514022653779470437953484172138356110892621165258344191091942153554477073939125141718898051268498568409536184333143555935089659058728578052537192527544618182280531322133318219311795932223723604434256668235027282421476513725336728163024127757355836559473451775234916292342901816473648934251471037798927986984496657914863216426424171886458198958056190657972307146449152452868359043576651322971723639737124342081197387718955133348240414188794043221688844137590162860899961403069735029288667309661027504055081401810320390888253892057932646778694398913160355620828827611112735601787087279701940446663882420013472012438053916250403426163006270624542269234582079490120180850216825869919351919917041693604661985464788023616167755391343156343138893515892594992032632491684486036678164315293528898308988573841901107582275046078485722282016754295756499585672921718037762430175793622319732412685199026278059120717948332878154608447054379711733009851021767932493929762747970003032411113371183370014777047924348382739028158610273115481945013173964993443976109782480932556231907929615868002133719917918783830625107411769047167541838168264859608701335459584598905554196301496520926013291244449433977367165265286197388396531792890898985218668702352307430926256312941597987936850002728270077344614942560738603891941282571952054199599926578883445768237934555067103743381915009141191403193278896685503733566172547080966852435567481227491206195099259268372376211224980142588280099808350297577456449554621625265304301701158811578694610683178518541553075933984541340233710903521965405347312311954837141252836766365576906564191151972970256145968291821106070254996338254897983631356825374632803827611481842379428323406973808674706013057320750234193585914553315847371172916230452160709280947603578385363563353130558447928880509948897109455547472794407341084617682050174137679629565017381978899963340913389092923967625536805605543304163006147526406693099697052215968171028098951198963591886289283991064311266471125024106618881696895094589209307957278516155511181804675159049972856365125536527835776254741909711836088968138676401877546128244798096063629782694053052393422181117397915503594727664619264758562624602710939517970912245107712340376714624259592665017353248370153616026705550259510050497541102732734877485821668233747325288087247262470261192313315070870528102097494768348690432567089094954604102739853906396968874552935084478283040400584628688435926249618488790674816565168081682475112254010707516346577213959035251490867943267229183846507829282460615808188832003392131551323416844304712715145385929447247477999470477829419325102947172320807411448914329604644991188395563834675274584387997289245369524180170326980720934756005508111984143964233650982784364861549080672369424491453578568411471879846989845434812263158305537010955426314860107966769346673232575906511418909946717331291815807015132293105665529034885909714558897200047504697127378875991576701734891185260750314351349376721961987615281824305707888591698532732449323500329465187737078768757953281465027410927095524153925161736105783844541078116161486948928475114084111194675870824203274363950513219811589779252226935044260281014671717274080525850809942374558159686415569479487892925501846012607470299714647983020935312908918229504554593470488164773583923860743834089378885933966378749144887878291476933189379113582589216936361005504499655803539480056075861779586297524610836427156201366884548247168199590661094035304169662390515475664115570686259923587901506259595893323544086369364431337072859123361217482818850128049218693598963443293997313016015800846103471418348848626363856667883719899852576667536488655706430450719821134200448170047604675677574923479382107581104243273829798333701647315436316772529978990207499171620817820516752028867618071046200549664930471392571928947976964623059862970356284557851020186749049724516756239329532293302930422472409320305794074707946305313603554599569474392187013828743742538730249714557995617462805992913908034835974939249510662181990733385961783316350112128015315364370279965500170416462719788158000283781868431106800583159649021214440915965721106237409558568335662667307485834980315818319182670140859491565174152204937709466404149188312132008327393895160305374078258445807311695544862785696587592663567663187825729732770342772130467411185757932835893216676390263562219714518804233308014760037981909858089752285304151484846976115834897293284120452399373297691219451715302899808135805586331050072418552448322645979266274735053121765850878333527332236879451774955007440625105032234749381240881221261263174289342961810022730818742950391607476313985795833710322516845888443509471124784491010117838714816646810393691840229634765161853705955516814019186549320968946294934874719569934519273643802969793871623424414577718427861989566287925449870264570713990484623252099123902028882193812330534512132147353933436009130654459227518009280682231228083699270171462248651042542491964834241385531251504752753619248049922092537275358147567786626383154466200607349752045537434787346133316702723539726037512570490125584886417106661994199831805672507631673288139893506451126942773871577861782698269035763507891095743015348626046368889396649117561384643152883188911175559108268235025318987047189921794992252403948807476261398397043486701150100056606546022166676463113760361594538775157507968087306604661829646862486070813039263339098411272404000009461646112515158359231467072889010461023494228007478333615946837249528847864491559748217509799682448991968388474078267699091276006720367723916033491026745831307315450217246300714834334169380478252499477607663220677231148101543052056397339764323408799092465196865927503133465175183799084350676600470827917805670275074603146726295726495727101850816461716436942204760452148496250264683020098769645321219647869305559330772961951530715243131628909776846374657333457361716108016368234357699169916998674219887956640412622448051536831538131935746900967230040301077454660926782138395645562591698567209350222566567382990093233098411188212641838996553875476913133045525167833752672743701676661208631410593585839492556634539397347521078498086610298021631546348121356186195420121368967752954873054255852167432051454406741972283836232641702337637304764155680733515979314799552676665441562970879434572068520511385587897249955756517617077181614236765677718704395994260171155413469512727782440891410811255121166854863360182804380486418168273781666148871905563437630092315390665994423004100714272620408777697303645133169085371523328707689844079822444328893153893828359265666586600804232816122202691719788604840921097852986636401216415707253188903294819354016985331480691267576326524255533025731250568518329280712690340019348121997985150719639034602288187910731484650937864505821936983247434655364904917143699306527181886385288731977877737953315456185541992339499089876392212609829078866285200084460854098530239134849483300194560247049849892932450581521293078264711649240910007391411660160817913898239923523174549843935465983441079748910056722034367147318088035857028764938305270263520508172237374782599329796091438887571731415723827921070838126146666064124246041154883719698037377828468230337927035576255950699618994921733344213184105722845361701135948974508190727131385552611451053952227653191183230273066818076760066519072194717122115152238756011900353556464470369237584952488293645274442541278897003624666275959535355713588103992596511007548575278724030256112418581385153192627649052380869778931954480303765332088860422507331136256498063863328341605668528651155313009239838371200448677599487832939686401054204294021070205350649347528479971604984005793425300285148276003562645733737269567001349626896452462033235133619506575607099867433621396819174141537830170619894905761001047688921837100881962671909243937649699009248405945175593456745362215400320737716581776067833436549317389878876188113382493508686576160350642215699956311424849770819186716949751362442095848855985105527799935122522329540812605795576709277048919895051431560107979949281520420396550463379728720969539268895099482813979322008713362398855158105477252896232180365599948863342573870583535982250977762952158452907552788834146435231123004743060390358054096833773002628374685857172096889511380288495473281709706571464959824587852070536857007395766421221226606241488294635808505584595288244073496692018498575088097994411642486096976442333029996622754358847885310373408536780519347686026542753469653437367505764525605131578100793070063031505023217810329691517742998227810296623513597128220926043860821575228100476525397840809315034029100312545658770736828831311624028668706920310628793361687210821625879051936997857583389755484837685306198488016873488937896809956727526337236500041137759316104809829779766858245845536745121854808059684179226960508415013157846093785833910537628804575759432152593897026420162868117501962425297905880814717715580163491022923776369321545275792293497501812164703520626065202293309852225354687203867502323238537776096987161345707623907286342156275575606208871004648477222393304241507017846722030952757243299526223124018540806469352364097720499722144723631847387163220629327735064587207023863256879238403765012706924960047840511590014807657345973394895446244652659944128003949070496533969237381086281043912045002619406909932666034266987205295730055687572383022773122144289665916511209762929526392993272105002622183788783839733639707924416805784887948237239775711446952241695128446190553409033388451602273461812638408673201661832528357469177448766223080497433127470526633981936004838634090980498209512480195469235777059252598470768717233007712607795259695371606977547505537012824205022551031813918477801992945135236060719212128537789483699231484142984090066298433763524069307386546203747829679243691777058945088242586902821700289994349366829409744780531222471917939855294871724450204636628552590327922727067500513536161997761159107859052129242251679177046703958217908459586614961463125523486056887930997470859866666955929497226136301977578952178700973449434309392079168125429409350205364976337063628855678788875773865295561952122332412276657979020305652989269300160451624359750318085456766652381392351958697091239066706680911348310357852106558223509621286587535862349127533606369349955435605183767266414061806931070445230584078322942312088360835836233189533373199742371371212889906437843826383195903635978932431254819390350306321246564921636257791794065205928714409117378069111310878941088293780953158976103926080877426109323991401509272691222964125885851947776862599485301409363547255713754358787173331980938459467897498456721805475282419116736493163532271894061869938949578948670925442814231368941347185450523115133942085086833717102202947303933036633210424735832896864188903419730764340049715556602662783607641321557637694068797440952865852403083112100118772591758932451347977828402705165119268207328034747486486936653058283801728261065869509615499485233231112379988665460400725597606671829022164746269907425494157832867042800513875591503842790233178216505544192525868670059634582840699693758467661780451057854659955860648768191074176022894360143848753154832188068477307407636676571417974559239028036387198929153510758214727960516917269930308789886370046647893267254110317682918403838954780181769441084008586212155030311297694074567768276099890422056480624004033996056269652664775493959270285214130347592293752126548708536389611744049971384349551452846526681842656962774849365849803253595923318410259165570932748962343149954982394907982455674895404980720774265416249045757893193335909717440384195271795228469609727906649146900454636110829005180242823865811425301298682845927653140129253466129491132914169815806267979760890878936954876550967304323788193793161368386119244635262498490286760899883017263640500942798146095157285652402465442632146621725352920640934890622826498821869179341544885376948687132658105548203054873317313744985288498392744486917761971047544557110951760539428109762193407021362636405124381711542823594260011664478880628162750054805552998940492584123307750627063769777436550330333822818453829334164249547804433815044105823594186013800589584297164608991458451974775527778633764273502586695855338048378142783148969149172493517316097995154547791273322740824219085291416308376225670617647955150561064031640596149932607845952205321314211307507106039280040587607165466172348777634681269537841609130745231286017666247378143999354047831661451999371106167625657330203552634806424689748199842749772538924322300018027933158682893356389876670587727601512134455648839855642489123646804990103343159833908601057628085699977542024365072022289520761021835645726813042886489580675633939269386573961081982000428793007389608413937874921932800888114735858676971820166660364579293143195377712897808219972904642322173201500376079701477321811856653727814599062016070362627654861822235906492638551608678889033283955476662036255186489252176078043244125884666145628312424532267165393504513895529147195075141447085449741711754665797551165994979107740110643069726658369822769102841359448704161651721045716424450158455286511451669774848317022931191618816009682548709748656881440861801963285355570462961431172572293570046692464884111261587045223944007723232075295345468222413240973809340534148240080937999719395588201951869829483483585552291468695311858134651107518280742441072247267652589865684790876901840651588620771155218883635318474942726766182877443303286829314838612010822814523002142743283185394513300604652010257232196208553621409640873047147045866739604650005472460181067300041208372348076228870607743073785609899118024936826905879955801939696511995302369438294618365321887368730329439027955922176345811089308690232093286046632925261936111533642421131165292489993073166066925309325361165935477969412432357507406040676981489620542574165454163011256922928987174636631273710182231871827787024564374322300840079878009285374681833164590305347139011065130053612162832761868522788422535217751387741956453665270126131919299570639477512068246361324064711414001570528330923256267796445723320580124960122002730497124466772732260716603517857681640254337127629494866102324476716139289123047451044466182331474551222017823032889503862688152033749625293353591911556912312416806300565882524684939485703890132978672185801366731426439665108645436342670133458536016644351861739894261751487315542307396782054475207468616158557989918328100194993234215111227871452527826359699683815677537256762771767243545073034631936119274067142112418949481306283507930601808582258321700405228250675879888599240339090805091524865560730094052609759443797232926361028108325798630997986043436907284516538139511285405211968281804322453882521338932559174825371235458711036186660522282795478110940026803921558398733348635747855364292213749488110511651443592142973029797142743815333225546982661130212520196655928932350180417443810950857226576699968816339143837456348382835954567192090632910905111305750325375344304362186892556058801168407384849707236690083126838794503280015679867442059376463453588959101400157117326559509135945110847233941410876215254172074701516517399813734139662737794332999612023514100938554976814331238346106141058183448549046381168431412409067316408500230603380805465084841155263981189598893056943520593073049484727896449525251258949823189035794204373713406313979858628661962442268033352535516673983924677727777289876371951162256405267259093827631428278969327164032205563390079686499034384445045886896289679304820474484143401034519699027010783237369333226483473963623451015522459718625705229463289029281583505756120342477459326137385219119630703250550873918555282084902667247523513899775961637979921339355668392622230659205622766240074495084851949213794227165827737953258112422820682808242395714792836012882936067039391879160856615673595810023029932022593522480718367789745719286045621937386161377526532001735210591251272261536221308356924879818698761602638613114320253012164029038484753984945435627949029990596409325567731653166078242352426444212324517556857850235279671694849498386950246590920539686028380986134223683406227690849983092306402745837877319733270943371340275679579607298610044341445531692720898332405305507830199674019004227477539264975461940030060257414316561517826764432884640528212468203319906773132037582912684642934509205642630997526203395397783297411127502343967964995397269832352303787327474416766840340549771672335050492298660355029469706749730141372025081950797111215051344322131606659629515622857842673787207298396706563871868686834596390189514298862035238886722335004046983687362629083266534537349851782397101662775174802625794116433536571569299860896570360595732360238269831351533528521645881963756094513168182577805573384151653772994356253985425476201591030548581131115348965152955980085353696911656568948885438155991361319881654538819609524227445278057257591233447996362783871552499933781137161466129061884990438831295638266378469068089799242475493828638941442414814184636418003610706970618437155655432586262892586015158619298119376055035119111165173524107072281826249483436013055867030963636431435472948505409031594552844620691940269781272222827501977962338663370994785597170264440713213422286115602285733382276526677489073254276862921190771413344464145810141601388024088244744221614013829769469421044110323863408416767492999990815845046572076460410086084541741136727590624002905279914976723418618632378217703293464818537721622142930364987263887045939261506101669558553044971980976204171454594030561130319647057362824587416551674762538166818378976437301902406127919186145782440417876861223177530078905420856443402792096289592944203475691577732465787872292998086507103832491482568458095798181872248958056768732592538330411769078894167796280217675466952723969809034900309538742874908058707245992917163020584311802356449874090993028884995256354839526727854017909492277592548203178132191449962696053090539833763212463421316207739486907304569748422952185763331813644848498590515838459358254629022688561636856934381221623557983297214264194521010568099918091098025507885736283515733437403885676176931278037032820041039750071312076290600040579966754313090975273610360450484537902384554751537039344656930360622936596248045904836541545895911358919539164852700891868579034261013923914500563369332816859520968474964869387540046969323562939799776636912491159036611658009546721004417636543624611285735537281168914647204901061204152380508434626929317990807190445340789890938877104016138938824869808308611401529596810828144856060517025259362657404340498024685982758993940783786507438611244057214175761507289656221938353021614865768798653802605935476996583940127642379261451017712518485931887957381770289809214361002865365702223329272390559541025943048650303387892240949534609674329516938431033630048805435820129074898140034947835039494750445529847330802943903996996151486486727627387439500673970998186732922126935709522325078841551588571865415071654061575612859925325987207168848194567461913885178559175111822770612169695941442151391982551517680088090938750991758692302139230503115112545865413286508489579334156058599589353444969712296835707821665744617777040968681078005230331762227691682221521059011041888654101271365596577073118721621367254553325365000461639430388441119521679730384654362414887747226033757657710769128878738263523313699328358406008675533504196611208903764240404467513054094031417927148292092641315598341083594434416187628802980411283696054692261213055237066177199428907111379809392597892764846516860654481709623486633355205406558068095947316200919427231350945624820301697584382280151719163781932906215486208398465649443976050131510403089348972687605476502119870634387380878139036327535115240145428875241962857471133877072928108586345468294535463890584980859850294676982401853545457321887006540786544913623561264291429776525631592519666731029788905583818543492475894337633366736936525863242542215303742292941828015608750432868354491072828914029218385898618804899559688498290130094975783441868058754738995254546270917871797225252137260836002930166738816664466759144639257889064478030694504550216325116832662387842457659444396418297151527167805110047328812833424943160800100698206926146821294640581171600936863025465997388091571025029543097499265239829297754232435861907431463954104042414300889209265484306990482987788161580250557309686862794158963150823495982689539635524004932616903178828004936183376501057003805101071541897324359838421018038076679669459146147274681121552543742492201460169813022811946950942467441489244441214018724939808755001476064527108876850164937912740363713961035690660692507217748089219022998601655141503538172934163363432896758339679972104161360707237908999637065290000509199973377896660608823419589807315381326926106903528889627789898724974604527369094684806121973380506993652316995525395847460421985037951352947091083650518590406601482295390490910855103431142943819968969881356332680880974576775290261626253558772003554722303902197036226759407697474539183276903737532040413071239008003264678969535329220231614934254734707348712673500768961857830287931262317097740333638749533516724470387068586042083268962565705148047231085885548631449786186717321783234188830373375783760314635811717714586481413033924752546401412912432936668438619505264757812707546421346269500047888117839263569155132376107843134302893976681985777680919855657837756899462738105607837925281668535387923604020306207655293385736304175653042368586465128987517509675298806713451396624295801081539465770314334793171515497583813473188810116211939166417182310518057832252415677472296349410340388143707287273031277212350099826710999318764666215286806622432766255983352238280990790639052668566883027702694350412402336028067698851673615136781607387986074252400493564586092661496475890688499429022039007830591066862633738325588248131631153754651081959237105291724777863370129308412889725303378942330962451100356979894528617194042409088784422122928610929385080611962495235468496470577892949703693444703349350944405109314476754128867170213628648788949959966913545095357581057128990135707530143324131239598305156666426366804014826647246775681204920398735935098369419437443650791536676778085051935399810942090481339422686830903655708968006438272664965971019336258006588877710516404890002892200334861144042401434945375558106602965093993877451857956659940331354342835789600465619220043469280120512576231436648045212538116056267016967811320138776852656866750322522119832196836386114551486798933437142107227160318418125519533826204108294015022070986422163699682401852711449470002501068244633785738932407429940673973130789414855377201767749410322073244646961407177163097517425012562588741442399574338815977939630546274448195780981767753564425320201167807738241319415697956140671829169164921274612994121334989695321452097434500621192988611626134916659854696597692813644897115729447977707253014261622673783577263454645747868474279298499072143787480043533989846397717813076858348210091978101122238384518166923375671709921805719103636325342985586187430821150616888168022583773657200345038186047866594372466794472893824855876501029455327343194327720890017720934781474061164281129774967456722136781038765052940439286687521623143320573332131617877963113857603514584221113635850294403356836175368455586512638345677489073142681901912074686872148662278763427868641359899653473358668315089988291776592344032884603249482439136834902285256152563672537133299695456983593764518710341979958368812777463338734879112621353528915469598009232108114861396515993595851425303337065488639387404875204607783163596169464643102432765694252521601637266285188061229544806556520013317670246115590220319553527374915130485454786101892461412684985334560365882353807755687927260617704571714894508866225338049252923177216003272062068375237312328068211439138375576001128153650591431808019191462196044199589525606704886806654492674607525468290699076977071902925588304129735725654978227134208441644155649456977681876134109499969707988552717910867507512965897454155978949916523819705955949650376217601427327218685218861350945645726313896618973158789797895600027554847380819080845135633275951289330991937455455110613543431854042252688985061155112660036199696836293281109638681079107101189443264217471549246771083814697515809211903348129453727562868332519283192552679882842359507932766740929116491060895558709856934480409848439169665929947313594331116052283587540046998508247202757193199760972577617602509485214485935291935179971798815235608295208167600106310083572944940309844723994568495246358164800189839238248900888998234506428694039270951942719489589062746487328633145243667998501389393727862736568905300224291969267825323252131869803801086235244693146044580421147486086035110359297334373983132880249517128561613166850817760008289947447757970902007751029686349772998708449262583859473834200461469582515309848160712283254379122820166852703782145096457961018399215489108531699561905870140430350514636034750993216155221577264897565717518543785593593703906420121961142598192644498431312384280429915747169141663403601466130509293282515299761702014358045762177175674121607296666743388296423774426117133148632702398029015715770920820844826258520588060812632566328393458794062075593749135146512949735432030602248682973155993012697284441802517391012111229709371845241907384781570032223990136932346375989942361310964251574370067245515327952709964659494381899685607168434453952583697718467517284142792381094578445587908874476830071816989203873714845538865972596942661445744686825257179476395439933760721946014170654362514455685538703058475735698204256741087412839087063415600074887364975292253250661531715963810814581478226791524963228079567236531977002786826739344806406840743656271609117646585524860682672295101644894321418663153111151741462749892465147305936014365929805729189298777157375278195162467626308324520525094806694196669671850872465623587516486498836216719256996634397581253985121203558001995867323516142532498119489664466416733446153363050287320939832298677550914734057325429763231761921794688619348875737532608691190381334295140372420504190706821267366426689479674239060277525374223983720697746484556931936279392435066286670850902431672574179181771094514471442407626491115891953752285405647143788010975716518251193561632814885556633698839942351236860380605875216874925103361322454172096346072599468598302681094103699028149362231123734242135797040182352917459994087851030754248325364527350146991002843807778669475586597613802892528855215130575284889400859466495776725864331509891468723309484578314657953781920499172537979723277977859645339699742397555531700626254187385686987725085139719825494465100283062291229601515938300442063646957377921632744393610952208654016860084371545617114087854651723017642077710831422928629716537078934034744501062114666519250609571495616390344391789500887601110299875282876646889866907579656295374005256065344662865414812352917207136155895598416473900922098267613772887458815449244082454257310384455384767635879875361511792551096635872605455751809188829955047254176784269454725184289820119640822422792417629191083754715983634650544621383499254598003906979064777344354506116942768695013026980013305792367210202457089971881518282061989300329904360875955403166302724359805422275087132274755845466923960073085034824355852085926427057852287165287856615008530314905499533295943101130619184259104657815377956414143172750858200506511825357588651877630837397776618957052749683046402312722584697735386266412268585433729309255841805305041607013074204222056486198820932016963893466947276131407736954356256602051558822489121577191026818818013979128537605890807738877630536823138061304107226035169023518060608570295318770547951829241683432230648682248207068363243017838690780632182241648613847431260265637404872751052238303160161091941302069677952497995016476080227467011825385899516836957187204685671714760817623194329113305439003460434476861902621069078942019723002040652229754726594800758295862390365879511847571025285378781915075842110950631573679492616832106702934067950636577213180230451202151565138268443330169190932718912243224261236511540340239562253213415821182921697479567206297828782204727896794120697828090708872129565182249145937030817351863480799586650108671020729367819088175003097344310624173428153026814071649682844924000067169420970249075251282725014462589050781358286353177678265998452199239121432025613552839282608924025623850369445108276635822634884152902851875840022482548808046657295458106449829837119133298105197592085751273960344347921797204991480956800352127847194723175782526002075243884971499392360377497240810281930708972150098459945477433195394881076852784184790658721048842478535620148464189302602090318593868602087203336547095403932178334860941337687771557112503876375344541678127447027581905431810175977873443704740102729182929835492762536684040835328953396816044795075460988610664692519359020419414782426092411359286935389964911246897714075281036873782399712647896421749358283123987063855634760530887582969939226363163330865647202409318741091314839731401738348968404517534082470519914541673996351450461097217675414935248248132650409268329693185789770666862164226809067518957175954356513879380559054289973783872592995626463238460479664317308214501645690786164867547932378860806822198427172361394495479147261524431993198497687212911145344122208887441901152650372793561764142503138224731890120152036762814310437237445072973971430936913592528391754851923792140448190667032240454610081250532337507494436372128664606702330382930149199326473520808854189801465475477630987823921004141968022979585063250756681581047874498730850704157802571710941217255199872012207212726396623343059450918244738590061578543636877291433467057085334197988779192718663104714816028852779741890942368909259710954742964724420517233200787797116703564032029287010490623855439461604624226351998779691322600825868617392534094515218924197409817662732910959714177071810349462234003587578678204560431715750889241094215495852070310378360116174499177818527868839813702836613363712205361938393385182875139334937212038477202438227678576749723604157580306018408423957028928105503096784357149354599938502188308062384118549902475063903154528445253735317948833392311723087611184836277939004408384827106101269973554618406127059245700312650137810407360728481642189073984648044566373014535740110338575711761578933889113035887378808307233972776215648286320344501489940867704073442792211331615810168478441287794024300448117612146947717680056243322149401690053238706069007019915714663145625352098294875832057776364672756588070141659039860433959895499357224378448526899820231139635135282254030914776648933784136771438381084262777354226306312772410549832661476596250791456268351014799135414657579704754699929284594423128531541160625829066834617352837547505193879368127246503858859122541520991633346166253436011354751054985946467470716191658055637143653989619635012323120972378280482058903558259708001413094526118144437883453739220334858988350170204084116520710484291789354872907472970003123643248168896937959061658273948785444890100661545036367988187322075133184107340463597196466186483821183649893931478674997003207496624127079595053610674080802595591825770967721822465930650493581651785189688878394732754025197826469845616028988319203596981375570181577343296148733882908677203490199389143750917368078780621074049567412572256818381612658185057318776225210858543205577707508748745626976823114675737159750738949976686657559174841201274070883464089437729261035010949939445208386512785046833680283761746747693437233815613216810110787961505488202079360051763011681108619082560063894323839819051172339183470611642513989166034672013104576067380610731189952435055296358362710424271152907276774673361283322166529574842682306950653431189513026060846134803243801203025168781582272547139274893438087773480864244886276895248388034866519329846092588821429391580254431408743525289128376090355427166757760602919968421924724602568451927851071375205362855820849827593125463486654537997239804724709445975962640585522349545079817660474271005029883225312716423315071771821508848466360762139719993884907854504445658407155719133970544687410139176585773960972842359984855400335324973103056160649916632278384087157091837705798620630992494918992404992749269403447944509581969467797291205503296883586264838734198243100795439645239405725801182324729875620061451571014697504815341721524652287808514512368312582116550027793514618267386201557369779897521998469951239071923619855899566883499042816818405037129225413870981189174898746125786245135537922627923779688321641840420624069284360750428777085503024175044033579547950372815013849263480850673701577466274958972692676205391090499158806959510917792151791230526204490447431176007620226985535955983502998448484435956887975440496744449294907788788849873384099374002353218922653072107489974301561047412853931626687640360856458925191242894074391138065322125208968612451811035917519551988001759481461105761394789042550624331550861645014140894819245552410371458980616193825539290398143792902845805916025544891504095675106534147665434790515498998922275150754436264162780150434346541071235537817159069393791583365849938582590684510225723538006630961659888424730015899370845019145054947913300725070232499677450272454961260780110929577204905166088297832426244838474673626859821391531360621873286162081484231809919381467679458907769775453810532435177007781870803791898310910768793665222160567920509418416695626916761854844597255594199108213274098696875840366287397798129439167079130952311621122162811376689389217246750008384967140424061503349858322843400195013454022054846075235099177277880465721287738020241020950681288118741111277145535964707722036794259480897582926314988212712509960316343375128366876483257164366715115261701621112678526423516767743417906124228746207061529555072705424931284646800144870717863674015556064188765534755553761899695655401720480004102403679835986568056680085760246340704065101354291073988576022232718359476491513314712457225162350992130883827230949801859043001377004246092929950848046980676041175742882288563474098089265423905253898777911838732616375408032524547531375652872524663089446071426994563370555593940009954987051230855687654141258846789438679254014514742402154918282941963314445439841201591496703982193454331921036914936048419250096131968835378459122582106817236760329440336859286400473762484079312110799890382869126361303812445495470876472202836164250409642963788542214152185684239801792252990045960217927380480452922115548069327036054501637834734206726067650523865345960024719331645951721042659989355313525615294297293856286607522183774310788322187745476656864206874706836723146258659624101092457390149953756852664165707243026231458718088777581123347373886581728505814323922573048356733884317446776389969796274232052851850293412313788142872055143012184370720175862636377674014486975427278290686665452039832180570440555628579900474744243514414404684694603402592805998578208413083519113428540008666315807369011338394947859942699289866230578127633837579343196315868590699477238511160975247601182969394331478792374105643720097175522872123892837407747034382079876337078103343933055885406000248522607780719939694867474175022218325151223710370974155966368995475638421804509581274949181133477374279600915200724429959537903597526663095749203012188154505338441161914857855371946602040974952209515249043804450096504277651074203322027089990129691428630715422971829906563003848898978700320862942734336992916488117175595858521709863803604221502115261101658757219100943677189945673687449471763212654572146031342649016784379066138692498769946474615732103679030916107502660088128975868584881201418996707812652234365094115285151691776852124453720630851017497666194512781932957276978915900725412381936644471559812990858288332392023441004993733634230519376776732713196387499494257216654495338566458123002043744097216632531812609133787358202172316778399923130317152187143385781837518728908143832322053307514204910363299624457859112493556081873046647776540584015826427764281282956458910466908533438619946935848949933813413625622833211182834568270451062282314217542276830571444087696939994349940651556572003922132325027907068926433520113494608304729396823539785556942632518609182197965539019440796633113743535127728653662585853575611137532547113622679515200350679630514124898792324125127855723724862237528107656146362589641328663329748210084406140508698720180656199470561759052811239916003847219930361346000701623909422395269358898487809924777576347044437821659843573988508827612902649847612062847062564260360420201193251078526380021522797080093213989877559889845880787638727066031137361090799216947629064405030315833275332267612160667039466628657602414994208257424898750584269965676718405404149522859656249625064141632618759758141710425799660855268479829507083471606084560360538833117604291612638306640631691911253973154767046679312714719676575074127990407655510810139811848827747984637342880972834742607709140179262541475630794427582557003966664871875125506238028302313186976425653949057033050984659664301191046530274099498743652266818822020201107096342419570793735060211464934023601550454461765449738424737672846169748697837024788789171208307480128816609648413283028830203150786324003791609198493687946047233130527852067087939442153430450875437495713554950164262304232423402976221664460057578085300143559566257810733576340325026335281433284460229042947810492456403988062326049956933648149848215890999773798880845971724948280220436778224803316218464427208495896815489085057287160662539919052342487053350682304434639371568802621946506990745866738690010450190405984196714667802767156870416391258193351805370842975814547299412590326476734993159491018289814444540045740797943764873784016884681630866620065277100959757070405269814737010481101131660169549235097996327734030015045292395441850641495910351619032716692106567389955618402876299856457770972225106752951905946346633627467574752684926308256246058360943608449855595768672709015454192769257616665182578319943641399263301791024278353368127924339538002321964273338342312737741637208847047625916710878009034264902295339444096452629354706165404866179839904147022697242877840283593369728571097961275008284891008356699089748782497883792308599388940088636960236245187230395933531122285122570063876779584325836653398496456469204943155903160841169148792738401796815825113867873740958647008895802987626653204692639460012882956674611056558375291798464369997050968536219551562402979300604423314924676156090914505187230638638443818614230068546571130984168337055788495835347672010168254824724023736451961554581966230474980010020900258499008654683898490280710873951576622577155729797436133250744908159703370629591586416764918965584212526745280578653349134391751003746730818793950456044761142251304439162699474589955888338365250024689492291724248070249962183225122281089077010947116410290532837783898646574583603882785947496508916989131789550774559600918111511106916882212991122061845471617475720737833744854938930241341037137440699809732790995984079177313190903150739925525982982021143130190645124796173908937192969397115556720295733177850069119505769215449461975716468737124217917114961663441778639149599596675321333129717532087369380303119511261415296624369457173939405075158862263361682533119833505811334098918314065482038844470016736092374708579865438483719703060213760815657512869596270450268259717328563225996473857068833191245769326334782470625373953732959560080452760582959751927042918908056679757095511109642386646018707926121596075741783360314594379038561969806184912788366743106328316942618517749161564727463098267792161475255692787680430103819292078295947891635379948339433179790064359264474634355835981464903744911773804896032183377423078162369559033788478464718249869297610737466921237689983555693648622655099029146877180401931597982232335756440420018569452444176505361759474724737823377662851342965258933644219647238928820291368374407832966540599133657690261517664057749791056975036723435513283860149441620826324389810585221511768674572165932091666411822422205456647621384184584943794029159604340482434210063127970755927117005235281487415569250227741468726903101652263653495212669314152542207864290015734053979700953414911833938287942552414276172639371236041879498077524731752084384867173241244089682636359426990782728864140197099342545175690441170159708008212762524291404508541290286211197935602942161486354879141613164043184864828155926324901113084468194209901903078702105835210001005129754059242337256302093775282154994116225882303624147949808495787239229611740582592016182557545420531071427577755898333774894653945220821665653189130063337454072526291293156654507143867485119473524475415261002987221989142470491229638657775087183974956880650123857003646289693409890736754707902950345540754037464838723269116360824791047103952790289668834641836933537883018165766869589111075416719862418102598542215580087497598071772598513245236168991835867780126275317929398409807318277889612870122307269671035247473387679317224803172559227861967284238063618812588397213416794550213502602253865158899606059657746846604824669214439034883868756862929945921243724874124560454158872403784751147269364973268346095224515494532977957313093490477516477257374329007768940187583277221780643936471579810649424167767447732516282550779074347979954687312792635043779985329605024292549397649993429028711483318793309947508687499157590301999006242298865583493813013231833197055149974218386618756054533843751918706584582276129441156204620109553732085836352610185704849714908136632601534291102476118331228837026596199128553175457648990974366322685983520505777124391691830984679080530258945567674291152435431378184993550844642955169656174691635828381882517451896274842245408787221881642839687519884027429120578677192460039703354152645250142293428901700753464778678567089887911268877930384056774574827818988987024317506222446418519732998010719472070254367493844354285918219196114840666882328163361398999192374550663337806390735471639750728565747076366354574897453642176685741913451941620756004621457017771659375166234312968519993521740073420393989125534263709801758046327563118057988954221596659585211945383108951819885825089783693364206803251894147085808954799978026374975848406813752473570782451426852853504535257987532835199308114067575486346464144650279769154951449987774421405571995804974632494481273353869128586008843803774352265021364661486266857008882452062244957142634624535395774341146218294794414441406972988601791066153953157983474098707054566274172767285595399302171194892923348014984645521030660527465885482956335041486735304404191206061605341906965958834283040835893291185835692146121656152260633606665020910455759144999524715188704227722593668529644354234698686678600394323552118709797948415542152029938141447667880785872723011298774462816896204169271255152870662851930709589185806613503871521458798845478072982372972529908417591049730564072151949717159213763301960342136550554863224443804276519822696025905897329142703170422070818980781553419895816194825958670398250949127094405357790752218666587053990693495367674571160909857294508762270762615671410250779248267436785952106297329955282974197836685264300182153895283408361543616692282327972820565478678864910244212842322026345451723092386168480306510935690337914320015649546377285053288959349218886502849426581570958248866030800622540539371777564498827456781001765716643883789920554280227896674015416129323827937758085119443676253223686141672388367858430826729826874260478380017358324017986730784823398495347274101936414872801007399796033790983680142059525563087193368230617552725742285506451076347034527067750124542129643576480797705892600702342465273401529599113693272580993409116524583644549789766211556815167104331134276146942938064411010325030444952082961743041481777022803007060519273638930901939009912925488882216173938162114437350170543512679319879886211720605702904398058132983560430554143433773279594169846945445518616932212329410751790828668360526188517339317016900082052466781845198099752039889656537368648826174852870723956522386969216242849321512178730164318730540212700139451823010199477791273841381532112152719987215996906160341332935155476829644292721973186916590316426222749242804998311551632742718962146853247816689640435687350144694924905347343036706446509622285471471511310976278034000176391561918454072468508232684210339733946448390514837573214737061323025563910855770122742540733689723567239936065976769466576020996398311431173877859689370103423326010378779841814429669406078099057147654684606541689454566241678564666006278940599392095590093323615869621469564826551112784305378425298514435845727407162352439295007195079610306429964734609217580911196797266250701454210429898933162213206033864086240925690432851287219859864957332632278749941296976451300660001654953803879087184104632824254302406529196815029748834441968005693910893423448220694658509015908720898140271858556913558364148967935425642701891932806233256013851541172085130240568871203033676033877074568515885590931075768420024174264254381115490114062580022123453090549638655780899431767535962724959893107764415022111334630175505489638821396555854569089929968781232303850648647150081496198777433119858445208733919931009592669923481251678543927602850275217405216801686137343646845870893336019004669492738597427720224632271851597116246903257935960196298553727767570738761394327941092952702589860035468652453842372268661721636791313773146461596190571443731680034851606759052915056617216169739079572579573570261673746385340585541922251344404048332414362143970070040291182487097983987292000469787305688490820232785686169992622493007589261172859305398171264510835903604805296524372003098943142752682415540766503932568643829656260668178187567848072349476617494554536478918797348809186749719476956818426005051595239136848179335036732344500330797449357950740677063814724990547254637710727201519464571665694081068503355290798913685906501778168449421524885758502751508464022634871855500780483428795844928939532429739445111981490390637299368871902995238202407940769074727695022238225782589129651262481367553166095220945087482910627506963702092883105807395957174345029398185562925155543732165464004702175244938543628803368716029374806073662938478338107063261927093415350272007144753924920232204018930968140007236881983219004804304411217324667209348646841034190617236311126524176880047443316252759589011626852934531157914378333763491119865572539091731742686351671497166465117588199066941743460318775917861380532218089724304715671551552787424606072240725788296615772735010116605554084167320604154740775265456594820642777321711652426741761998017323801266390214153477865406873537552954898760491117587845289759676464589464415453266752391902551980101113446247174266680156186710216934759710393987300930525942220462781516625794538548249225698318372923791602759067499479930154827905820042732946145893256963958880484713412456087970982691801774876581569490290664685828509016143106081380097437872642836838347018335796890515455510127810139394231525709692278216137866078131183139500461005759243581499617788298261035987600898283752379629081790966561103259376401288760031910339839450431791458433926097797654827013528888466016862204537640991841874537058222718647336250695172287431906953048922489795608619851764832409698646677929761045177575561058797268066357616522945326426874344825632275088016497429811868665981950014479140797873842099907636886857726169234683934027479104950495095552486907337158084349052261326535449029453331533538760038277525745106329851276052185737775814527064196395800764528731438714820100140252084299056224167920788666977612330718234435127035351456929743122602484611638586902448453054520499627250472700509024092161792359368931255364302397300586966906394384819250994029483466087555402516073560160528117656723525670938775913915838763281516622901270983352277638919510529543987222217730789869327461167034864451031609531360292832307682557815348929310009476390593089280854529195255817879872250704164597709134854092579275388738132718837140375161158685849115074008481704909781149448829926516394002227755434881530455497150492899520739420499283709383556541491774728037067785468712608177322508939462985656163428430397555135462227194329231871824543539822647505243876005347415356612120829344747492703965055069554357938785712620028383306886194060738731617370691955969810473598089875774367171133392338273389811336371846473897721678254747466587237723546107140333694071435373505650944244034713263665631607303854681912368791182463606558153410783799967176221269778376739163456764064210613208683754699542542516247804613520337491623888454470684039002663157418943981368323289589688242196736122758160734059460774188755137034108548491908295574242258995018121469443048540247499564232709108623371131803991152334247925431923852432506347715167435669590495692543538385649387883586204595932417067494344104174867471959984007174225348477858777195026994789082422810598108972632144075390737916818827540349344370887771920959094651502615928636076996126226776508309467921037910113139012405157140685539104388847188108294469988399676582398813344791361987507508256493776687524233099934533713618013820325200961583927365636422334595484985125632365522725184126757114783904451056184304552129065229147271629779447999530998576178716641281710955970436231206843275243515637892278503813473079508301298720328472033554342962088487596916062071577586616950289087843336524832196048564428527860399183044621574633762814570127527379675195227959578628290981873490853213624595581198802817234972158451832598882220316845006491309946272320009549364348385853690688078152592148752434101170135192419849914223895426698235383622776497189402306061276741614254104368645886455804940050577545479909437810614024138807471691246854490139467776850998098240396749255545492979969219657821575538857262138990313466989378128005660739483754653797189963410429103924160571990736968436931981243487068349766430697876219073326263150515813712000544365658981837708736531484138919861777481453074832810750241125699659766797675526672306568036521996833827065867476717919272409602925097261783018829114813236544530060245155022164661670981616687999778183016338354237812945660859184998919252164561335508562402497937778403752439971578548977330512795182722612625687584943864616458294860437885181962366605248546260652186315943690157507979115384775224474311594794866080249765013097938139859333515770171575091637609113492168979975639075531763562046040656726044803871167177952551332418557968831512524827349183027100398788542586271087377085753796146999284130435399562803542414885480980406563218087520282575346050741224121903456818601319296640551556413709242455689592293568481860825677603646872144910829797881013407406665760241806450141514884397627497927257747360026114917211885971006343766067247699198359905910758946657695284003101203284921218156118483331698488391382469549338284124366073230994238528515376321587796454570310472110310404781440636885581095464145957098656875344228766359178208159122035635221071917052884917190094667487389432804313561387656079723865769138333508625127809355088492329680138642338088711600884406546458210584635889104609905901053863973461623314692500025338334532674500892952420025437809250846663015466402085445755172773665077116891780921724955114669109369652922690412114222785714736694895786486078557453851853758405760955913389931331473695268039351797611078815933427432506288699505170404292664933918132781649427502188330358803316858989564590351348699270003531659497209988851609133479202326830113348097404877188837119809974146939677794115107193779591907412482792180542426115283706617099297352643927039960490792107795609542739760840364887727184003569354866158690003559513510031043856531512852001535272474162404124845047555515102618995707778820190970781363364103249030506161956004978432008325343899052543926511933484824737401337744701849778400328701525971811300781004700038021494346492382254427118110565278723943903934661159305564339075584950142094855706856271176092433032075715588663201993845532536265667351187821803514951783089886257251215729245751694913171275372862433587821998006238712530214687703459266636819015222787595256625437999558346898524453477549359186033637786387016542561493870432190979674016499034170961681684776258426321445771918267297946458989761169810329563327214214212403625805951276540841791129065990740635100853481269232989000937737626901923317706810362696026195424884982961093294209324381080886610034168880839752273460920892745021715492554994792618789704848703346533555905338478042961564690539389042415599185325652638166615414505274632819984146796550051481872988725905810689236940062573742691941317848807442828238303966634826542713332176511422894483997508332959980272337574054782358550326919361188559784495409668733579295831402939971907160279516079355058356314205344618850630826283845560440483129805573087040555687146218332900738563000588929118458480313249176968649405875743486470647630482754765393586278696492583384306315926115309677167678808122797069412191431156352424172128078927518064102749223913657958519029815857907076956064840637436643567988352649903643022396114905844989240072981082723088914592906248432684003925039282133546890013554996577961405049112015215420497914298169045152714077665193386354489243410091700190877448611515025619974740007378935342273581428831735359585996331763129493039149230053236096442907290001259427409642079844051594843798934567955406988137690196367581922494774430978413561154559516411815867080259836466831712009710475160868088900132878151650443344642185390830957696034076921636173180617754488123105367061719754811860837739867237513169051717966297840136391681086713476526005405023130649892436577949922661626462518762038687186442633362682061156229520185854683698515628379583482285182802935710282352289754125013709396170882786926028343923276846443035110244131071532755660291717777679954339258752247236715666636813673576367768554466830482637815132951885989483497396300127561798850533051592647103917764350454758739505934757138936881077743269883042576486460458856716956279884870313997343990751675083757254460437960090858610110907578624925892759745004389056591246714597664297532422532444467854206905735971813673341703956304301034107533251787924614299400753216799552762615354574701950011719833392267648613442986153279938011079183373133370023336800962457507522575071109654573410620850952419147993708840081966186603487731301620399844700687896007860139246296733787823557009066151620038034492932168595761732087769220713679604300599941987692844965517764563265475932078560298571142741228684469811830958410458656626586701422713251609803287579079742780211922870426991988362782500856237861994694364836336528727160039218509184602946468162654037062663556988458847282862179294455521046317197065757022964704630803545837111067498990855093335076254303920291636565250367407094023148090624296647906678053565864110128381705636448128666894349788720199961484233021956484723869636843511466970820884661207682208478468266613274646473971391826391943104349229326961237154087681151335774727039605221713028260277202857447531427424114098344516264988248173164380874357690556401018377223227711866337128362847965005367464803288431039856872208653038721494181960491934085405871844984971543203210307077536738604186757237280329182730939749307503742906422520528385879861247970139060563532238806340366988080498258647564486231295821168536716922029765756165715045748910823633149924180561194927848420072093475852553321685160955421381383468251903907920682601073499606080164278832203411980304555855080399771883936655600097029189357871222676395732341945948302631836199803887014940108486635720564443179370600511900390173746066942096786003398805139640291906508452011316927094422679461326417742284897900212470642013774461425150596576767896885553096665332151891554241391808849627563082732117725188493444974337604497475369229444578782787037087526716433045238097089662570627451580191622167379322021356517204371868288321876720631864286740026872689196212145563762070495314845409355675008761688967322296845905977279441411408052531482290740136322999246498941672821440915453805226443879714121988207996659822654023590792909344325172694591452388013696753884772922045381710166652918398250697612541611998423232405677264439866772222933376676860945923047336483876047156449272640926312178076167520767930800941409122899092862686655981414391506795419276391839867821042185923474628919641439978437203131866394363845532961791865860612114977606174309857901347469138604412195793758834649800023568572802814161558339100041072968558191483166296382881715736267168623699882997587149732341115590257588552293551461071973438569087328536707453815566190960319225225357754477372212884821700970764158284881839241237480125785482405213481925768289707425920628367039474388660471040885254392527043221877109787002065475144024912073253309232275281607174870867943683388027838717450370785120518250834675473130276554223597606885827677627645933576062635259614598905690941835865434878199241904022135716259211678138603143042120822286811830759834825331994710663776202386813404837071059564622445503049703794215914583782911550501462982291557738609270954540656589052986370115238920949607337461540265350507707662850668479667355441286122910254099564587272459696649946935361519299661466357868540085552506410424853649953454508089876850919398767253550299721805804313249840329600789925558272331487320656278620334502884221981644270041423436787216977507493542825633667533999268143014959424292060170353702067060266349125893061559757005040240232403224651600232939123967864078472350218095600802263997425340724276246175853223687860584782298459395704260270166535705856306705800801175638697250737582964246300526709380843912432710378101830976478508996472798294418157529110498070671670835861708328709152516291915773205689510457471172581780711834028749019919719569116138352173404613243556090533230133867401577468287318609658564076036905631802178368610214523807056293556672676628658029877751376648131657527881669582389799185497835020942360884334872480022812246269078557445583388371531809340025617840828750466284414462546649086795038928489104138900138507386370541473832340047292664124849502115833463986180215853236809598142781412280752926919919901373801483693996178221250680164048906603003498282409727431441804392117100334200800040868786716372583941183552007703436162271584168024454067469276277653287311606903552747792419843209657485879440596774897649332948783979402484132426582639482045357875813313315372377570861367649063712192201771512130871191130374284486378958436700835493881948819159412892175526540060455478387051210812583857667953885740152944057669451977264568797717368930648861247808643833375574822344543862531769883473461751290836430493920265655130522629417972689159764150727678308411821925616497292922048927059029720292840768751971846095069461285244201679866674733440803795114722343436166637504113585722268743251714450371408499562057099094911346095068395635541828450883450291158997388884336417177892132346492407929569118287211161925508761014093270921277432400764518678923205459975700845904296303103822494432970996308613359859103557438297310562902812700438345780637004210669349095349638129985447591394019289444817123468622284137630703857345771243343795662329635439795382356003066687100950495991919797532404446273715666504641522448304933565778986616783941662764750873849781113692212153923412040317342228293552510491932896307954465683791490488202907411316620685823391273988651550845216734238412435627894529129490035606732844497458333888817031264339030349148138749581793358483523934540032395750076383507638796464027136738779645875492878168755508402299382429512381562838941448300893720512406411355509227641346330927812868457411865935453497461341247320803257203760202875672817020170279867150109696564283960165209914654329038372409811485892899431698556775147583425122644947186845127568830781613479311049151969460163909241751938992836696276806377817900123015892546405863321701227727813194478691708254832905624556540589329280011627706388898558432353554678803863471553009689873253718800372664973958275019520668081563964768645975166928186693024885682788398596536981359726612561299845151804108126202708299054832261377782264009435263310967461220061396018326493493581860423391900789596651165872874734518649314745381350331731146772002754436989805029216585269042349339380649124522726346593513682244315298017339503307105571471843040122077819211469581188360424080945020811974483855587931903659370800383860847156540832870181468051192288894754901791002375017171419161166338333721617862447241072457338559047063114489741027752007889308192411013950927380841562491601077380518215255868609759895836417446832364008105088089878772584694667645783976419869350416879947510412085383884436970675979185083150285332958645988006097084903091948523850826437880800753894642849328980701624764453727306080572890295908093147341464378129764053295098265975044610866797329555343534393706382115053712967190112207351886191930292994375669440740261824839352534284091919780261616692182871964380965770453286646561263362330922216081909101416688262404378075142625763175107513018644053194416139960917190306216266827505031009434053514890970656923308155194522883969141667490184549674920238019988145325363473066058746108792698444527072686519503853624665203475185211692376498153189255129529820956570718472171379497624910457797199743202695318039038024668267764282166232815994750218534059252709975445032426134182859012309835667411842421176798742718222097615763102045785987091828719436101283663127210506012473691284552737375630073231392299242643120371106660468986426486998619955344830346258262463595625494978082076384990767713221338288890206554509688390281475438401810249372610683062757514881171100241976130365602966343793745360450124537047547474395535905076673576756068878349826727238141741717830751139161066317907773357595477624294096538487718249337304610467744362117461520175998379498531861676502317825238455905230805371090932718761142722524298185707597966280777633640679222070432374148331899905302419044650219569433747821597589510831778545472416402479265434561082731546414664995692318317408232077212896855249350491908495451202004797410848024852024919287349939841819726579502721986267805904226152367205799079249980322097018791777359284810816088814610458116864787410847051549259562392032618090128859029602816545012328173943742761510289521464799695793295776871122919917847489089044860164230693780787784387518291317749558789172351726499094684711227824215357097304440169384349674531273243357436626332698685883004693114617048537766539565116105285301804942319717473517949051679985586543121409613993230688071842031582748926524719178314849312011446916196949524315707443190300891801011936882309061355646592653526751326745723323789933652341410515620897426495495750892120780815941530680371171626735221910212737781644773177212859424978339433990383909074543390471626393335563751554964624775097730238989603135359155983513917399818916670945492638401062976632224237923456882330799370612520658885808960820073682786076740034124336701863969726573688488769158017406525149298123644948015682765622273796115062101917399617160407498005503493353587096999427077751183096048894771424352432798470296982888404015336789098887373223379029193760388237325408617228155820216801007996612561212793666454841859645556473757178455452230183615587445912156945345872912845443026228434683839813123065511192727531112886434236276096758148614437607105244496858109207018248289268069206799265605739722671640631420333737846055370202464402445130864098592294029967314924996035692492617856005489986647056775123775265947623852188318334032518778338861608370251001110474617640819638146932237427774563117806401461405336733553761071546648161538959466180167248915909624514526349222465163418242398601874472187667468459374618397140740232502617815141713646534354252012174562677259482718964885254488751360529430702998622240943737751123393204572238681404073555096757789030690821499237158158690834579276735573021427150612685500851966234330538288063636749162284274547789667171573752778948061583808980891458623856107112561168467315038640721993769366095430717752237601985808100376731562606473609876687305660566317765301400710276788284871087261905732736526616421524416539762962782628867850548986567484541446724084810048075888436382072458288145158754138969186558034803441820990985629509422693702653293484736375854925870031368626801539757775107573002718509437964769461320542516172929409797742461828062927850729230458221300568691277236481044463884754903662452305894831078923614799351878960193595801192410639803594829611426164647313311068025910549086087074100862083195486063540982091317051067436042918499863922328196833382639106323245098748973411668814817560903111301623183656675894603538007166679595419290934037637829069415015516504785984502189557405972246992381968993547659732759872067496413403478912961529832159349784474327048396058232102418161605086747853979528619149464891874907118941433808846139171984884786119620513480923958771390541245497262708022808369107589565166777086616864109154438802077081419057364458975011090751955185325549460379128949350982064710186205796281191666724697130737239151291169290885354957862640718846373086255468461539483567486224208138409243270101901824215403003761649234029071567380753596913449144909178481234765443010171223235784783474180303437973440251816441148809813571735842269016865782106771602335670555881937635048296957350604714211065194555201441844056631238963626134973262943704804126201772725943705088212672655635988334550500347548787701097389800206616825345154226163430178052269378329059522553011226136385706510721383391100884923176063054060867894819230280177650492725747404976840192562002178739532526076816278246118284005773332951499063667332551023508252808950976824127312789851023174179772148973971415446865345293669736922706207570768845444663143655114781293867050045848992611151491236195330770314018056456778792813476570454988200621630367194441266355768610373402914518726429272101611888117703166045562693955779555030216359487720699309693136431226376862316310494787967876846164121472531063403251134503306347699739349464661081952385774304025724567920761081094717950863295356179547224777730488206501483074613918080967286370667874866640619420033664043240067746098762063481356929287032569178694421529284792666657809437444438919531429217492419973844890377112636006151694631422891870820318652212343988681124683824203258533482903428888837681449687840319639691574072143686060388250263641512155748695693964587224215760746944060949930216090007850263950484249678397748388159547937951863524278174683337527863761525609247210511587756558363503851476988019748271731842294837652493408486966803322400664278900234679053891419026407410517087424317197253923870435945072052061671302493345072483497522869497341341010232071773503688659857173191930617034873810087593076359829637825020563949787183216511580309032252364048787747369136415915893995197492502556270698883660350943964406164713944356045173976962031836641070214265987865423022646616182809160990094662458160243390400291562635884263039958086603791051242366687824510311057038226791547639395736694236740732787376670492439683757146502707566666873632474192516241985218956796815443466058222497324012207102062588812000745540008412934350870802630605468138000925406802900646409055319095524811634256668245430442963979655641379226976292697888982510145886810836363469040103122236348569364458328724152838643373753171732419293311980549578679247734879837858705094630257468938369460032531390286232289194508711662385514623339457488438595366990702911919731882700977338818716293440084116184652090133266632077961721099260879477515869563213824341303115741911295581196152568004285506982830386914576654540343292287449286821662760067450877471518881067839798658761771525382547283805017244718672143315085043050737232600358081283148377195319805193884390665760545672308945303848172209349520931934983148943104116822716607462408816679940165462574593460533734599846824765008073864054132227272587677310491780644915618694270808898925111960156856720598354527672764005912212085915508176120497457831963292753720409947319222042869888077171138345304070051631442508436504129817341677324796708524548668144951427775241849151598098933639320828267376852495223239130481484929336870699633262035441638946190648751777077740754417055923460653860417138109742353188288672084909757526692409868669367457140525769111969838310679973157136197764082688268961322423455090482686982042375662482523761596917701115200750005235858949096375411596767817138093155104490729724049646168015273587173022760209144264719628857272738858351637260326265903361449685523967755663943835802569242422722832188887046065312239670763862796211118200654580889444254085431119288629588011982791758135793023284035303043994396827513421958088737199695658974635494392331709664161898538816538421312354057726538884042112913727257254638117519166663127249233971892192614999437628364323631619514870161636458323684663587534619070047456959436207357535220267225519178702375823497374287492000120039420911340820107007112807982803262139621961454042797002049604666927367776587734418208304002838559952509649677128552263659536825595545255186760804727292740977156329706433705456746480438255581978482186469572532385451922748475277595504702884628084815309032341700825355056158831570197107528190236076504303283202577258599914527519028154048116586981625686180259252761391293891169110922479206650476344742827909150245053383491465470142769437776844492106087861648240271197486360167251184291130621001727693115210316831675521129032419346966162070617705035841422042917904224454247167828115932557016372560301280012192973932047763612552292835980383844583383706519328282441158082961872891925236717361199431732464714573008037257063959069622173730384186852434506345373869609916317922247472227680840681679188337364535729629837853647368555376471725899686679359173719896240069683881881633355736256439262868190402857565961196170770558968124846768378465517630961183824443315012633442526853549472006229199571898567488154337546685320199360906340999553624787054646521768866963300479708724170622145291677767149663578069388340039652490981623870344157892885862985829493336900367783899032314472861241105606042640175097067865566478073895409236721510989058569886679791220853406770833060692269586171191970464218418029300268807445199045894859792068387280310893650733340224713867599539360621896324490700281236504397897873563299376550824666797330819849566981200427512133913549242455456553983997273953676894478168686075256062014420508406557242355655267839178472370256415387624926439920483767864751191413348028609869034961943752521328346052104066652275866943712641703501978425517126566807129330430790162846715127532132972374326637839347212951837209058561520102823782674622495640814295293961632920510208622850951694348636901712436897779931695266684851218364432837195904225228156717020570296588291169645759261762710404500496983572461583813157305492589960062989849634312025968174644023269149667669777396382998942106133402972046449199089335203212048016649717494764117468975312493588096040984094042683199131844637899263148648787762404724436209190569516008436247040222582194433336397080011164850816813592282771800605308914826644890486665326727777662357871560205332345027911012567511089227469538938461075211709156319522831644626989114689535684803758226035351279203274331800993443537608515722205622467418485759976781394686809867704901679491698814790668187710245974195933719970740642854677630356265435154827210756714564863536038729912509386212955480583047931488585945497413888380440851699447272208576461162224491275628366250283893243516607401537339992718741476466127013158266531701567782291423050879577122840579542413967540485201841883242721026678988894190481576401602417583804911564023080769924528622605856709165636498226461011970170105142602684421192046663651463357125520129479392504084754015419651421555917870951850265737104566140243969930602341198947532644491513117841382643691598285256274948805395267502853970078397524111841314946209745597063831249181607721523046126625091123244126359772024377742059808394927676749925226229287401583990770798510923749083270315783572264747758357438856494495179897918939064228105334245728675964006410439065190708791415448108294650396554707415918097340660156904032192282110862399989410802323388950305601482472611634900739672613111006417259563538897658679909109119540365552629357170266732289306261454001086195811855406152415720267074319524465903643374948196694451402967140137834585347830630809942800010087668387647940625966166725942840023078092392375137473274119940142693086456129490125034627135112333473105344802974418465485392006053164650675510437929613738173503784190649230582350173704134665854460229114006709429845076458009062456214893054585446456207096378800038446600810565913940235606958471218520931732996022624997548917112278379628629221637730816740429723766688957508583254026629839733366948800471056683043707519350793618258635265939659845356592525048043104414547741310689640640059896378500155184531846910374895299967642273087793235421057046740302218818352748276696053780754649742378831613346784242910500134108054381036897976032160356205853045843079363826410027106560615986745348975177822606185925926752852021863344604251233911729939810261957432810020727043874755917535459283304193682329820509700406717704804991186475565586788300685970215278775899608906713034887413319391990160323323307520258684204240601175158158969204828124655206420631859432974275477908800962980293512168870965703350508625533621706479564445863222100238645964224719274022467078111582346394070190583022511282595755794910321331842353799420596822037423062982375862064384711109764707456835788104458980639301203620262435900099877382983009381443896674395174963749999662904570434563826758956707856939255378638213717828304849714589600749318028682682353187564757312482928979559556532380953666996683228489442095147966662234740816258197393523263620867526839890521210639328238154674004509927517540975455230260813732800574249209948819489665334900518014916932934613640103243972001006290334307049293111971955344707438004546467703049592646899555847741245140698029412032962643196361424618034573142733725105892636423657881891525694026136222916698235496547057008443326765973645778202247759106517679738391573283315099816040479382178122444174122652251516336004300959844441032318759435114055635528745676383609072281716960015378023012779506608541980724270334531179741878132569581990345560146891282319565824421131210485797781134438047850776616904880994687492084001508236723631151942978194740710857574906776196278649361420192794865968115998179918972385461338237703527190644010591306720092010395510812627289487380896567622146235164806598434719318887801509854346134348575110942008359536965766519812897317689089716171062890898888907444948155273748090024128496806774475835336333691146927381567166815218646035958382456077166139644396419144156063434990336523828898532978512873240394056458832839444049473460994617097101353335565931156501224317631136417630400248573570887048011129891695436996027184580676268567698410208609762428717215665458498460017888206126521228495845479149766839613805643813013084718576637297317550522058627095171843057419797240307933653551412430739960915559156162121545052146326715368625221628520320363322988732695636952998628362913839860340400334277767687486647478199586252905573908241899535188006709457762135538311609555054143295315095006443128329294951443778316509781450909198800017938025493494325549255438043981299012754345812473075417004399992308260393168163887151106810883450569396657891096517903442101384220675063866398884623739985670461503018869189785430156577325025015935186569098690769750345832285201154273035666555638971789571492668688154517855697636608614039258228240426221363719407942293743992771839128025724285142388154792456946629960574448833001426657899528827067901547273650715070470618601876084656891073432190898029023812874517639692525239284659976345949614028031069296191845265070032093436067990920745218640975948094447392216558723062528141917553700934424453651712837738868054658246968839017537215772116978347570679896720783184175184095322199048425350826045917631402189387258161640996567499727010090178638409874602107849876759722680098277460803512762038963101173401321683037979219350635779892914165418472989607362336453636748214446361880229286044703612155431017439814736360715644306041782890433817916641683321534519063451975090402347238615399862506351308119970012988614141255073056114150405732598817511612819926201625334266220453726952999612207443274731937861059709505197953279060180204278104718739920207876107399015214615998307881101862416159555735929345364740575534141775316707208726892279011050831718380295706474875239789407957631161098413232969035122522057875853643790157777924013035138278447886719083605737875624006239522007756313172863471278751880167849407531270957341185152040701403103109369841045703940563276215313474440826681764274635724325875745381316783278886202851919620561428789622047989349006554951373252233362129004475890213415631028264757780425100787460575583781177066094619817902796732930768307950585481351527253976307988848363680222335821543100612899632034989076421771505146235704528752100958417156950318953121184784514824022601596561691251987077101526164654052709281135943179826959122651012744460697037702483162249375743963481524094003843718679956603734235724478994194761676476548156364008025345187775985037717048991818047640804379628495639170637482915185601578648447375231896969754593279655834666054997589663940243940821404190593971061120115120130542319588681435236755310318503773642779375461311656000181048492819852080468532365322105305963260929674338883458054025824922617540670917292992198999492117165700741830190820996349270107538374092495280933960205808492192087714505034288541901967060356932520522482648502541221458612281673641801811582908545903076816564303889687372704499266739878397215858920967133257706374388308002751230060948937080794018655688804509864348830662269820570537050380785447562253577469555787997822369328128205494522213931664331633773582749686429821195650069380305377671652788969422992906852093792798599217536125377237721211087934225097240452005140300203735785121769023232512488544834946005298541173346416296788747512260856235020740349964535185754718605452459747371184248730160020508350907013656019280697116989416093987828307539297035091592594252314817908232860591496695195836762631496847100629746974202917021454425902540187749105158393192095701164687293243340782986371344168763175135833580832785502605501134775419549605610382664178292382107408617860730872274349630741701344304877543310194260791610067921546594166966256836851272299175519378765466714629392997402093552390618424305085606571883213699034381219284765503215810902218093896753190529784633844042591964132161701490191373245262238897687995221468156133257256068312373344974685933826724956717264847619314454506692448671932087912649667627575544035678972690286430910240391679240841564525070966014853312757909049445084934283093657730922414089615877779824700651815355614217305289927839730183959765368895972161861572410573448598338943480490764120447029307714874988636011532499541356440307087049750201773787117284647600804426945477368510941701679572418852743418324946604605568572819310214985388392038021202326102833966361005311763413047435413708464558903880703460849877775023157800896619617510649469286547338536353826535816708775390400966121684531113929296440061721817767286315768035416321012470508148178128550975497387042256177507656919614142136342378588884028061604540672140370502801271021056181386059656981912318919092493405321913142863282946955944420686453070460106216480682947230639835530818488627160693803909720333257128516460016201873348243320129902558828436984579825842890500413051897170577669828696510438257672854445844295057807297634592123333745921511155584179594573624932122196529275525054069570085333250724298052631041551545563994558169636832136493689148374213613696506156788951631059336906206996376796899706464007422859874741936475235681282034352122693225897536807147419271644800480543785959485342391715123850687877542072942207607722860114222143180267825690068054092722724478954825685656576506677313408033464562667262548795063733412214527664064999101154222646435830775154268922678014112922209388282933063518272873637267037797473962003935784549640520431377687640058004248138651865187120819364955576182393738631675192936151329886159979917461576777835614817655313322821369017222329550291678085612715218167048284824489323489610205069731281130943508030692622789919028902901305180887066606773832612225197101079632427573200552599886998786468475369531235533207776973856421361802640725689476647699371824110574634507573841099169343750710933707919286425495049945694215025113088259026637155216895540082623574655788582416695331349029646225487163195352297350154659153689086587091456719010004203336567734777510280625404897639634300562642982727107856204931921389939005248851908196928793005476462346689658905021317389160519452117896034541521297774762449748181454018496311810106141688796937960051655790238118858887081217819929622978826500932384259251482055612242655737053814068854845951254866556482094362455589645335802513123891064684607599404357650558572802416570166654716227584807856534873686340822584586675929096037486476259931386672417198109229264966012015480725851684164658216646264973402418835794501138432827034774282942509167936767483738000831938051311386567368557841391470393709886049374536545929827138597967688796437817317686971568956818579457766691669137522340468428607712734077906128511202989939701600201600917162574613017063438141462273571260955365036984813807439883075262871074681204405404478311590939718044336450843383596319589234829343461622622687807245643860543806541772808924093419753549600491917549150141535797548079827020019310673617332558532354640500768455296745966779924972051511623111624516989724763335283451066434128774846872515287963710301934447005509134999879482412964199447356717732413680200803753662974976002947897540377479599949689439056886681126034230879912906483337400443054663394101798590848728984785939662255208350483893226379168137066150840352187662640423040025177875110285550150594157256416711557393205867128502231266576167510068947400128535499522987161157814555724202623436563597522541442174936383788682569347373631191817256008216087762360793817605397686632384439384318519745852216042912401937497980239154814602021577634066570395804958450860014156487944714903579922688720638319554654402724228878360979630849975101045199929604302662143314677841841819209960597199932795657393553373466432606702518577959866537687732334515836235995574610516713563854980926039308623622690449384593677514426850853131402290056506293236663045602851705929053267279058599398317919430379386405893483384174279400019028093603248747300036339838643333693690123183896723294023102095391015689414535273334585114499637045986401471691017375627155281915792387370606068398006796069889709112247966749314962097912704153902223847272617133534135646417725793401611340400375252805116497035848034061094573005371463417114452654746188125300165179054109242072247530097644077943517119734566840170731597683090827512874251123035904559011483374061612359768460100772401386012684195755032882080927281778355758881675219905901425859287815227288014533574402436637807910661356126126697524441945316139281574928368901710303068485534056039836781725818235809815939799141333483242509023863345158918251493239179579073064978203652338603577725786038167367432650661584498412652739711971185612196998199237761055928165282595300844073757946927606804284955381018342534632547298060735523156369425784620608853831363103755533283943245952338853929281778951826391781072515952474967767376571213650035100159902670118204501763518691939348603753226612599737661298675080156548854289738268773440561964506150796484189391142372945952363879785352397110896060340442460617986503325200593307184035582516367365497127224550865832528071525142745393324774928979177317950097422840062117305747027364023146761306104742415225560323397846535760179227275985252728591932373614272497660643535592756178571499094822543064731337869507876854153476979953152799353572023093269549766994031251309772202797062950642961840558539314185388302794621620011659980936665977432830659250335356934801757057399018030556126759429984786682114967795900212406796894283831762375143094980767605491607551352559081179816594920860217682222069413069793058902064437994973081034353998809745602927032498720825375343348248529435538588586299118404002164815766577196019383983177200930310621419279150624021002586119808272826042189955256257275111778464505900859934304109610577413470596133180165794743797720932849001396006560360995196214394509860491739268130747518673982321700348107012943355624317937740500378750425878886977336750049621106871009269574799977732294937169112398156612976234552609745004454208443966604928583259148153710306357467853854216050969291440048668058571951363736102677844503866803016044910766785540772008595269183875183404586309869177854994693892280675168534460615973643225613093992123722766419810833895832131882317671630031840044504359545936678864291574488032423931727029132330150510948610404164738070588745000144512938447217962326390417503151597115327243542550465432368735438406613255829222556434685505487370346686055719388346142572218050302273740928150067767894280552435657101032634189384467037927918477960236903967027198527803072932052051099118271501446221571224853502711059708051057919797784419318150763494673178316972501877212809389915057430440720254979808545978996028997146956169385636613187369950041259600559835081409499414741359242764583441215063284302609798684905708556239935018794791720360282986538612055345215549320977616821085470040677755027439444960245342876231117271641999871790327338251882812797757882272220837354214931674238404930825737919221743593932138482961637259939623419108771161422896086967454909389197735673247062104369951466767394262848724347374382025592318235798172250153621224505237221513783904647677074052114123526548749962933561949969843823072346350813378102207423810660860067476268573621646728630789800884774000925213035021623386558290071971514550123809569047433316322158755785688662160651820563343389142714127232123877004982163840380610864802167222728060904893919955906656415443056901762815105629688015409502444257720606815937976627177517201114088184294249076728724436256170595095490641246985538894255565217916857033942202296953627127549824279260207455237238105998794836868235656254680156566126386745114187457902341771110759992338308571248755943906879841447408052156288485650542851625812993648605214311494701713838555961608015833086031969789203283532735212103910690661918893448207995622069220130816467404047315211679611878062441476042515683700518411406590674140218400320929421884202227117959256560190778414045538036720288050598454037906280152790356820011059772285188386465639918902019544285065573177817581466384858699366265761297022981118677554272283305480864532695736257913018960821300270658201909252909459182900038738863805857046447305543970577849976261389571971276782472257608182433228330256931793056101142063723006460265673147509405034138321212013053277116439064653492898260030065018037644719106372315370470866636980847525908586511169068036413376770280710480449068717390633469407112922118536735883703641444368932332559930941144909581453490494713183678986055414513146528442879888731331174636655772860517882003688321475753147799055315803970313478961910963966442085234905997869747173685261371213567013933742508272299672506203065071893291386474347103606286771385546840188461048063931124873441591882516553632980793852209429037127723709400759565308508073391994434150426642100622537710788830308171032477400616230403133545702865604657377719826359261752107030242099210480699800459344081590972996761898275797127360740166561110271091656841546141790929774563701093695064560770749672685854603296582771833725038917030955098316462705287337015384075486198558325149646555253560525266720802676619575646053015716838088968145229409574205700798147607109185375175029203577933771731988746987294511125123980709020075993583669708948027552709276764689303259298319424623098073294931944427588929911795613689769790428931254380781599763029905244042570784892881999235852215442167848952387672691024241608730117987692756295668038785030340011552820239476984738736865418551689516846038755841805923609845701026076481635955907054911562357811944743348106427675716241851120060108430652821223743093372226789704036982713539973198056006533700638550649541477856350141223536909347044048269049008315652762218274237590582358725871493906599957580182401946769945815700679205118633316757498697159347337892177823148422616825854092829734517926304313734445343426964553493763168807500473116572573874683303797549535866345441614425725562578967850893450653099999495156267279377250153017817248946703665574403314260653844140065517432062296485238357249587226317579905435930102205384294811769248632292836078914744176097256386176322686935556497422152399610889189992042917022709000224189325675966527018612411973571063409181835082206067206523534625226419226256453201279802687881439291192379684079718005277783237102806830746195661942974180969477210609796916072809876337760333882637126100663034084699418217804043592437153049619239673636625848447446345522621052479603984610667422238482681710010327432085381150019283941754475080608712289937729007963938821461875027810964691317039471560971303585985643835904712157868154360804762057827229191517418408802844779365485313504485517117944433694763616567559249744821475019942062417139851656592739187937740812879915827818280415111545726722732427993295465367188259528479445180145461465156222943769624903550391245575479850571153940576284450490987830080595292592360603667807875428655532854847587263539719140714121473121349219006283082547412971978466416401846420758015237524284050768360009212642869825377749606780170123083265547942233837963909355173665028516007156840390027720642717572841552263214639316755426627602485140931361980254828831595060132647920813665667322587857542819099161319919626194071416450514387391645239832615836284662512141493088510472365079804344114866220955747801153764427205791966919597748458893508408831855761780438008744463025644282466619859288010146952578323943667849437642875980829430168681199955848171864089406946867010210497727642485110021956662931030009385189834127206391956746596875668802106755955099443169560027832111862156344269140580766765622978112434853532462978384474481932597111838574123114564971717719020024072552779209831330833921832987503818742556034550027678302454525759914919696856847579063531028299726293946067771597016047096097530625558921465557798700423382933983798684805116440609666264724492669155659124812086872897197201522467454370925215678267178070194185147288559127740344345004055194376548386555760461718487954826389770198053614977851699680249830666467197759732904538271922999489418237104213225295784496443843212178648642809018379294940695999999251856981034182168335132187072353588098544536340755483454988765367720729012271930190021781326300918868795128048706928444748445295328444891027900062920032939652371600755814357402372466973135731372558582251213760578082497029441359869387016737930037208374605389022569406385720378885314326348625511536344813987606050517222634553051053138136017150661057758579939772285224559514722384744030523745919790460321870654069731762340204863241907179281289610537165290744264798951317423960489245081453188748684800543736442423267347204680587250147879559842203874618154079564382948347888390976875644812105767413359070510454658660781194960997692550348000934000630126127920828185228548602511052330857405060603017517384974919594860995323562577304974143380845551900252660216313463249000799110962129668385345555267579892661041892255661378897610456522766588780312082839873388496603073442106881934489725166181277055111757136265087813567766244427021093991097480247815941630623357437055914096722215222110800803084009760128568240029453851161299390283761188143206446333484619079522754611708141672987626247126039781438081077283876901746264658709851007087460866706420173557823203298609776390859304474792284163131210454984480573546720302980152412500129078851415679417388145507856419330433792881845452877197010926895745427002874263906569994219532251507166465530561690267526635239384666795974932758589904542363205966437661098306312901210129983823548383543858692813201843026530123199604470903602827896007224881747435719981852405022285577319014839062424223674121854397022008945360195608009913824800762464384992754168489930019367320299530719717472536032980139354520304448079306348057152009634579881553636566208361567054788577032359165511126149667569881922465299406586312941063954191913646431242427775999532932470437803118269007794231467159248332851536832874341069748749140497827956808326061462151243401051205120560756722566853136047038052520818743023073570632929658618435416602681997465434733982833048057897079192950635509171198718492234840360300410034715248967697926139436491392588458141624803738634907857935034735686519516990510637086112243800944479255161118357007685577101213104230501446222227106915894543003378397165888283540437012778900058676869662093187359592394495778226223640954265460209679196399419537203550984536199232320972124179179537648495041740729978577853617188510467326711244867120773562971522620637844540819380155862524976393999930504934443687089641551931062990968769338892810396914168813427201200849469832109796699684207645371353017409227506520912380353318194436468471620549551673989389424431112144532544296308513743292720063800375939585528761508799313353533478578374104440836113928899223027216362461190430096850170143133654935800378984120830424168808926272913137270080711108371809201168814074079623591790055401316605302345648465240108917745094798444654771569213504343088028069946182411579185405247278181856128223103197318828744182281687630284450131085362556621109106255322405726133533774905281663586962186099766936962418964189132135648288244620557931733180482272704441378222036271011691577888142762467108829083383237014966273304209663708443537024523880544178900206340808835193864013180464883839570787998112701348066005955609482880599054295867724996811702885413481658807373450753431349352372329122325724416716510333667275656960465802831521860487817320270468286617628545864008886381436239805484473965645194488625904796641419038639469506098440025152015785470179930894817990657419970320978873520594676406617620868794634343343637020134191570532688756580912523516327635855107012789199332336587467907678476192004421614847753936285787378493038911027541906923386941477536718753955915169131869615059856369904762643737754269227525946271011193477850675879744031822507215453133857022220994889044918743380451526963569124999437500453408267199030044496500410676424073266085800872006219123113519110160590531259925010745290591193217316094671797541478423772683598984331532074874718116831432068573817118659953305376579066491172810908565676074939270069046700495327776151187639510593999692476662102206847857034518212996973709573640593988269382956375924955156171331284840509679278383867833389629344403213078763981396397682001958365100418847217774254370194829961932329226801236888550272266557032264642609478210833256340745490292604762017090712041904402407853289220014739647543671034776659019038511460525881982542047684067937673298097332788523150250643554906947791090163660316229511006526772555225880009780643302550060655322273105739809710989884124797090515672397161181997270515897402465802325525780723927409302012141053751381035499405308488106041797901587515921440229258454425360609750181298345607806155003907495384907824575906354809920614329863089482502426280379480056543823859298432210502576227628409506354624559960986777797118262993397680728729291734160752887834090271841129839189365904889474688776450390513665172614907218302201729669202797919771392830653291763012339190786743109294467773110283457215985619806544406716171217108926387518713267697686564146487411851748301025201427545243249696409495066073711386908924989880114848552049327597036303513946936597098581395073765467177232186623815718326811456496922474876629353724532023719277580587255834157662685790942716849898536897525908162695571957997792603188869175611569332094935947566706915971707929788410106005451934925268263276664637099642850786716238406326968621174703052349262769133970569790094897131758155175667450761703018740713281849310563090474298895736883537791827545861725779921221791720368839951606792439813222278114528381921392094303561271454285067242953314096470633313362965108793730413178482872133466268056586907559760224695162923353995094221571731529344827468869036562174567444961177650488037323759732176021931001302373541665868823314954521568050403836345514109869186793760105509435250366699387628687567087341643292372802108769177387008238576947039351822057382515692690684378577237216362866464430445861931469694968772219350001045509585887024117097686006151626884448364247666361108042001244514371585630883597663393805468530128991693834821413890901483382239542387275070521929559085469342640666906363561069045646197845428336009397810550706074801593654477082815283234577088324377835402108307947044822863142164063554135806724843753724513749045138536213122421936566253464617528765705587669318387864039874404525453798511319874335619936761968635089223573631996983893038684225566311891924472673755546101732540879430696878690731966163731545893995620238812897072012664172173213849058960647299986890236952939794618231098951977420901790467167944509583921061577482462634318447158197567243127425827006227778484370775132835002062721531555914082851284448847704903652806274610873700011880531252231431456517798428808315925012026329174025474544956990572581971396942678436239678343446860978416078438660509831251726003064744690174371507782974163033576040750923097366324945760742713440194965772866308708422688268372935852669067602222376039042012716718348907690030897943772815272046221023918800844194768699768623646410767222464859517074586205386888840955163106440480638481854693407463343839130900557200791470941664108154244702498460963947523504900011869061570022194164113530904910378722559030333397277152089429548311196552203668845540939727456014078097302222506034647310107117619506723619580305624992970935258523137738828019198354404086020751641068269731364550053156410464342188763614637521533606328240326938137235344023732107142249239689268213133192361868199486085059092683791443165282921647305158654895800812500904806886541070502693973786903120669822952706319460796274345500076457311392390500037517878948009300476781686429517763628385191469314828500036270160427923235544740528623836327624525126682833536090881795137896986029761696331396857176864140366894206539342237285648951104765198139903969477198320152157917457879998365196823369179391785380878181640394984686984605906333302307592131351170801269283806634458105881083833743633018924265121984637473543888943299341423944263999019461230240609070628577184844006766064500845821950253907941175632935348240157776487118005939214331637269239560402666972963538892316704276594012600353723752745593677801767491339723547461114854218886118118975175125397487845148202653738043694689316120798629501664569280566395363929991112024719761384518312747039822059045030770574130388254630809843966132591695583993650227362928913429119274064259095722743914604972029630338280461006911650464969996256460546140304885056231527247687101919940516865205398549716246295601804096374701765217125456363373906632471570086535503512548272590528660414840524997891320741661310349945404629014979348771344983381308736876184696930090747334934711013153659959900768491810936462909650824322480854348158171195559642657364501791435499157057667913494254003809929008186309282590448673664386792851704257758319707901493010447001345406667222646118658082496098159042623616396729462980061167623250732298282548023008277393487589989314816521563632244527583262397586171998446899249223574436673680036418169686628198951770656759059833179749375812575205462824959999206659678632443435952545308665434679126999608465291903623636094022503623117357161227884705170831611834059911790747911993832162747183946152949676802345576120616584463339035227231943813815927076868614493357435645481795624503264168719146240219357370040423618764768762067227306187451176755081853674532003789878414480919499490881046846143903007043114219691455392977379052397713315362664748500614704828563434692255142699924300096570379318344540571960249166930024541140045315926974463409429255510701006426329369494327910422804181508285723851023531988250237027724454092766796056864640812898206207311904820535943790609337698487342357170932488556706494893869233905406997759739573189720782281001682577254987111131029069152890284154917497326586200242838535472677155864604477016643544168877199451620009356350959213107951292452367910546987547345072014617614083342484833002825994885392998322356175983872204036416492929651525682337486868919321861805110302801436290574991604934586883728067822356366324468978946367411118169936295629740313549908042672632577221179563129385769196643555773883645755883863816253918322630017813068939788103711874256067521868637427959802930969703695473588191799137544689761005358071379802870866077319930895949596687902648385970624472263147333261834120916475713407591577961855159437984803038933210272545823468037763515254736787513376516819186129276137795785416642855144622290939189284462443407786339230123545582825758027009130440333027538642373043957514200887793150364152475085188841451161912282965651771404471448422918885766532136172779105532219909931459536933756391589608919457465818918598631158699595304141580606601129982753834538848298488802704644719582949046259291680278916463687653503106013905651403759345474819174551998780004573353491679043037710073583751438250229800380637988903614135756005092144441722723690071642932586780071423620741461040978044775382413796649045544361846626841937944375062229032068367570301691400924243133635306301319728938875271980453168364646966546085125872008981343257305735477103826468311959169517605922814502997008839422018011325606490612375240519830778254361167877137620203406320870565882604500607286834934276555902162358258337491324108414059038602160671517823234368394035634198617481874440199782725995284945213178254611907957645663899355834445120054595485922309988651603905714778527732272277079255121976514984821325457839010044900740299676290958104302157376403503979684249524829418976080374092668885610693765065810408542124081850835177117914754714113249833878040412340230107017162540549016833574127866154104481968549171597036405228740429286683258827202088129657929117724933435993331029613842778455923707953465971188877601153801883428687059940086452820303599810841661368242641368697725365460458542887493019741030583636978853261412418211457018102720920653048835129592430669826102894581054017917255306488984734451747676825080530793593838891756232131270443575732268961857743866751013548613377644026826274771233271908877624280268145522891089125247674714881549723128204555720511650143605323982774183561134006344732881511185679154122519926102772224684260601457432786987054287587916480403656211851084246460113175303809132081677648183516768619727797455979444668325553169525840794637922751103482605644758108758152404698721671616131888539440089886110650009142769044609571980058596637921809591622558004723308466863587537507532829048590832804049308939532654664936494134121838078126877852958202783268960328651277384907549172173928276329822196390580538449185979419728699570676797084759666646892469183822917613972111006418160738034771391305078534409201433513314508834924664205361350459829196676341318445218988157275344796416283010786982867741818369209754362103704789177039814029964468967709559937283138182718865431053761778018886847512885839644459649084701674963623467593524704117131756058381168535813129679191978218218327990186953595479204777490539066322022783967714507858432280252818955169882281086247327050691587735136963720510391388871822383895894020193441749285369720528540606705318950436154971118438691876346331160938395942815855411204518420879175181001803595550122490048618551515959140538152960812128282902439967484906376356245610775122050614573040794386617421216618465150712352001512977669257296509479890822956674038988067127712973357031951557092972610082118265728781316354831197824324983184715448884269571674496062012950484086820987237558410471733275579065200155996305141188107305131046287034318776596097559234641818069202063898613987624344725101084036064538164048502994120717182569696779528238861782530050498634672993695366770609342365934652632870803527167931373630255167136037630575802575048527900523995799072250849075043269800435101938187330786047589092913648325998747461169202248081659639337779970403736154269669323839907332829821161397933293330166201077269053546405276225605975979742007717378560440614830965560114334574323741440237272274471168077603419116659561748382822316039281246459621189819036476650004835526673701772785080506418323119706123828487584304340376291556798435875623914706119046939997784091692854105640670827068024698620458857883683782107136738122774346300293400881728458097465280807401772033380311601464930571326527291431137282455808477734568362329972114262362541798212316007952730362504963099424671030588793103962966689430263309067070002973725033130080726316035105416782119145125113191722699758078137984548798396925641853616741295911785258726525451471220675226181007245392347920252527378986697689391736681735767380061800719303599318014589910435695280401388426176299866566598765418141172210304384203183796014724806538294595156958725177280090107242509852479344290870673951114552398137156624970695192073188122258841086250684478679605501848625467541460227947863475210046878346233533809733215497292174483945231802214559136972891874276503295734559082724901822994627210816244243651072822863918262173555111506190844358891693945199104359535375200475712235205190289819029648611388521567645996257490302788907697089866334568662928885201342765629000358264432590409433936101270086643015222619571699534598201054816345072662356833180012961264367810444734615193497950983571135895735097646509319713122549616755131037855137519449788449983203204835738147832794165266593108950951839790467306696650703384542480545338238486436081593587108451701534496371664008467991221862400166251609758231775369322447580470093473732361053860928291849653868209326709099554772542262835923472724809200826383794649846979743605318315643675278167347254136082903776976157599532826236429868905267905236732294256878717029531302064677516053079035834531723301460447548160478894234093933934880102802244310416278646556618744160039740583208299139441735979334964180440450633855060014935616936044625542873936287522358209648131438310580276389225022423040446429833055694003532328891775332034615730248346645769783783739120009562762959102010478476524628217017304340910263195028056119149963272049891266862164713978803087340497498866388677108906880115340390915725423271366097673031460156497500966752730696755006398434846437350301417339668325151724774777853941423528395455969587289555807391558783764597058692211141458182756573981535442396516962394051173294345099439158814295775996596210424526668128263061883091173837964802859034001908723140949329892306826672038510920436749682121806943919686187226022380725782732984707163965431266894470035683618118434615741518298673432744507748776786422974556522350719162208296686397669145611428433250549442450815293515210923684548380883379567432560473982278892844827215636802732684134799457045111294702215035202404203837319679696884801281908910675023386902866581985874838594898934054472769853133792662492295105488591930475510263187662604147141005875444739534093652625486021740606675494022201011650518703981298383644607827448527201977440406561664324254370808704000121374393656439334406060213395923214171606927036655964605867821214076715541182896860323579679659702132025072372912904791215868952626958502452525313791641401530942392807979948549250897477422561751289643108294209522600207428707891447691131573345710275110957196926268442942707494911483268149710746787262731951654409918198565743030087817064016038822214937030404284027627637942787361565748414326998411146220967025529994572846968800562646882670786052218069642358863031891618732833014234243451815142622467585451906008061883865607527634499485104534280022508654922109402412281503072989972257829913302891606343823209567373336955161729953954151594054316111456156403277633876755742232150132424609866692282747480024254721782452123307849464416869638757929876502565902303895817362355515162409536301898579345374924579166336065513102639527835517843109957660559234729274643899405137903076068440505688706092284883170551690917413391624913083029269769348847895764458919803280649851935632998386389376461823160926769504041387977357993681413699476290583011461846077007989882122720527704101463484747243990535755249743719428618991344104165512174253150038155502822452618254950159456682060811761720563401579476359512399636644185172040394435370061491183318088403476194909736468849221067407012698868287192873448549559593303046386390550653411734306485474280859146421813936985259249642341211089428198691088211648254409479810561668305681286567599326551726661233152188940284850861293365710462538018858312439346870535690611229997571950722436018712771652836986275142186319454146607773477065664926901239463382904530815801895251848731803764435095143515523848926886346506799473043452640746517168950593885048148015500555528485688249861860653379928326934685512942841147032532736834755733055071269164359358548035740894847670044306997715847365493837872637464499783212068284149406756179573576612786837871401764620911722905838290580333590526019814688853598877660609049371854029168070033971950642738219621805569221988346143702074655248580634133781965599349538285897311586218415355765723535122988318826162189569184697254871253551005920101667200530437032750178434265991047852259981611066485811222702739146560706850457345048563719902078025349928619620987165178322191838794275873016238217946123179731430828815996955297410380517264333177890322636110831998206906445911342375646505029683911677628361026549999338260692702664483811176203062125807651836875827107476988794996227104375874871945977754790363223486887499483664465090514928943854839563115271876569721326936359778536506954163092866172228436525430837123951371615445007486930869583797941660957306044608608104090063000299950820432295244838841908992785547833516809936909774733691687941459840046884886744607219478331170396397446100414369022894569649884622693717358387782625774983936262385741853868421817520286409320247968839581318043033441764106316389510683840568978443384499772273329803383265585613370280892038718815933041546898836599772822018375690700020515657530877058456682210930086423827703191185651909211991234850218451895874201926225307916538791994506204612466666869800586700750744014979026315253960236977731235100454087169315514143137202804193553568169575114891106191481930923170189310909209191544419786055998166726391311571878113295784813783114219510439829760214193124368575938857551374479876749229663903536249144290880253166690000626560016436786060201221320293392606590226053655768278888304892741014735000722862655385060222846578886428076877364883199439838402295877938646710053304975044224366667468693084495924669688680992504114722175298836441031516464287445022225202495217604693217341035342364530103298384005165040933064348058195274988638599659140553650619945328621491270365053379172780744278926224296101270036653158617251481770812522580624058527189501690219549449369892305954337322855851183910960025514442563554568554063028166653220976637604948392750278141040819973445868533317471099702642495184515146607549220920417719938128841424302088066702094801078519914266530378097185312516066561900264277728406634022690551830287886111712710288289937157430859779970405339037486290146224587645501329273722341710180735757920907081955427002709209960463654989057202187443103635717946188950418512734897608478528074414041903882823859503457571392215556972095154443249867202316260642392239814166384321872376239372961292801089563268632596085994602307920001334549178031834336834358840758084138501139820776623614410061219539872290725446296019379723832082810142623472191676522064819734988796241411677553736806909972850141347744326167549351959109228286335929244951362985236034751097658725160408903137453090853005384077501611111050280306723757604152291907122582952317956404995378017416771785257331138544560955262421137349536700408426742300472113856876950232417978968884130353162476419597589410116843665375469480533132379595619518402893137384898398033892374999424634490046476750742087809618663303819135591137602688516637832800797467713377776276626447804427677358390679797298309739062713832275259720211206027055069573066406169493742150477044629818221535102723286156261163926937596784455614233617899037370280804156141869577153475383009254037600275169294868530405391735356056518102740728074977086236264596026297420243948523160507062029663684005342484338822258347998158776803834255606141499816909829331454515433360997336475454957980055199335920216671958500815792725884145423756991448724759968752744847218316380266603260101134217632235447728510019375307094084671854003260236451949348669533389092134969106111037091160256070847942957312792382180545732268132817201104126181507703612965164769743671103722214068195383144696500325044629445622313966747640260727444669871621314329173268910417251891707878196004615183169123032893704792537959728868979369120668746782304356996695129292107863242943629449723359174282696034610262480179418761434196015339836710863182516735651626404279279934103859184743727395031213164634062569699036449491754704351927279821558354114584315850840276829398885976014385823173449899733343265753624980406985198271837612305667612762063906588426040435938207913386593141309701774556931146525431902823467423546163309382703245110893038814035954646678621142227809099802649212717333800371220838619557350267468167891343542120993714818642853044625228274237741969781080180832490376961496504094069653120522529006732734146329294774270046699676520751142973624519379130999784076033601967772608730612619327367644152409024740997820725980054377868596546078069815120586733160980403322063294518266288086799776927569791969934510247469389693571449925369892470876149896928908495536822477785745883787591628330984400859428712608149019541088267726162950811247346101571715398535096705208762265525097581102755784118808509408346071144608568949568015752714771180928606026814404069678097596282685193184248203644560672225497836692108389657712142637451677295018229430236371973539935970305812158093050462719886987984349389844874556342382393387916805757171088734708512768486042518679420308300068514168785490378738006870543968675350195628070895081602550407769788802957907197632843514871692858097835991648988279777094623729140910361181691233992174658592134695942096501725827124471684808517701863879875403336762682350333261356783978968906502934929554111430372437637742670149808976372150146666906888287838745788968800292627530149461034782869620771362385265021524590248104062504667002217440459902794376500795729659237381715202633590623188592434417976658620689005154928231360542168670175039279210502469480676670186685942128275015065303933464712148816107603769072456162805733535732505284025523152659136088359573375028903026416605719121642132806629118440975851244660528946220769705846889414829171662148680778626187941123931910946847864549976209996342738564496300327033943649702271325147239916454563834089724458016272630449700835997990327789574275946161513654649149983529336026196133966534870333540083206891882907764913016037217341619994698054321280623732615561951663000024868239042501111610078533684332389486720294484095556524800134428094925590411047416535048831238374337919941671589030150871983273940454026577186692349637292117136827458605143872318007149565713496048543911931204368882020468465151330723917102757853905262527733715426398227764794203342992155213237988368653581801460304699003090553424792912875424610944524806878576525740265752050216083054104725184341478721217307776717629112643407883775304482587585832506972539240257452602886237359818136016030326638170567221531075768079190460273254597861604058143333188594045749686964036106317770682612660692223720056168875558271200299568595361849887983612483057735781640547409628805958571167378444702401926304734372444545346182540121852090611597773224320718963511167326585053562281381097291351031430534744114550547572469767409864089268105411435165377301488684009625959103311697860819688755671936433832009606959986039385184551441109246074947770060942859239547767644370102054476229896521370351375055806116163040923527792226123539709375263307269497091860463438377502901410712552543504622150923923482340141099458809788198212357295270383141318584499094558722147769845963772077934254423843027736446268096994899814400925222604901809985934026447314407476536455784956895658557161224524803622121359448548102811840285298756237465079082500898886037059120080237982685670490345015991071628008238497837786661312238535281557971431227654948131621128267838913231928488381211331755823630559550327782372800929362822754793736747389347928289051356165170941043518803249757039903754914641958702029067804581116947464193230560712081646675781464216926889941997656244442770483033831799451526787325326198188190653235731739732054274692775112290891631810340301259664698923267992358616349055712898759064730313272046712239672693880806414788704032337986135289739765535703501749846457150327576397040562307213058596878149229681618911407616098329488729316263592696557799132964961408334675557095808723292481475471633833288524500390648100291128180382809382963781414070427797666886947059409879113984922221528967837811750694985325199455150893040519059577800761065669874707831417131839342171429212485044998971945359258369571112261061123143370690319319797087121576770530033114702109023180945604708153384456455611386595895907823517190508881145490223740095257047215399280842157279289380071240616290270604340896530401172186536089316865854809810280500201196443567276866664252881586521386305046701358475262316090709030358632269889427380599959452489767865404908602139017770954906153240229904758837919523655268829351819110628383659394036015608958114690272552279359555666825220653782484158360188428399506087224017745447148120798833384215591685042735489384689140714660236211012346585341662037540719184607768983199074633029926489858586897466158155603675817761668518838211486564516258010690725990660439922253203847577964681334335336500145886047547853909651295472981887294689487918878562230513312264132455888559650209534374227197410454187841140045661327401886162862275337462967973681320453133683950561406363911869062956301932353860180328092338686645099087932635611823685681245590497041853940543271001861060347192835371850649025062191119909651610159811807553644360837934918811170287576645092415833641284720795086118759112216018699398981901268835234884759210875183908210374722814813517575673546142830136320827301840073800588882670310132392898368010858807662437995396561470551036557576519065145067551210160656203145477645329262549596613766031771256458041065199972576170906793175957630107993403800065438700920733342984574794605128998939903680506901957700301814507363287449642408356128097160211060710007757754831467302276777741458554235487491752756829687156929586376288304118778644157634195845034117599283965982807956202779673958659897518219817389228505698700493514112048591157018893268580880083283679421162440247681372742225879693008331706568022478851291029400263368469541341118849191819414845124161719896885803926733991765393286381085223914018813684592521225249657370113434726624443354019279344152463193764080036169026736688402672492019787307384172376475297591409404592084955918427587187573567149851442387530295903989556708138212284973194400726294027960220067182552307207601687069434571919947224046055277572288381750640527856891750039545756087338229326212763839626253871636596242129320330955558539787456520440912898504170007548666328702939503771038846216001976980017624947705655839838026499199163349692433038324739075947302941328470465946507791421879533505382077884523607299139368802124889515531913022561685835034984958864214752540208068355480373613947614538952448430447766267368767864943270901652321296027702214213016656510522839133996777689410003085929099489899848508862855347331454695373596822729944012366920706747913938948103563264324835627330507311774613288112864903030554206005539737490423758593215375732680504251496229119850724622237885221950607552094391393893979751177769311029164151166004445928541219464666001780444512052413231971518243059475984614902512423756206050347121350103802191460650192642275000459721633359487161443326596228821348130991066466902233002305831099266127333014821752107328529069320960490755935017852761019826071100097664481512226280924085371497250702542962300101833607619995127882590034422895397296659477599659905054727008257904195008538677953624598915249501389703709588393704927240641348331448436514375164095445054669912295263282075355167758281310896240626211100047513737246171205008934734651545799539264483959112670789844208811717937262794123080365294152980474521208824487463486264892914991697483710154470473247525384896648065415385139849656891253763045872159195692957328953612931486599659186034997121946668295500693057558376491168612259791866753541068121299467427339342148467478702101858577265871826090759241341155511752810326814651650891082935746643191793203696374464337119365029379383307430865949480270773600292033311092015017163871386424958025368501143175873745171403679809825436784252352877868576415084368298662666314180466253984726965929718200006656179890811196111227861358538978837155038162329714870356397112050845479232473149950707276428274352041241261208609359633081451674698193294133598728242635287917749127247275463095176306119267471939436872737160020429645978537648072060642536358642625465432303981073889330389683235301406070757283295109047340638008903896954853361571300610665160584780950467641509040159537275913985532739666450704437477689889479275010866218279658837993690414025796950414187049782632075400605723083180273105218271287162902922018494866648184591043412277052990450458532163477267287518180784115688121639142533653500482681067310747967997721787529168721184337882391018684828731300776674215207035905042854242033552334360135560462174349350642608680816996638886523940349597812590951412442415416983570177167487817015584250916064836784435088071607320098567013946107027866463845412057092075916061766280068046370915491737461975255327762323919983469232999074058991045243303217046205469050034273391451802765793444503865122462549609338418915011686108648886043990413990084746904454092776679355583340185995004677177657503613691922967747060240074795785981272162398020607203111330388806485943545998636357403260998738843769448730256006469230837811024899297056964072351216460468226758619841388160805941190285442007196748340164548385268212723776761823616802304518047313928217268726269077569513030542536935521844343283864220615948995988013508658827383943380704696193642324987865534422077086546680870057884406309298920013525751923613832001291582825328557835118324806979235878808830944536330751084112731519875462664695310580320963088263089733624568712508662512622959295225311813514615711745720704491882717074359199449682360144718210594321873475570898047207254465075418471444680856613756668593657002424933042955961348408842993426844998170789504252125125298020451193194977256100053439767424389256346912467144461972261194312991266200770099068805458372400004553361567705586366052355789876991972860679156548274186493203780044271860873796481283971177777001829515542315856026448653031317902274180028297841887420249090213088013142836401059350238676152228465244827370579383376914849987832418377482318377303371292401605583630181142366498430435327397329658171406902094370108206819167034588514936871639346720500391910018399238460536413382030523232576799613802333383947110976609519683523989891242221840804542348489283705133374733399935484076723325296504096400553336332117083407344025557878665523012183646297374574366139831723547333513885772510495657925714986234588979894594510178859767041124119723830561008646548063135889965158346782475948234486288060405031413011605030876071473261898251171843250134997524741389542233748606474661029733798332444652397141050100219918418756963836205764367111104045756533347423634999037445616325540362269799337860382291370623055556561099667889491693688472764847008960609882258426129750271688201156714431376653713476776134883366592857611064615697801909957601440417331262609270178855559708132120495835043057610980951286049422635249267541013634753223579089178328167464067030184473753621318221361852873240002741545880753063351190026440427746145572138871194107763455544929644184287521614786152296062023623441593262677247800227660371251224209529971390654349239556951515206689889596694835792111353392381465120165811038938782008339090030071915983702443677135268542598534563151424005905446546284395952757528248480947486454236870126735469767788941809987018646478482704172716578065997230774682990284561386522366539357431715387317528964895763277002806643080669393027074003676718769414421341652718802269876229724051985167258667676815964641821133988006542057721048651968013654974949715698669538221685794155704428047037426677876956695242763078091685797564429578714103774371077080704291207497960369468055918849171454279160177798364117136724422590347717479720986100567323054479314923059982438008278246182036919930938970516049106214503899247802588569291609443316603138699196762523025004041085772793236011220711243252978530485912615219352801972745334172888707071784232554903338556476778886856960513388790935483893529331860524426185093724240438867735196828439511633647189456959308709097725562313414384254002266955080865448363127593867066537010096932287971088295909920792679801234463649595629213322186621477937935779629108572341538941009190417132582611074967105617302182689702506959164557354254715855337437110536608856741788052609932056056233860706837535507994609696805128575781260188280046752114095105733556636265079755682244132842740100693608744628276381095157052172713121487321793837544580402877277604613613355222272943789052507215437679225903119999833746750134358320503004428724359746503754588307027716780612874695221797978504940225628863729425147768517137558482865735368998878328609654095616427994021098245435839819614142814229393271880036444418941529902181396043958685443419883071450502688810486033008074062963890849199210567285396210038455625678636414854231807781681583244130216941522461809192822182200155145905272809889971306683050969785502234361258583537173920907757069451719416022128659550012181104038189400393098753391174858743768134948443817164221947416180692541538020651347514305858792187735537681306099671219470472908710023641803356199877514361371338228081389066092673915004815530958146090108350324849169778584962012680366375034678711243941725106335686950473777496715907204732808773961292003845673778643783072041178127519169233750709504240567583074857696762404124299834055094544433941353596571370175118841664159867086560392913264045226539574292282396467375728333474148901317031533221829560220613494579065023495802699407209376310718376472485085625975368200569080651366166889732407744192078296605780726811199868193216057220804826745700132366277867726021428702078901629521435793978470160208045213465791396936948692557461653077926237988415804648144955479757353754140482617262041439346854834629693109066308258169308950659728962457905308479227829652455624661031946431348040604312387504181819940946742291983806456749895703338336378592192497642123882785340054927438240458846192646316635682886412341864724323289598939252102400071219269273150812089599777878977216714080889630926104694725886230540959835412220129777661784703537035480399932578670639127931310585792403019331924830631128864944519139866907312503363327980915557194203204072568219002371689761962457776424841721650185491313971827929948667447642987810954432035922510150915827184177631886473699699182915725213341154413573486334071058122986726397553157470572261455480974772435371816435611776487667988333411414210606584014723009705874288550947621631038043108847684186632892518012404170249813293242900861411528103255833871592610153477151914171434739028996191506343809507498160065723323882862657523498985503100032033588736611206459048612746026050239198303344304451739657655853924299141147678932063930726940550609960302342880533708274808105365221902677440101474064468759399961382685325213330208439045383859355429820871441631195705513787105298370923724252435596126201292828277858572904917968493419844906367402304909108960244733010924100657302854884219839255543593016899997878389011707536619564454199068556932121408663668179243367500417422249268719368544352230608176609310915445805291799073901325163083622684569049342937596242686208950298357460930154688386765280032646086178954021560986745917314079893293118657254206697169286536386381042013393586556284035045637622682444787325120306431728580747264740557535837817180170325710701919201324579208701600919688227975116760094726573384210297147566969241818093018057521867764587472654335047791847507362283836523342209534237423032660052709438115261961583927568012688551721467390058639949437597898615096429702811095797879384031531799182487997605179492236959975357176152870288005968887205590823425237204325840974377154639714150233180165639247314180581508948273259385480969575860007279746505696472396737429652529013348484359298223930667907847580593956535464411397278613783694678356732215170777119091477991548148734611263113030263137987097840975128318569067805944258428089044930966055136429339465732985223682442161216456487022758291612623170139189749435779459820295476250565589646190751076803115931833915561277681921514588912784817272384558607454688669673309271986611953870138562508264438302427984877716413802488146410748954708749799824305309423738911650438642519093737885379287249931140993235164390732920073872926777965057078240198457767664375409078698564538702348795619625372749372181557254409202103139492966477187732312464963614290318668033823524432176594741244720746115669971226823715509422464985118849936534856225703196066249325201320921803577344221749135843069065985448881178357442001847791652659284896144178685028201020974626265094050335101228925083715926100581075165833072646843874848311782915889118042614622556284726709053965397279317674486636144101613147969445141037442362559659295347961257287813160669744184371704750957610311435347339290954966626462292913280169084797587467186979682527585731817301758773741354021907761552884636252015393214016022309103382003311208256608317190913857985313022596797295003474260580963269895788839391493200876665242046608803244590261884458632121027576085083852452212475876003366502425994064665816923199954498114308754834195200522872276464109336042700871060391991431153272141932781528561781632647383777239922863500120279248065237058507748836530209825054905741751927860049654297122496490000825983933216545356820709763256512377776694473672361948475037120473363364744420416651558868833171482888873624580690522439212017280319892551119990453039963047116160328861576895958523413946919733006711805386294136782711016431604017248084214270336352606063694277535132326602396641058918715384493847708167670335616310367991577008374197926199140219025304317567548865280694638011857723064558891236477771204306074459275223732817705103950639841335578900580905826447782423913066407712954090138337197076781832863634973572696145834423837248628928602989716700906855150697449492857731085935727493375273340344858520100572072070953299215819001333697918698070304360645498383109572662313147170600612901264121494512767696403785028964179599894594665857851189561748921945602199619299393143399972631724653457226193110654094564936200932093534952329746816275532967296606999054119003992101371399351535733938365230118271705060462056869480012318384800099320246477765680413259607918486950202968225395929195329955524769362757352736538469331837240242024648915146927047573042227020609779061273432448212650915774913206322351722463355433132316292419844216154318257054371222684873010014137428323462720150818707721396369199841613107087951217557533895890403644034249542069010006268491159809740868780430723222504699394796280143923163942979879302613033840362738566090900917808541010497724127217266894581032334850048861087173859523173963216595542094192096016307762841439615679992406081316800548283393533154083099759096289748066004790504693304886942679992335259344891303104270411124207992190772752333485937624710699916911769216315077330156200051485467089271155295935214292395189551901013372560908638832919876257691671761845251889363183594882660581074680910215654023846388270494752967830850037872736060218512049098482760545973813405752865862946988889540435698498884498946709402178426317797814472727499285260685339919473582561016805176625036178720407938314961157952389012987784285094357638187505338354085526266718193912425069983172887466176492623680627689701219981805420948325618934839905704872405082977269023161997079208481291865824108105978698000411057703379499075148730921723909327761668721964274248149777873218227149653833463404428373938304803789606327118462491101012508355988888255692221668969433418912995400294288184684032774924686202928230446888339194623036411731326409978118664885779629800580762622518807215305023362870257024265545802025174390052862816001684762614556261801620953487832478248454768125191633397561246847858243594847879657147975961482965952593450638498841950584062736897685564600841170850141363382736008880999513531731730786628475213866003792006056834424002655383531616811082006652589148122696458894746175020663480689126419550507223282933699366753356638643116542674073014949399807520659327046581460980652047921017405464883473110067496878628536746628081956305746186812190524239800336353406196443284641079053871876840483559052777119126292938867428214210494062266859514529184662600740224842909706097574051492436848631909997243925363223237393887239948284226843709753052594071512083603460644136671774111387715466729627753308322333503713235782296562809701315054517621273244323529213276334535531706782089105273182995362122393339633788818765343731850998555342140382111979418802991215501083136116324204705024132561792135138317542813051931317310020739018986993145486407898903703447298136251861724713343414056660528945641905925670513804331824348358954157954527299906497220452742395740555075564325429417856519414502792722628208443642302978979200793450316802486225321324170988623873379580872788392594904316035029167216354373605188340113757163395583056351596858426659948110216817413839522065135416625474939681885646696604448005548135482685672108466668624694800865994806579876205546933014104662470047680780194030926984365240674626290313397333099745475129270921461884100425465791535293972676409911547659147217737535643924771712451116894630260551603815007374380463426944199096319668142568052619562846647483096282177933837085827499247278114163519381025373554859552601235237735121353506192455119531725471522984616055451819623494004714250902834319437592219018695781721113485740540592071687452109656829263462923347721126933961106933961975577129377769931044743186637005280021702275121740946140010022471979709990858101995712027781299450189190818508911220514114612474817801160485327429780536809262529673104175952564466202272295386567715343635180473290028397856551842208131902784403939614427082280316657981161246387796819908344666321417488852707719549877275852303042440550523386098110097427478362875445233003028404495744234014170954244266411806741400310114333468878515887327408032486124583975737360206875890189595139599370375042696486766332926829334397270572885916238988972904598873572444243646592735019972224748874335305672745559243604309476092869815513035650927101532186248299416259678331437288096848491148422822700983226617403380026519889937222279435310864464530820747848651989346583444053827141463179070616215565887578208800407712699866361017569129803571007681748202700671519575426736991160844605378066239799730139083615857164905424667491517100546386821441452083596953185096476854639593384452933589359581156607857205331749355011075993837026826744305393829758159062864592508002029612390931991113188926658664471682553330762057739431863424628029149750266639105380451376936581263917422242256961365570739492555242135840206746363691742854597331105633067651524299123967228415678834849294117735908299710452002808866895750441852011187958575678663223427747382895842136718726516048948232766216979076866028064818735426592327115377866211874651374476530399967366138535355966608679337531396630896696861685934861298488512867899660938244980766329460002537677754342718819664834504368179874799569438370880329299235872323628007350567444789458645945075897969723617606257729990407173912510245573194826585466186567015254141382369593897222913596558349391479809341404002140285868653831764722476398726002212257851437467386281586640887935207439095918371362651500916209178981328972219235483437653057877864615400934071197263854371795876789616826773661275743369131543571619657455610451889881311658989468703384439732976047827394533749015658654992825218626462263288136743839789391926326623725467399567245182973065912799073295855682111010065522594927869563183931674305199701720972254516761557105378808845184944768316149844207721754534298484429000710378137828230551033644480379850804011557675873731327598733980365780966852268853330991126817465642775500615478597493304458465233578154939014892058739633388843308923519184884257941787861650208182754520711562985401839797569692325732561252484953472349937869985569793178618685618191387282609385764150843037033226514114826417907944026217848199093894834743260446391666335372389353549198643659807558338499788017619995405940349730211281176455916262620732121482944717251205713519532928579642583008610444398208751244371428675352099333116786312778523939221811292308136993065041907678383960162798907317936694794973294234031458600290222395289434499324761466906873046683042813680859363967884967490598408262991075722610748110646871699923594530602520841818537762830588372622902562538760319760390718271252892740583147185407097630009793744861809661221838001903142922676826772339353163189905500480467901886252565743299721774578999383096655067524154913196139375982724368765772810158612502385125914999685635355278415374855604194576385288739701743998877239803307622013539707136561381290415677439557383904638573142664178584713702123802402732676633029351634092376191967082945105334655356289538911751168549527356031487650384464702083884168756568174987325649121180331286163759137554842250386164476515139962188962011886835885694619224561447424514414567446782956261161687147347087380132720098511622219840533309368459630077949075489334042321796393067799623256837528558225573427189161862549795911301616699081389193028433959274387953480625256221447320298626870641882166746832928229410875179441467684916467029222133845368671328256303477776692627661066707037722169246774243426150630686101530866753600817021595325833488931973394252928896479142471632704709490079148727693896970373906102025576298929950954530088648594313014124795410380177567101029978911954154183546875848522485844242648392614027168708445425021214703283301584150386612571199026880886837306014081974021346911630697222726718613119846019877179539386815179361379191450140124430510027887700575112345629029070445865426761734642617107517277081080152629299400566891717135120462755932602001140009884377405826709181284501187390982807031173157629473372732199166732301942456950171697983531639228985269187638145894245993576160009645679624584530720759684307034488124699100861849695358745796905476046827653981304208433895974882560763582820782955185961371358702045480674998003989345699237731428213371539639980583118164926685668717788415972380350901795237845836063230584710039812631899630282150555050015130521878293022657131325237603679775368330570496275390004944291953235166528503749898940939748402710339129324096499613504271818159889623009853111093818557842230507427189334942562997611619552097682586072639598844259237562170523870152887218956487707088741894859443504494204184794432570947085083847142987876892158252433723266009336102936476459077657255543202688819923111850707108502300450152518550204988918943537424250624853751848275109876846664342156010484386460509608728856203923355169704909668602974037297166195877628658258562533449376994741285494283483316034781431850932518402601324298121534182127221421007130931359548117889127379573106551106806968141106546169771326224730542591151930147335858762799974687013602677854964504762660869015100263982258440757204143453633901688640785816537509445771343612231540791825507218779565695746302334565383553824635872724196757697364260602817485034867833970809634526040944729686815657195696287169861398625177149495857704038197348526257738323299981628933293115997281190147128592195839614283300913768480804732109744534145603794392602253246819170572914650874194905298467346636042478746678045299248537519358623827042243207529977529252906431355573673257182826559998692050806270786405195460825368492791497012984640324815473084210054733315368350165389648607906651842136230874968425540617655802339458591452004745956452053497568391480442737258573425255856984104747110331639949755547389018241666622605738033872681963172294485785203532972437895704730806787169106445422541510689064881656577205761137814057156230818048012281976583447468157665385754995984402287910449308919577718451714116653496473752015428769817017607388572874246182002426921924165072960312979316348881941098039397788619716186433129316380146726410728108728802314860531679231206736347193951302326582628272170052214631761090517048131117868297526511980630144176259331734422063445364879670185569636217760805765014764125167109661242095537122364894288798625492679378265194643572971784332143545852639285113699655303725391513478605676042443814736696653559937092882626637131062083554733644759575441002241125198235507890403529020023681726922000654344767236833831677321280537300932208118251586132609312199018835523786535758160184763125039978332971347163580830812177775411615947527304338606672289721770491219470438831566327566524342859364379261148989365472326478566513506674767758523533712210458557483447731104198192972252663578355226755367217375973001916315009871741634589622444093949976071409396216085416181342418535371560886839166303425073828477395681749303785721568868447846345268835194025651101555777244989978784926412695113153588568703259190257521716399882381076417046110908829181816063015213763631451529905069630049940872751462979346441461103651689804185852625146724596346124702917947362806155826853327268272572671997429103590544139082191898407701968126641976551291903374380278379006079637355436231502867072911988287227462427071283933233789060953305745281425799256587625074076788934200728218235361206493225525130106925432493508183563498485143633694759180060986881460788279732096821334313828194209616846951879452035750618773365413814851561023948112777272091334980966697841472345439065931190689761714597100214676335360914705811625683273497666794719267558372182448683975483612918911734243495129865854388058824675106767722511401470249561495574075533458050847168828959330655235017873021440398277275073026119187855119283684792402667968138470273056547955159876406536737480582093698214498971196731924144062330274119459525719871323040291414171127537730501966194141170681790422737206309591258268964664508153033117041581187624590104380147515810080272247039531962581684821838709721329576049162329606833746718186728078609783139411115417614862509182506227265040189357073805192526186642411483896307047453804069325585246719582160881172917685919670019519371987013200970217500501935857762321172600396594627670980096380894022467889433222912531719238635569143839772972210541048226831567878395426542271040871978853013230785541463769560488804947151372192414544766183742599620855857595900364465139843913433215378592642825405212423540404126121927756166445582670423663381999487117962161734087164034060143579059328735380637306213108286670455873619526032028843142047547533055899454284761357393856273283419845644409206034174893616295675777172761122290831104455115999952586825791996550773880661265041967906557504509589642768182218742309096453694651581390722267376705504372451726089640445635176587289512491788049147852241382141407330168083018721792425914914094461729371629483761572971516137401988332340773689111439649316140557577609897314798109386331243075409013273195633755577532779757003342532394552775558198757214001410604903760618416996915795681579671607413109752626189000125806613426705941719181658319488016977122212305512182222958193801112126681015566211551278314866946450387184067704967727121358548780600395013269591485310810476220242771957991970858121364543457270499495634359693900450721795987053273566023731911997847173706558573238629658768593129777809473114949877574609892677911016215707128642803477815062095261942672328232175813921294589592468432202681996051454095835917499335209479670658941917929051297743245595893369977935940026922152582505761438802369163132266033271736483370405587442400356472698583783209464501715587185091025712340849686192286790569320295406636787919409036670779541588387975800503521809373965161580580179980371629478150643355253447753030267488965596402390291567343708726298694463335609243776418883360010734647023372004543072322314628779193426135951644347739688645294579396582041207385104590631531790086202338848786574660370334960129791662307852931569240566062324566939074633239598366995448069457950322340135066785811845763767861177865367945490702466211869570078493607312114268698631651040944816173808289413193887712561877565053408667212954415123106671676895398984590169732065800586601955213055061350398779617719853260274616661081928514743588222903589553981482529675585945012060247017321123314720530473576277246066205647536256188748450715252318572706434660436480561230440864857250324495137102535185310238956919885755162387629009647017845121289237646917303308904881815394315957889552027421870275699856854390529067469007486119427946450691690376987888787600176537427508775307244995684648997951890719583763071835146999681977003504687183350021490029610537540122447763511274825034144982941336928315084981778840784508913108779282352382977133427797710149394835443505613331509036702247894217834057460107567258213869837813041217176553539909490767956644994932370808465127645132501623617971727035237784267857308686024572144736874258564403952453907025293724928493379746505909422644101674784652493921979608517178800215341262434017440615167194664122060584011878803660692106791106756937852294296287299434524598880080046908407267131899367100826269854819963791792571263100184907033930442905906271135494502627282203524237180795425053042441858490327710351959603774698038158775711441059887117840775726047885431470140960564577639236335340399044729470575822348985957269159727491049306459556106488354448077611196673533641993979915163718836213227933074859000938287194747704418987688846754175165515505936037776876695733243543047201867774148380346954170200342415939680042166756824958523192695660664025126697316368562970915312336373505675665505206962452315803004420873824714102844213751430358133149985934166643265553626984809201457398676039890514390609031875021202020872660310780020180693899903228045468044977084136390461699519982587469638713116060289904423524317903765478190108869045245765926043066497887592107160127098011444816900665725955716946572071831121745271943032655474120886370221008728844015770671345257058708828023986413143219883808071962453348240072444218068980521765055126591178374965931284664362630581725637412935911533847428539620931049164122815566805206008667963792905871570223175794755667736667952951074298950622700801214112520843742365071645256933361459853237444536275803239714938050094076644866345314145115496745529925341520191160601965077339123232651655745473328778137897208617607407497235821232770625079253947808212373244209054550039857074282054692197616421383075754077572195497351702319020552799214376824882830209175263149580417195204432989527955523769726985837099682078135142852854407526351390253017569741289242897461165786359155117746452563526227721605629549585094867030418665396834997402393192742741037253004210134987713733016591363904590064899980180461878354942399977002124144848844181151480804647437241575502747981745463338231738570995215005341978406622084189997566563527039825983057859713690345458127815970609055675196944590358093032333068596888754752344408157868771276897742438470065300520819315944031430937035308132324830901426543159654503726109890423919467339514741665201043208124639314292077235487763009182137389540423118838480017894540793219311648234294498546548996759804385351491516732296452525280396956266335642536294611661536005255688370787958035204059000113715086020416109777692711550368942461355735586624688798786306593688193258266481432747105105152504556283000686333580412133264096983008740436273023648761196143148657730818733084807070282973951826690297259008232706281190360357350360897130344820835556301848433314348527406022284905842530317828619013075445089069084465509373028577751957555942250124998790966616710721793632929798373065812125464420522884653913856657034172046617905101226076649617999948762260924992390717260631542690285195590970288898445618605355309879979999864988857897967610347075560003217168845827759804779486425509335243362457688280456984846069757586551173933074070515821411632011724147719036652455366952010264428331332116807152753252483360625988381447370342512933561422836415233503943568172151483784334170853347738661279624224567453586498491672359209497890329850307405890063068218639974131174918968831943504365062534716710332854287483416388675176285930768635182974695706807300469862251175805353945516506096230495522398278654999103271758591255001239814427489467961274281547483299764421581558149084578252738798331623207726775711292183404239763744837221320009207501571829079474480394515849867412004306609123381912555256577588862769620551824188353537420852617386866771503071876223673197268265570875028849987329616553420667379859075929948948872759177996125039415650632557359511298003832524832079216202585280485640398583626682829536180906559876716097599694109582730883215555075266811243460371977020243228314528144594422058884973882598430692958375896124801410120300472368357456075057749272248408003293044591875672471543795076199830427805697669991369622175033782746663291042426015609643521570496135541905055907462066723531127421247033505390472360718616657675157763380013751606630642964289160544932660840474647277177595054365312526937876190985520433301740636519425277882891315318222823978786598758926299753862759061516048877597250789462934179965934387401764493974870214790496715410697034365341653732338876186166760777390332382251672630212250769803461575061875347276168152978559879130806977587380185722990576722087647928080130351001122561078982544595977796120006643633185162987476258099469121656480054375342129998807504445898028302026640180291383844436093934722971752134759053935362051397150580964196151058411132287093894148390396630418668460757453878808830069955850136413956087258405288404593965643551416107558111980591903792821026613989002116282701017342092597856101430502895117739311700403448652782698576788672910267731848172032965606582355606074609906809304124994819436416260182165743213723785904324230637786921513693195850525070150223745318323631888926480650482965427549678574849482492027613449478970717319895144617424569461236153636001634362057130132372581259971303490026593821298636106283402907510910138930920400671017642956060861657796483122707264378613954662146060543724350397327445926461845326367333347593222357718398893096260101820163796313933879618834663826536490247736347160358332256345990360684529120251955419309759879330798741934624059568277459533516081426272534836838723150312538711493348553769876714415798286377373480559242543774094912551553138060017272074477018761059586072063730642322950417286724334294663644178272684568496429299731680497964085000906568852264554749574418206411497857914276762229010687720724971400129938730278550542953054490154645986948125944309250700201600190236764807642070467768521372473318609163797592429839362194215381824692801434834510718897197202803162747668073235454023459605774316660326484607025122029275448441056874273174533503791693649686648609765319851307588156728340902777603801970024079757611816317201092068250762981353362180120766137563655417308082907820619034305622135749761723339607186626799534648383561417839222689707074930602528684907404791697638062954292112995470145702826936506504414007841881449767023042192103123697295274940782431167571975644990950868554256729261999858781933316330585068177650759886220681935012519982133324585720079658935468057521616481388832148974028837737491243254885226140875747375036209792686304261147429131190354184663602739560014275673013913614001363004185149984264488343803369253421973125677943534009909962123324702066133506289838513518836559333326581163284260246152853270638408684324929602855009410936289590343370186768362601731952604453255118314348138922873209200319903026471204259946499113454585705890043417245141592379629059811169494099203776009906284223897626500656482924635574434925849507985949496855196954617964364977739588021370274305928090877703152020296604265293487862555145369566946836616616825416829101452121054370416642993443718868277778007932898130367459613419571454543601214391247173878824804397068191931789754226556620958728602552683427345211172030078679797658743232358023768326333699340367751618586473831637093301615346632116674899643577091261629010295828521464319658377946440676261058841640376139623892767812085515739423268199811215426617176087346383085492755975489440981954576222210647744898941359971026915877673970702081390475132047802640015711115635110271298186326001531217893645816124178951488979842581673675575295175112064331500273449884176727903841392964880864551752872892738851691146528161798581728486984149373768270691447965608561937969895440126799724825522848529138203715346963694329756121243167766583377456292930494142734763976222526674555425508249645896180565114883630836887804444974786443384284556336360337606662546530619729848481062861361992898168365998221763907318414963961742446108230349923616478124173242485624732044622523843774665431510153248688761304895637567564011157694903746252862479353638997533470770210870477230281654254597224987129297989531246737372679545054657916229369931060074768222884258594483811212206916929622175046683360954705284142122686327442596356008664570703100049017464275172491972368184115028299655219353164440062524027013490034969379356179356603299804979320015423251344225849350269002280040173989822058060326453594636846309611366696753313656467664255020439753142373207451239004028534571302806766921085436701693777806683359220229949724176324239545269509392161988593051694778163108170672280332972116268819567092602829338221137355713262094933152455372924231416007012858906819052488018557822101706706033506517708855875925908094920720966606388104511009947144660480762646966499399847510666629045817827990355116912765577073758068041724975309099064460452276565442902409270466303957304133464509922495213818167784060795224744441876018373207101659704946075681643329638485724552884002413585686578855444795542286174390523340248570668860996202934610174546780086076388300951807877154316828525016339073583607776298548613131627471117425661955132845425053799714251670317099665282075260125499748687540449624288058581778389592442553854969285923513351865584475330094022525345611273383393648314138893037458418894140368092415995457129493034428056160618644895401403266342156585934234205612089307968083243779312500184359292532418520441523847192486870770301144135660988767814496755814160098129130942089368114060936502555569399631243993516489920149211813947693385406502275952666105982849253492864562168176474930542451201083773455874201564198607589135401182623772528166667567435495904770144972691723350808299903639443318924997015189866277760848888474810661139796118726829500984766959797946803063457115119204827044467089181360915622905668213664883251650794794645656664064546007463286005533172368259282418203296074944961800477043773411327317700388916285727487162921698538941203753283225004777815622974761834059149471133163214445489269728832106297588407712745613418731820789868240443558591607010181113082523718515189581827919857066249696943974286285807881963641399889385277663376174095697902263571104018748940321380408378741921793080203861977672603971263156706162184009762677220104344560422522303250248543829622158619049721027895590118476808354590382168984659304849281123565069123148494015495772332292238000338998942569592124096352284828621452253300559988890329827543781368499573728578873566015069485697851264852855148066820495134724571071972154588745541710092864678075136687857918762904631379511995789075606913640340670438038029148188162319534152455499854239098600344424034096761123013138666982048304708483091238076955262297181460808278988744389607521630878814552690877401659016802699660121275228804616092307809078207490240397541524060265039676671854970533802252734630777543182839065910255702968824785512786728671408693030209470699971402364925422562119841918191962103555288032279377735588678305508855598885790239870372974109941937756409119715887073395543390532730415297625922084349489333108910993934111296645297580824658164958664501181548122216730153937388183787260602077367003518647546674176997299652300813846054501734803677826138345170699488452554916085711042395688154598652168747166801362946771939024161785745031140493434056055903352873855474745802301643401192287933063760140215657991789614668220952288349822625205184738003359395821436322979016907559794538205678020956730456630003287570864944646220427782258690969714866448855240005310065350085393091520407222870277170962324137912048098264148214600783184447233690011248811884078613213064627856097538640223661708802221099208578405403133058370226015316633097901467160502230717254339768667167816033566247982623333543129731420216682212990330336428694980384231600736257990523687018675962327171041218007672728731175573847466939008838348727414656660802821254557947524507889916536549429329833396838644353566723453022628116108308623647030338776858636259125365434995440330645553420893923330070311609718988847240518536404024613577404965327043325663303952423615426560731807283576571199929698709532191756546391173680086799353300334313043493159446401857612865547422584703048787603003473786569706638266542963849267507937123998422011139435993037203748938092956136564018423760156717674445940075163573158409612957926763811604044181955350985761858563924541557932768166532575168138092193380645837344835801506714937715469537863574337623841918104062871140299107564779694393074444989510773194249485702120248802982827842911738874361774944786406575176084842090599453638654696914768102110896753791502067132728023503643233327263053039808878970063107921599182240765933843686203380857259668419791735822571462525554176286375158080088159685034860828272012291745924421240202546406304409294449553436458780570566720303324719010840163327852156348884280443655868318337440409704290814000003488647383462736546946040884247602297232763348932150670423339241286734492489746803447257298486844474726693243034286485814353018033423095747083800263520035631699963732105666130913166165869429205516044896438925599783793797324520416621948233998158242944962840525211467966112007525016100786291406461208925739795667779666104609236295946882672912617913385807073677482946951209272553464915387324816048415469102628182192893219977878170927584453370563144377099797029527465678233677564494834016179087498758663688642070222534271859581235542559152256618897124242548681072080076848022579425003137542711520121447807220439181432296532891761052670896056857385428775216934915391498224259098796085648121062178558925183021245507410681831064076025134799519571784131727318611378126469657278911018838613218188376452996117300369503177432453426030933289986219828069540500303204464756462636485347783605065419312069475562359403549095298847658005557014142897931382577833975810820297208981673986461117016372281439839002311890411341207268677958606853526818563590102995658575214799437888142038916029240403527299583146304604188232301464896042236107385281252471764400204441926147804338419816259143772496106450363031630975867737622914079241750308744515770770393465842408552811994690174872685908785329119027260818487916228229550238909477825467390902277232323705238110821356595049775976967845202278805780111183465813903064247197249561292642599670592445506586869348521537018737165392227573450063612094980000757102320897203963321442262997321136894325188102242833898164029110259564394217200512044383183567425000360740584795200841541798951742156901845300875324759692662976824789996200752140684759734626589193297008028834071822312275676180755586861529639986726355595702419655646991376237485061394150880878221672148985922988080182170469132300282514624981648202653761210096096456357124960139140054604068479222188517828561795834847981362957055583015130839204167467750794325365078279597047627100219683277367002520569146729153254942994823896586036442670541736517189533622241046092547952497421264891873903170465510627790782850525252803047130314629322890837153732323212494620617460175066380390792141080973478675203379375741760666946057975671414650696221670843317648065353183113105286900061998877392459902031495972144263196569315774910097180662924508811631342566812387186266259634464996893212024253156048650862175506440589709445042342868871184659609341065174556980770411141156075281144223015780522183500326828715316112017813838706537413932139385427483934070452359930827059391101840907050640504993448886077784192759710794029739785986886652903713090298032110549890113610979000937531489950104156143729607613255707665469205613845212000848007426319838017984124681034276435884698851436682804835870005009698926480785351160213022836852513821044764411513850430154555668812319662630038963482186641657915099349200057368296513642871687810972318718348252640238855156937643751207336855992426060484775564339065776750466554418369334087628289491628905133108234421297337865094076339778209296073146494732835431906683321381478577846812097815637058394801314134189024682298637349174515536777883788941520373052024069283338066425187083291670394313402207823074460232702348589997433293848002938145108613382088025097039444351025411953017173746863441710927966683395272390122850946773767570562252069088323235047963972930208686054245228517685977407067768646602466489837871062184024053001047914940120506212241221492824485567620352489854108262622191582832004209711291109823516508822492850618281829434886351293869545168298120615304502334679680705613985031942299459992080463148937093298980693135369498485540848644235179754293758054646229552267750257151637907425670093696709027781962518337898340512883395399755351353454101171940385573047582001529037854418473136544330148664273798027006201235640548866437354849974026645338079318983970262503933761809521214266869159409552057460443912994356469716444206915712521353918912631756280766174458896614730133216904830986550173112082677268243872696195666714192319437298576236335411023853156818769570730523056646074154547783406424006752546653861843151857311724045315858954690896974181959876295142473473263034092656111988502908585657592465750667332201832051691147666430210821458822802336287390408996344229135428286444254653266457466850617981393658996788953651440415638564719110381588466773418564878395168848418984434563612386049642065469505816950645719314634522921506962938993794078654688349126717767242138252821852590541648814508183849720566920520222873449388013499870969648397436286697574816273469461815233594116369705781918865904831328819230513725572884035624394964672161345772605101406270399780248943668058850956936759440163652808434094081966746070370036273129222120457004463010527514632138721612201833998093874772545943398944699867887300081949573657678199740490721728678103867378886437868084676381414363121070325605279503695451391851380290708968936998848010671399841053960869808688144198095535627691880883603066651233857236505324324957344232467181121598427238259023954174189102004084749908185766824144695517424716396423610159811699008224007970645261636899715002854388892019822876073290759533889457237643279884805423936281172229606591724109390983839202579248598562069123283254925284825669156039426650261208305926742380020996305186072754853519872014578334863056404175024338794407339409701532197943949793418609836479710954397179248137570702377458384200193872963280014979407788367453947822324733422936108263745444061345819374687863088535091981006138722586601550421355137107893819885130158451503690577476471420491634256901225716891825709725468126309336447495485084893938567911267401688713662435646774264588843693045852634018936404254843987445586174989811439173238415342992285072144672575614507756116700452888730613961589985223828821470419708564189226840061087299426202543584368080776744720698019406558187807472389672642849272862331905606749587852895050253282799493611564791781088398007618860065882677921316153365799885148649538223078608281408286143179035915232040243326291093119904764044310510744205364337948380812517292532177049999475200659142698017647996574369322592356061466979951652584565831603202572945342685643390056712914010030818811800017775769080571913383837618040734030285582322511430001208338304407787017911898275057175471537398586900922247015628467205538722658113402032740766509454291146212263006267621234294843060175645062331880122935304709471510126431291824392534371213735340843116748609880564275196600134510429488384735321991554030591756879711415021737422213721200838850527619376033544367268043300809547104913282215189109171105722771455360002739423382016798809453310907629884175958288630364598994986425035910558835765731538498639230770743406385159928188357984863014691148845006490555841375010420372580706158474439488770701127660150901294887734432073053308179538999020137884356022699169074375944858779307952515234521027364829339110841089172181767294524999289061767768545706809603471995781364532552155396059770227621511461123591534900124593289429379468778621704210099807301228015021845650436701622634148328852894717578268274846516119989754538318752590109386182016022900529350619601267112483179952443241391950732098895908400685205284727955293918029254130378444929686886581161503639420773266813487654712816442205310960600720419876499695902295454680567433769126251971239516277293071434591140815289038980893922666752833125379001144528521368920779278979394643906274501352281417446242159892134612206512550578019172375658719674499878311013455240552638945612154183654621139399980925520548567159032076045663892002709043758511341426840817284920526176822274842752319548686081466049656402423244047940148863737491301696439253990838403730267476474360797325744925493235910066635814522878548462276986284513827519280534737817281855994232084801292059224729453179095825181217537369253963493743811304982789822525536052225394029872637849906988020268432349980158430650850226399152260715580049442638347968227998766428067048389980224259753078570678995983315992676993143885778817438427508984888711781769291045634922066303660704144718776487748804650017012212972168994620691424997249781939297405270590376355947826130388693095522571342715090245889705679930625302364761922404432877385242053548031381479546772064376595384104302349090363423639951284562627976318920869275597834002810077508105869816313662668735798940871253703262277927314689227306823739487949783428930201964834150076535741319440651189883213188415421526718428369244670314015329769332440495103793714103923489693980190372257387215641699190143879762531470367936336330959380040104534647782637195455118745683950333964528376614076881132858081789870992353423137923135191260096769096076720115053840053677069061013444209195297074865782966443338370475595677747909216972606323172239548199847104520205254777988769207692939130083033430981650703307781783525934034935575957079965462323987051674613871187362989182671934685912928594279782924116585182629036471997921750559292064568392786742674246414596065298801187937891491137305143096963408602823369288136258998420473880745358342818402682132937364013818145652160755621142725528081743384824801933790094339825227281740367851113012131614866182431380464914650056719137862849973669095931611388608211423022714379465830964509057474719415753696169773918125318672496583616411314942398226937422793792669567890104505175969853490514440628882195254820281745513621873749097898655879322052711742851960625541984625150544697429537598732890984787966170909557798296932168368012737568511686677869058518994627183943039960502445047599493321160176204923766794470662101045718066662615131775117250476866441766375654688784903912897393812126987570604860278752244088289208295901163080880962928259800546515050418393017332376111292369664049161542936360153599534200507037924103829175895125639213033820824502059268223500341717884070635208617930622806496389489262408205824128832567716158483325917645011429688230520430940234642008251164709220066740840710025720457430281295171743538965113478822607876849580679203739933286226465825111921897582576461001103171721950532226885822577162915639513415189297312078672885882447571769309238816507071337011603273968463139981298094921749433905266125286914195714709984262693610142427553692050882293622890690590910414010896608009802211376506607595918231409277626633237916111490882740708496216660624887051050713478577250337074556887490667297695974594689985867896864249646432472836027712400574933515802578500293681080427212635480188214055684871306742462055065286511049445979239639975230129524993322784194743853191050792460371023174636543820123014822814527451156571929121190504594325983722066376294375948139431756808511484278753641216779069394495464657931680621978578005762015888604395993052553777669673877577857539707707913978093718700700517197405911409634698210127637502305560850441386370779931305731674675087828124559839420462694280564023240680926655554583347602732360618256064993401179300749998003945798608884759000470375406698966416597935993467492021670556976134668817010480607310535849021572055901147647434604896184194017296678708758907305119253751315059133177402146849714590701937182696192885556811163649383993545067909650190118909282562793115412329198567296664529940968289062232279919404346478016565949163500032425379127465907774190786674249158345056042121675789544811312901160213132518735034406875576120308705287183015361040107217308177874533266391341081529357486793905458900954620444081867475895789425969515270624461385181220428886687139765438627600213313725979920677339346093699927972671268610454460039132210908527908238305500384834159202641955905167974080773335366479104339153588200958093849134215107736775620295782704570559837628713780411344773324392710843203763330111149330798319815326019126309448139065505181682752912006361666495274774930581137454683441364492102534862333368841002581113385196069334612373389469920801399332594069855446207558720215226674534400087156760056918982574726817831745168895389283007966397391074788598572220022414405052293680928790528881138631742164580915837282910573293767175589411595307993139170556018639950927670027082654668990129591518798121715329087943451222582685904852969306894635067714817634421964546708102652833512020949679546110258450910383745969401907715106225194288253583306309149941029938078712538810422787392213162060142613215845007790203668327907409778090662576229026919506620550346131810191199699184397502875481845978835628107487000658365364029446919071578777577260595506398957327212688906255855371232646531360912121162931060128861175478959076232959700256633068820627391971716975341663612592414474310090184586755165883280559408626953989938163149308890635098156628666280189659000427137568881755543871344714439892850154345860015275201888179700495821455867860687279207358538762919363707705763830472286667274091496733907698155997580759973942220204724218338034651440692065835313017986171425182683648639406329411160071927025420911238812200556069289952951419682447633398006336683661857846807575585459935466335168111436547766512854752537029888039917869063352080786152628218937180073803594091740915150742969134312167353455094996003178712459058544002379070873229597691862605331652452833925377714022691937771486986988278085020301884033180943549513555377474471050220097682999431383666432481768796901263036791435215761799859746954609315716487213485014615193075479834438182025891390953850825867562195949797223454188801048389753682762279345577360620384108142259635724613760613994959555385954965282766128877246704208750170694625453912497450045625927733128616673470098728661914621016712934275264235891962863378644877668186188899763342977733720209265022119716341745146347629318696790853700302302956924365536967364228732412069299998864984851555570718452944383064476225712491726714020292656430321721057938178328339255278887989840538044367943471051099353799534041478786189624172398286116115298367111263690115094318400342176504758123594356280698219181555838765416669415749720454145398970686996893138037888041583225282009471984559410670624570664072909791779431543537588928268559845589141996071920367532733819018839183280659308438314995124284934083492153728174965568184025378244437721576436506246251951889820611020849126639599871747501293715128047444482795237050402156081675121603623250062648220560111870521557660052061322015910428411712921444846045491118856549471647869106170687845274862825960450393852890594218731567896912193277646934318990862053053408298709841020180283426008884550209993994936974558182488390573550372809520886799889244754002732305417730825104428404106117344294721931578083605501084646000995285657149425626312708693143866315959297725385030400183375635002654304124500370837108656708700338318834061859694239401483689451089147141872984835518602882024897416889478808037685621998531382673808923375363942184982452577554040208424696040860391636044376569003820474199335666751306171989565165843055284312595332944918958972602982896470220692821791036617703394478323408589831373713161326162554451784406333106839267405938055777067410274968836863565106022085498491258008742267593247706470305149411875360872348141267038098641708049360634723525707165006681350330903227064902211815253552358635184072464657845683664838621306394842207745758544799801707636552639921365107083935114591704348750646046258301075007284079731790731596937834321256772118743173285771944243754171430457822372038249726091148308383739631308563354939184529367950478819122086172222662414021674598350648092402871043841065983085663507881950758983397426803082852648205860176208517291468212394789505519807168032404567864655268160318918321317597875468673742741985022329050757310008420809228583819577666325784262932761006811681614291296495264196250802695431395367359098325016249581127969002936752229888129795500113384164405250435207670600910119042351112285190032559351024236123119658780993120724308031834469162067841693756514546864133853283318198348383402232595503224107430875878533154407356155767614759802370125743122910078894653635347591069251664091284711418561998110666010426137671844714442163346107783205256501264417096082507749137159613833930298311718716914725354313796257354472971129458017618513300657349129777090905154118049993611608533576109056407717576462064671212421509244364277043126859291658254430080945623495027409077982124505668682499115265182896752993615076256807221233874232357953200977319852472626872075296808101991939576612447527298705989037388495930155814767207222027729926469047259023911511093939657208140954698076407665633984804637927339993734638153154116065376144532958181984781745727510932591169988706968620370433431038156887941103077019279019551911974021996069236437423871737661592337825924628905605159150331804587226130513632238932325249078087307285932799456263919395447897349911170645948992920684979036995127274976470308515597745889393727407574517559250062785815914876625032627619968448431255662712762299615468550270726015777729037128612583936810396815527953519470469410441278288827528287098852496497797301126107164266946458195695385613317769759230993909102215506419434737744422207549954258162056997384201822793685652006038289162358197157675509173506703667989218072388557402694523654305314202705003163122439415672032950127287502085664331728124592640910712658398071761644159814230861544952741196091568699135960371153072479541537303754609005534822870756043945504997956732723117735561587325345263105669616369864730619481507570092504743774525819031733720653327305512040134023517398582023761008480777205241304218554512606046506660242835079847989352704029065442458055458065998108437978566863493287564129077966940170220399025282621110764330704121659866279346448328078970583530937807827599454066509916317657384306113422719451403444920046917884309484237084499190333119929068846681606341928571160849713484126946592130430856214532385309275671855984650625813867595804039094481757671769449442494529202661384026716286462629168178227624002571547811446982791604053215744594237568029245255512369922937765290938061768372268539530375879325562520513788306421762276344180146731499250419056577266224946803285274971597317910887009477578126912936496104512757246653317978346647485711016147664898739637791441694887970164722190981420687415477226817659190916687448381363642853643174296045115313028338288887910677282132139702636744368095966929255903217616458365036701894738867384141962755851213807247488974910284052198027750992911493860477102314800456381544935040572045237356691501371571285938897742459669682636757555446219500001467323689112696525970768300320357173852913381062937383582027582865587519837780543809674263222733282210665945314051256777782308461305680441182767019076595532811390533629006552134089921874579761640880204134872078115320175728007803176212231719751444070470802359612510261980009035913558688746071626946487414898550462955612205570543823824461782822910055376788242137814507335805458399606233199475367425042836981180954392595324003022514809261765368807405236918124720690865566275814580000021753164348816374579294077848585987448909154711366484463384307753399068915403590064048417960443771872963432859289737742104933844840228904581516998919481313742598222859067817700937699707522974495258317743439294734877772159741895043289537202769301754934574681829771590454062213581384180905426640953892011623987488034119396873409567358911916192893654832532336423208068017500403210503596643680421809719913781255262977206243405080974504740156273596876796545606036292369747640240717698591830490233720117832095222288880211883337006770640009338420625644579096349472636617685639407421056825784613983801164385117517884129896909934735197674114832434384144050755246894781310393214861439158186449766463405711527834706745946526614319373546869376694281119876817460732699673130590548195090686454366936261778101447285161809466946073682773646157235350147057187711525274713306437269591945799317469875633945133708797721691489732675782163337019155771273849614715552579466833213154883472597240563693748493423807514311545704732381572203028072379807300654909012273597637248850431819636862848797105440160001844341310069720613605393416458549475274249291465565665698458924211737082138185690127972766356852888799024298477259583706695571175790783253585200165004740594587018236301374246397888774541503966035420745106240717422387549695846397410066017318087388139213460234119455915351439442837065127175436238206286664788302080260821504764136403613971511046542271175362860603050391150743942295979914535605428309840395323391167668968986394617234461645151988497974313326451848744866308680586073396793610867543357934672933098037563879639481685646964882540776692443655733973578519530857921886891948276606673910030377025710854018189314465687115636459218565062664516331757882754852008700726943200703922212533503522040308316736081313365451558462795993922090419109338998154663091251178341138398839572742545636937082161433916449379242746365959593067827399047296561887049810405024528449406815771699083034191753877066752831155356443374753670150436017822483375947050605634085192257408744751800694664342765635449692011513985939130276296785424810687608865689115838453547526066957593497603593966890591467416450678296673215855666475133242351009215174183107595815475799826637346953515969349905312915233318954679687145188066503684171890995249179509247551677682642155039291371101671373391540222785239989841409480015167348839911779097672149696571150433567447628381652453872711964168383800047174733314566738778048192572813568092377217328464180064089569009204633592506697384987006786908552606417177373743984535356344380143503784568607917180795514138274838639408794353162612466677835242005561472011741724764516843276874986385459895002836399696265638578254335897549649463484598786073331119979789205242050193788317007561825300233213079416889157639746534910048518354361513342098010862062052809416271258378058133432376135207812044090332623748505449162688058703239026181449381826065111682662849110193649037001239510266874357863172029188907865120866917689678682591357478642560972543537737512759213179522297337126357124477420919564056990621455671573215377118873586726241976722220922338177486386570030024032981314759607573762488958799976197371287929673995968170472707225825582088983151131207016605358626107158257689877832899942109147383310182226393610832089625992903696730964490165015507985416372738062770360860295894858031505522768597937935755513251676540606885156354713551095379254632294190273098915580822581739592812441139807213372726130947598333206564824909424572852262855899537745821345191046980435745905141398926479478396142287566822107425126483242845977512022614926572286770801713902536123619859548237091222357101643990490932950150805677969482387157971841387367761839875258056054215273264301184860010783418578175173220872546734485954556294822138297775786557489655776543828341362378319442086540576330842087841811407198246442303687521427308689822061338217179440252373604057417906518348416016773886437279956545789817890287627969081691469819395194003081629473229072471696106524899479775295021866892741562465567069996555052425590760443969001737096115676488065780827743397748695388347865639966870573337007301121568414639718028411808546183074350702058694393811317930610066140242763886181268892004243232457508891214186573828351198289090642054518380269820385067148104893472021545566428530112364651372021141950622351313133370728389403565921296822996335106459385411125998507492525513440140590647753417045283552707338385657502110676758856840142334702429376012425811742284539402884124342547941917150424008633101025634328642941437468353468054167436701924540594005621633603101534845057409560703933577483153791358812457444313488463582045799863648178007180790936509943424484931797897037232738532985492767271054263667320718625143672029969449969073951229613652319158654540749986675219048659823953620179471928714346994291647225351284959051140708347694045129642113613830090736817778491547034525124771259425580773728265330930118919155085415772152422361585338266446761494892751692214603653975199460761054251807897817311594053968460673399079789614309380632738326904199028831534323142969505052496935681379631645492918744747470381186280652913904836452973882508973934686222444669738160654979919497796688823349124113512261030213520242117086807180939656942614898017845207090433190349343211746786001530442559512997490614266416592158484757943526170959576084269149319297437580245921207326970529130496433929818790496263072826272705137981199390562389824830524405982123656989003487296012552869987837386036396665031129030191425043865590014108159659390657850840579909681049986100048314551410185121204503452498808333893859834806594090596251407542344066246086659868477300467935649130430462354272950036842604109958937058281020451255932581738425892734493448466974708308170347345654813913252028669431637491942595190522121385576465337504168056848950339423769302264653496948405654213194271350037150472462632994091922146417483040753857307526468645867069688608910798824542449118896400625968833490603768243267526961133319248514439389759713857903409201739075281327620926964035853801815929213016487528536676161164213638444863952990354670985326991110046264910075603550702319236632997344260907792018769564935590037813603045213364417562473410621880600149636464081058653408008168066009433992564427106938939991554396832804685138615813437157853028649517215634425725393846101604715340267496024950319789787325466998729261352074210304146588405830245799708656058139654035344792192874360157698744388363785508273448661375105805959067882373455012193576361474089094310266851170704776737303024452591857662340032568447062216194588437364736537689520817457445460751454825107245396055978357717784437267854194726323170041467285748270837375567048379123240157922760026391603501886797827377886927390889023491580670624016664409709400505114800608663621236590666121457845315796697474789344429376570002030742917297599751809552116574913553150631229858512050503320810118528750457490909038468828502589408676222334272525195136227197236766815181630046575664618625179842784812195067339853360484327874959371527929873716153366762600784440088067930172206184960382887643432383215283769316721277197299553431997805938716135940037330529535391592954099211042973411435501966898432193983117436800514204142347569640209968590153983701175723761111584798866059202228698632461348549338623823744366703800661427028938218459070419689121493765736869726432729706385672946795846599422968924265937301668651301353096123329334508706262456441888323836260100204761585826540973750140436240542811306335218960503009619697883729638581239710928097109528051366047161008035945041766830335807659481956338193935572508326698897780796750675181226802421599927801407900506618462979314244321735348036172594687748668659261612968940033172832261805620064467658098645486594287407927214094741903152717960680514687138512274934807107154785063314798999198015401565368340503351853612753528099239052946057036135744689278352064934766294787574285567529025367527937146455385180988447571419414016696772032673954980827078311661008135942929690567490069888363446851977587862624146306500664349997558620626241522313137573815595812047620607312450124978114564683648496452137676849957315898587135787843198692631969168580096864124110284161451577147283097206676323281149447167277200254527558891604141486817567834393828134534502004039916828471728544110006690085877852687391313894208574474005952165284924607232729755088803771681812680697708808991700779209704239550699039782954210999149880162364739417734973349123341670818795812236076525938786918906300628662794863300208265974619826474166766927163912389092634861293676340582099139527489097567081467613142998918466806024288364726056444384688202031487554047887590796551901296033489781364938871590434836849882302365205188201316183779271215473192421235045928393878941563327643338813326178565153228453475018666725176964579828193600082809824100643457633550202449660269263683110150459667650540942762169983623677117269640986865093155529980225687952571991198472617184589454948870832067420123946060722484743352879098063563080699052205110640841148403713576019073898064906405572295371284195565488808985605413179018522958899959480433481546812513801157516133210287987843631456778681703304256083141642518905878351773360714183706605375527683277998126128805676893344810088762929586832462099738428801024573393211009908533021706383040982232603771132688536354275500759258524461225372167253174893700348987866023331350452083089782888663437437964339514118492574028495461391640411276425151109839134185590706259830867973945983980237412505180628975956033901559343211720126985629641933903639711398187307060009204647457250180617227146233395531297672286735961019202285982469155696152479209144168934182222474783812932617290205367551890405660562970019566296472657716312933225113774194466771966239834417425131089416606694159863997104917919366480024465864285628355482287942817256661815231128394021709863879697077747912643223264868643347605391465272186979464142161570461222846236104529782232829074607795230672711804012529696972887602368011093969593464647304572341567091617767388354941994845341640937438650201841444786969122578353805117195173517374839100081951031188670741679151369981283096966883462874269130315222254260740065974111091990660781106321188188519153884769416566325641699371157753296399341855765371356472492141832303479587126195233067481515757976433334610384407273495600055945873502194749255501927554622673927701355123197720071073904128642418808973250655346913613204121259200274786146210087382152897989493110704321426012887452067985679208912316619722786321618111929828774647211742139988655810681933556743638802986497294861712075093464711310330964868769809650885301239501853297447018471566982603784584994351166545205777283563176695608519658377998418378165829190056311201672947076665600052076338842491759601371797410654660770867904417758637476398452402842385252173784334223735001981311442962666892643169981844857084955826667312720088561118022826006482483272613730063323058738847015317776281752330221654288511334016359881835466557635538652636894669994359965241292255697394925615443594206568769706463384846952489748784671878100624729988855701664255664557360497394563439847911545784280658666859506236015027566054908794693656905063211749023808851329125298155559638119550938168425412779724302887140109872943368085968433095637989544946880433594430667692295064931744926344539692762410820519231889636228104669906657201656678651724833118204740005826295215474311072362612845471203873560010027103667359381258073866480793855383000372783992045639161793564375460576356520476267949302721039610060199668603154342962853178950421574505143782458068943595850579112024208416089465603926847363151912360248460866772124750711544548529556205170266633142734964395377731601411568557786231819846345033072284392162952284071377463266034485928580309655564214023385757968479567984683433368684050645771864480832572360034180325190696547475043176254577417654769057461160125042898639042706539851840067440471126549076260729085236387819746427003906186538785485949753982130864449065395404449359480571269140118611514724460881797769518330802790314028557772335588163554155899369762205988918145285880552235912569815284392843092521385311490230136261869087988228191173084456719147986965240489319339549373906437398652568271445240121917774616000829563289947278399178847287861331018569057441324803291923168233878250352989198990554247899505137636985389751515146227999534003578345071646917798663926920075117278273711535137587003863299931890630689072398680711770752399943994074581036342214368224078651870875698119953016557806196519129533227183117356688138250758312009096388316267282070161699552926575008928960425347271542331404495930280811065411380412418246306967709589033603083138274444842972932992322351479129441304662260419796305756029377419787822183448894848577071867321827171473298727642115307107362245667260628903158472188340056909475670306363763237219785724720393185664101485165301601928064741059608379778122757530492279056086475944173356410700486191603886637269989438665483934328846588367120445844237148989568808596823981908681744135793134107392679594175472717225247910149388963427129952916408402518962829857516463411153081449744612059555265566865638732404693538566207538855498085947137014978903836046154861070905655802029847243479489635064002594476368136958449094124539627495115055429853526897148967986659161498084963750040871751647646572138646199037154188481885428492230618367398502616577269068395549960065269097284868301987560143519822768186702618665306022165048513339258919963718327763254690802841233016102821748254434017464741443170064344458581669827456589037862683101410980261855327874481288533331208702149948515429636767209195784219957879794834873619122725229805452437914272117064465990157708280205500769797137598777296890156045810333227347828620896793278837671402711139743264083964724583191330507680557710551356536028348098040636480677881488104049730117138465534545067589759485537934369685771902723823174320208284000605976808420720117773964317733300336038518910535597116214861200968972422402071051844084789923202856015791224168319066535210214217987302685281797710513403234653402080179739582349982869709199234547414726999799668810543212163643509801510719991795970305056180488686489820704221485782906862236502447908830972953294285115640446177102331389811556051451117960358493765805775121692348324142111044860735531723666627115530327206689265360218022193535195988513929881728070195383555134697615623791611517686631799078040035991452467855028149613203437500772389628043603666428189384447004853201727673540150752053686507413424370643791222638455969564064113943548695653661904395769336774868486960598327468247271193881218653209698212893718825245341879070692333111475666499962281989001112285439486634180011993875947317914208941139810814277153038183265009875459743593706481284249342448772779015283810513376594398256968945552965726857436400431382242886270830286447317371034813965465888245539670516312169140787797639140716355153977526362711310536466029299463694708138024226693536139649692996699887512777810727576606078733012036604350796292789119015518949798147913470940375568389952116006580506411138647927250104143231094298499079102894589298103887140472138689761921253421859348914129569947340619547454689218867256030162289654951762543445335371824663663389377963002802261857803470852125474987305456545039982248010080158650198805228935750368684759405940749184810007494129637931712523878006051984519115453969798048399936506368338748332418829398837769100193874907274858260628197397587054742626588009622252886367727133017166435922695666514184261097285646694374833449974153215500818281874089758279307897074081534629241996265907220062576964303941580207336585536429476972622688155818693387844878871428214237413880156679135624261197085037181549423069132656655954571998139337179934454439286523366120603865871342589543631840131973725917333688177057149559781137444393236269467113188620706032033645103637867314208056226323799427519377435132959335140918273625320156870240610448386854446394612348175294143379687914103918678627559340445531021425392992692156043367494479284786235842324376467325000452791940586250207148661448285242868894367434677528592451813075049377048761698377908684769259372667248286283178919574696231525974399767593958685325166950341510931052856075416322890520827117635233076398968800719469558419602544703058773574251502705275635015876927284730574355598315324397990356716519060101085578978654882917002611752387068006151329229066571336418371841002667414786805218691757639730123621458094641235964969905921230959114313689151866761484835000771560501493760268733105106894966704417424623691762692472488266627390586005703881968058590091868197365047552952640979813887127739203089966130769838316178816987901843397129551799871851762014783753343176518577399843320549611890387534698142036319529275012448110659340448038551493248026519376127305671604949827115471149747204893495353485018988984199754378427700111419116123346292280024204713310407867817071802766184224449120508882680411749525034901346352591347569618728667152264412679110376960372689467174561249854634714970861433371120942989039089580509419179132261438038533888080549640068752275437265474889293850859521861190508524837142591520843044451547115619212379623987166763767878422283543611135024802385058230391572105020234897158677543942311389616421638372633009466512308066112605443212374101946174373248867177299646498069733345779145481948516246270694631112789464961762562530638178420198489691456338103632905437510730542152622623825943836265998609089550910519647636647980633042867891355542893025421795833665769787228755073752808340693937886937724640341841554710508187963297638168104723918892913327353090205180522635922593197498597315420840848332610730567607949363001957302845259132156569815005415213024285900118369398649134923925379435023617281155169423277905508647390415212974620582634884782107925336387810170729677620541110030769830249294404487961809699901297430266479517138049274446780184602661400529735374491739349262463158675715331413345718646069235325233308429959731881435958512148918342096401524951998722182454508987728804959135845118752252058110572029744852692548155413626091698947581979503259752608975055008912835735354607849418422455026042850417619328565378836094815562066832951158359367600820411903471847363283494854440256181991076777857545134684983361790631707101768475222648680406086431954327606125966103566035948870889819865938878912145085139307943748896327536409884741024596801008431417535465771583755295896928856928287638665471625675695676685473072233517134712822648564533516158895198276551453816221470323369192482734047205031266021052972050428619897187491957369933738297865099448348016718164242054931466966340220814336464583771920507786726017858407320802591427976392796769504114242697157312532927847040147378377201178482010277081452234826883727313227312118811836075967762918758312319088604638132218239390108170910651305780316116664840850783477543455149771843249185007680688427077107002936487898396660530126706799721510859530846236805039400169437836404777972284107924008346204936762857218986540079207400728419407299666007488218908166600736864722545346127270772338258320038351731434588542572105551494802028606002143087507835501557947006790110893763758086281016390651565764625341172833998220942693318725735952774936352192750707205824526052619927260659907752374738463062627313775628791913972580036348751797631067861462223184815768278978439305018332847586821686965052603334890131633956484540965493845589991203878256231552987728450086932705212371268958308196277628879787169814382140757126441221332625627417345027234766372664042147048033798129007606362540141953117937372813158413319603368662172888918423406733406674135396957286588102786375322038228190899865718239774397842637519886655571936437561138540492848472696241494591009174181899933261041458683600498280941440022536258691052158307861801189658800451014132035401031462203257368258727478016204869716328273915889655995537316728113401173090861946097496500092684450360692816825175784521283018290662581709699079683108742858597473720347041162293668142086516808102468423406243106843909542304905596166594058016635446720751146495967194772682355687214628625817121215582503658291644582514477435024051367676049590567082075098328396928928107359909311747904642678252574280206307348014210876772517263847493634429744407921549869562510867534914169316575763850572624037657767977648247551973511088354810336341636547508955398085569614473520500888935326777650162277586324105377779687575640946811441678014184683828243612822220879567696119720328159443318423784066605518822586479903117252908964503744358083479298762167703362803635312808956247880587119104441613877023910222118024015927373898603346595179937895732136136015171543521186869827853587398822656851260573964032402695432595185584573840636292318778629532814465755262442585379463757796848730173316747943520336062432165386876079862552691094040216110404369438391396394027562476749059802577354848282864427056073908264036632005519054078074754256240041125628476919867585810566671129974318538247454660176846603356825325904588707385020743137112792441929159345101776629323750901140073941442051565316989543986803008085620068299163133025336123904278646205356753182069918673918095056478038180003301702398090894779141296719502572860243045572044399782069723864549556380529852500629279040011125310679431844819401150294721585573095572593686382752566785109019215601584561061857733588762727653457440473315545896868714267450404752866964708742017905989949205711009341970717780144629384870023895868376623985749364229853445810617766125835130381032226343738532803158371562755588059756878844462738272734098810500932808994337594746694554895963452175411741723000621047901216146787699633786171073269812999378044692587206247307901256185798009606123821480869118862556750510772700545377995916036127234897033010159577087571744219755717020276885821602809370832087630521830494967526499459837729685460685050429254583365543459043363240208212681851925949196561529026610305312742588381462077849284155315839391788339597933189644129035880119445808635824324301693508322956434674933650101051869941638675456822909549494797181709092480516922321230735752889959301125149707543649108337221241190970006318782325876470311798431253649492581996875582289881916511138025125625032654644956941440209716361223379200012257006048794201808693162803648805536309636201981313081516115803350485804221706093727905389890429551381161847633516663141652752111891615341197781439257088923335766509228358065041350220524600980350671212038445707266463255969655660324428192575927129153326285144630864305533901390157134304820299364231750567523864822441630076335471277871061083447947760467322225009481395583691201207457193827592513283038556228948864531844517518057533264553194597752606755287938821679061277878913505161310874039267396282154589589758895831273832430794988470520421816262665958441805437758559550114663973226456428329047747652902406371123476562036713854979604132084852873696893391885619697218429822310851227908297127775763632842359668420229237891974438859734204773929622334028515556988881718664586213131190364062220442144751825690805618845986872363238837985568693313821739951525799229397237867975100043153279279922419582429588128576067173472573945552053799537442824731144260753449256544948330714820596580592284988231184004213541219041904516487451120151216541300247600029887146861621141864778147171282220924836425312598920266471808424975502957026949544997147632778204333076597171393700327091337219956005487919634869832644894957315825263596892974024831286874202473789209392314079323280310013838890732889037519773826711896486710039929853474171764978023486034488450930399052362700854801492571477568041730683818896936100586332087376621039880145687868188585204587957142032155954230467436271203140514373763978026414021535903297024632299458617482733545205152478430363665262438637262474085745240316671797007732281959092326924996458706810978895918975574186954603711345135278406771747904453595600119429740998227286869419157838101422973086306308393646639958842573661587488860200143840003538730802886809250127574043461090880035503201540468694573099121694275426457492404514023798297871202503915624002472566572992942507694663333445262618536049745791839558989104848594871730945812788407095930125060018884724961057394135918569838444086458813967156790029870744482143538898848227031479890077812715307329009265574407203361695576028945543085983422658712662493148173244523258088466175072759847741156820509109738290399941221433623387280242238091653469581558233268442293688610793314899999418003669860142209936368419628842549921844645915660834977764769717380507685205141481692559755662617350223526039218540784432280261379572119197741052784454169003181492103066198084288161000714546506429141901156699304188892190752375231259882246502240387422984000078451899873853151947688297578597009157327486215221927700390530105237500504415035631131423220339864765117683617883150796896946848631318237450236422516396913082249744522907878225322490047675588976483699630460522108802721697005713819425821509024039178894548794871037534135228015981760999395189457020187118534344323221258339823467772564096180114299184156658294097196804737382184451335547038653274213882794904924610519005633824842730676568954030545989862290328788300929711655317803346269697678349644025500154455774750477562246177522618090374405170038541454689044281967384562438423331026766147689402420948584045521636006316856284358641751988731014409651202329193791690776645655269843179323455250150473345135600253212903277859210666653393107936679988498078569939241568598724007015445325427079434914233785342436812411499779799745439282610745734731532054067710582552360544622358570662815897073929348514042785806698521106659626772203359735907961549897026806832363396547857177497656611813181519843913317343168487302109827114865144413641236231120896532455989528849014314061430774216754788756757572322439391540260612470562750649625203000040135265108841875465157013537627324864750543184805638192010534414145909104963135834871771778811489288174704835352529997170739973549633561007049383089366742430387252106048684140857119320322333847956771714969911709414814406246264236359372667470067022333528400632342520082847862491596693734736736457722526460630130392138443010315312727915032439732075722786196959919364225315814165178584903069827140923969928676402320515385340384976510151522116487290275270658414036582586373148419214631157800687192834282614056427116695970314944238777660640210954103158100286362063100205084298091657157355983616411449143198181328944484634924870377054326016652493975921395440624600991739921182132565613947277877364639480158974317269692370520370435965309331569926886062578877640002966300865047298242131006606061463124071268010903414662119864375255731861706512580777252508235478090481844125774036099663318487054518131127884390884007468712494127438269130558324199842084914023696218844276529780996074636909892518823854355996517683664842149184098188305141313096671344908341989594935739707126025572658235318082930215062088504284955433223509741772512056885573882560654022186145160916249867964520092532273401897088990804055096474515489110008472044472899005778291800413576092293706641175512960498990817593866454306641101320490649795224785495080285726223884925119561642141744930729966125196003042110848589974600935108995314850560705974044657191638417375512528785314334401973062382775776404034401406582224385659274970363469336541579134827470418543428622427275755027263391119880327810393179985286956143538381576870530104989394050608893507181968500797944967005216474015207695893877420850979631403469462741276149577973008426117368938458641332535093138538819581445179613063273285989810926288572395700537249413963228240917526598745088802845946933205582560156364886340338192856229586439119580967799372779124939830877816935949406833220441181374713288618499422800449348012360826702233817422116714054432270902671808099842220390806766876810037451606595915420311110228465764316202714709611478298658639629844857470691687941035495735499761857970966073803079758450595013640139141870846755341767686040274814687162875375256531404994931778637359966544049458735785190337618539078350402031656278619708752597820753803794753655330714291079994177517208681163891867135134350862850618213937761127776721999910336383889345604817273138052336386344344480515536971797200975404259193152658633046960287592020886806443100954224775976395876767357120361424618445493369763272343744534547238127415124357020528485863862276076508670517142830336995854978739166648510733237762055263835061056108841832069228057729897767455685639342876076632838734033204093917454493437015331043087471452268700155332183149769607859934837079557032655079250486572487870763124515193086829243257105414640125200769275181196271922419504555665933096270103670879231953430005285729940166095947330734015955553361129943997056520708299551415784047913230106489638889525016581222764457043782357065064477801934956513581377166048644410845543653097700482085774386010487929102399677374995803528958459775794056864431580042501075121449492901005681911232976052205957938597725068589134325224475413747232126031635374949617622156690631306995480437693248793540797473253599725254950419927715864112495205541307700230275875736483532893654526933769967089008614644223390798092565950136108276090915784684828667472821918046382396330601181560599378921479640593438551787707263328196929932466501632679356023352864048771714189932202102559973579702277740765646048491959286705788326723390564238415114830633554992390157315321001590011479847439471729612731562916616593548456840394338498393292324021417292415334108241547281786105685493280726806547205765708083254813856342329541936170180577175472345004809402369041056419389333407605985651104356096333219038242653182669815834482887253781588371910013344967634199477101879436313278649894835820332785408663689916617702688790911442727641543396662807980742300485670120735496054750523163915536226301077284754724687838050419307597613365834144891874049666706302458643209056859991788191980420250457137156037510299851488860029010453098258410185626438685907325252106329024056285146095788350265100052725152534417865186784783239361001693106358468258054780054512079400500030074056024336334036800215107823671673284777858574352956176718663394001668868820732661649468279273774074224416237587982290456680824148883012789129196488369604568430217459365765559111062617757056712102522059018335851056634825645005232138526978514473075515939537003531955382893283052499148830550036759457020612320519321739720061647607657722540025496522170793580440496090690263852262477558010072564782533598790230324838944849403168444793140391201648537181511876783286526047280108152802483342078401545161325062246894996440279571018145103519142266919363429228894017794197998198375376026109176313592001995414777662677384606490611647007276826875598659121575921445100605425147437655710621241381161447563719839207088569625238377694186235997929834486988985000119797444941944304057358420881978047790519689668472075461763250607786155698466936065917801406489076547386668455963139717194864527194228023235412954942219064386993264239920825661029600127702996795407286942027766039090494289412594140044264362152592224904060259350533382140472972158948031931502569199266683976553246671717174837929713974913864623937266867593598224950885146835357748506788118704092891570926781627621374281677576237597151709564306075295435285935847282317122049932981683263144383728193136785013083431918555101508481060109457487883933232947932390026576025744620935104162257833801978010074640339759103321193358197278709709361759606746872768691246147321020020540449789741447946861016447236995621612564991056914613459562267634924281894404768877070980167212704851597042258647558244386572837410159171302978487885211514750089748456572848067653661364519065457682921340778677437121485310912469726085759328053430426730827595404571925775284928078694532750660709788876541782032538486786009967951927416978914156203757867763096332818380764675255752527228701154692928928412580042700762203127023862294545404470734884230547908579196114918456654913382449386753750512110306415902477084857005345381432626610360872461913288180505186843910302044499402130754912086709011807010033455729298517150447492397157510048620453288382873210223982940131482106379605947665852862558867791779662931422843692839220007334124126244967275464729060940454909601242277060620403365414586229331025921118006356705250727043598059828752237330844213162859126828661581357913603758156372892372873328378342494462943910206629013305905333635977399657289334313934515481748848591576939827424659123612381172849867457038031240782545154733678150817373757230152529626664962557760335507297015895736676192804999221062352846800813440259291845322292808452123309989552686654165453155175767709726991140125263975383776509565922968334409751210208823676712807484055457751962993388833747250914584886189428873266854694779549764376720007705936062048356761432354518676871072485533432882791475469199663208346084614968475222247996761260794423106700648382636483953888552142787879949902013047525601815334733383580283673816070018456532404613763179819662528850174205744607382358993877057433934902869387636303265410663724259804816203982457817446852241705386835584974593949500249098594474475234299786697570564034032777195451299156709496687182359407289093009681106900107502665503131643095439491567239504558831282003975612773374729965375804452219981457493470583619780467348362215569610265594676560047105206293237090847534317493913252217405644117759096274033656055251628605728040269379956578881291459195929764374764113145075913602858732501527363919981984151137357583236988068509053523465140249103869068269040603890231460733684765599890416719996027429159076250366915212899489585675813267402466105163081225323022047649131222419680577531317885616170539857815829110577420383131788609512284848374204347395321778469390535384805123455208379605500551487765305364686925373228988446345670854990738210235188209165881949264848751419620303843023308346729939042825312702654417764933125215340099427240230297961087623060967240278330718710594724033969561401376425972885690058578700940924247114724842932061099511468109177278661912400787375519634347909882986258135041988327036999667296826477704043496961341588706498738141875222889053429007682988821528741397962057579215350486564242651932526875001591287460024774962160778299213287190659773327210881695746607516145749978490119528698925569536063206432150980326933141190383974167615731043460598354146755248331443663326851289129051871171855634254755252309651628984622530609970374572395722291724907418641249730192345634319306424617390457907583312278947442780909000643783024085861766238341469332240403334076253013196669844592567684255324954468511834007073341016024517651676410954053179588628747189700365275160840770830563976973549012457850721597688087982975377090690580063042137582457817783297204089668448369001494308092195904855404267476419894909272330958214498392927196006385940269945666862845102149238414510876595863559010155396866390349730258993490062167539157784391505896086507449197930668848936422175793070645758155285383148420630068574956838652432044953352361269956633876638575095322346761710604148693083782623476609218278973375698697432232854477072736817792698154098993854880417967470774649127978671164224451442342701889718381741235931176806067728981865923696154269526848554030840901952600382304652531775005523585299362752179912983873966406189513669181985404052586039191770365187867042581108153422424980407201662153857780611613345358011924449975896367658203072509772379852503033473614670434095837104445054398251794811234984420269938164559122951185590187113564357217685221679420526665676379164694503482588448910756041963986362650667392768540214196020509777450273001401905761704510253512499365090714209221904622477734605684640888283939918590189943576821724559682467352980371705692908981424527207927926839936439019568477551462119052703328985807492578597868577498713682149058261863797539519424340312289382993671691289402594035959554985823638369164101017149914649808568850848382475244917887774782033250556805593014556694341215467148318989078805028801000498374171920957365798800179230018633083162112464996386373115457213011299643739060417832810895950689229451233461316198415233663755576834722602984105972693676106792908244395464352458949907964781985374236956543480505893366828495580763607631148217095238144374675884566745139285467833134907829724012529057945707096236699684330042682146128314117532507306615388052264060735822184550924129738272742540527213449187139662065010296628262754719793178894580991319756789647347603581960075284206905063249048562949925542277134719539613302358453241550209182383698827072295908507236258418481423433855125029595379243443811790954682884404350939460159349993830487860723768391957800990325854394649846189013571832119220265159750577104186566095975354870378390793367931062586579828577129572319730462740727672635864726755394542465678213327652509099519158810808426083910777476083583570275521566335454348948022816497403504727243771976217946378141383573345041541010852880562368507366595400045138946074466712621290847819701760483021916065636549937197570027595062008102882938494754715315161216771264387612237235549487890350180974946996023751621241262159941994205121158852011532500182144938719221271666328376129500037021923110445702952237538252510970145746935916348375940224082833607207662672035185978654813196362141137936818292739267592772329383233664267908670686216644306995903018509247944246122945234249155579452624889717751092057864436412359546075546793949098525005561788012719285196267503859071381106020236935967261734147869567030386624401797356255654313222715475982384976812776716954429665698840653433447199679467175627561826862561233859429000165999907663859327907360622211606320917115423347200143007276425068429573644834179015875918363112580432224081743732151651823882843309959462404398973951427048402046860208441875676663616391021528323950623280044563145916808490588888567573100193478095580156931111286677828820409970282896212975303165505532465287237949265346943216395178553998861123228702715935074923133538148068814478076675949358554391190035853334589759223021221882703382838155170540999383545767784831462188721210896659309475550203350536726369004653842823245212984521210629787407799674995465702409315712954930048612776503861169599983353230639976058026916455879851921189167701560512624006650440926255553075068254278570792982758447389400373086719449216309178565043026867744774166335876502255325321512730355539777030302730576837637810029376579915898049598825237394601338740184883607360437744567857431017881475729500591144478547192163248141457212910719805462830957804496480101893543134808737720911513960938087151061571366724754472859772974862474240075739042522970770028544236298227626740469567011336188603338205188567678977785182339415830400421015217075355583359578049393651680524604576414837107956015496271213704587077301993608595705015075042552338617597051315279022986944674698441486412531139242480720694760883969376164243991520011556112126344191554434663851658618082558065497602608914845449729537106311411376960017105689150686059895029161721179148517319815393072174800730605233442088316687305302782630457023032108846209143488701168977742820488556035323720584120560995958242478067708716553356210690902486477415551678343794854112401541767625682635117909136529978912312930537159776996383008268445015499550008004078163042905062832874884377998029195720063049433642479634701901230271635183931173063483423335674577973917888641684025549135526161752236357075161149301323916531645549199142697387076967705426055540276583380141740304323640390229775205274651264786458816638946759404620499615486302008514486363385325328499525852324173133004034524223242922776648025877861244064047321714873870161018889060751829779602014081038772302919791742377476517710195755574328719276722312539098848619708386008919682331303324880993966161110536016102800377920633933006987520623910421065677870810742703935126016305870333140250380525149966738041719545847034784591551792529503835484650368440936262533090478335823001646876641159101654673072885656455518166473040565697041014517578437602699928208538296964997549182232914277614809390101141536366663162195179351368836526259938706198736626455163130874015780766451602821690527051692857146608516677617634880970826958635700440813731693848102120541235033170316807020631083961811397948330632759405135926287668109488758512241797211762117477001698000129559939618951637546564120075921833219950921952037117656969499172816751138012680955824676135917337540321584687038333422389348949138370007636136416971885409779409062627572546224945904902925651325539973658839254531859390783379086794894723245507330774561915944347447972890429706053672997855654879168036245376681916451168553652439117179099281892685462134259103534272595715649893069633678992602024397850380383550782129641987894318284388330771090749631549919780789419364747798256700034480215545060858013723813918272594810411017956328993754858416311211831877199393656483587240479712036315094607308218681182634775005494275277011048024390726581874478754267335293974067247480286393697228870888958603097378622745794342827917479815128637427919711702062288737484664161643529233119651744492327858593735867521809804463966912681036080314745977778719489117386294334079766271918618490582725393313343052699619167995365835958860514858321301967578045242884413293001118194886416560302484637847462094535088659410174049680192876416789429313827179082995647909060201411928123044657243259589997140610052464649888303554690198112939797405717073313196188985327445374406418286230884003180794908235849749777436350589184467730341378923235645316156210202072659804583475997376762558964615795941189463896541230350830937841640614366174176138172722600709536245322865488643373801816042509791568912127222856043562004784897520654329410949581329564982020264496064277570622922111954931918261544829178669767491473650002458596374024494846257910558241534798867494457946561854597505176237963692302299657136312333113821898923616763882650622845828056856756675617347031904125493467073911270066971200785284809427095543216908161150616729053135486087404838965902056302101586124011030466824189999517123414422181524242957345897888094990968925456359998509463979979622112938864531048703966780638711707783540680850998196607834483685961414832600604984473019438781300788928670722561376926827330093400524261915274177363325728436372365608097929762877961702031368069671726917547124075310967052959494602284607010715814740913771980823121711534983722495598484200696684746942753444031409900424354753469702022012833024040403123339000651785572187643026466388524783534099002757052947460636701731147500207292312364383478923134655379392492417714895437100560165810991060215415494219455661402092127787588464824547849650489181326947544425671775071302089204169588349608485506019418426872541350928561798101693036200128454333103107762840842972224598266752430515792356051417541975165716476420894145805596058202054158651798023900182331187090693143528734495888124932741668560029289316602461320398417683650434136300204388573036269868665459830403411087146904299871951813810040135919544013396574620889644792014096728369653702189662023330304547124190931626389575130159076006593683977605051089285442320361947259038634986670957559819412329234202288563256455516453805688638764519532084615195287203714285502582289823428264339395025374873095164115527664507971398499711305251735097113119729328784428943445771927442828855121743418490710517500751730859698412550364104500800865563323844790708856101540516643960398998292629095536389228619839170837561074151163032745724923879644236473155078318535083786860590262584289492725358936066753984050564284424447000215225655330931668738207134415207007932933911274113028092581481055368999361291652953828898819809848223013715441630365408353384024252838054152261298460907705654349717077182572147092088164127862046276541661531377400943319960496212720483661073654866770088266982637079514869615499201218133164367261064048477060178368365464782004860686182953744768237782890696112331009223208914308804617628498508087207132845481377334925881141741274773177375759151171251426978647396908148929542796815332763369576382462049387533507996830743641167300851910814571554673358132562795300455572475602665134079781946487944753741194143236533261271683957029869807427122985518854543853243717483043411963363820123693899227793021969294762980024667167035677529538624860270814867965146229393602827720264960399598812412616110375165746570849114392491095753094234442806140540084819871160788620040490225702345582865145902898438379939736249522087214405137148410818946983445908747520311088722950103967613847792369942180145226356594567312539805070735192302908261746430372245984852621766376105344080357462399394386996493379108461206609422937650032639764436627537968018851227159906446882424721678267612897881292392995332697885643935983614925340882468029162232905515289897102275098377448583599988684860311776480911594877464147248296049220070185312388239284649818941822379821061006803668770477990759991974480565212432653984199542888835282546704031348140800302768855350971461958031572597265922883889333207841208568845269507232748791079093705129811506457527894452461656325049545197868766155183522308086693692447476048606770227833431131219276072816592670929753945785740277593621356581537159373202534453001902845710608409139597868316093128426048973297734814779164481072536688903738172478344627178337628995061417366231405095577530160459595591545963460363841894067047358289260064970194431721141263721870002478900122478322862297586087617987146890578098015789206406386306163828220284342628415891786174551702908725993208721237181874726215491669977556544091884909978413962533393385605601094555753179639821646520604732487569048248704920757669578611892670244923830449743957837581649057830124298668970846022182849036502126635570564975813650632839854640905585460089418062049181953716239906457094160339312730918173857723084219526097173148078386096516429602288096249457574853969240641066609841618050916619688318159295734055009805286459489728986105933267232213171739674296103704444523581024388125027758491909985227760639752358348616861087189647222788447369230486052893057661331097996682045660453659562953046033238891679227898571364576346208909648289037263657072507887416679560744058139944383916958745594334000063892999764768497863938175084149272489697607194964736887361912425081120842920454961636703935027399901708677310661771524007601137934534426575286055805712240524529478710103828461148814348118372296156923155538303590100917049880759152156288008498921237338356750266099647474133056864282982939410132253164297409091854309247932094124676379553510329587469686259600617292394263027703984600774967555300863064753084194670761211986439661457175186807004869045414689990294014346184971108619124802937908088050742499940324587528146154306348102972229487261454043872998651938945882358215655721524341465008743260836397684712323231597571244442944876773400219110242425161079083465303741155677793471325283945945530730089564981736635234196535467725424012614358740933687374265101242625648346389369124525470493289090909136860827861899304762411312094527800247217225986775205345273265726000756978307261440745863860579669298869358298755935114319035677893324753582967461378622001009167062505224352438235020483357870928120010691129952951379315062377763069938657883680372601824702219563418093149640897595351788622855817606711285662184979858741751982132605707830706136050149173251879030994407613993246930579986019279455625279141681604952925026772424372689735887061810417280063934157506710125882730584480965296687459995324353664911630828154387808735874302509054711188025097798120207972497947323482385405483459688995548387534222293810613686412648749545936880932340048325760395954869905423372685843015445136590553569247599364030251723445640735212981209402051475646924015468305216649958601508928704330808030284544425909586035247953128202247946250843368649316344646486770826456043360677852954072165113465739660338432538551141065726433830459220907429244457766001398896084990672405712139390263799385888663015044051262998255312087710597768363498074891609261431748754158113096919123442552676225678033823441111909140333854364255745768697287083032011275206402591764600138089267776397292804296762743085521355734016520554917528220848314641001067983503959736978601667951522250409021231572840837168026379868286180398431646083269452321534283675117336295398952954220792006311207966160058687150711317507742244457197175604137328072661251963408935399215095196118466166280220549129060042621544491946758848745598571535655620772678519638787622617848546058396027764555603134435796683802290179556856183899668776340945935662409030620417458481660007906409349409667671153250094676909948976579527236182444270392081987406770907111745722301691994762269406832157925250438124603303346098350643502296560906379899572870215262856490748906071516513968686624955986511069703200833246144709131535948127564449995717774048981536227978132334799128121496310576160865904185738196487369046803762563453765677651772890008885048930306886313326174981657412962315844189257191004769047363562840341033738219487748342789217540498495704689847184564748904439491576684072146496363550736797049095033958175436724795583867818967302889120929359826581000167594212412386172063354563332040994274930964267067249820045449742797088920838166668363341588549537035948888046372804264830784488841263595896083515965283884814381743019960816039800116663887943230615689400502168194922967456723521303257377781070160526561144052919283704802326173845345205779275693608366194247821253136290106530223585288388871025419689030673378017155034925594652896098399938264126122847065373687021427245358634865150486743626253841728281701375826307842858275134899741069027464942951036870664510518685688996009812996184349529413560946943364356857342306714491720085000557087282830290535578405097906344473048129635081398683521919543187435863088700327849566845417373313652460767735412213409290660244346568242862674889832206388050014332623521043136078918256499379467706928632099176230467265154575847127325048053327260131661829685106099428514364204711546030097452808522666574789152414152294708498414572765020918645778637960342628136351776590299380281585146375997106331378635426299751064372770114201232550695844773855991499400224204895687589565895987064156785142704708983691864171845680516395374193299655129371200893313832582865834667939118854974900877618308043582232635146271130427599219740602129278885599580871872720968278650158807520576640224976979758184187575627394128501828763650506999896163923275172892672531246925520774264662230704973044660950253440002505669042537837357299241704887507568285732847868458079713325220482595552691053584908138127064294977136289409417646429007429704800032153481476580507913837811869763923399125322572206414884452480731282690947972232804099486188277978631695812187677564972458938412696207684459442202782497605028326128840219788324343729167781975857944259425848796383256008858155576693599110424035525008866376919199642127362582169594650179581105546604782457264951885288790589883388313688624170352763688593966652907447700691854206347641861120367337402035610970915124658836003471783359729204818940820586041722925013157174487868319448175558041670245348037489708385658626556079272115389304306518109258157689573426277280683491915076554195417964813680750569554602273239744541523415235602473937343514052507138599405339567576360726742392179074820373200202844027332972818190847738606101417790518452932441005546937199379867481524648843001759657397119401194946037387592094579868996182459450904972026289710710433579169141042573795620244379452108059837603507830299193433917238928195666519991186273117407432565446461027388128072678670600144906844178784944103300610639786050190302806416367497140519439384730638443936912356707545443138586130176327456855123959295395935491837652619555075954748361201155069210814250452269396412839179226284022099699826583753164318673514069772074978713586909793832727024295336867318723791928660679890087471733523147951595114707851210041482214241640404277123734585584837679805515114636022688375950072493162885857215038005485226544512229454612633315970816095273223727237363053919920853159522351854467107772916388713875976075573725730083975820620597339784563186904256672711708665553155893069397635860818728301291844680298539107260639206426241913311616099492331003064558860669146634811851639708775941816685178082680096398333462288040282940868928944333980002581106064726558622016261127336210550559197267098927688342946276953610331663333352868230318516444603243773788825452575728685797150764486647095950942908786239949638464621276205432683925103451758224772220957169417541020733166748744516318526456937711372743729403460108995535912450466742858987503217836232670844039112578317719229160353720584270807292081677404057764202600463716959748356979018391249635264570754733767294106075739966804263630196624222437159160022385935933832988375280968453789498325953743560512909748110474975749630664927729330235997379264612928298494865559234872354484955664479130273886777225684501414811718140157228295245729407265316822242032905138484139130984331915201645877930214864832223556190019209048509342377284100466148731679630377608269071578212885369689821599244243645697956595125953990948323650514919080969002965662466462207447971838803751225817278065305379773584707263152213570278390800396640554376058798763554728811906002497669660691028938257928188237869993243903383478034251007617206813321344090749866624495094798621636776820052380159437823848410856647267607511666457620267649281401322430417188532300295845571356102776637777990077567931676217096962083640481559018234728647796993371209274171403318507416764416666039864985956001353254077958054580174784571864939692210839912111656716467869864142215680693949496779491859819194825592609007303877400702127401721334648801750019162521184424340262764036121321123782380874867827328601108739319866531401676237796020705347887279874708019552506660443319516692342213595048338797095225352033743945186660966795734895098996459040105957810086392221106862429794667753168722102846360707780738119993962387895832501379266695526813654080951868895382227415507203586417174120541873410585896697354184030332869402886858876192435824184012156973148515382706536331924301565277711510232640418839355746564559661567144425700933974890020815773854271892509065816578582649987920816316959936437068531410796198720757251823934490553060650733783527965203042008905590815692479307414817772799359022647201382094268961612016714363597752220028368583855878621556470230492216413221270556642905833839583394807637296594092413320784322290131532843046822258929722816904158364910307506887412240262666785751436455416280542938386229695994349576217054495151436084623049522823346154985412060383909125422250950181603374329229460560477451025029318820533702340345000070122730639943440054386971463480728109751265674563184600204386373588405253210273761019745664222509724058898800854256523439017980933380675680435788389735410719850863584309355018319930296862606181327169161430998214278606970719235351712182051903839872361040336659223178373582831452090027027536920651736195715952980354449772993311782551932805592380789505437123041251001380576777736708182791063361266160548462964362474385910790523102550487214995331249879714988376797144524441542247586831396342555010983941818097677417036730060068682333625044558516934458024792731526102775903917662770791434324978025028991348516247846742691419309126859932315783957161899976939727959731651701708571858947529736862723165804098439676718676334067797904283728147395716318864692141493254273545861897007138626587442504305537061951309208246837732689146749086781405633938372904724630143610085181831763694063571246035837110878201081897200693234388171795530130777636558945553169907201830381176551315131896464155044553093357016071411089477072265730719307692408453870099272815107431203551090841135304434896025160318156494131780336500772811326441602275771643068287653280771773806822472081608430627981497341933227214930574575472484956951226463864668542620035552621619078555215484228543959977692545623849270742623655857937916150274096905781235432642097406322757699168462055754172630770528645679076868124385128718484483226450831087033921406747936221470628637688370097565032837526655326637739526016369447425857558941274999760550980729793150861769274882910993229447367460661958700395873764091554911323633190038140159531833726793365150163304173733878266909108856754798879721582691411395032789402659693920547761406278020047576758660217880098439852554271081817748809764757775242366399468963740438360837384875622530845186091911147512254298787909530243349321286663938496019247897125164640015881160437874838303474378444310955991314448641479741851292527096300649153597688859883165244640754589437752335135497810774373750646175239027574663169143720422637093218878282382201590834115574987862794848354812210531007358079795833727221688359015860166265328486495138625259387776388225873196984808649412399983132886644268553533311863952044062851731088886797921094495652714190265510978710066365649167268457626173830610838789862059531849814605282824711931322741337326605038582363848007833614471215086031633547159649403787493974969468978622456727563252848726688520564287443213628823365381130103031637622879625570495280441987981431731907800338771457299153723563937329273446437354479781821996213958334910131071456368652474861368163104818517485031639278839106382481076560733230388962403935939020259875129873420892996305283749076135803858679099045100056107892433441677722056352111173263630638107011284844055697611783970269563186414429264165591201163073247197675026384061628262756825944567500671990817045720409787475751450147738358388591599733379087091095891160496130315054279194645412434409669987884067657926784329148672104817701328453055521024224817045512579315535824478339530492539463396610221620492861197910826150953217314315055857699424344981788408699058233322178373356359599606254153203859976122844895660188570850191020896838050859459429674787851657227409214160509592238889442941334700459146762042807625257052027523586504688673880992647076746844492152404837552269702867548055047572223458737769764498218084328696336593957625699703789080691472398086634738345414136597083177580919369445252288853200736001489761900854334639218893121871397053294187410115202652703411189674580847637900863933057628626139176787203565653142496027618623011917406557260519078239114311142540167478124507056092858935936885425233255001794009088150790830837200720880586474594679158280835553431874054608305589302573262662607876993653987209984794849791508211509852385863030836380067519516746685606389613494329948817523906881915094055311520651158192932794432948406726206632541385370468579610494689036403888894608864073578208687929800394981652151108307879998255105052927003981626174920757663987383628543864602127155396743489268995425361436127614828549968382193332649909253232543919500532149123927332049960780210470864987017919077025660295015952115949068994924051620998548851170580610210199538255025659091604164051090678721117673882258886682614358557283819292863650435396455956910708081981108757320313328451255148428897315987591707260869794019435005459908966304160200718263358796931937800834002705347391113139134074854872426583583773002508913390728663811247070728654742984118715935501249567057027933131810263797665964344260408353446926473909403494546369861357704874460689053004027645672850858021617212004117195614720255387086536595332451037678648422961722595564052928304087929302643329516411296099898482725214384650193399347872396061032851083758362145406255483557794226791203526806319685251981699061516142373489177063634415438121416447552812007220795291450833570687779353608411287647893856638887377714161133204128966787278356783569290055454242083936475147192658029133083440282269361322288456969773367551373407565377762225345402916028164284863279015295475098300208291213898865807282720306361281904695387325649529673016514888401327387685986009142758614267391469920337733746074957725564181902544451206603394430478254561469223516319288787755270927328707441937443066945685005271220073935486172628006803908385863619498365151298269169088436928139257050702644911464711895130962009448919452710021776260241918228686757356157644554829798032629604338249509971469645691564241020252599749684576089252524586246271284488983779329565627960897992894294823696432088326286916441981722832957919249857159692301315402853701589552663632820298368603957472114652989387804307913041726416903555088218000244932029185183304543865709831771888048089548964687882723469306910312904131333881474446357147272826958518109661188331402020385754602671118065352871809823132565839690537691203814524725169263613958158400802099939601433855887340924588181247394069139371576156123850684899168676039783780543420089110006329208095963198456266802391623365242914802722462246184073323034992630344323334437400525536126041462457654259071877097208851685334912974844372890732343332041027866872391196685210956779774314299450393451129428673383674344329934541907815540643613858030237922614601309793829608801997572810149262249740611427217414031018078890257617274502845216062012090099697018858974620183101638494717599449851777160495303874915418918239354960296386216639548519101509004289624665721346219923623609506919949119232516029677912324233630589554053757267339746444713242733359558569421732560091712198119085540271746122393541235382121870030489132586621685546826508134905639266652008882501897165565903981532443136398201565921512434021120841640407363256236362002189229895979663945007159043093676570968533304201099180413624633400791368146624873491793215232985612262448961140599975540164055319875225177036377220123264839032005466218899237748627954719749469669650706669920271020780100929368678336641775385880740801823970653820866906340372793341021828296867169613000178085497425425982264739543004650070530999930427961733117420268098094573591656912487845943737450961187497948047499929711465335088545480997125985676596942428804402912083003674605497033344647259122024806416316334953058847749830102412422469609011237869884936291502784349053362528068564038161451054511928213251589703105074947838679660949892045202416507272680706479030818998056061978816310719790755772631824242631682030982068116208256661443743781909720397154158612806238658490579723737120939421828674204416051644296594875988942475234949389040009754194517643878902744176825317205232607733476699981959671165859646577003090485876413751515704509267073085881511299903296445856404210767389730555147014678332478279791777479834979943772466175864510857020994843775857881066488981135619066907495940646299284689512325116743248840668446012905491630033133544174214695568862212510174764795371072366196033685139520916079992725402243023829880458083034384223898886452475241317218059617301765608766538612362106899384488278828875622428042550632674479159919454787964114751473437428960259551372606287909103941537162887119794075699482156361602512271447574833997568781021295122464517561784422681335162806019705731641117114938295779000006457332979275604676930596021206994945635758592503506442770419165968201706801465830814458453910510775755304917868367016230753325635281629131503086229277421930201348576842606313120093167558103653916282470144010902328881073741224613043805570677008291483114993355585024897381483284824810264671908230945544007308255790514496842766977965687319213301761172770615076779555730531065046749540718554609650199386270122218926995293612181574912936283754885651232793857985755502916413914409318745409811195495792372311079408712766353515615310142431491293673957290701826849740990314837107712407197193955082665850197189378265943890989378828412651479849127339721100409534930809954061154525413671593766679778945733901060866317595417490622084561526543733046235727166357563016030070664232546935608337106858082075165734580745270632331777963638023910873674815743681953375353465820356608613449333664857902925368124151115782238224555461397668531878165560587190612975706869740071915738047015005780623796692559443515031316365693884892637708298142132994210261430506270251018689129198172739144606476423043483153113638149819525056989813200775556384739808132789101228538477677658902826475323380002292109454727613430095962938606743781177336834616433643407031570913345520059307946486684532243113726643046198534780842906257078772602201546199963867260148694895140369989933587801774079364566027223771258343984935744496314975865364039505393554385795697586381433209852688444726953798629078478129250157361838655491591821138757666928576630100438753551416045324588966469582098016217727133236841298180563987735045483791195459580990025038625584568101045871378138933974065930353509022480043426520889741096368789716951786917407018678744562362133328333428006051351784841219500986716913594993619935869278263170939361059061005080836899901959462394176094098398430239823443555670833407615145902219513645867301940615735669239272271876342289430472114485868619499921491799740643981148463355028559036912838135737255199808904375565466991927217450003635947021489328721993591067470573338424988780984771377607353740184633846552768492066485819066511813703925661657352942398343592193683093610964906657919545613769041477440046335986044255596718961541449577502483043659988792022957265737030996260971875131544866879616012570541963656119309298020148988423724704721934831185034136275996709023267214169827987440083560144625508840839108174785911023711140086220734116266044008933898942034948903751592389105027161707783506409590476503897970664052047698926364454840536341804185431026435965987318639780427293901256614422689805995133461107172880399069533272010529024299487560716403533780716721940694856329843714764502825389479080364556050276500485978276437478225460814536877224364837669831710964861645421924144586494315222729228983861178033480267314867889751502786132308342684255108285310638523470542657981536852684633294716818100299788155330120402249590430002443909437694648018676276064535798694853812409416041287898448106202205150678716506196457957354154911207045177070392163866067308430450710958644062975158325117236130402965013542067582220170028531298164135345478980985733270373817461042119771010920076173771908425499583328602052080282251364120925939117433661266090325038962622263930046056331844546928810798241512425212203497913457640578278091775730685386853410384397069300615929428944818780153592390267337540768438813898164499469585049399295492760762616004733991904598461258177168124282059155723324283786918136787649899895027093903357146248209888783131871024062996794457110452933129127906879427826906745917124933413910973354015131192961265430838380619011603166734500460745872696751251519306004815985017828504838744569811876439283073149701795034446578305404771614449746602458710900987382692904273445880062279989827878456716323608595602392199982553067074555271021207118292145321989150701060403519620821649708281740108043015480061464097999829799159074084959700963569218085737190711734225011664756393514044692203775914717899986364719916053923811933412154214449239694264197612368052313581652835287564296908960691846001766949497476051804658498569630526047387761312127326409313849044350895249808852270175355503952513367027997659820464590801049043223624303254472999895288511233548180335996430308523305728545670758484516056177975514388446861154158745371630648055141383232298646470695735316011677767874847751251356212455551629566024578993466884841549376260108770367059854778594313763858313207405550425750454346553831648618720383978140652039818803840370277446788953251641916446476744978056092709838810007482671285072756233815420040090933561200854553126174614648120974058600929425697323907098530591269197531989894850907110204208649126360474862666225341009136887104733534622169590446995517199589042568241892939304527305672502487667059383744640976582621384043197719396773511929779838162158153122074825322605155966344554759063293186805458719563839675046584737125122227252541849471494826424248317102599667605240275922710464000001874606075908718286083535067251626702388716422562972802616219330538538806824216077115715162003478039096117886965628774831811780019644864677261569497988024044710885767110903463240273139753163777676813794588949299092438411883734437137588744916128878935384721728823752544976961611172969793366757238135111635811684876594488232094385370214185847406555936872557570036805873978468528828010110002987709534327027091291254689059368318476283144303205781031773420972170268622901582350207809163075088982433971982358915912850416708806905859212832856623260417016683806590372564944713568116125257691412274160824301513750729765802085248249708999168433873986204720969755824249669861339874286390230322302248126372256559858157407347225688760503759248255097094742375067864592164182216838351474809006534149028318632054991053927631176753067505244781919094221151327226183519019519274773205570129420558879539029516768602883743197605747187571794339441546392686060785160415614889369770155060676449149233724100973024894182685911478304634297009267306977635432776798912851564756065730976910651431175977038914964574205261599100720384166034872367612976396431187459634820189103151030200491898524049424893446083531816986465179506047842679409462332343572768940658115984495554853345626254153490420044543496201969343247819996533295550617205657205218176285843300108600660401527023691340852041940015508135665650213222704509148431414309851170565154840262358724453316702297080859951714779667793199217388760466003232414524451974648885330848364015201290562253519311747635764902486579715725123305996405300633346479004654656662007477740491954425713946981834735321017430348675595982985427290183534936140593047680080571427111694264173876124211661890514942423480010131047040186379564344928320359486020713679621219893350896507610821253305282494633097080909609547871960265568128374340848825872686708441212365755952278102622095903457918646952695150704469961709054336080990891304160474164093138036516167666022279427466948840374668228075357670997911793350086670877952261061413799046694522680988948372596877753451354389078954196783524602628069606055420680318170512719475739013374605271150472434146789494480930579362058549704280829282475500245445360899103075860312896742421468572832818920211297044646606597762613842796004427304925388265183029162579392456186660002723665615868984570971454964106429008374011417073739179218350285648320211106968088827442970611095034789617304187132151914025263057183973621500214289463229020038066834950833651030462717816161303069746793805681386655935643649407593337016864058755636370634420168704480936336937417647820170695938511111302904028151711372595866701904442385959976639143021582339057469279573948276826638383141128856894317541221626800514042637025629540903013054440629554772825425113178448136387877032460501469279686146552262880320739872152993287601212872491584212827390687305242962943505255249830151748325170559904698020750848049578597734051126509387159261507860092136289487788219917359603030784228513233692366194323939355286114206771414070383200481212922000164538330695384582036131601015909473125791669784550966479028481169926915191303539573117259468800409349436947970646601276032509880469608840924359141703506720146727262583553525901633616949692471748849801905064755226244017611163538744866456644981994175591004485633669957210123127209149168771844763494376339954086096158446745463300899665876089724172691303802198815697844228313089972502106404685920845903514146535754616895764181402927762807117656112047945973522937506623578343530042857509982177421867376884456966651266737945075253025781867828481291505166489229655986952857545093365396434333504547711242795594771908099466743847798171263686096067170833210252371385042371036890168376079719896488973364292470815680961033452446057079501966492790800028247884513275064596664782022646816939105631760093826172994577000758337478698670132625682389299822976152446216061781607681215884770392036860005354503889469343005904672721882409843125532561268998389586139755511122361504573935229184509159734622004082317879688364609974759999747021179418127934572945466155277823444237636338489632232241876007753971200707847568371277674934334671007361323329412863766429240257911452983633123228141265404877618197130496921590230312974596654904132925837486556200313782509644008099112284042826914581097582552951411533557891605591610127221226862475235855367596226974181133394973374166999195689313651241933341717689376723137106527181789004705304596584986590425766281483855055657818716844818898395260164907843486380411570054287751081509493832132142727987482963548079722392038331571751224846335342875397473955565306492810633135504739493234499446751068233479598561039086577891350870876548745180904418301525131249057413365459207633354654117083803056186543158164419328242764811244203063910286793808548405262958135513661746730946687001249073042772912041469458130919195511037672531230610889965993615371447061493024080102008744370265460485108896852542804529184885218477642980859010634188559848737849666026503235245663533034899510445818437476958711540380485495344702891238637512160108390104798319263903683429258917458416035099262078962904284991307119428817018866140104656174496338538876079490621410243904900638539244643675764901393594664523089350045614442187072841886475301397906716073793209778300564791941817605006206768175274167649616240389505425445562290324881318163813375334458350861677906320450947894896289804743480410844502301750380959426516971159779549404894125769804340736265522864884478526933274520720859095255587695307464869041961224091439215996866969053639030453431649836529748501755293520133956211793377662757149707944017223966650487409395736173439527146322993086471799769450565770386502641352073381740626763209391525298840839804065695802212584301574876976267663023160156950183355655370741209897000988424306301178137668512419923360685744435236659115027601684675561209618520189773684413551653109840398312575733941304305245622996664022915046581576020975906296118698729761547995360722284899981030258515203213371882018750126676264911789632663690986420773122677007921927083190243450328860184336748857295011545589485683769927750386123782072725886846188262996594884969371171340876028225768933975771322433713748535447839261799492042990168721541809909448622135563059782059194788619702242178285854517043426500999264630218698164085309762473988794218730655949680347557042713350499877238477757175873762560733988835338769229699880704684561339246754436717696916947924320784746785930338874316745219742668823838043637846342042732927545677378237578974698116980692454555989154846428448294347522648760740446470112074481082343907287000565085811533084229052190860163152766276265073968973928200638517528520208833025808796980428464285376155130493307681091713011097222256486279628156776798883178988480014177781830071424632279004611752859754145566950316054055767539767300463347000117102733615456732402779272552310307485279856074175564754305086785720194000767225232367353006520085782893652881738427132297200692299587262186464023758803923519735457860221793838691466594355642256909779405222580828827756078110839105823882563380040649551448724747740716866783592077626907862568919641067455973130256321489670271956320340323380518922698645263181428226922721824834741771968738265039098365653726440325430377735855763533353405684851407388283837602926264639431117190030362715343890318245236150156490586036698861327390480705131429797439216133526640351355841310353997969293392041852547153605451439075677700994519387274618716625001832617996022185469138298198231627199219102747264989730409527241645438506544147855576819621860182454079821146293691154333245132722844447802062594824758365062432932031412055140232854907698944256811260525852873353843485710962485738087846875227746845811943130112869937636569260998593903544151550425870275556115991936114839770344023512692171873643351397242452931394682164893267063912098972725529806460258654757270236130402131996028557833472122286949300380603060523082754378308512672724341261562383818657679793480317190872517728543040523040713719314533323365183463689672259646701326471619196226926114959025099402141162485308826645270582255446960728238113150384254095982984885779742381674370749908441109163571068826707541425357066103222156278612331111398657268955997354487685252601507081702984818626594443326644894128388135643006195011226911411135928971499966288634886334873538585123252950281005049639363762476630762137317962136455473505441929334272940939180481215690865475787785822053179832738703404672812642294102872902762172330885976585606660822218306183460752441336998152436311917603412600504274456823673598933988081026632949502614863840896796302627618637238431875071368737177739294379401547250749592342876935067365809363916896134361387125774587804237834459936585407378011004416831754481629409701373976997846574595120893377374691304725675717743692820349269683656086821683173274241642599232370417026962074890559137757980227921818493084987114108857929481516315878813417835511072127855377770177711640089865847115870582394322930493965385959077441805109952816129246416177600374107880070811732560259890381678718840444807222892323767187480729316988098722780896613083963619044301783264794528145739197798647514534678616355066034172497563826747452322873448000679142718099857074210230358798642663176912640756037234319436604323143951770985179852541727089586373171347439803661990077271261966875291625858015821593885528586758283309832230363646629058966819139305802472359996388021628238883734075507637743524882606997010977879708502471304811290429898017715397611438828563258512188417597521851356593764978581944076686395544420894043366490241730981948178651364320193017999407393705399789141974195946878081876042909578947028658713372369095650537506269373759565408398600471484808234952859802205633228739513704641830259257035871400924315379657525673070001367844970898773528863981917776555185861656037276285068819944150835961524523475350788782490804086890760116696288117170366469424803929775264587746818829890053088680744849140586803220371220796084113573428718182019042878533553997675151686369864586436749651188780547233456859032369741101487721996289565816738832682398206087657154270478579063509564697758584616016630044305151825626084098864299607133855026681285227769036467341018943586522965721957213446907632414025316192497562881464640292926096517365628021701069918369603272467303804292621807927083243578500099607979562598949762262469132338012324698737528677452526384251870236579810853475382206954407987801368487837515572470206757154734549329916399589177336736153913021450872848341991804555245910355616498203546210845721835519962542283597175132300362414898007563008870340182871384936121559430743490689966943539923371588925955772859096610004287291339889298813850330019187767978958034666736651741569069877914934202542745438143723430549806611234412430985911873057309694487515439853323584293866864372337547292638106499204896232832998307019276530706539272810009313017824294624407168708263377388533627544907600420748514947762542686960481400046007187094020883988681716839052060770822586717642175063936317598046199710664595589556071531696741792842222069720627240736389165114475549464140164605531615862144370897713482750325821514179592482905193993374683022412463279117218537487180908090616562214434685464665808920989880612013710910355697881158650411522616683101596296227358212752519191550425136877956877957677634762584666004856430461664825766218696080790028827305862140701887206056651980192507972093834045143050725954012875778927234081112974719729397597837289306674983761096362434502086712512648372584585658173735504197764473621685497674533969768421519461727376197817391486122069303278222612635303712949219553743531467324213190038286166805344545250316281038543659570838856835250941359904847615143889412176106466396801695714562305611626731084768354054805369591059028004704926141696079509801852860225336480367961559133096797604504356257118997320094266394102392627716188004022567087827684311187739722267604057613160912603206702260955974432897599613842471815466703308718776302904420121532257629257920367689589928740270674761939463097767196035970195979304697436160969953002506515481745554198972212784698132926979401759864892313880025632385767092660452483968864616665262697200672286545611338737392868980183194449617472856825515418616087665530762106846081686977111787353608157610571515596483188539918743605215006132868856755570619634601705468408547075176789629493963264625195390670578322037900705038312364455852337308972264961924568553642455874174782038611607946239275150418013357028348684253604286220467453101266524656328338752924119870429721445101907701941669426630312725042301946082490958911452601661144775330473626763102885424389930023935277359079541562569078523603069186163115382386540055470268723688445882953112803312859445113093450326216824181274745343312181567696688615328846161848060294395144902014601943678907257153168068960796292802527023236094911382709536236781166409145087690818127507155954983875568569997504169578484611600262859946169856763426525816110079477408078802015155999209806059850101987035291634266620540331959407010321628049574834300581853843729318541687259794619627172026788464997581659283347586231914845560942055069778340597962519207398155480343087483790294916457829833033978009496341862455139348246169829910972739474461021452887059492379800372002797121129604654459189771652337156860132565861582281561978273362557670828830682712421210566543815936618427271767695361048455468472907234167101167823572651161965063245609695906631395511632707365828745520986440278206628196527157738639553078301411768376052567666128054046212213477387378336287241183770281175454417124028940973714041297775716105580381758488765631362921684656450593666547450519768083952861095626438987725108010202580414197910966030556737346816299432020919036089752605000918212363684935766528874976692721155767175539275260680333019537450956556121630628702146218922710218747717411282839875187314708091738942764453486782416512677434238335935332030564573632849375262601824897973143470176150321010758733358311145673952291669164749848572308630688332010483447978173306366527016737488832304027929447278548640009347466193011332329698546051264218749407650163893295059451555461699692353079918786688858798765885846503277514249089572186741775717637104086591796780274160156690795034356778466500901497727078124721076297974672226234116372368045001702120984590647596430663346749119397020616630905995342421150389626268412547570797994800700277163322593377617192124662505371014443826132148880462964070376699944480557932172112747340042699245028194933441223941122905533587041965644481545603542650211456763472953745103079646950923277327890109542947577027075298270272506978035430381428373811585454210509612847160160718926942612705377291703074931849569646907104511971528559101361024158341242203720419231947884047359919637049733245163560809271716930566206242857779181568133902689140066969051276926385541185216306059849554908702231357813766358795982024706163985678302815151317235475829127327128236375608566276873841606436013617325357254373209690333604711546841042932745954784506822844522393670668928940308192426092345941592201419294028315705673807189694489265513638289894364762216975881501006451649431005525711811423559614264142779698694520845759029099929794002193275536312559530159024637909052484557555395814461218187233800578397170189212216055152102470461568442788943122004006860164921548923052700134589032459351291502866945549464050216789781224683741563005985635364099835625360808655042266167555500058229789258701334203977615465177953165269889136261003656089594315243168575569065951847801126413057956328696083500894472141800404188942393257058993968553349503509433636530654218105174687599517752683918947143317478625414207060195167601255268682789686534406455138240600347959565367451982304602856760445965910440422038423777562763661960942774866879542278180058333823232291675837133224258041163077777237723007394885347015565657526215950184200649889520458681650002583620673244995956665740282522413278101479244694743537864705805111049890271747144458414298020458963692327826307309754295874214845968360832733350026711407471648502224706075423402805847635277898027430657175433901271740642109176542412940192128685800524816721446437832792837586531541082025355931383764059902870326098907644654298933743489624843382351327071935588115100578062317579502607209308870296501927780321262830100662536244141793288139334935230585881753491487008073094249069178128373479064081023631316787258172547134628241181740347600515404938507978044196591732536949449025399102927491158212429157541783768422631423819441843527407121001914512970545813514767163801470726251701812489885236974910729540498319140625035094236795679007270039304496578629234639634425512246718561836460981238238587048664042025341815264633198228608142158181306566405516794301284901049970370939866897899832644768362094323245264549555111865405918157467482483202660579996745639588363195630393798429533771412291902827025830770551339029638042151493274391665623693521835996958021202214764741301969049579878121720636590204560824832700466894144227573706697120294795842762420775464295464954284765894696992799944952367802214362140432550375504505870084013016971459257235326540106205411309244779649652688497979195691327622113117604085215339322285587367355852923682660834742836434708851911879198656419928741014945824458453867302143619670918519251894048884128340774949808529646465585581242238631662775296769088210394408449752225245245897095401556100550747740699986413587556851704752568608724123135101659891198934102303240301791966880120206503409631722888774879445601462170232132127470635356473215898128973280620394420249496850999862354267273718046116353281960086735073287035315423060292071281214849792859583538956652543551720128587358910051566409272926666621235505355869239028466501154875818040150102702693682073329842344454661998197985235350674604818173295163117697246119303166602551154554154243254678020175669367184477663780927137201555939619767931822650017501800155334676591399680478428244055391260339941484601458368753844070071733964532417996798831822181716388630371649111001684207682141643618679224679827603438148118964054702620496897286195764895809605750986129902418132758647102022787694198180147350687801131826757856308695831263760151102283380165492934393895469964322530204379117073395851310793442206197003881992280967598608755178202782493114583607440261638058262955078875880720094786891259723522796927327419816107377071627244846312026566438131196206449217358734047471054586323673819481275863913267614934487291191484087596555355186405324272982975760726313034194099002280774937914497578751289187618912131731611393478942857912216242809304598315629945184175515984222481056486400156008439317469056225627155955147594328084028307002796842195075525114687560771602301118638285575569385920287665001615099748733544963368503547057120854205040780829423637514638532849976673574693310605157022613956447000732587717407307988677401869658873831031764660494320572818901008426549142110954532098344588448538944840182362246239931031077199261541627934435609427637628432149179730944209379174539218836633020890738480932808496328166659339737237878287253493761650314430220260026471482529883363878079268156069115241670848973570004335696360646440125862128692312000489804924372582239942802319705436933152839646870127521969932776521417882586797813501723448951059440192803829843799730471620056864524709422028762650501920635948351895586812089644308725043516079365755430741097392898480176037647287894459175222263335592150293977400580595660043456570846574503336827661605078710987354857621326460079111807592124806248091124280141995823794905016992740433407873594835503397434850014198413515477432795908312255323965739770982658660749015518766206943552621202753502093500936072943325608395913090790258773615900406506110461692704520369455529905378130295703386584018156972086540733760131795462533857458192520307318793456954908707672791365526905003468177606850502156750035404582177351968635318752335293445729660747481781570893798090885570578641042036113799842675226011203180218514728732794646783338565588683907006768194630241810182079594881592255965614824480766054837714815399290035530768109953992137948036441059808923177130340838587581345924957481659490689700144087957217783413739628571387484086301501144843998594663236960801169514867048842905708378470871068330436698662223505278416836505104048333065748683707902001393871541637900016493896865722501567075442622825917473995750385462871479586770210205835118318531902583572345680197206244868921991384077392430947358447133818542776976813357253281753882280863759728662594469860806406937855525185859752861060024292501644611156804385988464156597023678111798506479568519414651107105392286647213155879937562094455746069426570591408784118528639815680408438826896291858607303020620720740772674926511703269471102474373210833365235677153486628261330415084004870340778534895595002836483384084411813136023787679700255621713181227846596583157928158951164288957601977147947935448908793427599101386119947335976613174199866869921551391808353160269848143176863255286596978408594850566256743892280212925708982685110129896900046863028352306930259752348559861473641017120979267143934002761932254055753439092701508870183493929155252274908974435473015252663133373258722139793899127176470734013666937240481063885280648542633365528166496516667451599435451377231133987241566725579765180241699900634544656282139076622297455100823056410817555074387415908905190716196859688059546842584976940485972841902345847976999772963777072392704481640976484717301393565984305033461135477835310139906590583974678270220448640157641896195737611692107461332365154864949711758384605166569407012573061915271045034732972034649569379907044952171412790666946151103616347626861780890872335534462393707185754823470522749524323637683553745207603347914835347555566026947533668209228127120636767365767088797030482704240919872663182279833399535750166908379725516625695230697014434416427480077054851364453474905262216846014378247317307169353076744725534040824387795177034592592905141240777052294906566228294671415366819011049374395972761603212842377984937664562934058700104432564739569153114242431187561136824431128016177934839920756212654832614161034525088826071789238056562785864026485754927836670350963361540988215611052523196483826722013905569893661586837927163214819980568211932854224592202453637430562797699079113846168622107210463078291433380421459792779958415660633440083572000490471395118885828575360442953618449217461413209614583731778177906037126234853302757852600923884298311952379179201991195005629435604789288105624663009531085919042216351750495374289210952139675955853116283573465783412069832708444553785039452576948284098953339840313234631490788000581651368003240012346217747003910986050660610838454225311084211004724793502895849283358116299079319557817428994125623570569906973710114521884139659642884576671724509387812959402889537956015427658655988913705998541750542636141034507028693813020202636908391240164246004279216255794070236159536144099921182143333636411632582057355348073684688754508564011904460980653064824426721056360237574212374137686176786900850791504981406645424925610546314110187489255114031837347861061530456134399305836315090432810236204818358845283209979063894790694738630186498316822001142278032638866813335979354040684031858885531394736146627074824808593080479220859783845324033221878133466377649472002965569907781091699856071560318961644483000153313568456079034154990230633066204906665691312678077425610909070393875301089037231935682672211219347607594835832378308667708323640002020082527730731843215195916057425482681524371687840836093563166903718795684385950969421870577612611160005206837796943018210066479901742216485217704186309456492086686723177281338550375323155225896447665216227694636895784791668015700134174109445128304188990293524934362535683457435509100879799917136394874384199869252537694219365809697523293194998728649130234969272589183195113647087543414489031229130524122556665026357710638028319661200274776623541946411309084531124376140756923959924935588836148894775114044155754085698528196125445342979656443927557309065920673000091428995485839674092403446359406881471412104919415664871251864009005015589164671588111894226330726177646582351172087891966183627472922901382305849828842238315278978202161791132823271206613330707224285712119205411325921676468032556261117746643161509912061825028992595279271230944584115088408258446419939240259749419284500123160106317485661670312548694825732001744487772875876247024411338578810294890558688891598524539891198766068987615942678075697550913124806455482422281001772970141096135664261736806861626201656270351846845726978917507188523115705715879002870002210246610875329663951253104150899384411698686997911331087608169559428377051839633562514345305135223495748569109362898984100300843778634296857762759233208591624021527028069765358118454323153843131132868117002057816339010995351809076317934879436416610910201465222871109066308941350715527578563547654763805103710121642499297775041837187111746050547741029021666960124908900705621918319271976460506550541686288203114233209095536073205246877393005193019730005324697132721523073240980336402478699808467198634850488728748670846943316938105826858872172973742313729683472322948885417561192435798392466174252476055941220232498225817308079533631539870034847706123254253261886378498526251962324733548237269905769223353569155722193612179009417088890999695961467920220937471219725449401539119298091531896433135469197109135320987795836344868551901736653284969169045589821085153580466547497076385457282417614695454241453925968370185324550436208837265447093477413806806686569447986513882302788571943348583600788922520596648503667997127856724084835531067276105525402383428382656664862885247972998890683283497611043301888087369062922251008725188447435236102107115956779825449146577855371513958795761023498814683878998132678425716525156264002921532621441945637684285609662039890076674632754570812570653811030769731980321862466718964928209769107365219376181141638089179499368017210218304340200762091004311452727847605615460233351701673947958431096015814536901527417416988796277798733311880304881448152453634293901334214897417899336521837242693108024042547529388100850924385468365209026025403909939645671718437646053470890694103609850394844583716563920611393718208630349014062499860954315391095623476509362344797965499730735502392755424825065430397349352123685631416187761942876555951218537317602381109848401349439342961664250634233633070536681599806712546137151973295768670860507398383208607623156128794449822162318658009942093033929556035117201725494880654798869990651855332987821279506858519104554330725922340930625093627968477119816245060429543062104302629058305190740877792361358058352458919969520542816547446901250325939617689482509011560747745401565576288424739606853329597610495048321222942985275840061356165755750575724005438393835247105709564773559843739804688173279011430949019578417940179872227967161101658528884149377866334897339328652954250120763943478725712217876350672292478150708988359520925722085459779860547831876851423355187942363141546051229034917501083119018144481184612160122200888374524523461766739995093986597536954254361770509569023088573270315533646389500835043971865854492426376150637066210898946585862740247504636323554477063024852344107362646121259066099825483707434704701572712394953261801004026438691240907194799317097645772187057988410675173515377164854011991956084947175037887354359601040543150911290415682585469589078462084776209535996262678562490738897561564720672287790451913226986563802322235411665344223528896673665121569645347064941565867610910381202355542235110453520314283505996752894185863590447574051438051734635024498574027785012341775728311325639565759695094659179037000545898840382946628625345214365442971582294817839353066596319160856222097688987506172317290509054784230420506015019382579003752496689597606855039474009392419715506340510929255200106775226754637403926047198926250003883603056636652725602516462210195920800086240207597626457322625711135198516222313765587007753928214244064198231129701029322441106761601563878910726183554077017327655381281447165040729468132512194813468049003395807753866019726704647200434662914138809849323936140439437219713243032243772617591098197067574802708711980253930106947332902626585904416565547257176126379291375852039115983813649637736309099670447494055299760085149206497002115177967082200664670935266046498861009148230968850624839072232810817691056730623845440851294406973711150048862757635072396032302786455088800953110268736482547410795776371160562017991988980004829856668611830965491192776948308008044506390828447154785827897691326247383813375745117179736217751716115162446326569310731717501550421229828646200924335793919703114069184582437863731998612992775241504360924908855604122238558440212869978170773109470450690929564520898180450117323202541911528665924925753309064053357791914322570568962279132138508337894070190274511561971023995424698837644057810056255673290024640416895915241767069082717489960139721491602388409582522685388262935027255537996555849194131160760987019907383900228075418096946256734519835162235101211246863086501501362428378139760184556450953359850173044589413105242347750353444083281557050834959565264821601757130597355451196663986445527400099218110132281127112776116544263364077845084230537235032391314156202385384324998511095241832803217000473208015789098425033392884634682014233855065148148559623696988263807909923576944248508630894975300067509804470701653563109799374285500644341587740292180453943256499886559203222290597604454791163232127478139910154170366443624490662273198185763204302142502938168591852103792804878711365488626704013490696690542481584603068812393880660258031334342752324683039879209068640346064647938369469820417774038334130736370544676566457695096056616809201737674821250186628684382193320694489145964463459142640215599499063282238193538609080257207910375809958163828521048484901400640902625577032286552163953001691794688784281239887078870953705958040670646137088804797498190508405428801570121429525462804394932720662899727250516471227574615733937879094135361778626808534862892577579543849167763904688733903524309875454860871116604016168885055047627425469387328898155850470305582225510181007376826655070476994786043132681280589555273205743458359002635838683981581881650198188325445905500306136975274344277686978021895259304236773379863037770803914507013606262002730424871224304875943092376845371110708374720129390902212051548131981300033766187669839406499287140773205986695393726187132647591481555675111706513820961684307043896728834792128899247175792590060083915582321082020262540303621708960976117128712650046547968428748896573417344278683678377823148371288830646193044027425532654756821954806931134547212168759219741482333974877989393917978720662886224877016698172289349292828757342239141536669325637349444142009810317230029847624694956448923158187448835329394772493940305618576856066319954439944937627326071812847991462222535115495096949399871460707772717444308697114125360497847568506879733819354763816594742238173497400386674194147625979157524267788182810512187733506306792499943118751053040212443579899562401846274427749065738908776112364905996092633301733754586232439864362145155951877075473818425817961338513958956398372209463547192263055688251467298096545739519747889214258277957130347862635743841374218655104059011234987688357773067803773809360077206979238046868302383711882204562793238336088345985332372745398453344090522002459307507463568478483119251681719169837212744141132057902444388450867777114772805272157460419994828748943745040613855345925220416544356532566475457010605363668425865320052471572722503462203245294867284184732782551166767062091881987240370694070030003195318087660087179136621982567560824488072615171093958340018942074452905705589214541351790201634319346791615232367712941437055473335160597439531834378562344814007218471220400366762574203194297083368109589966271041975894734118134165757707313496298535634726652778229126039230358800100883036686674945139319372082901959467544116682505898789679863247922499120151623259970926986093402848499612129434213134734115201445675718240544978320648865469199157811820592992258540767007218560345027892830467301978127117360341662852820664336106703308776880707470409965741879879539502429065886339643577229177587815002598697672539485729526959531616780453079164276169754397448516739346183226890423854085685787512293576793893944569454886776865627275384967657522896198294824867684147853310616676277646918727179241455087348411106793755156672011710714501266254606197836837756825508003430964405272608903093387712331009559895080475334016123619213366676070231913658168163324580595520352810701963838326025048180803228864478515363510102676635131239608035074287563338413366800449149117512688365190276686302949170616684389419560894823288332784712477201836792081225167554996756930998193900175026254373418651546576930597769751823934893051939330810970492389985577933373052972714588491927087983696663388245883782395806223508026711118237795521828322096825086791502545419639965229306202326313805603423106940263970556849893782533336772798994167422632235821716726305963713494331156111843668252442071071388658135215577948198674904549040208303293056129932200047955465917934327394604092776189346160611766897041133374477917342219924620477960769545119864642738200002077653241240664802111197433434964126328246073434000864832110751082508132888481953438789960412175502452113197325521293467766363065679172556958281686231968599440519353750033386042121790445700367809882074661045737212235091584641399540557735901047672132201697170508667353435127394634313364491672563201861116720866215120669880419518340832468776994276584818142439443749293196762879671294971105379629198102928268108142670436210631414769384177036608350392999589385097278992610497625300407010629792418222531956262547635268162223101065861995690315745967437039118245115331483909416499502488938705546934734750868444001633138415128516784846009718173550414599775431054987611476308276838731434345095681678124010351706179627894306632190583546389893015908344219099019382431172138787090173921750607982791970812948161943837281316304042234890674232602596597996743416672801578132819078860486100050850890150288023013843439725197526226036928082111402023719197542913999726345601866903745686639487477223209469204619652279529686952125038472987993078946461373323595865616923023988722718139071560004213743716770478697699599552353987131109129739755840135644210238840553165986727389188382352900832144018640679259573727944778877025542183482281434393167773770600736640934974976107031780463031216625070327548004103660875166471944574475561307487071990286339266217490007726092781319064614076045259532004315445511812110968273485111366717438256305423602806821130032419420751876944303380591321419324338911659549479692478769012820427599255871028940551443676529463044642672976893615540416309075119769184409455619754370629456734254577717903771501279763157843738855143024702656168988459553702009597283883353031613150299335472361203102327872184791229772901784007654094309322195073921487448030577610173039282193430858118662122116587706245642981754222419459447956003970121545804276793980395231489296691555004407122306507495545461843182174801548423673328759870057062599354180269906308624565675391497694068410199015842297565018204727213402082555123463632116363507494755324358137020375863314727237517404734908414465057112922247094951188850270626313573758602618112713327360902941882316169207506793188011627375759066686739214545832086877096262107905451256542076677642498237443378622159308769462794714960482492944317148946339196966755184732589244619905511617343962193612996354987658051955440080191562297704939146352068149774498371248520329920987565326131967621044660503158825238800054908743672971075254693534461986814786351725298808099484015829634407354917132925033999037441487176762927630284474959946182434544643744169639237173909183621396825720111644356897877338701990470968265997869446514266879150836455738017356345164074782658340505507308224756790772769897651411240511236673414070386235008592829577678910157345970098884175570379235556707780492224043343912838986338207855754958771849317169147375860572710829651923018767306237426057808833959538066080013105314003472620897167286811142590624175503279683230490495180849098534302440562091650199121004224864023627495301976958497754460385615894720513121723424382501582659257952218322308517222365801993109375448388988964332335859260231633612631499443031654319798901004696552034600924879126904912004649989228782470308488117730852290918001086405859960412318405731641798256588439335992102341513322023631463908797148488660228031231244063004061052090417525297611421886715767781845616157632021913868092034139933571556855525794013093007405068967346634912389841399401564705477470298426157262436962061858073650133946924242959819099024292492732934349542563240465215199666637715696694738582949696257390462868061531718812653284651346384160731987204597754595289621507083162821463705176162880624289675329113309114899743456945212743875606148229697861002853522540687994548854341874411553445639181637125567948358178925390117754435926048950940063749204190676681903395730365555545840667321992085825314308634779830475489193495241668819873072932761022093949842714729645080735267288663324714386984713060218945063904377689595060215950458210259741231012917576742144933071044179011161866144734255136993015122246971132453542074483686087332860451310892114179927467920208037185316741077760685466503846469323938272523706076451293486933190148301598884075427829998114200355668027291812480837370031848566041588314909450064465972711130887970742160412427060156917580435332899900256526308411716937200689217449642169985789102544073294471632592164321766468277110725294736727015130772150972985842511749667352816721516273574202413412521056266932959293680209149614803188485827490180253433502669133849116192208601433045771810085210819608115851961021105931147438346077608780388503793553207385686785443047915542964228045394450459662539586022778161880116955042302410327033971945519064888153418240080125310449844071438726276598493306236912728444668195515089740091348687810974820636758344719985097493408298991252145084404193016111606774331026873066211117225318232878857912690048051756281383065666983474355239012560674073201054373836093540532028649109599015952782995254856136388076335916213596913517184780896724514795013416464222272493879673985651990566387386697595471258813665734221102291739218553224721108192596510396957701987031874685603038107141477398677542878927593762822037837337809932169668367172764346151471246119037612007547672562612978155744197795046413981270777410091057609980706185419326527360307706787909130614998079179639438637045841125981392368149235932478797382106186948391916630255853791318034829752271519609901124113497425505380274380794498446948374446096663251274363340127826269177315251005044899631125270107587550203256900070524106703371718192325955094896099817817328560154117411045117417225747907569709501031331400811534781488449171239978570362719137382402757462857942407160933752314070757254819168881238888593213258600335597119236321161929553633834633933097837087142793145852230684011708871491293900026885970877103221992734814919185342685618251880248958666757510683244395450121543765923267120439131968346250112871068751894604039790617647285220315389191526491559182869492578755352156545920023893162627646367652799961656490432846536600926863930924516726220461778759737471433734782569848386399675449490272988850476739702525652705635239317149745183746201781528464248662795448383528887383242610624595447845130825733903003035262423844039482930998990902729522603183810975938428074436407266116211490781130127301192201253120901452320349350047787982904184839202959189185581065726856063145726820109875715618669178126433850511780139981020634273463486857234013113383413291747296746274700149026411538693821275060472708119459274696244004760431131513444979249117345830329597081060832930031646920163384736233524670351464913787902894363155632106843731630274961536368656105906678192998522033091658812086080271335783781144045983935877001484434121208696036546865428398883072324474968753547878353794902810525412873033054313503283679311268440880178472320144030283658167871234357027656134025652092452918232607820473329699554918364908468830955333697943630505125183220207180903068704823163205632180132323119694478416165192018574173602820121294878619685003828662816417360261080208926039765897346349750161907138665434545484355766988147621585843609974614804734255946666542157419080044598970706472347871241172282389166948262734222486350190362968346313130630764972968270793519303926526773910371902682215706454892396979230308159560710059496965187363374496408607706341943291882499489857366047378536771375223083376972756670568586051573548732814651663334554841321502526974692463131367180944539999864219716966700949049682055756974057733793973146293482678344636906098211451974043179755092766262170583578060911995264501340614278908874003749308678321746227900887193900397011652426611715811602500039820998854224411062762639600089787860573332216407579715974571514807548136988483214531538381626628949211872955435572081521014534008505073868551453408089285412249646566256377258579393048131824327791586899812130569597108287035255830554622326614660451995425165814962228113200591403539350325819518804287673465403030360187802738558433791198427982224428996603002447722283179037306467878156271217669033098447847893035728482446306251973701568912045206480151875357419574669274278256448719262918340169000014375551910934881175244820910035561684900250300747791488565285590295612544426558493870107038858257454959570530175978499252536823888848831228671806119859707701151083793310032408588082024077100270015276221710691650658115019551859966654650904170835895038414189703435915942329862406433073285244182764311440847769226479155079603779509026102537181215280792179829921807796627389876188050920585780462726274383300475387850515084676301108107734396835255784701082525654946903535272902314651408469059190673398145790449986486028625894980784442519539875353555354509590264497632373643086408297905740013649040272914029884906414186930494506348369849278872669748105759047739780023373129605925004677904937673538090109450411874146574548304891227495463673586922743897400312648780472821876701335312348869425130615274110666260151832936451277063056699528690488438245309428465707347661288713972506752301226978775407718626498632192350703998133998021248277943102454377575199677851992993106015190017416730402555983366321558695374082798710480899389857141253433036201693325799518437354292321434929560966888918013139387026623482062813337007235108311223621095354891119308402303665042185259865736207900804534850218265018867908302222198298665096695036619940315083432965925513894217375446462892089450639534267914284541745495472407330716795298239308514965875488148156657984147148896802560886881424505117665405927236703459714649011054176380829078611325102284864728192918084020216236222359856577886644659610049739479840707598835532733673396918080476870475174043687166033003215070885359059012289196199227704491969735384820651080075653033541529849225856130230111800706188702488207805953453709861089225077677092780729545666504905304662468338206646940144676892093163756998137285643962754773492095210080308808430764803649384717000283046640622238841815170354257173763173934106002477059401875407791868713113572391565295426335602448611858442715355330094451737561568743842479496907346196761942459749173727799290707362802559786443616580884291179860029184574309034819966956055809758419983567767075682034365464500227836505805132006104562490595191069590937780785568287492179588302586914533323777203668412912113750546571270195120462289543749502452715558524189019936629327529041469816897122688534634663752447470632575301744630575053995780454417170577954681546784955653837894453696988262575598561917762554001174658381924780257297408185812509165659128955955522839827474995701532871212017905295326581119720834934843467835304102880077061943932736605170703700998546441693616723256220375507488116918998072844008153839083034672661290034665083591509797229736527886998913155341177821723049392089477220493289984908720895925469093553459000419423170712387738500218813909387675229235866955928514137915536635426408875241031322308486142955261378108227647840617584708603045169020618461501143743301855058528845096534521181021828412373573173261007275847356397135364993795286533222054407060716165337253647119552961718104168074207488686989069496648158382319753516699114046491629521406036390927769407862697004311771581211976216761846220491058507326042767216556785305833455489473067370022200731593109026664520766738265319908055274373387559911958850673437818432255777252663511297773430798730215066649482218182648299835771697979566292719091389387877012655250383000941629607718095636049732897515070742435963421699107635413776218646069919182185432492247857377238230955266833777308504790585914417168650237261106632145628835493449753087256328865743667067723266633269996557273236006305785364059026886660202636900476406026920018024697729760584747805129624190913038787558743504516810714762973153973938965668833847323415378894044049966319754490706072014784473102206396417456570731882241235968798581790636086285354990320162232775185961582410960103974894953796336502247725556525929458705099713421866739598002326207872669079166448204973700710151002817379788164194711035550734273967939709649273619385049188994476600960267763058302806004950527285806967300917464817571629370894795631262898294361707142688467824104757091550114537159130743144714555989409859312544784142514030351276528931914165171059235874861991420196853338551955882224840622088951692251111147488407898985465050167996039285034357575518438582210002589654773619602473867818226632711658536044138520808135200552741400654240613313929070471532716088595792454781354657243862681421055348289896351201647326693519607201489846643878826494667738658061812513049262719416836581105744137579178290406169689687715254410780389201230304382351367732922656764609683747190667424500570925538804270123144759607785485967542153770918792747962572595951477669129943458993290463367847347261564322622179707657386188325994985745562382398114802401714593030284157130650061742507220024337270892911952457236868246228455705096237326416176447567260071245349028378954675862743806289309140062465052714070710763120373166378410115337365995846392063298207484016125892952589945477049294663867781125651751764525427301044002485813748298844683274299471541669991574685418911410454096327683738686391540064820937309660169984888716070814381606386408245905485163702387648914651495997600311738557721460492757079610940561404748728681163257805093259933681589767704133308672324616846949271401597734104994391384854055077071713427299559718324179448107442052075950273181252573863610166828782051396630730802295337963861520790081697757998905026274393715121506034469417087947284836816309819291401605674775067470823109694954894895885915552130516761369629503917564830258923058230062385384056904820065191167160861029911254030697150284870924466989700443739471204484233097688694437024266292365241949773538620199325920645917779604518241495845546662419394444654364139251492763236265382435769617087219941159188112855907293815229659882025910779655861533884566320559305029199748813872870538422471598260319206909058682971205979271743132823578508324961662033530477130765269225465177555385280306353349108433135330822380512206050265801702921484599514438639697270563552653858631293246948350971363812297202221709417281737627988601846584041365384305227627229842426333678666194427106362952649743143285609330906476469986022857943186959833504471631585983766001658593864339085820211169539827140142745546940456926768777336404531209323643967491503353763761958743607451754787754099575855307839823201727048086352014724990326919464720108996932826817976676033062545807839890468127405674348119331599204065086833238744855731391427929670374763959658870841503739232577412600088758122868372234766945137463999084005131092783860689261862418956874207131522697582024522991125178285246776651195670404012504571033237404915559190158721098552915146356620299099383430485097162809375186905334926773877354656488257629361079560721992288968125690312188043077191013683807981862040562835998035530960616992693342957204539790141160379274655557308893928425108328124230798523383689867024896218088494014017492665909293333277290229627001792943812843850294515442486233164776269050966834025794919780990820492268226511356188809283158108169790460623113863030134558613911634856565792039479741325007060526375560360371342794265852959538879442574820113473066150612519571827875955320701837029486581330583051109102663545321495249857614716958110400544212769422098660766757320152233383150724707873042566684206955605593523635421623492954068116076137121044435262546484800834408346269472498689470601207348400579828275814559818064193771945725885323357963399052972666329785940009718129469204319576016616749153685808405675383087453686427749090994265693234858927815531142021120081190239905163725603833919520840657597097828754456128394626568443056004450407249882689042394429931947279236654907164098654251165186254454130052888696442767898208657226941058168457240055322711513186463143168229862214562758920953586892895034300717595375739044634890933365872845455563991344783838335897114952368222333045805000000034807023864769729386638196477694403767125423284387275783229828790913944608629512937629221835530760863817043945582263304728211968008491680482869016896132762638896012138028498517368144164943402769710255391762799008168357502494551304455669722733781306836867703470271241935841839400630714265995289099708424587479871218226184421537673522101172665755296924224564295445511234136024745208431083424498452739394691276662484424532971864613120323000064496931526977188801087431398188172241975263873308453060351089040499531944796778210494560503130575129095545038581376226251369330766208781102303025481706752606574565720385582347986538492571163799453841517215458486903736737897419270570079721745963368381967997191484215649991911415634335649400772621733159840835449810643433711984111638170942917527985297952593501446878173994006906961920766814745614342255760575571868327190652097598648851149094746528726297585496117406871535821129000888475089834684265585331323149208671980186048008803906685722586653281611574033845537582274956867328500838132554889899429049084998176178660161022596853195987998408736575157411680580390428093763808305044552445153214458406889733992074313635094986445032108210465135154182478726270624742361528527437295091031083027295271294293384509244708287488465863666870407461929097146846244876470587860470733133629415005812019890475647616488403727793904947341044107811757946689499945181781268234391389128710460578918050333317000321559394328613560260037908101383326983237004041309952617213723697537063831270883927640379447734170179238068857341645609155258615309702728547971154826454850181788995016745332309544336075306657976882061653132842667538851126938813128130217667924385202888539227727536118384490039487290019937354146327527764563017515397750660393843930445995883453762102688375820628602055112425028612349884374710772926165255870560928529483206736481748366700022277937410290827455983193177635494174170234736387051423668820958454457596544343760474803851713360594469878444584206348100234980835621500120776851988855277680744086449434902597240478545512468824149067927846394350600845367022198571022189251162795981572055634325630008698088778562780252214173846567817861447241091855171103802650626611758915730735263633380570072468540155995460560566248118639139611564694184889228675198544315615167695793793105040455760968740456584847764838134467440351833971746299589792381459905974405976834495640928914001167552804564603526688778284790518237146770480666040304656018750355233574547091181332259096685380092269739609409052811272640111892966713029418676815840209707665159836472940011403592892609781552044225148151211046282442372807582278557358235724986409636810823624886027267789988159200829983855275994219376296605203806326602084453020654319146535099338192533136881295119406568581136399828728351807148958972458758253789555554170254866719366538252299280218330190505924988304057448611562212919576944996187307672659033787494207648963669282757026301547260056143288043667711520631819020037159321655037087954521037172090329305158178519140539245881164418069449834162544977188096888508586497439630141967948473794078199808024370283612126251445688579060882707791615228831112250491937075526360257619428991944488808294016624643508098390158243684609218538039906881847641861146702543513256833284913366814932276103581565864808321652928578236799499475953255205662565279739063362512549447889199487962404597749036472044664575937185541549601716871971847547387049503057407719386531010050802409974456286690248929325204183530998356085114197604712952009258531550937876772574243491940140211938455226090304195806604036220804487299255762974715154843366408536257240548872046081541666606478318951066435690154389502540472614622608035085018520634921392360422746098331073904818321495798924461897472813632375951607028074512824595193624037917470768090916178720596806426931566967321494145186284291639338088438454983714372119263066304330967951913455740025355198579678084874512987276719658485915531226227843288812060881573966468987547209903030431543451534342322860902956211981310397357812892170045071053368935614685772430620990949012945766144290307898936030254860965554389983415589838492268663155881709376045047465909632502956398834983174128896265200182918862243589079439665026780080800986172700214265084549083220627338160944874511778890223998383315172912326198747342239904044431560605575298924723296651234965823273061721389778219409805456475077160427217688425868365891877678058115823848245282568398604611136046611262962459113130571135933561752342989191092063710020035441839410406725088366103438013952832974803103774781640883518720477417037429892017870312278408250416767807117409069587838078841447582123108862260748148852422416041771803855989380219913639947092440014797719995708252979097711868285800466426510852319921183433320427943795381182708407092517114493061237095591966058208866105705667678727981068174771633320057904423001068897679544653445934965655726304969969470271604914534565018277189188552228164710254101032902015728897343288650835126413168603493417641706135339582770232439129771754263007207639888012713944673581163422667895791782189528951923917284781476748027407917242018602944436721618880123107826862007029836376586075092116425466056818208703543281077588521449116082518915959897317275801264085194474374742305726458605354331841925751332494234724132192507273959681217540799173094842024538531565602209018615721926561903468473615306326743471051848097032033443245779981302046732501430895383827880546253789897426195505545093170932754386810870970246644840900674500003917443012454929562167498414596053678185206657007602741262133143291718447052143962939158508986148382887707821264346383077745760265031475158765048108879909162633331339937173144163831500373055383376326135828626797482087731445359122734884836939375282608426961688234634224273778272489983593192824696088562050040616394048752983576007672013773302495598081036161982218944171415818775841609043582300598735687378780546313332065592797847164308894533024103107913623549909592489372387160554484775385669168325955848589914426543160368368593324238439468347420097952987287401631748718794064381499710235223074515698663775383549333942328249241061544814961664320390797926662239214394928192956253415441010228969144364177388124034972545984038282929139607662755248161900332390429105575927466942455053401019143566893024474371273841718712314629272892219371888648445190784750891630867246440809148203186386450120311915335945957713985393869407836129935761084037427783137396833458798548629883962654551553495075069634408406336978801327013105518897637373609520100829133126649297096859694225263868055080664047790765044139583555969968997589928109371326657474021020687774711741585164943897256621627058483774321372363732838612264683809042230594353356171806419829909377033348252263590972094678553318399443530773919604488764974358893993300978398644267853402474731622511879119817186459184966695816831764900725475212239481631222285926740576936660358528777697155608100611760733722848902864976614549522886278607371675748993000663464029199591451266676524664784563958586444555312926813031655178509241012384786139047934254830326814294055673800622295431662912374613427952664603359701909243292917814347639159237622912335313371789633851386299919846908166638316120025592408175132858650666579946967766083196423087762080448542698307478207399289008153623435800869469606889154377857603140590367944076802191704283327165508778563976962264136148849604748432791440251336271794970369478797397336073977209832367494445498471179305656422644614510947532153778857097067671873700133393874432229229979871768447103303409075144867611652935791771173914254959934509881476808409749435255113916672544024158825743940098483769216713394439977693409230210739207778803407782921291700987667523099806540554583838319514612979668073021940109407767489814611630586645823753893999310898748496561216445089128421810024110082035713595749074048339774970018156546477930436277584626458984493739375863510242957569178003330326044377280477950291031421335630326952487500068451977293420440985247711179608844322686886620364200647660649074334798993360756625858666950748211601241155344562388118819661982238085795397923220325005643874726954051073118673969576651891567075566521927545159541437157701168822919795528736311258675004555730119820764402714858877046297863504440865257970350556046814636691230883760219803913460532866599647307399223705679027386677873138673423431370110040848234971170006146529931657322869040881204362450370584730283573044327985559707498851560062525097271072206297648938288278135590153413908919094046401641561744259519916890168125650712591557841265041164308996892214165190409508189971279257763716831941899206623869332767731603440106178664435127539207201374169393994276226341516662834149002526025549026015201673839076876418363683739217112610987004967456762470382725193612602089049832160170728713941646030498908910731405004313116088593983917866936417496311524041473256980129255489146401570002845405590040341379242452753555477111318552643489126166982547153465178589446643177922278077435634438274163034761467051562185707546106896087391035163140456711350479426247528359772743972122279949865204494684557855503532086373828090034840753478987058008261832133672719629682784235523254076372278998985594738786752631947705993846685871415320317481063904908700217267624155187532346276849668154189430361312491880941296905188377136097408405528446252369529479028301087385926663312011314241595624237098688712693719799935135287673385528540860951423656645794943902232317478653736536331609094503352852217569089049672935099169632237790325542473125309060721824974829970762463331183083292783474038359776269514348868045019912778829967524554782660833635555469582051618552040022701900520281301127918263852093987638985864287979892784446982498213920301669396310516812661759095878886547618138045487180056739510433796910800067226191639397044566914025675298332295733204263049090035248211766527837177851421336042341831154437608613944637122879917978606987133161718876544829292403845709381693175707766876318349899636624094041094898750259370011658985711067611697015138758341878010837389502943695100217972619048345348121693250139094103881916874853682836451511802710304921547196331173343278363777243768435579745637584585456619276263575875600892333115854112484317952570138029172695837745498960502993958225256988330389436824488281091506317559980575142303116891070259508935875689108496691714776378390130440155930900878489071646968035165967189791615411521174692073340909500125796644345261885798413799659800431491028253111603171469540080554292202143454862819960914073825587571004904327751667277455878955517456783081302863987710691970741753405259299220370156413315771816468934790131322411727671596100761674806725615574877782866337727775842783077366315044454080266306174688997393182052105692621251772333986766629067723004804277810861293984622816823551347352610156412518938811184325707708884069070330401857424063973124268782855569712706463153612979641856524716057761345897020075786178456062995896198427482431208121539810818484639044592503558745689801365888568134944079659933911706444101295541663704926707732046137419450489901891927896275575482491051433882898655796591254372448151051231968664221243479153514677748439872807493436563965536075007330043420116001378295270576570291494121005514139160460968416281039670604883548041668669181284200908289305928251264660595808988973082134698012694788605547571376797326711641193381841897686019447837123283985798083519321652291312486887270438447080509641554678121143407632075231974262354371964767172537349850157165163598781159938784789941208184232009208259633389970627200878111154743162433782909888271798874319454346181826277103796460260968137207612688485242104709591515712871818557384469690557381964981886118106264682734617965627375923260405258301521557574641706335211289068632206772729768598135855782344735587327991700755359169465426279588564660542169789146759739515502306560609267059990640457583650254564072446017501082694151845848826697581186989311464187671883872903050387332846819533342205773739085666224069826029385452686454520005662413369123625510927007673344925262170889501706968596640698547627422207872055484252670678621556545936862275077011076369754877354077053669932614974848944379477319719446604271338040447357793294259895118957760366338782250598223093747590703692125798679596092137704945296014881149575377729133287112104805811391317393424708423752198580292743226454913116726465022066743690270039665681286481550262774778863005336556807140140342353784894431878807577797275313798594222324523398197706618981134242025096890420867001106644656765681986369440718159265438304576224045708227614295504944233168479166732084220028292879446761646126427109881902458503989482731550375134604046983127368910794141984347724017183537846200082185869429691775692867234786154834711239698124421720433156023481021593665751182262924139523070278403134101799640224544504901806855482331526144615670895934026376307360917908036264175664423419203909456893609378566065077111880170729949551849354168304685415214030329226895853642291168573378562135776756984530570630889828378342218116483527264943591984020269404371630873925895769848507161161100232710886904424686418257816973655972928092842740121383688115047718532134075207866517543494233004945120990823587649964358373441465619571941470282533982142073451262872444603539363632546378554271851923347058941580372347798106203704989799103412990262627128521944242685901825313160093851366828196771406144532361228459080968821952278295191307550778488271044548268070027829060819656580734608553493653617890157717106167559116196011955220687815109691371760853037026465595443419183934115613209097612829749019407767971188149197421966867717810347799464656092267334970339919333958207475863329799755399631630348556621501674665719726176527251968282969161194492540004508782588881155308602846913560694686953911299162872609094141762578171149879688375828911569405619528743418420584629355443357533781715138977048991986899746113998506084456679666607708908493712570528138530081653987077898606618144365941160613041017887425051576559559083721346734895657205137582796553999267055083550849563625805522620295944095152253817933398136785780579370698678303313607890017325839006222445370764043720033444734100300995619236549630621167934115327410646241287825941914106450920176889530773461636289931594711246941017248297930267628956989144128084456369938364391452710911503547710055317566064878728597846153356964369362735106350810745958345069422018961364822564446194200797201247188791800142795678219303362669435267562077705807361586592114830910236638628029394558431958024618191113769450031112028656483385699648077403798880522992746163651548152553575830955026664551863817887004941891108575967600819127575416498269665468347624773230760335823986983609660380273085796607874338906541794284326778222132766241460887078730287270007042359165611364375135171183099990814102510373255881335605271650809408784267111667739949820753833275655065661361606914411699068176986674945977482285213176416133659688852193872612883647686851066982552164570934517603845076625853484178543650015152432135574382454500434357877553123673481429158216558361436269046446624791649627927087373881079859866085236486730292945342848392185117569669707958500569320493520777539971409321620094323915007663197604945015683804167602686592435149392314496347398676883170402344044081998713265193609213855030879322969328529682012517402065967560005444158554861349941479376889814933080591195429674115913444375661572321850159374235110930244354353266763748693494430469383456915928111529263440628289816349450435656542406753815196787286064287062239765221500034306351001254264153886057537336055462469984564368877131425659599667080587144073682319380086847276223630111086549581751390737027080851007248222088318955084898377551785467493372601125664793339143731504921800993507813636673775114892796533964230893971415498799870746045661320963957859072698122652219862079393626012840459258313461059806355052202073611436315607678775225559474549044058318395869656893646632616865235535779642663490714650726747795098520018478616458445439040801886561095643676774539613749965166880408020196047689379947239998696232657447126514037197349947301749035477734576968443618704519700339322701355393084490130324039499389097529200433593610908411989788416659353013280383754696326706693639590790005085074602346992454571678298064092177852035480819141115438141323556921102836099390395153139733145706992752825987749153815172694151033836112241946717521578723498737384177384212394095770970672558488084068887409721966026731919669811489946560070446130096171220028904774748767189768521828308857136319453257379727899110314457005440769087474620369602923811169457751696795165509605728420190930160878008906038335901414841695922683579984831649621080860952012589670678232809180418160605609559110816701451440827654051097748789591338209268727289649984485810237136066754674708726745080861989623813454910766305776731552625535386871664245089195106494888348542988715089534110430766368312827176966531227308302156290708981714203336061838620960736355713700968049068864680459088361662265884127623032797767502331789340583687296273796083043219730154972670192200218442653000693300482901361159855520045531448859075014189241681991134931805530639915527032660577872780137846336191674557886498953921856793743202315287149805227932770201024205811080426384298005122528417167343604598610311545587826511826238732305212539795673758976941303386203684617761316408030844647352497585259483958288077054849586578196081669035224000617374250665040107234999970414302639793423491751245543928857424240085057301261118286204710959966728813761803365565385756278227844443998863858513481560473752836724331499224130707904366901708431963408887399355797757805375919353000527091815216672469733438539019460936725946225180999586186329925293185823915174347271451125343679311711843203435711459710680582864272168393561871273766937605957210264209802260207904350847738603897651500535739423845759234727138931836461758987506122704069226403430816630128444297426910882284529967015807465145847772753144040132678678399022870759432799545819110358125483730880716217939498925556169311568715197561456423994110889289949086549902277729341997688605691360185127320774681348611893911099007745811856409235155221987346476818092291559719299209143484426983099536816834566336702592340392283317268965665154848761830438105774856189157839734457088184710507865979989142234113112171844132172480290248255852047635616650671400246017106477871796496532115661515956566806893796328465074197822466795106869351911419169468853972051769353113361589194570869320408183909264085734415435850560176464490372647919104277866664666882725375386751090193208349377086511352593599380668042062640645893652732824901936892283412289576384610766762826075923072351995791055170138060299875676688527408170882989290797999594825104381000233230839657112206463784377243139965426059969505636433526631818779054877566483665312386784125996300155599235978887670183915763800087988688150638634460217980499024746492309534254650636942587869698725036597250509303699072274257329986160385346744064571330029992930674080370673547463055286240761478760829967555607527483720573461603194076182327649515703143645602347765351530917586160649075825864693521668053019225073081650976718037211182203136317358612545349658487234533770877726911459626462298267166524406808653337995047119254715516664237392764845905112374716173025650416900319011855568534895577457854480550968817642723898213724304650681833579762146050694333050953717600274951551270370343704926375090303977186369239688076475145578748423361401778939673922101547233874210442523104924589467163407390970501082793229107922798201934851576339407607739506804441621848507636289323990876076620328490395694897899581641523999790773862590556291115560622755882684056247065854926281455321897408971164992711803271157174040712638803766014787756033812549646771081597867593771144676955876788270260187507493728726793092295707590713615767808150242763645927846575718153827028881432560162824903363134857404393945697709633106710256149958153205248929222446520530583070717652132001104591344790860457275000443464589426409269399438787448031745073088445355678978362071378999445133432695857230918733429145418160212889345416928206084358168149666285563318726726571283710217579473593684719566596611186656567665677636679514062968361963764675271550079573632066851167094502748092901932667161462344561730285184801071323105841149099122278624594906784460630703053467189846779173805432188065704806810824647265693240629576607980945873309206996687184113040794959010544508472950315857621742090876574538810537191025234411040863047993487887228301136354852715371806887319607040920237780027012520511372770384559481194570518751064899563809282681486868606030546421403749047068419254622203555723853061726670350094047432471766223507927967303330260157835637883339151503709233467448430667658894154562412392406236090483203823725249514741561644210156943699164407188520299658647552042630450893875672361251158459026805450459261809500969302432523800428190787943492323533062206781451662995607496724771959618429520233738808389534781723745558116118855279268289589157777780779884639506848701357901023714631661989048948789812041787606584089135085360639032135840185491845442286413229354555984437042838009241322839914480302960223070119785328367967689986001952170151405410874556918730757841757561184247587686025661045336950376334258539078829026724318625582783451497153230845833033764882543333593952359497981650875156047699315731175335646667448377552287195035385846420482303297559449723328498554576733369000275328561274535565465144332433192178712177548633080556257313105598968116696672534372327428065660066147328096461966277917234284671359646106761900710929463850097534501646911500826356211301488581669358994122323588879910317524489146585697935979075838934025596379335734360379516189029251487174525589423363433764491518453508226006105690979603858864241521911977552873990552953804358686516291049082000994252192162920685782791708457135871161649112812119055527674057100151757063414322413834369021775969347486568088068543029284444612225396692666299027688816731629279632835814499884066473755428590507357658088106820382255194322733726521572686432023100800625371193137966176318817247252143277576969200834277978501154991890968433236439746506825287433190016402986068042322808040788022388313384573818213619713236223478958749994822195127315493428826774204423771479769847291446270570340252095986257371647984858037057017040499936936713618148848796346165295913799657744058509740864884808901985689296970596222858885157861516671368392125566319211825006952311620265559266598404048007956486289558443164491919019374239873270365085761480534104440134239118943779865693950670767868849739451669108674626087303372891474783254427877436374197205977298337778020534032944381007903645615275174699682867770041531964436662893410388909299203103581358393524217320657191600512644030790893340493216274722086949572265995564365406522033525165817254741406225271609361862482743680940387560954364476149116508056069302996258705128571969452117053007700098711819001689575868683478598551282850045298543812653247947462438875845852824954034656808202926142699414652986656928191547107547602136459875256304626183140789106156294627864946673328765193738053523855829546954306856315782290277001495089345945028752755926747972877313111022487754000770295306377537358708200910058323883092103959277008936662845827021069247023332513509915034858157613532035180745536927488570369349782900711858865237310334337243813201553281016382980028398061763311589201434419439165105245798693374406490305861154443233411740312160149882140433767922648905546809236283990219426431274637656100957922918288411393318425029565948890257558119261506750922334305965997601622508815786361286685256221143940527483720946213390291924958995180474187313288463504427336348190652165563341083368708666890658972637848465192665123949043046095381131898241286301041105808136122471640788408816042341888682267739338417025063769116348414092130882648674387542422341210550038133560171460418720826804218618064436620596606942843270583603318856374467390597935159314196569628625651950210388303749513851136559166797795977224517656360388667778004302783004089269479203426131845786270938595278758617994571639279111973443053518184445315058923122171382534139131984908186835920374342973804820149181043690733640770873623531697488309205520989392991695323396950234452622343189660779529097095505118584778026583879476701815021011487902845255171335523003316902893798180247289727195167190252331111570110550787857228867509982655690192844878713630152974933387129793076320207869027426336248327559888712986457340591143120694574590820906017717248294694948768292736909019306075072594512357961143737688719908495812187383662293705219550057117065652172456627200675222090585289969975652836847280066614058381656186075257317932244095831578033391804524305253255105652336321315302657228263729274677662099892518679435123172102940948015568353728499320546562524686078306337239077459547861623566805048039287633657291916354302396489105523449502995348352156389042644303581489520015088651082322369851296521150756350225777411815973925168616985658234776349204580115816090883031161155243070541293381508498521301348160171613697064691895585381215197945060608941959523082846319290734109127490864545371285182393541411149525942474979986736837028549470199380274062330956160082628275019745697756155322332238601265448641702086384401181280518380479221416980441929561982958063957387072666935019413360334903198216671757198052610169719538773633584992759123940584836940676012103395073196760762170521021220860417032657883502822966094571713868116644074322632649967941087809066517336338690239302168055851559611614521905551364167115867732735208200272133673024584617387284647644349029163740972407247643544316350811790263868455476703501754208466150700915262099724613133251529561824803900551509514853300705860815934754940524161194718261494946515149355167366192789630438528778980583783356147911386850115480416056795746493545609369039730368019064079215316527248093106636940973884361035596184842609921955016382304367335120221720213912759757983261596454377863538056966692908015765687781272579896290798072805518387995651521831507468349931324481436438579771745120712878453029497943180250237096103695762189814011408923342471452520730993394420443834948146328543461374576278701754201574483900643874383448562983954317427394284551063890822743311948707404971719564935727340931233431331853778081283364612109508782509788366306511462885356526044013818887226495274421408777451180354509421194568402177439365896191998296687839097777565893879279054037279211576553776719245847924632273027081826135378462955727670145262891606488323836243218205156217285539867857771017071909880298357042871408115613511032215005531669686206122061345698975342375157738429814199893299123857629016773267203651307526831947231696455543720643280415002739085701783495717263784085039110248724004702969610681922435388903778329686132680380804952643766271505250274403974595360870120002980311581440675968860565235508406123765226788882233169044825625230743526621120455821722897688076193226264195818481661697107450899926247995777050458991935329150740702577164269895036291479991669689820037067384655611581566614804132225359571736180671774126028330009179591443634089094534766924638232397178938457425066211318999494814097782437831836817804252851374360843196674062608279830883600087351858549948856789995470143632621002685769267594980571509119463317683441399963331932984816160266174681319996032638009946572830570397480098865072424203833543748299242323886818151824786958756519822828176026362652467034043626968558540153026884780363966419340847965107841590278290606235554393806612371272316132587766305072450134418830576415447027743558406265983561219766930631217439910890209801523030772846239876347149204050570106190701711037528026580983983160783345942669287822868287789030564159186420193599328950561258585439372264069081400310490187807002523181107213958452398664608426599428778800211467888496605268966689245385600899340168745978750427918013583951398546187667738279068882809388001681372569949890080456564576895101726604446948542278210603932554432330789319352316603755776806070375186004831643482139344307574194525786809752669989031962852269920523613244001328234170902088149596127324392800824398137078765015334350389998876244754114380914042271138374863999044867655446807620264577206934932855215256370856942398984512229839826722937775863334700538572796292679938671486713524803675994532468104391452498166785719113427093391369600363315358306251323726943383770616159190436845524145300644049717073807074002964301829579847836082414997946039193462914531914640965636838633367818387601581303664609190997863480598131616537319165798213145990840791877206528771305486020937080792467750599043936076589321631091467470258447663305985816506557923873860269175048634432899352237661130053839536156086765119427716517259954728650356482943827732802532294523011847751620925625028016490367775371332060505970238690824295493394807838134702119694571416440335069021541293120682937757604432743999450086115591844283266151648103766086094982481130036908315563180270785657722666262245324867270179709217074171135381107150270087024569562109314018179555735831797774969454858451875386119162495123289538697971083916411863753561782693124257447822870700657960594764591967363351520512684917873261419395103591556529865824514155030089137912147350593900698978354924941654148279169489431656502819785217956522980970272405817938065772073932724723795618697909370489438157691415533833886285587510987195467747298894453816300189892444797289667486844806477380206527751859568348658859364001993447890052869014741214958432711277128079213164901889692464523548067663812759989579672661015868513392238709444601904786671509309929735805643246779974023689329913492752628665102104115281635696281816007041457301363172801004695922624109954910365043591119330346854136488309551327774338255864098049566384358138604744696315635614485416170275546074261784111067130996294183100844326084180447908811761028871270772473134969370086387221589170770414074240675273658162507109854576015040913483412087481529110147161236987099662054402293963655773207868668397026323617226348650248255376673836054450917065760103280160153260880914118248729251219655281265399219846864020926655870190200242890067863039531785514896761941133546101254505621567146754266826375340882813192502712964903458429931713684289478788801285039632538150257297511742359689075439640727990093236924879847104330096403709324580900433289281991793146859858223330693660811085935344544978332159496176301795109582511220674038286651580307980020263573578186025623540291970025983507308348695720732679081525598224128257512006164554727187449834902593357302404023913614535264458280663794295998228003755092492718530194022193547919444491417141727311519924844152784395099931603930262998975161926897239079158584626443865191015592111240791596974184946312075905769013427089580922545973409134367687147321661907936306868375047185929440894852689787896792866363992247930519290478516828592754275553043567344547566986145294784970443398556118067987185381053105982533209042977996758395990706847115526803010940332856507464604600756216477213666716927991830362761256628747281233741613220982140490263983294973892681717781099972964586196927057093458447644737070856295662903222999102548906383700342263909536399656382391918646414707328907112399259750439339258647034247790526870129141885350647329901361054784576999238906662186821742090702086623142378592949319977519420149040680327155865021483271820644963709672448376621460466602256636918656618396369871942875967448970302298565107591824311272773760191553396867052202875159205798598173169073890051610273717977747846823023500366425862314209168646618882820049575319588584329891390212608545081803344883752769479835159557250893117959842848062920538678834185602926811511202516629969483016625527011946217451486460607038898617035881591170072598199355914857404041080279988117262351200196436350303078209743751950724008796674558858226452774145572888021955686850047916043207494183489930958572315382329602927903858778491573459792018042765361535047195542806661319497496340128711938407570667709179530072872260332609826352956566337620179324206182550259643061243044972062571432441748745523172911771582891735677655424604610329987597548671794744195229135171339365793658778528324148083357836840889973797844385162789871591964468868359301825085856811788256164323884964767170692181162477065237911044052857974285657312341626394270662392237952095377985247094752236225818056094650070805945917488871392336328157309054126173181265312484352764937873389386492912634401645651666872770240534340397001515038011596048791208961726716610402677140804135635813398833264820365448772179421488146757110931200485613925464195881493926195854166144734186269278579709260471862809469533610432000888046292823813650275385215135193104007537480480207286128533916283769117938655229123279619330442823511145456508283557715053326678526847254409041180697711630368097394181804653067116066908509751618899669420297870895722001596079703384263492240806482276203279473628799115453602697994741473383299652990369908609079123820405405373409752452713031122967505634218717030746528446897282146054810122594467583339053277491478599512596344184784838630649981020595117303288573915714229282221362666209445410475291253701935320022706127690723422064822285081995070840066604502792062355323104701971312858509685568464433546524426011538600205560011918721864409733406940679279364490941328172095509841828987546606423192020016822676454541407751142759233313572660898040452059471880207338534942964609098916120377022087336780295299095823634228202460672379255600880996340376114857683577040424804371522698769739292209064338106920855921111892492914452975915654948440988091327519488223198122920924892121359031032742240241282540342555516896594941990858795791877714592312279817131585133923635016912594972711842078879460071321465759974118553266293476822120308331010997479088787920959061987683769751152375833033316979691022830247741108790772479372945444494837912147761755401139566293861376455436141219651013640270665425955383591104388524740259252015154803449203775401865030383591210111043204907567894791871618091491533700624897430740146418795122469402556016998869010229745892028514274671201397196375221455893019920154634620122005899581815514190504499858575673018464805152989506313162132114973087864458890595113790817721808648714610952080650498950148068372427801052094243975795173697258917275983249123457423823533741738934419358147746893007743445014898137110057701116505229089375770640771974918626927997490659199918644173880092003360589927377687292660993911507393068933415207077146588294893151433121559129452995168024900931508811383995016657866669026975584707658859042203817321434119509551055365213555991324463483268402978819090770432353028037225501658521110111833476802743630682095271763441670805118666773846020538861869766764122580082341016929236401001146745632680276214584065721802031885563374197855383120626405453707295813111342938030339851516915273493850927625322262837624033804373267414396969162296094450620939397822565730175052211702922683109808594053939927014964679273109644214338187186739326767972924496546288468365282141195279420661461331172741349162925330625839023083894226529051721418507557774974107019607461373405132053630455072939199695322425545668310204649290821800024886226442093314755846711217560808339886486642917656028505081923338741224965597910286318614863154362398920292625685494097486611601260095897149580941722213025711177157338140324442559385110753105068070424155691552814614559478891293685828873527967655999428966294953789588715680433133675867639258241536137758339462635460901531319035750938917324199896508792516348893915704512677729368211879141376989580278450262688289092248628948349217855234435194754836126564546646016292777100551974145001973148699390478869297492255551514918051283526662107936927416099166347800908191229079359106611643188748858884444218157926695115568751980542926732510412526465855188203923304510882324873187842930855262342361935141505630568452966931927056601332850569690151413086451544239378020158564466305748017975814639364090932591413315568758955321154375193931765454935200267624394225692614848398219141214447267591153297057219713738409054530518270775039659898215568009871523628275493787473925855000245831163052903703521984433025745719349418617706849781923037406763434236278835695435009041991927373143967263936305972985684367313363328016733400410803697385826181604532695054127014951593101385324456175629818169755368945738962384467806858993570502319795480780343230023991894370600428270285110696300329482301355813627540069349988087485391053837348700554822429155038611883380836242897732468891583863029264418159637314885296673128375684537475834183574612958783920430853639812746220818814681799947620864544959525119552351203919686935362477043075933923170607144485454828741715949307095850169513853799377946790847135361183692924626636831095916061074370721804467522859983667850829934576599795138491585662630012384219735259306418935480656957518574389827458525600861491110218794480903963909843779906368130343542857114967326458840376946982878190979639588026985700373066039138892720048263130606002519072975593173965233312089151126030027042211403615595059510416400941159845841989418736107964775527065718849836354983587490599423196233402499535634255619946135654467022057573606338678270170492542750767574663195229003689228227078385249752682442916063350293001468999294782572947194837778622831733573652075001397487423833974912070648737634889017405345180867524976114316327711194899691072972316085251467465632677734410348983065964788465948563736519409714744308599736489086850198730377676213257321674356658737416864344870544910641101948941053941445027601437074232105495213165122716380764953854847921647529898922101802803341170102753142625365486173483027784953367719551037170166157557282427454702448780019025350469925039354702807438258516987277055809066209388844311802202159647545444198853336279540772552323604276261719228153187570606480636509236329016236350838366008535174665539824372268333357330614447759252032274374005077875691725610123180368881546177040062848006505972378370897535365939040230074424283680008892034838598450438047502608231933826017166410290203617723485477216181283940507446763729990457096245060348871968488441069874410165384454626362983624055519856716378382634683321990465845421492507389468942891945820762863998351215267498603495488962281433940606435677407806902843270887436642249896590969295312367322937835057721028313567512385486616455307469484203014365062458402084473275067292144903211758791182779134926102785487144851016667574460609499977216117699457196647733757365687524117581585490061529950327485907367082603510864222709568924173877564254342775807614022122964536046814051726026878240685766085517115249222487428668542888707302176502864814841398590971092570421076080470846414719179702779215406814435851150621392537510922396661385960242033197802390901925967693554271798885952784485900783358476547472606135853077659204645617367399781918079211720988958393462188075491894432766773046306157104414768707881623136877129693017857615672517549307077557236146359103812366051910839363319036189152458772042882299718394946858445121381588127613176108557612185427026145388085951363777085053398331916688156945447625187304770265295902780829327244915805824306579713790163257117180440251097778108424830469622368401698273414873646383864927083965459094226357098439220782034649003274489593442244210439868789273993333451727961450416423856308475869917445632462905952364764017792562299811910722459219521210240143905507465208772907842963255848791319802762396035349387790911067997544238928681450776868087510453187275140560169102163244590653989509941659164844900535500679064403042046237238044771034784081874655898215406066171038831245778135869865589455001519182995979812556938085090867320765592064573574099802509395327550622755840940719511053805199920876191195277161069031604265583584269940385896782860089792004923212893800048729070337726840108490615751763983782024558447330223416236740472784734158791490051136394950039081463981636967802546062600476227038502335074149064547586737179728395576358552475665979623129937241719379986875889621922127404282191743931784992181940813772539647657338356339124996950807825519412879769942727394017676416175577071973540499689268056708216810728276158877569056653296723064829402733242015426667578429535427845983656728318592267126239327755743084575679927507633499632038249844441012076289500978876830628728763915851052409889667274351370442604448670139607240232303425164558927263801579984500602165346497216033465833030742917383734230606425561594191644794064567183399944778636154026636738850495208972588766847409407166741835495702599933933024207402875059091490420798774401172676017667843942363387971311218741558788636933579664196944897051216953471795731180225588163299882002882330243356065373415279959864712091570971678376112437449177769948261185366266171863637554818022480462798336775816118163871113939256095379196272476722710141777620528398974849315753380834351681398731525607530549783123736666605492075760714090116074886040136861662868178402759247914728824501573292578686595304039686222203584135233703407710390109901154688313318295227274695286247506618734409920286124263370607448121867392631822392952466928482413489538489242330020881084721506660618444081904462399174238483991115301741532782900404776138616064760078001638591107691815122234601023136691878437585597437417541634507381106702055644241568135851119288585244709743296528663597782421882680519304260532277485929418675979834875107653759907798842585777183972441261552994205171552728072721284481775516370038065833645884883226386395440207190433982714070333372647182460257791987579424379831091473230528272782303100243636767850152179043783148261445704132576668484260528166674762823361666519383736549983732729585026188277932947582298689961571758229250118038848321752541307057485109885585923014565856875254637366435972908192618926081068442720786431468338132462382020151298645670703117748575716627278877925463994613561503786293323790029219924191044529495235828526412576491823220872845836157815034445066661142994724061551232242867616065875627323486471732902822640798935080247792357270677387467632773293208772384457434672323296213701941465536909397663704061159683782206346969646493307088236884426701373652604195764792403478376137259875395642869288381825520805372183031862906589051980518145631385728270505020728775559025706783073386187944800660994136942287865775505459203609556946163162061468357926711132119959461685155849935778975009695985407505266481178544536388675645570391871765828980573128381606124939979029868810387486526329269293521950183086661235747870146824984811687267470551132287418194360802546037538989400024973020782930697878101128046556947806979847700266131645972533598195353742895628967720932562913902337743010904501749657028953845538659078802730986274909517399942475270066168005827209220104099598402527798825826340736680815729636982386874052019057332295200870790471283653196329522844532269145696992004496944957079842270590511576384458459117821419886068677900215832457213139625576159222047773710351573189718148921656771043803951116371979092275850178613239831951951805937957853719092141906919940234610770831632158285283820706881262906895399099376630986142140591788278255434137340732620224652854348599269787919419741186849798856174777532817700757260740699555904799419790164975572226398198323231062127767365778968362692043346077385216420753679183542812846205561603419334932376222341024026452339420726990126019932735227507979477266590489172158590808552342008347449267849223946566444050218523971081577585406939132659185303408389937113018208275047039489979474475350991348543610890643222489941774747499842737645763285912348427618318561211514209573590275860658127804713014244051620182650803817132290509170755965997760985623779738934482508257443032095672176107006188028847068782021865984467776330447302615920845257637405063160701736062731887576463036295695551416843427643181200156451803432173473444160642768115953063143368516171439581661575465826623049889815606351175064811640340467253823529318837149973963612801284783261552266369380685147913590947421847180993337109855905802000045043958122192531000017282170800447892757727638899383542359583579511708724880134158558133233568976576386920964864507102117237040993497241378725622908617930601610500918954689824472389826569334773721557598616106488449881093334168053089441209662713141446440624045984132289168881531915880790522286283321653526251855639161612917575106824714789046712555297064488487380455736202813231922464048437370865222572131363024785100157905409820079279477396497845283293662008852750937196881472215543935648287222157977156784281700362410690746906062924770640523723655519636592663969342705818532842291281507034248891263246823964947263401189713108113565448122342738366530524934576665320481000338165446656312423862301662822850341652360967047600008579105777057333399875960804079398657290911300396567907278248142405710542421663538522517225419994959945617785483726100872938715230535464099185676604233055612679165567272965541071751541429675708795540874296137441020973792571319834244048573032216944370157259869063083370706379046802519620211625183894137856586375094838323255982182910461689600727006184736802043791815786237654261253349646156868965484648165947090765118844227616254559207390938125650362996279536819397418669001944412333608235969805363194643339790787350550768521544406432863609894094481521681365653457548553043123603809016845261902255647116056068751066246825911709551622447788297687398341423673326603664555757779513520958088324130164504023326197700179848286425501902600560656750487121849693379583215901228663031184325419146417556157887175593720297811183426692645852346324146788833316272383491658554972894235210214718103830238432702048363354513726437044061614553862334304504019008323726384337676269335570775519872424817083923022942427182467201414172837203736598608460023064011342134975441891382353280928353632802184534847516429739096465431560467401787416686667167635581993165579868324308141011536524041040283230554029119447362789791124402723460640142210816931529435450117908861320219096404500116098150093029013923777235309743960965509884242253745130262238353527504667191267739902936954342237511125035311648865731980985911576563484802851056478160200243742379152565249823336970518661718604392416617067126340081497150184337505251589958759281866686281123968842676201929213567942740789054932864139646802013319087441857874274837853011024545178101807740575249191265687806988327122779218730328112093751594992454415443006105629584270171473248486202515925139014780738910010188341500848521520754937093885797764994085307445543334053783840247482345629265013136176935050744424765792016105432268504787711033962339850107091601039260922603824077027638225622704331494520871607227614481168140278320872703104664631458400839159149959005679944198241672856970711766926595043020359224051913650337577400132721987898984462312702819195167277008077036545680036160113000046684297770024226896220065907254782032016425904714516091067131894515848503369357533382158883010877494478353657150615500826913423012202359453612859422090945159515159722483444041694745369895738579054267874586475669823505228001389129146009576676596973825227198445161350192526834164181585530021221232736210441531483705145112055118422582989768682127940919495359312274738279338434096904950644365739136089393741653297195619219933803964869159932086499404009133788872971696579761911337113218568121665540794122972247675375963099169279712412786599848941899862037570274993146357962442190987410297120797456838577762230323834858736880570831435305977201054047199170150432609831882926849622349734979132324072084567154255671205368036922023977520541020692664254618054929219625721452718604194444464483893522835901885199180191570935352767977083661089241905501034753092807552141814662637575771832312430422480373365007273443237154338409505879245520488180044576929314845606735133525372705216661018905238589818994415065426278922143543497991018060502895363847956459441655078164684936964771709531626539114837865543649343151130576715795472890634581247928984205442633948232570543085295069012167590488291854556254843810476905759702875445623597153774229370006528055629034946026498682527238513628922087765090060374479590609632468001614006548481121920407565446430157653473137025438398345615407326082443749019454100877258942978754727423652406661156363731213638448540550840674919772781117055779006584307144654972441533886921803988330313914291275532054827879875297603420038490882868893640982485528260027029369922404348621606350776784387927592515163778795239362603541114728069161212010368766006635835417224302472788621753766309067872184868901155149819959959278430347490328253245585513969936458411977489340063073741239429107213460011920170959019444907620581400694569915699154373321934764281997473881675048944030832290492543035837777037776185837105441242124256335645475788860235918825165652461273385256969143226977220602150438838075892464639819080648705837017685110291416399169762365381943529483920749668269190781103856036162061036500205439001589079212054984610937829290240852694800245736278199204452285889183306592318271991962519569227480879177378043791298463246890702463728273401200918728991588700017993649882346138794067609683547135722052446471957411998232610146520511475882104842222707520629212856193556194152298866176303611828057079240074106195719237552420325003347309951991700517777186437484425283683547718992362398748182709027235461563293370826939758074304811686106794767570008117055550024194492754307164131042593456972231802536027179262534759555220200905068459584208807767474336869877608783745276443910862899478284557443328977180037611871024844719742921177831689410802585220037196065875259694211928298138558725252926657247870520385498013734593823121705393140876809419457746719849085200658491194033815136573334500791396273138618860290547908700355442456116584566800768854455438253657940225315665357704781050288223851323797437710146167552412459192517470494055467881070446728905427829625471458960827571191692309034892402943630419838409683864793926046108068823112109744594456992626533114655331019778475660067594345515119408686663159963655752005780419709270360182321214559591883748890316725692975146023071017055792700757561482383954741100775917894143078615735549594153887687795746657433733184869555506432081082211435002670434161953870114095331447109743553593407221719020101232898204088110016813537528259045624730763781682774990774711954806402863290807591087267207109688564443626251421694338888707854385051479264367077303332793328417807916680102905394273911964659826771137102150690301452717746182389400891923363299837115031131356751327535216973974039178522322209506932184631314972761963244346782883280118096905401493687194151716513746436208602146033447171798484339014246473758880255156435205820909350734887192327673774584685014887144842038049143981607979694768469126989722144184852965489407767696777003841718774487827963584040406081285937405207300484003589208191487151914881789934166485364950461213595983810879000902240317967752034840563806108700470898802612760472475032291917340787032285654403904342188288101429352430920472447190462666036788869849264760441969079963881596269536924683246973463727698711118562665195220156038977536828210041696171051706486415589927687258082732341215110901315676911508786942645580967339536903987530078932566059855715893250015791319102970796595620225366601877309663401839031083625726178329259719458694375063706731206663316800854139475651616213027204335726214304867062187651299194205635199151181367705361430552917567076923540702540486167895741920230954871359297546046446188472558411821503096697494322289162842663636424920303597225243174348680139897327153234663268085286861913649632280347442108195244709748268724017753866789522609899201305799240435971453743868507216128901139678726414698546901845514073121875097286052620181414271861994671724983387174553407440348350871780510335977586328038557042855448972521357569136695753366371991077752612894255710946604748552961582510234832863259937317253208370106835492979321841398398025746851385186975299168052054985174474440985324501036483414342325058559779508786799330253012951627198611545443001528481552755881164033416331906682757661975937654062558701364681226223489186966223002235565336054487654095834896290147298863702880607757287794485876892469742128738933071404117717847968935044555256415339620965094576971464099126716570207575256910490701337374245916487119705925153556179634350325482670721145257294642079616274823401747629736517431375547519647485027834252477452146078726294078141428743067995917174134313022327133501964490906093017673703440360449804054870806836297315433131917178766680678977288340735675806028514017627197562757051939784402016370862647103240471993321758746511546934784590398897397396913623700405456305036872492007784728083516998857948318812454433761902357434521858827710151777751975345739475840106385747434348162029929549469882588861199148495635469608074044045326134201699862009050319320005968564898731656304792761678810393202924531493991561517683355710268123007708384732926438860277367463651306900679902653366571696376491662303468812234060440599623427631147696393751015024239335620845516685903949365302027086799344897843940295145423043623686970451926234430473609600586495385398283826633600973003504097991906758905326443010483800947069433914038906109888948673600087612575287940364681463935810754298658453003678342518918271808689966481088340275015043398284506780816159818380053337246868740305489808888910693890920566903519580617281852847280796143300680405584976440070993805984442229697311114122847358601465241547202554891629150898936063577973008092726988592598747737034918094332409562495999968038451944459540883042563797565270568472824618933194611153508208099739680457660657045010284188915093253152689405497658786076283368190898682824276519883860686356108156895178961252158696347812075691742167870520144573793076078505933445237293050994278135184404715236195102290690814338021036928610023824907016310022657242080324118020366516614258839378924905933808200177002359045838103230070800832777616920581011332920541714840902656842270716904638870132029107721384291299388286901643073060768688380059341482847220552645549325341911928213288395513568963262980428941207098288745174286558090505223280791237580842784256701269030576264774698174374638339512041599568346430099145660870814836442580682882943590270275675630037137035327584018074367577697000278432117780869871559080313707995346156349636043258144493877916445852859485544496971058313446505493449364737038869096491801076431601084439429696256180838853441242318858558037125637995956596086390656660038884713114429328411350746695573444387936751303052686264362327959137558544975587965427261901643204685635962176859144877620640412490019875909060226610569905043648642628845596072515955729538630722126194805797993125982611951574286789084846605500028247940798150650322261350068810373704695135852574586039983051358537489343707348440380098396911027723332010865444590711069257909461616890758415953769383892846086382275238581859284624257607489273516418705766718748067843866272277252697962097842732212301409232823084783111677216065817765002092185455779935129540268242482210889586915399206766090313082023715300759791517409232268645001345157350722913372295903511174192703652580536857802493808687357919111091358878936102226333485122807272358844945955696864579759972545162502694308791318693899864881646725395327493358553838711872368199242592153151796859356402407960101135034051037160186349843718517126363581166865491527251480779523179522316614626889923235398415451883923059255987780412044659183463462957518412862908911307844174488117434490771852886486077395529931325249940109896172049482827779983075621327536565516457792387005657783966433419645705137470303437696421930838521901225609180082802252748912967195718968279686316903670779652402167169897289324745470194880089422058054721099137346908983331875862767779026028358541204435029268762158103179714034045725579474218482230769724947531071489497995767131503127695944766141915037786979547146534007602585256891135435299005826135457552131203370418790960042051749421604785784954747633807120717471754423185422167729149736597259739682214650318996428353390172641602121031900988052731688429363066100786111300156980588020397861896333449282876067395102959988119144768739472969738934310353940378070174778989552089745067297224916035458507879118017561533345341210838202367999122913510366430908946729456981778259456142701478999182202851504407350472581023451642466352200358051709740681210438399372938053269065843315090871500085215392366345288439986528786942897419932533485618146690589280283726005828268530873053573845386060608232425852971532554452728388354170523146626722343041133544564666437944286542938475829559030401440974598586257224126081512758995336804545212908732262827743490495626658425342008279138474713624585212866018565442005327660227907610314650753740961296116658698504293906334177341942382383639498191891454340237670529782523248717465109009778988080110058086826311404042600998474836797478495709105324640680667424512426298784108558893560713516960365953349642202050575355720162406434629766505716044161679475871974847781627280712169591606306345058369079635101698517015700743136358350512497350664951967117502200932635075085497422251350658949578436017732081542191662914378856311424679457893709710524229205002956952219511309758789533485117687323871201355400836094816664542224242308219735239965800603049614288064115524152784690231166734698479644977817298335508443494923389435206310445467234929498606189288618362171125407089330334671895113126201727608779767752242275321424945291179790871123705373655460175373522549290774910049358033266311963861411208145064887358698943433776904818892856165933943098929244515335083694308324714293901295735970464826385989600881063254695463531083033264534907833763733131518936065599332169949452433185580262620062802239674709701691306632434379657346738441342451629490286816200790075365848826248385059771826857580255310904743707735321890449582346510666503305891523503445068035191437213302872384453819358457917866462590709269346570802453617835529381771478307069381563477418403932468224135823122033574168392798328853006614505510235163191729244065941401531358444665885911444557552924164217581355761250470712629578205129456559403933772100475824924902709344331079801666133978665228104727099552977420657606143329242723830388188681219554617159168989706654121526785228376679699253280056483096236839589899919975709917082366241557429165020764088920538121881200871314054247897031609050131525120997679488874767423460116960500191474523201727526927843003688882269816338803737135446310422931883938095078811170018176581580152208215247074722587160378602930335012746790641143891159349715439002898504221391772230851881222301095592194993435328214294689432529063252187391471590684811279551775338958055291295865828508307516276396180461524251064876359839590375825603347691967220917244483645455234479965578354133945629654120706007721362333775581873943453328625853984587392438125177679862532854063206997809580228191466674680371128877147983592812125569281373617205540987247907785835888861538343755755942822605920567692333163763437070919596943539451267350466619071332508345249297418694089322213328294476059730844363734518468060259032942693557865771158874653828583927191844785515029940695695492684627292052017662805535615578520308844589607572990334440931894133103930490741253622398187344405286857084610128810329705791568237671720476923996287813360491202145610115079213743378446370659795331652785245392699051953727955818014278957605292804816072714432137641717668842051077631476491588608476046353961268184279705534180473951109151008039071706506205336682423849630269267292946759757338644632141066967408788812214709014396583792308061340327684520530860965220650271659105923251723399257352033062667084887618888286121352457551618474813424104293071441571876017269812500261357423186177653632635196695543871013457352996842356582394663034965634682026650547665162410469885309591871615817882896207955945677486740243266653935205741617980895055397984991080678192957789152863236239408905110426641621027017617674133920827272924776615101644999901679691401016975038620036179596808259579658233234459108318791359736042992325989268150189982996562926449726377880365654825431424004730493004030909667645694280186253235058349409037756689084910797939623700519868079940603556347565840515423345910063940036270259587461834270602614999597676449771998010920420174799663124344619831449775925790633489072237632820319348292057550924564666899623776563708146877385779564390834613113372412912037161547293844765915741329511701926064509893925340139910614397512515681756159431640449745232538060555647248014353816044206814787494675541640733028544412894933589363617843768129496882414935603331825647766233344325358944134075579152755558944742850391487041725300705209065145584749938062219154374677279968718020462988823969173104582445746911032208153410833954259922471888816624058355175386524368966900167342775469955463453413201457036945907535633945997780994673037915014994784629896956465184858282866615846644468444853987021658427828443421463241025121188114082007976276667066129911526005034555152584113730349376516711735312796245569672597565445338556287714910644732821630195383795396024526065083135479282064038391768491733976626347015304180262123908885104148572501436218033853881671622693185879312714547924222346596216929126977169692253498249380614310980535143964192175379263780040673031642733586680353094836405944545601704748798457120905502780284560201629330749011206715068817620810453765200930812800976357248364776629155747120234451859198132534720440805111981635671188409921322943082064348148997928515821899204650906448787809631860956403216218490525534843483140916972002009579772504752128385751653571704976515652044496229834588660351232285658141493702788455288787844875945233566066173753737367952434418912853584819990028141430056063706618939295598647175598206970186672672388368959105726745736071739772048664120722958945279557488422959694489520435707967853730938698474696748882787816708921355371665063991564845370609132993687095726678553822695477323111000323396675940179397257296005784330108131007349413414966276002810601500902014834397988897452975966804279111699543564233223253893243164215111520779888120771410283936080220905180744212629443069990025084994745768445760393966692791003368179894369844063972040712813152892046699151693564821244127505266559261918601682549925960006418307527201490374630944166430176151233872991798228676983608069606455707577500413677646141265756140421770224853270072113498024830091718708676198405231540159973088299272965118444623201471201186334847116078228373737659486264430878053235579300741187557656993360613110383760101553316529499137115434743643628733935561458307843554374019454469377968434015216922171383770466705928816189599512911670043456664485334897746418898365245224852728739872746442812387228817276847108022204414761234302131264740856596593089985675210674488507921369402867214614105439851927448908952135469166315850800584808136012076725928868618030487529868710534496944353765700049289594337899879364362891616100569300264476309502246970482642681648166273338323099717700560167232060889408916263959511561176357123547004369483256339957431752286794264186632104655451767945346923922033267176329217029313318163582670340290746921532324862313016444875382378198430639086640318939810249691269181691746720464276924720865544878464891957934745369512519659586689301413291156414049828044210134374320715948042749555272854639828974429925623588364135358710406161199074385865997999903781122628651589796673837778779151392679982484798566534626573995320948521880405170817028021340430035214799986449278012158593384671311079637230367149762471760052540167599467800529661788340004751401493703215358148272132476179562827211116547430401606902102881101758498110451757728398105979781557744049479073309336322053439764038804826952865530997363124785300147229500793707051388964843581579362807295906884985949306304961409945745021462909792885871537033684948770703285946252598818891661133099337802577147623511292677211931675760697040726642738641744054173207140929857952140881246452188429564477301522898200375646645675191646160929705678079966499195837240806169185684804974499587595691929318018048995564950413519422420361328368758733822285539089503624924560106698662682588937798061864217624131791731157455012589938716282458495375664983150529581678033069405230625496573309931663409351297023920987236248786876138803122254263369378574608098983900846921851666413841071358375557828009517098721462496152944329800225787745378658622678579137726405460767215061602475348579738692814576038929489803539897058933241524255760062519014144582519433034351089479460624742676831662694358931298757604444937315971609639400323979502078352155767685824633349476196265782835619809344668562778367900534868064761874096826380249239754664195119216731548866029423984502705554366320265254121196036686559119805833177068527006267369061735262495921326875373428435317393027455765933409178779594547949803229175117781653888256111371608927301615825508038617449531512587391981203049266000059780781092406359793202773665104856472185518580665421475316941274788458887402843229224114564049199447154990151176067992972555300085316545076411694971350409600022787127976987628930243968839795592933503593961676960733051780549945526220297772650633086241974361285243199349648681364454624700137818347180389225398891418431783927558655897331133827925562323339155975095655768316375708447035097441561737495770472073181316768501617800124565624064088370377765555738619726161473975166420693056280663928468309026633514120483972566609820367160752247432053240624710959733777216297697992927674442735427364836763434464948988236267640735457378776736278822049671802622401978780041097266309126276317958170682329119721933158749979869584574203618075649280366901734814543352120568723199108344666775091976368669901624162552796641558469629763135614128731047868980877565338019870180116618312490291253506459653906174633530753404163899155415266186613713594834183233796507335171615652284483150531824878737151155679922242499038619805394501823168358736797112765908856364931872119603428481137924558067752525203868546094865221295852894099369963054118691240271542936273852898614291796946242532749855895548335669557566773675830297282820710511041824956892234933851666993690308834005622340480854804928667002735906825481966031568060228263478517039422872621562051524270023336156976788893748458520109069125427026627105401063522419504192333318898397004198904249129818186352558899131217083239883897659880074561625091982295814080086723014905569219213240670942566354522823083403071632549804061681080004156479597898643280531221400008317277082313791919023375072769054914514155157250216103535904852384668120457688676120008173568882582771465276073587548471822292606554810502290106814918264905588674760968401354320158550146148367744755578816497155056285357428330613590613884649970863389481992659291795189187640126835465433873813093088155338410926971850825494079754530527381308665735396055307466877491511457333763700182327459955980486874936595661729452680972060460249908943942676358605927111985941489288359596872126689387833271963760679080675598246278647168179492579112526988088276439028731228600382336562745460421707589088581444637023388458711589694403802302848037943604706183186660372619005594399910080031867733800641048524759329079028462175700101013668203111549104003487660150590029027383668749868326236795318421978155609871120192542720518287026429787739847742843423188146726290659430331851228872666463685885555142183054778084770785760750365738081404888817322520961753930849676875692493848833132395486558716187265676357813557430893459407906042669664600035124452316422471018339198513060457144365092971639027874612210061407510908889660113949838367647081035370114825960864798106624818633371826442688541674274112671254821248611957976058175320379616904141695007491079128496191258246770167950926951068246391715917849612027812750113059686536109916840158402689196340437253345813034014555208351113644341858774338807978976884493625150022228385569869984296031009379563429035986852647933556385854984448200212912871643400274166318563245480834661051126268171404757450768214948349615684509425517141872588435358868849078620102316738975708205415816429606189211084499309317058175375921740868387063421826651081182420347366640196367859463568791315426185283860240947072218264337601472203436643588358403331747225443402787623584788286991594862915096039980970549653801888334960408722474615750232139851950462559616784763873853401446432944366615983668455714536205102962670190519481607845212777449564476407570711731129092212561163662317476663554975044848960226830942486955758408404607952508556882294780314795085124125289373605524478083193396188767087711266352164398101370280919237527434180890400802030437481840929106057498314505454127004550838479854677836228336529241108470764440278905981594473803778745861611486632968384187471583264369322855005229641210515951270739933702396823312762202184765117994234731157211963889106751126381315643203528982962575482792628831489300047374300253156523283904121445873824292287856984306967504337962850503019367711162241868140402748929987866042324141147448682923639971880436108701332928543265581883757648716849616725803459619074390501479687596329894950204635916236462734211173759416471354069755602360027372714671693249718295496080379095744900690102587871712946948826139633549106494394873713780685954424642670343462156239353092322148933367843505077681700626749819289357708908815087839428003387343746734708391024162666713643037706329854636851622620564880036539495338530202792375085329117750535943458549879231366149390439807724400650270693616170560289377571955769627279650318929461254455914943423735689341980854197358907166650799797140208664369632989561700801603129598936880655210137144914281679640834812822081686398160382257855112314450449111395621071459772688734655962385866809762873492038628056939612415064479406319003886271438325902484974460467326636008725397445220466738619128267703219111319970033561379953952845244873654254333894964506516226998925068063360157876968416080395572113050639431122587081215401099870267478341102099810018815573541012343804780755269646599261114200476414850425288451596738508665896776003283171663475341386343203649458798414642324346084423096974590060469944419479594344483505585565254226995520376570235972844736322976305484816961604970184170533415934010284808647818166535203378010522690703565897044344499513910535150817312925427841953608428194083454332276454789936756358462219141863459194466179293984255409266393992180944829191313832767120993091806522327663560451345952506871338081694775058219513999485325572492496380162548754683623571680897636567052823291878799827775305511543719337944200560527981868807590615182145476162654532428322961938653049919035165077141467203397966239162543178275625923908595445507277423384264417696700686103348343563200947656346493937719683498240596021280354034229235276545604202963979035987628085502156422316551163246162556081035730392484718323633022506643210886618345440207055793347622586834703025177320354900552668780930074102375649676752883456124800491323134975073508316304818847555231942036354721120133156039947168504360449450666440532502651876190399177111640052013009496417302452373734838970658427658361913845361988446937599130162305382129193395471261745108404313656853841509390045257339045304172261572588143025266075798584023790763031053858591928465618819114538403930672226311485079289747250042766091559129588923740945277853423429218681038035677044936162981995218832820089137572812433419931527074988849066109801181390817497865727633894919194094566224057724527251061169968897319101306911221043680579217047958505703677980497234586806008126624916831305464957287646283131503747605327785155478030406856137161597667671540798715320363327602721594600164244965708796055927236256728997829974529528954526277562437538767926176070374609290820923298860599104854356471148549657486786827114703556134919527147546355296876198384509050014337333771316123173597992369541213421054977802262836519171302766794570411820630031163223118460143166520793014647672697912444750943863162261296268051220902966829967506804131557376543214721236626317228770891839960975102661492540470879665626187422226244328174981971900297017492989533791812755304444144669882194645364245083785556525886338282809576247267868144999087949042741668872812375822983160574751681303825521977342206023352412184977958204314888282816459304935926494955962906072212752395482447578953838220931953039062533868468470757700081865330241769389900989324523310949144632686298690436619249457129528328649915881068157547986670769150959171983327165270319510188121381612145911376150121900538207669677172597505480007690252886393401988146538637508821175784297057241269188551067808634089697965271185980771153851253918003191842446778968474617537115545776718403288768038035352680809439710489955782105099644409100149723441799881425904634171015415202499942398740275421297817188851966538539605240672596823870415164592115389341831812561669158182467457710648505351461088714810463789017326830363409032847379984817844496793598504854708017090851196031132759954811611620837549007145418354434391588365903204253971335311013180469505041961578590084478143323913371866791515517862813994126595976729302273727541523959276311682748673321809752331453776182184076253036057149355333273223464471291118861384110157941449187300685358264690134585726793131716262948295921078373696046369114950447675913424500567250484682123234206310691994739918076389050265896737685173237268923352752670215349221429086870134735265493473787621622478026763273488055761415020809683895924054005607219291020537899579242355440403097090858925192658165161975773277327144041356114464625570743562611251856338632872778567450135171323062758934270118350252005997406411530255442725924604171015957569412343604989783761345545118158973992734094279653792921997074048405092452655115701310119740005466266813444919279554361545860022874664893442750762674714152102164475190127666587718239969081417262510870821765544864451594984191244074474035340919576474613318824280160669559883278036167824093920657276715027353225378281225297315746364648289523007781745408405330923196875241084400022320145315643248614832943542573090599504036988998708387100017551622780332799239967731194013417596290629228467460233471259347832119124825746200469888447072498636292084435159681753606458362447328438621490714642258300177301184066670168065349796715440820670417941024194175077994094855353763480006188055351776337776489961393048306106374168303416836544458162350774886411539236716138646159039240182043220373799352407182932386855748024167037958817362660061037651476092747220448317668649935561620151298013722865363939725005020116020416164305487131727931158865202890143319922269811417047189545573369939554687003121349427724186856628438611329715862286603701190264343004334393682779830044458927656476158354970684018845136101968006647333217976797940233398567287825313357658814129413624347654934191873161886679616109265614117544292546058985345177925601225254544882619788276525096124259888248915527997859736211977885362099898628554611643232672863946357005855350017075804623004416179726390507292891250448583192332568542327051156446622409814249358761143646237508988246611417752412835351100693731421931436244443180600355654145028111870031894520246503929740512259439652783427025987417512887637492673016858302450902127385629398692003717292689457880421460858118912723764048016316243379332988118713871414593319584926742054224304943179529326448530048884066110460048586176294106619940568447000325145540722229462998322971219288277759051641682134407832923308163871831005742944224372916874158422324447739917319219685666690502762879842405319675168016167202856280235374302231787774729974402992051899685622502490723522345542825789314484394300030237841993647975009674195811010211237044760050549691485750348019842965867236346605507226907689129118114294227416556901286989586921336999295616097611145208797967022885522474384187393393262207348149961937651159147889270975992031341198288010218304513085184754238143148818751795549018527667567375422923842694255898495452749488493102025207382379508756191168495545433363495199936930559705363449988797261500571289530758231704655282700629759776685277391924182690533323703161440999033058459771558894638658166163406259719143521872936773295280804870346351903261648003160405626746392355430328013572415329314028669169243710198614444411250060752222200951704996597144775583685639706664129237697553116631420945226893448063289415461836459817656099212699622387699078283956090754245211115259306935013805764982494583555953927592189535651796101285490953181516187911190090818742906967402596883202776789181606413226418229981447565601406114511455058772186545695791988473415228122600460960764023513765362320057631582972257956480518315594441330702678295034182383321250879829774631940084166446637799261809442815725877964448300333557772598388284308649108847844320795296129337444017793689618791426872343827197951084375714089831070504064167277437098841175200557850655684534002457284404855699864669699183109378831605722801051067613678589763480823804254999334102930265428042103559285677732430575741809352592736935065316115698100506210369604059102897418100144553033856327788006749657548812866700612460639098596111615849261393420967563087591413072712359471356637218666890576371130554019438143161147227390259936214640153715483465035156765782473462878864475598196392093621797593825846813588857525296987469642127055228276873081295587481653770283676864503877700019328262092580078067798462624830065324546062820567046027590664208530769027934475428909877084167437287113055338497935257388602583194189669404616806650735400248764878815719957941936551227251165943019657764662946090993129071745281460319616081765905400301186270765530614147294545049372441350255686873189431952122290630515594811588542122194689162752952499356652954166589140062030600747543147131889798918640460332154476179202123644997241614247527886653121491064781745769924769991303798614387479972300815607275247747646177421314728513988263803878936377885648741380754503798410719571824451874573018373653965145759767700830422333065014051837727115444470002821077457652378813090890378873513465466026257875374407092649538987052672994848050605026268278452265919620943790199357161458577255456942125427443990978293778212418942526878518559265735492699462648672485958245835312663231431786693717681557810414215167873956376355167628380677487228010939003863156104099275890628113637274485786272102707157161218530336761734537224124821054436153907846806328023851189355019605774433503464249399657709098087828384455302303434804299354680893693416835151834658128639993729448767982981170883314546316176284628900284307734012449095777574900560154203155687549838685263795757079833510424951944740699328252865750971743792402642527495128743055488881484825821935005927870438259348778399547669476531451253370054981573186715154142209316102451027959249456547979190210928753639364942511183889482904171122855981718052866212114952073522380089836390483602357513529124838016452277588469936503986741045008224756545464728521262963956866126782952704193785561475562514409442813864109455625787048685940550979367588606085159144103692333075157991485053972412689696625737814423786471443379189543584727101951302126852059123823211657431401682312155727139992544217877482704303687510607274794115473570944142501569649253848165273363817161413231227959652341123741262803985465097842523254104751069103961540978891008679952649375164696090882185427238379770566140828451118664332115173022707575681908390634756141340786843146481258508013485016346472215650119883404301735425604213495980374630070320102333711813858911420858776021232700024837327512717323405622922809276437089838656191966751756873155756684281671041784615843663036475025917748617130087729321834020259692722981412491695595713273080248864582535730306036984154167663376703988407105525981914559940793559339824437821055407559975244612238248672231543898489999813850281674522393666487941341282471934301379678920746462452265452245408246308442893833270135303119348465367185696930117019339405454836844621728041487061453288437586913802228361284100601888574336837225484838050407300432634101879494704383484073349245420376976948968663142023474836317975341984152766043842845702796068394574594777398791885107531205022228048229064294866999128904400444578850497610808335701360432242279371074685249290489663735481781536145731355201017946411881872691243578202975095887992392684666109645560222874025825837492043733697662942779262843918209311238159564319592381160313602582132378125971801595430225300288834157450341914118956178769350895123777795734728197038732846340049802803408973595772755223786374027348526037102141481719328665860143406822597382895552036897814619969262044930364956171770803478479230424706145679571114796726943754316933795267777869372374558358523537745222598473819004643297239843590671018954177596451903053055458868711988417003205005174076034701747360885929346492456856835588336545087347554088847148234504209557607882460367452385693325040118356887612510962133557800107897676684447091554990706228590622842109814692666012713981718968056682151744309122388764381009351575210288857094696267251960817858754813918464098233129103962066827173931842880596616700064669134823567857655662983999192596834555962601433712469903953591579796795801615089236210215444311935549201160840102114482496952853769413471034782674418764740992385824796341026777471517353332536249550801208523152144541729590582154249120653506218386026394725968362639059403229480748990766927325644044254052615393079916624760796843539396491510917662570296537776286085001631581499619569924164704483486340798218263943898427051732239995480295113575000496283559793347020564107879885139411806181639095031889790276727409673954207208457121287819882388086301904911214333464254754247219847456425247071405560027278695309096122683618694987626325390171754309576111503709713176565945528848617840078886903127455664473659208949721149422430796915335557299541682907913186529406138427826937403208526367909710836596279013783297613880358435891983040554862060400976103023031191985182983643077985659027624897552757423866298592030737478173284196216917272481297020086380633373418422509498786463955775089016579738396481726660990375858692877597945803988642219163301054394034866223772776373790968876433388896910728689019579362122751480944874070095012863958157583660728783710183457366392896796408492431508541163983222787334753049111740242065822731046134899779330598744292063905083338055069378211955591556154557825582008258168961463308187759788747412625965468769770088650588949518919009154503333719324779672751127499416645437907553280394355503710785625813603927953048031625982421608814824362171102810749806990839328009686975289244784315021082757507655947817052560567028233420751729846849356544293154187577235232947954552471577225887242510488913497600567976554185688173453855644707185630684351624799364559719125453159680139509902635898926480758209054453475454361884533540950971366083949929644507785960787265880964420834844831256779069566510286413752289541497619877361019380812646974870714010905718164174148733289054667346901847350539353150576972862070233002279249558697790293856749795637692196769053817360550966230048720690933710937910314654005882642398490825550011550722480344670954404335210145680378600650770657846132527300759410965468735000419741669863229678317369539341564267095445876290679837940966501229728785358935640412488589125763673085593035759051201724663379517156611853694458122626224612130932185812573211755432839248902959725742613269585132227548385329860009514054633275042011142964135264549048043085313551534491038636068577858395494046669894635385074618941075706041507491683150502198133283961035509236276604457705121147327731897204611370617798338796155761618326999112232588203835569547530266277870065938589309780812751219441548874103629871146797868255570147562471162545669602675582883433131291470466899693582320324283126191305842174866802938867628258151083528407801787206024287144754961007351434623876561012203836196769042005080426194828329845014659876917380921143658346708808413044013140708450294371279060342288576455399537848205115412594979107279473036317572905767092907297029496750713226793499702940441186867134502630437176083581076479359263626278700705759239525834356216972743733662807865653824568560467437325330973846453819701205143542161661249789096725846833905013634853090277464291565763732068883299790844844569390990001772116564881331173840053354188735264743810013641735002687994292784651266718202363578033712395771703709223671590329392770272472241314291792337859225185750646082004091477591415241489746000640217117414140845937847334526542842201106436910552166236135393259216207349475225180550072521529489153540028946015800528798599133831734586857156866974531354655842665545031571177588799560492317551920327789595913649953471479413810983756328909596698812165979917367219602156370306841693178843610683372070261252902774650250154895113964914076538915196401214877740518426248249596985407927339193493926666137861559889235804555838003646173038971550533703628084317632607298959563088874427613912797966067421773660451452214687434542300097638444023682842400550386666791824734344146725376449123529032202264807683114038623348671674238041585225091487386058192484380097221006922834951824810051197709434304766568668436102738725227183078131709016034408158769531524030729478797432888207751213336462445737162240099329284667277235531890928629016719856376780607776425373440717103491840766039095019910799176934559419785494456667742886190507284374048008152470662825137757575804457020357581632621376369677679118365445572536809416631708825212307109912146083919674388780220250790982993268165484183419508855215610210617917631287981483129251567489395991545228564266373823433478457258788635419181720031963567385579100503207430813059471962474816336374611684608477038588065100919100734449483024740476893807254849097782058347132177824746867977294321718330865017871270836562117780765710819811364599233801238874144298607052728117565705940404285086510243035303368194917942208975056319092489318410967736960251535017099415938257873028941313540563463078655681796495132020799765952937971673205476827387974514077460686296524062132520128058003782945806893712187385588939386027085582288780397487793958378857911251568515891641111033461236389577139087065080804516174689319779430513586053790990825105287515376370373074990953938082438114931019476236414361196490964071609416851442297651519596559349865081467659738095519364862504934431744101915024994626497816078463164265363790110605406506042880370829024103077238309748608365159060201306167098204148081681686990990352743374307955302033652860930127613855983323215485466417760314353732090658907967011692830052247869225557108470088606076690866779807982101977501184312912340687952956870178165024378007461676259370630034612143913849892148069429018501240285784003331597323554804778410848552821723621727685301158322563395152741149421694143030201244713499113020685607438551459506138526546879884694526711272138539368592765055280793487033650344291983159521758042693235407749504069385960164583658980714298677971860656356390599953254176448227361601473156570213342600286407115122857422095031879800363751543454593114735192905768773969202847962645688221494733943234919941452138397009825323859161920029082498903782511074338915014364869620801022714373841275580718658859797692548699065108154938081511266252270720593390239255142775670153880294130524808196364461916198882630826721591663795724162266913928027736480784510480799328270005570406042769268721902793152191646390088020222286627181579355279254722580705385490809330296761273246382647905429749553531015518924200806033028105505098133061269871879239766398721993697890615412038615575640079264819685864289293793130497213063639320523754121053527461329047917319766118502378378253765638235040706252091559323234305092835313249359172120705657149179808265888527305913181049583644832773246822742335306426917886950101760258152722220044502476878524390911241064387970959098610470733294264335341721226555335138352911805733703019914123087337857326933037784022904133044557185879501290154942734059750314745314460100324086205007095134566194738089315545229739106061594932291979447369781300629156535157511063331897494770572224576623109722610471540437379596547205094394271363947808987239894959784734624424688764563790722951083521537469173558306062922201335632811711452967816468193720904063637013111629581742298471703239261919033667598257474478583917625304921916947053601894420742435366021820593592051469951311136588184424892329499786086033823707867324635666577463059108523327139173757211413638957865915208672915095106957391708734493378036929043220158363962913293124586091802575213380098851021332835877105572235474163736940426255601364404610363600786711573740233960735796727634200048540676398336490208128359580999085818787875561696992965798788163944737066023667826765556926788727058588044576282092729501877875606772071370353691076209397705698908022357962085654107829742636324638326882900360670929277698814106941377743275883372764710839838442447134911776435294321710162375138435182455151080153689923815276979458429795837513039631738301782294800133648821090315213590426221203062117821062374757915745244371699393037246081749878583409187310073216528852585652254479586814544394541976446817594077191542237160704898152475986160138382128352867345822427206085059756846367984915827452000106849446368553057978894790279449789737843698849322774645188577982074018181251947161509865186664105283164641548687572821693255591701918058831638296061333976452489048869890239371817694816543773002420469938898928562462852374819495069930394999620372698874613413762804561064633146975088183374856698636253303157880237355390721190685393280057890259814261292912521945821706662654296866645660053057623196232177428083624243182575409418692481526902333133995130573767890715115638558363973771066959817972899518098652325569111821147960706656660952234506520203066673269696033548255549732917941368457468270477235107153906537456659679866717088224365289787969832004060384280368800447173544040340223929475653663387572123645547942453219755928980209322181068750036281961868214936842790467264280895941101053507712575497977428204307801506135261142573863588827746380771506234350351495449782954870469204039235762777703769201261771743399163157376126244811178173408691804799195900645492810159409551741753098499659514177222686208703308878533439794830380615794119889778230020849114754333669024753556433193544825204446824529828829597151523909130294712684649176425141998413299933461476975674862613004984910855312503948623499052209923802080626287798909359136187497658279798073459205125559729318835908476870488541830809894168993076082698376676061310658019911239248411378567121940244942147788619873284193900709794001852898579604716258545104913628436075347061727050288859213726962346646523997948137716307421452304940781247350209999556303150806308419505233389483516587839387018573571458677765459786940563092105098691721872552912655999027762755143420720463740220789813991177672371277975052913057377268898869201063195626161426747936757178300979660307723521218529513718440785564762324381405396863620819992662124348433778299144291344430041360512377148263122970355372538544332970213682268700168074505741189920901028452137630941595005480206426767868240639965263295495690701177567753567713716373002466755685175230868427254308886210904968394997425418643464372462051848393171616258600600201649871980995550616865947246295138618689149210243528888633772612654644256580845753723746231451411565597342378385092404884615076836159853176968982101439627205578656946598822641331320712770811797961512239471259288996442792674894003510449205690928228256936631330746466732740520206050364661003651224578093630111530911650411157921681947405837764008618232582642916271183980858730757208342972343798206528853535842956725296874585332881198235767236530867390433641208325173531627530060666287107023994138694170905425133989331366536092996829265244282966249366228645894636254188581175285483550407232208163788672378285732381825762334328912699808583579033390913283914661193837530373251525143555541912342874497556163127140938939230542687407536685831547357431200288504199622036941785651064885567085483619783821686430719367316043108291793345570252531892758653733146021846331364267178217992317378125385109327648047172860086343060455920869018383491636848576610852388674814413343759547449771230081961851486624034661312990193657196401643036535559660424516399189424718529966507169979542647670979006204422107563622748096103084886481206443145979896838126565228765252725525862752359471291462190140525725911404124283697234673395676700748226140995424055739363272803242864841268550591236921229693901169942136866919434732623338970000577235924418653029406497500203724092310187254951140758564628722451092965306388250440585076123442276755368298743161462646310413922616672689275385192916764578184429621688342937801798078289530483310420544425205859535987180033603999535146659520794060965865313979741905050476335712976935941053429430226635696713906017894417620430367643799874855327597432005617898917095700846024818046309112488323973294823792297075431032262336761111549840059379909356346906791119106888557339218188912431814599091835386371107433841118788569905160418974033151942773460225811956749281812202128089219306799829415781975401496357138420169796674202331922824384822430385069859504941664125247821851314419024901838496305087252081749383253058238241694757978428184133281883143281813675784503851439237792249007754030620273737563970515482690589686227851228508864177282831309155835475005055360900449196163214435726727629090125349433740724965311215815205223392697026474990697635361757932995301629468047097304857306277612872423417466965705308536929502192211964457204649172764754770646771066690082178310544119121960127985634939607510171259662325406292106121294511094452580269257017883933477838858852619134618682156361261795485848258906749751500987960808789184665196188670062104536704928008079055721762412429854576503980148162033963888220167916052861992113669536331575985457124235593877596914435854756998964881398426299146653657069723334230665947322951982231950305074574685712962640616946080389834897559876991536334396897767682428969366952570861437908590441085434701370254919500506539136781107498577017429622604835339032533900716086545895659796574074231244847993871262950917915536786474838549944896238787933497827068437808257328446809787260505183535798759804181596996476522018468778039098572964269472556509284573935454168161428915913791387654001181322624542608751865881061964767100538634449008635999685538395564086486932589091993468955148885840397194951863056830817270791782750032870561888286066002763006100035700229967157459665025473975095777480805652069737466694134707079746665273176557564645633594669401883101516473795648856871782934797606221653629089914638327889907294706966011080513637396937611766122119018756640751411463472435110900464969622786622033624633398759653411492706057441832774875283288515570426966260852263362328670267198876439994975237730813104987006780501483016350568998686720564117877082521406400145346696827736906684783655257802933397788171903015515821424584205943341904543557789364311829025049195627927215230655578092524909219436660226080924321746658709311973029622477951823275913660299825685600387550808832046402552524000440887911535238879070032420881308714625306028679066240336620435962084431934296958010205218591223974085470108254884341314988811032527030279618018715518543393728488616450232722802036661492815375515475692440872155546713849750316456491613801548206449062885946344174284924502056984050386024202312757287823340492269860701635609291030707506054435976590847874414804720536934189664342980356934145136497357432742930557779994748250649943630620867436943308031006896176721974464633541913423934036350153739311144997650011020284858003515663167013213396043789956975778488614599327085576018533536138849104512193840973652679759971697125619013258029280058267998944916654899575813361539401818587002699946640820111865749124373194192547597981244665733682162708864497151693540154723970096082137512170463721188967419213453373370983734770532907996985634554834067828147422912422453563148537113637902574209991673438060406192361510257158247547303657892114163394379585667766990433635268414652487958331995401049759440556464822428406723338502349683622817983303730832728364291094960569670100430892357204938701529138808006778969312615004159491095411371004248291914132972098190851370500181774464463286702189967918329474701643179882883332080399967632254521012210653326488220493944265385492248509968149671956897411624658828897816180416154957579685475493470908571889120062632869457803834215563454094987167905623014169887646395883559535249043224196590644802566138595277376411782292559012214562694982506107414180471369672467862149008343021719408647181374215738004865254124812487802667367453547043355472106841419565920740579587343193077874205305923064318075130889895345887357605444269787437322505647504945368743933437409405796089935297384435800724964145291453932884951325901155231539044393683748934681498412760023900993347130157500939524062452038094255888179846123163616700392652118597053864651132836323409876831090305002456740961026515466681713637018631015274863220847674166226854803857838712047295842322809385529214814992899786853140686527055308608322514397339186009494702358794124249290242389538360820280640296794845622215687075513013841092896585433122876549565812111347752120126508384444461983890099246568000917565584984799950103539969247192775577160392539190397242922184567067733376499393649886472932358304499222658279675860035984497724425210692692527922746283281492515492156636144318189278857905220591082862405289074892497789077644369871092981946076966695289909486619022888425458459941274575653568878466886655675685232727968384337501846818032205043955548269632996559800913747760561536973525775445080998325907479808396168051139270610787683883798190809711500984632358120961782581715634401240452366316909036023665733076386776163577377319899143935830432640836289395783552464524450213502570342518924891409554399539850268008531270024490924271427566634878111907769003403813714984771131652271381457437992732112722440743043430152289989950607446418357380949964112424975302196324006440640327263277096313077018411215256174887544747699810547199143973255693040679194179507793003583658779782408711538970073470338459646366788234606192992374737330448057960052090606841647094330563777806748910271634537479581331284583809619028246833499379577574661496127615089991171751772050669961318225214655861524895782306511082702998594532707519104167769936847940884084069309236842191868816225780942000118420805499346307171665253569506200206760886881107437325428131709640923721662010015219823292565554048868132367753507303604954782900317474842601585069427662759484859716568117567732200328452894167158956067577978270578414139197144209248856413843993370518471411886847180936857138661580507432454827523917469808622780776020117305007575316695239491629666703733455948706613545531434415556371265341511002916706111077433389832275023797910546152246531253273430837032644344723137602979168947396954315095146397601925139661369997114867452697471968385386853976683274453449683141536422821135424516322220158862788489333367715793183399772550020309296267408750487387517611242132367864085351169436128902495846423054819461458053082909031095102859716310018218617902055483238196913556934947259796953773587375058604408643231828004902681775847601368446569616184220785765467066373952745587060397992248653556047284060557799625852033779818978284325174447900464788879449056528970221554864576918342486705542807370092201713184408356282215055305996472265811345548419560473629220245548584014023138506844812521157511199944351720389529286875746242235392312133090562178552190564351027338569178642502416919522225119017810715787321269715682338045236123667628926493947996315689533402683448397133221343557851075068843102887491880116608757157960905780541037675385342026423598480646219345370237133022263252194165311338339957883149811145066514622289143937734835070288273981470888262764360875278297271250202996205471349831838642725100774135594154299721858878051159518455945493745856100788922755307107963107275560023003426404709479263800441291483939370601169329019259999802014244922698558755611221366637421266282069091519454571532998582043237706868297464312757971523411193090067831408592915397837853745908986349098490100743373770747013649437954983270501926215268849964110019352264156934253033139758121528305920605176717080280077269143628649136211507130389615738324140840299996073626384086564408779155701748006388598206064703294985910990013819766348190034464358421912949153816354197639271102314634239901810428483087087934442274184667689484890399507952776139563322876913359184151378874387623059079984637016629482982636795009907880333209745528679985827509860472558700962297075594247302695753068681415558369237762938167200038680767420272100191078737653814781009839171221412346308100354090357839585507837453599818942143294753752393635982977420748209816816095731859956719399997243056000621652946472242159574966551163956517222023505876403315560758117909285950782854882652489088181486222956089212790613550539693056382203291648589988316614976243296698926445555162567727927255553476532362662723507107581479354490690339493661241365587104720454726307737382693688189893063018172051827764048807632824247697215665428086426084128221193288402251175818082024301200986142241009823183128058259159403205632564916144954799777291544589682910956049035320823177932493012940546230745810379525430769896599688068484445767894461749896151433485002521067213226854197982131202527871884447964969105903632445066647398224276138180570515891761594556215615001290152729176375203648593597285185577098599393853151465182063230940667010264737426690038309205741101475927836381262545300598213224140484229064586051827023409037547785947915793061700815385560769382619069391218547975287096874029661454511320944721743038435866663718852665508442281493686502037672179597174636088614594832621973590876310139663396778451382496481311198789399970202454893011017894532638501413904882902025046474221307597532170338781967089812467131181525704975035664347958463688145596430033384865517768606334631017388428497032715330745548603988290180626139524587575477360836674295104449239708246798448654582034518370535703608644000672773889220669521888748043420190235667693452977571165984900940315908901267790542063033843297183098854274744089404159523234370335806623169729273540835522713053723188598301256571121387113083471769965650445016149000891655978352140531480738890147902342857865895836648959084633214476947195105402787718979982567709957879037975567906715061265847267666259037739833690619863601279157284599364049841401676341566843934485985552902612954876476976221867693974038445031279066618245935669581630882206563157497939091645321157718322944447700346211289391944198059524775778779865351667383548358032339563126933934078331671894702578042871405052467028227390018946790558645116295087862124729004223223776269587750413046155708076060690980714104233047614222689006082139402999797783021075142410394243246149779220247157669747393223328567358225594929893211625336704084300626627806689691907403918392206715935667812371518647792756446845249111766639693886904195666509492701716986235831366261758291522520825865625384056139694575286266763198815814204485319656930642797278364937002750415577752154408069185390939525887385549889470232620106175677218626630111469012954555524775602774251688645182007197212009402448710526101904156816737298420848278971401542554810489866826925024400170384866399179631194833335476851787503436464533117871990886490948847712027275227465430647485063141551539922120795150258614106573776571969125879264012076641071232812739349697246380460165786726632938295703072206530404769472115932365948382150937077942628169925690704394304919024662871326752946196452241341093629855450944841333829808866833246287236217324273734463425738941066926172816578051834837552018122265203206593130710762764987399852553636922705112661543194841221838017196564782684591045045766739636284669779261688397439215930395231860006155346859046119249331845786071094859278223083584340969118242509639067810863557798333998833778285930318226832182320720322595556792125289672128727976654685962625785643226374621248870649717735189377052986147728853580548488519847223361587487544119825295130034862708068085429629487178361513351121400591623750090828670164151385147811923958881703482962233428348501572224429215513074145981717627783515730659093829060682283886386211175673446963256478199268696000871302498548933460099344188285648865287126621130254857945864087412947267371587435628582421850036654695692816912606427132216119264142723603724219445067917772126454748663821239684805204770129216291799208657741076709586243139747445459492169373455868779536785733157836208666080807560779581098996658540466709126466459447390837306053151759250971869646159234402024859390419626615610183685710915836678753536522803422731789800635265059316664012105720814834545318781383233511846437645949565864773274008608509076098011796386326652171939722842393510750287854476798351212929895028429695459044999149532069203629985304031685251846986799473063245710319785625333119008807128421690982506952785548424947750308897840759608139640720429186754700856617340530298356195391840826841111130063230867910231986690443208797359174331807766380534500055963989228954921082396279239661664626178429199311791047765252018652185233473332203968698803624609041226584003336017838615588669958654687466417187046510596148062572831780522861893619333391094553448988894029965428005560027582130886699057462779379365927652888228207825654832918338280402647572084520686509369702243701263965157066927091156263155740733645015400633237543270080215560580295764876830782498609828790395826062988276354077045709351708997658929696626112266157490191842604970160773784825456001106061213433270651645862707719455715831009768625586951069770448386277088785678543226046753998513176044786859100988730624338645039039137784043446149512002250057605880866495081426006473935134430290370255097441124059646759814812791111843926343739614632993492494461583402147379280610103884507596133112544260062816395305936489675954670621137062567820859669421974408245917773256519435037497595894994325421865974068830426086305662644004737604757547650241461253732459439855831039820700806858103224253747004479052827103872339461698798394815455039394255460087129991107986579708320043251903763167579317298276284640127480046737903647863128418634003174353738933922234964480259681222259747068371481028143866802475610032140004113671460282796621205978139895734515748031242490269809406499760849314789785374005701694214471160379100578803322667284986072884305967017501639323603104551292405970231381735834454460738099656010344642685464748577093071378886967416832852951572159860189761247184934067217314101560236917977157607730034765538191038060929293677470558883917609873744010517831334228312177772573574172493316136060585822985417128510945070462974798744029889408512442231574516777027553040820315845667278517398828420581810206824820553567604402272774276418382291400851603818197603583010929103198695391026590722623113021685665216477268758482431330253176577544006163776864176649531618942553824773474091259845423986469350226081489651182929354491718546524643641767935974025353944602907387527122961530123054574727116869361905787506111922821170589815592777077436643162412422738505472660003157082035092934909610830689682135118400743066322761002472378890058546405172614606073279024847682934824496581672198458341660966002288213731338202992035972770749737633579384510681976057089763398296820678379379738986822508494590547527686587034219949397066652406632412499232348848739927505644652690722865035243197847448542556448934643204168275827400985429489565608372061484932546044795042553550321111045051449756423208664649048200092187595062307999101394467285470199100663690344280587686065780683529488564410560997808425668356581161008553278357804344669776878932325521787019132229032860080031501261862864102293471364296723834653773942095295818470280728801261957679440197933301687496385801382888244695043728545150343225266506621074150101070879413904468250374905166237653763844386816366562394552280086163824453540055904518298388971856315388386647786446532413022251119315141567873051167810486924187673659196776499757106405737346914137037467523304597073367565894792139939318003244770979561296969797132080646691880064860070159704589537272681169897644428679225450509275990794675216888257541658919351827054075504859982440715377233406811000473712502680586840260896173985348281933729742099319656131296224252276651030701737935877436162305946623541601486718558853906271412254827358436923629609854992416874324944783322153745145507392458748604655604273648958753985022234387556229863476054664296620974027849347558993986433633052702216492109150965105157746332018100390963754681300761955336674366694458354446126641033813156981660629574996212158193652364531098367131217361785920612241345790454756072119939871903224569497632429717832584540698551120492971319182524756141830645622199619949670466856959988631882998346052150477429677982274978404289688857292360541060906405952673978934507540253929538220503813298668413769314017471357859268490473686842887738415849404761950975482396571534759580171117664282106901319140015194032690185798883731092026688183901049492170548552431212866760167407746775202035219247538638540129895957259269152032121136309065963642186252783936588169799925035655312618151360698142713167354459782520023127481932177306555960058071566020259105177232449267119559811813592654060750022171847084753621759424386390981024902248627725472689185517987956834319642047666831499486578972929918384463638444852734942189861702809284240547287278768032454841752815937450331973236618578048141917463749555906382588054196740101175827330441253919723639299039123028212312165162356810396635486677770421285079525156263570664968026666505408643985596722484021832133221411686216977769580809230601546079433168464135072171123319319933348003789403220189850356202493678697863889942951667436176143156760634848334525972157421019469713560927629997110312590585852837449640941776390412356533305212730846270976127867073983835647132879764372219630480935175046009079511742368208938507351846940913896316880890028491552060225542626900326108797254748659252797875752222892907907498982154900656202710348252653950500268159839392531144873860261815772983017923638668730624209213537774894192162247505039842159552125315046802381762848278730169397440276199679210971134300484562418377709956535792539971337712395878324630119314089603086177081042413140309002776119866161051154585981360462328025659030034514324651442653298877102999146922625328573849056477472665959329160872945875928617839292779751658118438644239883742609605401688368763253333584378133140234441435408517142296418570406179578176574256387728011473427223178524172050502392321601058765615188426460723549776934233729174098004470530493747406803624876182305592744468674591454928205768392381574380402541860722045235963637299720121874929537765661752877475826926767934959483951122939563502023196507598912074769274518063842761129992912618384185564234136324875071041355059913981366387855872244219939217304079149195277567461965147552932352979841628846273118687683392153784895856467437215092618598754545438213333150744020421040292553807557258030579283595997488004481472992300618023781394625138437078006949291137486866472161964352388428157461326600423353017412330916887448592355506960524193843088476927336646997755537406708824630858879870182941550583574347530865260574653057200167578345494227290910739718431054912574784643178953688825160188722381220048632707807909229520067097823849936019941079000771640564629388426139917936961179998993805075072919937539149516184607798894530628030272604161672335785210219721117822674733209961827406619872370526713096041099245975296968311343489116453094305225422261224182928761864705138462792982696725400550716504702201083501975857471366657793740647980913124873235587457274722651491360220472512516898936500886274214597970582019653534748283201113927480675173435483162539533373360217465733517555269097285700570022452935593039119555807512954208393452402768817635085381984944566917674670400411761211024553575923286135993414944831663611815177704465842513285154430697886686174287133793003182784492062108903724042249719324544552406923874053986307236898088021053519015797857614256082732136636244468658181197916207065312494214980937180971243460545024611536600593332266315000616651715761717555612483673137982179372337307459487518445107786636506675083535835960261044162150822169485148301751112941035191337272398111996289112867435438283256727606924153288621027959047478021715688974674893307686205485574645113835020039232147968134011041854394525033975376935126594866960048012328793432025258928894543586261522013134798318415456590897525253570752283095388288035363548769100861581833985364035595537956851668693592279410637807268320404706423477372089212977993673695272681275712637408189184542252214167987788453663841358344014295647567926362351245261967933722364439705614777989813803767037953403846137295824297440517894525809036544939572277262709540619206752422889354841327022930312948319023269066916327444387332495753432694622378734929942706905164643159086185817871498042464889745807815754555728442827910225024282040279760155672316563953654526034251018037813339478774831335012931436714624196545546612702360971532949192115763967865300701879047482700683413177606798522242124293256529303491446133245389635876595102933114595478504022087204621411106813782581704430996094876394185299557435310852565973865377163845701733525279751704706091053914787893046013409358894007347611251704807035903237756231502053731755077919775584169226593541357313155285634833742335131638363481132618447558979078922288795853704661037785582401095653450810461380331204966356033041337662386739802449896007655652296889272856045067235242579134841007501410053691584660372799174902418121366524117031752616561541097121907716547169727815685850550737632343993483651151735565013410836724629392036401813588541412943372030091990169602904415395386607188939651475748167542417611169494125476520176681195249299646543255130397979164514474037718194416035421586539508526357715674939136951573860874049759311560757563686951844300821500057829719329232838965120296220559678641102815074449365840513526387654720261459974747989929462775217281610103134456097341763059915284195083551761673749943537548407542710522018852125600926799022382231202765164928450546189204145174700654824847548438582921419925018584912617736286805242444090109015521568807881089708937752505088168084949200115196329883793112931724373955630089880826089855828066700954891492207631476484021137359216309610093101888646077556808418879718210029446881271886946986574520255186104442627036828270445028573249801411690444070058154794454953388663880271807041484829258889951470840350755503960463717687797685021990035843678945116222008652005938932149376788760595610740039495727971452588705552470528449629439117640243104773600113753110881848790715296388544334255526874452808654307194079173969229618766404626255079730351754883479539647205027003860300807573648645974503133566948506149823219145949186288190951320957317143776667702692415550650900371834063196357151651052068924966706918198851014808546048140527131723122460523683949030368535623434599332027722157863506994200745597634935375156383757943351035146199187799508939183369424480582030026780525679829664554254128430822266335068136984100831518439142940358372952062439924814418477134541377067412545314544377470549715617605060178342614683316103314880074044155435056071514989719479853352713406512071354296012837629412508036051547656079414042265001005268841190755634087181859310909032374519570973035448650341063578594539276021982266763301479891431725541466577226698132889375812039888700724027730277150684653525266402190078866981220346649054559392580931486710780496079019803143888747329825451416244659431687243978293419989185489346112831996003192456918148112858225177845003808420867588095432525130932900843982185133406087592342722597692290932988356258455080708230868954660366745111228692852684242891881394518185899303856759381138011517800734849995775992704913804544757082656371450283245976501809219668378037421753520764907004248979227231804778394924205411240115879330404374917731394003844090098947893609873437496202310130485998264487836479857337299494793095275981966521056761021767262549948974230936037834821741484133416524963755421102636230150060832858035981042725193202718881699615125002863716104439270767861003118988824462020955539653177066053988402913436381171421739418565629346313680831279323384479329022609896519782937330174460324642927779020538244037015294715601871921572568397541904895444125436832030416561083165328834979648142246375980786236832632513487716260273217863926252760147461698760803265535896232495527092589311958272705293724710810640001266224723488858797043408353539145048517958966014055934492405943699238842067210420149336312969021321329793200736586090788569048220806403581400869784049523849772792708879497783020965344949953413576387453924275854172468045124503869686339054568421998043798107223678628276737294075663586102915407653369903424235630367770469162155717589239956276837654626765788508858040160301424694281378080616745261324127458253275541343379223306071799966246895839710837879373157872708881009124353324924193875674719526141546759336618093885966913234750295715552703146219450277675182662322540397550916427869051369779404736794850775310699905767293919130962654000919660523143492695885144419949395468014702525722446774914232290073172484823636617707530550111298853595919513003850464334865279517244159491183838210044189114027290768400890012000445850420262959813541953302379467806849690938223690511065141742764621131924129966113779864934448079470560715786455716837755028621637649086732865052780631021397811286632864376312852593782190928970462453018413432471365827249312461131713385154295873569408816621167307831725773567517018357257664855626450319886785211844010518490781668869715007986190886398347330333403434943376241119997970532790384464868224076750461456320663649777396659715573307182691837059413225113482176111039903510127285004897895037624483439323526552427336771096237430355349959650376282541484315695472009378902897947588784824094715856821176131596936956117069690475706151208627637608410392234526138012975695522777820303760853371179559282753647526329034157371838676009201023891489729608911037823584460064224606097776775561744214806672362496309617112790096099825327280724540617238324860299773683693108543783407622947083511069748640718881338238060821702780000420398053592776797535778621502743556776887995458263285908974528043405458970590448484721953340585647701127979977894640178829546237924744911006058558886118295579615102418890521519751705318916570394689030445356603534512956123862981043437622180303191610044686384738895290971018554590011420292327747760041389916657086301555504040364447408691343344276745732682439535044605904257559393028926961440346012777358672885539795794892416814847020157769857252873277525628388095741929418515489572198590322222336418219641342488177373139997366990041257986256150891249813611545031864283299496590197938723004126173996339875073930840740804613381781019126690454529581905620155730872699529036258410955222712498531752659922917743012963722183011179284220836297958115049061109827448442660736337326765599571690601216996846110301037740778668686454911566395860356893015748950298883683137131950706639711910636365462483428340849648379495070235235332280503221329636032559220391882221318007606111235729987155715887878549489886467623113801772727645258112841602796700786770247318158068207309171978311018138630432023714115165015324393745572076022242538326703356243313507775888652852422684985570160995339158104454783807213184642539333628453434479628589153623695311318066161875446630643869252837420091452093604773956518563212593148910688284908953404144062845792419058074364813202022084345076543232091886010248274492694735477974215495890375353693103734315123934703919955463291850349890409171566024287599507356118591852440261702474072586249046170833455497192857007385615364601494755266287105610785097353335385688411043839899514056509666153630204752331310919347960881805269588665905719567385439967131535364219103423748349444554422111822332613135764275778969573375917868022518615141539998014851830749034131906528764038131307324028088526191415211291108042345549964590415809305598141757431209140874081809816682904837584545981147118345071450090662913218655295364524593693901978571663058083028349842082190414129931997538281520250648936265442911393061797421283274281796576019518234627930245060468193940615362544969936990207563248700844462594105404524610244475531154512571023734762674772932808786177590039473867885083009986635680893892247445761790419936234597004781616667933359110824154183849852162357738492372871583596636123216683361199653614306026725722590772384070892965204554126355409729185033106074966765016833234688030778521407994753751649488163714644146502561264167989565362813132506847648978611754203637329137744879448887655353774597169196284951918357966217135089919322766643315933991714774971333328454441461707638610223932255143053707034859798290192260746625164725982411731659216193694044882349503808988829432075869967295968960354762044172116085627210814340267814510564563355495641924663896379624073965821002396984956811307538239664151801134383313124969263403747777141260265941552919691814126920137431652060353512914428018983424597908719155854249046201592592745354169513310707853219500063835838281368853569348044703750060487057288737285486728011022188525253397651274256275726292469066741914046339985336845130803201194986188128598494553180398132963998856829422217480504703552887471548690343719912320395597683481119520141725136574945666400441250629690146593416416008584271578132188134801528615986836234181854252115539640332613160368532313181910162739492663917245377900913813623426492219896660921641719312181362769779467684584787726973417431173871790872667016643168199597944208830046383218079345830987354413515026245015099189535506638657426559102774122155900844916012824139437710534977700602827106011945365701503811054957976278119434776012120525269593376107706463926937151895271441168269911858798917417176301400359277064925615426209343936024258232429286592185145347295996781815661798976938498450055093703652075587717622210931237632758491023424186328846572944829465547319123859727187778463633923610638873063402335007808739756629369066428961985199050842698780085370049472034435675411118594294532396764315300792308634910466341137508421451312899881154431476737388155795031076615060678842287560621045206314711524566441055117790565637308980397401873504761327645609858781728638609016803046110706877133290371070041608370003515470095677876594798718556510038612994902146328928218753761388710556876080016915603898463039497518029545871876856336583447847214757395992266608451752249412083908924623824713096668584936104843816953073767270521974625977667472848544769309992851234017125888461839481136251931784457455015668593578630443960782322018976976852786024184293384708920546442225565837314563140143094870139228481881916531540600214797345369539531407505785889579180075080664171635305492446195000635163679976985737401352479843859744007289213405416233272506074955927717461646330280946513033818931894730872516938486039608380890830355046051616105969232011285976041058111845562277278672325286871052477648120883260323276463865201623731147013159072008012775120297113926520470314484382887406465629250764834769301165037833191156306372028398892149911265305123208129299964221477335581794732609237391539048906434527099664484294483318502370075227818639962742625260561972930093318798605445662864895212265375027187478001471394606227817785641041749392079684943694344145688623699686582021178859463059342351926110461387302459617753692953270553046713947713109306046457182261291934326572491370278111448174146613651120864953314260100023203141962845164655747363754269987447706668584128779443571678955518020044937497872010176882636832562418817770131046101281927981994659588501165116459321085462969221307716047945653902273671342068373032708068525535014973463560908755414930113188962730457848340639367602230858143761738410937448098676130645287857129010061305433517614852430908581843839331284337166080240930999515760998920031979667882794348537789332033700340661782764963887145933476288005164667934333291863803116604322831857304004717064376246953933183122367912457542018003077517749848555621037731521047022520722198053525051545360979693565572608928493722050817417246675604530920962951255774085366492518858989396687906026311585083784186160329733487162309832687287702287073619080090940383125519471197192732341351035188627623767973962258920380366915081016657674638820288366828897798295062202882469826876356453347964243733935985721039891906445679338675125604596862574587550403959336071401952257144775098380870065906882114263394648330302848301129235912003974720214840020660634935043629271569625221977825098380586505247913997021458400534157369625196797997470833899820462326668130928102008168198309185130820541410452002893808012591805329252017655087701285125979799874847916321998621259759385674083743220208519367664381884354369134894400338798241349474495772632415492001016454359868271209216918271918304656118632809885981097475097546960962118326325173727992381984422911363261748002342120047436758605068928229185796042196118242962414864739095611491813521679059665685377188818989430160963828089327887777430194921627170179430225421029007552540547000142807856224430990322275533205592350484418487980661276475344677108565273111455279432177913869058419226435613888261370975097596241330205915118345234341397352776593197708546001494880168403996239719332786053765202491529576632226146529537660175536791793351213032467141441614366945732640671637196076716893293377454402828161702883076967443453993948048095677355283163650623185006062404467154895412007510378902260839965739197868645535220663062292033110461227619478555423667492031042979096672182503465566421151487418603327264287703234578653864747711697812391251945531870101878374864489484689372228542539128573622678137754518373157407423112313200017139399558551036725411844348668069723732304682351962015474108202111528375646314125851678343706037162849302563017566912361666642016228348636593128992164420394047408241572494902543449711177727328098554130876617420532112934148945295137047145622441585121052549261511054308267306316922244718900251132055351632959850156232714772306939639050954002715977035405522971823226833453772048013534904943221129408667034198743351095294980234654875984425477204498545486584791460070950423115638729124843141822925262870390732738571612470084647615589880166534954662095169441986252015603160413290392500766056077844951931126896628045280980714939755046387521721902482957294279103727246820425835893100945178270419022351186801067411940209139904102708551446008179269655390085046676178885590559005132856985383375953443470103760553882543208094628520317971817488552899398745478720267662786494657798479411220735779404173853358949061621097072230720762290242765051388758085259746757842592761147685529360455941004184205772137701201989499872465665061550922188386488777548263077348580219418443595991697871886199594803652987727411904199387619899761243730360886332829258336496841680320661701415546967294050859870672167150055695468749360094376727155670947470920012454187181014706502151720963232268265352237147848020957111323728058809000063885647546843627866614834515159946270490232152695050360950120717496431377942619697299876280055110182008841695315664344317003307944828333425481589199664638087806451503813703704308652608746812487637154724464621007499331402999106441170412603788637566997399509098445692678408635341563010109694892783460799265214850111890693434685704116168228420043731084336031167604855484422318619185337028687369260405610160540003496184014648022619743413244907475168512694920557078329116087619090440122935562150788792387884847482267079986356314900412602164588819285304868278370284493696196062024460142548381651785404774212410215475137138433738483123324761337473443956092437753629980494819072292981774943698548523738697216081473025051281822601733109031416851948918896568901975987383604865805792501275218954017329446770743032393122483156993754417634227888478024701750922328507567326159103684583588967903307218937841863379786832952092432343069145014723930693337957444884705991566901647891728041376386856322350242001775408123375095951298054035494530584845200173513212864134270890597069946158749579409138854317777946165587792609169584788971427836108680669644553517966342106205729862511724158314228117005947318937021891723510492032826989141943498702929613369607430635574386665932070920485565686336199721131404174336290396939283038481877412539486540694058719435229565876462195519743072580951234485055483694973668306038774934149062368278882936770391173712255979619296190261417677051144041667782126146408583636189599992415924058939922415166666858129158136004830642064614731566202711026196176938891958160583763586613774760730151455053032367125795813378491245141950638470295724972428189320979300718822571683923376142278780900205640027096420777433738107412646234169474714288415749453446504984176423663904765799595464196533426165796700717588469455825635079225732751694129391702548329871617591664515291920162555306538152584968631844552276116028421464832811205494975076574622234659449940421678238989009273245217095961387151529655724013624310539872617419183993665254694705351186594701202654016154231878076337858010770644952419396111337000134802220680970527746994004251937422874157529710053602979427276689993280909131283574140114267547667518027828122798330949457238963729638427892462227547724687259216549272169046295982290766828837822731383186171388584132471590996725043244966177022668665838551306919012737381883781684392705652121302377018719921471932757683383485681894948912373918998244028393210206051382900762581682740288761837046952847393984072867515276435374626850651319319270579702336308751073024749228357667847821348555828303435755169542294215662243557609620251342255443294677933133490075469850245697654357205461448325471257513614974406053002406445356051410123928729166249855438224710403325027105323906341269643195833910857932266649158921384395977965818904327617376161844319221782650833799043316063011579643955122067818522739005076525688553668791321866013525647912055478698751728342065612136589770767991658902972643003777026012842659054770180269972142496284886018859654973604712014985491528819997046138939102697899187724268740776270792670492268358647356252220222400845861061490669238497128311234699417754259645307536184454790730584215564479870396545802707847472912516125825744342614322615480394990683695935138483725670785409485951614004537486410772746354254325035006582779283460478279212710035536913304394155549325135709659137351695487943902543004076434482523330769458092115003871192934047878730567510211611983697379155288082150205586758488007615930081852783342993071741970901887605699837329325684587150770343859585840999196772595179995859851660179791673169093080708285795108813152122479439215754280455150384682206005419359216380446252922127770697457390584382877114844547689655453887928902443363822547445666043345057684419268604137520038203056446900514535435100708955099134430220556008202831606041636621112844063162395017189302028795172626003281337488831655335379611914422872337481751627271883036842568357912066368814724140583269059880047817796477429040323673308690283176586636683312933509310822079545113599946217795364353017788214410113535396519186470897244622620997808529248184384651714973684578888289099101050439704330266659220970654127504269322576771913190917844350222197581887977627406339400074190001886778189465581883156284287218954333368916477305254982052654545680964139914986312657470137915271363167960462564824140838194434829276155423970762790723518305350391404425378978851231620120643192570623126131012328062359565164033570865038719324637617311014726957140834438036906397862750536019229940368660815695077952373389784166587164810227090042820948833399152984812870431145962753341606511142589579337510831046492749261078052296053717253465405646335591069414189337091658393581204911435815662430582768532688017373317282563059840315458891852743800853884858845232755379160385262160521033676718701048491645163286152131566325194888392833186959157679763973812546515115742697020719235648598918480013561297723147678692353345130664533333839579609365318170361598433751472193658037768313764200208060173614603707754019809742013924984137817979025619661069954523452673188315018466915511388559927773332015981296664654226032658747870840008776447732316700641961285373983661021123586517083056590867340274222968228810625731775072009526948111588430853262274661759756503534341634876707605361709088767597036846553258226931852200349040076350436831594861431886783611276435111619614073167891751300558707088557516590008386229905083076930462036445532740144617758827012477346833609652630953367291309502968126386938374565022193267968980648267668166319589272374648813694421197189581105904959620760935373898011905088879804337592609474061960348076012122729228659994938098521656911303604699589971395415368187848870113743450192961248714111294500612118783065479621669933690316031236796175666533032847316633649796468643180091211229691717548477426025959470820625331582612853984184774237977074835062501794991847344247247496421909186182995015156066213981303140762679668739227035000416638839982100051746017061501088289463303336841602987886181282418558871446632711596574642989293078410149304378955892808445561999890030857530797520331011800381314122634957426587885145643124327097450245320701183309189978719781044383075099674310950765234511180681565927297951317466608587609591116005396672234751287305211573368628788227139808348127873880801495284701305685139202946904259255795145626178748989268193983049758708746336369486823572791823876801819582706374163941549267605530078169746980141510690816202195406551870551299196269808674396056422983345949266734574274380188532061194852716980231765560672001648445762330948731450573964060001590431518299004973253002971889378024870194392179146412090184018361802069020834756924323010614766203061716025431720477651045590754456947304010677347494062322544994078736058735531163780545730206571397563660312522962992777792986882375163697051600937802672903552412946925167008275537152706492810109315440173543014386916265197485737213154672043529117000785325966527456478021308106853041300912632431421608868928014875222058813960917669444739462856711136927781410171589910905896643058748606214347790132236747325463195378180055769423914393794018334854731036067733088426732562273541490107687530169988579016483980538348364341566653261252419498744858411852345951381177263260969372754156097624157463193137391822821857351231893408832527651535114665064803142667116298206970665552629925874760913901060982110945981849181165368015941836971285810343138027183234158115049094368700747149889183844172072275731941449897310125868610271356841165825260076580122989511131212134081087462073690535340181691812869488199755955410361519776381722754112443481250020210175528723340207192697724299171288947787122760487631864096949997333373432772714803939851493768125231222372873022342298206464146366522577145057165026137874238185369670767507002650133628720796141789363770380767626511011140472679347327286911083529803942440504820940177730150120013467950822555901002078745871354869652095803885503173214105391487474851294245580230929071459079072369406558901721743748798120820725638696321911343543840381207892666188999456455608989706402519702505646118124770228742615354308886783277456306975040879995375487559916642767286557763338534850426876156392329225599613646379709897240086199637578818207482376942329071799832611831152111129110279434485735582883398746110174110909014754660276185594024647141440450396292243148521453987227614695379926240990897214433557240213045292037225878618933959783344803552623443989842703843232101890114412960781181269282854371352085588363134690516125444054049697462173750138057095738665558811072990559617133602653559854196828750930685281518064805633167400974596891214296253503753114385396322978793535775046794472898897315888962536720599444115454211106706662340606871531613050378776768320560065595961367945441016989046196520813731915221956492366262653987817627550810368203701686866689163513234776578962261072039981285836863598548259172748671161357556186062829094375603046577840259823241455803457327777174462537706780968409476899047190377996492773665151916157866852441571377742312023644910971229579654173911860491755215547062266544342486768015966283288502244313604194913648493307214841185462433678861125150604670814722099229888556514485234749164937033988226797460651348019992383714784017138944615805855835814179608379329541026336720149052579485417060191246436524953272426558709059308928733679283667744050023105121234371162337850524202443992304416461977455118186892198902516426033599954549153162759762959928745420039695742766449208090181347352960082803670765340128733685590700658067257159643933229722554971024337858786760400701003702212014649192824112271127842546403422961636623674364089612938979011334673435524695607368988613144210531095294329624127187003413036551175860431672258298859754451556722313710162633865636792598593237629708652517036497988584138169877145418761905072921364122586712659031198275154802777136738017440493805858928396635454677724662004409656109027482070301764164984371485209071954411504588163856496906303785935271741957923788747662582325587749439848331760790315353165501929319368731739531188074908459933042112483572385169610729674429700395142364501476152452535370486701500762742021856407485545182634730778495927432794389314332524239385628162139103447122631549317899330327091144680642133998551847205526402095190524071243392571075288045853794691883597881023937392099809397268601851877919906467690019647800506872368893766831245788645220523327683051972849579703157390817106736826877217744727810278647065926622708411198902869231435342019045809546143724157800601564715766869801909173233122821577147237745141481964518795398142391292860726919031686583556833538138464494249539780231896266257598577698081657486462982079272267082883113002850409598133016306047301776503014666732710634968658716767115453760723112748510301637635964210934052257730977661887022744045158078430656949703300979828219123749980220594228008509475211232876976044391199001803579802036807663660902823842115547260575661497753631396818954607026631206837757421789941779449166607999290816966300916596173003740409724453730091549466277574116919451561523383585821635940288465394329992506479633460369142418226292071913168229101920062597507549323938781963753048104994771402268367532549042283641905454031873861373814616820082078961163585409857987500423223041017847461145564132579599532710497612030218262514325008976439315425068752975076751342543246376746373276500340017730929953374779604000260874161224354746715306993715422572845703066465457249026934620690619462202226029637083593920978567187035392792598001792854521622984928425212309214334966298275755642137621022675102037875863435563547939828111611113577289886382240767473044187504399169744032923179029915338957566314937097230770338327436891749137865266480501982058762472777098239105931957439525129932211742073537236348520642863206469363076407963316895213716601578591743510171324515506882276697922549996852874900102284684170818436253073250507318722184404500649878324793934245517985600959787847351551564429902739282484834351239892940078605737499350834876277268597233263940323181195326754248484048508589036130636354589768144514994226168212759555278479852821137261855183616907020645751540901072513614803509855936609866807509587385877898227557126430681094747212379036776619156388638649728320258849201143210594583468676015973066825480789982848573855740203231705646292666666071413073167098921041053571594851353406972681339818955402355474715024243944202714069084665018958589788575070407156571336636336314796497270197602463432856344312959321582937442365739505988441803773741773921818698677981631487277012884729747943041351149937342010634829558624670100391344196947057248854210076532176712296684892402927041505964955503609497027592326346936139555145567592700110975920582055306071441162432003285813157064050799203061696852006627993735593251954954863552242192036279743423998539140101416215977566814210467250265728981318950078058960742549708854896995744079588440344349059847222973960209758249989963938251715560310627072248513804332876400670487978791742600224934785500884606244112036737212140500852223832911468803432316973468445069250631426517120061306144445748036891513491970596507183222347709963607107895619088980484017417717109732444241084532897201268327549531932013253775419972483212536050277077326994830694033252693826718298755646373975011546673397356914381097712267828893914944527385734797139444591871568682566892518138060283744046879019859387058803540807997074032424497962818700535289599195105965126383579718443916810374655339376933437515624292468948415216644896335683578495446040656951794665780187962471314654534650976518108344115386080611018739329529592613117334709045836483200946949903613784156505764075359896266249745002509838728501585623389384498624620582618170198451298195068353089382048349835299323432890059018770672761351026917759037531708091193353157874062709098292701229987545959633570493709055551089786645705545974942097073893488218081336059904017428960576747610823619795236663649780858006206319303790297808944767455086837684865463463390603069068542665064176539136968708555520739771759938125071688116455127208929046952114869695462029763101938380180705602794383550994714537994774555170319238422911445410380030742851461759218475515740956479827537934539001623545069350453893000954773936076261109118158385926532675776026318018139565444328620413705827906117982303690981729018460671609816894552199417940950463851143979942742359450646964559537703165421538299748698246892190215413066866138206639230880737254150459085064102844407583677608977238150584894641159399992017482682857196439778768252992312047874495020805079526314216980209262841193643733138696497134142509220750246947137725564227624015677882580954092100408188107918340572672426014632437201948355437582066245796355571980546679718107977339891924670439185783093142679607890294087115385413374039439734170405149537055141655719838195090873118054791734475998872236574185048172164129955761913247743026761907716432252675843493580838890312013609382310514096122543404741276560704801542987790054665806851126995135926820114400275354164554748598951719519459586287349867383555950380738304486546441899698523242749994061063982594839739377867892959523281145461829955164902248183475898074536292497862763452501975343267528317632501629843151635343242591956610861649805581039612050842409751493651925150336465737468687127464356584460386638777576049913579209981749594713088339613388308687506820044058957645416250997604207647895019091411063812205304080217181417335124501512231849688863868927850857554042681526022046250519265645752565498656320276504650241414937093495686274692876476567060990472481314610664801626681973907808886132412168399643331065160708242786033126957785186046614559657913018008713207771683014063854083552291506364090484367476433435146501666172273337364414742446843883897717995489190641175476283959800551822134216308254508014024960162654973462908648065893218327164229371031335259152680096537644334257537572942184326084375593902458632941401854695179017781821416060692558431175995307052430163528062175544421852146423712208633384353070393182523410040705764435531968660198074982537785033278909055540776343929642755618141515245682155603644986358949332945591906848825473750057831761534105706427367528792253756874133865292792714539665181518711827465487121648240765814202342366492278445589024487261421745385210000980242308755838253706648986858021489861451065859425140297958524700570837241301408021234355669951564975005446263808976679324354301669336554939882630400485812571768361400241184841409583110610658658352477565649948599681646972155477396046183445340641027987104985324924072934588421030511116420852091076073533852238284537910485800278134757722749174814635349412548212833244094794997098561020919140337511020385218389795497084856904151236065499697464558701908751966976880505822172385107493296746425056302986929152488512365942514409540099402436288494948624916073660995532145013307129443233662244135146874038066137964233861124440156988878490648872392021921347880656882307527699017411003439280897931881176984388957708701227500827472669955303590279567207517022709468490562005729635703653208269910904404670699766040234491919685360349473787403538087860528957658038024739756789018180600871646447934550892343160711206186801337843435042830503794175116144000145421673198130612916768326745697944142913296362591422099115666792076451869740629839162823127301541671458034246887891031965719054589568009284641956596342646209725848927137915488483578482562232368668564936627604420863561273113959442296303135989944542298436035390094120189153820396913257882385050379735185048374747385563790133923736165208506427014102855648406436762800115960482064290188007726024095126435850383841831607212697521763331834319215914207015131282591061011661897260496907529929945935877476902287862096036423663606361284727721475286545532655414567319191523918101968330355640915819670730926699211794901363861297733161755054244590725919648581134893200944922214943211899971984459669416538782387847189327717771539863650744137453837197079734276830763475846495705834231178626556280144948229614183068235832421192222554768745720560627935955299347254411117241623896902122587791794863873136137171383155781121618919873628545368368742263773137289790571837916229267088623426107442240520579718230579102794658605035329738735979825317467578116114973862914501744659254354348957881748928921595024747547024327176025001413303867201948738387118597024962244001606687437432579686227349729966036687922416326520251058734235167769691473461438572122562290938813787720827464405991875747609118207310719761870330989630036461947552949732815145873313623050164690132680721541304953553516352637334371853624709235650266108824851935031824917453461105309427355724738864391604413041278839718376698605462542521943822146115296157032386780675397112075902217254743839739091736749314901856851336679924971638520665077323105271347714483153833810514211100883648785648080770080665049389466523255880306521924516432460786637128361424118429338210486110612317316541756285428733570951964865011633838816419203263646992234475939803232678056504794031884069760775628089799101100489073373606773800627050572843756612713267990332852981796599028277774914869166963753394449610347036188144426530419640306146330873372886830208003317734610401956801470576672057592548319820741595399052991769003979660095991676435253620346606289421944146695581441075304315584099750915671298855884649160448592250150064842830084118655789486356834970201262360919548707468146603072880472406649702342496735178935804124535460960412676115930803803335912084546091099000253479723281693723693117677933756714064252035152057514578796895820428762047507107744567827854625245277635066815591225197437782888621922474737428084214915133413689510905316679351719373588672597420269473658593639158854196137938007778998167139069040840878011136989659638480589873556974778723686520121241760628430977364958153362091085524357450207252976182728622431490112051987169001480284082078762081458984923479111989931889561710284209772466283698537654395867208748978739636424191694584065479034216958920377037471888469948696223128338820858599048509305691822633277595668482705680466723664356302943804401081423977031946987234911972297494664170992695654183746200668221510649517605590105954267387609054298629440131100200715570416932412869170606171615969916660412508952133611412728404012436036102022954363622311281017013356166755205733476462275199092867045612642968781725326436685710074305754748974421365478506862385865791605439571954541499638747416038116865080486570903247121271163258376001906750908588127621740888254786986166829991310691298528127838815427544936474557280156678406251335610184794403563459219845568766844480281656412657147978081187735060063800888897811429350666473998319039833649307699125716830893907138612737466526382378195982258255219790152733254293682094193565460503833737575297459525951108644144620910889513332077085259220280273491386266003254279044456749355228235432189608703223730060343036164388519780108078559922838356545987719068454144260544327865650659697955618596576150577140818801152748896477290896988105995771630082254246491015865492510695336654771181850321187943148061318815326336765044802674425817007667501298796897145695561593510904026328058075113298722707564140448854755870400576976144391052152857388353970998134706273202573000270635045571231195446422553718260041288778282419334240655422626581633763910418237547086738868342807037041202612780831591055499082940402167063744922477597045670349122633387729029912747288130164026239336799815354550738125132438142457924064478848258885799184289420218036976118704623541469052435880500830604470411737410048142721396505567229194551337713304874320618178128295838705063476939253047696873026524298153673735174190918881531476875815342476486948210796203760244141960474470227280044274229881048419530359741598258679145999848732424652279046777751091647665319898079662586445747319367398924425277187997878902690136877103204676889707359811984921077871206778790160599383632343770896183618517886892967567260635869249398069266257613233015201204731017330805300149774550913949316577824711578750445877269774650278804061551568971646889621509019792125720379622920531556673497234186458117855800748503308592456845154297874560011595241024158725579779640423462412628046654056647736935925235583064646617409643429355949591268425217677116092562164394678655893704013408692391571132712541506375914004495909146701072339565945422728145871106449118878233021160324790818946807906553356611886054147371088370821479403100792880449115927160547024151238453738460560120881878766142056347409120865590176742422203792143684531321173878289539211920659560783904440007230364155400649437788778766560353626198897169994358350604967444270786737216706437534722510116622957817933412669527190728916280571906351482669499031840190810034951277405442115264239604239936468034730671106508465109213865324832623499382454923981916546892371912031870017809599715530206058592539419762702742788225800213986472146024938912867578917943035832200456897839541316411666441037331076801297052603061855984729459430057770854612076273678366691545835314010809861898861072243881793618000610314057469408516279448306807823495810356597439010325254257929272827625572537155363714407882020497622138362767037607606933367978007143423661315797191932953716082991611978110687290350525480150202011608463247013374502555184877706353753897173557262320016107149693706478890271628542550356096046197809535420723133539468178804825111962213635984743885407030780912887208872245302839571929536287773420817903140125881843384960722378748948120216150509776725008806674678335560315478886695478833994075765026898366600396265875618019733563341833664915436517390925871725062743561120626653407556118287920678175643053361152116899675526862560790898704476862439596585091857975724274276089370410988066329596775813781069083063234389454064745610647790272478354534595329990562038039088045903602650572969491116137059982749942198251365977933168451357789737942794012472967667463017830723854448787324819255245996291570353376871613124523110336631389853457567828535063833265827580353411733280652442278951940528718373853607761401789730807633798924070701459850182247945296709365341648670502048065304098126875366705524582999625944674472468355817064277447208715196016157111023116702307431086026484734990581250333874120904761602551776373097404297129177009038660398766954423628795950125194461512492867743278996224051993745092173427524081404947468266901101211046923712500104717377459283547573945564095442824216022069684646243196592928540009558747347710600596801220851247451382519035902531140986262080287000022304581413687323496324734337426516465413736204747607186244761456482662729558577340327462965711732822110210583952485549392407435526493795683812110761297842910642425593580808321621720174084793930407460654003539598227231086591667680394542047566768722759227201432449493697869799342323548730606296973001936969686615823588858642836039006954747655157394902271153677271607338569081360403131307203589621592845965492391541875972722962669316644154518547594681701124715603097261536110054868812784850428650265237471295482187755334386022281762035033546857944356389987448742174299709206722681387025742510012467821401996567309776512156972210361316801540291285410833639130652382633646829861859686748954210878811870366481777688235873471691825931338605039873642013085962094716969575882831210275627117656564086498253286822627706542688377119059180799191856699227972942986994834851241139080772250185572703893590416014423360211048226015254090713082619450686950129193815714588445821971264222381406891967338130549451993032656431478588733626475867557493186650666112983736094915589331242227026454177120083066491850486595378515463885499891771570958891325535336490506066047760435807027539401308123397499587466084541101314845546535837799267431460699463102594064948812622949840360598681719127082842282073476703768417591016203833492560099066839050505453907795393232979587518753430547696897552013902372782847278899841804559930760115517809098388480433122553733415079482083388686061951257684535568095129635062944879179519695861272655086485721242394855657096083872501781952260470285547879323564635098274713993498597919378761143589561043554362306204960490644270932560288242102803727525723315496203005816654993784688945601778027794224295984186240862717410160831273389647016832358905982899424015430567335561803963054500658533571883075517717154968989660357172444664411602020974208108350209051118697326355552938623843224554163806420778171863759563814145560989563463547112229581907274971602001040407948484794706671767423997200347898723671338462734557750015074346555721856980818203429304898025154050142726656797932121843822238128927742201280666122625737768993412862661785837729085524929174717407951395386233147681780631299358299119875356207452049601839727867987978856593120326417599783929107875495693111376373510887956060242031816338740391357268500377429081284417168203860047515640510183040395104921263406969567245589451096963227335062500218172174756584023553021167175680967238699068042123322315287069137479615894045651295927286182939012622633242772841559955987793655852432648732201177475312086915301697653132613109300854419382375876121811873640952651388440257020077101862664376772276565584402868489155269047635553887400534534311112825166056746257590579210447369880186472420894736614394089614735227916617282344095503466097471200388666980591704483358212865746720247041213917936077450380149707821494701830870202387759506611012098881479290092178922309960826576104707278798709929022757761700494509930651139375446038763570388364775305086246308603144501208208140447683235025525305445494831036729379989236872267082672823829720937578058407279309575472555397877911026002030802142440461943815187274778341505307826778858775172119550530100512029620593902750770500380056956214715791099624457723548617485484835391089113781788684840272571245195652185541597563458270894573886610751610950142389000100123703632680237866149457103795000262163430783051154629628063227573707444416320785746810246064846010181395327129346178653276310349980287951291467042210258749510148584508615007737332126318896274781647027708632465288654272066999914549945997528364199190522707119517066912000986683111017081400148792310900205403710266316978002930712981944053099557607268378244480609972841174242370411962435126267545763339294240704824590443970307395779647890562165861128689047008366933307505709869337614429177813028878326433585261950077607423812418351140813369304125534564875375072435350218028054069955287833744890609765448117362289226904109650763453955014682755701594933164552683480262490193479246816168396245303241726578579211029573489420337664914778040008597926026654511103094394640276007704167060565989033243159272113341653111844581393127017657876097249344198708452637339291161507692708456300586207146586021919840278482462373933773909772377951553364814176515084635572954626680743214639041986983067970528397001069112675110200999490417506798333307372676227604979607499915734492395357774909297955922462575937261284194030669152528064705150553116069868805422962994818707013218936158729607164187466220327731435807527756299285276772179977238398923349814353091798120106659103935033483836119349787893387395622687309019917085629630221342241471757670560445278407523390285194181412378362317154007235704237200722991215433723716789892543308112895225943587575738099566183754050034064092188514179502417892084092030683396355716672492716842971333476035202329349653322367606445694903871687503211497701457125012806390101575371372307254081083386983844998567041320493285017579732136758889220907106777370656199146543078194372249282021313929510523669817881631523384471944825703444612629022381434019278747899496551339593476764171201017456348066537423262151395333151091617304577271962264727284874731773578997815391352736897176021827023350033866054000635740030162673326077452123672954589042788598307395611750575204058266101415153575342086310956567551954564599653387504196638134229765704865137704232299828570933596702556227546680991823268981353727423974913048222420977042904521930173783298209470510341835293948844070057211920294417996578422622051574730560866178935568767437453137950975386248773871840258488896521143759643692202971138370360847218984802735779502873154272808225452202925904845666411043428962947013436362920726698210995198035052919716266837618387043071597983725933961851432882277894592183823796703945049592978784086524336596395284932688919383384392597577712682045773610639992594293169553967200189775987476498701043204067419344504924368828025998870479707035250644562464904320889428202528531814879031710870224855943236490213610815612002788119298149290803977477108432744932147211269276037801329992070376978126246358145664332333920698711771897186819338852429446179152115382992775335731820448570908592228704805560366168822883139203357231717197856779500992402354755559564079418766772199518812939532142696927019209839691129750484755209389403478475641457487747193105844756827925648320012198931583954641327106448171255842678180918102492361508770922834457274085491292888434882033322711647051810613214768208936873727113280870739729782726714562348312917540396787715542014973995667622342006841656814101966078900285822661624112296755607814982235359764737100475130470302626457048305456317208657791047316249913426938689209090880288340703120126626313191675317253650975033633836714605914483571850575847629068021437147881423675285699622619705306413754096767602976715794643977459050944102345249881240489308910197423313804869635572521140438624234178442159691330286986410905745960888759010226194385523063530536118836379226801717489363694758462220509679563678356205808268251683392275389408663383493747163316487978607436592314754322644104059701706223742921494103272232231243543761557175018111567554309070523108629054909222386497183160996425243777328337501507513207296045609518975556953896004218008144733864579112358966518644024749401050652695265122034673716336787040530190214122741118311366652682404474866267033914937747914707839399265035505440665644787290716219890441331637393673050897276655056547499626905533782919628799174436683529049970297688981139483625056035401431488940504055717505130428217892185338454988834643679966227070256197294890987935089753143197552522770416210318775726707330444690745134766559333106183166931159096554964402741714011508296932537049420722040640448721649777429641682583417816874529033317038078584925313045064898333600717590768456734145278874242947790479042747732682198760365263558174446950830963012185643843141221946547325587430977855515673145303013758883149097170823447053512334821085500811076794239975140505451008353909538545743827595726502289091375153033995794335225776913003808848313699166616180152337406834705913257451587488176495616015609309186666997977098810287457477719740259459327021227310235674563439882657193192340882659657331097936579315795367670651051787545255136132842916543172741506809495669541021541173704574863454421906367214700237797377483274976083802605807607246071680439314821653169663710534787686869431112580407790337089165644698329584697636644698533737153518496261118476803741377513067541172185889320944377195402654580177237445169475777324547586501051619466619047296205940767916734111618706954039744784857962735573537515577450161486226464700408828235875819689630034686899813840227120154116935756845464142255458736911321887158088392447275329797432321339592384722924333578887077176876588157042978397280856180124639822654827212447854491446821141207919467301024359863540728013945375315449406950461422361930842769036420972823652346101918786364388161169164375868881065911374564256719987207597380496295633914431324253337837278065335394087229940482113242895553859318169615052102797101741610427882151726954690681586793441041483978807676585803139440831618106962411746962238848457912607368796978977087006161964111918179972048471768902383599550924876635492300045832037878266335176901752452400856882309861068632142362389751826870484506681718711960967712360451701843635397622954631215018948473326753120529948179593931246318993060344715735669535505628168465829851237272345923603640924804475564135132453304096513723446421044621913287853234171873028147391530071654203044563270750876209242539164765423263909119320636794215684537177629906930856836437164303110685664434304199268666654998806262054893218966576687137309120507498500375952007014197193138579935261799638042360941591111325286540162074994761696190003115006660676132420191290676637582093355502061314700231827531773190149539970653923375810512911207647692993347278131120284022919890146446106509619358362998612150348547223051828435805190701770996868592428011061405260434283738623215310897772484178474630706341284686915631003507667651207737616179529378688533937312277892362909519240070512829594477523358401773923364836242792857890337753268296470153932050216549608760263089428961265155087341521307409966636815678787985329584648547729662671312722963728906646508177556317491734644502244878607778976163217217674128643909580239086119656319775880362159989423904455898500859424729191310802498089058264720711097569693735135978217086416475711189039102225391244478870290056482169485042762678902830697438326855263492120978591980348608754614920979269926651073025358465605114159084730088224996132846041716718163186770324571414813459617043837234361309638632295487023099647333786482500291371356934934805553826325710098916126294859762137726461133922082929532104449445686945630079651647794336053192337833667058228813494929853549230549412097531186432886191763927521127996465173347540314184124083499622986788740968498811170138206571823446473713133637697132874443149802461020645274399659604916905268609425686117499913346446744788716205056590738930388201649724051200853919263434324226691683840675911968715999053225040383853783205459110334211612783596186585048641629862448435762056007381245859483674690357922280274623230496940761793335061926374063553316297521261820108490578490291904039948542127115530235699262235733806949158959069159011656274827996557340822282544518330214986748748956538417776804895279880915105292315122681356191900461993994512269285562414341140473417975394907987562547864446514098701210715840337498647413410186931045433681748920535481704335229054224003197358851857258071899196099779352764641596447277516644360968815409087487090855768553190090132873070970008381630642653581161871109407011121900803367967231221002109933511116950294222343767952688370801613885803281812367580906004887535306200721219283721913067117158509392893107331824491415043439526040597726712327769484601548942700046389219714435981502103657633222091623873672308759375727484153632698385830545597934260760059860377093197984238839514255297627596362865178557896474072591177582249197879930729758504552620212618625752375360659820124593674440719854699028330227489921175554609048703080793009506077086797198196546720684627454975502328160426944399385569876225704083941371279446352505464387913209625868147581630961719810409489517857110450736429035244299856980084197593394668471494645209096027021986022499856632992794358194695172344135446733572974480949724653937596965193131898257679549607372088323788753500617700645490221317358863072209649282682187544785729560900435691282859236404263461583076535162054697750029634179209296137234817278374176737130825341239864053715761976017188275563641979854390030395879732510395434278848576183158147883862473852481117107344117704076040582394947935908189106768709150563465660446876346297195810008715770426532911942931653531965328355004414300119675782232652634899335990103289452936325569031542691369212244356278832380225091077708671580350632642313125274419112446942236973546509237207674323961666751673574461628743197183045180135927137677558526707597094537291682194741879010241824741622209997613394235323463047226151313407479572768236505368493873637271643434912637739295215890432025718382098444931369767738813750631436087130751820110007093529836518031812799653269374671884030005797690711019747670466034525311129012283078305464472651637279232602217072201533741087039573707606168152411745536390375351422675381249188735694276929195815446724920170335426714214649735111658268635985700585725239869692555358890634154278194899518076183357094587303251296776712911000887102094966864903029037558036784886273535318723715354288040741398395574815596095853321348886332541618808482567929767000478232676144954556824566432127363942664796456996953680651866588087658729770831054883103834862942174593961993016553071549798189584377253830667199703278447240126159113433315630139606849872238623047349709705999008352025925473009071848725906398967765009293847901749029775917809484709850771270638875604425310199753870537709423838673849326613251357993814302830548997407377736445903823086256395838687647413173103600956499795420597499936986834372362981878782808678736568634269720795366596798957701506871918620576870668003804040141952588989316396891216052259458385180970319098759069519216014421585186028712006084399742057969326212931573493193346420789784250234788742520081997545003756547975636199307987274653331907874166681926117575559249705758931783577344187682205083583481929917945378106254272905090990416497793687027114976739613528038350287297844441056248523032733155813659343507154581634617244380306544366589103011414532580362628125494907236160292336723237162037553661665018500458089976145795040168342633038822089761332693629502775757896517503515822871799133511628287022419952128757721071024552085904384746538797483342293209427798247456739239208920204305798086028618101693874070050591666162173184372880542340597454466737860280012037583135729421344578403187989758913673451357031947773131047632373782272974921570312646033351746669357199190203059949896002007675969532132797754479417585654752467740112387156369772446885330649525745785858675692543396788783536365912689955801580848453189567780827310475071204779010996376551817059806562487902668636007783838776308641166417026593689814106509813450385601858115363490304123062729783135776870009679180121070294456012886130708108786577295986089248012039493032056685268714761834554513037457019934991014273103554761229744489263740493249561319999671094840656879737433925020138380740817312657812526534201308107210979241933774369967033252357612509423343520907893026440100507264499697093504931678360073135027506596511869497635883476610893251972286236139348546365957027189361934074483275015569271435127779570250080835977364300620536226873769394195195453383155096633200805661965651256501421499516696392240779803581739255101760143346338607681015777993084945011967103675080164967103005170630704531135141812296167883871022679045648023260768208161044460541945043961016443857092990100869588954376405004195405538326261979520325754619486026168422122896512281554997818413790101352318226278258958764540392348858993995095775208228897966427155972895557314212476791403978905863367087293070051379863700836914441405312711932130831936196728830926942018851135179187697647992768658226453707280192754388890205092312600327875476858254713521931274067381570287251107562186288969125300734092713316919676326602415282241370621868197004415724311415574133701816830355978690254246514952210608717064485148385148914337975117937357461290037509987209571406822969757328216253148885286816946785687700550173148247326146515384267842464854083688753057790919227681991820714704203181628917505195965940101308422913301327585431252195810968334024187822665179124007781796381763612798828387867469120645945837406812012088948733404734133985286688169765564584087523992574397601637481296319263592996949236319423926745329659174563349014426269193379080006764437207331454577448918975402762031162526783514253038389724917462952208743724237330016579123710061745914572423677389806974201345054353356247102061702076520169193124896936006032463607847369591123667707512130315741572762892109358103785348672656419836905202904617354595285762459129849252861039465266830566630583813365429358355467423875770693747167044685447464893846192582988907654271318448896991438429199536716097207836480905381578417380437737750445500495945461033415352088975559309646282328925706274510912123821594658263617336746814343039041862028778475325527189548594539124871448115161437254949190542802729224694014247615278998491849427144044995184476755295377159370690476782830355097084228228264772776412380978030309641097082667998637637552376873491171998421167312486036493539367754153826201778643878164983607972507749784646373986812543240505785546798820998153308698244485503492578095222247201278399121236470282924728535677306389734567604821373984169041628903347090499405996301977407658911979258238178194096576482808992826123759909785716760806495658316171001937434189858025783265786669514256460980083498586400704947284441829050052800556820160635498564332360949110523033875307943099416308562244593919272112966613549055541582043284290594554483701916312299064969890082976738978516450149220157136595262586093144050550415371931859376928085577684184320843434975897954951160941185404997771701596237283869996233364276082754587878941013103017129164632571472915150870554578574682399709163650711062062603257304913326991042608250535520364100552594810153862850171600841113675102863130573605123655503196913588261250928332119181639809755169716475867193180673841852954727462151296868291966053116279518341907599059021253534636145974864327254099749375163533045906706762937080802065867902279984190078678254733144360690522219969968925549516429581945145240592362538179177824007649948779284590673971828261643066558999806795778373180532343015517253302869497360770489452063595159142506444304367926566205786687357214919708020288903841712678709707581804429875526130297508067915128216507731784597416596473113517256598961413662708161060935087830238448506965120994149719098578429888389082078573128303671478649914862035872749216028826873772147643904177045170289067616629393485666313846199987957857837573605511028877829421345032696303599462913975354548154777231073539899705751859960445458449429716346452502896804952440170294296909713385473029518136559721694641563333841394909431004844436732490651622992208679202054815543518626475958561205484131858345043824558914150194304671887375729274945632391603677280585041032037061042618303167684014522537811385892424709375871931695263854655912827622144070770803449726716132272910019140416399994214567798742969812604837978484821979123135394627908230362744907548164975919740141327835393649428350722251727108524818896205123281663054563581192662448576496040163678793736900251522547266910542902236015702909894410721729140583355133963513797972538299767472385237819388546165644416241159711040557929407825560295335104601778882656540386627656396481945455966130741445335310057274809910152940218901705330823106678859459271381408039352970501294800070177133092669583589260999186463502275664689723495549156844845604038681885671367322914999099979352305856320675953740164684058344106547198437831158783048844805570757972875227315015104089188941984469111909948718960524686118024287764968378427482966672031548965595615090066563021438060666786621587364223322903340919341712022450840010095146228286420524416406018612688552568498857189931970451349112131713987117719428394447061481474060680353543786571380340858529350260615978021621175675759405421100884560173094490412462943552285516728803220733311764345556126464390281248536349055430781023849378718797087100926707570214955869462438474825899330465291105384238990724979418953847692234183410952267761081292157721648456278233685864127115772798209193898874328581860030807040842963944089570976233294387166797093150978269150077347531929450258281563859801764026984339466820337843821135050437765053240119934292549877302351766181483619840913676482347249072460888648463446512385535571571097671766526573800788076010604779788802889839730503055985179269260219789620182276241320448979904500475154493769449302647133222886053658722187822943526240726214992017884899513956029161387896944892363913097116866047328402972575392847716314830906850111455819468002265691315048494487629738598579583051094107859684925579618346987550062798073658038217188202704411074185272217939322973171687456942681192333154421839516977480416687311524821858241712637988193439301082981858280632790985491358246149848798788144926433103236568944881290698982781717864570533990467723431701467888022038700990696050785198938589196084705568007243221063644348433016241076566464434179602447625084791995021213691775048954239083971504166844903276740432994944970671012495121405288049216105714673018448012995490451407012076865577095112889616633508365247264065779569709054442274886995698287965038233936494285549266924630011963394215229503555040516496532257807561706609807791713098915496760109711649585015768759631859186856642834464692209950855244428840792202457043753267561422274090746206242482488332316657311432075376600192249259434873211572728759104941063459158361554716691529723575750959991903950858128113225981937011587778356438974863229420875661622283613338472610032834410338095026061838653793572535297909283863996477956916694734308117677730580101525638932869246988707632873112382679059064141968733912616920202546972711302127589159212007676021065869517036622937484166639517893339482872970966742972564179234291098039741923405813923250150253392203591093606895610378654148027047810247558118877008090937707677631851331409357308461760022498660072802958534082271349231099066894514470790190049069024317476951717415743961534259869503129431410928516441830038684579775921759593629467202273368302886394171212394789013643304436899523861889612416372045554699487320245473749184904684195080938086346681396883312520041821540258522419448882225297380780993941312703957983797216967667709512095379752212439247112400955421345150831781230060381734190897250971757044894969893796849601067093972562854991715800763550232702384028231610414692578117791147773927073318875103689075875364167496940244585789544411923341808748641349545616712660230106394668823940229088426757826297651179545053579865438175465279614920360841540193683651841895663482407136827487805697528629477490500899185436548568603804489463451223353613734798208457255615660067823232295990737269323404973560919799014358194194645468512340638351284136809479343581640571814724492962124321466201996380202907086268329806060845513253078315736048839340414077237748136831583078988505634209683730418259211755429743806162484432765522716190005932366258552732447778409415416771226249423187399138986627261064744060760448511931194488776225910610425278525063855523335946846396827134539877720017540302175760436618812678251355999109239594130110957641769651589748580869396358440715878280326370630371520376115398406530106514083124467215592982939674217143648352587487390003109028978747591752640218977335262136197628607929212961619679964106312735953320818833701633753952301952774597339819075892572029774969008419404788631287642084654774016999925146414629391648316553304344681571220827774829599485818599125607870692080618299454850434391069625095149043188273144258789170866473788828397433566822935432660017312363597034440620534620170950521044791576443102358638997475950866484061437163719879411529531845863995076141529140675734982478676406896079440314726878765933278903935972359221946244905824090934149867183557712226896590106551224260115372159467159736395802476460458824256451567751605400669102822643583131261636512402582552153455691151283415339558940027468280463391395737607910349259042533997743610856931650002514446963205197624490620921940845927912035873965333019981120369577905874465991051212663700780565713697061430753027916389681364349511953029113100085057757824134905597829802492238485486942933938859306418255109690595435128937969350830020047230795203790394412789469184207929757209713215650003267363699977008789271117336816859487014179877560150292283057993381579829385745347574054455802697793734386664552230379450392798257424981081810276278447158844283129256270957243237932660827405806967188016917329731252199407319469774388828348629199159256691076888296595359934662787829457178123420298114434603091906913491564418888862756023047453385658224407555060479327183548254630231590542790181909313360234965930601133147258062845533205183802048960885464461485632523768961656055948400091089598111837955830570645842367084582295361960330537919040163014616656048921170117848848500909196378885695411520802783054700762086127432777511050307021150809703030132466150140391519243685582383102633026714464817296339557014901864532369845793203227385435372011661398267987605641185809432679391302689706174363201495326813596677926277854988263215872710575107193660111524590477441878646651484130645739482693052653910758287000398556068056445159565928543917947297166954842407690324423713245626530324925465292347952462146906125316677487895174272000660142895613213030454641561159573511689524862612670883226547847302817162801855749284151534479467167529035497268481182742194788169065948732694119932979388530020904198416986373046575503326069858837212281531861285545881697670167483879783506874612524675263255230241283892502397560103621335066513192336766732268537431206082461685451105085889954637840950975768195236704892868185737191804847289831831173316906229012802715976046405561437373955471199057169062307961881322902868160677285943791454460555078598438684829352827158878729106914154149134549349303417620942656997310381786080409466482042183365567128923404773407265128791115682119124360469523072061782612961349364250933148113595338811850764383377861611099899588985287916842497542682196841954963415223000043339976701135642417004896250585452207234533755617241163176957931906196669061041649924850755754921059755863377614198513899589582729366864226921509709814735338653306863879157461367686386559977129040259469457469225785364244990156866228943463461368669695124434437044875789507111855835475795772412463784596545559607088023101015437100355742607861564769756202410615393893957676995669036172121330397832295496295601059015125696520373623721418695696910310842693576688683961019176643033072618340420866080143029101399868411093424547640211118711702114931402140328937049728080657442695183490903804659070332403532914611967654292038565407057554794873116313777111433057402005722466597384733235438050591561228668302292778393498114736237589108786320065303166359262403605978698419526328882502960584996471329161023662772153432001401156498209416966042544999137139013385166547629783413119313670448962318417982391814126766669848144714810122591852650267089318771015243277545563292914508873300876032901745134939620415760970468088836592440125426766294736984932460375106958884610669852423284779825930433548722269026060409034003493486649715952930023398872114639043643056806845838380794296134574152391516500213083008495144088585427268678900445781383347657314117283168852297040396982692787321151448624950676076425222791198803143047028409497202525908611521576856980865737023093413533262843402138937437770582246577606740478338432836916702212404144142663164939866137133762518164056444992449032308609744673526166165188246184285612555030537966688842695832744997543152405309204486062657919169901993693294050286792555166284922458861598858048930396293257640607562773122863416379346067510441955960574268694169099978126831503283163160832831979212714024365169244672731910442986753544199925267598571528687774989682539037801523778673408319276879216326432818159998988296543197983314961694424913186476681684080923167399674451322727019034818929938353474044437940899943642214164522784418587218329980115605495318723042658424553526459378714325151189465944089489857776823349739278152728874500535205385601512899996765024241079840290678523834361389017924562851037300743345433712532465785762854828054880551734564907180423846338316795522730053890053027176748217838533416936462101617767156733241040388173617961626798467709271276427667112917353914094807699084560096122354128836634529867323462675872747511909708093616929360262567800640840195724759722378495813783184131409934983962297936617037681016586215127422053952357847055464385633414848919276523985694511852530525799396493645047114309485619748752805042757359565626505455820818349922640027385729085930744284138703181810417643336676667597790005799646960073997229757139116485981666024896460352729286796462854512791603199727254678244614596174325388127859075219699015347159993868050507773271765244364755589394511891369519490673718871029959374572739155781041011789431255571302472414342548374870303374985631275129705818977880804981831987276939800987156000030584319259316728809671573264990843129599391598273382381755430943832374738246148473046885820184811080075063626426691010268183442204186882873107024659586056931766725533558342579090255868050554275455330861967768390324581044896165280366124346215789761328698674269054299189790355818874926560841919415985022469124482722856322476042749672078534775423287257228307439863947664091829942060955874755497269583516269745832720719736837308315299755913946786602921417290437164272903750906786779965510338050404099765133669716528074489429132003738748470497227646014039128217031199993335261671585773754231514936508904560955327287403321783272452700670828118058718275622525621688173045200002774567652604334818403390178883932180660169276539195716945624919712051224155498327388729915163748501240815797609881686059230310072745074436487130669720394717276961103404942638848638877762786554875842624361798884738867815309268575748887676726726580398813033109503015327361921457282398271057561221263969247887257697940959201314321344400609824623244776558373547296930864683593761423814379746105376838951938140890766483953871212885948939562798457300630785181478844197745732468624745430161674665897226458325574229338748232242891788787742783531715291818158515303604939996198717956016841064734589056656612673615820049290574454406136251519710312763540890592653882040774029344723935739629956850033677429802970443193664731019657406701928938116331895092759789169549344470677315148271890779541845753111010712297608902424554074452665087793611059112860930131304431032774182597262061605940800662102182602725169386652111218682443811160192157572277250026698311284285449379225579827948127378976527151519989369823940936491460669264081429672126159381023121789785773865150305905047527017806506931762536962120463362271067954359540160391425221400527988428945958084691716388043546314134930721332760627718626286088188922733482763401831058169125455377070762588359794143959040875083998295492310589861493115168442015288744315412172331906716732695250957980521928538253034952209917498192181976954310044803351255250885400721685748832204587713579966102408414423440192592850210138278957877066368086677243792914907347117456750510729272850279601334334919634403458314513914144428352917601398775007601115293349507458039109256830466753951342371728529415538722983828830376304853272834988745991829637700636351852809351036739137081654859284046567912070948010591342601940885956664377620536571857403089747596589615654591945779484788161783121383677350690423103660158906404820471281320587986625008325474100257627541564826435310907132202815217720645945407471265497639374786869773942736216282228424578509857120971096547629160947603767632892839010612552013587367642954499392898142046456901044825582036621420239390867332742066331262127348223665975800246249304345648051343044657076588731656016533018831111535024302614767160716837223537710167355426658718878427050450283269943543835595849002383378397629524853035537372927750322873043387037839691597341727860329443197691526641291144219785381882911851201303520485789580550474457738015806762946525963436319601059755905763770395271792482521990644650934854149737230645307259692956812918722473052803538493802585086372969789272090887687071818265504028611882205445460758449257209559629767391337810533094862673167091066944917854418927343560853606551886042043162395567074666383615795932533437331551244744587319424044009005365543680275061326789972491952309746698132863719480458345892434250865547125676445096443843465301310615095109976835492758766781879748223638979612061662615208493576966544977194086253052873931291045310895261081769489669824653351734535860785423465952420955272152241832031343988642837830980402274617848646566563889425600144645603419409944191804885615420539435853940481989106757448810595074640425559312289201887808109338519028149936627564960445320702224234348952772653378734543768169073779321912461043597453293523015099544089720971104298418565637272318447005326779959512826638768989279165012225238878425579369515826866394986850756868305961735574617932656372342306489932570220752563691262478403746501427412636793509523953453130999291032760045008941103253124953622989116741989255693143897513948042893198700035834892152036572953463791199419557528959388983602645858416480705497735069037331145355048774043805736234587638945379539140470074285835117289005581517414650671728827841603249193672030946380081163925518120979503645653573827665490620904502834885982930333024954007903074477863437498688358178694749180337555127762819307164788657415170055026790692968597536042056669750648900970339397502049779929485460798103284201930631023133844160984804642483063139394020247688926393846038021119386686966143233778110706956851654703757431858954533801047773453419571961247671462733029427208426983833361571451232949003649019561718785393767497372280619265690458058889753682534467237793302002696823329485605081014481838145406310889623624276225874558746426204029975885893372356633468867946756915855102105914563256161377068382411174319225438941593050947618425711868450213444268635174039644824811829052564257680689912513337074884875305696018696678739250878552057203037809068918165134013410945439026276343903088882537157367425094970144744146982922696461278363077334561229865833916195157056137229447805685791827791413760328783175754877072469973856401566044332847406649231330801011279549212304632821197658537441736056304159567710886232976532448501819274839825800202466159000486422586487048074267681304125122343537246304406725108578614386222682837853082862486400626385524504460714520970449596176290519723662395151168455722109791265671582798572507412120653688340417681953050952151114239442628347882626656039326710270278552015134966929034967083867058396621994881106782069716012111878635823056045164726786261561916952576668360130685812042177015526691125294792112954886923953735176081665202536158365541247962898955220032706309684860736216229935411865062930804199655798293132491059300378221579575079662126545140430829271028512006052169998707998447811492415267581451747237149509045577477784031151663387590045008671714082985792952084640083530286757638382575379259539278201407755030569227524930730375842933612760067897338590491025007161935822481245477705436091707280587956671773178488907372527772503803411177589707560991311158457269037659012825483827256061279246880761412800743998364893187161315466179801765869595034265803748182653245373061664334483729169179944584928044929420505094537177687246467422036210549116126469543281407671625921098008817058457614191818590115552816330957641964839907098978085706650873006164149848710723914736043274967923953953796024677405765599947220843733722100647154495439570595974674348387961836926995457939784612739942962882899987808561253213431623804412510713418421072208080573317998265894079948996973079793366341487593947743443263727493953655581481621260235914864845342168328025396708526714703969638817683821075244916652126540543424264435922275886130600719809550543184802717649395323344766738516678241249912016630146868282349881867639973700450903540384484699414457311165258114986262788359948833188144499062103225298516601619873623256906872654768649243688137264757441762355039069196673257164945496361154717353185768460437260805630543746939176926572088020313330140211272645018368639421189415087849522729247501763673835415386479361982762528000278145554325011333432666605854678027761707699770961169147525444341989300834866776617946473556136646999463137241370886313564821793120287235669286493984958257699344333503227127869448372814056880933507323672912207486473218164371845682283994930985629654527422274375779428621628952776649147647601794059133872708672030427663911549294997634774579237563689220078656385565349317760714255687226645296385242735291814208555539595330684608114002883913164429615582056368945810237587849794188378577109678835343907915059359826512694879204098117216780630406388922595797296697513267181994685797004383563276350728983206982621150364028816254118359975969380256270730594900125636487996721709242832751793045371579710584832370326262555125790184317432268866290450823734773711652150416791147416397175607942988967074785865143804702962455137058995540871255790803512970997962254143108279486041808145327914691697703868905459176850056256402971015877464807362806400615105121717328023323804637726640454533617272086576139549397453156745118538776447772963281004779387867364445868070917161540738210501179088131851075096107759084999361107987753119736476131988255008725638171447260976120509570267904206129037752615216912886150176546848498288364271810660351436081442725705151694998044769432899314534428944253806107119306469820737168133601025715203863520298533166016678987199168396189670653223060054242770483479306146644699259670410278743720573291651553495282478564828424350947113252207727913827076005864272559888614387942967807861210244690036410633559768560626483860866424635376348892368272393224951792105969174624025759412603982563931536656986413360513572777079200764963480210186826999113712156778025853919932696720082200213728749080773525250676649483740676847536007050061322740237751476183249578940579979634877687562698289918713047279451211469760571543182661392609898046739889600314262611557579328366706107584898101529853824714099227117299463699701181561282608614578232463010140742721826057644758035608054483328562658586944469022877846175868386762930846725573780077259632543991690030182227679689822819772170253915863991710308447328064401170715201371132520086315117004807128301693345352034154195532662426757336719667646832516329893946052739577467033189322005596170972839132290290541984325057287682488805301402056179548727934479839768122828329955948421471687482873519337433056819773521973738624956375047157986468479542443372691554813236790323186562385335869982759268453554251124893615818960286536750193131983527126975674791412828614398756736935404871217779593149761102957368225547558878717990000425197489030681544080351729933049125651155267116670891317577682469774861141862560077885272684433395397054462745591329049143070114802235955043065922886166186660542390413658642002371735203332587959061898520435302652468326146769980273167964119717559900131240023521409402815196521137611289242704680200305746743634472678216927797282178006746784664110561195301254510243785664416105784619557760010174182045769843187748565782943348215492059137765833187156910973194942456586683116645292415576609249486172316240945793950084626488723539900649498458733649708270651389127650946063557283233089492427580307958345008767408894618226442233515319809122354064463062408513486154750519608073720068702054991322160879731896079271950267676771882433945855923430292357608132810614688394155355202740301588270912083948530217047728870985096965777845343422306590933793920706585802119170666258802898501534169037765178460961615417724108951003101084242592318344253042952282015693881017320225066494688304711602952316210029460804025532335181420712587443000950665388301344928411009727178158571602208244620573010980854009557514895896147535280180773862195269730043873087839688556491820192613111822472082646987025135629939711864966949043012046529842779215480838857803519474439941748044776273725399102147787360392975853816400090524831007332778317420123696953425100960378737680978072418957620963516000681035814362077568985557922843864944633506249090803322724304425262223320933674726265165786619620722688341251127605808229603086267253644711349337283027508442132611226677565874251589371573487115354726909075664940440198192509616145681021320538384320006585117276402807528434921125577453018004465585526804400235029343491119841746648888362136071233048751093309961657379316720784127225996107062018445128274693989196131995358743233104768509606009127026975808038219004022992448553829003985417952180157173353417314206251517698156022914308850650112473848387178718923941427474337575698390071805318969388696107803762922366350417982536919926038589200289924794017055950758559922412278138131650022187554417352547008131439995947782622939777247804264634355009054232023737645684667449551870930968488386113328893411887749402793668965292467515884390866068833543608867655679304892299715015819263229436487239228228435312007274670678628464200953036209722719592361253856386163070835694905605050668770796154561113426167392267820912250701574044270010788586260081433888601376653490334023070730441131515539069660453425707635013751173831082534022338375921579655221157921581838874349736673772603194214044018805648940438589243914135850677885969732357592174479192194273026001886863858877649458644035946518006335385249024462973681668786445556280705033385872155986266981028797675319567255092174696109547896021148979370258103879635034899387697274923893391587051162817736031567131180523525109522240677812812405248596796333886220344258797878560303695406249211918037678170393295879346531105682657425648530507950362896814231538134982635644193252727587225949886174900143499948849012527118196317059828607466913334263353597670346008222845128718490364159685605491117167258561760640577772518452999784701414770579465721988643573447836271257353228543437516772505699997344876427531067857080361862248346447293393276601040435216341045740599871601018468323961797388267547259435744537607842553966260843319469809790772802099469475277394715921608769918250995278223169474996428182214712907986471506749601249565004542008980182562656788341376657117155441084127412310148685458510794980729884351738524870469586625593879715748483276598862474320515908974379228547217376105172008747630852428897026913169745266370782299511025096594803201507142510865643951039411337892662896911827299904927232619595993451866084843466593931456725709733137433365259716013990190154815766812401062961287318922401642602985748748987884957169805914144610727573710594093403155117505767945086935604840734088876746472712023601571313931734214173752499062001814811384561530868225466441056458965213330382776974586517219673318250955877474723869713180361421447487204103113847028692760146635627953966193274561196553494964909621849641334481744718658686563484334990759717801838913633460626096448991125579951451657157774610257725862828798525308938967651735667137578400087915970223409841943009484081461058816213839018854375715506119989971887736123161660072747965257197205528728710653844096575169277287240928117673733369936979380131822387175454696001717277960859855441569402894360194544184376403026618459508285235635163788109933302862795123637120725273106815476475881136305722211732455678518294362258076616332362513551301131447404965232697800716326166273255471453137142262640898696898587487752690756178856327973505597268245751566472809144419963548188371302256590721529362608125484766074634362484795616728258827637463028326420154441184298452945276857767185353407340502975712253416720354662266420495573426495379918171047581693015165333567747342975146903265185716768663876310578577840275811243290772705291317012150219014402849307629513795602504416666354566301527839152027213065772343086094541820486426933778460215715937173751731836490264226562342154257064617257279798939012061358733880293044875709648286736118287565049313756668125023788246484842956244832260046626019092644590725647697221021400052955308688796676290702571200671750974799524661382415219096252945767210852718113833290785494474989724108343026276016919462441016801602492641889731445093775030910981341420216091549562630447972947655315872767366020634520446110490842345513744192846917926083101601999105977722139452624047330321529935651921054972469039716491979655981717336985688220408387170675036237014630463093505932016128914402109137013450160798432222512408437717211347852925844089131015041976341969120272882465929203512767546852655713079673851109539008101389864754218775414000063393336365971688168380994688108988926469915816534389302659428313972387881886996827701713789502647973523558450784862645930929697614927406658648751363689987719594937461239567584090319534114844865716829711827997490403006082857980939144939788394656166977841916657242759048254602052173779858059637397832675292557712224908721762312621629427318471652790988011903499168766739411248770554428943949581364707601936336134521088166097757532584625077611379700859945499143701413004072568884225722801626726433932015435874857852312449531520718720221618303823139991246815451761430539537069626583894882745466584108976346409929302088178957598168232836742532928961140249468427471288452800732624896391719261267667928647855311114613628526648617913296239611333766940020588217405563302213828634468999500494792389143380774035353298434708306660971480377994844635119650870660049395799809120920277920673615375795755127051720664871028824566266322284930116096399833398594780967006382046589141822232153780459104251995964411146445866519267339968658059750800478021886634066923366123991849131899793064641625904702101484528122234952189216289654363382899059195449489530026002385713750483115747051635180942980789887696094187667628372233570420933307725067796197051856516939273015151893208135578850947650527698403848870642342537643342279387081483446220185979441324301560389869449279612387074389008991037781560333897410379519893400674600910337949015899531002048348375304458595993901062759213365955568025622109999014109966170191759689970765496296307241526259276857049866808390964062447948701756526289231239670481534038420572235738485433979859012261515906484879308182404885963529996941381868556965737107967903503731843917322870206855154539535602078631389120419725045528051225492364132084375978199808264005666601236678545684871371256728434073062990998954949143208710822604840181931875785577524046016558423990894879833047682875325829142333585658351100792866092613790347819101847409904085266367542373696028842387249381751239994438913800134823353598638931635652259881240950365620340391979711379945830754199141874822289573676207365111971757063364360197836588590303639496600089291555880206088468282946812765219619783523215239427847542676912708717800260087759001876049975647286103928361539603514394645252565406154161624286716682080325261122027231392288328521083159528059115688605942240057741568792287625046991328706155972328955565473605688609570508538247021504953372195491906656735560507373465824920947563443617450051447301324630458198433834766005549903392594412285798810867837524134014739715626598228897877952818936598779973161225745984749655218772858796401140953123612971895048093113149432116167520297628762654214633728326101981524393198585056063832010482797715325042957201404132142054139782411081119045798886416680630724831043768094774911545231913585641944497889243652594059567382856972282120990936209818600373461711640116772186791756560383801924689026800542323829591426574890895220746000371025513593185040467690579741538053560133119356368694790369723622174214019230562974608206231889502425601546785931015807612463996502034848557828620465277660368603783201865592554266624167132687415033144026880094630008034301902111817015196943253713572367785406607890707440773908457393980921167392012748622494489283587049488422059919084378737904597992759856141597086804739487936024340516620264275323982063994713008220576867191682702478033292748915581753339054528776529699897811805702568782084249016669846223222997750849451416027209090985889333599118012477904813444941536370814472136219063472790227796256978325350085066932175880917484222789411225120683302323312428429212648802693286063053810578941432098381582209262432422086506881361722642680109501278157136911446875234040736939823765384530430673997668043840839568262178753491940293421988656092332859135274524214887358236998513278543952446207957109653763417744518348143064559441833290415821250117301058305102895450300262007563436166871460246951998122605641660016624271294866855460285988974811734233443632802241802603550211415087723079359554596444927105053742009798704002472614091032173398810603677240843306143400770496365011534214802098303856403559588329918128287698697364544885066290697633349140586020408197698706487257456164588512032165316478092430852936512779933570198138157282292690135989234895365702824506615458977885793845630416739338045050007670142385019419765852704791825291494175656496509663603616925665979952191800369410213877060976269941196495614393501877144231607344477937636526877466269881944390565757066599302669469820741149225677117623938124079633823885854116103677550852980227893862296861269827778326113396860423937135908857235623042314836863590910982766753546474431633705379246677321487665531323580585872471743242482515102443686300000325369412732663266404916988710760143977576143165565013595674878046250519080228425387143113133112091073813885021857049125248923045039406090426928472909897943665837961538471287600768981459449315802230822997455398567935240421867380249703026036297900154937024469088873182217135375892483296573751820010622903598953930763804187679345256375590957351925994473076069389444773306308781331514250034420340074146939655159587642398804185599222428512714605725183397319023204029991332705768968809719338635550066520270990496328147801500404834190631727060119513635972843945774387023671827928634942651528514775931007512723005978101673784023511924027406449789321109382543047396719103729508856300028288527243017194750185801988826294792958858122121229570358217713638491643980139805069211617657029089821705853846183654260424702407177543001852054353064994518263259296618198746649737220522714971015345477403438389181474759485189098722528976348135413637753407603889342966969754482091438680314098999756537337188585129267874121318490313603969905807184727378869609308692227789339833980204908850536237109991658024978216063022745701994901372945737113431641792339542807919610280653439730573316819102603901607409811821929247642684393979921102047699928197583457165679683893703185111657011274610681495148748013410010780484880615640384659843992886541812094623229884992740944315881272526700819021156667866107082692355753312762977859414341968073757977501544875782217542475502571318189069295682406242910522578498233456610361464556857228240259834535331994327184341412797466212256228356368325134215027238189660679167394297995200703400779985826605888264748249019624755122186469849515607946268661062427868694511285987191309438705241331310278296797069393943547916395554988196438612558350657274035708375755884994252870270418210675808970770602501113077420230787879152095635876471959483974711644080688786985028643814294369417498509417388092716822792399094247358092706643863888192232333207443554711081876694895393963113007775417174773852234452797803641277804975060754174389658834105556646666027556574352328369481685211640947276811365294219659211421796264843233774221131069703805891416722865680774205939953678592047133634024060344502536620149936907499454912368388243620094878743585302950912532346333166046636426385026089348705608455384474097843644012133335731859111738303671686563268966184412614083692257838021754670493628376295698804416331022774924602256414434987336610713547241108844767941491608075194969020605125590104526186161741309215988929217306098099666813342727469154975973142676988799012195792223965493918564404246504410243038166515994899236662275387461514276149965457284041543386156816341991256496409351613675490303242780225985155115599472012073423196403442459394350312313493471983073950257782991526546523314416295436371109780898807789371103756507035137541450134420501195656989708735386630552728697881595654150457108988839584558975113169185978164609305736510660645542158307321533311254687028158144252872827125399391641651333832753988453653774320836373725002955857984012605122991524667173758461531940281264641843214482523477493577863289763521239731442928890808626442611500397711329354573092379957987961326585444516146030395423915479261908845740975751260418738041985195781476027300407098090960341697898652330350635615287318909554494168573403332640820730841120297252254223820963106752638043414970693583018928990324213033824019210250358907630423048400540677240939695078285533864541053361930725340159855904316770944431151516241080628816805244685651653129547005461726798271900242628346692240576320251534981171981197969406992648249219323137460773026305792877625004312130339912805871648058875154660392375217627683840967871492703364765228030527078034108160729046982483184515820092954929574078718721100746310277808988990754339432757417606738574558098715040647905387550649051734518787748376395422349347194671779446567795755576050522047955608651625657315796616732939296333344208403266803271950824138973517938930809766969853393262544872582935198081310104171056423779739467773323805801566868053895064010551817117524038146391996515440398044836002376974583735627411520607523969686327956858398081833855019485886708534642134711607782352358515267183465564922442244034344566276963349428595163906344282579418787444079567852917699868400095343201329771738217992811039103747897695077050980701697736908004234897258746273346505393025825981463149545378525922663326446784182704383149908923304391235631967322400992469850045572574244028891769387949724337101151319177070255162639582788917213469059961935100243595133368746520336355991639045849615570264090033393093090518165973238772589143802269685003407736619196940134445063685115375946466819452131619992248993950400875756295485677174332168346053066048285625378804209938274519115849008637084591042844910075993187180408239891459123962212923553736572723198460847186327448217637049897317877168284776781993578500405848209358875898361789868955198644105207924845386693983674075898995095268148092766881990963719289965704956573733754337125377029971735230475139257718084124259368310550796085208119151807423208109674615582347747220833792306185548003997432536183531709811754269099133830433677043046252887324713491325855125044784278854554524839104271953664409746697325841955952348767735906515904171371453763453700698249129254066326124892280400276868944797099917588759187871794086664553074184548417929747950024940762597590280025831737043146770953713476236959571783436401375422570539338550619384589246347009511950798881691277568810833322252537273416831293853062510699947542066329709301451102694397413469312967490038705866145722193362911484682551595643332047577408925946614684066402075179529689490979221972272126820618182281688945748583400197628327315778132038031976252357563726941753859780237640712405452915160341933319082996706201511427705592146271005712284973107186571662392919277301002289429075219710489037956199238342602208801903259657663859791137780597589051747682718563877120777746489062311744412276833590457840243395228081520968272150751006713867222081509215022443281599771802223909138436068235664867626782524913802376069626264402751784386800116558081949334263019508827704410089623587950847998793376657010221014720381332957937546415445732896422348060871254871945282721860992137966377070396155575924815925666494407019738251768222282823507377616565606142637361711936211476898359345710269742120541958178267732535447901603960151191589622115218396514868389483599588647062583196414682414289105604375754231315600550341280718076465210722988731859834791831596722208589257801630293247181928807813666995560441491865910795475280629306312258287726109154156113918808224684860024871797067953499912199459362224460172292112976387246754327582393750498024346879158460335304087618313679024925589428725435937783227981902329351182996487197226962797893127300294832322758591483572725870656380437941437161275332350503884438344098472728855087172314187057705265250057158489517185162174510877107679668669290809515400812124294032161129794908815077798536663130345202093654569689581834286582118224669583145577207822880849309206949447315541960291310851479723981749049421250300935525118473020922474419823861313779649130104491996076198555722272918582966348860401693439294388135661475008408197266002398884921084375361195110832675253689355591277193865192124295287308191720957825884180963438061095496585633188520034036528967302414531089363191242690771541875850984393624206720085234822833207377772748079000316887789426515099453888431921240113013772367830647454676062303602850449212547240293010781854375539343171922481267847410593425830487743314389881368206094187938870523395825602359584972923178046929308483851203772701852934675769568046129017302390005239088880017459131830498872202330809372522479281551404102482727456178350858804504059262248382794102127096248259271435663615485907250358512034079763853336696134952633337254169313687508385829800939528713497885016939130858764534169062887232873948802926209298863612581415253580912613505468819414685199567727321459491222604196499080595099006957184573761512864063993654967736241759520784720818332627663455720450955904743061950372026402177817480139539139485467719300331436074306671790542320084781020112557437308612668768199892906438425016959191867896513507792292680403117258068668791508225539563913758435830680237192402497561061137035836556571567942959382397210849885911424663249538820635774896605987800875531610415376330202213882760422405651861342769915452356396908942208615694458508760886987142860906405938968246111146050351545770263407788642464591645233320593495044407693039093139104968429020719996650310681012126015759193479091843737112377652314968609957104555666534736044547963875127868482926781466696223842826190162754590786795129850819529826234853147352854789987259961476063485275613524704615585918133237288455094143707930661303010315206192743379973745055388957623322883642441234907266241331302096279932706750523288742168322958268392824683695069781649633948788292658220749718496086025812160451813695843569319295879826965392082665924545378871350600485931941108719093688256807170729341076803436889737025470096023350769078073934574749816312582255041698504338132679528998697400593647782718924045165758092635383665555568721401150777603660201826273464447065826832737212389611659149197256856892069852204931378900850963470598016947117662950308249664087600154994781048356098206576418078096361104741425839650728090786362323024539115866076563039353731915267723167372689998696907441636623130962604700968035361883046342385004000424141971027968217278281597116932279477755739222863691236673191010365093042721457118447204741960964041696788365532385198079504574319735815402432206909804725050547301010181916448336272090693694302259758095174741977902675707138231706125497143059509201849824766171616211607838111056090067315801181925884247721306186024340316392773961125042271821168633790976173124386852289472626524291844093300363543040770513664584906527183214425298896788355123501719872587740642998072116368499569805765226005317655040746297128792986140918132264127697016939156427449151241429783660191023533204406224153652572102956363398032793564685284001679055555682350655486883260780380960079205978095651192145512980466133431310069828350699923509559012642502532945187397213788454511029152647044112059970064426608909469137577586541851198870949694511775318510337262024181787386901914512934201233500673567948187966942795738912102538285790093386804574252023975944833987449564328334948355857736649865050683651616084592951287497085061190185867030626872665324828473587494914486015489368524713401040868190098916981819503105068040389459848864356730628693456984797798379068650061926237435995768538300662497046111973430785184958422606935939314420214960117069401328429686164129595623094927120830785691335441190319340755732548130815179313627873221072924609679792394203860824790263674915072134801746492507622374117353718458951072100225964252923982225931105653774490237962236695227190849367286914089248394138913593738985025574658980973641015136074149469376323978315569696691259175033919706384204881929112321538807193087237076986919282867064643846255921372059597199065766636748222210325197975659018077799098390454045806533848941592448079157045199906538181351028214236466984096058211725482918246643726047533117855348793538568960060574136908953448289212094051001470406686413441301641027868402857709420740543018611366564983423161813876235548160929592922873603062597425318065056301967830671324112616352447770994019696343711260695790551308595219777456757423732484499888355397768018244978651455317838457063127122537245982613275344684493246396763286524203675340303989888825237502542096371862640638381139722049180116649611479516858630479564701726045752740256194683750142450616348189781570874976216894865320774848968389701687471010336621264977850130177102037724437274941734869784544611305457561763633580795030199173527677575899216399233946494811889783761676550955230792388157044139924356608572924296440473507373220945894953187912402556972316684768517512443233283890393417532994224620878531398659584919981395458805834632193486960994247765627698165440760696279175487936702593988077336843587055632598553392373652226337363249413049591213314711891000622334845117862371957661393352973593210443284004793088695576674663373065639016720955585886225365132020134397274037461964520409286643613828634085982050899490148902951861187435550242081639592629019791837200001197591674037140806494474599452291785872824308411997645651681759754798462537316925678165642668110017778225244779788203043605128699343984350208342135636805305307514078422964103176904100135503594358405312496168473794105858389166378566826968495424935733611203969082583783875151119802713404775451104050803512458878940405570552390479869375948343333312187729719254389444409091240854129984971902608759944277425681742307962922297550283647487846588831041660469155989097650938773201819536320775373596964879279282722609173949117945683118832644111022484177930476525337126281544526100988882405078825645443583636810447374865850070645874196170042648023059842076026471604962728243189224224080980710794946589053680672918683263034208275837017726310662721883910055503241916313188070942424544493301263766765525372749191416800461024266158011536297929464046871629595356061560202805512606396061495026056283894112084793333864945686404222329033540393752610291575034280980443950179803847007034395646253653865139337055220666984523695997583072731931614054450681150802863480934074639874234074674941656733584116674588814949402966435091713170430914792446898899194636829204411627203424093650718322533099871782938625508190584258381482097338760831624719243188858015082809699512632708171401010840098777695035555723979495894687768267198128199134864279398558265505043347933652086923296760591753965118160922857386242123790464285918617673930356041446958470363616067527134071153493652233557728367859374120465190474425149533716116481041339598886776793711372413636241531278367693433016260517687906148884100338340372325852229374521323918539723425814846016023401410860184891916751114566826524411729204485809973329447768904395870509452604366616073264095799503085911850285863900515587720113993852441516529412233721733055926786764334297730439279335202081865208120426832172098083692586185592656575089074905717035269388671287272700507323370652561434004110211989545139443102722196245107071356421186341134831930834837160687318864074594851948419317112691598753217721349310972915732114522059693468445440207498951744642000910724875551358063990045421134710871460802031446992908738525298280680568331697901795085986929715799324651544236039806979190022242183900394033171334677032473447368147791374415361508243764691819715760274743920459343400227160244786060888992394481934470240004240384720848419936203483861782956898609380423680794940302458850862214978496562252705616742855284280540532776353435999506921811104404753349270626509469664924966625042926204022313713667173333299316540885282836175038700038838825576373349881901299658033228205453338708244684988537373700077575772487382850503338435121713429867673159055512474581129517635754037368293333538266799267708873911644468908979925450885566727381772662154173787794723171118065554547357911977023459888579790249258799456083118418500400372323296721233104579267819518286117814245211974411349831081155609314206674022777884093495866745703898785425742142673668582126937523880850957661719640936829219445381420637557997805789079637467057788819504627735443959848746429155961505225011924666771502618959553753196536483457391134340124482830897947392248212701066052450173369626812570075479463103922998701422417144444473025242645058938991213170198364195409126266707385498107158575226502056679005349809542081576721736515058966451598670330117903121557878546867202639327459024367138656389090900364277855617714884645792049797827847900912838609025533995639984549760390819298937505153428590681477859849547739585348850906346813879065427537984235002914158310614613549523354144117949501004743315624615973972405779471458281504246384576834517892878791313816415406824281167420291364833615474873183583584716831616655927897733289752142481426624588280568567401012162864712523559158685044002583945099328073050522436371590779308754274869713903187545837585556095395323019900700623237698080481669187358208669224192981915031564026313571359552992291190520831629254298952558960673423351104929743990136321348738622454715227012167273994899897858488426183017754629792673223248798156780265270583360065743426673380099438619858598386049411706272125236344140900269523062281512668393446493227099328994472619570031493155288989515361301018415015407753555141608837167651582444266730559115527967018332933795891028169883480522820295452639611994104665596573242043169642541372706964656672389488279211868125437591222308895743788622571888850475994785443953638183837700117417096764604664025374656503389948647909706118081408202054874114209805328142800372049286091716408809047896616320287994260670637674699664015130304738645565439837235239027581018216027311735148201000803961725558697832143083159972516907296035555562943373104003688809414147328414107409251163296199910864981284813969881505283506605817343095254640405913184249138017247710519729877725538398613781171635673385567327883374628707793716264520564795498536312644622435129234141842874136364988580061475458428661357469853863574742175145938253630862447508752405849245927707080275037781737495075620454934851732678824024553862012159954472278526652701015143460419764185061008579737610930654935458724648684597111927480130700168851512175528143459116099629594356245793192753831496703983687339836824506937596311613223423660321112866264325907055083062686590171305880424054800389980746493051536929972565848160160987745632734490228361268608811502358822199812356409160018816844781249878646098264907386771276836890914670540113939670412270119720932571086633944428173237526130953266380609788029617045711020643486832026634489771557844490544714156177093180310121372298070032870105934453053525395199715830955499229085226773625227463987370868250667978332249919890275850617528478848120179725082986731143574836926588653149473850965385904679693208231681537391344445762578714767888804943230425505481511504311836278730563064484493679065308494457910965506433715135895485559350894821840818614121324408342820226223710985508637289501163756673571764109877345087932151502626877944999309066595336164702795680306361616288616741309940499305169719011336817104357732220526917345230737195580359592663098115657223257879711110215526164550049471004924393054506135240375638166840176157280606432624458089154842089140436746965613231599081978996777865752092370927323877469653125407394815418551584179829210640492883752696423122678703989155825290899701220786590742678220649803725869119122768701754105414689788278874674609793678920577100861121141067844421669794020972206252998057256260894496974594935937937385550963167864033051065670857637789703065080213128205250887179231529948886208752116129367386519668454331459679985966084177070524442025820374166485644070829888532651985850376221761312723783944137751123349839656681239843939555187863495177064953150989682956692879114798048495430436623751915331206196455194393954950904557712451579782473055377107022156039487341549645706884807110424338550658887685141767769124603680876792736739074866697808941981756038577022602146233740510947545673305903726393193613379301451140215340859673392052347954117936873261138385256967420217068891116207882624819847848832287927883361192962148284798801179896761023402391109523117417101043673369326192585196725872004957094349476555966330478812444096151740298103485431645554822514839547810609098374611046514705981396852034787536578930051235346599483815322449188973768613291007640316448777998334065217017846614608793360830193526511362323058613191022367798177533211778218091318935137395876349757199871597727599173303682118161890433998479026836249120739363301395676816877215522904030263060414227057315196864071914141669975021212793933238511947289826261900330165015063627929273519961804810449175693694862894070942770639768282291111846120497405956787786101317925500000482381532118311378109107350984319728293785104341989653424981196709325767975068998186143298767047644490684296250990750978520836961020773235671907372602668346597297479685148998274735814959629779736950697638738720040942050125422672085106606158599545114053924653561992271334494297211976773852862715743590158429158766728364123711232938747477271214708583794241909652379986302591086916213374684969729423614436611879260029759943401890816464011475729483662079130572012192441549440973097981536519420687408109115800346314669858112874041740453438697418224477198584648363154334284011287808063259727995793393410110079684676373949677922007920313567326203876233606834641148503872911442350824767390814740845667220006717016664563689115834572173041733344109191215808014076846428373069491549434430893142124442441598511735544108926607439486898683157754293860368660507331694975677241485079465156702389924856953933314442615853967314032437111603849496035112622460882745324174384713353998914460540060332760004364907714096343768910898266222402490502950192828831539247323654965282820545650273991985896735553280929488650737371872866580008222117117351444579783804551804297284656881171831080391597744194453578705477041464450023516098715233586111328304957364038299784646310306421952136376275654897365438790245483164741620667341098900275710632276763760963555761299218520659006747772044682047371683265582297137423970074927043037722055720439753370778915734697306064159148438967223486737841170346674690071719908869064366173653194529401962716975184358031344964724089348623534814669368856193258689005324354865734406887067032068603836883376769192320244260484659477731893941710538928323026120586199636769531661120543529682698607358120485956548936119590158842998502745763547781992312156324369822114502696804395619642665625486855883068099847396388134749491845659500582147763512934127558301142905957744186398088836803419062566556136001723916033089721236540436711145956028591967526443758802413900905112824662604974143050550577224061438149401935626290307307995582324074733572032646955936948423099113473087023791598048860842414561312457359667529892924376292128641344094610324324072522623875906353978165052340759084554065130014349532916635821214850789105126944672877185624499370704906141224352182731750132282354715346146702875925145619064344309965916092163853831478453969434893561061270697117943044709648026313641934058064088081350161640473997680344766356368132468846900224516837507436905697699194000781908362946903376482822995975824333043014816460250422673239061391913693428201953163949761737301219526740363575556244727522413112727591129172075729405248730454706236150607020461221175506939077594272937814223451609164661888624867412955529267690114469778798933094518657748981343194812944844735238975192939958209462651512604591849609777427561179851998974552950537690694361456380905921768263810003002083504478936431723988524441855537815500191388073361275850654239620489560712004801355937843093365310107568525298851664862777729663306301514440857714255525090927418675447471688794690042418290427720566340620131543088920287000357775625396169843745055674509594003445864655519650756282544164316620933417751835452282186082678163030361380854760256647315376147998870200446901495441388670779287508452235508166699766774186305082981941988539214928747352869185547988919130265968447326860477701877951716278752862853841695652918155330305681892549992672194446934696150153828933963574509327345755652638493579974639298636604125669200225722480020230568360210544002581768577572085387549874356436615593437120043059241661879056057026160380347119897788492556795433733564075480950138471197751814891428386056055386798264956989901268340766421640024043713834866282032334542580631808511787391838459118728530265613577905024371774369096531420475487860728805255484136855813565503085738656546673058117793269162198892370987311542789598328553159573826726162754430939627140982808269295776289067939247544866896002933108151100643378326713079996160402194706804991629278332246596177903687709249252350697546409652142456841582817481816329907560292544098883719249180878433627024726847577021286267694647686932466732797919962756546050644978241754014668637308890207619230433884518097776378753761236602754099753411402442636882340678708164030235732157613375433028165632175179551183989495549348171669562961903601735356881165361928504598601744003003071949404083978366247332865447595011593256131489785497700890601761151601078357365677793425785171933793361843638978068515048312767866751402892072187343482980074968899841194623133927127809299753683289721962084251613037856033687573004337554018958896357924771568492438470272844538759175855661544965953798112330334866434180807212626126829245053353790555781395980068965778279092842333851839484824704846593039547108876215263927309803272528619046906739410937577831767641531202879884781541103839784423009293216667166092454715360987418755980998636519628062268506244827561261493024470928782656132889039860802295998352356985790357960413804077695427367373414447498453483357353305709884911640069471299078396581637584929367814860571904138969087408732681550027676099180595407600897155137548790076080046682147650592578198252228518535596590860043073681778595757651499902098342275568921457919459807339711741969463268240399997221346755331478708135510080641866879547125700340498883645420610674906021539767533956446226523129038876219381496216707131337602587869654724874036836663487405996490210842904170555146441658322102510997795559809081500926543458948526190430398881572734000754126472360725927568210899092058946976716064208938337383559344190990265717198370861036958921377261172847065975776236111250228691045570300437889873804245698639503863789605313097940837384653108187391520941107336023431000026975176059960421020593425197525899647669446449229443787164329961324666443342965229399357698279707320729196433321364687586871861234611082346263557203222062456625704689688071860660985382352376940867799949609753371643194817594894350473526201876390083936427040607272846577438617755790035922085837077476959595872530653932568021305123363391119959324178371302981028529519082953695454776727636634187224671061937823188995032062466058213873638618537651804553041445959940572535843920823761570409376421199564550951975695837237179241637155118969151313537874399428804999076177453874184277066969499634938549987778799306691851128353604646734954975956071180512927352577211358786302147969701831524423881797058034986356889519570963557355741276698586097326658829082995178106360206195605606283406395745618699270198216559611201780546627946413577799653371474763941790419709197841766884965579765028993587726240267630159975486609733582924673767012253454911694013702020324561156752072451255198113359363838727726049307616504674890278574197099884400773683399490913637194758959627956872998879152334562568149914776132286379717094199688803339713633759182306111765188406714432393249815206061879450306935856501386526152167932693072601177555974008597654503768335739798045965636715087261829049195711755130824108724885764825413173526283174966333304807305031239386391501293180244883927997502321197099158287764518879076174955385523766083214849467953763989368007822702955185819523071806880983988353677939411228922092878089985321169369027602582305024075484680999471807580132939053388234709729726901090114442382282409067898461944008693508168610371106732963908970989957636234306064626369103833275465305439814310717145396506275821466300707082832609070114723549850970016025280323725004423540966432248387847509505378157681874643916507593148603312236105944543455362838366435343077881379023689610111310117725452090880492212159462329161096812824162068741280828771446276578899262379041492407585506981605279293544162848617405941947784051841410053534558462453172999592910432036945896357034961579240567637764419885121661491477465053521305458090938895759477414650758711073529436325510211857744430535241341753689854370285757028837565490783886069317578796739713350482292802359043733467368092063528467171089352900542398925281379353921968690975397748373824724165047232937715869180425243888438969360759180096716001112986845446024700757824792933527399994851261377807714976007708245102563113661230850284576414048076743187004144323935610663545333187541989838298334436310662014551711222310074407676591725827910579994818882831143153955928621390004546140350808251096384930349223301144017366616035673049937444478826070201741806986696255803123155594130796672626307743282900386507364127584993837937813446831407548549408591334522420047010887445699553270728091280601834342055329142745445074540398606029465505240915526887723618455397011857002555019113304893485812185608834510172307938793122269136099317458862799388441037593189590389887156691827933068911192362214029025447669699993563457437973643289831351292728296072621903804553429981019146812883459084342657374064844564344721966348728810370377382850537855110759297247591699306936232319355089218168766678023028155563715128248985575947389275186164401786046683710902685840204783394914214955482380683205323526582788074179929343637390462391590536072087672508016505242772875663186115869878995177664057445399017352564056690442523539459216459132349345452228974466420015135942233635726746993850516877079159108177696986482011253968414887143937187976714469792767568676869419540800633511806740621634657576822743224346981780056946290411278119713867471111579134430764292098920498762375734645343171133603878887726568665746882829079733747007496173914745325257791954882054411866110569525973421930773812047147805550722964233083519410908346094226958804013532642183399932218053264929282676690856530799468203316070118587556973969975638609730807159995445778576710114950681656669746723904076019197838090276375528719105580914026118858440194022623798320885154046453313110637852397823308001584315832012680226371268826983471696831549534751959419242509131829049878594977938296299253320488510945009754542546775830285928320048290724216470584151613730392971587684636831427741936370008898532676807334669011371162083141191663389790434645417277459912451548331968330656147073868498898526709874638139573946256411666078195915980672871173700362277757662431619876794978457324519600199814295061571516002859599244771565224924205885166211756277514008149613718459989793292357596115512434598397577253756073671723290581065765416527061900674527239716818713017590581460619175830927259968122046486581253975460721283912929509655008282792561261164545958310359337381027793025705872133375112227335653838259104160488419823463567670894986199043819486995386754505757209684290364812986139063938278249607614360403901947246171479782909735927487455757459723518397016787868688844257430868545828509357682111773305165548183279941941722662756917410073401298696309264134338499416211769916347262931146183578500777084448177488822837728637303673365420362843783939984967309603862333442776652718568874319837446554272252300225894625652822400420419805919192598690222209800109033925478706063873418360231492369864237272170505919875387968836895966724622970486803421166135535662924903866181802909390983173144573818672458391999324788908966866694359745231968289873161429613816517961588998784821633966241389904393506288919125308592173294498415853924638131079883854167433556064397430117370558488547271066626202707652241141169991429152994091141873306808373367406090902840160448881598453919823749573844423721487858892186553402745674655738192415888555423337484708726783592140539985717207828493831090688558498146626953078118193750213240686475949347614346590065950695520023088642600311429850404022395375502408939351628948254927803672084490039277234623272238980953791561103771377157937068316159216697135269089198157752221855975440750130691131167963422516374105567434509603681278111309115814167954845626490941573786234700529345853347707842324463060310351356550870712395757858225842449674632886068694300927962876638780604880491303135947948656157319678669213799655673728769192939528217737073488078418445399301022846282734462387866021084030732441384081551375643536153743711817155692312311722429948526256844317904367749029395370291831193137535849624136863587498871292324673930161377516023390660828900975502849141511174212915865129034584232442358342696148470010462411135255721257885212943655762162131287412081126237072221635981012550843182571419819158851841452177744913734031966906213646873129111423783061898010105126574821810997357236459025245211591151688455232650763384448406061259498514178206498216069633875372976046427749781573956692369971108426104692841221888109724385038273581124674749466295127472838640839153092911553241559972113629437124833988127217272062427943639825770882323090937768224153674712471392342378213589409169099847693430981830690170764147912666142205622394524425109652255147186244269024043975422338089238669469156776847031918297108200908349736014304398081555179128148115825884246203576735262392795621499658746942584269034758122282958035411918893902963282693605972505050222994904169222716887394408599905572596721451194268978179033292597195769335554727692921139303416649478744890900461785706646324113910650967086775657850253945051071638152062424317219871872657468180049614619530730843908347377365626323090554911994055709744747787691417849009841194456795310245786675577616323027641093266435383164487714709393635948372516361597073924661736756917270189303119437177819760609117437822904581008163726251269873007336134828112100173924444493976326220911874715359192062482731975952727568880441753715186201176073371136680449559255047306107607141874139843217960483062662349216125776102043126984717678981392020827321987509273938098276471772559461537282131803183683715666408166991828358503698444489967089165165810379248967739520773118033635951576951718854266918638347710011808455908423808970592206647368947830071289961607151951104420314494677575142252114521704538297053185058451324096840440819244452967482189067582643154465604510454182917549578602630615152943202984173793937454734691133830681202083099675902068363265085362276389058487859729449021409092279030642904015673556392565032232317766702766630518895127567527316490731977493236106905985961065664564972814916986637430762564159815401079369045104410391902908017062505018044279953175723950153735969129115175642537419292602675066693859602778539112383449359739082440962494623862824053700791748713457122125934466696885479340831978575347256788316983052305756796144643640791905436291485348664137310556687770225452812023423988231490281316342041352874442802216679687115752151281811180377175971074186906249376779625179850380647434589164372694347906104604277738355710709418463112715057589098379401583809814182881960240421499545252075053521046706979694563245069756459001186729878010001388416226418975104060808966302397291675245067095454259469272050558399070531818713693469876169405792661911400471686840690903063646710554582090673598755796812430913441817981389304292217642242944015799918279857180343001971394753432532383793204892326525255869762760966441942840144155610660456333401845508288459418703768117357414169431865777373125897939458471180712404116589478406313403878301406332290714883642426412362767967106186119968799002996600954932692411937786839271922147652351409835747011744232644239466290161487211322819873810642913478974923232252910147461441245378721781809842549724037744400461067988889979404811703795915656127872259407810846941096783758990543614982358379376130686896763335777545900638454250938784038360967055603744160060661884238257742875573093063024633208682044688583624581598018370744576212738097902548746468739449696736219545956805420245160430525402253940173894183621769135508908844881144284991408383044396137329185021637234336333205996011866981267808045199298110383802454466791186789984829666958075481438315020351309894838075688885159805283809541965876403117576651793119904990145438446281665481362230762025619498487991177830608254401424076562771363228853496595852302959959240073892186662515972165509375333122352142687220845719416918581874359141420913993161212714280993492832220039201990287939203042783171784680420204619497351866700586049606793391894855675903770818129480836005640424653421269841812125562894394482786665501564855311872199272554608899457869151660497513833307654489329377962593438560543823670167646062624994970135995840007171184941241174942268183021545350220156108884891176768347051760144999452861765836323850468457897128432854934997918593831926375340513727923358312689158834183895748780351652210476018142737544201387370028593962024433526171917668903326273577323273247674226359372958729085020754202439040033354395623561533124626447192082476464661672359959231397038182077229074440690907813605142152474145098657182579118598780535201533012301178420536030265990672098597945264658408135127476196163944137008367354306432017823231381970481488330306643614895823669212588089817544794816250620413463295564956294745035304554970027568005725894687923676202899199104665465982987852405177289938782804658754434069044619077061442058246496860068708472580742579598393906572769365830740821374896187836440993620955710588220380379138861064909228364169466445793415617924256438595177460092331473269653611456195511300961725434107815286884796355020019818750012084788655693934254336411560395423243385752474487249030387022318158605720250688303854626212063884442409457381577203410914406224621308569090480750546367160468068924119439720152696816603217964482933506888514906447030371644223239214491688633793771971901528178644441336079112576905227404279810981874747958626016104774004420768258862783104869917881271696265313345187738308561768063344297376031289537188069930665060484427242549040470214502092277937270480835056291575116269172130825994566168420918659762684829833741368870619133866900181688731978945948606077521849080370549740685407773463589403450594800351337770062859078644067387954091364829382833281909286816767785293645324115059138297193636055522610855971569552829592030670606019598889967779915313658857393827238848419131069137714677145523116629773198605076235339636517388528384387228994259511009686246359199466456112114723266736892309097724759458413810134035524339291558075271837789135736392264332803207995660203163024867738432683573296304561615392023435373811433237635115774456909156395444257050195478924838281824775920287319169936571322742466396548522110226970112835986968971461663162939251261676931698388282280681575503515030666327098254717726602838721058766042240344547405846758632446267641745908878727511393995730413630434445916766468717245758452386897411555709696032934648775460731374373624089097880151543670168117760808722618210900743506690442906668658084466562790968866175736505378759773797882745287004805995123222745441344117391641251346429253597855124610480005380981709239393226577936303233359357032200777463980450747915536501741259432330433922661512556195886145732046546194067423162933307929690876863041850032815289484657508992459208024643079562418105468372193051491229398656144510729208980336916617746538954757653381042088641581183597429325485565093900004648723595193968453351564619428212322192983380950285968184507443960504814802726018394606637389180831871983283781825262786502797927278054587796467105983405357008236848018543678350403863383909039365428017030120350367307569797390282382167828003267612233043558941202358597902643833624434574182666640230152119413257301570647907280669167975886300835650467583726441486966697268365483095248558736395705374771528613043367149732419482644924543265228440814932774293829343891393084923735236192015743475889675993994584896730892061688555398409308318380546472882815601093930271943744249679624814126064363157425141668570112691711716286135130300983086282225737298249698518625213841596621275979592083517154932329831949071252173979733063377782929119248560870433863008210043060834737711700579371118978649234261125041630904887215051039548801686444848786639792326176989360100631437794916291836050914091637372080500737112547314703415089732549226921468229931802934432096766667885390701854285304558856404981931981158625178664121068184151406382587873780394418265244569296979685778903305434576655268244433411387403832104753184468623451470070015240595465590182782217580912057210643678930610418013632448417514385805482372351659507376767716527067669847984778102939928370721394556330544438511959141360158652898956795451046697387202811577631568674319521053583244319299009602213247682801757771666619074758429776972702897302757713378222361197069670854920784353877660601470219119464240286856417920505622996149770321722730370998762687108851077794586308235664911463876859341167505566115287361686441758061462911548075007045688390367852177010642370853827502719542996950813473233713050789630330215155616708280789272994970804041544822977505596861807784535030087037261577712372714469765815762208237915326213608662746359573265792783882734124257627305033482828888507469163770857249432483881035937151021610475654944389130833161499714469531542239608697204567382196581115265320295802571109973596911835194727751667893389421013348167969533778487970445126902178326220360402099043194101289005609328816223038866810567773718520648939079134647143275563378115144153502668615642800730197900598264779699515635744405038508161888325259991734046014633735572562251486630511454424392114997988132882314379772115746868932778935130859760581396363478761700471514267283656518087923389119473991258623951850497278419004647439380472578605686289908126177150568948473319080614355665476985249214054351832231622399354328899564307127232640005657000805843874995270332012743974404521662569479038987852041842049136361687467081158780893310405632973121751360181946830045618679593518927383549811166317953762909961792217640332026453718078547673029550129042158581129445854452889222460120014602210478886486451826772743921999978335482820466722010488229635443209998313384312067523542762606995990088739844145208782811160361672650442159708696919108341681701994147482335076073539972664938870386266051749135552131874805929058778257937686792367456829520809752464510297287523658799050648150604052986253017491645440993200744001505776160675327096429914009069566576411726810931966102951837634206224434625883623541498441332191902957630784495956851492200958052977843234221750315199203122265440042221588445596366749515999071531916609229004206669045927227674754355705593301330642429626575414933003018547457339763538684525057623470535908516743991536955568037703274247448170387536748909713331742189313137294203304190378955714566647597603887015495808354570982692187181660404084265934745620201161337171111844816252466718219804461858505045461690600190243274746900818395462740107961228178892234172780196299279899819413605487395973399201356954787336575402792029671309450189335012557450478821097364872223768976107063494766493943333438131276108625914218113515403526855108357342114864609909006420100400533669542773127417880711521632626126269273505657677849716169053024221582455173909995591439881097380301410209583584515800607627239351278443376790693725790589691240450687841874936666036640510736682036725672444197285126082257559086474089889349060912578825010764965775777871060919258128222418287424112596624929263306193457462517513085883432399797535898895047329436843103322370298559451743293789591378790900017883376341713392937612803990796060497507074816158838621235800209810095756530115948816519011906172479562767376133422797574417809936639266227352576671393676755613710237355763515532974742774500049773165121069115532831370567718524439461021195137021590298216617966576304257876865507228660674229537092321063968869027087686004092985866042166927800172543649879692140093966564670069267618649307928925870552615933211550203919144111999850015481397649854319705739014404961520694919752179119807833429631710664869903786812470755631483114345517160491755988545141351825002957118351921086960229861315922183863940961233508196948977304074697514352432544354042803655702131192949799017993107164955682074453504080515715422902831920084267939835728159845336716211400742385196292666317969375014884252082068202982090120915511035279240893006946811189046602644916508043169606576631871018998485596511541432718191677934106939699947359748021336288718865155695107929547899430419238140452872182406302163172290513734304409512592725014059884929781402115733787586839675821210163221984801557449528357426416726084072994909443686572125204558599282429356790883367066010514211195065827393018580068843766418222522608548697089544700804162310552785967780722970761130588774317845254800539921461291556470727043658399215665089922232287143199013643043294268125408793355002891846025227253270653638307932964151931561436846920360031739547337060575834424065788968077658769716079247718628277272384390102618816815243957026075888947827974319684850807281418095511592475887287587803407864889209309562143455184946865900375142861573648397614056721213210926211361128624457061233381858494977330515077422901297319330738434066369582231539950030574634885466463109093885231692932249534933976781972125348921083791325445974080482153787141649003619395293462603005502996465630868619830010433267271850957225197177394229389379220029016982224224511931444477791009727620801171950849961335230719018809585698078648340343168078313313434899093504752596708610398177172721141186145508695407653206572720300046577939360112721832533172059577047146923348369915984647791701901992685431848948174887813488916425669256111956969358716685814805546931048073871086234543980749014628369861802994978334641757420008131313803813275706230869221721747235332556114018796822733153190533651791223865566327274788087227308252065659789244629587630484687695977369398154957824340278456607574174643428103547465415475227935217540366842845386977918766602608338807515301432734705598133079469441157746418657987529364371224041900216892065902416728631600150000010846832288981962938722458350131355409278816253793006429277255670329101736847513588328304207855277418670870679986768950062724393033485491990927589446196448218343965543767319991687643915133313181294176051154861249283284086809041262186400928862259400341983343232933767825392127307425924256271605249303812977206271527402292176617448100856442595789964659739091457710712757167274885480791024895620286097341569186605140203513074126198639914972656700794088853401693507396526273840276294128845487956851065898123353008774843132411914388582137617771659449247997054465920641543416285996515840890506441144719179237545146871893128751243629463980008996182063796533955015442752552807390256389395723078840616215284720713108162431090307170143995932700916099896572050309303697604440025012664201105647857914350314121252017932017384263389263109656285175876978380252240877213938020509366952621613442263645697710536094511281475932145725409902177161054916655436522426929888130757166613329229913176673453652287079474647235236434973002885007037776015946721172227253076456822587433946314126454265863456453065646283493588952402057885979893800182608801599936970786093983126933632869475663583859371869708686489066719713042705976841690600624651264186989483213811858715239889344483613378444237741384657808776905737242553061812660979872323796693070927776320631954331534355258627266637202071357940913535201854022125153828263240147393250052662873603577747560104298777190336627604313027609813161871278689392493557982741517604557730054524467511543025246062983267471176517687032009792914166251294564737078413510022618408950526808865137532942759227118038655578510555287046700564976537879303695044737890983765837967652919753536814989406475700209947240321342145082774259897795779804937157439150582330642644507075392058619577071732051950756051736806199253833488882572036580678762402590464303826542315112920270594046747356180865537626516767337244883364600700007175820707186596478037950761265420001801449217772522357693555645679860780917523476154661328515722502164289236944217582367553291292935852306184193193952226213800732748550974521892663074673383564937501423488282585434581292731845952387530137778962637533118901476650634513720630701199753720653074882028507806668727547932402603663408658976562219523604244363121732146786487685417871060083883578927952528499030401531687009743386704123447736813723022798585620905912996292498364937545735670305542055521258290256485465605307029750532113315484308427496865296516740914748897107593572402394894755007051000374014672782663424259872495321619454889884421309030141749925573936215397265390076719310734849860732974332586636835488335834116509931900345189902942684021712279491516253011180922776210765583195725201729331932201813463709713068147121978570698673033741714024548583276442062132331432879668348984001956373706804829917067025345344968112115957727538283897839900371869699022938573165117175112158372167847891817853769612164598465496758458722899351512274308019664142843637295325751455363379041493615978813066053676591877228667022042608966569515204208935711288238845222121010905941495645534421135090416137783946941195717173085811395337796661400066085917206272493410014554173364781774040118060321657455491575978763043126312197163678255860815085628535640475633482092994791743144784397784304382001801283231171255588647783903770609390632041820635504543351717528256236553114196023076171013549205528128746859082118541026047565262045862435532160387174632771296903041461265121145411615351427839009348999168262471252238854477796855496769587413363927375733332096464509794941820811675021661476406525432137108756173391508677508345500451745167760558775096919175702756728531251488276488836107408086748436775237156569783994483556059157690679052151222921896231291041715566305496426220186628042951643936118576729735501287446051862993168061608307106932243206911546365593834898130546450420977297232197672544510205791317742571563797246245002802865937021110980118319982963567249799361335586074012613273090028956933132638964013712473051357667888836460278511082366867890473342060370392254141730929273247966334087829269203375514662682552376512840307155991874557890956679659706715724373368012549598074090930521020361872393592906666278047193526633096541739792352512747672222968808169611926556242413509395675929077990670214667014889513224603471796221635258680834204784647013048196134169125486859706582570061562854744165129478381653837206272520936874836563734431831868615919701932887030283244745636371477163226021656178626507820102023852461700638234679816920057898594530380727615018591181830348260288957391041016110586236469874874253945180070688569455859046397878101546697195187954195682297779413426220024530023748910022180602410291192655914550240102978722047126629397280024478828621198728463512641020863452622521003655580724911282455967845385388429325241798897525889401882969241724584658863015796616766319006070266936574022458061665490445411045146555955811193396021603682270011485889341451231276629000151218179856367539116777371430778668067809471041119226368201671076350576366492952720489708010315722110730331270517655554590881568026659863948905187936778752072457850883877373938353120866248021091894658166200739884982608936150033076324726191089710541224635925491539538578261727793530808235059946959120263678913146105277452446749828421352478489110159379814505184197504556881478734919521415709710499424708637964504186397140612029143615458876745303412856610790381555935351081930104348582940045514140511932725818791821422715772966724062707642693489655290741293356605016895715298029684868667743124449141084625020144169778026286244453793627886304170334282749147709501635035221320046095680998069828547187602104454079443426762608198382167023524693768656837399025963149202692674227245679425836501198987044267342398602258868894480458923966357968606400740223559716803316641160311600732262968084103907056245122569820226849352851465883299520608311491031478182909086190017983959331862140923848377564004892569787132949663750926247890965925018128377858966462769249335264611316127626928482650093445594241138833017156689115376898718288640499797911498270646527306837633474575017915006867277713032321066710452222543265483323615569013246419215511023906114064019608949615899783834666961289979463427346988011198742720949687168947857820594737517865764280662591195384027304691174168609173507297600602550948784210220875729262421773945725902236067600186950017576608170096211423468393391068580931837520315956321705480267817093264644801511390487286565215047039056523268972239246052539678423651515175060440264267240838630224372967685560419194114782419364535776861624809369868717372888491020602446363301035226210222822219524100107138260410984898593794407612849472555340602741260837869835890695714481064364326843006210460048379914196596410901575879175020544652619231667216197481925561982869417644131650853133104639550155937743594707716851037001164364662311525461647209009313008503700179413096736095517153092983694122856606449556817251394489080690041264068637789663156267250960811058984475932295939814257593975517747591206716204176796598098953012890453042446108584427916991640134283376748519573058309633921919787228497041189092485027083072046281090743693357978386699595957622309556914910340111096047361214308077149607937740890178585158406008853999278802038186561565505221669573122218666443918679454862769519614998039038692708949863912523518735765680715794122804128411133518866581506732971233455264725772120991311202885361418249789773391538050842401486511256357187302287294657691162075734605442425926058363432806149054233686680444859524838519494059462226091784053650613334553156092262276415351843889926350619368098540555513329222002189153797691152798746092232387026374996294677666670639081528972341330845225710644459342416428681903245637584816524699359568984373211794651030546224637499800660501898882636883611087306989232792395534890858161393322049974359995979737813360200814640619944199996903976058183161246256547135735251503010599547721702566258196416069624763955603763036965318067034026828994855942287076215186030154523727918364605032810299230886372071607794274635668615062555150028063544180850958372738474348431818581115797437716173827846842980347467152291873890182011340304410866076453816564929902230703232312721870051916455824090821225399139493213623787930686993343780596649838101141346231813286495597977799648884516381895875400018328085985396823701600417168834613084496670183819350628030055246996546867703640737260693581080081309033081752888513100598381996883819367631381587382921643776156163145291839227340980868047858808120451205223812831412841974475503151688394611323943143308791046422692034765911193692011803069363597770776168709186590118970621089881695974702792662099954825631522808752702058225826284883956132380402262469913488158538527802177118404049999024829358426176110097794751600448187641069983218330956918852866298178916242262400927774348429964372483712371271544225220547568791891739639867860338558139874801424341084398293965548297170323621402395456200538984393611169165508810866790796995046819212933887661814564989525626207515221316097196489498654557695847981377250900159341072432661278024744477398094818919790336333187401713568602128990480190793859330781486628098348722635611203441511632783413635197998723536326730244288080588268749398446473837529304132860278219767540965710740081220930205831035200567870389962673060735801575409874098921712144937847128671401350336613642152964813787512054515292224393426159104809181083631120106378161381408576191324713925201913674669927465761552050029798200844564900360474404397031313592507928074825585475697263657931219203081677572123181659756058660062250561957050852503498682329956608697487186705728984376373815656999405413867753295819290432791147501880866301607666564314418357281196096540979373405278355949096257309216275342818639685378165703146394689674439392166208959238750261583714467442664994478725615585083705459773153285437839018066469793818893251203015438961281732031569256813091996868403518894348574878777260900345693369143746218738668961240528606843910655642273901841370340538779550953336235367516533053524397629056708286907576467512920797209510891412583889844377937990280994307908378650763811627305656472986640226537892292919910519656432752308187235674026595780744902538148893949453799260223980126313033571372098351119869291115772108875515518053689857554341613222896559452135361095903688640313924597878230927616881589039870474537179197484842122771689056259006247445752541649686835954330392552672542998684758578029148279236007380195103649733717900941498671229996956019351161680948095836943113819613740988678693022605692568871190408227694954428576694344206476684198500418492779011477751795750251154537973090312878002383552828484087480789845490596715805165437545408947386185461126508596703834481440724567883995540876981152829990643614436817796556477856416784041727186874241652647324560387807806192970626481780408209900243699100574011085431547174322794580119783438724868412005303074888885444760620921659068935488174436503105335941944992922141216441771933474541109829551352573869813409507861966408540741196561868366962197604311396448103761417127999172509675216739409515146302622150964765873307095133841311256092629432891211191326737787655068991569461270317411863066153337412740751986260070316227251226214727603712272533030094670993477042924758364679895517528736282124573193242742010672370145709785795836684337618333650896313618657347602120340067261452296266301682672243440410474582527367408605454693367299728044591968697734175481536595341110153708128203842022722372137468749626296497300052864557995956320526657507448449516086463667932785733819007689350022233901275505976980982786725520510362767068569985566603592966321589604384965662562091790717068320289452151286431286931184158038285487360083479872119178411224017392621880809739062142200924194150878782699704641094261327308620899273467526501840221302818442610768116614280114333534365641530104084512276733655858358227267373972130749577222755977361672617643468794353661641310632534728226946418597134769495928872146728927546404553468864191306765179949962050988818642805049778865520223061382939777123356489703953801691990571096712364699998752311092213238873693681553985811676057327561087133309879293722570527779938595849599073465453469401170780566859903221474953411367870943430369667389540390518446968031812342131867836919875194090521617682106984027417250189440346709272991392219432381128962166904844427579385527773397210881553385105472799626485991756059131521015253793872006512955613958183266368151484564316091985297918319916836876080635933167482445335736042071229573369741113009228573369629214790719431788678071324993985494876469871061876103818755374716607187674030255542472883970277525355054822293863478914769292392735435294133498352006396806778099897320867317000653619218228704387134711841339187506321206309324243402129909899093221767169009317782283819195288037529925491252140846535855135354527873400703017394550417355049416698183924702719393599214712598812774850262480009251842127414676976912071827899819117570625132770920345384683017999716214757479868595229076676158782940284112770020375413340607523242918140271061218251857470646259182605914849470473478909535816155963511219125324217763658495447559464122086059149307946274763699925011681136371534876600591635972562855060935751568460448848514418269529653444620410535813088451497839640280478312513503113811588645834066977575533657128121052779225120984339290038365992686837415264275348864581772294078224282183128810975015227907496955601217311517596258119063983129643297537916433409318906340780004707193958193240303149261221983433014350328273916302353036151679302239520901834896711280624304067973784210195469753946622762661067972925188154744675256395180286284915234432505017034587336556131601402274530359169417296917887385382827064060539793172138366285416127479076942008401965458030671781793648176396010299107284423688744372228570444244163268900335561079786456690419594775773130876119461010207295229734387248771232785606387098560995639300853612000338509594617943970377230367299417848514973086878955124224798398826384841088533803835529128836545844027089319808276320472679152726540773570628017201528143279532245656110845266868423942848673916780938974909406914024969283295948011425987842276415713321336034708879187359133293994727500581486083773385926666771672665262315931574703629024027492684924561582039468107569774060961880179184793523758028283213795369299940660317121714771442026678650616720209040686178562975313781284477418364714104799103611881076011996236954380408126594462635074079317000868875868225626076974818543575452661389806386012560751139897269533580788310039338309047711934005314946228279247158510445957738363893617341866923195412455204943145191573364573115603222523341896507180341721052043716722333608998385239553192141622074831831294606416546444999664474937001855163631975697899520987432376674816360672213342350085286139189844902047028038296378443936089051575739481835184124938055786039398825558808015622738960555784302227630841707439226458769699959297606321626806082969441783489348609155383419268898132948820471055169548863944442029949992180179734018735968149411091122832321335387970339165849316734040442196379956786588414164031620907391516065405111046133379420804354357881724405348982214525357985046360739621249258009939914900728358271027499050691856099768995433707184576752116774374637265246692227706927952902290767435446409972933005913672008108551081794518440551684771995435626710417434886812476107892717718012009349966315721622026176130795464073329469624971099769102775838754987672152437042996978468482585150194662646943921112976384760334551340113437667723304485014131336052995844869359578936659733692071808155277422249523828135135645055773468738497383515105378686674877504742101787636251277071185593677719358112288531957105381277175530963083615784682903560986922455873414296352596078878951011142745641993154960085748204487073053745210678083892111837224923957238751717241588535385473440671270901945695185950432034809677253525343459491680769031472018437030201401899467837118787147655680075480993586200384510440771589304345352468832517968191186050400308544079391326046686986081517738738460412296543789697191083870560858243152828602899718883757711279460089317410587539637061868346716403953205740519648276814060206622946044784708469197818268545172785944343232655113296675525708745609895922567563385356761632076516851146124675517645478517101632260419185579156875247064149604787787924782286134522411461865561663090630656046082744235590085508314436906005626562353076184314232357643383750725847380125238064649165432675573303185062495323370215974226060557851990831001162505741288605920137265307711631057620918338367594853563157393469490548326948501443489286531509954762988877933087568666565533539792837692555849934660110042242016444794446335233023164076377773390440876258980827061576237279397336726755017315010509201641736537575038299862141546170854523926215988817161964969987878148316455497960974582086044308281697395887182556091541970289188065414990684484628333814670916239300706713343811127895504114012398292472084948669771172685589844626188532816521304698813575334229089103966455298847745475335585381628526277948718199247606537291407922902565786561273794203699231967722216166471897415326906220808691302108962288033648167218050890280671799812447855987845834676109146554022948746820806572007594569137004689886346449448507753563363895107091121312244244633565881935578058082831796541607866849036600420019280913523040248636117158392901412573878527589206523954077558787058482248250708363553734589621953438218126323453486687394513066061248536932172901823680728312252612117876419800137125848576915496079829027736238143390722292682631354230868729285932305603923495642006955987316483918554535046780821158838060694132100797946102327973003491532985883547033225411103866009984788480431661225808904286689268844150895450891793516425827707620792187531614527817734938625306920087931711241150435724427296967908347836702279709542330928664889863892511346824121404525672706752001102109307638030816735571502921337471676205795482126045200479250706389526460054303730710534949498076751360923248579530611340712115391510745990240752302144969833251265590846703521707551183384025204935304615720395193699877311786930552400418459751958453818450409797084100648855134986712053358627646525502112452252370484686067483331922162238901288022067591658878470458654515956486973717850789044770250464206315941258851504264750072679688207766001428690878163940747300000583573702711972255508021401132620145183930843389969755050129071324553316550817797171394198362432811725198753697364693390511899199140825163874635318880890923383807081925671885898469823720900750586054104689672779774884814127816292323674106022285138451201082367682396101307362545919840308701384535625522563988623172467904601900525882240145536582898928939596230756714372411220898110305282881088994938239460714667586809815509603014846430686556307801613547383819229226610128347520819010184268987934884062605716332465213199527913726701276411660818922138596008281365671956186858650273203856359316654419139370901490981696296182102731637693379902241402548563302995567766026694501709207642940298438582461165492298954703557274050229350596596116877160550225919304671496046256030964814012490170867454196111778875814577926604615792046395978951654878918863745626280926909971877698472964696706014269537767279934584558548744953529738311519447415025132994691167226240864544336077213542454559498577468695606590792127250631860297911981012096513107120171845703815287071106854194035602400594377450503667034541852903102305035282342653139971407660520376239869218036619167325186577624752549701421890723163136606983847264812139000183542849842029624878722546316924513872656613566812531464023612943234882634816655907823867949379477503714561172865324551136146284355723114331908907347011226607888652030736224436629228748804562999317130528357706491188858914433478706718886270822834221464048568754692977604698167745520260143814703042278394289337934005903360134647349680981543743077881112556316943022601370734003267169221660903325070183939749569640898355746416357138838667877878377678273782477486311541524245100094132410242649429095125883910121877114010788659752802537194842081842135257200389469257812194358765310276421770532711171756287039286601072833022284977614018991423686433671146446015697336528660525101777054871929678971562898741950696606675738627171376974217104620194495724566587515070563101563491205614542870411194937402434995111932632834853211937237583764017823184567838543049468749092553703071092315696060540462352617813336326791926435581962451459866258012112139066950945245278075358862300097650491542977304196732940907092973765896735313138129236151102700096643265676859292536799723340576841924561835250658711737071201933661392173648809218389572615125609222953284401529357869644896826038735824796311752433626554413692433214422221726374526149432421862367531902880089377639014768450749868675684823324512565741244770701628208150074080250745124613277797820591150520396532940149404170697324719983592447486198372022040885940980466924757296747858160299150886568454925890200538191476272400208103034962841037181850209209679001760652443090880504412287438790554474239720961106417412392967854448852320355342216300636923118034799255910444297220583141837483242503109508362274090277148287546076740752895846270704897690344154922085417102208718290663559685942182996964724917987877247410794640534748875626499432980465350307061291000300472383052356821790933456077105624598036148429858794551116963857759805348983090287920707853732683153018128534891041967105781078840869207013263040660642819823812563325420666052560484587783338511079500319264885838302531603568666192071195719425419390774565614592362073620613299519257309300614748571133823612323424835233731073562051528311723532383102892830261124488428292702727823021594822226772282812201076002091531382062999321973012275983932901994892175064099535027363220535708726601168284426664218214232106854012211469440482510545208808832773776496913525895939898516109352509939458675466612375262324087559052175695753583073966862094228905774527738091138272439335225502744559659098690736641101288278935333741551523684926791533617466743125314717948976545493775554903221004690506311287540289556179798243654879889967789003920296656748477910429981498672572523948882228333735090585282243755379099090999364100398429094886439115861912165946890962045563714102503070433942635752986290852588008813123334546585590417367965784805999544685866031236602772590197640001360563300489363656851916043811081549004585881021248627374986904626742398677476564606642631382535505466456121714793779019235608722534473971228018593002406609052732088275457914975729834984176731754731324836706205783427704542807557721337154392376499680951220727898896457174255506621397855081021272911779783631131959133288384719443677807465006928391948743949621787586812295454828823410307101937445175488095893699837686580214324302884999792838722912921495245206885199633649284135721895777110656241686667924104502797734945559647211184193726264048828028373868021919942449542280794588931505273093726158409167362983371628996411775442237571169707847745010933171912090105483680202136206084006202199284210484469532161341408775253623831659853426498919174090571633243457259174822862060991233790687023014819768703393428508349017169231697582814656004471739749175335842009053338849275299029724014683627075257787759941183871436556438438195933063209894704267078544088704174560612839378784548668635176099137748272513702498968210790202139235889224840181545024243314806293803196859262066508656028206521957000797406780880325125452037949300186137782667006656978874979634394313459821699814450962266570941535583050504790061872643890783308446715803954486180447395207983271871340957341097958314810645096986826546827040044313938539281370508957259434356911583901161068119880693227550807999976597233649697837776595176805629378022447467472740877675706455561581982089818051622787810723492466766285330327019732401193453281524734233190672667857705761333314120163902933947567637740332989028457231713077145286789334680099278623654187883011489300248049365065871388349753735304161791628938069767368639027026101142454230152903808647467511399275337963864117126163625954750312500974892556921593283501964290230878895172547439954835409798487966377950456467119021724554217796720031345161165811309984893140753803089054364043215754299177753020675149027963544143216147940154752993050869361953050213983059169299906173668161541485882302567615347239852086329907342130304245512169600096075413827613260154458671396765588390972884739141439093831313122145714599887089599341287451980979039708093257926919946787801230517773144399329716425616422868268688059057524676004739441456287011481104852550934919365782692613521177735120808472222511215635488432175118624428457202886926733770579780224478405968589471607701085046517106814183766821431638580695847069140545361538255648994482394720342802583819704962942602260890386776496691820666581957213944310413020784026587178379602353607498643052882013199772844451389167219116040588519817971295003270899857285596441097112012402909798019668580199731937694348636675742259486057229687510723711169976374120808046547105130824891769580404801462503393754139444528593531558322051891338965281163129073420210778320903099088178646425175731170452609514960737978926061035345865309282941712017637117019129629674914591992860114482244834160835998897023622638060119187476050294539715140021890906151487833152711958270793297584067555753583922294678339664525471026230082188244892698269968067861527127635619974988127871652315275522808109464074422662388735386790445445150660929881995779272873678915924331105062123212622384864829650440866383593581437326983465663218977820131606184743563391120526319498676950017868083154494101266343600294742156372943331641214834932846005400322432103092987744991102840118911704651417031053671539764757949501074189302321434657388478637792787706990156655856160869762150463338211997156718657519472212803287260593506734121170874434423430227963220499686545561843346421933528443515451355258883818909854000466817799425307172371234314826004632333476038790402229964587682393364304352424007794797071028485639637107396963397308518569174326384203348353322731475836870191303107257967128135538050009591527299193162489769780699377228040773934479966115682745411943711275275627233624581747153741835026798530746607058188508765201372538221205289406973079821780998085333382890779876336357682714366510469818376154881216716536371772755180391848634602115504464340703469926389148542522933788078523142643228592176257884940822538909551833344814216579381633032033651072589530795770231574959837863749290724084071412816110507294380420963753216551715173867550712041232468120267468492241381131690832648408678197336816092032790499189568008841587647576982982741392521134804794285663857405399693829702185388467962582954329853314180782358685237609318284647294669124534295734440509715181609126485712072637654505859322103703063670803950751975602291235119544059738501380705050767584701185389561928732987616977624158907546188683663762382631178170354125317970944842554100438309850049933646754192406327731242327755309537262622438826728222866064013387183561717392854292300499094368883085111228367533740130552438190945092550669528700950669744249591426254967500468893241812762754755450390091496463402265569618299514055373788402613892440170894581106150762800720567046511589978310371367020136505816847469276907006115142699530416367047534743283031778342689102107184731999336259519706683112858274471359634928274265961985944105965781510358227187014827637250330365510145318033152660775807886827166271016477482218039153086443768427910670695787989179868885883205550676241698054098281804573913858182967347615199457065238525203732524525052034155002277509950208285001242162816364275639466160996989939698841641761475935773272591881323901859649328520353810961292733321204400948864604508796257680247789329013124846320608332620645072066233260263742707532461347293762932333602566233570181618603786928961490602909371031566333637579223968039532285864074738338214644698273884358505782911906693630579623684182018857001371384781794546404816766102050471116044462695829243605872598683488115413811619273398785856718181044606386334261629940013457924686659586668492706018076336911657900942221082364151403724565960542926414237054835292522632037275834964436729621137943143040848100926591726685038617942255137178775137149640531535184073315588766236377697206957122424497727693698205808139710270049325555954328224549001705814045788342578700127699573284348432254276696059740854542799610919252001493501429595996218446921884090051489797416127102980168861903317212088116264717203460631240585204284889828936065817211342467016295939405337183265053581701743590198361597245059889716805118795224594506832851567422851283712023882456569531578179724589091600205399024782144440411407479348341137143861046593412139001045906753866151257938415034011745049750496376809396682041577223018698487059658816720744401207011191543708953626294513688080291941688990779337023885336972998251547734228080517097640685074901388710422838121397576153948071127488024304463732844882974343063242567848377114080018452206840623805202940261983493434428916106859954439349169202510326047336411113793094746241209449388516809165604948498545537991948566713707788065167649662898428889639825971628411638459675589888094597033454434837221913440276751345783943700103873371155700218241485723064822372431425842713504817195572887111848872796407774909634021843803677504619868051664745155393552778638298316380991229901289166716536626237979952721598652092963669431434428466551930596700220579819062342184657988582852992132735766703045403691870565057497301833014805816644203367455557790454411571781773282586810684447372148814313190719538403520564540635590753552755968732497717425852116592470910979123744330778899013195897532723245521361273050195779633357454900125152328356550375601029712899264068325638141046551760387623722160858289131564216663553966357545042744514611019829853958379780845912350661184093213291402656899249257904012143209431152014734932675308215415729201745476100407910591235409673653730885867101506249637612768939015548062521438140555216863713061456787952507707988759395214528659075348641655398910993978419506744207596988862708314339576095224927940542898520097155213084456330391694543515408221880686788912442771148592224430989690616515294969167964315434193878440233766417128716299127527071545203168507388797144070320296547899024531384058606822108345764549777000399157389029349491800428328374938136035026421720804146401766225588782549971576443648554208787690742067662273311373320038823814473081245075368620287705357538171731294461291708014866765091128214326836312283429251387998869920504737265285381008800568085939571128150784254839056265062749232313074454900436530285757697812914546364681424801663423360162242107009525722828815185346595240566212343962611775475766643599048740627116930433555466143355864629580572142925658151379386449075192183904143586704296166383925694841522461984505990084573548283253959374158796847148155402477788635369576379246165730926466206233846772210438284089766661109004383884553922556106472192462344299494901753637753491586526232211669425864454644272953482487265409930245021209774404511113100717842380369652175186718741554039015241648269317196377705152562178792191339569194366181177820734956494317440756754207851423321541628057079611449295226050059299048724612978496781515055348499336040861200793854070377391077219591500355116110421172200835833139250310539998903438205519080367001398969530136128199896374466506220989233319186783425577030838909592993696727587139378865340156757743375110212967582783017216822006338968390898460995806002971392770541696071067040145913715392738802427947587408078384448154552750995932719035683066272567818670161926841217564140956960591785406389277503804710607738338800079702900527588977236473665395631002500792385375829277054654594430114870911115737308832817027323278991339932222857061662328610974719702220919759253067459677447555775934948214774393843374178593485403980516830122281186333823667327420086861783211192527211413434549480058034533567539702098765422710615201410103039263885544120028529557673717763869093482748334288789791874265432516959840250555725863642951365916866275705692697350540185728754909630423919832451689800528071559803369089376398572240287699669595528823982468606106115779383284500629772508085248784572711202312914032354746991668672412375641273176781964645480061705831690878885275594923869348552463037984569115970026968140910026889478585046640677989007853074075651456881451952482464440270674706386919073924436854534431937514569399345493829886986669482942544830457061391212970211660485890833236728030809819315578250596150301706106673379859574429087415406173238018526593687620025574879596704679703976655583669435183300592446980865486504929176948218217105496619892219885371626501106080200448016766670713787769961645405710850610059324232111504906151742928771763423042755511863766937742965326783425989314959176694728224079460553973286774949073743979448805069134152780113989691322730686837033459817797567782619752595813880994877573326553448504227006911340579131743692881658791789207057045030106279163255857121867727555988185870435514781757025885480603449704059742915796637194645454060989912496120343066407007277265567969342470563391068493153510889854677913465957265124340734982663211459468062515893752387900669110092300701721231446985276851104686635696054419785455372324649851669731977188285611360718576729667962719337785827183011265327935090144528526383428600914099741470308855849400518110474203929151348349718199665382255061329525174807345793051176195165512645207795018200402595629284378459957203081866768185803466186708312369673754686152032174334428831086207325822474057345657833326976534387392151416358940891009996038167749099498634253068992321742687742750816798846759503948076762646541526838623523267773851335556916507616831262884992197659566831485486383177314714596177705507499340205394839198043782976778506090733126442867404957971813734386758746663892477501017958027735994964816206661258573361494531872168955376031593251490992543189240129320174315512393542500718917872526297529654630867431012312784185521440438158056597234643544911849599634502347761913776597889194344705604918182706110962989958957532745407580374446577531936092677166711303604040274059126163390184171996831580706840350031516872892586570077616666515116261933106352052057295707793442626232540096640142111192117743819581682569856939515095657343005155212505235169309867421026566202903928790092538881494903551092282077323593759349700001319771201223250372061956351861092875717054881788764686762717366801896024480373676769508022934856834113761361838659808486135739879161853770002191087690397364503241558328568271359655093464337683116335320489202070803704441186045587194444744677472035381108696145090151195904487935410724387719339534580980412902741917192814791835614648198772994208561674899251942546937621617592756747182027398162918640116822143012710022588189130263041131298542416891054125824265555435869296949770515099617620493402766212688893014749564374483807424795316113210019294188795371055726053982275076671779588442994121171432225840330179841512189042101283174779843198150348724393199998163117202383905300311859341065162565158800160883145477367001072672602327869672979197739034431041703667097831952679447594512260974366399443817762234532064323867028454894264338251008775104032654826298195802071836818307995575384423828719111848264378440527496860073339938514766198934709199065365312330439245968741652982494837411511777668348741129200563744684722436348208879610810705833005094303469198876257305447342493114191203310156764095051053079933461426186706241593588746206958961638934732876730996216644398320142682658448737214763180185044777173556961778021636367362806191343957149331323952572530282130954564731151720289751642041760584436016955107235383968553821742895499124158606308294323488661830803601235651967748582210897146967753384165691728517204438996802711410438342627277624026262466348751847253612717376508389235802771528368396882781961166945884500995815509422755628859570058183336752339886950098681788492610989974407990366341475262233638926990238893031428039040596957017865568859554052846314649634956821970113864776503481396846856951536483254018624158756147206996348729316715003387342560048797756478962558017520699497685346713499957136094354821674938992191866359991681599774488159193867482774021756433849184580203712217024300155192584894129123868932296583616884304793630872076062253439999573898318441482462141588396425558351961818319260390572574010895474028487599684346731762166717856553090364039809602238793478443918328397865485669329287158423698995568890228613489347296271602536290540138354673902982982162217326566387010032266785111810232426813445240655629817677755544593162675723200217310727916933727209111300234648327166486242565023754372645393320548114001687579095854763966242782402494690921215886256938306313956019352742551850792594998111259138601714625618428577047562530660866144839380112798037215148033842153777236892530086792408399228775027445488265978972930630781087106359988498883483442093405908117401618183909490771283234309561988723483884625404369586465060284684234019140757971197391399878472842072084938330420654395883677984879736487804817963661550932407969580677978047197731286395608056222688571708452337690145347166561010878047249545188489988773728852619451148768437844078261972036428976924034371253854918341554972361806717515011345094424446404659422966151913438452476047289759456044670905170336511568047240798446272224142472278792953499818456752352129767426059312915480446403721060487689101896533198423824660506269738811514943895840206274301907000671222679442315647066655586075551287664720464372235540654233000210358689949150802070857302116972796340266247944308677897180699379604828681627553728540046185604139593290339942747880078079199322345290002553574073859774402334142151794333343570129741964099302290027431078920790007704302238675959599227534364836816460435153759314515183883370666188696735847144862599499122986641247532211570278447399953940338247608488770442899996571359984827110111530357422992764059638350415266083416203054729486557065516223255070829146192727159731328532577235143106046734194478863000777477753444589322154557990236153273670718616143749627522359664309550206175700367421647332879277391499916914646051385750054668677424480288127454374537318350427191881175414408656456906021862025023191238770774671181151885635864435155715852214415491141972953572630749576776945590558960052974874844817770690312793940006354741344733693605133182968511404894911747959894740144297432007051853616918889643473542396283952343659689791901835959515117603546877757275114928942743880015621751251313819265233863956755851950666709134640628117534290516639209058477847267599999729404601577135420007776569021557190282010440396675637571344088395495385873006503062875851875913254200685580011345898290530531013581393106535555397149838634652495731673124652216895035864825803790886456858863577275510793470815497311643844586580709794294673828271301511693049852360424132285765782714234559127936630475636286322500697367644688009835705487238760657790140217868050263097724311154676607001915024016474247257716087302738416766551673271460340007276256209310394170142903716262993540370830315168683791178449685655524328821653399122492492025407855006454160238492089102910773767176061515077520895052775656805463917863371577707708853859493197260126461496162904892409624103096990653782176727275523386658683932675434363406271434585836097298160272256853227353419688395934010898881204085979854322087891024600053194485038408412562950110174679878070738306679198379634964965102420471766510657687088162220248679052037874620384987010964765286442112445911523109378517957527999808843683179087643614432086485670276303237687699846017979823822319932716530249148689103265489733181596240815221476735748765454923615715717821024103375658776413372632273145901550112703087450137160353094300100625883248998108113115552372235584183494069447169979431271425958808185943639115040303895400257033890473488835742171952184940337455517773483791745344056700779731045115142341615094161752266816177548901803707917510296527610638455448188560763617830466066494610158409396157433712793786690681692934107823562500747442780804533748852357201781761456389518358064032134054992411002492025905704766954968431803971736406594410099318045155945325129383589584393567392950719626217448442983864093458453978764734173151183389619396110961453984019126951068405584095404088917698054590366751782500221926497072242645087754452781251993567064464272893280924085625548160912675163338206997390096123527268293060434690815302744162381983921775615822170627821380660869176963202810450793934142343345102130607882700222103693515317894097301264122767736105246009612274098939381325420047728073806919279521045046516037043333451224198388503503904291513432539785973106667261912270460850559126939066037076898619620459207534012474251379532839735831192414282036552670865707930366239831737581937549093420091884249048710265959152719543831158578990574387036237559956731635489851487056396185459730618967670740063073790146108862872111975101253644655478549194966583887141420557545036836528585396095762613683494607478378669275247593438199625730379245558312042363560024402548265233991098161937708963185833066776795192043349491285741371619816535184277606339832245385602786152879233698819395151673127813918059070408609581184693798995784555557121086762078561783437920854244237926710081055977635109957486899228708558516968923449619475933027337925681541536809624373375651279619471297211401136503188391447483545297737594710843735394228025355690015329155028574430290502947978465440896674565668967706592077585802449927098181855834507157258184599835796550643552916339615899249841395546940332225651512529130735468155064924289995281718339732346349816074549702578251506454416183249014771814101286331186392293651354124621737846276061499170324231503390023085754401564139247910971461743697222444481771609494033627214660636710784533865119126381197763408433785793678181277187046923069912325746697972849941624787703349528962349551018582290424226108015775387411402283200160207222486341049550886411929608036680481492172599044633523139609957519872295393943913700308654057836293461093114613499266437840394861251118616063631647110039876945346668816705204786620478985871311057466492814731333658527255194327804135871496657803931662469292515270486213460029319422964212804425812706721256210431348157019685774857274048203443259806199574382890178560791685008888637881793666778617144165098021215557754987530022939533553265386786509980452950774183604702819791007120603860417196134472085613384806422470890589969628591621912548937979412586699790128250937416706349080105480723630073244001060204939940818309869243854515816692311181084632554644191534838559480270380470373215748886434634746339419265611888651401955253330392519290904834423731863451187231888053468529099802487026778271277263913078509081798525431487829366887440536760873527809053320101551631008238138438249500900902046846976257399329322601882897989702338245997228604952460348687420290019096056019255513782858988072579803683122140057783479657920200264818394396161049853210009895313628060863190414414888943047769470593228853001670456867363411316210700510417888693613703592524262662969130496188914530565365707098378081695551995397815653008517054338943186730392624627626752321595724598511055068546332703507744244502182729163821684601644785057114742089555645833942029381439689273316758531280464400834682120156998988060663850444336273746374339144689896024867718502166129952100943915100924845014575257096373842628138154713864272374233960260129433127466434298032822479494865682089101742559824782842509618050753137453497787693792682268609354635442049729941940798418482016997618322419397421772753693353898272884381544015884238381976309098798436378115850410002388861926893129589241307767475010155138514333543733549125797044395218211521869992388302699191742985017078086223126813313235868484260042497584023788521433899364146220407616233139288841749461453638261404473524323076610326357557712117384077039114594497645461368504621475343890497845899145122564967714515911385832235234289860648104875061725186560560985640601164116533198282690047830315151699716895909707044717844698221513896966741174942872983581747478898256578128310353379922989500343507225308778523344807191280033638704915452331443577895307690115506837194364146476105199061953387504523644570161781250059353558761072385052529671996881654201781795360396804083468712514124481665570224946727115237944751996045554813119408397616366543665903400047293470109826185774664525342948094945456493661316085265255652467580288263054935779882333520228280200054948098832764286342147718337001105267896475001908578902436557845232907849807689688297501676434149637724004065934402532727489078645897554481148273110476133151257357570713417041267221022079987161339399853681316971491276455103414944543621776449669330052349866172640075124521857838201386612865147701699798404456392271987381474860182087788337767952462121342800549899693645561191944617959404829936542612470143634025870726549519632009252859854901900497411522791164731517178836925341671677719497172906519200510466448157065504409503851138172569347720203066710910117492915850093143846680245129109172763445887001603491750288209729762131083772184318144506805995891621127571169923079346064127852983533854762406425436075266599993131749122653115241773892047490367305629505478591747801953940985357192910773375830747981641078956984540601536391417820050198248156653971831687165952281782731402672768602089771434180634768775709403797073746020590160572412883809621957871522834146012990338736148862773066329302450591642858962528339093573274363233523906122259681474365564170168602640515186160158188590626807670650653765594165944620466669363956568958001772257108414473723442400844541617067666455968366910068888517257679032029234249629841664002517599557052243598819961551317653343418716386274864476119310782133537001201981362486716307704677826774647282296596049827998908120403500564973815855607296603632115122481775521220477573065154434592052237650476224654772660272301329947477654436231386236704108160659804502556738938385115668314373472895784831410692429921329654482215989841946149437761253974617677349158686518655957505615888947627892666793749094455655784650756783567959293711573111374440967665762243740256572483402650437165279134964000732975215098040159021722898933294338793231039215724803680999088764194659593840384404480658162515256841395200242716888077599051600831546831724918433477786118505063441599968098275678940319573483431576210969135817438740879612702938803841715939475522302556645324185616032366241147598742232616049527659001025540413369645198347676583600987855386984026262208018729522783250912859703180280218441969425180765203643162050201919268970494142092674765374974387589370010702576780670362914847592705750477442003495720832502416079512341057262695963786001111320169074254971821387221997664381861609302487640332933989313960047247796645371637400178921481579884499688292630401888764316616349629542599514667897127403228056506394891849748276766201404759746933580715395421937777991012105768798018108650644521153947385951756923210246886753031842319137185660362080898499050204022101617356097720908857403302743160201113997313070847128998576591987283647351110477195163389765502118538274489098869292878746670351443830307397241139380528717038814871339500045347185904005028641089369977005256384979742342686626896252719524776450505190118241913911604741855340984967789867034131818810673793797869973411068728872280895098230587408366860574000133108331230059250009727899329806558274812652918005264935159244045836734610418410296855722689030735077044119976724939762547988070164345715923195287952932972746294901396265268152989154003250530274862559201091375950979669864588782415548364940126817832600310371212231182460715422057043568573540574994542850548349326483147493754365496373773220495486733239763037045658323212469999894137332585806226767614611101613572049656520591882189018785263270603053115756385642919208268574804451796093302882317276754613577347026872964889686857487228421180310259811609543448548052409547359538157031875548503898880547608370068788688269437622547966220580474903595553595891312940034047093842917011894428146201407150803293238603089995123905161112063607751080404315987011297500409696754231560472578476578066246405119547703975508943812681730854533467423733421869490207311569730347286608458818823349659366517354936953167006235762997953534308759689188106954352111036361867095538042545489543304412696545260474357166559603039908238006148917921124858414063591045834998578236937749296073692747792099344722080230383994712767013556092815863229421868508139090251463363077311855024642600205574307567506530130183573265751741911414354991731774622541311638464247872020200714648059579808900340254129755760039008957349380630066636954098377454463330898392759540330706280251526681907524381044645977190221493489606634078232691139524232615411764136306392775584256238678889113145224944660810264688334607082208200516580916152142269561949048858863469899498751333887439680428807742084815398222509903058379481100596413415192426060051089159098392024384303719607824914981109687220658033650395409099420595300818516532763284214989687920826672587418793890508119012015743535464781668428434118090006029168415235383348533187905037386396663888698573751962279734274296104062171959508910012213791963227787745175714753752358746079746322571839064301586923324835072445836594833370128424020565692646002278111072267378731887126726872191198715858415335498413137003029744005750649355258127431401206242511334676158059617819248486544642451907084349371113781046117128665979926628598636379331270054335100116223861803452683502098314987416228804553623812517138229464876869567709090765492176199686215467789654582424862770082467898738696095725146908419571921738650993984811964264261563442995836214162955313340073905184638582723853775234562322282848276532488797140865702814423961934538409753306942740366572690941744461355489895022984299781738526372641304377361743394771791833349743957031226172291429711035457227695937232729074101906295933826064755547442843059475350623567499740371417210855760712036226086224004765393588699948605568330697686169617328979962291082600918123156199718783178964554806286230898146558649156909468299411511381125155341742991389062058203960486471275499895315891946963699045117705888799363600556250147583436985024926823574395714783846635135668696743043210900464887992728286712060047724325549129098936397604311913181062221081210791694318807418874949633960648424959664503336410790805857230480850244486809265586170426697696901611382688549424015172352660650239055358058366197995041602672441438455015380337515459023120585986470207811737335744285801774733632128842237016864457069607047486198847989442307542096880447476731335112085633478842996430399728419229021920437143418885101298057746216592626956619409817937335071443864921376701748944481318604699779030687624785569000952419376421112320915969622441635248383563179994224606243098311395681698947921477161578088105240459627399950335919336350023097837847853133908862106250742316504923856292891390269715716022625967554628795245869919918573505659747436957763238821207632928972146927068725735693580751614216651938355108222587422753299910871385527186672867743937055873972552460143250811442208720558905309140757464917456061527240601357068864639301421472721797915786380582191355004252350893346938051976794747752074058442497251832861034421204323077984622954661931555416635615215726778897354494460116006769887521283471871840381983976741565783685076084793688486789347633294542555508916757681232776009106139045479145056843460909547979770698845693775931857030794568543308688778620880021411541810553629009834840714086354476838060050044240291648421669052275142131766038460432807592895167868400841973873895114578153291912104880178576309949069595164868626635142239427429649580009302691028172557096601576242592893970470572851487453818990030747095262411907524383837877362409158128713569278414656675308332440375946821493979523596144124360709223143471320682609864120436904535314559758176638158363882336890598150242778859701051305983016828611539817170453026135338464697297542598747048595744096903417488638932075842009931119883762503494304591522363145579450237162053264076309449745024285941277618600519175765232163133242283999284554240670790984735712070450522074708274771258138754080361901239043899479627971669279483014835430333667267222216309256958529583210076621867258320784806675600642211796352624245123164533409776569020986763306067322880784822112390899545971165784238996780444791446182726317387198141679345094395715037811601540983018095707293354460587325088666769738735629882739853881960563120759296621988539016572465110501968706313239835459815002160825351961268407108539702924237673698499262530489401697543068048850799625780710260587590130672491392687911972597149898822087999159903341010107068149767557465707401725503442380150940472564714697395088285412005259249773457544927254216832734112304423991914947004550860440770858129141999183275987305331784848456429781552277113143979447889626878368408530019896125002673584275741655155571261341075270358470949952423073079377665049909691087933744562905027268596049343508266937097906908275444444655358961560461674819855131470916112261025025257327178595928915763303945039854416435213473298786978325014355915899892389552367414584175431537961636144909760787202801400430660262401325854979896328917674192822873600486341794886204226339525447590928337976579566496973531566622260105382242325129935723226693930642122091267784393890330929336591870708975149718019145494076014383952216402747529807702962845285638064042727665656642621396691303788024906594183726463873162294440428020738500554851696297080655183480943478181745829381629553384650567535265663171563108461732472711307477680769272465243453145609344520154622120778271316378616173363254259430231124238169544700088735531867851349402433608229122693010181682502963869015561641265226669281997004267750348524638542008635362491893963391799882671966991307920538869222471684040049344340063333721267159691201147041917797723317427469469673224045178695484958343442033080129308288931894438771972809603127266158248612551329229742417334024746883287686241933964830291577771761682747020339414361002836982058488133315473552221336812431563833366278347002791553506752128200533410185966530381323230656148604571591534160479428385333091293041894799815610618308612954247161083730547353570328232694009564234705935157392663300154822978629054102762857971297333273703882764515565540666719728314551157498112499297166342486643179411775609134711450959557919343084961773778031708517916526449688725201500853077078545791444007064236742420618323484726047723136491475821562151721863096361573525905811054838145243622035036005814605003846175073987284689355414720378538254774551372776434339759336675466351138968926272280627225495405735713919465434203364021811978218498500765234849174471688106746309891273400784336811224454390954769756867337496158169970335053231228754396019919287753588735421149757901345361271826481248933389060276203913606153927018710241678974994753449777430371458394824391963719877670183989426867595609492141955385422372515311994844295450383938054673446795445911151856183154283195233012632279217743607802502622125668861356651671635655519681316370722296693913130042581117366957922224709768447025724442090526623255905365380018578899364999287906054522165377089808231713315474635485378847717921196861498973121702417867559554983882932776563718288673275282498098954330178402963756018230232879640546112352242813991755944846345100791228946740742289579663676461266873906331777581522342375159966737811334699245923212924135306821908736283955823361109851471353761099741949593095884495737263616296173424113567671150942879170478152033576285821772470245459693295738693251021773658312565031877593516557790479423503171637994142483471479413315138582359013267582003763108708226150745705573295504365942713181479137227392089412455896258323658029922252019397883074486684198858697658362098415974745903638866527317007419058076458118352555520575895227453037009127162147565922351660628574821582243630093942055041466612609405106272159429259499612441186908214589178568932540324741961078755109902671545333577940413576191941519817701258579618970138722800972410182128574120662649455207908299502560362738817937853995894107366626555368187311184927181895563124789321492912022241110646210359833618501693880259690450300105574041499736808315138128380209745736778910507479440853176347384004545247063397017397475308637841536891931851786184082011277822893367790805350270504421943410792226356864889914723270358052266762832289207749282917494826256090409372142463862907021328004060820178917719923047595387819647946859889976993789213499118829098593390885708218360718829391305087204459752032007006800663293624879360538888971388287029909809349254317777359440506785579703746462017234113707053220371447646935708212165266872173819052805597415862702269929325600481493437638921547231605300497958979794756605564095761397521715828406369762819075055872890857926090980393125055865336626495336752991723343145919026965585206206296724739381850455282397847970307897624236878702926680906387237692189320532522099121416226359458045970749627853972145085017842340516233493923661468302255825492926619906451908080744473260013421686726775724293381761731266433882199763286394502589484983681139450292670228545017424304359263939089200631241108587011173778775619352257012108884278414026321084938187095644914207721704277889373041338384579492531985708499272520855218640444596328862068533651796167410750293524070304707523407541198003472321281119449466124483352255343047509666804277642843018881567022680763786907379830663853945111221157795242929491758400812192465266590588426375720029736515805253259007788052293993088643243937908972355688810228052150246435550252402314881818631619994761546967610851157060211181938497324820394818376816755937125448365714340465503941808268036985022315564865534961144595927572779006108485342925777752874887046566665057658298876019021877698482567419246615159025845340665233288800941520011831427110776518701043644872002527020968199814242669652138029091932842475160433395182567238054556198551201748540553400992432609234504194841952362212778437897505078719447726666758183785749624433797681339808491136492513458493426288339082458231681068212546418666607549345847453288809208218116576225588169052923792359380405671512634979783548010336912580721739662192430989087031525145116721607552444736320115876886865249328646267015831791378167746573598657642603228617399726662755800271769870038514105034203711505737791528924413886633064641767219473886137004878258259516777069720105826227718919507575679146381554916302568896559080718236978248202929605408860587819729481148136417833092342461590567370939202991674584924025270653375868697538341518081339894829446490536040463254395944315476385207950605975351471078838819788924578996648685033482883758451466186131411706422959904467439707210107800813396007022429148793662378854411211716367348254754317582190789042205801409618055002622454127413090642773754823600600296763259028571170623375120210244147848785653016212455828727967779840839771814767128022821189687420088824767478381559911252486960674759140598562403993019616473359405780811148299836243878561411974351955221911708202942613805316654899139545415059342179615966947815779766113149647853130046890591860382813025804563166309328571947344372478290218113367416023512498132002074183760698484597882544936893509316517685744657516819842880551962595178373640192589189348197354146239477535662055110283525284835306269019071478702963808538840152299906307198882252071479895581560357668718338383025332883034036718955754524819671245628059113038632139010034990824895284568483229343799559322575488498317778445890542405849175103966291049719690051689718840055390528296553327092707713955107751309788869071154741977378566187072483439597291029080312942547263025953194061456099544185240688666730778283566242764018680652589261395846294881696781489928303948765177316061305514000465103515560420976087313902464973809774419981342218355783857263514528921625333115368813982815280277433229722739008874714421084634723568473497602192695983526596817073810844710147825541153418524763124757741850333385797370754205983544974956053403262088890160937439527911507468134908971222423512330027362774411584355135391636283994553261722554490674744333277564305884145706810279708175410999923535822723478546550917678198909708069693489512155355781094610935776886832058133387090198233057883315392434495473666888505951195441399692691897798024319460327896473333308907133607863673751988123900066764264480859768651840128221096848920897216168935278786894901569246526413450802121602139944990449626153823105898028954872597878261129403268578222835369969429606605670224461612670727926350313709815290448557396206208464919619099876825548991806759100473194208390002533056417078291485469513991377085540164727488943451924946312989746445703430245690495333993869266981837593232874932499872950413488446759912137708152436461684500504911735834458022825133753010746706905113381994274182067970158169303725792208434708497804563974783672989354868011549528201550458918272794088777550916033291954945913081142647964019063120649110920989535360347515568003297240632575768125906178201686313294380590462576860547010101128839528443664349672389016985669003287062430228578436016060003459476875784813396930787977839137252960777038684448453955728424897570996067593677072445823535418406589655825938191549004569262327839929261907101203325336407020144722612137070538200434778359120265497856692742483075742165195712209274213566787203674942592056952165696587747587137838176378531746385934350122357059173211652667147748500091019466030715750255382223841747340463556497065334579480197650273107702748612736611284662181064614151102796296429816924472507638144726394471921993821774560863960489440121942156965702558692284352059177626706846878592776535877362991683556698710207708244911276309301911787097095685949008655699371365178552336533400084505358000212508665826740607212548904730729220679199102882718352714552554752649846482594674063979852369776095896370422937048514902432102527552472859042582751383531819739005815463147281920176202183262225697749465965638624004296316711549616529223803149875684239877445852383742355038071288739772802014612259199673802042711918777948480040262809772064931398608372322470963235208297218069785526404234036272086648332993189304681897753782037676747483820028597967412907312334662623417251646779270924399098258745159616463881064761312709698970283462829196465682748845214061216375222577937368005743861713787985144050344550093091774581831025761681414422397197394991130090041461965752481559763648262587145343365516700693611054371295723971068059512792413324832646774992838092705094131132012367971595693926041282408924060253573916571884726627174970071735377931617379527514295218461131360881071777294121726007314153764397619241135133879243310879832787496187507999628819407029115210515537823805211179351213719402156164833989719747331889320912195033882867945528835183907036825245564605021767119259749972381794290709287880991621841555926670872385613502971430429788368553942988848169692122603353598408307986309295751800370847757774240319164511121165725706498994672771957278592757172838588060920187441034389426373663864905582119395750043426410553267274765775698931675762095461230028651910345134697404318002084658280302348921371583695352832813346006191906063417217834860013995174031378823739760497130933887591815446360579066942195950940926167655482253492473472571633193006017861587110567503498480855240939497409427847527021555961671892271506344123609848100013436356870935322547328418833724903860032401123099110748865855725435763722711955152176716786222353618731354583077412628993303370407302642601690200469236722867336380979986469870418450078556185966684286359642009243998819103665931651998637073510341997306262240195683703060354043680913440728416519892495189216023816269503634278619314449902226004027632274361643837180779288576940561782834030428639964704412285129418714059370178647008638831921211005143437912955299653032593484041585524464244564747264311026239435890793376433145773800433760663491936551365948538915490293784616351875908195707995784824850390255305361848042937628034040789874190934634001656506815992679397761838105249804277981809187047187687974471438847583042078135292801823412326709307071769866642864076885702979219451557486094467033696189501524698814078452961361901192652470860930868060180352942049457817192977428940687875876425547672551092136184623387950793535781304257237240639017384118334351558596834104712691415484661249187163829600186508108141375646585485322299361785146596955591661967722227203936547078491961651540181649381325191283512563182241979408663597794058843401297374439201737653068094439141764967815755402275860120880992317954503150836055022806459676422922754912064632185117800618204806114636264851723410143128305263731487032755810385070400085519282952420999009236644585876003924590820885429542620177309415614127424870296139946877286986916050737299135004608369854130532389654596412163935860491226663102178479649097045801009243941886389323310890308595611217347238440880104939284986446006699633015011536534636394116207769379393128500427928151050989261808694535126224992357822296162988345836927870866272990879289510836634564983524044754840752935436226036990454546280717048609229655725418238801858829067758602061631040134912521989816335673865256282721675012335439698911867390967912388689651221684314870870760217573458004834301467439806958916172776184063886735224583385684399198093602995824100658845404206226942272402149581402626708070896999742806977654461421343943481399910273744071942996468113151271396302647506926697446958695823429636684308234717028391657273944056241018531322389495192068117017127868713492683885086633181980669087090518970966685605380990305943883158236973260286422568621134963293570362916280985929742647555214982622079234910578294369214196650766572002112734522962966194514281194794432052279333511341195693431395068762908700516605018665457009363296017533618196124241975243284908882298136394511905769077154315034213932787815015489334844122976717468014338117226226134422757183473119835243075992359280933222044659466314993959287701511652360829486466153533680651015993122354837393428059083532056282472519151246144531634047568346607080157584022524624626129586551659433507538063370778663691666944088925587405690363659189969389342141293731600554918099981766261881506908000759643729682999421631740929957525455746296324164297136816502806968669147187405800351682303819889462367537150828657685006719793212921453880589536111627153629354755388537123016846239761998488988020642204263380914969216076291604079036421769141281130425911434584073966275827580740042506951434988085398296937565198018816809924824617582876910586575381321970791544155217848965180724099809165060265524400115630564983558435890978757179547254172119403897710603327082198914210872809391017574745504343112253635236722612153646251342222855673973630068192253768983738753708949900259762785917750376908485353515087286599078300424788212641826671423871201287003352437705864067599229978190323138088261440878630061482763947411250221741057747504619046029071896999914169901881747898155268130397958159117640064273076204724364183607414430290437426254513447380196474772474190283112645475374042203806760458944486447735664860658729677158030392346977795201074597836412197331748693215871906932370317712511638214429360832550941396488327453418485936727628843892615001823826501675280711280784040726842675614210988798515899930689541678297791177881108617114078893633993902644808354432433015452865161186750111049492782659205280998508083146683646722403004730789804646235320522083491767876803910510516549457985817323103100451731858174058279475340382355889235350394657430550364146166772561836131720489087956615705754333276807647410772167077139468996021027349396993616670036331767255466343247466905578452551937238276952982931774361889334486767657509279377196809681492808388265877462208075367380822485542384202177115314595936259270441135559616037439625968871364813578284813867207093540754790856068758196087573603902668393682656004681334746916284547651582513069994797938461440889607000399406886431553328603031373299379321002742588548882693105060773680228680799827144458707760325470251442863681005214978407607528590215416981470530962370555404008684586696437966232264126063449254866060381273013768647615210942696873713667915001172673162173841368000651692079568584962349575239256385224826573104051176010540683973425773170251314570686892944832547852877195184274041794914226654559405774052716092926356297125109695378200194615861629403805984424111746699856043790753073405781743048334068756760345136786696590942262107501876280367509277077505976857759723295307082177727661138739164607017027286791153371833931739755938891893905089823688468625295984466821667362228361843108865624249067234575919307442175885478596672115133462852677130841167764533335051823320129313649368811885557607272481297940633522049044819790429813916930662349875741767723325074420361828621077732335622339988227421776111182743763375458018103945792400559296345580934839920273847939602543975667818901133727659604864733483240366547728324682134560897842910466454571610212817508889232760129636591883207490830115828630031493689096991721266514528537735315626895616928711690031172610373648059863179071754085558323352990151879353825059326543980242971720983069711253277474538398680162144094293209629079421599980193916353922455577696841695902146940365331342230571087869031600272813652645406243330539008630768383132601601995224925287752437004447628269730342652612107561725936284127404993195797297495117200703285971769112171137910423128891232341080795570947234541827494353665221965938778758829184101680795015425048039520686045583988690211557347983008275933730597183527616890869897949355407758147814663195121726594126506085207666394326936335783001929873395807547736283541052075856665454993033656472139674734201386612808942719479155450866012980744738796071232095831658974052066068415570896270671452258815928146111091502431294374957220781773666062322430018109789046217463111406296554707157456435918460504870119842864991130658042525392831754025374428310244741950072224757685896099308591827166822500596098351769131978488684584111752237926882395825192654063355836580428875895561558322126603361138341962999247565184361914759902031621229665633969224757811821973122435482871005248207770962060234151987928641411193220003876893123669797559524970751534639491480251560504873709140445558323226660542838341244074712521331593667987967031681861742152937197246928611726146931262622238578417263624611489297562717001497130595595007278575184365657263403771066625446555980250241954829041896007567346682798833214563387884122070913969698808742547787046830650064671614299056278564484994983401847928679949305564402614892556329272444925459586321073551221937225082880295711700112183392752638085855862723844593051009379220697593281838383782229752751066715604930714053198782258829135128055612535676982305810485276100822615346753415476965798131499812946945209140097729471752049444869697102155390170880779653247470668875845372880474251221754580662658651364012162980799346185486616909132373620249852856431705344995170777408131875445618405133091049957853938807494297174099395399932719805790166749355783219895473951110545108725390483494629422930237588923397540961875438642637364204825803376561275104301682235529107078730024831300508455599653195445224898812769203199178504769912342718276730533689362574674266937936838296817344320804737032276906698184417431720340402183925578994530573131509616599708063996047829104795411742756795464658086503656039866669519486623781070654457209733856568699954739815736469623901824249070515075179053068963670126436063984809068227601151534478330294209902305374656939225169663089909304392309269045454457144113814591151101737922141466908376331811206527755640316189837146020654750999366186572001966577090227329947270766052422398336456745490858247617654166567850353223876293623055455897172421625288226540509121220681600893207713572316910226850866119647087654051902448679540854028482549350002735181794970602955507943934440839234318422198986836863007055071336998068987435937106479432608121392642877329049890804119337980973183425592979808896850557326747493379089051877192240298005034314073480583509348255995752058402139118877224978881030721441527324143058460817365198385865403049673711817611355316202335273348932059170393354205898092787667485966679411265133762388724645503562748780473352707973279526349349598371674279975933396213550966133779429542271894627475327551202110477862198273161057669292933204928945537851900288196837506379759593070048211278377794505645841125645375526969651060546392280763221761620247419656000850020982042858760732691820449113668659435923575301406042740977881033155337848437792394173418027743050354593381711710984405253223342513504133683342756785966117801347183927700477035063657090126449429331429251689881176163278118970038399603650102957517863667425477553811855199233558819110987712323935201957525188541356546715046286141130224986926303652327388713691493698478346600532884625266621691977361108196368440960315116942263703719761599152054075598871843354251329926209818238519107615672097180761138090555388343220114788772995737550413398651218993187083123980742074122952604632429475092655724039719723651427639851884076890594430663735529949067465713290762903501353664550013905010213491225494123661053817607541524900280662888294501979351908577562277524017567624624489520172188090864033261674986675359896777382016187861799102340950574875018045867764268974929139308249475897441405451717956652898179486827408287875814875992847557923972056277931738228737320503539331888125886006884929604057670002254884429669331483389969370254524059425791561240441179162101025703507923711601339322325265245883670946134591244161783770770878399688338034793732329838224914782686991519736566400961220606305532512920505225540987646568019859827482037242822148662435376518860359858184377159892498897060446419132339487079367413395900510112993070167066445420763185864217424648427284280982007667391860370528842263759687162734510559518499921483449089513168412392194878769172127095497548610468204638430900144085235900614511839001136340461303686724740090904139123275603338662001880770199871980677354490706470246913428351894723622240316728076610806404351345638417065241481176279299023725519294045553588343440593897602823660546662791410147008716737801261376246292270536109321314165247774756679411229322085066275229847786901433796597721587370433411006550892491807631035775363931739765464153647051776202015073815204679510942743790972907141929123469148643048009450044511408216963622665008689912395701716222602351062440692153775965747519862205746154950965247038921318417094512376964377369178911732413977626852554012714310491824173863979032251944225279332181684289254774887675836897579874752296832925171585908104342135998921637140665138335410033066022785220335635354323980886904555718275266804957010828712806593808716505500081476572780749990165096192270340548327636685039728829563864159952394165710774119373589398541062689049429328396296078359679133589154563573709076131807328247358135268118326324796306191651798560632848145352329433934994789870723071917349312801880809104577524203673049816964479315683599468224110103788754302516212165981280450112710143487565403786820045316942610096130774042408530495779074515067975654820141287720905579128616902901746803520250189078706532662917411223200414068508601816156727333408780208411917386196109943692506391883640171096750775549534545641234469404401778478784424666575950689723923542006981606516455057422693080256040120752991412277135127509200569471024735216771880405745902815053098680367771220783025503733168850430711451286516407524959446957042219633454634169392713644592216320689418919744519280768317972055504587786711762449383363457891218264552012129329432090442631051140777423256984473785223342788342474135372410074785964858866003959726456593301920853227222297275203511768234410861153899943074294896846860335988498176700155224104105000445172431928186058137833495137821030469051263728361171027409307268037575090679817457842751887536720352236206650852256305230505826019472291021971038032143386516511440439277591728313686673677778127289247266721281301768184436240791441987502290892343966891206636074511381775834989165758454430350141449904301359047738677683636328547691186880030170444943308037740219435134075261895551238910961061491493136202815115232084368270723290605661020420529933221492893859180990162002542002688239055115370301399907642623105857190901165848164918665152879443038249497350426152881352092311294612935183992763548195265916990732493130123064365436782135990255015396310185505173834735077777002827375720505556126623518772677033065744446717984413008738616269592089537376642664407180399273030451797943287964628221048279674294597908773995553557494487900526564879571262405999222437476263531806173698992413673118594309206754491232661938320474498798633190056386737124468667610746348416247606162480292431757440067846852096005394084354563687870889773231392092985557544567510854293506591429826202980793775778178551329021482758692937370793058388017672932799826922403351640888959499127932907142539653738056534650954623943527846220356131024396246583585651515275594983827485610706728278173490550827592340402926893088374357702569455035956714930836272813420820723583688408363371584473708230537072286476711204648040936312303826411425114586212216451028454149518965117446238248420622850536902024047984123660848038419220596550567338395228829995017073992452217115831499335406478933980287982303696850019295060735041084843877017059390665815398674933150757269384280486119752935869968135596835617178241884869812453657208468481625779468912508700398434481887739865669410032832301953076116250812391952259204068387188762501395319798396060389419170746122123029169938950768223561624227405539988088440204558058104607096171781249785123391134852235065385655340225980729688571149407278813254886253321255661246431559552999405139395466846853886829520247258689758299623137635934041209214093804409066270737805398126523796983015160860906523052128163633600204007959070819142312066858284617893971605025220648534787298821292113756966490685453258208319240374728321998100549603380511252798241579135505754260310022794564913539778567681079882991689896938804137991905304487289659106283880884742643061293772157587748144058271217033405951030905063226774486721228102900073390081756466188796640907546896361296212466007390078704050629982006039989158406677630221395650655333477616627041491065551948695220449480412779159042766720092349347718001596985436380174776250924224221931208670088116766399697948810587560650666914848293343416608062392698662521004141325219704541019107872184782976633361272811605081283305507606555474580206663539195225154675067431460879051386528848936668132268716697969306301282438533469953420762855470342975633676923301686225320113628523269384262592249041424468468388326516985720893683410264422973793106369539197340755283388969246109157974736138222208714098971824976311253862735716602058698457577781022431729506737887295484138080603906039978213409280209296999225714377216929746700418263207856261438282487961584071034427539769223375106394493405209799066664318368706571996090199890941790724654747030307838080019624807590488720938096989730157499699532655517452830770666617583298513742095609986360199131414014224860210437053090268237458619900524362982505401057427392889035329508565269511089730146835414594176943598062223137208157759296304283587930010710470127708072065519834599710205092024259816184941222708479510708036682894557232210647218385986232849752966301071249686894235641783245447445531805103305162852253053254501082448558599487412728045704487192239107644905777349129995226763235840857121920194788857441061252522664415327438722604243911913541293394767111972509015453616580104651229194436284660253883527768779507749600318769596118363081490983155820552552772675138236795350179320042223054351258472894488134550833338496399908511452474969822577734975565925037755055608306237988350941701646063926929252999105919035017440566817826762640663118560944327977236679845469144011238458593739477951708550674604788979164169927763425578985335658884590954367193574415370401167323778314405048126223384057266560479490479839943890589823041039148187807539952845185685286099754873967716273068152023371549608629047620841359182233898039680599853423470946814508582254773327353328636757573087676633587419268283181483976297052429753018381514535068100987080622566714287891402576189084493074265911299325314169262105392719007767155190030391364574274685312982623500930871745380416273280904196340961532776334558180078012079376886546395979732316537090824256261907803991887288880370756583009142149689020076798518989287785769996971168508221515908874043162599491044494449953170014481753088900822030819085458568664144222423102656603884165719168177281617094313794939864544526169134046306437988492513316292976589862412469392834327637206419918434847295481623883994375424015554275116862360037839442045762437340337947750469039927540657289595789050431014931288180189426663668288897557274924731217196127475229387823811575783016270652128038612504865426985556281426581991461505351940455197622282835417307495012185234631440604472208129735484394897183594924110953512644934761655921455061906347236925393005724144457566334180301978930121338189976998149630729854718768109194899842283857938088138240306840998736126490997236856772853658110560047075398304759903460127565960657926458869701552714046156757144477627453450973893701046554942240501734957616452536023631541128566500006456046801623485599377267471130244348684520384852351864332953715481965537756172194486644481116513341178978317373400107696372453820269393619287874760340971479359313254312313389091916938931453469122067035868304488664136035733923998959447452081743288328733333155136676488719797250259826601460265577817652125406217472674326716592083438703907280155753506289473759177373341300649476502338405240063986709482411138347968338338705974423494079546644676224747913439285391899788642046641885496887939969238336654837675984879079287770840880593588326025894492015329154502935391445031941321172264591519904610161902761522073034291812331785428540919429426210376272024000577940202422765719850111852146204403678640039493370078718583787434609969915896979677785338381244230945761839897638992102628920470207620291037709488185173577045074204923255566118326228522980312052125417678554009553112179818383191858206776174385429538926924679436635015148717147015272483470256585277472320658664017886010472354657102368902314922474923660707579832266564933031967774984293679756798906679898184626983582012900742168923674530746122263109884054024573001603675693398261172795645866625977130672250585432241384437644820505923371678468830138748054012337273752256392920369618569576806674928143125399955105793614032539677188003101958052087502270612841409178865276699653364117863355130323568166265649203259141416655858797285792738414506339714346664725601606618898308362664737109883676583056810081092550222644248414245162085937366459236193653651348699149456436670492569546520158781475527319753126052722657246891577934134625377927398742252755066646485307026429720503875428289818142971533499932403384774698566587470538856518666059892809994184035621891828477224607991291840340849109888440943107979546246753541390092034918275000324093216077491218209493265775331343879947903665561229578198510083816094416678302850521614722143918531531216337349770988393860174306232144453300754262458777494854803197844836035411626945705431691710967258934775870143462826385094318939557087639937273949608861751023287656577596860240205686473527460953835859177922798586250191688457002364688903757148595208983959599657754583587959018811005919163150320592041119681200274128313335016284486460902674344270135397683783475487820955782210224946380295505607163503590175587997241604941785530084693421708171517260179000581643416379910254382867999908808611434927956861863456237138246098583086445963408131495011807581457031192862087664103245441358652227858899638443665453516702303894297457194204109773441417164404190428519147636235686998619275788805845880915966765909749674492114108726442133375766322397235674420304282625635642642644175840121275232597022546950376962211623055609077635767133316072448815585654955101222373454906592046301700699688874007935445656415113049503591919446776343258947118389730844526707765069884095532090315528705586761642816421629405502131470078893459905742532737955877651576532409759591065776839997514821415594251347355931631493831013623084174098119548907814889100841858328984135018349036259298156453272552565724311178959620813874083848046157847674706035398840760829644231147813946164706415579899819921304403052285189194087793909774380393447177126404724862602024855516505318129967824381767689757233631286027523825739242501028056360837309982143173340169086581983741475918475491295153331117623937864808813080999497796832513328952911897934996433964999577450411917220521470164214376090174864488642679980568809677325620545444852699834811629946277555556117064720177868371941947436801666568748454383745520087696126939735557097724203318595434136920662528940327351454506384027580316503866719603492890236731425541102005326640833445782713247965452593747641449209844631075229795981447453397777293853017298759882268319712162193302233126151533937693534812661937498473017138332169870686464292223521613382409279612334881171791804002836219486988875778825444025823873980148182182099311841863108946373152854262821299748171337617826794045563971165990336333466175720500921214826842053194285814384115116285601254774480658461453037769592949213589169830513429190757451910545609405157135642781527569189443550227205789509848307790839563514481759224311859929636965093927085165305673394060895850821798154619032385510482119959207250028323549229104578217373296289638947750216122154392574812579693597958249439543289206405428420336550898822081853951411255954085466629279618058358261223806887458650078232952592563093630237318165389415706419560563776757509024627632646383450742354779224761561409937045758147510645968915195932317337300254200711910858385019208455894190381482071597793033196208556023236012695485502910811802161950715262084575981418031680712053257593204831309756545855265092163986811934183642185288113589236769660862270943901307220372150310425523770400227463900325879749548902628706808809511704370950096907720616496967426731923423746981987670160107542180520996796127961165155624625044409061829111214327073445512235158590260284253403673514946553627712128200159683413957855923564270746216310520411918300619253644527417221393564428516436107705963967694739114309377741327340104724495060103827364288185837065036285015601676452707535651635897212468937671421530051795178534508754655842146478972101287129310190513663157687440021843941485467949184550805181525494564706381252717648709733457224216398636165943960950781171950498410305683148749487015319350676416911295491822272999670912361627229686224639497070838157774067619366380857713617668974273354346992141329031446636786187224602310022462902555308988563823236774425186740360956658012866953037337773139503497492078461058051346311882831371020000536066942856989722317440261822219579497114347635483569593376684209523784158025535110558206543286608659847346328574237134952251952080855466816896745332451005620319059565775857110763940958483762637058019247019782439798358062008510136514474931740557126889697533822971418574112707923707274940633377118332128302891908496359971768461350370129704567222970798577870573312741934869677805963642435982106838823972655021810794094478440564634120286592403527071481154677000684664910331311278884154184945900808166710315127650541117855846375028844147227067151061977525962840279242980040953299083126109108511660611961044677184163687135381763504527523513815993803139675783885780899509721420505486205830030196987642400698732958262900495806883894328281555850834000570438699323411100426178921879047099292274090573533097557920099261714871309814626215461917305325198586168924586045314989553020083716613295510289627209280852678093296118380190395094861430845482829858186960165822863086718978055023435929748192460937869051535262622281246564367661136236104128579856208147801386597274255083250371781973877698866413450746058967267232731477566131558697428491943445415419591507718613684897932527125143796467144093984820048641967997380729932296007547874147424261680182871825940959008557198807546570322292798250434400641058703837923335664581905772900630343262805637137620020819392205685027315258683010551007116468479279680074061672184850986986265008899835885484683281153360484267813112848510161434910824865259990035076162701968130982224170478891652122177434161842963036283353512132344850243312248994786048447074133762747612364238308378329439587851365006961294546954828834272353088607640055945076845701567470798467680628968195670915319197543145254052987661636758340106152349862806773761914478613752732485881634828396851372595642164942058582964013881972714183421275680080802977201643580229947318576052591164741387184545622709669798072910118400457525226174640414319720124220245382902759106826943789321389442493947855979648210944132451740833385970494789307265724147848928622697838115728754045715521146056479969103531953054148333531171145356812980870612157491825297455908108007657172027094591056951484954701655387655887550153552459331813081709706714009741633686658904069394486437487840463786871400825978528492632722303233374114506826295672349174737662762326008552788108694184655848659205784391007783214080674890393075640973142075761876079442193077761599481760036176432991830750592037997192237154777870717452618663849954102533672856472239470314186208222809782120117714749707818526860336106029610030632094502385212889544563196608097247151036122986024916433717449843184956573585672343589438788680127094423905659109361192278417488782100084637692583582004078089298610723375474325722171165779324279668062068638491460279815944659393695821090351847267804117433801445720230578388968064540005466053993892147155082103179001510870137904828669616343523970342292196990258528680705462895729825892374881342753918582973412704830961136191390765117276612580204864156829077876292182899156804583017289644057565053807828344567704614101006267460352646742013565755453733274235969135671445508749662712383946158946373840929844141243128180038108116622139644875186250578593737288711484969627544674290876338470919754850453663849398396217558230856367379029241374932203199592606804596132183726543066892585036926331761860407681888740366527677027195378245277018365750182395067462392180247346328835170336730841131783947302143784464697896839232329006184135409960559927696302477730198440843032232820257023562859704514395555642213652633471589997580273097652519014704729236600069591241324199853765436825038655840764239045175560298143124306799585153368355267945629355168095775042871972895414746746455810790282408614710953445743383503112150582860694513909285636177086843523959561421304632132470784567846839960437086674297454149084236811315545230234327110226171417383338979655053899828872865721977609371663472210437175227079037567895310251883270984601212846929844684422510544775285263993464205391155286285024239365002781617670640683700562280206219378814042448823359629466765725491015691271784849492504074385683319890618981409477486888633478246359339704387035904952069972426306969580401285591491349599948859606989884001865401715250798333237628759380176908032674109498627364588654705637620868736010914335907559447591751225255128508913836852127022342417727828973705074920085592208580333043855782082148105866769468426662890057249264124244841502858315554449812302999636784351197674837530004176612653613541596064515397303325298204234421668256553713490871627641853092201022423339318961481183486299180291827433033750765929902201819001357482741243139753149207230762355540943139618722107240674296415311476832014335737558747842922043444021567204584366529341710173159182617978197897426632546941708655768696058430890477675182060667281277115770201571867055443090788203975499748620737574602527451150764949316584668157698285130241958357772768615984267405169409594202122773668023040954725822908507695883789657385405821791632468488098321295100842691798157590656921814173410992170947124247154476987801952958397354367812602992937192181621938631700219642155235584732550138154362873776899906381628700970917562409489949944045855069063247889537765790802887570598662364543034053047512563339310590462337969327437451052496304575788177665110836374253536145124439671911581021433926285536307215649147774059398646788334287298651013773492146844233175262187478949778730225829211580290774960916580676882348776252974495969255075614729790529599697554352212663492944547831146371075072335184096729550180015285281618325193493150208340811194167026618018055868302095051375352749954515444077867582354672374034549117516753393597864556807268856987785369668677367774807125418476748781038155490204813599590339467244129474394573792815003824028094599549551172806600421816332657332696975969367497114104489578673290413643823253517168085862528829639628129388227340627232860944497321663584656211514782402402590813065218578606749384184445377952322260490530523941336497933103395559148853954073252625324386948782702727844036574506383986348740708994904688360842160829829594675181665742654397960391889318355833680370116872503307116714818614435133387671467350177267582748005845198439874496132757415560249420992424011038704525155860983625676249397472600402330536534750992764537664774741679983161328145598906737999169584378484632249585728495783752480836310878561865662937882471901461885315088773262562068156334432590848529540463112525812906289482459633427426238698165190572927888093821115047389822919915070245902558211502523808838576363313450571904593971431966766175675295378828502735232233602779368270757269661301501337607096777874144599265299788106766522426444816195463183625160404006731281369659324661889282885080190164345194732416748719374627350341585903251750817068586883101415555003862419244983539218839525364613827368788707039179885006143954650000740968306676548060266924480503305705296749660209510497233783340295623333910229677001931472570217733610223021097734796489880947261119632994297256409013940195841027042694763052606938098330252329125418432347003201105118870475617884225823952777679811391796616739661500932515253781789255941294304083965811347899386228125541040417322055847828161214942924297532572259859900267062131965607526293544566586882198404043801024654425308328658503232833499287435988549941302031615328737478103030991623463914696412924087111819145135950711841802378272199684587611064912237469825051771649846831831799665946147994879818437161557636373798024807344962056925646339317961617370855402966944606763098191879834255106223467800583960673055495070496793493276331979298644450377466037510382585020317042109967066436634013049601690920262621219090249854077888324501533899096916788344149599233060097627855542019322672139453629826174844293600172659514906192245880969806803691012458596741420605850815771567232017851858167293872487984532241222491147794712354094470627819252896607445879172906774014048807758577129072453132130238054148532867053105019193159673198932892656774877014735423292447970249083269836196075407129916559337801977568271309978049731614058450546212353655081757880329580792752765575444827327495288557754473695740428884709664707963938286048831901944626957014726390382559343730487374496371073956273903062224645118644490449749656105273805070919113898166979956584229438465500081529545920735636532157097363715946997535507805554475730194191704007838541034317289728662008695797878911150342014989943374969446144453244706654335658453440154629917334227343697250465218677235478336740863421831683854968396899822433137328117077040193357132043699878088695738885362242233467216650920470343144551164760704955044967133830869482134966296300590827408877773533669079173862331624211628072358273807447120311553376301339658060687700280180028816533846572201638273973187276637454799229251146833210518775787433989321731547658793369977183888978076314745852350962908141571512528772561716190629441740233667050073249869752655070879153295858911791946798331074002400801235073082356740995370758291165644003830623481131981836773308177977611665060528263690533271583667630267490494105134632190688693725221045037765576022235942876935473983886920694911134254840600455360518923704868634525588321892933589163446289563795884472696972435964861599489681815210573636411909697504895516344918955183010710401677822722294233286056112509492203175534255395893342658568451726352442742980625401596466619606738993336090430179246310065132146398003266881785251045104920643637473677080518442160099944536529477341575049464267660386671096640362538905224082673970329918977677836753902379347347769709895858181908053220682564501693282697969810771563672549178545521882251077010814758021235451274613813647921803186916913822915884279460680313441440392537924585850235750984308526643158712687677312993662147010022050651869264591409114221208556254446613078842195059177528683808602697593716959561661753116878721919482539249822068987748147602173971477551704640690744367807460235988740182347011839039246838763032440738925200384466738281768995583511849235266201538054977940959522175087403536695271373522747140679338257152258526922855444052746112021161666318300302639583938988388638567020775028360118898142452712669131640631409279884363602073695909812294538466005320588990912076445296479627985036344389239154056847907713604582307085331575131921037038016566891357015974344775454801704989070770406565913284778214429727563502406112650753003453358132572887987401714110781144763207672360850630720832453330202707655791692123003618139858289896734398247658834107741738666825568390851154229143513459746704261266277418867612857367880967820754536814425522580793299790116465924424428407872786435278847878237497293727342889021513032944009917232465111180698107357717790029681732147812491966833364881173399543283226885691397866950449809705367869814204633514213989227164527354392898575204042448160227704720372923990993685251885304696273079555046755120935750393682705119141797369409183261054591597770335790707404479045744015456320010081593098094490837513095511405312201800164315090662283025915734305891888577261264362263947261104306894221404163108193256436141946989003600861765692733540355990895187304748380165129758114921959710383974877218488714465205157788157293940766979585918348563629492139935116648302064190842172173260177603685711589690587785880536266978404851100820086454676110117443045592109126276282561425320087575471945392928793375349856803336953524869785917963498238094219524628895147856683830664430661721529245771500475107952164466419088555358433491348605209910241072036666047523717220123154970629335255356833119968461476720228226436885625426910580573094689524602951790857257202262813143467514099508214401471797800081862932202302049919374784376247594720262467753776699874480289668564265130605947421298500965601985260181859927269235351337591190630345957710676072316005980334613550480416971695875790517252391596873024900497946792176335658842987525150778536661937961396206338128101939546426151899040390341832282893908317038868277957186570438571989042294510493581840534558644413643732589327644345031089328174909532124579333915625265900282075521795192296681926686868825672165051734633240945416563830168607049075190340004750408887415624052367487641305159879906039490385335493733417381383300997252366932324257689273629427439808469348922462550415576356600049267857546256730753390099515628716500735177131337515536114187703689551579290716940824746766875509419044578150271899827594687086481940122148864547605174862184883261864820098914745077661606531993069059016176505853015798005632778559570683302364824611800144834195228036588224416280817335182600347833950394958466708133421579178309741022573288503362124128056832896807338885805563060480365758936984237983466999760883330132271015997553534798737814901715009408521317783485776302545818795778737516572972496026239800446494810891339814830987571645907080830231073206088592257790733841636016978634880564983175985621302806788255329436088744303613161471189548073267457266655659746441769572630848023905271427636140800705303178362040591949511503054180501638662470658403304631431732555512902499252983716806146762796958898090023659161968432136416224959667486718549287930876080941185827783547692389287984786093407401665153239162015856458103739023216503812210211070555421866527050646781435865298816839448984184072457878076761031920842959002152170403010319390806481144034062951507854993474398517578784365164766822343620491358415213244953428362647907361288356854783105553525816576671747625756156001307698594290074284670548226138081664371763611066264474573865605535479809223182693315690445913075607777007169317873969921563433565109925376390206157633643660944458060525724982570575381001213562780655254580298028328601033163640880284926070907927742171510231675790130223847697652038097597988536540979201379524153301501125429748096742849191981238322809804064902725467634919488300784411953183687546728408362237181709962556764187357703684887689206206253930544426066918744694488808079829538836070809131989270707422411059912900543015394973413456284511590493841634654209548978794200089425098715366611222660570817847597558470984007311253074007695725509322292880240280247398511055862939181371287872560629984731841761457239636154436154610093793189614424480406370900294949463038031159301666628790121685177399419814644657627113243699697844220162126686687938079446485561219606012060774477507880551078537688108190299752941876570367812093493985943009444506229213140242484620515702863643855545826210339512073648102436889487795435295434888317411549910970983359744465201930197203980026605054991866505065292815204476286955192196743164357539004175586257135060979295161777577301031325958412521235144944175455226078821802795722189198529540223522509004669672091029509990715674283971869740540201641335908144484415885995941827844260806141561051459276735267516427913178542695946041181907324793154882944151366267415379989112711076250029175631484542129321117393111880931604481394352820675417939940319348653334228341601847986738911346155075655420973355015228173606588509270058819034296224077250716119678600455990138588796385384027432592469968320223913060947315512594071563667689846758460835404553815467489010072857903321891314137198150704591768220492957999734432473932901483106746684477973116682358447689428916448196283726471152745336435741393890048581873446248435678980910056323376342880182202501444111640973950027546185529021229725103464247924079963257839437222313232178311495214247739889160109471894033092143647750465656619027253475070468665049207582105659933809859050082029671304554528634734524224835977947160395922185869682757746233029034584206645164798519558961655357977905044901739013102143872149293923840577611484120923975011123500206790240126563699016865301120305017947087579456883004977258131970145407768500153990579087707572679562141511498677971687607370221381113284073613018023381175054802611855279165060679044798214250634863097566815343652479933239606857904781707441270744283439055577502159673022591947218960625219966010100912389122072648861233374901770982934589991099169298352822103294879327068290044185810041804314668881116978562571878188940323975501034922762370326531834447477892589669850099084020069242907258158162721867670563636890776536433972507331305069353595704522192904801675643821426237108836572157377307151831858519846269882233647860970048141553558397004718511751031578453931462509918203338964017446037926075135923187126890650578609602417635772317629366144691076653071881008430010436759655072367959730789102322664911138144614998161602922522461695311835305059676449811770865216500458088620075178381559337491594415375367558217105305343181550143326566225539564713469356274624756915432689389450708182782688775496943385041733419256817110104782192901584483862671675748212720363338539777350049390838699108025424191613338152966399050357985417205408560023909709464643599929282746872171565753799734530460238213910154741169535046942324317941064015513723855378445213959790953444168931576630473494954890110394740117140213820815570551078911520615546771520536511167697862565935080334094679879414805417750240887493618566026233907977775822188616805343091169837072825917404317914284117714722404525672611111786034297921389650105342846461417049780198811568092035072502664576570341909858353797925340755167932540228695228581019902503905458576872380680559154814671267028343829749917902401554036191534416127427914210731990212668835475741546177599560577151296286764786347839105722288404591120761603140179976108673349095104707944370608213383028837826163314903099898303875852351133800494144541154003782213459467876020856634252662077992066347504681096797601143524717363564777366818957507577409151252959986924099096806813754181907796367756598935404422339294011533795615626371754657713491517558545642545255478605797096628874430522006124264161067337684152688690159480921534869709646414204960845000064323979529435031066021275407947728534315321997570449542630565442521768472049984583681666348751918974689725422005192055226813793209495179034835442991358705348710101148862323351559566784954170356246018149981784168668037902559870416627147353584871545655721517725466741428686131313542921605160602504316529472901715992355967104725952018948906397019240633364393569834982654540754264485141764319157246954856815981621764661886165896111694264387084938417883060049333289295884518677992865263064638674373756680959719553001357870017599544685722933889129607279922718413641379476570367565376996222334646654541376604830819799741571562072306732358412049686168404974761404545580485535551049827481701655030378234021595131000467692801074741125963962386075619734748361175225932726019955656218469648900401128709160371256868759375911789276400919961718837506012246545885052100025462816579293825526486686759199503454037858177526645147435020347659572224600758665962149761466512584578698310847921096506436806647721443365318584717763810838300258547905567005204323340572384070253697354172176527821974731517669067523106502619831337561310551237586877257528124484863263142373515763194647160385864657675573814884296937504993544759843704956297798190249180567245872320145102811728268999919023295714111341716541619765286879944479602142726481647541534236094169921620470022374424915592042589897796894056116927881650059565195898323491558912568403243099909160192831918615282649088663425460337362150218516345938096954118363197740257480675595789449611361302786364667695867568301271963159087192708981562223672819395105607553594507109607715287358002601205697288638012833881627022244555575836368772654072062705992429793545539230753939338834196010650763907247216766656134869960140715363821172220650374054850486226418921751926910516505326801066037280772788677174708035902868434321587210968927089039374479773847838240804773417800375073843357264814456664981876395620193821936758514879569444697873046997590047692632368425651949402614789786471777356985955111818028997768386727410285775147432137963368984202373242951079210488854616899098459786901440506248262450680885233308912098974840216109129654857677371194437455205800910151303724236056635171813857317789361662326290482838353217619454094379809896018098711814679141484992645440319733595320863932661985913273062193711683610363243845491709757846373539382812182988747066914619048921189992642731237851874925441093185255216320856211814698863368275546365492832808811039079900638596440152978662764636725807168725067911658024578780792821593728530161661877455961656811696286712675347544101452535657770940760879889318150363340879974920637636411741833223583232212090837995771384953434495427960715342325868841847088832095160616253710503391187362273555940154368496040462950988492421618501487933203752964164315167384145657164124950820724613758187742078749519896566446522588231334484948656545935994825909800122927203274504145759860470285757143899091550512351815664570043788754302102604692866219452365847238192814417708914247449205770821781564250378195207461193321602205605479916116314241394039866424367641551060956684598847430026289521885997195561154413504610369498758899516696668759740501799842619964717893139649595736078381295619614551278566298075506451112042729643693634654436805775569773958695686762632686940142298449913448136219350259860385172593389833350154103943829899171590955146852311763733508563094670000557063362462149987968153095277757343404517841603914032841929442020287747279359189542547129480805982702884168015512942243322947627996312218372059785659454232383597594057330984115048361588537380751058580161492475416264115517041960058431530227951370370138365199607224215533528029242407130108198518860067387974185470717475149418123191461962401702662945622845643864572093020204608515378539009732144509428100850536795926037297115439767023775432910486595987161295775105845111544393890032557237144020961359127557750551722004152866241291750489725024999481741299430550425763151359411381452654911094706371638542384695495781384186791926199204049371697570272739203048294363424785311503971451204374730538116702009342149583165449401263548496028956952847288012968046167961705884450972518684343997665018107945472511047105221401747369667901618329799589695415829520697624427342616380341069376552315995172469339442028820664732974065448328462766373890592482648945115241658562395294346100454345711623719252715272401088564239920282163943570116834007347984429193288544458554843779625143266091579426008130369572721676912878997889814740215087914522174121394687609996811633567799334403585973507566917064687641672578226964833679551971879364415431035231175832928861028452478475813499833985821454422994187123104454748641665408294782834786034529794021127154470896579319131725822596446211239597310121718701344202744132336254833338648337220195636271631351765359631647105570288390525142373863029618846345742235713638459528353110834405282354507982831241096907584366622286768473162321601678450554461789542437045733864730748378306114280220887297235167041687347633065800043462670303794993038230954868789404686315043723108801234172725595003984331563068614234832287179242838938854524199980345898814966536052803675975193576859520040441106446766050482682752631905169871196672689406649380022482833778217581261175040089741561753363098475299085205264290264078370145638735139798448591998543846715005566457722192793289970968799656790695008232697818462049275277641820868199555569532829624697639432568565928535158150504599644348992937611988240734439518012458699730786206519320186450464587166586124337824076717326006334195362781669522627681523838916303512239117538537342055776579548789241932344814627017816114993433487268894003832260672715508756293567891769098791195192441347271343446059256772834184443153946531491281587840341075960717460840517979160739130101740465652488129828419592751532800931406079688777262452806558922973626291688320804785968696862857364535507558634474167621078233228689817125975295804199020537223726144453524716344976760673190613145690506384425547363301794290456014620260024258237382415367289246355525616180371476483386860010755970756030056176671609165612567364175806685930113714092739649360301291856198388107842513811477417072716457755063668574965432448890990233828371108414680837501612130297226151912945584437866714827708363611122114370788330489870105051855013435694362551393126974722480368728654154369005480559127933253496906353048306436983121054199853248093556136486005311315468271760298069505280741363499302946645713040620850484606623468032401385582132268980401741182931474108486567156911564171356780975749909841476770619965106644927299864565750897663136286628899978447820733106243340721775775055212209119116068186217677088432563493060419282576627083003622130391845829053454540246647140928045874977406638772182131612941519728190095998292033420375065892639216961755927180438535355133513956890086185999034392624850784281591701689461796629521098377325685909514173235852179917612483178440106240397198121344330998833040706731488546440609253509424743926712546098562469898769780616051682581913062929728004651931014214577156586813306357103487471987240026520933576534879750994865195022559953519700187997719580402943439032873917759092808476086848224324936638667775853457482524176382673746215252034055441360324512730121549167576063082703167685729229197152871517406762531488549870948175369801989104766587735275244520773245758686459910606225599035277048091648168696175666359993470737851482811838127009847652839593937852045669673218266173225778844735345724699367483938568475352410938505517024707506017077810092154170387869292225311301938811419851362761242440843989597700838202721607504018968075889861292655484346265414753881884099729795494582599875446567719012429049613957560084968503380162210257494790889588247871161045182342319377765767928533293250819036752633706975268108612842494199662774067168776634306567116495066820057235746830784549173309492063252643530402263528528646541221502511900893154968632891160440464471924412399872744530864556121070659761827152256095098700143778812212519308374028249602201340996003162226456186620905092956058404879685413699013118866389447158653751600400331532408402840506040080972759756758921930151295360341746242821908130229440343955052830137902679663909586264094908013023308764818077163691072499122177858730279134482890276788777726953574372745356767476102253506391545887311731455691129138705256804238135631575589737155136352012976229244313228545198613786576992587896608976786411821115669487700462646254106170451709316445226612100925608620199196568553076312744101116149274801896818719292511960919702800591798269835468235212921368040300198074230992085303544082830299353687156345385510240614777516268177760400613355760651590899945983809334890863573932661539779004611780381718112632201114247387834476546940853541960883454739723490971438431089603906146057806842365261598017770215058664202991247372749945289086894490581506794116494639651473266083567510331777888360570408997756962024636545824272618306390942943664805757499912818002839769690710717875819768837307355248208892585292607486143077432479140204935762793138298629532206419567255865888557824723328214741217828643319936491100956986544208985204943079197832978407853888927900453530440665532486335359914899862353152221658554127025323856912614486075487436309542015833002662042058772886514232420047403416455773606690596159611926569942711528270904342114778501168079606660874873454762201362612234960861256594943995148100957414694478598298225694844091957352727717856467368106811444090093932555003956165995758997317593925813592323118412447459129349149139462587186787151840809755753724233816445513540011462906197940197035036051190713773299648716069509518208417728409582728275795449713713072283311909867291541714108159580181999585637669284051922427994496389837648613219374886291027085976583915988630783728680289151905748998652143916255286034402126285466887919236477607086182358371653176359751424294606481476117379298545293799911622157895576295068850136734626605942621918863171921475419936606095143153892298899469241352662255624473631392265446169565291356754893195706567470899272743729874585804720865507100211974189390561366761193617231065807580104411378060914617119745611837058770656032496637391834181550575338522485232934624687802168591429126754344707182831095044711371420853238221519478243938821510350248079313040839591527459862221583855473812062591722508115374098314582485379655747182700042828136366997819212540233004006767465059043847021970196383836793574941158536050432658161174920783665963186018073017548371595832749260767800693030829750653397547683543561476852975174746228912436344750502824534303070220704802954489508187526659600640550810889982641334750062176725711392653867031804892025405601736435625867273722928435180134946444962805968160285626172847926700758894802341294660619209852329694492854579326485423856557467025245129055273319809163864942276882904227163264047013006597739189959752790196051570063768864562344281405055425319631508836494942448361150014066978006075809342829758397178933140360146862464772888241706525799354755212873265121436957378582239714904251592671051201898087475323113603201549645408304623822580705930589788282275840762887013312262840421109266396879733383554976290877481163266130524426239322823406427301315684536822622610924967561547498517016262888945963982446537589950565685849210749673014392611487381630658308248913228730967215096864358979475344770044405852002554696527140199957787332573344264894024519225046930392765105761338654303708872772535378510873781556833440211574663195988920216164261499515755701312148336226781744810173536557809051790890913288824203522029059684083496926043876981077449417895525243446027025318840218051214902809352851333302888943662534621644038346320897859818598355216646941157332556547267370985828803857029593899981301407181748378014278787508503656324446900987387541523281156566417795201346292328729482282427939580061540209474675059904129743447832293108058540691067788618736941767751597359900300541663432683392121734461817032310945947635827310857349963762065259156255701618792196003070970020352858719393030237944940748952153396458410589649591722954956571202335302633089436085086293564425641084612556816145409944447398262304115739397130110319385188178784006418407661885572586971621657966012950847990123621921008927736293772237269280340412594044091585981362983179573711580850746974814900413623337243990285267585539136051607326216290249670753767374191442764485724221790896504622983379479781056908244200551929412121224022971215012462002038059005356503280832606384922032035704459977690771505492678665229973243336990430527378743480951722084359763007618268456485145283391813305752228001827841468170786112043429815916365721600628463939988581995195210613742663078860912750056204175175701364045400826967895838103283914847338171916262775393766432326528061096045849594422779381179168183405217174225702924096191652437287812908838169050234297333959726556499766563590962494901245332361921289586500543215070571043819968225832903467603708238420457699585292078428542832518430934459087099806615269238664960183130900509304107322482017692907664221853971332707430333450272799996879480701815110730889069861257617306071239415555876295002687938585874039978015711225384681675820346790615182258032713586552557034655792285056539611982269216532932616067228028349944637941915049991968582939025398488385255526252035728221372867392998303484510260904314664136886955239660898168709268796477285452961294521991239949746880418315626550045015133958682395338785509200714217751001497230075275074710777850158663256415681794728469524197096549864275103043648739674974871273794963966965296597721705571675023235723069037116233631915732228569839164848673996135000643803644574453441826217390726470921362066866805569060552417340713369555625305340320003990198057474195159626924052769742998407642155198284804979484649962374387843551908077704768339671139042303696130194420464627228679516203874912178385259600565383479026041525610585875382312552577566559963072928476002440992057595155593267975612186536443293366572918063824540530452578430914131754104988018007768572117323996008526607377045982314192938834590520815799185176390900030415841113906197359138224348300480526162756250334083826982011113831353735172707985667475449359075232736675851756881111440983863482706250412254008003238904620048317742089428634699905277607415126843246078837109787182130908136362545380578339083363464305494239390780978927482417745800099903497611388436822805396225703945583950466398711631864467685619634297183987345202829912256511444894722787466143052569875943758343381399701217432986565558535424595573419909436954415827395402509630275753990522409703404313424879772101572316008686745540638880504427273999109241662276615592500368032984198235958179906023785471116404714350672020767397640846566334599010774276369269112469332228368441902907760862484878690099691302512969349949142917072694770924813343297583249562514879432350719475858375059261839505039841708889929842204586095544541178702002131526386907681255841726864952745628115985602038259994973585655362675594870844435157990122612959314841741578208477815667145433119463578356917133975830283582655753152933458969844388356198570838602048546615578288132304089234877537856172438670339420786348618039280186853626518641090340861446347650303930990009673098848413213746851599068712412837570477605210634334434936897572627724679884475684536604219827768927739243837910893409456830438289657211190758419221061778086755094317499106587794553675316117665654530462652417211900086013289974034822927944403502417426484562776485114013774827298827791349861765072255693408477922628751954582759702826066506070907417666183220252304191777681658923255046226560351967387860243409121143132779069632571463188441179413262164351202352836321649785063247845099148644392321659277403633775328973432768542550240568930823142760078734978718984203857105120148829790612254729043074683271109878918853060403239771535346268605338209628689492467376412934912551729547381134447644188349447768494401344251179528884686481644994386417917610721362747432691003121062695621584492735095615906955125715709550993637723485616750383588147518372997411651366448400080735653764519660062647509220080274519124487505661944725194217056025387094411328441744828080874709449959805242817855278945886081529870566702079020818664471292251251152790473654321335989375917463051214255212134068089282034054562003254144379584542366710427714806416059917027472376161112462652099512956373687301197087767280915341530426135016528964661972193373879074568777650398575962786224020229120605677429907357976195266433123816353070333651285280984848702408113278912408884405306399869527680654591296484266403650936099379060955739865497815721955167925941949733760199567859803069059536487326947294509476216468303177733322191650380167641915924927279338280700314516671101056362233198893757877208533379782118056303087803268355915212633107567052392637402937715468438999657619161970853783895123368452274911623555692225413461388392873381752559628899697563652428159332214084394584944463716683237660325626771677053496991310155315749729220603185064539619847961946713774170557702408634633809347859678118009773749694548067243922802333529287305587013984993827747490899320390470832236241819341381546970993803987735456596473136441463025454768353187179792970993545915782450550125039439555787906389100827791431728905852150954919413875045039871229849744357161401590825550087262847401219325801522225304445971187967187035505884890188100969521732123929198627891692238719020022493832439231019935351324226812258702029958813344704097175265194280413648980032040378165791349071617844484889853784929763246632813026916421390334427544325184561512821129033947825610035047016377421774948292936778588564135328486918819906926724164171421628987590569257125109493696553222826129335775081339120582355689507686342175045661552994569447777814059099493914669473158289355414875072002048601224878077829267324863397921044957826299433504897319644287874721964560921607684227911878334137297581227284162595645697983406336584231017795076850548126935793610391090357392592870833695976923543719647245013957853602885240130147815367384621783910777163250620451309845528068174338637580965325137391496107056161364830069262936475207959721441187772319379264547949286273039278643103155806455192626209886163502339197675315710949224324842037850038392930530349795371948442217182083183041378448696229417370648091794275076756391188985397277615239301818935453873921017970882304400621725586439314512083329925350100520781298018527422150088114568396369048092194855200366606755944676798909073843961807263367566644460890805734164867435481907913656580958434656552255087836932499524688690008879442566843827364980910244249126957084737156272177302315755426227605046689185875856239482380235574504559981968569811870796315172689257124210479154890945601483379597999232078198804541567625605004911652548293082744635287281513027469553141188266232524220085390669163364150579748904668684026694421299906166074290404535091269158656505796656864237772236926809160454282543713997748594849007245514555721156647801730330238638866245813875039433705921767057414520766489205774362797351471281648742646486483943235093336061401116655797691162825046576427366200160587802165892926252036257426457633645942645557986324790392693885563248937273951579182621576022532941684465103211199473884534716992353146141046846676346989695413560401984596330428554825790319123444643067446594465993537170391780685568864214018741544192891155367134696265060137607879632891973807041005296897288258792484592175202387792419876536636312584747741485246503683914128060954365831034284622663466638020107900361727356600644871528222085607516544716245453738389360149109971027471449265627904935555530997984550259589420926258199614517346915890012962071569640295181621441839847842431330968426781308433196541309127817452674781151525801785842644343730829942048973865277024390791279177121713928703833185033486798775868881153370281847789878001522961870331680403310684715008375837401097110663269891139991715043224611073124806126853693955081223915460155447721225986265415567635540324587736431194570174698646950378322968987798651312517118708953616065448309402820782535791812730424461690111084150322412044673215610200945089653841643516346979903825556322917766684188859795230250233643506916470687928924381833970237204368560294302625937401350811628668335056763358069289824335832037047704009651493840423025542658043318098835900072015314498456500423125442318902595526977195037580851095264955290926723488016239477935906317062268410044343497362722654887617744834523067262649908601750466276651130497320962723405907404108863621898769200294270957516078217414120027510047283034112680094500654757089376419201489210983310454862782267155511905891437861486304851962321680078916980928648304734983232484957923494600813171029308738821046677395730781075325308508249587505276286469368461092412042193408143891347191970879259005694909314182627126565601794892221270720019864601776641699919847696736275154862238332862258763556608318387834489028770769978012013524059539371257019350056504322196069991288589910647676375667900667171282127380282593858640574084454155894387231236026023415891757658533116087992415710911597308256911167127800098201640359071248920797928805792017542825601128652418727820257475166640044051928348758436832576575222312495348882119678003150796954484086779265302019247727237026471065298428560094848435108920729244267677599582039327539745892327585982327630150947694799396052762738352842020838719391846338467534088572173721700909339173563204398053234503017066212330668630875235034173650884231960913681857777149360980041689490116971727056160660787607345674998162159807853666467170958150749411301160727150746252968732943958544767909489610440344136637897267317877000548900527980505799974963191168172708266225337916288871675314009881852864980695187381370396028284419326003619711023559742311053164242009065505097723149061589833278872494356784637326052804180582006402861703551685226675991625510138953451646932633443353865385068904450330599214393335397183289864442939240747125920995546703343908731772502529923042883374203232734450558086706442357214096593649341476465282442903981927210483956611606770081327708902390411689004438518639245601617841572918140587765511093192925863768028220590165907941099538556347134687157144839876063550980662458335612520720220949580907814933145154890848664565171318757717356341963066111398389254147074299144026507920585340751340071514397367334755792907320691720608896426503824300735345313769718324716437904871708159873486799165432883842627272274256954065798069576766174350231909238005938158742160244696817247423552953994292509436210015282858018670659714671652892554077376824961491292034215471806571615805438591092135312281783969781450994703081927105238015208320966433809646479176836534889108525087021830416097098148558707810144159651559035223704117713041276773852353891886312754617093702343707932475135756300533847132679821935651808488364526555936672057585183824370385789205505748040099889108672394912908603351820171773780555774039458181352321790656765072845548731729258490772111544902820458655310861202468968941861697022171445015505354482655664987872724337552075620927220154687862563048666172535532085422790211827562862221603935882257352189743381154928885343413199530710904327523546029430500248264957077739802381892073937470744612373390955096021156871398122556864764246432095589216251920887211620587323352225835882898572702007262730358920705481776820045727596363269083690467840517620439863756248327718786714989661595181392436961680309387151649534114896444148899805188161733400294633396091165856306919293668367164858429506823293940869582191232816993684128584219183035657135005301184959378696814670089383730611074430494128239046359822805402813576187813686589522434730205994356254295395182228061500134392815571589158447981231481145908398822211678938635402489140623298444598509872252072464828520292565161883020704272432975267067271344996307472524606456443725526559814351060442895190027659274077878283070165116028454183237035010562425223747768324484981017114840821777392503627395887084474083118578234643362792417785512124293622101857936640334434051631645794253280661440446013825896874440424435692236785861256419013586346353705577999543085474485376526531767645954392607189256842118391141607876908452553102090937063505955490498765735768653725444984934487947230328216595592431683674531021295448098904872679747812056369956219772729669683365806644615003912699986336211377930814968018110585231189358682942685461522101137560381326035518446949275950600169221365412493765625049910974483882741315470456550143652096406093373142529803640319801611643511742082382697568896915864770157315672514867626805756787748723349733982177489401354124309002361286307744964114788670724163601184902520244468735620040740309622264654680432763655343711985571479664027582676190063440190809952408710130433355754400383554239290180100622152400673862096124344668909880744202880926573230552267086985969176197991008083655278648665580665597294911937469149440029449526043495086301536577737963601877975112870797007746549418890071661890188382814559568525734378457451301227197784840297623420418231227322529864052253681317627675775568231538724332965097074809889538162887251545011137917771832867243286443933910755776634778988943696888994691961596999915845528676632835153937558164067497727950490047567439595288174822588714336642619058033763670697023340714856194302201516435404585244347634708798841845185026338793137812635541717214856290282344010102840408082180141336028935301056034324813604681521492147322330841938368175940901079203841215107294703708550086080776679370514087564489015837042295869164376071247516671567574229591171620326437074346078475515591044440839393322046915972641017900397725059820051109042612099524951242075593632847355576228939306862259765148396015641130919373408885735666034398924965044763289069798473640548950224957307956768200390028628849783629811230794799557856927945274633898067154723797266457602883876649417917562767464054747966402381225220570801059950224881395025995005382467304102646441662232282198785713080851048091185974531951412492724498747033108185569901767143685891458306540949391846984083818837586030474425981084658846986425057638285595629693942410472325656221129553330067751933865718651846652468086319039321969076794001971488336012454577857481803016054191979199544614680117789235773387674728695799991564433040914247581486195372292153066906936315900431062894287348897403298338340823794463271915399184307284609286995791869166307404721020995637936843855931118971800469302389340063790908706172984959726164305905902621863321780229718589017091560098224834123088257639595047817347704448434867678683203637078452780832605266852461667449873686042872819722803057945116165094307454226051452568944122952873980506810620575819791895762055601491538285007055386420116756646406247086001274560042489995342104276266199551362144231019688938257636385222904412273574917151688049029112485773274336132564253511603861102422110970454826587109512636577305441662513486461777780170302993188180237006679965245265097543955718613873274931212976653087536337051778489002940402865226771318918272699133095652401088385541459827888959917165778951338092192427434501091924013350639389115854163516903242696868667614667280054421684451439268867667370486571822580146856790185559077538225163722725577488826291805871689427103532606806296340338327846057635229168789402322546222028242046877919302346650280722378141380727628676836032778333406349186458028504263894026455798038442462571505560542756058704691803942051918148551418700406178700588973390708450790085141649859137242552680715748113690903229336606035176324944169896287171727927849702467764882051878917846581391366742066749929484597451051301875708165339524807906436247709216099294162634618622393529440622427676279322298914814702495733669275068709292098006452535002609555273377408595834464541025274598133459925013886875540946233464160850836369423417627628245104009008892675156026720765312280091935189284599129366092713341429276093488646793185688654451570394253151012135421144330567968815384693746773697098287522546446541827709377578110827841826491035693751930141538164992286671664910938173353233826608555513467531815661032115335541265076977772574657841923605200095447488158862370765973474598019359966607306341739481573885893586075739996600990036918882862545267286049274127206775633819246386452701810749611435179696463802569920276359200116217903708467234613816469076444671169305677657150018447882153480656015025949266587625222244731806015433293306787499828897324269870408734817960985559765235268274264439762058114855448616576230635074510637913156451466418021378332978011557918145018132069497916483961559914075387740496674121912607833098448623633769819008672015449355291255707563710354546049826849330544111294621140439092423816750807879455677154237607807798727906061929228007403076624126513085405628562547190454066203715473493910765726663582091627333970120436735631545710819485293777087563471881192651811040850186502890670785771132049037029898676371098607566309050444486780113490534083952626066743326669377297468215747121261143310716329881631092969542809709803475056306043927333643421845382254609319905210419801979437699382495266229070200976263338723519388691387749405495663714570989430319724565000814228187842414543991622363870122170101014822753456006004944863579997791921336901244026706280136738856944049677899756645635901747769403939179864780601245967710185587838586654169393459992398586302016478746695536179662294745932232273384247770578945267542222654578489415096426434130010471268373930269788648132907853825827995999395571081216040217033816638949833208885033988945183945061932787051604817340533934317957168721933193802869022006589817841383283754726606789680791968362095477623421350891483801551008550637602447987891806960663951364616237899168668214520505892134275905409964101251181130858097671577529482011973103624999064492341482533136237837287503557045775810906390717853129744209994423719094263319266160312548967160297238299643527794146963882372202689546476588681745945166216304045633881730951611853373117361820872111981589975455501960233711062336398614318624150879100093876386384191584627492181478435419438562747131846630227900822134051468250535464193205254127553021584191832528046485588178621864366865360101577254087188912997443297530200707025764550357048516352290507718610896453550437001683797373384215773449544774394350628747278242419493091308208479138703861466348809230617458292845665518686431001344066521478794567513062893982878326683304242725630327844744369232766285188517116868880214506717940778109072520441301571052981915184402957568751613676482698153168975202512262747835183352754371203450592056261122094821389344523438700653584963848166410359858570350937530552510868929443961084898094282577391911691979102238875960092685112295864686385895901147764619498248359385449621481076061184129705297187935326400573763536152833915032426406169596083254387718025014765813191337114525891194770126101904445390740054213959631433104302132035999369686206091934471679849110342876217340277862586998677738769139584583856849482293033969926711195753633618439528137151955101336344629231184105974745919379193890047926827552063492089562960536358661745356290037117283546663519922491562140039035204535865551821989352231669399758503114473826953098832480743115931512167130594843532324914529622840370833556957566114085855025382147264320616131392206983448350070852867626787796449535267100219607804652919648488990472960745084140620370288639832594111701996946889885943322739438561646668349844408106029469607704964547695026880483362124475586282609017289278112859671304551727454592146435486375034355974693337327295338266505052246665004927180676215854093057664354041848837929012588164934401770617693537632240831971257979178428633450771015588704912868703920995181607145279324857935464341968612656280410741529456687212206117510883773089624467664816773173131215054901470901965432970295984466270324640012081351872083505967475234060508159623364122592426796410740983626910527984528100161606666960443406042608299057565403252957809813586229071431267211770541534550532600398165874470011086004509983964228752193994972853861922456610004355724147205415761228460939867638440059819203299302572335617322089175467768490547612791463028906521277628921642580388087026133073919488012674275585189679638489374091372167931340343469113186786704784595550446336202757737858311894902962476249553489808639936689735327014560025979349070671580708620405014292299035345289850105036085294983307593665148654057396794856868299782431884648837602445780997196972058213539554116359742221391140623586961306146486234495214895655994915103800751558357945051249150318658784565570471908683159208327902680500627276579918642945071013753628518433758856488866261132378372748408183045307662789829667305200504001095286798343907831946573466559746801977487780754731802798139733478255575568828789043182955466560549428795631487832075075435198802734440941307590214080212345045468062584395011697092664653126258993173588330707957149371283633849083796340214990912909955410639832732186058686323180357513719469078219207802334056671989533894934340498955684589941766965890090978401600363412091475981983571808589531739659669920653800166722525741904252454858429843832618323362385452453916978302822013579273950403078640640816177526259341751108924949974855319325076758370019204501364182229190650369229329248854465482565370607939177825158414078049133311471056728202098269243304520443503599246505051216199062486815886960569896428182229083410963899365496296448466203346532075411683149781759559421532859912054816723339670621403148582426502868499521913932053159910722286165793175246606549118921987622028386968789561195866466827226488859715441028661636913526718838376504847624690641853223734302256078987614941630101086529941061743547055483227694962580571325872054361423615206414585959820375979900912233748990702654633708599667808189320571654213596858552978752341158026952252550483234401463140723670268102544127996782420550907437705808243602371773301792813088998436615056260003258799179784884545841296331038721328841114013132136432961732226737110842312298335115533381624285838475407747917294969750001129170908260201600285456112732802792202597873279414829663228477347173038220266662163838159329056348714452404955383035608070560136478397746171431877955065415837065695684334298747244127268868420835014192317635446368164352589303300785810625716522136200271620843039878566120602947318025292508612540044903301573953494370218362857302093830687177107841849759066138675627409624680798430473799629459379082801464188768902210379800509089849864589107398819464531043366678424281503809346087425328538839683682851194586957544859533548106002717429361257699192514427053895758692954449505679352872789514942516412766494128976725487630767572450947962107424188943938749022204890349476257169046403625823855068070671253641755371969826499169172316409691406535136508931151454001731895220786769088712363440607200545577309902205316363845131892716339669396803402769496181070138079023171048285048118331929010131148729491859168882086631447157552808829256456545516611089716822088324269065004980091732934639908400026562315442618968111783304247866721962017210126191706960834059339741815690173214835128576544618301644474967774275019513805388010105831217139633810120725375055201891777584055461469909494787700550826240488141904480147999543268588564595475838579057945518585096546944923325048597888534361339548414157167894006477521709769776376019448848694788497636569765762345523020461581510859256921043655366255367925567326666732208140325395005907090023948792184413663547448514686343921395379903586116675370037367297562766365492960873176376757488674178993836075848590788380883427700915229048187392642134588281693805113895060678429069836163851703646140972937110590953839705697000429235746007212712375428391797414536696964097922677817699676303321644588942999058362465844744141719945962319277019053311837630069981555281801957816092362204696135514340911947518252302679950958922166975561759734869171163335915742468417867420176696281825773096111603976236294948471929735528223619002424065235881846698162923652264372998082231311832084710713726453463711199891438924581581312126661022315720536128745877967681947047050921317224823333401085042558089407134640587923738678328506642636529381886304442827914742667590850199964272493540149226901127099176350833357537792389592367225698592939766698434314811135353062090980852064015513786188564129194569389390951219201225072394138120050009015351767891228568727442049110355082408685468359602155755835723438607448143626058706012754525058486202886819514405836650915511143593061986870059401353017193103327847805859579562495092207824691740284090863587244675502829879929031344534053595297262204352636530268374031859054821878707218676795021857228121486188901902671283085206878106181251648793801859739592643495952916227793342836444540462968516331503237303119985575233983822531971294191527666226597098844015368503301990141137570961720537325214313328510980368796759068189606122467765965386868646922582676260497637056408262335851052949629744708717026394324452649928082922249479757193709082308132868533342226653732096087937089151124182522958843604889184041687005519220747715345867828931835623256613696683788527909174723405159358084676009261123932983223803328553424039453290365069071409396933108014001197325218476574879787696804147249895351941339977259965957164670147752322564782841286492131719629685466284451848795403152587726760841608552031944227769007564824695188983220603037755208172135889964266803679923227308284009350398540672711773908508053918917236128604069990642660624952201336511852301969313848124608305227649241611157394240167133777519552261917508499337771892678321916186774201421737044124639623114531648407263423097931000685159515351247174789507554905391973080480765238343672301653309342353851024976289902252124251141081430256411534056358185516535679093931934934708600126359295653352149153043275251320354437309779963400627500028967339491000942641771783142070100486919650554220958364800336888423898716614770032471823499942475932595441985063768299976852419897168792559151450598873040294948542262283127206857619698771835540704443939539339142836040735570960938099040469262846487736949597399758561842420114439486886330966348699414894930761009411287090278696803651033289440918885520706169064747450740801663582213769795627199300848882040007967479403868892440854494111048082296766143779732949457936868608111731437133423672111599572387424147433313894328062167685972480949127394588654609510730224645152362844982473388314514457829320541628501487655476938537311830891201972824126349282668878084624085835864769537854430746952022028599523970989816823931495811699829893193618907913920305436518361029253130834322252085728526398061087886117437734419086017547208785263160718647894380910240526373545721130293522668067411514314631911041243931110552832019563215376237340094290260324003576302809915487328205376005492610918229381497574682097028652701471252947263482349089337723107445690575693453270069412470250022043375964386073316656247158038967263946708847290409653529077514132151847877860070320806330754651492356945140972009102736121453478994017990484620402290930418497522733477346642301441303559265101077020873749843475504595184628803958524402271627395908067611849875244627128099623252307748084701450267855633830098068386069656039692489776654101349908847971876458134001203761553071123915238801482831935826893738811365244729440190289166907601774885994263755714398063435403871482672068018486738058615744022610756763517417581720093400528805135870885337565649371740097810309317152261400962649405063953523742847788897982705569038702890915054932956920722448035366623575065643189509738099848750511239629979577065619734821734845537663555673071131155442252844900764339725874480504549332111780922975964581209735838485601192455957122367333814754949021589232645262816367806582022077837907886752107541893657448543702576079042723960912665782406387787682386823056034700429145943523582245634801515362911630434805108121881349588586279921145411285781577384256751192019497537919541923049285379043487111490865109582891158733635504233746485448295862317424092512229200498352708020833148718638559225908990928979939134715742283884986092295438603482634202275786185198826871898328574394237985332822790737066239053354067181060930642559573777705040123822214618487086019718627260766790851613016676650174356186765576337774883607898116526394806358285438378958479233627910548115559228826616399254380082003058357520903907664509864774260482499440254645680192486745180844853444242858632535814036355540958608001331233791132818439077109681605251185546571317552631660528351026384448249955835266842380286326245935582089615657485627325869946553697446478144634908904882819764392170714429543109786520263746652212400706132000315828309806174624957875507972233812346605630752220966310125547919542992210172765527849024769295059562993976288835535887519453573018385025923170593432701076096475791573840759652003002886603418647479157094168652202391948237775514492785478598914066009311588765138191253915909068187515502033943967694617152461362043237677691783421548482166502543475528458220298139636523855959142619958144985671204808212006534936404869443839214400641616594510479118854031052997173143010796510630830467850484642778811399230128902500298919853971389332560208553533444989345204587356746769025235010063944471289412839985893101804317956904743524185417733556019167822459075282861832074427944796357763854289890267087712951490489746521606050169688433029765250151200386294676110024402424841752245493063162268372310800468983382999270747322651518508892463669208687629583448961309444867972681566612138202064982179268766348758022548512701502961091618920030164256138373917924961239307422375673578961102393365546782555327660415827558191477890136212823217126920584385617104672565838824440275303283692358740212927514353840045253047446328796956577604864986892002334426757300686705040923450912678953271754125890866636138943326481265833670541772485504914301863035016324902644446538357289564612293251398556949626311971175982230900161404893747898463397341960615721854249826100227126216630038957288130479483657005409901626965191058820367605490121340669088209122473715648070310655568728630072343657047683459146571214334722239392942639596511219170864482808212211419423957365463018502490514843504728182063111760166750696092588382913400257483509162643678719993244579148089042997182208216637822015554459292798041927078764138436017769052513321208642276622112999301636693548580915720562388671653193347059081050627546963619009017518439861564105461805494074594326874598387915532167507312322796610253064935444510818484877550204507505226288889842088195606445115543710492540868985634475495523861711731568290977136755194762856174776703937393809242960737467122302484078523174437010129380448222519004023185042066174631650227402667721816333529600009788415322270854852313763349014246047014067384404547376290385779987731212253423845899399561779341123099575525571870162970380491819448524945151213319540092289022531886932708937220318304585152681705468051329318134315067728412021198111914338035448544624386006325963622590746033381752997542008149645843512791775280399586471141934755236578799719661898143270634883353252930931866117461715403070564231179486363150024478158380746215886756281135100965831599171696080961761272790528664219520250105322821641523945057892347989047127628821423466408622672639828607671736589217104325992289584765900866090439015791834745356529628003717069495265846516041906885826742449400498171514998612545998981824804226204130190820590654376645462722378873800608564201513249681706573503261154522017606834567740894738032339652819827809078998986903783743612388207544653635966547835383946753110619463640500161041415175722982631495818390126528485517257351647955001920209581278430444138638797205902594902614024469850391299018556617196830277197741958212114976308457917671885792235589610725323901688441083589238461597402686035058567477261677374271950620606743157713317297377027266746188654853761876123056970475234131217064812583884715480077876123556006648611178226177369048863753790176475175376832405673104106852338956329546394262189061313000826729746203706203779135698683164643027695222005596365624690927296506154118536563176405251955818170816100748760498996216183463111590864749962410902199480451164241906854732888562689414249254579555355878948557033795242718199192438769508221224764704934749289191509148254425627579296749778942280198584325692605866074836719975804940787844497130655034537174670407589528489362385343329953483849644856909705873920049076858436698444033358229307072242396782922667746171278732265835341590534847376619078501640699215376300882359552132889419350969569730762589082949164935003887069021381708745238671688529421179381169906461804859187877250282326871364652619085234144255763620796494084767269871211207799416586259530695077904314339553750916531124197111679335433434856700002273884750257020758670887935051994313148214874333355571545920094851460168916502968907477040286493587219416400119902150880287628381769632653490578875365593949766567659737730016418383693861328568263583539064080435232082721518801249805865192522031721692171137249209885162149985671889445649975079979505579384635697629112445277226180041457306937787780285985351999219089722291450058547416886421344606409262723880619759083703370224991948780383579398790344968039068010020385035226374176263351360817225845399552806891076719062222403475030117161977450298183223668268080093787253679389617274269606012213199259155596333567228761993380042895357320831146979987030236511620206141527697789475006385073538698798933872298717703204295710633777693669955805220066959537967114568156375281880122210843053182782954368279625797729125880538702946699022745832530095937691582509880039047424752750928234397849016338819695978463973821849477761552313794012305996797540914667400790739495642985486877025710379613651130955392047952679195512444270969522085702386443095516432212549127704239545528375430954310686433245303608014404181925421586591720281875683313845075265152584085488393439529945484770828590318332542464613033296954108617761267106041373701303068842198270340350854774050382419321149091732560773868246112256099014353739477242895402849526908533101489926414399092596162878174254478257497677460991496558484151562768417728249908823918808600540521036037842275556882122556592763453987293900177117391834725221450070128296717917457391683095237348798418149075369379044161674401626818018777589480011652306877386980839377821880256472713888174329357359135568798799221210173715803402592517721458475278804411304617305237424821222338195424462517486491455160016787696850188244985853109863442300649783466275410547180284767970124886309319499449850057702648712875708450157745029968351989882711511348834087136461486901313732294583106223060157479096864610551565778392005475629163992183621314157901833848037507320997116154744880381928456098583125088269699272393371665083172768283262360745368547678136451198320831606912051873735976745761410421324362184325470846641846583208296868238521172148480403356540275272060300818877638549265864818666639091805985177958320507691994639460920476540081766184596621566264802950058361448146733705559249072423635759609198373441341440397779538051611906863773651068504814877735375885503377620999079128861706664053587445039444041220450018288315686655711741155474000519001728227433115997122910306098730130192252886549278717492934360920321808710091240463219157618644260316077787255851433677326082453598952829362430208381869255431403053829490863033800743863737440395960392689746753290717960308254142784330535643866351130869345665472065579559499977835461390244193113959356706034582826818669348825082390169457477428636807483600454882814820060501224077928356832733001945297546649101882588660975438433756679455829568788597119491204832305342685772258885451062081734269543199469794288793163263881413403544752467522749057464563526017745817291279914738917753614695301586749049371645478442548050159810226915555626783570440933623605252369640462692144529993976499672664171032605022291019085613705652257949714634802462572137944882261980453039898189714152653473439234516163841858623459738099938403055408928646001022173966577731937396694645147567536583695266233677754368859777761972758404698859233278634852714573163331657269546634295058825168178341799094426852938214452701121922746991562911899036395771387066152431730816185645008471894498760870957860564916627563926426399578380741662534214661771248346794377031658035850679948883495317398281126204545980163410642230316898898090999206112919738895977913815446897361644316818751450519163635364773148144515784788063508166585580016226629283376435760856391561980822997695257930053588932884835659527527923327474187420596567142035813302048306226493212778304657415924447071291627052727688698120120378087732349052750373735838964112122778413054136414834968291130519458561179713807871239555592224007548419143032998538671375625181874007487868288274131369466240482153588154809687796579442438194406528076316929827273666069747305970632562827601569305830763125378554632888229854540745760479765122426065870496697281562641993858412091852173169082276099588541434626933854353155237494074736175017022421192900692642152516049031679936637537987029996864962796268768667190740354839470664283358716308750813447887345340450714202070715837697004952792867220735524538768841126991859453809795049280129907650861056375712377404130389295451565398481527524953753499604695474159316463700230706937681439922890339780086523727951557431190137609772423278872784173807775035366335560491337453832372418223518412848468946918674611475481750105517269155224209345089724524825003551677478924196705294468531432622052594932847785837385688123871597553079822162452656637710365053186091664131411737367277716938153586968591872920684099026784624775898546470927836288358307532290138032105899878621001783304760605369360152353770145254441154949242240152542224331456339304997687062611540777820660076439444190928267607882161594481918633663221991414439403215421899054041431060417615040821321625342823170876672160383445402072422007481696388281359189361283363922198841427434819602256049206413295472992453987740338394644003209564085707756120561947108646722925941833149358551969381009394673966273774751779760811748954246592964339362143522632016233694483004086607808065271573545252706009310291689833506206531337361702950547030148096087390496633782057528196201734707817089912986672582131759832949677700382664987880724601401032255705737637614286212402612194002560243735398676630487543507526018373495739261575959744274574235494257645515642152354228615172670000710334955218368742166075808831815428639188688332225569182808671204008393247503380271171708607546174530679811374027805368016066803138856906021436931420152850757029897565037345649058240380421542104642220382610482295715213887675431408115182335460829513635173681994831904294108641691299418203529151129896436193244821729910884033798751585946472966388514103262126033212318618200252197147698318626280446773828583854047149399563697386447075265300174436154233609829773663269901846269155051953523593190543308209365206098452599390943363954782089308633851402759701703778314568630483990502370475683256725492923654505706706356174930385847434588714062804632272983867699503307891727353245023548079205239175898105710008871517373949468001719478481250713294402411636250844653146186338007754447259711111128371991881155115630826007949034294242751419958783845204674919896776943050880657595934719853912852473406158414355913524370320936035561834180314607170834447500128868004140121557862583611799845146001405850079299048525669818967036654096348836656639797262730894959819423902870815374779121463772747314177378269944865498427303546029808796521776304255255216803507644300784063442301365871600608999940972863951700849019475701881111715529687484386052317498683889646686845901919419203882000422030516296920628320590654617207485630420354804512239256640728610089495968201451356490927395534315575028610061453139197315548115894630021729922321221753195850136300616542167529891318797927390593409627211124289140416594386714381315880751555846733196956704528915673840914904741771616189815750650884737423232245172495511512989611425225780227800423334592404371357836649304216013030766558054723341804042187945356651739217397847463009196391231609746931899500488182539695505693827404944967320195007247939689814432230324311833970122059679127417458105879271737075158010415968549652958809041372633316302963188259764514738344357145474018038167673843370689964517804234896052460435810480714976696417168558610868869245322897402201391132113067892016356374174873377671509320572819356485593755291672193644196680884966124441529473020095660213941684284076437755097157587846394917470583983807439646660337945871595772577767801261173303170583505021601034821248336026581194728180357782119267333712330821323436633189064043619348636474977666119866461499656313726803410004263274949846506796560556844759094098685630237895180046045359350911797031883175813157604975990683594630897029752712445056323157719906989490818225987666841577382209520160264277752876844771577047849332673632779110784138148242124979438713815217221167251048848567428049024854385360763495553800878410990095251162588671122767647709944692164325549068026553144196969524921773876753863817130046195340017179891783985021673221196323922353273662930212322237909385480814173542916332388388407774093303291269644908375939036697445718766472894568657573096004108354215886562609723636123433130395594923477164443218695653591058315366819169236683126397952835565867763748028209661346736583064218250539674365144432489978978203289393400750680462779231544276844273926280178060851000403531423179700156456687804769399442375105319338407483078662896722328697076749189340503347301347351716023329245389677176619430778320762965984037601596179399496344858867555673836613108826520860673660401369482061724667999772158073572083374393526197827964132180034577442640192201131917448886103734821560195662965673985765527857286462768915122182269400038650316891531398524253672639461677817525673957366602531906862115360942618642410112651310768764173366060105178126893816818907495950563079487400832497639534849785966075417581139360611142019315543013201084670437833186300206406654627730866869690350587301070082673888303592266112856619056213366908550357778756770044824624165155191594939677495205315407526984968500335222295207077539964328277088363300174692978371702140631925972905381584991509507502249003254368815497977425697241577032724319086100252219775877728077325231388742861729444512481232414024745141807251992477529458700260278401291829398095356597851941160826189282090274607494929486087610225383643111235312379319973540466860911652774283355496504097837282834926394323232459771397531639270179771881021041975157471278134185856478232226080619265515254054377643649698801656328362596063159877117087551813175130266274529985735630411255715076447926825613716127705466953660975273434293749004687302260350710156498136613273153356220298964422220820769794215293580480145853127878262644600870212733127345142666216267192809746141927165950741403201117424238105041697846731291204203684320227095823855807951249567936890340178693737728902911296064801757421583370082876142251528102534406997912820719164719120703576488640296046788140619840164339737674756653687292263806133933821213200375083363529050932467522443417185354266702629396232911957373485921897853381358262759307580011623904943952079427717637722124820062020619830650693028198259219244258813506940082792407466355931190318600318438848483648054926482576103781390068135152258817463182896380145506048532080319593483270764383254260980873366763639744293518659291033978562823913673278066712769852329727739910777125116730903634359321172644511681129867339200741562257426077424268534099321233385409057687847352434607348197329068137322343930397554699065070966917719128626117977468716057323212025992354444688997161496663014102203604546796436506238950403366055069985953419062191299205980039303260240119123637001105546950624433351510800618628572516397787067215408960756195618465015611995631238243077706050983518400905729525620234393071314379781420978270433840450824224986550664035697548565651211880115038093573518200394819084555919859672647108659264366656692216627101149276583754765461701348262836520525546166835409046180671137583526699380394475853026008993594384982026278345907937245179937765661602909222563600849615675404885586480817127714544073654571326213465387723420528595670210326072219927076868174608758946652093502237100774980865282596229443537891731575611586699449135048711457497150154601336822695590480916359361583847465682467848946491220104626890701409152820689627090720193230939375105527300727049191685399446664987556915017057573662118792639167678425879648698698818757157726901236920064607425062300506661587835770433383167318402314392525818109207831200025857624867053118840898392326239881208998958375211096814897459435039945721203869064248705541306436797757065095349174244475695318574092122800608367813982123899596743503334107612779565830824632818665785766957416638852389961594833636970183529287595866154217731681959739776074833046386066639990199499268974064534062168291744520817327142057589139039428972374625570517549117743002974485483884921607375990158798482712962197165395889316510901007479054742579541809215015956111497752555222187818446915334710515591402565120578345312230460057638045701342923490435347778964949131213333804142954375086063501356531128898635119297428796299518145295220831256108885981775600608921522748391072255369622068001322835491580623150276044239023184350280668941754697695101379519352273530009312561082925919113346419952637172446408680039920679516513630654702801698492036351200636365678610142863943877140991639054713764232322429642530812040358782766603576946634898362273406537232904735009090519825965354557841334084313902686153741770071335473814348731389954350870443775102922854248478665667286047035380043429476818365278682663863283283247075120651160418918955757988259814579565163618828909089125017101617105319184797771593776452476609808747359285677194621128888398202449114684339615834966293446092044737203881501693531295916620768422680880388405714163121968725631755794554264652194034051180974501078002000814324374693848696993508451929379649868379755844275967487346998314022312548303915529672534795520589711921365431532295328213991749856933558350637638177171769225449712167565588163469591150658497304546439309015763552624196441681798975599448633167259472158062872444128549663950756641651072830830349787954792834112653896237649226072083015326111283116898751743846867718457348615413884637957229685667502065239692260161413723262192823362482934750515160920055411255948714661771913321686344098761427874217663523466346815443783513016023789725883240858954752107245900994575952917207919153542537496637750795269692923053107262073622678448619196160595986009806401176010187362492373734934105999608013210082390696888932820940065586617341296175599565482808415336131919164949835107560783023298306611315985849289889717259772039316173261865788491450117391508559179295725710079569916110815082987955699575657298282459514288847444618024031543422858686613622290461387305295077538296072435095826290617191828730405791735825311597708299430319906368119704937926261272471313606021256436421463191474645040788867821911402770175962733247047195617585510627751867575278031369730820349800722690911195422515220858257237847651619903056016531565327566498731731509844041287026110701490128873531510337084584162465827657152622533242199660619328170497308845384024784598030348762698079858018052537164270548637306240694000912478392208288148161000960889983716240659556993451324997467047829864114381201524204010543774694015267326503355772222663559845298968181440564681150848577888304029574051714570052975650316052433795550711182265107582758512917608120077532213021893590858286631735987998818366874869674560525290166566099439429622646045358519995459349543432837513283090302919573272491417072804997375607861838756710588024187886214126684929201673446002093472318590509011684738998131991688657964204419015138590312887978854809859313971113704880796169862685025327669595744672393652504091971027682736756069093898029342310623308730315612141323214464226982553134240024655881616190466141299703225936565218035888341734985433283233110282733820203611050996215761380865028563522468491971982479101927845178412058803811819241209623035313866886096177698075498821234093233879351154344910669993938591024604728208539635168287579777245445730786546868269438431561789085923920347342283457294930247674746835666575734894848618678258932593534961636220373603985678204311466135145500024571569888593350790050272702261077825806842792992602585328534098829630759134340073669623308678897251194609511072344008045200094237070081026245289883907414407995712548892291789715096390146613591047625288580761812675434903991686605389017053766438195916478962825983470461345249972604670725008365394001888123426087651647899160552615578703574582250513838761929445713485824719171390749937139403249530334008542598457975916378230678150133671331003551597010159009132719612990010698538121092423432446138162977698547131840762695955788081725985016906022924404862408221576822417730828164512768586019314208373808243546571899718652411579602178529958619165453780752347166578156547959128508057304561936728080850126615066052111214908303854982145255170573818544481477921254226330306230662451375426594774895330849309577600786003230614201071020883024269770078954213908497155937194058741390515352421686872715613224399289019888539084844768531224322204811153359951544596810900599448825199142640687555696613716252020545728242773608312514650145171449899529299577021456579508201310431772573402289638725164035958649738155829697326540640915510981875663055678673519748059891918749662334431189354817244522802310648448278779627302962325195620368265514924183304724118724173125303372291372389040936537471678047717648117753009278995869671309051542146769142225230318740339184365692784399670640915824250846047650272858440331929447381692299683812755813008224583140818491947495568622936803071743968202579355180747517714043019614607145653649816592041563389518938780280700442362610973508308256539040375400898106994944108399351825282102037569350987586810073456112037776605827843053828438981260574749896192528388068750246918911718660220403276425944247325531920090575706208776867792270886840681754160252934350084250272631536825503010052537779033373321438821382435965764241542017431587600737553557745474397523482110350659520377294126942572384789307899594070810144774890285222682365199839792634792665593754655679015375354149826733282485154992220245974583284896580534911398537098426547779804964400836101973190382480789186348871177214954844839561684946428262294101456787960009279851514055734349066422793182754520757448710366591615454319703784665677623211991562772733205251517446533462895261566595422573900593677804592716703310587340918992564520704270387878858458597313292543883080082482787634084125554324556206251100739788746440598635169038144432676209403132179562985290305086733420154181918400570567413979067014880034577878797812957719920983865455053277259999680582869043885652334216276883677184085019433497271750892588148075347787904997877019374415722678754021540479578513550630078424492398798420518768976761865857204089484453049805499963751596174022403855470613324054481094854926927823261052807746584952053754306313954821880048455923616061082974305442715941420022054031405450445897951632083531439234781728531738167456845213790473495808436829914360157864982749392006564959638376587015167611997977926824201245150003803450133936498511913839124787741792283368509284877491972695635239281885390952683564090665959214075380251907616538994427570289482343210113687647449359195777614351444884304037523476332325991804899612096250328645680678810778158155003146330696082336023700233998970831091194852005261343187035309307480308798361612448050333444312323978575037335260576331336433858686015697278955766699604788181213084657292470249991142164385467302304945900560891110812905961480553187854384836596972110513738617376086202799468464025408106908232586268881988792039667298861446037216104457446646803853663046013069656395057155190849421144682670421846160831850102826947430019856082375206633543834523193749553185047528037320615527425381405041253014259452131752804410655823279820136108910771783778439880974283224348310711989358522855935751326923004740202101298459451400416589019165024835754279332295858042265790959327199974281638438506819790848308000714175494026577350400492185071139636263769854403104857193682341883951276930265342110841027182616119250773398811625130660886624602407780868902173416711576986650115149305671260673279753505243969377893067619526447635729529441119074893407235197588399828027382232750320670043643326758827812422063764907388158881030337701305687828596327272640123699727010367862607849692860361541323036568764906373665432803448243567102514767342131289398289339505530410058609866813857349253295290432729269991195889597737165377893215630466206023166024962477017161191781127827070006291409575895764769829226738391275694922881980246911599396393338479812901744264857626177322082029538559563630556616543810781482249174236985110557092584689488154479265591505387195106579474259272859713459242641348745191440471275395898847746054015429178587841162115239825603820486966271529281510366403472296147079788813614384815988170023325006931764395497337009433960614180373322156304969202239242751199121871222629562800846310915244405182333127155537626536839027957941904060537012910025431434780300492402642573903781697813348425960076397087452378830317183642541812745205516229970112272718206532362683884186639659973912482265079090275682043004286748881174622354703821851264902335673266465869951723317343462374900181094288754342040181349454630526277842697519028196940920376159370777486419018086275572291292567981806946713152835691535455948705731850859895069173742939098353831302020660851892183817379544099850677589649156717923144095550774468974371875124431663658053119555402806880583824221065458162697916201733717800413030163266470246305251547049363901215528104682871868524922770254355455624545290407030928773038532186750106538898335491661308709342378684642082841271953576018518828634737684011287390962805190084147025467508407411655879765691003974904385464072001828588014335740462407706606808612167601234480611736427228618112827704472043584635985407280265958334844873505985857237108178520679316655503936093348319956117320390695019472517809801776521012890112591435473669389428581754419046894046923255303415568096998384698725093117875217303852417835768152912044250406111142776413266292652061796232082428720580024609967459759036896468221873913959982367891765556797992393071545942161899579993096051486694032660852820480062698698927493588581174795760867408176874186660506472956061944281781340420352774622848240707658370959317583406995254692571636949081590956328096006706197383513499764376726197139398085848603700518240414174255311281585125855355740194693213754199421871890238849466157841693825194368075292085134092453087535967148117525099113851341781189760794917035794706055694494258482956647395558430909222569997603353284406127006453036253281308063318701269040833937580219732449904239426646507856278407751876661013406678253665461464584783827740342468193498332104168467420749426252882933603032286530122199618185669379422284742429028725890562711542814968927329983587532873668152541044179712470018332546605457674459102281374900599477215820199829081556552807526898212077292497454047932316155213378181874220540352543603184769229920164527767777306250851922134526403060442257537323015303163982621428426576777019797824415302697928161787320129382777608114569771537379104469059883388967211171499707202854508957444535183058864759492718281897501001595829300638565775489574308034871662673779440451542878750981271127054182350403097017255506736817712789944334522639420369942642678740335133081246717069757070648707275081535180936293222949429697077196140787085967714766609732685233171546505765856140565773775960845456936740906286266328669428134482154790532121607396162027994381738047322875433062336401832306894967120694786875368234064384227664297660444656701869957324038874566469476361686855892991641146072572271194264061083884051767111231156400270867763014031281235751733282598253532000255583890191912265196678893595027469365208573437310118982424596179501359063478464231079571735606827393149397288204048932748490633184541834121321287883982932699629926524266344658470644482099496104795278570232996495958893518889249038329857345230151792242874260713498414516436134825633742627714869702228694057786003993134501385011531790291511624302877921833854112562843063672567760180497054947977063241970131224816060021994201644487394051011112197211765497074367086474865075740170896515194518114255811986699369435534880097655142199862048846239345176960369203664705238753938974699693508256308782519152290465743222648268925760562519277242328639127610021676597282800198450285095499729800995384232753095524076645320487973624954190560339738671833302467803233948525620001117601741674333564577954987206874545593040367788721389216020830487450406321680864362376710726547061447276565813803021869990335460062865640211049600492097106723697708312804192595906269882544739856107093513043357321063684213663372762782362180248309589057318197063761359430479614963264701289551968366826364966736833521952390000024743063437933623000623953411835512300229032193829586316174250682142418398694909701090473965309102184699657129524537561336975728372175168874795224147914148711963565796431786146569366102000924023102784819404054668014988029628709164651846552798152833422899445358151321578622547459202560892410482059029497843548644111967710543204949242696222984025027659654694899686170983562847439636417801318206276919192043523198904433452023102798058792044744769078497374792760351482505768251859734514542768558870216554411055011410631684455189753652595702815040132202642425527026463886573946514056612527560247006751653437331618089233236936606370829603881103417033296166452321295231288612994053965409370045379893155849452819077922188644704754137235345657817910805778845558494810880909238967219046302112798717270561351888509361678169417536088580106611002099172594709477410571314544999910850078306166890476020752036781330099673169424856008704015500077631206206166292106816357976258632553987149333137350167341783212850300779912104342678982506504248152610241113540866689435928100756241510092517931844524896254564419555913642131227248606809804899777131713811056838015165340390074183695787432567422520968776883564628633233513511599907930163807125104839764723887143946052360942742545123692822564843370916106921001674489593747777996103018026362034833932992132269061859897909051714367527301683919612159368367167738058894188928457712631826457541965036172979317474176536338423015647293838908161264848105306049213641663711752233574270653059711692964499921746963795985544769633074338510161809203207943751346267398445110687850033941167353500878744157443428415580317707496725545246434126144376418486358131460279656513466654605528278575523216676970402117452192037861518430209848577865168935048831406485035522858465938370947252367709072241417156666449416159664401855225183299399705579054717239283957693283731519945802630319247546970024432410057561695576289191572608729089530159693107388918410754590623798604655457608901232330507982489574954099462195530638758294174050404965125516980449095130996407415410195387980350151694513197411891856831307327805358356698209882396801913669179647753491089186020674982184892907625463299249624578717721997380532424387343651569002457527837456449757483607012992394838009007252691039751582869990168037138916748830232318653085335080653083526043856688670186028249040341535709771379923789775762177188342995963982853585056977797904148939056748801879733835450354717153122511270491891360235343265190636356825882044145531071859997895025442999169226325885485813625069925991591729511467856420289453702960752662069319158666642902495017091543885519964993226133676172763916869697436219823042820887903505880923568162139808975619727434296048958182767330214806872417304664998882604467904308531937356991015723323144439932152553005028765681393965441262085260142184877394764676389136310206742518929701561908973568471934525882953921382788929293547102176506543741008211832802577362828256275546793803810084308182201713881458853329031959274820091701200592199953099117833606185401721332775177983166562158418763969576845821598012673813174271049968932187275896682958604233488938483172603740730836124348593229827657055277767436493241188597525856402162773079722181777414790200232004196148214046031857322009478332672342014249999221323858883718809116603131768594941959053947715182899944401192101633836963998015653178790245057789832668567545244876606969282488135545279161364177745761781996455497534761294595477393122605530141101554793488851753246922331308140758040885827787515455205373977198588950574668175339761778834438522021310746029985105766227236548468108882307090157386683291780225334641574638099087865166756615605302431774430326833690177402837765828783615630420577607649618597635752741960008405122879116481279061404755883409371803387803462249576391458702625650478402032447068800835545372976308696858602722370698963111233653264295005096984030664071217147799385612454952552777181831772901584951951909854560372696072589386259151574541270823463830439271175980992126535411928999490122526361596111548233026156647541446293329277554830364711854096510143529389956142319227750288438688934829498918804935373586797860452105096208112988366063439110233673404718572104744183112355234310299595274244165486364751939811673970536986206809204789928376132888019181157770980017873688271519393778199725722924812223448144213600898885252270939399954145552857448243497952752382861846764605944066451792232987210662100713245490580778513947053985192755116097678806459288809907359609132899823918007701354483448485590924882634543017862767644956651424796354722157834389321816799386214779893281450580816301879536224183120908960240628924382769912749453603800996111179356392347792308432502846175256954712667706743886921441774140006103244391361614630277519137246746035133732435563843308732800655636650765761012141060461377358416531418436196247789001693110016143607050642263555894511934476258891163659111140820866603493946176189130542333159206838516047516176057056121884178370909052710971948128434807464656901176145074946425737740146815438597791375873848672645250451488229256030422897579910645937188286577167112109892154975609128438307252759164514321258811101580739214615504097122949780497203766711780983180231311381597891374328722061345808960482001247440721804632839361286082034993540091382864285806263910242066110128233557386610022383572638050236395624655951772549533244337608603916622874941338383448624786036953216046924110898850498195649111887095890230193613510145198291631504519065815321270189088388627296704290245651707504421676808516063572390847795289199990994086832946125546565595767240747873781391201387483826423663240772247578946873643287111936403047441066446698740411153568525976950368397705091311535417843063054243411945379904857680336258935998684878123254784837073423567150816295163009855746496892852307493227284705226664155077465212328261884596808854642927170673725350070444252741961197904380479543299606193732442040695002200526741376144716124211218801954027048312654400110741031571074418751316832463306953640016014938523592055590604738289097673344034408507161280187836871929340469260709751768117879697388136753658819979395945798901192584631823810754765988195026069676580894996599233360886325612685123362735625387319307585066055626004646878779740027882802420747172771111647574856982595106688876402393702237323390266469571380811507333331402244478184290268314637585126900932610966855557697535997225056543637940496298951409983901140834567351839059932240147468030619511537251313781498717671837312769039133764853336228833861839843301797386307995095660025904177337451903528727459540253356073271650265962437365946999180718474836241892803780333208449057356750721882933257317372984977423266599099282399855524332057500600359443978542692240959228272673290912459803818991561043324384490649078947933006738576425665798669692443379415446873718613710391062341034390383448233727750918120476693774052640127727497859751260844659907262702251771764036490188184812486362205239893252004215054957703235885253476175065900373788748285566003405397937775275645816455395737227421619684685695938805156177510759660881009607454913555090045748868379598852062557549178254451400099413234521132915333950379092551980835259273585636221246138052637749506147640980583578697682562302293746678060828564770048967678926476625033970781406302542023194655619514801442547475323396533871137776078840283883811954353895332510717178128665527755202488595626052965066345828931614798507730818411039610132267227858735158247405661499012867841045148995511126156342015355934261054829935707223834799013010509624618588524467698199804529150208764111284487775772848083247362769628870012753250623492623118065802485627617711457150657249251658786656965488274063629912183784713192961190631904613556871231802444400269815169077491864819424417540377532725793963899074889272204342715794086421509564509596488665110248242267492355606006887520267720226228975797275235919427915873776616067526249317061205017942961480523604778443177372522326791077467084563182174487688049100908788298612704202167038412803165680494995574939768177256172259105448897302230007863117268519312597064768187255130301726044242673427786698152341982254569297977240278868984891166355066371414825067200084984772823754683042101867258027036027476855469266407736830271300465071455582376215718472195533748650741862056575343942664505404037479419670409150255833389198444296084415791669715952930804007462595691273023243227559735156292449796015273640492466377870644878315392384589785177887539290582648130696720711320862472635706860175441166691032676503346509127768257945556560603195487567027297576323362303356785175803318918677320449952687021732055845604246730173190134549003271374118898283894125164323894603590068743944531146003350674076448774165381443359752047686989260800139692410055135969281177606476843588982017807708515608479384513594746851413024650968980380501849305927478539441989456011996695224256429962286582223359712227794281824745237444102660498869457847052440671027723839204795559303129062822511469824739560964393834359859929635373536172914443290732895471467417104363365735707731506325184265133230973784405820243915706425065493951890095242374395501349312220805360494870097576526232875123703076743070387417663376105362364437205630273122117532544966029524213340062176929999717381783905084333815620357494376787970041174495036557497243677281600587808349634551806965539056839155117194935249346042778956106632508795230353482569477069386512618010414132129924184928600023128440197721512800198809956478335479179337198632026969678386954009079318008164362846386344339486120391185057825195961774439464544150505771895906204495364665377622021756876593480981635979604149442191489117114328272672192040912919742552935905513608913242326078626453536864401183733739254897849995611110276146509443924073235009023719691218773158360764753327454703979317533126234426282843530335302794082473384904298893258225948181162739342658831516219825054792022307669601159983249086339363080512377031773261132757269229977211142849021852090557157309196668742500048389755438581899933122679636586520214304598813572663975258354051025852699954197374114419597460159601662036639276952649179608825890199313054370473304523211640611368469021722547980614979242476171338085478333441956842238104365875908842432798630640564544326894175970579229723620839271960603043447476472441142660324026995502572161895838206205378999196476914370484808501312196699122674965630568818924903663357628724713400242029451938039998626714155371563849073247713741346346287444767314689074646816485751160938938999337930231847886601964473068944834037852992209548100650763811594224096134948539253109040712690691269216855830651986553297597636614753718653339564659889382325613476929550861637477222911781432287358135236223629534274383695669627549431452882722578926148307114259285991700109575705880748169190234862478732257192047734754792756620991528427151979369189965393577176485692772336693645542629912372796534801317652607993715044327431187877041009738971086838517092923710100907528526336179822906854923289835048470624420481964238685837170916786660917889676212354290148388280020940738381679553078676749758636712985763013623951751660587578509102276958322264210046200785101421502825945911123012280364584587634259181130196916353276091299445694964428597728137075874379686469087835005017489134888452113633357577287429653099741239580338751660940887121880066830492389393010518774776353767348978742555972372330184741507949462418635416451764768097658614831897182044113502280760430899855654530958569965955533683563893988461972822427422076882750375232856942369184401417890531479466021562118008500296943871393282376151572010899346773504229154133451814803015756915906227992532683593414397552584026465238257892890573036567101736050126452498096736392981730937228677196660257863463178004790729816280649212330064666013660254456136629234380924976984101334497192791581230567538702297699032118541230025895619851973629759542588064123351536835659149764958248065338770513501754222646630254138188831984491226388648141316985993096627871660634113925976795442758592381164839829339564274929018348201567702375283697156854868104095722702154866999179124524710088544288167705214130276977209966290983807784028414336207645618421257174627449200971747752042326820685524767732473886785890102236700361109819641699515397417452008128786660510830159565066486487826488224010812683396212774171247786223491320603209607834272825838488831597807281803126986085600088646993217806791503607025112989389328590386295944635912960650760319085221965871169052404475506090775621343551165917155665564613667617972935886342858840546715224499754777634528364693555052618749600251630186302148415852234669165271122991563100536944468671801498730497920998935730572241046349257213318787378366476556321548512923927174161248510007741395830517055313489513978711468136119927832281176148131323818321297295791798047549266187745802283591306526524985628974650058472275198789775753911849512668760063610083970946327031303479882606576512844210527061919890123387681920460218160296456739835247593753015288652065626664640415228614747324047751916350794663297758557166946069190945509393210142687048816449637042190822468227475328733650032173235672666400927244743795200831676102722395863969727567694068846908567549609242112115717788830856323137727547202992217523502522272253112868896262838243147888296523419175141803173410755224534830267044920690986185335490818206271932505918182508775140470398660921389977730852090781945969119976154350184636912293466278966448391225142638369704995292256244012584030400524591662140937627737449386121543878455783320679021700617953336717893981889465269264648967983337067327225892388057209250005347258929490658147622592695773012144626971529712278144819032069529666997864089058791198348393979932361575077570863302713289379785810115889335130239535735564073997849999759458737623962767769126294476903369757680883300328276552613312650558732652843714404634182749095640479868262076759716331627772592214463193751382134261176828498391910622549687694123424391017980178906718736730498706813258437054500889346885200515183311381656786239104309674420714409381425228161404125100946814288868087278612960166988675366591031412384775537492324781380459499299268597444281909841621740244770917923721041972298863281633734061631142270805174187551101688270942525411786183224210853501681245401058526631033920384224921519606615277073061414944046207081976507598254860629473542481944727661987889837145703401169395896481799568065351287400025496668568760546397579145939546813673741583003201820955524435729611526754252744207667837499755009049673501797358752179855893467484427562555823876995312768585972610449524226279200058577484426934933045515939737175177292677714473413829329417235844785846327362961592399168770253853799330652954858925315292761171337459954836297231548691922192487639856016324304972947205832963752633336354298090816439864632140483648163470321680954988577798513801373223394383663425585732929245401653172839689061794072869913715297571431547167744311396829424087046348731888780347584378206751686442875304771162090656911404563548484184742237335947714654760572171979899544651492956647459506307323850326052213819918788676018456020335516246023292822711328044023308640342680138038403173236609677989817914852327398060263690538570828854769715849762581214282845193848197398365380836934928358877939076832815703439208270370029560055647276675928269781620522200762524769535645364784919973855108454677730914115139125494637606833922620809037573016494549027298644644533594951028744698667155276514414766477254065752289656969799583664122835753060817087372813613656860381557192539182048107455271673430961020502303245000624295864810270735422705589131914936647705415726785129321493083617857702790774961609686164629905494918892125479790271795834910994307516063209349860202865909893288588895649364281138454141291353527434327637022486788504092214326360492977135605777888570884462550479862727055821617160252167062278611464124355773128392235969554639135266830428660533756542471683550120397763295101698455692758038966281314724581102430065986033215535768039033062828807206799911271700387480348305830329113035857416457606623439338484488531387477049493717117239023659698520596267623660987142362503748953722029406679927273784425974646733894727586046961303790094397898121190755969478102470404696525711387702739830576594390803414162125588469395579136414596372300197030291769585031407067057989920783158525502421666126063051103444805243610575268564270189757430932067823272769552538251433275789754978167571082307627928208806317746925417519630199466505775710885831242925593447375717961886319941732418258903431281948049748433042277965550118258815641963104650724933974905602498199400573685800206780793709538487186539836305625332056870599372923602085474994848328894980637373174492265787167060816286991534144860954766597528823488902654859159570532660026325087242326411694751312835291379402464173540761609385003385102745416517706381803872389824333705687044922966261508603869594527334351052178383123064872808448443298316623401410713970278649339413199611036448076523775571339950035887981791453593573588974182459378783623263241020403723444030837420126273447810732292045930222676866408784702857053716679727935472425406664268099135984420579419157947077567272916954936139023549456645417318880027163105212873221293510635396710912078033602376836031897925878887574650972550342316397100436826532667243706312040303515421872191333955845209326223674644012768364727566583154015587150428055376286849968900879266897337203358532861615038792811571443211020489334031988328047606080866706111237816885251706051561295022924448954939178346025741582305608324947580341040680842925054607456967473490865196571579676062804487613171946105325799393084259051200880919285761977927232920558839749741961926486144252060973592431622824873066805825646268484360550014161301831404279422837507856944420834411207511101450854076913262161638734828059077911390352583613639197823286233578316561282409789479815201605440909503650127909619504841773979622087103013595731415086422489730230399278475662423238630315838625511205690683961638963680646664153523959440348803895062033377636269781705789549598875668386158563383317679739193981369974375013003776686823931240494410755933963421376303568679897418946294725384651858162823322207966308215363282855386076402895080308329227006076916687680681339094697619047812802707352028483855699513216557292385566143810843219415845195429591966701747564037050546937630595616883016159952254899509149762724288359342819528842959428626581196343398193213583123119503006616522998697787052502681767525170705451948220192146384007878454438090955981137349919480627978118232881922226632778372442413319981984640001067637435554223682752148818264592729275026792684913216552711148470324285877205866532293354844643236007398575439006216288594181826884556926923641569318240794014006281177698782851648574298787523536777564725088882813441121701123213857826804741140726277275839637042533248426401720628819411577083081261435299049462281836472301120930455591266506528687313609021770386761069276449021521773510609839567920239548941936419463165372445844879598941075450039488610343508012215862876016649430358616501244099968762935328987661203770117459536733064669905940126444386985931975668842692024003122567510267154885639068311141396891242732597437576465973206842210518351603889026627301639178282415727086189970919715353204115910193350523927222106535577696116682984070773842907487644315410078476967463217038196284686728432103522171516696271145914480295989845679090016524332363534359839175466194006640938473905611959261843682714555703758732766283317600195162490007607986171190902255741794334044585043878051220470514543138437150173372443271637351294027972266843645443479621081926499699892697058095893076350562150728458382580199529536946396919632547197447086279783808771561552764034010921645122823900921452874428230967763262038678807501131198577532172184732140855216370617046450055390392339178645605347848548303561930046047828228829210896010962773476571794102629840609722297735081248064670720518063827250237584032445407800072233228336265588520756439716462378579652735112996542638654185285051291221423597246303103720444435762796470847929019375620503689222763127232199586955507388218184069983819336570560897130914025624156790248415332015619965971898559823867214441546002388708152516973181668778422317372940341065776106552136179930629160540674805997001678623258261655570289633998136631862267373890529468626948055861457102953909033685906552023390215675455632349505404861390763856083278564002783027672628813069702800023791004505220365145186607678111242650641473481550262272571356603686569472430446708443889195088402388387803037312130868231097248165094309394697788421014646536915472832218081152022677685415625024009121669403615769656014101185571937674421889378950632252804152658764934322167092381926717997485279267856442239199237952396827763214888760742562675345960428203161420705175678172094375000952296681191571657325467170860072160830294584845227534642859605150699590061151402868568525789931910387111957756738945511479967671663941504491165410069143319944324451256308388426924907110879006754762253799454041106294965583959408272167849732286795633996170229408068138109439548410336779301870494944525466572609571052154255039758430829125579806018500432243611376874251220637884374675568140749230582069026598430260892777816492188459826150748709187127547979560817910734586023638310028793191745921290956521810807966382469017272095134541783102470186923669161369334095452921909671317898964112627294909028499835662803414016588107311738312491042017819538887959942199602670148532416325985073749029072674928295143044012013039280512193897773616414082515395377947988916987345083128229796849508222876582298952683834506044595122245521423880041166369718180841820278870922582570646047422347083495936468374040036322485207480222675785981188339860524851525462116469218999925469937865248109781240238151027738497719757358779710576150552294501828894176639638587874407838176232325395281207644344882276030008128001707492865774545186003859602609495527084517861915296841508272537009967379550895553473112350427490690384318077507270107385167155787194052992550064406420150249054431176719739792358439233077741017883485870741057313817917512678613594985169156983125108830384106865657074234594548637877095320929794387057756462389398114442005092677279390359220365943197477657349723318050670187165167187370454079082504406803570048368426092937855607077514721069948459750103359239761831374780395801516043925211661003888046403852284869096941940705250294174746112971547528409349744170197387728187695131815180154237760632484524762084911981279172913925697986668923988092288788710030921955238528710989820956452536955998060180537677829750151919488433975662033939424154136645323977178120484271020472081022161182841497861332300286111505955400877547325586560800314247820653842703248000122621388562523283162056224924989776470333715081200982778778371217711136880643311910334175282208032033231114530310901724083930523062819659613331098579947401157469335534997081756072962043578996074933086056916472018516431246385253745245679871990910719893423806048160559911876799272587381867285073702455812744341577612536278883466040798953245109231193936688971464108977418980288557120223786984930584748894382336740766633656533598198007115114569881067983915824925624115297260201259953403192246820103439752318327764137002555871163791499192728744166863139865516752748554570102854170357688838939886606634907219026974030903966440985666707453903777212116569031161154923157685309340482882857743467476151295923859342259795173638116781691581250931731206920726850751527544037075306090288762542005301552705227772982684785001426977608816234095712794689767613349227151710247219521593075119889783629797028987369600406633670001451390553739250171493874086568349514876726345746231500415958010308543768842679048726071984129276501562689554205407735100828049344398756098317601997676579254687589427874597278623611143280569596547634986983200230722908592254687797298493009557002632349124862682309542402151822141136433382532596262687541169914665327405525145342912658272033002223076043161146184729348113232330088718484746459882633813032829034339077865304482530995001837900834943631747680404392062255888301074902220004357177321968875234837869333151092773091482590862896502433119750466024487922915662616407858054483771836040378440113678576595231218829381091972244282338807148041979495301795779850437883020408307114549082913301984946073855988574430041577068515407290668771750251397224738074804967495855429038621031583747697896463306761350596932337025569313748036029642985584072957139873510081111624433912446260308767313521955294462215928798151486394678593146181588004110920908541912578271262634522115064101797306598064750682980559608724119101021845784957972886252858547846646285575691683329731491387679521714048100638795318657343654741599621876620922329308931201044557449322949350298976511615998325646150518244644617894505330088603676881543046544410100383888893202990798003594166835103032280210574367708291172120532774701778236302885384265083654350480575927822099684038198274959372078767470653950788776019518405006877467582941346703648541372854819041665992999160062039875336898049811854596663069324612509741502426898536466051500523487823527155145322490033166159379736375803065230066836392219472476280922927687182237812192662869215033472310483963328608882902717223431987669053053038706147624087928256582741490580003930512001153797348389181222709762949462150808279070137571076639711447409525874756121915281214991052341820363943529057187559968696418238413647491892164095961545035485557912782805067191977249476363114218019795468828305423522759811599306095419052448427017695971766527431690217204862800113663298662468067078827360395971472226964213246768060762937884438753934633650920259399456352371386109645594274550901183861284937576860982536467305501691856003256202101692421963380635907863944877295250455952877425421179548906902133509198395286830728934529523404750930503308709171144061352866350282723656646045186971462715161446611197072674952506694929921146128267564384145086098179221729490185284611187221771490151419240908555164951286303457590498358398563987960261442932346073585076095253721389868283624927069245911063154829850953728429054551198798681953102628535557654288709526084141016848131771531923504878156221120886985205568828813983572388734367832597865953491872182975531256349448437713564811084828320304376477883524492952438821115465939954018628430429944528039532567953217677283745587934403257484946395874634135524343720366414111303017122831062939990079426589636314851474225865175930488503721318430636432593236827644572854268047315555771012861183378809720585925806163361662632059447694636729377761436620373875379984018158679975872523872540126254033075177035556578725448270151265388352671534137802265478500206700135450264911276755039123989911506544149314743443023501489451208020893971483372273472185493621043674243070533128057432086402604133221747651924662226447347752329959138662813863356328484414193061977186865684757666277564717448555390634428844846106974346491478129284800105365058139466309531580421420195584398302470991730154051539163012905386553141194695090204803341426760155162865563681144108453471675905291418451726867999635893413278807306049040580435064087913645679883770981997460891433309706052780615703886890124393479182939527410463206020708954656902828568436153792481138826928073277283931916003682072268659753156147259915222353751984815327742763635079222322729501961560129714942420955511152164592585135589591044521282836816668573919916104130513798752779126737815350918708396155119627887207232047761224160468702755634196901223910867222019669638668254422353841416252539817597780785454164889082123642703451522807456454778190623274826173643705643536764658900222093396561033008270632425812877078567254941479294007706276346231218065773677607493405633669929319889569860748471992831482144071180551037406122082086732806626206610182262151161746021126614873255618184768898990748103814209251290495386610697035302580774010664550734359980659627436243954703964395284188327159056849156164419076482930496403002143809398433799070716188381937572522168156529366925480431470862530063763941428032671575170168642930578661464153831453580297181064319186857272412349132982727442986545539441540982061334752480438286865133104227357042752811091296920734973550454764748726711016423897528991663187844462824202716245647671935417573822391974719655086767894467928524499267297556624517531426509328467436049324523805828912996353986818571539894997218445947750108505990065817637371822871015671039587955700450045769046939091900302555750346134323214707390786796295180973369419174615247219336147263184163897701316916565474519490313638174500525959532272229039531249517502767664976640040931791973141836797758024793588513675345042652630434997491236794543735591790125292759425530130289305284818624496490743222849443757415577945646890180062003650242138195377384967047536267230697914250191366008010350911462705819325296241972086585774154824080749822017516078904158332315645916357336126633343715978308236085889787131200669046311303718082066123068469263265891048471915986467358090884951506411410119020600587389112854346244956045971778851053583830789691915318973773386517050279124469688362281292656816747234391001914207704720787920199761945671634121698770081643112819670735242884014894200239803254923184452817948955639763902772383781296518653710523513558706832902325710995376398397510230796632568374581269386252204873715028536183099421698735494138943811018576117177843261406103641552999649307415417504487108385318327993876355831160302994058455851056432483581738434387594290190825365753162792390793473597368287166687494287131610491351148272484571307025731306598976501181896713932209370581466244411618278318609897933299833828369313321321327401242260551557364479770712744852862189028536747158796871522939509785831428531139644635197762787028590232727439129177460598823170763776597308731742436603087460506034922004388859782537548843925262277521089445616859546463958574836945707437817486833644281774672577746354370174602227754418189399688208084563898647498563893267588651045638470546801471652659903493466003593614000076296097602852834134468008695611031124844929571145242678254861656534686852649821260016396324175608774434476544788862002716202306716519240421763230228152190223620707586924878829132903480950870340720078912682324448546665718619147341970390178465285148825021019669151765469574773775951206593560148202137032811726533785947177690866114786463906369578778624987766286074837035315052736977913025160101263136329964423636131002574702883082336402655826325876309238699686564893520747027172905822434238587642073893531247070497818463944768477550826895339531816310471907197612931808994108398132496762678039055150625799129344603555868835007955465780265886435676930902671357150309598804433473481316499634775560611449877749242873959177211291368511686869507574115886813979310300562599390950198539880449646104421990202325159824859394431304786205162756572621998379768126175393112742910560549302238358768146477478701677505412806989078047696499662708076368102287116382642983145848285738095418989734967891984379013879990306768094429502302391694556508291695548988004196559335065447697836059240360814217589502239221730922241232498813714203500831943546008463715659640476931075731902390464402434040723444589664309260621716743515623310294727379866738481642981985147564097127970187854667175895756860152109455665683964217383824507463391473862691433590154975462566033082524459100251312320981216854982931742078824388049340930342232329222784749738540741147285833366980173599485087982692094630031650079993370890292510471192990889892814236271993631259995744748867468390995270478849092566482184474354472729428182141129904212418885181723697111968888980202107808157920833967231033746642796823984191570790873807509076433188646334662935146382990013650539731544275793450768123261035765536079490594402617076360520997194658151328727743249002940742898159276421344787324647446466223442843142315595127557435101001916763983082686886130428934321516871511033428475496457623565040480809850930941534949031191417402874473811494641375735430976535149410467124422451240739706237787189441273862789098105062033118158959272472292290221108946319708517171940062459483454399823543223519819495203025708224998795394435486814074178186713747378562913637530969064683661479231726130915386980261174988762197288302622701569132350922384622614117219919121249160723079151645080580751898425577342500768412631115960826836325342355837333605568350293972731776006082080675200315557781062408374099978537060067744992768290855375429556023639455061505868531078730415657138850995218377242794880829519382136240301808406178114693328586379300584969022688404296114890276140447551455972739680291613573033477136177849313942310209009862628732958798097565624018694721503826258435574751456435578499081589707070469645783848822683395094903177970731989265784917718017775222131710936331668385317837240802184427129992566745874926865587661208137356884117799230492204497325220122193512604499513673250084779574180005140443947008719919637564167129822370514806246817051758028239829559836728628883550521535384493046310424813458203883745494096060165447054897783525218626095467965152207981014999845543107143689887702117648335199482772273337428178027967331846119044478190954511582865813086127124960993493169084388824316391007975863731256615394861062264347299403404941858975130773287394799078067401093291342294675361942169701123000835361854011699485777289462597983162590539368998940846394699466494001812032918696262180855259648843939968671135752704452217528238539264255816468032666485726866142112906429271856889707474794035267668176513674483429832385961061129591103407501903702820160428348524821781859373902838380254069439964057434270193408942004891691891650249961855403380237674434567502855674754220038120846691213374341072332209492382841610811675252700623949495797025190800881454430433425928933226986163258710938403405334065064905146077952168844844954465689195458762915661911248179132041080123713993104441704662575745620215660695898691679162815622554834143278275294608895010532902321660850908849816558602740357211527613778285088507939496369728094547697756878227614217699132968454193914579112442745459062828610533374688569578502764921330562206807244255303970936903820093683964521849517957520433929847182725736480256008246814773180319640622472446109337038538136129982835789955407010273354020848957386286341235282863163391764386236878083757947970103547302071832051565041630779907811065006405249292993513378971578556775105990505956449566095047258750232150617799291900976581038645175885491380360508094946260836448330202667401255126618784748432078037627441349349459335552731602051853850665897016774152154246766740807302732433294385846251000723033987164797432776411710722329087127859912627967747037349719140502165731791317255745657161810784521486239548553324537066871099645019087169032203777824234131610750629489799354662173585675853599088222190545562255182879047706512602421052952157473073214041741650259268262637527760772405319394988045091926315205959444271912790491564690324522074592013747184455652529450475361619245966559140999033107601736890034089133183240497252401602616251637775597498445254999304617967979027893596334983145429315926458549548026260387112332129396112144223751406716126952916208578467301932090135596507630553311341707677583185141741907999343510786906667861197933275994376842228943910697872621570203047941208842681122215131499168859172636104765794426631426252012307190659400614348904396612645513737325206491024745946132950075606572875177684176618989466569537730533415915929090566310904721508804866550301197683101727312678065438892138033470593039902792086963939606029294495814705469961511322243065852206364558732741542623200211569292015246984481796355886170383520189092285446989018962753880028504771388453467926527635666542608469623163447222051619676988241860454831217040275552335980819880728822169200569308872548410394441352244420121728672287850416556693322533661414387038862638224467856540566134440383274476421933815233925965636657743297543706327983443761419230785424385481765182105325262022260840649184089889116785617483581999445723092963146776656192690132318097531907903721220797065739322023134022594656167109055555436318417423194022391707022795387058299325652794570683628946714315956178707220775381915946849943755469601591598512194531472412218892150924701457665140591909785628933477514752396076309735456996037810113008510065369053843983488508304882865963526372783150603000858921177934706961636935154950202810681962915691250027935588518164166835193430035364542996221201525468717802637198117019652982267008887642912580952270904142592336373209174456922453739011131320661983252936535801850790288374697526959798426804075261063412382993885353555833969125702408880024259359132108498737536374387940566457517744940519761616332938593810697869041150748366374724754425562654960419572921668684401235329827433532320924347478623773205136122744390626025067208122708953932692189445700188494832022018516820620302841517481353080721928616467249573729052635711188685928862445708049232826695294573040020791088420457403906037626397954789607132728791913561923090723118330755967693727289381750362210112271781401962071246692759480502322384014106470163468523358215272359520571559800756766679109270604400795347853606479917270354672046288923479394991191918377057409492075850023859958873324722021166558857588365246406380765396892181690449299747080029579758897494588823348307086420282986587141733141696058379446804903879514855050666831164240265624446626286206257903034760089116404836225213071560465142503953543960919511024019418793376779177932107234054325829911417088788191430919347671485357162665120346848356920547430839740813707176974030387325017084229055322575441829266188195792274535936480921483957447413698036205203446682690656021433201703718691532031381881267546186499783322419063012711821123939198990611520188268938497279815338755672408852209432721184190161927456185693152524359433240545549866455378177349332227482145666126904330695734294377895427616584272476426490427580273432191199415157536509790427839433720994426889111830531588500288974846519804346928368337610304514177985456077772755205457448180843617165425375274362203789387677882908508332175134917189877591054962693175638117612417591651038014250433753351301414981152151230019229038404096917108494860792306374678868109653399103642609157026131223603761817330348751612817448577231538978456846444724954425206671988553407800698382289941531559295609813736678870288485716494071833103527372023447894454998392195733205577003498113030743176189927846696364865014605182037585515559045165830186618689393668830613701051010981382442277033411492643013787493651055157898662412274325530790254775539201941062345052894566886058096117590453347450855839044594217912773443847268442239760475563891219052869370293442329589609217537118755059569365226005537084739878304007349571357037949809259119623000449019956261770849335652820027640340239176277897314064525327799538784432610580010571160008857700121516469178850294197832428317527923426021596365828376507791171486811595507698206122718267514817265826838224261612190318806187407042889183113464189322977445962205688390856616150630067515073909290588005484890196411738590850641552690912550942536395378085692103368333757827507377458934083797913736974851126571113315626425543825558261567304410660486484388615902997804521818796192860846831918788965657321129100868275244195853247424459868901423690711002028790364647798956906685994393304927023877138496614974126320522560552739789687480800310261638560870632368429680474434665587055491972976840760038908856789408084384546779521038088586875030402027814341924587287886637208258858977589884845596503344173154385898311312085958379829327389506136374089860240507288774128046810982758853452097239440614463266610766335924255161051705912234776894638511099883182242881257560812384150297863201212542694117530295263948168353091855510159773899571806142463888237046630708926417117723212260579365170678230134122616649737127809971283693999686891173690145062437299715511934251508317194538951453823769418450320462244127991533181011690474807346487258989354930119394341888208410971708534197417227392616289183484331744177680414021184926752698164059897183045691384193496956277300177054267559668069284052865321664525302569723256852479112135495911915709108181049102449180670889555030498790670466182373668717619311940671825253437703165614438139822300946903962549710725680850522583331988701805906439961800361900760417013419489593579031133270092438982486452419218588252824407523076978475681230892448687813797210354494379043473682530003832267425986999569259938686708391487544776771218260437025379836549251542480522113839101481253767407394651693591688490687595956614673128638016227581860530851577218049943362826805606269038941346394392229003901742663924426058698101716218549900840921190829688172746908635747121140906881895216364640529897993839286099087731694384635390637871166395708077783569079843440274223227091892229345947130512588156790790801544786425181380013114140494598892336979468444773047204128910067775544598181374547965451338961099487503050960016516295562328949473820055437533944564833556768987407724730410410393047339398905067507061361648374660353803577824001538361517852275558811813910072118117506701732994937908083714742920084103515661891674167333969581125198798705212553465207213255089955739718699956623613037873054092271414407306209074061064720824325456537487418957685128316387660161848801702700844219408463405614129345501787131307512308928942134360857951897561973282534924274551620272494835212910892878863553444175928743209635637292180561621935793102712532444728249914962977055608343554705466390738076485793889540692625794564043480322454925117130827984893549168215765092508273615220441266496505996611664444291754213813522053651066404580242114040370945667485507187355841946406703971797903846099396152855384226353430365630058614436335116370472874121617607486961302655517257405782318120772800844508519539375808583293521327259433022706352722055683846393075403846092038759588625027968440390888079121071423529271325138781511383937748231915532492298340571261157701576888603852597239724008787777291853678992424723134371612581935034462969091767286131641676001767517225676554352245051330255695334581360703753892100553794895055726685507748811547370537562785106323338378207450962956386132943519354239556928146245572943706915444953707914191679742372649865532897570823544817951609942197065876193628515639351979773733806464854809032152754233402306354164416883422045421952431283246655170060867833063997409826945764019459841523364515675280763993894052330862161351628105536866783509232543018729377903221739564973111882895213685125542898448601557879841779864145772734525490467522803803120869297219215368063445279502391219581813603841743630654527899464820390384767286126876731237948831593374367107489283942180615176565831657624171224353869024383993514998260829517059860651591832261721312976011428920675648515127666214001641259515915397715561853111412087631563075307006702526158492950795696468954724360405766476708871303014063454570232132728224569949156239243812854931776939806676649543773216949084849780138415556438988848576192606129962190353576394263439103748777231745373572842433991506965072545398371659627362099192514753478611483997987462118386116612876506929929343074576465607164256494770496573679972368058984773496088319709429634977654605360410491258302163113247551842890344856003436215603496472234069409766811906480412420064446382266906366179680620379087144663079263860083430862627324666617528481128772496374805787845567178260989421152866169248443631490942421638022801293151323073661476642241887664898064581646926753186750485244948595315050524722386980895705111800346812027501325412865770291431182539638352115751773688370979574087903664637017767085489163026517269123560598269513307742948839486294848553430404499153150601930188836797820544918608041211158781931825319515456022115385137648888670641519090022388033411727500965694592323250862022228786466649771446054320588116136169298314843157610493656981087839720508968773353068871629230730781366855426790338563741036003398241177021864545057800187718809938717349576488327486326178659209111513786288970754399819928758336570614530478772080726916452940216097193448269084505570675744302422002633809785563471975160313718526198990304748525776382566430372932012150340489914757639239593271224753757414913797704891347310982203530224626425561189706051406145936872919166595393718869696821087150889487581432804232836154220565591777142644267996650140214244234499722294140731424262196588470120107700566422945170758383399230773789869689904569627594324984206289816925041134146581530303661201541515534580642189858747293012809788461336972529839953882777300153195334559491106030614740350602828292663943513660200053024615839072614085705251734795665564605286572881366825117463356676913676366160265754702272944067539103891176925267854446790328877369917918394382579462711059589458323996725442285485773378295955543131837650926252264058498495218949681737963328059217541012154248769504750344523882025140075052141501377316408593561837093214830391852631488743810537314997540760691599818047937510368843488518063570652758003129666731416001112629767364496022974482068442081334429022613072472824464514209771281830795996417519680666465613672006417604269456779280116709189061193623194876924812711727419438905692483733302622555000381518086204252301414051181365511670226864010489251306249820451952675234959037868718764734213263063618321003254611051655124718958299551229156684889971982100751821132706635605400619987728104722715133014310975027647103063398535266945626970076421657975722945334299524040119494770785513016113840533591790068090199841185758882819256221295561040300810466950701254026098758985621659600681199239394012023051066234397539646465608414841482167263787978654499848841381172091291121747404385195570808195524065609838354680899622878250963117709146452292368938920015461502355733992213386383145845228450567377464821892544964099700523066525928014744529247625812518806668999238235099295640118949398187052163670353774451671682924181930326025590597249970989792753342292873463226188367020580844308133648725042131760923795099731680279060013106620374453977610323451733180941459173056615798628860907208672806609328726436154308483198983436731425431636903716968019529292883191200104775489428028793943185799520331373136070588243079747407574985874859068242995059184063294845141706807605195281976542916981023323932554148978566805129096836443779776543413930440986606974277468288697083439114485323010720676297442069697065429206198763676749707291536933113380905284077230239987778688748128002652773553439896704700411687066852260988682772137664712863140831012493417858555679609913758525894035046098250848116726520040123804747903128580465096034627174402237178429394351374445552051580029616660479861338153054857534419977082143472015060355751699223367605065571809896314666204906705807364995875489275241072899672217548993036638302921755900725157698667089834345951884579614367813240508659855913596695700126978413268613036864643306654980595224353974883750958113106089552458160161020223981108288257239888612801680200642068237020871044925140840249649781372867346183796281303525380776268057981055783536036980025388418329795330546762017365170126980428584555987180246266635658079613183892424523678845755290617553513192572141552714300232029523580647750239762904880129915142853967205417618809969961295117252473368592843324638983845058290703358242419179028385389485860573284663925253699953627074390237145861098329986800711577521177668919208358752850264627880646492171046688775653312306198067616129372586435473278808948739631361588843082041792133218604724161891999008205360147919280662175731133681879177506784460476345179775239459760747553433623865771602731147090630963633832307281176382439452497135121430869310545068264317586228208059559739514197278767437203460667525864547469111712178814360595606479364174373109938979636657773914574602502202167449925004125310076495486646861798801843178999395696274865360678127116688584675279102171454811894459411080503925489626298043715281069449742716265976096116813839410152636352223909366340843851247379839125379032725863901263150870979546297220439888117206390431786647984174347127431151051511655896298746358874986723656846036369659273141405935231500740936373144178399639006373719609330246110823341093785501331247148929744170639478153541236456750688375059084511179021048470786314630158790466005869602260946058769956754849750684808943890624612614847491503304737732684786172620047468027154558659601641448323814337097458710129187878431288806495034597069359065636887064487033004175462645286040423323513299154572805882975107709150408881162048117232633386589984625154785358523515459355550604173909267888035615124380892698154943105019761541665299005940513462347768124582586178134938989302491674213029543050563371924473019545067716836540476487053029783704206883667218759777254952903974842244044194323075332568853285941801358951911821012808921760470553102047155443765631724283476559941025296521324756088016759127673546084123258503661892625171743143131668031771035036831144970111163286888503053165528360387350839844615074518299255803896401546753037485759350266036629637868924406201398254865781733856846887361313844951592893393577982391284247992111538214083657744238657695174653658484693077327498077579622001825426294495116528369446462057469346410328642508203437297516266114258174630064689720293130421639169604718987624718763179425009586778478783311134932193201525301020399374970049249663349295311976649298037932829091337539766604449081415331454017624128003157572325128369017996063585834180817420491304911765759034961957048379965058882429029519914302311653893590088543800799848254060951831812489369503676408248464224005980362539615533306242673354513886343041864662772294310934051703395480104352508574752823196398492296764714491858826550664177733297402468650840881179987837266689350275092758775824532701319327908829311125034278219525919232535054376810334248229490869476629251134643824947646663263124527265261189739800812410943781054592600334432866452614726161585616522200628095922867337688030356593274204279601591251815068240250629705918960131561582235199687203767562577723946946900692940280224958399294993236298033682729814770350813232156141306693681457773883117273202153036439598105480884799709461382999022447147671063313930476739554883679741143579330745148048047569007717168812350207869008853265005633511568613279522274201174160920177322456077923302244182157733003228635497763728663902302359442915996030901334419026318885585996506378661956565672801441420152744154580121961923819877026895104785499447723334378773428128354311502214977003639778104149434242627712100993048912708052254562236748640812587038358852241279280340307813377992614718068755612980485170825824912580686061657936051073489303690594980101153652656192495612716426517200849911784295583355106977521378289497506896371151406429295885623523203019135117649372291494403338688690423006607142817615799342759382646296254569851581517641275002638310359845049994685409846727151198783236789666214547713136134992761236222917077938392212017855248843350719248601968971101216229804512529972853051585371099115591074725159173287550846463363660984756505297971117344093096150162970341877540389682107906297793137604399280532206704901934504800173254490470251116596421283678221311977989967548090456166148177406501933495909405748907572401957068994179176666688775939893643021397274591726042394299260532563182064039045130817531510182686656475727052527974855709920568205714846090340745164399827402226271734128659367390967751637475599619425061227420496985130889979003907466525616405040181224869952703777075096045455070032996575353118013258490569928673456007168077923048661118765388849275913309092729864525594077228492901230543323923841337149184969478738401297771234352153028420619384247346549839930314566320790538068584454008985512514519682530865197786355328900362481631316536248160788482279908072503599431433300221803663788963876496296221121225335613596692374548238508770660676619527987115418475735203095707241822592371526835096760451551151258515718708541633527304562440516376181455644990220154493278101216010857966348962533729793516218081170242470665235421079443263461395115666231133381542382762349269028922376948097661479587307265626659106879359012915879138194898112023973335402075264538189974900920917028622021630032700556231008248558248282950215789210914576429619013751992428042883888803114277986016189136526313085736894772049611677312857324922881312329425640911136645225941603323614879689533330525616553501666663488580450387639982286352643324378672369267093724713800325809379627110515083217933768190988961925296642733763892639313252183222212150650533685372758458899748965779154052464473625778863773747513490912074760329241578751815394525669569549698527041768227107343074942227442426040229602757656916854749098039982668918521136843903728760487083446430288459978610102664234299952311260659990289781141926302830218598196839708143694891538487228184341094595114418019497788951933961449988401331168028361626034112901090501790902405410908656775242891795388237457768456329102984940620713645900039719677470471820096977949132368475545629084074392767897360921050318677634511012590818245162748135785607289218045579678077024803188614180248399649533489370080810072080627241804561853207431700250416555795259024592029763105747140573149185687663050972353282114184052933526229393027841732567870687963002721321967905072088706373322171639725027876034700626120244852973918050127952160144241411210386971032324852036041818643117248309990248823049666852843133977934573911520205834481682684052360924553611794368476287824155421876745892953837194938210887678840216413834406058393444596662209288084554404086304296057413414721767570854035730606172562784856107138799046355355150008422026142291737342935838598238512001747450243911233815656737990301091248534176484689636956945510418893860671344202595823328622008749706833142559042940163269307687701518115964327401007134708549220140745873786945168632474466046877405256247925610922332348153348076458353790416758766685580596776923962030504129389760712663542710262651052582721855578472040767558509261626363174714021822696116954864127826503715823963055210697432717494024343104688814804581467347212984100517152269287101783129516339377679108358774495979578281526425974260805728878048742773234429195804416826208314905535971345974237056113399378497648375473041180796225237814425638218946837517264891133403215981364007008968829500498548634334699506600482294186119789048833127450235946153802479362619077945258420570317823234015668586191164387985736784555479300792065080620543968913833616928534479978310399430019750429762489917415620886954387991609410235515644234440583003713330510077916727388327260605405137597977222737802779235572531936872308407486444615233327762276143082750807636903271488578139242114202015729335514801978408386180785382531605528417102505248757672365586773218363433854827409597480127499457633794035228947892671976165415901074333809763034180026266753087687157380246418413911808514301777687639365176474851310940131505512560631547328835446385823089478624271457140685212300458451482885757623947303825099582983544874571942639690188892721703626415890173284368484852661665302118010814389409061489249979758355255171733245392609907078046176515119773864455944847112328451446864985328151779096173440377252135822438138382134429064428965863543553683012053430122022860091991299956749538961468526746490160672011647529825268222169440679671174261695719708818870152274717001353935353433774479398729688685743655482996745853451948026191872788565630879661114248458284752087699723598041539173919830635591194171782142004898709564273138047539263395385492834849019561370162442227771176517477756100983877788131460524552892141697247105941978061393174287041782307883461270059797143275477332120972315056579939341363610969337698356818552427786078010259448596589069185586474118681398936542682831700474063817605417318784943048512081828343431320051476877916439086503639716830352507616737018649642890060970279740925002479097867670660632901893984516094579515904231012722894983308648716474109585042989145064918632689305528614380942352012142031924713175786717098121832617795730867804980828195293490602453885710137835046774459202162752188434863635525872175755141736631537091992929830805750291709353318279318930618252356196732501141836619239774541221448136012328725500020922500555000842225634394589395787080424931214514543539581627534016726905279722456116074587138519634909476196829567274912301616290358054501145199879131607227767230706130350440607157901248483992512743155877384094434704283727134697427589343787394331193324564079499882290788340175975721232028683901475644676293172727745517729831821695197687152406207423237082718115426402051359633478114228218511306038501784729662895769552113347229036027274373777375314108085863760408808586892118978146220170405112465040017731331170605548838659439492697326989941822678732943471873665474557479314307899352071441284319380421273224893635920992443295866452827261801730199565702080901885302281569017987799983367858125347683742889421179187736620095998323410453928229714926692187476094942753169463645629450610916088060240791020117580243673051240428002776498440518914184188509457580062176599984500748822540053344162343988830515449133177742005580856135146216739058074454106528930565213497966551362799096887967384771573762129077153072796688645810355061833010149498611948111851821276345492601944788241686305332523725770548044008895184197159373888836337786672924270507313257554898371606217645374060822247338867440551222160783387982772982770730191486252249938670621391329442500409172158578961852442483684876619457429636312410020686011451827526695177583790106703415361463740429169111454462635844157875796639992455946808039422064501748720523666452267740665916096792384042786600065773846718205680872672569491385269006413997463204796374951379422084213736433991818333940958530868388839175845470746994693722306022632453959246418573116711944706779650769770031369340214573837069676934490100047436550639035104670223594260889825152257295077249472284614772226913800526008584664851300405033322788667747576464694256758396867057650113066610614489833597025794658734991166156776995553935320181461472868295846266224728601486856002463613096373443083388092632203510502526014172009324470403387177721860025756642894654336625059637627824029727966099903580343027669746406543097651674419370053443101185063135939036897353164768903000443564429377314413991832584019684757451662642787227474274163892283836161306153500124215051760684274322660313765540121377680767972297464891656380613406325898453735264376644784739080493245592321591113707710679601229119597835232156304220452004266127158743756841387301978157300998979035051553078297748748415919309935229949988541420120157338011827446679666731744900450042343915058005445449366132702786810198179305772385943314167068335589690028235889074207239262523661440683715244063543078686483800394839782254928138946980278264216685069391216074001178188755217711859696303080484656204999240529433384819837053339042611911880706079865289076158882130734760206300278065636696654795601784103836685368028905901736455614964346361227295005092311672568165294005721443516576823980066101746794275635499161878056930335148758793534702952276077459869970840735685714950691131547737320081725863304610166191600567775113584522147943541609839458179154104123143651854266089965570919434378863224058523673742376544389711891431184051934381069290339480449066158181890196592664538932342894368665792718281378788947780690385107841507470382810583884493841836639227144917526921587073907394797489213557710665228168363849073697591352498693780181509867926469316563984475810336301546908943547890902518652807011224977452717450714374593824462931920370586115925553249384641356345913193049155282329075342914088885226438295951826030288324965003711277808261866001566886250725881870295891102011398122518738781118393460466901663826705756277745432133498472149275271130748371334576215083103361087123337588607675211358388489033999871148422989056512473155914195748153279767406927923908648793623036394818783455212941225339462208997494026271443666285822071162543524429107482143490141987550167700622230191572632684429785822032310305371472460479641731885326409457991869010552936578287220954482991359117699543925307814513615660522584029108618274835979383970556543722667342091431321607790751767960071764076773142062089563608939184124984683740407385473002658446515212588502242774587936578647498120101418132670947544884125119236585119348483921186524762321741659041013807451704508657399882115394227401325968896459073064567421973676661382655845044391933977847479571977113705255172827539493574669554124963855695981804185291028313244925885888830282474785291711582547362797613480955492987432316155195336645357318764161167641934907850402988149027548947500541541120532796798024933032777527057617199477900550759551694678331964194793065709305576918712678243534548932202167843523036509672250778384732246798776374093512238514609466635651334703096774170847239425682883514230456517745234370463987656711744313294809988689554706369387312020910185602816480007647689551549593843444328382457237375947379385211403455057108266147763843463031115912603991010898215466526182103330335650845957338874385043910093003108857927881968001735077609879581246038017204832489553471353865764606040921143484693967546447140471226254019224814660763924057593814272069333926352569026413052993729119197233479571311791187691906328772795174526847279140159387251436966019572999917469302325135832272656730314499239856628863427980076176229057073041476458743347675473433164360334170947435475229922470042850185876990448853149577772106353630192038522225469506920728522208611412490164331710692496631230428846995983107228850575648317661653006934410535620096953575284241423916984610155693093211328755931112143338992851206746943662751406989019733197097520611788312940187822641905245474449288361752415190022891331777284128657680067715159160695032036219883841781962239937744800077287358235819978608948304995300724622069667301058722143724670480048284588253222932777648680624345595027220116720291328779314164071770021304010271667464849340461639021032672075805758982028214308256812842673952395771027596567841289919653497405328266574781016317495394183320248157981407340642668405341278150905110355942375205930791632205222046436047653565516848210903377344604012114044723654348724571146655099310851586259991005902559480626751919394374138120970715756409697024442328889887261262585105539903917408018245941447652723421536650377081347183710720833794243345296737878467766249206225936730868799849315219335156656406000097527736495958396999097336605888096216577524420805394988706111665713954030533160836338933913884794757952051708177464268567712415339119440323117561915291065161415557584640350326413111582829617532879583660341862081855214607249226102402543038741763036522394901202113268436396629149368754018494331099880649529680413413249640816270755999764005572608618493704651017456215632341524950868651432741588314054715540456920744766367403496822069662733363277153561432404637519040346957426538147621530102429920712313016388029218973704822388092759614749749771973750009287706385431516536096116770258119579813874170748904396236298987995129107769485013986618883672804626631047387660017535273265390990088046557863760907441532408240886881027731291155587517637177611402780288742553618210788069947982790342689596135638630430352858227987203096493768789861042468017865634886172985924100189983635774844064581803319854600850530187836528627883405562548357692150088778425939945046655866630346430977604989295271601139899981543054425083546123412182148595610514801924361571695406897617169380330249483172177148535954984717354790678489006330819699711255797049366599664948628942177969566308093190209554109891237995934365389978483357253495172101647205283096384187515631902675463446561695518118755599708220835162609117867186877470807032714528427254072034397343006235935994959972263817377537113784895262426961868721333287362890004271126734508345085413506922962799340230949270086460592703797808132095920669224112766886901289543726818452148899124051271307851936925237274747762394207538695161086387869389019453761425316750766985188206439495166832542241294894274402757560444795156676406144681342246254389049131335325950417525867451735714318395689831651986219207283781031695515414314838675618685714628221973253943163439697207750712374789135773554033994578189126715952235913485832229085864825899824878596280792329610153272825317039079544626637088972601458479422266604397354166331278422227508574471833509532811539540278074726142793639561576872081362371618353899838957433975004306906151801735074674610872345267091205736381918914277828373833163201042605180839808864798955274350617317508492503800203928739957789381121490008991216050164731371426369768064254731978205298054661621334646010053123644617278173406440480019787332015451684441839779222511538828788609140191656441200424732637064860629701993066197659164442475695503938736637189639146205568950751039992406586991704240197438479836327371696074828366284494512543264330314692806425571500817278900575510912447674369970952253791335892025240690489783525341959843712324960316501546444399013619131846487525396829852401135680673327387666828284969831759672253171345451056164836465592332679545597861470415758504301832031868088057410085653141684358007498341146747149828771679219955811246017895457193003227714898804695079338268971324297852019770323950463529681685876530335428338936202770081501520753050667890325402286472903547853480135858278279489180991931618808809383930632908694218540128401055169305066080902361770598602975787789516947643562580323742031481076428969071081243988743347257928064229718996903285743703590679968894809071129704126080337396111216937689060795434050932590237723282523529923114422401853901512378957995890862710086242253008928301966521756756419209117714825791891174998282195835577306355233611140315389338671793951204659757258949295159738666969627379462739951709833319333071834693551427610767770390718055430708201660961363136716112111175908086645471792547226166335291715182723522213420115698091098791143660746382131888929671676718583913222613565506050491147384801065530148262892269294419567808263824991293210978273994148695219785140534445411628098885707868033928000478522490330488278894893379748750671481506885729693977361395398492897834604560934228353613471794012317593573271918111235475230519893251191370108243176935125201241695509197599212014657320432335016315667279270892912626336690094754194513191613861340719647659442853928241731353803613795182955813180318114208768316369992430127858481848909951829745297641535500178909939867936030075083511837134774024414831680502449392085992926839960586326191202681289448913409062559485742953267624877947165019304610474402685552676150630855541017740194851616411632986482395129084896420379933689024970845873720301056853888461092098671821692622599790046594330702225881399303004077235769174142328732654767823639161244576856367386664092010937148672470733951707434331530608092711469635279429133737057196342757869484340821940103995652768975529750410413102483677064198969137658041108449927681605718541249145041597555458957409317486885961181270091900261095272590255866510247708556550048993667006790323364230006372097455929552679595448214290141040129131476117801679164437191651205091539148902808583385034297910654318554219792697306193794750878190996559433115580410219243669876711174055395042680290653603209013173969450353001133659510708072673058835998073013204429530607684302952969648748713565440594264570266142152485504259665165246959827585507081547758210236090134655717424054090968268345418036218762637580939013183831722986984697649548184685172482120525717110133323475516503203803999917147875431050463317674155645577356233095585575952844942937619943811086058676164280721232693781756919932364781284679860812588282584640521059193126307373462267036312276767487148407159773288079488285560159095450639110320371687807467326518596047772712755840266729939823224714458601173573536214412147758763395442237526823438677798636011285962411238890495051493903007076778969570874486884387747443001152205159513738431913823271943107201034411806048935873121308648816134340340446904144512850772122648910862161333357435115790904365277256600644065684963703062600363196706259811826803922080727226400220637785606951919325553193341332105182174866266402356804262109670403821808318410135222907462806549515899229755228388020497005018886325219933084453191272550716136439083459617835987854614655376294117325968237259662346057201764902773506833693317587522132941266881248190067016536282281008012520880045951553433287300881179821001764486442826859488125267264579348000452883195680017908743241890328959255092643492318962356775940681590586721220591791187009948113146750388116182927460169999804021419000967352835869863121016039277373209891408241680394537922033598304904464168983742353496862965387024367724317116358097143365309234046945400630229743011157380668652254602873991453172150096837065550573943082979263381368268166981232908406549238885619050610131300793275080667504252393568014858552498212618947516069548300485726917170939216177110279870995132177536727178170438748177954437273088375824716228093594087572072703104708325204678537614928976443134346555310306542072283043052564102445207249730082470850673788043257155236142601237776039131282842277943824412476786522298276854746763179133194321238209844666371595972636382527484246800332411595549625679075882110263092146531102257473410589702695396626832579870729779262353718471973908977271559768210653761440194675553238402743977954493733073970995770110444160896091823944837781840999444835127717821180720958499040856784515511570892356585508565475371777769868541209273504528726251113640282948832862799411969162831022525704815705779215731440411421471065052527767126676007750137566272868330166563426973075967852876961053248816303019329190520438303191791957091129678905996975726864395878760325618487289807900927492864057692757850499406476523823741966078208486346532991862834608537046107826650727538699504902021380623366826896812445906156590472943631474444749690419969760039930102717925931966598285438358838766904201615348492938120529231589672059838831627805509255449100699236896175237615080154093916782519992520840537554745530861882405275496683590915278437901669684515125400616524181631234346142857168873911682234481982476512013855084744502187516500427762076676038648622677763959464938421479717746902774422319168687601913425524147776201246734207212461742004916647641119312430473619165179368506060782261907460118198453045862490287868513175355640191924754004807419353183835650820034405503423505266792531856844880176311997499637439849489189304265892761085955846482550582189793392192730714743217610121645558238462691072782575360355264068292405182201479296512554705923944337484549220783541681001488957627023364628203341114050594283331671226712393709946793868797581291257544442455696591569880274067927023658749476707808863129284076474691617375626250199962781582264999756488081077314686590789338635438690554875656312744834948826053947557399226639760306159349078142914252011583869909250008449185913779473144553780771338904972355805873623715725548860127850729147530749955611681105156255722162115834750342734092124245375611387125659845079094077259458914983444039442906731769180306806306101938179924382419049332729425461786851062596913238372930028367630693707829158852270245892938978059204057189078545520142817829203874625014819463352446289779941493495490568048453703698137057975856205248752512834068747160656985385994626438038578136712523652728723981833652719840560733424289231520933205103261599746147030729972287445831488718559018789863626411470203938751196371027202202309547622386906956475514109587976481958761415771414449446870607908525806308490930925150324599167658780217679607054371319626843989811538925782890933596323902334170243379567978719447064466955544379470429957629291249794960528061857964854367165741466530390223358758404733514601472503604286757102487493237987378714922398747916035961790850111270998395436549458905098252690303010659276097418089405023064727989164204555569664249356944806968182475749952591627429751470543954369315585967119712995602516149123565878663579091059627512436499522141461867289140444605494760242868129922821470064266689849288970699390231880074910106518282154844110565516455769229383162648007860019273380964058515077912290443952816900924418125224281160901278347668239264597516618859447481484426749287993955653199016260030932199481931825207044677750232770252659964029989636047874259519101653298745144965677377339470762220322434421531391266545171956407707172531642351531967989378056338681880109258293457969888310727926125385459646117198935113911443925986653737170513474126356838041097568248527181728422918463369001112849848542373901731303038568018686585164032829419598179117455200832892071135636784771314148504937534819831211427204824734883648584677026311737101848380692584066947006588780799386911313735118542544885003907395532019917065770567019444719867550683253474956892073597311177883430533682068123646503058770585106024944704584311035645470779255733006265090010620977080128557085225470203954300705168686475167475594103134910358184766933405641092427248898559840028112474672722244608761422892822562173687014547894232862924283786398131231775525038561729425511040594971322419526908998764819184007726523324366075588033268054227133046814408619194815313440510541842465575003158069745991995547379242755562867103495536732066407347070647206490681229415774989916095626197130322693210531400739679460220038726528718129013627876319784412405172785368713111542107288670284204327622587240839366344298947933101322909032513085175630068579793111482973179550809259241044783146380583019290306022561316488184403383878581866696488415453476111787183688703443604093319963050545154842637296898650187669528199200270435240731557060569099856141390815308383300565980864706788429148634110514350317728867852448827327573108109199375459250382533219524359263111802130463344427019118617256263990127932786806286129465154573558380289379741099846169884559811609677465568850500609549273795337527929986083702569056666732063632856037736709127456521608187505466458934890042582502692433054185461514855877316791435144858282251349412928684795062238341604746655068501678003608719101593474809673798187928430876623686635563860723344971071453711753046809551971372658088847849092880663259811236162112469899469021249829949887601696901240333898368266938350136830487774941846692348227198945552044757991243412186254435287245088165519752622704263789383185189181850915784105144152902958516028055848353508734156307352113787689659083750010704884723140353128498350158760901140573976808703205830089217714490521814878858476947232083603886478213959426516488347693608821301624416070960832482954410534071254936699412685498979865923540978763780877149524998946080856688075744927505296258902749649070857428858529154802501862884040368312953916313317794410299594787403664042316411072355020549802233696343377930443745858343077929731575862263513488242718952153842078026885201275662134926993820592691329417062285198280864500619744774673520422349322649691306376587529279372863605794413860994343767865981576142859320064487657540038131825844517438123693744190649287016910858405119906938837634225173214544209390789624982489494317725234417096305695292190784072522502885323562467815658159947539515415634319594819114727302303360813191004413342586944282551726154851172110315726630809766211613515846479896798784408809021547343440311519568351553279195923971981258637187375938120238813636046710933538080035367694169476805303482705852395773856984331726245859899952734214922903266408121504764057449249536845814740230904761249068339794826631741200033555589741881350334566857366650623751276770128463681321475032331021964235047772176125332784815539257934811423101082352569636491608757925045287963076891835719884848513860048795149845706726956464046023004368806310925105199592706377029179889701041377535164671890549483826064645177131679953595370285888797130483925891307428960829435598551773822035529460208920638908037458043543018492952174372959772407164031677410020106281000026081540402352767127587190248420072904886281984049642434128949356513090414614080460082774183853496218204798269468707880601859239607169546144877736628557649476199845355740520993050825775118232511244518066220165254186402779198889852999660837556612579923405936098563862741433335650783883344623432385268177652491194144852006453539126825615554709246612226848499046850114210234073735585026564125391802586842389832725834623217465991976169127572628805671704077956796725712201349441681003310728700712359794513952972062682371127743204667674232635676097602986544516103798051947297871216808379419035291066741090464521976957688260409176628873033016813724432611595292519975796584084574927284976208815109534751350028717412161317849124347862123211768833156933208988587552037493054415871565999266986080838601326870574783232340956028930515089716825759270354717054904510283399980193193537097192436623778614155208257523910687994565590947731648064975157232148231625842431715370300718782352814759039099720061926240356465502974659750111601006031240312533955523950316855241011528563009087614835907202656949281312527647374138759081970288868962712822322819273642675306412542337193990867785870394731355889373209093666202928684836589966686956865270962905703570088025206093809895662102116355055414924472309494028530250265538033330847368260739407876588026846207228112525768388008987283705005496428091405415649806971287417833839134780865918838699945711998781248416068365085497150627571740910578745942685299039906065529054133115092745761108927263864309224569458191709421305073653206521325580588567010819350919220491703924401361900106687086256907861733316096610296295409398611521016321033912958814237170917104125512419041349565625263553016422329071933584119004306911744703332239909907203517406019605932052893608723460738838713107559360205909579563400777168105154947353181480782626635163732756558025344515439466227303625559116065162782900757886863675650031257117355292229359780895352268830084847237323230476136714671938824304885045573240420947708459530878527087642082379211845114084742246456319883886123197226501896921157388443695696926459942570746243845034596762654885126123227792671374040924484634672767792378740741169983773667121687431972418963004632155838146674588234835981743704539987198200382884767361410835527910809784612562114326677569846864840465195638553813207380868529612756746313636759167132479845586878002733813670532433592152088080555178385243416215595731866823625564176951473884201018917177791725752991932600856173079039152782726181095993971967997539974615217961952516662608912328767022490693954764914338179223586701247660510543586130207349366883222099966427887558761979548486894830760775698841117338957921259679109291965169318334363043667015736120786082230137749693259590716235898502860598396757896937982166398521181980890109237664964552285231246471155888530580535842769780556761431807463997232221272707520627354362504001371967836592026143997960668812848269456410778248469916174360555387809330788504839693180658584863411957435651030335543865079523259396513618724875989688736003993792044960702944098509169397568220193772915476346341019554942066982985738116687646905019639797816567598252109293554224915143313944573021452727255036321054003414723900427314363547586122997074265936063806435514892084529995630790054837293574309073024701873439296440267961890608610155515027797171761938680838957133461336452689599419296211611903885839858375743963688675886457769317181349796791857165597171849501530783106038630246937574639406246763376953152558322557402981177603605920058538086908533783223016911592079666059669754744418545342589946044766718205022498235229560456075710200408314867330974385648996375978235915815480011224758407920263113281543183205945156516893532206822028638438818031981706201542284070684344432282757211164889098314498869379180072735396450253870488915958536305838981327812947330011235957816136201764484764840623268193957299791113900249070268430776350886074390845608733048012387565943943424329585870948555210079475445558121435976860328156497148127618701134148333500403497510296159564437994613282770819433310550843007766807223120312523832640899008632780829693200891388660564184539381618746002967050557573292410009483642460244457943052513684572509401126932200552062748800501604858250044554107733820846564342637404932294466367154034279672166515691308865832116760427448378041273201122152161469902766999289466114292918974050623609802959233056188749522952012205753927714979382739827302239582597792366708490398891141173619598861875050784698087662820221441883618367000382087130134803983350408016382062679102529355386784582759570471980162605665879373546580828206616838878668073677620707540950519131558490568227741923184153204963100343659570911952969941905887616305834385805127689789564444549097359443249729227764644243862661231816288655351028963726277904649170732005851950812804742544701244648244300148744121392335139209062900637018336280743114240501858094389124538327698452890197804275727275730331315208244666625181208846016717956362951769285767105857406109432732712789548934984324521902324575044452093606088967394397495283612912580766395274062371362028007134029165307918822616246210290798555914510359680703297577312789756989939519327652640216707156521613268028502129772018788618009398010018602818783696751405003744933433440935766811609728585792851878220326711109096476455725599619496208784332294396098924798922067976578488477970044499214051856839221117591977818247601585361621209031619733070459709741819203089560269486625596999665504844839699830737869618818954850490763397067345124611851161941943711899488443393177866858719306635524439476708585109095304958186855006647508580020843067235052834516379171560073014463780677822672782573718799694617577178031601253010091820824969831557755467850245568340992362444886532186018414447110830201844409335520156577653296756309511834775976732448496001944241308821762734926782272378202453063419916218227514569202667661552579114717197510839234480011022977518449372970158436227585438278759472543662067363315751815768207943115254387827296675551598528829009829406091579194734672286572971648886155732210268178073293637211663199714463107235039715211854698963020339364039446993547546982015795775034483012509715166907511440301612431044188154937279126782146265397373304350918339861233972862213823366931167766275526452157780239697257772735095902843198207663170097403360391953729627292576315029526793802913568117567580425901194361949219804977554760821642578449203548673390979135914692770899268703304226583040182089579894313094247081034497338037213484960436286483244405372116795777659903810047032994858920062398970417748344893612866169934200826899578607426083773233793272134803669488126670047061422171575444940395523256811084516427361323083388335072623238642314321860483013336804898242064784593760316174915760350349294680923360014315224284092675409148884126527759499459247178059246542780652587124838452795065440781206931086456734421680379680547529570619953922362640370844287895647022266649898155943984726199038318339700864341872404043834492727128317986655441471678586075686576248072178128142122547375765472656749977673277706737754671971470523306862437373032113558742087477149051536866300374019366961720680312393555836716941505615218746470835995968407953098216057554008609548329351719323222750660278468400377364549101591563264136348744416863828828487349913640276708758705109960612783062297609377964558638347411629447825838415240410668987454912308118415767585104619937343789716571658758204121181042539909650527830238792623573900121365563035999256476784438842195506935171285002669410825291869511649967608052351856538907648710356535616557279834870653686966254531142938867415128086296698961388881395464882892346931962311437756409057029528170875767950067554924862796420027283111421258358878047340310989395443111199071795812162223634683632085854935175369661400054893236604834283199937231546729219107970791338092594101901638367530930022551708178490152920282332561255492336041220488847623781841755826870753843287063498317032821066061912152835924706307322766630914570438496357949128518611721259052193836512879293910932601578306619891397974047546967671667314739232096142219949925398515386020599308315648072937567915603414166337818541779745105718476546741145999411324889860236628983436309835912949769690289298858650738685445098215578957244403160077038751171624024033021867856312665107249838231598035711045466511199019846720917711570985274789240435728399032194621031600406266099155498952943086974198867886964813485525888506862026903026204099758983165782551241901874107562912351411837947624726274088897580800531360515920444412811318415806263462242837372708532826430893374531954426908153068832005476746584852626077988273226758826114265706044268009636437956710254464594958467830545924429121831142278599690272790357821130953967923388387547331294722668886829445977460433382047992083097536563441218405711830089782659739465514081272373439146364367455779185075766497897358533048576360349010783198189529828664138515141185885308019859805737084753879891709911152125336303907238510088875407824767410418621218665664858589832722616283885839418647014152248793628369769986625042433660193071669078064700903970656713545336548529991577086226923228165034635946724743887788054452062049606915283953386286509826657988350905537422697393236818376793054408790822347542959443321103920259500985047720450402678581791588324978480620134753532068810791604462580138243016972603917080240618726077450080129869356265251559342914197451518413751380362051250339089324933650998013474860559317874424410614650433140657728960980414373443796776541254172467367130431402355778423042938582392528377612357768342185890891282860779307893476968800824009517725475559982721802982332598366359682065484996696943582360011946639465253403060412726767030935701317024333387405244290291584402222190542347659262622024441337359601949038415245624541562637617484627163904194113041717931267452410992849516275496990768146933018947600204898970877217222339879327264988379819401309292860764447307211141290585917538089213429733795892713810165919427065284816860698859668390609450755899035962371268161814215991297520411933023857668460861019323362343333225102160440728138463542596989630632374514358373405890731390676659166775347230452678048860013537570452404178953680986714941271581535534176275117480884529908183725667726473053519280227034423924443597209668425097363796526327496237130374631706903590835845463164540231969943181773577349193684349119329216080143828288799473774120100678734412456070229308367132457369196383222374722377678728429869159251943616775360659794392733577380361479977651001366312295140951391529876543332406274019467534155535767502753079122466290728929334923993962834471838637152591167671651711877955295174689058997182154538889263990799752425377695879434059267953948398650106049508497053444710796032970580099243980052653553833160220463101436480686423809991746604496129258489517184701457556607112413730697864566619797118277815366319604586864029998154154098838644319861931956274730759646384844597326762183031624456526699322466052230210553477534868885981155990554309601752505926950253430206317279123927395675396074573541935765825134327864317738026758094766807101128228079336283959995005714449665594962435128851015762405251717869476711335257378506887934521069947806197955042147480125345340883055971275740036974614233669771857841605371878947428953204133636428951076753453273491244099467366748331147436918445097605481176941122570138628688144329967739825337079836043759973472935787963841701348463277844815978639258369424914540951010445076445465200309303736243338790454206994673790089128283288912523175537180161826759906187773675398188544923498058410924724296666294564692017669845009356269813534894601033256687402012857726310594654029092394674950826355623457584867677506104114769838139792087820422358197310578362424227364071835109768969174004676290463528091217323852162350683946809804967359794809292330731422069003000082503421886449497198361745331504336091664840656204420219944601092414992358510782137450357336003329827826895046122644868317210320295305237991630921007106640490685769574605309110682523555669725545342577221051698813521506837977771837437734206955645338181524242852274859662408573125450891565667233414597751311242988661049641113195827989826745001276417059571899733960835447053161824975226368351206752522244741476303153518586254025995656412265198110996155500432684341809480318990671878414732825063183770262129329805941726684386401295261580898695769754335070466745183567861564287020611895787850654315286319984151310559136263594859814401760052552356247155709493974823411752006440198138866663718059905556361974607977064977082008358878926580166824945496333133914833134833989228306916095173348661647399925041018315435592643204829225820774584800661025765399578453370205334408967988724208752078498105558859147517198518163054009644608071891302176402514568992014050089523977529829863717888644953274925850862965748210786012398337008163512351951783824229939471263055357463253136443437731962960418558602739344204001019940443749995750053245664234251040240075867234119696237231809501479821164799415461408026715404020674757270180537031909544062572675508980451583718315786786891436303470303641182601430343636781568206829950878503226829195385334502702013031755029871850734059253395797462062091558845772489819420727701531942298141575176121848869218158923539354601006586187385565900304208428229157273346160023325425877762959121087529074713121615903028018347611605638857137673148944626457850359864781282183472345331939198273433983784833795865317666387527950409172940304800768260073076592635473238357824126776364662716514908045506868414546833972890576867805015656864005408428182843029837829802727291423768142728281891354130936199091058250825250475306364969467955817259364032819109888878704757120484556325843724174193144176034156407674143777496207579929286766905251513470282057901108300922008125245842050863160942379228275911058546743017669118755416055940540539485351033869939492960502900969031965668667244462882037342932634227652799936137759200731647151604000021192560420478861626559561615013962367416611092612837948242115819249961920641642911896779885445662266135070107111611973971278583417349929277211762935595995745236588676850027483726762642513411306715604814872130749105214444440025501993868037422348434683741679141544888888831722450738943502141233214104129425823426951017053242755614022210915604035550604182669521328605846821628795846813123659661726746838687923408156860912640151532588867060084655304663514366637603414545851104845713579032998089820546142639323927757917858116615007445905048551937920448652189787314675781924734453078630732428960557072669591098601003966585376548057581338820279765220435654982169026469248486706272270884644848840614290971285558345604507912666039853192468509566668275940011767202586361097198856861455180610437745965062512527578785265466105125760967489272818139000127978650623240150590839577635989181110762651312640626404744759977559256672393107880519596731330092834941637495739533413666187247796673079637406408515749386621787357711122236086447917900637609036701190204584880128041948428893168779047344218052078789339367327251801813246216492829985520916935717355439428424107120829449066942633952109351043937105994002114466492622390789687063860750629823635677507799904958722413581879682256640185204106718945518932940994875791399914789398303609558660322876115872883445853358273775772362310552799545890036914462252070554505041527890738953959243218692672809543833326845599241190191941489544231530226457531371285633803656080257303538846692871744848115347684191740657881026612729226892475334642334611503195012053852685505205744425381752541698169982125605960962401045340918588484649663807458585196169326702329543187387633416260207191414503393175283206442524073106783775410475910148367319886005764184000556640622741051641111593326442500130323662471160280235619789381118244246702729115186921050755144745963998994084341015936252644314165760865055676784039770917725612085980102196975670941630098715311077238177661779885316554544940619990406525880720719762011842983634621990616235112344716249468305108502602438969259281082158078799047994020225739040522057853643748180245867369845222901372678372625322558830086893425749420665958399054378611883066233110886462283423017158857351768368796881075086607476676181913065989329605334556699700950962954058433253567208672482373734156066259211605341125449504030428291294665970706285069660585037190764958981406516708584960512479634883739931506031384770641821835689203421962458628596681576714751073476026226641625125924746728768090446057906873529149954347429206233914541619299887204128262793864793187438150693627448918530752629062632110720242111555577693227319796626507481943637621572437331924888064063506750581958079751138302165431943079494906525974622035800542396260669636640074063613342597052666550069300918212648655558348875391220134571980576769463647468273539740123825640341817364308942053715760147057899025323327119750109770678030676917187982645696920556408928270073587532851569690988806332622770862995157997429020606286132419749540658585209322245722194517587339557843496115247481725192101942368652346311813165661836912843664875917793998723135761083069944079724890625212454800595035130587372768548814442051669638295437549742000426337160455956106444759559015359393875997069980886742650530764753434176625232017182389617594558042944415585068038079227946924140388258566705800436559535660691016111430238278751635224238403735572447394318284394991942908752504729417850124371495238456011523320670821166819961380864358373300820012279975909045400108645343819642973625787847731605159667069895918100773839732557308780162009774203566708727966600673303668453830863019561731345017477627267707614700077327576779247286071517483013488348821241538906458391666544010090996494515303320176916726784816743772840937958497810873356340702272280898776425388019505172002140774395510225644186970939547067123412384413728641599036391930596974785029962641155700416408907655782515827534200210059805818573243558272958364040670754689509204117837736528948359323664645477206407407114193214681134012644595029301544728189061083380867218702768749847916688083804122085376281406578678676994118923988488971077628246554478965996891679439335594513997556985404079596485106085470399248044243641948956521163527601412645180716321141095107532965824124324236568731836372383665139155466110855623739119608577678581849931616356874390410223773798265847860158873856988287609523395186974544006103041049065902487575615137855797823937030860005949678276830165850089014738807481664828553947217166841505400637216973620481341489919553942123297810356203726336881660649619672695735636244093040747958217654437718033207120758838701215480782960632999101634818223939955743695685087315261272443863926971745462906209036278828635881442489631678548221151261933176320128410549146816479763117717808947979745500874807541462903952436804283509176452301088786571322784435099676142492458859215101377200441963268625243917175535258420628225736687122307913322395789130049812328575865119181144528530865121831926911999505613529001258363979999106459946912630126844394714292093899090573610848358789688290899951387475316112298873088173425837975027680982181482555513603147669962469485470503827093297932094239930303841702059572255353755621877428834869956418279704960043539662984430458318650686247657555424581390064634627537952628188623413246018494960019299625682393484561553882691877734754377821386678732976736652873187222275576200714757560533256636987511931320547904796009474641444282670091201173459854814973568252155314486558258412707706732398039453208470524666589412043005947457488538633724211053314965703353868695247162221623243312055400255851003946505722602703549625212216788339360785554049604923136370326214349822789054440828796695547862023370784844567596049345773563991101278352613873902562137385510842050091311662685615324787816784059357726270293248785490187148530185278533237614386812170419424953572243646794808447215295691498888281958766042826339527087683099277378521282109112204835185420487860335317118914681502598440708404979783382964700483799047024126332400719669693190869408068750687508786541508711993706818769788921170010501525600439157584933603889873958869220009061319077618796961521631194648490931756960502735847532896993399039136525908970938797935222636709521355913741599450736691528049409065936346114662304464976430849282807497232438265674809466074616865514432339839259914910514599488719535856166707112796220799783165556807021342374586973336889318031299269178905098188817226237940950773993834851806108014426680892897286409414665745764189579914536518144039268343195931748937481718694209559494306250377586977180906012660437982979964225069328213685620894003717516235146145004911940605688105821284797302169111310875284355296282864667172678538348402352708845707655162572046312894057414490825498552039798604972583768378926741396663771979791578517095889588194375174110136763503490369066318720342651678549196232553046391446088553656378904916027738439119033544111013245407973711669683583152188848847910062695191850828208870347104745667488586191233953679720283179537068935284275717528509506413850494479096040835253703057073582831368297271900498865516019452126419899620494127775830162853595553176154553552937375502677438743185095268623047395262415928819715942933137757752930575192778539654909552464180644213783662147197276967013721424029197332624773765976152405229784560229978525910914365445903018127774503878237695510963748565260396304824021327286142321757002285873759593261067845299088522519837950832029973128619146539348527442997028027350805718307724088166860031221053670953621753739810446165539614905088299837287077394234086165358527774284153557258992948055880103414710249783489575065106372351119827425751084560133205319150456622364233259621679078112641862355191305576107691416353138415681729894989709573647287051551732350169943336574358622932099881351610232389961285632862052314596433113000144143455570472734703475589141654616613730818049332253216556306994085210048860673291660853574417897695964212326264179144364227413311202716860046996599041908931156238256618074975801706944128214840982982092068928389690013778471544947028903758479437610023913184283588976825574024953062030029547623995198595509129215937562202104059074379656777544974631979059600719254023142174596447106572548281974118454084707433960466087613173881623626329736329178064792689255509457179294519929765678718476419698588926964442922826481842194697716775859191265140511274526507366710341880686083339330420371842481553098897803265509395562532858482594010741443534434757284867313782428802149693300145433708387311240398569315282588722648305791068927339577126306667048405907290872251577858971109859987879713254687430971837313159784897262863740587280150301842382494513845570743709213364618697507325872448212898335489030771304801532145156734891930898208308566483612653383517012743777225668517192871579998549482591044077048141515934091834465856425221977676113464986577162419990377566067134722554946691789520590932765136937426170060753292616784336719408696676798468462648985545182954566702333764200286736070795650739907740460091911854021681051733874060117105532997450103201950210240746798796776185060866004781831708461288724999065372657414064913700885001888607504213514909822581344985419773609165657162930868284715908792567765466918995782457129793167424847392576285057892414899858340866850288169793575646172343670031992202556409645543400409895442099412116698131652299260304557260235642100388559448747957442418414227829967074020914712403666643688284224266502261819614255381107081021823822316309102725927064246818683639394388183485744193350125257959374666058821047659476040745579411902369696730402978579121633851709613583302501801914749953469409483457172365564416097235487460003419772404763916169637260047068392962602510824725002675269189452221835861979466090930452709517235206698171587505724955752254029622481633248791626714650961043784684019869008849700094486921377216291057127258870984649198642082687300160354509025084703131208771877502419324010492248681798249520420961548233964669355087141419884574546502104741228047886430240746767187498305978534910194816271320274263582700706287037835008224974070342411142816623025202643812364587333276244306082522575239234972146210922399047774003623381331615885263123675713444766606978940680432187134254186709708490478348361537695376887194401492401751997038325253016741292227365180557819572318271198097067902581345975067945830378722448752705544046918107594260137160844947528738750235150991966887549818258193042273501441234211650720581320245784378463626859178176569755075551055659321237145741654110752245078838625797446656585171700529139114070500640449289452417775581056173706490513490266701557667182246824522819042405852780691092267731961660245602960344630192887302052563996065653859599140336504983104139540717998963924494721079659184210542054699308363832884006833100481354539726153813847368350669018141922308833753421450996268369626780022755345648850557688012054849105338586563739084448398728012876048986608514477138254841355734735014748477069581772180314336922327956511426188333070642658334997200433877930053590259644377749957136532129369072609559343149559669998272621001783289301288406081454790175658479918649988332845865557507579493016524473665280056495809488441466708736406864459981636006015503646045011795939242029077429110828721918266688811612102191817158051896374660458227407887879406382348669863597994928589494084479724778903303747670890386856919970315220467039942935100517998365630468973082341767118598000698781132546969084199634436457026007296615473090624330858120818234307700757680378221290578125953911791150532007979241542055886886308004794742461944837079439270052308689951247603531741074310986726783554518644759410189148353244208182933303204022690164685811910767174458918456826924845992615459003430016774937541890508257968729349245765075830677828744716444042565372816051942548281504381513400466574716808853878645173806676143754648771534510005718484723778146473419188321875276363895808103167122681052997174452132580908945052645387388059804287059748383419954279917012081474922900489959343600377454968548367025125969956637585300124363601042085132506126647827328024891630722336962675320230597390925538163279597952824150218749535208784500347842418070002061873739327039865049332691366700145553989740896447657429978674064823574335944907256328687180346638559770832302490173764835155760311163913424767937105138207275800189697383318397269068955769484165341627571595341773170572900721122774303871276062849659082447361354368650596787524473368977876385373472463414495822993190106717875714924646104959697987521478938027414672331996956821191394435966495925730542562551737302857405632493002141728488308942339080983767429484769605479450198894073190403317720470436879615424336803666125301731784200071942295198250840555989958329192344236091391632018018118969033824302035102206972836938360780934655543094403771861601122683541011770578765149095131222336358194894088200306092695468090122555904921608303908746072469759887553301324587698200104422666986567593683858798629136646447578701403653357881881285413982381143699872124728454709964423759714433125691912658991140900210992765733318772053498456625461298008208911041456689271425053396950756834222539290680135546675118892707333964604990610159764166713099343626884968230493644767722826292778162066006988646127138555374480475938693518258197601568508537277879802508842184020737383690685734123821565380324203855685865159567642384398717427422105770958749518417826360325988023279416134205288428198794487720543925603144810204620838251637884150857668239319699755690887775066451785090696112218554841526182740654672293472987114757969531418876090156947316152616674380635208161127156478547499117449664759551824904991714909956231607932934378586681369364670658913272351369969492944634351528622423063329115141454447311209627677279252720676535388210433855277103570855879254796188076691448147132943252771798780026214294137936215456867949310877734295641815960887322689892562734145900289063327088235945456569407526291461055692204009407502634441414399044523300134972484588061145038125435724169098987246021783990508535246213075035386944476845885229249184369781156148001770595326400391630092105059795198315138398907280427612917050404986936602430547613848559856815812458475016637275937526448504145560398520829684466875247376236709870851804406361792129495625171745216960087993571783247421721367755405424247167506607262108177054219292934151353365794593488677326395677810757688051253904865351028779617484260542342308739125980221833619631916999102009641476394664615445549856510545492823880111603177788363026121253963490179313414339924181469860646078904850760450954954319517236567668128065221450754915954126405102835031357346749334185602853782521277764102324625788213887264344146297359305172772482509252942361166670632875902001760650464124806555914248733348868876238034022519873335419850453269159614491123831622814712854832753241452104962113911245914861336793679072716470040741919694971833436761059872915549540302328247207495438922489428779420442805341500317458231032097848755924886030962430750534389535620666016981935280629411078116282595806545848619230721524322789822909775916584258993639521251687021207380745350321769184008028014055625902899135648049917306981762242339200337976730600862254407729874416882157317904622074992718991765549729858476113616048401173025468707674468805567032992099133287254637475774698014695628965969722433284524528233481801441137440102950371722118367263086778627855778537647478893145754189274882311194724576957199984595424801736777547534276725837041679170154609288386520444721154210707404588232780406174226004781162106596772006233928622901990266932630619215249825562633636647867332577984187345982461388434962386098893387242310571294449641102277312417715198641009328357072700417551527276085376671680384634638927003871546695864091039524518666640968471062244353140099784324623639887441809517717324630369107801190493414340359345091362872896023865531514461172050427320841995423581551288602920494918199719819209375587775096528886130256268703219057195034696635377441886747106425849818626766623931398900383621370884844625723414405837865912569131147764271046989250672690940043331953048144041163639159989471476743946307743080769155738882677323262211341161245921380278274362438967276951543920935925802624567986995689560005745653124356294670911814269137907940207953456236528197840407396102359814415640214123261513642519288658009532939809444320459407053598179595696201360711666221949685096981422297939780580317537795648681911351009559469414417939539587182195936942229059733889811207758316779461832410727278963695986316849796479300328003218941523767686506312941517727830200808918802591991255951694203778639176004640414166052432238712385696553563573517227591777182177086029237114550283365136108895736751699880554069309308494517763848524529602468409406892169923561002353116512865334171996042371409133784514787604839688396615907546259741909132571484705176553590093899389522976618678524498833095284315809399282354024142720021339184282175640152627543835330148387246610775154065905704952806735640613140402626559493457483738641659534764529896117451110264082962413789335058781267322903097602131307920341359928080075230624098161792475826365760074720129752859486548780562349194014704757087628294193276112446399791643843638267842719254422363330574787013188419534500685609912593913155012021780631986577005287751085929436807047154208845793717998313890356817059495647751098490652014092018359541265913749373435879377428765030867504026228848554017353701585971412395089599637740692976794501936723164735098194290484511878620195367401088919313288875391111706660851404132750726679301178511330727330750561400341498108526481796651274942799406308506938282718652232439595651376116704305224901415256988601236098884537698598350473064347543958284672016014030851326922653429364355312152853139554914078560720255413549174284281378843372589574302690958304383285287510110629751675187071295769391699830897630985816301457352319005381815227680958716003020731489442470210363475267819559402814198972167233542301452293275398632371252913759090124967238427981893664999858860553408043355736277751765503134538672728570698856393564923603861406948697092305325909598402321224939825438372027487557388589568227349012683065849020607003283285038774991373699366126800983098073596379698364200964768258036715049101678151558903818983372408411624335780139480331112843955206817330416073544146199830075192355993833772072268511561168888634528448551969941832949634077843022314621738579724425329990652604180614753387422286657176979535872220210295022138891780701078562743111910636725944855623393236028409387306129422378247224661902235217705140969356638658176102191532560283730859143318001465899511673542381793455880778376508014330222497005273465620024614179555564553480623066633021859336165779024290666373841479384051367260630431172008819673728825540932931109653442103394184369233453565799855494234776107462065183134181842727928705258392467876110353141297085393689949360839110815492734616893645787195155684653442650602219548945144411962512345881372568381710843726211373082562874977892725486937260193894137665043722375536112614549465735045979865554257312085362132759380987424490824505556898111713309588998058678621039576810758725765180939441743406325784992054492992805189929342534340960706024365001686640794951269410957231565468937654891933966864184943919417428308410808063365716908527225337004434653284943247291444375597563637721689742840973726262075626482976979612612977217179034716584969908638134056951239628544447555048598394412554252644921010221182082173854946113866469184800248863201071026862914389253807107217080532994478711548391114292826653884258006960244025196821024656360457286940626494958053470957211589347272639954566142062434174763898480874382858345687633885839428102234865699785134077291598527857802941409446909850097575295477424864364477130955006081194215322449581468672974247027252304057914851917168694027213121302762823232630433940093471138097063209710569747527784479587325402756241540348600289257009041138519119066292576165243990017228184239378109815446631257322183605254046248489247100850864440698516964306166852237107021600356685302573762624782703043851032516227848314131486735078682226846613023277936696845118230938356871277612016112620390532123882441879652403688204782736533243340714361900512348846249284159638611415753859192497973113335487587817392045070504692271091192325019169189031014706446538156943064840856209268860112475575239129502956330173392781527332805746750327257879843353962301074073126425561201027826615609294731424523793382112822143019690790597104534771503980942885744378111599990728094768009992072529703547530548276897891610832756458504667999806022215892750453451602194583506091865945545809510220371284981770962731997783276673772202460376643613674222412841667092816336712431550586201147907351315514679930164971069639144546929315932260034209155566480825814062215206872130696576981372304655065276517404959365137853773503901649977653828703576284489834238282505634949970120853089464755893527325064857975431932554785029348765872697642674362682971725316809079200550035383478160574715735677526185929993921949401179859178960010254549002813181777444745693556450223347838776281618171274013971202139649344079215813092721527246612449349306294857944392410509149530730844209405697836974325282137564400094389556301720745895678360406841917084995075823361373611077743053580341184979688518178293308423692859354643980950428719167330688320275387564921189410711945854511514075523621434782231218555865322059280552263107268461708862846076726459493384667338780414237658627664237503249256707464486083483414801027709744320295746429214408222703956931610748177102836288877766112968722648363338166953043684774337931401414734243501839983709032721217798691109073043407684252712836163659023782916121622550172099461633870039000312835904693416881496128062931162636108527246127235072582145690148491539868114101017927272256824224675883136738077879602295609083613164609280554138630745091037382878656338878673423598668342379108036427629511545727296278008347879828465904321625308032947106236982223202456458937587299102044442922063072184640005251236641136988267915105254003897227797230134473245753673745522929921648477008207655346370655847821065694533595994749081544975921553947754151657744503904088061120609572096202032237974981319180926285386857178918072590686272940843202314446675911390742699309164968543836882236780117625023238191945172660378461045197371921393855365195039238720151085085627636988869594908339068455041474514291744652425432328026216465891612726697580768247040105349613129212704791767345904078876390934180139212667109684689377169588926616012285027187647059852712180391069195680202615535782236394622296561030340530166748541400176260552092490207786497689912671612003177402156647026056652039316809447396356641614370135822591760811869228083744914617748470272939042049992534737736600644374980640151221765101173063428555672160106848981402664817118878209290168641424258311125951360299796299545202621103245264159155514411603353834569749655216484577739746049021153512747696538687493455058180280258819926701022195201568998018030939923729887529762516535149290936389759212747500011692600881548074011732521108636839359405432622889137460901380764703964456822961305718255736834612956062206177683442731359235751322307395728458830213578496212657076938677959389452475718443132370378656883381127619550563210254183921179794172417531306410034332944242989365610178989799147229662495503066703420865979764802027178903683461588434114348154019048387416915736206391466170957688661142911430016954380305480461649055934149954098064122051622454170893196358483703171600236572387436032093888282017321312710505557729289708189072446255012493085865786770037571184136535780703699413927920250819219261079337569712992601691889929614172230474733161328645864898186535204862194869437183367133238249738597466667241400376308132673228469222930699058772303078479598228795408383489214332065967151087866775207955758416884299845208497665658682110621002545953319978696162749575676415660457574363342421163181955336642103989727829111872027264175568676386523193163838089537510521859397129206416268823270596587687727570188316530186441597872941762341202534153832099002380760515518333288357787848866966866654081919643482170309080324970709940827562227123094955281463133677437911452156677810531183484655899188302458961133450970163707395575532410756150446848173443401212697273182237313942494366257382423875012114353595601124717625283058856774715051981043388453084537800027246930845753127556263502191295909353288917208877743813280664896863130147992372677371925994162184275820338096438584535772085907867012822379652202983752432560953983572516854461933238252441243201145875604514808952797542332931051681754953256936340057971280126468371125429698520782274335230741922165065293190614408174911395704017692212832130796405553375676368228164300602128044316110286996120599619066400126579505254235352939540390509232930075273000184302470810538005361657429220225747314820927007340021873741205488974832420136516406143333154530121039124824047160561617333135658630940892869716955829057014951391677994686078647728004481944904014236519971121413453165941737491928925616907074734282672626157435215579392281022542825625849101096467036128749964518476050056227749843055085633383003715063163891930871843614107309049200052919674549685398848422728701098578899230181771186003106433642035762443729559326927939743248403377211874779813924875744623663333805404532786364027015466105392530870569582439778065664767853482257379550774254911031542279134316347416097640089373342551740136089738521152677500530194513851920653248266304261652527865968895755216648808493883425095635118433844944425107517406422124484716229730172685977614253945250405248005026239336324113890195435028215465595838632006231173371834702912023493959714973795232915830513571473125441127822466555384699435517304952064285800180248829098621201325365402984339105447096899924650627516627259961342440537911749514402283833212825258099254736713127445885158930093944733337641658626017103828514929931387582859509637305051889662251926159639102171085977519601296132263366226033854368709760779583342206469502893304927933736136901095788269166664891320169198330514127262476961132195546689056275446808443506677828324752376345444202197930334731536653565186572389493326490726858727955554820019328144971813343268037223085246563524506059705016744612224727450461055893242543144403180416174006317755552874978826040753339064308650222999512170809705535652236252009430257072687075860111075373652838924792612346271345140000025114602863824827160347940479096441316666880584331264488164865676700004266394889240213603894363298068398803844184126646285783872446653088550039865003961021873507772222536104529193130037788013095656745748024272096728414057358359325175009106879928255396554995059919872510445742382028284697544567005864695643628696040321493095905130189904276523763167762266666727380517588903786060121943225391410379535501120966073276748222862213275173273621057359541638453799634102993203536072931957993963061324192651687505895667475502625986911287803949119398954678419129271123656377121470888130857432844758919609057068854073802232103203544097768123879934492637914334657922584116235427713418975769609515643934199668374960280547309181226688622282716474738375949942211495459472518315625251419967470504771131704356232516402379749217328779535576800681795318167382483987548170562320317485656943577606589856722551086703748319185430986224007924525733654557020684917232910922340598302776316165806485173004133460823459156030359094067367094191002004484204975932656770694810492987294709515238106321133444064289081424302773455431898362127068338678235043659122825555088701013274572626810622141319371406121404531558000804979195813210907934194870677921232733002896721314605470389944358859015519590082925266690845789490473824278726465548458855628071139649189958032203304089149482019288114650173042599750798885461552065054651092293928261392729751315843119700273007382372536862954649633364854982566108608957647479501031862578750690163036727196973445260363033103765234186486717325145453338166206303346733821312089438010741701765372780105268351461923850981040449756460679133581555612174750788184705111307748862066332786908600327781535774214970796125499262738982976453772196093853063623935172032534311064888918702817864058743351476141838364793699690154744808398772403200519519680308251227064124445006829034629276519157633770816765688829759659590041051527663663238635433044621105112659790191701191830325047011399543088610942197993653344877874309387186805890182496491136942934592155930766916572257044443788056261154934057199308353970217950347471804253888260479788177231444835415712413393156215969349704398968244357912252877590828069747270011506911355307426836718687927757383449559349024743796071641799663895668803220738865760796251330762425213999248365259002784489686985065293852709953478959097893526935811941429940861402813012036349854256180684606923557902130119293389704520393945704318900026169366633232683035531307700888744692510942244999479960008494626089222462029477197444908106583865995785175081070621691559163925207718491647875829019859588486957486656278445663966768809723444883037734841708289885396152404837595165209309226585683967838957554917324478020087661976674660657905112740969663135530685074926845516674905404165525076960998834048391422120520463515937225737772231826700249533881842849778451360919346726948220318306783543804160653836991633358208338222087327207332885409623675045802521995033875909936739083460672771081559387377151917990012055569163613612887274296975626720328446317361453716417169589808730141609695155545063220079909588283498270735199194980670368758116535590588546653167590625197798871911433569486751651521444509896904924712603166583602411532831383379001779844168768135939835941468713548667349524490453367875875398843103748477289698281387564270679272235599579377370318907912482160638118301721293392158076907464771633415115638869239637705534696911817218035830343658108039870794671475564320568795466514987206533414449055473584583841526283125090099344872464475329358359813605089932709847751372938732500136579232776660516483038872822113990885831869651501056451310669289515787742844008540211001404542115717748491261437108441841630882344243244114451204651985810766123281571797602783603912013689163176099229387474931866526893995208085479542652337567209915069371075438009791588459712514697139032440108634069365678675420008295771021798289944093522940181124307236667442540118318730482791718942852450170549536457259577416572631978357815526358602839103749952177959944033403517067658599992605480365156678407664477223010692496671597171550851650454923347261083955042052720578851446154486305647708006545459236604669084905974782549977991735266591081956569479981741577612687848323184171895117051199075518454771218774960692109665354548798044113018881153292679656391639915974010669547846685108253268470995263849686037940543722138322289635380319454394983960089940019696236395454515177978105114302285574558634535138012112213503115331052661145060355693715247556452506154419768495865256962654759052930317095181510032715476509858535194689879880541276501793684126621233819149196640863150358251339656593045574716164490757151283929479039551266083394823335735570178540765973961776630647089034745869000823432245180432770838678514039416016481117154037002398351843097956430974835141957319457037734757159460264184338180247372613745929707447411656344564145435289166647114811424396238046183397923727742961664913385639085465628976038373287730135311267684914317627984249415538385119407601715649755955732717274019967109936576931750694871398034543857038384576100647477916648040329119568415667752307758408871634653514149407261726208951632661798969300685492238970146840095350398479628216758403018883765702396988769479763538342822234186775833221969622924004092777840029204934666161477737000155487933593071068242081721685571813210123947238426788286568472439246738095317993279898786801087688504588501060294053925184266379965609469059275561567789098672469709761414114033651443118456914060117510410907689467349697228190409720059406400988080188549807488490025587664349605595593022982887756535930215435459167926633920507025917335758166730413412781389899884560795410379136641062918451088723006788671698633442691679266013006706552826529119264044631703955532227449809544842185316798208502353904004211072454768906077716448844014622353981608918323224839973190357037735076249839595170135800679548517493326131843025327420539480010004508650266689442826828478220517281426235193004065782607191969277713774817444707557130553560584023478006063758430809931547766188705611539616034518342678273661221532021384924317917962214897257116664977151053978077354403001300493556828475912477250120420557955806525033052399569822566633831486786707606018015586800200730693954397976803335447196020423607916869143563378535503707431764428115995450000309468266279111516282453481135112244101711843143961142187369259055002836748803030202577393955498238324845469873583297836453607392919488183017677886473832627335066492035590017098772716820511206316915797328629673574925772265293214262406492044047813868566807962378835209785243196478033820457924804458021823563439426826401020743360142622758023232048741188492808467389913630909862069268781033377071889223338518272211567409534713377674902522383064486998175003482365119377957443567854726522525090387724492717134422019658951053234075748875466872477052499241233598768068634448728616240349416294161532996525872944006138048702437608566812741374205183598338834807030723998240687001968743635489321030837542230333288260010923017832052801792447112982897015297064711070203022185004775507617025925368471662246512970087125018321384779439364408267155651593134009780954763084103989873684980146623953998116914132221956817372903449640225079206268403407613337740886305285944517026762810912266324133567104917277581670178545763716419189565910108747762623219368881567845390485093435570527931685700228971441446452215292860812304012109364964179945020944001715039862548905782841309249830329965994863092478422047389795093516679646671042636411059165111614834764452015450122490158156527080323398409474944196658502374485377528034490150434191223806785654092276990435711595043212031581091233071831222036373718695315720375034751690295818923177633943931294342916392148325472294094289396556658335674738137651919103847067407171130162786718709275868372191804451390827650411356007664992522736677687105823643317934187737758778008549733684529921006947589768905078759732133055471428276632663455158751588970089744528003255403052398354521132069044611167567028562448684004039339238040451866412882143053225291186577353017933257555631338226494633089150867126796101859614237728574291000867018457041456769488602197586829407289692337214286732861714820298211586762238752433500634720207208562500444250691460439445263809029435277770254278111425368045670868428537515942516187874343050804004879741657382036654563274816644424592939108990028110212769288857434363567655771112733388633899664602788367068229635095238252946021794758453300658196897169376456002542839652443340206834735718594838617482071876650342264056991306015232657759148139096551464328326576612637457541837153809330054239448979500260499620717045520074582656134304239299259794061736559232441767342754472495690717435155111956592285030761417857895881214187658119140652781353821415480427186415231100487594083790606002435584885251111002942209300005176902213256630688924501915300333438932050607878666689442054099503260127328316266290264799816348999447496331838085122277989430208184755123076553109693245130451698945968494449477662188796926093603245309536409564151804242674436302076060749641696257582048208318247273127857558083267838013923024593856219788119937096581175094032356907713235941282496293497468393839744240786633244575369793220630577410921111565191073821994744949895772001441126524517723410147692718576961839480179269792820811079715771252373247448013633647199877485144354147458162899180550593277122726186857510952395655165053852030849762578633382946547857134695229676876892098695385085353097660575970388629674832669582710341545916281803990340341785673625419546401381797833405572364544531074065807954390901219593509845499400049861948760759013253982912551966245207390907688152119978292647327855617146343385179978379226473188923304490215218139916428727621061611341937336764004769757986332239536010915607642586086443050289809259310906410606860446319588249655411567376725472030652423313163640695441315261362011468570825620197295039019022668031569950169363565046932360046436736969540206702845292507965111304479324083915272751433410505380245322957410484146309853489289833121715204251302297777586578246492634597028617807498976974279975036138912495406618714735319219172656416800311439493172239505428451833077157909940023353254908486202257117615746241775453209469988145192443149701947086320954983699616096931211540282907911971844614164744909709454826173012824112502047877486149115226416762485593530772481239045857442681924956217370282789775514975344691056355465109560307730688575462510168078598449732398964128223949278082884946402376440945039517702606912341864749788658167994625098946924456136533355496194663358971109689506744792748991648932622555806456586856561316539691945275951718601030570914087909196563531568014902209092718854789394644981932536659667117184439312963843352013989503253123073745217525914024166154597211689221144687055035068204261908842629352045321232556856038884734611789786652022812931273433828593534966774707209830532539818683043274035822508996709201023886570842711470698841481006371690525579286819973328683285584597121902044877012290479158394764573279584726838052935450474152484335080880745089707482613206696141439708870220924786971817446298396447016862226378433766187740914504309984483628369912053179323669826122386140072724700191224576389773876618103011327648324445891787439954575961551193008341149616196176370422442391871289577124813218685550575827215747617067631191385542122851807582355023899385402688020088805287133093948818442598604063712953123612409752909190162151698884835200251702108547257842841678556785396807681611547845865108001498044946797016631908467742972278922078369797523850731424337998019928629525267239922739238812465163800975714861319696574711418493361236976335739105569097184012632053975308367748422095222896400843595785938938252441745004334189323451485561639620804482265378179757124231648326308207798781785931386072262022869254042229081933120219528047203892388887592752077884149422733419784054318150848201888053061084906306317969477316103679307900541226453642852213313850635846301947717711581563423083003574038391576032483657605691749711575042095558198419893130200841994845035022611467416239844482104893821339525664087220798532773970149823449494373038889881583891936064955726565250221393134348379523091966865160894784192398573855928256599431411404249933576687244769387821777730464315116332220142465472035459743593729603598523720462075764652809757298362912632701220759200807127194936669747037119358714058119681684145103952968859716947865925432806248014860908333110153895453432240045015949289765416266301326937457609935205842371719225954208705412207629570850987285812690754035165569970565817042739159327016458569656394111697605514845325306208007553960830752030322727022459049694887139680011343720053973140321541575719549983647220517773609966533802809063383580386365416308813348773281803636836814990952409937675154202769910865921057429150406562862199833515020806480409211337683831473033444626525276026783856264931078624418376427530752060640093286238815417389214030164499663807196255375356537245370065569069394029920874880299575856462168969804038448210313859914380829358010383196387870125419492398285487658698724519779720756415818749981138235859812098101301983283279165998275642747001686779843610450830866938691125418170146188199729549418292128108202351255528515417570671980733641776534472879032297029161218900183418254880788258245621695114591846956962836106827617517804165643336398455334901375153017381602242015078262623655829405145782218281565887240888445570244829613368789994135825735353799606815672581010378593530878884729988687289284268110794705071117890832615386587839397272779704794018294660613105242736247781683992340363579422518033609429091407032857838937502174417338817409547690737448153213514999301766429792055122214242886351840252724132172530188474655896988659704965456175531619795446179501664057084550840997421428126592844666527850469728332355985309745812844731529669504504336411049215634120635781034764599098679272937575248166853168388632378883159863170672611427740202806035273084459800317918207955514537372050854570655878592160122680915301842870454479951521828969257672160853711886479691200940723258716184855557560809958677175239574171765994834790412948479469995480210390272440515071678475457640597892164260779346322874702233479996230861160080021575554151933894808222579511110850722606346934444209124386050400601287677923012143111321584261663679783134498750291576348953841814156701724353215208846577263477818772791986682133273472832242274897543611395189952393366005948441860745248153327788167281290791605643826529056270468835966284067961452687817747807168620714304542137542457765873913849887065501379107921444968504358534552815709643957608783360048799452172018105875433232974964693918968873255469094236565897299930238090106871736091678861104565463480160676924675386641591415589318338212603618542547359342339329079806078138872168534786581747835900913666218475955899325501623711832542686594436971654645470849158759620382631890005236186799943668011586936635776291536363704377412239447528020528441446422544173718753344887657828836217096649265262530026445101250467968584676234332361988125649678108919182793507770901581082084961074947420534977250541232929066859823256051506457146385841273359005190627150400840453986838189510250550256171542288736600424627621648235495917408144178290428348885470121094867020888672773700172549583077311014795983772680687972617021483267939719256858939127851440621190219590213410452152879341808066102038105330665994929515413924354110752807183832507350067168906566965255725828645930825704739909008488659695571477271169754287344053047928264819017464297634082844154812047388850884796064664130889544684687530173035569951273750125842171510393711946138323197158364672004942113431352216496321253623723725483831334935276007519938128338301354326831567539400967674938949127647538616964264317160168247120366271275631452485885443596211017346698648719354593698555724102479468929300351017478398854767407729744452193291819452797590891941830195249536695745304589239959530834869889886877202992913969400375218080763595682564505155014340475720945951508481289874026702716459554981231599896946284314646210483925549895145787704104426076261632289084494063923087613249669872307418768897359434574100395533577914263742645826117026193139978865632162555985275030518461364423434162928334089235719211074563941789210939680748741638515562126230666965877459035030890477201331230399080443999746771103677254984669409583792727405108465798648294889540278347241483122279187990542711335158371647497263155318198578365223991976676193285560050968931114514689439724921247197906515462078804224556412556147434686315592057674655377465986455831734419903577833498006956248856251837877133882139662625941597525138789021547975603114930528438647435926821142637659165220401705517697132789777190029549314053032328632935568558925278429710032792338280859681602800866532489328819734794749159725863890903174179252326878800845310364111688611216319649669309209716103016919035981126794918417724800324088261334651825193013478643903637090876800424613559365865722893727068490504335260508201749489619448152554858596025327732579070460081805987542911002838164574004010084700538855630789230922394251344949983592493456630763800149225942599847884192090025219855682637877222910320561475796295306633968906524514682877027540692706334245346861910146225032463183448907389096434950037390468733735664398380309754797199072078482029204707509650069991635614250813140458351617884614921285393007547265294412462937049188961187571891493753223449647715441118954319184630659007478244083982341756194945070454956301196666967330327395322221724560620981315039467982026123815457123655139152023609658101345358560333609707159031855784577961077159014707442721382926739537315365054623628514532987854566950334618215304407177192475929437079675557182753961885069068833069374336703339802094343832384641587951857785017617010513911793003843445394219931593391764710873101253272142486330064278774478425055782128788974786171235915466230703086359077383692093136055250916254705816486073548911629310158330653109214104669561656945985887304384188163091441982320799753985609471559367954276008625443113660843524274714855204544600969419489082308062806735319903837429474185151285915280685256314864329237648421102053066069242286086186648143312880382834004924122003486278490895053155399932104185737961536300635578400307148515932033481115640670894356688039386119869494436077220308879278927056933889112628470503685274008895418907696042817021616144762089474280920991113779982790676292008766272501558243640001783631461790851800199123069025526347750418288152570961851147294578949764366636614471717614054315855749346620261128231137264573632241690691036251691597024398961853954561980672600841011764092127167343629682286396878902625874782650307132741066521538023945534935293738801720420258889982257718671629603084869530619174371516839627765825321046360789533745907493559456000729298043113333665175992039828008411849293180721556088386134014418237021173299344186490459043214914531853331688738203705686951227429740859180366478919569467476989555982908718343599587847321898779208449082874245345010925028626762875792341860346712770514716492732995598210114469749153335036193713682644321642098390426591084706028336111883826899143764282997653623346768995288033719225967137212552940197066575653256189868770084116859081917802735636331269707114878299949091850749037919172609992808316542316293211905407932942406131313405553283136396462099831163989759604562202474586729557089287615517160458152376127141628318675579806375000832852924662070759761353880648891238213686907586864018856316232041459483354136415663306103297690168523482604601654238353195325524036720209261008387135390228927799490151725342364134161196712681511169552150632555041960897254962241590191812164125217447684994124127154992601408375962955765708699064863459187742180920399581887669524991763670625010846813607631105069664841655962854448371788605088970020242725040502182288711620543830217099175336493479793780314049209079350846461662070771987457613338534601489653911916082924778057955504345570979784290840072653234498658501090978044017630864095321603401432655764412710547371054886432090758739093989780628189416332814685904136486050269664324775477417887187155233575446498724180371968316944337344052718974577041108192926719851246302351787625930491962461100208734306617312506470824001170208779244734604293153723702711838223311064659868784132311591881445320152053476112923436915433394893672283090539014089796305759046393679489499647748023452429599133008153168614229055576436643737260704765388966542375140930100371287966753208114701239988805816159106822127330969533444168907151285478024013684887055965012651452662078809463820524553680452235865773456143786344612079383858897097683652773789609485841995242760164571613105552159035062615754005098382978022800885564479963686370356389571394590511680344829798368712216604118642349399020393381238746098654092058024850315370522926762554722849760993718861895098906011492360860137116138084844878718479742781764524397253877981332877112627102076827733294664707888798483773398744883744232258431357573106656059276377617493142557043883206433257849544267667465396928338113649631031851057214272452413709274513566230878648244541036029152539960306422676826054574489284720846211764221352936381366975199597674199570310377177013065734692776624634967692623924155685139737896452036064347487074795086426930353745288099350331791983567323889743368668751855113918212631075009737115113407705177128643880791511493294282097516638463566326640304393341901688019692456679496333910643916238670365402850083241472141433421338477978594241771738939874111648771674397077876481358021998355890184587013992740752506184733956257746068774447273933956012332171764659867008183145005593833454395937967622979610645457085992523494141157789711937998113183349442359122987493779751586260503529815264059265012719978240392894905538966238576744470560993947254567317218901521008934674200024262536877501009642263242981970435650360746749364346377110633134660745505048628939892790119860904709438588160455068160870777946235568185828670130118295626765669542134127905620884301774066434578315803833407981414043617428050875076333867511271153346415982504307967295865222123144064997993912852504721258754045208768368785504849172257648145394993941775723676370792040783582073636017259792061623978641746438314582721572155565386214437312430517038793488135235530195857382286156213440474864749184612477923035209342993580749242944074237614660790762452341642538463475501849417017236358174235329703785273767638106453971330881356063832336070798448314328463544220067191311774811186496498165250070970489916505273501295977606348790092000431873381340438766062361451265424311781753268902407497091969924966899160820407578808631586964699380172657938153710359543024266606557900893418801830697260842109087817602032992018305225606149380500383713674932155950272671751648612961527512600996524019376760672705303993366755039213747441737706323982804070098318941768196010970467734919936146788389393710714497376761835193457779696991257447595236878383833303672516471888615766746406992996436111911199688424389866174333275057154361254021149267502358666370246875223774774924432060106862941402916856977743869174163281318754758293338212846790200078968193656497969156007420167776087112946495424594245380340109984492503557659748974778465507138704167734588155434315306560266455871311825222384282017166997747268389256095724701327778986619785865692806597489790173041248257027511909494749965711493022684084332532213110335947239737330363609952366059523866332757293383980281064649313160882542956212720928000559334192727078952582193313156137442543191646872552678977081481742476819506094932718211653277687249099439287621604722105444882944711458282856306801571466376123345084841120763711012370142459239495492582712430579256064161496515858375257102148661739998189388716003565771778567576727293169475212722191175454444671695661309575964643486375028233154539990983408602595350318638864268668911089501810851568329660701285170802300201252714463116946193938840320350026273180006994888553548932160877987465819852030148762526678164964068918875584981916072231326679449728108553093371499259537235872434589122234983503552110244740698153125149751118661701271821758196670745808935112887416241812520141585916846584342615880574649002545815769851894200735692819037519469251293154041905198799913238221855357088345276988959691102210293011969927203987230256791756223860671809125917270030855337554569744686074782106579558030917842780522869265185291430453929685822684008120682990356379793759706289629209390515163177960027964035898435067204168341624418974220197302986036363457058957527553535725945912945421972063252046268921234744663690074546405880467675929000454352159920938079648703814167459936960635173186347356528249426966992770279228895135595451817136185344393038955769945507398886299153156169692461068240370843165146569262783592850901228031907434457001806916268441706748500122970294614722862795407452864091229292644991419611542831023835280153456188799789515166324997003387135551201932280725569090506224073739112323398397398973316443327130411573269677126000765307394919884109718271925598291665845601223647268266419149869303736299563301014563475438050391514107102779620995502481966807374807241927784496920574960711468113610423424908272343826035381568988722091462473584978167068544294998355364621595713514704943045854282017890055588179787511214136793836553290516476570981636583027493601591143988323446235355776418878318144026914711221800828153825204947642144703404345910350075108356892330289242798942359144001001913507531738420644396475805593934428017561694278693311770427602282561933168705510575347420835519038505031188362908447367915106191404052780742769682710306848005572324019765081958510031919225419200080875372938081554747349880874704283044585948762291712467152327776144542418175763186653872801829152830767225210496425045949274172112387494496127398822456344964257104840842520111911982547056713560407592446964628084853171799661006828291923916773874225915850809716639538109562656824651175219079726887441792981850380366113768638390727183180223142837991100221958981082637212727115732181429773825150685859904678915831082660758588786848696696190479344835466243931883746758005864267426349850829523773812546320589112277789531631574905302786092219432111760085316447580570254703164010012577609761241085530763377996476326174935271817527539636795708840717463787061014426836795061290249538364231402062030822460706856469891769586001302239150089390696917198392168586418721589810021197116636550315453731212242047260480544986797104190520431130305353027926404648780363024652776808009027388277386692995833289780937477750038968374441990331718139880239644562067921130213232353489876390555393762306425884806872560671449427295557789251078706657665155261861839722951302229641689239613324587334705425060919439178932987081430859154054607251736635612609998282341234997044319948784092889373240912427728818775037633100586039912605207526647464092409993690920108680651591301516546679245219581296926075382222403884292946053927874989276785615914243960130349732350510085048734344639304313660657897833987734131644239779534740389143544537149683199242034748558515875840520469589521841562904967344544230206769992238733140779835131880669843874143001932555917675434574558148822857118667922714888950872270476321581578118314510525083561878350595844770255483495842190511302202998018466633183578175385954191386968884863917561364944012263936347903599644236959851284589616879076551500429458202276018136614116037879978175459074981155567791704967754134077726719476965858918874289704578587350850030699216968698645072061375549224733409845621569240376394424342142687510878570786986476268358297918235905101072598550348145236403733620394904227798422363184670884817763483493778961837904657761690337538186139608992051097102467583885999281121577774496476101411266575231656074134909558888197734780583470810563646708068687651230174142284023933213298864743746484899158152055483142462665222614714942146482077851304694748075331709909636540292092932315123550524218963466585648838236483096871693670377446434208361240712819295980272493416717452159803309526723653207765990377437286409221783505990149991022436857351162523292811346448443723977826989036604154549650879249135243715516558229279347841334731708475600752770693138014940079265570411733861360122705537088012780814204127645191613940597177984024314094558417432178188993446642230023548414811333497403207975505915768877781726690756013619285890456788371045101730749544133279629142134655044750190009727216808470451878203443987211062617778874289277288360727538725976918673341554530558373878419404933987262403877097432261755456203962264078423571616723268504357230506830113961679944527591780016697558558473170427770158096524642287612560777150223886771594146070442214283734697005871519948319636042948516403767807670020259704143674251381608300716575922272939720935616336694188301258523990267394923099431960036501151464682515172471765553202120023617600609957395869961012185583915139907025637767964649490767130748914165267302192692539979565863812660437934245320326786048354209095646816604910133023639201405696531179127681635178687658473133155543646217897435717681782135791056462942947768779294028190725359995243366338813803686490167903375374324861133010185651655378314464598521690386022916444379576549288646839699772860811788245514370708223617912218959672097663682184856421303365493828922818469643353285206883255467928237655267038928068349029957741366988417197829933728529044983486325505708405975238631548865582614500014081194627425196151494637248457938110141226683227576362745643271154992945796194982300546632714097950280491231636296825436041109768502143325855434635404533688607788261630364327266777754498685879281232396444644653409182920051112540633989695434014592666257077206445149525427083099672268999831047943906786967315035265465550684659391496250534703150557761948967383643977009363405421001220068439088402595930429848429307876973940136492107272266601352253529304962198230552230891249401218092732173532831585285391350385615527998400984899143554573214454725278598602634796121823150905593010243002170792160068238174329982764663874968214510012442765832863636589318834728832585456079320167756122097289262433153566754491391885146062448967293113524121525510591515650664126716041378081375442468972385710528242169459255512319547131779770954562665483523623298205694429150383021204201752423906628057521762344732782360720253308172789789479825121708057703623124095635595566898059596173797508300697631528328616415822060471156835000799825198517828909317969082282708682018243486093741387209859809210153550664450518078265804647709650476461147184475011282689083769044053256399702667141385039674450985898614189262895528214988247993570077088095831043062707743414649735527677365191924144096398638630503149257784637209912249671116574214085546379460945881481478508529517518418557651728704728853585350856064672922514273347478038479880946321413111910052131583003368314974683261602311770246912492891260298079208540044522028013665236281541033053995210533208523723552108503598304928380670456766415002999331268837692574366492932430725394747788129024281723869691356220698576030835108647145610889852499011813831497493122505429010598489780721420088664875579492157447143782758975100208487982956051731201372869295860934770785335218847816658850879601650346001667317439636017801092708228807862713255059357936481469155111458708955051869019083171833335541168512633450279313475865382300371339296072860240710771999188191879917007566669598870754068220491996435146752836850598373868712660956920220740273495246912380294237181439595371573372400321599016889677444937127764957997616191296103577400122631233031888813144668969396905685205180797685049547699156238063945712720487924501415833264700971391056240349961225853163797123167241222631860166431719161094142985191071475933391490217303625532826101275055542112789956717526741008720897714569405253295803531740893467814219505086178720956663446800375614498709249283394518485832331469458961632996009824295539204833105497144599512012338573912583737427738716058679233188434603192834762010040286999111900006666246918732394389332626642052175980617119772402936955510640836613798640346904517394376331234618873269408496675976851209198091070236052144036097190276735321497624724419295982607524861390697409631367122601820211994778677541367850458226092679922470570460329310936301876998252809807980134743674248477213166413780254350835992881142404817569706400121853448032732430037528797129094898593000099575036738283085127175890317715755328671040481645293846299107588333794533731034635894590932920819583410616866173078426638072918695484736204387829619097155688264529310070043256651935094064291672515659697675901440385507118117225661006912430977287369298092877402256281082805881368503690267864512784886298791271187537066333641476127179820530445266646422726952519948690734708565630015797067139071563275859608637541033585526011387151937296432293471610326477812287065435571737142936875842711340137479852635589442986947883290529259736556946969362509720742212706187418006189954453598073305304749262819018752232727570305396363138641514840162557051398289814102973623562876272900982261651535260354155733398849317415631267478949753741474892693526570301888504049824445061190159940799028751544304835399498002773193497291120432185795350098540222998268683743560067441589412736929866136823985966077583541118503056092012934390087620174469100900573818861671668528455625093321195585860884538772150356384025288320492269325657106237364061401347276799599902993299906088287401380456197367560788816792523764664527919074267062224582010012906589900022307980207534806543759890578861862149374425764826389232053034837073800591543448540663890697011953334771020805235309803932370354426685431521714493087069566817171162757897198204551481520464303620670802753806647782376833060498958290043916190704904863296115082443366291696840874151607253005045988775668789544000058558440811924064897589793416733910996567361155084277498362531563272574435174580748551545088957591974237660348839117505873147322150824020373339119974707099435639490101845196386762474800942686992851544214340579770599972221501774144640509834436662663743497618054422746462503640330061196810115610257351921270140584022603509454803815630719924001277407160498599452455501361328068487417521211203611495548389913029117892149593767934594185747266623810851145367772075005134450708260571484295900939598141237019937691504878070949597063808438416935675593405201501701560546053476313569745321772152889298711045412941421476282358315592764306323001602096059454629730484339021487271961935725004142408900161651870782786498892779802438035710090931163660008150507219930985559580588473947737893108328768566891981674271314923059200035028494288736919139334179404172867218743851663468904177318152653122755126121125508952111842112496901877296224166074526598555326298843951127555323011505415713140671502360826204643252268791473874811745065754052563886934330321353762208294146247811091714936297378369007812344272464091357862821628717983514628312415144214744259054982845357347000745481296617119225046337851707803763799939436489059474309409602227585567937569669247438560810322572632881078778163530290380622163974362671236768369205196461915158256857070912812848934579710323573872916255539033636185158093389919941138026612393963045816296238801361102251750208768846728064962938057480364949418749478362961443275073094480222785499661141859721748976838834467484820386295546518429731850154016580928383206069550500647254971417780855735293091013187743788092989391673318444229885530533712059287290254396983847336356679447905191893454475441005934280895996295217093873898163984193492889061690435564584159441808271203794386029095239846992663395380928620272775127106618193108996430082233238665935907915221007340723584575386891855278926455693969416489824305301731911887888375338964831209865706054136337286312343647455485502092410405719084104005110400503647172447884586034665944985045435582047202611922711631997885629796580540875141456828118912574557764642705791188623065852494844061326767240506413211954527248571051739717045040589910843432161099868053478143812359654794616353675232453843399852649985461664214856083470065743147966499802474868234277392860264194475324752305192236247474968231354501909719627917533145601153518297638464753486181880127329251457334282553332744738436015361825717522951469649177815702571735512521294686344187686221722151655159361244457238140621159788530302659029173272781179790416689221963984392084411204616396771260177339179856641689377316825466337861516154023383127035374894376674837446260529420780821522827997748274235675196729905806304732935390343203036595269938727570256276350018715171232943043009082738760009337845314281685740591401187822749394132154491574429759423947432335593862228422768976805430123023870679959608908764670061217689773444480086021999957507129587685845308937626882518980906652668810344696640527669345422146128054217003301775562275459910282438399726477090570225093551557527144679332409995477912635544873975110646342881813668797278921614446022705753995426213630118689899394572507680260413607723253799738661000554260970401884883659639466674556440905825060332346934707651386598593797874839472529410654285370277816772181546674545873231795949014380575690318092013350355431381284738742229370043199174587931395778776958560503439442128199330639977117887797125029813203364043090074800960864898114872238681910345613800809739441262113080153453503793957624571048692310814843076030481532785283351189950281221775686395088787953217317946923953826447985032904973291344954689419471423641255007919252978330304607148885449760138898742172535804262362181683684082828021981622377056513506386019352954534997357961016449664461946044947412744089825943133085954233600815301257261178696284692394557154829931239074198160432572510770246015251478553426798003747490869187793987836986941946499309813494485891532525193995655423104403434621609717354624744999459868171989912894983883599798418732681501390262077117649358207771208371240782692350584342887866259747028782668432922089500048632357234461433051032279547228534949226534318353492458544830133109361254416342054320938114747617206110643025355129346997175168905585973110223337092216894605876255577897213716196132406813491941213488682455139160161426774164853790741995332310670533355380806325291157302773720149119201213064418265994474668152662896794201877185152280552859890591259168547882517218927610923219597920702590803149321956673642454286567430187138004623467116218374036800835819185541704812724970457728349009540906637570013924348797389696075615172402838100820971385326937418586576949724330525178417423430066879154250010605412666792684556908648942698656260486603866204593912090148993944572650616158660341016300463560916587092111203319001649848013013637289915970674695060842377859805908638825654157935926597469171447701685515794480578376265491906380293888795829378212644746706649043432818166554167508504420053399207422759434794008403995524501733932369773419346362295342101725502883347932489615310696357037443862193624105712358457559912012982101880825442570916577127839728407987670230519722243854124934143883257336774283440617559190221545752626745178190999160382497808198951286697969776639931030041626180624847605070281795679317173086161828404349428433359434949343733951583191205135426260450472775040467949846769716494218495491292337104213166211514585691146233439821939533326206753031194405143563142066565384092987749510377912319477426538510342121301397175367004513766475362115774285693266298571722932092262729553715791684444748594686878449661621517269039273217530967518105147114355533314040950380438808989463718080551789551692476221492602434740983026678679186760151725233698600062469388788360073222484210455777969235624520280282388271873189887431047886191613746175971164215679597081595586923888794121197981981825992895387791751243981451813853893850352192451205626362895927203060800924032746109475918649294103156852536362288091824342338463920441702251302181047479435298208309263941482757107921822925162693583029559511680025488062220868728291508166825041599217278856925369821203222945516226708655654729469838945461609543571942783091829633130360484834289233990776115688114080909575221515210162850109122173063186900689926298421145340106507238484871080132953844071641335881515698598815026485585195663163273324429644189002549507537936144061539993971262531992377873495445453091588006889860472113278615633858335384708544334811697808159532057663396664731396334475594110367517348485272252072957615046389837093241333976304691350399180266485009542269848288069268337963400746049299253814308605830001249973180337819655553895411936251999895726259730205487130308185152793765575228052506626919330612593300250229488400620178393415956271259525404992280752377257915887542804937197597550454203235076658120770924877767913642633037990123758255409330596629876570625261495906802502210479119449521690106320041423913436609472115186882255418090643605795342140660213464543053289418844501116035260542301615204820121446431179318829524997369188666944580947573674452641066842662465515117215884755509570463740485422760246736769271683718958224370339416310608458280006313800817784518375400510964358433350204111919056981252232862222413175945215458542972154690909267579321412252777840924898329098606216883991078329306320823731196597741080426657204875811615396118011509977210547130854256276727996619921803183651608750937625202941458600302281202819123069662745837902774149811273204271659942304614002331115399885001359340646428539720724087371129169277773269525614731318031233475791132981116039717361734568988110295766506846256265750880278050296738617503296423025366936719988992107498664701770682692647430139185884087254538388230208020845585015868742320036043824968181932864139878536560610625684259612546023243958685730434611664223430922899434761997064741036205216139981221984227489332756682563144450970658783326637100389237452475517964430646683408638679938201307745622379919710533799629152977811060744605876234152981558990831018388636264358839914915419185931928584006747515809939539843614422831327618755043150802128628990644198795743331937788275984716061451930811866410811590486759149422914495608225461256927846180545425360509144246060726502170420572618350587225879491034562394652356747704623811392816810303645485350322328280260185571206975189369347936487963325490353323183740639898035829262855360414077161734302679181261470740920842357549018342772478135691771933636159352970037324425236189842112758817030389598412329235199942351090135456890813785740694860133903298112354945622664246467106279442178923108471730422579901189557757078569201900339744304500379745806619678100857934123694829774769684338886711769307255565047035537483618570352896002006267689720476004477996374828941213782964308143235839193597633626677112485171022334084649720716189070197341269327294704345588416291795113126300542109290402556484017667704132219243660875407151433298567597116368148552110760371020287135540610458584042976964089378650852036952169458083100067658316433096281683085672674167223643219859269709872089789471123426051689543388341470927769871257012806922498332862432064216292130169355248594508964904962907282549162324597161565430035846785955209958358858041565277179872725851123163178000331040101511276226326281437402299123617253327665452016368914788659513794620321600219858597508074998399301826414539747094949441979616476491501629954458844181789849215865244805546083837445105773545735593876324358741707543197859488479895300359871740754015209727216961467953077951090755814691829551347756709374657577670972459492307965668045810457878586203876730084644740363407922150646578931307834202488789300087562218079387254651986445692781645428304574062249154382196436373258685171062925322749274929684348925728211266346853923436288192855663328776777818926977290755756430842139229457440228840206769244661430510551942311207189738018929572835012356976522505861719352726210423542686634339154781625158335537554457196690177726484804871927790874952666264269055024762234288010438956312696688305824500702054171275788560649817317644245884267462116425995789237036685438215056653279261829801523209316772983678896716227987887046897307482092786326835022360485518786541402821739832719108439484564450253381827130760612798430539104751725957199701299629622446856712184293335829501381330919246103612525622323533472612954315581612569988688894238175007657752590594288969770598180154780626288628402682430761603177696992086333535849772800698253471238027464338344075665546803665782634600951811299506565388846198801023181285597722853691349925860076800419675168838221659441895874829341553886481464854652792928315526960207777798345420430502929697655653938984919600926683353254035646779414365047921576949296560341509652488027161575753129757125128021519250915655223634336482121805226951825845604777446925705228753991512202362873386776480551508130948671648405512854270026912387630891772208679519766328743895910442062383411249241636518268803563940116190981320986264017923026553120978075983097158970894246176485037711050328625641726824388128828334633248307885058997973426547390538539362776213081694365455508218488806171996132823894439678637486826017347281357945860108421144468225044259517964705802628989499113042269778747406993334018666331268951823341247955478390571139869088565752101601621168005133262954601055387589326982140116922059064694954354717269886701286566552023335682913657080552730884735983510375871229808505919008891647824493807647750127978732242904837596083231396450475684520039192155344597570079316135012151981660001702071156261222278779708730128380927065111730027042386945509774194579908453485314991137757771715938173058522840540963061409266852486701890359833416471909328209317440955399951727574341379489384143192223202122423985104617066715602398837579594930799925225125637512941519840759179721157079186893178866107191738491992184703254975429302983825507714493251328221946182880921884066644680421924780617850318904225679698474320714640084691293196271725770273846500170514055026245337333036557262458952550592578790674490029935223190268012115840375533172782706095088031591318304889842775808605347072961720364931997430446883077065300441171634699426390270744198028176756894884974156563964935543086457634801504700780014853001356462673752975443670815157463119772010299707453083322041622300376567157904389925008327828922566058779193089612074788024409623356300504802441525433635548692460007683600896053498697818554652936268801495482253040324607055921091251553360061101630606048288877755475254591296250260588513895362676869687744267253064918005474653580720406155754017509941010116665583005321079059261991526691364375615708837450131665957569621292422251399036449886602522901924773822343125986023129355864397772720446773383034652992317856318199721846736055921203089380919592409499101422517852787238887581265907200021875159798123324568679903221480892641205182549530387631927720771050406281358894562038809048034116724860666364660930623126737578748136506266555641646968784226690558987734094868853619791495455643798693334565303141450621325717554672469538166791217042223674766513335719146510469824936620320106894434759497342292437731417223143813946142802840919346855059341379524469110556341968759103359468816393373400716176517693401584424721488233175767067976364591353279921602297075788445678100993967171137278615102223415872758444960985398380653518195818028687095391413436455138463815498250888144103938205890901531977939155447052531907474936130852391965756901089492562251844473627248092331572102336782104935715251747650631724920836043207951959592540419117573932039926533308571570876148047964998556679942010266809277354219324202660896018886385917902612968951736085771737333693056996437837424388003831859951234547925504109650797965285904441613414213634819298375894983972546181414053042793161265592340721887193600148341386418167391805912947350036327984703615541643957255867639213339955226387739196006962243064641882231491744472906532950594614270585894612450010297234981522569920828624355895662087602214556563723716779403526823954239534836868428444465712189417770021746284911676091877044767331378964799919299663491907570010005327560844064969438900617873189445707334489483263169123306664805658464904960095355042710462338319976876295970957969065034783919981383619653445993151255840838343567589692926303656200808532921433816972805901135318983800661303919914230288659801137955356771851634810206539232275025165069132563470417044580000448970031390580638410047398968799755931111723499322383469807391801495170685440040133980720461668265748256259890319516940029627463113476883257720402781686166424542588599014013558396812213330520867939261573758717557847884574464479896943080915721602249896887606305009017360940131680342628870527747495506557000923574951328207239608317154659752957677985471384965300807871179103062542338635684658772760284306788755667935594122327778552411176943517165831608296305200844597198221158729914015300480335763404648178488677769275805300979003626420021047784743177329261428555898822876312933240308725845760021778526411140479553643951433756875161859298146943869272592401009066191330932051345849131682593711724990679300948640588172427499110716299952681721265312405550504810109118100279053312306234384248566996482549974760236711295839995011690907291313133926975534579912043189763178673284569771500735814128839585138470464777460154514661920011795231959992570640122167574835792350179746209073032156101279334370245820707190048204941099155688462396036125779426131440675691794603429543777752656775954896112489573635916676542824538218988811147351577173088934824327954676747693758857959376114404983125846925821739757332058469174738267718806784259741782896551181682274495166682593491708147188898222618512028055516671763234646317619202084298525860230944029843447258318805716034181124110253688536062124088338333013715429067652829609185288699361906756206715931915651432982915178166479178215681504746525285143082429587505949425792806523726673154499206967632994001899552022078558495266403595948719797193394767300414967211801264948893263553178870444432575516375652026328264041300123839309539950319232292863634958417762335639170734864170824372555251696794929430819379407131782654202770424737145535301338395803379917259681511290161364681877572271522050221552780258257606425998802215738422013248066038652711259730926292127229628851504462377366769026441473909319873630960937080385044322794234452564385407361247660260539450551555666717399603429025092911854416252369378908948070520613375413800128831617702931915492672734444200067766522703078570914459434682783158596749872404713944713115282661534617798337341111731962278605762982252258947558822993062190981182788669217785049695985095519501660031831589714273644266651605075794588968205853871797023277918870842381042779120124769788213987826187472959390080866960374357485847201084566168534562998166533206052145908149439180683772595528063026074668433445479059484744983187111625215460086363895085667445393967061659478011084724657940315966018230676407208914521724095859900201518981461635815494274669603075952840882184971828384021854033941304527419013289852548130994277771721526956643752971066834401910360926109614726559267260274777785769564406231706528272371201535628448731234432932931749482905928080459155291275428982366565117395869053638788178053361183385619520121400149503041502278453364212979020194341652655673673638891590705052550090280175530154989047595094259313657248397186418125210552393121383348488170307316070899704972493523240352830525475803741994128160834068759216926831526471332301031469264310373940117026342119388038191622286257113692383263279497703951244339950243362323922626851698443719919783193466834333848003674650954791223356314128165095322342516643954514880306814833655526209900355227530075118921028229870144149579619471909312464819391310063944349693374760083426791510818674142623754157818327764764601038888382589021745272930256544088474718990024689498988501229643958369389852106010784583938529358686866151085566515360564852185252989572011657562471611432337882106458777453704993010901596597684137224101107135896299868669317504924462139345275783848112737192827697457324751472768433293827930153282279672769029589124513722088446480309399653829164169456876755980497182688365770775518736811696295087239468881606080235550966060254314276796672732197191392983978426419964814739588373294365850652288295694335807110273387267967958930612156127712291548737456863577677024943703711889652690022001668566604958763383444055865097003914004516153154746736993231399725322188426957655076222951197996257210061614782636462298744642105143795250110374372462538177092688672852885969293937237623909740072275705982934529264142104886097351328452807890980037814309793897331363457130647997939216403850139475375653587617358023219441083270283341306602004353970789734312344929734903820847443163669057965635757939287474297018198029546672063057824012670907835441479897190459353858681008340590585542412817434931798057439561546031800330754943214510691119513901485389814271052604734774897245603132496994144392796198457283209799082731686244721675200478371029939576955461914748473362113399298609555461328419924098640211445484973097527401075872650861299604769009106297900655217549793899496706294360907225238336395995316135215328236936870120465321386574257417060202614545886572744679230762902413532480037323790575425023371419386998346687404397302882066558323391308203805600670689948339927643991114346295521911043905493390291830206783075265705471362393415439736613053743805535918239540603053102874373815783285232045232137141791623200259150428880680007120069839293266182540038549745275640535000934848894621873638940986423625113204369036095157410939782350782890229880359577699233374549709152761365997781659841660420798653077417928040538638767685788211534642565475733148846742976790365203043127260851807373058131440932900020171939850399666134329655970466167944546299790060828493088960527660633630632723111037723206301344746076408056109155636400278077457958747364444239620441030847315672300916518016253099015651102722979364357769457584023310612595048110168912349030812245167856680302513780797523254625225585538330494888237269159741850042243006015419216366253092520074474861290566575452867482531436535717474811689928941941504836607179549844758176284711784804697881394601992202847622684611540146202160935515162653838757283777387225813851258671139669052783556732872170069761161420610346996730897142204224327740767859789767823326405313139280669526738172428478165957219720347892007589318668468634596457180548774163039496784381039612479798694052388363613331899286882156969071975662559368780339213230115859814232459181853565283984975626881001650760177057603426679387135217890542897663719096536320999483214316597942719406970984119978338496052878495578403939768735440789400913473806876380376674523425591731923482594590559093189896705936749427147594462158899294731888051099376162193968314487579739107834089044302131160397610719801421511974339591209021410522661859599417397182719164349154489484492354378437548560828688228915025467034645941273633993079020204105759486478266897351137483741539106644666852390005030160263463413269278370655490245845463137436931308899072727348279300852920127803927649136396533523739453747714709969370278637570483982498361276022132228244689190738728317789810642384718162836115438699975483808911851725014312567018968400444226630125290739333356405349133376750634755100107039369158612520061347511285222994382703877871541492125451089360604434194646702931329555497434143872551478647326021386876763345346832443262045127464904373466263395018536814633051914560621270842125239854127053439194009587781697930340242739186773262304668482128166181156701851081786602382857113233519594110017873246572280967343199838219191508251859055489841392226556995881444859785162612147984180573580889792992266157059266712486775409959826491389169153236395516265040990377896236354593819396625837286862024065379462118621126182076126359232489820777869824963452674083370917140557075527140132525561067314100564854766793296787178540044773106092622470464211891401703995581785914294161827909924394664675922838526779698130477608520110790095002155828684738248840184494491974688898905311258085479076896001527186177430787515495900537662343430290608758644360594498146536207493753728101495316323135601506785372151769094260052432966297646175099281223862034609524222084135564061269392448905703661357568802087152246391071449977988490259374676689309238787965370614334182377938356174147955110255073569046011089281586131181992039513378961734649704284952993019538292302660529718277286890547162717488966160923944358021926915261158617471964713734950018358615677154939158666142092605855654744225390573856281166110938960988803687392901217303176052679281100882691623430216832739413572401719114150333341680562821071545942378497708545694545024286382933219500344256870228691351975739780812003947295490256557500522555318691354927655160215379600947609712837049133067673329877216186033658990391476849678826657136448165648187249792962817809542238479189407269922151907407099984313688823187633581402697477217520803832351536084527673522477963088553890158468595384590655678085600604131575584797153193249283674794548686388581866809650449647023760898242224534425527011929473212316863662580106880219470793830875645540356377167218975643101233439071620414599619767697915585614576072169756457497762210778282150006395492172748558652085329448382206084159772604457307531317331848147521987540086207837548374554191364474590868156294964737728366424105880938938898399155205451572873580704365297924422203617625775145078981915929432313385666112619111211157769964826064276631415184712148323124829608069343184998754051102396556128732675760370514635323969334030201760298007502211960140834579123226436967358579990244905643175324995252632248419584105247669263444469130251526523616565450273234816856598296077398330573030805801107261466853449541955913829138428528890373765156525821826592814527330852985892315792286315392626128629498725198807038564397876344223939538272732025387116134612777411399161342308313882669026175688401825931433317930807953330729057043899841262078686257753985603949652605743149359087344446381949301102051280167261687879058921184298838239867916415429662761026688406249740270363675175644763138942203655382708022383591076249739382532123085572934292474147620755685819661741666896714861599815937827252186633729490981797044480934713976219432040419604349794122895456380042005974109660169883364702919348792550654042819133267512498213368174976118960785195404712993401627440489445024739472022558746294669157870773360935644356232018899837470915631267500826761228449837466968531975779895286809587433119740323798845853049102730342021242802716738907640389896186949237375780397016504804017111219557163871322115651886924829544580591634244132182081125901058028290894853855696756126498341839638385771306592670870700516149864499115715117059842587983939550662678114572823087694016914214759498669706225974222956887940958203598646877148133118016324942745284025746858998430868410189262460441883588721110488503202729458296579666169943745929771605899862366081883897590189361526878001216805334368021731015306105475268050766970921301587524847506767517019188750611321681407396557429416904750698509025730544795289391216290069676580773319463630805215115342375866521024110381817324762728333599587461876846233710064242190941959329912311679631367854632537107462089875975744193786002524086008606534624436387999674580105564647524176827962945705532233551227790541591423146983645012002962798719020522084705611107012120737105814947922857897021378775705726190776657361744536262601034372002775928699780952304774711733844757804143635887940174579112010854212159264828708037073016963080450010019158914411937713917915367222087125363472915890133539449067055307104636635583341021828800255170385822764211071027982100343345804055413026466306292919827968172086587455429439663896807226869531180417548289707958415868455049947833902091204001629471398600256127757061815534622933395889933699678753662297245100353235477090781355134075544981131411264483072242012129839307601205743815160273323213577388170475689676704670338076726892222833078358715655965103204243536766150035744823525457073373917371529898490300920884375084424129772528577545631685455226359922064847209278181327085920731056114772944186087683868659902194280524034142584493671157421265959344719779660753967261210222575940084253929146323475813907311515851037419845801461496775778415188166812010475878679883854241676653736090449751898343053082102922105647641869097027426807160795711913355548912026193785794505165263439366423502804279164440617528663654628208825608617970374964419759001735841508370762103913546722272751234579175808490664942636610576569324870532631634353894598026638964999683176989365454315128817582260887895272211702725074628764854109337895843876263356677097711377846851104212291527254353285193760046044980174058327310005381070372664173460807618748964316352941503971223822435368808585997285461884723685181953903767360847793157473283441771897241795259848093789636408276583653261837282304276253168965268963919438297324456131221691977316518372216144160978471265324026522292324685029426923527895636969948525180748615793337799576533270274665112618349825198381073320552107397358095690875613574043705275855321938110238514410547363181191129793926379849812686084645483561849857017565262242398317164148610425207226771690236127334138131349902688739563131320599189452246134976917513129456001657915520595367849302624933645695090995188239979070958304763447005631336423466361177474568427145482871803180309844537222635811513959994767770986919503764268778810200242144206609058518853685980073578165824100236997138959160666455384523949954489869439817857269918957766409187491225220051865446437489334233953284183072052596827870865749559878257972840190863322822665574024760128137886666548508128313470992932794946071427395975959896795157406351740631075131973986687648197861403219498005567737506699858441560166046896673509711474088428572400706713642784670387323075077146180682003482101889510761519720027805804306348930648805679599881300019767271300087035708163157186162231042522282741959142679281362071728736714995696424975729126340269250776220610167012298915407727082289376846633977485135088072332440341060819476416301417240407895163191146658996040931080798183455016577308163724904818215663225071962892081759806316636574115421236099085154831106916530502600609059136663785538120743441899274855465186712726158805970470568343583723704039157005538140406610119952839010377946623219992782566765023421103565008697798522529759804201901403667683970639206920271420143765044572879362375385577237602191813048205346981155334953703877410633842629131764549752791155248473976746950984072874243472080524523052204136807738426669262616939381851232793951593204634484355544156882446578510602189712091174616156697674675356123057440837390382789706120527504542241279623206075490662659792412769938545906734551672399931218492350924672695764784877415085774017794849334209922998426357341727758273664124128369570129057480346118570801096347789095614622228202073048437760592772742465905004693116943569956896310797916915399244315235066317242045041452412660997879768856362742027404753603109977648037806381480297960878491287708717265146771509995251953240888257598443885242279920286200583802101725622734484006524866791965295750385222762728344870562029396300431035139848846791680098179763759929791679355091811026576143923363505583489933640286280771977485781360988680247908934777266068493830316894886139292128511821706695938094693661016661575671133352556026121262735167575467266785801340034995132374499112495531472601271389520631472245670235514422827701006528619836677839415488640400099751935991824896264343018919723796854628951300762190331608273220967688629832059907223324319647208258254277456586757022470669738634337492497835531343672752628718822116718408893049355784290194048191270585910362526905897145556511609006415839342757112760975630567858407733554770451061921984778174790280647020706738888866973846339597028693187874260575600189496684553834069285005774589844591044558631815256352977668428428403063781485448384175077093285287785302550265191329690126843117617448520887441101352815517849304424791125120440413599200786538235500891524361399596106132499710506664946377091636860210807599331149408792063257151764555742182966658210374305355570051960883062688521365979498465986016560737059508311939808357179222376526245267085479353328212600436357650748575750114167880463094929253500339462889762389564610096748293213116149594197107740797852150978620537734265977120861229894493207955625669642066582841438100904126936947469658296200637366152806774436920453456498927331590531621466502459770080673108526052886966731014511511974756262249898196455534250882623109450683473650929956841481861709928045246060451064658237390662048339425842276768048950299783871936088433155225299529461271580276524151820985298111439131229212657988398288840874334879301817261823548106063249083327932380165199466021626144906587601187459790994040464046337724071166326056786873377883741441763733799069523818514135085748168139924898106571753357562811164647142724943038581972756229939702313660776747655192737482949922848457068707119654368997844742551628712908847230496712491227953607525245336777488851157720290135823262547293994728388222004836281122219280730341940314397943143603636596998144716431617862197897541369911881532366898853483126413120336467487673037317080248013415907765094668562166889150223759568975330611380796328557063514873103674643157137398868897111259574059973479371690201849812791352742320314446465714370099887876459599547204693167532613430712353698914485828049843243234348330594079371904203660794731540822202496753544681554584127662844316169320566399149636650243604347403572827849347511997588004887784874333953857828478772304126230833210196211571276680322170847058718531297012762486197454078789557559340933489166671804136045873143918122660146918739954218872791544194518923435789834210985028681881589067739178054398557655120189667943264042774554140505516190596408552410414539396937682111853386594409951523014715047709609166186711463544709037893091787072191669867069174173095237791154457488930561984754653123951997245559200743776561247166350726001815181159371959131267095155526824054110668439276622959364735326367356140934523907859902367976463980835472279670889173280018381280178068636037178366988297742733848206944419879140260415300443849778956603991987858982569856006533758643193316179056323112309801348948237696476367629589823157466319732616863162536305532044173798197459743625270421471607277275880966351898645664292751388826806874535506325470163604689767923800458473093567385501260267592697160316249565710033790915009269548281589856743813599155353177279321645134759260173270077714525342124682562456599749516481627452374268582298108874337934401095760905464020794558936068234038395108207845940795522880970867100820558568173548057077709604587789343701379575719962327783389246412155358439735805926751772154399873708353312889282843727628460443302359778560281602756681810116526181809213528264999210980961954708045164427785622917047896627023949651266895392442581642366332701941179105188815497091537444483602879108105390939820337325058678840987957739645512575160766520720253501555737000146069765298104263942454363787858852689502545628047066972979070052526336103465662288459158960040948267934727796259605357534195958955839426772179950727460455451404662095938490783893354839168652298306374766099311277785940943925751839154363347347381178119158026153609866004575129563718452607510548840250223416692542855981302437225263735609645817940779913052102692299910910800436327059559455481887694819037219953742871368756142433293090732922562291993773140150116340648578256134512815319397752529925922605055400152670825254681638063124156806468190247432317613603192498512905170347212257217506474845101080176932676055050852529485839898178503180236222541659000368827202708501423105301583231940606248150741510100411895089035093866950551832087719841156169207280806417331569606703557242511803663294532108923018522104255274296284104251235691308534042195096546356965018765329083710005390593154778766054450782938029513642725476373081690344796961722008935170412412287300782301691117125012282832949092428202649325612998086478081687089723869426983085430020473992748041267615443050601475253911600488532617133118404309494515411548937608075234739352442462526297276240642698240125557047301870882267218370134402323909600339768806456340649621783525934530318214727820465838808964157841401320367670933006100220493745788144427400828612824621106886583098492159146292308662466241539348713959308174189728882028826498134744912286453035745700962546049702358778645958649754968374889049267236483971933262683233380759642010387161756860063696828132507400261087552559384308365176398767950231275602416492207994198981551598153715636597890920028638805915072211379765965987929269456305694927777981831709047700092759291702160059136001649352940345366903095295115188887550861681891381336854673924281237173491502027250650290300090863046810608969111636325987786333804883615233099373592054229938114448478552162444504205850090696905478722309565912819676335592132025783110506790209107963604469758649556980107780254686256831721629118473537649322475717894396202898864971027603769326516387100682231859734518138375564719262227477840197681402952978017696609160211886844467161681532738975201035952796956218225592960984411473842438974528333758947024865468437845381148304630216352479120415449546084171228757505401832190487450393598779850519195046084711428523092189055376229716413246697770906452562142420093470881442546274481408778664853747354108963180082286673263298290914269048162443497850078492603877244527716576920532236189863005108461547649976770103058046709028386270845178671311356748516821640530599930533210369755001752437686048304404118874602375717942435858744548018499594410651834207306041189927328954240202324455551809761631911404084926970473230074271818090911477289844240195308382487372205523585303718256474032936511328241009949394313483258739702202648524779810470335274229478004498248801646389910892916090266296740597674052170328326744364399232342522828330851747200635605672850979945735586341696127766427548491924677466032692436437865091779721264078718131313189972830260442491634023354694983470932932767748270845054384424569259405220760456605276851787624516985521904097801345312660947058851415877524935586366502095664589064820561481572360165839373726075024521350427989594508457884415469279780084273707047285909562255477820580654273858644918773370783515671829765006381817844220352860877712081525081782244854686247564733230097675270282267834485105555836606601850470855504129660434190921932018812801292458823837382042054482241160634467938891958266220309501570799449334360590711866330331609133653091172299846812556361293506305764586754009329765008993772881360782329491811018180758758681752309518937658061581512933898854535085706489403461442115614178379686823724985278037826106440563504163018993402763989867916737813123177583725323749518643630509169938379476327978714275082820784856731093175563820358096001275837601306022717206469748790800803909948256414430100657540921705625055057267649635598358624181211734849036267664247884496491599636842835341060992439692888847585798214356603180275300355302008574520443064840162437620151746836550086407162739258540065922208964817945757629639596994662237944539340613354179214957252861290988916359149752889019326754865221142523564803579044619136522298131413188687786126291240031239602380538326613785046893534003497282066621402266005596258945172435319412931362379023271112750845300457142192476736289431936323914377769683691080931655467879091770228199859648789478843656770602005343763298660327122951281619865831081663629131176139271780856332536539172182221385342344334062432308128561234947906719703294058232108781783573315348289048316668285936490006289042842450038846134580798977132432424094814895516955004733809259571931186431316410987147762621611866970218619643488098043208583312357740657649507382066377969513941298321765322634772936353197390739346364858978647458486889651619751232536852228602927840426837474557235836647173373426425694247216738048028326942226908602603308075911248977542699537995182392836955381741298986024807263307104149641284197291859435434914073613470871399932158489802989712281477540132520527110807315995045123199641630523876514314555967467547629471111159620312434361293108681837524328922652439056773434765174698191525104432469766506577945602397207096278293939557646359284346004384516016456204505589518319936656262917485169567358852313645956042853565436584088043157896579319682190176770229633748756791879078689660605299813344805884016296902295019945108524760725845039126363081489009341719993485008572484859544190020327754852730250574384258546917283838153093033189813159702320164695790609760528708885026627659383951574022284866840313476163560292290281389139655351175356766995115278528494571222747133316065340371925961755428482408556157059316108129283109374632374761260534915740945044871179963072432866357634680689182702167785197370882164711729039858835805438863615285060818782774774063076470454958204676850429729665141476874003932391977644875031352304958950423996845684901459337927649260315148034001951623879838008366040259250392099954366036618970102346524314180037680661172797557636164119535934006244523312019112739548825358510484533440613469285320428946329589112894126723158575979813280985837612759326310514995883317574367283480707033838030679414891250527947938129167107102713252839093212369332460964240543301608919182683106020616378833206477182411740081219494694899969370050546398106686880337612716482745289951529130971599832738770290456373609347954579278338684858392404700866567667023186162534252168801167715365554629739669472173067747157434271205181850389353094923925626119606246638170227092567287296581085393395161073645085535000573822704358774896695619176468497803786583450260508950630039579899676433010030523707850644488951008998539679742307212898788218459507396269120982881626523924750484041677830862647882129689591791941504333625910548624480841711657916593281133271523900360882578613713862790150477472442997651522625326978904495639402102309816908701247254582132809317574342482907122660178576607204743185175333714824779414197793557312414932187088061109344992808535259325878905220027227379204879767333005020698322518945393004035683780101564725715851315079454856415181358650749093206889762899843795203779707876134353521686478819687712104084354514643409090837977268106467325060829152558004185273218575311751845601376676121316749630721476588457803314514831668316247316061451056739449757656077927312958915937070507299305227621913083699982256922173165642913748015072170191544648352016090067964411254864971527063399320335045436032057236141190188826646628500528473729488445078096013710505675618815128785090584340677885781680562615567462279476719500568845754165274192406979949549792633070174022527835240634514457077759245047139513188640482923016241132983204230704917241628699205691115552721266586482138120846078474521572814637925239602592151693928024338105706044060044236303054215492983720789744450547879864262258621455326280405446702593642433159713609417153115580586097934237786886884545220968781224106119700994602344194128802768202699615029263571637316397990712374647872794827325416324025448812083782665465457178595571845648377581078482181015076026433796975829510134028589406521801935379175146487598865578311775011492735999302368289245141113812415900692687495250729829970796713253494621317255913343706875135470055486990379145605464211645366987754663051195732188353721111809375431978347726755176212904259801867623072326801197224335715199012449700173346198516708110431976682720874468413495585347889683633004384545083327171983118106009455126744240012585071732890840058977342830383383189992318292441536659296128737890725832060897037422120512326839164232168425505658101371484821348193577609120443712522684219590991467064468308537546428989240287014207477259232400346858313888587486812183874021800907605616404805373425022210343051921613010438249853895097740651043387323197170466726650559154824878207518145181083011923925655123748093790568064125524811938887018678336869658615552855155484466317334130870278925746925422962762729230312399885242821834199103156952988762703650539467432527371474815820553431048273912471279165164483296286423226421656442884137712238538535091547453361669955223399637869078219956148236262831181926561205758024646887710750738585391635515472143504417428802831184710581970562117886254238753120779694135618101910014930594401812153032957285335035416980083494021237265975636011320146585568538477602420243225141579627116684926791661234043638019128571923144123699609614975806933594443718677179012263571931769123703346593950019992092978465217747865598727409304938329397929261926333309709031336466732943936512573929599958417129154632167669782290234163611795990379243754965103025396592301244837104683998247814254604163747873933673352071277169612787468220708470429570795427438791429547417275617137373149097323235705186955168848920753764397390602036636083000113355863520701195849631456863097271198668762462598697744675612506799682541297389340848038232335011395467172158686614549643537565674922215121311372236336499923456217877080584060963196167794832460619181697718187295283783400076619111860062149460482208275786215003673853173034961941215528358311222145879401788772379134619141585584093770552594983169700924577188253488736018190349997397067926654974604418182549176710624152528109550207128767837131178142007037509448414837773956307594043617572145535332506201800419123804393832696421117254917880014791419536631336044471915300397914736120944977746272667171144559594021162018850855154910212009371691588268624986379573017069445230944663398751454488702306885985528845738493152461077259771292135916374760115383089634323525524642923719277682218290513267451941419901182794682836544309245003618218522491376313000014235059840086555849451907150060602286007617004244228336100846583125310975729933375105480180966648398050176084235757674414410935108249770289560665043797960306909231911239897313035900733198681489821422537757832118684818301336995065981367262482268490808598906080609798895814504299290445487082551820701788058118866351447773391059065859744178390939245344627398519939775321577128513943637486364337698870728161195713660783353185110663490399412489068045802981379112200147271652650754997638941836507059701360121245121580975189317093227117755819885371292310736520053052690809473946889825172256741953724153703520172202126381771092367517488551841541424428844500724197275156965577162344476049814329846898794215847195190325742776771659324582445478493883060898084792251661378220760401223229898179228986851684895948311689205504991034893435823479728551114429170496979548852171026878157965765963349066871450347913933294428837742598525947682378522106527780630790430301891481181005508945426477757103826766359177041271066495266448117061497156491337679991939586116700578415467477902470225974707100205786351808535896575188180973713298185125181183985450774189273717179114699272477740310726680196584729057109076707491193371493903822863432007709270747844156347969268941547778926533977258013905587687709506668190099642551766931502877142886591320912915660188755567213387634538599753156492541143391406398798288643486963372047172024988759688187988920245976713752699139451605882616982694391858415233500449725866247963389286996178067614043345857328494927093168604233022383862501194752997993151650310394423620683822907554447352641192845222544493033365156290272745016409911633411740229801339517020925290542915092049009806459549493728641495971744150535452841208547441391102975713148006425912996674666799071496831258570616822842800241587094351709685872680408454863132480437917338495064988177743473956834461299325260104912477147588709524139169893026792098107242812992010778941582487383134196332141256349738004634104528531784736750020674499410470160455506441980666826431298018787008549226550185149857575846820184700757708814675461120810789810838520109092873365275112614906369457211969643063709353569508445843143794519642479595736147903910005101651193675815425957508641142909439610246782006680437339551925922534666317436233437264535998407774741668471649983383947434562497967302473347021952614541138768065761375858056899881019033521059563327827745097955634670223485818982643154312818542090087595101600376687688038893196907077226018920463093225334359629499678613011090333031071032567923257742478363577149806289314522233717599365230992057530986082103191208215146630739955752563275982654641342563273438805411954752461707940408868604857109738065890367838089910135609194808746818590105056341592395857833278372306331859652513661731497168275221592531213313871673645855736995717848786761906031986008062421296589796327880396862673832278597040111385851398532501299826168412369311421141988272467702802936112340383869602451198766994425082485806940932413210005476291694093026537804374481880283752520193640538282817839817388369996782223243094705427093610587948211173651783467030063311865811097074072699085902810971187387002868374452050607150118220888271949634654219175701189834127592706245352695022061147731984847699206067951118295928331630071734872143983040357952512665756336939944160984377462372188327860305216249515011328818317058992806318238390437713750288686693307329296152589697020444658144259346878571205149442054343762422620310739633396830371498662466238064095547591048049219241577455599819135246716448551149848095784591480193001734747230316027590903102019865195030743201221018439115089728041520915797762854833162171109864699117640525685780364357048526304012244503971620618402072221412804483797241897010282424790592514151118117832219654595886770391294620210532271372676711217795371540684228460750937760325802316806358908021957894473889152738524429278033618925067121968743679804527689158060724419310177761943347070862924674963525640538808980096929713820433376558040951045949396637956721626830071126741850640936712521040593370104761828511490028392888766776554641506729242316459410245353777448243323390781569169076056043683402487930102806940664929958294799416679976920052299195303948980252299497475566873044367066949440799319645053241720054314473184664627003006808300258563117861948460457370221367882797690106800759985452091691384014855392690244057612005875144770642821828876206499602346870116304416634680362160261620001076700217742892319943620132974475024177951252388648181733899258509152057951341130643932105089400204841510980002363722575449394785607607421841013400779818502433508546119109027855712890690075928759457247598014743641992301333113605707765295716351244134416029560846169109342784641292331495845060636790364855916914452763685696384749552032403928674487707745498342373059209123482959135978734465536180336295909471700510209094837199113599856251788716428056104222431003021259371416548830028128298218327729988843720285573786483270223041325334006402329352633889179060769691654175992189009596814246254304192730902467076480137145402283803135838390570826616023575430544680567455253364101114564414463878553030778069460904716441025231505933043848391152120575162488354803549461567681308597149040977831207746667460777706575947144417946437285100914477944415196813556552974499149342294075881506203125610793238474587427229436246866509718616140835111528440534165047764406687906810190434080977584385641483215789928286054788178853118476376924207777940987288269700563334549692624466226426949858094341460140180121598418619025650533372345949214054875292838854931311989462530070839054608779419515470218876667557143163988965326101809507604062121609098312897671452325263243332129258247860527018926853054872659472008489728989183412124139715609359384972420087477851982483834204483713414695042656790573495191852930177744516731103314418223809973526206292368978707089674826444600402965628586093949592063147939479980369970754916801009861614640006656662909453916132505672397526958110997644534463481575505143973641480990454870298807428220064103026940102348853114945779323905421124719948282891510724783120252137046871147114875110372370761938184878196507678627420152208526263604093530211001851193593700049897759703878539770278981419816541604962175121505459479253180482728966984278868599380822195003018481033229853669781621612000996907887155268732682573485367358178866143428519589748404967495939365810669170181710914510876312535043715732119103299089385328552840201468584147742751518155103106645458387063637450654810104231026183619698681933097991274974415990435624479071126854790660987804729675016660183949378145274806790123076756981605510973456834376807312358858422073637450442327438803226566380921463685451634014539704409088787656470933435335438140336942312604652125093030787471915206028495087466617005632139516699418422712678469604016077402480503832167807279440914926337368425890926425770851205326930069849676356916365215158458342787121592220092576190730689802951217306508666624864007678690238274017971301160326079719981929676108597446261103857595194533396476071154543601367884379071331946981177893693667270919810720646473050331948759534908146080354153668220003564878971735020979547702592369849959985199661382455385127476692981086437529635002183476455968369528861176522794803501863257746154388132603865430072074771000215695194906057899138131200600393875501664702532868972098617752744884584589478817569449028238706441725514240232307773427714767956734383109461583627650464241463435560682260292207108641317205437443471774653812459018748385192444292687495971488139105623652080334760548158899437063331525612020573093218660789246572879992686463447321157243055792547141311759132184007073301966187133437830837114607838109366139812137864298830175815153150801575941784309853203143555196767341818471516722913872016441293854580754479046725233892270058298953143862487448376847059720226762482696278490761424739936137954883521850541327481423439579070310394481380029647551242706265576656410898809366176593652255640498501339245022134668839067213099499650200087042272586575469306025041723592286541858919982187835189978570016373801053206574164281340431675206944402672427778729522639213675277191546251626103610987509018881877986089818859107102845798670233523283663981084145175765685378065135981415529915299408494159356366110801383210581677025586963446510674074980293246083168825594996427015320689181562314906085588267054214649450229351597174598366810104900307932389199034895293184006858940491748667141058084638361161195423548279631684560139179817333997470909893723956489384272366480945149998930304875092681006530639857334980822190573849683223278509526141581095118183131267343550917070527306100404816742896028875036956518656543839857173471174915702383362913375965682412212333182751420028859875917392681765967309696152224535729415042185723878303714008780637797726819648577638179438397160350336966901811382198905492308955880867986787658142827197996125367360698839424937212507854893059921492645444662164870585849176064964725594312544341797837805633071734318379648530730413516187376750523291524322461320096596820838825191158095257254616956305912414640054623392385315576125109469584298482960756666988095627971292565390273685048349681422999156964042087216066097522165575419246135251844457213254898430455344393673166670683670750751251695628207048031332604501572447113660818108269641171704346141739644665710924032699972258070363389276855552976418397729420285596281181855883637281872944092053933972468549244407486087484256836124887453498175007235743593791885110905350559513434319640908693149692969620759925949473624784474295094853729984852486489351847967027235166619780934617633423904364607553629034823958142436639829164298039204039091138017463495613377961120417022706094426591651493066713169099430389499849048961223765442388722606913019679544973000111191847616957820126577867310087120227152142745537502576286948721757131530837065637592597297945185931312801640009451653538840204577676627377363302313155860124844814879157309327043573484879110494638432418212801848942968215040175176514589401700142549294191991169971647369036004137179159285881827511028453779703221073928272943322822562337430972889556454015368111541073378517276460961450845446389894130508049473106869920099240367202344354072787655678949232978169824146172567118210195382983870981405412956217523132652949004798666321951102926242858398522622252559154778846519340164573883043644703124122516102481239246737331989028244244172047597753823558300073737013562263619593398760776419934210502300414647325568332339203081210324604506168505731057109400201629250673599146959977263117762306149852683543831604856672375124777430661692927427083046952616691756769301961662145977365987686770765699036082069322556009974294363637780456030186244244336919716526033926271159297502553329651479888296669336115016037314437308821286500426320374171057023380475643234309270943016483091167991265100185074853165830306092850818678206146486756848483145275625607367342687617657449816437942840911963241182986975418741597301215361439368825463148497404295624777048698954725527750056501303445521522873348226533590220477243073598671537770900331681180132410484922971628255724778199116589242495489399363595733105659647569051583000886753015054638268702072480318611319468473461083127981381929736354555385107922898921155690294423800357011431539993713975250501449684635818833116630382939394892774335114629008154592471497366045769613536882234029413071551849834864355635047120044295522065344613532727864047743540397419134181554409032216119014080097207467461743208079242879035408662294075003527076805639380023122489968329799844627250636126397492590138547990756157829573493536733094248181046973130079155098200060469252329347247189053962628389422758582945154916154003395559023659662861891245845232715738759561890420373758700490812522834830664808733175571982776298456526404261792292487693320292677175500303185512982520313416420254592248550425453973619824825861686032561677441600770337374730437516299785393055806307124395732587102674358534324154333332243450077450733472507222042101021082530650294633116218759233033644713269377257715519409373773432957086949826262660870028493626331242802803267422846949387153883177308528211723881684073777330027125737302246993978265751274225108102754196397268282029375046529084682864494258849297418785019125121408094838848396864219098060900180484139351207139453789828587400944164996870421497479362675158073305721805024420312339460560901238761121122425771392841669910568360125288769327399806519318785624219275706460910918672140255938130700879854459571152099938574511646445861141132115276711634265781317801436168069845955402036009164196858382971888041884758592032990088502829064767229701725972057219111847457675024866085861807374964788558380333329716584851570985481571521780192273686838086075679608095784171339287511556151948267327195826393040005467185706691308517019806514273176162533950382162705855104046748921704378894781414801063876787372109492613171731349018259365401709887742007074374511095383925300192694745112536113744212769746937421099153892504264715504083039556470988942192092132247260029433782316052203785358529507729958256175450542106819377205466427905999102947633536101423472346072365154034131988446522367070969985172974224924909420456090552304284159938032787791722206218744197044162910150773052227135820853315308349006927933973901081716169786077639134543149363466877962983846121587106915638032915865818850363404394277870220689770168794915775736215353644671899911467926484009259543618433628926204500191248523470954953669077454290582230530026520680744611162131128074187156917869618017351714929375281485607686005477492903831046705832608506333383180784899574073805991174321521109633975655152004479347630149888905439748043513043555115205426965228945778726031427126199718672421930347319040703923342890073312635198723819809549034891690159420895552608847664312044845534576477293840481568185890422283956558839963355079216495202913599165007267340701663386049269935792127711749351032246774546326821579872419778054487865717193280132567742389875499785400047942284813329568888408616207516241501958429954980818137671330665288517725581509572754946722003818732630008558105597405259186373104500174450193681215418720952541344050762554793137468826045081294018254375231292755613713984381991999102088875816125481675665177067847119541903785101596139669767177105386403440639920277302931391867340869697148793984485859640362278578817467984313248774225589998569286516218562103588402944761981662480998833574449891053766727800349196770004638392031250150083691518923401044154116275035037642080187768885733084934738150777036668937175377151961583970564207252115102437135404771552911079808781194708794746272942878187638229249776432390387451447409858433209015140661484605013633944693636417583932109698963005928996541113215029706181846822399453950559198356671821870907634964700362869561248668263316230330639234533957114984483597026864568770088257836685072913295235908050473950782903128350049096003243858444394997980068671647876478883258817699660577713327930624272185314477730892151555153791264433813039259702886450334626380696486799443012300800857528171674278364311029223844766161682043404961544446946729217813699211409843292979766806613333535609461572964914133452614818270924646813034177316456769341476804084264624915156380282379279959235140811213611273902773630323845933176503789032463118454446979348504866224731722356908563597672949733647879002753648579273972069128049874496733098869797956214411493342872546818561014948405823497080701193495253341817465135326858411864676291603085497689366076623574817753026630997775214859974354140281800223042520978202325883822533611855437016334438404167354060769641222516020746996633469078300547145627400232758444614058645437714944938750620810841008192665543039761608427734975117260772788890825446317537914703224890433726604617112704898277565856466077712941805708617660199986884772228703308510173193098956553182615349340392744181300229475705723061732768472693234723611218797146526404067055221488895486744242337040888550980901762621667346890105075132616565407713732155808003149381632010012170709341338719475212475311549838806999488301823331752721732203948447978041270114870082772861579925311107601324277373228548810999269463083725368458936326746842192869239124534318198608961767223821578596713303709969819486472455900377465317794676852470525005458784731646953891689865169474377204756671985610603573182989676279912290695172328559618249772135855973068855039566281087026402842402399263142677687301752201460061347373997649143430177312869763664419019796847321068234011547188378671243537539611336319579326902209372820420169181678637988173934757421852019977744895418816093012372530018202372528085533212616417924586569729109074534867946617425856585954900108907985383926528984200898620148163733759692117575872005936154104696304455635682929806145501628450926556106338497286898763404832014369858871331489969003451125029819728991823280923966038712091027391618963479314667082235539776346877922017204905520825056326933810198220624582417446783657057151118776463175458106522000871613724806277858164847062156396450519979393931475977742015712092124875953891004918301762505658613314029627492751704485365958008350859020640357178035827891029556674512895382995944613606038694689655052795344310084670042673034157110493426132718799567948638787872775135843328827648467903643172461428486012924094272698090728603672728889757149635253857448978138624785678451579939903511055981245484805531952273057610494627003730650538397861408653831713340824445850346158709976972119645295892502184377161889277467379125945064072087306160974915031466463021800598118701708271403299264923080043415686294639274771670055697134486514779875455129281880609952845719948801915690631257095595642559909636633510042631541912306783759567996890792439375788607874961476178662095159479571275848752541817307469328969926333575861438381390947040067959421566997729697974363914660313500342751363453139471694160968383232728189825051164782378675752278167560874415293825531740288595589945681410292091668207733328820992528920139490927973190022495266751834620654304167342865153101664020127202060206295285926562160661142598704739361174534966411536082038204571182171257305941702602146447840768068244429129072019062059570247404853740877346902365035476286559980494003442128740250630054199089263214405616150954887248994068802736272139527423371364531440154691126136547877129543183809524277751715707809668968516438638178580052995823770944301875672279384691738638267336793552905108191079905826387547618082937183159309802806078556250482618186670018381751056256685211428584188029809142162973164783422948355533886869960441580214723780822484655018433015399974829165413226698668268841634087752961059392634259621223116445745852424097382411904538649650901156487805080270626546670464026532181033514847799024856960438459430351893564946440335475643519052797438906564249910063994354109101709064784612169239936810322920434495942319447791957159603103015507433624385267979762254368079786943319170620891695351740404180345835753462431788339452632970834492500223537356394991814789510730035543036093208159990089501268457587548351128824015264083811784895140762315675257725740461911521024199718144292636110643521212948512899981357072396337446117660417530908716823596977191938810811947216840853996831634817633949566938505965853067825438111362751111092415377674951147892373357756641374899140720430439921384707293188231602060881051461453230318681489173260271821593443513567498780860731029529311666948136144986001975744895696041582408657984381066602517995387996701591812114391142473993397694960851098506613149338477268910274480501180140975158652877111714589280372443937889379267077363429865382530957490223932473074021885169405223088964814684844469834189106801766402516896918624155912275513847944872335586087422680616892124123268412921604969093914633904771976928126400227010128413647717334010350885347144709174321251393296036465327107958721698929721494206443869432326272340481868583209462843676348807198434759597515922348125640499940833472957696503297810679355652953171207873046451360190261352415600616799537212206257905613593280986602331773514347301394886216342492882845556744722858120843510194180404504449400263370310249154913820142056316916049271272732318113326657453671655669203422260688897229290178415385004867926549330714147376924055620183136234492944770656459283617487536769025060197302753145808081773186106270779295118900622503356140013895231483016576758920447540214589338728295037938884946368593129426958792853642658876951728522979519887100660507148649569586341952560473476124638625762869555596718701989106406589995906475873810868833575186516468629995710903437806708783051826529731341891227170393367976870038802589011484257348675593361555392913191949738636365821437761932363230141349818414523368991303928595686226258364902954993028442004835102710615399360144140988761462388202822922610910106782945690135008822719428148183686699216295790134391216959830804555346966444126014069967974578369101641407658052459277779905809537901851226512514896336281106621591308053274274482717235409946089060397197044592895122471207999377766708132189837870660877614180788607157539665098869481355850939704551702132640377848551132727474163178917322683338635521827855497264313409416488433198415101297232665030351245931281266659161425760897190290488835946588345507748123286321876057454291048035834876753912999035154948092517200251737528067728378663851599077103091542669633837972826918505130356914936375604958732719612634961086704012489652247953720100210884841168587073879038484709550443650695608052914484536574584805498415722989293937698138890892103201086554226608058682143029657987291342949452596223745111152055140476752381294407770523283858358150470231718952889922937723780475893529455290734437828993442415385152883619094936038883544231688242787764611921137900727907867860834782272596334417685306570033786881071883302703498475890106689419695158135395361398034628733376015254034498722420469956427088882677956574020283661764277452040604639853177708491949543021467482863859512476213549023595758716594631480723200447238438789040633978008525735389781169392400074859705788761919656810339463263205783112231718678726979923718532205420597572355517434543311977795943802736737312389901923209733548816075077732478207329779986220114263365580853357763531920879233246065108880194622814559016205881571240910599012682133488239085348275223705854980738816398382945927057442587461559895967019009151769916602538118747458535237186833815148130814277407140436538963994222702296471134152113231325070326663960487498208163847572294919204613525953703569086179966879875314667014880635183071389108963621975342877990641454821229856121019832506563008895641290485609223476497115387852052071349477466292132506179935838964430112503596583541609784881237881862857517714179096333065998566628709330474277791885451343381993924056649733220708066856955181379467701044593579385715508336363919021488178898739066175699261394417679068733218521600908010128546002316884516065615770078545992641991037371891066072097393481989324740644648864466713946398715905803634080562279731962756740477039117375679245491846618762817108386120527600991559710078761674662202647658006763336629799354773424730122943106985766909910681469017483810036462736334038816776903653777068056120325445028443472679193960032213103682246320799482937995345568677952247374895613002859501139871818194327281122901545331338162458273712423501615716037424038690589171594389801518267956251796357536003671607515404634961494879181708113513394591151850535939473175085079891427130783350785207459968077453578692016419332794856271157510562792946999174599357314487094852789158044667967773038382220280184619698157088779577735191759181110334342771224145038758435413897506319533856932587938994454756628342521906038509577711431847324220149610283818991794184222132852289540279447657167523246393647312033608873926291917629974332950822355153548501577630940239556514097758230838276867264475221802648563800334071427015139249932503895625428398865153346704577468428485761479297013676043642855738356908986787701748731723161101141932268927869207649759444404077634735175073904023759305668065413403711192728916802257205192287310456668514874427690880209469132440980201233870883507496379972996457097604888945098912864567316270773159017997376939227793824375994444717294198572831460618511374361779516789345314452934214609477942852630152343433501381853976027491931982464436119291491115424148989445376230834424446735747320858750365031401895344167032977507912718882184518544972338474317660406439129398702275263447139017751299252361440080725309813584150660607320593862329130987396722060483085835736325155234568647164718275928094707402583259121827644846447140155233165846975274359860440545452939881589468323518887440198385486335804687081391722078070305263211167555430315872565067733138028880072156230506647964184701768836500729473647587424248553001418902558268675718521122034136369213015930291030473532192754317452378727617011248337688486721983402499708743065584194671737960431772655963039044857674372736577903540258249986835850502980261548123273440941141680335888491997132768314267627482323758548196574563498496781466444910657146342618975769136106370339599220998327289047231216330942590707023349561146494119957212320762919054461445280109726391979487186811479419836895496368174924080853815961460505113995014622897326185173439615775197640143718325892364581077873388285135274434848127454210110994697502100093735730671969086790782996877447331089657638678685666853900363397662036682900042680801605171546459906893077896840225231941822656761248937535719320999234290298849485716466445694470695858181453337685287975608209399909330215559137062954993086877012208471764739502323712457749260743639837743095998907120826391498207081504194490754690693895447880148015931490062084871264630498974069297145237611990765822095176861785042365740987897483319132203230557750393377230785652375144700415167604228676872440817734947405422089447853542232052889971751621087826342694696144489661256126161616668689464808024629424023501460534514711353020134272260890629526549914048963939871696122734848546516802128024641511665626873564908851587262048200815248799409319912071867045323496703948131601976480989709621642926160978067923654833118958522085117805129030172156798064559408593226952270137678050686688239975782660541242535532137962810853547984105536324669468743218698642423282013987915998089323882091874129063828908980029223988438346975645399457079189949456137648870999113148956626240251363121599924512402881160708072720051127907563699166139961880147492319061831791248100793747873797414984824179369176302811190234121738658535011563921437193877082520113532505973131235880668565289418836803210456819133258834712319860424776630764026431930469081520247768761021953806799189123684397014713992754172712994283059097600266805409160313593090565416868202308506948602841458284246979232984196313966836587865071239833004158956083950300471285757637318585293839900776981921816779330694586853094160924937272247272386282836938664999495018480054181058793322313312928820520824183167904460635089635844021563785088383322620249762558027623178216673252318021038143838077002337509077749401742085504467122714704623753959054346344252681265984311504759548162039735637873405685955221570343555980872834194593032844850174182174766386372167275925207360149487231982430264836374487448354823960633008892104165314023910921397544385345867223343766355415201613469297672395025874372719119558356528870267409478299498797000912572508610470287068364690452179025137656306170991246377412288407403355317385869716807935750843901460798509694924927716610987218691671707446019165994877820692840949259690982064833985140283539700929268287063099473521405724119314174564703912464676337085810611154022177654563782508148528192778293999229913383583430348872433739525126890643928496223187807561812708762023553545490008470913390465176780112173210975270374482746598976918878562116954896364271621111214151650320942273371513823837014233924301083430636541075743849170896026940383793590097792291680984046565296359675521913903050079715337219045987583617855403549198900500453769040019261016043406732026146715681726388234491792294184409991238224125506160099729825437750331663274128650253547259803335819376881286006943149383128993955479795891844546681669275199682437222095768494654297887511827579098366007804416353534779406648801095822614853441399928626377301252612526020023272769969972730090729213528401869679755259709544024765237409124095304577090504646207053179970301130859545119353871431443853131892783465922834415367569252551008269538970117223114315320073871262909768464473058463884231913193141110377028658760137779608780980105557075543526918382443839692816356171240308009031052907076556751022576340785512087724140218126478796973195966429882277302932146891850515664218841927147967157794712882250201009750472861024028928859621797758947679149160837616320918301513575962425066613975600521093155761560633450062447999157413290034925165609022014311134490680013520585712295366747315677311530093794688689373360326566166893764631172841619188394959953162611999171791001817343335250599043445383784725613363054711029489903471652932921867677218117629197842825187368467099623826600824141279844366401719734558485581153259068397217846525016932678605897131624448250698186388413620375291244140746696345524693072176338454144802893335816057388288841673605204564577502637988910339100673445617877890649760336902486483232975736404637962958899253556866253357815143315493054292937065511839005591641631064809790120405246518823217146706278719310716195123918771788697501668462315874096284022286118813724571317082540171328984511371970523621143022600811807300266677540215726983476612222207473740754366849914065128616760406330513121171873396831324703766263139703052781118437742885655195137305706647328902937949908620026503614184812061616817586922125847696565689488936663470429928864703318399057063091645936424277818702472891219421104723525309108268840777719905636736051763094779736599493196482183959641094454595889649510775843073687817103540330168269502912094898204103339850338830492677844266731945083380855362369252055454287511849026965954095239977928286853243900100692783392187996274049434555327321801381990687041481413255367185651865726869151992485113954787521755930384690009877506986738795758433534580920289389641152904815995630111658523920017103424509348153936500764225639513034305229513106919567230881851494894741702046541027885403346450684290090035457670077463532454611835031368325358761951203386303593955219419512301482896450113427267371055577176974353827641350224106232065667709958196400440086599053787654548191098991557881385978001285791803130838859642202095694426374773359506504129686933305910059874094860385921317162597596694651756682003905132651173190130903367772213823200151168352357574553656574797320277010451063572231827151565527356827470838644592286388382723380287933501015314081734451211965276721378968058528073108522969735392407011306984225058558452903161371104694848569287776311517469985936081131749656964328084540922996536113308390038072106892658796086646886044139606776962827925841785680480488292491779467558932277863725551523157757852333558840160793029836930268351798361761767643946842691602140496780949551276063046070325384121181345194311559865214562566533058014659398143863484620759287488442093178542199255716586251894250186705357488693017624498190778645721528285750087238470073508615096706383470732152813846863842836415976457385850542372283000826553248380435597639929877995997245834072556141924433152000825991392447237850219996610746381609895875271305046408233851861804016055764850792246286390033783688030784316851057661848178084829723738496301952111199880648852384013184379972411926688877554824727989550742920866654392731847555895963995860855750291830019850736788920597812480331731639501207655298927314897858757915055357911115144239787280615060691974539864920730209968155460400823682483543643611351848258954838691810227939181534776361286719343840711161503155844140671543090085470564808433317889448630867467385776596413774587368178765002582658898043505432710171457633472289844418671881379028786265425151665441582297676206745726665472685870755142559447814824133927420969917649000797167645328975265154651041637349489120423544656819926258320186390985391397150151687221001820523440291725252732278394355989075139545708375468011128296210696819920828528709323107738806693158708925324918899386937463966242503694206664378534498393982716347196137314329131754071710768083012992349371077752055748417857443656544874166927310766222553194775998856728718732493960423823322619639426537393825387088176421326079390782608730067207686898429437725667147354086323707535667532785235444733349573612426333366852583616753923447262572982091852333385397243599250446764966960747868481853575891877952341454200795114649255915241252219888692776555273850197018385392285308535370982414977270345614296451389368206935189178310127988433905718283236137778455911944603081111876844465572448938238676914889567729290515590036916231549188822370281926870110076154746563627775514899247479789817470405372262942208036162818150451935151760551241205674715810175579216549568300543689259691003528714749530507013700105492853707957204381848240053800743823153593067024664333984172787279281191058413981761771377736252207771320928251068709109708153755136453085416754272654753196152281053661779113716357036081495588978660985778700479296080812175806136485777323779944824958909908526626217315676677951412570334919096446685939082882948199781740987067249225047713345024566139308666521838461609946739411033615356521705146479300115412645063732401558220524542973743123587947866605954813767899054416051621496560293675472149617436147863540689397249936174668430823070628099426700977124703076760366250500919382508635131812626136924632199723158773099952193889945518531730213118329823508207681287170107858417185528298061896008576113776209417077358559156895729060447378172582807383946072774587482997975898551663703045903191666654831338844281337445095105247090548391842488525468266899599779894187712529835344179905368746758421058956218731860415638641781137906051812136718911728672345983552629885164631891638465569654525998474078323909860657384606349299398275613977892026640311716549016940660533901852636854531828872657903173149755033665311706461372956907308565844981673120593296338175002181539022544825829665288398543893965173737837069138117944103280890620590900096711743069461774596702986191088971291579721513739499972693959448318764354320218015076204527525000040665984743986489294298273056257525097361213668545148929001849318811084429490400155504696323620942157634674968882925973739603905905786892423830597863664862679945316637400648908139885598498201688658851013783503459217019589119252609214037038701001574672161774018274659098356357464155863233390542833433511598223876386450122024743782173658839030071449440972706730162035519818461917640478303825663681300014392827403222143354595321739216883507591004630648638620741603051446812894854450753069351154673366312068339483831897969800836350970635768872279200082292296531480383013136097641421500685637763590137617055575517612912999112952129950482303271045760746946047407265979218239326852491245781054858152137269922878816637083149140603746683902601924212953079551388649905198213940787873927711362681010879785502302182674041453789744968708057781315963635896056532025241154341957688898100277626474127760929994367031635229038118943389578206152640096842360550810515873367532855944763119627541481158333542745979726286086051585077548377034321669250397139340565823006357337649514260800445032134886280570725384503936804006944670695480680624001654626530533462108875707781662752510704734301436658111056579412282593846816107511779707757262525990769786481914626294244466685665653883825915363514533854705159360289914515259569919963424002883926868087258321350614556849558175599011757314982465253330557591314220463877814733630416758945357180377651846165987150920288207362212352714241382107632147422590697695403352930894814897728661588773718777496452829671028486372334772287039857496443971743931895949283402528518460377574109240278713561307225440924425059920016076278502089628090196074196437930076120279121537243686679498569739423129876562551178237640047929178989426579535569210365931217069067614603262160775879181319405894695771176443337174363392671505909980736990131518551113354023863065139365246063576665169765209157844640402768862843539584374530228976661337715688490919085402948022078462081819969566309537050284286056842819265183187505573819355970966278083535907345705993615761055806443593107933199943291884053761984279518862016843716933352563271577173127068013726607452762372621054952201427969873667266859982395685031814006366668151950564214568717457689230379819678560278273668652573429182051883085250793211604924989536087884725474820128435689126986849734550543952129552221733898363159341119641168698223745250760907610082240509207896958168478955093760657780773535498027897581125127747718870953467916424202332835783757653009905060477834498422078788782322912295465789169870117757712324234775582317206426687828542139565953572007761082343181407937536657777966754873962677732134044685222986098247712432318178237566383425138550902899573581397830281984959004978934567211677152143671927778291600103177795804830419712199294150695087695309994577524637731179532730055474298732452925186424420918418898671763456520458014221794828636910983845800464569316757455717830079766785643537070413110557235130009685770574435758806415209389755329894057410993232170705956332379030344848418074922795170126631345811658370827754280604088702099627876571907326951068208433095247203067965600506842575558321612315090087441088554905832109099889417915327012416797988870995322203048830731865752315282121502018692433693643400766319606495061068419135231582822438078187444821822577580726079325525255405994805641316528775499969363316389402806725592374614324694861474079236364234908709371317126385295365863762032403389664564854729336048532679679522674668548518383311656198098265774136065862319256970170929250625092947098498077743517215386558947216789859219755235122201225198502717087124484307686988829500929373156458168442284535042373687466360524244571590132261255221188637628039668106467148016003063474698285759604178939985165993280510485434550771461307933133134233480545867473287160700233172629537664723083392820748786889032436664506178303000630303023057180804962269927451224249012676432631371436830486392862419523089622579060211892647989358460991652396810006799511493202374792702546215427537239653898753362282717611098237941940720797922386282282627835618410142651466701417203709761413535001238769313362682220632390233506146386754486149844165998649831602105422834277735760227202711718549272045902562052318335702571633499906954230494445755674864529537198817358501823484881966758354428901992274947498655945554616490556288178296742666641984319656129267862688532854944961243718280888971637617176929321794905795308363412413595310283303274699572479615461150606826922408272243766811051991531019956571157043544083220483216859782991247113966433684465656045155829686173417501987104659647607012568438170212802214450430182223349386034592372628863512813499664558667326075079258152110697213683454986379637159145561113914066784729711478119519278790720684713655036870165205824467011428608863227002433518048798080023935546325303927875480588175001471283304888505557143796772777449234934400736040951926534601027804913762160278361966578725909746218481828342602097380082151599087988856039250049672910005219226373034198645563711904701213120929784819288544983947489478459851315114538226939831878240480758259295706472689502929770570383243596621257706369932882604803244028611059666234072736934346434968774030615652774577210341288679393524666420737214010159186546512668327334757597253671700103201922920675090982784758116523600216887802023226515233758065422682859630826809963192309760552099699542893800792389698234811104509822860904791434221715780000182452629882631287160060638952749314669573885912989886240215539136536743647640007323477163093436556464893226882995702545621478402256725931072163863949180239521831418196282543592598259964617112573800898166044976620241021394957358204250387160407196470235235293359874763427890806877585536995389993057949562958678235864774630649552057439906941702034570847899921032643289800568277034781293370250343580229126824469391385116584953843772873898258970608339827990151759494205169442283797521575683346822149403447235787068601663714485339716970231442359721977207411212243977267274362164088978608181330676599520454514429177453541338962303525832776168623626548674265904083774212741097695926382974503673752529603521257457352585995915240074740939556688910019190941292994686381447399235451220833125519775659740211810145268582894131116338456638554238651212733849046947442982930404045975113508712745888965343010558794966934440423616939898677858973934622720023074242641457615784857344595670034277583588907539224195814155169955185690476560317811849700008772925428685305497784646995762454515478196682626912675785970580804713707927727080751750087823125405797687984081098320804974689877038000335395507601720664604264370123027853190867663118161925291644518590219563313474280809972152938085135132547497989842251661473746991572202300829861450474479589698607112269521851627478117505426779925953579187427165977354801612403438145119700872881929425825926979190796615669577754774358704934180245410149682544299509098511041595651576442613564434097881117014597089106816274349793243759579242311137460580552583311005075447602363363298927507173030507490550146934697376988945744859028468390227056688134737689053824029899171871384985462723825944133129906647519697226627530126396788265351832141277031069741429897177325111988082837449506845873626367529826256922227771069463327587272671134296335208504642740950217488436539346724863023943963940413835667456412987298466470244577609921228734170580846460019928241701521239244367030922381470737057135623129964045255975164328466083782043592925030196504617496707054311918358538043843001196700017115116266698822630785466291737509072163790728233306571222427127652011688319667745881916114547701004718997607441841512959746425338190943210177684281587177829662783962641415724240433093950825999862893212653409358271806120726195796050814938714198121779499811935493648600931760005158536055065227520918379972789510474296348889922282030459267313142458134824682969554899014888289692499926609151036682218510843030233899080774339516868249790676466515790869719021595886293262365193745547797937511830266120799033453569646703646799607436291730607494307322049745780026226896467522626604660868843416803595984615840640717983139118761234643652821969632395910821916456206680063840388919093732937845366177392665764942384128909491351463865644297822482677854845019865415741172169990819327126896591820220138433893138183669830179953428604433975746502162873283606283345996676211939457139366151254008654160389274744460922077424980832179234494826488714956627608150335953775692077133735695116116217613647517845829962501334046724851279655481183705927694133295209174495382777595991364186515059873842815617995778511383261502667407490590640484691349675327757401412057404038443989212536527429901548444515786078389716975145244784296194670700887673112505599872429424416182868319384648697238632493498646250492565506404421823862584507840498829986610719771059930266594421065838687128951806329832649939118852031905580859716362514752565684500536753062553376879096162713057529724745068051417632958580823122991706325119587997522960071930946407088054291267060254281597175737519658510238520424023812156151214749464727273992470779749124852363677843982018387182223487256313330748438995612409731799703609037571937513849624363802779171914890489321429852485564847533304160646259468536813193194440720240509883783508922953895965791889833039236200041907282576828757137275972965770177762081267748016714870810400977555059321683617568775347636551216143931152469207094298882321527593436904857459488944245312017065354663046778112995004968945762685364018880008406429515560339819549676179565577815449118647406073515916591769182413986268065375874946360172233519416378019208722872021643041428016869392318404222852416474255446625974242372898868930399102801202849154308769957162873471391941247051225105585777295801465217247918481000655292348334608905981401106804893864259589225201444680106850812550135839762017062842183041640324497239764314215398276357440521340862932965273142148594187662110184456695407324844469808386254445592566801796586634358325956054297723461132103865918741436391441754813456851462847486712532187614224416426101663910502017429050519954129717239183507040216551033914025243943819513655636556000936347097387775046603791456037899103474467848485299340074661102301561623030541993307303049199497839444421936279971655247776220239515145920688351445152763604239370105259723017909813650610996677134211760426516027274043536896384868174721854488481923528778781373744663678581981086037513536087388843746869972716487275871036121010297220287696967844655124712459221427388215881404426973178670471520391917847929426168636150672301812771646251255000328439282430895189200823909033517914186634479283474039068076246303730002530254429728821217349400095342021415392880314764771046186520284144599515313794325965522483936238562188793499448329141724234838928822447398632449521115602177659362088256418540737923901195011238268291580490640353350257805052629910325234141675564940191024871830965895249580685762325395361448314838193180234284611916511814872601125887367511594779143403361276453105342209545626543130273672729509881752256950884585233454370371391276726478720471926177573908688789544465972490015296250038035209278463996777084557986920117358304834144576778204336771627278711934752735379383747327285099027451200711256942193896842032120279917801982900934139468741207552373802303360371467043153171877590380326613443342133769490356542243386709927428415311509594918452530948472383552250385247254063763769508988325385765081698961595697326937246430857516433042118916148634065531181953379441244124341539917679085641031690536736171150821662263719547973024124867709661115212539500390047070624333543626091107566570746922355945693072527234271065758940071781876509582892742032814644729364670694106457342792517293971826023025926799420685335938629252089651950852710779244965338645696007133328104283449858212651059384187882177119778615630334994320745271652701963310598518949775570836327881975832235848316147437218088434128965210968214344052769291495282974157607593827600043616902933561359838563519438313222763859219021792707383618871076004532824913921979208016372279180563153028231633714894910412016925316907742729704785955926424750711534527390495504071762033331783669354694524085617088734381321070658731752781341102375218169395720166601485015812958985486555852952251798893356662888981338248228962436374326238620067613171681408165866713436578771054435502031809086689923435465985577227394616940214815963098488949302395278591288018553982760670045538811274244448077479853727048564970864756573954552442660054591963309147152020182436697380434874083343831326969901990320414608774729333428344976456258533991672912263912513399385418435219441736972755611188671736734509373034933992320672209366793894219192892192671687368433082418996413856345072845200564029463194470796989286684214221790122373801774242868616274706504935879140625000835905241128420830108748497941968974557215632201906276818117020463537060872798222734232925230744266066700414929450416163514475894212983922507301383748787323852133505090574588399110133770526963792447568720771080943855166145123520772742063160753043770276516995877104177884717902499128237478896359229936841508251341793657010965287358663681038109177578931106388767361302829803792896669574147912266284014101025155346243660460185259158353033563803395736392904109238256563692907838197960886207068011574180978384537156947576246205949996245600785137671454467616101364405195082807143321094818036018658510161353131476685157617143356601608641168680798438036436325081296436003294847878282281387184939007850923043260599078002774020498195850646078964650028574409367381294789385032797900895347735622647997954110819275772550415689976665807086239338541557487334286750832923877960468984860366388340681104629295390118802304602712240545257281209381101876181979977061157957949669341173330386412997574138197654637777914303247179285296375483122255300588608972178333305428483759444750698585601022513774315484523356109501199307858232876707144773368973430396587252206817730533085173271807754603369614898964015629540617996280332176260617866164331575332786791770267196049578116107383636360352482336624657404517836864800345137936366883702212093512892507466519295388472479812945731394274892865654120223510149016033461052226995546515833788296138780118520908213228116175813380351396096468287733590925118198397555530484365562584744842409460080267052454029756741826472771131292505604617039156222145295860454168720535120779219405557015971292171880458179566058088452556224246601859316674455118739988698264329260979548976743498118192272107909814808303044956211670864297081935179610053586139042976366792445305490834344177288146230344317189675993698652027604558790700493051085342170228559195086533683845087953695463765623395475267112019256678978853344013653054403181868987901329549123055648645981631338995022742911417542030916706917920640314487853227574012321954655348081525626634078521939656311377345041022675050383774003177068134721890551315111705626206386300813882424945263696066310294151754495780361626137853884908355796383245205317219155666640342483049760971995351805843318579237172224413446459718235521319091171859005819510058695731365545138056144768899608222920956414955500293872292509418180289285507731240839516382298059411722265880407997317557371122249861698860446080698707244818579019423180115777503062614803029220976533704898716260346072776966345295304015770096077412157318981885547878614302422631165213096275737947917977749123845998613131347732932703265722659715733644403863162388707511007095741834396972203323477474101237784143775506534568003832593059180188309262903500952571082839161828264740777797923838500858504310915153946662881065719393964332386952862001260730941376580016520179078861616272513789748262827973378606218379013126020985142114214640175273661945409221806595338850329365289209517602403755397293067176963845691311871437061772233804608566903343864895909634575862249552244970827815277370994664258796004144355405806739967141030892362800227562177705542630159814145279968047006027629237724296774506601043989396651191570401505267760227215754447422251484554775493257863966189884052747209502877994098135687559465644113097306255673336980843743341598325510555677466117415365366685502436298050035221072197384483441571762137747775248476467489801519553720514928233708024496944123518580213855957022181711693866727061901064073085738846258095255713179309468330073734642496175351218977662524371280707245515020706249047200671444025879627692071744727111054622774572627445686811111717269686860506362831618856471694046397871681343947124048025346798154768007131121806210339059124670914326468039949133782416878586823614110556520234051096842073363946492707716245218807915599445019542340209383748400085049476789229321608991229471440330774027961407235583545331928248816281128934404368001051186753060801749898722394551531738761759255667230690153386726615398511341555211332371497563318975990225968381170778445095870406424233594131646607519424765955038735145017029451056829820696713892069062642256112261549207707674068936330080201443754099729660427693569913247644987317113456912719149130924043583065804175982269316723296581660271720713864698392345274436659792372367776779725479571846843377828941259626958372400489665340382268336040352871779061534292089723064511338120153247477875809115806468918538876349210744103831220053645670975806799609069684765564092125243566658133930026691590908325854925259289672274898622050899934374583316566601146124627323425795701259825184990944322432468463161177711433309561277904536335605456211446679491930848172984926959044734909548229542736314661626226286766396576903644603329066184197850146123408135419762150734473155461142502865207488173024451314879012911922449019185495286407460231675918921184798191868169931073759281246293420786517340653728250701905415409336627146113155371385476606515623546225778984401581746471915194998620776759887143683988052082995156319264695085549623423413611315075567327259212406119105447306065631057945502035085834524473963990159391651417287841728020642561453194434473031846915824377251932014230539992861630324729872397411541644794458421369295100441041903197097773202114745865792753007854765842085553723846105974385690375673096073413317282437934538654213595777779724136583162745104577957496047489133782948562145733483483536704231783047176526079894564128671897375247990834465638820276938004590017252011669141564734609738109809987707948858592548041725435665461357054085665283367683725695278953928118617138569994547228223554189095775882079157915329727785431967855893434571429050691421482479445887715286723887308520476163841778684457509672958199427695879878708177212481481874315182548821469628140217031557205457602967617581163813865544551999795229890416168421458197654661036870966231495254188236249121164666988442810650883496092667932451957420423397627418001789951129426993426681290207290736800585351524553959786234513357449572988069633500111026440882106331326771351045124447789909103928740953161508151504166449310137025348831235175071183817305011774744297537832822570896764214055709142926431147003202270491282772572573081644429523649086842134245591616208174218361427713225360820232628372309861157453908902758144743697852785075079078774210973556567017557218595406613119981233690737675731388132580941555668953475928310113612399971726433663372210359316011956951059689012102187959647149165096697882363870276354406316351011955035455809708574446268903863608056190500658825566288531168827811286603727062343738590386034880955524170390848515467166310633930678890459189112843488924288731807361025207957506737733135307469860565804554830978525737560194799836635805747958355399630653883494549891229563742285515426286434199637032927244776487791613411787921052231008517351201257466758436109878721282688222125340871081113160091486568555531167743550295628483787372477595320185241165143416656159568945593156227091181268752352375237095923685308203384825214180029755498393172735063360539205509127324847603741867865600891554079012074881259841110969858219071729179332555191396010674521672835909744272388940119711792945050027980113895842860765026314961344988555573365458829560792826870904787494598074655634443158853735543180664287345083166152251016500790008871482108459997558826934754254869457300652283411003002071649558403633993543171806149303373163277187027757981298707562195039542585410369808314595603585696493939207549110097512210641002639636023371763696440149920726661024379097924960834293749193826656774485142019816370554206863041789409693792175255950481490596238334135925359040969573559581905396450945123399781941029698110344130433943408327015907926192122229005450254883070661527629931306727485346740316864155213789030804015215570486990409259997884801909990353143030466136785172700105464503524045577877921641157754803252290344687760798594652890736911013566719536494764232413305617323430453007829739763355382143713433448797337520743336032597191351773081264806580834305512596860723622073486150294313221950414794681402173846734589866465878118558673772859439155700203961595201958933485297034380595261512376434163759914459423203100750016595454627749518414742524368459886137504123772439121942290004077961317171503941098332124498458364448403764664953858908402047506656046386061961500450813710714425154319737713315508802892269984028310667317974071515611510059910165650423776391769295877723264322297958617946746452448433323881026224472651537988700209195587587085037723281096568662656548116800215609027008312368897435034664312759946610789062774992936917845546802999736384142943519829214389331211432200847507312006286287504474472546481593366117020691391232049091476044288171089299945986484987961593312736614737265956250366908859592890963031999239705879223227860081304310469423270208856546777364521477237391495402639882652363285409569825227003318878021150475226063011744631788617470462956510274331365229313688266515335781278766834414308207380688980372935223731951542513255739728428675057097358110490515598297584029761116006820337456623944871467688088710587831954440937598101342303364473733022821941638122311684646637256918089191476049953424285843521659372771119555631604089989430218981388821287909447337684839580840296956786480466241694650069535073201442905953393001602423887163785050878335226465952789368119296521509823823078364727765469740343858949263192092292247689451237790099303569230047899509753780609285005205472161949157542399935033820909402766154889459661686302188428184631118210027335089535628507158641861253871587755727902324025556310780689300427224011573539403297395385783405202391951246997989392074101984223869124529448220105030532522142567762139873479243272430323068820542362594011922028550030580087635985091386455881388216552985049426453104019630260578320618244873069427215345699560627238076115842735812982207222008423641532019918913448082669511422955104336324784955156664055184015914235322900871323992253212280953114140089158819836904146841047808286826309331074499541540090796199719881715216512474452192289309851200826045364366067661508823561806847723970768589239462035512760117614573573706184727514146684239300173164322979453638115815215958973393636064493876493550238497054705690860403079468680548306714001331360921991962851367931887511385524717996664615426510374943540606153003450034478185396397970660494283518863317730830837862599915146876352517633651816665318299936309548562710140526383227484479066753853808708735218828408131560726475229475922694197033417654585026643532897024438638249228879794030946640991946615914223407462590215898189127158507064241286171568757884848287568418736106293382373523317628525540847036836432180070728156048261025297525548241244625482094941658074732690580320333461903007643763226954730234826228946641588944539598964610694977652898221129076253852219237077933226033654708836568035755727937158311010495750196231666970122982350061305568841743286544032936934364295718893874665396628647851636636004959150331614872325658237983159518401921549514288206862253777453108898867928506282333476667750493273596558179810051071417144178362438179500449547751640318469586314377515511236382132116673091363497850650225634178743423194508058928624250465744752722142873618154489752905091321285204262507856393671049044238758563902053192315196602945108355921032229631573919036593793818349679859854713583909650009075519327371361335849281898423331417857258461707279788344694388085925681652754744582127683419391158556267152227737770455712203094890462720124365108021699724363983637592517303665138263796405715313097688237593296707996265690183135607151208640347070470449253661656694814767272456379654535949708806718421098945278198822457273024645430617036232802533343614038932155556070012123867144596332882358833412693355356812610492578329044138786698545749373724892594239266156926388801274167238549309619357207008434686686807989419677775840355888748071607725634617106816052586902552759345435509013761194967110003923589162901523852283971891350358024423007284336625982152335287513932039621984626613299745798431194772367650375758626742753037174864645763094663716862319137128801739370113858810439081610564052292188742837153859234234981448220155501347376693464521584432801298253444916981768994012062759690910365954948850532990864627715634351741158986428141254732026543000473373050429243720028714865731766946685883585388290742865119495462646413585633255756942211976234013089894306885304852428213037021405322965510372958020915052805800428293099315816687725705003365140945262675212460851643457751916586629242762806844197042492078949725365273258751667217263174886681125187337990668318492704437918136123205348799716286900758066899622289162711648787984879375302904240361679023308287142603802780254825857950330887881087698390968120770838656459371058965682796860004274805344995172772197072240737480427905779089476942492163387894258624767608549030445603077549597242650850043258180661662633290751248958065796628583906395696033802912328897553837688507436578431170614288122590054434407996958189617040656903813143986540838109546765897769937966272230049379103593584932203226508240207178460129842131085614699791504708529726596317138094830411945411172135421811318391698851175255837853608537319835373787957842581924571011670676760103463204613019315273194639087647860771762250494874052070449126337667834358386419708742354001846019646167446526753694613836554144693128709544090160393338150004538129184523284214133515263481612674953673288219478297338744408915619279580233288926793245636821874717661189837868171156693428364144443723803333316114653069896032561639833367936804600412683090748120207318144927365960967822284762398069512267766888869830943241432543770549026200845153723683218195499171304089716311853139572208139359649394612111011844678840653531447631755232012033938201663796800512867148322503303743943677953564652579485969299813860863888165204797740266377682369010346316375174549109391303462720897045221340442080582554090686870063149749130724170415729611313278398406650075838523825954514121405760260491489163617227009089698575391722787804625764011341808586348989799096609436929836692433394551391172332692174141501875326396064059340633421542314012547843058993545284779942585974765854325301281952056201846884690636975492482329144023272532968346035461879745960143269351411747587052912369167782002390811610436383625667035673036546016201637313180315271174568562045697388284022909397463717737223683789402428418575324834059798969955257184538389917279139834162377817237727487686064995302855249599540929958937220144484806437642383302866622838281883819232777795343086490809282450988816370226223403142199320874209495777401128804027054393710842969246774182710213809139157804567264285084579677587443595552450477456833587509930700679574920226985691795594968177734234521412073671426813016093797758327246022796727003095590123069231610869259056550538558200345428354478858013867615563881597532983096729898681501653031960268037153743975577832987259540698616331657814984237542560663761117025371067754856393985270023824511880756974179031055760087015766001625894190611797728427751268973901593772640226680008055049379463590331355072267606170156548828612958734704633719894631965349963459353337731301840508127676591742772538154018552219205036385711110165778084797576870907993663725580914424599834323508919263818515918655847357855514406410562494536196200110336075172904216607763288420298628592863727241156257028911511650344812989962085639798299873826073964189925819053794470530745154476936090645759009040843115218099932305961007333632216986381288496636231651142021498741412366245339942145661737070726387302687515269580176023269902091518142327323504636998281768587476236671037626858249510863977460803242305740403512172054511936487628243781942565405064073364373403725585109298332650243789124528021295621490318442524948983979183713313104691517835889205161083156558430299879491723588999048119377178085226324812237889317607287538855871387803023398923431428081088640482612533843680693019336120959338634731732808035682062125151834775838265797446050274664197231089706868027505318539060523678730600197252104303390285235270752822956892518029935705095048532008698167955524848211192426597095696527434541866366507040039100701073129243668752905214241130304561657165341272911870228035470170052519750517483653692688183160444729503549804880962944476983790813767320023710836349086140558643214573709790213021971925603782235376133976184730608328654689539339739551495987614415050649850543083301916036311187501772776756090230739004337674068205288550865893374233608748689843054947620248557864838317690543094738453165235069841552838786424182563753119676792450155155841455790564558264674129896073886103049062471141869530946722401296825509124188944025937072487834993649654054011724049982329520149737467685566118926939131898505575074317636109516560535708660874322514442202117009706795882019106803295170012255150155011416893743499675717103357426489177848125350775956469355834337713522608555673014918755729960670244364833388785838692251707189007396505581219035070395985297641050596311901649815912989783315948006104684623695808080611263882803736479601825740486023347491880367445824841647660598000755891742500184389566631885797306246202386535614660072533893131748694716721562089186450604200668389845806822847082992119434628471409485519555680991336977544403128099098111000296458558768497585763777519928446238178013363280715715516622859088714831858637504427444993983028191104895497182416855983079441654690196978249396775947726589195036858229032111239198794238088077232027366629870659611237564713860985208596066104403738897526199707010212636832654123682745854422761786257362176492613755420979468157324353077257885729648729254227083836858906098699227274818914362442773944073376798956478454165321930522187741882094298783476190638332208541668832499269525887725602781120336442392522326045490654537725566685635296492068390263784259137381470224328893557766870142426829170174340604093083878200940062491853807652719968750066843537489132147877627654498905368847945661633549108371389149151483405177741597837656829527356184839314328886624706625006240905003398426079122446413689710230476511676304974848343956623988908140245680527266229497713340844635796734866355133360548304178504243075986138219792929663968195890676364377023783825397511273248106854586023204888855168764749904259218352512668685736809562009711856724013671470348458875296038168776168842013009400401536092272214655991656490367457059078779030982438613410033916924132134943072049313788997709571650951848720761902212380402698986592393199616834326692206782623279104756721364113740565363545342386052765004352324291668081779881897638657149390823036551809419367287436882096879273344042558960449094331975990392833801130484364022194207474972349809431238948660848105092295245802207804381642990411365764147952234498132662371109133805574464454581049587230107287661269520229271610068723240286282297764785357657239231639929284238581589689264662272221199460607546530952320077620026046648486771870591280173925600717688423675802870414061340551892980243536271452653066140456091206242300230641883555325688731966237544582017485034219312365865733564108201414575320227718536438653941822103457057297466716401669601816287438537702529056812060081180213819823123975454887671421288732200848988125566998991492461455198644132131443484716807958856556887235378804645616047778641877732422295738029614684513342171309248976644145096035211020302775053386548236915100188107726427603141647553139617630521835916301993532289929768921807136675171859784139288237283276540274405105121789502160321286251220502816194433731647319898186917858431982563702588684848177755478614629606122153485077127465468501780140394649895421615762620382644491181229459006910259818632031645227098332933540479281373399559400186725223056246449491087000369370093177783733697051631462139828197017037448582714614074096505793838562468823789600546824952956531172189056289611953880658134653269780164816174845242187231519445582614067090634986954065936843314673537026932996810612435707009983999674716601633059798040527726133855608453036569778950734857417889567807442547687437481636276617597232461441232289386267965885669795484711735846961817110960033250723477734213517206220411341769756907260479984520170824609884833766724163295962991811504886532546013074584402126422734476884866782180914026040112546805549521556121109756542482856237089072113852772419368183576558749204588951719363313515219673822303641134861300799418777544763713920478320037368159991675618304254655908986511722042073835808099917128560130250460947888123600806121007554511687216212568312976686530740700462123102716744800944181300350316174737182897037080854201424833657380680119820160849871327806088109208716490161763052233925682641763737998149343398380672880344031627773156685675669386514288389053309917122185010061278395550658374360938603634500040447471951367469052027637345063827060608312693865318456745684654504739554335424878724024831163425473074050090903500366766569822559132260131389673735892733344756927401182533598013817855034995402734664287026642784021113349708320254884588995749340119518824525475149295339378460520795595039381094584763730034667006075562520119075053682470450289387205067663234484201742338424732277689766149014737209855525821265001244792191671116659480923529653055770018127453195030327064619283255890126764542794460118163078720439373518913918074646516082752754158408336572822759105628938431104277428974409591399677214864890206554420299098350478966604439997502663363224697796048446120100088780955930484780629674526315045760484293111437598296376727530315603525660851419438460688113877390658953769059953668689573632866383581433719017976821408040239818620608758693549728908374883156535715652881359599981255218867004677680240234899733831875654005423386420244736448677404519190547466133603389025894177749868613772878434459756761474113763656068963770808990475251948563361688470620501429092616824224151658050917739504313417905472926222838321329118734820182672511362499835194107451581862192695861704362383024743956776416093977189707181434020697003236793509428056968747783446942775017855604333713250092632983787834126171815037786103787974621758201371422904772686555174023510486445090064047392121698176375196626502908336074478063449699532128116937844739134466528691421763133063486213990922521063013939754597695639549967635830653542610119575741762138548061726616763614185126375028547858990650718840329104140916271833983742382037778730567403840184100079923700182630553883928390705147929103174497557330251510194845256107493093268388366857980978442543240876553586460430944525564108453098382911576128166546624723784986857184412227764034726673390951567852625681951890137102539489592546034406093863743149703770193943446510771619679101106391382437263534020245289273378908135498157456455707927208919396228430789646516752188280988068335862820988593168272048385596323912518604772743773844758930798149625768632942251858568994997676788471428712305464485522893513512356778229590734414098987997948127428989790519671973583106824621038301504600101298347658228144747177376397267066763075470578552859043959824828504213856011033822872246185687072003949640093649712187194455870329788134594787732073160703982927719456139097571482256985338923134746697069072198076773566427817126967793415782182149912784740948869104870575459292778137832538886538744317515300323174916615865693491521608724939116241114935507949699943480558274103536669856464086116880329138436258081690720172080318457537819585791934272736116377295968549643322949109185230883887606972273633600729518061129793616932895607063121342270208788808941528111392866102797070263263694690365047731774877490570939704729004107978740505476971001006815977976098508269465644764981969809741445858731801183697257756678519327462450115365161585345641426986117824685897922008739349496440670526094859023193876743673071453671392182177607388166487214253712962533108220112697393198389331209096512854700589405287288086880601406830015020986778154155817339229020693971524502520745322873392496195125425204303450104196451144463531867334906611561045916674974773751592082461013233505631729057372271904832896422325373593645899262825229711084699638179791824799309768002058770609475628596282841163455151736194618227099812082335949350780469689543760406155346945841595442655832287540736303650983685257843924341170801592888908820168420486082619351566354455015035989379237296770761039499282587245267721976627212072340615104114095775276187521108484498737247355225122942336430955210432780535346847905600202723109709823498969941940632359964718919250326746240307349713878662730285554965184066224916034855020477478279817085298123728354323686507022835309186576858105348305433009560164079007408367076887088689694092992032906830446184405550072006037402740036661609144033012648777166365872181792891355546548285004278599688786831986774120319884441650237733651577832668049345730325883621915474899540399853453355067250253449191958197461716334615236526237055693286658949169750497473603167044099644266396918028660454178781635273447997541321877889266976063133451350601847308318726989566075564321769738555397395598517773335345103207352472936544052600864745323629612325972579539502551540488187237523256753110738433100814509288133608689513249962861400920124903912755536272544289917177433548576559393798265518854349388342875989061875511510856864068246197447788442079826566409893067745029535444298475327175743222266166549977583721430917504336862405632505634347582700790648260229882367589511529333196889991415571037162251079470883125563973177159893597693060692480903557810466600968738224967060098795164528225753499415370332297889987703268230552469985239904718936973608768745736386450777980627854771880367436058766623808613922510610690935449048850323217761606557949201040355820200098739635816153451937116065856376154853614917581597866964238843352202912862341003085744572370202183494171354518637184817270867402357745211766352970259829759969135000454954989668018706042389855422084949970261493298110517766410088336499801631000746766210706289536283503766064551690627236582611557694517195359931462541623793079971074878757352866519775791649700108769954366784809582635636027163991870782659353308720146206768354465532855292901942700679997952917983194274506812568163150127237159542644706035213917117106026353821080283469669409571245748236181926741961150470440237039670740785114015135710772741004702288012217913148273896648633750643454648398960011576878343809233703360145605045083873195445496200988578718298996875994160870552262631887543895019907877093617445679307224769374604082044311103888894502861273693808431854959904931311362062940596420446627532104404584397504575326994487016327506816679223580049784776770267533665861498219036546401972135898888256055943885201920583599193171435410071810621055818656450227964870989883093394275716884945436970470512077319020843152554255586002655348769056657150713345877157364765031597026439675050493983403868671187515042965691180511135257539991454164693572838872712981524200792433461519008711725789980754185984718418467426795448939100234538007304715626805674350034694982838638224435984953710827342757521884580569787320891684079068321717399054913318695728535793455090606935531702181009688727749628311894590890139261590320892554277705731830113260149308710335391053820045090043011664855909848066709268347140190092055966228955259115157769210750505830240703442215269313642623049555301470399417999097246186622546452184149813738068401579481375364255110657700909004126122878768159132346646741280195005531313060015677386524955183933802899148827190819334725693447340668963582493506082246309064326539995263993954825361638091330484157163139557866654954454100830635734763892573447080333507098424487290353554697060337940535014109082060436908376143138413126552116061352816216493389781339619895008648530923109305381864869293483138662951066980411657863557128556481753854145077786148180425345662769826774724070010258362711803342866821844369008580433124106070588430495226948596342602639011301915111757463002924136438061861889058495090501478710157960560910144872492594791857953777254541034542949560673672050913537130359431784093140078476221692624035507051742952154964590662435937342574800312367629785476890485826221075898723756077807829831709857330077006632713426038561314182899349477313252147588081496732025094812105842987068526186080054013122081366687056211074830371705618071442878215605786612318772707015248495946667295971493852476236770024612107847437487023158498971190603530998354626312400036207218594111081162371575279247250700754127470755010839626192150335450500004783243683743894907719005890893439015450847038811854223615837488881580640643921111917549681489590129500959774283747667712097995371992494025771540532497535667226421449302613657287794724735870652425443941467230358747415644194602967887284339489353708166691144540494173174748746003785030628351576485167030040964270596022342485430886899376644317183746932089435928668953190126306503525438634369825275505311491481202931319990243840527150726271444342453596122498918484022499004262676370114941375848147346765099620773622848858591284769442728973287044028485681727553942317804241374324348805768977829263857197580653721233190058681678698352289978009293338971452420294955921694136661046489655041353016047393685219982808313028726465749135053550515935523553360656476949901066579500340674463954915598864614701600094113476388603025109573719357131147395701055583102589586654349481171206797644149349822496591373935798204516469032412563909730199407426532820446111604027220881896147579688018051397470078791097182937375792284157022208247905248180166175134913408849930023918478247008507371276208814949835789681808373825499374800174656642063601230022403321217364970993037288911255072537043821526704767503861197473896338782947869908892758478111794916465884875843652917627593572258049473759331693439729350745844978972437508034598999105566122611265902588047652726206676552499562970181357070354158690155913928764492909337517989568654009189419160363807386314851592351665002252748016113910077864676245690177509728527855300000133243507432373632579598325638193324689099497309713114972911695008381895686420956287920312669038606291031819433274039864115378023871663777364293707409138052340239464126074860264274129688602508604971663468006578501856603171450139677780644699320445640895026990389947749148924635111451855048688651424420251953856679168841754247499426990644523519015179870198638678616028720974620046764523427982040011768809777114637588465131109778606039498417539599548990987617425056539458980339424507482713875578321781742253179676303948656756969394171041760477733288115277602401126878586641343545729964072912645015581803298736439943461557151712605387080796742392225810509036957045882132820838341222390153970080752438499253546720252127001160765679530170584627105698265256604648963357151990075739048379055655387257144509229318352587183829117584832137992421083475536843428004518204501739515373190488995801413571139585198354284987537868995668688380385922284841434466592728906762480779272021055381677075993424377454042670274419809541984369743415966687591752501390332686862867916950682461014308839219833697075375334856840272154094696149675638553037656273215225267956488009291077050953406327170869219113396101798433214764509448328247076481561400233799996703730395906309019135682936847649474009852270674710191956670641785424309805024567568750634421391828795713567746639904541333357729059325293439248448663333587694169716599087293256407088532564841654182229297471720459266923083647187023817967073679779404977673323336078091145661825765873965776016740336226538907166169928459845325333555992889767970813834389427411032516600290387786416454365095532391259807447411587556946774974028488821194000572564323358966576533698109635246341445389684703738207661269310659924687522648448396563948497293289162926483996393366558935505856734111611426082112144160247650727123580522262882878497830840654400442029777898361816640589523105164256482206856776737751925801421631539520288712044749791670299437585397923358489445186782038143930807341058009441137277101001764243229125118675739230710622900600542194500775812332307848486292132986225392192910913005400790827540056734383665026598705338522244391232638340678718909149186618542148844335945850663669457887702343069858525746299454106869518568210531031750544526060052085830502991530864967410619743754670011918239924790538942730586340342545093695057246187265146361089712931543134289594468526279371105127760616314757498503639525851588539449968217642129245933184287475616148953351389467852249791484927261832113680883143838279698180751062491206847702922456021230915124837355095963218344332998893231069005340271714461469257660833798324477346190206885774918450724728077026627520065442729443509876336960515248042258575098244453504363479016372954372821158700817061571556579592802329270618823743504116015590930681968342308604614016130750744678062216093829342581881562133951945291771205449885847125653222602103873693174933110908078610402558209146539202490964241900498537286438821758598279639469420174100039205895487043407184865644477454106262692900425677860798087254166114532682328231800243664267727649471696537054721537495721779968257343170449936250650767750977972705945417977526468381183288082369724620600812214285484794005785366097044265406187012235946962148499697144259397532063458561365645508068711886289544260405608871537230577141488530385626598922106620828311093241537418587203835068580698707545251398218051399275097982914804090785015496630697781955217659818958513474171756185739644496118484786787441452309094723296699496708391342257495607984783358305728540799951443267736656211631077994251666454272826583457731877022710756424489175681472635607062940560334340361421777432988125303381559683266746042620879068857566536465004316442387048703302395524484346879216024640892824819903011219951073687670369625297084660377029577045626254867198276565026287308163676765292394155213013139727557241559977590945165156555407765145430529542571702168570444074996270481062601337228860095252457916624581598863091115901688688030711668531847371766086652322812100135337086226992558611347230000088847933754597042319362426706812128280224502119184343244563185677272951331344521007077304536853102175718624031539149984008374281668071437470434543409257225386374948387924523765865166445001428399298067582742610483819609516417087324206281462277846467395096205732817701204720943115711634786225914707543974954360748030737868025359127509720723703136396321301613993818118919342546296790654971524734993637835495247119568374069403598570435243918810520078124515414183334931455772160120305072627084411498436538146496863257672414466802084093412449047384509910142946402341093907471135219175637462453097927656802986748095310805991361112110424959076122136930041178489861168046564648524023312730246776298053150968427022628312546135882217629264743144389116717910902088897688146114469813285107569490044810380247658944692956664791488173420639430579777682987462913096437537002621284778387057965297842501813179367043908507078856701953296486027800055536587745791488882441848984812532886814497024219534988754059373245119734257004967454606312945969808565450704787602234019296728181771569767086529597166552043945298325250868405006716612905048005837485535162360793201043635209584011064132743465956173895666864115278017842157376565922180448969481279657939047893433448309714739473153862864703551988078078148521059121459940883229986736506401575792899215484732596389861573161648352001899825091657958723072361038293211228843770448334971071863558730557691848086734224161995234526765703649164989766534650835467563127529000630551166025061688350623048805723736328951657543561399390396157867784053600334013391027487099241674519380780153881127241968925624363485463079146880898761369080377625080866165416892720051008252493954455883590346238129141448668401534144590671130157399450847615157629331554019505674089788486632193458728595690579916140233838910369037290346139062582602627840574524548926231217398534349717879834985414722032234622213843264260370001177438814750497760187564666092129278149645362104725178571134315100874629839126674821544074442304674713775086045452009908248311841629343864759000309348296727930009582977162096918499883964554270577427838563459790386687198119572505400595519308633618534903869038280142783159405322477841858333278239449590046660968491125251452456619762200806264477666056836326416253805668113309172837814375316185620247256162511110295276544472649792495033069240112404161644919278278524002844734814395032063328080049015254055458273304009031667086624861472374962736481682340456234459897973946388861147308915151660196523305901015178266775541479970357433070789528206724330643284720176282337887862400786413509701350849725889172928175050999535205615240330720984941933747797586460176966710016632793505206281671779478500722575063469002494045402565941301789010707432268438749925428906647457227279031568734892770892233291067733353790703724830586801594471291471602653804975287605253543128904654426341728365668807281144704930983143478727341234827833120656365002570338962339590903693444616007727673083689881339457407112535881267066423503660566161934818110600328255864126067382106597107548533273252539776446816336885461040647966299853437731730033662732111113420599194240759414327746748859432084262792683172342373472273089628138432455387199117063150924204933244981477222493884408873468022597175550782941449919408264896062676767002436012969989920264423095640376217869483486960814029399986909661865433361546666663027136066291612404463158371298607834410699562987683749242131806200642655697375975314641072784866112050859006651411354820409291063163384045175811586945079493751581096398720434958797211534999181028191250769331663969296793958789840116590203797654264438923832703461349576881893101574021528198032381784069777152411058240571321531638263059835316623258029701520664967549541432373509006366612575308149248036871716817165791439087436615041626900784897447014660377351296699677211993956602737673412731101458428243335496623658036106454435857271405579152861609551770633009915350324823028596347201662851358297497413413693658526364281462083176546866739401596086118985607191147027154391300905443830533430306732010013128505753100346069764737231998982388667574951880389872353865162036496009756109059847693240389975496501707384715655952696834438625702807669960798078509298074962387625661311479228560925180380373399763892425488856210610549716844970351498800233290261329737603971804475732330133094055310259894329485843440673571815072500397052635534671023172791293352328962783915953287678078038602707056291048799802536048047943582041911963047921755778298144073938645211374475093691579228705944707611270494548457140994449964994837422296427034870198713983591076642137826977191027367663876402334329601181230221499374146196712384831750166292187122065127027606489108380093638926134217817048797465157990370671101648222260475479029612870027500484328142542014074125379898203742910683859611334073849773319350265080001866557975862556589369643123868198242851450662799108447793658219947690327557264892733105031962946860058659005796110845433458536254912523633212494263919493755293838696796878886205768593024515476048375363131652452932206598098387255401106063076444483828862335572287830672355233780862215738794268839661726406168318533697479791700858481443583160078146046341501427924649994999016317777023483833840489518811005384964356383019854858008311880734423557646817089139007548594841579298256842731045541965641516436409833420454846833836342669697111116739421684267053518280543298672020456660762313036385418343085771508758533109000095732336761840274298548706013572456541821832499645876714030293305610672097451467515410620904355819422119162678368013588908009276518200213564479367139847102268079759136509020030241475976886221157415651758972427177819366759115821297515479501137219280708661169505939311623959393714304552990204853946857801802279501721642141780949899388754258269737309351079188859100597645467326280456304114531005986969225141731531377055825660587474395576433103810748159659948097690685946986628763763244419386577441305658118851170363349666199166451513787289187960180323282855301115137664078936452469288820999042653514702795381716399808208234485543992468663669736179422274364991687967117561631604023703906456384971765586128424821764185254321218120677095517839806158397633969454207831122405583325172526661587064863708993391193163174887809622552693457274687943270832314775797298008413031200758880142527276836549093662115434848162916357034783532376001205646426349997254034363931409173631652756579348079552599442267966604037603566698910205623435579256209776622854706956275376075938343731250675017566881413532286765663288273389231086286113776833266140780872092363019814734271285282952095348280211847965069238303811535294534068876297501110651579614003845481492042763969743501807945719586467275813990243287348540414186855497788301322224140547425639374400603181430350806594740297997153147574531778581174735430260207542178458374796155202570374183612221756445275675082922171291525349732347310535683088996899037497319244828193949449414240762183539683101829572011451894120034696522344134811451216293054923164120054841263675634527401345091544030004576474533642524060915428136940544158859432463992372335439291208919494814311648443830770147862756990319687366416557887104953083208670122948344925367808434773212349043511893181807164630965218880757056039382127800051773694873187193891118705612049054385237906574804202449074923801609590058196801697552806066641242310787520675623429219816969747744055873615465756818795024115272417170657886363914685867433071244098888955362895190654214782839591113555694310180785935556791757080845611617873852281422634701271231838166690573441258723325115275145001402035372948333988689119519502560699466904311376204835960667072081765231174008106239507398502305085511718413655281896853408683633714332562180596308744172746334675308944688104527409240054389046553366260026063176394098543329910285137855538377805649925098094663850290032407547978628421544944632844958008269740246421415159313614649886150751523956432484177399848261986821856354803267847728982231928500677172829715995811227917011491587593016773253905199618323331433443751410281512849616781634777644623855409081080068552682246811501895250784216073972267403947158005434595615086296308247183002525691653050375939993367473305054883426378481733575993451164781933366382862390438263636206750156698975902572577992938409259976214610351799220308438255335083247420918817803308147784876036559888195098548687527037688813955361815114708384574705402655104814293607838944225389865811585819942128357752693291649466784908624616295525997384326474538576482826922450435761245431000000176271955022883016166024391590412987752883630007077023008674316866780045630445471087001771330833612592199981497137527938070539950729207151090111918806198818038431669408170583431692414044318836463863286239265779761358959797234113311759555278802062141185507556423142353634370833216700005852201394653418895527058659019866802181441923220082362950494674031881112447249674942082492610964945119518294403230065535082595353291236908417447414535850513047433703287744542693591702936041012589152504953324176555649413080383624620234925404261466309047686531719522830550779846458984666131724963288691695136673414992958012040208931525113614730302627322066922966523249498109092226468851689016822441128448891774936553234404785504431322783906640100747590722702160570626381218404744819315579800332489724872104260679138965589158169101521491344494309414698175989027015543078451670873588385973233317751910732459392840560943578256077323493326695160972268352465943164922275079057683125873625913905888887266991505249762691825299931429655191764739594140520544832027034461204442571188454516121041504217203689492701114045823474997690521127349302036368170107229407356158058125998384014524024087617602533659973094998593972586680416607220517233178375690394461770322063712216000980129834179917113095838548277120412638991492678545528686594014475632399854099646362350175275260181043003350028343473596200449084324111646913236419664951494201807908767916518177862934620683301611239031169964102985993880650147386848391414510188587896721431836206007875581612826987318310141277933297445310244392109345919180038870588384006248482818913493069837093108595214989542380995775752360402612469959975808769510643404532261723578678541217862932111287725564199148712402824804317985963970636430480589181315796557268241484797645425730716290845326286029970658704902259567125332017616957800232313402464168978056535153722771422765949146723577330245891524220907222740891270695970912356159241331703076803533222455875254498916789980036724105710579805552710486614864473363626157378417985645364579133472794317820436720012945437516914589472439371648213619873692125897083461831540392436794013769521054367698538873453609911428963887870977326123466933315052210043555528565671282645054365713779126857555722266312393495739518312251720684776542470346697726001557290603365871453897022531344997142261848406185874430810712645408522814799915197676428173366272889402612263940757760194929675179768063314198148161454975855933806908046543806146039535938811069511263593256792119446551110450580950881353774802845278388580926710688437812507398619890984797694602857744389738859252299901044036841576904230408686034116363679801406484234976382495575819331247790646903073989110108257256395407598493348228449607866581242484171683189244641620180185799879426038312526254295596760579884522396023599922303841474729200544476491052893835594650169917063553311272787026242289448089583060287538717252249733962842888669611324550662944769178650550627152163807953381020206160941722311644662188706499427242012690606991085672326516687482317702141898095333896548607632701320922960575629501309350458779593316560601347082266845776096921325846366803547342227931927400253315477081333510579746484085919392651733745400711602243454022937730082943069074856235481067688569752371156202676421520828320929893562262508182517266913532273636828602827617568905546012728317903062486018757941589092704392879036511017563474538855491044973690713849731752985262493649392264288904812838302982638845559982445795623305389526014447486974716570565188313587473893309163688094256012686962999120388621333339556221449709082783946162095312859975513504102395290682806864448859892746089862904131617088959818967451286963923949950691822046270641678894534215439048833389293866935522979606853367770543449312478515190019451297598127954357990584008058691223582955559513294519279392388858754081463277434176505263343164437271277647855471613517009555704811366737550474308790046641554666419456814599026502565059949299983695638240122147919752315334267864860088627589523964635078567189590133801400271851040202595007726263170635723724575050544607833405854686457222946814281411884596648845215708009936242259596364450416353079946646519870755952693815915974691023392284572865523083714547698873152212279578776288335945457015832396242316943096590595373445009949925365200417336278349798572277567662527998916133851601062203383379939375721881484915880236103733762310929775665983500131600846233217746795364596398254543795852173337683798889128523068783017592639221937718454761472404736332997816760289861288346169782147889189643658334387631778914866206729029511735635111032069523750020879507716708076131853837937010268345374655663124859534901498181050647074880329749824874779800327639981679174273029952888185386311957470987827185469707888344770724521159740661389021920597316094036565667301525982855094647541474659995776890270947498311620441277881825874368032436680148068537630043276986795882190981959930309563561317071226659953638657364286450300850490417239769606386772690338309190730588719696262113827639011357121273630833571065297898090667406999089335578452807214353719845625543145265870080820875321886318851227138836476891373749118646808800375539046586225857295107247783888086945396473577975337574277941388866515049460246192990916179913387558070678064922917398700971428968017672464515219195662283285202368159770054285355943033343217666982156322111557409112467589234318344918441645280532805101152805971089783012231772687066146369472180999930823544282171052983221197451094915731401028470855476704763100719579883017495878825130942831333363064659917970911102865572881255821006975135967703659599234738578525568832014416468592974400000381461672756861147632513270006409203168256719744727901759710203751180148230801692620081577395846136588672371819892386021133737745665666922719437019414987257998846085286467850501829643586067909321910847477459704092047333783025840616086402220510359051270962469227053829249704992226972676486829084137212473373155168302156389750509685897513841677310885461867472521973752990095412715122214793969931802147161251760491587292138345461458315543063232440495990786345209665370200759813898298382201704017821241409018973686057390222652930822071673954217298674991788439749224040752655404673245016577517344074513910102808615415595444613919461956652101343739233694448473297420510066104197143304682609579156599431506451980253783834348111202327739523242841796786533548485243632438577459678648537392588435394004169332682394820570792646008882980584073740436794226275299841341870918373583903419587740756615850196759778268915244526653818280135321851839316100624429399292693860170991319045937213720148992666163183420638510716969609253777866177841586801951140544260546697696108497537210622086643384454577854394105283665494637262589778468598776167370114118911414372954054704019227023377320861085102237238978367564733117718463387321290527913401592504995998014608329865683538756309756744798942915924215848523622854972749982774595999596067815905709071779426871409154758117093847235156517549355106427453496978135509746743160443098316131046671535774439481288482646548617080492022867392506632962110805416181695112379204353689778194514951973289691301264155550067649766254699802818957233108092855336031639973357432274067288836540792671012964342857193487451560710749710793850082983452791477413404039552386184964178946987892866776865151824792834239583769050799050588650621601943305128461540040898651357167472405213581959227967712776485918336552014986789117503076820806681424237389774037440060873753118488591854460877071341343697718453899402587563102346275990437578609160193230097597280923167465067697965043777852316489801372445273279561598008627347667623420212818231495893328182138691339350211072506079141078890760380219078330037120940700268939958368210251893610058930227737899041132966741276540135403812973077058831192812126954346814994912314202307264763673761294593918303572890494168040210476891339270150519417286712844690193458587419071882950058501824521905748764336864234667123371670753676089666639463446935756585858888966666146523064426283956393675370622522229501531658124968197514663982728195890435213887095692392661485188943383185139425332197114309775971143015062599610947370063268149697166798565671937066243668879823059166791891413482901009557285291730581422177707422818723732560720431086372637725936351532244742514231700727328994634648394559143919587576785973530007692747291423643108931236718089215252540233682569113868916027255893645241832594491726787275047644721560453740493890567654769436776084021330268051489175030486337672441855147571132251480534218240552083301139083353056732654429954105916976044686701815967179983711130943870383539064274081215882771153590435171911469314347012100791082488904458002989590809706121928231498810508592789661533125348662329440761519663109899886337500259851632960410583936650189747972902496225943896163466654313873009502366887833966026678259530465081764385537058319054161718442542735993257469130045140973502115738634667367163867121492817471787834219499136493083374609022141621267938212569899097433083199537310445773994115173502685829477026836691446839186986391002218398515380964332677191600098056412333064964661874674772448677020828559013818439958779335158865075622303519322466803096268895068116960559782413088578576163613082118562780740614532313229401574020920819210853318164240303411088161672142792978821079490701474040631563151524816146983568455859163360951014290766633569539202255369240863913357670733283783442791703052663234089732083019932834624478028995309104189992356394159728519343004229023604493560477463162197304112851753603346636336173693949297869833371000181880964383316661094722800791737091256708105438760230415258636563716656429373439980002469661125742962653827818190656685283916641750652900043266268394054499564006536936652272529776999041259403843053482353877223550813540038098512217465942036349204633182306515418219084485762991117336942277493289910089414903433186086015967120626050534697222410703238906873704633837290799153502232265568488661920788173238965113153362397657131048160546496801562521851167708244022621895835965452480939254560574264207445415532734131488111671022480735632771218596696836943982159555353773677693935204132324503187878605474689508756847549429148403490503243262030695541207638510890669297173911300748687808867284989309200671702254318663635557234032958741598429522795411079974715011342865766292584782790505075400266652531715633237921065169186775008116606926301404097114658644133832560569801764933727070911344085665923413800421908290605404798775306714603971308298545822344914564289316714691791245103462846059889779095602914140210260662597246056788366807128122820542899283554844948143663717807249036352344768753255577393306457928103061321622647444667757472796526397014016072514913799230247866629319538197996525617464465364901399601247105006888505580400711627747984504519972843720030494198490121779700769828288448266333841999974278270726589754730718790570699174691648978409566848454895647595907515084614354884004335489875147132409251003074205571743742965136985597379545526715297174349458604997170629848615631673397649472682951839775862858999125430066207556113590541067096864229509222509383582177402663634852004333426596214504604633125901336186156307918877737722844306393204917984832954861219088605589612973874011199163726024828688313317173782814895521382720119519061461438464482337260486285058898301003622184775690888524611912429080690452648556115397166668989186356398730630150648587081749533002566418935379199799200424632872973161383466888451094199837944466904137947036700202126794450553788668920293041898104243278650996274615348779026555400011236253778908919918024036211278765310456221305304367297500091739335931828997532544235026058031365769535947961058096113482713452963793040403113519697938992870340197718739723095590075443702181726287941111592004019322832128825054081693945137954262131301956687583713347011513524060880883719546040331714298572537816772939702837160395864391574378355630416191436698024021672386293088416457795523049688176778781395766949858211174010974517434876748776499792525212402977560483921454072226446205814736170765765224875669590853628326625472406904055038987373762738929865280567081741299145145330871169595836637538551404479673928355892966143670957965246819993638372276029269334884443426267003829460299076187501500395549205405058324943844802648840513612733044453773306375393902286338285136162517923865416161484968365044377634775617012906191427450967629999426496751707300749127246735754209756633770947803854185022672253020502013712561877215335705755901181605319615259980934675688689630296634988556085171825715502740251861759044228302372230274550141433041993525640477732873524993265492456754863467295154000802686213483371300067386402150732612560395568238292196452673323183045775608481610443157291195227344913304437158820086292517467276635115063687074231602927323636971269342990496956134054124858061266988634188469727961396911812181869448861910774950145629435839174396512194389693683521609923431340407961401722757601730398850067408664774846686378906939210114992783615527030324315601083510577888344133748612894668777228381406828813839628818094300322381303464848123977508395115286487747759357414785222114969404068060463980962064659000877109849779112979389741374658786180058794126699435865821285818278329577880513411192707767784551866928821898165040118807824923224740373435923048844175068223853302915443437010127233008573767044438499278348025248006186432614676478302496960733563062582047043308626378540023534950200890151834574601209198557174544225842576301842415156327859273061111112141836657922884420131874740956794872419198303474721708072954879609755020088520673317138935431278725387432004949999680135434399227119070289123027640999447169229705204836204085311234006204048866259345723684458904072633606071565433717837895261387674817872982774355716788634427255799187311186700303161433193207740472140735588307849206566755700315966678866955307038406652697281343051239195867454564591547591165189182278234942223266625612100061063070575749081080711282003340976202131274469098344232821566862740524938653321376285483397109344581624030152491829772381151421139540763891351687290315809804928915040483182978262881456423903695527068474051045124431777910262872454509236829212988953431406234915238502837730989029331994225988447043928952702831835201909444800339462334719664003855373755273429144099956590495326848883193944648138810335391562061025424045650848585087673350012940078465356762348750097610353101018832478329123579073037679355136681243432604191652937913360268314085426645684122117566940246690585785766647690373934257334358688029997576223997165269241067141885838314277788560180486710954999248082109605309975660134282927525393387044020789873222374158607890905184297335313017976236667164571633482048816968611577628756412509377537692232297271680066048408019409589288271888870614053606069456094432071335441788184749307360036304772396473193735808972109693634963500307158891260313578504144023967198958485900169443446275089167063716533361342929160541873220273301708592565768751860997585563138728868947004404657338309609580701871181500123244595958493758554642009557685032456678839873873941269240479272471057088687699182074057627956875191202916900263965468173289658295084021842573444907421439333778447183556555149442248449110768504378360394184166969874678013760535346183642692194665432210983366388744424439181055976425680596525347144286290212655098239936213675051893536913679114511597456990011559116441919431317263957582439510692670081186003206871904835082349293284769738317260455211991694300169541322986886831932936467270862527530113554982820744950772519972201604044075988002667595730915672716410693028130917674345746807652933938060705850510039093470186206195878987268677609940226057844739034991220467853200823337695807192679693952882342033018856555907120826733182605113576976026373858817748017119745520962694055249807832414214223628671592918964658765901899023914844964590528631747827751851500006152089987839662026504157008774643403700453167866073408605566894690737524464972503385471821122771723075586696590303901730676116174248476571698909566542565129722846223633263017637139645531184956386377966996827600465733408207077715259485798652229139133985066934507914458636048370682195826446290056031001881466451808769797644303078824536766635332840049398624936230231059388629302173090323609711128336614992358967570023847559855858642781627142240233357091355173283826314403704017304217566922104924045533378340751947755191915457530885955654729149990132885697910992500817813795402189103374896850692146692275451096680692996037067354876795033945815142927871426161034517414419213477303328312707084009007850292866068499958963106310528693220985985123380556130435285694254729524348116567218833391085987405087828243946378392504566153449822361394096698674838978614615003178650471008315720232903262584251017032919207804653510553775292295849119072729852988326425747539899483123475447172086256817080974037027959534280093658630376120328576726392623932063682583466163054658430694156470423293096528974146140010199326188267508086405929640433399305202460968649557049901611877424669094324273223842769767122262963240062711077599702399275760410321967869004631949307720438407835913220880357671662553478323672210749474771435079780586048555792907196673898717141324679494485992851965667691783524264471139295312596504616959168967502185506140267661700937677954331211242392106264714589652295608982162818541422957232959815339965205427681365056911512010448825124027558911035406446741710666808609925467034601451667295881083345234442979533584720049605141461846104951707631903037755404272149910457339326289434695725449190350007836518303879543297145047566040597487702459604197263604254570203600103913498896078199340007964495180432667264072096476848954796103150863580475832325775823492326335478841460116283527298868923651542028581290283439662377360972550203863048997440838415980311508613588483303723965037292546305171683056140034291060321103383095960647033481160727531404468770588311603134094952046136871218003307744122076474115318586924848824305630810501275515394832441333357492514720151572151865269449056834184623255643355132556103148273165149599452791867667971531081375648648882772302903980136085275661074615508510454736733684359123791176551638089886360883627658688500475863713735568340651375143317902909957202557470127188291948205565744162758067322692010348296841942223516305210070292354845199870545698078447819879920213594058455475311916383590234486934546198140552223259271866996897934095715969908368009236125733862523448508826136085384402378126346305003672805228237803738109635752724526328947959774214055154968441965053332668995790398676949989680898559537545487511681121905043185679975218876919939168003708172256864740221202434629969973658101047738453026313562601832415107179422626592587485713745764877205670478119442818077787366529069944910723477664247991385894438180214335024188371887410343610148655332513460321340158780846815103685571976551120983728793928805224504238334237577224551228255574054372706878111831746366012708775173411374553174185146504677246831743517192565860943005699733360284803861791147085308878640666243149434868871676424597373200015858343344135661406229724331316005099019086710795072036956724305085424854302787939152139373194796175791306877876618135782551196283712011917992668958917758573199392638417604874015272331670944897940833252174523171911129295518089487346905174562830865971026363178888384771111158806676479759500723406149477086572020706755865949906877057816278822357878521522021193874546080407982311420603257106689925718795471648724215200222767515287950622678348974747982608554820532918322468048178248845427973125658409115166037054738455412760769800737650115154678636734686566786552212834527061884544016039442331038177125603734499396342736071395173810682883918750508788878885272163247181916243577448518626918829316174470547239951229068276407325462836283198927308248976560255979018578639203266058237739590457925417257997476468040112062438854728492712995236752578443158883677229384075029845691739082401045274299077200810402808048513286532480029803117916680761867841337550504970690281658998436271926400678600655998631650855763037732721803713856455960695148241601697112254441186931545753875003915993454774128055372977636216092092584304130157004217806529181159650749010602390163860821076500101142444042063912596121776508239365469060310031344872134801906640804223408048918547748660074913672236128187971058669187784918832690698095479432230278513252084627041105423119653817653841242169797654515188532185537905777175411385271501308518194569103294995302188211737251820266485744724210745682258211133896921411621373355416316723356348699761470989818949538355054081641606744605556029276450677979768339516096599131794579902715247724806687334385417403842783710548885444032442066910294055152537580678241923128085281490717477884204642695167034063771430280503992646491570238527029655187839473269407441247700601851112719262677196806057719680219795115890302170263751109384419181285318554170659572811704283592938961016799025971091530993045177041536461205527322422148834574247529483235556128481313037617785267529570809364367713878824229206633346257446656150462057664131682562120588845613167263039391026224562689862871702021794731673437841213097152769492742549635356504940492159553145334479639665093852437227906508512653824200244125201468127337148490462943035452943617968025762797545755820231339594294475369864431732853169916012036627827844382789154738194066860660122210068433191519524815544882157307116954163810967601265605392044068293733208901078786829869499989414914357266419287029567980119291677820188808334907337540208015775672831251378010125648218597221282950204110789407052367547893057368616365523378122054031714876201562634102987727101178166339767181490272157398283262974122578133177042270344088739427330955457121886792116145195322320230757188790187509821730276127438718624756758840175415480461220193584604372946667341748729909053495154123989056910998079192966032524300537360556175408972644612515016965277538439295204541527512117945652960959964791539622853572943652908895914496492825111354804951216153292084463209504335230097271307782352048511640505080453736631921970266081885958886043344035648078299310765453191089116080073456622736704222649283048103296275183133173348942462804382595621075877642155530315522898450166436198325638491641856210518523753061005989417103951051017527803138466685445840763524297318588071846213430170035640306410096837836312740592164514431756126835265242040150103751383071762924666185261965978007248738062716364346748038869511795873163933138762757021485831034440839838708070811552396887977801671857144884811776979793697569857778416310058622927606567607148361018096242762747368571592923783183320091961458157367854201740541896709516545925073146284176395633258092540747042964602490651377423163951301193879172465587475217216980180120154260607531870598434333633807759621161836593963685646033610709910701499395819523305801319110865307374332482110385429261725487072482955943831950014187176218287272473991421997605630587886852694295044985560375993128221530109337802634108600334212310072331258894325956930830892774511431195366213378174077624656443424930309873165340066567397386888294436682301013832940302038768828401847219766130449148579233263934395000867726416482815863905211080705705404132163866194071467537671047249535355401611688535725251275296722467630423204373901741325818254672843727571452186522417454868166930657461765349296918298933822078540273370185012191428303902748591416084224331451199740543742560426875677147240745876845650383732116641199129029915100248285204810625527607844681432378051675021378044706110138547904834728959532818909476218760376502172070927139527164259971889137451174291894616707670557043829473209112783126685680519371277927400049464419784999804793373267414886399099036045087497951752940665895810208537036284222787374933154605218472763230525500024058300322314817611824036154276464123646257267863949083898061453559169179828130440841144230759567384745306941113016752793320837865033187750299395482019581788861090749726782308180205868274010663178041176979415675312989247803972583143112567815062833036648820975106334115307680535601124406559624244200402170388583312827050217794045437952327896562020917352831732141736532646726871034812822779363207117196906641537533969904597661120045925584681914081558305038105549652141267350130532802045320892498327647671057812061113833523811851527128046017117981220352431923209890878063029285799865063442965085836941128060143973994664983027254538918049052391051732464642930915801052697690860143678089409787572492635398729460582208102989112575516009308378234944089164358074167565516367073705129969033831263396654329742952555690878002760051659148406936205421071260335559598824856850683656389970569931312775575152243551401515891560995697113065891559585582520190908553429099336440624177675689769106304410869277338673944672676607127544593630964055980178294183483216835131435043548505847948291287778281170121952143943219707152605704529818222649423649730625428916873104585075849571245590691746318794084222725783616247267715228034975441820493211833383572029177052594942506804394479341980683786329814528849134625955895109119328770691745247288865128118542906844509370962255492950174192895580293271492882489956455049068147159433017447101414844196853351486898377814490651162035647379426253127163973289160441324667798509249225971517153971669791518054868015823933875764000345285242732264175919453898592035729305195631801450901722205377038651556707788475094997536025273110134666077547201778325888130111070839095205651858105350021489581575856025695117724195879897493041406876084138452140190850715401502063196307838646869856630767228242657332983888076766839700182119901453989453451248306890215073039535925834786127066732599383114872028230404367729600753989160049404818370395557928660327022733482183257064949407289414809780632326720390476366371420874905997362990735560581558332628000406099564493274733614134691398875219855901195685097123337738600852292616451011311120561437459290625143042236078196563881137918536844628215276909904073779498166260131148164474687912334662364117219599982611868213132946627360276982564000504624997704730293332908154403030534910985579854866162881909757930549418909009984893199856446178924921162523274285042619185820144633626861545199232278073580413459629720350469604304153134460899846477625744318951072308206340872769384823801906301924625626330192936525567107070603365744615974460230148072818133373739584419612695742818204871581286818452552118861956467325364917488225131312710783050563076966946672019894233521876759490507702246000406604151242208148307716270338421093778456498908416989451495030504125172912472170612256745248754453956260530752478875222101631026693449475278175507697679779154688935587983325070076354633111741151931963663245361588118479002535830815573263540489932465113042904720936437449611187394772959764104721242103750718871840555494373417375722579886030161739250545322383521084052881009524483913763891023593518677355382543783925528846041101359530633548517396846276528773940284259061944071593156902556082073086363655180169216164305518235523916147984955483291306086527099931931145483423056775037944050270623350964058984618868438553936430441895902848320996770365672186458124691535235496469818766936252974580950891512357982580028662877135222547831526900419847300141334590249451591868060983595489098911427211182906365542717520406179786613821378971978413837739546240453648554071650556891989030766964129846256672413778572215026897997132699223127731419530413413636045827481757350950230334045217959366262291951419208541054326186992379565627162211543082446356640274688614202902097545878667820532595628221179812309364526602285056039430585652657777446134547112482018525351955172882833234551751255913577626768657098671194536063036930296631452767419170015499757600635918690733583383885150149704069993169813299094208859483410372017841935163844822423733697556935246351052478569255424364033703563025473422711952442894818920069753385866608747038916911245095568213503404635116602026606177045322374487597727341651867789494209362091672658295769279159026992422276739809837340587502075381009436027525200286040597106175937009774163474502162387023473629413417721966908282022845553353487208322211473730047219128890744124098725742864528628782066181680430284480548861488422234294426480896883903116108547241589507242063739658172141900586708387607437780123142772363388106032266272014530052264850136115026039909728277785172984982486716864936295398830459735057079239274225113269982892607036614026272229802791020266342354436001943661953919497092014054658315762421929435048239919144432346763168802694890917024792387667775481022814922826551787763354393612612947467986582985332989758437376859717437134892096222984991424146435962886598038667489370049761227118430931604311910314693850075635830152637227311443678159299324505236149038428989390986053098972518929497623189587637339668981506157428569199098772563819254278438587483425285615230954485805689356505782111296602840160516082670089634612188887943548124670891655749567520553949898422971310218620935325614985247087849449418390084325402308879335790697190889729385913327169346819318776381155455123811422111957609635713569245205009425171598996314077627720154865434006814997694987007594421836629877068782883421658164996266038196986620163731743993434132326917940910206701095599025589963748268882952506004639819502794479772174442296810779943182718076801009455611706825443545467839841076639741707329828471362291496960426968450449515653079459053931512706597386136139565966341893806367176663838924758646176235644553746954621341966895780311501447138670422745461639779882624715302960593479221350164077694309571670310748059689051019923625753541467502218403477709299581521275091119759621516359371160725524297236886870802232429623681524657888892267667953911513604804944736104066227433671064639741545969261435851639205506438250731638871029225419930127957537961403195245747976256268861108124224850795802792502315210590500219747660370046315377127435694449232358800839462258028836792440195636793367522250763602653525443696502634671191009108887638461212970908482853447510441637732610541077850778711157695075678271809585622204022815966359531452045860347523899551945486122275624007104257129719490049403909432589310189193418709786824400202172195225151530990558939606856728267417637764962327525446538545052805418514535405200596371676791214414445460119742227897337232875141207580211441645530851988841220809017965520468234129538771090359059374509200921894998124334876430642585585451019453135427142702329886757878439323741000059170676268814569726719144146915176596154105971061808868902153331078841795368898691729385744652738323066740691044067474942291304286262620759626171551302649183937842773927602863897402020948040605946739741036930065741088113133909998841147429820076405540905549635090737639525108708583344230004541172100282983818427646853521262388578976729001848040119491433524146619996327662950300292037596995513645103218577895235986073206107109956106273440601625029084791299012666032604645340360241291321455120968697886723556598817166303503808377984268721711457353115900739693444268639713276066774108454244469871036624522781542006272295135750792433615839538085157907620095482147478893849104791744652886685912044897881176795689770142516583130665222546545210697774871380345241782727237795435155743908019587970928049304818251247941573527529696542168846791128152530478056828248707056292316613877509486907246899102558167537333331807425176935101917436763969622166212708411681433237124344740030474372711788876157560880212063876201331921940208280194778722550472101048759143801436547079781024315914978943320722359312407183682422077039008908306716758672905553720963869910495353061556496699573391503595475128277687549907087949821334971171687169652761940282507619327193115936984923149800016544244257226290465494709462138313369877257291668022864845283716809974760530153636310707287567076893665107790883058810343426116952294199728776511904859162935775527394024975230788607111420017868029493132933096894046464867091683541400480443105137146325445690881276664632623003679930051352111598268019231654018413497162204173799690037602589339293811443563609354045615603386114865349525540091885823494140808666948049151530681954610389310659194745454206971842060540988309704102255741677070841108716864743837201750953544697483820250289035310363883319888043123588391523938275875147088209202921887136417169352651976272437951979473599211578081624144373409630058769610196095556866198799996014342154622904569943533436066347571982398364556108019868976968937303272339130175050023151261281239499576004207965956940622181270461291452262425815481554041041613920103959568568319380736970767956198691342824196291249023673906484052386584378362988970012880158583636906976046629107593798998763300298620424203263635235778249623009947622842000565433772528764797246435893705493000497803288580586014390854054482078503733400842413405983190263125560332101656565133255673165514804028321568724904911899190566210137234780571117238923580071306937262732613789061418363022252118427430792734588165294902905807445040261463126592018065721447055213443770791353437598424452615512394548036321370329149670997385799004708080818712496035999377314892429611435679451493439780112671505961065617681882647647544433482906272238475690226096972668246254212685145552888470644760684372709467769448402992536610189002598094626463186222033607986669437839928103660575857832388445153606959289038268692887737689198177068437074400224709465039549607186828649775104839671718294473226981564718782120939861899935353462370752787236522619967589640874973559450164523989897241977674397667167053198494931832527277327870531537005582792894420602104776165063396676709310782948623907428517925436673443696438497273059930096044663840973684715614103633602863351888692516338374552978655813874942202700473492253321076486896323494461957856701778718727408434424260425980895187658487910827295727329716157844505835946594050453614239356066894809656595258615763139881436459164461623692334527672683125664129441455227195868223993191306770760337479666698876203726133421184887148727391677814778887097294872917370154637591454481790337090980802116891692925123699791789057845318363009531394537834518305572049463220311558491686914079418083059040370029686614322999469708464015550261397887935386157993416070957197477638921789339658326767954908914236426026317407964161190207030193626558306641575540277316811959182074106969489921860607093305135957000483233586929896503653239308516646066028994743432571267290466063824458485494655120755636850852123267460535549115566301181048760122592695992671954738019129609514233456547272267260645733652449432799961200211767826899215484568438755009516222229945362326477455783674056672101617778083839550228325412443711304613706860673320907132669116237764522991572196592883957545152008322840266577103341263592496927082942295639759551470052697284029993268647857294493571799703410520290962545965555504196852191051104470210774477853549731464601700551585795936103142094565756477767570184686588480791623531190446991699292908911248134453732729423151128416038551370864260713230758027957219408753214932542549417943718724213067661604672544240995745170208906344288465093814116489688092597708144095317055091027249342023258544364820882754527021385956746577308084128438262719837660234887264045738865545540935651702411249989070744124863455045407726353626897036155287045175446354244017511046487887314903740689409094166617129296419535390828045793922753464213040113054602614452874880760982842551199360038886069702293407341085691678126985314996797942312233389506132432704377126145347144417457320843618969618433749166800467031893181801104755376699601525825367467505589008898814673389774012670882732908520137010411190059843502231873493221452036590804626495339541328063762742334315479449572748462323722854350110882432723927488931571959771574764597063879355894194706644886857815283509544469851828807647863714498921200243452031165363663857580741718138431669859428665550563992816316530501195683570027092198453375436498840362545844814517360371854497767488951604253849953881096665980245550504359787142892306472629034912028142096026226394005114909559156745709981257030584149064638088568499834956883467845930030324691888555406256178456055174692232360335942560723349229383145206307369326007111401106335292688787604045217457965986622205772775263800247040972940006653382897956196339258403583323847678381800097804153959639182438795851185768031736539991860704962897993921890392391906449524462788967325261133564934895839292524195063933857965760755410079160338204562993745260147309993840385943769459473574069847926314415938340833155404805416945477474094782346956789901434939205314256493757616277792604901975635151546753164226658244889069695871321147049360811086155060440820790190055685707583032246854963929652341823257429985681271083389685464948344416012928959532797120458085783878201830689755414243924028242157729848724935228012328158108709739694410614636355375347657000635426721031267392762724676537981553716168257116988276892006674686507009182316105010783820122773754938836439624566598592207465704647860248185200810898702085092260478447718528280814492093134625329008915401902217197844771247177730477764342489262610373122972563257426016806846940605663919641186649936019173922637552169932232746530063565423200372261860315427979213022152310722212724510898161901439245407396683610571466047569486300758926751319227092649549151593984526535643659316882072458064881157482647108881590267669053725968745813366537532809913565479923807053423948158735144809080936680188713462748334309792757768800580185659578399003726389734655373398771720192247759350659815411950606585126791604866439310818867953859427655578522167052685923630572363179194230360335873966338925386754291142511114059804952572146591124348865379708685000183778089172661921780933960489694051764700946898783822812797826411820900363898616372647569034717704926089790129323790029508825059242120303286733569014304278700889514540846053084922581163604510863931834746982899867896384899578813556876284934057197418989264754591940561337390562256142986805947736964202091319842551445211480079757886573116780197492216038105059633841869392525337920082157693450665116653789231532221708619493495552747631443605021587436641589928872460173409554552725506278522162407070217392045832072527438599470412556885537841088258212172948047979236564159290109081868319037091126366412004685175542036458412706553562561482430021448479901997514262539723987108037160605193297855545753698373007156107651079506194129818076937784479524857996357077894065827272742823300637011922148267190375779528884028557599702563586504479719473212130687445527452747371070937693715116581555492011793896718519691494372581320181057388695494162643654640589109312451258599879760606663256715626946945200526314742986810340464712460341217860453788806893957730807550782954190810596263665159463430752085645228252015673086652761656569145671503572180012694247344170692648351558620931937686548792066316501004571188338599380548766922144067389187843097526633204081526620299757572949811520583916425541313894062318177950266841658705363884573144689582028621307102095709189361945216255553330299014648208634358263680132356882725228925911009973760256029871842833652229967845232293117292488216425806118634196697045556636022067911719973980573563125850045409059246964676110786452725739191036890020193956145051249384234267594446484918727798623202751899192113963855398076429663750872864614946508509653647540272670129425220851007057470265565742672044272808523229880969171412277024384534675193878159391787886945305696133744474178308726681365398617924931473654071541066193247205116218758638244870846174258707484391598980160483310927336795436353213098818922636680515347686073116759120882130722570737531197125452879267173354593519194126027100804418973715565971301065062925502464985958816840046969692929870169958047064495051122384784221706514391060717342025165035579871640317957575566859012013387180453956215206789647682027959696399033597528623442000482279221966250726310549468329029405559058381654578061193411504854324586722249347159614376492185229924786568126099061174844288455160221727704345232647103330765158162598004518434736202295567482555368906629077955889199711141737107655051619635747050896717425780659080936023869024574911787637350805713439600237666063922306506511513701924378788307529387908616735118669699134023856868340901663715642430011120136417291170331792985607290912190331376418207059738338391062668431733050552379658853751312303459322231384995572103759387816442522378778482482240999752248166329792484751216553653390879890304859741124109399358465571489964208913074374464844949689384544108585290616017210567363406627697365653018426020867956503507331598341063351641531846565842057610447625406886817493408959943097700783963432573357727501152991913674240708803005316511503955944917436598592326782829201826020709611259170198008925399154632758106818323842192124690955948455813261157433755358173133445504672981589602487931766422186149437609514335009969042484816554003159558495945924715588292002721918296764480904436897136525442707233023725235110491492875683895164819145054854661363649430898143104965456686581332059519956831747925865938649230401151499651151804500240081222257742700398873256797075499434843889450815160560281013339734209166314596544786272773789546768205612052819359020115069402004493652817685816727850669903074169622770779542104472595662572002252727467085821402840496588254142272071499653845200874670221234322950423920144634086100240514310415736429028875916049475775138751867227435566279230507233535583320171923491027268455979122632074846221255778445496714421475989537482201097678450900483566206903687046499257602222278298462094451395262960165023441224917665957716638768340566286269873167752432911837026400300245507155899574161265532256098381379777341130949583554656496280521766413284524390610670457290914604578780710055899603321989703746195797315437834542120435387567647993476371642768856132190530043288346384557622338467832222200385815565582220943151781955084116509754375999591849894245997780824893261604764040702508696747459011550292529159260084320521674469122751709457724787177702491954479628724044812757327745322377002156270227920197364529881208871915472929895586414356122308705674773494659333406485767789124842447608744169002149299443774319647925709118863096412253568332733847237553608364456515825241305321336547983614818020318026284220207204363337140241051812937194139018314662517419194895935060717824527063850616386449331542361041160397970323490637509391638796564003377114432876791920571417635768246065507446095784373122067154432936213782559530897235943453790704246956166743730407578136528710917897375271923991358986091985546907575030827711605253996281921042734926071272714238382488575871257884596244341454460216242586198906683547139110218224892095937235539791493635390585584645493905792540716623087930871154082410106116514410507550379579182199275348905558633592794691447703203955162998995894399205989100444791108771729624922276353295612405908873519475420679271094298885300396875420221250515423620436628148619791596088655873868638743823283024101137677674148975121676002249438944783019533334385483704286267559813016663076704289616890330062614184566769042895223238387510965105062965623719240935092971116960920314344488395502125753418418662892561027866165107304715700603783230836847471504929084589553431098146066426763855158505893124352232069398994051027980434874687713731556104783960911596535844689978216707329447655802438792287506278003995513208225784899634203113935132138533178735908443975127342014442210478545770361654314382720423858087998608524210753976316961201038443608994400750476530514704889582037810123852367252208979739489215680868214078247726340213880479412967110409028103668022338300755608846424596852345019325212761711633446480239731136102846982500290850618396532043322080206565277416498340093014731224319929889956924675260256880059151415781349674097030393109070401218014339775268247344800935265851939787409687213352271485717640297010580036032449869912513389881366004088476348356652145077697621558316218752616325310786933284127047854933016877181374692798829783847096798854208635516909886650232049366885227485111346677200626336692860738179842609644487165001633788943076963668879475092580383881830716485641446436961805614109694410273070386583114420465108447465234780957082129824177620588619146007123437125866845586530225593651950626911300850342858935238068536833907571295459925012396242440611617972076245477690038113890950689723875777070227023399675012247543885597732808804366666579291671329916708368656506876784040710570321796164577198953398466667251292009457361828016114519392367069610365200782939266776297874554056723057106640693789482589618932898420270600444156752479947149268093254301533808087667963960592049194443476369246190065787206480228183921624994970913200961385857841285505249215816430989640143168144239213351811611383710534541156435991345697061519434871543728696330263210584572368196487441218351588001428307528040764017064743539828450177529441249734957133078597358568616464118922755345543553421350078193709227057660418690892961501676290991635662359242847593690869144499958249383540617789212768034256276570522200725521348858825154323126180592666005218319483598343459332229675575815497240365467893595225334936621216291832892011251055688363659390473778347153211230677824779475320754922477050551510504859959056855445970205566449965269804765021336906368007116337886115336579327290212646179877638897918720182616389547231645274739024745997916350477016426346859275132335580024074859585396508052959039314123400113008168349976937972261744161079664087965444746703895305621201920768558258389942883563347506601424949589029753495758858032752234120729018680141172551968935406212131798803078758204908967714717529233411877886274244289372295330526681209378863955799155158953061185412469316658918092009552298091127226872573255703830490356457806430365677424109932573054189722816037853539306121302716816908376855441245914952754657893294704569919130896766062168560055469620433167549200038890193175923147790138574709461892646991419847981836234760171229623508251254645534360183659279722146007998341102480511708022199684344225561380305383228294775255883530681578452199364004002525500057806643034357986980973690285865214356690748609769583601077640637155762322471804808676945720105680367592005321399858861945757489798391283014970541162696683036299586478885101129688497095013196911712342650614558496828551401386925541006647009136509903566345948471262429209918765881482269970918505159354304829764898729783057646900957631281265842871486440512567464133868026462216424374563515791345308969960675160006504039171926765103153856068962012909325335098746879165969202742453314409417291275363667080827071235151317257067322217020411669462610650732872044170582908525225276014203195851889194885124343964192995788668859877338237136104524708978609254707632288008991577045978936513596068386384919926583884615996706695419056630975680866813132884219216547082977428289791988878884966614041553191032192846528181446146499173673474203354789602161917426358730693292021836328174927489183727369334062251557545307381038082236049771455115693018207710835049879565544994833194444544550325828559042628257310856334547194615158161103793282799544154907359360104432677338423136892466983077936122897020274236032701857909699286987142859883224034198069309397319620431942359178310964212701796010735257366639089405038495056311750972452440279027321098641411929830817154720710187669173741082638795835659660769129178117894678999826191887037378301432691080359742732312775212094972926966899463873231247674889523232950790229211971165876272505462198250427248246290108174235862057027585486520882107086916723409013328954707007317847027195849875511709363089088149332277534314869794697445578342175560604798233880425796544515857570456787035781623500922565564300010935176292486494931764661000211404200818179843305744482696210196980188348444369222869325234502250474531927839306729993959902799203009964767754033149054786000297558851537569795106228359003157807114092671276548124851679251281864710601218964838137142789579201421105820191932273997072749971667761940242749796711084748989904630743126300974700052641654925269557193901938669165693832013942112487234409324093482764918299207600833603708263005457189676861316798865621334801414800624049000113627462284264867445322072155680585402568524141188959698164781213575586158514757940735701060570296236651646267366134041075442100480290458690947350478806511501144058093031215943682480359326069960411634451657498286717472019749723482553772613116915681252566047038567858947745202419107943809711766511198890249730516215537177883585100156733286816521959372601814068302401546747749905162415875619494987164742439686960898543085211106722154006788333499627234601088177773377359135205748440903501336908130020845607945479420301575560893094229497565300050708183989606327800285268932385132729232410371340140454069702338345852301353911482835818340856584202798099640566515453302995120810961329363469823355480565185955750177347765940176958831135784196913955294073176200487905420727839431802215129116554885884646346834972181899193768040619349801732505871237728090333657912870802479684782416059218152834955753151619583376335869835899208572147097578602692208308048429554633538780751658669150989786477698809559479077642851923549508417952304575554443682186879497071118119203151742668922934558242653091024123782234441760609183208244652802381822890361183746253088034139841275834057707471921488553387313142742429742743177371769509815905593438034018428195804767313126966352863085735637443614946668941358608718780639687164031870588526555990539279365667924679794561468864796073969463760302674490964048161388461599532902135317349821334836911348068208711685151954946949168071216321790664135221525857932928267101600843708781009975458301952214913066358248408699818805335833350020101295067093943133241418328118635226456924955641847079835147667515416924774116920937314863750719289567558155101371394160500872316670609676504873040294473288067678894351008098245526969907818220642445417481299824230373810078466414857411763418876663472592621948660736425201328342392939866675464835487536924698649260850756427781631011500426223788522971575149945492586030135974442157540960346168912587081008576779325147631706707675911709647803386057922129844259331568569325450849816194462348301925180829328095078228350978615123372219101568065252701108200942123001323445133238151546253172207946265230627361338979772144155213251461877232859390599823510305696625315426502165335833862457728174131269226590267381567508006244053991863986617890387942479454089453615594545141712285694018458185162678886686124520936991503324503885421003546543422574227236118801998201125962025951684498702421986400161240277089233960887749781651445324304057493198666240200080160137475055201284342371215024513678354115298524469155980334454548295645813707647797771597040847606897121278301170842138968478897482850315468749681212136919551340232652980319552743224485621743620330365732808013244178970578824157125342798087973351935734463743954446434840282456169576221771205049175747514912457284175231396855204571356107013358078700018526018508404641537849104349910833565011472764158377451138443155758997118702249198577335038436125508239117348969977657571342548117279658633736944671101196977339061571421424755596819559261003909994992862271029323250410559966930137871349953444216282290735856859338957318400890342419712935830576455099582705498069531644209219649527742937893142004012631212005906526034343402545446183541522835392270046484499594421343556814081472344871867640473517879392474239823149545785835553860890239210348283054567588370462440825807814871663744055416369526930414765626986658267478025681927324283206410379082881355094776354986591358072749045565680978535239950982068606876802783427020568684365542039507428318130148823458883242506282128868642030006231519924715551681356684149829786386922184815595879628530084449814711797801202129980915679751728409802173773489500602933361822363837012707361146772920898834970312950695333225987136238116713618974423733377155140363967544864459202974618172148589525219401527692495567717084220962702274482989651654954258274210200976083322141103103957020670518656620447834677565784941390955367680292625130824856919026486082459095153279111987786984742285595881127464825617979078943830209150491448250073828976277037803258292856385836711405318316940373103104552434692768814025446598236699162507403570029090991716271486043936923821719461840709974783108978068408149508809736876105500417416587127715006356286414975062528545354871322219958008408688898747190860635106040814391773444247872472971461629407819707709955491379857479951800628208736047666080846573464229397837789577177472780952348057356633306561903718768236113762090518889335513995772476482189050596402037483575538283451416993301069731614468862894045551615979539948702073488213964621935178080628012755445182983989247182461186351530367839002929744102412167095525265137732591161506037036302092857725287467344825996162364404830333924585423993177400596703423286189087246093841870491178023089865334730776510062748402495067698355400070694925036061598975234284241699771271554164018984717335222575660617329737051497924657130543511633192493198129483459720247296280420289801726438894567269158221100282972118901220101879945218477404392294278617543548447219137667162813743497244339173321153004040096717133471013730254263432681931215772225559945212330102807402032617664389268420084421396808508662041408635911297771117265479433988087132300457426555774154175709598367735453482477159994415976131317996690169361362419364253242394508803391734994235985111616692242484119291413081817356280045022142018649606036815987993736933683798978761199276864504581172633219210318589385911093788770166802974762502728173366834743711528223159199578597539194442429050024816988086436135673030818173837226346603003131094113150173531399708876658475326178035053050807414051909975437458533881544182243464370198300875426052401224172133228494008202555505220786527547811964607245152146504780850148148619523704698000282508432245080928249495050255695885968073422816012765506338988254003948874120300268051575814398246867313588794923295796894480163033527128180264803450377819813582961495920377270263404247276413143111599309880374920665070293391708092555920081175488371718416153846814358869564710386318278770767695958162584850178562017649906701529245717640605146841332607436369831233504372011926690436572637645422881054905114079030485561820035268597849845746225212904163041959873653811718743832231405799224582145085341366208903479219662907250270117136895717997705942449129003417554111851760702912238695788288157167841900334839510616818140082733889643695034276584837229580891940313038369785037521758708358339119269827704056707164688084032474948362808760348637327512482529782205245567907920632499843511419076965061465278252169848473586454059062417635528749055090017026331796172971581970624949314475343031655888711298647123428803865324634985895447663031907402484018887540120964900276829604203111283483278983773166916479647188917789685545779751957546789489098257837739855446956512851255040276902936382294942930165624925426414677606347525330598334220309037527025766574391118082462942285216539031535338132447363088089773915482162160206685156675612324831082068854659488527763713813867514893178198357091458585209325020344548112501590916385635279582186200747671234658177134534895825555339157081172206190135012943161973162004128904711039237984352522808963895021181771163336483322767065126167381850787294425009251010048286181648300651921532481636109739502507245466851593160485355093622066032971834135832987387943711690191907331936143427115480910379649076918573473004435921188797487710625841245665167438562845869487149652340263109173919824732439720705032172865664657145044654019709362720470906407093924701645153153607212677668441606274676593446882514635865808653293116251907465145054845404367964424648410265336095824368051193418310423802091986987494193603158923589097720112569502641500566329193222469835619822938507972648383689720125548860384770655979822099995495726474938779258680542055622846501732550388124676099571343066933061758514769754802546263351022749780737869790411487470963536957460680346231715555670444488246126076084594870561042622757110832081879691863594102559601002477935563542471736069793480404028320749687466275054191083303292130886927054911844281530142480301906434038016379677167007358797415457591454866282752153548320943532788782860806299235087667966848403494145814767819995129569824716387845274710286648142203603991374426686165378373941692710120943459673788367316193282399304251546545162704425915862982195288509485874089579414436131194862541824319832363593823923278867726115842089434123657638351384723638599981392876769818467805270632628837644182660771708578940426929809276536156464688171448049309866492068237187715261962773481067180453087299987515264267239995825701026622845930588438108656550721343396536413950133082448246376450884686296248127004789002140352015639866174988026578812095963556350984006979033455721508416187360833665932366825053822559225594241223576523700244459367160777062661020163038471650331423324759432902674428748457665077526373110127024721309724615029499150313119837550595134394840382085920446881957148074535803714559724734624043552784152983292362129217442433368282108152824540503557339440076716701941738985586312183965034116837620350289456561220335930306681333975858594378107086475345345386824042840423496776348863532331330229723145160629520708055328466036527185739667808890116412625488270591378456656208811701112008216686110604894895349704450093465056431389653012906492594864977299785364108517295436934586064076969546000265765019305326130396728605771549313802712126518251011325767677643137708411793095046718968234253597363400673142240615965329508650954427903948122654137808328847230267413891815472243913752214277915206541490634729966216914457092888622866647070921861932263639758577020933657481682801355952057251523608422676347648758883554458488237111010266457873966011819762104852343182548508164224647946384486099341951434245660079922647335890106412612868042005117670267607590693309909474712803122680534452246772475851523026323155356990642433549621993938151463536066271197721723094946231148022351406143883547736332933896429516283533754159079613426044020983743358169119498026597870706292098611048800830011267372356867031074384153340662140032452303217435864112218294168878843963859368191806940447070369197054576439759516973444146687834433593255291053126244214766582010002264841294316875609860039264016039452028704194336881101349993016078616349872523364957102731766637720485663046319320755887645784277417625772302177866812767850019534184060470897690797806552288615776200259842738942290082403758122800924126825081453468602549887037031950976327310873563506271438728488001654666300096135629482670452905056581949090511402257094894899517459838421130219947764591178799212941452949661290660211224181961143395264027959297429627291716778107867305850504510103397984360605655998425985791377806447445997191054983650455516810547180916557978781730760962251149458583503078889702392721440629638002633740897205695738181249949511341779374426044932833385280906449196769143683026700200550016541812614451891481666556431568694215149024284975549529703455498559740612839097342765635288744964487857499248256590065657131501912265379445310399269219623378317061585528809304246596928359936850847079101639199207322401236489841924342296529648620553041740146799317882092316409683995409480171963745985785210700250348986466252066266202098863381191865793647086990000736646664090539884341624060718928371456575960469675209770273798514831481575181820840464056039713840829049664415851084374799366621925390491248460439167787591297976389788386409985846018006715583661017392118718715756632478365109557248712069456844569911591361861237665258416558093626629874057779198419959306251045357962847244163220962343032482717009929320849250658506366842771420800072836837792420249063691561208170252203191013546768993496322125165869056258653446210508568113406069293776857370142420731524122021852158327843118874147123128676552691420800859324293598144731073041761124915571864636670578281107297459258642233635020552106519937329827325597268312115600430303733730632346847717867040297604387645693891981782058750304330611569793213889512729547652866616944391795274048578970011357489172896953539255319616468948642077347098045753497311904524039954826204677437718981180840906323601171432445149179900219859105298359855703944541159894761632358311155511660946735449856541399008393056444523173662351183830176978012403377095345060227066280444871214705253827646612734343072932415035901112373855478177745641491383478817424544561706472427679193461531817523968744615886283920711752089603626515509713866710031887259241993296564650970589395431880388835834542291035600908410949124151194926795758143047807322644456132279808361931506782503383022157409250497742020927993791133528657815151872823797690722023583969212990518774985152149559907185213899892184995882703027558855213661178939821380575450047362235545718429040593317251390644542346951264062957520013289326066803903522387434170425600223205728562749902421902810964562339686074527324658570564315455541916222982028052291434471449373375421381479694758974370820938700491701653924523309711970235868638330154021413774352065044361138200358963677484359273300093128196441539624394154716006727842783244429442014605105007359072020341844734671563477404494665844016898879753618633185483027827471715269022417229795506511337535939683160096108395010899677176671587240721465369476275503680486759445839242689143612330535208523788414902906103204427002326364168627794465122628794643419560319589266738580025932599704473660846863936382673826843545748867164994834295348414725306877253328698717283186958488059168953083315100384648739732527793624075921423660273681206882179119924779097491806917609291455168999652921994834521128788752354184824295503123727298728144944567055339978307388122060585001727867629799699229415456685111735871464284074291177928458589159698804129663834221812298496357108983581070831795824827309730346679604337637186878808430069694600065249416434504302807480287360216136223703781552531789771457715788812610255247736994357933679984629021015921508562470391520500408241741498238105220606991411614580370397026996534935906347648682913441428972825698063609302807471826356971968945952808515248881540662991322252846837172141680968153607974714890740975848436675490770066163013177002996539518389744589362360539070568363806600987700620179108923292016888460882911767578722993944985416222302811660500517268553451516382228838251891432362169012753347889464567335108765490896134195037898813369337277281880182327569994331326077457332835449888033468173690292235298240455829672517258737481066770669455825976808895775995650063137478536199439851705007752494311318925859423823042998945473595959968639512390550502983770742964423189494353326266007304171349988937363056249211020466245427999610579155672554087630022382625045136885271056792639064563659914714866868140753196789014286002133393208274098536647650282849599967852691080995654619568006468105416589739945089636854020138392931030065286612461967203646163049347476821892394006519584471002685474743578709717716730147447920740237148361741369761818055107849193100640343190016154275498887935213443591535315981359292393993650132141540661412856771951881585462537433833095009069587094929719850603093417046673969956662139078868717463042895459239124927286375711336137516515287741921372203171321069379019118247354471723273844573641421524243667923389744516336201418710756426371812620022809601257514212960700309156377900724936723476356850722847086170774640591026845616728085311590645899914388638016515255263453583647382345398755369182415385269338144530391495545445896847193397585461145479020189987911239695924575668563304956980815001585042093237540461000418853049092016240727708434234498738708160371820017652932994883000564741707451157320385385802110428903145686141965499362259215427347610874852280498701997421468887129513629941768888638312639672262568543109545590159312706765921963714430793711253710108381347745514431300686243601632423804631550805770470117212536212962975107831704032006517340296186786584736432153266644163800953042276587501174991053764330635467480626319343555694377942942221134206589751939428167544851477887282637426845115574363176104333330378603120638115933797409482966543459235702358646622399952131562426592992367459941663296065325804363126393619504298061854747537458487741961291785596110308331316331544564127213958791693392769745296805181289654209840758998702583453723988307503923598207207380535195980798435587088990051662003868314083921940707221657500910627693410106847183498882094589639571570760605180798987378625804284514476048967337538461892610132345035488831277129220097347247998337000405817464210799601406848815636389624938070137008285321755991989963541294920603370156969536062111468558421950663736062065122275027204491002797739294854523531247227156497787769443479907466210616144747914241753622016875871209698360763970144698778915164492485678979745209275775989422396207450597542905236599001911416142403863462833994586810582507731230516465944886634155324973717222222147006031920876818847398913737538118909358703995164474186570779285442710778310179131243869916265179886007245935377105677580505284904726178173302373810389772192063205266108145410238890116287431412427765142792765617202970770476039976475035326627260215484898769918956519299677985369080158915559847134970504809788326835643463508435029775850268561796003354504787758425185472495525751439107008303185860140152933373287818618701531418531967728759013150615402242407782147323494023500272680841433210417830088397809672110030889517859916490564368476278586757462049868682980405372873416451351900306091668392442937637401662613391440840239970295778883658768718755471356418227736264293854627557686466200327747952965001322645480934363027377632984695840048014340917489092525063693513371935058106445647244158946161851346670109215807044680232971752189748273189819816232567788823620259406946091287059458357202420273979610548694915398534908641125310716468269331739520252442079571586470384037912538890440422206318856232514305610406993966277824979274418179330563209211112972321874721708313189762785341406869250234194582055148213749372730761990071605249216193187667753001418117327220271065624803117479930136453591462545915234221074110761215075034872075636304974272725654525975473201924118562611478336174103380001176063080919513751428923386691845470300592503168914919111689214734972879936461599700318456986548768548992113665924820926569010377346180568688225843387406313689487585703075907528244177222720320524349279826409069457884915831609651872930232529558395382145754040052866996694161404573227173795701236857870073498910863326584493762457220940496449155537770294201385269334308903311293523785734888719741165656110604332732303820726670378290084912375360731299528663983455526380139559406049289668815678817568236723421250028382813226586192713547386501007631093680148191476042936604560514896044895142346908619638952822151084798133865604671489988836127629980655903110781072150179691146965229551637485415497205057818211552562803683496154240833437788747440056126425829628171923857700675557628256247788203034415365833057053652791145266271442342705017555440201546378466799865119288182032957343906165319378000864229645760853741916473089270525526804377749321345185787505053146094327228197067949100966397668086012315129739500262556175512587861880814123533414730976764619566016620144337454962519821010437734524865528356973326874675754966394702611657709058534891151555746653776566902218916679403071192902762468467938912038620674474040499608421618860532336519606402806683302481274315781276105261150106632868769682470083767646295733504077279241785835803691359632130015274156538333603645266883225486531607100576108910812500122578893890096171271284727274824492218498498298501642809144298842532440941514638907483391719752067735440737135713873940295059579535278227575185979458124972928335480429101434085780304741596255481667649856080695148789522373221507635409080941156927247720331057336934028109513611475360687246249523939911810212893933528432474995560797221802343417970325479921240835708870530219653704105038054654830802554104805168309488112405599105755679460375588198750629117021447562407716658882790594642135303543986266846325482748472057701259958272287465559915775843209795481756187741590008478860795354288641071324949383169953955042646085054746800345916454992892166680900591004725690355089976469836866135560441849347074312503902538504834611997066562639835202033350905383224927094982100765094780516742507582950567977738474530832142142819717393955178927876359024601793273515016900326021809255392639208376520347858767977455898648246206446670422477929095912541217557214289175828968555229923743532110734633426015857202896351025269811230777550693697347354054163637740240778368317983694689238816887182382980163128307090938364499451341871705912780899413215734377435389300161330266587632342091226073931037443342616829441265576580845845025767122965255334215098536269325093169325556870789801689432559068785069208546801137833203435126767117013650275732073648565223183245503017383060325810194887500675192550462416388940086153669373513070090856478164134697529010355104496186894141595318780573941199188452199169356456736513290132287891746454251818195445106769835261457721921101960467416677401150562910370670780931046582848415850982047526816802987322416513047015839593787792790492726683643689043423702759317621146280518384838333281755060880626620773885245392417342937956585537294742383264216240242790453348839964894477860919410203525734016231631266057261641236614672855689588288981443131419924888399509504130704214073160633087107791420372071517501027234542616571957516804277637867203821261578673150200096201410051311957326793646246341154568741339846924191965832255723919242460372801804653150874868446237875971480839813109671305587706749615410981423755974253972774156628972528289594429055910859561188257241663207469918083641312057234935182048088971133948610170721194155064747331361639215724031426027958637095544357792094797942222513367901664836108015629044932265129921809371180717768493601763993858504865554859134311574482805252174282045934193058632764412988788207924110238560635442639839026299558434483083254392872106341370287775209148489019955358852108888396460674066082588334481780153816034721848471545007472838475464501831268773160722066026048279255419995131263328043825378979473475091814342415519826251505677841092303098694968745869058224374951345654634808668649810719715844595509240589372518245459383870972193043412475678075499284152995298153305074930415434151538500675208889270536021352897827604795272402675960591249586448064149879652850918017208222071722562512754551634456986275895722882949250819529788292959362163231309800485750599332969567400128137281054034811244160543604725133810320455750169963765805079034219234017713144857360387867126938020744237206061483573927801989532112802907676974908156143447308772786992204956348665784883467354207853832092913472807726892981275917900984426432807148140328356666742680837677872103040133726735017844509574357827672364848200357956464548884892058940763293764933602229630185912001318151896986473791525783425920663407351026233049870279355079704639107038589481627919224193732051840891229793376856194355778318337153945571304457944333823050439012203471560727943537137358558675880751732353728503824957606548455296367920271497992072504192502387764351263817000120629368570705700465310154069087212575520736854327020472272107217944372433145547826344226674228594393103970749617565749149932190452347814190988850038316022464941053775643123975475706352329061335785421356734751012413956564272648683677433596118642804493256594055191589852696220460852157182635179799173813839540317144767758755219401512886608850696532027170851931710918137911942010666845318772360534294346096661481231497850015464748756491994263503798600045018663500700040340828693169796414101407413339522076505504072304377061340450772546191932989195169122363988594402848910795322456969507797093202218980870433775566586300501800666818930180021939314996342675270587618837284390085165007395206526535777021130248619383758771548208325954105303041600363367528950358833777375932651726274563855580370837791750619140975887225863664841030910779316850955455813055465040713823370332827452398862343002578364071781167007393241753782866601259460389616024955422614986241769097378089455936002582874479704670144261954674833832089528780728227727867617187361651673363651083087899888142387679251403477603659857092535449327128935114175601975976727415311795848753040083833956056472236859783490067504045126304615674945186473962122038676938841894043793883894243270414398578341846975920721910113495884138790746460743369620021985168622113515140848157662634417712474808123257924118488662602446074458882378341900509686762093887693274156276813739065431690864722930440981325223501625958772633502609945137652400491145520237395306863923640305780144432551762074842860041069800515095579661630962813925759478117457244071747481205786778121682607117210452620256859725552001102889895479540847351344810174444825185665700797804980609927434605412187496008363108346237904696539902463473893848867958770518006331821773684343306250899951485192224046815647426321610926453250377268142718036169356095164087731162113474775848373570769019185113653986359154480870292712275777299234713334831964761437940000153523336160794861124462241233859216356253003336042521404116949934683891321598970735072888126559531216446370712973752391968381978688979005140158524030415979882749139567934389101083677638667971658035174479023957667122597708803945301487600948085835475969415166755471751907260106929267396879568592157059661591568691266731971155585260752211294534311920556906050086061791720175234317824816617519404595122028207031475305932835347856159370953923593993312998771748230479949235132601742190300786611028176983286530951992260386944199308562447618263300354346696310445647228965702079099341484861016304870332550383281105245785773881691861426787775173958382994660999821802162248469971142773771618820667747617362366086547743293829834467066340141053285314262824730414013639909519120978745555394666895529048113277160810360182665396554590187129312720422669687101831932603446939885876672428422341553387814651268750959970097410923790401422953982328668858481074436432100100914288917459863308154067972242375433734164447450057810470540080481019624992977138711778800134235695361896015383887877624559902084041740041577713059456570414425350285014182895982519500835227211318725486426101450345386330216279073348086826545411037646080692859317984254375578166103280253393284857538783387294177444183252253909791433106542610858972942262621149655463331967391631564744276069665179665815408786181213465250837054912703539701560002050176634312892344525019649066193979174728967594384030781090136099983986850666048123244279382951297513176696847855253308191108014559381912014885205165284782609055615606681893519938123479186858966738508321105475770369569856084480268265225671320220307525246264189851525232276873300824133637401661622238464143643466867806833782027888684219424992498665708304134959650727889166746973196067817154819732413572530267661428364421234431652225303485239369192608271902497681605980873690626913045805889536351971867922644945177620574710157452280105584252930773505980381178606729698374485586298582474641673557507740382008701246300614458645745877265679351370472565645761000953390892987906092114361486804022093413153547430244535969452887233950282711708751229594599287117147035335933930841546079938727525028637660574613847369225625495385956121148949481326833607687620940256859006281526896473704675737481150728011526461713813971898995927211754514342135003054615755271314361253579237762843364072789067803862494863854894533256873101742571676716576990121925187638018188319143293818339891523632515836384028133820847299891679532780613863377940787446748260356894667376473167848747957054216974680643208228143161479626514318201809172895674062001406084480557696236534552280005054445552643548475527622727119482351589444147307225226247083398162166940167912036993392512247843126757611682649203121962546377397091575489935309834982744243443768121996079007427597012777873112373237399228698172624141271749485627160624131220366874957004907797273369463509584654043026695052251885615277061008544159365407687034813485118103382431406846462965438254133098464210575504877685652734159506669667699730272747799386240457732882275727787813887051330314228119043545795683768176874215902527300731149247671082323402100187989488559146076755146085422992764014832705660126914434649448607591760604339409533896188185271611661148961803849454807283712802555972942372880145420264427807249278325668928756206630639247352967523197142733283589928963749096439028121613487457557289941460678219067149157710924033501184581462731887019026675730980676495369946576188411081511875652632400785799283473565403626047503883573701011378049443567447714028679040521253373229554473345530235741213738695850496289055847136162905652948509383265057364294834523826854330292473344276589360830321849388483338333542684277741698527810834931363886583722466946597607662737600382699674227812094019720356486732942476095868122105381332321022426822239145963943940027595280469032865607357071131936060193655685268913811302613558766923476001518009572426806197064739086151623422674919053753310738591953177508200760436901833561589673603250722160117991727148743157438163759176669972689690630015471368407085031158376589740197603611480008411122688257822723778847683438804090031571857109920939714263812977767622958157631888242740777072715844453554267114485204720648989956730206982273293206010631750512137634871999079266349745960600009867438064136191622860075838565773107844126176839294436690203058000490322191530334251918926956205598046394593249966093074848168974828317542303538152114107883496103521299358439564807007811762555941662476126132396416463273929297233857593488856243249674248377923431372755206637841876562986168428678866674579244441424732517744190444046422086866030487310096056258998713169881083178477804841477363661044292317594502788582794127038812624093305532904711230766746274512752815220401961014612740884763193744650703329771374777503032914134577702336511552705644149169420390638782162009666071148183818101860439540920070193813281123621691232047314494429433698877086688650061086277250059149938782119010126773527539355157241169327289188949407224620482042214347322609123838658522428145937922000386058965603624451321266518929103102883499838118604477963450618591495474870740294119744434027248574546082541689631841160367171400672512492095537191671148265792960310620306579574980690012515586747692298601332873420769551389849738028136612363517941135594158330932696638559616049874115023255057969464993776855399716201342740967613196423562032217605550357318856575317171286051992075896830723322400617183229866619286563360726644839239761932698038422754340642704141307838201693573633508211119533185512581529937387054419974054862339311534788815960307063989112668196756357523633510810315326600320165400689712468885095730830234713590873169815227081314636852303591537784320855549640728810727319282267799643639793335331858331415650548470825074192663397368485773441623199553365580882857984619206092252106801192008721754556359473862128577792707759103730584613235181796045426608191735985569598889019924853998649822811879951812271721625284531753702900991527559652749034167184109225030293158004614189752856733828263680968427261971453486217845540171688110031588239027708015208034873769576310696361582892321486703618447076247247895594639425117040028119077524476295376322188604282168719989568768305405941412588297242878843836183366944336292453083808649447713066413497789398547642500122280645946308513275290590442405699722751544922171386765845505966799092623049002197488353624204343066832996604921226534455831943645232028921263041528830161055448041643261299546425768281715833302305691057236899164200847674858368310144621371390169960956861788418867717048253937917655139258162545825494956377295328494923874241081792281059833715309041610089731127990935719107285847670824230626408473039056677960389440406967618208575409130923655518943369134070888008605007780082740290197894649843415099254749111508750094822761110928376041358233060188587075928699881642949778708453804374658859009160015314335553075052033667652580467326340644487923003932885226238501039017970538848138306934139561781564194720372286808644300172812859820799731033774851916020993765339563019141635181153866075613299549814334846242781534132482569306989677924675512457331275459594111794658857784576127845297290109113758518183547676536626989071950719329637307770097758959683765144402259319086208315425702378904528301402132813292716587604819439043336419756755281552982835280052981258761523390266172050593832737696495379426079986247093872613286616749123373610209797372214098724171441049908947879357020585939033136871860427281510932555017465269738057909035323761277991086611175345032633360323340276519131436933393368280114714696048825924821885529455470859464468976358290889155055174573284794735646958767350083123046424007359982230800975467631255248825410530731072037683941295696831205952496817064554098689790112404729134169391393767212295914941681766849347434359196728715734813746689600929963043919990651578881196646070913421352579382812063411302185850193225337564598500231527977292550559653137168294965242465315922437695196008231223837283592472407913135382635251528361110785979194852847531131595869366184045594794286991975332668087492675531996960901431383811342494204052904531055151150051371662359787090944615633336631608542322417713560966720053787694840151608619301731886146804831359589537477523839918450501118911704295387199953557516558963560111747519422441382642968810312829648043470194339320743632099777562684897723455159914464344630217044225800111274274493746664081589321939500537187603707256420234565682400360081058501775256247421043704740761029380488786316780441476751138055194050747934159630877334618494808753984276835454942443893110566120011108751673706739295743865510044865632518437761009961300699284145418823419643923230617573957877498667143435493806984529859226268047916022442151916866312693501197163233652420005258687241209965860049370177282770754809235333366604506714430780662007109785638549035356031759849167531121659433713767245947388503702000600471816639737655763237357945886729337368494524756943335659499852223496590089324298942258864686732003079474412890548137102913034337176711399785325688837595727834185328158881836096437820112967970672053882318732587678248096028527465673665580029000684967647919632118580633078514124902440034806676597185362888903482062961938126667293069042102637355830488843914168230230061668403838793526019417195796628977150062942471182292465221687420192491083255843526351879424146544010170431480788114143806633828206282009846331239546304324369484138856406339381810491742221999075534388580794687019706950303278502581183078934920003543037566175474043590633226974513197374838530768246226886690949248142561308714091480852107010712519245130433946243138772734942883852032594798126582743249369847680873758092109383369434521207981722675212649439838097338837785976627560049882792091506339830237443181262325727456144124284861854525271038180773690951106249181712316199319246095647324121955400281386094706926115729022773835450035496329794050320127501315263359951626294826972663305988201015904940883866669628133840979066981895533671343514181017021265090316141521346486293513994255646078843005037678620857538205387036004483182370812147738399202597663296795232760762091138164778672266142605579585496150098868395834244864822800168360730994268703494318152399719582240032156782327336132899558833285753171766159296639384009988512433988747164944893366513442254492089905776837029742160089083470541454062419588076004129574894870046683548278550357790941123150856734186510781281791441812956359472964011120332987434458581306764374113270526845889499838195411814788848251640410426159333774525324403406247633165902091362968927033686217548638743797519180069334752713181779458296869000655830045303341715104782072537682230443062784451014022842481066433074750862428439177304517022431426933065512809593737326499908490983031740017412461484002710138209316057602532322928891066986134760064782015982287607189469044073711658871550525416916774362727593409968939483965229663683575145600886930275354153167165378647687271616993683927988433609905879501453782511833018526595410360924842241754801910790389737632884167131183526050409473917224380491753046818756849487890134991902820890865594970639882123832149049653065742317325676370228585549757597742894361871957326533888129817308949492700724605124910028845869212066708128993804268910696142867305285424524474322453964969713951693854462479350553916821930572143668671309242342705637386040985790323251068816380934679372836034263228426521472710355287763338323021428022443488257733280635018332165687265112942915104196986108043171442216221510413645208279730997930566772212841142305697814047534857494296199097174191250210859085318047782822662793940747247320270746600264896489936896709818572274754282618447151893507391227968835700703197921394981572898954120601969652072329101061988187029947849284266030942961611604943369999759921944723714768748331014310591374630933476773891798412571928302983927340524645762974659569201122679296961827346240233351597482901499044861137013656109691457996142043282154609822827706344271289389279532284208160591827738454036881566488821494577193753846446200507143768794953647837336709378593338691576246918592928609444160940907971048801579427062093551936775017248086848708828330884102827537075483310133207910514324315194363415674755300080548677853609618264824842574844237044432293512595264979993341948811315658689774458285205531927495494033980332258909481383254916126919731759608305030451197450283801233691582025729486384146564396427064248408394618936713888768229672680170587334072026439473213707716070553685086989817312202815626358733438409164528868805087251503127492189083687017786497039141687894116768986171772908575636380378355046648375574251906077589305779279781015086481808038193860540802741994683321322336620757654439489248411836420080952595489814047323139950772781933204391546147176411034540943356878217817135446185652005410169592098612699811011474040598155755113000056623257779643639210250940496455338282934615637037219029903671890474113885130574480897913256366384822678002708195073715721250368843362753081154671013699296742033822644102698797990083406173312819078543106450451542553643962694107048345110077547011534755319599896099082841921457900959371161447013917996773006977150093041203356073953087583183974659574967654873587267081023939177945263787073799663364072865246932753832664520239256784683535685597302708699549099103176170521374357608751544117382711521820142970948426648369545023059230478176186273974412805927443534008388744299567368804494653715880669969845736977964014490912313385575166367470904742309263061477285271453445183671312469683692460295239988757600281449146970836455714472976798151437102653806481159493611161957479343836814001559853030167736928160978951547110327400248918829100668912463585988862050661816910409945233120422853857774313881555040737319047743889707071739986911855594385452534210485642388359333856405318581864338110276559480802486483395836191724883024981399305801028822147615306558608804805002516516565924477907145320478348527664672100645125178128274936975909140966730292460596149912526519918780697728172532909789953632480840654365979315874421495578664239491329917145621504984898838093361057743854954660250404368997782727968806925917898769926058878466205138459522910388047564905095520608545338902386173956411413068345000497679117855067841047435848324258814730665083471674303553146934706006074416994230973652626428625524504293278815302901652875459529103420028420021160814815514525433088195701930440503271606803225695933916826343955741947868255760545446746518440042210879208299550446224101712763257171301000495032254899791082137665002519051176987680628240209336671473438813308062381571729601668730492330278067034251652538187764486845879462532764444799193162768008187979359709500080459473205617894634690560029612480442768352615834708207179897784416366907933201403810799499895091976494887586509501288609090634697143902435954414275825430834448001946432037779924585565131534228214954856502899898914603371335775065935158942191337779699858372207313422375545907564090120265109175664178038008180849880752830979894431832944449356061806006571129308864558773046594906189142909019613199840400862019614233391034165313761969916615568670752296234827751887518043114203822435896481935113117841454617169901028486950285923147541458265134548394441886440071583494824256372249527922969197798334626816741300780656244659560191836892458910694358717741142317262634512944805162099245263490192134349216682324799505529927271956656102947871308453090682296544081142063106925791194387947152770779466511932076968558896025897863764042196874166317045452150872675742533997603898026720503444103591599211135538285466402568666415633394321300832790458675876971117098164347607069374490131082301676104466555441870730853682918261657855762127891382337808364372776441731983079666873547035474365985643016954442307260783021903336485659577737994591651647990507551592604454953426700670930654069860978536248347403146355001948542570948599508186484906284247073894636036864755091792228367743419393306237765622534206658805883979842836287087110364396786926185700708933871313427819102675688690879501973334255746606101450311630248264881796937377763610054283687619728159989990068179573684527463536915741925395369879913057659342760240006960108132565289523285398678203170476445324913710149229807155848433547111800281901326675884636284789350213949367076676470216669194244893765861920218888497291597527065867138285188910628710725869642003991864642884504493242343987911047612284756525628853730206850819721306655797376677627309918371431872862215945823824227698070404595581605214394706683183686707763021940134189860718655856108514306939868693130750129929746332852388054084448388157840883152314851806684851964558620116618765341529308427462999102591234767449270434495560818659558583501943361074623543746351812136820062710925879704753199715288294139266397080582968762924526204504543955785993968141694113816022970534037983943104057823674738097590815009073689815739157221649789762419921157673065350538370689201075548760655495027089900325836532711063039540998690200195855950693161168380988298760333878551452644222688365367771342566192294994594630331537418560309564820148543330640415560114463599712193068364974187804407248286196563518729801762239792249646235911563007310450667685679747683018901478353261176335314629141620992205735340804146556003534334213737860815994886036604387080208378600074115841865022094661511360538325307356988194719822718800402979219289600482504240508389858221164551325822695516305680849011254865255889080858795856304325935148456626044665836704334595441418635245487108812211761506655928210137822779781756466512880109752292750249711729814731723772526242699763935163200090434098150613255655566785601574660499982678801751004655975618617269066750315250623781247557490100216885869529742146928464599639690994035115003347834357775714005193156570464971955489475509573123239829263717897450550192452170192508786538709797425898320358810007195203195123828022289836630390318530014257835980509185623992806472008768304353706180703832226094092861963716738809420852070591191226657634357650455334297481264678538331343614899373734997238568025171742798214276114489096527445483400796997815583918441418021060632933856550719336360562125356449889791935479072500003802783420901060938636530021458560473811969257092351353956935592721128157400852677073896690984349550588718620082322368545200001862378818082570542797470657238534889894173568957938605012033636118428813533062518923691134605284315321596054311958120620853986041052380094940129890765324285791084788287581959949973066319134612091633990636324743531227157738710187642430754160496859043834596834557594886420864310298712394496429854858280160783038557441241314234444651445158145822903515318229918711028909151982306092222636348034716056574469038131304495279043479049204005854178301054804440189273821728225363962591261893927995067286913413027950898418960809277885715643958348925992372954271441398545960925423171899217510982445917089635309675588200627447278345156073275289151529317167753323589030351539541763110820829824550610622306661342980819826542293792126496270633759339568472872534103884088379239702099146589504325002561894142890609554612034150819524980812797008057180847815129843400908568098078752567744556903122879114820415376843899480168013112410085831025375675604014691508583303247746706249602937571039908193133814636067750782669285514581168864232847514201063295361098077013665617048814839684366518464559601470995038634987119765487797913879042952707709095685935317430918572314847594813338024056378281640633018938331015165536447979243328029319798432312165811002709068949640937903112060063163453448959864615848223048441859286563762987963543419056748139775950011133367095476999958626211322421141305700144561148762473639340079975875949520887959373766873945111410731806734149419754549002915238951929550293500666951309198360486359736162710358837201566476966923857813747661896299008262367173748030133476512271777102097890682533743260786973200597137810257082090347881742320655074821682363822364979430670983598719687250163209797868794738841971188850466119268204942036139925868326604316266754905807312726685884258953878502242920433358896221438193468601810250334006502562786760803607724473806331503613909322542242803964681131460439630840209852176202615412516635582625065674369879559957153212902631393823169322828046850705566957701424155517437526856820816050475903790026890684665105270871224498233497819735110867421639943842615193662020294312495541332767311370614410306202441649433375625008311364166303495059671561117476179103945994612236251796399625406631532079287046214966208794228433616702390571243602889585741006124721664371074406618141798072165635890806380130334607706550505015864948336869164771024412554612007427762086349204771013376637418756641919591184017443743859686263900780788326602035509197080054493613641156649702783335532211401801417776434223825534275863850515154790549159381619497192001001319586522642958889861526508233970176668551673162685195020736974233440519256289961705041413782634923082139418501217162345967412281395380949184461616550968444317180796866034705205599731383872835074334287118561209823572191606953595348220944816559495112967808048899650484164760851949606981070755341735738035552339667247796642334252961123943267580899882644285814058911942413364418854084138212165805627004499017963745582538377994533554997070405837877674139413331613187446641722759954846669312791256426822112823961476359367614537228351318161800091900622726001377644313600948749356821671482994963333747857842826712485575775276594861947301301210068369186998782682429186331893836697252844457718242093016871471757351943724540180931133080090862166885903623412332456669786280527330123082516946208295610217633148710981417120048285513769608217876398099631634136675242556214943724413171749233584781577161201189725678011494509957587881679402071372651480936700513183573090445858373482812240799913537163167861706229726052012634945590320584418643469618795788048740925993692708272048734486728951160898457938239747682933885015780390840033059688941802752602275469443234390822038177532520307305130886289891190649166826861096188528879297459013388606534830978235555547339142429994725638928385939757136891023455652713349222887745199161982586348341070377239864553078678070960606532667338002669929976584151861199449593550094567025059696820818345356973531338580597070566086242818860287449245819959115450965234306679037909849677792283891425490755072962752143066127518734629464995894564389696994790142591602033004370884438347829821469941747701985028136608465749140088748141247917364277242880092458436736209742951644725784756851096755461781666106468622304466329903744909869196227319442662960286514968343889137012029374373960005754837865900477506193272359074517686339795314530257052128864908656076664635559193047210624237255606269507487306144427413321949943938365851608734301000209222516890197853904593903672200629008155386626061417897653752758713683018130020972165823553668258801954109660749676424398144341149382317325548366992571096270729938282013420410773500479434783727762091127658632751375788353521572186072967341926652382050968715133891940831964873521060801866379312515110082371459913244883279923772959480535602387613515076813411778012002917491104073639962397929759654589929625076550572066074109174126639651871792569161564779295938899380089177466328439413993309686199697596173500067652740457743765111576677912030622736600376156473836286817735751663712116611534108116541082748647698387255741202761911437147416073492507885058403612414233792506832892710740061909580668460859759467670478310169427798340454969426390768913448772476922424401010739491239397020376986717936610796021537838931674463078118809366832073471614546931492193076253775998750634218589489628652020422570746755245135203954403128835195857096344081135532811730744282948653898297611053529815017557767353636032654251130202714463586395201389582380437407933496564370363689671738179317356375283281412184720419321972472971443049339772224581082512478582302525536944481387471768758794346446428220246087607363605026983884593465956805551918592561870753642562916719408667067047957072803713337881123790630185216500634435645504723829477728832392850454269985908752215016355532416559205650329044134532118160928645818098447059051982525183801451985651236646544255232834465507443861597333272171169357246203284557500542870468511184133446239454027467190876674076554506808157062741173599831781581736507909360557070769247837487743525735447381507024175304583119493800630784952332808471991913925391078254273127405685684531853483029066937838468522202087317923951114070137891281784198446717986378073066520160902486311603104661590303308418123111953616695064165108382069869419262637158104188813853763148595489044595542016179591524311044830533325709840215409319465754529497409173534595679622310432324822774865213761929758464224565631409097468784370724572268679314067544568773728848887219602606053484277155377976059879187171021815937180509221142011257160992197818849612194038556177656191922197094682685220210127928504516472608933333683060266631933372667731697553959099256693580333392889755434278924171065115747228409260796958479304091225038389335723548775410315660281412172394329627747087578714483855986520899434170973164823896328333295366751643332246561375482753811581066699636252210717323320380464932718522221944041116042151859078689303036549324041955276090298764847537945421474278868149470586166917381797605588591405925123912979249654545124540448187287309232380167758265680575331309708027999564344347143311956488946334689554467821844181720060250478017671777079913489679991503337756685616157052016148491791932142583240383742578911855676256163058844569745525169664617786126934869527898078379352353647148535571706915196563670750684044778379239530746703239524334639610025376346838512327167961168342135260759216395326351861679925799391418043039510456501238920508828519900392757775222639864857726804969309394383526588408052117677835927624144458745576546384931805523651865083112546312223922017689174526420699141482823919253534042145649629193967141120708137425280845503726286666832713908347721925292047252024753325316942561777805054208023625650262721554605034801253475793212017945343553796645500476707827378260865110379713645680269770702285010786641319992502392361931317862255407220854927827785165185540365017086503878231224157601061829013804107429278873737990416266120630753973501499048786228185756408860227942945527859802518395177536661329814889778997610724899037509844813125529387258798898833331397068621082234667015475492784312496652350921719104196189057532080178732889294289898658834047560194692456632898654550313014731623912732510871457189826867122915943951551354718934526961422178129036481958103803929043237951678261661689103726711069469081149733690482643629589467200249822781901759605910003884327564214473253574373960424742612845189914696989148799811494867670116464357263168058510563441633414357697258542342320974564093792735045920818077540962127195728384314985631834777860224959314812599427766911108552397246508270727840102036675875619576879061170792508388231984567774824422557190723119554925572850428476202710530161721902152560156077673014248406603515576874819138874949048789037484091655978166959216249349670457960407864224804138329245684227614827734976730597108424075493859278611196546565138073766553959441920791478315825030554460122891340044105466310761888525904174991260097772729855070335809329536604155430765678146218339199474677551271107536835420846055982423348839420379560171307200143560630763320083380875521538435184326139826343280578086526375178298155296702257440681584393014213218031231180482331689645361002555598116215403713907295297943059110765975303334260266810467755176202375624217443901228142025843841771627255774166780821191224667990736423237492826559458701469542893437680924648143946736509340492723996753184474199111173365020336821192591164135222334742506958302175560435013028429450996562529842616936315069699347885872568745438741706562052011676343877814122413254971916864825244577846033595629391353224835691114928154397824734471440979707371343355291938045491491772192317580823176267276349034371403318039119505771445678289474782248029263290648088982186135894734770825689236665410195914271177470723295582955336803628923170093511396131594495976992072512170971675153992390516414625178550302561439910015361016762745064381168542369238355415454051345438285573310475222138907806938728507190606457014842901615618345766639759677198957002218759665708667909399639596182903194943480958504469559359112818394062798611432940004841882957832529990276021689516872353150508946620224963387006994689843062678368030872604744453899767527896178176932105296979686556393413633193161660793113216356556775197844722318057053360393244576685705037894403504904679293603603025094597221625889053204739178378352566315286031659829330659941463616601701944968867504317521573506247223110849730704757457202886569991532739961655024095676289711114626586654316815665216502912297519799599317150077656161136596579677130251095441968572049472341915375633178601427135142097628087374558118339602408133120376672898572830479662531357810867540799739324664871042943742343353043348984955013395347483855906684239428360557854774440689069411578323080103187765074131510983957423154141576903552438731758752088564083519316296117640425990067606828830232229249828418740303484808700804165780644583271399565012878528076314861531921571576955485489358522306103553774111837458733555576931577764673293922154406360088331318775570898849929874080692282710547006186783058208758622628103488350385107801927811715568967074669206338686875595462988693706730137312425411673067364453324683488248334458474137439071392019191632457221594495976497130121644978650898206111205832980635663573729684607090642235078677953747748957246625788758647267385653816575374982616982428897451222916385939257862538580357035406299921537659691857759688426084155739032466251493319105635565607804459112299983043955961526495255242292885255153979073794589592787084725077501710529056401274928929421315939377318103725283312117185404868069225692478755951780798957092584852424241469850648951951669348828997182375760233992550876385012888875707250429925034572751716871896817182988405163454563522742203651419467232709793480009689382055113552040023806222211955898787429984800816228361139633642231837510661161636731403607809794353523173637905100855031814030174935577607793577083532688429692718571049892070396831498807723723327460762933350991593821868886115465696797438979529382811038336175096616265571715803873662646445165245231144205000278690583684552502322368806613344691613912739382905091139648911352823455066882787235278761041585485049088345034501781461155649505920495444201914687780913684746613688491828667171293918597022059748727370545838413234006184982945884216873528346353571407662850224845996473264596768851195718647599760916623294181908085374212653107138575873862636347179268648530691147410895227847025735162839414211547063991397987319393449208067353737898543986786336096444506367583225469813181953938357431446252050700188272470484002671701190907613051427131357693129137925652116808708254494655920804725334594131267047017729222895365209386064135573765613524189428539395558504139197342734464895263472071116145794376640850962383560415488171698994477589754517108705538657883304232156939651735849119553801492311318688959907315454162238752943690725269340308374525725124852885602181804605853730577364491464324389789762227942371929406222918545902209819750762638587527540297168359571845098199993532823804001600281877749855359222370025969860112959282624376443259519138339173513544930257424300859606290315879023201883441154206221141398200120779717932289038394862812491680715642703492715315509837159529628708736487802336073307597702350377431173135788022598688801291055250419528518999773153611163635631342220285650328777966613536169708903525417174866560874540054394696549016726433693341026971796565942612597575299761243001397253543598688153628540587539788783084987237356285156486006466415022250512988424738143046384599788613509990979446428599854167244218364875399204248966929398480048534262095894948021713412889666008928835204406746292583103775004893056428346872784393661205726693074305479712576004671617025972427894283425267889033365063465528012177831719470579599526288123128327231536724288429412592895273330903092693786453350933595661115970014101141606493478349543648631057737409935347282183743623609769010823450929737425331022708029713178437181104193985302105374114426209055432211197245388672188945103121448795975232424922220060245337417688834922955066669587200590897648520761148997055842356934953614755300288848909495312151197129092645351659459682342172156108027495731371956238888760010838020472562333223171110934382245365726799936229535831969679265770423137647616219713443201384633376359324258045151928678153086387727061783025655227627494006772735497979490633956933902161333629703738004711708891850502087274178686432736103191027428165779456497799054597469662628177257760189656641526241265564724445333832598906101392202298185632118301170477148126218654538801278864468221513721916912004562291064569970560925891171198335102322895382794499367573225973433570196888835558948436599171664399236675919414043539203999490198327660506623120855919331227765345349084230665461614724317129244085439353668355371058905007247862083552808852222836414515925924504497208919487913722347791710633894999172244355145009512727099307506612282507179599908806939758076630887207884521865614344957123215783949353922892302470172664240199982136673904514904065593100724819601965020917491051680563535829607918280760867559541709292141117319671291124377836718233221511148213521729819752329141812819876487327145296955189200280084903342907653613416383866749427752161902052557273499174502761246791848379092436029752635011500761656496425122445479062028345501774343972216799470554790357803569278234229215917399376695896530663503131465788710149634795560426782589369660371818569088682157398503904199270230614226263559523144275250821960211958757516067293453125121603114588492608120124950072255626972915746653370011764696075029149729050109133166747266800833990979268097854716981322541894289674375928870011271662820808511453605238255776070357534415356697836134344728339373221840679496116023128454499658774043679778516301617370032004063329086488526185208239244897778999234918808485640199084741437495560320216899130449781725271063589990816802673474418820828528541352877662555362745513327447158801127428302117490149353963414048626180591021964296669228667100184875190825268991732488602156500434117040318342705066374866473873400708232685705238250101540236886376538923766409051731638760704891410425571959745176655542790877004343632517986385137901379191947674955062431118988276894930265697318959198872775048349306069522791312571507311641258915667419841368343906182014264264084430468042825804380256941181484849909678760481708786245735200408498041385007430843809407559009668417820080692200992521152046504669550262264777120723032845010145850857731128157535716212340460424838795474430049586862771421307888780586895442028586979085706099916074849518506372415046201785347912024074192605756807983596047932002054148498709677530647922258792878200801589792363522663597878702276322682572062023751517123453224009878728765508293489161079208016727699367586432349759223231547756238850984221936720560502984743920620401553695567179592931870668894610638321472883786780380935185560843926304453649144199093766699336375756562124654045314080819831252648035747576939541090565898886070882237506559138964010908288985338914038518407135455340241671397132293554138160881063630196741833834888145027243751429107071131537248477550480272085576909052867550520266453614752310495441039122734833876868239241865909123059831625950921281019489727657232270351501635471757632612057756072976027158626011960763428067335662809836890778471697923289514199338576208985149346059962370464957374518058784332296180576989876722147494603645295996079749553704156428114672734623629487898766850143746705802284959498147280045380381849393531592277075360619460813505629448495662525215185596508716127450696207468408808642084802678639713827044866634169412972316489124052931065882070993123630947851625689491741148562570553746667511195889133833762818647115639532246253025705155271739480235817168423316768029351465431946375763295928448043516074725568442362020002400060504414443615105166494195702364750498189002782428672109075863466333492833178675007178300327745538454892274433254307169862920172832216597451363016660820817640950221299633108628475236822860764350496438861103380745801678192255762568850556000725787449153489496165352965164040706842854360744133051554053033273088636724292566083560168752876683630637929222839695043961965365698180309084855739193334116449855545753647347034818076843010163428459315649952883364475412156999674460645419902704846204754454511758999984204586418166408014940023322026230082814759580856853581791466279937719062617360535772758838960676009324812910018598322108144176468386207066439579382739114560583453247312889015126297801993792489831770095316775089240785996005222795739859806008309629381591472862846576773479233737056448876724267938474347032750013665335424176676312853460608069697490687921982351382955955313152209703574558663988190877402278519678864174154446023373039456242108085893270017059061677653751903104718124553465105064413210623508094331075473301650649644094301828644974193782438196264717842810834499374004402579162985615090843747301269927785899418155337147114438482384001262470830125983703039334257078573389268981731458205785181365506377990868635558122754172375255194613391239985841029051078714498281350550050764821181597550994684626538007651716321357708213871101879284682756615649714131222023325449516629895324402398355703837815051449769086765223014323651556920536066364771677640223433734180694214077112137912326901131161860380629400355596730691003898766335614854278377213785719650429855235383947153506154127391718781441044770453029490876195707503668105974118699214722209820969340210413546237626271250585366800693651259055762747475390000486752267926121195184887392873011015979323685723760176136896043909615216888475116737195781246562930673022812185965763679565025763194533813257297879996879527037387982586133509721784362341729706630145864768285970542456728723396363485658950625602448682301333679841907628518091066737269768613074858603105252389086015920934618830612249455473468638110990066787713886320515870510782372712832919986819783706787513523797480154573747695570055946262071388686333630012845228182269002782105772749492469167548216431066863106388811289388368076736142145752882508294852205946003633251672240135329304352126012582366075372998743029815156927350489168396580334317140752787281222233393050454883861863952948279484302263628644100773536192687516179592266686950363730577792924800190269846817141580487668920559008037950606185906528612001018251386552889788245854578577890955426764302437857346295223016751232552059866887976205735782002434184055272379561388631339833347527930523609795455576746330964150937282640518838852873438449741371377311734461664774290342028289223006417732359621773707405260661460257325076437580140650114888487358531926189208185590152559935884705285485428008670990147275696127870444201721693674337845895771427225068234592977058038888725070217097956770754530278928687288271316060983217489106110702198649809784380493330190799773969265874405559315219775811701576780888223933849073356192065941386316916112686390439291971121721496429642767852053482321291363850184124701046245297554474987352810389707026930144547446922626754882997280507248358076021520376453789724105937539850365135895085077590700842091827208111222088502905486943446726266674756118312945057533353659751977871947806383268618942623530202581419343390658372153011653016927581709967786085611770207263467613965884502106600751944133903411521903756343325165115608680724233964337457956219259520017568707112575335188899587040917911488246092250524926748549136995442565657721917405333892415886489515087467717206029277654147866347646241011512474040105155662396681164105695086412611010779952261419773371257142911131037435444026064069291063379502136180327500545528289175515357735694992703261918525941950042748948890264621317295121866107481656053414362073745768400775681893943668481816000403632094715633999124138160528561328807745940476451386489769983890174773776325039966544866568184501912690681779388094355784881895822489083992799002676433737937940762987275744440460896173074259696285920413084754914128069182707108229452248186114751935041046475581838836868115435768328967616706311684059090956094750987052902729369616249208673224138842211007992144223730419442425804305424708066978254905842585486875710900633834722013580305803950812646182175608291030299702181805344062363702651040535726349603697877058686391703762250726185089795240136506425258540744831408749934189527722503991727420894376730696569350338621412602926106528726136814648612304383958514567572505983151300599089199272088291350702087546419420107879200160475625182306264682650221687448613797008611790142846695084549678658299162482741154986934303886640150060759272585708713078003993163783838224131409025005416158376670195403602460592328803332841110540084583416164510621990628618059245719003274115050588221505948166076065833419697644577899064554153175418356046574515798944671233733998994505289585017931581436299361427921621864167578586452718565261468767473517260114050360781480714990280289452315690240271698764286563482007227461919913441647515219851567633516986463586184532941349588814195837476668042163041299193732613217664258892587479798034815432618671895309427577477238290525928813484515345304295367512905638921428080909793735040115231324792833089073898606106749077575671123548407625558752589647040616661549524099083076938716873608660015795165278162308790606584162587011698061127471941065659350362901023968836826240453237172298436806032628660294378966466610614418653317510673089590645580511137647056807252754339441005289186955718251185481523925000886925738720371325549349632679053184844447978391397746130332472097638685836062990482639149477405054156305189340639842176942618158780421393345085708800427838046358170264220563614618577376256767589483734442100975226749955172954935207940372996199403412213741232340949483417986663541316012187507733884605506320872193099746334107448836620791571695939404806220742707537627287893461209498712022710421753640284002252888111205762111562789521897105871831023128785125035414728566311980328264321792253156201703976434024715696360842983027321745717878379975513308166799021689152690565446670897599137298748533389216018926818996210081886041158826394898987345720722677569440198790705719276829034291944370039945783437140106114685469944239020722627340762522972173492882583959867236813984230674771263480521679365885346010424606624356700289032122649334886949783843927534816498425055575008592266299840164140973001317343316284070717999799103690529619438331237210753857609661629763585892533358201073009262230932399821065539992604219696812419276897878288627624239135932378980731277162743590237509873664505865900522279124978216921791915189874314294293226789007781842328814654928780422918237010167741996622728534502168228952964855432376955534793946070602500203390779867397457997816786173147547001336157997356671835641250801332612958255665808948716627262889864520099270913358034975276518443345256435009615200474374497040836766654576397291686234759171897154017631422913969450565070400182227633998060068512060243490344960963626800212630911514816814326235955198372497745120546359897637137616835842682173449651507531861817661356293653106718856973438451783838488078406390359820144763210367857745074984772653782287875174122967519606696970082626878506391549365494694108560746032863348699693140217176938922788953546024350487873454275873139679674458703307200666527121543643518544054739002460765331343898106656966048187993482763026427051624749307071266495581305267966673947509781778478757405237236287952029595039657242891722374070225762802909296317983249360046834488137253579740940655589631686001240892010129995851004455970609527482077178566110555415414164784456330589199192535381889862462551958359978840424044841160113758308796251978264346292247069936230408504066416999317614728428681681902607066921016374186971861828008728840278910378117530801843376001151387080365935106305625455629483750174101320421009428373096220487574783004144886127636280824415340741162712347217022434636799611454617213821090887496878031425369757424147076631797717721933840112556350829486510279219709222864120647910800730071066844096753969029408755867129471059167731964833672155698933938183261100472886813034028850827055060760728927165726977183691032357166196847098731687025440528041809546255173368998610693572340194885574612888401130161703580228437806283712510340864645523633302655648441457040178265840833984931550388030950653844902070889433139539919241237963343852429931190765832872696532295914309680701836853147065237108191496094367852399169679837220555509114215301632416869760928963181347092912480643926816269031608054292203024715878179542362685672447513038317507752277391430782275005718249496567996409611459964409283012409529338288322734548965793972957643223855866108366263766353502000675473984359778908545288424500392809152452155381054352992728159535517722895076843648706742044970049227307894206539911406149931510822201370825657413891660597173222750535753136377854989404124600945220634139576760617174392104994575080853390427531675108898225710209857256063028237531703273691064400665095966785138427484647673568454555523372572133312156435979493125847744650485061588037260170587986759310655845028546730221844162362615124191898687967721644244220897150915941201617684168288339664454566608806823629673153266900410278188476784512440790059814351472742052662964254289098633964626640814371079179279702263018137138806413231041901402625385380585640288795205272082357717310138173676593305173868899968745007712979632502137522816290989260220521417306831831411341976560911523531375259109060845997261265494467353885230254784411318159121728727528583527775713113830002817329848473260696889199365875963455622129799335923312481630168967507583656358178235667227923944641039272610215023997110881433621617196757362138878646112672741643205871708719199088868371004881719677618087596766425557862420626228255242439128642327161861044245452318217275189836476637443835807200495640100991769570130514243645554885672223637783966646843248056892700623289355645920541232335172383936062240428124176077697406810973504279633011701973895500560003639771523467748857846073234536693788718824561979134569936793698600206637458040822792645819163407481543694139667970379615519333481404068598503609260306380860296682064864868939245730946558442145846262768207123125715835817229053261597210799853995811729292989672756249783823948466429912718389651939990024248372555596398408529976769140914800754940961221599824563244130825757764090474259581236127473527624450058080083393726492284948364998053619823649544029318703174252866399582097296776672348516707609040298733100026374486047654765560359185266573715300658143147916839444904195157084669899644700842698092819795037966638157581018141469440559937315561649261388520605456496708449638466932647804777413618420701668289068765893635754257084254023935335604443823707530862577633446345891990659693281279327944542676096423715438511830223424172446915486330491705309789858684953474666333896928731014168898469380096456387472102323080525100985072995532213328584626363650837703574300917045645820576799680519230975820296029386141361896504223186628391244945490665468162696654453420381699817038724162484155669377973428857770997940408180255779492206923320131161483165849121629927533641885661387788864336686115779226276268430997447350334137207430011007440617007064074783216357173551509299921894738346732517708188042905099873427678956848890347970235258208175597637221507051879465797968259091995597743142914767132671151220824950356841380243057595264110294078354399324222030162058286685122603876887570369618438786001350459926584782458156069029965333573811382795778327954451713037839420900074436348833570951240553518529172819006854370514898602483581236069605654298944113248482334137596998271268818155798419424976952111547482395248131364552033536924117240816030893710630259583759749834274047756702775296419627151389597268594793577227228176332776954175612167054471605407635735669177559082333407582764637476470239633107550460635194506746636113641317177483710977698595012922390167425749252655251240830593902295982652717532180265376410771434418385563511934347722558343985209203027428762608887747965750461530477340505112071707834927690418559393725611535400006486261798640820675616973661820930422293758639969667145367399939807554662628306365059120732978065558639841579865944701888127510546107199309025420700311186018530366476180088904752744991173439799812531722275636880332241119637399009713290015649908856001213632320282843522461390224350432234998843320039636748573947990825183754319286471518518969819179778071464838549941301213658469308800290096301126940296225811846305888691437422309673410229744739569693810829904189339499038753504084264325859531585224826522997459761976292626672118294424519921014956682942775847926201361661020323907233670215120401845809147439160022637325925445413321494756270223421932063912493841994133349725302899123241760456911672614789986415725398468284491566468269823505514892360975097461506900074089661200874747562294312395234762971086075548674430997842932068065729285379154053031993321254375054626816974261374451306679736969176164073072281059808767302821901217546940774361871857325125444779571669599160817247944218805271958755514143632417741039871921161104271732489942330007475424529166372183607915811287644582980554845520783588753951880898575054177315862818072838396089265797069957000485041863262133461721226844965780787612554739738457578782649302559805143410138516074237292490748659349836391746205409647331918468510561390074636934972641851376379073017352335908655023642537571786161090965864015663830537346310188325219213404695604662263683918217357345104332250332883730963378656946370079051025882080852350087098665236284254984242373356097318278435596108065370860711282066291821018314295522983473997524885417229408836798808964121713080558631809486531755717675895302851751562762522377111065438776660056025881614424597988469446775153452118102405302151651461241041501028400020633933430530499798631600911922357746736576643224878222357714483586361988223542406929352687864997878513051708687980279058822068748933193566129968894521426578766416648233282492170060532258777209890983822110981561155176228755099198931383495322187139086615564192519983051699062079702643140472792842023290842710144932054184018682828849405248320438432191903142090227533251426524280855466095806190382905708766556680304452899991681177914155857233860961197604806040100817889083371737565032670738836799356971180744867455856383541108192483002977205994676063371363263966766867191832880725007851683199936720123653587866387658598804960338165580063066397667101452783765365251153418857366409966363598185736094146873575928402750880768313792871240241438823407067905406431200210392032359360143450580598082091508420782206785277236647638328586397869645389237033611790172163273885280012873657359667124364865525644362289935806708737787176560584523096871833538683004000751282173962356079758306640058164460498503858250992034598229210776962692500089476727035297029284143853467665851429231832469376146619284213683572216943013360272381974040330565709219515538504840319417697159161840041683976230631596524111405382919376965789394250736057065663452469786940823114140020981985969716142107803830797997167816577475121035275574256571998384308007729950941028622216330172486397744753181905650955800535429879524345848646510331862101504737246486833249246553355661272060867647489094707640349691278054415723790269792533609653667613697077715946231058526882806207912578100875129729443787342920317541314407942169796301448692704013656083825973367257146821818555370420114893284271326639131906673147864321820921786953571974229145774935739200625788514065929556721203135536432287112685108236620367905065211649241894582720068289012586493454070661110308691162562439359772671904937020053315230957218401390290658411216161324597928616990818997547963478500850512312237469600099664725972591010321363399135616499165930476919763484287410918792976168571418329517091742295110837360123231059496209061833565725489704019851349253104817138629511841082550450415434887773775895922828482166608405597763384626848782654654307523398005570607274957297165038631497784305846493646487434840382864103987205745085128226367682678160766809630393835931317319564631831566749280258118097612420675911706511805957217916181036072044459794477286646843206260451142070025266021082871049141617582608370348533900753850960943913380198130455075918724567106413404579035294595006258872204613423794706235660345058031165908435974550451405936090017451114166760605464547947150682609061888270778444145282363604562062588619730333537450118866364972894426466449564242094031738868344772573589478438512351858558577372376815861867170705083416247099951547227874454337860393638619893713518899335472110681067516215901940555517845726600437952061694615277092015311542972485535913358259340292735603855508647900891939433698073464134587052731578105608760943887884351752886092715386624752885942750485580284059968460123339176592585165223526099005476340959330963602423064712671969075333311299188052440838596254903075964169876481381182989280785691420764087304273813956190358759911277016232496562131750368602878144024780513542217806453370625823006950494785931315245165165434219101125149850878861684315025109022762742270176028104680051101235052753473262606110932245513400760252890711957726252153897324999609503433984019652325131494409828423369902438400971731207315938883350699947254472547080507811644379851352522400309544674578489058591322875988938576299091723166082675924591519915583342816531175910795449929664104726904213206304301021021530973341235734999404759415907429370071636988831540077654780737573323263587512602432537593319630158736293343023534620897661381029028889101784321591166684381578310188876339662592907333205350897607853656585071792367726415187641978109321429407217272066478893007969996601481105702496322936837410414474024907794753108320949269363257890149316152342987996338223920965874203933657760465912149049343859087580703886742508718368938902268735933948235496948070087899327016157198637900001781165837641390171087142283636335827741681134354296571018954881839948900766495174455947169085080721812355068263595217001351228481900942437529271025038920454706254690992644256037379239601357617328619421035147558177196608188641977483906166815365124885902701575818980065303193245187060846691586907970138546412057768662526666216784491829494793606153964515969323979807183898736184723561330385281237557460818116053096576960093131314657438309985431191762454045999197376458453789468261191967813183234092002539952955479931079648928873873380208072694340702046005015800915982543368729300117936210057910733403448103184048677233448351407847610920195083979872287837312835298434009176322434748258904907864913239684634944324582394754954468479150718967229269347924944045794728243596802446890057840782648380253651470961548104315759882594148773779616980265663903983770609816222076811163540728593859940935673243456644395671411238151457378224575447240098245318402172394586163002641412749643291789105061109098911003283495612945834598974929714108375461525871032874648718139437959339917512395545869379168981081377176572517575070443179792919702396162970078992623339355034527420781735144399113233375045096813542013146155276069842120492653667912682602912563153285596187593623406817316891978276061456854123418998437810909878417966600067953390675330741384568638447216299039182176823761957779608019817059361309989611667181806215839567816890609476490391830139405709968945356880480424760274140343659994281046210210614954139754247611143996008412537034911000528595573852969737438035004156909652355621653212239433703713076213012461786457892824323660770620411557798207225691750065479271478240888683870576470457005768503728839446753764008956562544325970078948885556087314655990318839342053585092900075871134377319681178411293777423551636565376098477978249595740606111789705724988580003170790064588812408397285382115739601538850255502140799913476907536856120818657694422192821147329596226318729800529986657104691002758069948953611515737049052142342431517218329091461424748380086444773886128125786036321718889103842467112221235285667944531768512273477730691424313147167811097629311894725973731112459472911902662253489811644243043415762130795080252700911014496375959701311294996935372143035857081740994593806340853677077100980605655909356740539824853103512380914291036683825107229378819429881798569190743594158256506481287947381889797409149444385921316190676703337995548426037202842293791521125704032089692208813637258560912048826117643380018932190667559028992424434028820663545752990246443150182369416003862440328864100442244012040840912029999707005324970272259784603176305301808398185815293077140348964660670148192959631454900369667719586855796628721187129582112247233707604458238787714083308662611199786174035779125749314906409639240370831426097677967362364576161287802248565695338878864608049981308900129228807981336502246617746551924602141496545278247441606306307558183583982143703649020345517297447347044547397589360881357302975466134681131788382390758343900914198372558757956990376239727986149685254573265507097062206628355343605414697606936552976788720325815838528697106959100986168425837097822769931241305263216859805778892332001192682581243430577275875827822821864502651894249864959364857567890617494855961341025948563813129341507025865997825102245966719733329932957544860469208185564865183670274693841211228969267376186338781572974325111961295431598745155349096480186831456271748245853087878882713027911807512384134841444574570597976729770304647860163178942434906271863764906198658554777190443130165376172987260586726859818568798355969783606112860875154434525543764056917392604875246930464333480528167180406685056059956599995411961104299779462797286783944962956474985000993214423411668504104613857100871092168328459061502164927798462583333263603052886926128810361368595370419512372191958989078351949494762148943819930260448028444695646948268541402059880827101878121628739482127867452429635134947180376641593566825235240451996352127795690009953026658064779509328552764652837029075003286603274434723874502591261424663553952751573622160540172463192490383280800946480053727338042919094042149961396739655570354644311885821871423578939563126317834446833148760308167501263895856666675680031014376575036983283149103691512159636997288197338699248559586600238422365475447416275109153091329340005114973971994495810947390228102007570583424628792850830730171400075338169639753776549801692295530536157513325379234711783236278594116353818870890444143014529335589914995426592025591601866889142520559002245899637124861832080190127348902604013735916662142605721203736100107571331327452111629406936867735302442118879532595076124407059899943243082528188539503806112593432503332232842596040252256718162655688797432792044082164355144233711382716481077647350471550964163828381002914515675318109588179847976756240002964605499242398752887511375728648940073325610286259653157719799178699478650846407750402144795220141547726276962683953821199806997675406258264116459152829413130070746957786674243475775612565565257621692080641056230481703067818198868022072813970129843635212880013955429360491895950673002251542174058764332837876977246606591786492169275714716293972359823018497929751886830408954568030301669083715504969104218633475092561425350003769506045083376274048074884466124688178974921830182124515900687382931409258485839933884088425055686482769367022837532716587957314605660145944811139912320211440848571689089153412379522890438821762159219872413781972506434394457014619415477868199366146482091541797675009305537727598356079376701925951449240973381923763874147873411200066905874454329245805002035658644645409028010981545709143933975968678113404172669827978723118444655715178784721790857751720976887254060632779338716949448974756257518752909714912172233373296197927344760604293553510175654431641343110039921864370996207646967014826221270041303773866490199018465897727404381499250626819660133204483051933992542867999077868672947817679478246075501458963289210722951370367583376631430790612486227244150293922692686057065095828207624610463542782136989258287245491586611066135663420289320594256942493344960872629780216710753556805750337582606838701034468291075393879510989152693819308763727005205258304203824959786562203190080759743733228711126813543395193914445911565977166754333304377825855444866277608980104998587266603883618848849790772997190035246477951186366531791264202542480494646180674841828547054049846800211364626686235533007889400412326948717355843959457165786793208709158774511975991580314890018442364415780772733647596696674502765834161187454452268425369625887445831171407726399282367021981885054170136552375092088317652465522120329915184463024254789800340318257424938293076085533864021334208999079994739893628520271565266271787237794878013189993901400348617139339265930721776839243828826664203463810592409775061431035429130200995630947749436020685268928036130358272050568748137916034824103556578056759994071443945070380370833643917135991119556930913119663986991654768083267035241453881158658505758708557402458560718246938997091077616863387212590675479098538497009690337516703863674012326186219995171385641246659207844435192377706828731417594250843235462112942296811104603014521051525256457541314905190456262443796501471302095078196343414188898668907594165833551659548058715728018638152072428272403416828165155260075325918833128481775245871722331911522161887878311240087191621522987747715903661745370256990345187027583618672605747156617049525761233571429841575354334315115521741114773448741817775574287693220117288136148321592478232735903089574570934359829503682439241409509279027508114944938598110172478968706224627530463928897835621477673467634376620938761346734434467569317161495710088863227519723857302978668497946612774536094429475764470212327778624764360007696570011718671332086947518094883770084889357291793048114203327044262087593097265310504809163368755782791153203265803926859459262165195149785102516118622098835915341031475227710122439358062134282390644418805824382024376836453012192744323943076583946118131349145592649426414199849992184755247360112564997329848900272895138526291629623601304046170242741039597525942199182881198957066969393215381990850447766470959911468132895043281056766238656669245084798567723852140261652473819773334409436458069156917153916546863045266755352102972130506581129289552678343950089963431490915642619895570963229150531786532169544434245107722211302458627112264658745800480248144914953273896570559960043139956619134178157090148837947841639694498743747659057240934554292320696039850043516920400952780692873954873729892780146482068689401868088460327220385475916276494332258266588816272325902465098063832619058326944889491506270993275248969906564822541453816836017409398617048053214380029468158682139094017147046461077692270199280225159541177157532352843150597085317251912521338237131132519141843190638851124952064472201154747202350170531860722611072455010836303147023987129314140787200519428192762881015691911921824688360360082821100225007832355149444346659045816368841655130765237469139418156861464425160390565761573731838431821566228852296622159005868536422085346260119690185771733550039688632060777139877633489304604333912695211520455480999183547994248600691935832740407053787709393950379309492859719409621216117438276218404448484043550294851575761278771429210976968104207680562128271275731764363744975480206212683171637551540046625446062902872042971304874895701309918646722933136456697320475947322737976373409289053124098070436521710013229508148587615544234537628561761062616330590294841307909165102307709173896464390469654407102980569222101320717363831328322504410944755165345676379644549118148693128243133640668545803654936628919942230150316265281904166964290355824545901096841400849547883823804637707874113663420353315603969909769831280616000349325651015670280885371453148028647050922011967735868105287459465279349350630629657921085782804100649568342518015712981254102330706549835088522305817712302681506328936890219211392939735812157384324673033709133184122832616087155174109782370522013751874666838733963582734842374714880663393733988376729494211110610250490938021705619050059302885658317310304919891561437159505183649298213557918547365189614576891114654678048817622015291914216837018207699932595412692836604680957004880367970267730155080832672896278274423731123583175670620348591942462507058596927973762926947148950687401456190915638370927812037444458303923834391535095251776470551204844842244004916600992057819077800168324748403996722182975371462445505141211849864805073643860795718139431295984356418662703849997595067747214465972024859563656075115645421471499112209856921838889507240824897512682092513986984981569693182347000546153207479684591903240547725633489480281666609776037032082149971492229069942559530276600260970272708055652485881398047185242323747659560273872938403118828847227161782857522499986146697450094235121146829704467356803542551352449556386501391370298567166830182722739333956309188414611822284504130342535152389298781101973417520634244227612912771695642839034724936654162140875191716524155211021610224516120630445174193406941393537969139358646264297209067557972596377157793820962399436692121336086910465318347301285056556301563600373986926394712525473255683413019531853084160435501865248788256230562085739580947834274414092746853700965372507662745454745611470235615006929692962492657134070635879936104915529061352686352770480175904293757580980089372711142852585943109716813808016729101546225844906674951280902812005833907694849138979578520747423807198290070088826526759462119046141380200998800038037216686847350428198906708049031859492213419558560754643417011664980527902591357442925020291932396716710130028668027853517557612170273440519262253386766895433893903028929438417663097878451595903237483025850772391921830032444391443450488410009499201446509847712762742636346556893042246519476142196661301429324815779536658289079234611919392588759819358631464238282249035503706452433199398464474390735890234182581108682296599426467384660958299921682840393123290080886889780683996284795164869228008657494685763216752922892897936019117689205306051249408122708421045431798034912353877289963811557298709467396760381030556481343988331826815421896027309795355969410132828520318245173105905408135310904470224160969756503301998032265576293865854604176252003216282455450553106496275563979272012695973772681613282059633355665905546261591414310449562147792110910798346546116147664629266469829086197598936566548146191548771396710237408910071208606953690185790056238400897528329446625012177830722269533593906177851734342385253101963295967615740820060550567374985108790348445153949480395481969213174119027323210871920738213592233357096900812795419766760794095980854044426006208124018892123027117445949728897359164586452576090632044978185941700315670100545348270994707983198320007955586645438114286806025357797604615220783011880892608027178400720366024894645698351724482566305069761764394296633911657392927390498849078285897469887922334351984407264094122601962890647926823054592050512891741821823838726171215414549196254893054065844964899042950552604453700926539743749627141659485344873504895340979307621954377176375790085495224231951531401856887603969539629566207705840335482766057074701897474368278448247411272845345545317026708308282569763046262261879390919529107435539003161197255424030239967487410087389615938177134748906297009680921079544479302492880030525516053330762401538219205224560387320497781758235817437651466576137512191350941596661002163934499271345116531240510337804801822706779012557836547492817697483008546423566248666290579418252837869853278925169499345281861696061088327217265868874414986857041184792982213840058537306122902627384078684642921075863941444607889646389083698694840013854778736305452606799402247237099383768655296580365907314947784719104077120335794455150963862692216407083364222517076401144165586304971550774666802051557410887434252376344899066365704583826790313407820853365244428223995233557254546122259467414938271812371913455242645075258895897847719059842428536468979205325548206000701328488914876260892485562672146022328698690411208465660320736342351990847791217620544872257050838247050621402327593913005562950785587736932575328711432111769690333910870450472243073662351781523484207553918605874961158664268893341745149679410392534186584846408289214826478197160835688325232411280178467289758696306309624165327672334389351693520865270082237056494440991266663823334371304983632811365358394095811172407350397945528299200291944556952215261880726915047441254850844749887324291074446904362521802746811385808560991206822880769857047622483781423177503488900559718720053407625597767492686706454056777408285434518191338874043526640373592585288576736196722314164147091371327788987324659876590868455199497036725247008491713159067932889949847119350308243431674902571376353307487530450402247549346858628804355870509730605932417043043666634215810380305074952153863046294331486018871433453016351869746174695234617600617973234032826460243717836594381919267357392942707046961644715636101713594761136569950608220569799305309398659569178982801969295360731904828133013481871566863295077302280098933097937111823126317755864139324864683783654086961646152860218609550867887115199138937408367633664004664764095880304953764107282052481805711410538822047302034333533787640677105890698261216952422877756414315951682396262297130928093943736222833122252267235577241686272121809615700877789277567511806797926916823244057151123764116346232000931018765892975531484897898625109985072851187059550295994889397261460301486461367702199415620275549587790762471486917511042365452564820184857691689108294573469803326906226578825913509833854261358737435475622664596926223469032307124403162250981210626557285959623215434522481741120672277396956163476476037990317500789657120451527491824929002557078794262013003479873595572835689932776069860107042624921188892024818172156634071422524767951989497521155250504108141087027993896423078505902381767069291768524917896417206772975306140400507980982545685721650070822670570852046365731053259040463548832641588536559094666442746859738830711193067390404889370138721787169797400825785461760805610871284339418279462222833830069293843210462882016638963459931728625680811801807902932602567898382420338657582703553224397791278202634396926208827674120631670214817347686855056328885721637445902774484440557675001697706580301196446910351533733022104254161686443117604789263614667804620495446336649435870257764567664075357888668538392976577658716166956590852167560949256124654139583397756043399426319082270764386380944124989895475948774300475297143563149596685109070689118440794842190680357636239252548278544493873834858996009555194387527540007934820056657001452240894985025142690340933676234265642859817558554552101233931070241685481039466909909245723313039953409804213484718137291070707198334089225516628305666441018895594896542897248534283916623317705980901216029385011372281711897262631885848220385886449441150117142291163152662616442432933030315805179931273895867390953379403858630672470713406865143472420662171172993054356330957968379699644423247024295923176178828626434617821953388366660986869300550098387667207711617922991593326707226198927126148662210792731656996754298668144989024873751603896858733429440995649505333819100075174417108754298426032196809942983647803789621428623562550733376612633029840846293683630344497555217765787832225688628241952590621371659204988427976406193008489028064314854648535268772643351401789762016132784859830384964085516452435908650777678119662863280880281263390515194791822724484645481724858975013412684657037806289469662989773356273042910699021876455006507952314719320895417707212067168420339654182396204878496238899427810886749420507861953995418746179120741842559808620030688473522943646657719682460415463479682052163993471111359569525488099108785643753343287669494379900425839131236778513512779753342339206528302540881028277709087372733665406682197670179496995325539324392292761928218177655828877539236832181086584683057314924691797872723310912492539987888225645421574611638513152718745525625881086684292706442515735042818521689905471272212042653101900156241306535494260192250701213699684378277395020041866006597072198862498632202761469166787746005952734714582764020316942230961028674741994229447547108145773757526277422177041936642653048221078741425913637730294320554118181120821260463406463398522482626844305177358967071435688556675963159816446526196123213761074015769457526332582515936014092005340278184662768470207478537230326590638097298951255288366020536036894000035296985135086145311960989293296698032241985363517958741475836582848510456545923445348762360364782874638970777351782268603314221622169290545284026228017313599184532544353180422280855435029853706694392293618763418982535478642645017356869062363130279881325611566247146386955506504781176073388807013516958387337646122281261298090459242854772765994645613011284451831155286134616848549223512595852872833732145647695950714757934518032246630807818167979335911652615815318248649746735909083151570838390484293092268092492951778931343947539342788071941761583336608608036773563264254150793390427571655588675851962386650012301027515163612417872109689420663795169293663327109136529922675091249778160718302818994519130246469307257661520717954734624056681161584558470696172641092591170329425975355090116397978993663331182309488580639263918123223457479052826171828652792433190043202812207579571766296549769491449268326241608305689941069393717572327751527818421741832395430747835557080465017836072573759570783869586879230614157277761383077123751918960945861628881096441882647217070012145768377412331513914246021835896480703320415149740608511910220007160003409525785027463487693250375512775846397621858042561783868761024294243533896235431172078589905155563165024769823012015515391424384955280804488889808112904595291695899394070318851807049637308461756912664930689502298574837983978115680229248376221170756581648474137266021916060126424345076340022740321489380481400754831774864644616043874375493281577418046253107805233256375445377153875604191200981445219454244349825119328383033926806520504882925441164584690675375610845325893326747215967711908123744768285359466206858259757682564379796047699051147232606581914966274568593724929918442865829175524404580956818977564096952307200081734651834920606667993315603540079112465557887636080080184702181935677133047212529739061440187926810400021126286297849503810200605643368105853491280964941808172161509387651409619064829124884969754620181898743769731125320086471829234770317366827344246191421088111290124512751015690983235873986956602024574909353222274096205138105360164316518196158749245379943732259323911837313276751060308333947629195372166795906856753041887710896747413020320450558025260677794306428056195151722589751061813347911560541501907703661755584099896951254456643837323021048560606979031193411594063110443758406879360581118205895941299075577090754792475629700897300285914981609055010890125904716992295746049024862631365497912331088286033030540711232534366406556176604371784531115123409075202951952516327838986317688293748420287532467369873958470684022477017124414223014783027642187256782872815802998384577025098973959770055191915278426027310981252758883302431885731514848008584579583385915125300904309973965937526555558386538923842188992295637321360049664633506811553139033961906303737249609026611350736283517561439307999751042576773720678178161615351500339438876275592338868795537565139178721259106913027056431460021813318744461207073442028911041169260435212582286884987523663709631818138209605983597384878693819657143667756528710822917823646930121503846564641678303978753080944255042172442930949355501131251595046646255130282243152816633959995879080904975600421971130170225000293567346521592637165900695308058374969794909121639186243821804164375171635519923085662086430721192905554554200981333268466281015543733919185690112508128623147408971519657357154099911581898309416815993794254817449616576430781243131699883505546202292442460217990973274284281092985063084315586769100919518963925829659304980062858939631132064114520872662611541751892197262377505619960110667613839234522976796940838229269858239527407616322343324883742016792212836161761794022394701891648730210611145242378629915032825937242911870886084142788084307484025967927668768419874654763130990539299107404527174734248774677773335802038686227966733696364859689030707943156269353408326498487258937584313100602293753261313601694891396453007503212923526302507957573290144402769534080649463080627521331059182271580836875343972511722209370087193972978245531674722155042222026854064923609796815842757716558073169749386566454565357326927357468377444964739770099396564952820626943834351692302513093005545752350567884984362992005674343994636064617596351712570685708626548890762941989833374650442014055176199354663355950242710371455054677025975345823855183815168124948527841269494071895366529258133351723372936325389985294311691327176404657169462194043612601040622752892299629312849056473708623436308115350734019266458525732600359672410388766825712346284287202183596407557783661735779721483348201154678193185505512948197362910470132577999991694059576439626332680261215478009274785490732990526313135857247998918128915994044909740856297139655802308062445491116813835957131615785389839134266399174184575703303866532495597321151516545995320111670537254914980503281471582175539805200222612648796211283548665712408785154592870564329051390975828618713763780033767940663777390559155322810618063414888029471434737847880180571746075403840678731147036282928810653697744687457450431146425124554213066812370699583568895660606700811764177414454753588516120171656074915539379035850881519242385761299248657926218572857346172397413192225584312334582065690337115141810264439249787020417020319868693851452539566298761601213831412081503977052860523260170543572112571029321206592277993240253699524077689845283876230866339279501349964284230457529589533555587094355438198915237726995225886024084488217921032341717897886493802608541332470011281750495226778157197205831436358735195951533144744657252480754076862272277493569574355072810057731878684822019066323865420228501715529767406876293701114641721831402086082139188694877198781990709614553987504825020414542299061253483534622343102939401947560780977746871139455110310914361301003658524437857081453184812978564754816192676239759810236932698909442615525416101463384655061405896585424883685318355292588248508849229583241618657551869063047130771643799034966324243262025329546407173163897961019440397359590015542932391949460240469158359414891052963991574168755825235189955125015940303235509205468253141024683313137457502380616077933665247596306000547987917745597077813948989858010805043878776096102078165363461043849315636223766960703246435023145840116204897320616593176998283544492388131064182288600159037483786417549372663302645984568430624485852776510954759938518483843067007467817246340325010594620006399991906294450875504271557418254222520106334135921185938185581129900046896957447235392911058859925694443916759734847181706296860374140618953809509026182653831277074339755507804532890288974204951405353997911437348184857440779976250395382117181203899087751040958268955876660986283879298410366340631610920720060428064911706741865384931276813332835413708319563309744939953613675465055282235281195146040518455451152696176172910688146882499101954628439429542374592159658659734374644575743867437016431534698663284761638704512903645808296226231769934666478234394211841498430294301437200204527880041853431834841137301058209808939464769807370856521199909132965302076643644283300522420619383689409178301034510877927602259771316799140529931386616236535874449894593670407241996247857190509123914643786143715247674623796840067753255280507722921745838896634251941141282487590026183291790294670831412456753124773794476934593131948117001271541266109005367507782100337969023343375914670939230985714891657710280610572766273155925208583918834740302103200501991221444323923255130077845407266770519831462607122243249256441428251035875660686125052450512283893031201825474970621013055062846880601282849939331962776098667527308000313426580001550303254202880948324429257213730816978451506636964586046733945672003926294660140445763903540411941586322221988632843987899690971163994457498471678547665069132228629593706468239727520071262410454143973246476443691912708541166211367393092661563124796289031792320152570122607214453535808227796031521954254931959750753379825247029769482889131582046963674712773981863481707693052176088412425032194439587004556716721549771800676228477043392390457899503634420383136312581893840850834480334612923346821500244682522519976831222306227052077266764762350678742682791875381623118786655159789473082239922079134022106492098850827414407562359507696057821881807925390373393903660347833999986388043243706293704560099944545603903572126992190999517945407205178752166039700772143903034317175301594316593014457929242166770594280411579311827066098965314794533451615311275003840882692871833761952715875490577665050065136731148869270942538451957469260747311610773567246707079281398448170988036816739713496076985942027756511488109341496405868978434672581636964818114543675235704659399290615094814216985886664447589001841062512587951554499886131927301825905784927199473798285797465456900885023047798672962683495125489144910789641068235588506518376311096972511081116470728493012159473002589376672100871230206478714966477090428276829363014080872811034826336356816622436252447539510426016199958381116871673812418962173848165975317973187067941804063622298230018279039454221929000157902181064371961166617031394595909805394868537110861807021877414502670133458295859528969091591210248537841224051862294885738847836906244824617193848069859141064502340743229521084801952007550544150343477261366157412161100794151308343814666650267382778089321465326371214735833159611153988069423307247853361538137840414555204674144235898605319368614173207124739768825113976720762654174303448278438874048194611975397103529889099252868093655369742239523626191279070960468806941218397734756155100347569758298616811270752401287991452045179298112842952875722473020359101784054621470299678739793985920715646006958309296746575535272743500552140443419215659460557473492970109250749832974489293174377169701540913485644846175806102394647166762329724303235608206543655488784842341244230130011867099479346765261138820868332499584636795429685025548562331678674497730627527547984281551162523686209128319356558336670531777244390204858018953703806791303094328271766965067101182552778726913100655852850870365903533839960494484337761503276191578234121694813507620981175571016366990239705139266437645982566994683353735073998410562954263037706489425959511669338895250945807811065687062675834714046430191548358709983703535396205522200097466155932441229941886537076562183435138302917317874940354114242991563825237776199410358143334904702409981394122960487192698330528173630375491297779379063092874135827769388618903904689151376845771716007598840360032950032242388618117105210447687051010436953336478417782783876156299437413966352504951863817720537127277520111223677939850847533933205271008459894722901529175937913437505442115678885293603753556553512664547433137452156264882102002038534437985750530585781468887555629131195428598212369840295652039182357762554384080207364535848776105796545583418317409000824789147221110709731474509814925781587186084798820655370606775350948417893866953549289015545379833040643235456581651741937725713446579417497475187125666239334225734338684935699968311531675151979973718033077477580771586033428796404665733255277321621067116022303746323171386316516853631461876547095025622377261835759083088972601723056462944553425476306562630705822268325683954355733717512262598220728713172847520563540962425132057155536618012556021913542651793229464152110801355648815406191016064093406431650287592677327850125667660067648589520059888726346753994386189198357142338322980680322209371063159180807807307071993919334792589021248834161312995387548565279584504016772999543858452854450743018233829155655571144835386846030095959519554765409134899712765933506727884812406193848466271619671950472241614055506674568147761244132789031912196900112915969483524308354767387784999896310071497000806561529215240335570904970041026038571421605549798682839619241297592041868871997018511383875102096441085056588734476043390537315092775232538877848376216193705194176579306524760755325025701034662455495194690934972945424843144371282645333462498730222872057627796733363226810117343145266269068420718679489365114319171723513001292784604678630586899828493887492804181335548706125010248112617241470432445829015209840807363696253993495740461291084167143874831206967761796480026137077834609804732582726560645024172838789811940303582058996773389633729955344489924275420762964371122189572289134419209573182795706870252972087055510933953651101525017647425003339034592695418346060713573562183389410326156305409167388804726073109947400389789332852510276817910173934353257740762318696388358614726096692065691268143950275518346205470123744107415477591126051998798036753119830655159293962554047521850988150668974850653714671549215542189511691260230148278497572384862410357272664004239276465318571940032130033831073292229819640544760252810078018348598026880618778694126031846482178485629961026937435788459634502645615909492114970848961462738693515444286309000914037945154223479777092834053988946450691057761986960811847610504472617957379456027784462577942881615290825205219626968989804739381383080189306592621755575380436411064988731280673116164484151819557548411290959646863664705416983990644527325770761543486901373743165822682965697523678849582486977063184061196659081517832367504588304741221193497715825302162133197512423597986404764350996065137088401658703976513641262418060840467254580979989031207321319046843140936718443694040252824515757845512195484144569049945327548338133666202042469253596547040382326572127482035432662248583084690158868115332585903971436260651297755216261945016814886869491413212007200896455455824828699076106746162366705694406032696019488471240760610575849904168942213354339428703045926178861716833874457391798934977143783630157590807365218379102207906284216817500934775174504350859315928468749235927333353802182726789809441673891464254165217287307576890343835518465576907536398750506778838188552850207458508464281481797228657601800740731242256734243678736935178098143716584436212323383022704921401341545043318365886106392258733516802791561353606595261029792072568022728667897470755862411307797625590037292371527736954058260548269886691331185077478058328993088957355090460382445679381906793254049793846743451858360924395508872241171235225325054571516203416610651262368720806485631122653092287106628086293839441143490516723638449250195947518601648260593317719018229202823223256124039574206768855544267854533386188960175454898066356233653915374743125954928026127071960547220459200743526704469744399345076613237020073353034006387952021838868087071365469782731628263054832310082709280970901986322929561669859947116002791533909385378655646757431431295454055086200213690600866824867113631061250612170289959302841467087036345203508666683193265101151022834312800322416665186034975958993699404438580429840627108092452486164220219804925697432943865823435401357244793041919970831285471268152333181641211767508473255735647603744958974333733052026921690787134566438130824497923636625797048838441697480902908102974207261868000726391435759226413458989490446829025262427878486956009840293665366894858354897736893811844464786451293181908045549511719693974950866656651381019536893335329490798499083392304795964002869681068867989098281975661869597498629962785619375912316692160272260330828270054513045510703425829519350031210779644111311710034823218409956111113936346179358367330472703304704599700118192930462006940875319245747407247243285117179143342862720506172186278847116815699430491092448833270776730124124880181388483147274950987375672990756898084902720131406865161837857601336603927379541628041546302530899089018622495963338452150524193446161664922888195638623196289909377701766617861968605676637334353051814887804225749088897268418906759768246803749149409728856590980132350136602894936684226839496086811411805965991709420762009522907614599929527352130368285708543731747988611252354507960841470013238715795303837208477223999673581865355857834250439455759803837578680198596876351555586585425419081634141741110837008431162480570165448624716555747810648138678952320684205067689370278948379501587182898813896964523216470489092126628098593849505272109358243972573829301135456432070466423276625113553433278359000565257165288381944351388117191435396477307361918225127120745018399560736673439538375445639926795585930854948608504658946909987218619306579213112036786534885204297141150578589277690676547627967661497061973964196812516405022939565345097272402232560569753078484566055523940197059950512765229365308134868498481188155167490925867608337737122847317173654874675070869380680677214445981074688513609822129992916584066983272871193540305051701289110417395697586477380077494279074681498829350782709818844865682453487402215191717469113714086670407386254207315994021099323182579312762959164673204416446696493459249262758629527345581387207944319462889606839878476156637745134428343679804970983671281537773202695106243226412470389121228155384448731869255029653936506421611237467145799573833680230567399165405445447989178239764740987902235521769883257967796716501786039778484207298732847163933167711733980131114991348042462122844649104688645779591310441340633129877791667511962400656130612220177209888141399533862327215724419338980728213198118859415460619609221450497670261776389361761526045407485516293586049300603998276758591000779271592257868908227396847983454524059254140262497558307838494767428552621961239260083132231697397420859894075825223769398952893620868211740268285839893914091229677921585962115547303438048127041172240245903846491867546916582020933742700275600290938939910033180445356876783814122628477125247840099343519153105991617008824646952392548293807164751210601661683268967000621429470774739867241735014484008069037534043775904403230855175211053884149793259138630125653297094263852502332087950534002375728453012213743566930383091363339984828027172797995641914716481616673667935515051724763865547796240346609073513814655611352872052466509594341493914632237527549585992508211095931437931312937337198134759195830810622935083998266788050886970198007360797736781248686919654100837042995669064710186659723706019782132287697529064052607475876008484859776268482215606499232812526058261999746577210610199455451666982545100778319734631384951997931405055245903759295026045373847330384848452868946945532560039908254235456187394553619567432485725383674133583101297491862786071763073261381601643906903134883911888020396256212671708362903232134875534140814915843158307033901663253381642897363214688180377906525501439718367067865973823381150181768492886922898266948729789310496743989174670160894820671131370213577113417323894913766906729063758350686214904659336683538089068162014424764249642446737724106011730736186791066223033442683111731654102342179283722870024539342268306904200308324417658349686437413263972227896732177280144987332020269716574434406406827625156942886036149002942530672294675635132876156287511160856893674295836072954633224978855026560189157520006005288534629206192441222303356238334986279188337927611004589461652499269669287497097604405255700015871295035484615429610656757279147794871023775757530624650300549683840201106548755229174440062531740943288656370428379582286475641846297364668761549556789994357587842841911347918920621493247606009308772075480405485134620388735312309448314214651978402812562245005169970648202627758398744926458132231068090026917247673683589799447082428283511303115414923312580345118471880838268698702672010522131488250944391481297775793353860619721594385925014352258769899041998195773247103686852833192413201006130016203583429011415542386784644113389687429281672132057745666811705924564149336229246158984655632831255596416719856424661312110449039577283270784508401725905384096953277295316752034183608836437443551023109742480496476171316528223829741138667493213494492729713194994362404180615935844059484595883173593863494662912218933621490065236880325138096554034216872977143752116017585780394038562737684486010827191033564525503802116615854132171709294507553872065105220310828797946822353950613791197390229790148080808193787757736229273931387238267367504293518138565935914628942882635821171814064799054143143146003311640678121267109750901607938523946662238077677679400369652489114129069122876326179008401158895270213995263240962408247808408680597715851615622659618956152260911901277808930840701376454624374170881843895819786621255041804375393598205652828006609939711917548448344061201091466057779309450784161967419503797248314513689825886309423955137799839401404279810045745810761659997424704332433020638519838195876246101238663560971080033941393179459529592626129989355420883554841479854166103241716778865152144956303646716709400162846678265572316992320517311241029675114948101035202916686175475089974122326696107399356425298643166231624942500667833938588868590264233811824703591605314183226620804725301735706179120587891800892551330304440974358250290220605884282821207143522642897377694338721375769110013894197921772421500711395857829391619336798044182740950775109573199495829633926438239899377764441099714230570954031786238381713454646663563186920080717080437721979695102412959952413847252271063229887659069962707148020647298608448317231775488737953266556542993537399791662370659593038344297422569000527735863472531379805453174454756033883374808128140750517535571058892905606628521171882360743738740385302963101798854685424402839356404026686935444119253989887844353803758052865056198151019475668690662630480199692079880283671937447848860732770905248758297989924411219175343144981597037059690732312790837874724502086964190861619821528085746119767698399265406837071010546847979477182355572736775835322114399460164699666399019963557765786576253210404861348752903009884097640465648296482950760285866882285721755732148448299473801980271312612470610215385478853560203434875427448575552355109927576349243433306144583176301192624967376476914375864882104600608480641577076122239154910386845806251882537655843258237758905892486389138457253618527755081454118019902167237453962829857687064543021191523207347092240722607432498917184474609710809527998415096161699868709233870640762528827388900920093318574739534515424186897302595472285928627140016826740719286382482546567194772121966018002877470660134071898802789127946136705829626339089659824049467857385828221963887561790339531750475349279033860453548085984255758769107312673208116497512374023323592355439017731263242776120279303803834844511900500770578597305517771756304655449485410870749364047802622529438004936919590573026176139640057555383313469206111482753520948183200332090986825932128178918135381550817483914087094611028904920777447644871857000570616508965515449484422355800068738161187910981207792977913094711174531450013374504284165155508704494240681561840685860393611331729023262314884166136143734918318975132564813635294009308105737172244525102319818917367535495333155503683474294910856342051598601235789696146483249732261103931118538874082163868156040690790362898652517129359828532544022684492166406330061760425222967106765163205982659410698068824749187942544663733030018392999160810515022936614972076915949251958599930765435843445407428301925873381957648348009637240754525573633426086316003398186497578550676139519960804931812410010034442737430416943930695258696719906351862894619988075128258451447885037439968844765778588437445293018954126454241432023392236627567250332143558378852749651252271521065864727800861905406672909907524124165812426153247613404389746711478779944563042628008408976952410529317753345992797054835362325547022095635311807135123568889884399777432923173659228827284133424658842945992451684275907031993891038094281513981798940334134904474486171292237206310435231408390251489238944257813944003253115758312968935961699314031921058202510051462961844472017100163371111943367270634137784012541951924418553965817588473527398441305192933036116713097982882675958364040267867325836039682340843692195944220506685851580614835148825094338801637209115600404603209162089494197815187616193799648845569411652455974138114862227499207506995215679610244960204214877455041151629452370430502266863507093965318475200718595522329212685759808249784743871099459756302255284873831685559203743517178695476616248112921067252525221004623841117835976874739959583768793732487145688239221604434052011274322421084631124270424002430165412296829928421779580461255808981453412704022398547064000146268575807313620942898807730405573451250417555546020677697090758319096596084987921336687753035987097472820039079373525078386663067487482124615525121804204660856636362289720966298025637708969722392672224308802973727020565508409777271048063838565998571606703329154021761106734219361325238432916737068472680311625726820394175406915991764630302136975852876343480558700231636258063147893021017314365144433542007745990851843828604974585753258844180824598367995024863065334053270106279834019407407111001166359269750819968875725955127804648719603971888579896384328668223267328684584440373165376034218913565493897426909231962385320188133833023404833999448236862372854492253308286738397694253967161317003978315523211838388449741542424856657113761865346831544654815985938025016559975781203746988549227347836343283436282468749227308994006105164863266671326892163208954588441686815223413994311311340383375582832959874758773812301004901127690692695792364886008250320460888761994426153697999977501018904580826675543882075068347201483845102402175063742300716733229629824998360082973659581283511309460539606860102985085673454027495687450670939253809011084422898271384042332680571778093583569174026135480328683375766306409517998549060631757151866888423638788783836591471333460256110293471534719213315703496237679338037883948391124745839972358073733249969679138943839207195595257542291991067598325409188635014476062327805209250384858364039912200820916324959476824434497787117400313828695406994341987577791536889906577414572703170800196843459058195371663239153835118605517934446946121324492793289265981990979776054813546891320471660908050330780917025070646091209044687918336766905241389562976157002774219274164832268008039358835012033877754556325540264097585414614050792759567646724905442334094873505352371244868598975378540768375043950644231787507000213941963526922683663105545501993624895602144190669873469427467824369858481276818963225237944674171767043877116377587480068857508221000802294834131227057550723925430642585434617239894135948558180415731052486342647298722332406754872174329717247511035746676076955030699059866790146839569644281645793653893868274161152232666663045451864691993981250967872636000777570137039270770203542383424500287310305340492915364546341200085429877836356129634671066648464663722282979687867123539504133089202921996382490598364832768141172933911663059601547635633295451026729439191803268258197491930632315422517882596588973357385661084935368922423226367994635484267743255491144238152898319162571543175222089889109019225326231794570544047857821337294447041798104060751090717110810140784023850487169997719350095172946335289663263750020701677532132816494682157054163664814948457051929114096018149411966970821903765562105276952253682535807395056883358817447628884414878814263710943605709695887093024585654258498738376182981604795269141779838705264595553484401639888052635976044278574480733709607626766207922786516454299767113325312641204576943575929472710248546430264367083717530445229249393669733678617168508160759844645155869297072078293144829368460201437702695664783553446979664467924614747068821706163611419734458222738121443349910220151161379813691239456966133631590814325349574439363177999863788022537730552588827279512840317924593140493943086562281856987660570873684115686224996157757818159706505410132957610430990412969230016675039777592619742516744352672708569567952639052165754785436966422050732934988451841307801174075304943420886186557337583126805211534272925369691302700797999930903636062358981322980474907344319513295876157418945170356679886574636394865849835025401484217940219773599255108620945256027974724074055164141796775399516731804669157634346638884729162894717704257574926424073643060109894798108750304319730357952820199668571398769254672443743605633146001210531862902248913108809704649519653278508674003400410219111328380489046404351966343639912819816751556372531392545879294674030316608322068974768605309345259060899229553416127190557368320583109603624230764492223375925282251159077817156661791128410732624666730712463822929791194268055566133353001043015175913147897326550531623132588910317823442905955790617359036690277072626994929352919072266391295004924663482588911054902778019958893626568023167514809401683759722781744900281505530767288040680338491704452324450034799801827940517396953470086452694130063705988308554034736272062000673933418971420819718366774992828057638652398921254003142894376949179471906509704351504396692821146968423204743904017989308944499539467420775930437223302465327674695667658378685182630871132816994169469934954062275162799319887387882002756218848431890161051551936774417885673018135628770010525577029499331474362614344748962312127129130549953612858773301499811249160725546471982177375371281496752884848524418198714765361703049950415418005760131698737590100449016617774574586230820861203755153723963220550428742567088542638669635913274944717153435925789884646500892795655461757043978558475557661182247045216246193656835719633104949603052117979907715556273541179619056069663001124562346477535953201375277716140477486862729215564320786529850419868492238712504739251151324771565644074920863071687926222349012729662433622440865441924582825045409986425120253986607622646062278110628231849285348310562130799766586145813495544698209023401472796105253812721900582142073169846964682640355597125109782796364187395152459854427461952787459576501903763196851383733705078514547071386187472903287963422302339412519198078446266923655695757366847624559306032488504925482782132881448798612226678103582682595486658785322575407173467675834363721919844316795434239961704612514076450898112411341542968875752625091138032528103560694409894819800854987225783471967859729423560249377461988471413655699676732563516566623583960697683286746640340123760847589360462605632208324869621636717605937115005323092152713199685234866541552577397637655334608525121947292831594216144712263135049825173470472155194839278340667059180775043546944764497355392140754621905219103429945474318355532467580168387541305236975790865331264692963089346100462934075733238314831826072033084329422201026679864558643790150125237284776636202312328674656497950030396675625775672429423212538739058635419324948198227791672705294913744375191900192042703039463620872160458703949339470410325950896284241672312372401832521171547454584835181494791908977901570483903256172581153957614406652459283891067764443215902719915611806651182770384174847067293401061991432613891513849098927381014474084457467254500382690801865457426117780942202121429346022007290938815371149854012453544402125100296521262832963803525647512045159429475028084303530451788633244689698104160286397743405901115687961654718547126997510913348996186853664533536163032776148770485701775614148524658892890554208709833083263593440978889875564883176646456509434508089989735816267718037616114932744371678634174813923319339793352239871431415107748030789226070923567653270668442707328990285929797175004820077489403435903056763774449513634866022794404996853406888849688700670277418860034096952626060346790060051905504148814639448587065255961321689746515042177348233053052174437448212953561881344330251938572409321300520599700058468626201812881323980310370309367303734826528638932269262975424599089617905089146757713618989159790300624923758713341376014846077465844918733433142232416742844404366014834479461178629256932970581427806958437333268854579610347454851108869645369027298184015282360872301994516119928232091135832521989980089520683470504626329482462611190999072188445547182326940308536082488063741392829069091349235072204827620030205429338019237328427426844451876684808050743728968139856493131677428364690983002324218026685986794485921689447036495793587046592264010152181342630049954799787633726728384832522962711269892945548313174167331694586480570699325243656734989751768766079943621534471546247722942971030870265137308721740697192379959246619963530296392383266268157571550960135087732568594373289035549304063139031727606565852695487113178636041704530211222083123379747143656016647628124748090159024342113932819398640683698177561256690336596876507928445650112945176273625712377114258652024349233594085900620058217030071670342897502551853939892397197427417856730157366800255662144984031464827598265822555830818121658890921231413322633087638059398994358096241444692425713756593873413447973343237830138236617105336142242157760409293072007629637449460452708217043932644587052518708353570873700389562796137706265584115920103307219250852042568673152454662395080514943875843553426447292465582038249501669612928543850762601908111741476120018960014123189019163250649106259303578880040898646197451034160745931533876034518006957310903844953940333160494890165921882135070939602895772027414259676145388656956793398282811627420470416996827968299734635435334072050160534959580585707218730196132337380701989571762444572001825625171797435059017567679286674550274609347881785358118650984715017737063722066474710866723435207313281888880362927167022609999143388117565515796835361341461188383705362761894468238207097757297311187499116782237142076917701424246076442464095023340562870023712752723108652709203907418122778418344663907932842733366784620012850926003195992010319197665972337464795400113731727281154979200312067420875704210494338877065488976020175359023163073239152248105387665493382604713730582335714472896506395359692676110866688961364061111963070813511240451667308163871031266542492712705438661182801205308078737710865144632850415197047867498339162265605637749730584089462769306263421874719622802246938012687421304355114997847277877323885451582020062578684209715305306752317020388195270306828908539063081871928073701704833059251674792556383297452788626717502709749527831931402562367087189993163268572498368726086992065621576997836385531399411633748480211137571792428012077687062065037217898008129463999812196904143395742353463788685808372912829601141912269036295964383685105267877740564856553759834657238980042987940344674715003938605159632455696741155174898421676239121255023114626651554238358124419627291981353597792236257053079131737202486982264721610459103659765009385405883267904002933395231532775189429517999694113000728809916947448874695111796811339251609721876926874556939997844425853162029453158646001261635561448350779603381574717656358531421406796745606230211357119878588594851940748927154858922398366125883118349474328889685375166327293817247653461285945413398006323972533790506183928247663086331403160695156538421664568524884843267221027408587514855851428398038947409099082248747248446711309578362328937671627127720408877139819180656270943831737605851402740037829174733281334693621272810362152676634600603150685526832020307305215183809720391193849478117571603855231772517862093744135949060331092933764010033769862376979174778853057116900868189343636213664666683253696201307690199259441330855997433397889275573097467301383092694058225986934898938948713961514514000077721220380129247167463433954485654847553794467482648907770522260711075340184415595268391335181692860436955999464255604792698428943943796027093364415444191015393208209531959881139198525488537340751341809192924108912798649990749562800844297870980284637852213400320695811121497768242955751453786061145967119055038971623173858139764622494780216769823967273798685864809561938218607527892138199146265478440778921674903284193449387857790423662972658580919207858980978931102934835039398498876021582571047382166031911130678415993320698688451677412185136278410403496756334223549510102604353370552684228667102030160932231928723701804032759548621196586455271578703487203575957905854456698232174708219218129747645916622932519671239321127080053929673598502091135113973989820013954603970930052990991192063979467113679652177632828775371391959937351674754107966398882649947193375715631481466826267396429447365039676736830018630526718619052272695783971620451352286549755280622303470349641799072968397807167549795090357850103074073575425606437574462736727901228985692463234292731383031270011839744732413535959932475108485923690329936186283017991058774327031797200723647975814163374583789279490869028853940645571587078349577292166157723838295292293995097925054404044589031240471163251761299104669097935366729204880540837648563372218423034269203859875547412642424411703385358378356974014857791717509635039906935770076426185401070555688206906832355575442123212618640972920162050936805825584378614415054511540724448586648808330716683614235996241717279405327620168779573592825169710223920448533551276833128624296259302336480596008558091677146071237772244317961730563496006767670703768717138266817176292233699468906196560906017577399981018815284247153501281859540182512162819715065743247787145139744992269077254802181403729201932782514099381601602322504511952710157734491940336915861576105901057978527393921145885585627261853889565187179402763517336893541260227382839810776512239056943778674073596820281315495686605026310254990302607728551112389129893527451895794883563008652687461660548411645674082180317597163148559552583073333693887067925601015455331756018620925797857398940055712101760848532898558732664558124319158320796414876461627205513839471309286900088544204915320681467815714785088551282319619637838413765474799848852550637600958765518920208435215610197013551400446698517535256807984140992558795467884092621753270063957378769378988072365494138135228408677579581294008616174669684450992827384475827293938043921981017967661274535080391688339352691345296680940613446322316106505358319363551663572814202320269882429994437769316223593295145425454243867902859528838556612129686220265302280123026492428451232860651324710801633184422557598714105497906034551179587973964132819934107605964334467922329448332795326809251164157920351203776414408411359189355284215810773293071570952231118118488371632870115075869303018133426049307673493923542177411787727211986668697919993905035473681716949406714296078446127267519902067852982416595182773287691746885065735751403732911405169393083687348711048846932169557950992878743960948450552155111694498979168064102830618672582616534517873864379680413209626317650314108243243818507029893169505769102555821231145258856690792377218453873404657988679706913522728854311079880931924832156186425124653966858286462369760613283534732378165294552615537461273351215761468713418741682913700465098526829577278412036413907011926095386368569916282413388843914209631045343389680610311259126812498468408216568652291302888930957006171056554187077985501850748732676743017157685887722488442505904207117336719677749163968235430735352257353744223477147511914234385798998122491425693245381916190175966973867140111530724489016296634480377469322621154107361243878750869351839288907494867348426871407300946246122232845069858025038509621493289254206360488298460267036791027773312194546839444793667541701862244319085545615598846316956964884964078433358945990557759178042138867453113130532856990860718423850956808887196088105699801460606198165802445328278543840439886255845417978243700775043258704777856124233803290709607951037992530484883298815960689212244501174117831470160785847187575906699249744485704998565667072278933579672525404273544026785617022679545885971374168788470685683594498163964259028950827527269200639283766077946155111349969106285082786280044330110703614359370976218641301802307044407306469551510097131646822836650724768624995907837407883654339483936471471632981810079903248165178180730079020321138563953337899138480449936092517378008243812968107050719407602426273554562133233189673438533985300157015266997888873956494929292716742885756158007392048724714822456290247260374922995062160531616866043196415373418327057745680494062821347108516283544262337609363264211299584372916206063793726957983477032777523620335888876056027354978167506912242410811729903717401003052944209254256765535316332782987320584051388003388607707518897479019338415096155486644870485915493979042379069909413821617367733284332531214547713756626874088971753308397802844741402413762305524530604543907232358971931956816562251051229770054196845779575945571690299205486908491551132725191592817795890650761017613571630328383631340720917915361260122367188232595901151053262545782843549058335754208014952073575658749731330848130999567705464780406357680854399766146884896871616757372871557554494946025168225516369272229084846190128911680138141553701311278027314156900353634345879471180648353927580125990237386856564357956313989780768051881460486099207197205312695150667905696818372065749471306908931162766788804324976129551279280642681471056019686741152952203623368642535430494192380663841839460571543275942151870891783572551721563450060846474948970869607951166548540973654936365211984607297345744324788161374582936257522456646050779802638714228492601706904590646136292673090717473391739917617851972410990440340611669605561452817963319286599198474476098956416466848886278374516034560808300122312477419621000926002626864926168192530150167754576184445100462721266105966149896069221263244411169698111456636610190108082434118927236558969643758113078604192100288894704482668265976886841333085364992392446949734450299148783917478610214727635454809740012825686990396503945369210087346952428938087170298821927378497209905011739104759073382511968686963291963138258694086707715733973606409766274280300880183821498597769642344331549750279085623271999719780590387282804163801215012462745488031867059139459233918585763043001136680624485563439860977331436572873951586871063875390122202655347355362037546643593671044012696914804774745010712166358737722048978447720244239749349581123341761850814270223758493477246021208533768494443526274477590870082184821468671171812440267827367963004894732838604655277962482499923766880857156724658474105694958478780520367507768629683305086628324277012106592959318332247485981621668368898519524160255285399988180033992668520276814024460205930043689510466889043026466368148806829880060848870346277030716272357567555784277121294641295970811286973136043063730528618917222219095006762500327935321152096134589348023767833447278180834381303782561622591280311447706681020934166425203190598519051009537780258288205007850352962310446583329420758120266469392873435083570783598522530066959160394243416094621643616720802807492622143806395574994943734789809932954310591603729700719723528047372923528182652506527286740435822545229400694682944373838480466212591033944211068658484790199298111593693319009082133341490035106349906232404608995446068259610439899401811521642144438525365142274225893042796070579898566777366380012128604618844542314534050941399795123905377136616411185111603752025662527273508385003258753243173764338781007717238681878555290486117657574451895659499610274072938406579491276249718771570199202580073027495270890478485028556276956477967751778802889536591590566426631445365021731364257340608544284121304721675939550938579710263263764451154117515238644331394288224117301934631193921315006920447816698837527933840608193598047243108926669242154026684351665245389289196147022994908916435097111234230127156823910350484582650017517949283452640837782130479667612241860969007500681023794653876812856043768075060445945935731904507831196384102696007240641164050300648436410559930597265510702857064739851752481032491477640062807465108496565005861103974837416071536828330654152254699911361296393301165905918641591532708400300769686624487641579166089495910605064143956886453147519738433972534669705126393673292023834164252506407278074157294284619182538072803378210007990585627800817277206162808688087607525016129650495378844103694618237354392561359070680551206418873431438407243085043124834394516465045310791025967793362981898863512741937705055413503014004940232990894792527077405091263533495900718606302288719018234934086346034073711526663998161181156124119291429162853059793146687469171285613104944098209406766527161716950511478489491963976751936306410797386882375316557044124958514321998809739803750511533102207303388909124373820859268591771157729363572973896001063736068122673512369722317687579394674735403077324222091956256039024068074222248633158167868506996355417789714096855388638985793694374118224721283481685696008649735038027825738694495776689446117585809830849024909157429117136162564102343582525925058135631938063898497368550256179459797137354982854169631074261021523714629293298682437592286869832845951327677168316833270895376572839400647465264013833804325861551592248496831081629171784561281346370091138347172355920326579822785038468756659775375335751872124123782278964458841354782335076450113311504310187252485224532061054444899132044341282237060496793582294428024202547193061348461105575200608454493554827795316732203857452654867043922909423094299607641987568827942641035377703731245841978981856176208832352923426599873525116209439883942222633655103184735783629340351399224479449585460082293319440227257745720926975479529482037459309415948136813927827545329413107245543612466456893500840080641741038425465090455355842385017826272556292594179411492308577534190609718042596133259318422915831293571805576245165998770660931765431568705648721260093248906418198253335912871160895591968711896315316782718120772402407614253027281177994796805867319956875952106438092313734489088452875059070161637118001310116167134993009799159525561025596322716601322022376480000167902113151977811780222613652649422123288682595798187010997119758090805930805233236374368144897748708555214161032697271844105044816508497962489635526564010876574076622875976907640985128730813907645608009574723980479975951044886476657495223437820154913456738116870386586718392652428121681636705671956684786350534529205807160480937729908520272767274480638843012700457695980922320097951713628646785297353074553204977601675411570957862580411434515187168513300281170617976927376325661295308168753263843717642802499888738691643949396187856326428186542576268158776277135017351119643292693394584687754483505616520232336712214948057194210680904594989524751170492975940823016059089469721266670740288254044054971167116497350395021503385282204032381847869375543328091912334868348976393910072862357395275054432326414033339149327677223585852253173928688454111785735751714229425819391821178161174392393157602286791145509659425033309753047474570447514061095272484988154947497576299687471791522521004888372070952798756111723255664699251237751666757375850972568817939921347410421562375397031132878442065993686669785809544473507191680722368333533695342452214795160175320361293188060954008166475289319620593908545131968950406831772895338728525860535773554235751151899466640093723333746610548481809511213394077458088498146384072071113240760684074585192339796979548928550951478944073970032190074611671711223059277858676781315329404055585975735527551969946134792350033153976784872233181810546220669378458811726957899035980552978271263661152519513201435300389435104116471759319031431105398979050693261067862800343249818085651102595633802062118417637390873244207720621118065552720917565533829244370248204369096135012308699732321307509472224074505745608997992748942715996077266963459124166914320136728208588502252883198729458099255972965247364067012017029358486646445056530691126215255231324151580604000587584244203402686455979254462365751383450380940461457091593890423112793213532446990815150673224059492984073904380033252864788118223436528575757808943038200453063188250733892892670415364302757165774685206409919758863975381401686331306256794309840743130430512948932558505566770221107954000415429101881747640762919815287686039519144184319718108289387955951084844936580874489069547605039872807443395722778082694120787975109903434714849840353415456293614984019139157770391330461440000924411170935817747170977875951921216586044065258263688456722931615026731088763481392466544271566465723774895803052781843150048352201847813569578658283218983546936346327435189131530808372577884276375219184996848701830741781353646424743185205950097567649644529580001215419007324304994594978173486543522833759571429516899195932521147460291730704559306083834411301282248097093358661372691097333649634366560834480477372775268078933558808225751345767915202765496106229558493369982157962822009653802181056770945501561399436638487022199653560196426613281806778955250407850409025295989867435465454635650641375092301606264376201247965833089501390235212665177261151596723574097940514923913828461341541298840892478163044780846710372953090735565370439210989819176961035673032656334065274422740762245760765470426828756532759937987577947162803995128676415159181513089032189478465358699229166426131943257630095244504530399706623030023649563735911434400820581332144654638381514605338077440044978204468832490673713662800623684029215200704630062037938302206019108557371605425166613560873131544076423337543831033219244945725476149950852542429094866928244927392902485917395288841749341435928458357318106375931691137735964007117560335370704546671488881595421088559632472815992999118729469414798658322641024888804428901185555115430313645299589142531212256069914212089041137716614085630879315702326870719711680505400832302668043046761021726232413602297621079683915954739652400729271727280593724556419818471777317108663776332902514181690300721332871090740050508935926548174757106323137865413459016125005387624463633911925159519885265098001895316818219378545220831309784118349587654043982040660291382906649106355900839805592673766961116735995352997021483859269517660145611750533887348408118909533763148017066967067928746422870601188443134152601672097017759937320525887313972829929150387538132369134123534743436188311400007976300630566113741653309076454923605723863620897808692889090948542567922499522369642801359970968211450888021147777067713007366799460463220178858888676587009776704262535435217368159137970074962930049579098366548985193638092625409866527475724460422821567829971341085601823395294379321845206727357475979280935357694729072081409854008436530335808399355396233146683650332079068302111567866112439386259612718342175591530734483349194324033430396072601323980643209712284642449075092875969660730060388920666104523503079692842334012702732379786554852126222538740492930141313663151781968553864596236679469990273206474283183616419875737075782448066982940439009928294391311010576554634460950611769731014897423568239583176472638040211520308038204743701878152505465215587184898921950136216054301780223368552894589081878010453316225113354317050542061602445186915447697257784675264621628444300806143142339965139551813325856644807281437443598431479453265206114489379713354837599450192755679025541215509361762486184115905381360067975632668454953827168967316757356651102112221085813024190363058019784159274281684369925314662859972655329232243441580504282979121194719437630498934339104050967030234754161982439582263098509524304765667134639695134332227244305587494601360721080459875819705564365613747640968174499491245620805448650269096317030370209669316114742943290938753712149510052255004328041899895191812191854849393999286415464210517948761975257410655293279337319497293017247168090450374657647370450199124486407810934785744001692775483769002975223476144500374732137434264195392747716593892298881806054032720429036260853791117392735627445214807516931935698903240515911098005751096110884623285451446413777101950794633405237480170268778619078405039136171161114326636994425380598715813569054780228554332042673526144776595296869616356906779496333321776648919589784515893551792671622313573401733564731874194746791139373976352572206834758314541331772921686117223748310842662980979229998520419159864419457094924049717175041381059105676521587210900709433181040478714852513867932693115499656222577558998405435366779695890217906610958220960977138208974060804108964718118281824218462792518696628688425521901243029402619694801833702805596297234918409561041097836150330818738241795814811742117212177347357620248450700399111537581437805699595586056184918916900481391865337449342764463120139932585720483224887308472405567988613390181503969003318680190650586934534690578066803531907393682782879995667141856668625745641106413404318167656374852834670198601118300478234844809986221896017313467343580221613818431190573248178091037311016887053476779809696799041523520772723729497912592292223441505525526109597054571864427871424854365288524022567284923847054743961177858996382967571475728763580493834748372274006522221232989666354126386086677829269744254330563453676666273701094245497296209341388962859333663838253698138665434522579706470501735493720765044401576028158414277143675167632295683269222005071568993579808238345696158548118002476035936723573509534303457572598774901998819090875133254460796815252538956216812551647937276126149657412490608055618448271929433598429010068275222978276943467730243353204044090623972101920125532115051463113721829673391784385576483928281608144219746462251012755695057551330981795705277785984666603239427500824640224474366228402290604814632018743456870806285897710985246659973126488335081781024940586089594239562097432528635540051906024130509669264194280993367109130542745809840199743384567789500511829183058139767798454369221455786696705177667150886776858277538164674255366176553326863109912617089590279264907306548201438634688583782361607217400182243019707828422655692690146067676355355912160711061904507261474605865007910890960834824434569452395692611132039719410356638101528330328472210142387644608963708782684716344473556478864819706418085399901495631775119469546247696184923231236536322421017213553666450481562519331433631464908839443726851907525380288508294120065839825813357753556609908341882920502332716108493664414439601623198612735075625125569231428000574478304388644739111720491060964543020760856540847597095424217305662140848766166650274371247177046716168875670373910695347426356452943584316307849500067962328797268553299927632589558973462614607412440496460168134055200126347038131045958275638205152998358900876155365965507054702545304892545139615372760816282694270326212487850696167142955971425435129521283957266104045284926073842596641423267418435189609754665690721714058434998197009816302831943977272725373422041808762352269265379969075432458673547246760939926748551598656296407496570444987987404980700732209334873447356782333161438925064462705680078474314451354179428710675812632887700019375813161413451922019100836032880997649545290179838148778068305587984044619907442463067659118115039037071918008359479267084492501493545980242727758787492469054492362816899918909473705582594518139300098800995951842296268010351809491164725748024332843695305220151029735269242971102783021292144716162498538194778033681045307103354884977191088736427012244344695071461381822971772096476721930210110175991576467901959122717555476211697785034675521715413383386059048008431673847303638027949048018401455020971457339328066796880349327988445636542297009363321152382625339114343521242173511155560700070096904261295547457066551237852894046110997348243421528591642704054019521907044688168790017448850546591187604454461480058396935600463723560352397231116456975493820011754776624687559197721031118558700049973839941119531258818519492458066144779442122554448698975665816244246026856179182393310300525582104534422010977661806446967966618477889046640471621431364676627331867829514097512844722554168615267974494629523687788219982268728703966565576798275151489697306809794332998867735350307676156246057650319654548637114339951213111840754941938095845119314827972679448753670597979619479737119314571377736689824723342079511772186814149999031076976390435884622613988065820185881422886507876823453319988928279188188013795259634274488805676546321785546278611301652314655557711329524248865779024354175567286357719881345273712791319870456632032161792487042374377534029799114944712396303083964801710385050999394264325806211167411527785772981011328599063591387688628872600020107626666696046979266672696203708311929340581404412764030322569865100830462546044081084938173699109610910398013465235594341034373532631590366271839428900150004912602487988171268155443852427818018877977331715770756824252553813181205805111318092678858736041320023217896157676134543098244019636611318656894553715227387823801844694697656585603408126170018264644830398704879581059386693169682411348700328404341343283135658774560810544649944275617712605508442685207960131613015170527410827002516097889979956895672443549219767116703061437857104436048735786175510036272732088908586433415212693927145659396212207736649313142551775370719672391323643761163408267516517531765600403475538374530766619054297120243579605253300877750843611191893001446902940209177852107439181234756035539383229482540659299669007296247674950023837450636843976254124802462900026672841910402645023537484669470838626566168087147505858855674989882255175068481053118389119880199842726729274511580627333649674933509224047162542661965608478222766336182345974478594665131039493728162808302816822703872657671047810538725131359611154732183031788763750247440042515706188139589159597191702727968000502131512449465868657937958842963809430258672654525988251783082605942010171896004548947310525829096546044772586901948080680481996843811817841395479115160895095085249596216068493535309005963940629973915892194100226805403909127060427361539580512920121737283723733454617229468490201568486990792944821879738273426341004692338757536649915773976155427423074905753037489451725958390132893414211882844990740243349768964823964923395274500222720261886805214899784805176320658016838803685416164071212995985751983219112425958887144582232942100651981403135763495460938143188466584230366892520284277301194049117030789935656500660865075005497963399802983560349286697345535749126131542425961779075252606848962606291063030631679487736326146938547342274077524879670978433982260019823229385084756390043033976799308934037846178855066317938000812686960589811096675913182516715477000203333506447323459372318138318142222948716882890116129186285259288923411108107340763624350969746823981360115328960919546490181299055277310134325085186557439673322201921646156366666389570609685042851028427087963355689469176778816695982697926898071930811347436338112456023509868848263296497046410483679881031487480156101825360613663358851217025260303137262307043324809029460367844929666790998983357002048418092899432386609870931815253249098485960014683528276315926579731914296307582604334686116065926212304100816079185783414710410879298639239894354969553817526595001987919497971588961818418919235811925582431322838290289745194354772451226852964953858691303052035657217675999597824070568692084916871226032296992316842765925496646745861827552449035421208147146556976850575751241311787414636435625154693804629801298109969201482451592523582762269790982426122589451011000550529232229748855808338799485720115709064772725931475677695028482948153404991474551954219656313052032827729840370742947357395007688640716969644992408952578814257957004746812584789376545852818617097670290287924672230943674806655636417357252560433251322813808761097750917376334836612357436497508211208642605867905543253862744899973276453724169215166745249682584099847696521669319530667285695445679424580603670073698065221077303922340893485227238702535663131184304627583106681649835899458378999205096090275770205430450459061622365423241023411829279507585352518971875722295427701085503343276568136771141061396336023452560461420660473881310786171111225005989850025261638405581670735615468583208748817499205652288216183970487537872930290188417902415437607058063541953223091354972865788172797798898866113709325030922059374364635336052828642262459008387013976586190894117816995286861972048439452192260508274695311171033373679327937173620409080657077150825281577923357023409035984684658889862303915561194297501197697323774641265970392992990411695415050441577698717335929404911341835450638435585292214920423057170596706983004063686069273587023950951168558498906467311298236789105688472284072597458673131879867701164356246408661653370247438203811078277779818695233629984857581566321702596761221121538539128170305627884690023326197895239962358616884368882998897084881254423530194791583129988706060833225604312970576370261709024866242946858060261759998806417408800795221793982128282772951238095483051438858361773447856766598992411397885991221908824433138925224729253951699476311151115127711905714880717180962995559940025952931960018624206282705313710700113510538052190010661686532022023595239491094637632378161367457219586104920357142641972712607595282416809613244572231255383008461695445258372688628252724729770590311146952315857156564007624225256503845727529106780914591403883250649758844409915417390107671632307547797656255561785146513645292072344144464489617786419135795923856086936412625426739151831558438504660425195680924099328162667470896470474947088639586864481880508579327953281994263307637694714875703463862248015242789046478481511311202206207472522370098834936488554933685540097852638299944035309166685678548940997043724268212120895624255088152676523521509938494134440199744002832401509852711830678181603938921950687553247914551143855394842415532818915239774080972520406354033678437179727557470646303254530360411021946322696395941647579486509781028471014528085027797460130784097093377034109019769995678516861576623539619403490405884703252377089229365801319510146404902891185370470526424985748330616282886996405735893260782115696168394966702113539008640899268404593358294130334013640185111143566720166877339177540640331534701544341827194448121018343078581417202547270325222994240876389481057830926222822762672615960177213770063700171249268806571088153057056808400994433582332910587848373233002958100798489704913831693758657375255495615208729620074085899197602109073653246179378358318631394416557695534727219294321104429780611740597044478497539246677424890622615338287940564678288501884998035947858317683814751871373247552349063858268424870092798199323986880888336851940902026109255890863179423034466343226659667291275665736485057043071491785241411056892311048259753029136735149735053370566434271883393814689935125988335931059572440355101111227727811020499375610376577627547830614008265483409108282221200682139078748996591453439172033013372537818015540425518326390844410590200981326268618575442801812747671236801642241336069120531406968020239155378318657254427949164705360120092489505885734617617589940525083798738041679597575103433008899445173187476828203471762266544490024070155426390905800084710192144843857234336990208735617877306119894663228011757959143338764434054182180981789276343905194963481833744815299108888235677383732912701137706666697976841810970841675839451284949779734171782220305084720803753377365309192568297777221083814074032318074176821582945844399251000124985367819119785157628130601845873419583087175735147651492664102223061240345145733895178214827290546922934473468176456361845894836963935000931483374022270004590473825987300864768857580048128640016767766544192273921096719044105716407482109803807801373823517683151937649776910608015269751487682418688026441207771652305053058039877517964957846878873840177881933706401268278550474829683655362734720795001666466194864631919916398475305865649204537721910678219807908676044942950896799245658753618375934194086028829929958506775010012383256060323078297720627809018745057074287897971202686679209552070141882225906612913091844293118586240621415732293547414719923020213605184062133748095155122392172375533798039873821576842692140353078333214781421497050969717920071017423728013512862272918600922443378770354479428027428104520195894419792716047696444035200249928651741680303845460370418091532035064830878070371616435567501854822855905520512766851558189092903383651146162970909772758374417774166391719969297331944396942837384105606996661002094939857249881247384491987487321447895351358044546032172840612074482685220625371758570484577216545797654411218521144510737792563473952347822172209708652752928447202497311310422890408226036063760160459760163412254255437113676141454329345954594396303157034701574081600755779797666411611589294475957594604426271589654586940537457329102229222030748317597437006644191139504123944200948879064669619415349017561306210054648683652333611007363967181407225622464088175322774047010759434327645675160158403516924727685814681060318159502061317870626505459525074421859699100582337273473793159358949564176357229012013465095832222104494249500574870933540414465503455415981234580861762474127375553915352896946268644304071642858939493238628089321578607456351170517930433466064468947437149210716607267187754577703418234749195014210439355719340656514408709112438536228508938318318186747670098965484302684046932883148708862630971284086626525213231196008239162948373184720764399741644659714684167080579516289480163970537921588970556388356918107356963207054588851611905519519479148278425003143333300241573319274101483110074933357378537727043767980892363776989211736026878231189750484159435471069899396341868451539619327398227865670371311232454810500211949832996126673101574054074586196013624541583143350464811782625050167472729244826949606266193288754311835708325279761478107141243824881501373858690467549615361176935765263130501367906730063655108817680460111756781141702144311153232655488501969798315970846016987863810903543135041199168677668248209385126741341575159574243701629042396624240238503006079667315267633428447582206302817764258200925840290756372137013346179259502160297546610059484469269755323250887387307295078809823841943787050685383844378752175903637841651447644752532525223692347427774855991766315707716733708296322511659733172841189827553265481868951168952233169550165486793222150450984611367052473044856047419313625218154663027459296759437855082677175406076687362205027960870635551405376080441241840781596693015749835763712033383142418766532078694908171275644369075927167898697669428845473161333875450086686365898566346283243433294873173015957683652415742209090625504724006852316039750496042688894989599699019305814161162543448868820774625835308434091359769503183147899971205190408707839876271367152489904064377531793786427787060910664585666950911493750048100819687012915768024499737520845440942324487189312282224533116101123950153657564658070314157206388808603792338908301982803213816378268720805736758220704871953876574075665911189680931811002511828589476725392789920843650302309730719502115905433917726459358809234007360119937883999496698765389600398680601512513892697990617456535403875686757388141772092795115207448405648907917309573564695422816866140617483401174423918179546729486122696562964098394994529047372154301721675271787917214677182714647343262534075814617848318616758431524851680665596820478259568167578890515529620991532839506524307666295346647942904891914480813900487722897462508158462056218133469529419455190202550335758622423777109194215281611203673001050005175811828891255166266507558212254195444442949439656080310884388327935817671051688270864427647228886561914211207859086541085862422790213174358331273338113942850607195088193981914822142348240913631019906931632041866590806602369467110369703488955996751909671765872581399944923683621001931696248048176062469559293371484356542454973433119442714714670958414325610127925725627212445953042135490397374901158557502450848653124256519253409168135127397288304546057436532938390862207930061340589616734738397929191350191106516490991012675255442483180156228492799052596332227859664212629199881432721676376622458743696388619808945543843928506722315257103364091812911028516661143966255822839392140832275109076570887933133895803436508877240490699735158991628955010640290423153371607225871641193502822407179171672299991508111668014276717936583597515102411322704024658596605645998470073520243766301005445545835844058677158594603346983160450346083059491444474220181294364109914877120386790942436879437220176504401226201019315016366988487289033702823557369500275083333747824092700376319758090256131055778003501388652572097162493215944097751415601213639240308978917071816825734398140639598018751587482785459726988699077490715095869343088224473584834898224186759529614410687471752611669955256782062776825228202575939307458190573126260719181269922183433719646962440561817839967527829788913848018957492059906712619427411668869467844524516046352158186683877772123293003718400628611806836124669031121477594846555469148983216669289157041177702690923300692388871195923844417277589080699622269586755533155046477323676879991092586906141156285547263638710458821946698124200609996669833492667806488252457472964170154319211108801245044932821533655494203978693344773211899873515405837773618572291615734287167577582727502854296929466763967557876288766996390116025202133019371747174261686918326903735779815743272151718135196399811808972649248620020215860297566656529283742140543161173129150619133954910279471552082531440752222238955176894508623421083926830211965653626686493147493845654488687870843974053260305076066421304951938890850389469942524683786988082264650871368678222364468761891923145429340125644885644978186771131879326948809094627939445269130524266859944503015070957589961161432129703738785920125811122471894830429732106099755255789437514351428467676712414989354461627234995296597816325631886968797303848379868936354663895505825841527730968228839366778375315540205754625643469993958933913121495118810557243276603541749947572157299121563803944658611496275246668030457679810722839204765821511468790966953308220755618948452359198279894203439685098953621825467738984833925173795018168451315865450797670429361636842392808225320469757756064181284163672681869143868335819977146695346636683387526159189231919895130200371873224168375925983089429144671062796587274715752600696362726352576931784599405042598598778534996946907510324596229876853136609794242657753293367546363089787678040716855150973259541074677236334164513040436066593597717773272888775394450755306731459939531388964627541267187894352262249949221572436652248975951940431547622116418639208544705078659449271039412560420757249562328822356617623699872195591294548356299772037678095071489523224651326571194879961445617372375834761134183269960874099355940580378641298390024559604911287463313089726674940363493113581995200146600602960390978707564349905046386077544899968670104347172766398008393250824248474511028891525956480284006149454184323820148128960883183780080434757426962133769185597473402548028318481242544055531295697463023752197087933027194975316958609894455272431574196503091665373264632864111607624418934854874829206455500922726612899356969643931299640383589094540164405413907974881849830399279139078727933245706752996817631756268393465916654496585630388393510343527018880367596076974281998996933737195179158202424291265950832881955367853286380774914953766373073088159760679916202128086892221585273236156481174252084473922444862042596797203018791487327926435138989180152602387106055644089848695045603665914009567806651787912118986293159549843124016671073498757443723523527095461207983466886533228195502466844233822663960406235470557915222911984885214740389748145682894409319117807256672109059831967047446257418266468072648773758626149794814051144236097562122170578619558339810437183967846959956210514358137497443517689558164711524282119917468991369899102489566979580448041375515234228881203031027448165488495574745236480403061175977088700737504045321491448530117741137753178410526194752618740646152716017160244085789874919915854922263795654867834011046809412950155021174305357943111933818426167410354052181227685122863823662124541196780225188553664714518546646188439742644116216042379329871129323622234929839638993159953172211442547629124055754475392008204573944967960006385342967913464690970406867569192484863659611677562818525206013261127105075580860328465031058190615874502998655389083373492118989701808217222345516348298993102475707623776209265210204692350424217427921827815683752473684360699148053454316023682900138630256436396448454285337683213505846383887476580680410848571747465362737622798389012493279899133047746306765262551731082668722499214310955106529323850806580725479687696113511035224201900713410908351728545002521593411650907282926869281643589148308989415531436446915892338820402043910533568428697042333715803684363508907854303174346074855763759507932162721414667835294328734255747221754785675597327975540500678532888300674500168727846324300904341612656771049016516405744222416586309675767668406652134383490459515986632001046366470943542340200305814077235615823594022563194839735320041239947848633400905341452232708086802243593821303047773910696119958851766858747463652211359660139907602916151314684203452659080128788732372265225103939129276083335225397230613327882803939396003538017329410747770709979282650286696699459577654677665309160069734544330804332846101964163268305549344450533613064070856556809573510601524783131306247293882845318967595724965727229220885805230299489867463496061393440147540505151585897994343407551114091572648659953777072732709024294868072380286604490685003519144497858861184521875149756277271877065238886847089215535001061068091481395434150358488000984509676913430767572841783793074018401248009438537313506182403438376984980484620061591848092176436383112056271924516130631215657645244849082150019266720439910739383413416093745075381928002722138789107336404297176832375156051307197331651893315637422793861678651124239933705053222539147564230478395776171293968546355749655035920680911966530792695049065087072356580032537660933759715832174851015601344504553414619343111241061212246271480307271429100100728714439502737009667055460580972358237460205299775666422342949048276159020857222563808786139113618629829175612611360368433925191590609478207170939795236339067556742269238758707078668289572682111117922908856184105261386591596978226071279470142303211319898534257216175332027159105076379597727241270305639445263446348599399558339555990606084608390035281065148827127932246977942202231978233642750305989600600924314125629239398064634083433443281272004370233410165656104451819235625778683691950285998577161392962842239987188266511122601129083930713884828940062532554394479468689010492290077268571602670473149554347611844221504650128530681587052242087797800067279748697694809028681945562891007512617604764385339466617874252042958547839551715804525382253155417255511666467162036666654454924618938646356666045676440665607103699042399830969505127603455372941977596501177212255547875951768903571780156833035483853252122887280298054923761174485683167517291439449468744501922407812321258589224833269980097611530128361366936780391180124858935701987855254707236144981627786063178973158810961612495295248101864904505860318284738338340257345259848660169413555063358726181384241260497167015724701264957636304718254120572458115858802131354121973743795470253028287591883376265002243240412630875833006821875973488470524988159566462517778692301646852711838302433790790482326755591598118188804983725697336356129936648961782326330262757206749505139685578053118580763514528347365621223056123834579796294423400513706777762890530336156236784702143659889414998559908031786910081464151187587477811411616483022297953242064007945832937303583154145656695111037019424172174338378252657394582354548825806081512499164691247933435908197619298677941082655901018183422636489556117672402569582002014115648991412669295875314798452984942027345590937252451604738597891217531016855226753558488794219301065694017280796522655086205116854273823186631893256406482644684701873156299486939907518430567466114454091615695775798209133719114521365365502172570962521533658140045341940621973675921033068035379289663703255607546489557844758939047274785233135053269626267488147916719811342840918039297078123713412105536767860642002679188502974291818075628696248491207819250768249641256029269103850100235638165252467106979138032479505025077215095791851731888054181905477498194241127573985505833266446904708054123216787263575390517968815542017103760322713216064275943080594381504737375404146216442888905322116026094357615179062000509341362688782923447849732409800290706175307155447305619465073598813468683690758688198416409059748070306799259510788784174245726406429034971875715715427953183641368297000198835116291602507088797636689940986931981913879426911069350196749096316259040434890772471065370388592143322241267372593587305388632688897894137579669254387275979754993147452748298874581024377943864277696828186571358735220201779258839057577174368354359840074730282759543307683360842934760876357993199518797355709762134900441245431043260208993071416564856424675549432687249478810896452296148190186279308924566931982676396450812981647078800768363841163446632125078343567486487155593579481545859003855009143066631765699407595234769517899882413082489846769690285011424163959435314674686429692285757183146123235582511842594625918393797057126718097533463174381005218885431582182182494050927974184529023310438151246882673142610371425560522792312433606427580885357172994228823253502172519379707185524127750211157184831782242660107408982531063816456041706715506046894484772525293933659176533801269604570315353201497753642101533475908921003098019929280440098186202868975884341022647800920995130402830879302106206473401806851358174979564024199882482954898958371601186691791901285820910766132109606590798604902406891927741082145377546280518590265263764158007827482223278541987209910433081992401444005544688815765570982520482558667192400854701503909535943603610471368264907055726868876561461363537857055394799668061292895551663802434490848133930267107620492472996517308299830664159279931079002926529139562909736664148791086359138632779603580249831978715809907206947383570631673768148558408255955995814901279873511338711040974295305000247207769225013104234670315342686254315132197908149694069084328645502269903798209893385541398428605039548898927488065201755881480659075173691274261457261279796864710481827807401183638482977353132891955391375611390430621912520165294378979570306466080256858154943567744411904093411105505669641309519267544375335457172652415342616255618745446823408670226995344863568152736268740105154366203870406971009933531779768717068674560624584625116952481158859673156215641256424751539121411374136967687790412105561113828474655593366578124401364213099452513474599392584647963779327273997166474434857133384169897180402775662540975652382682434426307414511807470704383952614135171751393775222124142872841633566222175048201394140564285748012860141722796828384869109825769043199114287112847275820467352272239976810103693480965589172056890582617150063927913102416771574555519823981949768531140238179212795317118435441321347631888961009246052025896251857969625872078113338993419636232143067212023887605121539776229664478841521750702688935740514539279111793014236518993939592576487875524020481116570369139086497796291156823293515780583409950554031775622207612204714126251806806998665668589880287557931696425141598392877257583784707338567049926547714645927847905378421714173028791422868539634330696470728700320031019021921892536552751870121848790264788160385890119518327361293592896543261502360039903581485176449525184397379095153811556684133437568364385031600437841772355651776945555176359624958834022559598567102539897963766770647157643299171634258324154831150028293866520714585549782122904949228458683412016128097901133771904902016219321368662869087372170223228479661531545380735081249601986799852111717168657450831439671647021959982405525227663515844816846284952064330917085548374874721829599013567841130973623961021782889011474663639395037622490558470817169474373392247502300719008595334133462236849440241757846329558994282418641478359511453827281447581527937341683100972270176250893397178585453874360022301399131387187830925560680585330783855748007831237677532712430949359689239283306976838879922661389939749418526714704674748016055212875863143942949298592214918952333434468973059262334641753862710023013427202731604833106293116677581842859020896461023725461829530577575847392762344400357821248591285410855547649557802142747826722137482038243856248114045645356998952190801755378292988410070733217207312914092883822170125776285127893864151658406227936773576153448384341297059208785752350683889467356472489899777526839843588173942094840054516698447433929982836490316865263483395075377152217578964084262245545504497770881461804174804923038640457097740363894703264071700083470076128868622836079166935518481413350452521729885460734251522820194017497835746072893508952761196462311959227403679863836926394917705611407922516628319702840470075158029968047354271709748388738141012206080532093987233193225558876908296356199793935409753066498811436697927283634460908305075971063537745284496068592237016907955466869495206225633216929978292368131386433193721627930743755661616886125861131270344284488109949391392075152156891949799032491156372688175886797922891627465477348874170065916812255099672731317081360094154626120270334165072538505599869964559801137752593707613745517795591267306283754953287511588480093164650978383880505552192756668177201993481512836417531395832176483394086423575573005240579219735535680109258284433603589804488963715643443561842044103821238221498527797319681733020221881980771162110557087087058178349876556106613500926144501374473128097737301535986028346297111689255753188699486798054956846694580454999997604957415128364488644410355856674023382277388797540768570656306347463641415528763685688869215771184875400096949280901207848542464015640751495026143260458463838713178271024484038412487270131917615421431079589132696818864146167891393635369880361846488865772052929060749330858064372599394512100586489470389206969995350334891701226497921607542400923556937796381316003774289946746758008794874386251888900828997055151423528446680328420718016832291272538860608927712046817914911467256417531819836192763113044010906377082046875829397040470252767266071871183509730219480601365598455525529326311175337156377512370712142747353853231835692638679178162123447977237456665525261057641300284201179356955885777803261113923200486027149486110484990594677066375176948512934068312618942522983475911285769320317519627089680253093651506255285849165382865548998414822351604473601772873562932340061879583565896066752818977548642197134246283045467298720520515283834915466353335377835882306363145178748620200658993502013411936290291472594996837390421253438625166031764955834632276602210107125900519870667645026715327167197047156686251799099188069548463867848128490948943246179627017203533463315971332730471145462393497083891558467396159182557133373661874758119518783405259859015814484366479432314438550683813458571536567563697898896546805607437769465205182402329764707023600437897554388099018945109619637218545718629800257331397458390833877607487561427027460365328450598128268047670337685805140101415440380579549204723198021173308914292675067635932757276643005666196269371306397767337509409658338463079217338582339058298190706175925193187489387218384126108056904787543176413976892543190275227696922213396530402838678872032859727126166478775547212629284296182664445661371409595538919797065110799424326020321298431058045292646123407450505009964017837619668240023066039259435519036311951622223775831643137624479524004236667175648887766968789930888038923814740960100989906466984654816086031831228118767830466097818571132823430678633793926801955806934552013170064095408878858566880941334706174575577268670095908500849651142980192833226977748924754414333206377753719813059346707094648929646560377277392478638350272795560624500511531880477083963487762891837662026173886660974720417810690633635478252414432300327150481733296467398470246563980934962652352791183221059469346817070654096283460197361788208864316239932495892041648487223179134550324060803772135320285090447409551592618121462820000590007259049727637493822709449002951797326292451085156098808581085475059737988091153177340070010588548110034301210914704793402151898976588441079432033053927054652427529884256403916045026482457122140954530691744926746965467497083584402286169248396131141577464699071302569856331607861619463803661369398503609517273273590666502117011512651618811100480185934085251881383976286929947740640479703684257619790016376225795636701140702764861149043296477558908482078013389268594704361023764796607560255214507221065627755119771618526172694220633415670266188301395855594059388030391663078386306838633264282313224614299170090928955140353793235448816073925719854813516541475448878983471927535433454908873287646403203152381422305991746394799546960903432962232684471495467254165859402026831196025759178163459496262374493908372060097944010966138424193787915882939170290522423386051653102280832032523988796460530749159821743594754244055243696525292826659368878852819349714408969884436032301067621209419820200172357168726440449574531576665126912907970127650765034176082359074991103929714973210158542251737993533272772322446071106316056311760330629316492576405923364452152049414429501678264603263451556946769228551829389879406068478838715637283867175646651857726299706660285290200292517234232658216938688913015443686294581479887510395735798737308212312374971775881854641638202810854305309077892205419072348578100026280436263507520697335757823834844586265728203388992613421412683617684590876120030471527331773497617124893907885484414039589585604048391001267956548788663225531387620901903572950520136366678587686014413404952957065580533164116706837101337718338105731289985430438414279918502965944386097101592246471227294508529695765469008031351749739022644798721243907103690422534749966123187175606209343719974678953500648878209178020282498090819109987491359186933469063537220233977833963012398951153240904248941959992166004860443458486093911502291017006336776522117801699873047430155611700388794193673762529915183852556606156991494166567117029005349511910871314002321754374375877845176621601995071991004606286146368721090025759978529623292326465197156695588076895800573464842384292083483630332869711973263515968100959467405407168983601002172531854642628623810283021735050602801912082659249632045598632164293778733276659189797044736053373825312163488301797195577513378627350192243693915689672171317335147626919844368445685403464321848438394436773031365032155864190409563145045567484450016213735345245999515974012111524068291097133147188694428210952635313506780402252158768910606352017109108667362839718031454817162823589433143366782087271756300232339539624631852244200531690908378511209646141319936493029205010492389805305259908785844443848669412968870332264604937790936575027997534666892786076054169268430238224275419562830384466965804224209247334487510796566673037326040060614626627251872740112858923865704670295965886851735082901780559270509164288621181904904366672943153155385459187957405438248457746933173804638034976643722218567303467978122512876593378450847516335415555482302143137261187530197585769697585603990853855764846551811586116733759344828958809220200056662106101332944894937604837458455298370889995844228881289868038464993816473289132301393034318199853673283859649405879931757814899384306492528247473548063044972044180877357034547332553434006359731739286429990721203394279057937452631128695832941693582817489293360064983971399041030895959637401460691452153717220033164406390257594631476829203092056667961701689535349038669914241121067438110594240792014139791634675860277986117539223855610132101114354765218007763780366548302411768511363766734956702379669091676392701169882197701851923164124734796950049867573597164792915255367689887382285082955400792143611803057334506005861078976710635134610954720888864726366091731354069609885694233091092618478269001553538274331244033198205988164206551416398779901013157089795667983468554852666427130136626441797643109290790569500982648710035139068301923074906788762961486808797810585152485241101991096587174606372653968440744607151698863312098650584548787704818677702921459515628899110847029536255989139705269040834737616956346811627183169218453506931042566197550547353561281976778094605967826824797544699393681636864792726837614565464242972475750837710767548171866691928905952156044064602971478304255437194744316708559759209532638086225435839241931583891119003516800778489113309697700932481543598996018298411063603330668054233196302561862887096963140520961877741995543418433852435061247179089632676833150905102656555190148553566209407743374366250957868582551224677185414398592172693037018801396673425265199029668993749338189260217968085657482544042370556635898912296420241155856317132872416402905871763634203310581064807584143037591883487942176346903022971243875091026958036928510631826668856172252698831434718938307220666484346108924054918190681468483974567696315240672637363696423147518198554335187169053906828839650753369232634867635104448664488297482807876391285664391546994853866552438576148701816132070288386572631323624623706464975338914909125894829731626741687526052290669019779807256835875097194858220438129893153673666660965412435163904467475300762504736169968943276303912727980571695443718696581478125274107645994120904761967265834044310550616954406953518322844487714812296716877503157540008418134066291324917165378584585739744316606077640946782737940457104926234259322354900786888239205584537892086953546697691772556449405651830130489070202423320213835111634570628884571727973961477819503124915840473322348256582281157605081287537464526150570102577968791564532958459368288571520717216146311784225822973958457444267975347138237023458161566429196449264572787941861116191492408962075757129292195162767561837760011516125989537971855456712509994868639760758691030442178222250266350959307328577703877970978136585177071057153532856091906385873774050315795976727990026404664733212952575801362304610754491632075568423692586114740062279784807406868911362767736827301162902414405474791016078695966947481150559296381095221927701808309031657284420113497627455047359603431830615849930911304481580568079197741186551515976662289396100459248614263153017845869405277808146597974446088991132692101398312622117443662820012520927211574513543632949984864306622751556910549876061476194543898759224569063378155968907085255931423278432097498059818037265716143985448011295095810804055524487381182848452303638772551677544306824070098207135394095614903098168136775068756883060863866903978799374400215805041992245397752525611605705199347702926300832578778399153138145001604317004970806773382632473250956366841869487790488074997069853354628605466148454603358287850458227627777646215347812180425241772437856946396591239028513931920133244125131346745360069415749092737512415606801859691855335612181314310448183240736212636203507767407958088963635167443259720363544699298410666422645375768896210021137397201477738661602456706005105824785573929373534463671607364589335847743159260749514326104071942315076431304853232922008990795651152740371760602649800529288172966018175669524906572505510197782514821370693665118053864027696798269455170507737757714292447181325908297453751302249743706028940030717134803147187104847024667974217318125436799429912233775335349642947448841380502388209691656836821941456304769083599647108384285544798637536555070422518845778018474421072693004622958178681036343685013000674005736316159651650141538867483844410528692126379211923968666437186036886492433069060851669894152166099980691473719918449850308897743323441112459404707414094669095660992612032105582094744307463954268415214684858020878397955043360458283938670710735823816302578399039348816595747939974792487339293984970637850788747352588754036943601841027511136807429027476445134903670037413662246394820134882874908934628270401647685016892734211887255499839018989817692759430917769514119123109725480986081701830178062312081685619194486902311961000260257210855064156170992636887922040414596964505198911195447070670438043527410139907915862295966220137303653632950841378610761429672538197865929943319213937937545200391546745082321986196946520770927756790722007201362756454760428414132643302862296925030780231445725174140387026279134049883484732331862331712478871172185875123059641080417920273559401263836789919969388954960668010906661407912092220227571655821836676029737029392156121559472390515421681813876781999630330794026341814055473325600173343399853426572146753045806319764102257647096529197487415089189812755052134585275227432272908265627272413134966014907926691789230828525015817163754696885067631809766771322041297735415363603985670840240922691060592156495142184140345796007638177080437485356328440601116999720139649367859610132394782246125641988342110502886084191707118077163849596135326012518609331393938423524933564105413307027505220496056354867132563158480288327691698419191406264764878403718695177875674083619948260738998766239491070668130024831507417676269088860625187738998448003216068161288183215371661460418059041661306467125870645291359954220477754317529783049133059134210892981410333926526656557704057876639379647076350031516307689612140337847028029707618797214978435839970360411943054138185431005362284443034841258697202517227616839164139450246995350807363467687580150639805601284427111595229181860002567621118469690248918336703608004612857865563872526936992194689264185865003851293704849957615938343080443140762763058378716067321191163409769398808345318953912631989990534852849962653029048174429507769740486064559251433915856134884762393035217899293308839495043178204210834037163198104527600944605307347224574544273118098567131746898016576930110555056401578137357174907038035709547386491842059850492239685531440628591866750375538640206836984357493043095130449392273337265681809451392089125254579485615994695961627301867390993126316509512363829988993547152789430882967386968699253794075008792095741567739237570960245151505650819291303147647096950495272797879964838006005222361241665146321073022217628981163917191267653506237356183557606952830367606170437324894733991779129635812815457678160765261185224686490615936378696214966693611116870124829981788111006443718175612828508584518994548925078247447480244771744068698612334726910791059452160201195244861228090284852594770544148512023510002466910161460869476130347521177825461722753476965674815374582142042266382458544305599993563281330913395795258983738187989647369995056873171639580897774373009028837991291132229990102606181297008593182388961156691736943875068627349656986492471602162055341467802145360579099023382471679029059963436151172467333851957709082401701034656901685218991533960198318416677844025181557834465429227574665765753313774765586784146868097075865193592279289700478980027723087299150608074026454492713038668920691500473898152235014920863882998546925661888022906058879054954919745746477960437852800957085816970323982150469490459235162685153192399304034278480686433104598543089152788143396417396476306532241327179861843846045503186634498877820161462295882151893543927811429059001107237261522983771087682053851141827349940473978490897925784727449083601036707112183876675208134772919270619794254326823791372867629314243853877940646458705152896720552801952821789988051413640331327726377529791007606678400039323164260980527944063048011523582353670573186119091862504816428213927377565616725974730256085643074563271695520191058348549381330520194074443544949165539106601609021045562540079976495007065705538117146419299250918213575443848334831599451766126628681008889991855410329898714774679650703704443469905817953649674342462778300765795051808963074322162792763178862660551784552762527684383331417256009750425558704628983879943524299412374555361560238998680215889675981995856144062153545030801047603715669915428272137783027143827679627897343395624221989027964135524040293800408016289261537223563951059500756706888897471262399943835736588366706973301081519320741047229922736900199527197116587983665959559741008147497368304678779508580069205325612701032430772530494363944473777235128634888499797583016895102186868915773935518454465726103679642829183497483446341905046532299562564630318732180425657283952659139790442597080948655921310887622482110232093940745685498796513475274250065646967741643353821889193198034725230912003674403415678148572679540768786931908049990022701861130861242278160796267656346162483482133554700028542517566563101470389756457232156574227856081057033539497106907844050897553591125580103465352786895665755379793595555545596925389869933910401083719423101262871753623086518344451126407206932508388608316147550198221244835184710324035825910476051744264859967892887151583931412436806285544615662755336985596681855297972819845616453756153188798876248301537535850774218367875662464626306269437267036120381953614555623904757274217089772224023753895738704851634727103688377350287237949651850727525516088934126488891392260639773251166235812321386478246605916072891805365443517913048979341944990714406945761764015702071837076527318160849375134534562686449233769451787660045827671948239247280662123944261531390422804241542249674829432053972844632884000828030736304173781250574628238784116275284519835595097914907176245950002363874891299290386039381389316121486428042898592544338769915891702851816968156411540773664158821604279420325235799096577515050635243135851994823226159816059620672266034326606375307176715036820976516955442010530086401563048558686514878169851080956475159082398875560639798609423582699771310498624697585700504445448163432190609819200788189515707629005172147886572967611763229455751594449391901516465811283428242036132507540702239004216942087820965306268483687610742706332302756984322695850496806695413325722735979176332406001804292459100253202777162985705948033855427337591388839657810735673033137842319924758195152585856682350077086024821013345899685285531751303113718219229571846227547920602740388480156149719312308048601444728668495546735219293052060337068414186426981164406410112011190146778615183493995579062783079332023803612249389003624988656277704167458750722617319324357541587301047630876474235430171769944703574455461596471425657573641987263857251789331030691719800964578695230418944258264150088011611163621336094116900054522831871563288259031992928183566974182260711194634741646291024420995183291798632495727873609064229135437579794156580508197330011532091710578116140785922414195676493277570042895676719415710965296220544403695654337559705945286630480524234993186534504930344171332851589891587123628913600155017062180111814677750866926521035007435583548100836273431526716122485999988505956050423222772578643997004425346677783908244722882187019528195333820337888014951093654610971800632690318142501197064588032055888344453755824703811764584296812940303010628425509839374049089861601183607962549548795573519242509807380119580828710966219884163014765187615572323082947453253305905590273125487092047470152228906335607730271761969084793139986732788231476480784059948765652388510023385917683914600531294911914102058371286962276831432299722456152354046064290879704004374897189079015159034671092193887907903422545431051022847570991254632692789813239194793301707898974065436481363764327981734410376575294335871846388933305488596818335272816898701039765620738777251193728586674476653694214125760592485194629060098608371246619725957751974705492747769209602173025490580532337302077957729347996732304857917012525731540861992164906307198605875035857238158841141344520371885235972697091259071829979929513796240070839979387499745256350890609678180700316138859030145167469896116620977384847870496632009400334189751864620714116038893845450973576356988245447949122186725457944489952493097575730510485444684803252342278351612505304728995698072115614496245411913031310462959325345786712388473491674793156478893848700667586819050948360359831418641191541250294527611494610993440557554743951171470974495699309431658411873321459388704794862341549809146938020136972148241704083580900009037206778360311841342905950192469150035888732820448468219665647192223908370289396507498631829305046789476459102521514872844844456188941586213603170490776160107602291207981380904937672504608369826146051329097053516962161275252954948913972822548559545663371325473296557600919355847541992070241785756585936717951056769367910948399624503811216364759489501510991153107391035444607696119527235632975461350918169769405474073748309455153396973721238853306539498259377902231818242111385804292053675130828379099813130236376661917383410968901174825159700177700688325331165366670174181315899307284140935293466563837510274436093312761626905586786531599671416164787172779183897151996808748625965578573548657846684862118676841254038033489442049074566345099021638725404779274002858621603776253044014110969301042126934976528798658365390559235746524349236977061795463880683562045921696065874385259263173274429418444767308752746637664947048923147735269430994257715234894241167216478931316471413215309027450623282176835668987962432366902155313652699336221169270018247785826797924964722362640215123288109410964423128668048450550082456456181431478857469930045503066423020446660850298076682816518135412727069055443997896858621160492246539013584632460025496590002104159767539879134802926489174178935618394187429387947177361094107440709501529914274146384422317680736010153689590649710807562964254952411569206673465308404665543328792421208670763423436932365920200464268936410952332704796404908688223676562154593265516175158645050352104481968576008542400746416241859732701701378106580808030519534182573803552803454665343167151846629940008059742145612781361541018803594276593314609396567895814831488327816402269288271064399718259970839031754278153786175911484199346873974328877555751629028127131497773622110430038345268837011081602351987867776662821540755506379277238234656490388013134929769261882730496555818345573543400325481679120092802746665593590978864742865185378202753816106593830391502244398297080991106034765182933929082847831104306586015441805574309734439260642458578692101840166325752563136920749400642748935373110922947311058634202525333863236296938683160628969664115410961862464509173118792279319009225462133221613925792917568416736456952495236737111498262026827826739036850589275093666779860723997065287152323659328491644768226778557913715113956147059331413591750642042318745347011057705222043249285693708051722434061334495695880059140029117801776893770749346177150028914052533074583149845235035026863117268812209489410423102186883200620099058279659272506642495619264084536631730678124917639089397590910439048916634830320508588106602184252293968611856366547748936504736871898016344881942715927835915576459424706470602940245352191892827034250774182248753044240231291409699430383536503171125687601804395445073617364506683450889681111397914188878017313119448389648846477178155471055662306039228094913771554341632837821559983149812145652360748470182445669784274726258892328995874051391073654337165664305890469738407563884657673708384535998906307128452565289893889443013576131734651750700113351518527995347260761718940380639915181754241155810137386383822262084370598588075151336841034522462785809670842261516269389250634466943955345112575606020836618525941482145352359380564504187349401417084566305149130940728528291115767895814047864458138161934376923353467784809834171402318797475801193110586364761620543498043733021726960896931068850903297878668170540539653325874070973134318187929356812479900656188298494162368917257961677281243824304496834594010066889155936032850986793368017892002845274226167379621428530117513763663263998396613077363550418647514453491586635140701623148738266247989338318845646556396100488374784645981948952573790228418567576303254829093312539767464132878015875016271732589672629423533136055108016764916263144070558135376596018124310162573091231548999742159945675474990078472840308817467580186997477916502790005094251676962350398405232261917830091387022039160605217939977634097732586534851368500411970362390457615294330394307296245691381299258895959952184896623643158502092447650456225056341484099728229175843528512831197633530425030189111844919848145499248781236751532244480348442066424755896630893711539938762336271503425457092967714226135436093932809177277043446331798269717459865915959786956978010571711908285596402342968027588853766786645208685735304376176903718065538018440573802585281542543730113379395864129295329614365914210376961187890149107213063747694050148256362814556523814930749575312408787864923158055778467050776828488068764541986469440043154731119035874870725770448273793013115746519949366896027302877948020092471504290234565541471036449659995855576070498887090253678358583252067606982483015440861509970899785182382030125280618096165368770362998829149979219693895104719076938724326271472307648807200240246299697250689475798829950663939973314905108870702432051926425568149763137354111859231739296537933586162393838563407906872491401387133074929829763697988490207029676000023480240942070121708946380790971672230385667199322236933378337273891412328193389864774738984444351411270153183809250226078854823823795158988455567596303927484949850914066221027606810386610929420763243548257899288904363097046365210809205730774980281452748092694065142660910354670282240040642920257037507675798912252463022019961677543268093541307363082722266971307524286043352196036845916616051966920645351390020775709251833101570050817775707201880896106247032718788009388812033763572747395983530539660249477803295828094115584277767364960054102814456683017735052472871359876087956665756190008136308132698392638849031302099141046100646115460816420299051159909349177984055928762519839832544570049527409850820812871063333510865205446379783731669745566507370601906101640571936958831777276958089339164185277622043568661846824205781557559169527165175286143471398109673895385890035988645296591411972318052142637630593531872892126294534925776767199127634065830475141603503757873568407731757827336480130736033078417954144731815658608491106240419272209329455754609483930914408671476524022276830441194933777115285753098311796640983784177034551076724078992218599165488269125463817035534841250144518090573975486506674064909023220722226661702169721067716625835860335388509092378750399068817702411720993388829094380120248088533099175819078553196418657961367777247357459001790718680316198777046322468683968698934326385961878717818902888799891095090370997056194359968347266892371430564232803313607139239016185555784320642041515432457712199551730458340091303233865204531165805787239380173999709989092930009051430456654167298354733631991896451068855649139298821292766345754733764681041908012193164248562629304148627298635104552814828299744839699627305274799759510574467129821973039577256392134654203042689355481735237125781390988015725508908972949183405523656122016816825276291100243819316001753234194968924774531994730859409786862761146045549151087467204548187529650519842569973817286968193606551218279440167273792621995562622453686323014710063931548988804862065454424017611443015232355739798913085738709164707787436851507872252439054050217766272433954147672987572323467056949245957059704605339610755049303261675063108895068901881477730897412090894378780618185185580744563719686099238853979139090407775081166886203500299484806244913109344130421004985605069622237685586008935385138496847397960908149224411671286678005767160591727031463454161054638263784762180724469460016859207942057276857621213360103389146149654924210583776894345476088137281764540603239541999086034383207912378911090867258768721442871862515011326630677771111669620243771211218100387748804295226024233128824722421285096850686355132167995200453068029260046456817035002965993695323675044358786332464069450001731068287862983743346531715449452739184945128191598717578666715957622902539433271662900920041048367084553539742446138244433911580717261289655242779379105087324921590431241046936004038131725650556125104406819449275853222756787841985654649441123166192586137265866929306284999557612144565046977981631557957225102323506028231539105810853581732432582471043455786499485258521013160242436831764714620194980899487092160850221136393177731650304882467296526895711962825206273971382389749242039001608044934836335978566826850970464310411568638219395522988400805735683401582990424889869740214473228399679152420143939937111674243827044931867452013403719995336122519934998553361848586879936281729163835543290385152436772943761909132516569372633890230079781292161554144229985953510123260311415100945609957656079203826100592924669940620666306530525618390599333555634450950931850517578295590478244882496413369346725985868037916481019489255325463536186553047942359897111426812255352228865263466756580591039981603660505808781529298240267579316801101277592834861219973845644894079272887351579580577010114382475689976002761137189574613510560650893446096165356597384859541759867834942898712353367066010058727018665122093023352050776338953740530905522920547081764933132479443588798850541356289211688525659200448799140468312220185875785511608158775010121304658102603662109382144895035962633543660506371510611600842652572222574917752712531963490188462155851772583393938815956599821607368117890483066749862874237097070604842381643803912776342891070929709277779650708952885142525376346280962148517941266527566657798111321852725970537710869433001434802010756278394964126882122036499382448393645644682463582515192980406414619277074647115134248042095788591009679809354513095905002408538664073951129706321999943717401672425980970805102361279938452526774490758097603208507625445039914987198128142937691145729217067283050079685979099588219794836355180543143222418431930756925979223515067463103342289381559764621560370868361812642766564504760722811665246137267747061467596291956388865364657811976387130502030237646794665524183087414130686474191947192437256849193171352756860747427045227485355059671654446979895782469333379420610941634657839988997862859869291510633104139666378562766992315839503946991633609142758851170849689091812427950480060902339034200610182468951758053585814017154675214970835716616550737211339826959527827589203578232593179533069537809125521305606767258437410033151635849445711108341995025891159729303904226873167764083612881133824238940066576508805901635191476484637550485563879349798713304439406742065844146549073313315173383972576706011616847387888790045842226513646239913941873851128693366940207970937818209237615319426869312075791519258966428325620793305294875798864974247738901859668894851261704689604558993370810793430411747059610293206974829026264276713641328420159410644735936458590040113436285633573345067737031225451021393495928089694769156847716875189312387897997534274944493215508101332917950358971018833852041830022185291286300831797904717957415819113317832842734410232968413771680186003427630253576950707260310615897943225395299076119247579682967325275051543510846286707783910376452577395307406552718697847453891724413880379178200754341983163888876108229264683284402156834480304723446036204342388322090459634495990342623992469172791509786620853384416939389632420169654920605425537445218120279871241472017570167901090747194606119400495400019130893622544122189974081223736943572368204678911542417210004824464353527157567920962481087277915153028942562391257435719848584088513991863185518917883687460614829209474521952583651964955396313267625373842206389107955745089060902179584194173925871535332271671559925606159407660096799352869155783685638031937269453959249233316256953731669338376789053884424111366863507437891187667488725718755239032312409956504748353719668738220432713778315514754029700397478978782425992389003212250212699570752827169735919066064717859098559918458290833534114866910298638421844020336336130864870336804816558759747172513296967781371733732767900890091095617587989603370494374942389703744175269045397317986313337531674562179270099252881357761978496837891438646534107128653859436320362182091143259822179658652237605823580721111925186598521447067511387225058834053358579425874317629051625312754399085292711230034019950638380533544672035040350215255705835500466824348924675957639176250957572756812597656515036772778829143771982754094584488916374224526238679091076708881930795244475183293668794431260656692987184765771620272959953978132616381728796808227121730956272723194287407418522428724564466848172293259509072338284811152773688628139798925642424532151585030675189111776385059452800988045949227267030839699016670320978982668172696546663211815041507820799019193047620076182730889924612887540434854821781528894609912700970709223618223702905339223459535351363305648515574653154187905051718322540742619107129637242440314414302158906197929663592587309143642072559459749901829122314228426082579938925751355535730752629970023570642552199897423817093944100513459040770200953725236399325893256872825545215568354144558217086161855652965939257915713434758551225616945705415327810469155976811908779190620430931324142547734787479210580720800154200160124296206906367072927680069479639331445389997662262709893176019563667280624433541530930865317611101929221241871076408136019317372175691167506590357787723204819488946119124055553718411386012844910419950262170961113827987223517418599997669135613371986191242907868553887909578893886544326401693025113093354721115513908764456105946862845680892668870724385815283660790497817500715466564884388654345105903572825771245288501581735001584988166203507824156297256305551495370377488721284780617403941628087616717595228806463348367549589950982833519232851758435583268078394243399595301153956496414443325395546542422947096556588253849873267479100045343327397008977062277124270104087675162244477779202864131749235174992461234992142168087317190783691749411924332166128307123919263879349678005939285268720325762691810868553806396659452778157877373945374670892391149696603238717788790166949330762192493162732581328135404329648237114736889631603424807796421574443082598148883087720444363624166588330542427932440252757026202463370094026691708792790137701361987314499345197083237943999268427286117425121539702857519250239127691084882205598480798492035617999864378747046801608102800718760861515560950171519169143377725009234618526805362637569725654462285055535647433681218290883986842703988105721845802232047894270189074506713234246699269338004100141468349223275243186986758377761752395180329502303064497576057723012718057439670275685752827524856682863582129941052527261553927827488057876685568985437722466280976564996593724482633386698128303965285900027250297573825159354442111088961805074464842922432864355646567484157157070528174671089455006126031853150603542661803713589975954292997739131618483217722015684774521200301607774568797455687164080614034329372649428480250939854212140275398661972482685501205464838460045753651649339226956935700562560083361528704788822773534737099611174727729851406396862530495184892262825135397043003896340849061768360306882423650317891273521425767635294070827008233166043829483393653589718287995851636856956643515949368875534377112507572624733257960288285899072285723926365884069153667483720063069973157954009588141765089297024892663748147714772616739702500244313986752481028279341648763226434387036362592132861660485939319684705465184007883671013159137241034457817857930403533839580606865155055586470377544603488116665980248035346393379606915514327221516003911469201134286508180960417870965523496242148006370586107428593405051003000628782313951541399302661031304793943838051030447989858393079906546575771786271993029454700927243373219590363251094365278445089767581666428924868434826041261126762569614862367968642393841334733501554494069427863923002927793448418592011886268994794123746363238326449858640893954625898572907306655040539073283903998589162684749215575743184852053605390274130399084556542692394107433437289935094771508117614015389560640902356873635887021626765832899144457824663475326109555162315368007219741695004588193581043696179631368900620031592159144273527815785942245915384306203972233346290128137892770842308604676939075084112174223039749478531569591641112949781864979096729522246218290906243719858023516660914526568570576035305411445491409638740241074676032104670727214461941617417546094351846880185242249941440776642028471231577957790100202905976266570008775053511915933607877555779103505538888867824584156622843767487460949575058385042482917345474368561376994632930304453648148293957677016093036399258030112320268555304982500773354623030339911351488535094990710127766946478809910795656489456578487631948318076758016588517694742319524538387616744481638708055559116242441344687953597202198966153791982437995452417310369699233358761497111040867221404799497832590877701523043121151480091089531194361556729440131629741405708480649639827998453122768999736129334103538704744093200859357951580490959810389977486597834496604802220391691033977090571614208296257181483493530334541832757966486804119155138215690078072676277419612607795332533685694087535933343276494457116543816559848194612507311492387663073299006208120222915102182019652044070984306407270069095920786807565417068158266507607188784613046826167473274929470868888153968036719049128042400594195771790914688962107527141433679934324137749737623489218639786968018998721354505975963967880868567734244017578536982571227585081803170014114633475076988132983116911525430209601813029577626763602420098536281964446904424352339318281095420418823485514720926927632660682740552897724283582440406692958765597404256091171428310078290296271915287714844560901714859291994548979725275894783956943555671645460509310257347888871523626949847277052679778680964424529569025916752314402292740875562143673439502606125776828514408365765627039338094324819273309871737589015651068629406689453486184968764315151236638740997755475583007659343090962504831708132884278392412879324246010199783208271911879829605578976572771571493267719023397483898580426330554170555245687488386753454827048740013225821125765386152123154909809654363776829688303072320452481314299227993389837574051025883360615605161787458580822137213256843100713275140703771924942534502098466489267900541496460534114167047876048422033396613405601516026849483612636761728050446952964542393386170342783012646445715550069601416191149507682087810773325445987133926808542243073589197615056289585785948503800012481466790572486927214473367513182419208404029162634722089205746048239029073148920813596618713513961269095143816924925015003554703380832801990225846892000187615993508210908550572898306031151513407748236773983802892378477149624847265224303986405594634795147472886475616683970194080386768289210659288452490241210654158346001975000493090767811007395352320343131358409715973881810582369477388109804426647661091898069400604317764188379661161594451378089760237907598652221442023342686733374563697013471375456777690730622383669981900687557884064703049149750742616014962390835340459431309955135462378598256726273570686997741688997562346334975208860134661473527207789719966881067734483011277111391185855443914048124234605728244296403844854482629719952947307932389953102990907268027593146764533197524739759403018887047804774793350031884916057382419359464085448701355487487649708822192063607433381636259284291366556220075159580476404177092913105319314540999953183649162079566220995096906062573110229957207629771817049769645593570027519179384491952870806012735349117984832546054965317856591982690118191180133806809373671934496128509568489420170547199072446224869327648741817223441899398742872145379404217682516621127521544708164966587282670510565934676542060224468887553486053748384179499177354687698423794971216335319147476689543658684834250903844564469883566988113849973191162274351571269609194346265023168120575073170989514199293779803989139493633915677175433112181212873195917326311036220506902387372826423202267489374431995944750940593715338659662655137511014275633328710693203690179906747312620146363593456192451251930345029448811662007179190716726793805942998050677384148326819640032826350650761572602880610935608617982286813293412368416136680328835283648811008830685848787727584798623559596469292340112905429707951181851753943129209384457860992413591727038312355727646239147678575043741917688600591115690202178558396121688025517997213056452278528816390894854783679592823554307732049282954509597927055877151474444202696112317203084928636184130843469495615487879147962609692529902216965035439075227691456327703737496714747820435087900779418816547974117046457966483739890082561752177785032975098068270942350990575386378858983865837100212546931876040664164194323950155153597810331219688291608207949917218242327967151649748946705018624343349429782772248934301023845209476828536794496249099204264828794873341426169540008917730713736338553492703955243997303503958601417095233311535018543314954875859058457790483426499787896096327495374644785388339637311197945941742339417503624877936214575147256756824297174518035924108032587457553295141865433842455345559041056666315850468728510509440481546016933802492156630325022685802718109497525579223696745814035725497727603845972895306072844401922110579964008883771398878705403247907043995240798360354388726654708245713368869760610770896354025996103121443479622437943434940521638161468272505432267897577381661768216459277363519858734954955422785357214022224427418729137350610526169449644993772365715289008702363826078905421793982021380040772280801944829517057319934877723658008033142036089473267760515080416235654534996611984713189761313324850891236496757023873191231247173603419329706996757527730581471718704390932323602522384773021886800510130258855876822443969163870841440791107935748264103407868444591345274319766595745588313510579705617414026863501036871178614417955440981448714766827762263225588862508680305940837753887461031623709238790354175639343525000550567241033358255149710268043756274453482713670953011373241003388098833878426505736253619328771920340585880705860279907576295223466592019991105294113792669799727927732656788699287718299758508908211844020270067413218859621339449817681408674650564923494155932343347024276396891694277875999123940400353721428370513670757768393555292467338817625993258814548086553332807244724976955675095074409287586776610922751400048761046784231278390081055812974851053649040661422996579157464519205738120781896080433197231375480612444933265651090452167237115001659763956594663812218782266774304705803679745147017906897162819482427984248652189198052021399907618094582660537948258837235854659611046297895038680158427569039372365554970204602712435375125938030674776643343732643066237824533010241967841537332020977639181317344845287858428743805252272318326050355720936215520904160912092097511586181632426489771161913410443089595510485603442991225695538909974538039642585707464938383551967049391267498587805136240572844146237335029875397149618333043013038312398848907724494455604668290682011147205489006145372619589258835472849495054962633570402276641739011308640639949608942583306400647920896315790348109694059518638863831883442779785091129685353109703411906643210547237893617332730788681868820412378985359272619089268210430414459843191950900953206081310672744253641478207359824324495351567273127677532930940082498023017712956072807826729337818557625576917457063952173575515151636148316604046682849545284982133110179371245863741594589453843231816310702029283613254333748671501618946146859763330460576032821866708522315425459592222290965909529610360140217474310696765570217979864589510825899311789808193888647122981370130295778548890460172404894759284535715675838997244443225328139297594155677155789227875978694324615973039169976197686219792266631381254403412540885055632315537217384559766270479309702305985830162865359424509350415502235087930707385443734186094249855463928415147218490639724101272743058909919868436850602944850999534740514518898512689942591970035213056265495558643198293463490650015880990361205003597424196548793742034247373115336697721052539928841098854191449209753600282657215369356980747647790762646717546408945764984835297023651061677999121198136067422601498914322233179849322543776356947074030499030403450434053359746054895042805431965311581846718863027815288440120692831632527517350457899187670304133632934086961785498139328646216861049860318614540428096310489069134953292643682701090935781956085481583589588060683300905933146592435837950344243879078236188642960473370156891564368333371556885299259254176657223057900453945281452245813931428929973342988396517834558358075268971423243481436545342156333518825950113479780310244390531349844970748567585962314816123592773890139295338263025693610292522002356575886773442601951472142798657596687466312235677213946823142102149041128881049578624676987975784565385458392964232752842603101505865011401481580279374191454103000167546048037943547292789832501049858648209336773974336054696157971196962795302648153363067351771967664357325664675918883379711151866368577121068755097583701872765839304367017088468866128602017060394474010373557984818850921968870142795472199129908265275338098451867385696469122024696849427012210581909700633633173095948766863248868063855322809920426891238665760841798874185721331335646856194091914950204801725775263471800784922139090373636177920202342620553340968668352574427392786636819986583280377754101763415456233585433024485381695212858685000407701026364782767009933594117682185760479702640598268013492177163624415106329331029403364651802778709317635331084570763064744326659118102595102349898751229147317496346380002256282757220380525704827507464061505184147510040824166916396153659086680795814705938384106049814384567791181404374880092460367292781763745723052209290076940096698642894395546973676869819089618281548488649709622786075807513307782939140875490491292487783700435877385323180906125091171718094772837285445482205014906848779052809654654559004464020866752616708882612854446002303059103421564972630707769388864500160354975922167268795608489063542164398861693345110424938227286799277948754419274671879861983463890873523386483628954398922774854319787482720969027363988319766953186667605525323788554570969743492138952804074897860807831715726901437227407799512392147435378779257219840132013770974940583818092650121762764837237036093528081578026502919936943240618188737179807860586171770673518967279351490839715966389537395221884289272842223577638496318260463470212017207357030476808798164454273815300402554544905070716182108671734375172324116936454744557281600231452268272558077759407061867822130886158999021725016242151914841858894093750132687239479065040844645048287386699579450628814135008951799235939502723087271612988960612274332906369809176935174693750384061226660597179696661542244793090703090420102848862169409887640802919610905577912864601979611338325280488760396206472344548473218205876376627662276243275576930671599046949221237814770014989032992002894976072588034749219340395752591597219887119038179890942737619599006697923628276989664062540999753592685353003590227642030227390042402050488386338833475318094387270076972099733131147455441744610691814674533605471134500081733720375519512801322591488923689072499874983190709684554587618202392754039671199558389136277240219427013830373178537145025786529375471923358464776267708077962440968064090570918385573318077935748573647231330018068082391738028629832421134527228430566624667375321530086451380213868552907005102640728132398540403522588027090151327874176764431381346217762513416854316635392189016434300404255988859633677985591868340580650780936114846042020111497065400425028458031555502794954325653748653474982432306513052494943262575667762565251358508267763724081080675046388382459394159739505316717274245276776866596424581237323657572893606635356080291115519297675802826806978634134388697931395725778426535924686787318556833722175430808041080895162157815737415306114097486399577280416846078011596549726664247003287147618428080592224577322329756768162569552741342004375363752178523800561328514596432689198604732250164070097218588622099974001226270871558940413621061889153595380835067244580390784631819570585648220873957358842681857605804460867289849324346915174617257715110716982831223230181999880754879411365308447089038294512992498746250436442186075394880543010205923115187759188939082759312742527496119991599975138609149776863242959665437721022105090353389677107808207610192755789726613132985103750803126604023906239649862864436578114238273211980329087406598129390708093518568160891452785912409358776566870502295118146217433156961850552549004625460170539558481071937051408299909934027231510277759507504344997456415807951572270971561975296978206463897393277428623283714422886684422355889411121140635213056601462558719988566482835913921962225222772756476319381321644199934277291722325182702906150904283744437386978865649614166593257093751618334028816013746715271676939158139873215043145622474914374889701203246709789840355218919409598639858113863474047484615806958221918910001320351476773928977019551100136257810902036491210819745769290555851163827255144622956273437678668365098595271310866994864341040113460422350230587365579404502584192999618395058844996485910334947801660912039568504237288974769161299011491896212184177127895628183845551731245470588280902669095201142468585774836915452774581592720947560487523053724120844538460834193396196715482660905430289412790117925808246248317433251884396063879112201022178007593596954837617571760000549594589977363536126856386824654588083477608095945741253984859616646780041574594576358954015084254448365317619992959137432612793467361076608563664474877018586329039474025064870065252302018574696759618987248601789877266821508873400356733496956167707948068766067763285429597419817652065425772025519662704279897068750919999797623568852262495998014986951860252441938517938174546825147180109457465229048692191702574838029115091268332569313748202824276544756596889910521692250376846709915663617794290470271036532611343458023208814087619253303465205211208631194243732613900204991197156447318932785828909604645074791692888727719033383206625383628968484415123920891265178758927245079630945269325602177632045969432100825839630963274413113289502509300165233451197377210001075849804774924655502180298252769137503353199518695750956200613303585276424265086433770632352200978921871450092645597231037961111100090960023096813207022053829034945932745362618651594343838439566577424996545215736840486507737360755441913448211734790442757299169481879560939937802798064253121565620890785038737847363095270152509027350047532477720714706300875692369215876736610256383292769079754616482284037819214472766045215270213183821084857490241510584299949100871382267109870869534161758572209635704606090774483378122982616763091724212399739870450748135699307781960176510064725452884521077820286467835592950905807109891126087271917702091920703270082401755108988157047963428822217561437711873638230373881442346849290303933646167329119334499283687498673392530533102591037129076149805378897310882389035287640045867406943668324362129251787196408466867507695063319295635836462219731459615883861445627880234590387051274671267493024299043354402498159974740047072234807117995723126635157348085137639195331825635960768417766254464137264920329956901083314054832142758863367973561556624451515139073018704654527677911466852687490551853577116356514840175714660123039245077659518219960598812894435991583416618043142546637528921126545297307177269444587240376371318535389623667762996593070276415907630742549548354233384324890047780939757701610082649621537257132113785604811909043501029772083635942261685928891703984985212139761837211219474590910870796615380988547462433994215962215954715613604580754621351224749637179398237281888791972787004172609885823585296713356872176559562739241486329280649989171300950284507414376841933058456302921350576717774985612815054477332925499956293839701859928788170205092620287052469552971408861637744728013544407350545407210851726696108483977013079551306292847916889360423351762545604447602902006551370300230980782842396637524484015179222952707990598577215523938219994984880008599665221814921878705074395714449404065733408082811453266027933754947984235598868016064253154025119914448346300042255858395019207898202125342674800968894092255116200341928315542821937510305492673440239075440978051582053178875149341959722248382126165484618201264908309625334156246469335933383330374956404938303658597928390833374601786903907462435435639446405259352304280210715699002338836745058179100688255270800132363311808549828431655639157373837027302383963638873026826398852786786242849891493845628848678818681369544838028200179356090536041511666760772202889911146845773958186511151515117827736286503915132850189168307374950508894857678841378852671181639049979503618731004473929087388570916342492301035196316401821494393813327650798079181272528247213820318131301310000273704874254874585839320137834682276112976329786316064230028540588794318843014951052253020503731175373639165389931442269725956945000510144730254225735204652938146075885841811344495049783731421666946402477895179241392423394198463107077692167918142217853617447581426929268226867134874839698465508092153083364387872583800863565179632877196303764153605881924852171565076502695470950157440793826863963947040812542450571922583915367142825299947172148399258659539335356814561413766673680540105084855274707081210559424188319506261266436752360083603050080970071204829808776043930902018987366864915223988037398630700962781052468167675932888259255308957280983858648027841890764472230345682263768777673580761604066030872333679381888964889658561104313923929368772781682663530997706217404173498994303143814904336900983928712479483496531937217317299513440551810429520393521009805153074706273002093509419040150053878473629284470356370181121420833743251700768430598524586276533967582832123459285434718374902823109024775097553165530360077815030825896281465320547884807887362136782841150307525371386085263452123201265815143212029930537673004370403933584549871515377935130894654364975360993226566063852618885973946820848373100436142166977454847380018107845728235506546982001916037762875638699022837709865109269160608141630290721923832208013693818511757685478227552744847875144700306508870523400611067008423503380257165400214815743989246562287612989293091606699429951967712764778817609866112066261126099909448720736120047341993136434025156112290293871067735582260454481786864201033137532885371841699939814118367828655902547202022952533788905253716912346288996230651126313920798968482832085270421683125483108981845973159304970404162969623338389807752341362915147501096992163571847128696293162137591081616842946129317896663890461353771624338002850809155352327026010089403991891424627255878971831301383542914455008447433907858215890872541941885600266433660437736252627784250979806087770648859821737932743327083978382266542920470305870799950211134911651453627195028272364082639190724935111128339119032985652262084931711273983387039802156777936754921705005554724558831321587369798086519178538899044798999860100698298283382113647321055263331024547871765790953381285047099258738389882769513974267318879114175688742582127687489273742384686834387927689939812970272214341194088555532666289493554521902752055271044998202595302824076780352756943926256227753751461310937484086712061893294366734941104642474643719436463661267312342369913136073442830074171069664285432619219273489552539708237238008478136732316180736267002946914979803701151344021614807038605832339810543309653787906884013694675297875843482176812599666901574642533856595445465216428065003794895955624309031656208126515782580331491740177998548967566707555409761739324541483202899262680809214576577331464549630811700646544738164072431923739345157759241672409753591225879483357862515759986043729774126722703311263388764294592961827639178867641690851683052535814573751587368488519797641644641008314590337268067047697609258033737805790253528695003788582612139010083327671192565477988601322819128829471426485820924176233112871348858667054494196887754998806375585603161372159340104831808867661853155019994085406050187823855543903307161149164301697698049735839334397907633832057140727219709431629646168910641452247363523953151482526139040070418165631325091868657795801333297034131898869631216965288780150750083893362220455416938619563127544314535756906777750288898532411032724203639260553586631601755575014392291432859302870266026380791048942641621029644078003387073724264434233338236800337625255849753589518822041610409143378511347542559837439083585363168975887938887890996044816199150154881975597004180101637997532634504299207455102896684543340000339547161514493344113405692696671803818593112171995644584309847507901802877143989291457573448238266658432811784898974576771444355828558045523086111789769810559913261646518898317627389025552018258205956491770773465446115424889584991182641415989985435211629121364871496378188352022719365795610856010416473578863244141025434229465487956441250016897854660655448404460183675357339951932227075158331941025692110512322502456499843616269275223024779774930198844412275688267170277715186609995504244511006599723387841401133966428589106487450720557237425216363950733900510003177922743079849677293499643928493667064956699387716836544079376992274692658221787161889546325547630208987584405109325542406139943388715084544062887707686906596964581727763924207026270526850486629317798402933611185202919634288491413164804703530641023594773215748324525104100917933100120524774439302766612447761886320850289627885119307807061363941275168460055681004507647355099885545968061327564408692635573739579723657581314929104693724150848007511646760662825447659206538004371064586242339327114273226214180915855158559174226010730440780578867401432982624517554582609930024250041433121706680943070922727424403394896132141465536014998181236204420920876472453652880769154150820567775148695601166498096862189994099462038935845352400554166902937696244143672014086187800853071185068029535591530080374999119105642496367196764313874081288382888307994009118299032387904473019793879164783805146653663495206161735194649906258580584869914375756749095837243743507517919506322208946722553116692536971244015233746248208002278826277609864748910516294787472224579416140796189454858635898139514115864615973561146428519384086258820425404551289098420493387687360173522119562114737110191776717200309726134291932031589009426937791056073093190465469144056199945429061996472512845975068824588627258416733726744670744366985101224270838067124660285480607135417919736279964296226443509775087230877972693208097253313428224851140341311585897195465980493773569234973493381045818642851923695767594648238110601722447178869365174877166897789692607720140126594304999022564027356454151097308647590831019269623732756638956553071409290398094397016222829065679665664440411445070725956097612256128002478934064326168653692331086039274385257225706205325627467759203330267313913439331572547199823221836377938829276950963826376422330074416929084358384484049065699644876261964322600376484420388432229944922639218592694148621346857506375872098837156802697759315708808373037098734121193310057468897584768235935890376298574810718483519624390672274491879697564325672196673851620899185899061884228558768160373098507721285232903198822160509959389065619607032551854130616303122356300129259740841673005070102644705203006972413467038485274758994564249475572753484421903909441800367078873035772056087793893079562376053586882058902196416311570262648069214020248535442878526457753713449735491208325008975759541133267297009378452775155910328584846554912389289447108246856427849281221854287694064471136336429413816310777180558686058308397652182612668871462566869492479806113852725270724253229087903062735176568863669295413527116568803866105486506042292222968125359796430836881122631157298715575567100527922963470855842621402240858747002013960329433177467128469924830353041367050701890281344505416161212861927828432502462958579739353022896548010520615340813273243664381775949790363683390764887414819647226280345152480794833404007206162165897212748284136350705015351143376366647125062364828319087067363372900591446659013806839522249468920608744018935019848899922947864229889036639313543341772232193491131407898117169286090097474407800577579863830746528861781913893274343346553628184601007679033743481966441759152946305799187126805320419025900532844520499254708847051054334655427946160298915784211992230499584218220583645424451063823052910609617137445771080786992251355347034877517850363109179473751662326714338608453624961632633776495508465869193340335076267696308917676576292098277708723352637005882833496486338054767798131410773780746727666147771323171414527811933772267963227733487027733361536367471055818170743157053116954001391757059207701788149365562891561036067340390557790249758548462424891514952057034932594952289108938934157408863184891900200706076524118402722576508643499913339439726876444175070796156568606543315845753155245658495924443041498300081363179464459972694142743240391407419104046671077659940591176179326767646652317343992662469692335835197729352798321538056341996948755172242364805640823825262284398727850484810004201856788699073906758287498320230984916527140581142773066361141682371065532396282165436055557972423244293459878592094629170313005164848595762421805420839789651705281061729227079010508033642031889185516137195953518568054675360299816172352168297562149276392661760451752419508344794797089315116028334133742647118607091626671190476798112119558704664326680586030364709657118899940621435924602988302406352961339402878768013034802159810901969715035019706515642548012169050403225584059962940130012517654254229123532493574025898535318506916416807312954378429878653308686149888231128779234810467612870624388171022702531641324718639251653913679907074754768676082329366688275459657022191055013070496559405942442047813777068279742777931443646390272948204446625467926585437401264883832905171136776207381743688507400678628768897760296624790459499807039108462912363375259729767759317720546885647230353096328894585344215100426532440002370006715632361729995053451706991204230797554727319589964655470898091431110729709843191750105808825802408453039766346726902802096613482864047920242163720534915427942780784187389240971470457104011221622877481377382249300674277194469443436267534319081295808297344931410922759929231260320047541455025673552637820973256090434272051210734135486674723641217144298884778130758538924725587538312862294197986811840394818411404850603237948864691895488817925049530069508443939342748408535510859811180996031774887565405923291257556004787538335633767720898051244598689174419000354558454206936219709915862847039715583648837551804827837228001703811340696624329540281758623554363009727324423957110854635488627937606803034647749576981353287085898519138535563782734010725928543538682820844654456922501542667771945333703728085892057782165988817775800759900542223166033293767795662278871766776314925527212837589841417174720890778408930890061896875971033418961728166340342016365324898270331560049284205200909919968817372398804636464555859070863318917786041254987500387442112455177145068097711159448244153763346676524037004261541437045210310465499813240527886856261652151291528896170866803656351384508538822721129019834470495025649820016894136167308923769741355564364361847171497005616884945641563671171819144691093582257670314110413307100275907805258924803522407770227216937011850227818440732217881958559226612113539697684439893429750917182316567013652616168969247526112178323319128862474587201976904109143934548190780151257843471664275622583222573899591869258727972860694899982369121185145222938740286180241440606770408528713014029811788905780035000202694512179166178388958642586264537120193814007614552559937281197179536370493615852029307249502357589167410788349453962195176257843245791396977396597530027521280432470149854730043564955095897902886964385575168232571410163077928063769113328171743342583734486752134176467260923630516681427341534147165480883058733582525847604291618573423608370632201308550654567802493244675658943377417542079449553759129014760789106214564670651472018987607572499680001278012942408886871135499888888766746004607083202270425064680064201863435438372876304895773816562696751363003183055877965331677298406942363949148060366594352954439362973627899449606487979316765511816508503962002883855835023430224113478176610570120526508480149351680215222436708436569839925404166383732880156609433981724428673624882691448029301577855139228553068607493681912336665598948143814966690451484879962840840885898455740495991340413708120522106612273072452327829511133531236245764960391186870689581100533687346111420973778992279152913558972435202374567370691808430597108258853675466126372658339217406926545626020375402182899058093513926834894197159343272968601036404648820868479936250957770775699080057655547260544474810896233014148371435957574283434207963314864644621079209196333308722691570014901705310156876502273091734408634157325111462532239381542790619350924058453848442374867614806689029868943380459214728859264437351820737331982700632175263920630590761337599690916057316435687767500845063136902863452814983249844343452444140603347104246312437124972556224797713768181189653353040894244056622507490382612186625770914076937550897472818806464677408327510782934637153516169951834960614778608439942347550983237591024235941741414321808266332634910446035340142262923699085239375862518801188799003770332626947147563675657198851493331654717426853949367070177843804002337738072456209881123083083793338535388677568428575337588130686370676439833430929739911475344022267206446399395371063536343814276735287107978574088455985728837966692285900142744150917116923003836531521333325569670627909465469779908360140014119500818620106238579405041441776368887684100788166521997699881941340266707113442444344192353588921275613239832892966469275101000993416608898596303518243495503499231656072904906857811249050889422840592919718084118129765260276528841760991407688220131717944850890634219120311685543660086904569519418668869472363205014266539921487323779219019448386005129306629351717577437643908271961582549364546715385443624067049831750900315882713720226000932342548391255248353089715647055245524950480599716492325184262758343658630808892496932751526491867924710132283006340069104438698482132242169768728546799731921474863303747131987342289558268871406277726897301123195122251532119448025451759432930036448063412706558192887717304590364577779702618126374733908060387056542969307224256158009553001667122277998196569255339734065196941080602439877698110298736078684658468138258256370095484647054547833433696899767899184349350277824288274276557060021438483185772573958904647030622476342039260163949468354471115672785263369322447511487045729681475489306607890674593612740850713172829930661728786583014348851495648894466766207741536403849769598038807101918780428039160027300696141241235558602366857758782077071235445931922757531332293358304414856628075672481806382614533540973058536274179233966373474805748341180396865136933387433972247671036682672115547686182615074592804069941729009034754046662234177547347612765207602373488069077960778646839067086390220882013429975178493143062399832214146724600362841189778533351072821884497657375228596960009168946378735785019646899595441899235973172879678227910071778655514723465477982694338709831360380059986270930288579955582778880793512589875073907696737236605215839961092838034191037673713416505045662127403707721519879919109588081981990114290302030574641271207780120862287419728980495994634928691033975310217768332823999796265558791447476681968323670428933041548710067104804107309253178097591451657921979516331442349252959343068780815803660375945195883960515943534449672574466312852963817145849152113639690567503467758793734799628034661676217961899078878896957671496886839481760133874239741772876453136119220638943580298657022174716749097429851935288529878856054528535720612630163380013511708228367988829567141425699455792522158255904334061918564572689173611817906809118560454791382630519526787651260692704539527291653027028003490562787873873138875111263282411032531137352245383259410323435303745208986584892571915880813085005666496556899363260251064598732386428504286174292264392944765208421749959624958109888997893410142502456403659673665439171190864578434006532611106902090891022506161459514927255315053906309742961633746079217467323817176396835547444447721758587278312524479897480371551275587866986400090019129168155097685067097744388232286130198583564665473779410463169913361141917927130735463941966460009642378281559044022217940284105101670635153619287191479428805612139673649879150576112716389911858368137026694300073633280025701824939462948229892411052537514596001727784087183691639020286721994889824556721353530477390085877901382919410876616195340953569396071517895680839711250511963655000266899366669631011926090078794193035788236888527509226550964177906408110027388188857171626231650201319439668735823272488883320887802454927283434490275365986359579397093294193157824265278792021413787651794515221454659693942163103880762939119562691127669800917172199582430380335727582836738340954800053870656611943874186318115054275846783836244113623425932652125498968986983989189329999721494206967168579373451371666864311757749217579911294110261489631468974478244653873864237606629215287241613630182017188752342274056478726130704668118916777793419424638077207224285676000445047439168302049698235876199343696768440673946212665371443378974863649813553490663295968268647015665788812522674832919372942854780326996453599699565980957228549917169959926885668114181000781457992582495661298536499986920278735897521735958099740455542186441405097182627537611336213275442748066255829116843655634626337316190146748410409615035701394265658133612739830692177890498136120436759199503991576695252013047756539123709524901896509841902015597581239214228867654486398685382757960854639973003882354879431363297281897092810748939719692845888339730985949379084805188481287577277848703488795606980411216141779231061322200377756592124792887135435758968500455962281304669155703078534075243008797598963231990557828844894699530931743002760575298273319927577555855264494462579806123217846951415043622178638832142309625155871710930506153658863751511853673010355002768165369533308429080324794942243866375758360152627042037931225347197340533365326491098884233938253989987921921048699774213596485877769249501357205607924531836975320797326286793650577394261264902805162313739228445564798679044766466473388160339402569340378441727252865567346272657442403280859618279568981938428510129606007553435027845396840599473927689956645889604052245906261298783333293028814466502957558323170696079173020339489187859875612227456521686683104622022690123764103465452849132895274118907644403847395467144228875461845023010389323791106088075805338866967224327711723158484633249731876482285972163651515646596688897772338304881902802375346907606070041949049735095336272154998456641629916988870092372215894563984015100682309861043510385113929709640570790753653376389903245897337793964112816263782419182092336917274767732215838023435092599050753544555015580004224996617294794356526868840573784082798308257212618380937887733654434406085645386365702969162740789841661043315464813184860407342870906550522898291813981567554918867182195229672336656045524076762926432466183992555037963613573638971850330452514210680339112630230596786998195114360205283794049698023056279964966090615081532900816217200016489823018924649216086354630705139957773362265724760256227536642343461407442374048585481670731383320906387746732551406358489050004899608530780109994019838148485908060037171221786046782370800970835497471696281137740602595105813672644330384711643322130626710009161846096325201516158716771632590128556224728977541607157947158638375581651864548881046512909171757948649226049531333302375635467759614797822577872557905046834928801171144151059103124391291840659355433536559043054593026456059463668034243212762340173705159845612117582501683822857654093018247279928209800158930837835135057792563169623057903424168088434067855642875087521127296328465015814285769794896255423815925791034162682247761333020317486422844583599013701651905274763565205696802117991381696947594785899324702800115211793814724742826974165506934172257884224677781201631587496168192540512704348571812673489207495957283430575717592491236215767911963091555719696344794453369682549052416880819176739666688942325587328054256903144782946219766194599869227156450518595051540915821316397946602495171756070343736651287915462868297725433175097112246534970310354959827805838149843453095136953304162723314348769384956182345426387198427486758645594441805709409282931310347322999113352802169445494744309710050317551935493931239922557011693599232531384896012819977869139446312275429573419552317726561219184585240832967262962984872950499717416011705520200846400117129010188274633905458430043578856239797728687554154680816646000354257676605774077957207421080120881821313242059624400528582254861909861496264502903811919766841049126616037543541944809663905086857803169529032241341123623321978771902078934641442483859674548753792384791484501256768393799468686833147786790734903850213825646628409101957951594249643981701602361269536983825230215845782707862012271121114547778067079226178122645527044721440870065644381173952505548491827143427980444372016921074404821325402630290754950807633405342345799313967240567751756726113709929171283592224020578504992852402550744025714568573131642630638856097622027723884587365802977534307538979321477884120268096232614794694637427764659161286761716758297747106521451611567718338229799268900824670478116859942108918156859264362822168430096949911819131180013221869492451728874602817489828081844720093112073432154020288870335030636018553054962144336424954571798304907989636464089172162673996185882535704779033877723218894536630106301635604859234818804801004698839448946947264250634971766807083959059430578090098762725125953579861839031886020859315641565309893682203399355756632441408969182120478658868246211965421035693537669740785359418792145060879747258180422439761195281682767302310994740243806561426124253585919093038382092581252678290476503356725566231070332254964738234837722067808280377708065260345818585133705649366492911629683741093057925686083514095300300062840107088784758513153564900645342117875484499140262574182012698486093904103874833380554304038172506561290520841033813487090241824034812794994169200321059460801081291851164120805455784492151075520502443974149162692163867465094576703001692525437458728926391284210839913388595747811024092630565395716499285379130909158289832182882230991254667188306730836443311583914158140943599627999409707359435007585037908548052855185537348170180725923281486747910871586139044077298396176105837970346255269372031062618234360124556639794037583471307573050104237325821610951501491457918651736861428536320596004243720451522467934572566007476202020110009536749353702872794109029262710445768157547983048658888375704959682619739776173521834417184740792916744260431348624246603561593246930634268106124456609310544844451048441278479225938953106206370386240873627211175108778794672221901696998661340260877148216330344453415110892307957639466202075912722139011035817942998254086927308603377746391836653291559691287500050465591477722429477673274994523481865876360890773209264007319965808235351996151592192937406422480476347447297753505122303185114954095135718074407459524072295161322775693731955222274114945452989703238718596798401495467745088805945393667117852014628411099899342517738477547278847776247755186762473604478131034917075743880481304701608745172766450426446149268100801091013409843453027152322364486123675975234689622144718910829226428564936895045807327954983679115480562621801363055677094434045483633198764807906768147646087683342771994428868604612588766363866511926688721256971453572105559394101044027411237515811055894507252861269233492889148351197224471483920615373685072092420211366831569505746234891461623775221065100044404945377267587459967246247242831315243099116992002083011589031432703970689404078906592842936144041011922372046929196528453509797685388074556796581832307186553532842524021124451901064436487086112637549746172324052942450298118117091129875035737145220039599982064616533245819779862801770649671284716674046119866138600682956861966153580060638037088846838972406632710139790710299006359446664069657268397165375378931891601894825535701384469343189494720585911510061787678952420973986920770841327901567628544805171472210096703870534986556820099634815424946119338043335413443265991817997153794513564721920517849204770412447918241991166923558636271884784138149198135370077979000879618287198966696492863858303634051283442625640886647740998302486340617139355062800346527760399235551895076946805616484041060733012930297825173095171310613061592827031240137265944669829336544636759996211543503254767756316948234980084517328852261564400888635102981330004430193737898166841861323538351186125150110019926143873902053903418360852115956827099862400835579010498952025825548312972058901612057808396221841897260870018442326537698975784086596102722935673049635633177430246727712024130379318950040468539255245889879644988079071527662101059830587270629800177940486783221647036505786242808922504229533062299921278033087923080410762458265947640580964072580701198206859597120931437682085811143176528080884430977821542463669596470584380920096408337500947730021015617958789172424659090599039644542444842066673463380247979148594414909329351968862224663449031854089194958379526667650264950483123701813365394494941630024639285590506217891764066769936116757718749783041218956250195668387658044061260126360028755532338294590117850082742708886174037488913823558783098532418641543892883038722934321491251213948074330295265254820198212514918511175911150437791449287072353051503322115999672865545124846499561714780181640281779769704630934547061519406268407419599021537759454196201757593275330093449706170311523678273892922812309679198790443279442964420730699475112353678973519117760256056258555080856341904954831366375032650339274973595533111800394262396853225906333396619404830883534031695784136937060161721226547367800547532000981797183806420364338265300544738471543327083906511051573662690703594067600329838695782116901750341470421659644595476848942562329824962764348605277060898309366590450522208816262657864997495034687764759082319594950803399474715095064810327821830230236374065970355356103980321704485403841553127449356335332507818037982890617414774974643433320266583824103103923382642743896523512771216794275618490054791736623245816909091051598986076679368320548719202170036509383608040725995512305192341995612766039732877859247758249480833390301739586026821061715315385078272660243958436354248385133050188775768983136887928164781875625456303113652342967831682492331616878060232516571910384118330281312809235406249470503451095240327357245484972256898894726408970324923629795307055351880024447628184978367236466694418412304633595160771786165777061858031099396774301190135322928757859451293682602461518011398954090850028430678918139782861813211955523949813749347323291270321568543719375607438895273828269848309571266382224270546999418772771102164617278993330981421092737189346713712797998589806999919403301143738058655572504669143584217961272611337419461696954516620461750825329328161887389880476410155801199017976594336948259017074124171048969083815296135908624853754882930972202426039018887706173560587709061248130611564956469578433461413853879906085439758358458836178029026732056902066218218255846062808556060376182343062631063179238712864897448051635116715244115518438752501118824488850404691041832868162670578842813837503859515018579560873608509089515132205500187101570354983370300350349940379505914585855381882047409550324988849256178546387426043145892864975392630429230889713614036180435779993050099889033086991568934390135093580985247245098052931958238831728579563116644282265187730709718496789275247548349258850482505023203074662683817661813570546230941037329197406174418157058130827493206567988538935013037506519276313469877795146301886922573786761015550789743939801400014346328085793112300261020682751272168640501656012170644538188064256212784939312679738103294961665479497541356722119389167951562694126813514581714241083619047214016627756933847827610073054247296179608284243546187302407707241772289990328108262858012670526822142199652506800681222642516251769473451157273531764378023766202854304981746102356123828958293878603842357258114192668838303321906643653796024040512713656937981535992520089331002084209459749142334933087507175804960133307980510115119557004580228540684797255941749838782606851539826849234083388171527276553244046461730367664131367920573308176204932988978293068468368879329825301463082853197698298222053713061029088181907377079104319808668524324398671943010952547389121535890026827133320851556235568072079083560301106128922317530128471559131535295361012686501846512046572967201256133866378530153513846508632865954865847431614206625795560334479127198396909066110723077832010774183401691997450967346243079936592860612969350215580337411406513628450382875719867902196480883725132341431472664930298476431560030527106807699222249657876063299906104650636515248807493805667216820404105469569489705185843743468597946080576364323212856903831252219410713533578953225077192394906118828703924594999969390070486528272459172470213086066352335515086967135251606264196129509224357680959664869913201569982874636646432326866620152304835282118818903309208281182327519771062005456250810277606821776976118594681201463133007815470610468022906188139963122630905117306967586483264583440589269269494908727812840195081327604036268408671828496891098230058969153442155212835202714143772045165118301932348877622579177557121389415061139404070653325768759838280689264098784173248381162993432741948501072677252407216005984879391093103817873796862803233752862471383608017327167124845194888208346139558585871125501609988304783219671540257188836221596803804084769131365691911369897026997081921032256679283468494166381207085130444268215454410217199311488050119249522085506451640061465664157266558468332120621778025142835975978216569747405406801278213969218948301576038346122120480910649015642026985244855633246756980394437228959923522360290701688903231772097107700649033544252002807935185575475063493144428388974266318809743519522179864194146846713065976353418265249706557460284189557627655780678373306904938733898591131797507079031436667551699720820941243230004853013903905587666911549566529954199835658665796113299924389060826911869186401900901890486677995550594394942092447803973322326786739094575964012727307995367523734769444245870104838480542543061433240459426999139534735355375263915745971589960480573274711847714249827328375071383701553804460562073167534324972266979033960259564190438860122834709393260772888145435861721486628083523293720841213315493705314564701190294396494739592173900525289669474874283061157890969301320976353584851248945730332251645748396191590028377022533279940964994473158879526683085722695986330636066700633316332261136790303371138520373159311579632384378718983683099411048760260271107508447744941618548918277134742323637656605928340405777009943180162361265668917564003963090378196672301339062297190243155481523393610958336297766572860913161172942812845940598332121568515744263055775428420129031969671977241031314008587939200302429102983352927121908839993074518548736759754346432478489371737246904437553321898227773687317232722808201328473713033515574105226435104540416202316188255817196040495573762355263131881682024882779969867133464756300595995082868224463511251366356938294368875058737750079825602095045838639328839200065446612947795628523759930395300271072339085744350527914974901381035828376478527323279871837874122723938357013376257046513379129821028621512967127043105505833866267931937217776044279033366814315435257157128448533628398072566188166171070998328584325278657039986211008647959505888807901270348994700653764515558160794352607075273972036212309722012622220288824172223194594148058839319689436800091232943532568685234232298580857371415173128062571949123024921134199934143101721401977416889901296565060750768070716244774196744553781002740970102307550744276920662708839650643885876018253603900196377884106541100730363057104262916766525914252471096640624126599003541930316746839217178547074394051041277720777667771716144270065144161863923270666410873429352876716020462356219931233956098224269153154009670109794344802324134318393800719472950664497054393961363708757081999068464698579618115157317928708183561656363477806839341514483981941395725518261170395250061364653569064378881357297773994642456997365651174018667463701120482908470335005637654837871475572595963580270732170151463105204760519228136595528614522111624277264931483841163182075940509905530862683556098807971469417945378599884565850523081045621023974809462482468469210653253961247676273739955059682455857935160979944748771076491913507406161328628197725301475060155126091604042767884814714949047178603316570918804448625211941265228899059664864030207166860087175813647650285874388321235597999154971739235381131058191748206746065137642244704881037260943251134038863467643837463881322512173654827620766369534204749812183953333779426038106298919023240607172939715849762884968091454891702956227629145402076521899396767088608462741403802790139996501715841967051747814740955184014180144401770320503282313326705959602081795246709227276164139292816326666162604393933932508504285344393720349265234481848137390937112494638149826610530952491072226423908590935353876317824949737580843043582029031523069661734394322287020751569170311165455689919723140551107711879307042862614957032900502152638822972387713059606271033064571457128249952541459823773142292816935244720740355908546357908402480066187218537178190824103806868121650364196120351555207135991732814340552175793877719888709004156948007999438054955620534289685727814424282189108238791677582657942910546391911219283973589988227873735855496931301694720141448739444485052967612065089754986460364932205803170558760516542693680710717702356398234898079215042830811553802496597231710329498848167943484580128105777499149164951498150163047875489328102684040044180454916798656446959235813864179384597228012216140615096862688911899011400567624283941449073386098895774166740533023262704831436381695817238340092047252078958944751607183544970932211098087643620253029697192772643374125324880188174202715582529884056524013830788635130214833229229367459321737746530004569181325248402061944015579001720929523104102177681733854655816319386380325127006825094870973007682215514296951415406307014716803154689752671979437232061956679102171985030955191313858933624918439383838622203113197285501357162559746455771414867869456402006052473896206820125505368215549270267596523443183955421600169633377768851262304938162962917921880870070217535846805022404486090747408351081581973495084077975280044727347169210965797946086006633200393481892728303952133929959597997113875874050479056248448385339908499831571085733426105434394158137592350516209042676308760621975401715419294240795606774417348876525213769946308065417808328823306578461510048919513015064282827637014004327375613670937371285868942253110317193779540827549575678603177497834817771886181753610837619058195517747293209519571818628178073891686060992885939400628794813357947118891845858653642713842835196272086249785772265522107144055074167074071178671454966513272969646311640372889489374309787826959156882651248041300758075423699186622199508816351558950738315656378595277416205303371452047298171558183188644956770137290087207364540928582232500882421155275205808416366786646354543451069470466410191850432207955562999604839262591377841739540815314962875469523733821262442509145220501587411708102080992445363148728552784699668992019619331296988492663013666267936807194708018772482030809635526717901648981590960855509758240025626581397319187649006974743571025777781389887720794240432454020520414059623334853664618850508752530859155288855010271725310156568019410352847910891219460430624024689065384084811743124202064143487205569275056664190449956872477620479167345148625289018738949133218314743353795413465449788998617098374418663946785790756272992799595982724373750748187871225213399584729521110740371615020737703256280488398978819343497655138500379189193211273106045918343853408427505318922946610993250906660639231722983998993619138070203335950422875290573038337174645543396042727269933976674923147766909904182903966354380741027176819062285645110474290835330327927742010348530471501145499478048009579865683260768417735040253741577240688156909665963872589964924161818977890416123074261315508989147878568173032286979266036982847132855424336051902166029034232733391449903712612746572456468962780250580914577898723538069693952735884059030952624885634548267705531307498350657701509597889550365580740422683773002614220824693237565661797177019456849470096090493173351310172428765380377489272098005911578153999861896100918292935535003169391153296324178776822962318951711713731220670351639458427257956831596780848155544325429420656757094554297651613591804308058234783895617297943182692072055587066882338763283218124907848065021086706814580063327497496847571498521361470809797499624457584213963279065533296934763511051945259147630187585985106268168531783604726167848340749431982444660885236213804441497356177435323783197722850175400295239682240093640136864390324184181144308387273894015635180941093739468782125035187481483241927893442101252995768431524791765163779607172026350374691065847761889101137670865467379673495503680577597470749056029416674348443063446817619239728190704377988841857087679894096991021397214443418120111446604056355019999010063867047979209326075421978298230494358242899971724494340665755028294612384492338918912757076276097245810587183357039978892350110168259472955740325200176727407297068615419869324093141793758505375115780086770292605466708571187543295211528972729169838552283487062404923826794643728422613183291625770158694465908956323647414691985390175067719323713787161254788215140790434793257277645985025121287243787355493149438366109413909567287639180785454566062949894420081863319754453085125827191907600278157833372787150331908177459808101582684130654666738449842351234545584460865854343258063617556631091854302113414248790143675922861104574558991228856157414756163193405448020546711807130983880549673638409872041583067178436855479068208977774601784136186595237455506942357853202829719502070678828221805339064621471302453661296665293185966571877049815420097600960335498984003070150562982020586007451956114005685103728560755564902826026455703858855316186615520547795377835807564288921708450026167635260387139089468164421808337401050558792852945820400202699047434490497971446231415420400679028002053092727932860498938993253921767144304620868660722075295954130175679610539208155078744848298652276686069219545749718212163318934029711024878971631529464396844594760121913996844890864178156867598276998241858425166736976978077621851494295742883374079165757611731403391843287030565616398511559804671672928197835236865387217141971722685534747563266836989926890826425720152420374736106731612476722574903994219889464776064220058301904810726856259704668096543566495218333112265840626786763420726428835214142288528662589072432265404995646179909620691106630068909119701636478506717822845696780558114490318213594774300362115692105537263724375030909754110697998323002735010187178201992491439616415835196543835590408760006134704260183869351179051665666642810139662576881976853212671049039946973816420951080690788355197011181992554627383087093943500567994043300896056198690271443268591005288850817911331397831426880419360798956908822041086182154848774225786085538809724138419486124921114087678331900020498896977876534986559790235703921790845479221871627485844529187616572090750819586721248343194656473633636863246628991005922164578571251005540444008371708096193015357329465526541119999979825530888603927649875364066063736867752003953446672918334115761442526592207517731783897134480842825894823693244911282106709233676389660754498690400045920654295567507672044087915470581068392801962799340230620723596088401545168869656337513172564077205450659477729766883635702145086321697632959025058973092125174176029064665150847735492790745715092407089288151620574459772061022973036513740065305891171119581604194427772318057758546400790134405812631629355855796058713018733144700680181898714283064657894064284659044957630739763674774862351172010828486957792845481038840392323400842160220858376086234022876850205494439029000082208255661243312738019793247066318471085438853634341107419417381545348290126602239261616929822102455310642114980795322302866489426513321217123989834581000612070476675337599667161027174899706000435023425575953038239187135031368255331118047690711199783652359537606375291174950636368342369993847362490026258022671582229885196561825734059744798754069875339658142977082423066191881588731122721044945832759687136270909014859824360364760669165239589332234911656343969512089403799920746040974275307683073364163890890790040875622472643159254758097297367982849772299956391127293805603048694395062914901268356431184525091864225920924302572627252247637404306350250299298930839374602856732532231762188318218977935881862143947193485709069806757770610016168610238629500647287821110285962185574554335160651455475955409151117229230056241861843996814656573862300908011952494667601035691958101172391472752365594810581753682833916518244041773228875512471877497584194179369753099891022280214609300375423721379277211138526790535581688472901339239207108837591175696173294453864452513610279529078624909537200870561387422422589151955713036739480457012012558659453141207983817577635167324257937231894532158323740518246186186726117853444635347780672928813668882222737159845360199964214621953693489920956974524339606379868783922074083705840416729727969214297951101787158127194341103792009902457157589166762080309742652924731926613235603069226854633638544153727764335575399503476816740436612978651334468112720010126893715432315749931212345665783343112280796189591487873321589782207481263634519045221259185089495458159850022563324997810630923726977428397992606905073116579802371055788224498317878741189088665153907923744078916533265819111629091426085781818502426853235406440309364321534105859538672554159714281288475008090678417784369358479120528576235570351674051311342153752607981825858033854939239416167399317073140583765989866558036546655895880556572049993359888011347926622704369799007657691318717228831895490155472407461667588216260165909856986359757891864917937299347004775061572013564125849167172531382626283104377765122005823444067746626152586944742383562052525303316757257238844191673355984141618863549957802025167931336445857308373738563861326735528234064368192016916850316845424335236349317666259790683186694759919620027164250796914036430181751387840510897111988094770309596212762874534245165573181401334069119297000956496447863261692208984494150431707744940349893199091618782361468624428845308834436845542026641512056807022770131244226384080771720703916473037852790556222802785238675984458239682542427507645772610197268289925494398053732767184656244373103889180752289549338530397911403489491444860767496765601468553921887598336257710940697200661457297006572813612926460153637676553952496177870128414311811955744126219459820104814587461015019968899291348185272803536145740653949305561119205189512268495189742132958945181408596645060227123718820536456756016702534837991719413290247589708936536730871763517933696506387320488234250393548225311247154811723586131467977767784470362395030094624868415803438994807894092461188447354206932506591775960746756787465208003773345794709620211598246301464722510205002432692023825649787108708140297413818240126268285668818645997800604670266713159511139469650387065646887106152463348734774256791133745671622297966800345571664918857396710435268873810018785119197697606528088188387410789160020501270546075636419304809364518545923146438861340764808690977593065574378025932378253641871213321699013363700500809058068745349210010152630068470036013772135877016660376774420040871408508660167154466369754376341398934113888067874398566497059637885030198860500433903316265650703744174774442084732925691501079697843957675172678492111638132394350332754281213218895559614712882016742153395150088423578728787727171041602391901634844440416238026109129742267792676046550526572249915374386193030472677871356071440207499883409245027708347348123386606062797932379438020190624801165243331264994410155976889351467054267222566509403954199267676417732713297948895193083555567307824705599107848820032094162014834531898241415394505860925424529156867932189450340134957313579099531258572534749891786267302463799790486116817869702554102306116138644996296975255557866831047933271393324284894170845390774958940325021465063742831386841397047596577207606020874042316554641754795247401448927609678165586525388965490334705736955827179474054052414813871685079510638328057003530281997527069416222565155140779101761883448939076500356750853544788225439907347453892116057556935583913352146130530885285313420422947972534520018557064240494128657070051208369244336176056191084699120613942798780605526555975877967974654639338184146813801169125801735857169425627710167415072978513022523485495715454595328738696875472074085790123067867563069804214638369637409165180232049163813899689883038275943186124744989399941104422252355722394402990545626931415226576780911720655732292548985709525774031327931241258152417389323983232235822264381673391836542556528274702292873756847851509275241449712276362992844585944456110516823669072406200614165756049206324151321627147389265668020888146866936013013519287739050648969979543404167845217391858071148856447781725488371655847213332954436903467252357981237119969537863745632207610146662269122403535836908293351944991416549693387173241655458260840991406932244643920153336290461291102260791327997940424846183377740869246715200082943250238686127368818357853666590057499926808109571966197634898663907961376458330681173862901397112701830468765589269868184948513176456737297526462942323032411879931427050053636861010914885481683628439713114700336535932369483450156918754365968526696192731954897815175058848558188548051626266570974379964383699050038428160513428962501054542276220970296860076414103374364812542388658645741241308667944117854242689884157396227613383517935258287736853384039747954563075788239807091780942990077103350134527598264344028756962539839446856301845739392284209179442615156760011917989772949128571864892396877549173536837913680417756991414146085035199291827619811409529129352631725299390010801290025863509156237766440928625938692216927084657830260867396768078515063834800397085590283003434301325819766159908480695487274970029256286896474339263195448160899872849139564261873526155741232081664764618661734465587805077814905401762838958638804572299359380270855230995330208149025260196262027479488429414466174351928663760378259126824203078470757972901695846711818135650873627241340435475381142932284285401590329852128867435267447278147385132357838971513574834718887139362941731735180202694557444281822450862750114617333988763137135443693070555120641283380857861137142704201193925118442527850412794613963212377289843387261154421758678692755659347543166652764523198298770935547273863915653323446510518257241293940299948106871288728532897144490768148889714194459193904389752394122489812615795230578571929254742705999641775649943343067227984317275917327078985578279198874440531422786529893266998466742087316026099365438282533914062551562514487903026261771996873155274071233433388617019640292117424923355253614940838151992540486453548976969318539477280782214818461084985824474709995229411055401219255630156279138964847940072464743772868994581641719191970374375499597833871633517874288751403157567475488180076891655253832929697080024433199488146830418344418292267256952619331354865231968659229914371513452382366951717692953459298785188954867575805855800063525605603426577717774169600437589104699131512861803696427388775469065764597890971108474480569364607154147093302148847759867280230059198182587033655014850441907568066909878749374805771050133787370877955386669179180843882891448413754698565485928584816639426604049765356688730290849345562014472385300340660883175420341111677331607418139551675505850461332118220431019353464988332806533079614850206711568774433564253362636811852966366580396981080457118053280590858213072342203488104342225804426897114878414574612730912203305724470091558433892823948641416270641569064199402632039573530664385834516747145336649896222576880592096252738220129664108211448415698155053804710604405254680299311412868343524733599199993753308177373318616226467749613060733363356472478249918985036193035695523689037150005759980600305718232506877058945468506697249533653493432884659058060428621095631048522994569396764466930075276466004502959125431729907920614979587421042589463364433737230655703988170377740066155391782320662968576429311727830055723305811349509275378335327665868206703370898133838191299762822951153314920014544431943138381880947112736002979311132330342004620993762206379999137337601536289720870920976186610822191223087368701860339657895874996743188251031184156686051711632292451749855411938069613986060214539244736833330125452602420958365299732964097911170379635907021547386553542505698481348724906845532843206457519449195233970403965258676758604506341371736375674315005360543585181204419164115789271945152215385695238032631216592257387981598365467320865712744217454317256263924304449417698768408145593459700111822292371524841233172469476002489798020899735727713605645289640821051592846257310609642682290169456394748606902286167154532574850797145119772108864396099517112379237110075564840321883127102590256885272973938540199897280441083669308085513538260895530007535966679437595492514303018605687993208334693972305432795256253883262626343288302736925294698505659950155539003806746266288698162042004821569635704590946829259140162551966466171884914448637929797560484708838107107322497650450789034985985003757023410013691130085892557461114294807946745694954430750162752597941435576747049055514221347460273454132190591055443778609804269977000588348954349233738557083574273835221155814983090059028314440714500776667523835771269251817408212475676533908019283065141671942966517892112115701515875659456976479257338066549751193682684579207669006662028123429649379664664668308676050636093619017679663046672778160874222667090276508561055086580873153179084866095637381518497115896591041663476076072080674396887545324548003591896961995044505439230597005947375205600704916261382721744678377375139476906958149518961516956828954966452228512192785623610794185504760595503360027029686533958708994144725954160992851119051733769759742096553493396435956850061881724649275008224885129416061231857916904601270049415376010005183767524599261113665669162883811323196679475051340570359497593629637318846830063137162491972327556966892464785959007364691421322131258626164493148620438665615672294789890703206492872145964397615544621137922119517780492651052860645956524763991566364327453818915861969999841445278274658249030540446236627514969435773822215703222333510467131500250717886781657868890635503535822177007820024343643526781893306231078254419054498416650768416170419641896188601958057929327648568220063496610037104380311020102320026121682431256120780101400676336277346875139110282268874732994132298406165448429326839090576499640611510604958597467701004848412724552275804179446817629903154964397531753059603727188553472650457604783171710303384852649126312999863354840198120659123534761233034646487982273189822531971783481742477473727776539587600224206400085171415477291897505153899081971078539367499426149013384642887601333561549078724915512587912119028009071937702519789211032346551661726724805851191187393161538263934602565490338655786471333057788138849181209970141868667865914659729666946399709777879745008547452088458054685438147210061055498605621445126679623843668028018936622428921493272785848766251027806658813297270379581774266398391509778551893542437487424826889531672112095128330236668629067780189438394066174251008295378658994417269110288516527619253809585748449831361248862296881075359887252769593388820574863968225745823528162098748595459553760233457945665054932535177705290038431182219720071532784171758802742107167150779299419655115982719461878567848482555831646735271929733364880212991951997145923036330861504996787823808561389017753052712128533942152426853149293808130206536823214200544738415721713881896823471369296881585685976399751094722394051305642493662934224843586773316243234765337218827702728506546568211178654994840336517421414745963645972115648422445453989588023229651220439706219260278853542386184960081621414426295193981310469995169467642656866595321359865257619028296758187500120531648425946539399516340995167513525479436320809853027578891723901237468619515504734980881710499124479076810932186452703751936767419360044298897253479983156607897356320776943405983953177054934344345345399206967762532138061509297965285732825885232460493212551824149009233100707096055138588717995154765297696742867692278073240732706971429218318077318799201370434191764347311919994986640267055514254289154326321610368611346834590558584749138854921221151793721875126214808599915022879954065448513767975871917512090360258688441547862524645575199517979414245855109970715149925426177571967385246444751302831663008303378156846635537205236077716476246130104745426312748928989077456817084552116491103882856547493310349554495254685107611613278324035086152608428619194681439315711120322364131526844184086744508026480121129646547008212937005635175006428859280809421639246031105131217125198558047880148462209976100475805360725308902908605966478835474553837671540032141913967868456519822426583889254854418932631472353112227694303174938068164236576326347676741658110218361783699540240031425242755501919178539240850926691546956419565506565756528620165205395999139107487325435707114585532001282597036180322140027241520246390536799857936022910864653003652083503409866711957248573532875827311151972666216525181506995577634940217938336984864700159349210740082341861682626684386496734554190699842662842069677944374895474293185101619423520365142736787345324136262317065021278075126031572095673786877688781666040708450798535586081244502570745499303981260311082484189519231822413101749947319294806168099152189529303519132418232462541883868975425217978472786649015353860216160594616406730836032837482110945885324214550789494435814960221081055917758158960179785562589537191755121182352009627857079029162929553962329611695330304297563858024971903448553812070966890804927318682955072722611390487909391908366321582626355076421946039584502944610182756334494077872815895129659476651721078309600802370437266567478401074937345773033128801930412451429693190433315034599721055109415617039223571205322299635040298351453009602513199055892220088821619916236375110190270758181235782943439657403144378367778276061507959027633823994558108571587563454054286005506495206485761897641501612312204864522138529137283477228776220218472273567541037647259475812227187314655611129979901429805345400812059326231593020649517742402337307167559452307156312009784475125399791523228918761040367509598939705489797621481447520255076878702552752363835008341517597406581166797136666593178637540844870185341605507148036998291418571413693729101796764221165408538650461194303374037329204640843959657873356434470004856896264627327459846648486371001043735482724132410210191212805622135648077754149026646725694903672864662702937010960794003898654191821462041674151301186709468040387783218463957954532695768077459026954680985752820627739916645977489548476161923439544233534544278772865514724585032128409431942504011340335243415908288949619180337257745798663344917535577985290890548689356000613368099608635980658390027570135251576036951504321669296552675714543015684711379926809741002523804968891156597280207888737345530475224055812417636359097179826245091650902992970012927410663719032708718265705430895711367023969753605328080306354258119949599903658951740159939887083029274419217333460429910360600560488588087137172820608943418095036196534752281210923692709652831549852635078484473303618576353266919111995544098260501053847532914065509212375097467226804217348228039979553741771929578463909132997520179640334009475203253290088566758388946970124602351795297087084519593271209743230007896399002998904555213367005790960222156412943897039978520903229604549105128043396898359063502779690704060368428996193134910736222703230939008533559687268637491652438101177841593831473759867203492999310191791914807353521161061277263794128847437862192946144780830020211662310550559394679445145511650990797278571010502692770371405936635644328121283512784313076012942048518058847405369667032956253409500519238933460446379454426247548546637928546016913162467024115584549627705545339654766626373520537029186739812232067073180071277007686132130856063709052693529843688503654055451012465244957500893638758828969644174159201093014135699210842233393083368830134353268388422201072451224485373917482748172835749065633304184438175625032692060772312118063054576035664726983549439176265341670434205355621755188895180453523327397657702728859390787374873793568149265315439208185165358166306767863518189232681644913149524812097173689615210991680515027904472904888660131965939717423875262749426403948167435308802720007874618085389101873960329492994562030976305538736523680337438883143190970919258496213102596794672388146647974575330215239325177508341542410994610202809656600986388162735958571876617308911300675411420142979946026298585658537276039683845245674501972517141217405535600511191630492397556410601468683197685576469765132094821699653749043320200189737038128138171783149748072987964651676988664115726865038123273961027378030520443755425543488044081469134708842089298344147109912853566583074364389563164715339319747980778334263475253774191104865623412468664245080259138313683047083769575194950369817307609639047549579713871488275304871622267857528039138811836010766232599138048033681933165885246564323430833797156375955814834295022999708398899727767550574792750065390126706493729641008762515522582612930934440176302385651750766393801001167744603944634866512645908252585079550831520169749600559490550356143911572703697955695545505253353673026323302431428956446533762073430030993593119553671629032143805680202969764477522186863614976774431305232533003072931010031051965730197036006167998230053687526149892642540817894887275915280918560376181168659878125386639715855863868849495359578482289073953948067471822554522916005701567611612416044523558571781719119206222730173710152611266617014072478011629765011224176893300813658082088231739902327701154634940517718253068061744375298412666273682027989511367520115998343208360382153468556166605938981763747222791583053121510433545569742666324444868668012373170098043775808343850322531172655714468726411709342409297414736913286021385275101487991675364175174555960210529448290474238808477494782051014497019905362954203078378380888768387535870274925392507992377163639135366386658764596546660003639429569147062179058541514643871417549811765703208820757865283337484056438808705317871937387982518729179011589036499211381511201660656178961486934287479712370839897726982871506788776560038135670993140240542289843946954705708490582165870431224775699444961263338844233747182756437114583006566294065104895035407502225218100899574563149869873110946973017151148256405656961484281577667127656180277935882901745830796052841032350844327631882880829578804923818442186957948384880852384309135443631664285883595454316158635468834234556547818150952735014249931330172478558638074944149860581763688809961771891677237726096820155064956317787927161680604708958293211182541023924156820111856031698770074400396336484033785177327570921819922710418528964279395069561847773549314021752041429476758967593473692150433500719283276587538760584428834357432687125393136970641135066260143260660821505251659902130779321575461194246889761086364064937657918813089298786179655795104356054690058595505541746073836548439493521483974289052630014270317149219543718593990153723703412666086022074010778884522199681875119101663804109142004495621222158615166645029630122400104983952356647494722193732049024992346343074952893123702052519641313806576757846802719402712499102501810513824479130794682505059664899249424870138275610026132975334207902351142002724038952164922178311397136768771332454935889269651522355941452419399903202298812278926910285166558528951161694623683620706537608108023967153169955158937579205976925981101674800566871033145954137782439750493608258119203726022970294644787089298281938782545036930405524357684804637523606114616600097017501547540075673335274212590061283431917114530597649419415779321382440733290578283337809463976556016688950192050678714889917478870304352036163850298037464290782753321069882998928369862843822605414985327640622094975905012224126206490526312100453833999306901840211463888008813540400676915852154470748224198309376919550238594475769045726853055949692433775316150484510414115083953911454390102330968455430859753443229233672000673000029931377544575721619858634281597493323819249051495436080714333048493207261507069438446082486200938188045232810303565661709178152485756018667988518833318474480988798616051852177357222155705480063468906548195998262966539587206271991184558003079159120894938592293701533669191215523320696844397954756612556922876623251789646894785656973232616720595292145011809779418591927440388662743995155599680026723028070888242165866915980559477912190110523487142605622611499670351634374821296601038436844751688629546342082635032889668573465722411020811182942410653502031225631249748251046829270546130553132495002608322599814939840014034619801433889681028717329186297706061010628055263734719769576732041795143463927129437559214306157409101524495169787248249196108895752345099281081382937654961739708640735341145452560612223404732514113481380229249094767308339838955727392824039451389698650615136568045408583631921004360121649840813059034275607454742649037421151949744746974963675144235487631922165918698188876608056039848351008760742864824581623303027682226036158546323603856262192178307454469540772713038060070409381039149568401830354169266938749398680011154488255155106369913673314830924399587088407537164736483619102742798044111490651313142940116949549676049129051265149481977224394544770364035488174082255114246087758314081080410010151245694751821008114870757122283214677067774740400841941753023653126788122643716207376348676869696702117606102450952024625254695111671313735434062689753919283147572678917669685780958577049148838364466793483009779366410621916786411786892344316074402547569198566627420227064392121421270717849204501111951496361522238734787011655474324330226552579857800942441553473426869996108340762387307730719271352896631063579633374536713442758151585624478576125521072962053821777901188512610025624706029986491923546770814785735479719963939545967272260259417581116328340506094957269660910464836931231710030454478585795827410032946486019758449149665412784183654490744436942890784349551424571420148509886319293781429561299252815755862599675948850768736601171667724303899454378480967991091863468512956151247995043804990314758436566482702343199622400695553632006073361007285118409277775959055896498937098326774495452912364861357917484195738555567287639432160801739506401592359974422971646848925205659196418171630806032363110332621349304388508845122698454184845369677611555153454967732981526591343831735754708468488308706454052952578010504497025967827180609876150170568351571317845526460257110510158934726607109309522853649074240629261384248663959023265739885421352050204983012927281945948894371839281571898679319684661357062447017722618235516416898710400856749103825933975623111215905667907240046128182724776094659635006600804765655776201466314838723367430394367496160377281004465201974264100303318842255853612941905310398840622640199108109236698569384002359038990267514689519321179667561897990239046782562372038965536001819167561565396321661131004041271182346765032562988318704882534182709373033540415959839955095171962703591659653333932320069417599929258245691112183339696864718932998873893030531637496822246817188479358028512751936555175499987248537565599339227499137270168684233230420015854376339603810770039490413582771823840237084610726865695129823792031091385904703355723253387074110126011426565833772540566104598076381250546211874354917487989689382513115004679114637371527699577200874221316787752404669183901378394956499460315956250613648457905152440679478189655408682504788302751660089669187734975406183172506865795595151675664516374811642862706060268211241601010860378192436135477174144066492997879640264204616396978612176337597038643494155559101308593003169864914112413826976780218166112200092144380635808198023375693909141176103023842842747901662062817310893500852853395742343004789953613359713194401832134076063364613358042253308507808561580736625849327029891915474582978060374940457411276263976395775182535971030966334474590334315176773048743498901471737566791584985978097673916679308246600179706311499574009992096460538773690077567569320762187015856825597307968588275868612824024789074447089174860223325942290238003545672474544656913202156650926005412999981460646139014171001725804988771779664899373681743523021023918155432017521267689433793214882628606790466128609004174973573617196769290783441761651425034574635391063828070700800607806782724496645921244892117242231111708141782900445874221663405605786876296422996958764435549874175621275596502703979139181844721706900371773768465616713760199684215386805373042277367324476225573941261828241230890436001284884553762878077639893729687755163193524068180390553249454050110882458818035317880821859392524640396390336720809827071711014688505348588452813796069926763589527824515889418926436620816203439274278670677765590831785483587343981729061661534498229289442999601298025311676978755709712919405488861990832382294227074342105582013511786759240421835051492081594910281835249361677259767788682135286825910383173706293579568550550694396372312468280164592302186416392255177386321863641845946284289916982230625789494072415639843588401643144217244452756556321745998735274863719834998280182075377879977999895642151263452942860079756817945016867266536895092822224905593043110698061429021892759896604702961892872524878583109977731321522524810756679220303328014924668431649259531678459481701727970850460858542569266134009807721387393274592497347002759455071470884074124525787670847411048433444112069998155363126962282415596377929883218165526769965158416211634857988797156898079558737568746421684466751337801895414552363956506617045020640620231960542497706302227872360194957521346542470093270943427472119092565830982675767175392434659753449529734374985771338337700222128384217975717038529812189302876588593524236637408531740460110963218613958601109329776407717914358964705824705332518702696120974463009685339228675664756334688973991283958517032015475593209185663701250353001543533189691503488058079108632795802628973371024827802440427674265206947567233196987198807507477750203394120629437353711239251727777036629334100246389003759630293203418113965633235995218742437910617213910261183923803888337157264845579559491887247640032504078058347960674326754121467058760527807754387960666709501348106374292875758582965527217321917837607803973272159074881133825771335055376012831816996314204535283563166714575546631744412945416368109358000964608951696733455924811812917008371228484881277700600798163841149695613148516351090701128352899394424655394507044435211998423408965779820015646412150696448397758527254501772977972214034643337772986623180927835660384007957412020394432557666740992591494631034722758258651679601896548016450636755236474708599306878210680326690161450570417156413033527244547770107773665097350453576194495479719266873001313107607829126761821798300970756464961917930126702442776252215662875624740613949016553301249312279717216511507537588544710158501395187505099819662971466281062233573550463282202332070212140573588821201398268761085858109576599215592541726154078920309969994175181824984023918117875252595018193044764920370099267551504852589394529548462386045631500990417358231763093397386375365480101022088633930414741140349334650082056980676320137881775293867656669392383634834914223593114899934474423121764963041224048284599115927565462752458360684232249399710810139153772242518511672754016194746272224662329594668521764733554209177442946372871053143546551306316221757607143524896464532876299226395980088064652862872110951569755622877737834283786510469863215896341347967641590815299814093234849135814208528981285455072566369232545452056484288645917154176289896556103290197444042778382309524690900681288483027681321183842229090379702007835704312292169295637954320387630711552570869265411412972260762729758798619388806892018937155203212998030799354966310935436826646513824764656893581965836660249065860436809622169588139610492339327006378905847868865314011004841304359544162174737758544367088265588976308943425194497792089955418219569435669546273319546146478902309728820051433936672357610362234091124294710053344622541098058752891112744104639971226717587706339817065463496803939399684890461205237498208484298397089053472983208379397251761408161851122598365593915872042609565224799303068571033803365799173212815941417085974932900561719581198334870219735683093730797880399758293219702227824551416015457247453282716339295199942867333788555308247352954350198417842612656291011783692225396684964086990805291534720296083627417669774651850829305154514499728013776085945939584442405724982052567666723136160606004621347638215175860772318523610432170863806181721030114681986796616038553838568020741238745037981981192908060590680807407205317986290616920751680838947446646266200853015367465956491644825914284806552557792694085395628572327351854036603847720672914781181142861867197464916570581040137942555552375224882172606628249839219254099500493777187797201001812018052454452439101585120803296566476017360329104853367683210758268837068390992578161874882726024493439810967388679228830895952626596118418278707776269114756399871345030733922957083631877114154927294091457961518124219242412494118283213600093505625975645813181283641865266051666593271720286114279112404813864761764722697328033785857870247075345583109082172063052311179122751351718662851697414658420487359897111510030915642900005360547927827208534646810364270614563916461787349968970635774062794495649897470053525043833015147945940438946296231333947160996136137941065419780792078025894468289134362708062751031920986974758313719509339915490103854865909801870017789256283714428211145311365447191879302281469660083954083516507480765731344370243416257776987292805924278281174856461362646139667717079963068018822661128718578696562371305452202053733667733146756496996342681757837805426380756201488103940056403020027226590491392704548518652068044014502586049276812044251504508460606848752529365375411700304455102515651895740884666790914216772932454692192285019420690095134556929600402135717390874770883635908428207825789293201600244114267603649023007950872274907402927546656939372153558786132594870679418833294471447024347980537565080716781986928922143298794970729356824443813537085879374909827380628261030947628480174315930782746161473515359832462448055076381771424784322655468935842288717436096699272331207775255459135733793078513746456618612743484747604257912884444090369089460246387303799088550097712557751748912237144198822206452103296348838692654811394751757616488507668443112862212294235814957736331081530415129150858979650474276797934792641978745616622578374239064665783551449895622129814411730220003355778575923517958879144099867682087179653620159949175051705049332572846278852638749521371642623832104779936958067421287839841474982047467915832022048781171125856784458366030013906797308816008656948909562956990927110399534970964939208637757366298682117888481897759678781304688769385892373051661192895459448029285094211579498005589130092509699705469922868086625572052410814969061587737667467124257933274463833693903613030210098176311609873807964044021278599333581268858523765218046092543948248912192679202423021922879853868688002701867488849482122970567586368984902699877738653255098907737752091895678208966164057521111314407231225928567992671476196170403340871531672552665591446851625783317565333459783224865540954509444804374771137488008321382328103360977724475122262465990019311003866812782839508047472691347493009043168642030833411725879471187788839203414248674058454283600835795309717327717232135279643461763944956389560635838509614065397278905551957409678624306022787812888294153395623129786774294792740408741781591273332766644141594456668079349275246120460369470438743661738769162258587030196083248320491229773690470083959592111378231134348684155714297003875355341115853642461385035290836447444647037332038675932128619401332259507550316230585642321440071176743794366799964158203615247678750234873099782083879465411575511351725820445443109658191681227778824251873584887563823142400149310503593246810983969899862945780830056298413864742472375904701287221268544700409200960970164819178910158127530175771373827722460216073320449104817769288195769564533636630889300507619189244020122484863044200484592855376951347014020394501778217320952328508678091898377053311910024770405801481102953064631441318746905285109764809912683296816222469863128525825681770986809198287418708850866147660360934084326172498625344116675803132185094247277826652783619053896919229431027293060183498568577606548952876943976950124082048132540353380346108705019915453325659074336123272201064777106862406608247634581678359496863092732174548641415891598568595648901006395014963761100108755891729914279202132861289887653681649204267034191829048639561914955997867356174528083989577401221458620707850493649499720972996495275866159732313945285268711257202313921029967834122786414363239562524807795325190147476954006701398376348836186497429920377769591614587106096593456688899909324188031841423950969098025337712128733076745112844566931421990088250808801255514098550525020457373229275010929766170183388058970322788310024211049324690066789879917364222948534678460772702571078108586512350816670918964509144973414406384681666189251651471258996098994193946799374287585921745079732268983977119393625198250597221370371893295136310902052409146107336041329978144831641385240722820482988710648819599058853041030012739127415948181170455664550787078339552956335282234782510562257092273310314958808117520351196188770150193462971541771769104599680210820190122132402976584616779160590273258505300539367830437431738229694010917866791461266688579450314988143688585306989963882429747312691260126039894473718143283084267190596873402174256298263650718104104323190960207762301724229252645810771645262554006723261857596564706224716335613239841906229424850239371132892236818042889718094697133695170568354512042827543067812549329069571594571866405884802593666159386793543960853538132050303250752927812263482460655519015600012324073052998762410820790841437235846298805571902563829228995761374448354280402160232939303190902725681980232028191885650506318181652444320456710777323906814288543182222375795982778111480714425153002495225421541571372406172422377105774355520216627190429569561346241572653039610362618164853581274843308121908384897207281936085631053809680820709155007284411634138735033915455043277966993932078071282479722710485377359009112022313711924423548215251650582532730040052307247995735540554454640062700331422105967042626737898875433778017107066983307149868984127589242290836830259548867440018870361344556079548783836320442707179071533635715238997694867185906543679798970725761543797752037361077069239599095733972064262617693902450532927963155862109215772924581672985140038524279738003705963285356536365259610522104689632280180745099532432266399164260829224781711524935107422193500714063512780983257316531198408116059288200544562494118071972237316870420802455332524150132104720794589072041999447001823377823712873626118340572774290336641275734657073402331803813281020402250714120579202095696708379800796582018472613130062762807641353836847324779738775614357560941355668761524068084142433787949570028678032918052096291284487408737526315163043703669188009365395932647079527220315827934599093248081747919538959332852377717143404630957604674392740476205459254746722721428588721735791052349068611905500633856850592180637699732355137797719074624124007620665378700633338502499461958901566361247426998913699161617448716148441058295775005082432377623287869311999649407705579989916176237163439367937763790107932824169599420284749705878991855347930628150756125995418296640485792348381159320721325672035579749573426198968359554994274844380513795446522849830304887642409731930944074737582620353298486871052161720709276313843408534558768901771050778874380614352532319732870417176499135259166260537133115063461508957711249061961244718089751167604387013500894306243783493483856610814196118612265494001868915594975795389500288121762818057438423664801159814467506064138896596244346790288584282441502020338172293416145014174540153425713960326277336095169574670833666435248989491456340324723211870721459116369193651413058369841308880126761993275590747977208672036490703363528482314670732476332434854544122638883687841718885816330730948124719881373025423249047320888316509613430825812750831503700154470996066920332278541516280464925000096208308064286991484714484609403048064687058450309319963464285358190701880102742033112966161051321012270282915844837486706350949687445724138073657981352246769186271321900578297893270382640176738799365760888880763853415113200234005180708004736920341652644223526278806994888107140326220056195533872522675984778277827061815494632612463068740037336697445979079300327906232987125616287878821924962122195912581257552751418353303630512018010264772702887311013998547267815453105105911142613118488073389754443578757196115217303230274822646374931097282517913253793486035024952219470405136809163292759317728176391719207970718132018148821375556638090535311132924982616227148580473694051068075824892122311491767182780454649313484774208814172011381122216726587490758542480839751045897995697087728343089643582428195334010958483645508068973599551360494087002879888449112185287366284809702218578776429727859066296547658118653441722081351444060235672198843969333411110999737967432278485401757331849470578613932079837677738714798622849290650062593100199968574175828688385882549424589979103458348130531135031966747478820570910765115895578827083191739420711411930709289933756287110262264308648678065176432379642604490951530650017632298727738366821444636263816289590109584755771248978143330922691345883120118876034757260248189275791633881855428608356475908246854396992190132775882261781274373610671795539357121968424910926704116209284166393384958290492153401148491390066303171327616743613600236734658724587434066631307729033745101737033461450192758381723380650616900904001114989986172736675730507522374631958368198037063544298120108238538249286530178479081238491086059786313727185934282701224915149763910567683028395280394094187326697955596996008711686816338016362321616543868144142855822675333370127871457553544995703431115327979545997510382306873632636944896418839767131221647956854945469104819367213067156883083804426046037533048268674617305049426492784341285918845059695462052603628624268631140808161457298070413604911802458780962429830707639683990049964264602979411875482489249906534114377720701905060661360054023185363987239945432201699183188901093547721801781852252846812045269872468638834103692211677151328769302701271255731065521479366909855731681521321365827066386837230286366421099818404170608657552121013722992999861041591603342882585349784514277597877532041770524459991307434340057925122632896555774154662420758220537308375171377811653642912680595113240021337519766628778828003061624831720515519045322409890901655393689123344592243967147430745467179748730275293857422397808304869895255968161188633579736773456651252841730556006774812660986461999678402831058027868637371428190769747041997511160165136856353302161091031508691710183389479608485888777484280647417539262653079896035669237975563221933536821103061634409884223919404278540923624552720230059838998849749800790364339738984836186395543625742697077590366195370429393289296339580166859169071196765989710887801023242164718329516627916841632354899949382212550631285590295158601778863991221902571907144102225026577645906103314222951969281646609254955487577155533601858445542452852398181897911428345061309425165995804332670248546607685194564591439875893809471752511061292267910951056405649796614195628428915333906142169700090472595934383725481342933996330625780276811533367269072337248971299286955677099033349974232516598029582345471702882356052066797777857490995399409037478538508379819248670691168136141028169712833036445593643596075542033744209720444497783679639974649154569374213477726400600603228014262750113877971460790811462149345869904075788346468219511072740925311139856495551324166011403757594507298831651258106833739313621048012641004207695242339653963511738647832567667791167328911584535601473604927809553768200986244771376603761190736865283931289446374995994258908486070829150905298288129351797325172462629396194589094123988795511928324129712387190669352661130273800663451838952247221386810104808150938977343242997214648027461044237943750313825973858292148003324419136007772867329344577356499709493808747898021117777469455216407527369836535679421015708137921533038872777759739285103086013225325334401635183123500501111406581202408274946052095800609548175824164929837623346294956042241344692573485494201506994873223346894444588281544486756628674463292457902877075702647907287246471597954648299515773021626084528610218214444962347479745904079775192316484046906795006913211497325426043511803625239544362089284178660995796970267406374509318200195708588883006762693494423213700962280332119710766267266833374340625773920323997227263013847251028540063453671995339521355106780425828097082259211295402873713514197836975486970385696707018950720722024202148517273264113751114055902836987474986998796199639980306589487963803782019856513996094042421079609947974654981529421234160383647822217646971495958662511113911578308475450317057227340406722603080839350712586008087646385350434460145021720778871718270505985865557338121146086895628270523966353399151106950584554144108331374381497785810399326879161352352013003094104409342795021293956129217319449776376047317556109325007999107235407955938402843001437484046533980902400340124236383124275131991785675438760394843838901347833939092593270893577630333459223885361080635510246467123722625164976605718970681408162922231428369677035138451272688721320740886169001358567694676600001846632520580472093646269677371836621771144428862514068630026242112403964314412564153957072645884230947548559354292055729651835376535650848995105849230083251976493036834407979238082228739155697432486999769801705855762562901482391862088137586051362274359713406197231616728980309979888213528274963789358345533751995164537850534927591210638912505147739533352728992406473500944028169211210535903279381302300007249108633915364462834096635351146849799701667356350149813820428149449548439357357412240762300554034180298533578070775313428245092608663851944184474549751200433756393366096126928139480210390810602476634949299304272370949428782296723900218621104977849003340162788731945777879383064725447685731485387591478742076578012888164383434542529208250763996185256425730350680587953362390260601610883400069413044738338218571502056047364012495214205705802174161377513160724195288763195110560699842088670969683759095815237103970088214305362717736370758579040151770800474719637620841530944718310753541230251665843466974629256943070397576757197879857176795326672135334393128489411250785728350957583017850506874276601457757896246170450153492623439561017924013621992531140624950109608141263424555871667161677373489365743782415067051102296465178178329768559931803264768544412419324153212867821163648016471885444090271190355190226733615180414823314022006647113459447366067369855356357730971165783643380066254484593056290065809759073854629190321584895678596595747251947740622769814989243202625502634601696174583588785644391577340024091260216571887801519207984371198023383562153549741217059861784798026675706164308968943194920396218016159798261899356429048554040056728394682693830795982652060229683696133765730639215712152843097740740451362187931326689885316687674882719297414127453618371445997584725927271769642345616716119310414139281059776059099943970810451306432866728502100868205763074427859587584029165660675157586251272508121336897635955918548495974627269015657047261538179950859981035958548548285252805218500260853994213699882100424679483133447358074312709170294100490692521437575090627513124917421833669016395086335821617577495233475982159303973891421137908311184276134952711188777135789728406111065487173882946183832959386591369410471582847352668232986216930115115522628820122646103807357353390595122674033996964231323090460053027055489263184823435346753359297819464708372908955416859691807348116385093089858314846167355372330488736916831305398962649441556247376413629508442026569688901406636888219218958347143852969112509320504005039447143247227882933376561898533238367348225410091751730216536351431247356968859695451866757173495009731502301207718237557084729897720840573642522691200439044503310846135067026497366364619854392900876257534267548148126712568506987936117284635033411491895737952516460219684264775663179787906247729342306559943699473992813823810072395293142238310456637935142522975521216523453579248052277661497668425620258909634228307447879766621315498341433458705103777825437041587357504986637936934260688338418501562740430188081489926943288795635862605032872900780647228494249063460539278337309390915980778729939126514930321834664889698765795038914829946234984101459330856820903797999624826350012344947131093158444126093099457761898769562460122205006018977167609183711925119954171966005476450581593171392166844422123157354321934627324240779671671489562653809363770805120899554820370108003838075349613694292721862274481359257537011940757198026590607787388735308771267656258057146055038082403077073931406904878513570640535314025995969640255742289610555233518844955333540454872969888991334195734416899165014682158088142605875924482158884206328771247963503482728592785947538107946655595441040299309338880353706936649628189386572258788348510829224182065373633244316879256008695830834184405461552734434169110554028667555131226175247056409657145288230954852827618848868162892863833159861556986642265327247264210816909047211323985048092124916492257544923960935078021890337709000752477485918690827461786792314464357125232532509725764653940089597974027932632646766259705794450474363554307491506159639088580239798629505000351877692277995200748141102532014546591653162510954274483682232758703817625525692409265926704355842161806849489848651953529953379921954933657431059167120131288448168022815387327372785941315981836549442721911467285076544232300698956587465735778400124160905080000947556541460564145232075884131483817447186311050641939409997625144906533662347048297469976627511905356659082114700777466822140001478659831957938215677104629716761024245340349782592116191618122495577479357575858711418295577886691403800172351501616656706662052462298447627490750375589050797801743949529546352484963165798737646177845704836153918698375543149181123138186162317148717769925036073405399471292454847622720908938403962459297502419502558415408482031566184578721011106107287173858890410545195795088714097205756329990376839241437449667400436473562855036027560286935437860500074248242290110153982676324990303597922151852878584349500524891413855677618753906316131276027148110930802151979250852840312766810439352924868940790837095828017781389214056309621606735382031523400769807344758897800514214580085299898901350133960216302339342587454584323085141074936884910055923928016002268461206521180138082855415749656665115580628953032945620735056729180763191115341641802597010439178140413586142627235873002705233462398130920832754289820048588358264704240435792867058928039858986245920711289091438778591919261265289367113474597660559188896607245332650909724953854402944423686614844781416573047683747770895118651083513483354482703527611669593042522223035922503795752453328242301838114355891724783604464115840378930290854245834327781840987261297926442922510818191669802479989061922975506066169356935318457767935244097563876853707381705664896721542808859782144368510649227793222377732537656484206359525251543006003340211129391277030439579811393706285955887104696960544281061224741424257574233157852053505636236527184800072090407300173098475792570818356476422828477567550472678171184888747044018976099325817742304048778270288314204560577611990275354647898504427924779248259630214730666198456958956185801743669658112872772431116498847418373578607140746452331231001224886422545569513379046770223892991150264846683274972797438404298320622518543744303001878632535603866952015682961114255974624039042711602007849145113140425885229315617100867788327069795254037565405306635696438515632159461786208202116695077123123720066761417209573889816040932703946374921858302251721200146402446869558792732732654863923901020787398760475431855063406295268390813473442356835887988416301216765496167651357942016983414698714586578317074103701055592119733692718628769809103255307145745084601243894328667146462487324419496242916464759082733427823482483588911114353301008372522392845623899831575430872254512221112450057502042561069363695774727947983884577650212306851832134193150568140906797608477163740607271850935001028335217471361800561972257111284807564342595722374404255388381237692076020702283841106284237450877397925346764184961560228775156554500959094663745892328367436651307814775597936192413132899016280418464361010540799794473675951521571357206796977070632365835997149482644210574280546429509238185542162749323758710563170920022976945751716473516390391493540137002924627305103118272591489133264937524491423776344036863861594301801992824691505200609822173882870962478589361921671561358824841310640983756845892755175999648216919188912409828947800443141095289611384405451555133444249457882166389647551604377612751406968796356014940388413469535092125966137789136373025518488639244221820133271084260260446525293386699952342667624032666148965116551222265653326769108134966496974414538461081413492244101642434000953469977904891472289966656026932727112484241566577655178104994206948521481112251340117522821616142627516843577756776277908106782938876275139734996307122766385389981387741970710938777897595434332550124677668719237293879188111490023312915137414108426959830787812247460060453311609276161186076731698591664223243627459046639544422832108009633295183688869358348769766141209047808980624788877594205207471083954805521656970633570062613621647179437989152007797276654124850904498823660833247939687141563552425045478347870827939075332414650104328493758158464687815980046909701613672342841319434579743206207985108042680994018578475461148144157639374285061116633681051225454167107906245759336314337134280303428735878904628481712205004496129503825551078119324870548346338934101510808595745617091081072931035710794152070798187391355184105166713505355082852037620664005446740778178608701115690877676115615453878859512466790198573244836364306361078481824206767391560277048201399577989985817861300120797940715139884394025434210383128055370370228352757304251511736319691327013353955084854748858845523046764178512060480296195651664551668715460291643207977800744509561111294205901592805932419352992361247092251845569073313168102283800889976194825612280307851660330348668114698184755772363708420803707906905410686526574879209081662670821048942751714411229858128451326258153091017501999955904367073230579081123492023704857273519858075120351268569597975989750548361784851781807865246867981671312923354497893649046645126586324851417775498924316787370042158888269141882705603898622709955084683980583137983595311886561519502200448160914438369075487143681678490902054199836325364805966397522243063483055490923701669583890405088702385847080303995867747823257985551189693852137559715874280893693330063534264803774130858623822996073340971902572335981646955137117789924797042536210470974232602756031958164782665182184433947321679177898015979738415288662780915003651906759874609202997553594951395910576069378612711677876145206587877498450968408946372386713049986496340435225044854536392141777387024610489650706394290271151746979110051024625084077127606761762470181575962847236510256469711174438158039312076173503616856331548917486266102255716783072753472343795301535961019811757206800961126680463092812064022680932138944722080782315406439760070431390135468161994207021124152682674591388976640177881039442284849902140207161975899474271579702072926368672147685806450457701808689523464451019255043623215879283903489277046524352508813129630313237700772529192558052542356269977327574792649385560969890671470013336149619467740127315172335037574858887124714876818282534142228701973880021334019899888222374333247869719160986885000682855033288576016071126117992014524114062230096253131809234355030527279921418889476925489289482759186248218939246589439024860051657288313607071718999168632908911281304691773961366602900059326776469032867413653683130066681077080059982731667866723613144368526150555074066603784185087277582472088822069504497236711404056401371029931179507115103364607594002719028006930969507034764884434522846553489861481205618671835101584886202812968900295727557077591171488369856345685108894364862424346260888977120307425764138439800870259884293850700685629395566121482904356301195497053999275191214708034841473026309847408508373680960815678450788208130187737491686913986562327139929734275967933748549859069048080589111361675590495656355417777775565576161579430361130904434231796950002691543061264702024497753145637457108467823709062628540505862038641492629993158143803148742926287228047529688310462082319988043179684889750538391016722029356974818406904754124870502297468138977513353999863458705634584156487300785286670947435026157085430924631411349551961555195640792397155725634557701449670326748629032574421067097184129836382957934055545752144738722423298856053988903623157559968324180487011434577339275955739188267259390060458473350060725935115050005647304763076173169664657705725928849410644467702910744813882739179625243003864050729318621390657077469671878952796116209156684868440786917878641315472434594795076187382672093383059591252507863716032431996469008722801483200597259132054381378832267516268478420783508274263794712961167122930223693272158598279005928754699374199030456285490356832807711840423492027072139830278999449594443369406596248556546689636051069810362295019365200980491727373030870433103221376577980988200145454989502033531138502364425876681269828424105678404281298703795527949093073710233578377191952721000442300648215393311177608515218627798719343334655411548902431793519003530737004718507708945120335708831445830198755694283331252585270837017351751589817667938657903894606635318274744042505441501896433529410399946741085847535390418761549178622835767720997671794195479779548757788318387388098996342621584788174929590910614121568430667088611864715647251123814317002552141163745234754066255283333756344676095802123914007646780246482655737541382499937947710623460878475293713286773394841564888280197221835745705155461446115025798017571793435824940109684217867479499176708932753718848629453769312723002894388020676040418924376264709844301609353467057586962697874275149819035639292456526732813233088013012257415773993244746483921792875216911896182891820792078601594431985442001757001435780836912507970997901314160942555604651058949344859536023251694574654750693778069268964845462917685979317470952636274428895151250286103857173860883888995674050798205786322925526378106047234991249798924776128742583379231483879909333602921122497531531466606346768689454795038334468183700072666920674491350768778715887168729185526135655453430271775576630741592311841301585417271441464109555995215598294944689943643737682028238976407173013857958764700131014292767840050504912070645852784211126270751946845614140479323443152615666135710633415947607183317251817883754788487688827289590848298692745277015691913899825291480597782472349019043224091507280382554313059795130851696733589902478514113199259371748882452168915453067212930579196547292435545481967401477978402421517485915243052461524433036283169255732096594234806782902200529523638305140717587835634229238306184519782497698456156349938024628258376114285624128716139637118696881936232763808195550609824446823417619664880753403854955807017936540222428824069401180764216381062722311080151396537667433737646349187955772023905042753631384909562111293541783532728605280988384810233000290475297138335631579572991498445326086746559240864923051962446932864416795659944623855665468899616746608991764424356596438294493934363255864003394798833436478174672910726250172592238909923704522052804268080284061401266573798686768259204748835158455908503517115968389060972911894187747180334622244406297609019188607152091627439053338266910710182840128206299257467949425243700571410739646831654969430746369844037028691653140573546766935978468569273709681792350469736007861288742177293962935678782800201999728963270125183882398480508841458753166200011236786279463775567818423007692619984572078281070909397155559993678198877867877493420243705572547487087442037969400174438500232234006514122179056624778821550529185282311028968782294224587432701798292002203037840586519394517450002741696031332020220296547084194885863015066234592708572190466540964357159162340871087001629065453279562673568767646830228652985650047408807099005550842836179684755792207212698355504831542216426032774532327917393630968767514636522195950621171791254367650879811519463889974515061627688234188777082622679047803916295945976351605118827726557002280440968692295629996954797964822236502005663697145627002956070171389831586576726937314272421191175875672005464403815723985704141594770642395231035629033766623187716257496729381791316696482289308370668957723003382273393872981760935721804406505676675929847249850508199277819859660827297284583135668432415022784817430903535657025892394275053218168477911150932571584714317360138298144755482991842356758605742427824993436445643823184405848074669276316528534843355329739500697507881140238534670264242545696924846572685679212816165938004122696666131221204374766509179766718160046375804107709052698770051934305882125488252619798483348107341352246521588264716038048095929465117191958393790938128889938564807455319679431407414324604481964744048150439827611010599723778862481160091071357764908645270532110298122947268535188333590373680160344276313679562219142130219678052834715833043578296270468621573105850741091532246535524395597719446085587987578229895987244159991613154334624493030919111757501761884720241167017646264970311041950898235295219883662712298186008069862937170910411717380475949452650937292723681265664447629846259266142320490746119882200847906899024989451848162685061368182479536664811385500036528191958914055777454453497683709418960322271195917144671120561116832032992106025886347567731187282847175015341367737713997412685403251130654382948929767546269497393409277741659361558294912857720135685731331837154162199187843102404658078154500751483107229778069996239689091834841387139235417090058043696385919361947405572687001483929681616117659926226168449372629729634226870404289247062015209453674438496622828944586752563855148825820003476447238210481275613063406693193568034386580073553319369232210238933428563021669879372073796426563630672901475662988900149787527732985619165675331551314737674531961308031811143746733111782572516952302916328199240264175179548800737086337288490167051375557120356869013705735768178866501678460427491979779478343724417914152963827164820716039552979182415948373417839588728073060212407901352782097014547413380581515817954003819322728712791778050361161794541065065867666519129390652868164385369283419258841160478410701694098235938121537869039355693336062156479874862815622230297148595269073170996793154911211505951321450864662190905816961452654907382174016078387486951651703044164858675166975265323876011021981163600473975109044311002898933593201128015733057965270982552700684224650281437807396113339384716722200953133636624025498709954181245432923911096709387560530093333148380001235347794992427989446328760947461411128844557212767688916475117223477808133554365426462030156905544475828233856559540951106195537825066370495983877686328399805412158107273796538831275658491174966662857837065596153750308367077237824278143315741008884583666393740232344440537326521426022876218611170824441404246892044378733895302726014098362369795948446024301865116061594881012653976156647368437882565689462574413302265931420720269312610540544981167548015666054056398378264477905114124017267349062246649853069658709835190980489054027294528739932165079358405041543534928857750490281090179628299587813097456885383080814816977934161118973644963277235908058726297230459741057066097166655687479670719970649897640372946065480823234135057442805201712510142277758374353712415911130924348120228257548788601626904387573551564422830792456434502329787110546991536890382502706637104324034545721835399063173165113252963707260810181889274121393102097778816337408738959729426685848601213195949778835374147774871292504691318799936318348758457540688704965204549049402096599503914032745421071662821107998999388943642193122565210908468944818324739451068447926641815092519882170987729482003365854165247789956518361899719246949501681035613038083798646771101184840828750548791772455098507773157052048218392626500907520034072511009088204034492131903734210409567245503354111788797295320994415900149617679821155751236700393102374828431518027127375307513513767848584991933992647457770906162915022853840467947027308231064708956464480472287461900965809102924393641792406213046695131133487516654003096794330158085055938388900528442010138679897055330727663522666054351304467281789634573750625778818821045245133240282214696150443950232978683296255275528466281862649786553927134160427165898835072801760613144453223500179181977478735154304170018276473128090701005599615794293540728142705590307525900923794620984699758822672575136767769523866299423103624730094685930747082981978894766506645546103400600270604134472342020528176996777640378800068780440572881174720614590572164438337621678760143623035221586728479465956330408854978818334661043028789648988759933950238567547556159649445339565626902282211860945184035299445527545034242864520261264501305162344692409869639030882985847572849336599465718244908818419909854526491171373826732319410700168339490704395229454795760135855282500842488976868114962570486439575487184236240195741837972474865333795447762826029819508799244975859455642933614453744584947012571298262182342965971518003796921775381279246581214421060911628859384796376564634076911015116161544731880588044886885037632241612007044115314825609473295296704527956230480132212773787267665028682333119194433035905894136507989847607428427035811015084656086324189077380688813722803249135843305627709765784325249059224884412776809640125978134706605834046525490207917183373520895618787310961754583845673880967333479996971333182914348815947789589408593879272746613599888022483768095171239767964385622764116921625455078888943203902497553404135717814459076815038464554543784839925896317804292298781655663444616740419239560579486554352031909086764412071744248923848956081412083400508731627037220466839787786580497933093522626914642435250806146601033480034987855997525966598678981397151956264716307730828653463145851161818389445414821347672254125130374451085816901745547667237932735512397572737531385867216893189289906248723962177252903982882212772062026733543819258673089672723779210519155922855158076925271740517017163293546639679114100554019318322799271734836351614820897553706876981022618996111054112238343532790991762633567585102245988184901994419927216818746131976039540354026418801203554853667616512129554934605275090302666236308822528171697767878062487969624997515091270397905404345645186561231215146242629072180515685407745303232449544504005038982294433072781483668950696082400306562261977003530207063519782227282215905237937517075048851174298906278363566503125482567157360570575285419523579057507191850975141478688953177015440911838234887692678085756674561589686113502614239783561194751939396858100573479913750300507235340352027555645771796225897488736479526964371065738091454107924948167396393217438498938210004535213346529873960048138713208210565748360624706721038484382264183024637622113508061007573401107765638318893671652084072202673134302699057787484225736729914250828812417885924872685411319438557328490424189139756330989967013743087716034861526432082791337458237312709609080177411737175226771975067748324094481205209288916857273874468376632820467587182628963592931893006516142005861714186177713066185681114399749148208415092149374158245229303648866484638948097007582539732959634803778669965295510266287684407391981758668238974970624063472802170227106494182389571983911885474842802456119305593623479630701492442272348611772708893296319770990535113122929913852524824055966617668722406512891260066835442476663115214718663939721702188052275005365091419865905846980594052022110395995212553069923158912593949004576137324389814058939990976213258663423107950826527230580564468541986702277318143129897431606923988377094781099261407354323522424511308815240003735072624419030197038495274807090737662670297479304164584353853170391535502772949787360998819142385506468426908363752283586994379607890639936227940299289302067749185366929131458033885044730917611432873066619681177279324411040470202620310967432736628005541413982119973830797299521037867220355974949001688229312745512572797269159776355300642624542375422110984808607658370438035968262793397254350086509672323001624327691718437118354852805079303867980726713671528833537426548394010264991758406128849506566931843930541580704381154686463907344406918938534686848051770854287723773941955802677128882186527980376399101498641732172925167468850630946349586585307653866187542473339213476333018758551272761232099233848962214362627170747218709998936247940549078678208957480676243374095560295359458955591878446046944990635463869755411755523999544902648921597981915537727270738412536652353571902666553021525615710584687194439242530567742783397935753621816373816706914181729217295076943584252777780134827928573917469476504283339283945904425033566701256438470672236924892557970782392729475326275035051083486027460096220481430027664811388182719211238599553714486390296412197256288764514868085640676935936794724168895580106390860292417827243283925454133074128779821903251576120545772481541036903486570910120080084607148779077539894318751983346704339219875325548615484694384773327712852062349112442905455297865073142112944631818174243235629857195681718549935607270573630746219739926145376820998096906931736912280381797276873003018282006839729534660313331496833085693662877271435140325020845949603175290207895354701734760681340362090112566057462073810863839946310839129223978848617784309736434663926925831972658421805676649563142947279382807614670279000176769060306458195256592608285187084818499732729778105937835065780021431037426416361876174937047109585150195122742175412887524111266568107310721899528529158018107959051827912679186783364725177286230183399602642169730767297203558623668565884510919216734961122603118506943241389452273000223924693728778940352293401184085289117675037258766991324550963993263568426027657381351547647006247259778127284655376233898558560964590284323096128752105986706882253686302763337851863542510291850372575011768052831528127964262978839555762161296733585098645272911951863897782761666007776723938689515744387720540857208201405857614519896423017237209621114352264524326779019562528224416475612251488587415314043632436886180276884630599852375316672343716818422074809526446172981788774186643835830171302368626672352279723372851377243823768948086290685813454162360566274247621265111751172785072007098675378352722504092174190775701079844060406415256114120528096453406830058328492183329742329164969149676188447513997536872630131970897346605041327338583820738051754301827645736507914715404105687813856313458619044432018399510154854377595323002094012637943462286654239858330647868038084761359019085393412070209921002440531043808666497732821342520591565946402261945054907132669973154993912742579255209371454480404508401772066130305924437726631259755760133779315188135409659518978489135015005301130491765814299176341828625031552522939768520417579106426536025191626427409744349861986971141724962226006543576856783500564999530206243971433143434704049159120159759150845740754886967820887072528740384500378803858879615920787194956590298589635218950553324224911014278227653657602347864242580838090111640348497786681153511373932523541503050682309472073965127270947073889498851022355610363211994318103775522849891242059864429794401056375936413357966941207129518467017476517698437547271096397722043564653111809980674734238536597713546735550017994509397299697703580385244843434759888993005980975695464285527767528186923908071496960363466319710846959438724081995480916184081641653094305829503032056214256407941931639995576346895538108371599817443336294255294664933296986527050858079508067215287702468726028559947929464817662216091094574561447540171229500197441412869379377815901266481590052852622498057574324028062192888382804481592269560927181066897754106200254198302803629665385057491978048549237735461305200988983453482044273231850431105153487980703678995944532074830707735692657724951064319520116317173854078201910884987756068215221875539119673592711436045606006558612860353637535523664352407201640251434483144932101738067855648259534370725805102115654586834247387577754082005585891795575489026803346103074947158073118833352290220423458365759344238182740276838711307616313988924535895116994253486469654697943846949853197957248380119589083699256024652461184047181824633898530255515945207932350357009754111191574830274599339824040562321277773270825667372268594808514474071739153763594166170074455463021361985556132089060839977402163131756209480398066769339531692209324390583412595144704945339821205066473016566223761680466135150833796722355820681209036685735585600246068452312793865923153307139209359332396021282270011480230490333877506709354447597197101214127947304467644454187851724038151546400718573808536258937006557158509977861953504661977167485950053296112550283093258519632659459840807917503350471615636784470622613099939217508311305334766915486995475454911621595281578339328209922836048350990536572984961905708570944400316783658762959780603418467029838379384651711882475187041592730409609001797416099370312554292248830404228106849988048503794550234428843001903905568415102212027847159808496571044186718689171704432462605370690858966764456931000164132947487744202440951726826598869277165871893502823933951788856600380608448969562246784251653164235584739129293860692422600907330120263623410614718084465384909692950053786053070575897440799812204868253496802664028061112422854138122821065435413551814403272610712082661020840880601640074651306944006970964043243243812315281941537271738631410395481792590661581875048777658166462830919952078633566309836345581520382387783022334639341401478101339169407331156296330255373811963437972472798549853305918737664271693741792186164807405331425054518866136748487981795484058871956627415837922439527493316651034887929663368821932716825091393985014952295960060439008823976746671660706975103532938996063812724418442371892102555186986548281215927052715246497741488871627562761730402141082509599319255492174740614622775380919187481612314385330338934178100068769402711162741196964025477076657242261766145862745998142904672059842031036541931536627207224521231953315336394443132833094880173208280730241403299879711813361309960647862265170268887552915692399261757754231570975979406836151893469580048281899725330507687412958988448032499236547894429966686829366866462569600244251258838563903406949479165699001643170936850606591169174470000537398876617716424902423258700277506863325115055716559721109392830468632161135484279442664820166180083362384223203495924251066724172449771197490050057152290949293165566848859475298318276536427542367354135896895509034094709392396438213569086579193377202852351659424400259517041519730263297534580845354176443874422164551099613969324501409174771992509071584775407300037187940476035250713208961032533972157271240328335989700465594323491233327675196752695794961845465819873983446032000531029433891966292710308965986553345009706366396814348120331135895252367060607218406817217143392413085552210474336443845342470480188864765529850857137819365513606652271738611503354827606846123522938606729266882080294701979965591470173413470548763243211349851169082586668565737983368746096646854590590187926454000695514097579976277985439137323265266040438546568870059917868957863198746274748091057574463014705749424559053950021769787830443150451739271942709255742521919473791812728277549711772949230837007466263822964276322874536780520689787429135285358732460772748082482785471960961629375081680864102433388984988812971331865683992994108037101333857005090897388518146575509939300014083723578524169551875895819676569234184803140090386507986775703492090935874836987458521704976917068261381311107768289940369047032072389596202522548530225415779204752288144562361139916494919077832188809244934624017978020192893734644194958061812357535275392592759566403877687504583151693479463247043343034456730924967497214466873085092103314468003015386166835621675520179267518722303932973319104781648451955846475948637483426907361633386117233894221755991831191245474350052654456473788101114332560885808870109147347563501874137396132629906539931136135472129357224612930563630927637838776334563292042518303711282090875729385288756050071820965064178073691777904033711634667041123333502328197380244603138086404161050664388383224416625124782652747574706551588901852416037913380730736801113226874534407199363659980071025039336152248009130836968440045122993456645313325346662371677429320095513361771544389948189938351397596550178446324660577576509851126853214037172600493020999392995776071475453804221352049634798294361257996260547656039708685858034757321460048323697310031600228578549422495055673068360515945657007848588993402286858649403309096901465883178440019267050184722614948763541208677294810767483733867512757869210607276261376959804988722316806254332697310256612548738677951208384456431263379941200335653856528594006844680996341974753694722088501444577960088621342520127658547906356442904189198360351685542413560063123344368914138200313071865697092994284037577060143730040581739298012678398463616634952967631935329852757906542624486255125348409252953354556033251888371290896648881845274154361088209326976337769078797692962816112831464373731036141417040911735152308478787977021865752377022934850536327942603087504186756342974908590142294121985231727546601154163748982125694760939957598314338963127077060251493200926808789829910273513573505095887473372250013938805347875453149132832078385338730970353231981115806887538428139525563727285871920476115244311557479274554052156644989205130580800401238448377503301691527724219980987342201669567306468075018080283279395978991674666612326186899006144944751550204666924417540922881469454923454560886530433716806419687797537140655153792577775342143261659106456884241807390560600397055057270572337309894613026796237962249350800638250079411551929366270003323498790903340865640220104418737182709717630342134478088715139765372113860856790538678675732299825113255129748880627832337257722474945098258674846056761708264502609050707427088485810218331017255384907124490729407917899000775391606808654430833101018288692958580511675558682921879922127272561950556198780228154656998970993430385814574272801720119101947262171184792328397770378601623518107681276783920066647566836655234939828289408965625279984591536483544899324562351132539744710185110455447039462019404216887048136791166352486388157118139318852631187305922226364421244536655002570308642162036253258604369129221417387679852141052675291780589073563877225599855051212394107317925448877697700121246948921711882450709238930432681035213913537071145706597780995287429310348657109157681497500652380207746324630028224188351303818070072413370456272682510699620585204456316367802926317024591027756348573676810843814531681935265129708947261096769077686712128381202511142992375610818064218974685957496839930660191772171966319299998582563555541618337707582137413881120332814176240328973097950281140629494494741775953031816590337386555556340704842133629675859795098356965521579008715550036507356385333591431230486629566875779604890180688193212560588356777226262745807663139037058147813848878717458919704042637652318494230829335909524191614951028252378710168068923643848743492976214843707424718665197802201618576555255728210163569973909191791400598707716288791130687473341650405306410807622738803161196232850251163001596252705830900142925434911577435401708659431283024203225107895419903936736312044458724869728348863410126446190138573050366973782701420978986006574354410343054323076425819037099673891785350902391780200264830675676818781430154089813448245773013224510781909911479618897630440925756030549462698346873271968465871167021851666486949437012973999768681209974234326654063824359103413193213301828704648002595736869920653338280005020065921176285898132584922200144295545050292080903656839861400867320105073832594041177289827430349169606076289169672500686597047472631254701874412690768063768054477408919557427277522492477317856019561484336684262471548370433665574855198009638725836131255859418489550434624608601623717297045217515775177477161412193944300061456483178551302663631179965103341991646988070093915712061720706246246023197302461741801635783784289252474668961422813304851599149011372302691245156573780088589343361215771103361358053540189232413576496147975852548056152759223584559081127111365458017298862473021483978048184956955281839960644223637652773130053642485787164147878937569993554607678235590071189206978889892256940863170971932561599742734029977243893292933088669575133583633532688278537895633097918042246300916256726416353798875503717660218900369053671624119439264597159491479547454322843676533007804947290342469745540787766767941675514740790027384655203269960661893350412874603308498223163823593696016076886574868105689125492490397086621133348447321971634191608840273907014087154738882809268601485080039222196205708822577111207273890819749521998446726275755213834465828089854179801763491765358911114687386018882400501708909241434153959075449971787144050601548875093755417707735773605601413266922501681359357255792920140679394643024788692371803359500376752736796038407322761601675996064184823200114715069514224677932413271260693176822263933196666511407000453244201640235626252598593583821990576404983300112544403262541923579260343759388110160713751192604178114414074618795611741577150200030770461930738141833477528883829418114622892824102631898825463312476669115868317076514891711433227358440895254423366859660088376482362904461272645736494009506770048881532247383580171126089720883291625810444867955311659133323496535117049382331397335284769127569262269431921083246026687291092632716400309524793997362355337172943750519026102829060357431564764107021874855269127352766155289313969580083688637980835421213930326587510897594299743183849189072950046856036237168453958254011495350475480105788533544631091610877572431943650493675725860563281597290070380693027636196723557977818970283701470562571989793291532196417046381215458115648102975649049001304180863771303543009693964169733654099840869289759957610355139976747504346142150092668943949000322762242713850053602978499876673394550738621774206598725705172524541947739089971700808524624497402445280347923450649375496934801098366449515280648239037530203334749625062745075020558002190706010622180013590756669482598883917022131569813833655500796649313685268957843770006441277637878180968547595001756968397544676424226288160097180809234329682971335251691771575711209609573429838895388465266424501389737768164956926428823733738452019883754844387038113094674326896965288672456924023732624315666926469053997100733064306929367071918524204690229436862370990049570080648831709525366058186846780256648876889018373836679853376502283577401901709399220857351982561607983018399314076300266471687209302987729810246484222430923835494878237115724722994164855426765160039272787097141585354466543866715820092453549957367458008976640622845551864793221269891489455684404996564250725648097593017988757113002592257374909277675097077642046224473315461322424708579982274978218920265254359443159134297853513602500386934252421484744327256063830249518020147537646916827832525446345634294223735304954920931306011901282841229854524046753163089667553154930062873845298752899156887203448808249486559502912709416601349354749997530437294339609278295572749559808264667603111412574597275783747775462767471245167815817059089063981587828409516180828395601197017709394936327739040792988251207301091386254825803765917897614260600317374364704080068125108723009867692046504998828480675829139085726144951320815035178977949891634336780444487020892981708218267120038396991224695762895383323589152707306216637551233219661192204902005379059224385736647881153719237165115411394240996564619916562053631904140763799278937240916817942747999047421421581102827349652148222516949022270459189229429973072770012469644795814142506654481471045044445356820141731039164835220381958715868778694500972023677077377007132021743146250536207946656843265529118829102261876360124661823825699693200221992193921542961890574636993702641820429839861283036189048918971678635997498250922767592367733105283170203032968881799978056760476756343738621022236756522206991928196833415679816445069838905024781685681965266785506685153454126829177763553484169389653491852524280615060956453372925256046832348883758994461911351594373853329387890152684349784095667540374413907066655893299003942640687665896373885702385885439447782035102666811158168289415599768919847987070973448915559787948293002922995491451304917419454984187960720238295570040999878381864213561711907592914599695008224817033575686581570114329575692649832386850168074886891738328592565015956734130682971763296236727278036105111923821045396346331913553089749135882778921049413534589797046198997787116645328031929863568898734583732572561902458743211078614332554079784644118304491690154035340240757283062149270229149030513528669059650245675357516039139634613331698369480604038610923137950369147451771012002396146862189131992660360326593939866050369984267240430133708219976091076668400868663623273964230554121074047797927336292149775883803705975462494303345741870860023837251787231206687345469546231038905797209037808325842858433349764198000338144512060403724397297479287712976642982917228592074997173801087450247980409150309459943171416674161476981504141524128674005057647077035236908387858725165438485096592494575348536980977889386522066336051199456661134588046534137453640031118553520741589545535395464322517494150113003906358063215195662718987669925788704287757700658973795370575732701817101103036358389884879247701182525598846041217925741280573385233267923633733905888584032722951414206139594067947332154914316529138234214338527093127254815121270559515373800415749592724703768643732118441495445416475323337330044973385067722397758321402331747397679847079322781132194873558108685578276547723977789585659332725477917390265192924340199607788436657531084517543862808482220082674825439769375582033998220995424605722650566206778894820975238582678215933813466054617626935170069042586842725778399414223033812217209018735061021639243695455760783238920482970829848122316077553990856022276705139489407823238239908882823464803116895171313581426264942518931859627036251872687342390731800726759037000413801942932126702307777657394011291310512896191318785181744694941993821154527845096448989070661612651216264505193432822256617937391159309014761924798214499105703754637928992596959360826631228947188508155927784549168343211708366489141604859414110135618790476357109002037782420954785844883853320290041074713234780526087373693836229366329594859745141871217429934421356597264427905331520595320166327110915709876713649775279815479548695149282906257806436431251234599827515514887312697867614707512217222711684969054761442966657046181327479193889639464187705762794079261106547437555962935057459413350167485795754247604814252930498067288498281947376966899050108658884899719955317720584783018274065264539039836190091117731203158141504983737004946347988560118341521316720389277173870102070277794911892950225175890145471931965162014222081542133343955095691346167499560740975110827136933529097715125047394296104164496752741857544066411135604164735886666931798576558507394443024085895174771478263637393716471978081582502579035625417038014154187190869388799835603126885839734143056612591491530260165042674242347679442732845080349909481769021613003590533875272551889758929964456805388184129730264842319498306151769720979321271085255007639385868605114766187297553655295002392239478150411518842012489147836881254616324402277493513900914057563478453768820480437944279251427079744095941718184279424252756844381276522403943712624268436186530232894061328828721184588722264253117506813599938826393657948319173185111727552935994377730692402977976751017461296082942885387505123464721390388867920810338621415499441892794957384324451861020270302522357318035767030908798982851456866039614764938956405690380129663693806624741637730583737705888477148770311588559108743218398628580217132035497382426112183794022599044962469084120905466872501698300746724272146742542320872743139310799870506591300468166387275264137395692476716942809478490926724893507911498935551962032425957052502247590713703667611288992129297286204451726253686810029149419667194239584416050405730184254450074877710507204000165853671579433976604841644028753608934890752495872555255869685462349708790807899382407560970877795438395352502363262085670631112336695116749435793932260866338784977794810280213583482687177565260735922833498839348893215800535380950993265031091495178774156592261013894760919985764159894295678817754199253304308890075020976507607639994768715262640509724342670063226114747737486266546539914343564724319698543564087451015917271646036416808181078198144118342438746167561689312317459861057874233017953870995334095770101365253503944030257691735264028044302239029614867742409754827784085964440475889282615621216152905640362467486708943881748482196080379311160459234915267762945275867785410222722152815295352752924709353558632442327744660539331608933867815755850728637951238787699172197746770718893300780200026631138714867678207849768222036011961480770725486672010467967237573532525377875094047156925802428306008180207104629367917974143378527606204324220797722839582164375158815043259653612640136376179450274297349475216758778659646560330144062727907837885612176120083885819161648899219682531877018033221633726332303035934574000528870658286341783538437522036322049176313840806076110436808950122117930233259758409625615798490872282824266852387011934474116684196782872096001276374871208470348380717386712415434398005303858438599891372237402988243460692734821313723302150831978553393878437729478300573589015779531128910696809680691959972364144770974322579648469915174531973098032930338263794536049709919499926141145821326869640146832770844967141896108607928070467804843098414782221221520535843963996735053525559120264027532827073208264318656746528851600385715324681297010699086109419901699766630458491950675952180603592122951236329960154606515666356184962542665363515807099397163959053169768924575309738663887692621032145135316299909146624953741845768952003040633819473812490777458327905356811565598262623836408528425355348161524482627350437051569669039157855184086268033817437184576949025207837929554445653247910397007621873973587797889315286908940014470031657806970708038120009064597240780163254739154882531266414087603302795942498434153621888697147603272346860121088011208541034398372469997299656681544546673166487337469242487553495153340593551041191755546092565533997072412151478087487012011774838426981845361750646653727651418249047811873340318670461691822628875345459157636576324382196907344330195486387837641704209938774061117727636092687378323568111320142396024090808357606465801351210277160761977323274241186968604098681310606836540181551523759835922628317653990760939536221031251455097131752675558800723282857600884991520925605585518007942443612029910519897534412390063171927234427340848959524374538429782307669286193212468498814376024729078965199635521133843281623124918060757307843420749521741939891016043719224162707806105914759206338288510606875642609514020733615918047914048089499273971813271837880342228953106642039485171625741576316934284350979369095403900457197684994141496140928738863961111882708597310593536418381393457073049153296799243337530220361414686372958396633186527452534448630061209130483536383999406269933324160486182281815012356883169116540047260664363360941064987812622636913139003143528134894880798831785402763196949060367427814154084054973711613586785760166087171019903323702554961957708187021618428024869239120392713114979620921195191137795367841087956397119025671855493527411476352427241584887689310757016495633614786265409828495729132057111086203921088816755196208850744518830591752194394537438837574960546012572684809072671595266678652748026036324449857085587326906442765712840605274661812446198690378421964491245462475214357342740247032876747046616436177527074232130225077040913960512339413093837168376827362136766337074991515422759263181587008635137343125755688933275331412129468758008781122358129684623200911419797811891753629928732659408712274516962371835898865045043827191446606080126381259973323983156465308915963358064384901925586477164196404981963396292887279873021704951314433222549058795288494204947348514797372053782771692683003580272704195610559410653751532752236249075173362301614192821911282713727647885211566652897051405497524458287674854864308828143653200439718840582639707518361989116032510345111414616637184168053683620422713669045361967777795464334435778518497105663721970770418538005346491486187173576152833392057662173224261052229214317233294313686009301969337556755384074711787746107840712757429946630494453315484590173556043273701354823922694621976835117124834580614552406405478009194844630656812101662189949784929932874251628407006605350355099411351029429445791167510520930881058010559555809810441633950932941286676096706272132989852032686095162356955699995338764530584461787032227678493078186384576436922001540179117455699948797759406299135786548678599088062165067051520666986773194896073698782010681127236880051476747844695224211604766047956183671508409371453236470254753654332644304025371178882502037431079582124451260175928875688220216153807730311915746738455584229209459972239990957165752332007495389742947960430076515190050116135817472414772652229881834511154136234196404834704530270626297103440718911281148816921670910032842572982690967724072624125779194876871108695240713589113480309989108440057739633115036166374831780799280140194089507872109853086938525632922698966581424575992371728499934351985285821440894205955261876644300956941401435197308120406276521133625955149160148133106983851912904734346604189679715158681013577947400980897941369976890089583893991648516873065302614899278620354425867517006404537479925045127837775509119884192987630517608751734773128120221915333661650721357665901489087492679878719206623205286569814351830939685169463413271223170038607312494980666293651510061757227786278992678774726391567572403678286005612570470064021215971298268191645109964378112377656747376865985170631143241049453276963899623269043906100221851923068394766385893899238725714107448557691600759517433108625046439716513456219882577026572345293151625198576703124639231206442455136561486015185283802307120589105918984329389205843219616427223022978495051688885116037834629170467626442046144437400402582798861287393475569889510639519409275988219869410526830424033384850845937827034681509436903458474479847784915802080614079296876531110297901440728252906336037148961058313279540873610365009134445416240393361210595180761561753623146861740104123032761576356227725986105269212693408001075112624527590130589202925233859340899445229624397260113352328429415595520672254285645959621367292909703941649379951006140683385677284910739318216106519176342712700602927304992038167351033023788799468942226360352847406841379446018519934790707425094240936181344549745213754593064880027865166388402632276415863872680268239427619740196903282710055208244395271671498306875641124663056621607772629836063720919199551077581236263177437372895318445531936032161561733355341791660119937223034692223806216592669426438989290245870346306762189220036360380443756910950947784682555246079792272264538723846616896464277519760065026739129062657037407661616292481084716215857872137689596294873374215143428655067174242874499390374289009623409986249213388100845401020004322369142346443585233326301146057711443565467951376536291730867114718263515365875416717844944935097690350488704999187204717223399351982655133865310018496007298478577577258063262651423371416574730633393565801123899235718118714338908375826877680837057132731194114752807774003691497276902484291497660489802474382201587728936188408928391563734016865138942308763418209533622636438289790024708001421687588120079217468454244090336773772640546566576157368770284418582217094756032510374117287942946164812270153456209021947634207492530055367665336595665265820697927737481547021324221018684266248889372313763149841836195348047556559372818796432296001860424842899122880079031558891605849188174325648439321113765917530496292142283457027130957379507156483698148339087459429799319480754121127644562574543782358802816911341625144581447821085656156525697445396794212741712849190726561418371426374965299701161236785132104403873660670019323579519853001863920968222063437113934483155946242659447930000147351652113855789753558040736116878266275023697125597274451154314833170001240847952412783472547767150551815688335782116949364274362515023261469266977521977854385587857982585917067091952099283233015338250978787011109871050335235336761419696907554639823511358287684833028476521097742021717955219067853453850057538217450254343747418495758257730214975800422296076012042373349961396271065997669185979696548676394279805245759970453477352559561005827299214892442422079000607101605698803106990000971999337102186401422115544361352259723626722898017182792005659519160219894309382056850588311228644971678023741016679156050056297680776001763297964336262690770977400093275402682603726439840301397762068969899173748956638166034892794020759912306715527341616856256518804263146582827440722624902578977851418902978020741209754225395764496335762280195515905392098901518602691562635001001117748746235257934594370433618797254896191914574158354003794058682922047735662220283549409151031499326842939245405964886384309711216944461164679156640972987007534243400289129590554782409193960771102126674597546278696133216207368998020783973359120995878591949156132587215064493395782443562283959415174828710582999198307179299357716229054618197472468639285316176803118607742749251019734335868247508202445965690675615549276149528957893754446022574121068590657298308267359526530908309595904809453128089717080146159716062707384407288992652139220261641683510078054343078842527942261687615204947127313535400730332027898352589167759731845698173715400494396448650572793205879625439906219638699539681376165764064820896817549243307050526407521870905705037237514270929752672955211970295458548303804504039604452323198170109691880238497701165000406333848393397991194723673537720680528852339188669661777766068689900255119558514762150351229098226455607732763609954438599442050931333696455416485007684144948881197990733948877362461297903171997009160099444126122043250609051397146240728805183354884360635766096824727008392739563358778868214073402724540956602016127861243584978760933453393751122202498224907525297317791802671048754348520956445190282946378673825100153268343551515036419683147187983581182822791889728441475939404839494037108475014586152011365321340922908292799664522471559190959807303306983013296532407140571379738630826731273314472497823907893299877188779704350757749660244327891780734492903376575093364924780152836004459746579933914324657467375282834161993832196037609566343400078530757448143356340751932752191879068732367420677627547559675890847899745405130583487567538464418478132132168938991540880094381248377474756905461282568275827227414355846541644087125955186760377289656757132423194595406588193360101273461470378271373698055085365241763931658122194359283681175846155616547441693132807523857230623357129090280854582079782607659600730528893124771118807044831333222534408605496337203185537237739405381299600467253336138161467044300973571811365584867987516093607934689598284223884400554319120206994912798761168692723934958563564732424587520754826199484321254303367345362144692414060949075881574855937695230244255790682038772551858078737591251080294552857909253802464865368848485008486293702695887532068191346952495025194493747686801182215415954957726620835680043853656821714113766314362505802627141360403837072631409422449487694104258337492579899459459026345443094895033238286347350884848826520021462708068085803565698586049900474295147647893012718810323394138598727958357660203172447810813773878267076265100503316643448029919081409350013454325251886162098767935569269125768233076882065239751215249998864368636018910787371321596456461803177635413441741931190068653409926797106756710441123621028010125102361619571732576414031279918483694434228675263878178324569316449030691171526440981729510150864618386606628474615744772030023512090757259071103167926891665830234653536236899177306394661460683004100676183475832870645608710611606996897340618932201783996185824337586063993879088196977895515818459594570228544994554353293524536748891670151588654964707555094887775781455286204044914571432623907763303390531637584202526728479544086125582087932622018051843141792497479884005258624041339144516537305774271179378513899583326301527642888499050565801188701661384850667942800607563507147962656626016085396067045117608394018812212692040554087528994712760176283193080994174992790502900739246821916286736063805038292832261139433291874106998498263544217137371036454148897585539991162094831527933969715229539364764820597971807401066552246776488665801662991735166088200452365287496535596578144126287099327395293689720515586303004116577127674677931348262039529221340281761944023510120861664310309177096317671511839055160951562531810843610383893079561841551418123127785483401680174058508841217577230296520561761544866816932871619842985216682818072952002786865153550789607372769394848855124274410537118370032264677441242783849099889341177286459722530978286142113214763834878007252875697787944281089639390505290542377274301745015613719069914723459834090155977906349686496261033282437400649304262996097904672832032031517100570366930374182137854277041358649902815451505181658475195277443458898213551767497881531502590181584186961472031862700845727519556953643655826545189520243767702097557888903361826685832035208263879982812474756788342193608532398783476902325317023051331704704256873490976013593197017458683412710526687623213822998238404696660247839745227632905318045542095333662004451116371459991674974242020586835311314005024672241773685992240996061692473311583183165615483046951339835829085464875061326497208204785750648140411223952534292009440717944676880650534714490362192449950391373494498981783164972851151297686978282569716624473927396368069991318227168547577379986601208900805606112958461615989589291512641859017025546828750275917586067304089804378988165539969438365861722002728211823319888988042289514336768788419729428797188615178255433160787093833189746134846513590847030948956788405816404100961782964644419675131323129495012550111610964938858922687092864406515162167262653764118069990555249783827988112471493415447238269108919558899089897685630969118086915744276012032940700641264921656738104120304626100604880710647782892109655954797229829682043472247499343922770600445052553869068495975367619111341362041932445228151638754668165043055440730050846428611529166492950917938300402855304616576132637671934911005607043276552166798938502546186008029912294632804360991670171445350810446742061382957224733995387365500884308759882558634448468353828455441506518396321695927685215980350600222784882671366663174277829506020918389536560812139950399867359799084985358598734607715144621886904993811795974324949315141891174587372893345645870008900910643862707411507640295183172746069765821526088080279161710123254100809199356645128617271944808732213851559060496927391550224538552351006862761577491853444529974116607917905197539354056404151187031538123098139379660108626222545428205125155949155293747919880953233010663254783652029848199277700223628661346235058294442603962357113265683854798061952669716921108740908266960863389478945662438813387890975714205434883114431760353019616665865637585854451219859138084122359229813334238262340865065298435744678332518365002816948353041141721645925509868757247503366657010717931230175735248115759803700164692116638702053600498445408262145781511967848948187585761432555976776848270186828346836264907828637966571884228960853289464664126481625774874585903136543014550671526492765555269608260090667554574520728773078708918882669242571162143679502313945446182047060474996044379736637911035354694408231748710257992415469040266241098112468572084574825237522235050168238009855271019135198202155090112991121073876360124798277064914823264817143571574594553353584196291623368094839136937058019581476081808380724384106376880963922112023292678980566484973395803011937682330866878130454283228327494351767891554922221906912535854684455422656420227641663906689465645298542962239731834896769431936191108288869227032719680114685617895460099850992290273894536345719153427011058044878156696880402882122790761595857850372896128838529808374141361263232462152879161142257379888920372341082296968420828817426286173497864161422736424424114357520752597599617826966146045448819740083310905852221659788830144996651711511777464158574930179272233310257372332571401417451589928849500189342274808915333214653593843753464750653717574858329014691671829869842740823697285005111191042772396215816494327692043491020466424528552809379176585982357569679144168464743893144593501970721533929858970387263075796484306046274987869410903386992657161371730393043185093546757004205898104361498373683103247666048278396011205758578906134224128682006095895819455182027220698700356419425229401278512878786893952546834462052102331907819630584945832149003597742516746479762322807657242665339951894501892655442933566346590657471245053541101371789085409246485764557472563585318151523481197990967537532013773683276965300872904986534349962369373928922620707469557202158885989734063034116633961088666305774484490661124762535029181721494206863614714360133262879331317243844608425585005242221631960459643269817850058653412622368164027970233598926087513230867367779661909419076790818551698303321421635665427970401316773214829366092260607559032810170093276606619212146284939959223585395047983928355014546907773589031346039320873493071020748379905991262698932302709818841331025660500044836131406574273235687669675796870606712529463442800044774035190271746170305084929639185597408980846567090311480117519658091986662435328943453011923526137580647090341285574012179497757224883769610228013614584395774842229646786099890089006245659114122186504434600558098343418592476980578217645088788035936670745952145682480319183542187771816663259241155175761906410086453462830501122194916366589529051568559640617593888275025759715925759095452229107338476315004919692857077755956952719807240347267091551566284467212495363753539260879005440696354646895616112243092488463758611468693408558638715991994285542988718020764703392018607470032212075492968439317649520996360506373542631467534089903437312883221371468124366239890949066059163510303347692471818308731189883758661154867369486532036485683156397254156861583264510249040037653486561780022724356960560086106940233743629342134221173003915582778738827477646335835074179104350389400383335122217479305361565331814007907555583919992454070551452525951796031586737761899829349944216509924266238443310146778411039066425613293457939187656115599896465761549993767107401303498735573168704584062094426098838145213099071836259391561637516492852715212761525847462317082593500083187991835539138065485750995248860589247111199949204099979872441574981957307393345901338463670079111147557763263546006950355116085020581826510233631641171098734380789196705308106933756535637289001420491381310271842660531244402912541592223238390786415560326336097958846759956953496209496214997351825537435614382644048855200453030993703955471936367936261047262005563908975633390569686399802423618025844644620234278930144461608406355538080453829696252862212447752059240771820664728437043155600006742752316788086825224627921226937647699101196595153280326452907842907053996630651039825855568188309525534209795592686710364348965963596930513276716257520718562858282748296162417788975099861920319958800849090478737380950060429232090389138696003850253210668381925840650201279885314341167442564934373033708422356152969131130198632471166046229907583091737661539969109553917963166606700288900762067879388405094776808373980989150756828904924179333860279565704358000034694276971446357439839049013928766086606238259241654931184485790694721097140496091509488432518499140491339441578834316953119447489127278127445095638974499383406332542318506276109404854619409231233281781184810697492858964708565909623176354157339721270169821961790665471977701404886654289565703001716355425692483801142476779449444606570101931946320395182443433810496167649025163691580723925201749003872203986664810021189534820670434861395674030186653035268298605297408294091565744645184223632245247942222405496859153519250474189146288938006567822769510346454984525230031936621484969451486620975540400390803468978566465208444381901055080948954306170171214287745523925517517428144610678465644122355644388745077504971372620910070888684416067367300692864352451611606532117886106633481770305741839385634775659689556857744326676868913747915888000094148177851412473668386290453291466448787571285977464980609467763810291239634571991544465226972183128035072905101796631773618768471595092799637503125366400938301787783494373621850082773445115481300911768735958766572589492989609190213034341419318437967700177798178351522292174870194235944323099940195875331521524280005258629211404150327065077205520966822194671840724875948834598483925108016655166546882304351079482592577451224647708514557770447795598973415201927119136545062269358190556606064613396175440996805184292665925255788795335902762627092617409958567218177200434859835991587975762030149421793486168664830900763905727465127664465004353525091515712015662417376621615413950298248135680750242614453002488421312465113334412949114578719282174642988679237397230342828802908612743829612984563975599390949655897431632729219786171500034425816546781659850219282467011256635538631346228256090963034184771035682504939375590674740298235494450315362348156221178276155543058827028343476124863538941004872332487801536768380781931488963844337350310591921906136433581764301863079903635045026882093205024855500481696580051233145752189995792477707761820286934016211750318618113335471226246384399286398243585036869605347270236272616809774490105244867271536778753798362383190192926159342085572463847172564238285096049040920666767757373336154103316816733107847332100679157497978359826781090300729280511219781090872472493331155363752498836945189836224135005568528144095697240536627511126157903953611622121509210386155541358954636367207828753536730606950232224696754536958654560977679023535877276061015688503223255952057718106283066827365007265939092790231727139659203623455550296692337922247716749158038822094338576419716854716560325071310270046717191044066760595815158441857883525691454189472420621875505259988880142636047398069425364451017457529031692738519476053020396337911958588134932466173448669041079424803904577583317767403458938169699030307536906669598455710500576058688439469807100639724512240690440262745966146094781793434003324274656745911241693372401459980047989756335442797733064265693410589322811349981407248674337709849479104980168836093594925268829498290675308548676160287502969931963621216955399497551398089505261007667195449312077456132914883972461163972733819519042520150875228983695143606042970909593614590669275430605570857479010551163256515044150795260684154176453365890367819197639259283007633906303523745570117046221821074015291676016020624445056677701822581071161083944244732818208697982522865595660298124599029531499174778779965945157340714038583328908932401076510077661291000157062949303968701051821083717763138526827590228157911989731151665471789823519467244124662415878329606555303455861834381168289104096665355646203535962126413029086796144449420059612487118994533108433966016420778095278387325464952607636601585762053019966735224568247593473188045366003621315323019422532079343565909047199964821920747579814946276842404544137599962084027812404700132732925302071481492434138629882811593151217088447387126720805426995794237609394062505564402965985029383842884809312889218715570293129223594455431278706881272011412989312705171936833031928823976014094407545895995127881022373590077671533945258458238145215746485527140366786269868698784547892666149078637889699566581697904561291438804668529755058002060765825010233566426654769516774142713556060053175484130562572696928014749844232293599839519727024603142206087497923198289687762172421880340806367086683167071898551830270141037621378884585492601697069453858838368919662853232375660186333652488294735501669920506450421412379841015186101876985146651752024160892116910115778469354525229299825558566824170404846922594219678427488521466869273354252166760891538789897531849660753518172334155438226234345976338068624654460383864253863346621035390251231010109148474091916754534030474861234493937384870403512619696717427970905917855357764193809717800845868629763997456905511080978277987518586440936899469401792329078827450974121394170481114353390970232216925549244861820168769689942558196417981040452365695117968564282524151562946836329766580708898599122135330272970064287952386384936112731425736012223632407841649321546399335697786245044746466354281902060635348746346413128269622829178989300591195649394300462732935478078602719489110491780848089422185378886311640690915143649011562147235474466770979141294207627419249486483457858798055563444005182348806210162544739852717788713586657425722743490353263295380126943186092044958201402884265095148962861330991571351685655651110251199916069256520008075776361392371000514683701664048726409259218332300007996790568875639891491607223277796915581149194577345282931087894610171010913042000500141512146678226303127643697913456062557102865104386524923701624497602384601690731465076653586493371312071158770377235666709184839035440752739946042654766881258216772425362882202775814711507458901712932778965210307629975077947706823420964172202379259624034903119082330790229804674814941741829946284585988305882497947407834123648092828812672278027151908781503791379923817463197798144857606400914366545771412038534935632427614996996225858933041850298641964241233680593277168349078467258347649213953230007202722420102658982251645781516628462807823314873676470334631759268191673004171193748573734192686528523361612336887420158963752802949296657335957456537079786122413404009855700621469132988078661625768825714049616537212191210757077289799316955778716732298987089773616150522668571446688381382770560867408063330521433094868231949837544023170388814491274503048135531421265165256818231304445702460097725768644334684406077108920722918724476098556756746323426928519265711633188559071693863964011706700915021360036965324259778941090870625511065955623252788202585667476957953276381788008072402818151440367072489082008438928642647194919490392973728553970609996409403058121692756556862604112310390645667305949651139626376646639804038981968095500045943921543525498402818853742916737932095618672851462168318984384969589404573604342398551376836271040061132952772520600727937152393861992864329461416769429462084375673146022396068863241930002147199688764083322582307372320272657567170635836054131068029985508656775020413864248674827485702736857120316304133760748242429575072065420930790751532089432656709098129304015981680516771364494102337578290449476016047748671336225537572768276002094690362728615643141662214332655771002704543879624484552783079546991173508324265901676455410622617242412281581571558191038034198742494471484756863895060029455739673789891552015329322440105717515348672721427010023000919364137684368139334380987550804322163995148841246950043747270879549703888212806782036958052538430567534563744539483402870348153078178280096122201608473523007980143612353519040862854854088638850699409873455269444734135063218439682373612788966769060322136025420713311901921230317515870101425774410589469394647490795371079718516335506290451558422940877643524777271273579934393262497984151259002564541704699118324036301644188689832805611888150744983206905443395944344309278798294793260329300714802127780640816559452914734771493253187033008975734692103409290882532157850062247571271105531689000240048697504324151951017320270165068516450438753824511452032625450398944477813689471164248225801307973032441808922079806971870660808649357687506200714221744351296108845339050154241399465117118950164214616060849250637028138153228397599158939898404771025195320965298360158384455614175435991806394720059826798258155492363979883451032152240996941682874646906939508245641452278119696133946580634569213180684180517159333113985277722209525961393245150067090133462414811985693050741464425306028984066114715370617515166382351782753167020995643870892914962762812795666375889780786565999415599573026671964619308452667507198896435489706662989360593866461932745283541745192967034265701183394843929872122434042764866655591033651478710093466379930919883876014569162849960891326557793175653470268034546049556173238740317106330685645618288575165187111850806976480748890447085181063260595200519867581243340705051059477490124471595004906878200321048716775384434903000179989043035213596128848480356575087044346426969605927045158352689255287291193574333689059506536895777031557844625437616781022470407782907916826435520486863285433692458707543454868013304546210792751909035732177652695734107401971457354162233214836435713756367356570078890749422193893932013203518792654393825445345942270279395575159959386409361275329384831498547095737506489805348854588069090341482777638907248622454615402766115855753458614434991832098428948948529258238414378569479230383560425653806720871283862026861790026578507547289656581997392894996062686487604689614862330276665886786632091747366741723717132987652958305146908641083804763589927318386299785849818489708860985624778612349504413985598625630482325295613816462062566087408491525170153379932316089507895279388519505605864853183106077507705187880780027433070326681166551034098121771788352368957908314614291402106507966786796819932109334829136075132961606111992833694573422848534153617834994579074915674478345835632165100410453368735198016601846148375760365913018279590221799170493603225672615800485146174413518721676803234889763877492283734266314673676826208798443025674873164660309020829654568359463213659301258555953613380950148548115774797136219003239262788608030953457506383605804531341092973313103262824980911586298811177485328828307362451184544392521950568478033682880596920015890036588400290351834605359479963225917270569171725643815881903565175988286220649913500303953523036397654876592034033743774552406707374357378564008838294526117870798074096470755604806519330697602779939367931512554329670244770302348114306680687245395701608389919191351139237760795939623382363344942282762963115783129146686528488251151556285372943710924260854770793490179660704255078474781865049359489681367191726943458130235828530626697219311374942815032014520103284768101216407882963692268668542895211041541111461219691408860125310512686302630728368465219078272617885645814403891895029532163289112954185453928057083820428135647992499379064162687937978764637209030452524006990859324674380970901964651505187383463103125372184061373944259173257812638378900991149175630875833890434228296837435373804233969347836274006502514347327484160470442934616796523534979038035500940023800362092952968578523833456507180053763766219100814419448340541010419980181779627574514344446924240688629712649860617420403876282518640759129055323331088784494965187882239127423190528606622574249166066793277762246571179490298703934908513747801604496893960005605556495379038171980727753920934309555156209753493160034333255935635745539499142408940717152694261059929094174762902389486952931998274730683067193409798576010452219061480022458099863209321805897299080541604001388252337165533045387739533538584145644075977622063280043526018197394017155918853630277972113450197639240241090774083983971938969580951544796883894350504638653177442964422128995121301630677467591418768042184472779300887562944257653794889782271062809532215807738526166912950798526393699381374935474013337904854929460997952073047089600114947239705652212416138755937941667386881177101597083387908626901376941517461641904555836441594929172467580125062913771129290823218011359241182095414222224586503602305056924593106226380933862183540313591587376217837874166460455190791266193202607507160143821451582929267213700784650438662370848414420991436983490204139490209634499512885679103582535846346998697981935954621057147426218833866334009365738396914534284574979826878922201027734377589308225664815082773829314057804115070371909403839460534870100517021322518497349941375774883274578867931726270018038110187377261819133863443774757340027670401970607698404360651300474368606194668859205951743481038167804961474005543343375433675994923346890900365730191526605358842073248029024339049656861926492163698018120525563404338351760339631214708982468340695236591252030233945737235350024565423065356707804014185568290174000308935913706806006994912050379294287864726040411286398968506970580213605476435572732677413393548542599686739870455615898980075571130300037147756589880496936874654848490497826129151547176021584711574931630717152990882991324688567790863630029057392207194468935003117822280204166492471456192348156019337415950277609244307221683071441024951639118535703664669211799741356694398581746360536537426234718116944219875071632198219433130315593527618469311226837268616043367653440531262218355699143211181681167535827227741252343303824344168590397319836275803121486748653125369509119556525526569014008411896131384719159076705153743474750646521035569027730038902078009352738149128960363110748935500997624058684460194193165317747020923192302557077209039577568468965570321606640417987825812959274661158114179737541047508186246648100236600616041431474950863469858422081590719517939475994020531971841720262124417353453649495372520815452753560713466947556627709904254896540526686791095503496091440431991912523867892380912926770979266790393989109820640638331577762339731858679839313067311050152682757013212784884589495860526625843371795621137908175929718660375161825906097208173762146421106859943514707441659068302436763461197408230830858820716223751080072270854228346802152517412626533274923384973867466942676346423175604280454176335923275030321575170698384979242791515543880805415749560467977283608202020520397457039043337520520424226747141057512425326548150621799504126833178502972639664113832022509734956986986419591010042587423548713431210538893984715148318268021266400450122984637642911645037509594307954165331206876233917076733671617288098058641438262019729563929689999007023122959274596899685779144551812035554354193399991575945397019388483107622089548596953166588708832784738946332627839955501407684887069608089368777547348649587855313175272454630989775202934566256133783496227238064538743848194878268213716984089450653570911910052880436583623882501795931804468736717072930272770766961482983783904651672436453783699799166231835225141915573548088319893448562606898990881156465996375274365302864756833005744371254955745773119652536535576467708753490567475741263577924378756603420207472228453453098844575458009588799934882631040056164598870003559751932083067471766687780582955640618725850355512176107468235452330461581630176817212177550616734014447582433722573529182106875635459948622950930728835008287140953670379993391336223972932519617380126487235428935430127650669020924448450299769522376777087040687142779581098012017791904634275308682064887104546713782946901064009865181716298715891804185465261302038336755646089408161867377500573477698301106420654997904001433271146649273140030872460095845631095015327097279787268753568071162819305266394182376466753667175734517311903284323174721488614060484277140817006207857054483909221800749881900337626297008930687661408687272098456999364791788316269226297648126162576530940589329623611203580644328316221493429332943228841027834753034466122268345399708071344155122600005128982986290438505649153165542865608784919230755284554164282913197006365657526479068078315395539236569090386783748515164483108347613836250198934747298429572405665613582927440047093601958965082071075475596945643805736464427389435027023191763505224079214231748267423285882543434577665081068208205490100643651261694658199662721847617603178157011168064136685237688196460523118474573238457207722869252962682664269242649091703268878219688388051509314953674791499278996528254385118768635745778761424071731612450530573437362562048127283184226983490229030872982122223387029917934119420282411840606036258696611113012902368357085888798414842079373089997152208290327803493736607311616676363371640041104059593115442458768550993692082245543569522002818767502578841173435720165868429577386400741727819951164815115160952113220121503818947584709442869068243407670116328413547183503320124699177269685688809402555534096333719437342419550348350105247446458795559027707521893858066237204206469161034857768386720419720097701699231240870716550497610621886289629390962662069245922644013939935405970272867313679752171514417823853231547210688602767767646149228186779572330834995858253229037087079434420111742227855696552070228173467352098680932493507122439991112968881231941685004007030243120734121954301930423429036770815338592437634973543405027056828781545690351033593976279367962944830018618051915717414089902895387920996646405280646482617062703975733184195483544319643461332612922780783585098261495969095988453372090215882074038545612995371039042391061884046842345404864495991888136330005817010686297102566160433378849610137129625517253845451691564265581843997814909195994070938937191576419053956191699633643337124622508631280571529089329249015440640298771892817415055927268412986027423246041977926944257132169313327982873141945880169513448992593251067819565101076426858990809310927329166665796089396570492255091417198020081678120231192195601518310495973903995491495131962349591981412612260289936004835235221271981620304895804559327623354481948236658744069446904696584890494610933602474724685963348163104410161002917866255285906081013273347543807188930777558269750778574063620962524114420707754137345702929680686218178924351157233966065410595168898368145522755186882969933448784624373330714878567509720313001877484095520020908175962484202735338169249475432215325892691084335906453217061185459082922117457022314074544157912675563369569881753487286403726542726914857371456308178792200247099005038894048594425680423548465981284253830729550597350348732181286812108393340783075395775679626955873428364427634337564920760412588755622017868140021699971187782428566138739734083918634507647366139567636674416059537358275024052278968387147047192228733891664690456858206229286187417282774652792446465868680679254704152625035456745318599859833383630817531517301995724919877306110357097552101300408264535099724878658438049038411992638212152789642351254066351200904649844665428256150552843878946405000501514538296143501418578082444976296383070842453435808034039533479476380428517035371584296369125961465473853124456893224334962690645070414741907673877105863097408461979303061445874022595975761582387298531243544506993297528763641971622911975115278843128648919722140093848071019221946778075148747030379876703087633088287835359176453165184820825647815152035469243361336067883476468615262109205807148216962776063869818729205526149677325696983094043696180823271618400895929903936333385632218737738960511535334984213334340298311681256310102331624910492697187115885875534792916764980358144940829125279295055473343263239535831834936976359173510412805229024977878469914378001676153752260333784889898948386270909640830299062212669895476817787318451698661588820482201697657622314647628149837078650895950418856312017843628371779995816357456264943681281002646985094757637116175880550772712968267355860827298184435162055016646837191891673917863390125885341926137870433425937007820132294782728848486505430880249173012029534410267927057923907167465310047381299999999086336540545341679923605567134378716613044708820278194375868734249856789152706031854007466495538843990713426984890127865956579775108805312675781635260756828901253827017588540600098760893685652587338672361776292935419970230752954292777070707175832375905652472052905886470363382383937055363835637023271468622713396967222492047942190516682290263581642944114915119668537959209033078430559957136542165222078186724312699855051411521029369589452665128326469138610126919356748753431811413979587463790242946293218535461685930708118523864844803316003298386277454203705782030878103988470239031562361367702489013424730987527189744636601761762341247536320687621974026645611886688348954243403924033676251827731628781924287292804928292266072351238647932638921764176411664188155446361569092318467840994379283219680284335654530509223533132553163415966450593154243009048697653053814283373548134687003651647115897759302332047952403057462006931171477815876505939506300438067691004532331692764754805640189994519876765819602231697785729213543453652041908040525867968215325053712919382556359446633846368105002572441865428370127163073471524460879112912151027616784677126298774863563954702018118093946286304029178197548982801648030773154276233774257276479566370324421905024925025406929864055231214925701740767035817484094855519051805432007243884807563169372689657789721743792129465710013901839479348406489099376973399483345294736596964110746926134489094600530887090774687979857625094654441189716445032355626436712150305140856407585856744110534297296520740714532926113437042020613229794354136750073206097907406432982071938420823260021706053518583007674234193715352192390621033745443048895242359604490491827206491013083446167963075586769456401281018283582905829205487527912701926021886377992274052147695255165601481701688977958058532702020896815774422046217164067697998286860333781431996313964828017555267915246927721682118469309424248182461705486810694419104986082231231053081946909664861516247237827791298155900520191874651763629082554586573999915123830879179930037845458490812530993120235908296107934697956584165245179551334821991499490247920767397030136426830895923822218632109314619617844114789391956082800606609822500335516060681104842580079429640839672200464721262544622557387058194243567463107760600682799449149280073717358923764269808460786777888216774160473228586124272009022079652101491145692946172410364574358271239892201925670481932459172508803904607118073446099583025442059034295290463308068878857716269514401119274622200970217679716031724801402419967018967040904583810797433312379450845617206347207438282567658538586849411467958237769485989700946161288552117249658569240806268259319959247156656128995953645385048372781707205062312868432865602199043946629905339794889444761655623253286699263539410562608725846939565841019705837457711907339774157584672256615377966914581147083885171179926904615278771075704652358660065583155749578608143449231436405612954553437885236173872311738889372924318765543457244632436965120981273849255788844161491856108751765671487630585881648934450844156148275800471706689277179981989496208779402116285813235378452280236287927435759631222583685286440741825801905207302869242241441310482429618051758621618955823329853981199220456971514882110069837151348853178113190027564450744585449118586932118368519702334496682353073772778462770147392241695632968509220042258141602131724861182506667860199852829462545198321439673768384686697613423709790156811866157210291396459730132486592278331211175861895753312576133794464776714920926385437030407567175366814401782213766212272518235245557177310864337055732940791713309862369953799802773458020843455661971449762267833855600786712118008939043189077977156766183513499226647326733925672676762397926954371977001690117164069287209256399002683432257923551478270488748854396433822231186078039207153035700248308699659540780866098819899647130231697771734326998303096359511466213395859686247936780352236597420919584970964694593788054824486363524433475911450502174037483235496065657401038523864636332733358352093144083123355221356819000071723693506567789213843857731526411088208335785578120836758293177285274997529078589477501838126300881497685256670221964261347370536142070498505590583508887503109531304157975089875362545906158218347202606305765605569916622770781440720209885899705427364612111436275801045311983851167230631284866949587395896608156620145552330324778177412584930539630606473234357425889731680154785752640157996286972296992362779904545901023917117452851824691800340590029741835468044633638093565185456833174912204870650605436866505255643265534776236959088412654342857771252836128047074927357351275641655493797324526578412310408292796946189915009207115678330423431961410224550800181381072673629111740394158706112277404312619673374394755493754865378846355591079043838207980471796352573343239079219733920883901976283705035644235336210219682366521455386011567250441722037202408685538289426460434533567022787128980829530445535643625912564054124491716276208061918621592882095307489756431202935860345610130483196881199918589840981583171139691067614655008180038039161526206834882507767500172198353869098840123832830765730671530384011731664509562677828373384238080699610799073409694728791194274218299041532125117156692787585283721610363195522332923040218749814195608210071817096995356926118641715116510755759849397770967101004674842138735710593431361396908646689216100949715250490592873998611793719671036356232568580960412208692183146004480344906335613522810586284818193206555734494517836497836545960613759560096151222619336147119554061906373285897474286851583987103729262402950123561690242047074164661514184041357214829822597970431143677646635853439922224327894388118269332999589270403285363906316914969780506212728937544779037186886844247633137347426590243109290367578599952493830790297816695381078810129787845695664210732158182806361595894209977523933145866140626262027171249733157822289793894434318630801223037532995174812800034799821740085224197416901162441333420391342575129902452138206181096270948380134711868481366545823102042948869510045608644921673948597427832542514685853124462516790906598334090179892279414615062375602087373656921293189287761837888588015263782251752752762804096041337542240080526729914484215691053841726285290868777550449414713695629460036477239568476702869974756534872892608986283423738050315879432035495679423815685866635721102257182325172187731329755483017663320153519182658102275935033322130152126859409414459201709980954462683772753718019511058779063254372950193922517406017260925676724998631477635910522298521597928058303074797476722764180153892953119372024447611263191920190970739542732279811928467308971727591952377234855485368596279416263424208002461662992612482849622306288953105315065859433700258017464116260166324021173971324641493327034298018666642517680913117479500815558315675295756352626060045171010980723592565375398276349691100933061300171205664704036917218549687928687906766749322581524119257311244491372619024165354502893084692436176594707919512395041742777252366109012361488199197649900719784162047839797417675216843501775657845401359331258545238404402261880599490854217003449659069890023943149506418369615786681991721961426317462325574087160139542155882557581944242637191767295494524792106694999198279269489598733616655824357762004458021476002874277966886148101109691125226939296327366116225089045649712850167507890497349508857095771486562531745438156306687924462015611238643317470493544978976175089678308750534729018133339633093695157926540315708636404668183037115264300176198749537774983351123606723236069342984472746390682256371514238616032313431979320342238754228492376227779462478457599110693358922565946175033303096077871372189028207334863555122011335094822342246748549418176592575707617990875008907213214885911742487864856431418767295738040635232050272435415335887000545399112155817090253620068582445131861532024470441300526466888518728452066673758287994864627082221618039542422002413090507186904883535609455749519045890783891755603095686097885929530745847744051378881379278667794537279419755969506957103176390324217046286256920092207567317446136069682995223039689443605407002382199098462819647112188470566205061138551842673038365893408568448846016958231862283976279887195557804424840533660793848948169900235886555999566038614840154034889293856542679306152783514564754296381972322675881921252517198877024236334961477905891072446302134944515576249188140588372350985913347954829678948651474769616138481038543713954603101949757157507786772050288030189111154317109377509474308625835887131715291072737528643827941411378546773674435924506130548683582176107458863241166609370556403919762077616523546272267131571419457122560959486819552241056873706103522504639421507824955529091348831502353552942024410017871428832495540369498039576249013716297257796429474742431633468441806491753893901306869863880448337435974746489639534578662022973189652278154755907321227624955729503153949929441692994188108773667741815648671352374889627406410962054530522075150261406312004678656610205638270010293012040624177290924138954311658199272523340824420289984958161869903445698199318876050799094731681817106383645736747896009679743525017219785925834724222365471455673475018994156151094311031954797832677620223067245565243123724301683185355336983199992266030334974163828196522509756526657361663494378782962151787131955851305621939625666927047342748723315582070327981597306291909094404589684010919768791477416289819390630836882309399786207364625131615348367562558004774791465291091046581761760398214332158012819012191499986973708968702963490102038658846576652160990644777262809136691275962289142008942513649005612118328637544852435915294719372633477190951486591659942227129874671262697121346027072268271042967163407453533155833679710583060599707229649519318676021355337175399185120803332306434127788033493584731803731814692254829312872748016943176493359403993748580770908368024055073114601904718176143118106301322800297189812453518968959045383708125127006964741242684920136049215365792262339949951159085674957973757558786508960532158953028916559871949071753060875100325420737039395315355641659316868774289624973871870878176771115643254933472074791363132919805085595935260754274820172991022400131363003670747640045463403035155092423506179435502296671003232194950140992403745382264052936532794523504656540582002977778551305303864468913462070249623136451353273556152568323747379499051324977137808897036264380293598688920666416871939720158310932909683099431713887570504224850613155606591016409434029623099543708982262690153394030869667693148774309201952703914755960761648016527258038983872735850690676078255103197807319467834849616686916665791571865451779527091817264621428816863719891105919178110668820120014299260089658475581853335921050942051166731005943784752936012727187441845720388586386867951750461464813723435632165817340949006734449399144480057760615074877287366422350586162868632087257217254338382579673113050967211785129810594448104009506930229760999027939558009520450072920007437125853810866227544828512660260023126532571367353143127328514411349628847582190400693057441321947176577558875597118236486631372153378933971130928532698258657315268785922622787757130134253879710344264269978529401022458056932600098809476401032763100267718800124805765738790556655301207905013780740973087505707715371007693310758773531422606994592686138599121868851478169999733933312195124193063905129180563347407533393008778136674101584101407521434711615300968330229410306883459087481742198295074830765528849961773241408905921434133606340493620794056092671097851600795842747651602477616030911729272896266196530972084711681890804925707376560974779721514121149241592170151994063949637461736245441566911608417770740054167767470271569878836709057641684992183322152327147668918846918433236031346125428734835663794113274299545683043101497676290230298121697947247714413785741130442454491454711994821649256444789443865583038193882357192419017371512750807023853937238364276688888352615177798992417709195443435546498358515903611140774680645444370722367502999749659068127276087824436287565472638403890199822198602037818229821936829191737121255109891799876157455535718725346179930092680871840944704297084873085300462260737171794689655022461887195588119539658206705802176432721528651789924895893616422267200985134965820253888954027284261472356931874030105616543803365544391676213836379781507127488357439698464327899226193204650507259069135734343187260257985383322352553027039742313169328936536698965552659601323534756382017268979422502928168827356306629758424367137236008289500629896753062276774987746448032734991472974891584099623671608191592936532191292282037482748760767742157403032090063811623132717566865858292765850518686640443728299916152716226823059262564692537766673040947626873293784343857535062816869654855805963856046090373083371280642905562958913613830509316055408096330860947059457004461594285832356728418092330514823354944974309518819543286734176143268795972268069208603354292656386912828968646887197020946370920796554717883698138027930719022406805911005862981840295597833105440856813715424241490534348523690373730582376056398317893897771785140093286899987734127946405674219873580053446587743029750770588813016773269623744270987699632574084103177507981438538154827184442078840558213056939222601008489188794844339603926933676636157635764461102739069185734973276888363841475031182285661037966575149078675346648488147559592662359164324624303011342423957092178413840760796294296391624576755775828950729512533003894704084929902826975738007258030243598862145702119086645318368415810665262766173849839998517814597933250262935904509185134485598946010250175655200660833904182941424190017885058425140981070744780183088172152086017151647309514270879109023886854734756506512782266144863075072090693814918397425892251800701275727335838541188148437125263588509820008483969865533640342000433886235360962074107064429723374894991003206025626892845459355161197556100804078712409807366831739014264014324768034470421031529807519291236202187107362447008936547448122369574942333428875132502162718869888426445340873426606938119181187922592028206031849410282639806574071299683508018614080355630386539207272335343881144011469192521193641363712573042249313978168425855462590526751522390167746516669017219818580101801789363643078177369984627296524799195122843742529544020179602220585715681432049084782195979771102538200715281588398487997669006799624441205945130168108880095398665966722743647995956843312268895315971727669706871454310114707650216227228474464267520932103062145451802779574499841677611980633330283970683711592816442767587522303066184420087406340696203296930348364780476598140799908911847075483632371675239620967210079097786920653048881049664373404519142990104559090040843778068706735556163705943404902926624310934514270970847473961019781351223465402847234681926889810194725650295039129807343990413733577167185337544341182421706346598927897502557946366964482086486080072729936417938231550134686877618855614014251180086297940355899258051322139872564348852694938834137014524901299487900267611256166949166178437722820508632519812199189425956595757215192905201450471537545380973842031417985759922269358868050989614302254377964171268887430770979051132866925727709904713156255222742047239034536090654609378009951534775473610172235683460968845246728602237304898900401590069275253550844340985401092365448369448954281133180737024851022249105418503667915548990700948832731826704886156442347291483846490523913678013868163196297181703964069376410720839437950069724102469676464524833308901975997685139212764392503403393160432742780133174469180526003963972668871056276134560593874988715415357202860176179733904274033722547114930840286365046575169890735209258764033986893854400736171459919022245081635209125274241562590311221320984367222497131171516103195167190736479982591701712745363711739289842414600316103022653483502184854039455132953680496167187927441544284460504241086018527015710248810479551481010820787893106934814208774235086136036721294174659004241705646638114589332882613641958317687461808589095312529475942774079682971397828064649622038261743297307585857417949621359914596771087992363140069928617749262293667724913216388711324610354683684026781791238812944910889028298394177482777066140052936478496549551726112532074905383098796303026218293871013054534970752604793629105459077333720318697936714339365302478244178536401618269096473611294904558934330824916155955012955383958683744750519430669753319615809633335835626309986998241654728925924662089143133380276890245926521650571200934849679543452052710102966222437242522645017955735762933770725210287907276976015588837987405521800549708147516304973729876174756560607736045329328434413132827667150801405645672329467753808605900136281991605673602681598216516299927243561038799876719322726639113200883087797617916254325307957153375684766909801695490587674890815647987440247841790125945500537762051390540019070337221187344856769026236292019854544040317043709396968426514374072630723267682280066778528187674249138910467457759835851362650206913112761122582067781502329469288243330254209822012086815512655278340644306342061559121034782345668626632292494986435263541614974171787406407969512681069119081946940479169846780577796030396678955995346412532559307113851806266237055827039949717896068844099605916360138583074069998350975407499947674817000994662043627607134283378654889513187140330005028354504536130158548101084221275223398316985182677151680603397401168270351432233240337294857549757693070024821959041378191877684008950751477054859477482403797862019633688600871779136432364093851107078625049947013486631603295112313853053102053259063726484523377068831860135312957154237756036243591584521301202250122808964357025520673386960264694767785287899532744889764960117622937705079129228596862213401286801784497762459475981645119263981596807724918274843458568730931008752008843160719781597007235228176805931542457888993805977292272296049863291533384141338631880601065913184399173666838863059941927358524683272224243395523207230620658033396276611307036810939930771167054585309646472576112001536892805224067445539369247132285037494254056723058335190196515052727265914680527866493284149782734838479087047354949363741919984550691242403978160994397019352363269331566252632053012580004989215254685325608340667544322603324536679865183127424853567853442530413764159830161386553859605440781651861654063273377681867498331329795677140923808693342875036632336026569934330967562193176189976521227820324722942142449562078828325446055073390509532932223301927195803183379428581890437514237799285642625965663555115807085410713866080401825121163145177505766732962695010424894376091387296944710361293402163437506467015754364243484259047755158942236458015034332728609857872283901285129499570736424909538152255680697250394717196624674562732306889296760610757615261806365170409071398721856279367305861338400430710697312579454385546034629174368956639645277487301129443724662185204768772933935815633165312384924937741089613230055761995286700949835821486942788648202745519254344406701009059121500596544259254766131027315042513982163260135751352396922469614115291310722381905957273870372978986785054258072083134084679971779431269206267458336330691507621690164572768495737767933742794834584905701228465637385620499427094069736281746128486142143386598694693991235995863547811110381924146790295855341185579633457887681689086616052111675845906204225005368445397161795627955488298138658135289283437394209358545376728851781091325094012312253706349480471169142672565266227908013548820362262437991118864839661564335005783076134534123149686094381065010610487540559153600842552813271525008498671318767587145725448000919996029108968538071342786244033353340865045625896140490431355155973601026442040879490506180714270501289623241933273956782672273160660537036809508503266016643886155793821485384082701314498450977921899764571702117688734983444471938245909417628932252999689624499356747132803037215349782949826323650224373048411704081742350924069220735489215667769711213718985787524981334527427536631096593782059313326922830279496225144322073505184759717708210447001741699969368088051655594925914485243108105371726320836720546326228005598509578185564892354766702378053580822900003769506387885392643004744358413216311561479190480973280356715947585891388066028059851971939800817154373262388144432322341014190240822491014782367870470553212658414838482197473750180633625952410721960501789630778331084050790329208704624494886926702706658159827274943079232950666830815660105573880461074447405897000788543061089067415684628507432969157297796883577311205433069199285954620658956054530756234682879779008086093656207090877994767279328445686211155846112199791597633186682090363490720259280405247919242961838727741132076193249903013490769247164363367890693086618750258011151187876477131032021004945085726004642287380763822122390765862691411726915662014866815452084762369880769202219391384075927789080462906994848176735117873151732541112290865555247033799412314621521532679687655616118900556869020122146162453575483368993114391157342789920541433946952256758264333771042912753909217546612705728125344500244388787764627296081616433812114389345743740337128961769946877288828830067550067916116881898909134796489432217763774443058388152301409332760827390766933877135216097470182272128964358795767022519814851372166704767960467813199079717958978960063005192553709910465228864056921070388505853603719349199953760204828049505521465389445010014889092833822424787118679336102742220892244115219278430163329552962391364633561658511078335475956760352846062951356248656862604264203644238719037656628504717759057776162786859880603244857766451704527512897443763595693843911685880274243364995582740584672153214569684601418658999439346404480186940830583115576776512509332997943352722075839037891332062317623643430178046014330230908321735921685779512265453527913987193862890735763805181997071896539117593629965363916534843129653060105324581422541828854351009702076926218026942028101562526948641375172303627604982829164417125499110828737793785943028391315496635409912075873012208345475122999813286211354413356933960625418091549649856151590115237012051961542942409271619563881004964591102602099336544445777425146203226147508052042850687252819755406218029181805008720302786334607830279436837075956040175540958160476255417475859982516379193156557368945791237161272270092370378414999098462575012647428723803491927026459169369567024312291534664163433843954535333252262787238572719006346304201607294648821718684578312689018570218010147096227324469827427901135594749712103381786786529892758021890812284656702685317328509822799493448396208506775437476149475477175101004956652461279060396785485021467931000270695638493316792307388391627851331221858514355443746659473703590265015459689010096037105380310341583199758140980772690367843791349492405155492236093747003431250234939567870465541050017966337454424748143276038742379918067945539569855443948421027552187243323099278590561866028338349988509106594119163246964527437458417355552889490845095743873530449321785527395569647501514678188840273292530762251728483231278533879749098592307065741562281821035768573152134291118833256898756717507681588693195426176025558955265778184533811464813915038267124198478595953917323552962988058011728218475258304013372844081810227787872230398186543910722506908489649034341819440406632353499563228701760486844943271644759717532848485876666095051976322890725537370776884334478066704665668831766344354811704215322018370449728267522186722926400777980955481660947468676917626319672860929105237233072033399082896431042554238210970586958261144002680284624309577534895978288755990444182613305563344663529372931615169957742774571567258501938028433776737305655034880475829365304005730448865939211483748757043266508048079002471115281403823941483320697646431461893987984058624347411955167469229374487733210886236339643060813528326491927587981329035278511157453040855670176671934343783983889794694932547497948453347743353803550126698615786779410042214147249320098917287005234369312312260151256840322123530200565744819601985259539513277735959089901192629598550279513253402097680197060011269041395890424033280965174548013517320372933454373901276522242413413253353716970364873279044734595543850561433538250290185931940756751667372576171028291154012531007722928431432264269849205295023913618110156124642922297481937213535029426642089395135714391691659118169814165097053540375444744959719594745451027302146597212944321854599457966509983534928640381505725565250295461976136145680205163977495212836926139012760707849366996476607551381269743418646339192350180952181161426528757014572919454790875789054104724622540402040639265973126463324439897846580054944801663632931745959795974696788261940120466371122383757502211879145277928879757289004181346442539399761053633678418314100107200504300364725582620160582099289612454931418684187193050454994524383027535025515615459790459545792276003893584965742196409592666145271242192062704346475132401749644073159523221514717320509202464792506401178894377148036918071629862545900577270348433636246826966408189582016408734615170412822885428093919586493527437850223988168659732433901021536274205004883567167913901002073593476615576213393940147153247188699932397890344038152755610943511611106251998537154818749380425092133197730075678301383172915313724611905827685048740253397869726968288074606628845433461918775763823641534960849120657096423013794490955895340107682842220581112369257751105117243290123070191077452677851546313697385469041857608730417638341963911001847720678953051182017187114083210729108854491912333435177791151791972102945745345531382984985452166187169677234874625800515952204602086411192991654291983125667135251525534043014886798249284544501282375557359053755320035911783202661539733990781799797400509619455942965343490429100912311240809299267866960225338806751143861951736681659225958964071275708383050648001037435005678029113119123099261100203160434198671492962718159486550539874157117945516772377902552395620897008757099172363544877692663206609217228709883849246016568242242869689803885164580974649719860827709665356543727506151764618063560305518095118465528715941787171272606859505400922083655600689126316326856186020158717301018315295649043678296493923724278788110495594764628439377193405905486206623969996609313616257286843633266934205716693326795734811116066109567803852550682370757360923433793064153386339414698112646013093857916317146517058543985422091007022456264554150167901457578313132945457715499234493583742807411765293515934218970109547678224797034269824847438382995355337045804629171749710026719149455342478305168345043562147676975948870145775542505068441342812019826284384595564148190570005445054897353535524705849578806636190483314577733981632568117780298564663723356450715062007818011059684950325568143574727672965050887907399495103686595958480437080132519715886824809926749685195095388407384706813051609084183675557664843077650548940654910956733271878836851913913787851682681753877108996974537389335908637988132923745489297153783671048126595335043960328224019063828314716653210986248149010066048450756475972346011052551550798126529700491147011895506108347958166498158977832923159348920782951843277376432221278894776269626142397107179410924844370247463024094401936082653122631239400738593168216058085877918917509688398958653147480503431925008458630700113008585070018822960916995754421240091228996817412951848711878754694427825406146425416789757211457484280327524102708332030366241307048731470705401164312517909476118393402986446405646065419244142817687550931077240366048746503069616833718488371667256951570782891747354806675738481871707663491570996545858783367101351534186111329833421437742657215782994649706134526104964840393225188729302593652679743730513637734879026503273728212494090078313202178164207250804985991003436148305467453904609262328869633138763633505565547193313748499786421209385035323927600279956751052207743121507824432448045872051491549413524930297539880909466777902288152916149731431806355411882611192889054725878059093721770444029572942842764751650047828749771797427571126450185680032848307213962040759609159318304120357783733053154719251988018624449894267326929592849104610691922150195457205224475332948644893110078703811937089928876109110176086153173181740230439504398475617120603194015974618518202983822080680315900409188306233385679710207178296859583889297246791580989153689668984073844761405919073499631669515833960573676280677872235300975156309241106313157221886685241780910033136759459145993921424616415460575519617763573809749208500892050697408641833016801239177065440097926474418050666122860590167553070816687965710427682440521819348867469976366742077112180976851302485473286061701820848846246495793955309122572690781793067467944729447486497267540956714738249180618992054773635872050755529536567480282739885993616717835423250167820902171155190519237882129526255303256124448600971482321447568810256725698166688284811495539964231277125648589362911190163042863762525145494531489757345501478046134591977615236013170866118738951752894025831103208855534293637072567285769631986722513437274832593333066839768741095923204441713807432667012390053291784949665860545460012469936894999885990184855647894453860062911149275598638500443301460035101605391138206184939284698646847560855168775872618307928498081539711605024451809162123522633359762673957770731398608212765135521486219196916703904092311956078759742477289592056028132174942552776069266138891056199954886244894865850170267189632570950356003926953217514942415993362833866720524755137260397629679486624618122786868917288157293931208488359299440413122417283685375729836982429581077516839137118553105440736567087385256596984712509700509727142554170923030645006868947998966785397623487666830821481560734628588922347461739793265167116077523273163058433976014203584581788283693095721311819295933108216428539745147050990357718187548124549210669690894319993321966849693277884712658681839020360299976046839958465553241818221808426187951676880148490833592627699606753285346881948268495221763298422919831704377510960605378798894701915734020529951133849657615121610295994225564166177169236226963972558815318704267301700060695869962694368979584625901373977366340507072561676207381475614819462784227694262647086708133136085580920740766192639592147954441050221693669195598672438283701260741544575224844638279917908317076253021608655666977008006294733933376192899537789792378368083533930530988433992588718850578117550083401171131685896427926968193425882219068629992459114107577226070827293721386593951974485628950399720235267769124430586352491870276516044693874315404811660257404693190565205854566725204801789392869401808450652675992064105079068180689507336477338800664506349223366209577430873222343062546184708071664637971819902652365461154558992547983399348441378155649141833723195969385184404350208904664027865019531923805546841549144542863004868285161914908498149150255900167356650620515045638143307524587923870531771491010610470177012337965959521814803008321776606561361015316802840447529918985361163526641540727232213491051026161282158234084213849454249305887536879787673643008310861182824027606281813487653748155072334580164197402713097000087905055334491315533681647431166835532073248155790921511651030114298964034805269403570715074700599990851107416698479443778668525604865242890810482090860000930318709151608005893829267423335640952498546056081338852330328746421485228983396239646847194471275728224620265307958334163355845370181152901578072116285849361182511016573346214192742111432665433728791553589820329366369172098333961404097764124062575482497100991984036145195389949304695006826092280431553708811986094032109725545524638407186332279486611342571315730336099379856061723455054407422588922723856588045718194951866401299063625972018710367662105699910552421194092006146191102798613359178611163599631158069484332631391612620705695740802830010112046400259111782402973786260064307506082905723224902610407247744000130277229662145487682806254668389666445227551571926250772606225196394314873409002898874372510420443018103656692503496001657312798979009903727172461631663995058561489413529125404023053457506097594874664402797276160506592222689883789645477377941764030582821703996542040951999127477703191836044143979801392451865804417968331952643856464197061811490345074347941505839792762559764899088341424079229947544109119009680679083733095357033616643151839680779544245279721726506794828201416142024056789486503475860190462954301250903153520194947145021052466080961007636565580575076280036966080918315415543951739991658902769149057021599427133231530143961520639670680708264385633296375586668074740153656004889613751063325962400391134983691975450512841025083878654237421662541093320306254631365016552460721810378397968141463983467418901252924860570396611763941374479988917354191002458658367037595900162574081699657637917980834956151187668058165765499491433255218053340919587416538124640232577267077248193468759599217798580868242665654324266202820748158391039326647315822496878436247118877257783479891462667144839853311506065926282669141380073545995579734527713708013436847760616693902621527773569526284357255928170819160816661588698767230360351386010213763519588898275506138803165898337254480728099632072155936133745585261539910438163128343403195674517009168710259713937192783605271143351854618306649868180595181487577219245024863730761741705519270915105270224370110226716936788950060310336874698177507551596113958438124293382682560976182790946674823942166738873376097392888526659578697723357607325760694565416962342863379797414891300665446683020805995829610724606777587867876434642433354080441331027579435678209674231256053056166540990232905332899762915771905628216502643580033259448088278327500567897748313251791581189678361549506801261113117114178208788753720901351888881101888227258294212570411622142747465774023847784805132751207520056701121149870388269222146618429117760976733396600246611384735012538395877506724433976764973580432718671465975543665520399097462296127906854779999021748310954020897241492411045275669418291073803801928949502814243797866332269323322599931599523109792852227070080369571958040650530994171262044884996383953807273032490997021637489360866141822500757285955994006583581350839469304693677135690083824562018066492352138625098100883940810091836391457681533171211344919461861233967692355725340346909884481324260092376573102247856651236707385324686030446072821728411430174388168290707321614286040908601690597219969762333759664447176604377934113223421799993278781555490475092968729674854457272593273426758582113493938177513587498638208920270951122920764204992628890820622734971607883731849468945027828522758516953833603212472974661903527884315709812135664128178915454404056098877821734961632939160345493405251412249911587930096788508532434080737014104827043790724279491329019516299002752660225916706757922826191507184418297111723490953230294285624973415748690976476876887493071879602398912096890855553780451537058239613245063479171786862244323528480277587305714725250378265806501751233933039167442961772973455327790631060280659850149066158055082510014039936189451752989581588061430017308365636493527181280994513129695834924393590466165992459639235585975305130003585961410323310309221846783175326279902709187361703589343342891130726625703037690806099130496158191610811907343826538313325491589943969828357713591820381917754881528406757949510274996645284076167576827801941818923987120345727813474630595028679697193006731797188267591933636530224750636345436014115113571931847724398252106372753434093856820646348433490472952978356291754287628044572329096947361928064007442306693572524356399479788662227925055390190946323572973174176167027480924404753378428838052908931592410937413326538822129002041323678346758838156156118743591228201316408086089830352606548100997827664064426236668975676579565324365120800033126772676983816278936077850289834692573979877938474126222927647234173974065417272104441191686619964072509814462529332592864648474137469417662115952698001225646563697823768841133802912260833218418531411012137586965001736063275863088839018690721590611146667281022825269947941738665357127318960257913422651312058550799938903294568449584381113648772188674664339411282578841893054423720399744096619482965117181555307679773082037396149259481214209465186913864391873039169539811079890454517698364887554419433704370652270640158629365956060899997152551530709200643414464798854292554931156359983715575252779075246601670139587127228902866800201661539803564321617880063719928769072304750101848951441613566656231282999216449177099168895183376837292511501838066229900960804323563074407432593670044835475832158746029471945288674208172232783742590422775092186145026233949821315903565890200958367939529179948690297925037680950588140041911617699156677133305826634129771292599176573191586960970675914334349967021503516713077552310689591398694872962927940085220794111148726764633316900607158486929844501312911477606699956505035966372786317506854238179189168991214986005659653010767740075832682643106625510185319197197148414905024312275894825040240282737609160460315883199509704781475742563684160017446327292691740221215969473724251006243709290392515594021743983056793557611484282918067360387436285386696082743182741452021978256065556917496984959761369420545987468752739499572217137575367121493598830859565611617757532959494198861319828644745992095960689229590522221218836320478675399012306239235801684306162370476213532233249335695838180221814302070826173257249466995285905473411643820713682172099700052810935032284953089593187247332133703785202761886493902163498799819409472230459510528601700337694735719155903106499021180819285547538636113544033096342092200513411044157667800183522008537652316004136063478578864062542521646723362391130232702619610273048238113746763226579526242585362844097186751333864162989317230664608422438381151747534126582510805170782148217459974258021240032560613326658168388235155712844535955360890674794561750569688246123406190113948819902024368578087309733390015209687223800021524825589616626083214078247523584902466452397303587463151846203545572826564931079986366799442565177638105520066337210926576012151581034798786547996637318729595367415511709107579317740849323754149830445721843107609326233692545284499330608722149293459062272395916947112683523531453226045124235441047037481591514302695317998335201002019950357144215515962522296441902920982071443800600490106727232279426541166354039154022304767137593412495791086958914184444299777691448983297914777235548379981460138432052943705520021714648685838059075673148644350610723464613978255980486946475507460543657615861115689768840574237606324788929618532346627732038602400355679338622047516966387550542290628950941682710203446231411767380222588575273426729806951036691953889141528651989038392693689709254188446882725927468067737968098767036903936363251001437470700520141679554954741991657776486152071312750960915994830474237471949326325786514342303324604069544962781187321941993457653527882292386596568911612129917602461663301043779781610795752686357922300739894770886528946550335885928510294558530656051202232923408195671290282752182255382234212190039664378829178200185831328254569613012975115265864271693863144057587954880633907214363059337812858201460500680346432683592191501355808656837993571984244214440199246622486791600527668804206931955336993700537645063130935787717344313519834914018740711896743513095369202175406921312950400437929220818394389631208820263314015077608067643461949050706558241541943718299582319125704161993632992647828628996557378506432097489019855293661741931618504255544465354758769697429176264501458436255501482633541009772969536052107197905943703261478313871191163945613287945496806818446001071986212933460263369292418617665619034033242803430424498702012643484595405160621145044394564116113795705452977472962747109055430611149702917523015482952736319408845063912634326336177330508944061020566639831302120722654325640755182041147439122227499091826508531711351981159566247643756372385971158407176435994482849543248859661736434521052117849759107655763900092247260205853303309426893812194806185721437524885209278528581947340478306154753364309811802588041041863591919215527423643271987024324136829443901950734743688582278395711898276565603948927625261652997898473498743827513230931627223374181062534131070110145747533976455111548576675511739301208237838972485334200898189351481612220786444832439796262053290406286551979209627878194715107385658849473338968501535031683134217156524094874985953725452004150156437575424478853170373494125863481723265760568196107104501189177871541728980623668212882605292737564495186006163647791836537787686030064027405348053150521632797804272738949369408514716048381574410786745314091747885291492824172697497846476479385577197313028663968733118459763174625489643548210355181954191749526798768955338743301546727327351622042708384304455324332299356039313579949143971385680761602103858837813950953038251669918446282867152206248476128508337156719107106214501864349256256364067290252805490865653069835772830428820377432826517573101436278951618865941001677491051560885695909766663536319260915923035147168363921039945865978849588023195798736076939607382130520831774170849951087005397964358329671019838925961351603277094829161165657606712243336816019984507747914410570361355336199570527293831601389816068716133972512095049521649328500777453402011689601572275877613148253133455970715734226638137584440776145528890313902788304471764157508138794861286738745995419691232381639155763702468151042569029751253945437124132118556530968037836004168431162965040332081806394411766285990177060972120931488583409521953993625919776184192860323362139623361219659373625179811875624648110176398374288638981402495881543169812210792190224932223795889230660245368723570439069446411581964337719645901718301817147815886069754427874167796576486325189647602793274666676596187455437295613518032991465490017006423137334384781444462594900408777503844296584266306282975283852776701124099267087226353308140418918091589083637866699125700322642167502217725716587984136276249947255426770473089606159343139957969137417831071285758397354610402038216801837167114455267691486783109096878030758899482777555418704621609224539801414876158682603963048993145023299798586060744642757872196164375396092195190802188378035444898582134598949267423788176940949381121708845535815389552792029845751775339402382978514410124611271494876752494683850981869097284598480440192560837854185888179939458230341528685799753872253558984031087460823303113805179754627380058576874370091703380154708737592844062537931034246027995053689841299026369972515144053941242663678051502064016107276182674654263753077058984123840612612363035483562453985133381619510163412001174393229499606463241257905031790264316580995029325948034310178116275580625048390949822083628087641236693406778301674644375764096918221024705936587023217914840167613608914795760425075638420752182628643543262323811553093224429907226815332514490956513897400688074156718983200179458724226053323493512526089847861558039824848597181337123065639227281623749351339942308803652693945282260640282010271273993567343378520174618050006052297283235500582287120925723882543557680651515488734072994153338738541612866476331127132066991396542326068268191984708416281190433188063713815786321845563948028777761843054114882517952259391764040442516947071161787278090595361567472208341346940640148319506257144658583712289263332542347358970346777368300735058577319570648083736904601842227102507418315440523989585536991527321926498067091671164822609019287398320088836113205818177290706138945115926919940165283482709223789807069614615989485131375044726372035548560674941277647284865904374382628183727196980181761696720311879476226606695741446605757478081965572812384016234350924693002670039352907038068580804501807705854241403112054174293809777433895130345938749457547386426917238006581369931158433845497656738706739942402853706636091291956622907301092432326231589810949988841373366240846359772943722276235188696675387002839329878132277755720100241255715631391533843299908938604444571705376997290497565316647413534242198422403772164978393382493620646503134835161334841287629641603363225293811583294532776252983403730003862951080094154468123574939382924960914912495599607295877769629194872122363254175340014339170765705163451884523406653854329904081167113479288859088505667550961646096092558669547080450397414377219100449130920116627639261655873681620511407585012505906473158697269510084613069024120585878914769107168453929569470827423244623370583359403382552755033948177542798639078640895425603538209631606393005214251315654381896861350354803293589487880513423731515771869054581711182597450505316088909199884664889784083085559901425274839568276016150956090601241184032076158687451637152613045799150880921639236398372265478461752791362900803939300165761765541425343722125891646533077365094582803812050397319286850736285059990622799799377097728836493622962282461734846101982926479583027913976762245992403716755887326222028289107761975486470245236037718927363269796975386453522637271869280170176109981354706885571037566018636323446123201172694852553934079381925149972103286036828832948203388320251969519195187581413171383179137970243533111566912395826087119823597096080462956605083089813276113502729985702725255765952821290852073630532293830511643036268342644981535384143918949726745594745271552012514629766791662387099730205929535426993427362003311086094253376467044699429535655316657729763736805126244647127317035438092057740010717723209821177045275275963103900925828538166946921478603005718105059672495244667344628449770148185902389188214345334250864650837612409485310677220610929211558696782502429116057027547834164312752038262421117851999975413053955235597024747259391187715975904025534937808762766003816863355304497935516739741527155812537107271992562179488819853323656074791147410676004780246384948430552103267141927740528636736321444762048181591527428169728253892045788190988998293470277045218975539943616160768358860560461872305299570947219140450017029144076645528619862713454175913758291476326923829928755828564489583788426144225657237567796968217197909054812060525222910286430134514988950928472265263589514719709120000672723636326119749791898430126490465221026600397576246112483031686859402735839026674863497040688797931041519193817957650996436852792310357661494166407239229474249540983053746971162501719236536026870944847569245798010993700784105882384209738810106992566558492213469363234470019509746862898582382779713614636869799797869661100623094150043052873674356875871490555214899302772830392697935408788747428536477713024483451927455570133734066837611049043460035721327427735588057780187330272002725206781359480956434408369148266669727820995093064243547758917100608575357293142992867931939237129931447338350817977814481584137460840977305670472125098237787724440295522258156409928645318969858869420408091380898135561629681566415849763462161501322536632686820699623686457391115316422846621271169120240471614314158303516824673693967518258312502374903727979821530674792188495143474441532117125526373088171355568902690475560778898349052288346322100949198886059691512877982538612742050835189753503121831223083792260499251273692239617738372413443318831929240713276508672294338747402073779621077038927039850206690368213998872032053232258667621124654165697588295993466956690218039548577199081579478229513672600447006202959829201456423094501622828559027530509775943362662290756070648631672998592052358539377921257508430105725691098911058208788140590129744825309953779034400185127779273048607145540224285322224234475129172338874678676728908259727873291514194636940244834218135703305921071476770887947294341331086051362429499949915102103207669339551542957985902376430929463181133600781511758962223468026127437060727397580190614475346723155058652754216900365578242035800689069015272476185358740710939995242627538263932226681773749916427134054017940696608762069903893594539433672808086334756759041858853345534709802675298006762177401561044956194377338352783363822492758590618380433931928951627673590978990482765395980706451053285548022662542750168784233799873138369613050554256409622529776689439399959590827570811943967169464677897013622177743319585560865463363760139654425401963961238354703561201022569915371767313277615228376929503665679052934922188879430705769592642023750315926777099506420160360611541571396687518597486501383231546624084565983468085000918873194411405805553947708880523088169828287555010021673340691487953383983345998087421161015436117887989602065386736533186118968502501549081965142333272048714584265033547080765879784069967852315906145752787642523974900836997475291060634888015248577662903109190624525867706116213236208040776324198245768096479579902495010462971053926014082015447792635990146301156181331543285519116105868365933014103344218060773828069249930386429734481681084519341413734228727448676058467434410578041967997138819528624822880021859363378089100525647631179821563519469439700724006351693258897728736288650745086923022829377977802837135612235921542036839250454807274755798777751897905516062734313056858645949046763567972247992722518209655931424302030995882967949658247853641526800383008263729590109588996058240598906998619421189710233424328572910478023504249858155649653399824536942349180115152312626234329907930243409113502903231703321861647495381632101649272840464060906561872068829763061912124387430668557243969083368404283885315717844224174413454033097017135977245652155817775562832031104804607035088162565233724941544074160466388123477034880705399695805810217322912752577079829791269403654823977315927667973870988534867203226470570842088716397249754250256942448829680009076086212177041323871459668666244597534826544731717122760087431121842370960563551447062504266373975530772635779434651910263978628840389624957789577927183631616500713507950279658962697046179208629201588804414199943885220523662596831205497748639533565170115175248400366513279901850550246501845803790635035781669966630776734157823914090078370377246414953252404070140402481289893356214643215535243227603790913890811972624756729198722366752697907514552416551419286573728350244473076407691921771381777763430409268349802667023356622866780655148602810837574512873253251011819453707395572151522496850635540293026318915101686432665260851758289938343655917366815156595130312287628845104367694451925277524555426751307573788441413525109352537877229925580867507798543411572789138681538200092495618212637809090538299333645241532208497279977727871831590143566290183336094167820064101325609185879704962726710899587705591041711216531512240593843449248375900219055783283322477007849970343326200620299131187603239168729287760441905780376760854532155754984527812385927751135993402217657834473515947894278540279209026680750567693144671211970792159422288575725045015136897486408783959260951597777561148975251929623813901738812531476486175509494369429550697759130701036206734908268930229279530314948291725306394959405223509790304768367305417290782289081644632756311400103836984905752707517836793309038965158288953940500355401295131836504019278224787926123461043689369683968313843458880619657179591834406288945352852195591602635796263500579085984999755609386042633426261701756387123749639934947535137398590557099122250771892764075491034461948225634364599562097074681619555688795103212988345122392955140334671587882080418673356619698976185965290003423813629863893064681962881157084894156808931010435397545590408400041839976171758186765852537259315013762399451623565101712156333878682965489213695448340112107844757796008527932799812786489011392169468813517858781566583316344984555034274997173365719946285666308733844444797383401638779522834270136459754919991590007901414150900551235755631146563546335631231527361564802182469246184132315461998057899673418543816039817237122261560300093748454722029748401724002360002449715718227443580532013075738940393505911624579309668052748921327747344620316202970779551159965107421243466103146704453364790409368781284053324673820221669380343622909034048678276208059169781061831854733013284012538514524583218137315549334156260564216589188317082489276115818591776502657521239485405124230493025396701162640374551386971008833107015354340317892690870727918059873893255525616698873177835350301399255821517852675368395387448923824053710591999851527856739996955134858254552048930825586115679438996931887103234424361155435826288544686765682544650355939031118431837425438107905983259778637510681600381718128415757004940206705282681850983025694797013263713165992778204237326974034359879905614125169844728073779658511987596430950609308675561465863429797906116595525498317613110368223996205636000782186647281284407675719782897119656184087431731684784190172416866687414695265449570539811439066869891919196417580748987523862537452212751588750933620030784307563171457501529598224883153788927444195048025916160507074942885531030544845368038247630646106005464735497902357085434588489669254618612690397664666513498536712433141288592523707868216157592288221520213437754190178785274893148298372866242801968661007592501848607892979554155579241833951361395447084186968637773995829114858613593518847862954182728268189273117072287121913719830861679785085777353524349374709714286513159014471914317653755563283591290144897178276224269763499935329281399465721406458645929053738272747331575697416184355938049322731156761447289778535658189699236409186661683658490895366812628044738009285385198901379704479905734730848477802600660877991252954010736540248995926418102965646381712386429660596544903252476495161305701849941892820381200531238770612365497293429578647507789454314730287127595268233631309474016898037811919694059726768905472234361025971965065476062197540288521790879913608867524298026807082182134481559815058118289468012546715907999081295206139131836835651800997756969294027430330987590786492545195744897434044892586599350626237708423359151993920431334372848336085825540984532632590000137519612812382502317188654236395773300302451704454177470461024170477751754042988371651535195219833782643694979153011793480366654619289008219165818030505180047161157352592073619025916769089258366184147586621427348901110049873638858166562902010830667033195303009375015189942697185308265009213032294273006772671845516720969191660453877550056609961126117663023757884312748957617303159961868475292971038855221591780882750551426748449338746982808846473329894378896773718776133075571768504415370739196748628202962324206976193938545018554364133797219489696918135484764953840955242519043128325238840298457565169990650827087321863793855707355255396529739022803557911493529846186392709610507751259618185367986940806189703982917983334059160755220972773765007284660258398933579373310777335906342183742715105472655457143971424133871049429584089675376570038119732237402106920265059772218725417361088937718659103395321944427408310188380892774702338483437060656124953510979742483623434067099841042411059180255400944728861197715301404441074049852297901598087845422338787293687788165201530025199675583378127125778197931170818557946890216915025174612923620148722727438492567755936998674735201421076294666104748994826238782984669153689623388667939863147904468501818289046978898157748748944159186390766606218698845642229252021880051324018287125375631087258762230914114226201665668924945313090594934024818382154824110005762615569772012482427825321497164661633182229322840695999730472717794189030545530970138898198557252603455634396346822156085470507456581524484465392124014087853306730786832284905666384812488159047240064247302064758819857231826820637895046662226348847540104247688519434065232072748003996216100788754684513341384078729938557231037117893014200334579140051591095629171323439992876336586257587500097341872283443814929886296129602181452770611385082523903603875736078263105964974706711021798951798577594810713020567938155803885842474398155215601225026872950803837379533918067413779318326847243542473705271512866576681992611159365162946265612586586555407641208306014254028605792608285223172936565484829817365724820246114824780842790260750178206819935756716026504039534564431274595334149156403087550355967940949004482547523670582964746158716676274696590360171926713541842710693115475731828813640026566390913633134759510968448287669669358982374751384607358463587100062275873770841301698903443085039448634344532111512580842333924735687256971598662181428193490924516620136801272063697773975421466923689519923770960218619751168168241092889197621891967290814305470997103800625729217458306476170999471616499110750096670726820348474480098322768477191101174586678183909050074180888939093975140761584379882965223781148484697566415996971960387242229986293928159099519154429770566396644300267494575641887391551972872629016865420703886264862763860505066071595277757761031313759476828775358465471390530896986981003822312547633239683298215420586490383029382000632472919556301817967310360509095149534712511504225338540235006176478840922113732531962328868252802819203377032945599704564362344699092792960235028019404163273549261284943315056485252622375125242316820312111878512334146425324181497494754008239741799780130131509509464165123539898025935245208802809436954360687542492843621262494464784744793425793281394683524555270889178625316376115404681916206694171728294994437434177797238693394943289526677526308290107037837372894953786045391711673388681920619827848262493741142052817896824270366333956959940639617809099922111247331544178106899888269917253060626135644084377020466178846009758476407707546779511061039833872490327676834114874328491452116244957932481999098590032985607464393940333534997506261387922691269731026599359846185032395240378170690572029265098126263515765644144676803130632584995340235397832932986375604867990051629538403027805156479362540773664070351913563205539484616503946132739565866064795027646932999179146597413317025765059343147183972093438970443349706208479659176197848953594519026198431891250275129960315394114388387482214932923871037192826720696398446188724257003944959637538712231799449260359845043085842354117198055584833795796333148713689244276119026487295595332291855423479425486885083020884005550200671802237002515681640691311306262378086915237107521212278762732664040527217074845898523442365635426856537403363162857885857732266081419759733961042350457448792668162338628883498375032692737592334546648342513176400564852391832860500166704859484501899612067774949228311356884579949500567087873201994767295290204788431732274881379089575479699233222214789495601005946970416894058727296416127252407537309966387301534240588713096106836595206300972911627539391749701362748071561772733269495103259288817928882656314270823312182178353241460480035038857932039852318081059551281528808230956829032709816337276139337207728098243044639055043280713826912528483455824381079425767858677271860398508873018492795584003889063659503625650598326784744851180990449572751123214626156654626353574259456502813418168377759383432639178437894167936461949460913931373879114065310696536886878643316974655365376776887451693412476450038531345335788133709359586119495433747502511256323520200711407266279501198714112107534150384286795403674224064035218172617531910559954569955493691346739385625327662173592639284712144738103468882870867232358554423636600487633336354141416527787896366671299801887494544172527207271962319071119843364367477521739395117278582584425738677350682680343686327616878067776662860163327969210009007022232447298607215825006906092008135184316102827221239283815419972815745989126056981705180012637630545476147049421243415324795230190777678822501909583717982610781484663537748377546999583288098820059620170816630454567835676650018899219430350982465566748890672114204903745727483437069577194916515235974269213405813195592059419148194703044915834637151623837465921888788972159554705315227556209223746456107827738804459871102566769493515238807564057104882177867975014844951866149221700956235129988076439745214144786593922506382806685990675355989114311238666868052516061689654177009234240773230951378998107573936123560203773407718592941426639318738555161850534816332205743204925997832468115271576170507262753168443303522280083893367487171531906614027432895142837931209902169731890386160542584747977024028881583728349799928157089102370392914836045626147982050848834369908969103989609837748363641066232145093511277013590634455645461139896896259639435028005730601850609985360061187350518278176220044690044401110268156578436835251750330538768720583442112111775223570637099171025908949298810798661375452949955553212644575119000836709487211515931370247842683788578275417111420491428392225214205748140516883327214101266050397114965334666098378630980571957674911160314620372678203102405262591832084384655528330661427042871183521333566864075828963123310860868095012961003171875024696570227277232081009683413023891718671697110411674063438447876056050547237507103113540758903828731513326631006758196126932796979978997677628857360416368350157763970647177478922912076536409203206891952429189859219220663314082381008484517089595463702563433974624595014145040102341208847305925569504671116594817580249870225421529527049895617600724878059127039587356094662088169756617399692700399901804544067615214411660021735339443567010337700679029134243945953488196031427376720400797280897119996138821930359943819558563091548474286667408295579809575645819434084292089886418339502871242975903391688919149531589584206986689978054517575039359822272780752677008850528758310806637213088384908119873219878695584244593337361376577070090010032887184969152889024722927594338448281086619893150178188308811056285987014703990690849573593457491213915477476206322347977238783601121144866058335165969978496044308828119084653807835480567087590752797508514438440794801694855367822419919142719732506097603021596420234844787304555071099440192345433102996028026243196512982793215338360684931358310540028487748561455890270794521087544712610060220317841854725036617351589220265266455063771178094251528611993156659058650594846309283989245688128752703088624699873170296847112268422213110335079599869961867531653552855026596218182777802718734231343003799324999987552838548807419147492939837971158245923902089313488872702638197704260899453745420303867721508436947184716671521365095521596763811259759174790822783837327311383721283109999068198787303972160712553913228872647518281234104199573502618227218585955066425918337532040023371526219228748917230716501574076814010562739952934003883979572623530448074766152796117300545072407827303993444574617952948825493717574140574285723684328189373356944310100175906209856916805799339102123061694548864701953871796028112858957048489166428331326088948917915359173929540916628998396849675930065511071291729743539213120398307863407719424981032923696250441674339079422196077625400506661742317279228195921875586808580033349033516683176284960602087548973870717314096959653234164941409993030274619466469319644141624243109033980219713231003056907202849095659735523934586307303900286867389399285194620109729476031543955561185423379845463686238153799805129580975164308634007322431337726326055190739701581286423998592528671355444572762658555513560550813151410319730474875182744990361812118718747213535081654645321671916887371942847607645069542302029440126453777437745914321096337849314303016092311105714372538206229536511099354775420539342827491052375700631809347335564833120495567235117433418521870756997207057815475621207307538684824103561694365027215239916115018016358537488508998711918038252298664634243925037866753398899252998587221417240959185182983496112375296217929277741760275896845240481109782219692528876933021599111659501397936346017272319789389619573320751398557279166555178911540792754778392354394972241065739339148330427440120518326030317142349467735666479500846466824734209227478915829025171087947981956090558467541457618270464710001704233658994216092912183923606875081341040674726396259855014628955089136064794331913462189234874641382160201242544029661042958477118842824860390956307823126387673122407182139992643106053300786768979158283181871947796189254604023454639082105194823477153385468895346204697724193397658803595568884003931369613143785663588906315215755126947641700030298302104565445825996169142454639790142775774802985285702854971484696193126288970046701639065111491585114927405998932159246211324581596349095153222419996897249337202331677282856371763328062943226972787654186804462910842590566126742689776147325373104728397501994882443869997882227806478919909982633222012382295034427629159342364303940047191301934590935500913192908732424768825236439817233333290927354928671060628768885067204555366445838979559385267474676548694512147628101502119254370237344780318018399402115924933156452047843797694471817258769153803908240469303859469914670167292048611459831548140399424581953645424626329644195490291415454356475161541746418140978418767666788474627337519060679711547250143592270083283935285468420665250085714893972162137168235093434484992411606579727955183056626041683206702505154168727103734958921097980907894649041901539832751741255018046661072704037844014335466442869657705446830847966144587825403588363299121630199091060785449085695572280511538867223875334654055815326007936140771765213948007959471812255427756499712535606912178014440374047862925322430252157969458946489136303533516857326634495214143757255919582956650386750226608176381789560512203324493234128316829644015807155952921540700632486711258967137519740050920856552320234279760149215448144620509335794018796387735090255938441194863219783356749469357537768874996684622389839762235302478724595751669956368699617426691369722514158171190462612467520312326010541467917136116167360719322208449266441890554944265241635714976143911274328501944932162666503094437641288590986380092439827070609836557161997809318962135748277957561999559203681352560959738872868136576870179189844605564489482194971388204029976841777521075774022830233284046832255425484449711389313162323290696918321056120816849346829170029794515343094137612131878584365478013922262310407368606116641177478659502431120055747959112766638534991645556271101184408801006853227357025863176116812027778382953099910418326237332971539261096286070136636886609310527388794622611626632063073638223457013866858617192500702226883919825319072101705471851087798918796606840438781951394205732183303005907256407033610415408993985886432502956771476868768334277492764370577520184596423919168616799073212483140587906659861813262584470758939579134445858686413046500008611130375980266856323529862464470897563335369368781265111432490112227657753576910442298226125957815059252939672075493947606961845509907457487854629506537059691864329633489194021047510286666105032851361535532432462100183021860972135142149958616696122665501025815816284566611941039304957427707074859592782485603313269573661356524238194881060016569828461452340538626424150693196648382475680184287844616093311888316119944357352532516538862971335637261447618355673181266770855330477762847796195897930992643101471429405056064047287817061481087593089995096135745175617074386950414017207677742226808619863797063407547120471000495607297669791914484740323545806189623093227913223702821928288181520443113566152799075964506647727429537103893142613168359730635389612715835971031155229240614631740320674065361885379014057321549670446309197186441703580259630700810014853393507213401741587080552470068558796329489395954828173609075348821057440627923374410828146410289733916974999275865321072970499365313621466191426800815706337811357162676230704538381366525227578857018319669705501308937506704977618764295289325978413716017486206274339977555418235632562933384994416634944239009931876205597349651292400070174217064738051943568896755465772642903529532215294037205430004967848677749517915636502866572521192763184418325201285523518267574471717161138478742606331706573508855760301199891269222549463890800331777070303605806911290159046666106857453076396382359331278591475208331803119239975581082065548777643356767911497585967516961444526148139321894108099499920577237911189419964293289278384380188775218952252145242778395650119934305751195682910427040788439295124006327293476104341902827482901697840268616334220033313724007782519583590931727276062758810373817973114713947885945188601311088524497717716126430857267384627488116950379300325680437818735712504679191131577275304824338235228102744836867234169930703134273043466737684327379083141369623730786836754967456832064524075325040623515080704637476947284739854395318358902218915219755854153151659679166018252496873584210401538651280940526094323788239985263643179082509748904968115914752437779206991933510568237255845026904567130716220609232862549311856691348956181446141354632613186994514689075513786641978020437323043995729228498237198798125346296373316191322301463353372153630004712386109447582230695600763261755274315770927398061391327393787414317252292499531393899192243049208612725996454907702501674242639514723730418655261327699767172397650079562488772045123009960306107926899402047499733634542619851706437159379041618780846766441222841254459057707010618385417452884981575417004230266991242468457128062735282554076784134665379066945729044441110728803095449418248680525643588685746654985901837908795818432764667426289972693456693830449126689861698272878388825101854126561528805966231442617312905311355988401076421212758529645067868518926637219514963370127861278617159909192766641442486129312402697946542619150552117197587060356670335760756082681533149976545488602486780287756255129479034398030451956627664589892224174189667288670869914744574264527955244676052939994756922148936239024487518420229529198276220857786151742219295771278027500694219704032080056470993186390586995738282766320466442298550253476329027963372329040121165469996881835402072096788644549208748720696691448099095049689578088565674161169837021731721877775787632891690898779714757987923473797978511172594256611983042698354086817929620997995144118983879050978142510993067600873613370476969643805650779217855701551528505928150387781874125302937636048152512483658295566901492005044410008726798767599847955730256491470594474007098343823342435055102171835698010551488855631758070762223434334113192462872881896517693212964104921682877914854627632010258071790348961767763255681363861389045512180092646309491186044269889538504598002146564164462014464230923688900377061667690024527420477541013120056933017092981658890068892857698287351584685201006206270948169737636909779856655190738931329557458699360028602756070662877792025125085224044978936219804563376834409163429295444418497573755441110658143104149796060794036130181090565214706479183879309168314229723633860057214401156778637891354741595559849779330530273620467441478652025328716681235941030448585863954364375548008741521803801404728172805874226228902130651210445552856280848510755888096366640962052966518302638328950623963095742440810258466973956046400587000404064811468310039987145681280580985512094826020396625378254811349425559825323668858795647879638054184059841743183391981659619731139289098108753064392916259305137900211736041023799408063761115118958785599764566414401858364512061882707192405682868425806924360777308286923120413505866651166871457771655532662723925091072079868292447529549727029359913475714624475039744179980615570641105818802774582639564863619718279418356994790059594673918360153091808821984526390545464190930556038587439079027099103696813932913010277353053869122311622917506041897334039420459530765907432881533669814320107042325958366521565404564682729808820688355666654096677371720064085425445465684625692793320911612914823125699153944155019795165253803919311873115151816394939651074475876703824390670356348656779605058886322625863159745620340382252617156527484977044042792635074828013779663287020530674783658308626786110868018704520350232797341099121058075341327620217818226225316444200205543134807134333447022270790453120752570715245727185328428657188110360332044466542521397774075926548459291197512104763467291893202549063107730806818246920301252937954037805826461107518020174346484569165332823144330384444599905450449884785521649978895442046974973915552827379482614156649352424085266913191284997806981208733720586287398247819445489156104951553137686209942930009004900925768314750555576861282078526721357699572888041203058247821440473727661153840994260052338406615464853428056138349212638186212006881211946378186317010193306739785416354925774599137778338219238258301331551997397035605161908819078717091709224451963412453661085161324361670309437524680519449143895209047414812217386077949360613438478510465018716075810644669649800507644921881597304573467220321185972659592718141163081976497971727465031567977798374509482072978557044674400489483815176800449388581174815989381347351815328264609406044799208534358714184485418480839962774208529287829915036620923613916186171049031169014066658850898404037169779761909257658627994168277233813455671601802646877266244334438193815129792977223226145469895035785373157167357041193159811032700029940000960247208300706710587831625350561680934516952408859836837162346563445276994425568744908699383756772513456293111502446210293838981614889831044629904074214757821121400949906104615537931586297536653895027016120108460191140031700616072379467477846648895140073736761328666931004774104533675488784327560023580242363753925896187019452558628692757335998928146814934277597814885419432394996445123026385467906637713351012709763521518984951187552001745525497723242896785678341397080512019356502796953697574226263955865912039010663498788090725106999082592117584556888576327730932351315717826412740844126098703110091865134974628487902861937826539068211813455456827178137386291176890671009221909800748372421810486854383122733312116037917528634783392263566512348483134550687041960029429322140182226791506550619995852913800761975564683006602478649101460121567170469764875616376767582365913451893440299749686868775870383193752597291235413169587493940770963567956438273622335403544784136161013452117643440958113093716034536743190936812020082314887940890024118321283599721138847874158973074316708392543865497466809039328468409658093681321864635149659801204758618499083216853037218061782912434052398179975251331597870299949408616276086722400825453466581309905000374466958808908762229539148690124375142093891644517377439766445292800863266657282208155926126587048807352241270347667705548617951900550332270876036644917111035164738374544457815682593483434120757757340598626095373749328392827925794473584803395081366090604890818847192679135845495475479936464109664890065952632732968022999002218888509443482683547068050661967443439031035105441142473342058937616849132163150295655023094545380827322307525694140954514955273749988592400315821291461169255325715080480293655240373293132849111511891993049735343101058691182774711600131189713135131886048733540364850707048834398930156511749629880849205465127717536471094109216312385721722715798432961093150813087522506585432124416735566281984027366820197596379634262607088025772312649073198817525912112849780483730957206961899249191837645894646929926396417369520837174592270031697660083702355791070544699233892952664091445933180543932253482070069323315111883464577189833980808551137813749576235110561705318468768256132750819009502532669129485367437779198400237548724017643362333876956104887678147538005948000734974329950504475697234310666187719036670065641263736524331349939127327374192493963504508658186061225321049306518280643932148964247453512020059478808453777995051898060670865268836440439843548081245133547486326253905158641857852785280286393280368999698995007319679577108965454935451680958490097184112378553460860046453674386939641548593344586849221857016198813742895817600816629199799623455768746172614945746352346021467000552910651553027230958589630489833437100784541572311293185161582930932818345243092013518330710575168987064342618113122414187270370225218490761300440893278790439794466792728117336110428687213233967175093957783367392159758924842481309309925424547834679305373311030563410819294223620977236786759403516005439398052123938249026915802503427862916374349986169357547729676341639179480423794863436155535861126968159471541821357834011856583877837206373611616972680741348136623525236292254591852535445033234066402930772080187107319974671487509996391941718675142056212965383141018991194152381164394234265036096890963842768497453241119079548180040203263239683475749418127930303416108516559874131031446172618086964172187288567948772528371575589549229628249607139698547835955974589692392786075956177613718944948077855712800599744778498985162369623631906394152561863968680105099412335964184818234912031378723661195445964335354800523631640115245863014135465371200575096355042832055137076284960537135111467979714496546925001455472905429561318213496750146044477660275700384934533114998039780705911947897951150226395930543053263733908076629664173972223505890586420760409272994205027358910403937019717833083412931575466560149258139209593186957911776817571244890760702289616027068127417637690389667930301162781588892189982882132139365223965468855173443214860145184968506042939761446791727269163706045439717075782998558548951925453392518574163655250705468151146664729084309225744209595302671316253681472322271583073831976741143878551300844677229721314259186592073922282395668523059386634343507514540613455690131680503461309184185153342426631801909354976834903067704841885101669512925724290273705735436711818307489506196674291624368183541401405443202395592116499343212330366350365300985816000267784910564203699940598320063190038253321066151224758705393818134250304605291589743533112508311079982715855658823462025501127100447253169562369204193572193603136998115976139710402052482185875143082471170833419625734499693764695104587382573095525294167233698076311169623982113997138881922429931557025216985065149201104242089372796343862815929684973871023694864689130715531546101260122129888022953125989786556673569985160281984049303359165101946391887902300291153911680838450379773390054215444456341574496529190364985823933050472460926959495279188643788845009787860247018962875042589356598805412636966489050415660786605385901336781682062182151849562965866224049871239112732579593281895054147220296178497585064512527331146677465521135949826091194554923757859508602003588774083857085171641104552375920603491878517110843295329936730018328002032099814560884323180546650382818566576178503960518185084396440782366458557645338567400744808599070315871860481457815484162409043647686934941221013457282048803562204826107197484197882781833285751433260830868303038704339859482913949698055272310795996688174482956795619815063162046769563930504175995427070198764216408127173115302832771870448541980945649948558699583172613662347607585354963702089289705366868343365780460008640013494642578475832745984438812761062177791396687325325603172781339771799194951643678626837330649832204065237548198831080137107157345197676638992536704172199994563676219942932679811958833920225598975198638446622652345050067873655790727634317737312389236231933805316586873833722365047731851328041866645685832087984047136463278952876604548395548987731014597371287693766846800594466142752488910378069173520576746277748829559760014194843434529924114712662882080937029425884024958064405496120032012207464151424753854167498673627098924609610404725644650340856891207445587579494433739541154106493272267072167815895622604747972177259450724934122182676604242737397079685713638227430010362105233442064678596850537588353912126922719733418173271350261054418495853930603437638480219637604645235127644062495616556494541053896101686639217615355529550420870198740366125002045093714385229502812994782986738558158889586526198068340744708837305956455513232584295937979545891684661354113890531938838146041148719666662642201527141848108493148489701666163159402054238537409116405139680010764949731758593802608566663351075384157341715425513609056640551275699791787736765626515426881959911570263657173406114950926688352944148580922008000223063992088165269705906907320210229654165577172534504858664607122160034344748760212737952158204365233013116292204695529850485321835501051922460092288947857643494888110177351710412443501999039052761208811046724918884939338000080668830413603347963740786214222225732101889704979517568775523665994912206960043730456673773347013586543827218737713372597805563833138861774704599954054009661612001055385028971343412246613440126097994934766414284376440857457234695366440306932750241484254726132430898735147097307902806291579463317202267926932958726024765242934539152146611937535459734120712177506579620814159406736166150676586447145699322119161737060968219460740791629367660919668219298741105499904939134422557315836026483356406326549389334107030185602224008565221308639701084827671313729271855799484873510446387429612348400015956997116921622134581061341592251947671978856929210329348591865410707741747682721026989761003967088656473040050802620434247887881631004093786274513590838395693506274992729341929044907207069600863760521222517605654029098728276696578580897756869737504528899513276326386045436973587950011961124935343018809788122321078604466838986294643371492667952203506202607601353220515347366121130474022687587920557573217393758124492664400579001676704627880952731534317011182494448016817512996900824399253827849318544591147968206351708594765655826600263765336977246490599561061056225095783505815772926049487776747248616043312618445161763525338765363585531612296303004185561903116114754473818423719874762160710836135212303515809759293041458548834855776886331317759474798292268981469010473571071569986882043650119317587691581829258283049361862746030778798816569745003029801619322689776008037408205938475491322544188510315830281501892328020418072617336100646116281751600969598647248589371639783520222984318926880342723941911106526019529955847039973961500221878654332031678832987063355750648663854563389333900349692388341661266628900241756766304575802742725981217981959281818436999111040313896501470930773883646104378998697814641606858680466991450094004800536758258867817905597221070090104349166719530049407222371204064634415041592037974584734983262054661047623125943735898271953668147674514650091464145451732793665817771864293951530406357504441117266000054118605300939284534894612098686682920542197560301533761636761262205431988047056224610542562942181082975713554677363508622131172278415595905731904079526218467498717911108741183991417800920729335232701992164059127675227210371126244616177862873455803467140296940069924580095416349738343425840142425995583507044996415482899376198249487979551546441717697650336433732725217654813403328238601702262115877633261627469187150583040305736810582601158068470681845334693593470271017560924024682976075135282372456972700518047287577675620562113395330054836647412223701750986056781582435106991038140631848908840560508180539825011729465129665084391974714299761686919124076803451545032615132466435672879925932772041629070133417658471871196770249960140091272825811706823757024440622847929675377247011907266628636721502309686382915962927535430667294278490495973424171923297002301202978110044922701484513604376633793798666746682143359965842353593741188200728219355341241030376444290198994648407616271039631054356056219255678883732143700013891148308941091078287159683986125540573161179760318354428650184854634834368726436292428709996843520144180902727305291541541429500015974980121401065630636954496371972147766479690652105129760285996007299506160344789272868930482991972291013176546414882218621225753527987532029499766799967117178158938399901795053207694419237659764474537199317439782336987213206889016272761823579196198655571618607484374846144296445201350355361677443658528221593749559339949984095463123724095977844304172920417582343539032796934601228312722121782329163309409040882205271956273634967619429076176636142200830128573654081289158719895510860230412563503375261096464008576971650041750015747472017292457418926369752706266978025212823357634760084284195877008395014003287293273897278824770938451031520497648588248068277970738839655034363339553779414401635385349638301686489843084226202414539628961492327828648729343416630653323496214066886480370879026878934503014364678949057913069407291253726182701555421062503187433657008636369412956423056208691501595125841431560102366586131523822881125561558796603965948827111548527656873514877512768181451797713379975442063306977424389684375438590372143105940034888641164920062885432068435811203178729035927515419685973649020399573847522862649234641008069688050045495205827037891078844898001306189246050121160404545478944370045391867803375701331902539643447666047705040554405800523859676361558653532684982605517812571509168412851310522408915857433177905133037524514573009768614758818939128407914882141183633342280075278123627827487873196084840813662824447356396409761607574378129253190434556996218955472070083783647774617851867967798294186876002156574039822908023005335722608293998985871460156771883078481123404316842610242593268851424294859732706350352567486893776606739287252827129317665691427195962951154236593510689974011653795230885499734456710867846085567088074603263303224353561161624329169750972940174257973167994881787130710051460898727703501893798371421294195301308219883196753770015302718428231946057498992471416961100370552289026024800060970731230561713747169727544998758927113246237853204204403188560862515429690869129576625744197718906922074086242751178978827986070459957276450574391689046459393323643396982767298167260555906343240004678261389299952650152306038077394357624761147272401639714522791097639417444380785610479989645392689074749515332392031844981969975590446538352236647582750044219869680802127601994618571163772404724690855951864794471688554085886192533401281649531891606168782304429887080021371460239926664632254137581760508331146900768386957503280953462204882155719971836678312382425654652974649195555026620953544375858013099938046921334207772738906425091546419053329205047957864814558551967602939676874273919209710336690580152975164492957733351052902601428053972896885086002959398775834810569571687009581830111884058645261847372280236698266043328315795870989923372881925890971453312206272902412263956095065688096864367077324363772622032956204706418798482604152169842174053991212747077262571961353713765740466664146066676607446920500099846671647242919193531889659783617082312303464063499108451503924393337320784054089248384748476778151094706154986618648227661655258755559360903697787945672060341419359743373130176313137940978353502554518010642510528376155023167348237409943062623728745690172770138859584149010011844238674961397778485948317435447746214952969260812976871029984202592051934436110524241064815734313474760442419346000022153756827759654698688605637712326677629662855526440409726653894239571427670247017692624085842459637820458756339612031773880728457848573589139662650091782836951444946112156695263114189547374695504796725725960637068328626003603022494623502050279332016192411342855115902144916575097764714618346592860594260527325394083897306928570315765526817161885411791810137717966186666019473704508877051829278789115722338954141074093256950513459755429727193375879961933717411941978755957139201837336964880412913667099220776017921413655481609524215465813624148906733903161396786092413411806329662873790667073597692401222278295353796777860401071230254202940849573889693015477735602291933739983003009565981402546796739692559284322146819457490670910722266821269450462955107704049965005866491518286202383956422903592230430582892547741340215895158310289860975365781974850869350185920678633982584716123351219581831834809743468999540436441953035749405589397769034553987016106813968906499066677393355230373161607249515821516451224629551096895479250444386046641247847977898302417902999086133310426642137316143449560629328736836325107124010429777815049814934519319278815764607717319274937985034719164780554815349414496438568983169168598307595486521714221261895991022466447738511351878390523390125934307429833839677470919223435680345778946342182345281404447184017618601710206737227118443123715109994278606797550115327401329251768704331911048214738301561245075872896175515568963187933942993094633217553188385990051174794025106382880338222883569651561990722073859164385993829590215004815220713843298880419021823043750971948365392286662364285026674402877373184198162430166247998949665245617310211842907795133968392559637841450926778517667079023018464522123739171724830658819361391855977108849420280725398490863013887043256766506052515470083572918378197272419197702499060483380882793288356588966729234074608970088132959880462667217709223797304619246949335194233095546751349295138078348634516427298995825384112951798939909679233799229427140407305473162131002907202019404442448361471603506067880471172675024516186501413370323357381239165832864224034200605542046322064980522377196457804028477232039374861585164284429409292350284634538490339651564142021816468080800631988220908955079049240642198947026338033924205497464887015868882369725866407376190614756110145360573757366894442368720481500743247917302293592160125908264671014308681966292869326786292606426319015143983910517412390959027480597544244845987022568320066787118907399512073205637371279235725652166261483624055322090392593217666348024263652071283090425460095086839843635416933044465814100004640506191797710805016509067179932376015676761311878449097951839864108355008499042466951782268849649986778207734359679560270127613889819333653119137228516099357610493477532529187093754659558900643885329563102728332551793051908925226296602570444612161833971730453911246863615464883952605340010069753721185557199735907660784095872797887229555891862366231953545022539136006132611265163415675339156110693684252974204120348440842607484842818986291499921013994431163023421378890152461682389369806585399662687696920055116165449274053582311974678216394815761672348715760858279523481891925381840793068767987620627860707498982689763141888438435922020935516559914303450053608280981885624344898053773823269344989711589652278188776092951991615100850170519697991859568238139501324464044804204013498041015113667151145115950931025651004608844236464598318564557205575837153675978567520239654075246838509543962419408685582344694115423335948314132196727250856362041700735176169559349629883815826585582157635149102616305556154250643027627726709274926266975509338548394159813791002065468290568699398908133249241842300969328810130958311827556306153854241196730007699543415301450194456010250124175761667442036164519504661903011627712241481004797539940315003793196994474300885181157314690648777244816311948145008973878430240289800458244821304102192806878494677397761998454552322869458992060320680948626179268513519641402176045672804300619445547415788630066591320179758072418566102962743256799922429132678175773605297619553710981375355044054868122456436253804945888030400373985363157019848972593451967167321067132714645123267110101527494176383801527250442340467387707694915105726321371276581940816269469675442139502308916799962890062793909419376757566262157284394270203904160313617482455023916817955616380087611600861461422968225681072084867881261046862359632787891526068163510757010236224704036246083451998180798732884309786201768516620856590705127096271501475134371890028983956366672044139980233782397001217426447111866912485718288069159640656667108030996592946170243455580117035409060782514086683725351642860218642330022185851596382314230229230581529202250433569924298033310452765146310040685393043765845359822359236110114255406419536214714859616993716421493091379428993256017710252713642825614298857939338662153561329214527173068831887694911245810424466371995198415772201756700076831536341507657090812424333441778520932843258849984159875858759649765696140177867602669088128846127863838799795951582553498158352680320791958597414893563347712844392755708199306054279130791186396747051859614249915676036255900400970904887462492210137122804136315798102993658490488814413385702156559441416281399377877302074070065275124299381954211862955321960853015299753519103595590228075113105339292975082532657790938710343792536888996964916876831082480320699069068647868249336058414965577818293860753886041630646142149572359097775847368273194448041178301640375562689961691361455665692936164226892730844724376609240975883561654000711570363580873111812605598163801136377955918683509426720349102199709251397523027846993662431737135679115198367773199641508603256616772208340665479227118157441289067539961147039906708654771695737453091690304598738707623937422919233652982672361185408219912232153240226708567924470042308808332761902066211716832851997305132886055193518567822353441045610989563272993520367101871179853038944536996220032819982715117139521966963922944176278709813217955832797521340410332088114686959093095106527738602117956813737236576208664895843719290830548086746358074491265830141860532278329524014869465484569219629348885944274889994367210558773324276188592791060667832602050972004725919500983252829436491797911863683740114545749359659388703533606242905544907648974799097605986612154786450992967037578902775409137080448407098305701511965615966958077570941798647273106683623696100270790391030545158840415994734610917465751483072957414423291244654377386249335307982991127863514204908441995810952235968125293519045715995232894079098293084842369490343682480082417771613159634076076624019965479011879346689240168979095791480162014718424016342269318067578974515836574382020958268426495139819050753297008372423808433888278577491905675742594278286156001348318651949947072486578411781611322442741147073756905188316404424443622508631755829424752648848683085052719789922872558037285101987464992970778536838708227389574631469010247197286143119575327779054676090333742690375664311997158090710190691510150592790506656318255714033192562563740875622415558395823263496639789046158908744317378981220421858558422032134677244849277767100973728408323251872268640739063085204355271627732276046425917385184707270608387113364505077281769041190994359730847745478898845383776901351989315777047389684377755317041690468713816990304424337377523237686801024844830324850627753782817975879540500148648928120192610996326708086869295681729480897732522409258263251165957873251519242105956266845730872171983668469414327775287931288697330856327672711506057209448708949842619353146127949187975010839238802545928148120964329115460960773383025363507215644099499675986828235022393658015835006155587580743537151169831645734558764422410527706361765749620610366175565090654178537671792433774302630873802649417763346938905846526804200994485497080441080869132825650666498703519933633866165396537377319762117990015166338794284603532505714138872898545716605226850207420486374854381122965457010020903311353330820258779459682405745443247022771081832125009489986634436776458659526162364998872427700209983513097397111862745962482760337938272617493076788103975421002819451173774755735419145635253497215642686955290323557380116512071441491703381916260240289443668023577597626451693545317544700539215590026491627917558756137480705029084148683221780405793833273517580357628390411916640915055143587822919852219268341865988729537084124658970205832044137503746202366955845823517790908812669986840294988098407805372988287605152234591313540496709161762867162008570089957672397111732622856395379492591753295314133952453715383899571350799399637653175605043177937036822415059744490493894291110113963613117839337396913066009578752337613514381678415332573316415148975644413695662492494514039604967345352465546979701400007081961828100733407202113944691594430101427502708683419141428027529141052718269603842162384227502389565597752789701968746798238247391023002573367336441434520470796531561197923414296959756701339686376581929493616133133181295386864249274637328779743976654826655711588817978987036881001295597149974305887843180741539878004543680190921262285213670196401946628807525576382734814982122775365604604980589419245548408360587511497402729249523061914311156089096061653376377452731501561972510931672333202087694370627956730149738625611498695875818178380565128731242226054807062701150799688562499317131901161915772862390779337908909081790249125299382464370904328526620410581463377977768511220140115596758740649798127499368886940521374921466411002673584136701005836326600003903399661496511392050536031425530831487990159089514332857822939102469000324512807209466170615999714570780950166452616677154852843694198918838100430985918732869114392609851971589028454897336312397351834399108123793659372928392732725609518624401931818415034984769692292200532470194111331870962510040502955550035909121923788651343343860652572828673440702485604834594721611306498935819596691479480489066734236450178149754687355392151002763519330903788653994573430864995352674597162323678702384539703781668070656913067809089401358118233651661437709156815403016014944191766957194147320512703552433481544047948332704060042637848599017071184593640845829537091585777518428916784965374012618366881992998791571797330867208543934919246420323452050959250232430556197617672846731158931967410754320386261416425065402885897198501583888723315907338022211495867298718219448587581175474642794630179999271702225049322287176922899671778229131728917789918685592497158128960681633752907396548789507077905725131024729746163270998240814902424984955681960136639451143806948321895728438178910521967049177858836872848222078326897913331651953219476860249376507618540601984673276235883357105669300827630109865712774352313931330966958890858834078120211825367406250852770879195546505836022711209401706548755273775338890406203129399677535520707416439631826389933725757523615822625189618033095165865419250237983191127173216642382379163573564830884788538588402728698957357285692953239764324311615529506900532801583503729677386872435037510432223242533503445927500811284455739528205355460438850923426097605040979127362138518251411631395018087574115746604011519648028473054881097096232265591966880804563963247547447075624772267921861676202519002698927114143041499412399220885395975774066187129038078448225912064690180402994730942357773766980802293745424851865335809402397458217167685624655507170845416131090442064397391271701179446023552598170109103601528760918390462419036108594985403601322819459301670663607977689056547988266886709625434266665979811270941844559833689816892325749353936346275548950456188919010735077948958476369778821891406644836339611913566031854620676567953652684199946737104436136980614579949622653261777078438937939536594996963427317495152107691130538708483822157643277974873297464624043980740740804047743358553318338050642100618027153240487398972478516676580698516591811768791521580399158464257675184890427783126514721779651422470603431942713890526671812396506109904554954713002806222288075391473630168242675514289853541914903880722624445006973575026346179757763636741453909341420390929105902480022969271730680346575380017687901550962216879166660563928386920415917695273953275542721078828714355303354776671153708116140408087084164181810140644662206891143773157268247977761206138433843848617570987076992834069958372511402783043432336675694385171234111724782100231428487190411634375211288306795326946185815057814157422490712435495870412475761560273156731047809744294361380295543815379149027374299353584890876122587697539252187919208413588628827090678244332692250928903743035357598443182004910212931648825385029093991851839057753854661295306755983277599857300459306428560230773962277013335638296680951851754940077442932860989320692218734671920719169329434991312743060301105363152505041605039914549103381788716833334017429945953037765678049477511898227253877876006622409314210368271613472101183667380812258419680679561801909587171897216770027874246754143193507378132116318031723127544755401037951445378270443421904339083772801645462592189145735527296769550014092375111517282710658755005401069095867101271153568691701896524755950274414824369696118590235894776644735412248825060332130478408403134346734846733640904933398757854678369733366379663566006539163527559890364229797350501496349657171679275865602228860953842704808412617206120631044668611366125868638223038424680275320372623090264379107856499469848062912457086295454328561900114422726550348057136862980794002131289720686457328538572527411658041710914582659337736082592964269920364867317865454781247560487711740536817584688708847787576040535897896631953959229624624324524627300257514013369009072280844441275334993870699645378477748129522204798624915319214225675699160151656279089327983867326501301194320540905974267734304174967116505494351396675599001405774663082300377245820736069194389173068397467370035612752330640859681694127115510739365637977234956298538026053881897481921173422107890890633772360885851798199395438062232152608105274159418977451310633886003408036699546184695474879555945609833970675078255789971620469991120857284703631710991468923090283197643143754930626813035395046384113144811242367025296986129343687917390166891016524893441669805033056987861086365537191717915663598976460192735277201066343364121620729062852250131897647239922883263136610793936559002545826350460545988628466386591292593792877004741121097342236269967405165308083952096377370627748081741354862074014205088209576574916792453855285370601379914779005882230350585774639682480021294338282599844550074104289104956670792538990814006216660495894490861449927538912146741623295318213564962736731303870432694794208120188343919952865913541030649000526526328146525485181593530655031209283523828669539633406119710547636352336472493546085518382680707410089926787962889819356073436400095738859063759677126567050419510275669275013370074078077859701301807096930802162004061419732983414323619117231866712519858866156833393002195092501349733209652293830145640735821224347362695011396844033213449468516369923521534247946789321915321062634771146943521605493641954960581644373785711225182303878807259459581391186101264117755072312307322574075665859176418790962117908821639087641624715577605951874625844417289032375491531640740920518716932291438630032797513918979862866955937098425305829924203557024013471336717493622015872621861351133193198449152783833039010546452909119514718470696028911399466123693327691317586774346882488553791732874709508961376157666298241423713335983668040015082313976122409025952971677185495843114066946716962676365500149201840083474073756541236091653224312642204853158869396257059425287912917925481772233497258499533979528122053365911845732951448548017167124790111838634483442884959937703595387636743837077638197661354672363690590471817241398824103073702082870645881343648612977111431464876308563386119272433036792865373619069061747967636715524138404766821721035806601743294373890366197037457276239703512077720557393703262101657507242376364571917122295682066259001723405506089123947341460620210561268482229589765545736577284584297051998623699746441365026497059493260645617530643269079065128295752966430611364485753469500200784398589192533991270342432128021180827799569865260756817063421899464914884005635272464215702791722313215020581786933513662355953343366691497398528572049156698461197871523599657542774182075944275407777044760831062431939192226140551415964416661469347138995688451363036753851899810688499959970291765546175649960633413204994253374269828492453318936720111819735114823408599241016320334035643672209837485434585790491496583065251588785025277661158650725207936784502858640754111228485099370140927118760189766809751057652388906290587081085904850550415715485454500349507131341893150661742234838920809552166095321030133017357733722543370657580945745134396234414481388313334647001195429171657896316554139425121137028541520367521086443867477146264813579377659022510228639288584331083152893717116938130249374036202895767241564097228376626371919295100454059942446133715690096084405992558996834219236846100587855166113551319273574966033568797554764456875287817626516910672196396797883353581681882886707461310662232239595309880958382424881921609854957338207037443620011101107211601849394984183177777610514090851984566066915123548163493043385246715692814050636088643196415808748917613972730157447791274526556745870072474229185981715034301261506996098000879299155068545549132324846638094826279672388851267427290591863120714255740104341166710320685467942520936453184303716454339673249666431059633264684839550580616037813311893868818927458431652278560669585234980331237037748816033397693315891512846025268033782602399076951148975322002889968639321047068481276819529621596048847175315774601806386019628077182797380229711854757177854281177737877129564229538277503151874580539460123069257653183047150651925167206083848952212597822832469556102147116442837334612858349372232301202848242049537894193216549009347121867547464742151433344330824415265949564444002668484243860940947944524948944160497979261944307070527232355015355315123541439400821158450594096228120037269657546632667219332983826814913859721271684732832577702098712934252372613262258504527138136472646520313864193753509940154858029352999920349129464019710354321963523388106884888789955218497532676045463406191875169250099494288608626679990153857142504181505988844979755153815624542326621382840840417713068141122167258574507588156984934400611425994309775590802249349931237596879703644978615435260899668370391055254842646186773320750150339842562085957173897275644186481461111152835966263372557930640171143786725513561375112992244465867077225432376030249348553355416200668135579735984064787160708058776237359576532168864755347306842703803215058292611507361284579749630927008284423049166897253915780869311766515700251546886209152823193688590615537890566620944046464312234165157911230309491740522740808764098248862094660800975648975404295889760210758114330470489973879704069948522995050720259123761336269221180108714517317535578213676492020534222635964326912600619416651180808486658715307597318985816161306921453311169286151079532035224069048551139560696553654730483461955642076520803720991098461126100633327307381327997011153424553973194488396814873584240344361930122687230659261102521348216979702442522307432209722325111352472638983068681949116960038222862793250391509377760042496392092913125436872284020864928284959107626411358590315547922984115136507164021359946001801571274163406964724484182704949687776675629120004463083531918134214493792540954392039048676276708782855333554163561472700921087473043530012273823406206889597466988767903982554325378893031991910049910832508254564354752841482730280996689153764189687057275886076141611151877125375006611144523215706713640504877061837082968707133903998666439810895781493567997278888272870210354641957339792396794006300462417255223880933526261255387281945360429526654090805734564438787825199903871806766398926965863718813495806328055860362476001169235130341616350428625034659270477299126930813989717142299561230276831786833206141803765186902918512047212249369381135334200037974959863415852201421198022397955599220034236524358301797879031557159404589309923145167244713070065809144779078820585812341402841998706614837879876559421709808326545115437792874854076773768074773767553956374720693059663061170325692451096804084541743977028113032747516663094208091067630972132539632754889052556247268102045320056300539267435318110908255769565351754336175630001246727440686095763476161141151888468370572832843609782912687486579925921835334910165515190470201264528244216938529965808784908442461648703132305380538622631030937642043520203062591817467692794090875046129245672039835709875620271811104435988488336139660528876933880986134194213194746405485865553444536500153007244344718830008893380796533435333734358201062941091148644497160896440034755542070403577391514939119481878466457586672314967819165908777387434019335435657703562013897255790348506533427115312133794344942064537750381044665421932376938041730284093270491342527271091208812112118383507598388862629485686444126555323153086736115139926612509254204108501352197917482613336641932021078987940729458584433264352141134013061780779058018367563743533682239545633311462355139770759374772602620467909809329842318400831895331035439290893838877713408595135342794007571339814380657718418426057337932919889140315246498829301656210597637609251968305617903805242114838485246306730381232436168685628119753913185946139380741871430802075572299081848649503377993976532368936809866150088043511841911201290289184506483779942832318738208781063285575139388786287752114474603849541727567225489252788101488406244737608284441506765350004201755855476261166947823071207785684493717570307582009230178495951535188191462170411635161118081639437095647467819575790598023382620567670890768975552828264407824961747026329381445647677245388785196459409731638675902275664503977122554394385885782521518102638798735064989940174843070041595274353735411458174607059915131308270453230177776412640856733281082605914407127592452861789905372210462887103831421811015925559379367830625814709436521866949388327228962988929967330681737529135150050428895315742807438780371937712782856767804952484004902111503134064763988181465192046479191946448749605118850772281736069242921147123047145245317472748576146231551207809546756726741193905597091718921817571784404894554323796574266628281980212202680332014158449043824849045751398376147140897966587203340663848071900496072948908192765561820600651332862925076530094876980469294757713635847096622614054349127699425422884823079444521627348463120447916269025029474618746121847911609169944752379341139013715265947388302826519707376707614022938008265745849413583858044150370142841500238347223464191947882650049095307530955690777820966649069444366172997939706072437999398297062379999603061376543860934019988806774643581362854929522487718311830375084725153094821773466028374013620857006803867361863795922232280826518670800047185181479066468079195311563303997115658787983219024356725163408409214540433623650178471047639835641313575386416021388781710822201599786372145133173580443699896528800754136791617043593109890157495011907163731377891341413395455795331091543281553259043536015682736524001127670119898607184696122294299486886785799030921727871152089671608035429747684691443666551339482332351509020057236452206684053670752071257058783116660076135742996738927398788072443968942391528355120644210731036589212527225064538998862605564286171513827535239639557830405756428570089890098596744219032351279647996893748848384493036862168916903599157027990365695545184435448095400165603947990546458999589377612111337620606759677703347860631998816853579799214806931508643462094164970715564915010885114870836777636987145684853059127194270152431919421853517982162216457130793775570356692312646637536892359317487296851693229560938468415144105570314528957440097218773650312654880581356989864376826233127008492843643667540753706206582446151728721690243687689634680305310120389284163382469831868238436836982783592791674233949746512346850975861401593324542600577938988810939993415988678510426443415642934793367914022668443259629005286765204101416888528395461930378287692505543472052094940367205681570788169201877361960426482211257452510183856308978419071968347122661510504159634189520083799174032019613214648208748620258870707224489230775531689541829695272198859536912960888644495957383461662616304957506228929876514930647641516098479849124112433562531737736955773886251968109983410305355510977744400192716157163263371784308518058970118051974542880893991742679708228275797910819058490625475899743620444156887043540650131096258028745015124380783836646789911086433889104180881588778523989961700132747219125713883220581712014042102937166488299737528060232606306360533039799795505633875222775264768080386462775536667443697157327092259816183985263190056627899413571845415006922469663256410557819118958322389811258005256888744929414318726871138515737556383669029122822151158185660981701865073097814885913426288660321634762154354101117223812949148542768090884157012079883961332962086744558919196832168122030962103325796807367824730926034227272159141619194312360990421220936072647841325561935856921463364028525048357746115971238614386391329981521214158446550440586311916384827310235878027027798959558904022253465832510067968635649643154730118660617273701060183755516052126713839971787181788493442878940830829169029552474752177831730592238393732280253431844803689560098984346039939697906476419486841750632156906493149679108541743455266164271821910877279738549177683124134465038465549168657549537303923246380027569868876749109295605237319798959398937883663191566577013119788414873424537347590069922813815532898731018865409704370964169244221714856738528791471357977153560522281938579080658194529007204144256509846687183206122763939275164611600027572746801510902242371069879986184910020771864747882073389426493741486195652687735247563535092594182830465957384342104404101963148825924893925828426288634174467376060622914973771368828563833230543536131110503935669682373767457055652955354913314189291268232946234046364935438697912250516086739708159443098002531962186275018968269307682477872777753985906541412231099507493153981135921640109694762729107146636582245247356771648971858475100119427080639883881692484880066830855031030529760266773373840485635275292559914133802001335761495610281851673632506684902578855408295323213902501170416670326339309777596517062726543282785967817679440588693212585411699068582461930658835845448909930301097440799266751378451254596391597317358938959853849435026462969291003394656925892105002495957319482811318041395344092906803296902889099734435285015252736549678457925016222080796200485253047359552239078128227949841807623464857198822861131966310201268099704021146138307456492961659678032855553932120619774911365184601590963624780882575393198903790512282177785470113582064465442278184355508698947441165014635192018735793975979926820133818332757409953533920529828498675170054178549853903802265012249699029642094232563761658685546266942067142672745893020824191117133007092357449336804316236240946801422074663315899280770431829740816051689249116595565192370595518635952413184696217043125617882608206401071496405035188023988027229087113724518287472541902564376025205409043648709525742725446548995352730616860507556605700552929473345842371814128501678400811195880744239743591764262863433660799135887635770413528301419498191496818835036966687810402752644117083718306693241964621559935767099896582642070642928096448983398772315592995029364966640532836714796925923943920418880101324763710559748021286153398420369275881314843979920030327083286583696357976837052317490532283855996310497119528714099015977168301320591250384588963497818509048905478701145081702662603128960842758496596998084945179918099118444227716286559987474964080488843272548843181672178898551836298678892698831335699027199383281909816012165480299936166759731608391180394657688113231898432032927281866840277998334834233714055364584738288451856097676526298335778104315376426631020711303961783956590126026044276559483420698222183573978209780722298590200227890579744386997205385185423000929328898468522565710524015479677276912939423384673694815832854031150235703762966419099775672825932087996530090451522423002497719682357856328559105577822500943498325552373446994128668768595673425945470422531205852971699946159248998891777742123597173097683542794999902564160982212815298847873563813235533251281469115479441929647357807255224788100417000411879370348802149511983816493512646634734519492955927324643481832507050666955155016475635088180655666460208021886743935468470291281948932925715731762134529927873031583802967098826997220969268466978064390315251194307371073497935824312496730312687784248358779884792250310950539662039843250120560266012152623759438796904374258562887590805110796570178330989772872023807483922749564554072786098457928915355368282689961764645614156234275125369894490489187534763136760028460801585918773027370245310662482262828563566025518224211414500476484965267174895091056424115844706574321525777558212917057131884661372913531878973431460691369787517106836096373450660736172935797871588063813411950491182333928321604185494450450888677924210348493939942793290352113450541161120681040186527346201857110334211910218044126304969583393849743190436621724435385624555615594849687821911652865850031896597519031783270019622082666213640070666398699267807947035856576486010408912229317440062964985770496819208604174988574089614620256871480756075538916499410046384016323338653367970824629784034309982090257941657633339753982014349528571735026630229532671664013104711781974949856166355458041366090145261532705425087114258231001394665859164026058264204574820334150960151249730379048028943308315878135352979597089356317797488195849899536763336421097153131394547499840641395597065820569439504888152012799320265728313471887333241918717325596560570566928804592462419206111396640296797149521207365884393050449952120899387176173904354930584909712153708205795602908022766670624008613889155600179234989488350380955024325514315047597612226498563894782200146932219207619283212986162660977764606530362065055422238278384318981555372631522101707118492341336295961209600543913168603541383989231691151363189392013042450298295197245735212061571479411623423999143856567978634414877580663082742931654799274520478803336418945898614173027433356928434135533038461797025162069854625390943009795802745738935184629241753782207000972985490715916955408309337546457565781679266967887691448119103097341264680092105712403159708897010858844583670935057930108191108098891461082172288739197140537249149934183443129554861163995772473723581776294147272952236386077571503182607637560469153566015890187594107770586220716314715427433826890888228539857754743481179328793433474362932538437987764645473059741540337825036775058380007365453533487794025028236959403040949229238767629804474573502498021365956712380307487932272137929191193899683360772180314321886534643017599117221910888844640409391762013102877108996885828423618303997974917056426742144353250243327491121095444196841437667230297285261944492183646434952372747136350165488979096474667116090178574944682995192493455205343560858403352385839586874480522773149856439460573761457536431956565363306037451324731359086682104018173208280890123949881218680928768169586592915416891244554349645575286889867126514559920452033292606077409819935131250222859318693250508171502320245665444366208858869947408831566356331857723542970872421725699735989498004326050243417846027607064454018165872482323829229713880572582578746889359569191948792847390110483467978288975273567184874549890865915420785509422866361424305057104054497676381260740077870067948823971451628972812666945418855882923970240667351464047048944311530943214530321167812322872229686505970654075565344191678187418924663674521767021912390803550744012339731495157358372822240377131524766713035462384558524109838430606710241917400133544833745878700435042721327952301254209443383043221708226911327372955049664415260451335973352036931631370142034258494784712960698221612301306952659595258782370379321721819845434148410944826882988122999871065342127827319888938669501829230507641591068377005835583031004460945854509690461584757815769445404772282692425865359628560849996849355526142605514186175817537680935259614448853518239890896935186314837634390130190643106688285706101840090359421724811253960202882397218883135508660030602469661713881936203039213596581949427347485270337546698106783351831940163520618843744678607215434575682163485458903243895613948170531811677195383619373820518626580891355623400868655941884596738411509104017238712294072762765973188215921779779934747307803300551269545473396149114398526966146102281977049683427624665501416400438499353273774820136558862506135842072095944057071370874674921223324118548060568687356975357130129894730478055442350845665473263194777562623246892215933068568886946992776081427520557348824458632745356481797245477495076859221006424849794852499279787724677614321301927986278452406049598481078682402664009599385866881040648712575068014199848933920389173003247212126182491525464539856519649371344430302079132109201870460270969158067887167352034607560792468667734668105899807289915148400608277264827446461709041208744393642900183767629577300705135244595278412911497210024358983828537693075003078426598566049689353626521873489295374246026532670532247831938862347159837866281846878506111570384630525736215889924955743273670328620572631350569252994350078490361161139844468108957911477451383294234452525785182827210410740760929788885457761816672630583945938795989650686472989350074606187638213164674076819694977672592613349874835465251232822700299210682187541835574592333149769047482532486834805818028960210784573895082894230980431190324357121896501832954247417380641136157559779390732839380884309038324112784299810359759573366515885393661842519762477006622443841511656357502525574489893013822323308689931585772193208049227510354654801163280461503725910892740004736676147342823449588606248843638068382684101295475281926238416380702158378617848231743034007530528392366835697296887403630063312752480608932005938569088195961307815341106662808412376705359577647514531408158959611608472472138890401049046496439512119842756913195388934852485313139744110725142690759024879631261794385230286359857964896013439740541587395091997430842898457326110132256907549029792791526246460146197623745597959850572260907216312537393109993604757019687792248452863407603818641850926068615353173689721498046096397135202306275018971961895199314158651504403118923382402804874268678289778900630956425929161863083148861411345079128755178581172661503678515784375653583519112108025256607188827792156762128131150986214716714771898049198786688094752794441124588700042784193161500368963448330773209142334922621890421609475912994576116922370963030169355182504856949162295952714930831382147984278745398453934752353499966448230961677676300598865355093164676623147051142204310804922745864924590270661983314231865900320632830328403288645048116159218692879571658485322458621299780699881104091996801524678002266434396976984707788835932024393607140220260369917091761650602014020420479571199935540757838783686481391865944503836369374957031933442200399573809574319434079684426327344519088857281380404270082275875060694178036994944954007546923121755884999971646210539021511091179409729652364496587962151750827526103590655279605334340878243789780467123632614504615196014717525159794554705966635919461795392886184971866659572429789130129168109441388375037773191057439609225802114667398876884438948869881091666038072001255011450399842649338947699302543034214295310556553028284043962246678740525610024831619340582731973024609438246476921773091985825526890978025917263825017916708957021087765919371443541237871299498092387782564556051282537778920572581297522431249226152882140949507585032783035212628658492973556340982090416495964126582418774258262420049788164769531521265312021654812922546925403105291124729843895036999532079000837046333672745221278152578638133435167503204190467423047779526693727329650577300277093763113978102930288181865682899922573470844074089924241083273536150107520007297750471116011239721996581468210734484211165367567301152132445685988476922135792723909764769013753954202549113558785186846397551643494727753576701998146096558082894006015159692865753144586472816285471090226563004132199489280608838720650284847577039234779022869409333196064161374924982182105655599428980752115839948300201725724534210158308540365995697112448550620121402452043719408320973855860254826823007748989873910934510773011670834201714007269522129009642003508172174121037666472828821362760751146238069708657320392411027380894866455384872464835880555124297480273838232170743748279200556072494018368735081749172561139913901264761001848389095696745803449323162967550410115628698649428721982027222000535774279845008789574875816485324804755220260804301325473731016473317602744812638704663159773281411294278161958775117086889134683656644947018231057755673259582788748414845768835182017775470028416214786699843222716130819506482512564045680850729654366340580921879225560777354516398883232785022952918816486944040527803941336744395690827936222463716226690202461879491942743402503024274064495003541825474424609944297869757848565270604813120871866072900975502732339173422513648197965544063388175404897744490630057014613892446356957009777973345705594238127356551750124528065487647085281731030571218843622381287518411297110925509792040456820493187348343310787411935028698846813027087243084958963812683608144964676379301880966166959731443137785446519179423479204738688575386841847459556788535249128623545408188351587878319522918876536432393812519362773878907703007979524300383306861839415126733500629168087195355640220476228879397329006786208006734539137876099125882042600787446124454540288371255989652473300847433790428000721594374516324133550316718620436867685104667348839114843903866029460297965206610973903028005301459983098878007017798471320516532678923671962172934719218543447446611893404233403876316212622905151045867266244478404358692517985667954604009192030614761387239713552875880824156378272296724803683676566083368693832308217811914204325076780602158334183176133917709637560770283885009164932640522600780905029675340873297669472108670140522145946701379767243704232788415946565465133758085727224171021426217793065694388288403666615764619108457145927932019735972777762135383035195293036661239127097316885925924193099822543424628855590004907003033605871439438519846961404407705799674392984829614373977689519376089877771824490494229911414054774620937165809913727837488878703901552228511344352969658325429651263515879960271328505671710958633443146849375078424817423884316317588068803625643219237721713653308438628015041450016581451523169461381292475105736988682018124949651146716382571390460936633894421795873254707705795840006436542391216020773869415645227646854851667228703610574157023096542536868259986057573872806102085558015374756038320611999368441559461328058407184411409701650128800328525604682546621121977519009663200260705943398453849089870503003714891223209315553817200244739883931016761923614630063938621255410470085789455544175065025015386835194854319483993948700960244029590987922499315154594468462218037188315271938460056461904366048241047793376949018468532727558242583503657527027940547233213566751960020224873800772382436858600539094305367125229159325795047482189350219071224087743803806530038477310034883104343151379695137375861688397847197753597615156019186688556028006058592923345900669623128264727248109017248542949457987645123744300243189614841760856172336557401368756558190299953274716068767700732306290361944643695262937719769948970210913374554727648398683811234461950983176215266705200363433155319807108918356189288210588427836328085100399357837229706167616769890255215799960282789435695665616622942755015971598941274072646851466678976328922879847902830406324696159945265284095002464681624501997094924718095930493022211861150726149277494712022408497412875266326953044233654935660204642357553687958344439779131070985828093054136304805841737654260437437628955789308376787881944413178628392137767512862519197350188472597183179731601855671518954104652376818097460578011975515004305441826668329118200636951363882306692691961561692685107607317758369727291154458555087787773770651738863453985213331398286786549563606628555534804842960375952246308969062526537006251444246585102919041567101852581658050146473943192520678582949623438216904463019937693868060760070740242445810958170484203427307626609106617684803072459503936321613066467011974280530105067258118012204328287442899262073062640778835393013245671043005446660984296860505608818332143929867491691852827016006710096026307035458794546509693307959542822230165719518924527722493914176804365340744923569487957478989085902517043656938528674117242401385013756159828852460263189819372059026275210892385783508165180158443590258749575493084362227027164032102941161851874759379907147224549451751568240361757913356895094987936603910386446162433479264374161067062613760211042253083614873648557717000131829503932157428231868397032441390092222313441022989592287832291176656890372909164210635129249418119420702429870559126331138049491027050304878978404177530290241348242448769087239002136827046808065356726268664637631020410196960663911376769149965334969989440717674045904006546434072386821856364077286993117552800582650712832473012507467058509288334080763280513472183525083140672407541066347872324782343183651310196840367195157668518721018344203627407353670783896106844220428410502650914930514817669423201118140632019357270576143290261806134703074541253104137821341835121088468624829988726280683919729351121529396243463136701782960125848145067140060762786602419082825954199982856977113486224932567760148044657563696423132070028477930726966139074301789141585238980339021192238546883238159768242878793363221901286550079714361034736152762438137957927365003492872157219702512061124007093602153062295840311832635355631214939113075584168216649864002109017072573226350872057792590557067933944980794367401247177695436807378410249423148345480969452056644946696896065586293142130457851059390887113548966427411423189752936462530758874454343951689940232205063944539389927225967406430224649447398880575090740055083597556522403795518298845836650804412971446832412042109371576682353477343395225776859801821966438076205158370790008736166594475408427325820422182575787120532559504852583145994194166478941570016073508179397616322856349775060126834146981587535757004417583617128428411410306358285623287340428383376430092519325677470112488046422769862102844867638399804617383313617953911024105769884338834364013372788497261802361480300856113661128676427755116779805184543561144237821347050261119202897525688269776447039085979955337466619732723471267304268436880376809504356077486540867803578741162357314140516362788367714031721233886570896253126427549767365285756689843122244589038812199601190426574188934695122084601854581771678578022885366177853252773239938758508973882117098647131835826731775317210094523451679013556568426277681601829371885306499481481343949598060054102287130860178768866384063259466181924678708749227866961003871142193093771846121908392034538338084383408337647710186313653088021288964990023048505444249961844759490709246577102481942026053541544192407145757279423266951089116079779756625671119368209469159998231942664461971544852213244924475241655001893590660707646880604601738934404262772319371011497401670648385792102096586280338477869764824119290725846926531795590326084720326076051969362281630924810178059064602643848785741766013765976329800792797307456345083373679091941980461013893363004517355008102590226088440538152061140405043201079713729529932030030878079941887280324136868068562533219474716095551802635473931577070141142166034416442168969535558472183976714862281840511591117040867933128113422784841103310597867329374213374382639620651652839401063887751545208989782668646119031341377109179411353850740989533007996913171643404664122694876771511479162061466221374063901964840030692331074550732632736433659085008438936649171713084958712035630406992693542973618406667432875466780890353496329801432999443042558214538997669723564861698941169544562477405831394067228134257517668594345093766531576298846193176648312345193211704656052704080618796107094738418296932454256348021856798284367829430344071589819396913253790661653011035081102019558127964179992959444890756835910736184901934791063276150242526136539613243969570475175480599301412688883882404005508717914805140914831548694010052412384995407132671446896729197221929269633917582577600971357710769796249430378122408266310406473457559118229286517951970391189152324203600921015230601881694029944714844712185188594940661754627322537683499326197365436364018155039292824003077420278501239643320213353249371587167414309961175803068679416371943165704805306959543001765438121225654588762686711073995983440232481236174805662995136264480002495783116979805528393067004364209339383702258200213096189171118981571276061358255182676829983974630015917639251092367378268424929678304280421447629586537062810483773414767382979043911793085978803242452745896162893034570367972871485797637166417948623735458584072779213398491532167648689156605735262275587036164542341573414193637063313194789024584729474006170950960901170360774269190538422783331785996468857174973665153758567496210070185991767212559377233650369170365682773410512114646422699016498719473546311665037756551097354116473202034651253406717992170156496340497602815078511940991967193455899186126918538800825186224271214847690213583465070828000290574003283719956536231500062238420286992581034026624352233472443842309807357603161876779571056596969517705801214517524863973550451535235928738191755070327916145249885632848667561621101460921409816821279090416226139917637607692986316059912839668845848030184060388698879089675136643560302632351344517374502589685826573402898911550499496983924684767780449637487341821479159504584917481111102511384619027177969914954162174818292361416806513229479944825244819207867079142723109329126004356369327055752246547263980134335736583124305858885058041919329123462619092110346258828483238303614440739711563950558453003976883903527503930177155378281282626332828430925854372293358224412204263814853960135241330037031681036886599162067561279234090966021608877123015358068618589204039469723702605514431582355569344736909524447549972030740351910300838518568214765672643163830866279356631703429786179523678927577427784239432686506623167358284152681098094871902122167973562965377132314263011049246631720363974687926362193933264004927610454811344715350213938157345658584939641999312819022252247784172833067154730836304707964739393229675452172628310121545012010568338063340406954591612379139788857911011820849870439056121598711273734194423086771625266741118540539100956206964631208451699613350314931255799989575678066904075867804768569550380499105301781676693418017054953144415604091255163270329178857279906426720245073726897335583566280582836925699492872487822959780679419177559027781705657119999328934058108325332430240259431599657541305294611718864351918854690526965535334618983165846828021798895616895250986528042213835437497794790631484902744554588290482443619364017520625240897808358949077227128222169298619168575226464953696970350670227952290446167857836623968672577353390816814994428511383723720242944709573270603363205490009994569784145300135471702877418167620794824176787411819324209690239000445083059240797523519545755149234767288108517576857989420724404497319805478479849963775974671790441282461436354253412600315736151438397792761056425147559798578442449845795042911574867254448601590208407244788818363168684134162718159181403360196566569357814948577825170399522604202653392299155364757342268546946434227839957710773803307642075102041581218910989027950848464528874487016659691091930749172990855718975453545110827954595401346850350088761875703612174611558012821404242334532400424920492520110460842473847689978354671807970625561764357264596700462739441255777873321019240950429463628594709506393766663187434563401664664365561717528552474780197610335509859141448958763042794783128248013624036898965374261391753350961158053554801786996313663160605643082033311676616545936365493701153888908387542364390427147787652625232001176895501299644288913634138286561026715847137590060131241376286541667503963339598029361261420761964982576446249252342718152732438728637386927604883394801323944500542761049875474794246367876553637898568444882305261468090176334470423487200538586414156558392359085424161297586628622858494320920241911184215827435297993642920741582618507752653282584661186505085088687452919560244058124941827891358183499880650840034218752806649620017689533233142643959769671034221773481010204843966723429211981486771165461116059132776954244548154808361530950277748331300821085419956050066200336961710216503356361370686618247038251244312642745452451244484645984933402742277171804850747906396362356960565565267636786726331883288523406920202835985520431322443225866894447944853086215095489039403057729159403368703052999053336255804224647517309354453876767281964384292039562193130887849163193887057179218949430860566986489256695889726443935090824046364008984482313912415915991120001890359085852265328624430412433863488954591000221059905589634851089409250979089528281913119905854695708131221038757389688743097405189635365281952103435922496979581919418107989253724303304464407847525913547027922666535479863306807062906441314890306079709200743710124883150329633226706297600191357334958418517950009753182599893165039249476541449193640728773722712621256595550177848373644576013916979965602054356300699950586705369660294055543200218739111070866028822574795345093391083137415935282217430840564469749196169814881472439644465404526011683042299359796326714068754343109965559467992714746149268455568591342972935387515043207815841800800983182233515618904174745524912118843379494523876349073923341607265125401600823282067870690598276173185990036551698021225564809215533166992195369123019465664374609545102560173053340306795652371026159869896940180603936800720647309908537861517000828941983080035758988149386734106876202425016857682528802891482584192047423267101269287966397692491109350978550401790710191157466259358412908944026406959787787105841753425227574262899107510469800103402492213973253923598351049333579127959988168928789313940247868250979097021039859551130787266787850950130383461046990853398219258925419566495556766783707143335183571141857161455963477691092028180136588779990110290094374379528486938294025908559674987150470802133702681507983285960459506731351740619623967417118576613460717280584863259043092009958672661730994538834437446159208104947377662301857617101626009828723340258128312520908409419735818621032459169752192382699869469625563499451349772696871033255043237931422926587857028011953333312543719091643339161228381856042035650565423069029551920076041324407686525547028526807816441273340806414851494374807358910086833040807459995561164641116496249427032117299273941483182812712159111481044559958382097318482435018859866890555589683854651401061379670599249328854257199700852374445573590610004092027727159525263138087206034854637793520804061474153344626136584716772888351339022543994636632199449426689283743148734715088823503108241233930529292389933300406665256937920406380288288308592072545885506265331109019264289176479181797395508758165888751578003745733079759263524588389420095104334541341128261742085435309458683876543849556667610638313014035115086099989376083101245266267212285333983412653917033897206715370275494700240668397302584437131756862175634428697099252469108033291424557917903720948879163254502765933906202970793538412074647003807752711987157885957992899094332681241166950550267792036674818200961749078460999998200447739851125272894090392539749652494301387146875561179000584592999952554018221869735127149960015359245085575090748976314771343450915508692498686044343907701130679686934553671577210178917388307246116204736385607370675366910821205640393419549822463286152290416045784838230112852311693028585333558681652861036562502383288763399060838366747175339553655775773305108136012540357357936439750765252484973892305867377144540034528108734632094940337055781860990464059393265971806508862911826272738850685853695449382869365779554791281088338512946663235373818577887498337772560855596193675642527732521815572567503545070453897384158881072654554742644169816151606067418819012667737285841168526954406166273660947422649616843328020059556736906143265575673199098733720786022681737019314351640924283115550435620622024910022424673702752682162350694273470952221731839531867998661545285425735463919110103567034649908122982429770232658453348627033682560817340262913041670296873473624467031517884202240261278200580030133797927427364468837049419944909540191809022393022208052947480418941683332584489280374450643739582008209473982303327083819539932143979729021612420013983745897442396615238388316265126839352417551463353679540058473553465484900866774827021222029709945839623163854984532307049947809683015904361973224272191544712651814158550646204051399182886051144223170845813826138869304217425983339473080071401640104086192975747330431267005620244312020458462707906703852209997585775053953336534154128666649163769385899041061931609365941730410591682077364888715028445393330036022134522172596094913863737323806420384423846578269242727529819762953627191749143803679653824485982021715930799985116869026649205454642069299115786059949095354679783269412616638807885519935327603196557225514612848497931843486402342548513677524756252400691434802841964708876044194341240832224615084783778344385404248150248695976334405153688850267147480658517874842522812590378321066958057991444937257870538368157545957893973157302692613511981623004251936120267174667028921070032043094421616516465044735116539074524821997814680171325030998784010273023277946083049897650315659289653763378268104740047767117340215390388447624852058270948817465148102487215241294408580207457054700257447257382139519791440787850997924841313782084384938729486467245808562303145973872477133941305364161798628698577738350326108967997711713841336847744454437546107357270910232393380026563176356545758858061539094704925277415258359756612750469177317071669943728585278005215657539642136396216398960157734584333433395901135419727615131965467554783418807736917555085215787481027585902185596777495499264449691538918091330620445037366195873586913774486629965593745666365703655369209215764150310156453543176182431711567800279110801083542144798932954699078060325821860879929452178152324449768665930103822920471845281610119578405086048525585747129517063634803587960680126245976207622111487452099078097135671153280193963664997981660347059323184988033794785336825350870205328546071946056853368071843058709735948408312105197607153183895133047360752749759291300450183200007556591224813069190720385458145815701830157049533000408338172634323302270563537339004525358190351755506129392631946692844947638812678037240966217764570770699976273612582961804653989704635937122856089715081363598784059552351955564705820505009963658804788532142746389358299483036079711656207296414170763809151625718922966719974764451119251355994890895441613598635306999225748391491664446941004573268679204128533819958968989525111711799257448228141770577553503989653942463202987972347975761802009154174590812106661452183281316582819876119216775644194100512101336159017701123835394422830672112967345251528418787204694609255949308977144542803216579546566378110298757730118532440401294876711660747267537411642470790163520802097400921977709361181811399249689359065402899665086394146678756821871025730780842877039764498546091532766131536608410688595944716988767825604743677489240873140705013659034471870191781117119494754341001223638347967372401708390284619290870858254534720493634123038179761849298535700455732146687351109064969725033318920789273001313106929220389367200471817688642576663043887491835602447287086901356346682562106697042157522326569985941058796746900342872794754894682245030886454239237121127282419786129217318325614688950315171191830080404630985404000627405277722436665250279396199145738492825585847641989413881694626852202183020152974811316324185824246614873986826195521806820136861133179656369120379688595723211299140104779383956463489623143126697611911415371506040695049578564214960832286772506035685571220410073648078912468561979407666801962228937549957838231094717794799282709864519920320172424154347609435074224400979601187956104997172176142815407151666016565374000371611294681297330032334921921964796895375413547123762900726486156382211074325473570633899543538652783518508960444302077438198539967893446547246017914122888967948682917148524494475078503034974958338102834406216473953581921011857698072782880020507585750975984791370579872634540363587713226660862087340445001891500429947452348400179442481521231558027678828244106811461880078483781551968838623165499015100334693028904410326194541228232725043273697647135280360112269912553516379911960483689127049872405473378143975549161291676118316846388769567535867717923561235818365256381131012000770666755581494608842845588963032167045676184596984479993602166131773209251463966904487649981740213998914106664717834972981172113272766655219735782529867639024072519575222876490377995450636320861624853631332314504005946088619248548527959812449398803744209010846451017782764375348269087835929409498207956761590047456468219002352664418814679701027576095393328856239367424105966754216252859147747560808629974811548426935252695090469825963667361934551300983046445404929705947391791200294038526769052682054495093090139113255593005490235603135735787689543489481475503684169243865330190409470203586524734660202856183923723222791436973821788333103790732667888827874224487729698371382294277105061709880432326224674406101658093266573743419203031297473301613522623616293802497559150203316684674117141682321364230183414572475933249260062516519935078754471129674293571772149521096186141263245495685772361361802983992078415881814186743749772667588785188635717609212352157168507257224804257640762731330744238679789116187795230489157910470383278941915332909205416955216281274221002750253309945171730279514291979706877737395069453904890748647209267344451920250219973334485525266801465508133837136738337950551884236656622975220240561613368753802415178248959911228758038297979316418908831629446634849182499196786893433031936387254868020025652368884406414750207828165066275681799619416012542332097128352060692802079312688580271585523968894553339928709357241472756048073763245092125829318536309840926674269200539016781704766175266018570843235333411411783777227570614280819607921375690025882025538271820952048220213313723166820489128773338312337163724848842039122510804949788801273449244101913108286442207738870218326984537406909376840595763557270667206741914859660288942744697131024589637879862883785059669702481847260150818903393006419672313499598884913497969026104706945992272991280189184459036906579608883584189756466325952644483033643619658481722139074510378151101348272159722523502432135651092305766451651837841426166893926949238699921732255574060669258663087078049825132860317946854798913855682731571914421422755308351678588323980507155399531355038794035060554600444391443423261468857104471085931165250073962735808779545772359479705677565683194806781597345965245440187911614066523625990392422557825097795343550375118881598698288128514050482777785843484772563718559356433349378526361571344039729832074956782593061562892287623682777529731365677981510805598020168466760935203435503626356223354344173888471295580785574806244465316632654540472149644534515442020632059405631738475387100202418730244102481550407916720082318635473211752376236492672074785529839988126935879645942173847062781959936735380082675622812432617451580709557195180397396847280441713657038147349707027363635672028873180722457059752919612797629623192693702374316543971290081951399617142098099402088512896957742117701826559107811083733494699669224801602131449146654462505700660579341345431171972673096642823359951593212923599457321850460347701436578627578223624264774908756745285788019422350970327479681806139826190556151431849017336210816726474735272005134009137291729631673927227100601306092968214112309262099493514903274956112025252030907342193386659345325805956100566144676893865210530617508524640565271770086763138956888099522096129248656080072705464427179021689893908604108587217799918424343055547445051675288363848958460541798917199452979519303030741744678044574184575015145795968635270671562540489423867836482585215477602209437045194386946064622012323205240689114424252879473309726562014034267099230760577247537162402896847058221291942410827729634000382488198757680263994356143554240888186075081742100020226353568161926078732965659461786763236858071685197841295200805962401980880642777516276862349705532649636822600780047084604236452918818280900141024121065941887678513390221067658798102400307582877200126444990567959432075959696451700408636147651652473894935917873068587078977804452438037147982415148809128884722847141452025178328181621991086566645330187720852644639912083220501839260762415528173475030550993889094096587936892894518017490779582665292571767735528516615528953366827586072141202444423188618017245493262753013121500757700445096503991995880457415772827218836874753737994759292679204376290014207176120575074034455677509277475243271604322473331409032995481891167536852081160385292077921496000372273831169210575761087368758235997486803617435307990510451375388241327325179197522571571001004394162254178979077457259530136772007192741801601453096440422810148730645576585940679783636690604591997489616660025288677665429838780923334314474352448876530555115508492600590708357726290173677292677930158296326819840605068557103600497156188365157006670424162222798753346101777739625762112742500485506337785270955101911151139229423947000422001897784355513482862100048560900558828334513324939622827091850909224153124898965718919324872270297065362769059602212569939748131233945814302595371022822894668381520702246838006283519522712124056523260630944381319239260266557065967592755671212853035811931031192029607481237399771424325555739691421368361264273254931000235979304205688292933518116772986554538458639958942363150747415488716220901566339820297371767075782444024527020073565475276292471971665966554622601594643740058369344224506567527685911477202798627337980694737991821230293498634051999738450278926014539386337650801369382455503675290617128821421456611031891205084069266161082573424378441253163920134218606851930362639309176117119048040759074206814830343073067679790790781024434821303904611967084370051741886695757894433127435477118222617046073771750244107270343283344827127663931926698220529980888363385877546485105179733576080053794145324221419384541851368018632453835930680101553861058075992812047788502387384413771097156137295821037404165666286118433658295001423168392156883147207553899260559750054108476108727969101052669622444638636421524300344768816858012347527599369519477390802186280267891481615182164882260501087228209399151659155290319869513031423672039447330867298694947167642754241505801278208670302559901892841188436812238222386057234405551512281235123665654557645884395301008142281574624651259962819842685491320750556638296216927621486545062000052392454730876416417806474964816806504607399762006888008726047230175139532831957533678935857112221854174415390135324584752503209575403235215502665107655585103455648883231915035452041317994369098496824838366986727310889255570689785885981913211058552802386572988122467501158677074381207281649655627182636487649213729095334161084918153737398663081920539809757788808134812486789948121446257382773450112773366698590654717932362756939059324649107604817047209387042819728350055025889717945330916401006723837296905405731589005319880997611258579021989729779340955270105094350687159827826554809657198740987820444708703265618745596703739811563995233925153954242096835722449026504264162090607331953066285545141942957913549506975989827522874896864273351685836043984401568438716800385737528191124296413626324342281672339274366705203868214401264903880237944617007926093271912882345984802531805161604901684045244993100852623093050230848959196883401413017391763976046179942519988199739771231928554531854120647753213784500513136850543768471597489585711951835783182940195842581770236991748667260305816072371016358666752422055670753634727046050221436094254743237528620289973121620416607764960773443245248258624799803867992805142483999088267353731432041683030386144924069840157354510827520807126032480824596195851898726682239225994141237523243241916191230498445327969647011842588037600943686914691919278274611528609643652865048994978073408635865861017993757819971685932286015744267992341891453382731931634504206061902403695308455591009339054997774863852959402132905660639382044247491613045968799563110604127843626380018726342236209934067407607952801976351822577831096029263633087135629749994223175340592913770957890178320669015358316663330572369809463236272899906697249902652916830074968988105356707542158329802032853239527225528582853190286145529965700736345714395609323993184240157408224497961910560459724914279546084084770031657247680331262052288055642999080691600698875430335258536213388056050362679955124322899247256387352433178775777250430119243103587253821740554458119104472781572184511621600510831502895888566373036600005997430411635991834662809473521346042060084117620234338321263796231594990141984166787414971977612265914504846320171776873312609857248951088914270371344052435745447146262305494153344543281379038928260201110021188441899636094951515572769254715574673862479269034996518720319168354221176254680201000921434315176533183870169982757190366107153783283187922568974815861270846972596690855402594581321312347477927754148414055713723529586444480592840349778609089581320865490332731507529022100501739293238697250664242628923891467552992024448845589347726634624441231340638384630206569411915474430442564445109661956742369758967600829872530432302170129618171980735682722400400909838336010083462547220312159659241815134115257770007360927923355594314611922005099411866712494998134639859956667419253530968250233525137398437159297869173248904960652492349787168816721494453459163948638831718824828078916274345491594020143481511475554418426948128119281648150386905506942358800707427680689086655633828475214211321355133467248343870087374260711745561287384257777822220487479515862835376428003888061666952691383638419938901192206498675380121332824678783667936732360441124108707108577357312153843470806129780928763500162712381909736137049385891797553229461622697042018528813267964674314319542177136961668920644711536780447066172229435745046151658027707541768973369116051099331971881918971519269744110163380712779345370486671767782435531658861223263549804893735991947143518954981328733369690125023228167751655570074514863247148605590194133202336099759373698617924628273199621324387646516301526617452985599685679521210870006984604325710170094384743881670653442650178165498884058532932061912319079376464895428141948915086731892482810131010940545364549657916743041757758642126954523581779249343175466788247708170022066372467646325131754235489014436891716671565505831362904658664475831467926039847941166607606528485975997622264483997091582738078997856929530275162402904852972323048873253595630495738305881777283050001700869967718051197364262262739724217747241793845900202644560657330980929096758787935599136813349295629737355166890892923131633986827875739584466843883774526930683014434023115117097683123737751877353820695533764228091536743423699658870865606432058508639256256759533199062861727265076785495238281014773151058227838648395168733357215345875162322633957741178984061721975821936045480461321331304964694471806664668622356011544862755812954384199548472286872369772581333142178465573791854146303958389587856121652015270607921134963916681046037178012132554887703804831693295164629537022098551022386299896376078372479548035167559558589644042259492400432397458673281393721175729679161910919721843513673989197203966035168844628969403818635692589658923299658785148941809426110899547110365625505670369656598298601241237054671503934853197130086131962089162035332749219121143690393239391737027234607160530764808621795431499818197193440553058962475424468385506562510575130253046717993316882274121993315346939858059602359905471792034513103109989668447889597202216963501137890991171814367667956489298278861034503798568780804525013930513615731792849773999136213147221740201127688232221481648843598021732956221349772015846347370491109677658091377517360240130943252905405024898090977027670620374369408248301754868958016403267720186787243231508268610587913130782296137302040685707886267144933492188533946032628086465605041670289941162553318366580603406782208801888506332300755714357224386448579482100730494838346335542748351385565954978371187553752614240624185777136373502707477840358807654643999310930412027227523223616053275117315812404191187665677143352151604277045519420033223605081820872020773725511823717826133465722490230994713062863441401393939236145524895784624547787166262508456697921478863514427208732101767611539144510965531067894032102445220846513777149735292587682869040361743478466850612346738361564415639287177795841988359548855055896071780424660596929188257524306814743623360534112751556695349618531765671418902607272422439800502699857136690230025495560112813000950955905751831397164478786412852932211358238252929831828361190551225623790021784193555015222657789259832326764974587306651853649323810962335469384588717638381593839414477802086628900518964946231985389796789342700126762603607364811974680953967049601118798560363784382356220402915428234627019834807645164417269863692371103444043144214845443005188895287330545151454546198457906420609088919663421363682230625996105138728964057089285758841250882233093040949792017869132524201814595009707035493507203915427130728858277173279472591441483040629041171947068374612356893737228979173115582867477691310422617252357831177864230070133767195672354626635463450504144962049809961839864190093485392692611766746681654921159278557458832269348470343143750082393505477828729359539645901891429586862299764158986794426070359806361964067737958785118007575951645296437844037451424237006374265378479270900240138665792978999370069201613316846351347122382062278685120139926196403743068320547855182921634159089137368154709944640372123757404914480740994915901402924260998973030522947530599278940256370321983373973257628099248432295554380701007868662264095361501186118404477077331415723183721851893541177050018966755833843487514940737494732944099702559139055756492727767237457791942373085692338167586912514077074504254937339454702193777696895549457430123000992783643545034401241590279657341206325863001053042917908748477815907246581269580016906886105734800398153940421920603692080014858737495179588563173532164885628144996125379486193788005255691402489963412694169459968848143447978721810767728131965592805717228483862324372356319625721095840646838114507500872742573903844811547246688298523689056044222099099722952410614520570822036020189091245733284747761597755837778263948629512113252614639978492057507748336993356035032820967278839664224135422801007972242192990891438937054030539236451699827121094333550929237088514792463640527741938475642321720945628291402934708843299725365683183183783087944205305069484282415324116820612011548501826385698199415809095587704776036105058665753429415280911000188131776729928339297686256345554414074838310026375461987787195014926134771178411854845458728558266648002964837329171515156668075789044402184631083753972382203529688571890605807353704536568212161269615709829498195446772843938283398052556086888010155370105331026689343916169170489794815082315863973908723870707945141024152482959337460170734570262620336473089287991770352710282800097469336679772612365176981465333791218281294948286015866308202383666624554910064751767131178029624755566186558963016672838440440951329575743938086186707456417023303467864400752243031852508281515639903218607329318983105035716799146028469058519901528186218675570228817177527943295624870302800199177096071736522133354783435719344167850536595204839578051293752819348737051585800114719077201923240814882523001804189163893118874887642416193327598369321453491766744941090244379109907007768720540371694332134890687030817380865014825492313192554338626737399811519592649788992128446242442619702597714482246335284336874029085981174166317257500659584168453820968616380045006843927488198484094550857652695901689440983630983648904234312321630799417186083900919703663027040358636120623976944884884346849198101994905488870380063197125502380028867170776578685583979699996247673665081368017450206265833907099535268213020023022476373277250774142392226326683695607672584373541712568981794787065479791530578996209548470042642994656572506179597379877106272702625907548109435754739575034890416463200843439050691814109412739329080869573273173188603768819862191247024519051379256264084338571275458859114933187415248714410303912816544230925499145390645620347078997045382180275044822950074200789285869007394202004621113961686771425931598606580869427711662659957621959966681104775752219264549680473863628669307380634960569469104351486535210717854444137435115765345662999159723000799822975240337344217973775202590859865037482914489840767756143549046796775095046079203041216097563668353138894953137783963381217040497289999141141453137525439815747145628819950601405295366389282593136756601475729395654393584057628188696862358597770811547357429483312642972879303908075258272890979736968341000968486283129188700490432599407296728369690845818329864268283277338369963200971474914191405031018308962781857135517654162966398266451335279848291312784378397900960893651047805251013704181794628119444612380133622517414383304158344349815189845596649712837496661781907741476548477502496143270773610454797852645889456755056675175517001353600664679924254319843391051915716686684469881944975639324376512123479820837753183110681317452466849112323579908596723150369983482095868544191153350911262132156474168801262356062193202350997216353070365375924619482789204068745511427925466703372855709090989464436176483163648725264834185253263962748630838756179661913009233416281848751428029227908325781712116989954043129915661398564777423089477288932918064209474338305300791613212388771911469184706309853090063858312143462463480440553506704329413345551575659513100765694230509379106256679462899375608694481537020177093344557123819328469043213471652901211132890080588518012057877692250003210534957528301695881127301287038901555896278466028473490859926303401360408234611575323206729340810180831250826860126444472256563609383485674322821854579521683434976856534281295836785642147955416875245021125331566688439209726285897771560727457783998262948683245868142372139769501436024512615004873390941852032476288507694995885317437961591663132550267992323252077307505052921822946313183684856583063558002791349404233772527531427666369298716855586243215010576304718063098356894288314055925935125069599035151474547808618638370788682516202124432772350696374828299403598450244539535198717382770521291630857863528857493911863676806055841548451217511062832390528262000799109031331820682107760997918978070850924798395446069289022643287582518599894533288178819780531181771705650234702694676308077655202166143976231563216887877446663531671115412890600593864828121066502317060427734252452978079293933569615171952699287623881651257820181221763972296723973615323695410628252365104976135804024507465686157681263769446865463184008958812553137190260441178569869116682990180878939792091121168214182814865359711774546745759617212584288361189949239340437345341306681589097695209455242309067494739664485969921260797035186740898423660756625030259672870391925570205515544058126448357085059261788709597053537377972599005507186379362808337414269033819806594571294227960535004715839393045356851248494885752070757038081203613699590099791131092902775702433576247319824358296542916350203782855861970434112617653979609921502619483498798978738422315229713104729620263337902762374831906896391227324157800967296339813591826501206896838092008756010018811425271700656934961141633467616159864255698560513275293538505574339467881102115884163147819435652343186850165764274802730345838074782874602618268668978683642622753490656306376309765141174600328043832400769410854586728266971757962672666021344821037736814560809693551192877507845231270430416771038088059310667147952324211059915724606412334791705935136744028841342114418380786786043270208396363420519985512439707255077563206589661042639158801409379280760538833290538825671245932890817965459949860874937741082161812944955492076148697175052184983542341269486020468788551992263576088310137206070787844996826804200891977508914556091846011342712763405000425192050198449635306025503559393640405707116653657386355179995407484128568533951318506044828127828344730853785910362760318564041323021549611822854642734663142538674581996305227973875448353544139760584558215498287144246972359541788760098268148267764691545276164091329178557857897972660329460125799904007658967125347168511904036989443411030886682242397604943002531647376253281519510382541614767273591192250472874300465928587159952434983980844729686498793374613410735601098375772984748903964805232881178303260137422461854518664586930461560722797012325720853061036125553426150856547665025491690458955216965650736853652611006079745069096485081941952434914111962558526324672013671900946759561673164749106192632655585833627656219807299176722438067870158818103111701984413845392434882475922110137596431369260985935472232714240124069468470980406544008726096058986714620765505767517874950606616643308662930687422384099128245685951278560968095568923361071102842766087510541675789697828022290490631385410010772170791502521300881285658470739937981460437290768828873309574482351443820822723704882285723957891287125377114223151777911101467876858874205530189026224189098983403442765858897832708629543955950420054521970828324961571148101653562072348619637484027861807770926820309894791270157641860459810617341555724810946221584734606714903910694246837333540391392489295201149862012552324172108304132398861887604950615268961313294526748045130009545138518752684946899423224408660664876737622367711834702503851681690505281843253974553518559743015059634754838209307855986023681939779240877860630876575771439332228371985644308393325540458521806360251257942321854812476178960000817064111289417153728478846491163647256741130923272871341018126094290983704789945670671992992075796066154881548493376391538470655635050104025042010145375058636050893107205867027635528577921680459416083153953235272176801383560566503275016512094737647718339721660343870930501074733663647936381099443780811901185480372079341970901481656896183193096737484100482273167604943561239661016839483851095434281844016158044395584616494134425298984305135966226365551464170444757519853995056257020621364231605185219710291508545758934390429043059998296710004316503871874741173881429041919802573679004237386351950736669059631112307865335921709288511329458613914378355622021015281480011840574773460831105433897368462395587311907969177038604375056476453234637300860467933120356048320510130965925231876067922672954753887403087752098740327834200951613914806980030696565644788414775567284672549840735901869116469128241832785982881128597424136181232576396775823481904480726316074755059850239728121419100607910002805877775713761058378593279382328752903691612830674106276356571722733374968398909225311878599620004682012931838106590975720366008862469872797962368886698550579214440283890076144304645378668960948733257832517325245842404391871181018594218704151848128812890417785771921498390332237918374276016232486329317288643012070190484929689739476716834358908969600123741252855542327923391048858722330459830698762006310854789207350850641725213973920803421404502866851067233309413176492594770906519498221965859658380288969188378199911248333819012330366858194943060613538009557930945830373524334295068522652351957746893352088040996900830777400903883742290057400539194080030637691359025560906467625227760684345384706632154794868342569508432473631166241892225044337331685980620876018534801231272081174591998709499025946797572796989931366688090056096159343638378159140227397616881612633311296243654897214062574103735576929815355629211352527892489861863460445741248179866063650410052997094701823308605565059233524029418002309199186317403199695560813709452524586170332881946760280155436067714742148680594528978669556683644830318991851279986376269033393292928902872667578228280641247154983904824603876716203806807523275368708277013337431635553228110359586450556212536552050769751362161807154869691865560767523575832379021834702214041617229034146133006991404317101870892361815622090943215853617321350202623057570806992907829546450326820478927788906612479476507169121432379274712337967372495682041975789833606789032350381363205035663673085459709335085824263020457933437866280444167899487980532540636313326653348194576148392577976498304635092630307731777579736761062047905525549422969110712435653975454271893479977934276421950294621308706059509293341245366425829926687863964356085344162173945697699959893042806063991367463406289040275859019748738265286385303607172238718105157748163420661515158883094383013267136512680826333429025739452098923007338117786234448228082074749602466956791815694727913030379426220858805109835070113641960411178131492429116526100213394464278851271060359259774468158926026813254742481070270089443780621377691436450098717379013273841354308461055585712140437209567798240490006635608409829963357361680064494067930068898985590707118454916347345999500205870116211809068664938873411185426083378733810648629257916118191173277682245585058134550802829075639771910704423790506934540888204364497240185390878693179014077244150436951320079883597059110972460068157837482119336482058385498017123418441171710837538732490044973778002651689607008322498499758017696564969170586795838181893091349432775582173742758257251038621146421402542228631319180909482941222891864533307619375480814152219630905837807531867267431555022760762303909826607726657313677337161582980983265391603209145588567816017820529048594908321018646858462064195073743395985740200987545533703454845790641435691855036611174651748247561331242252161442810261287258287845677908235007662511658251246655566452862636554738264890223858536424112189253806013542100699919096987941957629240077114797902111520039642845360461822837830321518055611288769303583860876304585011908249068864850526382205881005446380838132937300046034457222826368710156231472731919697935108255031239193048209801827097788330298908178228079534905994672058908960725717100093029542582034867404993380731494558737075686836644079198317684134856492479379927556443084490918136419318847193787832180665786499042776020566406306205639724211269375878885769497874967240031254231815760964497271012848521949453875254007125615043307795849742220559060808665281603566234100269378652571900413229427759562074039536291400652235849295572362871649154500873843451939102733749513270859539369880363971133210105712922777533972475942544919338532829329628097952580537410781776572223075143276027952491186515321719322088428419111263981587643862918602320295247527222002214934818155367298379536790771018298135273434988054825855909661180737956281397699356265261903571865102152681517196253047640062985219652364763029192191362279597322438880176813883441831012527257478113182086340753355777308139199913500226661172126144880626883005477049873916551539078277539455021307785302616215208477636586916039243579079490773470281416466574812775964693140828464831284343238750493643829222878368701536460715915573295820799120020228489609466136742412765411662738572928608525085705426944993999589668955347047550463306407524936488587067539326778467491872143331047740138859143421266823455180507644206431677303111585275710774338492542730596049075910429445057039725107197920415350725289092775177530112832793725950133513205968331792236384454436980112938843450654125752581821667890732040606943016897149183053557638274001621960949172806171188451179838970656458531740918672130944491454295451697278636862525788810829227368643975863290974217499961401306384842771626898554365360385605527525336796295693076607015609877516758631668119535776698097783372019901870820608661452116169837962083466057340942165939995004492441970254224717083029383123750787450171900564899478895316352671075884465501307869355351107090194576943047867608567200950210951244591822720516588008741078380824895114412671310872491496718074354816391677769358610986602241512253104202188290218973241244257510088940651136883346813196002060454304554827026853549824445311227757838628311978676163448018160601010134893876947261098107916277407184656547733965421295836448784704202016838528043763582593844069582164297204179069616448140770589383002501744519566654186880167864844812382069986372014131245956910902956162477994798823431652554303373100915542791223443300930319445983574020760541393587663123697589042675728747106176732959881518606989894721268925435559278456099571471056863927074894507235683422212000273217669658780268185501611065344177915984872186425879271662410973173652207321180809616745007636731161197408780856638739368213513591458995592757610033491105707334544944830596080373603834242559755682643726319383159487723458305791332049913411600202632376399104798459229515094284799396475795672287626216091158576311444137935814205997122326888706897831985726507697335624174842462395414946443205552061559801021363744405294937859377952951228487123595294911396762212637026178940598939153988306623213524712779452431705812263230046416780938391865881056829064430566872819862976312559609663588969043170519530918039429793158731149814790298467998769962241098578204070935028309682476347801478168287329885117103502561474418751133210255345854296924498104083955835229726584909239550581792991865861992217703462821316570186915569307838223124797692438661992105424777130727463003406732072948028074608915430741041629949137778601467838294406042947540146110563237245001291205905889041788655901919538751068470691479248149536479677628914003430096668567473304899087962643955130877379174939354319958674493457255437126941493728074776802423988821850813991264213579571009800919878241165931790713145366036378872550917653535675029144607632494136281255701224136157255444726515805713018330559370130630726429754478330303235266127176479816327822953399606187845363573438092536986312028453445767461363341757657522385711522784705749091956782738731677209216142485980969956145393377129531194035072556813518546809355035784251348962704024401595352885841488085687330453936502767996944505846198030331845153099126148924283993052024718117814811167429267504614484015096326530654698890107429778126085146297766520353565045759781805746629668476874319057457519316289387183990163054349187029608023577481709165378894417164094684460928752859721407947397527238521079875454704309307239903587481564152381734583540166960752227092446345949310653843395393624219033544825904521399036022811203406912296079156688349841626157016934537398771277097438517471156572006743703126294606158291205988699800835281462336309859217588184702129574728385596917338034364517747425126217745404490305119320962141551868024022754820447873195461687839639146751950507449289964570610585248493790602933924954500264325804844540287686418677003466215769824809183381046076689350062311927639996665590881076939404216158595047381699603006828922741146894328356063066434766140612066196167280927619952229827339679117730298623490215055229295080510398662686483486940089384311002063656038266856233775814552456985441064724566072383029207147928306197674600395163465264877332692056406338020396318209280036089949571714865117299480907160360442528991893996545834607427316648584089623646490116587182740239896651304969391512637580385573714646003382045755164185502138707082864932872430042226928470335864551238458451362646298449447227650564511271144269972371281300743027575106279609702225795829991844675445059217428228392821809873695550703317181472283400304254746453828793642596044652461732255167882515395632610664634965416647443274834706810285691131066332685703596685189228198941696480945421159293098818106936003050119189118840195911945026856811900250645233835461692282405473012059909846823866428235305332247983541328545548379951975463410083609557712764748804776085133130137665527312831308128388502647433141839214176849810326503154198385057637987433923476580730226888073898808181959464891983104278837386578170479042750261911963296480986753282115644203610312351136223595586659811188148028203243051620327357327271671002971167278141879608662280753498345641026233591025217950334292501939920826568386000436706110012040030726148002925386077802866720061032778287207664554443832835337845747215988160005951317086975394237178749824131538204074623705555590607641529178021931325844506399078853009854035659792042795741022629402084328218713317571102748310795541277814918443975570714650143093693833147335710382715760126581967776800947459795868767993231132025477202549499796030932586028585318801497341808460075611815370860086417523360473091659019330788705906074865620833532681661248888922750945853288635724665101980971391738165547221987806109844242501476265303564927329679756529714390312207626302788623567944331897533185517569328901002564221291160188539130719900246806479285549174739919992123894007333480817244400216616801043077037822013137260338485291765297831648638116525678158448286626842772539129661399862931205948079765401306281700600609458363548693178737168391918173822878753424724609266819524736904529679459171780116770150156348824003738185625062213618504347882896702628995258306899095150619030626139354443506145998719730061070908287418877467513103179670395660038498433302819080481504347133494504001369161148920627026059127885576324941665148085163646505939367555952513611608488614050890543396417956787510521521270121831861918725835155963509634036144701393309605315462874300328747557639457359069916143772293806893146503807345029384414082709127206108287612509286185195552277662802717118148917777895674357747684143487765045824514008286646864423947677986217409760972157240649594776084806475132353863686294595695433005333393071872762465118826923407540187879020673001286473271067485311203440925601973445051175461239291067101787684328619490772754434723448136821470319828063115421640013801023577960736122926310745280118890616681999502424185695180179447861069896779816737367463752254508168790897856993893502148518396960332777431681864837521056909743828578615406391572055956668993379619422378002627537233028054980821980332966309143843687688125280928209349170998523678931206921905960338816547918291884531566550308735729387974297810421082151632872345295500145740909074235214348080868767688102078019641528560440983077098643994509703067682455889226049510664455597031542069593909450194447484819161068519124293093520022047957681037771071224128773198324269492937474703231034156034448491446284128974283507058348667940254455158713489662975998945054858646589755725977405051800623441394382874079469315526863409771487635039857875213422711921353187433360032217330339892905272151480613246478014132081107810910994720480173431234341807711031077730388875158272052731298781402563593540839402721158784311440692844046320100478953430491414281949508014685366736391111581683915172371249908244013410418500434322231779043421004075188966638416641927441358759195486891233933996442245484387656047022447111790140196174599487793427031087187904280592989471576096112263794510217957679432398064558013243585582456447988546393804623375817524267652418807261610556192308254738089690803502057267624866665738944066110498979670497890807913752790059400368438598945265705101789152745917354474076479769844605651701059599411663076760424087888612248589535716005518504124127298460679866391556734860428665626856668203459302895732586020712739113133839127477586419341892288029119612742565871423623358775596434624847388044626101623791136343611807609272305144233335929315627294897294030381564283583213639373350315782947184670715333746000393572346041480833889835258016635464226144712070026597314997137372772346714488524653569912893503151882201705879029554002837653101572036192351357925705124609153825427181114314599288550071394631086531860214327980595579390851822456887586904705990449677158523070599076393020490217319339325767140078737108937422825454654539332448047811859846983334434081613642355586647742667785659062300934410052037590758930645492018984833466318249574075795060141971134708665421506602249052194762420538339563474794095257294069890191454403050308874136395050185763110380002590173574184799774579289313668832114742978816858549999232111881686029254348243282543648599261782430148620383805844658308426162126510757823545209030907114045490029123125759101827195499934645690674948791632284264300235691826077173644698200023962787982482574006785411852262775256281873791259693845971430606810438395097289243071405612601200994317254962191818626320777925999196843701144347473240529566731280105757657040021318885608829544642164079770731878845326061876746693730134911970463536257105016500598327838845429024449564404535750223130116908841440104803782312388697751592364110641318714068082633143030851108031884147158491535709113140920733075776063149113349352310148389580385119156585204615143191482621390604167096986950523828103305175202220236659105761485196558442880539832835771676117384610274325848333999662862973159979568688870902409137587518548009238609897409242774075398146684218730567457556657628369911447998453349228684140866960051054701344622261081748603993568095238476810749292461745201400758107375056856148306611410372648575584594852516643864281114820365697844659735968440671482598984003006255825458775094827709793011543131240160664835052362742733666723443020681204273164431009804488587473786367677056876134554978914325478558606697412634485206384979275805259217286891595692518265919094913104446128187101797778937388963663870842314211748611986214818948470470671097744814476507143633881371690861226269557398000669945663223427026302533711863320854617830105299133392773323969497542507932387820646434569879934180673394165903461992208980237157566264108398438909369149746972750826812052644180746601258628750947358461373096905494045598348742756078718882888299636238437881228172157774284222589601104468282015560272612638042747445921007968679543336747605531462792623735193967464243133215108741860002217276757221090226607318984602352090964606138178464099645353557648507298551988459731664979058910749982985094105218371889681592846959784806930411763220272497616329537635043845396444064638736294928951431509821487582734314174425978482125107862695026073669263791225258541341983304557010859488837826194167069513849118473921778122571721171437211107133845249586617377346465785066741743850796744496002493823556068526780992081143627759539173754056551587066699334938857462923073172295375478659037109383110425987152600990586246894275651004490250966875367031982025403560093976557620413298377208898950374894293877802191217857361338224929038185870699863219242223523983588903458900457614650352129038650115197072645016459219266607226835524041023416191713208827564515457857587337922729380536569561331265411930938575890429040895378784288876151597127489545573628262162684760301098773525562920250812146615466754615867229481476169941363343808372431420759490984186959040175672414540719170674752382557506044447527756162883040611432935987863953485942832433195121612420013579534267424298331029047481438235094448402147473426518617242196572459076172166025739775683193358599132976697695940315950808602005248016736473206401082618805449638473406069990801065314752189588358540916088051872498599421860385204622653581809574540075571749756757546129741926343148328991974763584065059182569313302881803065478618163847008386007231188161259035017799506887061368053199609373148456517096003040745005392776123019499934639075812062080820852263302231654643713382723599953762588195445298514980694509637059979268419129789814955035823983973913233312925184423888948725054769653370289396348941197338631324246041395509791585750519130988795809218084738155891716893025766866992561369626769267268364699619114351308081751332163178918051002603017968625654551772244288022700901762777281415120698458976802132379954821084068373898762227485285713647048682268385787023334718780746250295998454652580611387555543230720519745013071993734231186776240820806907421017958450937187119947574667150333617160942860844726042110438213397135565652199529821096438939082537612168085129300139822536864542579308935382577802871715025575133032818854564820091568910624081255734336378461633142042323800887652467902434257201922565346435136946896609887509335395947371021527684386201087623579140140717601052549359093472628649863205898995768175585681132435384590502388773121896455004020633864272650798832967347228092236304698384615252310083479677155714008978511763083607415659013851935191613469737055481010931619038498486299058839811357906666520765294677324582439966632376306301399520461543346837774473698576484503003515387157953254320391607598328769780545926100824064550840031665524872682583911107534984617127494267493857494749868746731366767407656319699029691440678671806469995276773433572043131068719403271409761964748833318071824122246323470130195671304337662990072055225539708560196070161822830790068274735961124845981870186090390565720014480461044047706311753360533279519157704743181635572641176219817469673257760321901108956605665339230523296411223161588754204533629773767289875416061780004654333959243465597034286844910081567003729893388615083361469645711780269821828071277916980899594973751614741522797073595425771946082561208937421508474673525605510831633362089230977301477702740524478591809543055641951685866171278918134458721677798557446969484271020465281868904687553136557250956024420308038539300053690907294507430418812449210623601603858400810921894834952026639392685599730113740426727207645002674246345827794653296784281802003347760089006248572299333974809522805226555256886062528958243804932838640270511348564724757508613123671142129777438128749531773526326733752287489003696474466973148157940966343125585928283371820519248349805064960025770910885024085589421280928682587148493729627936104448817367190996460106871554142385156528496045150935406362188363847733895741394383861650515985226890557354743919321266252752271058158178502337515175226166240127396056740844661986630837075397226992022377788929129183809877610774710075223934998780605864431889124773500576423939601618226271739158437523594326304736315435157929589496206996383665619666672955009362039788388747235723209002906421457718561858334088625057399238516384681132636965089847216997693806441611545288743044672243972422467982624162682847379943657330329789085115408765821059190230881752683217921340097886560641715724970591698054630901208536663305059025665077531933969301062577655370912513769412301517507589194729122931455665247788410442151380371572089914467058331108000742515237971506058401902243037631011629921221175877518834436935052784576087902872901888948188369763965224456028051986150241112072411516582856611021530511873862882086140203982326887084786511220223603162354038353990111858253893899373777479899301353186589447250026575460895657941927715190004969212373518066239576392969390304878789313933168426486938199789833006394082979706635519717408824243224122539594039455022699883961332963460345865035975150016748085016694118220015172529097530780937328783465604391829426734915172116542686746770532993243332128389386674791722701943683101995789628649847386845617920631153230053119313576427849684062191186691817478730302654409507565264724814381748102782806445086292102538203753239340323721527949167598111422739103644391728936099545322254211723948875379686633382116488058407855324134932318174919093792408237698164955926089684846886467080038737556090613833624988917182585992256198033089160857421478699109330515402376938387456652311034392483092714930063937360031547752270552795967107105755403622229906412290337621121068433842783682075679862050078835504800831604707958511725244067607771316538277839438506061195507068178283316331969547837424878204682400394102881267299679380794319696632429580722754806097755070053818447612697263835999941355004654236623375663281697021494724793845119739849539878566559837548783379273226277089787411058055509213539571508229460800367658298062103291578740980608620537367836434026949048298686319804969821458660169219870474775304684682607985110977787115642496832352048101582648140002796760102395070390414709680733399256035364788057604979435763901283580521443010701170190235240148367485177926673104488509992426180334912343765694426219194995622486235369195681593141409827154560108905703391216804017704227135519794430824641464447892627152832966535128415122506242329652348057815746662520898724499997537367121430894786363001265926167378949811702387669330316039352398379946729005398113926363201599272889206194251880267049125130444733970623769915479083930617127367110438688756842846261172220549121730715693947483726609878544499833929654930423944034198435808494721190853019613243922059502059424372769391938360302290597454037201295249229164296151468659134087250908781292487508992960444887830701952380530741830838945650611315655537273248993588703581186247959024310814074031094870196424108925379448530678663342404638714742738464049245996602787721814189556295304523537207261522051713325575252295027402971514279862098733463180780196787900208617728484682807502903637288450589654363310656428799100090382268518320285028351703430362985380213774366094569225374040898900694795777918769747964790685737857533067706535014049286712302543672234639864885443604521869836871653408494700667752186332371019417700757139887537646292433990971576109727093911247003745087185018715307856626533942243071678092747949472909760328339854465254845957979185855578255344213636101542524340747171115550515693575104897852218876996399407140870932151438048271031708435971943398216830507901897638514279310293535371977091298448973363738701625127158931220272203275525644059832664691862592324453744322376735790055796181289487634171434619178095224449673011206479172254134723511353693834597583054302142200247157676952277755347565986751243441417951964259165364845240705627517533186179040929445833558923613353104172711352814463278118765299322500647873496580649300437981762572450049769322124110180398361362921591681041618867786943447698386869944273550960278278689093467813624799436956080221826786847169170280181503355216611083587014926388139673605202147493485666770724496294852920608676367865503314457282954041175918973566566578103897314861762849899163053334054645043664975724299785824254215631716190935143638302688992373823384917479993532985851329639017470751761833481815139052705750773663695674021157866563706756213641208810672080487957317365997512936105417361938151013701317608340480296966686213612170900581186589519384413077826229406006550416858356735193532870355770963744017475956325350097618131888675986963714112580910613832614016339121245798066759270836550638643673864810188482596992894067749042024913283659642382761771216367819731370286513997267665471194743610968287527861607997576905583738339756874064283550628518605414182994742242494878147961075596952911270315999254197660636476510643124042618451295318372220421565922558276676348591169772939537960047567541718564631787488921807198474218534960795757891739052408918843014387845819094615221708373929119810372567882090363313783768663347248181712220488456261090757401750752511069508369353446046996102759432841964130452254845349916530311252358215932150090454911673041815390818842125989292742751574235363231475272775176881097828481760378418407112908733349808463796742787770705387755737986096958713100629563591270586841338470031971907592889526360362028437677848655774067312714254196007817797958236833613619150009681510234559362801033616039650781253578728168279189289676208541122411211013743985558840839785303548853411504975020878400523443745975457549362378049940366253148681800041298922100193205413818786087645759868538137619530461019847610524232484080485083921542035629702042248725122806496680522658832887195468284102830199063900295422236167991082491030171502771268000367540219495953503011248253233639249384610585306158128141297251544672112039329348209896250160160263614626831540482622935441917563305262339718669756053550731532035491121076952944847631947374003721869701047636295290541811434105242673745897969437836342474021724495463315398038709486122868408985127990534253918620728807397565197365021996442593000960117711821422698851738677039849077209593998098126709845961381037896075060370716881945662399535549638098900019927685032832080084442684454926330622689313153044079356292002960386954050316653597519557960245006078938214348794687838751536324284893111974633434881112645725363974326906630550188447347572881346232093530015595007000256877774320543450126663372631511205320517026579528302841129565776940772502646156863205505404659288779855632394253355127689142804286398137671007301755165310137896699058471261104587769212553757258939826313186733300707996701584878348933220144700867426251875569275061924301255669126854933758624943521610106119736259985336066302941634507202697158382634623352621448227350302904428971502993292298292383479086875831728293278521870036497470624481818997297265737391480682746617840599073330908418940727504242598738919842295064957245272875705747298683207608268038819693774625559805239636333956699832710784268550483535092018506743021384741278703289062601487807014270959200959609345601165155466496652268315835490544189971912314367391715085891529152625247059556526832066677780857708800997076194641587217727373714092368654850053269321799359924890455579046118561409362479060071180952885315655573506521588926098810650679634862727853755741892711054008070793516268946636373365374081995891545837725226413606680813875716214201580523843449228040467743056842388873065907354168348534801064003456942053512331059132214921545176115830678225742311938439984335138633269274069222162732519971054037311683840022116330725524642292225365551596946414412089604452854589034535172475415631748326176071909729205239600418774087564821813859369717581446948011700122619034155700255884601790800906636975815867845122657440359275918852135067958983339313932947508846163767875341321063510151299807431208759492853364334843367316839614939383545162942540914861130161108690108392427957388318291554594897153565123240798151440406146251322668222983372247560120809751513151499462657803898960201620060912949717012526994276596380148096992538968144810605198812469458887345825384640154910182823952748572146248258815020333661547943910930649325003005784080271785388339823182084656371578120149141166409654595115611522183255299053852518935344130237025669143235529707344334453008780011758576688577413813416308701322989903104193778976119566537404255592436929320020499048778457148663523596147596201339403307482018514161253576045937410049583482396177113041240146511049868766628235870932041200316594819329779540113022360083733532578573000773111209046353583070609389429691133955074392947400549245728904735434938720605448318994549395290677165116278329983311306430007380154227901066437046187711370609381356931729174440589960586313537091572810901325678952360878480906867085500171595843819690446298515685055664533270801188249982334626381565907417829196271271366192514391697193258832507618339013347279983259064163483849194799245583446945262786439959956179782137885828931869277703960810155155190931697871909656617285136304525073170879658928057697819735063302470308898977627802292277504445147984627501820690248160862210624985727761162737158327788318534520836101447718408379950233429321601108761997482227592670823168692606860587260372749222163585589360377934049568832301690153928758528751969729105085863748965847331477562088391610365327865140328004883195662018557284551152740822156413865051034195391866976321828356456388960510245411342928442302416192467726537750338855087583849068536903553267704136066466674266817997403219904352820098540492036475341324481007730862266715669803899015032672237265369778258824308566784351415914407155769923939676792761498465904716475868480223637568080305485705091356338136662176583244799933093862914224804561952010902140310349800560033980882942762704898118531257476858163853605803558854616264012178364550342284784463530499004389451812566088515037106483539947610408031518144319144935795875611530863856385389915454083310239018272157920765623986902095890475306024101916573428056945806165519556726489722432091893731697478259907240425901301146131441843544981788219351933126508307063864406049349425096540335405083983283664802090816916410808051176016452858765354424639489559267036933084656864288259349188939765422838082246465467354464217695892786299948748841860926399066617709351175783269517307404594085924584183957891472218370840058331303074904465586845609120132057127528737603676550269037511134284504859446358860787219460565882045588098909360510955424561866569244639161776286561126444844711488181622502594966166557444789016844338878668916062592043056758392334449298841883918705939710028017118313734658471410052014113775692634443917317491295426519447509385610324444705062338658976361754325024300360929232086394919035229262075823149849326430054758399646947489204331855230994508980995001414603599976634445424636346723217797417585632804534404098756167061373686433128770858001934871645116791527913147700730845927158564507035199518469316471387367201461302375529518817262851422745597041316137760406210199246716658508334684620943237153605098795514287936650824611948159789713593949449483821743381475735103200285458282177855613250860476833849558435051972704582854940465381266659330538265893565670654770151669884027302047743595219927976587141670720932504022614568495423919588088284450609036603788512774309014489964512768911625892030712547702427867620334020749450642890968495810020267029527161111724088493358678386292238487876620655822074694915772803633507103158518708543663961000592320937314703229811939302595667578322983566351004084880784553282544297358264982583851305905003699894467847113279905383887330924371179128313914962384366789981051603298815277799546107475718168316455895789323591090319475981611326077383407343457832693889896480283534528238108901320715463219291848459467507864132392294419776634737286469818575744137365060971355905882959748917890139059326608301422034350241072753123038250210319108988316270470801703667956321848859762521310752474044247464805618013952667580404106904614317794818089746572512616691556726086308280274693850277462099917090601313281131895159741222383326811318593397244826773002156092031736345416111627173344599117005453370693049445818345134881300926002374071915714891098388338905210419738610663676994485355964246731296131752780564159184232169832335987382126243475745751465813061372510769726514583536484667412635398784515783619665344530280476495727053760250767373681159938284146419779164165465465212285747664031450564665600935998504824936751798896853798907527175220084321950561401093498017585187282234745865621887722488786293685996087388692717392737971012553824300719110781340817101946067917720823283404427677618977120215208602805521968390928290496508571382941195668656894975892461105229006933140819954876400320823214476584088680957674658254414086957017695049523226321395113618962976205262267542364854523810508000741783024516576813013029074934671790380249144562297042210934928798939588864906539426141907897149002223438039563361467603899104471353719076128690506914247097640741675978472407214714384347869522339048462889928996944561371824484247295882844909699254460714314712831957021849799859023696297362273941316948554097821143935440597322008551411984126778879883888300680332833842513813143215582042224941804592585379207635402109185253375280052626623776320591960916881661975434173496217163449848225087496016332979297637160116418203223903336461249264585701734961797018727548372629494621686232066814763989040411093228645019298831598196058050226670147126366589332319818010379488762282336098710666002816294662019132376738588432283923378200867383889019263307677071353542419738168950443405637392731783227986894136935379285813077020262667712764684047381670842099458154958858195210252861309705255785974516482398871817232103395856075112516691154313346506039517835013416794881195665969106884375106047544903699780020030899664619927441218569001946336070575635274776717196587115935958834637024521318593840214277306527098048074668968300121982738000878267463472960310736129872563629095841707930776567683900651115991111060752556563316084195966606625402258842744824763240973514474008577050158912607365206144657007396777147252141454245445544819012603338831909328348117810410120333065315813040730614892605566422458179620950065279455322464526955710450117645894117981733569025566267818801107665673186547941570512969593968696421937769782526082306666374111277594263918683117582716410212574575386462627239152073701788061295746076819584368173465892325849774016689643245917380154081640667447810575970493115754106169598688919068492996728153747369505482749705623401926776044255985814172201680352035276422363662057698345574229120493306681105970242785683014416393033872162564599713660972323383617074035040547149152280878582656713641241224615914762292839482855294778249630231361940352819392347416828681412471058937812157914015880380028204784514597637526037473503864851721979740348930103944849584541741141466552003415075555831285627757012250284286372511561054025559743795589984855689293841699049300380907598411152968155199200131148300207440797071655013608819329603247856023748547209382034768155910352971224313429522690936686108091359101310177311111075684214233832726907240631466328570645806183720539070059904606710495034477156394932706546385071340120316737183165545682567379418301903012619006083591118876117878041033987164047611691091640716105716994251469216623647785207402887663155552508492729993601157798536358077966801029102629193169219775480004740328698629028474052054578992291583226574380020145059138198885139925923620786471536577365498604229156829503035263562602466680554552391571434333370276165682204775313313411335094792757723994606120243605962290897061808966791454865413878956254808113593727173613328820687883282034010709191219077821734320951682033353698239328151196975970453344415999483142687251582203772353656232838222780319601210612806239134611475993835767103623875182037691663902301353875971979286824314644113701946344359682117129340873612070256017162264512236966434647775907472254494120758395388039260527214454553133783237214746134804020096898922361780589667070844038685233663538938949430311386279478268007370104282880498533722820015079198972500420116038109523076509123358653987447794296794656696428597741029348263593092837644078206600525293920693539704046541214057012097804684360904423769191529377062032067308592143137198477482678172140971547991459260107420390569001162279571015839681976573878448517905625038024284669667241527113160962723670547770737629921258426953132972603988690108067079365609236966034158696147644910219855468405065096049775938423254751701949930269075255497531911381881641475393867796315377091869759713804635457094466096448598109804135358101412201426830325104190218803274627362056430144365496117016000348808666362165281527170378838224485359302875510357627047095069585121477051985851827154366349390180769275116402060959507050305475237970918650108013859207364265360168024700169123201463011811428155274212745113600257139268774286149818957410509529447594636720145390204851790867207306829746487585889452760110183946043312800632922625660838886926660315733754133484838051221152511722001578785060417083817530700835901199201315152706879820081437166198270436535795743752376755432070546728784062330984083737745890737208876084762097758520110459197755233606415147643119988915712999144247682937326408805715305149883164830855948391951339375009827802412101725479457679179743369278903478696811056380924885682866101485780494655247434322190326508570097493673937822866706223255503828353569255317418597425178686290164108003141705380426162608697194373565206642215843043199229846931956540686171005312283325919453375878675554012068034680308218787655105801591142470510951171327087060816862310163601646306343020401197792490181400618816236058131397127834049456100673951521086432621136374803882367765367377808380703469386050892945338065674966002990204042777274161435016127477359283062484288799370528783312622650698032703422188109026867463714617224564534160108916321196107308784653586262851022768027641709898890525055442763771688001676163577422303762196952004375290071861801856081581410540415193848550918079077993419708732187304443857018585742941430985852142124091671307880610022732418303219853314520859209000964457327270921385870045689909385978133835640766929898721816209387834435115902314828036661168729990781118751274827216116012026238883782782445365803414510135794031709938205040295423583541810829800029227823478022326858647620356659754723344520177751123284873699147626970291528456471420434348003775939419835374287684766855716948515487992056609220294126796065557888527702414057757481296963218810446007381967820985804625724507477381097866938691493115493680648286636696957319402020872691253081501812707388213121561197080609569762923237535181715165809864197141913733345967985702732779125660501650985885845620966011743575362520937879174143473316263375325501502135905697097754902573635828245564044694318958828346952004861910104765563500273639381395810248319860925053364664312364667621598690297086969124105418302722859328913714026579586638360000725464922231617360343562489002104399598091895935018346811666291481013889596951043908330619290881415722058143087063112693265216471726325832167983843180992796718275853068030300633038265341550716168744640307309668333923621109665332894728426227470745401563029684320735813879913253834875422844898703439467102933547624553252273876721631363233357042812439608667379560822240267298227430859211061730862426501765630709623458090293067214089139960733620454078420517513320519724770645895798522079092873438894588583590800022485704363641781078552997440896526502813823855725901191609509829311301470996961038864966640688086263639348827048219496415442649932787456499827943675252488132296669879238087842602634619467032470736444721985743073852617008237864017753713165607004271042236739494466053989175531359472322586223425402504604209358288762180317627813287044955605743009593476138515185255452359081323261026026103995860203452767651926080966780304903485355800731031111015524034095276638720801697274967030617359991257786627481526504296952788535151369094636184991356914455340148924578245960797923925324535822445498427811576700535191161027250582814313565410448496660047089819373828320526074790512355589909771047086404443804252575528566604286431462277790611013564444433171610743343531355898581195852056632539309148772649926292950376722123171349942438256652259369379246065517706348217300754992541220095282637721606191285826616122605961331250494422574944877500777423812183763167052538543525245826510088237445661612557117970336519475152563515894606369757925278454010784480991059450042865780658461725149056191545037542049284686369284539047899950338781722185530655124087003791117656459851914570609120001511503840135956161480710635393600421006521961579581109462739215319109191902180197470756527958373181404676698555748602463645958523741161456663992572627988754501897884240099579955526622394807999418826351905477379561295821445826347339653617820432980662570411721688934407982662308803980585561567749559440534831693487835240871893550925232651843261672442339771073275289220864508208681112390119396931786442165671768758604361908725614407887497568876206454244060133999498420806249135433138162077298750599420559023253977662341554191265776038686604977595576864495470127476475088888543185200757742763865923043348400771991438308962518117926663650784836253048145057827039646985989083269725665841479266070410662087693064541499409178373078246795247487056938014902904837249428996361683873306242702860178292991730743469708607239273103806538333958315875007685670028101425857566117457036328851832517062997767670462114909419866025247068691347798399608208812392509880064887073897568209856533817199149235391342272829434619805420933450660843241654384630795968811537315312040616800191926119834734340559954626585583353668148730576622291393670141892805550543295747719803575075621606425840264619368313677218537235288298162454675349267977298619932655291701987239882753989564914949639457854149755863296426227710850106503933526658911059188703710485231323006393167510881388992198498997140643724406277026536017933989370230919984993945529465903934219587440949560368928262570866782014549534064088173515085589618609351139057745143668405126729033228843820197788991868731235072854180253038614607373484496291178163054790729792082547663331238562869489574385437572083378665749971939611357810003695145211009938358086219982445100277876689355002105983532826651037115841774402377524786492239181475292919334514323627517808962602734839807630159875011310785044498972075958942069153552388405265314208354019905315526977604134142871310812363923699699668788518664389326687140018043176632454858063142208434758167545544622529667480912958920356352464415292337221441789798210992777324896261479452960660733146613721242132724961351107013385455835776037256221831123716569010178535986303602678001278879633328152401965009703619476958534659594602864450451240113615294779290967614092393911063069319253080712715102716309573730398354756744923815981476209955838934189217208379395722846233740195195516584185786094539368890515190758740462773215516497587027755215978919491072867161315982109051786747652668702645292885494021637191275968504224711018173678495075664151333718196742114151049679800544924765624823944077549453922879011664741460510896006155037007028013117967723759808546389929895076327212020152179299184843783952725953414202080189185326258722111319858388491699891434880959914804804445865652321046479643521251119311108891419263768883537956536659019847626490707674749870656444176569011016700255577820135848846438682399495547469234658343762957282993229456782776649431166309110477328806028949006594838243398100587921601871724057659390458866911313156059860376599329531749012793471483391509502876047276460951145189375479256382045879254118909901585063472474951993102964861147576811638396578203326977589380781862416052002799894565523946138487721194981525023035459703623313449893086458669829092297856148660411078590929527570995345871235583891442300311090856147289142650885826029658894002386225290902986332824795675834372602321173923625832209289468522466276847085328362633133434141575212745203399367820302892978807155263111519444579339146585957354509147004605664626879020473394502417640388481452126052203350021846184814209514494412353599117213001068319776801138662692965054376322177011717506363079116568186039040097196145106880232173323543133652078363847234466962013596978582317835472764503846760187219100483919336077348679248663235736307123417954104783820784362603015250971559756416906242288576032895969054076662345570312059893639214567025129731458375653502794907010966893258653018069885768264164410920117310201665657136087524071015761914269964867310961793966052227594050356162640879491332522757992348438539893252389490003233565753941845451149070216775712067670626179324127758048350343565069205495010371951733643852367189341248486509734646033738260404928749988522690938088637227392983697767252918253793039375661492867256702337536246761581560866816736318580284204538187674402362257169487510334108078659976002993582967918298941878427328289864796418880997104722922351153168134328526160509299952598644101875869773103944437176472077036696339889355943556185216512158566093954977996641139186152706282933319754180886300242458881001328024236167252206779586525872239544698149873783147454070511297870346811439756808711458109988457730823003972572708882205121494160025742632117290047730812419415682061366868092049542623214641535998657912696377507521827936188752361016242492521966563470273678198654323548867771930952600608606009141011392213138487995516324026899325011081964937688509246528939560791678129470617096041107852239418458583290891268599458242482587777337737349887073373432410996337114525079404296191117323828397909197419148506197969891969318325844881442202771859953064980002351784341898627630973115711698653222836478300468293962837518940704454110860786203987445629092476769028488546289621307034420548550848761626704820141279479717281566582775821420229668673536097404374081412065164465334320272320148803955688730009390780641062020378988224231908288106150089636868841650041986946748972620640342569998737468260064939366803551399279714989456172805445253548511398340453877665639333653638769628389755113930607809506895158309661987256395309040159843989222869460011701538586454439237540545190648862475103859665182954196148798167928048377156055244888736110053845194633860646705106502844738278062962449099122536530745749131193043029576909983965038503430958038723389155237913007124069018520784744801145526135474176015610808909412672842492206082792096419000853085174522888025732408548195565580542869106367809827810590039260942578809370770265868396865522779700985335227757976394729235656188597843974688416332958470374533573199319991204955860396087629462896974243462210154816058856703780865870060078096664337482656470923830068183171909775918152499817236376428508411212258201339887993969486070529998749003121535360565257524826303575004761775798004890274049948587148520890986945361734728134498018032414647136642208696611746005091359405078126122386471760948808484253571491000766421020212924621105402364046637969396607993093804895845852919217925099512311748627000878548920384856478680034053303243532185646876751342795090003331136430637829861015356881135380020717350936842792471774106562505212615939735055330150818345101099393716933787311658642644375466775419688243405580219299174073378827523151768912486752856475032527180975132369959983096433490804679667488997027773767206421036486837634332902738475971618434259498106739284514111520823839591078931053377629530971130776197357478275029125906837375239563829252232005864862980324621035178870097883851645032057383261793810200098760434291670323421704382525331697289587900903816786950238893464696609340221983406230111580120979385240090702046610182437865449090818927912371725662926366045694247896222923579731066567003041415003724380291296600444361447017073718260695507827735055967823092789351537387315534715742496528498354666312494478543029952009735937297887950468558537946695930329763416003223463832018293565951674497327652999119441604029041892150068138366838969800905798884103605096976832299985504012737148614455174843754155643321099658110071193407270439069055332991225201308118743074226924571282047897894735491981661575850948578826992958978422426497573123633954604658636272230569523359082238602409402088942617124473900339665430300625844658542320667926758614123269485840014869238621221662727733568502537546454309773765723579059898969134197909410501711387826469162914200825058491694649329717666811565347315362103573793286408306217773910243237649078081388980556739958479193823826303221597918979496340206039183685784475564680679014965352794593901640292081753946602133441445151571783093918915565329165254676942003118438809008521320288116500676744128862594786379646971846063611855345787115737238950280323112218276911645933346719416506628268492525998698703391581489468742362163404085062803834802066880304626245558680237985656367079191945275330201938601531657312904378286055520555490268012993002096242467440092902624470857650031353857514793694239089057783737257137879250902062210876522897982484538832950718368793360309706918681435002136147354603589987143858591718174739476940173766711158989687178552415778125372770061796092585101667719105901673971252090305072007777028309090838213514520925915744980696945180966195743683787526790284907891584419767476244061504132951307096356867269687814585821824977202585461118877596375995818246028070388825806244781374770888235737831167368004846096906139291451417590248898887425842113618364588020098667540509952150787834888277198693672482787692484561654311244239962826455305734301593579765726558718748558358306934120031013853880612875312349131844980712581198762119534042984587576428853792454663332044839222615815696289169668830540514650225765532375872393599768890267836951455773766228010452689059378874386480390858578365139880828998661165378471331437177511501044833179885755191211475107660651327911002594415588433215739962721142362474799767404988380865105529171016695711968888310936835259569478592508984907375830920920621819359182507708211832415376090626835014878333561519608896588641129293924790413625468241404420916834456780100351508507060647240087495239931728632699944464079199167449091916502870178252199340136758745142491568521127617019429222529718461710553824861036891102867266558012501135027695495807633059201662799803296940255291186189224952837728229431971476074965622844813473377008372702093471278459913537212192025021237997255694270675620526695276281837185740479817059931684769468877408914659937705882759617165525404752906173520201780148671413980166697744662441196255698596660217760544539311130086785960374734989511817764239673731646145388532181113080377291759047142416008838357145946317394821321056451451228272640708817002867245683102120135985799044248960471600985908623658852521998915606180351929162969409576751354803009285801086687922658684189410790973345514221918111652861184470255571143271514526025825629791792593236274673061656316274254537884687812364460814792033604477006153043073385715399710060748732264251030093500175171288356145531249827486026704967845598353230336075979098705055819805105749829026615808245893403285411803535274387218583174372439190542433633833311549922558399937046544120366346462778042614242094723312675602487629818054771116026679933462139684979163097164908808990608799438296359724847746440061919971983089738016710795679900298633539287304631386565078292684244516514468511389618383023150425066429745017655734922927587487564054080288572799846557534139220840690217009906321125158115654539857559179272303388082362830519160047397878895781221417508410129521339392034736956216266628377908499691168816964873015160260609185478509344562410135300324083490147983243884782221472278561330871040224724844141713265214559298828300368557986859657116030446505096502109932417245987043470947008690921266119642292178733181692428310646901184388065127559197499238748828624573540692237643542897341831062735207914532675497184238546362159223886957642962014102017936964793550452289018338173833184825310858860490285978749485586125705580221718427095930423228792662381217004581516079724484821939416890018957017679315143408154776380672755184988174187835522964973524682174697024240958250365699879833366311280166506725886885418366821406575318057819171735137125074779183852307099651084474539488498045696745277937149649913402749382978395611077152715813577093782716894350162522617154062421536879579226705851039050429283944787106080790032295256071083173256626149258299300730278996964129078910966594876612661936083941684066302823084366645385416523958914926256719518217567268528828998230207801239694312411085633580230460026532586549459517751292150395614660948516379932832509998936765623845625499704508540152310424503748934342152779461691232129564923266539187894668075118988545108158920182126349725946183937229708251784580235401548898945932985727069105082917300276228418567374505994287880433806114652436363633953330342217881675997772666026796170354152643108619520443142808562896751950968034609157378502803796858197580128397854700800256097503082212737390797720338350640106853344693042652782929510006631523432788926509830824989286928201240215570266468739132587079434242012077174494859199112712435660080778991126192818289236905276314544977751520105154914685874594317903259767591531138966861449734614693424232776536474115714808198376071844938019249648370908669079678053451697365923791552333297269897067744309547208213436190911930155345418494490864157495907217407799264405350475552468054864721886883308329056280387041270883559724243916781444158857026425055482058953806265411588900875216816186932369627147562823793732110654461489089309735367021914757107223696417346718940740284459143756340949839585158004978413176283120383815295572413733662814181023398949356818300377291610650207254442322804966695365821440664404755705763860462120271471960477258619461898084643173138120553264876008332789699847869660016155814516265472018480517370711013083199384994403277577999167692686363663620093810257565606764733974226644943708695011773514718126490739328684673753914561676300654855829216073600780959510931163637375721323111861046933873426180642885889208666188748543641916894034810097060150844834288760887855118398109158935827977543102668783730368174282643880733802258573189865511644902643334862906368718308071439833395862424183953247155318302600829823667442621651637565037921230626171602888868465748501923879218926928209787636908856118487055884939722104835691791380077603751089688997234211885135471347421518297644799722451191522045239843304671134893104478585078305113303312073389380311702338617835749492381876602626855519765378701374309116506663364727807356340444320786666037337288542781815062706271896697271516108875136375388897903274092719664709599157167261582206194272419709299254163694586990910331655067979585229937710045853901909533754262575443172303561907711988879381265375457607523306135421838181094541347029007999783603838957487805688282678962702490981764707534712382040131006694916302877228016490095643359669569791156574744571769988422423520590313200610268804421681957703559327331042878502981068854609642370232801839892196443006236550406838900350203698359898041496626487212649975444243898195228767298346021299435958089768906012797760424956120823028954095335046153574184694319031975763491185449185206608691534616980360314730313942242166137819457828058082681548536087391784697924020553210663702143610076317974181880051638104467026309020480224340401216900104648753378648449359516869830578078980565509119486211375769859440442425817232411127096174042278630850953411438815360286945968879170337034952030863161903753056788392173682755988852708603120192144675609974775413117775840598998056822249373056188891254641372265970982612152232561470159906967697825637762543536720110417791052108471296384191686182571806775236721351817784892987325326025619016895777618898473446308135051800318631610204400104357488935426524706052387818774068773290712291817702057830057255119976771496297628044951233860122934893914006189319661841634908313992995013213156344729778655092585524405435069984785785800379295180202569507045556331322312685214729696304886035845338122039260404019471958139036644060358796238202031663245199535673276654690882512079589159401548834772043939284453660784876376441933334155035165580825621241342412545152939586787323795662020892787804273255712445756753285626170449247610134837358673894324697161646454851725198258210360241730391135896914827836210838519129753849373005313315696387566499211358613090168893341745452481366770478652715368061110390535349036390189371861578921197469586690052974384187148681054293245220598623981948543833842317330325022192540745455375638569454429761522214859807144579299284540198374570537106134209695862919146833075476057293486258165026682257034043478967285080918005836480589948626736616382560702718026376582586480992602280610863210698184367587258820976274436913575891624832937742592603245851602682759892653929339239344881869292441069771937707558272316484370188253870261496210983086296768935192478205518209468318869973971854610197488963894824958147522574760696092432364889555030174573175154636026392802002451394209863691091006403307575882358157384006126469919445884916498598315735956321985651878739399220225602339457398749729619227006016338628597107024886447655842141767105398174422835578223772675632938209604612234865377028589031410268262372073494767657000280238846832824189024409701349224412288668555504896079471485192483103093063777746212305527618899145958527504884584546178415737848004747648524536801877725229271128650279884538929706240039181654229059509793428248884865495961644464697660917739799112132716909592438873165262194403395402520340073079357921791320587587469007718656366381320776142568721671431856735527834679926390027471486816707840091431942503698551099536449918918680025066454359188845225667852289971758006062506749165618775672752081598435790526408295224171309298695107076256933681805715006332243946340997033919460025735256710068903823744376584217704777847351043790294006857789263035714499323752526642897220270530342395396038172928459733780500082854173858796901353132815842438678125649829747210221732594103755180649907737609523968308241618313850288228404963291557570363280103094665777429832969895663736047866005014952904323739403121538657578082502797569611059862759795144435002472727194901818706062407435344529199064583055108708152016539211561373346725983211059615588411186592436941004383682239020097999202499058689022738097096943762378748755293772614671022054464782620058656093895356263961640487654412055603620150237017077247281505926462838174733975643143598684932264703773198692135104146591508312674939066995668875765762731618007629448425925298126427385727090292164997844109111994551741231264035257320476610810635697740102339529943532215827681652475660292517277245220145350993358180945625395897490602143775670365266776381777801493822658992095716720082286870291406498932263832461536979953420329290591137455621066263111285823915631955761404307581776782778303008196774844827836295997394004878636480319715091422497599402607776882362790260711589305116245356183128621455199745118852153490239908156015938915044444839381471752259112078301619534345040729967140990794452885239280214994289111202036732478116879076664037206917203338864892393303125705553341252233263287016806585615277489092347224295421006246823897091317943018842951317420107188285603379139127149160369446544719123106257803459879772111989775618961741866842928412178115747844343464161785423162534479575624918254002991837773945629507196926282341701979277949697641945083148662679294789849867236191752684205787125382523769342789500568637336165664490553202789992303372528821676870471860632703341483375381300943996680992827755838220703283598329313123599699834279111199123848157098575473895966272210005027978910796205174849152216231983200395024433037895650353386542443557586467495594935427082126217120335100034370921451349732082725270098799415919365474689360975915934892770271096979938701252904611465000844242484850364481351011062865778730902576926596916238800606378285673123681101719899902835352856194826144342299232631886781868587763467286841782653398261468353458936356634963566789119623539273888848847167591004751186627466092157724090933159327295104363456699069565355490826067358066312325315878541888398478480555352630221739113861619277049764845374745190205926419976461034264410115232955947759260426216588935895463846768584710735217391170368615855295171991372708538529024455991244641923605806514218238067171820221436373796315237368335474986617154757977431166503014069661637105517303414908370780072645024860465921828228410510191544773478829036955054168796025793301017208710596147521010519528319457443600585589514319373797161408540268024020115297516510123246560919283136032396879856322308277960479215080293208548996723925518349328965563250531189017838650214911185274862381051428569921077892874369662083349694083499400686871211003035676704778099710952679883840864504488730944092821071286633611167276936040766003944680747214492464838216574860386383238106458447056713667721281175828602914281966035756279405493994178183359661296457200991669259310355913290931025301220513258205297369319666158672652119130156171868493171929686347812911335784343046862023056200233947306094378985490767756760608081676000379531563974293297924730884680325569606359179183970041324074449986704718090980615131513692236513287369957044110753277858395423936014380981694155049320176655189606381161990273656945253474604793123046114419694004819222983733176416985792508498836622925845135904282542070981278378817642823162445480958888973946274629104929395619343564281269385221660254743041459300138476766573515110221236703306964323695610145437804295116724932101946766551034985244530967976554316548344381174083228747185404051739684700511392565704619676352172256013357498139884878785804415069297942771707103825827262370074461277352214277071816959059247283536050327635395034059642469750825643029434205013156277063156463289349983676790626401659669263468951691791921513652717957467077617663522385160516933989552515105110649971482054679883721574725140825166276554905304080441682278674685710288590975591518526086965105362643998557415126354646569204806734233935823681326434297615582456830887230474951804929809522560173887742159270108171510974435110735421972086331350608662059372852649751055646106835781517005524172611201177371757842734985824036144496291236409178310935975362562412436094802905773900979167137203602851543114768247903959545195500850540068625569738071363615235325495929377746894678545801606947666435314282978409045621459765620553857386146292921972675790779550409572999166974561271278459847803678713951223535621887044305236038060511390814343628836672966137244849041249571228167447914752425328864578027305955774800288999961547939236467409989073807366493772387400931634809926685663829385724742467168269718818774994688658341511821606004638076092874703365655388806181812988539662715140393936557864861791799855515348600797037232574452545972904936716512041717007451697856881869547417268245106873008856286069959696931461253711878543198493421522408832720337585602390027874558658702625706901019144885412540676881418271218195055342359842134600286317948435718370691431798354351931756112585883104657366445154919863980060469370917639507218260908076536317322060334834010035581627726467026740050621014767487322960414258598698113695233833525639922697687745664660854006875095075251729937644270828133702709734786093504436279809761152574128051199597818232382067796256733522335392927550165839650203213647514944144332880208658721579017355723597127960248155423487085773375776189485980717968040510343727042578597934390244137338559396693844336113532579092760163508393671900398632894403531809870831291634860629631373498758485474990816919038692826335818509169689258444415954367196875971618267384597442177723784643535073594106029253318024813730712155738707633508080591464305495441901410686613639834215845174050699074016416742149645320122496504103998505630476137449888060777836792481846876514426122883460965388004980713553703994779125059343464925056584625275693636870895576528836136211755505446451594296566416333068408137719801334765001916932022726725123890016074739136489865877324030901539557797563276351698442711294897804228928275476127113074996798549368775947204033633101944629725344492967136621659179677719767180927476407431227292470060168565115871515032078012064272738607653491383417188109317925962306405019700336077925232741977338772993318165551663975063973969083392780050832141381658156793819583033811480659535695541882222619909614908909312906263243734263448709079142139038172817693602221781528847957839440579187553988907991907987013073909587931182920608037024807540082860374645939156115251104045421429029946420013390832229626053464297139338210304117714841823280653855960696363577878493450821768795256097552470819520546629851685249559445985135303294851638410469746493375893288582598912537094042156771818033288893617497202155421990576015932873883019524957048232103886750900234683173207474871884505160148110903804939128846377522291827672264503597542085578216806220853800861589049474684314106690812205392950272429698571166206783327997775287386771845418172736354123815897456612047454470928247999499218120854341903923385363196818664625889846118684554887350638775689248514054971630801235725297082858083294121378200272140309427034284965879721536865413908925147406535122175267310688472876448815140104340763006992380026287995756587124972718600971096449574490377027726784789794916252924042574478598840310753328756799221106563131312551804441229461785548426742703180325102882982330269565249693238470161357337383610760041964819579692951504297553477608325882881331937031119555576524731865814979551856374595135126350797617541726085758321996057105739345366374394185592343501687915561424877027909114672952523013311277981205683827747009367383486796259809032856851525322122284091198364159221775321942528106506195719700334789794157761633182657059837907182851075384481256094143659937826692556631198163269243118472180933983118020781538135758944463359654999511762128149826946736615240562874546011832229254558353080027469033576883965673164855881483272591520739058770198156056628535281902106886786370529302143095246117450917234863250746777392285740057384127023223347841590772259296237515348245330286187413905630109751036041357111580175205147901729272300692940708513379646600757644130192662567947395154334423937246432665439104587065138461271728302381564499294025565812333811945651580580819393081352827784358533657161629384755762955238541507685312601398824503993542735722362127123324757853389520594858164903930835152955971352083305232468076664879791048874088114979058332261977546932571050875000951593978477586630433572994552875742706503139320374390269546267244058560395889748030474995246272974868128929473459363634954875274255313887262424057810189369426673542312987546276044154040880167002292234947329092651123546523511717696319058217744885379279255292917548201127527289763474521023256268305303711836692406929630719112024518655078306321933859185066315619469101648071117052426320015421538401812909206176246948324518790006065389611543576112008929685108150308525443581341795928915814923759597480787644102587343463422313174404943913961201280431030689637878454637163588324614214258428094533085634030688747767257902527601515461126069004805908794657811775039625448155615970947214242735247334435048516009526915780286930964435151545200913635059678005713137501660245380231836869141503222860031655628940360911215770946495334092002420822449448704302747249898315534904510151188488277430780257743985648523005782667950874009679935907852840666035682682298217190711198795567749767939868170801639729651965876201721561450908050975710601310340941594942217014094791748748689703076028368789371428364125339239481243743533471211376144243423123882270310964497811952404707053933066335140260912722816479755389352894118397312623856988791870341974315744687463857022381266532814706466453257722589259441990540376600341250012600269026170793388110330011926267647908902200678781292737519554979645859692698865594836964489165778333223596896185735912104801987807162516231270036364116183517563343150561635552507089856377951094979108270842139489277934615157820855232459696102427541361923424443839402846071804218488018550108243032622598125647416760394619366969524775936514450955438992773161505633176861405855716700536255373359037782325377349652887168130656731314073971579552375559312371576544435094450868431250393574641676955329379617525269025659702838798585830896436950165405097997732421413856978103053332767315155552457706683659518351928714148855871116731330097987548198399470099612529653039129254820378247886446541340068997933517717452363086132968541322018884549256648400551859839321736986639734116425569830361827761595388953156259682753596460990840024983507174290085866344621849911091179984612448206783273042969222605952770633890062334209530760757596662349737082211188111496512289818278102506815122912599293528844709615347173196361968541945103728629217545584817825542828788179560291741620850823805824313723943522378495997766988970727022365278941602230735982368422413089712013356600217225915922497338079868321628787238785253911731567664983247077945097983399024451084369383708643869264885417470948104767599753764556748558775454072074541982689802040460797420491993315908855061891656691111229505344563657910740182380446010170427188237694993584702684257832350101589353196692874982565876328438873892262981985589099433655123223123234298658923277057852337876740010976503556615735452448762634971513644018225452774270816649223700646160408499645474028485676863239542432597876307637352928227356574827202072719997979385620122733879928668772633281610359158559155353163020723275281545889824201287228867791329224784995019114660936531461325228413842047634925968506201112269841985696756938166970149270991418369920798959985271545987604760304317254760962809254588886028568485055482750917870481220818918527059187720779236018183349559480371231599896200703079410533632769692799641239582089951430344391842815441756704037236241821218242525891123926898367511743431393523571240543003538619202765657429930923377413053288731710605678524382116069345362784473321638802047249185446015435751200637935942370080038423246390278216855789664101395682990345562089417582112323882623659277621334438016024702290834840251750037012921316040127815666640150623802237210423238127000984026888854769174804532411809939961938132174989323176286231239211930990547525003947483280285115112581284845954155556847040689545972270047090430191408546167841456387044025830524086171104826548308224267545061695787643188741592449536998818633375557609513660099223363290265693321104382944408363073709246174720762327616956709722175578815979569695886106281206355562547504455972339391455988997718062071313318156185057401031641318724969575307023110933695424648414128288984109599790422604518707445358262295963925186538775323212254825763308593098359084346965940707875641423582338701570339761225580873843984855378660382602815749829935837416013776650681655348403534133865452943918054850631984448320227165468536127841889892290846494408441598240692449821077825510299108215061430622663598922253391869857006792260410373273448346974656904979011471510131674458830944674331681694114523887513282567738678363397096268297198387529299264583030036952210093697345128714790712082104742914135579515084071542617455431858581704086793032093304023235490364897727578905520436549120424929884205904320187639382002638718497649037466381570085484987789590453582487403185372389308661834081722399005648904982110061658670153204166450053946019710752172881025507938712537226314138473447619409358562540280813264386206234871112970993057984043729896496377107799939228756398529846754635501650579486770199913215632090300303319707761332360566065289369060928458078803599983196427754672612694250086588612411884054092990463599101654234408829310053154746487992529357204499801756397982250704922079184871079245550360115667145501724960656467477146872007530023453452772971598636263791834478523414780180105041107311990512637325882508901369304692716476977341943376622760664886258893305814987154749796857876549258590546922997595577045191979376800116763493224347967219472775339506481835596876699785818981091361634025995984164984996693472776367981521994350951941973971811384786194246009013964458833731438603519527988284216153040145537822774476871883092982142164241907979713355925126860554432469626540091518899005014983510217379873936450722534804429804988457510480572749193638230685474411662028087347318551083819405633768139936827718302400508320958663017556678365090152590960627392408922841011317246286457389236634926945413099443266943749388527562134059962812873205851518204190891808436589459985376181247376697435925485033354489552092718071560462494115718373967887299129669772610025247277467056494144240650782365674431825199590091667176608201036819589433959099778077707467381161433561321166011062288786414017974704702491130947335686477864185190155996457492095855125734501682448243030199794210695051813545231420602480157937541357879092681417688098381491181761578100342974684092658127733096616302119820672588629636755560675848453057465408738717048277135785639176413529142358217646407038357703626405622279428531474685752365318579740220715716471348234249647679231840763567881973118411879105565066488788950634526591936955037123813441744696958520246172071486613240041156760990552739113289084663967848939431044602537722048220262970757253276174972516484741550348676992389514978274306637953396042313513282792072278395143973597547651551681776991703540009258023099776785970236480888771171872211820861224017741489094701011357649560982183610305768100367169879306685344439190709950726174027292212812774173067498639718909764211060169455510272267905666223682019098479242524258354526052885967749594561367686440254314887543712632689781750347680775438314366329484113133298535251562614597536294417244944749762308274739216837519051473373259096662394241914802612339112185474840880941123605606821184403750445281805899162637571703626802361721963943730450201543958986048835667436393455353283854306923641345253501967465034582588807640570983587352399977917498420017010166490533905442882286032135528349550375342129486655799992016433035358192260553076309772647303940184731960818929579394000748984297480406678864824008864278475714569607544814930209298533233695834352850013820075599014773996958945436308992396852390172535882695278545360491895814684495081652307997905371314129357579394181502413283644926260051155929998183513990147680363787295806403447022581206901207720152745183521408736088704810325248320411844613857947902586755147999493377296184001607231961411466970986232111191705086650925593666609876090792908150369079713810376134874381207853270365806835195705223718534952758854953500672901277531546017021335028296944971586644216021504273602004044209557673402423030091648060985485803015112276666471517679563795516950183295620958981455971238751975843889257528852430293712167226250219090786416533607648478452336348362594884805159851432906772914509324471593263993093913595950179841440657473778709568935621340279973662640179356453686445165999240504879836948206675931586056175361821567472588178343740722962304187456207799974075471190937934831075922496448592503407703596792016312899283337306956818907757709549768824107858043857004855880291274933831310863774175258036196729697583592790977070216209309578291182313828920817320289915477982853841740456853736482873516952281647214110773068175838363298186957441409452795486573868080440324742363136365868895310140526263321272110970507651366029112480789134852884172871957666667994322524161125300881450953711150320350460624279603812507384532162855267107509550124737992519635314166930495683061476095999016123033270179166376780479100400765670033410748960512527018778485462590593366968058308563983663396738579456336047998950294012408671811373568783446851268778797108152291505650002979126239798264907907446742904085822108653161984542119771173427679655522494439096456023010432748161565102369377496809137449804194143962714258463008400642497816914288077230678088979288260202523084096970417576520589504130096610169885161845320917028680718778536233422265041481171961699160670785859892009811770752571565894050728393833535707189344430156053071115956342689605833512867293293065045378835170400149232238152973920584571654257236306016925503432461474216731962998741377151147777753802971376048599299585403670906933696930211801637187587528574080932335897462910880336841563862403177331333970824642928661942620514866947916047508275451650444297522427827924954057010756290205232242929697653517285579904951029295519655876926849603743717215603209219841438679463598660307380888596968721002686861092160898611372109435843045382119274896849955543674508035672474040888248286601244683731212747025801373143390274394198866632248874504813819189819445918167725498384503612751005424333555208301508680724456168126174092808606526170808630601526834031930239082716643831113699075015052312343209710904811722698644456060394998509575063589843472109050174048794827043458251860882980763475356089604757190181786206340260128235165118900174611327351576086082749255309932678497648272310194715105394357801973352417092753932245927710031277846757485724156198990621798166731764075438571694895565220984362006894321224925642139361701593299642405530521889079131451049127321302015264878645804493139738077617248356680089656985406492606050172933815392884518540904183499024732779382136430945167467251917952163389012245030845798639531909744332861796224224595675004079827641586657208307795995339999237802119543317702639043563027280060885352933183520564420714420003098298180101537007517036983939372366494550830318565595436994782510793551945297362198672602984311992032191509262693414193642124220018948978566624340700816293696604516477845987477823459720797252032525542404471103266835867472509552266980928569005563995705682104176375178097430740084773100478813561074186851781496387799919066237158697076328167512161251071302600663284917513205379856616043854028064603025910625128527856950655342262971351104341236938661222007300226056463897284162804781426559072390616483701794221776915004603959033706070048151594986722909926733013580791913923805824672954347543113690802621160398488755687150079450271482948319318398297120063040302328865572763814213104960613199580614273827669081178469701975037172227583103904534698376818191098543441118044232612554632459219238363934939005936717335303754093822768120293078691791597303589646307480293218002056815708692871949252257400288968152273165492022077042261527704769700585360547498516971131071360841244518901740830108904066812988887901378916620264655695530680001993287000775749770198328507360031324492614492851244980574638190114977567354458587291318942339781130326373427928277649488986681664070425714881733415634897568434512689172266198139807700545432127758546603361270690759429086062126763358041800301738335330226644552578051664775767043801271393280818256843624697230593327936661190763394413816393202583709333752289526015372857753402687544216415763186760102813283766324377136390329396922805993687208610967921510776296343241152558520939032061119129892188597257881594139438198264497469324964949309622074593012909970945598882246766987489336790720868489126351066233812948978862392849172714694743253860601744676745643358593745191229220076439728528030484025233909841986087712793847421158435710045845046272588020347472032947091922303530257664677603819080029984220083777613608746679359372373070513422918341191364344100333914303290409343907989125385387533786963327903482438614603788168607053395332510075564705693838804080443713358584265973779200457158600225538438291436733964256387593863350666253390771222470188946207001222661648467481997746062273407161979197693418703279860365012969616039561608749635818692822490982731793888766275999907476385161615133108083498167873466003099879369163336002075204000463731536037905794324913676598560693424228358411794674889602450067769551562329500066853243431253063264451119476376026016637383408248029230181040021684275223318436662110799414093176415035041888613964286612122409278557538402346855831005542190343038993550186955627675234383225037998776143200627616260525364036075824888702799635623373586286543086310017748323403707526176394448191890223760468821535385094957242015513465063456824254989953102471931996193248688137644467022240561356640115702179772458249999411465660550329676047365317721673451231765677352739728924042677039476760061073940030548899746151235017845835630409082166761832048852844453396133556294484247977270696188324559004195265945250352508958672293024504651265984355042301307998064461511530224672277232923187002244798387298326778869919262064054568132931878921927379393370092435087598421724159406165309776299282913997353820135750868742894881253758367772979677004069361660406009510158253780821154824001225173085059326418506103219635422593879616901042728822736108068671813986246152993482451991422054966190668228187064151621301341956794897559949126232744116845904070382615442658111962767536715609153398260655349399549118161132999728829348597007896752433206187848027282870091264672232471577001672715416239152008862998742440420463189191737926760551812453529975881877341429844981181897788372538039028134739396462846305437977538946273851816441306957042594832050664436887701798992819825922464661481302313705557791808240491078700060159558594015812991129680689307612064691922666730812224221565015946148323635923815169851029527821658150913587992710351139482316881226670731265581338037906963815043680628040122775300058721678535150405041096538050323027642904767070776749846511988499571271574595074007496253725503825053202978428351993667271353735183444670523549161342517237752349416381303136232393073365680369078704294723206062920176489903638815893444491451851733805679888734944313489376126326328618285804532657906657073869375041900996097271985239086658555776539766887484568810655849766978422611077627457524517214283163501564339514354929277585478805638337937878551584406708780277507408158420492471289133101711016285735651378370937820668391398441587257610825250442130783785017394728490703499296307971241688294341220987248467956247981345385612648060108860009177522912524863398042822335932681334859027207187241914770461657433550000494781877291111598910907616013921695275399382229451536297780661778682489904983837559903229616797585651578094896861472002931769296305712628805983069871436762267764321416184722293007528751147502834927265081433860266087665236580543650164605651136406748377642142539524125524625938107542355196959688677893439310790538994848531739005745029317502434510219657329090258454348380741746520918906140870824467973088830867428504374549697639751366681023746193989632645241701528218175373894076979070690995750044445932138993755723276652312564002625121021435346438965558588137908245894785102508197604038671350942332331745893086176864961124357203855766615630061190859910859294913425192497598538685581007595670530943992110339224430096079948397799967950221077264471750307185765189598109791830982266716833587622688070375884977925353758888047670469926406269678277451823687765475887658248279610402889518127946027879750046120528723304423855115767895720981178922354601014555499886606466551729828392481387686971589849002564677071640157714578630872493305607319930049925680131168823324913466641000411687475148207253152320828851894832578424917974419903021655650817159472348673304351389392109830262029213228340342450996694950934857217701512195804951243474250396002292045903589878208414058685453154297157043721800067711561261064296086899492645022907343762069131646758811515510760772519265731946116701608452324342909669441779033664787675037081247682196510018965403466728128607441713655587835593893343767993762976068124508994950465102110600599694255770952955778929791639486315738246978371737945835748141805252699047635437200152815359084942683171865536946975304370460073627485643257866880363270806975023813783094586213990154149292882857285713773313324157518560157871430977419044006162388036375530584129096925210040648230618815573607579333004381271009335968420055762264474973779504140805562499251637362444902373273737350623169260857090245969637398174351690026966195214762592231155033607141344847990022386600760312756925973630383629018177257283502286226847075026811482722718947368536634730628451535993478876744992967612305033480299885158239435724791187831563656264594794814706755655180624202641533448269589723760011349914340968398847697936507371751630221838657945979680725662934978005528310290910404807397506576548298244232216914760272163441394147556565949539501814186020174729920151051426452606652442486033821773554371871819035851102414457256810408878941986598505646389072911713281284451509855708039842177673264291509012455023006940493068258865706096910672289256898244504422964926669864878756790673484602726368644917256829128107789966390713467925239035248352838405963447804969576828561294968150324205109017504817865258682922907936508037174299194293269668380530032910263426406763191135108132332273045019655717581928210139309559614023468412265989791135750039819946655003310448299430961025964717801090841787459383090867611074727660079415517689947475135997224936096300741322415443415685742841349910587768644930347938693872640192307649743533165180540629248985627678591117109572357459242891660784220641729830003239102263040623346201494233749877517076678173631904577356138197527822242285775104551954602692697073081274483119387084833413907118697955980491496469143214382871084468221241273337620613932049125393403455678766024123667567024955699881549290061294741833905971704021750879883154041374662529763184100496379970428311476993986317901163736568644455002239373885308391026588948293606956412072030537158829790933280043101433688578354078423609592612788717312929617218497719954009896513596675211062702826722860667120957343565956194518983988657903701324455783417646137157842038006150390263557167037412957080821813123616783592564345940707006495136860847958585724019245231807841743919934814115143845304724093320770222225134243478645745454773443097599543839589415782402831965250385468116449236978956084743573026343680521612193996922544094624817069225892249594135821530956386104056820953251791795641966522136114451166365265317006582894229517978299290752149964505063446389209220266645697780144028440638475977475438300174245388594392167116409115978563490756018289861526353147887436639984115128160393172217919810335983223679213048730057166892781170925294987294924750990411033575674679247414139047207329424626429255746774800929061932296309647264469481818933743920004234017857803925831951177012248292065228129896430610655417731085771619190887259637246788351253929940538170141321589970151529334638945598601189744404272481450680502274992955980912024354316641153164129759477706306121713013536861935842444514694106305461551049393793342856097512726029289676981595402718799079492500566773892356609816154308422061649422895034126567890875370210060076739396321041728293493947277020200345643659409641715603883054496292593514293247212593779411867307560771914823637707336327462573965522640655881920655688364637290407542673549782234879300544995144532039951351007632678383030724099079689086441013944275190486992005290967135299355309190587232548408074618854469120737333269640086297839439779070240693171953953457637662372836652570093329602956778229049173188938611622949091350894209156467154252070671485202049130233333686055182571515933255415978759654628325903278347561564694158056730204366057841626114515831774745747753757323569249434065782527295368164534870195742753688172777852099782132800548552117120286299504305766848084743066270803571040467182614493771887097628308813030573204201601578701933577508582734570379277250769845477055313179061625673028032087087524705910394593522417822789006312839220248379951119744777421340395911702917135175093071468439849925338109844343909869353061563468087311907065893938166304546564035604465384455709073768623605911995454190822883895478329496666707764084211030652027523669447166690909518263994770296548679026010565495317383135292979593740372780003009167726647092343115771974711658939830684341423762296579776365190190732055419656625318944263017330594721083524723159942262467845154185753099827243049038081739777932501115572597724842915058200617255609092824020416041127430161802804220902233438615554910296077723488740879361347424986189305714522252767995965776248706146861033757272390623010199386104873741806780879083920988057564642284192520644263015890843164538904689655172859901709294488280419742423176121925969525685012824386342960271297665653545673315769793320098786918794408584556650920565480224644583572408791721472331930464060035441145106467483510941603190803116776947314679709701652465314048860562315294852987403385438548983969399551601306131238027830631695578547813486093430662978099019494622959598271329880968216448348466138696803041258498554157925080865855736698491808908704153780343987670623150661765912158172856843915298039701019797439459429178367984549623842215726244861618257435525532127736800082003918758838860620577576687116592162443345926346253227464546646341267300476393873723376606925355022947127040264045764179576256915852326419065081775085871093736306092389162408922864400822595405583937756430112936235982100594652516757464254422653901080254353483549052830463234086739751744988868572833111400130053029658294999006923620239317227533338844433140856089522366727733888048596028676572609386026397137024697490378966151566956935645098373305562586231071406457157464300159102862310342115416998889015255894587396559740533032989991373287159064288292768158924917426153082421489413858111844629242990622827596808348499736841988262173835325598017166535293092044955813019893910565639251660529612634575512014526887792516719042220183967606882692618112616439024347085628580833207231660698858401454024771178641951090491191438696859887387120870383503648123230342260477605106570263741809679670404614111428309647254117200045326847484541591294998872556213727610523250260753611892246867921733349705472743730713116858292651667065880979810385938187841484773550090515036296050948296681882444650919267324465321746961719918384084256996072564954046374817414935357847853291524707348558691621277266818167134527533817076549211886807129114619565633230809616870756878291596443244586217566713481315102342243899962929773307687580877021084271481555461332170362627565665593598819981068993812710694716400738601366686774574066577551510750359514619664625093876504494956499688435048708133204218128937208234298373494877307454487567692947541252478598483010709595679082681967332983064774518532463593377726264884308782463523520606818750567986999252409304615524627947958318990176282334211231541225468112572578105072769227685635782859335073763869801830673037051610161284782777480446341424867246843240403262891420802904343441355699093169223197218391193825028673270380929626957866964037079258154459211297288373934132769416293272554894445775689155983745901170892814295283977013045005040309258056555587646607436705969174781086168065869424565552343846064587134449207397183495211684878937141724285559472645449205933233488917154271066923485137811477804638516623656002611363464318641540049344154200333881537495531150839641298530732051877643252508632285320150945906831874594504753882627212073808211102855212281528185912943843899513845677486787934160767937087215287689735908416501043813132306898907057714002454714557498244199942379536967367662388779206045426099747269794678546385460255222688938273840064401620491828799207371554737142557059521986895296711973193153747994639365845583291745827358077081585793989103009510076795218447523707807837891350516649253817140925227722842240729885551351504206250532560185567398180453222547718512624512258661796840742681429145132795659487029101467967803216534954929223365637549092727051234616357876690740430509026218982009043602641488022392777292478676327032151926215354180042645373479903390559745691225966961390184233856567220339694733570770152958206587503857941234810828659859976272101126955168774876556963754325988056254381633385150076702690245706542076726924397093982283357673394161911343260506146149635888068845637844639859642736449594031897232748030072318782939942967126296652891622669886966803816649893942779831988002886839966636499691098525609476579328579908495412030659603883665035665281093479585180011229733707624033715766335502017594033727593223413999906207503753188377466032036470813468105132818197422948411458933525753269562319590050257451183894301883850343375224602791358725204210479369865733883150712132838064898030127096803097052296363012181607390925917167598459568654173631743308532892429583252271684963251581007912033378921985850892688613010376935474596419690865700132450161794031059190626930982045215563135076496442747919322395319886210493409011514061599163404279637459880735176666353089247281614077486581392934933322682305805583945072831301487224568921288327364055561480579583709002169439539763952513939684048354804968188158033132303170105860083094667801388399501204687341451227925578743640298308876627682842739935153438681765581651025046698056623467869246093258923177230366864334621431573586405504811776121216118765032020943350317879342784598787417968037843931767793361915038572634392751945864460025635186466980834590886535457185412662446197680725520292197350830376464486817848859089679586258468973386890511485234794375155708483225010620848304064676442638257813433246357902437747391491180583623144019569186271842897773438160178481027336098071406497689648331769551882216212911420985412526114043764527230521521524000082681184187302283786343918932079456416107706891005831694337687773792340501823452560176489927877800542350390785351428840199688037275037049990072212511258742799614960271283640651609632217624480884198925073367626353661288852703320796993498629625716344265266804116678939134030986064740853389538913315230960681758937171147701727573146375124748231464288077244348975753570075947733905934830019457637542916879094253074769578937720726686069480582917999826701444699127856857270984380650301773222923419273624127687927208746195557497348255347499911487987587898937617749992873641449327866729949209189683623807691482449513482307587045557436063583688521357798538875363758200256449503941742811229906588103635393902958429745993634311562656299588331057998729300228181633295029863543767307517659227066164246205947861801621878449613680592276603079181698530376669111432632065479260972544138749011510987967818348787735759742329930612105579435182138805460914942678286523642768478896216213756241925515827481334810773367160382921744762588253198751319311528532001997832273130440000706049615695155600579452875783095719257213069589397561934931417764009427900306229431833842714340209097155123792317684014797161598154176031123343659684632162506333203363725748020805688691493707853829140414092240560626829157413673478217537636346722745481136873519186145005775799382819917027510685478531373224505044436197260742282503274797736460225790900471591198802450726509302196106335728642103726837462878995256665875031332537980884133990559720008622770656143997006620281610434013800080196626455476698173715796839382640119113592973742008142019781666114945161543634442726382774798098857452053221931834607198033053520161958838522172788812650272455997961749680507219386635193660765724066064704645611675140284208199515963423140471423433407753411306797576317759584138647502857816581843866904953245368081174947383728994721107754211331808423385013994514546627488060290773394318486052353830525500628064951610349597319212733108776052920092246772509313047947509464109079346546821726869829924769650998546355060475131039334531592992801944871986113089804805218045891615669098733425925686086273534942092858624491628045858489241045747188456779804185997194880520712141794534580208082076094890416493121515891147364166034205953857617749252660425578233223965944451392107099832476717998408616745778609700849605073922936929025168800565494977117192911278854041404039929413579562169277565003605046891796840094752444674153223897905431425149288530586463629641898700934483910471946427518604853512598080934973777735820285295350697211481785636395889518407482421843039224133691995529766345983180430225666092817455879096877664597231988350964197052953577165756484221727444408190341999077243099491273985185590038792661539259915083192294199505493903817328902539162365666069560628590205454635511498996639081387221903621935571940393939290763505804363582667808284273467551910401707495464350963461837465465181848727693998030310748004135975920863067233931503724215454260557409200115963969066943274883044185170053052181242040728382079902559272948589037806083821343813774112578858561690045458504878720010462550203447843217732246882773504186604293803186839368253776674909345472334891396524808832916656563803957214238803089451778611719000741216386156175706206390440689029793619645498762067658911660900768964730562519998622802603543887135401322828293966525126559165352501131556723090323608745209266869675772659151475809186196038781642682952990755646345133445439880233410796775979069641627564700485938599293030572690551589391967167998366897069810932734730027297998646298697693404472041270316207913943514074601324601065430272583592262227090761708642261111333892598920728839184159621718489665065489679996843331496489103296588938607951552310492307289955430404784132814837684410964410446161532021493704212468989440041625731898145625652975920873983662961691613815997613862364257059979442146457821329573698347985307040262745459572836408972842805723391526255306324664646496448122590881960650967955801097886632130717953639311401296661455094389779979599228683406225570657449598466425018260726828518983151849367675567362785064282780397136612690123728453425375157214403377590716189663200694238160458776361276897588919132014080203986651950508850977523046184072054105963284078584954058679874181578714024926197078316393066132184311745820966900077905951057595251753945315724331108700868566345329118457280588688438520668194578779444763244682956678909943153950153052919454395347431081682279319970031875160742225105212559919458685801105748855359856339586020851435431651653100996650015667933658631509345444542579392903365268476267199966191538567644737070514552735649675835690447214759308853935276931173589036571995180660312235942244719187486714098663331358477950218518752092675255838803043958633980042635152858805657875377024546411108815455768539810284564988386746833706765706988994215075507107817115960368008305175650456488597531725292125056746153736280061706616334232872690612838201337265588349191043596382382653867302615563607278342382334458834265462547381666178787687538915899466144383805122877624175368064808203858927371565322796067889058858591118606194773578431746126242469205102420818373777227675602958180922987877818767567934965074637451570747652509370000864403306266431075448956254306755550575711982503235603068264036415168888769177034487092354266579333965470751602415750125285870884719361790208063509915867066507293954837989494230450693987397498352754069781439618661133713722856357776873244813296387134186608253486411095806678154484450498576998245648210505132154270976893639096140545996740320429656310979637208674618432610777284711901952654877781161235295818903814708437718638344575186420678091812404783591742237783808001727361329846246446398258979863906316789750979908444161030514243057527726753765371665782180537156689757198725324386395653744757801769939901219591353522791300451926969639023651352069254301897492840268515535912614478029615845359918963396189442374608819857290988533510949689424042676627525300519211151759234898602583077081343926569084444236522439742921192591977677988100135588708313305889073173938908507018543915791806437656100655990814009594886423553189823514025541821703729356762694081490860220989283499517202595708465837116689494857281289064186679834979738258795987126713247068160931209881783084183004106768936853963929697315909986109231906355183697108026083314144733638839583343622274690807191239925346949556837100268469984191840199076901164638589021007351634453935140225945765674284828814496326087668664214309364221483012729849347522664083519920017776620478770020368955911479216421229841329077712751708578010596675665443795737950113274579053848773385416602688958166770514122844539907814205013022070774706226528443424300806698160543055379236478604194471666616134073301590293326122223068069871869596890737613244213894570182969385298837434235856891725175443169654140436260212347697483188573077283745421754147184300082979707119215657575561925955107392022579625898837798148715766160419591752687519750717733980280387005418105640337158707573618103008330408519543549265030630966045310995926148273872763687053093952083693279433512728638640068264359628321067767309997457726158698578812811503936140711129268762235657467302000983100591794072974559712401758941849502439200928838579446887761975462240945993070253339517155932608987609002554053822107177018647185522551073332344382306006134868865550378519750925485347058195936699855352268643067397796951730936263692132655474127463249981829802301570375205194906071113502116336887786166263272676908858410738307775391293870537001818868888683049170570029399446314843447008595560233784372458755439570317723576382325227486431462308215303675420210682126012750818117008605828713312012200303651997581852001949448580011814895301524047339343227402802595753564790527640041861932899643873474511474873801445863008757656006647597728784551692432003174435510788960600029904811238095111607474246273001810566466659741474064463535617669784314916495014568688191787751620292752964388644057249043025617050838059852042119295541279221524060445706089148466821440638540135569361534573611465377070402155753693486531884224702791110072162730596084656848961827136641965720284975248966932428229863281696265483269800919680511286648191311870318902155943187725414807914298960331081206154282822695616058601863003330856942551323415142103015459551273408623626197938218205376629179611739434172634455233113453958881352232541080347671857841766573230325612192414813425451760159153261958899232615538423164388125664255537534109107863098170329634887010831282500511095086692663710421981177689142381417518267674106756847025496955018600417046807349805191677894824275706976279407593160906904399470681391754297765320458875800278443505268006307289616476109427196246303113381108974143301768179465293229902661775295600122097762245349692100365600663912358512417720889418029613834790759233901402740673533035017982921515368454359100973186306863399554501596865547589752028529683916646234515506944412027084987889631062261601504989248774290853661155561101593587729512400052931373513767247400321832772750257529265058922005847660711405043613117637824675934346553217109410227797572409201728246924845945499854426835861117002123612777069906150735302567605621058417157509396638314303394460933858549025512104685868495219172919271015835619880569190465680217426004940127880170435253161495027059689690893867127871851492268384554454658818661158379666870446071746497615841850249150152706002516705519904067173877578669319094166270336613412784505131748467523793870740289279938406906748660277013302837015943551867175443191987628241864433434317683691481808265366712902664959279944064649115087566237647886969420584220027831915220673219123253249010345820680257188548660984278182084336561543137870605324335733355526953774441966698692795458800078250193394865299598898121801436557725260846227007970972226184477709515867794999768546378653593193800119310323401330345403785228676753597704446395823760891541734805313168852052424131638859106048341880451559097228563449231197576655342808361328489827179820623923400525287589984462324035709346105648472215352595056891520932254121911534719023468866490874161284725988466350340105715595270167833320128056110105350851273651861769335953835641359193316513349670246341320224715415181068836191575589284393075110220562835426473736997329253690487957326985905598708807097785626468168931347042954500381040648195977161296732406530352846742023528400715416753224220302640919445435011742245980838804668651506106281286518962220803423459972656340129517936569472147148537670963230512357261809966848048577827940695747088227761301560843872743560137987286187954258176734902845502591505802383858280275713095057279937015244580578204703882981055970595042786227092401327285404956080978547393538744686224620162099175042883040455268661546446949946168834563067672180492111753570365257299493238699273159238095812501291322156749798713704170071733864707633114823959373253922566045042949764824893544646329745939624777371869953459416680907910862768265451980918953940096932433350295946613432606878402515194516259498948109640845377451678830369475105458533665608716279004514359853199214345390615815672761891322442152450580918097817909297764546729801391671697827410868205783853017812736693173278646786713969412466539475663883444021085009601262044461600849274617517106149407805135523508014294481800097143077708958176976727773075404019491375023407474693737388214133006650335538233502804496719519049375808780397800325400323610181559612499281929294062863337961956117350055331558563986359505263180361468890822216104937101873551356621397810744874765876310924796913519222346096888148268140518650245074853409458670324308909040779367055040989032714766534477992446741140099644971168969175764258087884798687028698742576113259454523840035584437839189939225210466480430500532592499796430817630576728677542754356056432752508102158494756899743738862374415343135021394872975512115258346125568811788278184153561952624798431199340022120810750678092574497078970024406536349452603623257607025599727456898704578432679004267983352153967801872076963143924301584449066021814200539287700948342521094423577139379296573358327875676744889331264040933900680026647978065921121671563010065791080628645547643578835981016037404657363981763517774306417563143491916166527656511786542399968677368789853798223198461831936174117832433841001894158207763282892957121533900486884988886939518305202217645932029264925591948338071560180566619533452229000572652413559641345055525739248728864706081783727713444944599130968836528040684889274397377323890892469874802340777743707850833054286827018747444148953315676949955544363595551290635643351219553052430208580985657445325303946026841898254167054730610922480878739407143904444115265327732481329875937404964550703816793534634772307612894556807203970597187492809299126618405780235777355653181207893899002339874952719350119322521964951378530866899312534677003846780476796440622602552992046646161576014689274175797991269441820667564096395899420011664756980874001539629102527577439694752523946299439646373653757142534203066822783717246594117683710188295445130071099921335587127423630312157964660905306014992548308718396074487538587763095943969324396552129339954869232184910749521860917318676185452003605599800699686821752609559602344030532852303069024658137479396625124926090444662884788420943338064837127539850726610504334977563878201947467366783465764901415287597463190747670687340935251185361992764837873027715636294777904352391902337904337975559410560177950345460309780912033783355423547689297853777230151417910363434826868591425455972421366547811682271007339143645365364420228187878601652266799981252314504388200907971509106070782294553385230750207011518210107538322037973725720174369002981006764394810479474707858966339361069690099149352051430118223842159050566539600016913051119247334261334822267851938009403480132313561937344525863743241193312977911511268797033807767654929744997380494619306489642906351924515803170639238614561490634412272278240718694408998772974653087083251643831142872983848678273713238468437381788120505505527329791426529966021931276386133407699106012448798884182153884499290081018516461389537341429566001219092937413998871716137548998060365860815528063377824968643581365217196453098416439164338398081345014376183401500605390174077589151620495632622542339034933186346224929693880813613514056707039022463551003611270346966391524470271032754606758173341074574159888493103910701600018317111720283220584851861487519902137325149443413999625053975490001275963985177611356352236156333028516557263995512986418304472112200853130700595698137261787149316634892422231495794427171899113613218498050121169995513760891688551981025244962985214663482891014633497735094642704692820821353407010752248558144084485715732048734028875516479757393587169434206306428508398367389348550923464035639980442224192736139057928409318179241676569687212226624384154255532147828168617551698634216961191081623253191846536983064267140671029638120904365930306333469938668447867903739011801893436150445257546044651656200271442813233293070981041310416874382876902256945658325242199733227915996019912258555093500947108791960415955352473854230492966177475920382166972195121991974712577941658015231406756424717796393724723406323310916984375365833679432632584389733343657954487884054132642633987521872796721650404298008642457312408811503661937430502115098469154073851510083498974756030537399665764167403825179408523311261384392663019237230235826506548866158022935496194016567004429178569363239084068181901877634060381269734231026635201605413231181084021120047161544518996691180050643577174563071363923495260674809508978486495512965637755469624913012467469328731042841689697643565172984794602159294227862205967845871253642950117122353537567000357566017486607917321918615022016800432563276830000087276772487892946577604601062075929940179503516381474361051638113289684881085734723160866918121755719160362281455993655039757039820482953546317713160622611803639183761995466834837914509381119276378935630811269322590777972070142428032936251686922048293218171902528525757884028110333797303657996543190558709713142685156848073633750663318320968277014442206188079826563481752780198648916453567771160019498265242710110666323261644109368147306561042644000031848593378561905283880715265344006062810818240646463180844037585380172674083878799954836846932794980891978403666102173050465044847416242616144876636318871087121602105990966195007485597231512170824097995490220749582476280627658997734983118166917243936628771924912661045329759902136917710797653078344893700298061649317214767933905342389812976929224217189432972190596701093349018190321882095798189497104307996078101510614408658971137175524090778919182901004583842462164702140138766229842826993631899213914221952699154348062408564392631858859777263117542997991438393108787190805217072186876774745305084008960779264731541493741066884199899104997960683952609872089274291282027415921890916038110111745510251803323128335726191374144819986161344324236821646028188958526337633089095185089411927370720961421956152454160250391663730203447177605171731218482037760523426249698506197214090725924476425640601110512091433918570242290089597832697213303410672787658490342206925669093089305214700114160148972656283023096269334592810840503346066786335080973520216720619597116186960696992198768572291521180639516612134395793862537447625243792323098273814137637417170997518320122264616922399961872940132872476420604296375195233827303368977306418715734521661707196074160479032572951391650914756579596799385020404206410369963116630370206094927262024782576864205169897866304637329072034784747964237928740168769221773247891139609468844141462197809869210820527787221103861905269607727160376416173537383993227671023753306932599877349278940455909113267373632393554595405765697601350581747831541976973921096059184303763253965461579402181109572606614890268274878309864775077579261925042521307552536443606315101683978660377601637077298579923544536777201545913994347110690818340053868929135586587501401191016269939475617244694312233643920917139596642476731291182708917976308586575879868421466786129564318682722795058874724192529619355002871066507464058141851256542937698685988416280766778359317988889571223255885531842363653079141842989527606460256584697592315313479681931917341374776520327891838947932188713985418794554933015987200261782384277649449638982709168841958483317134101914894689006698984271688567614169211631157716508369387545431779160855928925631807891284243879542623598023239346514818048918369162326268248670011105779564582331864270559195238577102313753637204623913502252516581637427309603097787964014686899035141523139142659838550478126465129037670891965410533934670656516759281650801680343519513914705201192724192976151018771871046675238814014077298636087647762705963305657334282021456629159568971504120926652136117314109514732509021112574870085495060654432335676270031856961402377434601707916935087246255350172196196668988252246718482389944717713862190635284944436234055211996210284123928511338861968650637649962419431980021253086540632706016657890948846348852865896459890640547142349213440852577782031269793746632521714215902552812579484846407256109735588318762019993051236000750607235228854694396317402118033897812465119007819341139013753869676053225787102831109982716201014674530868244953776997016339696474527203454588170471878659749525071589427917734235111543042905774241535519346831362610159705678296055563123308954615507288021308840806615664749533852561937590903039556890260771223059891548081375602075689407903669953409587493874730885603031946949016640770955842445336972888189989483063335055553893408415476223091761137514301233051301177994512956240343254575803417343543430341750415499126108115132716393465496681667699879702858521756997588656262872246249009195099804940335713007102464578454698151647252584542062461170713045651693793908893560074418577244743056348912784877428822972801813449404725854702619863023235223531605263356407425936092207260686983112288664899032730396646705187843816482103186302741939817450557196917916230593186033888617835165737010611660615747546240981428059484680524284604454180747319272094492984483448270619023261612106087731617993734869758306199859175786356309996180621212661698933785626116328526333313789280566468027295856248250923441948319209741927096797497643490075645811069405091934230502982196189590210051635209050214497071911517587551474710850528772723672496667919351411795526210981232188785778780162805173555864327871120924202189778950186996902829290141390329022060414562331583247560902703488458456613188021942905204972691317125255622596547878056755043080938536718230375607284367759989175442816461874109863249458473662104966316484205124701129322733695338325580074317998829457568961670425460942079089762947621579047983229992039198807203874837593673622144923417214211771465513579499140478424482262254192650188406716788605860415192107873517860758928774109347571906443061657585891896684467202550675738631762347978229590051640147129864447448107937918839483980727134077225737112004204230214894643267192530541601977350066645327913292658606954837179775221899604381319659385811823474170850647709557022894055612457727575803787743109068810604604073728900976671258863209257677679534488362250611371293880200597688200429763528704635065268853496625413949578076019146373938195254991605323842200965746338334609710270453788188082841336223801742867455505041141082875991386585646524649499466914525678503659130912941655650151756134226790483490856083992477023038330495741537621892380312317251955761527392652018702472789027531019906532047338042923427656929715381714041704076228494438535812515534855784657415787559502080978328312319853848452535854063588018165123420731889841928135529934569329164211853366861700484240901584760269927125489411468187226478290613948835466034241448158732549271468577625233737088057911959017732479283168155250349102598601485006005262417489210945458257195155222988602717190041881821357486104195430020915324732996802111016938089090807776210515571405005391331735132322607925837279784528469499288621807230652193231691994860150078383491341541637600763100068890449786966617560302059560979536557097448013148408528774950137968596453920677543150703904097362606260768192680588610350943354910528224687570654466779980757615005462156995161201100199455167028291408717222917060016073936930436314820323071157276698957633345995911073720010741387233843719133093730431578541259522673836898014561987990223488242048122880332666280357517244235709792490984990765229273705635863050281727737292505484329396737054904617230647133147369176594784629882205750465508402354256417823487408351899357653309265571354755918156465994140967447915382190424333178669435201308492388023898718971882066375071554193991357523181184686743928579323810638504056595306162666579024010764860083350294014417871743701386720170220771970315487348579262809898842581946844519999497753765017320992401154607010151155911182250723770361941227439988273501978705742570870402008673519313449213905170175021305480564951844980441625169024679439219674719575728714507445110430663816645392560525880382985543497734127132437473678685971818706008317594308445022029027705723185335431164976275986319301620842119267601025632387237228007756987050088455407030887672610746463217033314802428725344548838533974958350249194308701184790597635991402803904332895322991448750807327174731728554254191927871692878077748491745869251967176964808076200891450152473889382091945498181848705457876077198470114674771116038788252535156036893270025000630126126060117212504777397062191650374806438148591683569803210631887655016875306534786411418712974028672317391752212657320026154238149482165873908041903077284550299764474424846043582738266975487042442409266581569488144981993299164216729086486252728550979733783185305990045444135823198871661487522558732306409189063221418230425154467860564362721190739619444296079601875523253437976332555029192304602273019568950184437678115136046403504975324109720693501207846577735413929231445037665252701345788815836421723891945161711688241210737567314745338845201413953880273608846733726183197612960081159115177074620261204639057956125054341457551845912840564039311714680477027697853139555276280666682353816618203415717468245130481214293033570826623143155860729205975295323409265562248048278546042802521205085179197417853232971037868837270848702317423428771021914093381642195321092151151218963555352932756662110659251520813070513936414648735384013513994167608914844704350866191497973462262871676986167758563098228240230674753486645117297791506503282043573839235818890642145867401753765732969568108052275784552804396145324695617758655719937860710366255706624967700628520345988095879868434488519686209293857875473286856954610179413168323191507748579075708544664817149761980586830783934730420082434910188159398955063936181912357204028762909946481027258538215446631226466115884160518594681546637208740453825305856237806467976837654967510783317286183324560002049427593476701507559502059079326197777541353552457963489347277928394694247028008474855179200367597056394625001474958132902636686775463133164043640828929565532450746987694707170253835078076808332661016124575996103696678011515380417163434293570591668681463243298281786683131324230641388368000192146528400116087782682334549275462700430563003578067005099150440856096402299556108550973953675736690045989976034609026678755962680845520577724772043727221902640604861100049857598340129482310440453261480041825226939771251387065205775377098719898451766159307720156388876533644848162604125119501238446553901554092256944047195960506873877401568951936879866646976612189789996161793158033121633047631828301720390558020011964630292224893409409406749618943211763459903236458471186347300204974135463768571782702542437361894456062513481114775534229767798467255016606438262224173826044182386218256452232811538657423817429800234059549088182928038227985955419106873634789001816836148246328485355316256389095530065420630953248759432549860874496760471484073373659260712601871779687700607040150029114860354109642421298133807742478934475529232049638094303695732612920877852757526454379451450065603388833873093191264698318612392179855957633439905684570308653356460375856755722212317287878738655563995490832132750960240529655217847014532264971817294102385943860058899992428260907467802947850019154294571227602156819400177685979118961326174694921522046836694450339022224824507896716065200593544843233429235670768029563026013682964542201775882511652143254243334436888933453419224632903851166987294647536116530839879628654079730069943467538563554409166686134149598636026608062599365712702484946854029679730397945021620116469048618956480696903947800985947807211450236017206604249834409245830475459099372776010256819364400811367807744994100465518665474383101851856192234696663615901011258884953098188645209288228640757089916910335032056275413779299675709514531429302600774714006006606717091002100833277298231774895826010992257435335218513420740171030486502569924188914832814205767273325564792491388196813601666589682048889494392514971459372745294298645665744518409949101398343576742090455100119474725479067492818628142253459371170457845157639422360532856486771327587757479511603109352795390117322794616821599231342641745781687512764729071221653071115884873948098425684209136176338810624417104238020190719712307452001379024245863760888642329495307690165978028970650895453197865740459330169713580891956546102305154973972643032639031215412817997024095449906943868199422713268188679852922719729170834289483388363572744538941779637118335638574132678702202051391627077980703752247198498309258998670301988928037142918004649496565903514358418054502509183928834003269459810439915655764085337756771029031454243810134500278358621829706295036441744044991007546039447791307541751222346818586169208352896149189870975200324331928925198629980292164769591367952502098212127657842980563120087233407423536294158711908961988776855736359014116564677905111557765421981609166426112234885092469872416982284544656586932647287574616463602019478656115586390106487497657313712189084231235959179903766825951662714809084857122287028920622719742855194011231860617856371530580187339401142601430249373862471490414191063509916197738568843576369818296476490889340743810959213449284188448704918004438018629096443057601029630296213440954130933942004895896301718617768709107507340508921590741365907193865723737288509050808385732164224397567963179390380509555316743681598586591147803670342267834131017452391404396129235435523763270944233096058491220557269626986036159916231153279224753814451196533493636474484336223611682015345322903665023898595660422241563238004876807478294766487291151773122795231871285239940990863551384768719069171186151366278597518963184464644886650518158585462669987615754027890445055424325392853983955697001987095396061868436456169005330085253574362527239344916331648790419116702939579449907692820110576264326113718540678878033192300784469411378361506046996957838229356642529962334306184880294826492884929813040390768284790613474236137753998413524525741156487816886326505213958339204426978895132150236400479740102044389995881510262835473743684243534230661217636777439539628059847254412760452084202670635053575584027283616531907428673508026167027631650914590375570800059196105121080739707413035975433869008670222502680965978225804608850829054180810571858768514211748706592077557398045619845655275303757365372236844954857273528397287793440512703608687936836210685414959713919182351062976003224337485704351356746004738556328804048592927264253711126730449739319786153098933165613842097662395406341425167998360629011801687691032359987461922326788172995223002681694771798893877379856243403047860718324438338977833332239819583567493510893473149675792255600842903177595452316950766103896409016657866636265129258276353472236749606707352814256979513454583728630585070520838578858900334920317106422126514097076952848133763896113238380213248704311400312103752640536170259162148693377090338441378097273953161995438665211794944088738226272098338962619617641288631088825800587994315148146581312608197462917452654591459104307214748587790561610040135534645784844908275219932335200792002753167629702197163292995804566979041539760532030622854211962687961661604089705303579269657144573736080503736662664106065602319957732151508197925922911145664695236433093279294112977689533488665827827758140858520852842184237962423269856580346950763107539116466806856171217050331348595043769881411785913170963079092420903518124238065063828124890550585330090417781008809052313841280764989660690323057734300816341168050349923857089346079664785354411677357340345167176109090957647522151556735593507820917535761096562220638973200588660549088540507306969536529826496106208266777445039597841862285368163257606333845598836380077010148857665698674960161829997388856825234487488586470293683643679636584018130940594945163942809059856230407890383266754931953530354350664691075803216105458901882819296247781072397168883256440919574109983319150443981223963369696594209157153269082418632714664489156817692853989779276690290606454297345914034165027104685897436616031520532690410855430706604833279247630396868761404271660680025228920483570071485021927763364506638687793291583727030430079851279057460754949505922885982459800928568605752228090446747198445779650869944813349220520403437457465737763908435807519190502315736732357956651946012475043384555415397464299907506881597683717904809283622202253638308375720889909950902139706700068072204833409978647179862509159095975427007039999243224428738706391199183633141043622564460961799889301460984106797490668767979196338117874849060908329657562156102814298665823094614757142936493463241424274248655341044523076264324320534963605812689457959546027537802197019786614021333073855683559643034160244935656752064324890960341807789150084273802136480480209394976690997093098115301473794191881350689663338462391919333766176797145616005857910947486481759997102069153206557208122335947670286043782856633521603563669059757608679799526665780811640642048036111938639173301118409058313722916141196722648294760746974242958015013953337652433944246102126197604382281408422936193712122304866269644205526521288574140526558209098265095212204360407572715928501533733684067656837041242096250951263414207130738283014796972639229872205891990125337244125876971272440176790421863170354903422655513998241985158456886351601601075222538670060239215137724340114469463433481378790878839166843857731133428290548630219171276605673251543808353182215506876703125244678850248598618795803760565564408186483010520453120538463156810327729197293616540163153913072082342944320987164586425702688794223901909000391432326998774780942530342485234391126465808048731654022078743451296422049693383363986534050182577986234073067799189920265319772087298959617289746487780929173675342860654253369042120247205891681420016837608563859514365804959161022689985771847070532721094987204344520560189315491263815142132137395640485816624924520458894897006099322247057583225527286417525409285309048251975331669171903324096360849910731618692447511576888574891121217573448042744809162024830641961888220732005087286389724077903280241158493199559202473752752788511870785524806823486505332679663841094123622169559896743788755174446883859717268758261465921040701260676600931736904950396578292788429088672315164180449014554598270392074726643446204278100044315182887895719548415990123624434128758889494034292407201561654595863117986953401176230871908379211221853657196990326880018822995221428682088951360670782310086449400890780937892042025000025815312776623962743405989698897389254968851429215424328335045683625513359050447967909855118869314911261630720582049719714108636956636097362299547361981018830244720171206292370318337980333820843773885073022330026611383816737183891938677631480910335687884609520182145263636886550522038320744994650084733575392820273315400183038133761921687139722681054483089104050177906980666885465094528210191723421306452225305857467774947562120307359393479336399757953705171577212051109421598590252895896033110861259959375751381458942303527755413245560878704122051387495220729854256545816692241010872131763839579315393411039433265172731506233163083031302409407837470859714833599460910512065194593309556732021618024411961582968797812853905420947445681243699959762171398280483619617918914564780755306818825075921157104774775167392771011385982316393627477697793412736232496736159138835668970303035235120297590946661771258927925103466317522223375357773392446421570870087488306583571248385135382444659792287414487432211267666688286739115060183215700950556520569092513071200430544795340572747699897122961132225508580251851707675047502278986083197555533610142740201820089989978907452714290845014428304057410816231336200561965856712283196808522183927840509019157620759747508442362820390376990923722441249406531045700218319704380327018261070366549460996352908992672622329376387552168962419279212522317971606530043124807100479514193593050520443939971075196820914673846806009117886742950966064750465714912141070123297903985756645722812729345433372781760300272189645262428199038736207395922916040102597907522600710779352396825785175361614975846631258621277633314117408022481656783544759686312269351544728753656384951555056530913844326877270083586596546057836753102563281285109933771446304763407701761941433540106518120081190767399523061519877671366511588297537132493931120924142084066597113518440762228128808531903346256681468247873885240174514442038156178715828156432600296928575978357029659505988399397973475841583305873939398454649336287366310267157870746145912866729818008980343470832725892703549186674407645493107326918922945092206502613549157423992066712079138437898367437886076307355474785647726819957810635147633319715942264061990994658281559598902309117920401203598756748207594273964531278115674315440065199993672944831154769853376412902248578636482284862097529957940509199599493165480056126821915692021278585006900064579070414709452892229437432716061196932931261432668957067121680364287077535643535168252151468175651639560113544263379299634548928885236212761933346721374705565942875480328888786657982332663462455942233999874940032303820677838523720360656175443620589890659392200735419929948141906502524559790270780145734173147321369552382481408277207616049676135793239881660476867336652122380939595194285219636125081514744838972408857266875158757784505290285155162233323541672318819024526130452933804581967683630846667383975352045800929576851683085234719458595358240264952804748674948921719464505125881778045755003687792509181835224059177335314445069382451909219158645791728540939941541486420770985491220251995561428166354059913616559793208608532222092006168527932654612204333367981103864046387067775874519617769050905337439579877680055159579124510513647099915456411271466470061985898234196345972041645496511272084702918543000696517591002536995607145857010556074158918728730929089590695733517893119595060513758911586782157560253550741058257737719447318186333878866296877941166162298031014251125104457842113982475309844655921145967612591861248383711016714429775775565876585865949968848007549666597665212463426803676238572391116703227228355947944369351317795036510397890555372863824523612498611115301642912081066197469308706669106088660667042915602463294671694158308381594140844865065034776060736502484549062303051301898610188267818338716416072408690182186549304872050587041054146348631849167418873707675696145319513097274922639819043984984072020008783222964121040651674264074256035559917860025618774643241406020735009318985470836125534465863707170458444463971450633850574011737424650464428324425604758886252766099665084336722147325696001163216211509253755226398512604155421625899770639252937918667471688627647727774535111174477214729212835326926133123388292255851997592478369155325878689688311036294036817229212475337619484176433019584364280992503174386972777530222088364024138257005980734224331708018536619421265701771158141740743811689623707705067562846105596935992273967216245859935180586473312529984385978028134593957746456308679125254229113471012251329414630585983674495613063208629504887444266394257070572181714438437312274281416752260383746801406820817790868188839828678765688421926313132306299810695216025810174575475019344083187642848339743501919948297544572748674032514216833346288313705937005948807173841277733776866134133537863447650197596387465598951771896196873494237444381740112823331349937588820650233695696986921259000114488930519188534568414614561549108982541953134606831648330979793978360552359954003185681674080632371803753303588320717587048327636477776483080653734550508953896042559395939333375716664060860613075729635823729068225152416728745227802833744846643062739183796518113351151080462462537238536419604916459098448850804442799558792137226466753334214018529751905649122550756273294003280857239561451476609678237593385537186529337703506926331448424286069587959608316790227814125154529832177157175311224676320916652399361538406882833679251348772663966220278485790576773487619829284082707924561898310116506244160599650750009621110729021981990659308358947532355297287413221427917649850264600254014786661184670528440038631145380650512168582168906400736518063991599951247157960804378962309940983207020409247747979436739589879130059886988532938805676406297175805171824338149802002626090011832166288301542589452555078833318520114040185328303578314908825188053665759170911098865624667370764304450292128458902302231784899321987295550810192460998557451120414968065139627153256514419500320340346072400847198795993462786650109256297505249758316614653956378488473302682376949719139836549775789734803860105090996834581319684009099544335225830396176511427427672118976165570134495175655000300179861509317415264401166449511818022668512607655919945064441302878345431673031349494085326120877499595508554386784190133860589496406447928107000771576911356994561938183364409158584608165919743821340078552893074083562422714281512948565894058921577325636470711458652331717181813935647665103873630161814747391835670030637379526973951711703622195128409249575075855873230195675629337296952687623430812166107382200660899245448414287937621406484390072014925922344485896126860295762452067651749833944183151259528472632811538820491458930753275679419363214159562844476678634018348452827132053651518570137030497924984800875996185045809108748981436150719507040556061383457522229048724050365504362356106806965990405703208645473637932624008177636486532773082210982381898409411377492151557621946073291332314553272510729785367156344078299177256893507767905841897733349961324851380441942966326416904240840093645832125535503648088452114270561464443617209703076668350437974691759417560216245212116288972226462956085550623277036651956800116362371202061192378446985009350045309528086977091328640761271223858119929144675581121845263278280355036191826081766084421660546268113386812105963510176650622159498779968838422140986052076923967825761798682812501729918399688908248160573073490428341053348634300005180443659252554043064029462430843310392930980301881657834988332277484559274364246389507877348398298634323310435957680444873919626021616771532193785905890168059924767757927366668392467897614551396783433390532076846121076530157451513158146716383898503448484768450707395327540813378695679963956060089955340384972900059413350006906644367940967773779614062398004295012739646053782728320257995054003953905922348550307633189503773849348527341935459758105721213904639996081351742980050640381919361937883873189935770414306057074350705144079442675668652628332952413674164036953901653430056743086330233774842632135164838804041655071648940384893650961204350334904566484554914739537130239076050808316964661738072327999798176155512271334910135968373617298991609881916584697299813786656483312722438280530544297338649876369520446302211642559528983118315771405865903508956482338214406852683480914453605320420191058080375351568509057576564354799919889267222433478032702845158122804507871423847862088414160751592309818074999489348717850805039207222197649497876796818085721470497440954875178189180156002252260619433601642776756208561297974787808596206719686754153655138112621654440272754038839061117398671514438328869665717701231490597199246750194123051229732550209488347887373581498696395084127501244793743007497147287945175302169826539034402340988118167756782797057480469253997574287521946505576256925862737771051263066263057458163210084146229561393865232172668369529079869587282497531304285100878217685545126787120563688100472974660902844418074185149566610127305396569457855688616765690064421434419068220786243328901619694868228969606594836068845311511271958669418469463974534809878185924736556889730656529717135754034858451332400966331106987446179275472260622328445774651577207502646155133733432954566875213376172047881216313096351772287124837391079828232583303347980022312871162867601015895552266772181871249629241088388345848197128934757305236223047321931244266438678854196988253638347546380965258333218730991130278973562175569870664024583792578100838778804791329644363447092892939832137475619740231668450583447783909913008869702392844220724639765795952311016747395576034544217823922442399241278975348698341349708787937385687784298646059738942911508412713103918668529951253917266679370032595290884013761838488042709926301988381589375455383082243951465533712517494912616314482199753261414907908971583969721750107175715157301745074295199110281378693330933806799609923300413076248842167900688712630714010913879743711138424083122222640375263750966485532338009813658995532683624465505018678322032934806278354820375819908797042680146124430246544350140823039990665791892904503401589078565682427532009664862154346963165027038850930933699140118839880960734156788856512941491512583240883339250340721319354206090925364100137985442169102652999688234815935561779538929609035109874833822416687526116131034411308323490864272431717308321651608527592064601799057706301770797035378503774609617550237520387425960873663670402585837829587517276932864344464324473693727931293829714700690055119436532971336906096242471336244185639402229674218514190705824842950243341115058233103815549204824348773762048558420932161947236190725351895885563753237751712082283833030748877420691905249245372370246944448278609160629268950689362407421078628406782260128834294727696099359038723362430993367059225810338990612065118084132498817846293222347261992192006311486415789523550568951510233950354552401385908811850747380529838954594371134608928368380496845890242069811101141709810993900330512604842578164252429831389860685557223380190554077065704436193523581802185324342384910780688682380879197466733207855163185245987569956067304134565920493054944085361932063912527249071995817659120561735461791832488135111783998395278228837517874488326372405612456359596937258649839831414496413378104943732638461060006340775301256707590881457080328222930007253787561847729808906312136900883492847265246622964745096518464751849748357828333059104035954162046491533577167929557565491471793888647161526166860239603231710684662190893259360154889981030410412846796129681354386750257446585833533108966823869139538280090127036883267007766877431771710540279951013486589276393938329825275207549368119053508740319413881661533862325300426081352870187195215615715958454523927075686791509090532447803181391425242259347766869156473789538442105644122829026963362188797019685466589533041688285125105972230443345704576241138694545850123486110853700708838549538888173172923270211482627725226533350932073553471184987022715948544970349315016876038796962029153085794203581250798606511678748525027333462965543720268880850469327644797803200305283476585366341038253962161721306670404375513423047492810907444698328171310924272631994969665052238462540508446833308022585699921587545019666222871087296238447359075101925653590481727839070312891968940155904654380768429269505724248868172723851997549760570793217977468303162018730885181518741358650370345005160863010460311920885104827609629909023114093242567883082913643814632323186814808811225369144736940717181975917490387114651113553150093852732923923354808741641709232335417712682924998706180956274882363139577759050500582645115008358457517722323347067346478118228635543753815003118032981152806036264084318618189512605637205399149008742114197760420809161508066578127663439886565745344618555205905943231079349317953376759682848026080614303714236980558186350052605994313103904986067337507457699858023478394942943953633074193288636449734294412498556851899770920799656857330923707694715598531766954395128816026622820068461676842835011966644539159958341450846112461041575581788288093712008777109714862734668988337318203622431488453311453586438084565529133033924642130906014226782355174301263622585300174149273629156088115836224969655933833284116803631832478073934965448033620246763113122744548640565699969013307325501952358278869359641229563157709291484410353111447064511068648905506906566722180757037023634553006273131577915077716437207407636710257194858869001001618727796944943062020878292395375212992616580232452004331712274684801465798542656260348855247407735960240334784741101257898348554907004740529871878594724112574873802804601014315844639075295738970525829324673711300101316648256153730361708816510581316876700918734244503435520023657210047024750049605159169782598622131331051500056609728387960455023648438474802370698742105552677996592419386726571929222497351877309230224164001231341401985083722278076663514374229263644606627654851640648289071726100424288360107422721745678983084596801557776248845627958221816934900650551970664244605566437111717178944675648927772979153254799246127593170443704673471666507970227954448488450702620376482827415115056863828177378347841248566234193181452088521947424803018810162554015845884789065570897251226637135842087030898660949355089399457653385686657269729829717893802131469831169787569824874427736927078922757241909597482970940920279313266872248695813648083843794175709205352500645776680957952957903656403909758954816905936079263073842866075715956314214022263293537372793859101649979611459202811401201607113307292098875638779206536245612050507125026442676958744326905667698437531894819874350192921054738113439727753209811797463553544141317667264472794907931907255404317839899515072309567015973252392808873865540579838646862014907390900439303377539588779905368443414041802496305777339503258689216807242179018970590469866268464631994244235683415812532481443360723301504728241618504759571942352148525080469262901508762207210001356726629596691404297007337773957306546911011235563222107177460822348939580738149517636871057143050965730478967697791772166172369892609866912345223869160509141606951755674356718744975966135097613819777079823803743120548678736748612707661792193806068197848248978295569819423651764250882254878797538518752025592373934811806787396162693843828043856888411295771904904419122357378304020765532055271954575349409839787052644648516665355976096662746139976032467861050342397218598732583462177208402822521833765269245220301749473880118158322179602148907007524722764153615204599281495839788903506377785900139333611040148463295609217205561617150438275059094239783256041570134413742542886251351745435833676972391768917138941707009341866948634560721624292963858620388569496944628575124124335352117859646970689769479775758530850127420537966137035332059260916285175820284235846263662010212550122272253269161332705079211829364749693379541110046015126203331425528730857784208392770353590050858405234359726769582907299363035206366492984988996339621358665278565469201154877635148763613117355609301106588135413251477084054465777084479974042798419767366649186852182209117502889650068915917302084051293526970402823211748881068630328882588653761847791474261126522234737712933614621398638059147579403530083040395528171650921934334787143051592885563621146585914932247444927862693937961678860284183042244767766086046274365256735835005425018576159479526036911291936316915834947974283526863339012292917191995976368891245109215600040549798994743812304553585550833914230427006973552259194233512319220374557176078304324735850444645311214018684010679611712387765909123323693109034279001538754035494668524085848506835405172805222894781057359701554707415932752875654894756668326732670030434949889996058148769166959678088200240395786487647576982401099334037117947530132829072746908212561754965950604069546078537667564059990634242102461925815342653125632837167297799349784141483198626727261045606489773334253608870120605865988356521666040219629609688937107411369326801830754048478154033307855964633462526525119940774015449360159370715470933562600544833233236386609584358795612502022984377844804737833329389095479644033153732504180995066690973314564907667025470269042897548654731707204696644294575401112312593002990750346599077264269854420741034033471825059444544153433191307920430228090747474668183567817476830974109813581910545877072539626389213711144922424287145895925626290604249626269554164660080800488849229956013487962705501989377792152256899487036571749397990776101329518733369285455658407449669814135875857645138352872872639589133391296760389505474328725278177351462524326273621803811884428472335167507829538056113694842081955168726541941576358810191332987644086790728566294786518086597516298442878101890687124857215907480117755040927385105449399974364479674111369939704272763749356111629818502717680864093358852924245667883002492416760049233794475971258412013582195747406084684388985228627336246000478506213099943795020518299513792464875653782674360011798668768726013776797255404752801822923023371781354187126026347941931286267214996817378332977757494038223244854555971439719990194482025757931552453269626372767000186883194682012762865013884231535779927854639113218459645507418761853684507106886630673858129229452949611544017197389532546964718748043656610028057026219891579285085198304926154886865956254221887728986413687457434838127945908078521317752552783529407378126853891661295414439819113043636703970657334913566273580670124293981426295187275082347854508220891984005108676996405268692820772737391736781400997039077648899310544705499862204874305455677213305754552106840605508424816318968433318765162653430842492072118011734345146670548053353999547332499776230771323618383876352012498374143984837111312258638168930850069309094019029236329026198940838547852881628410046428844020184459135448287102186705525448556318714770712301993044970789778331580774061240900134729954212450190212666841383115762877705037596051083557334984179774961112649452551470084496007155801780769535866966442695778250068968188980307541442935149179837163348956501698788206469195870149963457931888937395339681971519472846857559219296417501604651933907334690004468460664014400091706053566760743056031002174794435671545882209050407533775559711496483341829688434153133292237242111860459169117252767382809129479502381658648109805592451362568380275476308107576455463809717540351799364141935934290184231462895750979154977476283385451549034583152610939108153716750185857350545310211763294598826013722404830796629244414147659247286806527531031968401876264068197418366577684573722823948724208609042396771183089508329821640210975345786401827028703375007090821093322557506819499188047771503328393193476603663347698532019657690134246020292935159092817510592857520237793533668521927104127264323039547727078914131797172196026520326470036667544737971962471507202807745464791510731187775153639319041623368211693257536592319787415388827195093402206557958215201758422441723167020250643584507825010581826922142822480846182831427145255803526015124177226896644114762882934957445089174576117976954569488367984991567522476635053521713367102019956768647276644870167889409340512466782425358005943373886146721030984746432161332976380493243471877287492608537055928331308576976752801100117556965556026781562651825568562403575627050997932884658950623639151620706469808597972451962807485270820292853251018084873670444632391546509413098640084211135369862875700221366530595623086361475249229027779565028246624252637155638679689165633111226052271856967855942326708523521627524143120073896964901782337094657564602567156817540060152177006601566654956610739164406161286775920073359659038165703215371047153042940535940542313013842593707598818699879534452035729003900500117912560732188825215077826192017374228086122419694060249082386461014180501079621572611240961246198187288442467024425574007787779026870239441783904456793199421806544318135950132449667675825733657121698524714086411627764515982633055381640518567088016901243544678407743501844280745007403122365929078498556679705969046649416150805437196007163923527303708488633007317613693090305686717429800770264739789622920041309131278375415445535940795052976796846891434784522075956844313158435070831365019449506681566490221431858886111133450741205995352193165981298834715264535563142558520549334304069290190354724439104928003023997339234047848137644617754350996080763168270561972582561891013574752844725000556826045551245007570725256457313697317508586069104254235486517262964876904358216854755545721308940677239295451260086035284949671303009396623592903948164748941693393502574513336273475980063601169797552367147026523019585473396166622009191016439120460373024751678642771899549877095318531052455723850162108140971205958824385321056090684221140831658647245191810575956615449706930593981904109295592915340281987197927778592799115330827225014161331105113380619074360711819107846449673739300176231035914936195322612644791461243860477603973801002511780185310625818873958451596254029060489904725566916816498457996293101568464166170890334566622545626177770722542781541051824045064580666255051507190379070039485741153092064320479151462908517281304093591919579579845039229380075083306644021507705360754148114449022093996548403449360591454696552194650996145840634304340098912854889301652543455869253349231530283289071542832601204568176441572651836527380405278671220511627588551849867242122633632872771709792561602409520123269698927722488466539869035661056935239134516525604977508912330914795644979619550526380982409007652591810633316500181768518781442723332511944413908708438353834503736887795801656072819645438924738476264733548487638491725916549991636705284880750989234646757621972729933094424121102303303122154241059479251437288038991722207250422658898477974275864269024066343332604960515182688685110382340852276336140371091656939482377554508116702159469320530105403233540759127687419638067862023478143509298959773935511463376663573028352238848745726665821456255016745240626976950700900593063620172181293372303808430211214637165586291206469164515950799134586834572630197772288060674850399297320858705661749918259517589732178413264625629812639412257536022836871069864995032384107723618998497710748714200041071496381837488644545428265035926946694231466417008220154886411497686569839186949257854867610771404297829931347648462076919107979731925869575851639316672754775125076861420730377028277883945895768199701927636070370608868139871691196417450720140417778377820692263768948903679871405025368795159690283100112161123359367700354914468361928219170910897158830467952971518659607140812706693165684362805792259681127344395632806300126883435362793303545981212305449875449500198441767754015264981778560980323797458674420832554529954440894745546931779410407087612008654473967172047387355553351969028177050397349493873265629591063356428594280681575832675374983915472544455057273928336156144076017121717134784015412189452593609512110242395576393348724159803154145845118481272213387822114702335084674014450916733845035932151339250151044523147544192924448098638925660214162870513391436016315503602145149803018185195357174224811963957908985898968130371254312559246429778758042317795756344037205466282479251647654463281225971857543792930571022660309212119272933758371676151149582058467815576498665787354153582459380057257911898950755979769314543682855833231568907073021114216557019451552694040462899650439293695925496499411331509606337382972113163616768917886954389889576286487684330292025425404878115299939387724864904396013336744923077965803151674642169058375230680086172617077892859526626743054650813083120882557642021412966079952600249726301810725547359008165609581812789966416648249287588531685372407809908499443298660739241985992595500423664873913949278601924141085565350243461223839297881368411640161525071608681570103884169256854675256588372532584800779752956780227100548613379680507212981242005924801860865400268679968822011637250948913524033353723019333403046289437150183034125847800698797007551619739921660911409125482588951377022079224869308687016147072986250365433821706724925555802707503864814853269373985053039089264743437649836377176310347665995884496292039430523705390438136694627099386947274103932709725176201509444562959203591901307816185481025595352457436125464065835170280422229262997574024514172534560048424945004685108771398139673336243123386153164727898615167334904198712867479243523093666312582865202994583350016352241511777199933479960674999260535783876891753965685820444764698692458812489288587329213606381277254251165960245562961390323742289179367371795852525177546722953166557721122110064402987107763155460093228520442886530787704927649416075933086148729240638498493646480130708977760391875612383640438725192872856505840385786089533195852688458884209642080738740378932328439379409090082803372898296606484539950485226447017611422739331717400653172852741740012410061573510356077993724707992489848729509175290415283910517349907682516402078760327297323256840801728101838261990545731001200107388554064711093422880771046436799846989928266709093013541575533184853350327883231307492500236169741749773382939684812547852053449857416468439203990817420178349326301165551099119191088612425693744850065522505549592089661053744802275199711458557357670583542380319228088333881883128927787630406132383746707072517971002959161838457887437143407281172562162304272833566932223522104200667358991852267291261188145724173192271615156469168960641257333527092673761044757647298786842853885228942949036779204695676316028339205658016020584504074458427238434770085729713927445882303286629902914215477328760267982182070777010758044471723848674591825769942215974286874686089332977345589030017898841416651493530125933293867590029538500901008722518243436845918182691552678282524358983181182151348738016677439986860950793110713542360950743199933633927217549146111469344829466562313807534774741450856004085730193996357437264282887067129747004970744112423678073793908628524983436024842615737665394586324461676963805056670515283782606858187703791651086026713100701784534808568708324027193651650187891231003828279538596156194269128571070912067402203513534537265478397999074367343897496040464633632301793779105682539147558748770904244242691943215936055793559774628007568210788399493801967627356832163671591435669881021838218433728459875135715977136553330476672532519932798958123393901818431735647786940969607547333010320446264480253725732310654241212458708413285128139170663044652304339567608694988652829666516677962535144825743777601469932429532590776652420171912413894632625754606780278173146259415372431217965265637795229137700528675485273606303981466428344405549305512704422227927067299089901838553843075530141010237947973862864565665593416814864808922439196507371499946161213730135743781831308938329003338092071453611528054426508776007068847580701072247184575250608496229802162286309489550544632761982105666017656191562425511323417131397819292577265097049366470346715562656731609491917142036020079319544963653303000336319769550588460833169357444951585949793334059694722741433249871181876719177707241432691224937581171757130274567796698892624786764340104156970911712002199613341601882963435145677605826074565523451337626114288744138311404882040342741712315231533305313536877670088547905374880540304807083943582005092755234886326730025017081658687681486506760219739582573292718407770477131867629613123545460325063309256860062485651224828410641801484970022829819292186069853355352497121486690254077185651062518955664994752405492076167018165841450170871718569537222713621360051843229546546063287356823365798389364322245305023448483383253860868941590040499953807400145662615422741496089427614565262931671137521611276393859843390287555610781814366316678441984879309069465174287634419317057038114292292313017167337986552553313366821295606868963602193712700066584879905502498482513938683113574555487993270323596922415488466011800666593867126203951268889014501280136649766963880536098890745935083413564476238878915618599787765993716493530933480176377970673900828505724801166478358124435263858757553541520644429327519205033778114399460106690672132057386214709377680101410293489467830781126616246663186720963466319931184420395159443525121736340234435708014209870626969186817663281574609578727397210431477101363825459311795598825256838206914787357581465589896110351363251832739182464479937800004431833574760767313043876078010716195072565582306241351521893544217274922888244291808290221638459875313451165341548651180432242080402183806603156320614566939280341818133020044281410969148811422262397563000554744228172571870637728006556537811563240518021658759028865628074354279548261745595207277303969725020815299478254013429904253239750750933759459155429798415276411372442477828357835400131084005727863834326395577687516377857677157230504821255375032943140996267735807474557405707330588774819634402235320298755697287896136945625433952114705237493687190840825737923604837776300105799241406905908104259281525873258908896060002637610813287907840516802610103769920443359007962549667415977505275912124264104297548064191480296210731986347741467767453134581229797578744592232973829617484684606011992359628703604507962273760617790934195459215130468001966410628045790554916333545361191427529859210511842966246169353298048691507984911629689329438297290922711414605928525987272295946970121428183083856746157363203177193543920965727841454827380601109483394676501383388295395005295684413997149750591376462046359943992758449840253012095029874865521159030009454841015691898902519704528394695775100953864611123538416404323930120961896566741978069973856779050867896293468126009679234957438727350837470234223459349536570689169719528064130594477743660566368881204582703268739462954736980376892457486278552562750668894414724269600619238268745494966845725752103903802375224786295341819570672526668116806269457937587117002138011540249040790503100835166884695916870103184328628097132009210649156163274600182731742711500703567850277365307790075955825891962752272089924221076377972107639033801048622253015383041581387418009422976488616610549808681444054463109657867832588454373719579553892122238368517258723159958272198768110316302150629257094844213686149737505599073783418166868587705691256006101533612757042498184120134750245197042779190496297747633176831407082852170916423295107034684758379674097253385607795013527693645615747901048736356461258686785288108048144749904638632012357476884569037049436082431529292855245374739919786015155936623276731944746038178708326642816126945220473924282727131663772071296881792510393755243514676255606237105030334844746866515929718764311147026914561381849040378786224189909855767760390010065964649246049112957491218597061658696998524290093698658040235043617313540411252875729332334485752817043162916693779680300654350643694921050326251348945083808847225893279996004875814052870150556276972366084873966105380287525209851828689825396817393929818181641639419107339394962667645739320828598690620725618020060579690560896695636285589614689464902462547277249542437041002359563291075604753904876447789352568354515743772833131476232213495022181785234918515580240318848462270792875817747906952177722378332882452670212758761068853629413188537940315249645392663428395152944665605957796357638872475357006195831493153069367734428738089483268081869155185727500271411944440908153023703282375787241855971815055783000389763284293139474787129809162096722213580585267167818610434823140996667606834152484551655214555885866746469404636024676425269288013182721142964064218446864160038667295326581317592222698237559653497294252014141421622753632536304967702370781082937915857414764829520866728731202480259455791665620697914018305721814583846643678178767490737136557014597890488124469423914564771958205015330901738885655322807774320090021143577179031341890431642008187273597730577520407528765709770069193823225405011373004600271337062592124578468609569773799904878273363576726948509635928854470268562497955331564351079763953698225965319030577187740925125945573757443735091371974434270371757322065704831621701847348778146673965513185277047354270602984724185978816272527797229283225899317590668839837679193123711143961065561361095334993093315747272510319332071133266001035744446831418932401224405178372397200943721784141066885432976085309082132633596111274319408552460319967524520124259569284332448815937533884799559728619194558354737354594838923940463397290778311233749434300253906534104423374538450707224302199228908789403413035586692904610591141457761606716510117614319235832377525669378920284153363857477093576035572928207352793824907232094631359984483645459912316742399689782643552314845480009772740095237863789180440488655487002444609890793345695592470717131835690106863792437872667409311661494723642566362302794939582824695067854938323384008977497231495109210978832029462592525107911881663864121005093149293048435555756106328509871142667070329435233433160554332792071515002380555981711504950761125214783361126874607519000760140342586354040330658549670592687482164182215418918615732854233644411913763273542815909637450603756423545174920474542586079869373930094829270018985025785760550685594982842593523928368887612187256606039959143624387221697383944099706969028740613189005028575579769433419820682395989196513631328764478256361970401839709113492426907844311614106989752799412941461594079940508159412951296275037601515942044343217270954491788023762559547198859733669624491129764383493086796355311741434339221761485487390100596784252091037776346748628899066015497469837121012647944988245142592170573469650625315172303060163903676085191448964091249888189254421885511611249742381230101192203112996574737629991848902352912707491868993213915249631869828774596094220486653951713417393468450797984858995785396839815941764783939638548954008021597392331661675509169500271157067897275184864780054478044582275174198753360154823160806339013661712165549024160178248198804707487605821156694553719489386677540231826184574876990038692342418419260586124614058467151287002793461200581228560825452557024883570877370150806278364842563570102623301988576224235222595869177765313934979556481140948492603680140427739580423374114306884655036887567334456884628287053396126809699531483289091425069600368814306029000652768737719895570908248149715867836257361381821541722146503417101813694022301476816992965848376876949393465100950022134103022680695125791226420300401903494188477139927238921398575740959083565671730264758887348820841373701303868122360505649805261811644972232031164195002876498863002759281243956816806319772183130788529728288643445316678903862332973486793440640383997242857095304977364972825912376284050202770903379431753117630123591187741845928783836846763178878177316164678647221670242989405666316172858569250316758129869964609955660980627475107366999967416196132495858637239611457224718698441023397177199468922640438519286891913049102540838247312670489836592973157663498720101871575771168861632753291625036338280931725361743377211985080918198974306232679406783405683083151014489303693106191380115301667406067820742360438332322702798700195911597551669621387586962126772523004857591000989309345401981738909183748645420908354505106232356100636836611552825891179942840773766388181368488672686725740210842033753677763930156548713602365651809189652033322744192833274912793313749422715227105767494444734486940913381550076753250010429430677223512589958956471882438409484020880351878861992036921078691611496351990343756591303917816942035878823301531672830553970120160918113407849903033548426336301918706542160950318207952376590198599207542602381692372661255654392870874307396671781258981250000102960617123838531899629983584963238041518578115493777189545698493651468916165995375598176745652752686567774303318757310249247730150483029612758061919517467271307384941075994149168491283430227185284212940544161396373856733093321640038732731926219779521350599395279541810725732249597515372840331211084294643427376070292864630306158059338587246129680040783473077228073967136871795678045718345308125073012662719960768601113226060600427253752988475862565066843650181528853470653169555539355718320084866248394668394475988238730320618426859770932024224193348161071222535927652750449588194300446093898883008113848492864871040366422924417830593238154111545166586855255530525871350495290044146799596023957801750360079156563718572740228716357762419811575967867992660608380879359721404122461078139872399345155815010219761402450317808400247041960235402527271009648576251918208953731561369674560220042933911776392194502907348063953377404134077810865013098130732577083247400456877698817400975770036403842089908013724985879649116075051498559884890479177218961951306902383824397372857362740495813604526721170365184161576003379852212478879653562266812009741026030972057454578427199908105524221635114641705958941814140842862644018925936653168374415041610585896275677021447573300935106584614235522656123564589772175983010067169915418493745833946266248811871995981252287621347944721990181227791230975436905047813817728912100255570297030632627816552785403209310830562013756292073616127802420888202507020200309524958619443179041448904360007663857441966412629896884174966749512098269097100306101445248246289577928940709347548587399851909714867601177418789837725193281369445732523905341078897055175372315817264315734651986866045257401862064901473461274131819055921241657326980679499402286965317597876132934923102320760221801425284580025357040534307511237762718043311151473788590317803886326402206740622436221552865512992641084421900861167214625442143484249182140152744994365615520716489605628996204939312452838268804265476182569587447795280398894524719801728868569813081994290800005494547377234426107354123653678831941921716414348288135998157163114740241696550000573956635851978219682832834923221062575278857566063953120036545578598662102259511580221321365224124594098488947948668395757011741299238653310174785316334712447446108004772800163115149584348803994936040226551522163512127605683722284321930753149953230872771544517615753161842318463739315037362093191415450856022243533923505111151341475006099537134086726563218945923976925829214982755795056142362773757811074906907249890276106139157800130976044943883287766233495516724192554248242302196452334960730169278280590499391046277041563600313031423416470163657821309231722703381211363568882157863161192552540448940921942070684947477937692367246582870256466397642652846852501013018677923982871360997324824938984417481801569888429531919602317920203466807768229074865107539203710473404071979281972880585638687807839624050475605679755079694145996230729476143443260193636137045623291105710506527329256605301572072166207010549909350427389096524775430218391247209503460943219975091772536085348130841624223578022570412937776139763453281585560199910705560368476517790878027170206635895899547419067589154723950557773713915093908000592812063438189273107339175027279766736464145449858293935245890057829837673463455664503830124438535876461109920423992650332472546830174444731183812924455966619295952143092772820581673988008451925284159921963222556039584655570885959836476502831608510849899960936967378669122377257163149198900277217420145874295726875498049493497443362041239628608731494360897466290745013981734659092249517440568709109990791130925843341870165517179703226745078994677562929272969631127429552854641471817799898795410043275868581893322610744591466528040785443510741504045063620497504805446907713790110126331141004545628141377717756880576906230773913949529794576971608873758521151954542244455078434121369198259038092662564182293487994348820798153253873792754251593790225395134156007911051988317689137892801776885764319583325011484989953118932777536840694629603448962013223160802461455586264963949933244636661266109751634315930193790968629309268783834892745616611793969041773673778957195852017164008395741694326541435062308074308992516010133316302309807854989771078057457107786030867880135605026247016136912546912546883320508336265994536360216965476724310353232626061377973165949782426931340926988407839885960773976983335195161631373587112042779430719593995464271648608094287426888571640233489151232831609371768294605828499047577073317854325437351880275252051217852233240845872264297648243207056990309259803468824096277344108622347093276958714768883422962479263206724897459694647772943867203549664317162157396125452221245004845145268828635004385422577270122794253712184457287568116616916405755329889830209810257670619994333639020837813672075441195312743602885170917484284728872866284104724261462092036389377141462014129293769588581287921139473363224158164162204665840018052702733024608198355860934338179291030659926561045772476640536112515586234774065822954221736940023673515008856432308696102377626300320232681382495108167555266067984016690487075585673759011808299768574658212795439898665004860841328561683946654342959680829084816805925270651390397020162871501909610883107565488197776023509225833606195193305142764162170372289467377049815147490308918843652536052860183648282112977518742702947636083515207771124679431549707543457724820107351458057100980991426018586449452396412479616826073628228614240612301847037644508187810653157467777689937929370852536648014756184604771322292360046287531763142928327804450257899094311402664075349968438795193656555854087582254276287483886768875340916445222247366978511227524894790058275034347736739819605457454178074267182258773958026278121794879409548104480169950751952011088758818734419382632296823483099411173198735682245667255633500921844723841291134149837995434755964773834561714502319819923760030285643534275593196318669327420176736918246598279780497904241251286077337179087881754028094810621615188554617484950559265623405554926345949134733341226840108162472995552418273284509509923760872341710641309298099538470174978228378476137001779795833378202735659695786200871347527909502930624108046298909327690317196003778271200850511671594953087591128270868718967179374862245373746139016395031607309458979186311671252704387351018232992899137485790097274262478189528297953731212249701617650940800060733861317745480564242401998804754808967828337077525196919942683632072226627023002295613615298040363494160595106652964736285797094350942839080636557042561856938612203868366143083096325950553851847565225246666058548155335810037409196627616669679137602695979763292774597504896570777272147586987566194802089613831679822572843111009806492452449901752541023930136222720135458668002559545462041659799118399605591805885316465679782435548150640708238829373190298827212411693147653906224595245176957342898188715375739030189981758438291579660858295345256693284925255981074837087405110354898608994350484355034369382252148623491045474884145156012199569953881283027288780801647001802705857875592312064382083178489368066619619131552390861721399089665697657619094913314339352647401651453437416753394035911705705540529979526401150643696318069382006133244872697714430729165325669185232535260470256063704981854027554103167690288547647034570524629766598314053715021225208559545877849253776991806857760133902029495487007910272533675196211372847833972893543817755566377788920459528488547611723621994129296179310834948928371785641423085518441480101362888404798244084479607808891426912875758590271297210343785381124661482632572437960312789983885961050713634723704774539695814887298723392093930495136557531038844766652910487467284658580234535401893099146726024954643606956885611509714558566674362719901443957480979504958731218943120157446693332542397105663578668323976373008970874148151312658235276838524115649128150664978174505266091687961828879198721860854955679888211230115263739036297863472764381939405429105550521360139218526166399962709027690444759020428398134402347503997401100422688817036475194605488307358978820542195589802941193287814013007006455975139027031168873319318305779829478713489880251224251031243980523393894637014055176026633892958267059356989841051669573366246517514762531299240906561596506684929742439734180462835146282832103936983969627070037609044550369256895178480158361644998544194071896252859263700436668525080740849075980736834943840174867342123362800030892416945709120534124935731123542788734353826139522657385171412703021032549060673564241233104282618853220533265039805052048739297247420560940692645979649912054920958144286777152416896457307367343904111143569105381282519742998417171113765202256218712628228855873826754285379642362817924640862537319615848763249455665129924648278653633605557494577356094594362150484330035136264867417437818980481038131312022472153591405723180963992014006457286349354280756188045787854557736434350183689169273707268252910626961752970149579819958666288592394252501869433057491628868794494004864187350753239911512203629056444854647808895520647309662989886522069003935053698149901865867916458257800936682269748164453339966937749378346365324469858352970518307693602047774736623973069132680886623701726629891468276944009815163868903709137896924745428183981981338302661480241970716309801586914560302771086521586226863564798334424916143993872654400284442935451406617674486777682652102463527205932792576060356451606641493406464429709079064993308450087548278322031263744787681397921118304166662127329277828840879265789150204102590781883658549856562096230642153258464342310948744419752782232620318330857880356978439793611653016445288212593831331820860934768704481981235690283125275884666000319785537185314697947021576397449875465988151537437079974555708887402397627447010323255403068892999413340971754308378937574505098321008740037758034583117603763110941835702620046920283489785263358690121454568788133970769330792951933029518401654904497067382390448773847371361470346847880778163506328332399499424982634715381559000145387601107115981406605343202564523364137745421420341973261612452757805793950247127248989515500183302457358817850435839497349439163934860328106452063591348383099674971941525274358153724625909824355257534355365491526467292767961810290239531549816556467595723083662315925241127005262057637860518546918234261076581805685583356222639797104054371341733000520917728060594949480000330056917890536394487186564554915404476513217020913662338492600461633614113042141013432780386214411747552260298040251366333598921009713673323865238331483220755069362768645572137571986157043885292789960348129668815485908197896167534650538990986646745697254929421967316697911582810746685836507007082404710592570670357283941640144381148261888647326460180446892922646081421646377962077504406721611102128597595967861605098982902196508433330822319814204253305758954291852164229324657439580760112991544912498591514741331474024768415093922859274884277633466634168211633542905236627200506671823788777954613673788012462179466995185515414938989480120144912824982341441353204725470181520596272032146274477297798572113337148489249001376593045767847809671011650785059384182311200628644953791768347144653321457131349382820231188177971158232052991971032745448297913987576451024783627126284318043625630068809400911012467304664691784795339323991444124181570375557626665948392163633211841837476481063732683832910104187247738544640185401074627608107426107875597672516819762253772629337894059494826396980483267566072732285481976400473420092851119095307210107313388231333777054220489364772172153530016328197980081498411436255551787459146805489887952058374576843429216606092515176434797336893561517845242749674015067767530215616131033017112949292910036129715857900994805585982219414249932553076125541070381094827493396610447896204885641324851617176856581350209376925042447104749840871095767800798773874627242605490207946378716517142916585987483950335630377190153368595623841554278446858611883213801065564345371976082656988342185766613054804662398284628086961233426508801426573443759308002164281814104640224306808737201740820439766199835305347040497959463403225617427288061391142335241307702885607116047116630396472435806680245760821623612918106834453403007768728689877737301781061459895834423609048132235535856817641137903397777734353567563498887437492380599258576344358728442871088217048117847475016028270703452989863057944274350274850668224547714172487138948848106305685444612442081148490551112664294867128280012605611521547925201996043080671881450701635354164626402975413484658491934638771088914813516319348221320707969763311657120341328368314617838651847549702654379117467799270291766427672498539295518472109443178586381468107773810188688390698930854295661303841124729209039255611518305939307039157766402980986610389834949541774370943288983999876886535337937271672528787908568409112396264069095088557399262107397377245674793101997359933806621386483468170453739188010076150654484039617047327102605083421161832317719254418664308189737177893958572130052851364088519836881808797573477639720376519817375502360291305467466225260430704346231841237724162448631081329513692232708481234518894710608227150950315184948110155516528391719415322923630095696422759919210048930802780520295624072254863568739435393221392351356162892123841305186778104991678870894484548804731594902120139785480069559293363235024897059766898570754640084063135444086172214722720300297980079738862807819671141307056518657894522316141981698163131304562655438998842238092783896014284277051463893785689025379693637242885207571194277218635436973911158001802819017229307165323844515761802139417865174847454301349323106532684181830153680183369015345399883859989179812925059711666115768143135142143563241974315900235522784729441181151672843161270660503099704692878013359022437566846547131647838137666090093825004175106250596002118982401858420447461879025547439684325259291773979232242574970775945990994268238905820338753969513414362268722557697626072283809020284663048345129751668260517522960832980523285831450924257259388019972336257757736979950977106785106345075354828599643266212497454072990648560208237265703818173522600419074671973750403539339345189954730076380895695097316300730745308251001178693090430757574969302422052858397221232045772208511252157860403130381844334695824504415077077333077184444096290811541994505451078429068638320845553389759029631189138277359617007094267380866207220721697042507768022556291974998131448546253747123280054142426539912587546539684316074234609172454011072732220620224256486450402265112096131087325149532410591843303025232005912002224064428219700567045606134742563708850528160934135398016638948577574312593354044932059519962058529005379668020098946047970468719869185722636414653197261663030873367031410862156655446684375115445346309673509664111984144903568593814025218553770576980266822004455319945085530583019412931136040507970809032743264396548198067286599372640109896281943945019207126755742147074932399211197913780348716997244224842048621512392173059123528759069614441620484050540846090961536090286486452554252080292428093339302143078820447576854654169056135697123022527993521528045723338394466570661181237709263071302421300090100911496169702313584455307269569710603245374867384522623851479339899080899421013575908993329065997896012671829489325794813240949545797321510270979109257329193655726784709648006224854925675206137388624395042463364665775205412104744444222477456475699185646526738909649506828112778822957413915629294863540128831997831940211858143701211227950498678658578519039074166714394614353325646882724791294568185363465690944039999427698240750451789207324468397292867876691607156706233077263464602836600931391380052206602558350175034607121465624267192450983165052468592902852177740330033154523288927449398256003452680410018118435882903991407812695943507303159145794522980040728454674696643551408846222762519586502743479924784530604037422151335677439046431505825300251629243455314841465874355639093958191951029753884427808278089311849736673839997063355683731172187147626818623971161422319635789060677988881894188556129262680086907723307419216026449975678420163262315032872609932275800569915378996884948037645310917336014443310593684139525945462536235397750575896214307832154499567629971139718802075244970516979395151471599894596954796137851448966068928421878922485492818468121431639401381065059158362243310159162486267832029316029394086629318490361541227643515654380947116342651486864587001175572687895620582762617733673498391820099493104060580512790387151460702171705236542075164366229073124410484547789674592236556025656444222938309844824343707597310274129391502762185722207408211276692814841675138498918924087327015686535149712294748973630817089152282802888817754377691156426275217334011293182066525412331722094802157066738934370141323286351765427633585327549775211692859418083683151346353445140724074675411237619142504821587573833160044732832953176898254415866748879364051373133652984143978462751153446314930713578562767058606251657965538448585709778554561257018204278790580223796318567551462437287870742031727690970718801101886537955260923229568272536759479470429508216203141259639663717154481653372102775893737853665838368027482370986503764475066934696376756986223824470646321785874458099852117472046611579482571460129080555659451519163590607404794109567956815171964674682803559733169381164395571490260981898780012273158114682067677289625485658012403168400243235839072321481897230706290513860652097364854204101104981150750558344294430061368726277388401627998561238381012425221677115121455625211934717362854613953306772909747063222610602473224417615183659315616389948271421820152418931190716812314999689731031167379325960169243842078269906039270039300386365828707664676888069302626132909843671937228654768612337910950156844429669425151151002540671330310895506549368286964591109568969895767105741776160394726579090383851747737210965556755605669495800456986753047678250821691326938952100804037977922330173130390340267869286030067810962475207377943689420264925681134652813348165360613174534140170168373258152288057701278281859533259737690768858332582467592596465259723865539290979606668496908680402868271085062819184520083884520854304084863505490499797835580332910393673511010136807592080385527181200427097898620400826881588811936088250942277259179691623702689190582734596709695260652350522003747722048945689295884092812236378191821494686737459471919105436522402173384643212533830516072349020662091600626509720620808362680739895641152355035001732365370806982007437673184204285111034196531028486502802685439776945690988758809092590021915163645882399488968145093302386317014413122181559493531214777079504686514998043561806993638125886414677858084049099440423026923470121712348152131007067784710624139983906173508899432239886541976342260711114266718965404754804692446829436190962608599431107434218419824090488206347535676443435386988645842159285989358077810837467071796419065889074155159694079889391433269657383918427842946359673756591050207532033006336484520107919356969005704139886071955888231447800268526409005650039455425014043875166597167970414943288240644470075293050167024969245754769064869721418491487564618436014288076333000567323859519566684595527539321464933419285659765547127143788458723736644700956275604596157307959460066405328337676746693058773946326711683652297262096270406221543665334863074231862043734245097880771291601676735877055831967023524105357888374757084757144914347619032573153791422905430048047136282007609323959702596441690609182827852357862957670859605901102158587674873453070890168044893314415690366380439192321712465142844937213960750692781867570760727368633632349480199795151062532895221581626227613480254413487609497642684322337506958085208194867622657387330329375091788898334900386849771244941273871272694405279541840251584568649036886686269456183545363868846760758166648435830366672545902833079456674943399180786234761154301243990838354358761290662902433641768377540557922892507085859259855480786254846451993741878691575247166057267731089402214722480481726886703637985752657284847431464890370191424502887632075921514425563435001230828255132731065023739410588671067039908772271008489757245776536359895822710231207974151520208485052540135889074217775779630153785044872167705427010059116292068796859555714728740653277802082112045822477133081075201431757364904337380782695773957897615669427801705143096342624367086398409670783700409448537737453655405458436740648711638602283494327181510714385611436092172473340729664547814455571398777246908593150566485467050474882424011271324384313007070379889739157922965457293985345710218346173470458051513371340665987336573903070097198528550591405211073552827871284462821246087213198298025772322333601714120914638180192573272172518829011089862585645159133281615245079262059198057175030121329025011792264125717266856364363717238229147225144766165500845563035865131819987621724218461463828031513479197450959926188828837819901823866284897394414340829422952609455457349848230493394018791352325850022271317947185979241038037026466646863023353621580635816912782125451948367273665207757505825716438312117805437062634403591309709983107333672235294612131758091545331300101205522232848230726231544605252995122620517245915786921220585902012456854360952794856816308996178176868575374831783536246319388631714240722064227052496673902705405252778709839935128331785523007173169745674594218029043587958564268541901748858225918284078145579513726236277163267988771340212645884274868930859347640060776867611956632210605285205835106701374538810067014106141475741722230052093562401552153443087774426321768806630443179814360676424291700817959757299788356100471215186517004331993899177540193947009821953363529863589018864699944961463709672612099252290591790696657251954032649001330518509613722256833916127494114523311980030853481415168471037268618438454408218804583963944107322788450006069931540191905896809512438882309704972699800933826456920958796921096313672357978742887621794441985840231823075284486285638330135556000697219374413498575654301532497177985255998131112534711178670768962316431747346517001460883405522887318091519768760950773032183274806391653984032702001464017220855855010362345645138329006940220449635063360544045836143444961352243280957962916230615539409441016363365643048247490593124804217126651070736249110234753903434255869725331990738298313086597478630688194363747093363432950222638270572608944818845706056587163228842716838683168136087006540547704052615846978180181555229360430436866664049733431711376046100551240834569217568550209829241065989819070469006302911897231547980045821976795210858351160969435098392245175718940575447169706926769339580336490130726220462227166707708817053701334921619400152594939589665923169373473865908287027340900191458378581190729900766254714627827994269851689970732312845107381605807699852874466916559883799836188124536764979969909609272289275838519545779641120922719953163478186472550282778789635224909334505859285358247458183472944983290154244152867340439701723333983335147991043546988087599560743041308490275605468369106681897174576447214936182858415665250619125634478254980675624368302648501736903700596701136736932712551997641430649038656391162917347495744866213447166077760923664882924936485162160619429668574834405677753501444115930144781426858127879081586077990943716372524543076795843158741279860232310149830887016316594376849460332076577892297818578234418689464055300821056864998247116133049381759238895718687828741782209969980733225456026543328396455542696912972091150693834742384119111366285074821447384875908531178866735473742034682874092397741133368955020237508776583752069984917082081163101752894337337290995037516078343644062976896510702238864909080372650017816282379795561536111680776990793225022628237208396294447381177585101217001221448462455572617099187197119515089088566147222414411464065783812256064256730841565916387200778680716889426876545320494650960625087103784134550235057553673902506469546247495609700427361047624761234456867232036482711831944342272906113639351116298616452650247466802739846924860417627124006615428610136583408553170581438091490404954926824110821699603089224114764916397961691390359799612983736296281969534289063200417248176811943141072065086979016503107366797014962921046525958674019154795545682334486815486455721476965889829394417160066428533931259270422746471645855756877552162214559384142767102220975612260270289620442520188211069524207022425719948620249576237023976434729273618260719738797113477425039758440331112428705128947627625582241141580624164405584455599135621926698787685539268503460719143459475088543653087459672128331300710288671585406855796583564340323109407248565675916939007854750114990697250442119524077476912274194133008931135068264254590139083831166341837528312525497099780267751715414546773098220973124595318443697530241537852472924415184449835842048870787184053102195398374657159164151493096558573523688485754343776755403500402776770932966912603229965478589029701295965762357077844300183271371727264341979705778289847698849390813973363827068813723517357350984663442669138621338706278248283157506103913200229774002655563180175412855949579250014604524464965611678104834376824639126108574378197731620759851470420771572121414697137279183735539514401211445847781411395558533391715143706424031977748110943969975510420584228092852232688131204887014562155734000136432100574352161569411634131470553321401409266283570349723684664190963679757018577114752879956201817185486682541887132400680263814088993199092004618160298158822362511866662509858177974700808435150089325306340640588978511160930852541482017250361058384160256221714904526555891489796173819141461782582598774920077189493483335218636435695344420222493126226016346146123286067986415035955130809873974124312289554582471259058084662163947283227625146763987848930166906235584614556137643209616601488296880518390828605888192879582613386523060484221158985834238339816797526299283346585127266636039660040240321698917743654042599393621226042625794829299671908639195770491572640404360920480745112227383861365699646153637927073610006636746907618172338304923076013318924927996006857742209787538742579041369089447116277269105603965792090057593605720045782356977338783751699727651399100985084323735124641275262261245642948323625450418915593865801656145306979013597152812235073938162177524099599296646781554832690103957848545623741823388910044225115962940849529978519694958897924789349235574841601046176666614416472415518031791908260362486416408352880168523220503037364936284359268820706646289634650865176662349429618735469283384894459698742332738404875284897141662251079381172134602228476032285163394092297869616242138828709712453238890733046076163760021657209006244206728935174614793676176002460716775844336731673053548720189593446537159340216428391058752196689519153052128596289531748742144517351511272984585263358937414437578291503888048807270144481709532605701846090232164002654379627082282959522572045438283665270874703415278298719519767357550818490553391180864459637998233534610845929552498345254456608095296241420601249056135961558514499118420392535504785082184767946307266913521997283927326487022212622972866029355876415112442800318050983580024260732952746707135996597890100188324529429771923642836918944319967375575384764766084924725024904277109063415375491558923262908088445272896467967510124025379014891520858298994649840644990994919032380115643811803460779354849853838739192751320648010119576791001366299291929058133217357999396352255348810764579335688863299214687718629876949935678940378515194747699112653955019168695047382756415548563406152226746322989725952952039319421841582971626142650747189072028033065924245601186522162209652446453988581149776587316595740679184916523218203054069425835730302742676008465618280251746640386977581605918826008480196995646566338918304518106906924398570753744587389696417202522690698656026581826334156418503401014438762577360998260788542698900406878238325596432184497543942436967703851496028100837212095379836099813018186833053946843206166617005420104460850667186079434456967507426786335818105157428524228761435370092967133778437248965801888669309635914112682500618796289747134500304865684487345146555257313703447653181254236923087864234814067548521831386042483061104992291087813884045696992526669638120587233537862815489449278175270520094334010328323069905278412343503143066749122227455812519448548839024856881007594734229176787334896162735325645140441197624539191794706754429209214693305132084384364753961314991979654799439702349242684315125783242187526121156553812871703680655837802591937771965005509662795867470194146560094009218661335791957339308348412010554269894147627174132059304237139598915566291510807028906724656953227515517291263765838595133635401360149621279495015243620324993654477361218768773069979328322859289747832155552202013885357421843190831431547895282541077800709871805435616650457367781767432241906318445050496797741561897698958379797262516807023226587343830838156996249386320286205077981015179247393678893542001153550435954193864701525559220355558073723397575015886307413862832679568585733349253410798462227060490946014578683424085084506334529332270316061737610345876133156249263889726873416949819903978632119409921809476140179056578055684311755566132344561222112583437425779814440549135144440593282155633904853811318118006492780778276546904137159327898055050102239887617439558307598545200020908432746182841537199194429952341106664644220994512964497594791197369978520762288574735868100731104238707683528119168881694220230950426532663063967890757144778653423785518383902525621180683440845843012205130355840633884346085220751984375954554146849716076330596098735229186095327954786830872322305240396629565741964843662895745887119040871654708829246143967693505843453752436159997472263753757096694801003564111142104603845757244881618393501671321922073782087521386078247349618899715259371854500282418850380334328557055418920610932492698377339985071571574012548672268239073118698659549983912488800562681789103717063418450170685517658344753610841514235481565655614549676491342906928191118696962148978039960838797644680818266793839797953391850704037106617771997833252832781346690032287992194861905291670996698064694453924655645998163611894723904600898022950528231093224841926536787207204979816442790743981487140339677372763662351521891314075205827182446933651815219495897085761255923179829121878309241023990335951493088041643923607227893038753960041723836525099159904864014323381839591330423186228379249268367112840580392961914264983273211862157966072502309231841490277075496659204203749137433539139732740937389138069046810173663160661991768279537917633489617767884058387799982416656344471037027622188260436890839498005679325080384456454799535289236544480913171009022765976742238572780114538313775821438318941171433870231766660649244089775359305192124115943784352268278517231704061499777690233319611789197967956839906139975361682723115427508529447114157495214279882048167281945690738409775590946132887583745844887458246005296592359265782112851987181655912823624237404208381374643313328451342549957001726854043216831693070825063918902790718526360038756671081604421244100735925357552195194549579560281843708868219830984858850373084314719498861624305934871378235211717942333858929095093092729330763444396521006227796697277290950343779374884674467049084415172422131498910222327235154133341798624908142689177349449857624491820249800834120674054172994567771808686165222368498840385253022526539975534538715833015693151312037202941684654967502708913214263894504025803388174237867542707413630548253732174824781638055862496865071424801776432402812418955546015217757886083329142544080929043059651356894516187321725110453687731624820850401455813969480948335810353141934139648752743473701049538691490966400960650199235013294540272575467053043819483740349597374372427896816317424506115679703229775337642723209229691450573846174381765601735519929240405799036346551075029328235183843139154099297413209356426254962732638225000634586257369599559593635920582604307651390527142222268913868862410030431354092096694797172612099386943383731797842634433577724586479251127410876306190032818180401698959732728002620492936133348131321955597243307770583064872834617564267458445950612982458157205992575344207777735355653432956137466949561512114169698873053179936363288841817472225854247586955951447340663990678601058189298251276601882430425849735489405427894541988497940246310143514312613744449705223973014316008258450140570016267567635277612852236154952926837416615930167347315231212974783682122109292195170235465603812208479456769213785346491984710764636667158151502988640796956530031979674975706865370536244760339556622209347194395007586774995910150885067059237724686608270642833396313788137376406102836345283990396638461794538564535850331806993891364169056103797593002255872344351647929103229178349993749296925751125260240887158001385212576319650767708917754800017838713557950027423980768541999092120545818587628427390297193551939561261575678263722668461353707066497135995558523893554412195350295181468049634913680362360652868172902194842620011980994423336072862727295490315897657433152901083637020677568595060964552018474478387688694724620198645055357644360509644151853822601069206096510705514624851671897486115010131722910450323691142930443401579327957234640403890795908915988491522633912418962068860411555163626988976950068118425065533922949359048260503124675041865918007907289639932077286314525526320684318558806259406204911352450121489510302247935143168490459423797935339699764301056218895641523673327843107914734886116202978287440799927150189406232466883092080538476356980279971988823643614476241344322225489503233018282551447830804857619078478082533179148179931655094839603409169957729509649744968728879647015425618192411125657404225548213731952122412302948543747247285483420959251208173249576036941754258455964585763458119077190580664418150403865338976537727559585047909242999414437025262967580537967235690282958433383435183890157109019187211174173562501871711933727255578947711029733446263576337878295832446946889938217826613178197038418170749303783879845529633867970342860165013470853640557428191085415430614366093330821828743919289590347016453286089459668804570512356337279685523399778415057151723138337367527509607157986530964410662503890708763736594402131412187059486904673367290311687804443561581178624772478992091856050873711307646670603918357045148128496274920191589904716523504125890017589153463552419119107525914301829703009064639997527523639844137147422342171836018845016326625986764921347764404520382041167393274969990327474716838670638584494209952188279431634804232910924774726894929238039351360142255197999818562744510041337980765572929287320954327982286839787276717983470863718612085817040560984327194085124327183387630473332853939265715839311600904035681022336209205263263474239771872376440323156239924314697824951204194825467483338076076104793142268202880991288968274076278777494206630092023052666564507945293932767366333840384979200832411015287100095074805244430136260440592388107694941172413446644462842662187961795088029646183634769518616935673238447075460803934775626358294230708816182574654517424977352258128065862854655950807021728389283450836709260795092946852660595892433788138414393164002397711710955947199615350401608883809089742902131304813118078332633971591764088358710882626045039711972229649568137505996975026410618891655091807986643473174814297269289686751675861969594505938792790944720592886950526724252506020230644325242623139526730742703127531704676964071195419023601983347412501317834918970106578339408119335591718237858355803518020192590695280156410469002993868957253591365306349294456133087320630940208132283509751570540287582068056980960949376379901136715606135787612575214732833793568549230184514881573356841704937178005334669651116032493421269579130450404648592519356669871495245022385578322510477765150360312853585900883425224875261894872612718954625341345642108144741802412281872250652425351051937498561368074644841273561344971477178580574974803989076303077294046795184991667193756994055592089196454620000153355268889798326316049855111630335403436248499907375239646958305838142510033047376072847368741676788367305135982961195393119018585056938388854336443555957017174742367333020308726257402610577191478467761728217674720064195567102516275522172688032684053026109936059633488503094128076041227017130119154031325450059197196790610856575693698557543236592387282345681709717603854137800147644395620591294453538426822701222380440344147595578715281156286789421362556883551091062559977123743568967884754255420906425001284348434382153670226818738292567875389483823067618463815551656069333234079071351217823266439101176963099610349176436708346458754199021270467865086957277172221909329089713401789532422830783812022569418625570470036136289304923833980792198701975933411529747627944677698925692016765051170474173167138132949013616547444841486212749862274029366256548596113752937065197045600164245124754533892490438935409080011407854307594892377610589349789331258383800475232857769576589684688872198532511603764093045418196554451280024187485701031054841074344877431520667199040722244743366532964518214972478837346681816337427306484383453328859242064198073679798806247099525127273678742897016279718198609334901714919091501182211208191848923685350469396267745749770322692008184884002129691866639174604381576121585922226796918565387413440711814965092106878427287426153420547414554982174639096209039186713356741535973945900555043527354129730188198400045524485458413288799304901948796964958611706448337504277936077802235080135273027892125727290261203088574617674948131408434818979800274386768264640097697392597762184344948940812461776558165201846022830542956993946494110211166354379220392029845821311526215299872609820016320534169915640923350108216307535827149161347735417074306535933536994451118124937116754504667362121538354840783825393490318031620228933256082862745345600612832456906043907921199755216925541774548553936004550135099989097750851628098522268893036383314356459576230059443354080071040383229523421283242500210996058563942505841561034272559230216394608966209778204323697852440044110654370340201129500542243982139247642972387671054963735011325555971373810683004765573143593275966834788036664756284312105473945524697545280556128840250519771148899407293541880709904558422000937856628020039179076583618958850651344666881882562010142709617211457589151412756161367366344979545949454571079694653060101004576256358334662541271727478377082930392517701712759787474838770147543061652356355255071752137221377521442404902314025226084258127043860313190181219061671064092384407873652057021764210282654414452007913856611799274243342435055309525196211320077573802893755980202002803831147701132534780875816478314814128821837379246777951975194652799581015642031779197725155745309223125655866510382490985220539708189224928793450174984132156863179368086049997322219695665423689561824359749261252248498815593450585400035420422240433583356773273062899891318269927610212358630671804605398174258795827305926227622028286223887892440603992566378988787056756009549767697115944729436589696508938011455675591116521802742726805179160816583733414096286935442071905192464347193782291957880337577790868024973451469309360527296491391909938536792362907902351351066844063572605494666943107031854553170018667652352306344129647540667303609726709933606218041342527718652668557406313868689339549974710250075075052687113513875959308602915961185346556037975240477385173201121254597081235649736423604972450687797974104757123931290315595970699160823804175213052770691196203823739268938777609874278999843513625612847476941614608721082107498629513759435907662848363506497571605696601081032103711938201932065531168911092076286036699616891569124991212643980291064527787142612675720111452987724292760313519320853736927062656588581812164136291475929534472375448066195919775972104953880759489904326940710978707716075001310264115563308840297609457393273888844230762270258891356624271551597086785527264092804398910673678326501735666606612938265448022285690180740107133540785720757748860664760592771038144743024192643214425088095815410705269298708210710875133538481226092257582252179195385403170845576831035730566003882733509221764323976013012338254529095000587149607632580515882839498201134926487381837652523091665413509498398844332987059719027148476136019276199557565913130098356090144892196930864570667571285307641080487464962722464796143218821041180084452958244812005762477691433341537448737441322832232998616466978323041817297632691502880653307227454301317529439298077410193363254841243245692236552320046427266624856386345608517069444963447600590245662957803895584359647231007333326258444040388716999839140827216546288611163703052832158587267398596871938035791890599908425672667622114865650037405898233848618659291820334168140241557296916208001588273792517990887683405903165357577529009074905940770001439734210563506036058345033211403755024121379073857009176958575943399954408042092392086604668338278008863103205195687934650275201687472022738338373445458090178975975410183047477118643198371163083175463860351915807585988831303881337254533486605277841548044583164808179573970974149495450335105697302868419884213813134237998325079005164926700627454579530374110691667546334826727663051383854921961707026763172990459034168520056727635986881259107254103348192425815767875882937504236544765381256937526566197227709869929310267535546017872015641827210153333700415957640608025174357270926036016981641289613954200665240439779649361163854801850219024926577309915286501611854940781679526625565694854608228394163205984945854301809257422627943092497845130194697960466371430167455138334440809777817442967345452388238139816789321480055755281856548573934242851202271496366069134336315718921472394147423571785689432024734163937634156896937052695819855659742275427716409268706263089798873215878870515697922072718101259432695892726574427704480231341217276474334042878790325257291720513625668249536205619181570492496630128913905714538044749263945664357733307584492228484864410215108323678095222212895673382331347534332141904181842355786029236424650631327247261809601365586486240393700446152870180216929225460417080426242810359865302985156725734752519965051818173721212032864990873221459324278865412081263997430924656809201551481523099127721679437275633103552716300356402473770092834927635265560168108877832695907974122872062868422160105256288272111047357013626215550034755286657962102111130635219001569573122699799079444228676917833646218139331818518585798610291621103512676693736794208249579012781811153384821638613677152579525304048705578708681177248268666927553128589500598354230910486245015773939984168803457947606052161508070302240074877577965714470081863421813005896728599921214073318386495331852249288155276318235524932030274648884130237810302541560771469370086161239094786116500841920515038077017002893395763406120491877199600711178624350428177560107048270381641797131930524770541182353605966006113315907620608123945941805397380364687317386688129093773495326442684976205856450634194881512173088024134547218558819189948201278409177905406124300703998886683133808144987318977218354786931255172097502879341417796132187787729513398577123481763508068367870157817877618318927959686788535589249776078373385447524428900200469252860081679298773312158067625235722751773279415226043007802194223954911428037723438433631110020310050448173410594877644395709771001836598829218083678653341497725214195029081932043772860984108325278038888444654727285329868698804913291440824790363642859336580916174530914170853989304791983472618191972454287004782332447148623552023092505613694498681176817571005241404008635218391239766512529489935115419029155448192709987089398353516312828671227810676896130512071650094956643185084690026950716575763344890105420895136111492712318015442083913185595920239380180587184827349023449801764388935334528673805890611022287765299858675995570404179694699300427089402662338891161113561765546147949024682609988946028225060144460793829918737663905340081597341272740631938478919863954696289433733725718832653378439476234546081619480427496937248301217184781764609491373319143484597845156558822450652302229880044360449916754037621478367510673510980953779293697594820317728479283758301882938918288658075852281083270674060701745141781912588852444824747193127147563347495659351827139728177393850356382891401703927251867506578119428000393592563871615801231387901239370173462313260731680887603589122232467876871848834310656119036685237461812763929750287626848617320233263997014598429001819376868411473956832098693555134410823238725203249382342879013788602687376356886698819341798174611300071470218563273580194216641062361559969588446092583120831883597322511793553729506867990599023803193238029983601668314674690140083410222572860275595199585050949377719362704707858577629852933374720200198340946041668339202770757469864321597087946368365844000466112868862638946506817844326695924272453388515418702231261618109680698933599532002127534132464456396269521391914650292192978426591254148620358023041177875031232015197816577964107802477767893410919677323836024670337637302656490544351168826327093221867212048407577621220793332087351336896554413099210388823316347234101757819805155270130981770187498996020044042920706142577551849135974145248693220566591405184434590245409987024622944061243682344596762241456418740063239935860069268887022449270492831837701937889158980699287134207131919034215752306194899597457716609880891635616421286315408427479848945823247996000511839557979701643512277810280642378106303771708550153768524566717806521282764204613258940966725758302234770103160563845125374413719101189388529459712495448456322423950899148426304443736636117952919944793554781131462123758662787517312577373010428275933961055462721558139469031142972540510518817555866591290787333017208132544768690020349341026389004870217925188108147348243537781633577301248806667136983424252136523805951971257667344584076848243165054503376477637330158662063918527122336814243493720397216566494631127320604910314254268441809982910751597453805807046260431656308997019252264207001154203615424792643388450701275244207058500745681968567704644385588144036186457218740612973127854531263397781893518436741288406335520520182693655396845134072400906777267173685681058422436064179309128814749862085321313221764726746995759348258697598710481400921418973581225642752663612992870225145790613800431599286162769908802126654851763662343985910224766179552983352251493756549419028425943672666469408961574710798695622589432077207638638174688604766911810383388437498114917591111985512392972510024876225238802730805035481924398589925437881776524707838198351759100990690448874575807051750046315537663218394516404720691521582281193792307843120467744965778138504520576702482734532719211750339559282894251791327195502621965151018435506625849773624412064522047464630639863481035364638912265681382847189156937295848630657574300787685451526888062755816362390031950117219358906918220467258644820920802422200921553080797842518412849152716241322183871097709203073709363962922839843618697451965008658769271713362298754347984003589839019062876221889760918415279473767193360835115767947661166278354149347557372900402106412456839954293707921143798084411832156604210917807147816888484453209675610835390816989134045933389368414312181979334952415115432921793515576684699437849298853598146981397641219713343017317585226987318289007911027586268297628871231368088374623315915523277215078325496404540204330872983535430272738067986506686073953995785945477650353678731510869159620664997626856236984136435319809622937240118461753634648504914445164837358075787490168092909510557316581817968251723671005476053879294126462656851046866630977068396207126629522181637108322539461786626052209740125446390162024101928644448667993810326129164058412977244148854111065859294146203399165475157716404122879918357219160105291351080022862722848057483917652502421278932972321633397777482677422137048067074758789765683181837325194614970438250658267999060407956627198702134753907609650371502003827195832460156586841803934346590713367265799639804243231987182738230251947606123424733394380651502415693750212315061326666925026228139182925475697646938803894201004208033768848361674431909990540223975892947870349689674293305586079108518571843397944645136392044369177945657408505401683305737244062751484552469548446709212178391197322936394070502520185546711606158490213578643800941280312716416715925812262138482341097267566439899787537665426123820440872328685862947032257517267951653668548609221872495294326084638661868427763069424985976007278966896974961601862320457469041032965763573105450420223085534577859129037100142871424436608431833817118507121959913928089950286372004645728782175979276155734729734545349878173818532069379101401295537073069638017138037840402288439493848526019542200034363807126697771870991717166484929059122811518202226308248639956553118579760443647571249733630278551915040495016936973295246191472844333713278509331714543804333226576464707569192766466265944493793754037685091690749124629318937420048646513960038508454790152357860174046574561759450741736116674888781955530134633586822897291578304363199741745985200042659228015818537457809765479664716640473696536494956577537134291293402284857215725707364590630066657552646108217315477010111592784634671287244386380628798985130879312645934668798802361551957523654683415543521119251039303720774895734722755965579396570256872673270806848624830374321980196228252940515127498937704714163906000327336151863600836371839786158088961217991416819783006526875115577335619853773846332153698440975790288839330627089332688709507071839322541966172648979090340869624672071994013474082457123106448683273357541235315439292242519326515616227271262232510685536684357134668678969805699974488888863607124098264205632633630260185965770884796750332502212491117381435838920431989706839945135396886359430222234945548168311237603519485568718872228446067937168154618519980848074797236071795016488495920250951828435440604829820052153810715699710966711329023483811630045725344337572693296965404954164771917056913505310787205052449024848940007445036262500809995270090681253016041604985536898548904584215841086552767937442043973507390702784077858477574958396698822675400843818228084326444493145414596331082606923245733480472470821128620430614904813253294163882423343252334141308759394885133672373104935521252675252274324545686283650339877709223663560717083584443601544916089193112688757667532984161400700720911656302597511710473042086958528164508285872869399703269388272180548889448806049055211333275615830029535707608539135947680455263389679595957291797311497583601762830582454458625512942041473434443411956635407518331637994202916100201420070717737248480381392671993011837641086665194148642563439974022500581976584131940981208427285313292164397133314915910279098396553351935982147126096189215460496265257037888934792767403497866056762121470040311429104187569055703236262085430234534000505375234899208125241947561392464738274920266402224201658101593061624857472789452684090025445540525835398277819512912064982781853981868868921188376846103642830568315836578442417749926540630813241802741362091020533443207495782893503306782361146886330659575729802679400844896528761217124204132420012708852340576551804068628997312207472089376302410776491682029991696922500228218758531681720114458477721264781589690711462254070617498234099218885941450455650436829555449511710797461450227212551616191644682033500481192280286716435484444715821585021359605444126606998284520565716591440240545913021181324176115012616194724965005396914862217603503625809869158528429875959205822219600036960330003788398736956854690895011151667467041564232805977723089953524042714056733555046734137091684370269985160498370168090197869795894842077450216403631355918821796586507002740491602675970445815879129599044545388247858942771912487333824848428390028874498105456267431760684787043825182982873987853433914481030276199017418990204843410403244491905172227796985868021646045858809988785216783050538511738164080074442064742538545499793161470075603792510872193453174707894572897695806228687907463973161381941494177515219195655186275940463143493752130182653337365927690416809705597861654491726242140974808260418291312674624455970224840032082261259132156618718408302876375016490820419661334770659216123731584513600054380781422727823904300285526638099344810198027345374165274396255926199894294724492959628202902333788790645724564901562272184750554323937603206632958264057544803612715862266885679721163054055643701081633625155995889733716062853736469082087047472333946554391102213226146379423655720359274074493497576064470872933308916911115380871476115682690153969924264067438500141725367954418254354435865108387083140180023135470428996339976440855796143056125647898452481286167117394100349113643512713127588866880903559539493446526580042413301894584334093146134325674230003299652363643553040892897108782907782490627036177424285900257660132361920991573291062923045046008816194564305232357949710763983700269595138094895542705875885765827860220116566654078371125055328740720754104542354721511768846889474579655596400790834936554421282744811668728294475871985874450263747343528109540015823897549630336613609409490289501921317758299555141947931653798099359019392106604368501267303202701026266978280929525211896214429658525606545021934214931738198602196309115372263437322371531272026055107715434797925990987586689677275226369380842903160181017398632778881609311077708662751973558255377078633626503082145320217247442276312740662385379980356148374729311549856772815949701103271496774876883523873563815316029764909711677254622581267762136480213777727376334280506979624428326724671459711812713655480848459520210876822388186178602370444054987225844352613113793831672054988963551743417099489328075079397912009263792199255856704500295635177946213044919838141502079129054401613499019686854208582023760113920829526548593433987568064483175127155915913096301894189092224750982423502840520719261491488014509512803144630677980758672540942933042297682797325422570883870336869687235722503524840200591941958050544219655187574128254694758878085329566361627163148866896257192134860698594691940069621219977208511391702088249170685560338983403011138484136324621295362839271161647836396446780483350839704775254739460301772452040734696568353240914678681883749793912083667021263786855997335910499367574068433880232436445144811337234424733884611860776397714610133921868584566314038437897624553504667393899454325312428060513083799162655786399384669118010520830984361298027722752212896411020131237602540820442197158674814887685006443808191895462954378555982464587730407956410810371998599594766881015301615443086349692630930766577577481457213598215229978095412570161629132693675730068705447055952455209570883678095370084380345663519446543782298701300235814301011262961722431153273580164685703301210665317100851940687981367854109910339839862856183486787223676855325329452380567976061204012078146835411138387747135475871359033306889851201988173893082798120871036539167185571833073168637483207207413946155548456217568487218906856864589161073520577381834537723764942607855113784776684226159463251687668377877664837259604674600757891970625061524739334692478097507875609299078115220058274465510678071335766628852098827697821673667877568254800372820156234075966357401045493567544131666013448046288405291540533004700730108960745742510093856834026475382427778125896401470847770253703653494841039707097332576070190446643804588218968983268325859326283438884518580673045039749018335236883006688532824849108932945715390344478089400341423748346181420935302678457955056557881923349578527289829367278684477457703781214083390030135307422507351211447874858712019786458452879348904412540313206816656706496460550455175054884742980500493060539796985021746231402434583404654667900163302020494429288970083026050510992868951147362581008798207877990695418336798153202444067745907654592817135491267854666255627636010970110480886353687304917848345857477195464909258002846398305978062219548774725863954574157848063145098632367778402271485795655740696106520142253905477496302178884127595325251220237651132636635335714689602454234841839106434536524640011880984703236184669649027450608080293080676526983697190626664369803144373092508246254912171530756392731174342835495976771564019378903771682646602524590155817119402735211522294690312653798305179892907050665502297217522017865132461707800875438030423146455423469078238273270961275849143473536159813282689343697525238590910616749595227831101451298716270962973025457784826351064715269928418891468915785388145184407203282042907143383129622392738756406537794184106100582272571659318867924682493075960680626811558920883423018052608881633001604534906209206991184375579216818137271554609087983029867820441813885200479710892938317222434746273883633984330135249864591196826030409319941887931476598281334368997067942405584411018731131043102064268790109234382691632492908175499542512601469993192374153288754297042342052972245157718495620634785255891865685604406851315164917365913850291491274111952233684960251081979924112303523100657001540462071450343578615167893686295158735507381786344199349500329370095607001468558408979068132483856622645123146838560165814765559547869115090329191682403700131742628800878543876064344286140614768899247315769475048419359747022738559035804046732701471276908066621844929718312322502395308075188959573813456474436276129272419653385264259313190940432558303972695369098804650129873231805438531301163926946906817223897039642402495429659986275322900678790786495114662904265456755804007043440692839944059421180772567383741194137441816388679954893578882557665729041514396143085189004907925507009384256334451592093576563698730129600548245729696365522023710906781481098964016267164788235414493993571057680119081905522062762190451475570936016700745449684226919395329017678247502938700836323720702626675249695809067208231238882754853120319305517240417286285825822132373803445626757718309965573580203722546799084335783477263817013589636864423802906000075076386263660592644183217551939712696692467330962280926147817410343233644351147762194813594105513522722526433230449113709260670662971948539494080363160899136730927930924324252572230744424035234162822628867090164312009734425616484309664316117138407740667230919064892526312294984276663008371957452667392510402930778884137502249268110159721026729800297998315498304162787710191750943133634721359301412423176938739376602933521347722357334016185569359358709086313571285279441979866666603135826454167709649796042625765697269931500292972133079573992914371824704514276936830565203902999646743598731021805555556040331246711142108598512573151988335572961259956376193643533231600161304726414914092910901797130581998014869360728717963667381804535228601970864907110292719374655268857350335386041301864170795993376492711914586093247835010371925079101482540128156726431499103969706714267476765433135826817350925758314703537361317006810673239716302200845591745191504291552616211927516445300900576425860526737634269788597814912665821556352804335737302006590361529565610134604701837043267795629872728659769264926414550983475744860595156372078672426190283019721938288262174794963261768165729887654531309785694663975515585824705146964267376924427418216236356188933352783219487638798311662076294896554598696508548834011743571175924528157708272589029544155465720812678460479647945006757283667341599017858380263642167104667063772127125431427752327922975026807431062197992351316299418498245346575742811720208009343587932036073928387485223541267450528371886352063647844253305544065271554008527179283003005857310327603265690784215547246612714297656412329588300867026240479576320471535541391108794863083926025640641488078986867831923893496514137048175870757262441674958545064777131505341729106894689378294232125735706056820585212132466879385223897160958827587269513061899921317103218084864115903376712503434324207142141173416585608368672519934099674806368228204701318551829122271573728205150751312278836677479619561165092894411548764514415865685378847151202802707273731524911969941326227792355180367168869689000039831293899887368383586157603582554323787975069774403515478144118558280049010954627287970055947455271356660218171831955316342663551834105607269687168447509374381342251772771032001717322065006286578517829775192696357459944037647781892548140414728826997975843509018800940616364289061934075600789772233448316647005335129475587172690254107878354038724142392392178653898744217612655208222046064532815793379388295468861718298803746882160914027909893842057410989225064575061807255402717255966923155022293786558151530186974115976439173355699327304875385145713776670430086068736084336211601503343475789009534586262638387734426761008020621558107442726971444175671748168329474462146178709562066782183786088226239259993385476897474486035248943183719448120315929438698787354562577629965302802068312438150242877865225644187661353152178165867102722483808092988966364995249200511895354836706673779674620712117002748665912117918035087901918217457240099315233711148073026283280168851238300567934829843341491077277435854553690480123858293492534099667905027289872260740662400539522085162432267984364721321153261748150804951326399725576731381197539920986456784217446495599265037299087267911193933569974395969282019481963701710440547145953026962852749355002195686549890940458066693403304097389470124782471344017625889461604464442864264441269397780480110129410191952565728460990861935111265934933119432839654153076648144573280524087402613672327177432752047076143988781875600383419524770005138226905118670132958294336730937210760163859098034937180794097380761818717559587616905710592509345365519644374873000249711555640886185659975454753342955141212989964423580612036984438595725464321572893907147866539391740265599275550296543136019538256242692835481844311235497934885151656426876294884116597223141995002312347822289921645198731819106960653926331736780175582918515367043398963128046677254982803672361671212412776151325580335643860183825891865761747610890179449429607718604579965653092804266154680580240500733467939609437091005450283443005632993239152445714535964080674025004494741848822247665707944291648443508897355857176531491280456965083395065022756529008909146175766420645694151206158048890955085993669433542846056005442156671087482188438682415163912633874768702338233576002231895102443606964682786170534629971778814070531231921659153531997494225686799164861228219435148801050151645155642220078991246061401905200707362927732000258633625728110484838968322704274184596472494388747212932079397319797163011919582190415284807814585142742345828101260342364158251600229167503618880263598162183896120002939986400387402583337543794448383180205660063093522739220196046902039397561590575425726112149267476639796041283326231029240135680883623146416195160864618062506870218389750608772931831299957642089015900865266426162978912885032625943269820284992939271964930922265063524034745748615506912206708992151449447430212879482026310929640497355034444045479793774123229893508505260549546005065573762644251682011082403551058874361423297172167597956878249154442566474423899725290066641345590031721288316079208068464722248842895934434956238822579244617390302095196770088832427705336304178315303190938736760025975197543660206155785336981368918127219462020436333991358086692460881209525172772990327614356781176871928123888989760284936484873439835914647090754736718771297571708315321947767260254449334859189802815491995130353756575504958588679473664605480887942016337997924568341000648480230925339726627377437954006712278445898755799679916752860087665854737340371290396736412637486275545780285495493649249385309073474136030970789858237529944915540341410084952246033993993270621840832563576869805689863287677652246625523373046465918175480193116038838780154412623878061179520024880319349988477283205014952807940423498913830167024805363872432704901084316758020768445145802575987698209103979369574467131220294067485058976923955382919424273533597602046536978062866846791025502413390307077749181002042118268606470316135246622303140072011767651486704481834075046326414024896145990208694194599383475960993457409517492337823707561824041487563088090030378967063577066891157768701553753971635602013137783711573713707502311195645508941497837315010766405252668866409644421939156341586681843659666414464589235179302168836014534182685212840194523013721859273019843862036223792506511717329477059261707701563505329841008346766064933075746549822124771032715676922791630530232640882831861157442221825722782524807295703863161384714597996478877136050845581981708852096016369992078567247126051879964021419306696768130324656450859759044997525524075309236276507093945194524141532817983775351730482188206562264832276170074137130764820951886078333916748174143719189421260936686490822476005859255707422230887837081835760879353778451594979183334682049683542313070653384401047963033733019635967404840966109149253706541334388125315921649148585470114587001453812547791161162500830533481710392636080688954924200184026651514476319014686736178046402894636249289870325984364770784295217735619452517607881761934100964040345466740165488843739136214150381217437342579180214932275681870461202848272758738435845484721296132691584917052082586941719019795341122420980474086006130455300369948005058210496655533778436906030535338543216870598804997400017172576467773799836768009321625935387525308525315863576368771548315990890875585556994976835253791427641673404302426906927620440098565912372654644944109675017257312316357404323655035940056253887877315659404563046501944600002044140793330290885340688029801457045979713308907399852666516596491478585916476399790662727404246012115958091887465851345428050335077964342829954800646640372647255981440626151446682518829059252767477360228852074257902634080645409963600982835121328586410322430505221300876645491867937022065371273110582144088454023953476538752147895851742862883864715971422695758297375361621224680848372242204616217206775252280786921128731550185818127662547775913351480243083820966417257701802276182605570530404521303021064652843892176081075063504151979347372073234017415063433770509276551793788385882713041047978611292553457430883453648356950263756357254433524158647991052882855343875025006900977175259455302046257069935473841713990276448769478765473778573210510541880532403367193990120336527436938242651926005583844507974286498907975085600999282629688338117627068416441928153647169232949643551340151343462216484571927444854019191304978802108587839939407900893020192790227938841223736804046950019425050255522186462248840506136097829609412817802975637354086854323813642261640116638846663050635020246881384590127475341332514161545976822941662220976983003218900942092325282860619219733852732012238088801538889959694420181961604300444807414206111664204803598204205215472325058891229107834731188961151241020034357310329464515848028034370794279889239996792662247808096141441862048548722606142818703737987158163530104715028427521910039904748049728649972202709689609656072937145309750617091664525768150921442955929741351110409895141902315312572070220094704237991212079788468369826373456611139719295380267628930957316265871806952535620526921642121357234696581199108782589940095208110807505572190221504107739041390946615605888276314086537063733585554385234717115729924080552292185367865682989104847061471635447573236253004346385507214912668460989375108373252416216709062581154796160540072148320946020131674756568736003778478812760997677415861355937444486552664819425608418239924932499401832028370625616729386606980061439608480297600057218600023894442853757061544114292520624413930966472477073686558508172024520934221785206893985668917650026090633449102301742593799767098108299323400143132089293407804461378316548306558494425489102995853325414928280359408504147200975839741715336159399556713996271492398753598824504725891070413343863433367978883748009633528903122937757260611824473342358674595511904326603623489761813879646652302265668006259483903662130103802976275124174019554917823505426102807193912192593081924650823049460234656125149575655404717646401715135976158832421149487607376293438921799307048986529948724640466187582389627874504978569320521134975278609954801813272645825904063001642164801714563992599478657803424783050845084267357768119116805343508727329354941229345156881774851238117441014034395334996570714167204367463453827655863782332970730109416888418224680752273291667773397632974715863721695687332037394827861181432734616390482852265728731408762850705772428842175551938648207417589184664260902681014484909694510614070771644517059254028199717483001330529716440589369166605522256968352565657690700627346409798783770312332749333745833399632955810405934676068885615189932933367302142220832393266797595094461876699782015671486517204814947772902144477095186308408690956167383381974166906743612032114276013795242734089326951656472558659365414144242286949036572535622058860195822504350970601896038603166256475994357354283617423858754831119328897174290528507690503632354054724939209727982471226833758559236123217024665824130870685548973230667604018192457648241373559810368557674462314089006736031326118698403581677898370785276046505322713554710319311756224744648885174810817429640248228908037185449259621450368118786448480608203317061438891076730670388256547066277548242641344155929566955077156226456961058775396826264979709311013605205722565480284993865113761963623126281920455704413995114097614054435581506598484614429556959598214087488546908626535083881430990032218723893869451544969330815798769286060363473862752126005052424808218664217667494179396656977871282845203818977734455969354935146695908072116215757859070617854871382265449153303894083848038620595599529900238005354047401406034127945305684741569148171471206063516891200160907418425505042876121971226257726394716843502294241548632357456997565026933657894707357782795616886139869632738208656325769950033879618437316347780615860260382036920642688451547665437613023235884362790882918415846381154198845307166157303269069619639426021184281764971759976903968993435435298765055252581103655074933038971475776235351325876265378701158266090194282468520104507219945608240870206664762741137396552546950307259342628350469893066043272316575743004323916975528232725702709626359497264135215535168507930632772545492796657452486093689674210517927470606247475634143577755797637648253446118142662345340888224486878122128041490561893404541695340202416446374877891362086644358620624066136119012331842587441190718431173535034527691365181451748380065997413230563755110089918929348471062095137382484116223850366472060685734252541882116060639460531809128972706721975674292889032427344721525381661000587763992227738817661292786451624403465233123996141781289028699602097812711191111027257815663710507635034420202682547394220112694136486742970759759823850296869734032877743181774020454030135781261934363390155333310573157877108649426326784721187448134120786018691298071384675970006517593020202233632307962286247810536244412659807765542574087790124974772747304498554876360739482440869576503419098080925474093229491368998536932964324624754286153559464842727035480823307372382108836934408859804397554461726690127642364484872300086874149580019397716503514195979951365636562277229812462994261482460628213528491559796338944620790711406024332597273773107032602071307847543395828460851723249312532430937309312995432108728421522668936936186614773529842251191651499204098256164517666028817512772718389053062945096277841995654075673611075144576221501505816542464125326886329147275615156524658200350836153217205473794637239000755932369378940819514245558685365443859821058081727429830176541281778452035916458345455979440124717387395703555597298827723386194113752961146324650074994633279554793726375792508565260295396952543902175505317657690914509224263364963849213474434817000634502058300471441411434548215892134011685154388317481084325499246759424051783135488226934687251721731105310002886987433168893464427684508488935422419660903174412031606523830123310260293660665497845185553685400404204266318509180478760333393998182317285378116029961063551916817733531551920466164420875101173887190839946084100472342816963136917391214600186710497611324987915276013210124954082755851502439784294890596442729211888450441368608375845529679855497167500035714256517146377153863771595349822829236835632714825545077649160142982074624995536509810343434339577894488941249054036274207554005521336087078281554727660041943429757666735575144018132887223239314863947333555813720834219970268701620122673575585606316949802082272053864618522980459681356264392594687456255548160847148968378818082022456014358927770046371968336425330910200512226144311453401263894878776002879906470467461395713706797183515163831821157963486338382073609714606404626272207645903728028963466883910758010977374158296258371039166296501545691040481926256512622612263372965151643967651716425606220754670371018363964851807421368263275026156913529199573601939395750833132508864537820770578355193548666866206881949656144194692880256981153310938745957797622847940065762717355067222787837073219117385814529152242524598491230406348027244607575119656644696069526915229926980367246244269837267000332702159802836333072650619711174641174419089862925120272326146615421938292790556704278922824942396311401302609757024174621408818937155840392031433480304098960211807944811472234556906756372586705583836733500098171785704790572641891389960590519796463779116532644753793805713168164408205343014023425500047690710663808429429052069501374839298810365499717369723265427876585635968708258896872861501387559317512558533334043924391398819005352899267241669624690682648485560475843970223821769501224351661733643657986437873711710475795567684520749379804571986481323058642339891079746629267912165388362852237732016061230956344013076908439697499784902160645609871527979974754951262700212065758125663393259298391478740373941416034509073699003703283847963376580095074260096563130434799421212887643736918147762492160576292802872516522012959030194878747478342265320722309611548738539418054095091873079062312469811942727883525836833387542213436031171948584009964592139752277109732287441667643463062216845067431725953763039176792836338634936882484556538373277987001123037744499697320116594787015482853700551715902790137809734366199676235604290455420225634379077283101051342482348996726852022121314851594488307880044549303157017497369168272692556125809480495443318929387514655998684032065914335566506720781369303331464314525498577924660720165549186765414127662379055722523096753058627880316619115595013051147803724065011642553367204121973788456688513759970362642553712920396343859582558754027320938091355894216931818825810057216778208350272347291109077492056876416212603898359821380246095317952288174957399660024485450130586303769184979651571822279462050129457945588634981465462918469319860378987098108115803012145275550473223142302829881184449092466597828598954075837587378562839097058308524686537889387242435020814180483117113394108232976267319563038992971977868595974943799832227813368025781886093998446397103075609784362353890833201630104428484570484821693668341021807581531918565888521221536601495764883866203580874385257966190316995042474414620168435677249553658057146462393459434878782375232314483745446699582681889247806021824718691129184992652191268274498877586322912019330632865802968422543999961869101350747202055514974820868093478819939786572450600614405830432871957206459232910815436220922087276672878746818599295227472419179121814824476980755543505822174621772597936091664804349871540536641466182751730394196999341287953615863183055609734404030659161078438112914125341259330710957921204470739907589311477973814971647013155128435594529571831300108474027033538180814608543506893629680901331267754183710936974207062168660684894002978610336945131744742985248300150306593971441860597099947425041521884067626317604302575462164361201369727648902497956544255972351081546284735241682260248496202310145789208177349645379797106930101839245180839844623105331769812638994775874372878013013888003734541649957941779883595708175971868486454408324241983145989136759825673566185334863570415090460940662359204012332594397798309994270003499173538054495405416203669984305200378185706127177327997511252027738532352354548256040622518876589877886785872527112431175417553291003505684742898355452007860078493886717649596508969272280820370224865544103454385901691364657477209663482272404083348098163961058990070345544777385178552097074176245337114242475602924922232308975493038402264303279086925328531263097184302980400058660100974909773006899461048053593719038805706663976959092079120019687592073061675943827212609634717909969064040360073432812592540786152263886234784414962841254066765828972099555055924881092472665956543398809062599931028409496642547217900117350303311325182101155583631635702953655564654284347462855930612498713473793463746464877154303605102614872375704919653752232843482446267750403362188559810731420084031166547807194180232142281103866476580261608109470916959470589948276097170084091406999062159008403797860757628857595983529980748325693375938549588354032885810063024596310605264783676100783590281376076358144542471052348415892932620650723625770737430270628855491406334358351603662758942722521281535776941889491632177431456826768165012594158043275299016598809698104118330272827897817008026643635455006219268580374663166191669218688120472597927161847008044838320271312376796272311615496693849007837438732682249366442785309090345350475522832138411073965611805847449019193684789825470683390792308232249648141249249867840955619860509075268941837394026863762486372080565577598313456740338436629684495468383782245649522120166403830164854542758689032217214499040319488061064637059536792009156921750668628508365243572315820324604343570894155219543193104704379189149945227884594160428334296606410904868623125976136031290473359542060092768451280875106552744569400937975453821884452648901444397680761377575661115569144649086013650859028089292941869033133310815617175678293483287829551066502719460534649074674341866837308953077683722238314605461400189515202620070923591473227179916900332416511412219251650129623304602012127125694471306125113601455317045007111190264324614934835170332731591303974933191591384164458142896860844608516011313516240832503045454081806682070560490072941302944083021588218309287639735540688974346009210038338621984715056439903988786489170510751777695036569303860038053563007781313389286210293930590572370743889417889720387588589549903002248885971070894243292716608138607501108059891658691670832728824347997581718141695057264799429555698645957892240324561530826396553786463133691284591939872020042146560867441915803959068757229814997842634266078760090835459423041635350619219721050174203168201647087521200352236027118103550980059798832538776739514918087032200868038945178393363263961487839558705167850359014998700058832295320874671533896171845748820841729637363122694895223517353158286362957997821929963959152140794673017952993411316302014260076098389833396744337716713251534323086388811973589165938780374801564587690441018825119677463933030018483656334981581007646556451616187909634381309869923663798920891582967346889529736320280074892390482255398579520071372886953467279452958756945714411537248267147061977848290035549416847251118061270229030394608761260775548686517250623549144641755464517920497210860557271428204524613927813732398894502036898497871984753839272313544971986465908962611878036895963633855951881804157280343077941840265184272848046766415752889699742391084108309066794642308664250899618542033563031846451647280078948524088857619664472156384458367994762187848737274534486863228120809733984242181462194596677412242221277308325469214564022953159655019150993200852645992284547942759890958369838985109001273565952896999341535091760779709446662432301612245743380958294044844635948049903983344735901213334236220626694630718220010675220229274092811079424746272622680999955182971078333174671230127333947227393361655390885542191734098368414332509647083931051942397424519068851987894065804084995562324964609540067994460188512747030885983662644118438504123133176000201476904991567880900796517188260173333545606927341715078048832452740551957905136015427868027895471522584954633138295937581496716188775210929308037926973528933313788097635859466119821925034021112477796638735024524828096352895560351326231785185829640930363798390160673712393538407019576774852540536153204732464161436685220983013309464487494062256265161749284443045805775731287606586340770785494358002828658398871110518788098916995456783208502004692309568027333536100008273277643716748815045426822640922404639159405107276633291975265959711214006406960440611040128160759604701195536185499565389936497386452498772629556156748344084830098046649378118230592364591605261884225481395296128944492170134042945245826578300801138401842548041979729969809520705948892686719324080028731311099948699435736000673736473759440663078844572946986863879687474738250278910392209353983399674018975731812420052078645582883305340635257843888456873031324173938173893632734364629860105415458638641989717392462129949906728705127566029383001567525885345060481740373523431217420494707107569144574763232172824437941985474366659242880452186300051572239988196659498382798020588611075869000939739819125139247409745573454836303678736224525386811949310791344636562708123717064967829314353941233394740148822976372473664420326985811584564421473642430324214683978509481562966328558386137557316793695823486855827598437400096587084864293818408239537447802572364306240918183141163844507957804255976280791730570454464701242294700514006263214392525135338163547607150042012103857541294787031496899408320174478409845749911975397310093484829881344914570781951714194305160785494533859905691323870074146349939536354748121592466645675464813478966884141790597428320171297238345328517983415370881294279066533660942260236752773277758738919869348232173420995542375272031261623125770509089064244513573257622075870915211672038952502101195640131795569358397747432084333986071655090106024820183520024927731063038724336181367619429016505565201215461233517779986064006801985950135462867708268881671998150301623432419301924300078796091388784533741832576952354846772284102513215416923402085326950477321345578957786736015784027114370252193659370039829348095415216439322777558707452980974658039275802000915387362741005348449074700055172215645286684535821735806505566411666685433445574216085678489555428017163069544180226779592096035010919286911287075019771949525951671974934013230258087292265850045077949262690036485275995328691384054120924178947007793682892519361125191843469249055216454958253675607586844855509309241143143045374551949493387530595806497611342666533438051362409639911008070054608293298577084429143342132053707214701712055464041748481756273820719036257233305705869420182365621494102581768947226270534474456887834775047492713279349871472594482976588718446305252481692870440526802015579240417175795514427563645868705460958533641607794592399457855459455369540020563086995767793217563827026331236739705872544751114589780929575294886437965813165273889903297504237543008563493405296049837501452896811914104648640640343163992864714154453055361302085490342172890461511587333195752853065766868024790498625429467881658162207074245563623686446681660971951987668517868979900215556936342696455952394743014093506392349916404919759452023654680484993792537060139952707818909814127588501526742574574648000074032846712093596540390682750596401508804759360569292059083016624876801788206750155607172201412973597497614343403585767216333924878075254487896352349179932377873907046323703431877487498614057242516111667336177336604010438520698489588843424364082277864928165904344778512380978498772629069501173835730346587816799586539670331682296294210262486487011481539597291242123123098311166388624911798610815942415278408140323172524174899114264889486050956312383955796210525834201731827457162427057848256985604623236767529245171909817467725808190178123839872353049714716878539000023440779033810220425944905486858179551337279750121506869051968265004441240076660952781106433884514890018578722483872896834157947282498383907137950726216558618236727794403739693964964181370676872750777835247734574133980900089698324512789057128713357949005694305646373245496426350631312721810133501866970607244662662764164076680582048272536625972029710437058649121296532289975652818033680146201803342306777239863518804826615674990883362548774169304208449595137407319610346250640153818091517758748764144966731804276001500255609878758426335473688335179454068778579397936400552830446013636531515638745046681870052118579943277906186312767193719391795855196855342918118011967654392070566855105895929737877478691174652679037296514659032059814132157595213073072008365938420013559089311749718953973192795851560237942387281437276916708567913867325021912825245015240060387576030124813482443828160744546299079693590278518719006361591166729436353927716486821137347628714939267983568588874572194226751729491384933479537273718864843311093697084703162769086139863334279322753681176097279542003367935647713805705391002784420165803573166207926655361853927315453590913328726549478068324132860409432710970052109223412161320778074396452121534375080607227731654498060370300513613700458546892506695041439001757556852639896840887577699292352376777884997868548190819308697375966779015749204955433840315907594151728103912598992711712436419409465831161624813520185801346521047133558295968941178745035848631631545134163334871346422767288679838264939278592491835539836666620566092689363382766802421699013601276477296184904510456099328672998348028036091598175826947387941143941724120628441257958918423851724287237991366330173251534207937259633768004324409878893210746228118172241671171250927098156404643561403580984912361699581758707752186923354653726522892180557468547122585261736879625510444540068157018179817488744501200637833742579135113888774523569835664287307415205859584152057826061885838192641630845769743773548016961549858418305891896190214155000605909684263072506574786657009486776649969909442946832315769947710744763521518888502665293639875975839743868126554169708937131971856581529770526060403152787940044125035146811343677177055199091034377979003283740738525555333764201927878010042439929588237877273692972266100599761551391641673576507417243089268581114346449103074924538820344234487643591638456330521457911111658349057085265293528094976103304298654758676965036517240652739749815666918616162319807691350098734305046299256109252642996931411392075256598431536258736842475236086810644180957548239314652345874214997174980324898233584901458428603274005223366872949126703154168215486958776489213042324179593062960599948454456004927865213439313756787169412614763359919090593082178659893886370553673365678112734034340233589846560205590227357357578550786518299142278495159617985094410571234606736116220818952356331294372363105149178047358171322756494056014820996118979277172804203937596181792429556975838320333977798908656266856133464782158907782164337910041714946485039827985289884887373294344126383256263721480121263515903250107271980191194995826986534529701598325955300156928449155076627448376031198878689137511809811583844352096234630505693063388488253230040437956735570400566847321040218206908973489833323849496308368146487426962371614584406998827255460790328928123945204849655606146681516185559573521200907674143853633457525046911548709394823804352543279516917610165399847378099403494815664692460842870241900454826265181630284270465703407413548349320747485992974454472068804395591394239671570023345991793332412920962783773136941288116569840772937790824671322704029932966770832305072237781649423228631533586139744451993450035023833588017392237435920552965262138799487921769398389862151672071081738872569078546739062214744869652350669679855543897252707377030918573737945591710690029267628210855339043123233155637045385102890202886778312659330945202299708044403767315789029773706260598881425224074899839116355898857497978252668022898062933631797280209035440450212212493334733350480420022768117954033805316199281956775775036812871032316994515114075618446094033658464947915382748145967684405674811372837957896598937491057761597354682162937723060465001426513502902560508478871581873999114733445963682138007993413522320281366467103549890432993872204712138129280550360024222644501415836616568032127157728248896723066386918450219602975004258181487648548434572804732045184569684596527408721068644600257754731684505599759562781280031490601608890076606908299722621864561257300318254946538679046403068401798296167486458499343649056814242262752032668245324565532488504403991542583624741729193451744892209626363960593332581651772119847736661546891536580293660404190249761346995547010903755716575830799727573818076039957806797071353595403236543468639308728216255154962919043385645281323215208758331597954318602056259386654721687509158201064488276335857801273013426337873397144059620838441948364432522423338703425605759999181238120362373783551816044794506776090426236208287827735844116405172882554599205112394131023519852242635421834068442764900337758952845100770796570691845664122458603292829362486535250632828257129152105564145181834864944858385017771972096302677828675667353850540448533267190181952615014027204768312465405272263320505156191025629941643499395580960599700557940774234978227418500009922872489224268500533363715165303502641458773639045300934388354876924964401283336405766944982052529441659382747610504894926854281564101298450714253709951781517796244218162493468831384814187445797737986145075712262505864144280298682560152296088738520390994941095730278554836890925736742907567322967432011317254579494750104794698284284821816726276736702835422708778949436273247293558173784329825910897801986716010068778063436497943869279510175069903674096820095247536264689403725724136234595396021305756422803980403795410600194209027540037917807370470488845045924605415911779429092663771383776533442396358057020446159496444750726289514337989480092738863016256884372406768367473060403818575451569859503067168845080508623444364485000379805211262429740813748550447071837502035244682008839072393200727112020387709052340532215748712614668001537031854429568073524856913136025767736296702517629086589509967022666553892138909479298396275264979965896808339990551279927220746087320711003363958360267433569701339216804692971649744280512839678559771020550490395360436271322150701997920990141515874226241179817188697142385848487539234271671207797209635505475879379978380127897114070476820748364923767841878803124992146695560967025469759365665478775717178396549017340281607707067511966228404818019219049774460549758877912709276077054738087934390598022949308176260341010967073411596193288000108800873090990827934193908274906068126139059226716867381756790351852495615429820123791191547117898342849501209964039921139834142690581754043127631361698639912654306652447190892027539025065799424937920730381383865668797037664125611891953168065884352722616999861265468216928393152864929289333947984246613218705884439729592991215970939502212817656815084673638088954850584838977263503496103174288184397261377846850857101582957277536460195311756098454624890585685866031898270165567233356887105076418550417472401307272672742959393507118273301148992628091390195209138536632798081254890815332615018541780058773234246006911594586469974926975886329723007633438700264471252531717516847136636332625811322272181718327203827242752674935233317246717041004992128447666174847346037403228720129605453957690622336189077300134629573406521439764072076141850509536076916273333424876227451280746826110819971762799273588004611144223925470355650655969652433919591004292985179824738154851232971556391234547783665436917515369474560720818647324998256324749414483726294853966843801791754277976057923289086852955771399247780009969147345589804424818365243771802521433703086652665359853452068954938193696683216002668088940880661117727651306922427695040624440136111110835205794871764413808325244170363791657448221324776264105704212687301122767757055083914461745362965960370394218102827043890711498110893553011842244771266881550110669201106452287289825176651849348190382026606999283620714879103094547508038587205411996284626667505102430666349437252078339165341544714076091205096033787100204919688534305929330314724147542260729064278276480493985300998932747585976227099836875915593289444946197831974771925343018807755981434359614777950628798415821979975093582007659790779648851334635541458084262646579696430391131933042811967800280548658378495128425017867076928607917455336993729530676504775581825567361715287810200799412218674613510561282656127200172428943743028722784852628203757320852124657872868744373055931792651782829611185206163820745771708771653560819801573659814736326750339910126868723267929568252446661387371452147181044143380081256203791497525583087344313797185263297991840502123325019571342346334106121889144300018168261353232632323358375480616490619846612752601000396638516001327869404101020834455479553426778974373059695543192364920216869297251139357611741175711779658508207328540725478872963173450724213301641411080571053144694469079246510417821018595025634416767427973163816550729440170208155554058864983210669825433164192724683659166709694873932694174070234851755996980304464504766478067214495387326926336600980378543848475266275971151481957904588253789369342083814976797000808526091007127304437909187374586401540984792305091477477507139453078122020275069673896800764526784389531002978378029577078116841584965496881195925427250146218398883572377897554506607094475546707498886743819528729864359482309864138815902742870291923196066706030932037082694615967636018990934019504228061363215635880241362577689806910698639133449775584412726153888621192491215541208529855769530062645558168995716861403166220955247672949126788722044721195206776328472124333817343956339112465656859531407368940552961956996970196170059603499461642267390300185688816304047078875083121743719075633034352830998832506627850293830617333779007194302563871421938227254251993618684739145229261071736657007271843143216684310229387605760499621391249790135684516796328577941534975286434525604853864704417064297516633817976845265117925580454185180923121003165554906136592591485146138489386561906192112378519486467951462999661443491952840120368340635539493145334973598390517628352859751990715645030624365590685166410543100396881234718003017263230639030690287772640016497929031462782920807945747324636494774384322193375125061577603906558463073488385093339180821546199881844934686874591804525701934243865526183122307829240688953698728704301239782112653629137894216557481763900459116661483617867651091979075731475187409628856707677106097400313774809959293554113110052582236385826864916695749846517991533594277499748932484065636645665558726714121434192907074458576673130914904646532340429727222456115024203039626018792810579652636846165688355487010979377796992314413949384383483539430162200875958623033205332364029783828181841903464889428544085401334196354177790190710762283083232064855896042406829312951259408675954388373509633466041310196059621008932604363369314164850421737853467360140696660409112454375955515611744449867365126185961612684337090957962757170584353246889282242123461983584144465973734965736947291846620622418168977511679391433382904306477445164310111403416738604894642471699601776961019844905624212590627581767186901617496326573068336633974661921885094385967000781040745905453767247899551062047033328254688753918450821963008503155180200066875840038636785245351339324092429957582241248263020748875740269642542044652542190742257103884809810288947359539662641597643040235783582731374613110756422449681065598930262553761890928249510032603744113011174105471188287454233922784006408796952131778719683296087916173017393087636989926555517612009186610521862517620690373405940664454020930880472482640816342453562118788820131651591541654267196455677320950565697034397506393331670694088427884253510601043089111661878012576832350616446596939420658874581724406629694136451141311522517265160085489596826154678224252879508795038302510459677910159648039963762989413470218810217349822378503344853146161585454497185050900012858779828910855772567572593487601411467669092366605074990234979425163040020201372957334892218116821179697736158898568325163733589827904368035906299405682870129141061983447667895105315404313482338951835275399473978343220999281870793087261102984017378485281605199341716725089616326887472950212405339919617083042981391888253818190065146302114513136386165900653143356039340611476514976856611630002340648670289527601760594773622649698426160922547271731259582219390108579516423755361154944235482558831763752593050361477018627384934743349162506406377205098090685055340824075085722495288617058928106981064760719236552709837215253633173213909591443171941014958714182130992416360734722213956994609627606021451488328207669914493181072843229929597852424008997299902573776956469903091699496966364057406387024045397835729553259366337139384043302228330369076341482184350613562028431879144993686808913173347342042214344293202804095703287526597337877662959909704446265805473721837427636194698267015451855798663034495604861556702757522263338871046761311971647950991629868140389378741589986518992377740856118702878274948532055280028674284090525335423878372648923772954243519486900029393087077579667816009395053578422694077079912473934833087244302581709529879437141478557239667584008518999016805534876828568664582929346926428448589925397542472772296677781228029641982768057032513855793500385366815316544083829363788078638784354197795268671235696942826741805233248192961414246592429801232606490171823495174845384368856422029823367732854260186124004628913391697629731565396097952219716360999274757429782781863043493846560021918671792549210872204676677179254368769556374788396139935104325345702265717716758589165880845067444710551982573273203374992581445445854687199320087232443833577926064289204548414453690611309745457151797659457979124031837167191391363814818489744536068067505684167995025412896016029749336999659966979791603286225616340009174337100316895302363956957181744784689249801615997437788573101176356608442437393476439903832138425764976790934923180263066981480210436400883656644785880233658507293765829037852197238687545189977856299511918154760893258945286041483795628607767961684030775416559780188221147529606756413472686469884823951433785716274036626397804532381238897662289436438527985984528962253662983204726844252664790003894168723019619715900454610968228105732235196884032325426909792976824667151758895140989795385116712681375114205077761695577307952651571719664756591170382071656455497608492853304358789139905634219226092023354072306586219495142224305248179345372854713330133694438072855309835577914242492680402323766064823812208317535662156721480314230426962912842702482489629845648547419737204056644279061277268554946842763748123006893341551840817761878321958007568796717842673330761853430121572404101601604384880874122734142195854484828585538410817939437701885352970433403547443084366089583393955317833134195572324219845113393998688759416260631010695829095679917881862679792580204559426650215454152453060123585885085222343576982819910118901194167563076888433524029845069360123653249830750485821577289274107598960615990269965601043084823956644296996920953128311694559421877356745963872579255049886670021541981451662696976326321960227731872953451617632905518275025225692417353733575865180836492879513689109222037824504484048922031584625586882520082599512867846367415585357647776430855653739150660881581291371559438020297689943774335844714058902063981797856772430810056833006360625590329275980838340038091824280452020137369369356941137761885975299181099170644939129610220860049375975483274806129511156327603944258327067120315989820043107877383685678036074923219533494155372828063143575126436999181997950138185560281797122713530185461102695894700876495476744046294002496186056920847246415289357741195882313276344663248534387643961649238133704304334885782346625508806391088882266340744872050902214488177328731722738405851355556684633567938026791077382243109705017591314802632724565576646508161994041023976967869254694985378589590816022907891936061363218768053020730475164593293443603173383849156739375861720612951551365185808903635406542024758740635149172270149702479441313220237995252907220740410841004583558184516846915156363687335300507766617879533666966644820626955707296142801612888102303655248492588120666127654291083544495962348137986373020450998248458621104083745488535118074246421225786353136333817708016769933709122088853230303100595046543952998470889987533234712673264472306944773961495693767206669762057101538368186978585436512287429776766833134464936724847578355752378269844488394283641007785410095581816671068519298569737806159178499714945517949356728689660791404400219899430912733548441132186657618871527798800745242606687798416141552139857363080226865368849349126308564643553407607823764886394783695545846889015437927519931538044377988369448089152456429228248403792758998159013012357138342534686039409978519782327512743212401667073603226527990268250319653660126122738952191373748496998683181374877733308394287831745706208998220803976982085363824220832618771466207110747713818740899972205956939447818384541130351385082830387746574082982777058966351381923180998855867337779068131445201460906777857975348034005554382019613801227272823462437012745909851526031731437934415007809728013962803087309277353112730593406609663857427789435631709145859675778677799724812289396224281434473250265548634750593150332931253700723561964005008456981602105823711568771162238075748756505696874697968611325507330030691649847305689126672727761036976914079040860935557566056416227866693157416625890722620015398706198319311648266723993519981111356190182011055378966574488367063125491221193973485850373013129250793778757047428560557545210772557173464112128458284603694827528540276352200459764268073790618146207988591847962567781209817448451712678423838922411637324082302092761397265250786882209952364623663304664580990290514167758422727663769797122572583215880379024356789525520338747476774065808847584452110250302598371684338593569023047961240776025777055532062447156502008423517737373818606581757732341412525556914427868118359810795057740296695528042083706930940249923310318149671823610523146031976178873866105982441978182857883652720374573713591871893064120110971458076083414658574718150111223283780324009112960807146786274931388795777370940543960353355659255689502328689114690183713989367391027451908529896646823390887684214088563984784196597152061328197227979327910076490432160280750646129280289923060487935016155295011601705503091784597779970538931685405285271028993358580057997341566075586372778903619932050166927131793597477988233533851625843708380120142851670113027332269747174376238790557295635382018970285669560646034374492968958313992996840425459093621665272383485788980745835661983590777816965817380508714133192315936397769863698044533202850100456957161445442219401629251716288953578286143390560772991960459510337450065238610279755023104149999061190651781488634936298167043095956437703748519569664971534433941744048342398548559376379861687383036034818283051173658281939510164755641352466214737303881855776644819098001517909196344283981177751878000607299325398771818561952683627112205347369658341028869903462279170828620682353173046579923423178938194506233045289646078091039314386267869353411025583935647698709401065436449917015034943183595847528752466279628424556382822120049053386914382918258764398378855421013569383870268257234740274872925634488022264132591342989193107693370396505774442634898337134049414708119010258429626725997147425929404289854766442248187300439552494681271541886735365591710055836746111666545847140041050549083563403690540085995775843466218454390247819016547066272154360438382281959848765009751467254349539291170113322562750250003205767258595738068643595221665431800449346639439944161598864951444032960742250477444462840721165809550397721675358505459632125056084042407611053452206447861833731110974629116885761528618357989009637639570198672870156974332529824173068226925765045751902214320148846245108166402430088169816973794145701118805366171908962641237352860698740638559245296375221828331731238812215291391512821507895843764253496615220926308440828507370546460615466882900372810695332785582213017610050077339857007909633747412734895991993232312069135770645655742624271732578701097770003327052170069365149550867623463340216253444895184989161197912932553297476086968794874714222177375539756422054200933936380500479765841358551058716431311466852165258346689870618151641208402830641668410690399262893967290263521179236384127790362429619112018527698395775511141284316152354828016263777609469830321360298416626201107725101038203399410053272609393424447109050954782751553987927210521555277844079834085519060251770343895637124370083867998534778408974649793748865051005996950110890444799445319259747294723604739808263009246652973817161460957452313325371815257200486357402403901024555149234357313712058453276360063860693373424027336193420128523065188532350656184585658741207546702030966401714748139306982222416704406614717450454036746619599426702924995834554310404941965238615302405736455730724882535006030788414290192590232572176633555522091161728821505226007061302211945157650027278648003080816130105314495807226197194347238551416431168712931012646146116173265883529019811499998904464982684922871448795362585939413498568511186393413152379138079612962831237129447768271658070572317543596149045942824656950109996957912975941070556793727161965989313517486557087117736140275562156414586420257721031737287421073872956877740818693180177476270835773910071404677189121857743296692185664427655597048597988202206132658638177108343049010946601212520812831361879370180195439936023437126718879194243974219897072354785385201765232180640106084416991665083554917273486593966655945134682462754362986940835374875364209166954683435400324074835895137519229505890851708432225616130558996376373616146488467801510773076214117995058155146681521186487409782036910958170127764759016424857680887660625752456133490058706233301024714580614977571360046919058299008711317891188796783632882835444635939016563929932402953267502875722393182193269084161577072169390072114100221708716804031070754914675458493410284123220805525999828001171890396323847072330997047674179042389028971088696269716690272465262522365216297255827403746443509666320256401867647043786365834190397636018232268885697801719642997288778629846813249334019720863159912531502886278635738200999942906480008418870603276898116395153656906075492826578250849057357866215488942424705183744192334372489411187381697568988761977947702243402074871458776385649551403881129090211772449092643515419479982966924726775732015055289263891127737532224744287307898448141930380790596374195514258730557506013808532645942827841034339180307495379387944369292438847961067335093814069692332345432288684926781493923364467268896529247201911507310461423073288085281884593356936203007990341636249091862540929425247396218435011353967065768951434198692016674258243576103334011425201821177860056959204027776459089754661058428343922993892437937221445368924681272378693662268440638688550544018286440414289017424146439613280320942064895837098280450860920013726845901433233238737274539172368652779359698584111304824461877708626276980315202829836217923519613496480917296139822129947181048471370428327691370142202317834627453625684321428875231894348999273227420627306369261106582970446720061111797581627282512234712356496487908238909019001175053430399019294853459023835907031295756102624987151670528187702601820215307375591366687735635930744096203866634962868967379045044602526549203249512265951431997896004863647954309057069572077363898503786063608837038267847191887770721463530846218634926339916731203691766322407676292706960074988598641246253904500434949545048376570707161352060655960312745997823552199672220526214225141609259151648875096842967243971718230980733035276824680228109870383420313867490252860952241819739503232977130983637177367180671145320448827969078169822177199827252909131236722677781732026675238217549494698704701568938690882159457882067635448643034949371517480750745324852485676975376878677874806911336352731443299067468764675230981689110805514279789649655661046617321639724947720536603642672725836795626797831168569417184199277706981072203332090428973402831960605949668832291666841020937766449849930928552443036815753494297202012871510633566188845966147101054024885753307807219094806473000845000574701316939781982647219875222559147374562836366874254943883634263702997938033528003512631023310708936764944908584787647982887921732086164081837546836999249344705479658873299937815145388337808083817545860642780341606368247683461015539560760526864267088913076590067352236131889307662546263777582379835531010632980003431298232898261762549459136489398924713804275921815696553532656976255354327839476360531688017331875502499372267370261634260927987819961485823100372210142899006922425426284653198030472897230418031954313499550612608566125748726787302242805611147660802608302930778115712809188297558933805751096756436830038370205818844440969975899842082402162175992342519997471116137740755905913933355429474989615988693750073809034916072030983460752684870965159885335223261165260271505748584204938186173073217491410179123655736639555563423409165825421188932440238963066860680215253512406397170754735296748712618714975413168912525618712755559098056554360933021352317788901128382656415758401020665038150432820758709515462770513012492864512701873560897046978420893026972125537259355853324056012338102957350218758458849947081003700216777065246704837796053641218826390231179076453874122534881876108133510345089214510099782210891992505885308778943297037328237370128285759847554825679296675564608822120819414966320325729332354353395074565941738508387453214916710125165297291904268680715364995816489023651405174654067386478209273216225737711700041086598396219143205100240227655356939133004656056153592101933885862317966510904691734705838721655686127176430684343243875240612859742136064690052949156952502291042797485697973000231037433467911265040471606956862869706951346658567630349215114285185275285341692043331848653435212407516474733251639984643396169430550227575392880442161041019760729949047529960781194240821080074903196652137217692043527752931759466190979966350722947438039677926622983210899972470023033966703251065101728533335890801813682500623439878013269311609530068653033964974598794052823026916517227729536927178232407927314596357207013193458302531037058816955792410709650838116319490989264401392030525099725881386805189824207589733172684838018441775495817250449391464515286541113763861573166445526043618637288904618677005411541919168022884388178264151940407591900062774323973772547954066997385966630685181894996691289765622089492116076507596384120997675440252250774250637961607483037681298224620837771850479162318188684749794002627641567776127809871870876399233015737446246470715774618036663034551699413720761350224965539333013544393488457686229898998079424305359875832193250464173795665937861016336061085506184447379751947329490821611764103346718576181241206639197764955210237840918818425911164689548755629149356718553485094994840673556118143693721113895171273077317379278448878091618089400120296480106245689770697467914106346320956393089838888984352248830674250235661363875960237971217582767869097331211137116214345634664550622591558280998745259283064191402108291048335506266023911865303152778127983501471304028243326068490612550580423206860907053884618043699923552136159821244319318356867257889304698729412329202597647222125186531422764655338776574422047783921225442746521600155688351658404017324041943123842350293308732591668259525895948245590736620233858210807569337317025533181097824931967336707672112353706959404917731018999407538276285712270714501054126823737672865330296427243539494636162659763024645894108221524879869934012792091287455597534093432456782175336128706583170036526221717264837207543585860772615848008208067435257594529395766466366377613708126012855691342155426223919179265368841451779456802925041487670975806056150835249720958664189591150995812280945571073682915019873500131593680383073697339800028179794836331166649458299791418717533538288883875073973241805035190405551149179946145891840451488717367142408007254573413002350184247366322195312506187394934189257184209699930653916368762967471233332365489172710621951974507187353109668905927309339170043271353806958071695629543363516928821523640346023034049518983806113162055275585037699529725293270681208945411606842311515607519922573348442400082897651403695682208836039489872263544743313921379211104157523278009468221926318745625429929627612186581036342196859837191363702445369084474867292465712427443323839247132036509561515663271985318115042790743739351302029263455997381596813458658759095497552272999987201521241855327599161739338208024001150136112638915051568205838217971285159256213538012643773355744413235352308536256483995840996188604233670605185827226413456369072412943439218799224098621295461352353700023643298916262547820996194685549094399956659261483741806192697223331835027749342793322039210762306832610812359144679875552617087964676991116997318100945215124398995718914897866375952850923754870284113402569793163528032278652847676048568903099294540915765166658962720893922759178826776212952024843688005520360967246321937059604839056590041488387634786142486921387756252688212309095252250133841296841926109115043125101884856549334345086075667809906669387068760758312909045966570245522140002723643249521892069169936293639254381210733435498100794946253668114601978567591477964750711618300864048125617308219621184866858778902623163012642717955539042783663474670158048699643560333825232522240652375307067568012755636045385980249695089076627048154216275509466701573479027678061384038561207200167861400077559515984177674568422623951253790433768384930752037527412006837440638331948146659958483064992953090966593434449365873066132781848962718910869736861917964449601464503164902851826682789657857170390733868654844141586686833058980203557055929964355552770846301160629346853169801280831263710959201865879606314927037601429789449342070218400082298150170999035491437403343349573275805716422715465479632177370055607101621612078693965272139685172068099692669797772784514069532692843539825984581279554823137270483568851077392133328673212487200115604701738244608146899346270845946663845746094284861719454476986769470455621675018701188599883765694173653116727071071719705585916967223704961339534435341027859559082748493735847081925189242083722912420193946630326307958486557207575855266738897859755115017768232102479460001619527925176494378919135779057391608793650477242057726963865912578675396530180506448550402011933479048379557069248177065349475724865583521210954709208939986108583386972807952601089240360940170144884904818835066728079653134317930721986790314708759682482940077153897060075495920589958301012996591187490819255200300008056297026490843230180580974679669603685991122772010034163352198384353844335767931232015756845401579701110173053165847306705320690082881181774353150241812220135585344961205162323291338258611507869916697127066845491135940558554136224475512073335790372601711763288525202110826445866961788286585837031492495492802434473813218012527805100432003015278260278390100397225214171454484776553050299353214554195380837449349587111224637087040818758558495509561062281494312775295360805979967918589830333205168212945153562858105260731686557223721496475032015236683141792729436901840816724616251381819863159430118324797505613463486406162046384939116735061878234870454406669946368794309150352016205615007066784370737923436195257545205413390523770589000543440386485535525293351442570414002244568196900204398974068782510991881589951026769450171520696639536620930780051527934569317678362166829275301124234769296257951658706600272247962052211663852650989451244486022272574172096601391472186944426699376684390995218413899701640526252663739081826049623329451478768669083843078644720577484777169098634438628664060039459335256847939311251955817449741610185639328525888111355467651176282626853182596064852792597751251212287598815626552105048947779381938188086349359495439576119264248059998572422584419105306898116397304971394977062528772224839835844404700103515721338056658727136571659113605212327180840926704164767100291624488337362626848653270682084784319701631263783759171482396534158143359773718608761520500160975690100351636681771134065993566066252157674454014099317847617591440499661198111951079799238004363801382077304124165935186182594142686891867122940436181969487576781597406474629156465837979506249944294672678332656742151461704452180198893035715979987472939872190914674608360401379840166833050081898323534035980452945789619317892129875956789975472077048087400173092601533866618378305842118210741615090607635692890834217673376834836246427393385402201279132853382821787778925100635636326942477607379044336584428164179093929965653026627370244729043564905259443485597521572961462423776229263485892714339941096552969214350359898668594325960951667738564955937295457400457258704594320651797556300128937699583750273829390439403021660843548711033281823843285164487177343300123068031172290917593135624106931048594331584172284659857797348233889446422982497110570048863545238016644139870500062910657077488932884863963354956520006480912600741026740747773827479094619809962026804810005465553144634709349257639558392166451058088541969477362738203692845914845188018993888164240368888681041557507948667118405617238760437891176250642235891435018433192525727530950558505745988485360278679726023109945318976101857404496150735092918147839668186377439800021646953472785775269716541490094419497303590823435655038229180287298371976276217136969053174813263854660134467910358340536491669345883743689280300044296071652583170575326622822495177123163374692954691391107731117061446143551289881222161851612737639894715015921123703300132565739995379025259268645089688973352184639297051293860505238708291648140490200570719707443816641696396368905699900135041621223215777881484438581622021387183440281726310279859044167035783310781599346263085728690221018535331066362329813760905966953298339575975625791055579684554544956953571649641291339379505275048682610631763738223758275821797207085685030412709482721275573455454317315836173945848478539331489096927932507863486101293744981088614844285438111245994997029969309134945663967491054253936165770029416281333722395620577688738364950836895201924002089618902271493754520902065912304703063937865940505566257592801397220985110454570639008970645547890779558397494078306396249445844408946854007266308793025684710283817288549708934118953406853151645883141993620610928666538974382823262503199515590045387708287927831866753469621029111486852923952907551363452292277090374205831103405459429726460506223164423676872479984073259208476967562417914078556429923376336587601281427641556474587987011066474881403566528034917114704030922860232402333448194773589454931832347172553753206759316132715862282714017688965525715801575848950179776767225810461728957418048306886724684606683863066896635802226735309960692912219563739128358227027305678879222029808507181415259878783525943259378022181207960212078340632431818274443958029904084512291167715262174877170842516225546642001900037035588094751033707822151414668818322155586089443817471404880082630569946102812034966435948876856294147067935823885051501198592964140985375532184597986670811943613598585049263424997441777295124980454446637788736381542307392732461362889373545803716972563419822439104296018635681016791089584418058267433374032905669857880970890682618008649909280967835757542507130599002749353768388712563889239286761631537374640424233344987713394156497436142639664556613802749067773351859297420322688750846173036774839734463830134136960404868416991106402365530992680504660636857423014337743944956929698180615986828891003985795725896932638635194066995218161812159708248336029827301011547149242588742175771978286224115902038076024068337310743579908011373070517256407977986585372903096087924667251563378138416280158294786606851683593440371650347785500554541586455479750572836055070129470126351863736208300989613263062649229899705259624290319529912826832847797863863599414465058775007599207746469438867580256387198995721831089975262257015416371110308180738125320297212935927016138481485081824496622943519289885119240706714260723559808234039547064936294762447781356539229932349086648199511855020450680462867752996774877380768891799125078303659052970398396447805602936633436344352146564965545616754689211450322809855432893259399938371808747326664007737237594277883165272389225615004730297692100720046559442534831134742229398915680356944394818598031317095203772512694289781249052197954127753285863147404394595739624673816377550674203272720729394377538528496421894396377259342293146874235626226728772140338926878738361891705698487326493681037455250860608911062999887816057266923965860925130005474691783339974408035818491625643926538046240366836533850545417509597947456425285863683983868769765788776585751960806322714863314292198267959671519406600447517819771512592026912468432699258952233478025864757187951701990710359460192120419837113337278863897868360285187396112688297728326996733377680231090600706003790625459733096073866126294078286731634210376061333890766340362505655804755862166572524236928895834445490924012692748151780826186991100486836367131721528059341164496667859413316774923352392861313031314727012192923605904480410557916116447151936819787374380720535535907113421945640897770213470478983537253034452516991819591140437567350695145932705286611417798734840313846498259968259972518128120050907713382506785264948396954918768699894753656318926892717719997925806639585630786841785063952125059336790105526552110312000071966230947472760997885858407590744345005545422733501290033326060322611087378889583874751566405506648914793702519487760400276772001193506308082963127205439844045735107615539061511079609108763689428388558011375865780539340204903238004278710914067764268998956863784905227777147107403352813569287279808972587044584928806373143957415672345948836649907980448231169213672165747391372024693336729183397592089389552289747879918957890422530361874765653423289149794823862626368629277619917396355655988845088527034098651064152896648422718826203526194863466826227287933642079831401011631925939052693826928750676619492450302692606402969024676704456995447404627550505946558077123154185350884149313287369431633366225583018084270486778960660333722905502125457047426927915861792596646666059103059015906546209072718750980739714074415053079294527238713236293549601600271894851876521572744554404049431550040853915604290858447640446356208861825744328307563717837306233178023222135422420413613480475462008972889017645426751170576154627002961346517020600351573211137086524556932414282177961957200056714339900678713189472265194228007442766455285135425596082823349492009224607607597427516867759565244625173491595567302840801727671357053338900859601231123445983503485608281008248669390209379365148751683975637091339933437085720751004623705763025795189735143806019569671180935138234253025298834624616024749393240759741184571030453103560285331189932894765378686711648073722299928857300222547269008379612096111446448545254499176445384095180987768915955836249691526060257627572046742742307077697386971391790243196927709739390340366722297381003794438194394775765692332850537317323780993700569634912624697053873612095669420625850868404755244712942538717114795300515867482962449891652564558228186868479119365930858792536032286593123910500824981963888525856079006035369914154738469531238085767022012114679881008615420347676572256708918824949603490573711095432865544742106804360865863563317365404113614099734715538584171782030681522250000771677463598964783892980710314390852936900335893237704437480329924297857267524673409830511875431794424239347426627645632481011912051579053209938250987408704316449924710591297724098766441160421496941650241051979605211615032593212585790169148912168342921900803019153091281729994700415959845876371505848904329990963028005785830112572705417525460022476178079171160107231424408827302439595397673934573214861347392208032670233606216871000873902875834195446889819036979957537430989664173164419413208423081107842538808260380696219941196293148449441423391936806490306696927232551021947793158285996232689249919149675008167581097070120434657354090252747089209376819640456173648955130965383108731312510504831618265570798632150742164506553055699875572844405651110678280457256601777570380433534108330915862653618400872759562710781850681602539996583759520152539071234670094724242961112998965483499651867016228521857106613879707860290878200651181300254346119470459067923221534940610023042085881841119772100151619381798995024868729210122152131924820477936172609774963384488362884311573737438262084643570042229816619782826708913028128496934696563873809323995075794403336318457877230785927143709456700983447566215338788465269972862904717988065279122831346540722230723101696649805848210037647783019431835986424319830480670317937067639996394278301852525132885677720606405934154053506481522530968147458989443852433910520776039219511530024996644684785271691061271203262505346772573669724948270812657265834952041339488829626926648362930204395564896558724699818102013656920703898893046494239552329578305337842801359377566388636527757787058445548866490578224876018033014052421462228443853508797355636590133243126598982331103404275149013894118495519094521336014848547367294420800803692732708076136255960534894419293846868937430820721536134322396906907479165731622857632282499882095720288856732643342625800945813683592037755611070610716120426061171637791206380832146355036491915730998457967898040125288627224468834522186864678489175365712426468048074679072567478953837816021087560351904625702106086367843096397045659316654163477150377402846793773099075201315831418980673471959272005452660026437337113685667902130553965448759801202287749261875180216362577428506452383615980411737614133562677303140899786780081073015391183472229025322111937843171442416399592502131270090613235032737667380022884772900709795042035497512925742706319981265452109718180278953239484552516228968170186152881161789905495070572747262148060904926550968227349792731991729016747339598539743121570048778197991279031383555678344691940816862627650868053838944877968547823263740051774293160239598747210782301116503183194493889796642197450091398123698648849832426045216926952101678707235359640248351412313066647080325122638189004312681243787007804071221014465364859474865835008197151572456306971006749056107841565188520705463601090987855958035417635576924810462709800248608496764733034670584334474102669562970129869579952488280648021855870015144318516969594040475161306298160097748191406013733189744751260484075560786501810436222283707407311734213233209624571688257324598440191068457539444696484995005548293660343894783819491684434572637597495223408214662315603043338744324429061291464887727789591611958144521707493452243965117493321852411651222681927577712215898518683599044519313239879819081690543270734641237835375209776523144256561771756782187331804605161051102909725137096108070778804521673813939649052319820912344109000068868017769777735300920453676477598958366849210380973930139090307680817093524092986421502898423253384802100475384184692096250890202418581204601744948829471242778300450904876342225953741637561224825822544257909845547630509011539455879864170590515894425003364669733354702573417176706211616884504703108129559613423851926859494856205986832724148362955493185286463711616093704494169737332854065031434966006951340844341821457110284502195839653822289814067426171261463082248749035125305843675601709178795011523005310987969422376416254646840781380265896105683002750055639429097651575219496074882344983960861011453828467636524242343613959308992889140844635975862715404178463259827258183861106050350966491513312300353714340785231404825313817687660487055752669948610836802843624619286972736842459668677128436797555926892140986337054155856646199595217232031093181701928431357069510876439582077442453768838016882471670679901539115132032468942786550241449269391944747204742058699234712069718564717053674431281229684707927963490578281946395372665963038032655769682654123371137107005835668464926574612748504316846601811056196709031239117876402275892348105477909324510990679620766366785197207072993698084057819487549998937236998294207484497623300946571713949658268845782068665273554734805674580220913963281085547120785191965633893200882626707850848875274781678581348146333810070967193220917923140510321920527096071456461029763538115060787292195004032915619699475491575677122825278497939516341256103789808526030230977207251482799510093667159358111277361225285125937475510027697828109125853266325278285248285463148074866492550697939860950069275043493009480387429244056263453971250573336613978756471673646103004008944608234815960926053098281779754565858589873110020983896531413164669090443900186876837645012012474924671601303612292893379435960003843791696097833292405730746367340965911074776666972529840812035294126787416437620138283645073283451836184179598446322813159781376667816970426278986134597813200082424359224820872530126492890075058512512178828552816723950253217628157478202834600590572653966972776790777572568150830634355248575035208081207202991798125975948662551615840429370743633038630678004158808301352067822610246975443781350673278751286679638106217293448101129032626386737687591899549307449913984209225276332818087808252623890660102007718689445923342886445737223076412339050598974416560529809328482323579465692953735115992906347987261900570512935264397712557253866076050571026659421769916957295105815497164609762384505033245271925900555301777622272543344036070052795532239358707457884552943402964298364926733233368275839414569483159866663490400655568197526603334026098136027544002920127501174804293549114495831156434768852104993541369970036004445889158666373240744814418464309388808108888822692690793227412004128236926228560514323058213336789314952349344822040613505204299414787246502446301052810977176186119227430761378836260022020611887597688033410331912085617293355897286380156116388182280246059417644146432000520899667644034548791592444878867040008029958442164062067862336354281726965566500216720261392884505032272856806185299657423559898409590908121110450948487704519232359631110783935845533475076533739506183140800175619540780806237035336514995508519318927232742207128612696056426050273653509850123328480239237871361876127193787823549696496249209058920927997883694734071387139528402333013518725983136372782717029118011900125178476598016248166403790378119243196561493344419916259868305572106429735464512478691595802103595691566237309401990548954097509732123864158996053191133639600075834662948563605949295834849373944938985943833617580329872085974321803950802898836992274588616691453940869533356229370312359024442736288593005334258413286433778951680136982701235754422948242133629884542824340157910757271787740979928527043387746092062242115885355583854236135228132111776842176779274271054060330602042317827976093868324251756163931912313823767408895489024427001682134566532977498010387290057487613753085818926359416103575829932615392364336722223460362123579482337138454960421647841004539660644152724200219690397829474291721075138528849283096339448889558403840274898020324717940060051538034883058142530951784999566552008122733010557626530430791978977347525238381787578203864797201132282349469877144359776289059940307715024939390696791631038166093171366770142416986710622029763220400218796992729084575266335642733697816239556710100498926945491241186652399920475098608886096099788318130827367641742781478564789979540347120007577707367200353899243400483431807827152847656729746732424556687132916405098195049666128952061196230414303111287903141614596146178807846395466652295355540725872441303928361059383725430561774290227876859817248414920583252065099305669884671993452913151665630902300632134028899760438474201165500133072591853771523473025648283201255038731342180668739771226285139483620450036714607503715227530006764406248285149615642281444849927640657039131625488844789005962018896663671996173434526927776087339511468357195015383579868881613933666653484689122276454362671144137659538521329459121393879565450463259188378820452213225372853778207860813714445033886943388447630755089481798789232762300336677558100784648810673328978199149529661364311118990595180362033972303860047692935361380853338817379293239198499309173093971990207429302442159049290500034799027663769797711560720865776468432872040577927522693380022904390354205438896554271653061135639094251446099270620223492002465946841159322605157384798902370146945163601576198313296457171787488031756241877798895879605609080013270502242209848245231602726796219236602178395977219718677715460915049980884557219524869823783137323677430628230299561673875616597324452647303783631384820690661094959230346484036374059637813622313797616477589231220265919950488817178621646156377845294228614358573703824625898907702681411487694036086016054178046646001803701364694554082233233183166641324385263458348242219054034919169157426349910302662461235908299919015948152740512351170891020999744951978884025038624823563965208974083906219475168343035712283168761942735713701900502612613772643991526739221902058021992655106133695040618506793979132020586650754960361095672419056210024671609046812884623736521814741592187419003876027069903587177900828522712530228180378576169511713562204203836067996104445297026299454549836279514246995743037520975923444546741842511620908028087642028070100221208902136720768081666041428224675003712558635707538829886859294859691712480675796628783572555337003440132294590402536547151112231413522499010746399300995907735148314015629342225364034976216100187580015352988802912376993591493192800313333980395928318114594362278098611188882085945226526006491269876114455728958272305644111081557076464532795920983074835175240303446133899317128377379593043288786995858825779040741799118437570002699471168319341775031535691862600601515237449486704228283803596696251500501461144046790747796746440508406942439826228334005137597015032885472784634568170798260994146405246491969315210384774436945854050025157538811391091866110766725006940303762222247417165915064827236745969441733197573778621856412620836203281613543188067152071990419205144938810919132848141209196092068613904510205563654850454206758880086299586884707754024713834334296036438410145632122889446700908244057641936149009804736444086798949732644789363108646009191803324039368651337422707367716319741961111551016715087084175658395782890039850224445251984821378706569160934234190764833408478752357924118134811405628442952051393404567226309235102880700492801400701416948949950902394214926097699276019214033835226666211276840759717608445840357725225934739738558302768000139322454928200806671745502276977736249206350242047123078077022356032767357899238702816822411022528101583302176475154321832440897145997802212178352565989718679184792440696582404654994980466933397289370961605540580069394802542007854183587306168033460195996553294002351143484138616975849337600005536329337242960004016348817135358187781546557152516814204577946741322558424225266639164331556455572191758547470983525622300298039967764001560173434023111788862831323820657873162017628234768036612302849640750666034940815685543624279259166098083702059752528804261677485666431206761111056072311131268904744033235607285622981627687474903447739771897075177294528960469392688802857636156629260870051324618056777136307047906309898756341025218132865548651414058145856721385938274278012380148081709130686705656298807437935205251558641050785631077238164814863323186311680377909428906766848154688069833262277985212328901961546058287740247272574777702707542420372417157202594812039678920920614986681203620526107954367330199121310166133791542714491747866456411295652940975023352351992290601717824160470788235693555115257163441493276243593264924406665957047930751688645673568261359488639765380659453876030440876700514444869753639843059478596550965721367398075102347971845280648633822420873762721479583065398049049415227296241262539111980381422220723115856359964792149990900972912443761005450844650228952515022028897531345144726118975319013465769443767541635222125053022341932147252498378473108783982323053506528601029535473725462973477202861352606530783702255755487175241726905125328869432797867579735945981850667634075110720802192523472691437240637787660419686956551710136339375669014124486748441589469172762264274679935866170464486814447067823131951544795961204321339847183491517020542217152675703004786506379194532287588947304770572946233100863128360571545893774235481691280651844745440798908538636276671018381146289319174665402145656518918251434253410207902074280679218292467441137694379105483310015806646652827138571974940940437635690519839547562186576502864045443258750995017602106087932886456454513484264589164108336576930824448789479554049679712733819977904891066214281988626019541846726798358611571845831532390267096272646034848790901263592659359917647771381606022336981624129951845748467969194653084480441876963416018677393303459883325342530614100778651046246659694333057128342699565537703693164051242551190200921402939990733760588361719949037774573841869780490118575526744783346910602869000236317430423931504901668021741196703305960089359256687113872945394520976803105230885558932436807646854664878634755341787261515142960083879163122255874674018549633988490947606964698850193672079298906317964354491281155573723456839598027653822050164098825359594561136188042543444303511909255170467136336424982133871207711394890176259660443520953323671922691619727306864948008471445182020728169999590690787479619315993770829163166529301681177555789736126218801654828923405535228203773503135957944714254395046254038088922013002977340090594777452431589532429070105210688412983861907859804292715359256393973818168058380249821279972959036858732304067188422127429029767609126113189842692726072687054647246173592940084194563463215230258845022820651567368007068347995828807412100566621695619399946891997916110813275082725763608248211263922049648181763566295668561653298377647270652424124405331573993326565733589770245191370662256671705101464058379019642141497264157447967690359726939206635096256977975743624034353903056518140455204436404135564228905823636888940543725534123088536597894825176146897343791805795953223972797111572173490606899782949061490792868239615496838493929290745014173581566081929332475168469932288789318358826272894760811316179232807134565874976426298087355615764417508983741269531248362769531760486968014449424976245277558155602727007563152923177865432810651069342964582103022703851701784955681471869767518185614354073541056911690680487001287777501979634271110829596467752291222957336919432893571348434248315649380151018698423872907731004972861879267961740708164672880633525151069829299420531913881394258227573648577535459466729134126267251292308019575745190689331311911944722283317384400801013131185433361028129917513449696298080561923844113068142838097189058462885219277236097632754807687975957168669980431473217010977780678881298354955268118292821055915854634547642784212537164385470828564170546865355704691922015306935238576694706192251117733939465066001469057862998417596178556811768632715655031633094251024285730325271909631072228698259360855592427007475454918571313909753904446043140522821414126642616893048714835060144134713174746434183870975089243411935997401840180723107275755502439193597107341095370892492747084743139335242069532330735561898310813006653536810155175883029146666986965356148466803241388368486710059931526450783113450554161840120603941022092591427543054822852137206279567993982291327468229169431424726142486168074469076100381675920080754900161478088083521890546761355041226810629665096330297604008692781486790256468806981832127809771459160693593603963779489542254077968350699483534622963152054932399994327738007384238182645031399524169890483159569534285428589948938192511623928417564228906254927499940288863367051403835921238386624679517063443635963031200326277869760054750329948365170403592958232220067701933707121696870831487727032602822354912674644032807229603572285237757820930258808552608633759849193629355312333299669235490010368272098618873892260513478815642313938015624074450153441223614169107122280998251683222302738876199495898505941782941891242770736513327253931444602744398203226434915318556265827641546831290468684182533404304542376291502147061529586524251537060420776337038807642689188381814862545821849496816149366301067857801761068538530163548324671200251212653234606052844815770714809635333093983365762420878394183921706686141134515068643604629957344857338998312635036342788512761512726925351049144352358733474359757982281747312720342467228751779933375422903544251975615199251011322022618862620525376165238944276304319981400813643873050921453603913946234429587574632467504954651601530774899840742683182583763208606204127385809062725424389906463087286458043214002072562373109882714543245022464135486303841317795447577637686456560270525702297987377867086232965784186428502013063984771279098963681470723005338349864404711346161164593457801364004489077349697700548320865089956352694843002765677344375152098037351040800607038202969485888183099184283009790690322239148710859424423625167610471406379717980740740584772590394819302182723224951952201758282747582726838288194001885365939181499663026805479233537905757039756863383455736160265374867777219813967482147283820502848308734280250099838893798430307711384446447650235146842167588534290709909785903009110402300896845852665087262579845783278154915133289457417325587524206302175468360205095580787409859317534376028040960353309510847533025761065357486195423071575472106424241753282776409311752069075716743747405968272473766648116260602293891929224272152344116031833770896885056879275057977083947082784333429374770388270678674294164053923161734722903454023652539340728754221557974747376159069197574213870855212133003752389096600763184648970926106117788658130697789809094791077866301639557072882060465318247103446717174662415430599889541585840990320815554842517123156733334192465197330375335343429911760992349402404416854370874193640052288554029374194568597243004372979266227577037245220546680622916014383643395578775783760369533962336091292760130940394910302371159855511891139298931019198315723081777176669573560996324641519701964020438916945560842688724719073431134560433688828641453244434031958413094035633134233202976608647545194655063767603797017351976912126114995734637889506754799225641288294865925575289801999618983436673630137856922452481671666440314191040414975955502843088662985231758752429521715233481435333245104339335363092919780551282886454474285699852332334481128682956040319918499325856571872816279192594138780361309096385969037504302880113237768796703077223147587347746944107133712605161888365093141556704071225561705353245521042961594506218738763716513907779372759359976518228871562219440637672675127796364693851301534268434017295147164176276444672362174951490036311258432573616790088996726969881040267582882702608837745409971356985939212540459308594467275416287196064375542255256770518834676390090745199933556206040897925134541058002046294156799584322323259836008465522496004125594563363635538053931929974354685119783687088747034464380895920362226320555274089180731911104041907653419835988798715931122933359230802763676966204027645345115687873906966416346121005195393173928482706084362266224866991724751090518532507489969562170537289506111022452148615893766638039435674725950846025918063439283299446001816369526869184210041956181729358711702666376134100487506468260476477725589552342880919584022836224552778552666033863083362496941030375918289383879909622768640389235882483062901780700237976363957805628094660089233269239414025987180375193905686212905658170822488797987134856280716462724912198056818490791396631802064334498606828865953464045691371690541294560523215894033626111731059938552186181116739561763581594529872734151598324948435856287561477592718452158963202589725718113926721105417879633226943761658681846210570135163393084236604150844669123243584125501989301776456040986328577071923437325894573843033593281417582578476578484973870221716231094109571464920354501988117882407304423301691842360919841287325867881345902686400217477013105423997913762696580926372275381816963062604982547519133478823691394513085135121055241233499719818687502951157970349965150969774122844743717879470796950857826141079456622712757234432927930237719438677563889988045785603999270863809703326616564629385386776725947409969104979094316237151053911681739340453477588606102206581223202037267005966597084696157828488446033788718081623353916358269612558200381927071465118243182369138264031617430737706311148449363486936202830034535208083758304111598960546919543428843074042395550306730043697318751508439579860957140967452844825897406144103823253250244845834288825870472584917202508009437671965134052914743916901084080631420471386881354765746979818393644048930382882566484469144784589687843786383736450309039607902570609648243925640880454523040331701166377283211740904630179870596894018780021071540866348749525531938759349824329886557475927274526464717188274298196807484148342627502102061390845271480605623513412989134294439665846612189285577875517599490480141657677182456244624405970814522081582214102094865773108534906866176335532894971637276160276030844680710238264637286390333061229057093558599790428407588239267782087904792889286288154493195761542499551170390772197699240551356437319545600939948279651353098442868513661810915244059434418729363466527568758223962006626867037933241505688664292765039483958548772212297869506706953391446993046379113909889530590139078137280408099184125160804872918583352907107755053343748262157034788642476724498973740282366864638567582655237252187366931297768465031586918484883039686356148048995729898583669404026497453966071451446687986629380823322017896856227858492995148930627256565044306567448851236726026723977978061006444870389967370075106196016133164306148539902595783993615273441081882405734647117331011693849994895428268448000160448148415125259934853516038392568520787893093656209794203128773609199690092982051293416813649888828250563199449280188161047406765635113940573722849047597251959500080951565991024099088492246776438907981244810140792313977881689055513102504894013315505619724166079752877059529108755009334331221468760829902541135100730240451734503089226660793091457716464930905435237140528983713652830808834187324172929697335913410150804349516044977961477534016874634198727456119910942419442443642059880103786831433352603016730180367175256985037390021723386982185205916920082182356107011924084872295284049701487426877115586414190543501554803602791976512872236629256720328243806068396096884442546081816877348255915820606563854461011075192160026451285404138917132043445098836593558949015522246953762780099064514810782446481986199487112682881691907599119422708552231948020899048336616158950183638920188533590881805768977736038280835818235214747572401744389202677775313351079869110648763792904364233158718750312762737435923453281735673486422038699192714905670605583196056460507610409469833374444449092927625940480103508748944615699112538434982602891227054876628916547319404609502008569997171583540343604242005615335874485381933150869797375868400612775497956277253195895381664546684810708343296773054872576505215838918144849838551345683102020739251913115811344494679542612974424943513625887213587209764837490115776930557221788846564500955886779019149230478650695282239584476498867121579949833123100698984376605669368708186734202934655556924626967914107676100632087980302548477740777485698986496094792764344521435021013155293406152134669561683587925086792167455514716901260344375131034994004083906635880737278208636722229715474528898193890511331120346347201711409873035942654688854529406169795428861316590959337719819761426086874688610320806567881774728530561454414046939767027216216888716723734980226646983478788421386721877872013715783119324448746646747485684409866617207453376921477913329514965161874701802398777833820270708643700989480040099099313444597188771435910105309356742653223618831109919123127029826418626297542981558800008535925997160013179564915369908482457914079957206673264893812303009438948664399752431470711400736400101895002653678465703039181165134724876456442077464891036634163767175404686217494988342634960591103117681510822914389491483182817128539142338115459151188519821051452651028504077768883542957019407141686133759084821211609070840932205275715142979019546307988547571199240475112141223534983501662080401763006871402521543740876439163084429235977865525471969860875471616003812176826869570577441584890366581295421333930380075640057455265027034679065113862697262761151805526597192028441710839079585764428025474609320217280671229096245586845900800436435831996165788314466940817551994253314883247826742684520924879480295355141981460629943908772712334568264180407271295288128659290820899035900397800449103834930400523564748098893262025824531405864229037389671836054920561000633720174227824833442609093978894242196035351328675715321599240130222668774716538156823498230474839529690293763894814884599518042886131293792510705665529819794905730408773834959317355887202440883308748791267681160274070777804643427960312473960330733534463832275496995572948422090167088845225765497197944722254668860395738509308381247349101912058628450430742791817964588794244808437991119354455727673453333238370076844532870878090158998037454473903559020028237688471976203829248380495500365877938843966887315403369070285656107998042667189389229972192510417959490728683095708401102982585431328787754717332009128888639014051799300622567964093369370028791006970720437304528584668935885657610255822710504296107122780244963721865787298457573386020220921825438574360835378910381079867172753115620982194237447514777490369586916304133629066420181370643896451419686886870995929738219447907366624171502848926329889995036209203213716678865875807910899465388966734642669961596532476797312713597352436711253513931841878371874333915422688044420861638716545253946653095982575310510855765208193505500423466487662745151349833771141455670648290042651256201310239388792574766919440887728509718376200494611594599051736953370789974528873670325446756445054137212921184070035852371199210239240632889398972627025680281029632510503543798576961084165067727683739895477813457503485595293780271712927416226278195099668428353267311004525899157064518855703936790876205249266731806833436401223585169880673400471206745144683538459662243402115488482855334885750434719811982676331658347430407280298971236782206690356557661813691094679531767887677071173846430434496535474473476568824729758754000378315514226836123168900281144210991470698840718997565704567742985620118621990966233813021048939308777516957418548975462555546398196150459228926315311346176539312934957465782351149662489904340846182144413315166120506230179930542599790134580653772264084743507335533950132120742679098066118008292169432444989343822630896592426909872058303666111761313191949232777858654980519819379044722094294066622738892660086258479943679480780205113733939971389446082570719220868793226576851649324001838036639267181374133323236308217481569287520392375872304898902371856181323827873390531301747515507163998826163486099918480624679187921984330898716873918788771853846248436755994558676840105919613360487000320648127568458278903265857156687695067762387178854742384687326941965313539529739427655451801801946632419022838379218279238487005232742147656204193388340375232081420170806851129766479218672625268395957590768583076428306845051545683548415767054692193044383882027162654384268991058324727869045997871689614724614464779592387818296386907564484885231659408296356927324501930655896657120188573416129245448844149662513735647996701438389717535382153396288995951136446781025518178168440612113782893779568593819310700906124269988513997138988492566858316793520602305282363417533452515281406486540965234550634757649530873943937406634890217297707589531921304630036296684481748425972289095581260712011979653521522989021865738345703795213381584000970460167005010264257323881697018275953316525946327995824780149160378434360667026011348200534177852855588031439033336529963802486428276861200490664564125114183830176579259287148291888007017185073086206205894780469328634236115144181646501205361364909240044971512179117337434420955557269856204606833596921307105230028951594142410856162288706700006829126986057544244255335526164029278612609634888646034251327322612953377198386935588542098355547430058182798535533151034065261137094541928301367017465230995998745090142691465783221496184549332928920465368360683987972027341064740484232769280888325102625597422707688085628777033331306399912420956691219144447714348367396121764812517893087852571331390974219890019790764786743240336322665415472194202165627479127622209438095754511519528439167350047107994527699159077608890099201451552964320534756289867830955167451408787180486687370357163449682911492622853329732096579935381052011857869273610017321044092337324044287350385474947937571927325904838193727200072853768364538953228112102937967214628946575025565566661196125565301244882837946361052435957435730774750922391097950090057984201814204121360807341287963324088276150839357144830644189971028427426805943975077169944704350654664551096332746742873789553840118650447910553640557291484923361441821480799420859595416386338189222145857599934116103215626196995701457631700481389808330521659672508258808112595289424275247222356043556993397649607480167592635810119598312500375105043742448238817999034608724891396958793762182741596884844119725384381345039827414078138452394232923433469596767081715445100448471104859777672789986075872502370192188038326554648785194011804080591655185989993061493326757121084032491555528011811814984816315631275420751298305789610347912070391091213210034850198275681658873149919884400368184283713733954387791155934647816923942638149548404721144711187773327268904163922629912974884225189006046815593014853586175434688239108864163873519163798304012863132338028416026408207458150535559251319989924580236628595477235187169575390850321240496364398548124497796503627811510386004268468422684523265722028798362206350120974185830262401369158853668270349218116013281241227310396584505196614802980738489707385265897218214163108276987303271693384489553593912137411317369529284764987973853568540678555023224998504097105271344716785862948705573584461286147193971353256228865892518221200508074141638024502735702453545024529091388301751742962946322094950402888054128205206237224694930038233305942743802842906622959286811400855425653530949926556407864811708618927731049988021766752885159485919693118187309529311287670478761674492555770807649454129119173492204521154802048826817815321261177836843250132676936236609528442867039512616793841349240330422059942631841420644924887295230568921364599199177878622340769757384437563292374973343250244859639223579593206956017153845660673778838000888876520022392193960711981060780891983579141798722085042474972576057081751046792083111492327214230132585918340377855559639233321141025828103129447558629887406088334026936326151033022654102979898292999723429588936875969234764159900384547514127591411170148880836970896362517427980011878896174167593844496801157548637150880344113394939572300914672442468839260666405961942734960589770868672785463418357670301805806129453856071581714568273547413040014025873936952147666945535612069523379135140384878059905930313365370762532850278474974883302252046122282617497670080128832858221847464546599460261189875879717105465961231423088949710384131689840330225988945366980028908483077713800883286298993293340390062117546537873400579646007550593553265899787573499406495613451694908402383453870879017959898099061231268480540014387751772462698836163762943657578661693922684447559189513563516673669541643770806124811638640917946726689146854333619367853115384458730165764166964341897813420780057174622740706529909704002195130195671409741403326518994848789242935174951677633197948368730605266498010878310075276943355898047955939275799145415255943268455416380179860088894235324568635982545192288281254249824463029227019880386788411147104721309428650525767524751113782282680073450616849881118986959603169391824414695953105244698278135076465185871935278548394890440056365637839892042368556030993222931794601409934181476366766842598070880400394968660489276353453564183540248362970307379497847417841614148255901918188224167739431502680365165544041087593044132782212444114674690164252733213893497784859485709625430759249002444880246888846410477001075711910920357310166639572821636197613060434184736922924774914208010998822785190262636104179856813356747044898324196137893004389889008776713485803682854077272856666361597223509172174024658224680146415609920081626247019540737834131062935057128367367294872261244783392925726908606354231597754191591790433844435444759081696074148986662487989560311962250857896021660588728955923853364210601644014641965965763389849744102137990336851135205651418231075665909279782103099293585421623681458853825343547072364421048591543566979638819169798756253090271881334304260287567557690547630266371443798989869049572805341009753772228590258920564155483008365417903558614647743955114483618522057938204253339539750120675249158497789775188789874988206524817817473406769429988292697767786039956987824741915814083775118640004793774627723123263158250610063931502732316756036850712679525350375790964515488069923848288947030039699752093930143322946327502493643318450424652398518942171278346392181668575978732170524693285039479150180528356232733811287882457701663067228499638817143159608732602194994041304335677962161132100374763061780717175079068830948239747148209853094891617370267364567872976387951275879179682663170359909819958308824056019787644122794956822092413821586718639445486589251189470751882977446893870818028319276865598440230751421417561863502868229777543253435808890783683765237061018010473612060076144206507248782120925125238765708933689246702405921304713823459863456594073886342608501248190361715795597265641494442983623489020812220519542628596038807265340305753765637503337905611189811085355388855691910216035477256255405264956660191345031148545313013694533369362816022269625632778579865284486772001155379588680708025306190122831626761731783767359063220756559864944100026299607828062561695234546695487424688594805044266847677745595211160608906765397251576709651169192554933957493446553701689759554116166633637087769950451787992526486625333462423022311861025573811211981018467381114127682095608573860354258079083876569264005165598132726232815412266957976765752530610107345268360187303635137273016858577738562059797454679876245453707053019119853474177815091095080855406924402592148237553250123239888025406556875836085835749207679298172900875595611072647559826146466870707911466375816049582683765970956271556976105821054732333714701184979686982722103725195997012905125009963210344600788982716013145901213816412623215611349328485169927655588240443635965476965972290472013953376842429209618084865720628538903600073239559932515675974848114243082394010885285007957053615373447944383052692740780530792041166771794147010137730248002649164735681050374332607574428035452612125419870959068492188018200392184625006109928128642368483616200741700634070021738613130407770959775748943465622993089096131348793503605043953977412875464778013156514417461578737625948502439007084323063420675217552133575479034856099188055390992636502353080765719914548145394964011126643600403728415265547092866633750920968346287869144393029511435169701555151214690545669606075722850990047952912814948212147691537129247135950185889201963823766304799201982379152463396432936176146995650962337479431391311521276789686140002508866378695108537647985870037921712683468631807616671003968174301855120566429055794969643102628009821082279342932876234167062848727983759663480439820188439033955909871765427549256307809269623804288726327825376578041489688164464046025380312982193144145820497041901106141719487191984321411795798028879138834956450099226692306252862815820648037342747760354855152600327891595545311523686099951112769465387769385773177392898552221776071247678750815365207781310178700553428812764716236356214140146648468075380197110906100997156910649495001124186942705324672598504778300729645859479670368571498392930745632853532593312450826972556698731782619556378713342354640254346742749717887183015337053973605753076040769835482053115951931040166321032093675045449620946448246261500176208654400158419757879983265814474047317498465335133075793339909650187246773468910080363440207169706379109744524710111280005758638638656712735909581093513352000138370212868347476303960635287508982501880834773408007228320009924999744160489902055762334177291310469656336509738079162754312419563143492871656405085355387780762387357910925972889751395620061805123777926209654748643413624674549723268135817469690268012840450987440854238942367182819106305431320969066157214324025965179996087533993378182418462935583886162164173354414994798337341224545611628552174016407587767193189303720819877242286247523680898929716823964415846197489636279504260404097693113062405400529528045970921904119144256063274294314340148959512732984484711152005277922322613710021840306168836636973598575984216924378492652491216124401799261730336724741616869117213892039047811310668765866156965554187053931039162937014365617531886720211377830465873446222494539902197462324411979794960292407564859904606083369458249375284847691313481884036313613053990530628605796314138171243183290881242408708356104267875005703372656505724043038016141424847059370144106158826764583075941675912815278752944805100249719012698062254878922141627258317734701673458219437167179108201945086358367856347487121373420149417846106716122760884081540222433140318332947136787213652499530829629696230900339423505976643170561503104384782308711152697271402842078160740609285214177898930651698808649872333462334280846757553578217506475494911150631011637021305697712366994118559905891915318985563830389721530463265425505290117509468182453769185400630566042558913020064325927343792403307156934763869686708755531337315444066891360538436543102483489989783117158295391906942296984988762885933485974950903804152383285567502452643623822931678030216870866209626193719305528191238366405610201200364487801909410832245110192639216792182825326248277672104046559535603881707005415737008063930976498081410042929518004415438261392920005703636726566920610015843789499256436202715082707772962000473609325397006729679460899129325882083699850894701174441907155552315240263479543405681847220045988813149099066456482655909868855574398657519692416854760984861815156820416373085371738919739899038515645312624245136557907406120790705465763553492161835584047148942938766843243200474402898350705443122573795392937872931456117140388214575588264375775585868548308530539042487493083289419481219259887983613043813599702943304795683256642592320149789318977041276712892257292402392708206970619736283023916190009699047491470759078187449006963494780661842748483715103965304965288517012812865103212180761223923603539975453015598106518703713899123372217645715747589041102334012426785095279249376292805595154869335582388082590060058007731462738590036159516170155428501619966991858011692295420180323176986582267792249710492323436740784998029051076397137044465518614918919434957179366229636350150241692080728796317777625191937846157027920919699629321056254287382248981251308749113179985745968100885151871907273750138915284759864216020590087736655757871379136277852244808754091888974625413212665026968741931537530826412902288857449635292958204786023276203555104953869185070350889642586971235682300168490564530438082591883335410832905528227122535981878606068754913085730582285378871846978334292424776119180675314705015838017809984447735895886747146058185931539057236288043760663463699918900192590869077059523805987398755449159369496204926156449411820060155270292017838550856746546457380295682464942106128915507690699261926430051573828582148844160922652825815296455216769682749104270691951199040578730395020611716628329228369485522980695747906030611998632102890982106816927090112861260823577795165818234580784290767077966924268027124459618118938608583203014083901561779007499105968610454778788206290308337977354628412607853502374859770896772214368171169696022227378351720798285663643169037154207837231784132407032532974022184307872447357756543765653758894357438116461308900037864005860658518722456994395878087372999988359380436032750980588597948318172958042339278019017971913665188875428703353262722837697350858633008812378211717058147569356711483101848833159982104093283531545491332094920404284382327892816133382988437876488505188547145159633616351087132704670317689906978867900757263420017026146447859239059909176542994561466192718909058376021350912636498596824406367876040706911416198842133225266062070455633649559827724028818066331841207779260317773893586051186505045847545914774536116975625623657282240469504570259166879677512367603086327283984686649726472744332720282096064126388912251726083934112835712189336921913942162039418853586746618577581343421125423876496313849452987903414913720775366349409236681408611190092788601753989986354399343436730561352319009247370067267138179739561016727102406263999012227946911166301195153269340550241525576517480550009342348876924329838105893231111749580849477355023436290333800097969149749554280633593056126576698793479932564548168963544812288341083277165119008965212257444556555484786215993610938183474961395919961388006513682931727775834770363868918925202029544149191291728084729526175589284905086617838080812577649398571137713495169879826638066515637022610510771397048988626223789604081608032510567354775077840362686708896159702300781225000890443566843245485868751209005888892397166341327929635189970696336151273695775624646446586282302249324438274808969414631582917836576696036987608796584260716358385611230061001183169614034817180757297160741403345795030965780380624552227392954465616249377228330340836557311477268118539417213683772236031284918422598348232288705138683863995199168683707702380177347000734861191319304643552393554072468199407633333046057389270346536293305281180171197855255856378545143452942312036551063004357253674494566096243405867649861378477153474054160993125340376820936228076037676990770949175772935080589288267590695352510473490027443001612638388367611312250843648795825090268112143444791572383480595238877953984530470468103689687119501902337266068145007932569672424508357193418220110247267553744307080399780048310370076705841963318702285147093756363003773724515144594737919931178696287554491872253954947212399168918686173742204636466014628059327073645607134317879853369442566817694800828295096322788318917215714774882672974124766055249613750179625225935305252716689544081722340045090544352436049410840918831361747400493862631043055950941740902985421440636522545180015201623052901826706032258036732305270133684090113979052927901390165843377717312741979583153827083731237312435895084597651815837055411411642789441609930477625051315029294361754717839823807641535852024319318330881173833531754837547865815079141642063932817257491482905614884758049857002993253711079146648100102216083148681813279875055615851036533150485746021128831676269346527462309058373382974941503741088630474890060847996040198298023088066973419177546382658511911904473326608336117755464561132824865636449045654629952455786931606515759850124491546549001554728832966660098597588120783132307000962580147536640535719820629872484667114210415192113738551411360938334380009363007519301886609679250287644228238752489632324076607166714067677054039894672369803345968131009134965423804049732364193470946937648982453628283980817104160710145508122837195251998734636817513433283142729663337100054110842795857128236238945050022287249785764554589775570749482320797558874078653951264493528585451633297374941133498724508870368026504848577326991873875841286465243807577171751451217641393638002815721128917857616643202350508934093528818872485302457611462410439082521577205495361085874743259403900190893396465592680787221786114948472495390338013065485785670143972780874724512663286817760893098861570723474019687631144151217647785635938670865374156090715540336480070352827105715696268536096586215836866915632548383407303458353142609948315130216580591880610100163625374984912198648201282179539317627214217074439542402256224879105272626995802185250242924392777018567818988616298481550387997265661554053183960853934280911116236544096533536707774231314318414947193729422391890178059103675204463183189338203863996981119790688871034668313544110171143931993998143175936443883068872097277905185791425833123511414250041050497573011250366718314688242501343390232825256543234990050900159796737116686498469098339242517921821880309542522563269179748526385892141514468390444280755122316677954817320750442972451279947073156590286235212006821536589867204951705639778660822980772298177607370381690961618128450418408953962230057931807193238593800276254885180661476713871713138949849070265216189151635408568520175999824531021283390043064835401619239539065416141733788039977199491978339011044371145500800477411674829276602026861399927706907040839995768505497886847742537019809729230873189827687339518977545047759958781847328627502584131166019224370976645647533357791828742678298336301978333953597065407537383517347403720652642305680664828925752277400497695727134726764746353565822171589485961966681218011913982757369094470071143891551638640148579752436841181860575738329079507984468645287945953441183128937565940563672510581204255433133902902200119851955143291392342156999995620709729888511602787118365714067070054759732933422466656324511901924457936272476166249338387031201510326091552139445742784409677798791201377598838590970393258016156346762153690749377257336988780851739162218392973987055127192334328422984731231189824082624090899997517627640507756266002970052214373777984915435055736882366363089879657685577177775039799975746796010671754905340094171537000323105757999419240422324735710222304391367038733039258443248824202475768677434046709784394343363099001466050389865212406209290730801639157002380040409023743508575214913505964206070885990810369799704392746429651906084204473235814382410074903393433902220437177167522593262456174931030626369295997025483406379291416089702932593649479708326569715911265068756304710751580601194147772272804988486104254803256700987584815645200716758677157659415059297229721696348338968286382093655670130906645869665379058359002311508324945555801480661151301670633943071441097592646701546092231097118209647339171797803177463428133576461693779853235796644656281694883844211969000543621232377353531067212415362128170598928108870101376012981120610499255951490220041563454324912278473750091507305955087262059218096103271870970117472066377287356655879018803603601003312364544178177875739951026294910439736950017759028418306566263093021099429939736775496502996589120232550994125108664210096313413991700057885328503993439616799318424884610943811161968685275971314222584814372100194913485081732951684277671533723361339880090889416474038853915007389966618791201179313418189067895917768408847750727943389802117545710664832318322062055380311937220901114294892257603438625596323334275617364432748256619157766659891965711622098688513264400972605593986533532548525773961471667818782442521073752639401589209683722523217783247373633005468272901338929871186394763341642003887771527697750058112136412454362195744018783669439621639519274950877942540401669947155614077394438530988644629238183384374121467856221580645815551501835866163327171798570869609714611339466769171056907793316757665749608932355255501573085493479445969405640760406879098009156545797942111398702315978194467591810562093751020021214284031454542405784641842424058261358154221457107216660744354627816690000149363779271990218812989226183057173544025464162123204574638966408547407469872584963375371680124784064053717311094566702441398877332658650779369030460978150925995715468362782734650508323958188147716479358108927984128652308887723647559851066211947576096057379104523520859675171340653299717374437486911349561091567923165244836154754039162943378503958466491731645943501026920675793533125304593704907205085343622390640505118157032841051602617835224620944748365920835934459499802846394915254651798366396558217974461943039067970054510437189169149329491447744262749056763747154828130279824612456002488050282362084054319600811551821129619952333766334389318809466955913590977592834326661325777420976724602362995781675402236627645086585346510192955085604890478623309813702775729831233286626154855025915160692521653102582077802779382483820262531558680922602522292373768602465965479239223500351993319159216127142477392678638758979399137685121945079706184134411370055155583114001663561301763981250573337531196639833775792549335677496642319850055542283758610222037395344117762796769678397485949477367444704537528889651873560344937796904469476428090414815649214257403163051766640415230107159672763429176368299331875418452122441454988723654523533794922325031019047953755569284653421188593282447954123201201788339969645084017722660401556751337764624168198135300871157119411573001103195053300959957489807390214864534075373851913845589317677600920897154458595078501453412494641566144755916193956613454336561083348481762332724422001215281694771946478855895525268939526713493001675391965379741551763354590378021088758217574678353969489607572413430230819355324897016387969757690298458995195489060669457019414850712476015178139351358089783093666578005829147705453253411398937175897770601726943581233762054131420873522090781602569607203947719998767218507368565590473354007829939033289075038381067213782770079937536297949657769266337092873987015224971917025790305854091032863829032940162034451952993557179938779634288276741468743559749470718293727623757479935314692468354120739627292413915592928329809962895115016979797492118972344226652047318013163169177154097385769975184418496167038773193639389641449927984248043869572189518837961566042264844690626353562737207269655431813319171150096589109232406196922418040718133503020870112485781825879666770823497561198522863362833728281598137640527797475576352350305174773230694535943561245835204677022486302729900935522553224128485606428482849888278196448778092846247228213009350739124383436036663342864105383732066238184988598725280337587043381176717994794337275111222110167073240364949656923796683617365927959234218919081840309383785885310224342927822655569097852219696082608994877524670748466526703169904132737696839754106809701667660691212348138436254662003806505041437023411330422765786024897515693355504382344218589012964712772265165997433028839834573773774695016060878419068943866304677391757923302641195512924242447378379017424309498914218186152744311498500401645880081914839711820712910331627907896047492544497940310123585679567540426281177521513391536382494317906141534623388402486083038633723920496108452868007655044448209892932508451427451539293568133140192040301822581673739091922779034791462835457243773093964853406381740173829731488364219495331515450536436380733172001476618852242929116099662335366625597524966133308730311623572977793016650507648585126668357102513720687821175223781544485028468215528597850632963961625443575707455053900241454093643308509817227797229772271603355398846504603135792049743293884544820570629973786180686036817081378720954041285519758785430304546422987637522169074737199281224332068498003008955397560462096614440155350160327023122105931064775612557161705110719984370841080064691432005083994390413538304875916085331841387285335239873566719745608324534371875862166090284970429951503141252674498993204709592322316729028333630488578105125705491146508090356099344317913485332312817375475045875976476793829640150190913900001534008013756402357180994422613819954324681868478257582980434523051367236011346305938389726811906948546473927248562071173779289163819292600649397654994685732059101703820264975196815116850912701256760444632120187031180571578898192323782812961383548997821721430374452617788493369980393484496009295761392056690649210312629180192090229213514211442175991702039098714686574316701844288689903604195189881418229827902024458120041128416546243334042051184210773400726127398266035812804764385014427407376052021743849972638932593288348108911074020648402686649103950580921447719009982171679653710668141883207473177987661129128022044842144206263037125948027017977199143045623337830359163805686887303323747189047118279049774101032099795477314804091003515950585427488159813453909965096152920957098333442994541393438960329048459643270609642468203926689832846349079453553138374958628967771718117505615968330559707488643562612598202413410194579957977637599576033806125306815719662675887651434586600284025414019339482171056153935234257485074312075813063431666469893749637954421210747719507598609824475763037389678020935001180985355449854838201875171826728899397782143651371725917499907037769707031099604418831768127123742753766599205983960662904283115635701092800534817340861949356329639241856614478614421647343959789530059294668645010999585440456487449635709417734350691848678695573567686837803101823105510377409711392558053770180137421844172830413717890673637952758153500838788832198206189654602985621753428012377567978231970107312324614991785866080387858295134780852773532418967870378177131666610015331832688848943339778777223571842356327833674044792325630658811511056213613083231327252318745518603105850032004415113298816631649436261268517676005206065107394315330950665571628792028446794692361480025101473612296537528211331868936829212701883903942725324751557745092483996208717144070920923874958492569903191726827186655215601543433231623634352230693856133893949215172887053971835573503779088180747264445728309497214050253550675337007023000670069057834480153027536216877338687849562989926272777607131971831564316832581535022369491402022969244913148036316394221323053681281796857618112100287533211311883053643924251877786323508471506187225694193081551626526035707517337749166006588430925373326425744316398837541879503884559648339723188454107164559493058232296795329704112759226721121694447245419954323220558181521989295899124492552876444680705393021004652537321628889510249616112285979350170799171339256568424179510835121285512075525323675481959803643460996689627522809600549820047743190777787103430490819137020076464732307946304582973222589650351430637595428348072614624051073663206442607813699119767280769984675394199525038364592809032682197856217852724850480190092321918006658858328211969540805849106918079062323421547259473506574830264976381409451700989074235092491887852253677164927391580657249357388861796864737928963027763137739362611124437457839119606273401083710396440137948658572127711487151741623099952654839177583845932090261065385168205596479925818555362135611800131623973945429878350624563857453462463069106185486902661665164225695980525742761729625321737902925573758203898288564510397590835974709642642072324624114806649349064308504490775850413692154348299788374046918309926459878566617036012892842396240583602777078239228298464764897589380210636267421673847812550791536632021406897356325701563540173821672115985473455647988324229232256273515583691338676232942497265791776891731533237702263123304844384338900791616776787407345855228698286550749081107673633283509794280549635790235875561467298477701860563020877760611569333420373974705530591862417726447770307148155811064364499758195342548342000417807165130660674077397618740301628430914364665082741230220789792844955212194112971435415785691884303397524530652561988858399129645835936468701680784164319066252486226319673486355313605120296297525994938993930759722843292213509439820714796591892191826777427524527041262152042466844417984158213235907299460080445464529974109855142197436060261511760109107784906838413741134952786869781289938762763318445531708549810267458497659783093402788446541585656134420379983023530073380439880898069537965219100723183513516179286346361786496081513282324452817878636158629584161361771079488218441711183945904986720495492017259132860209309493788340905493207558929932909308081039799586824578229937506346476847646720581171480994959115377379971559214628425323208818393984509440495603526606758331105573444590599386512338801009455572192778867230749399674613389649713851057225685510329612203035972464433275924943519481304572554447918745511299120167299677234664332472490427689631212154205514371329247962254353723112391058880283856400887014242251379866862064859325335375493394097847958772935024235065150253124688863995461936527130838478286803455805495605503356836878093867987793869892786923803179519248207557509715159825022410334487277418230534161545166239459525262379901481928594843210097300003481278190113843443861163623170552233954564539935396002197144987162305820464541489429800891573900179519426426194053577226780621139471497134114544151595865008200120684791955094494235701901579135649838531827845855880105053667050548647805205719079388122460389155239688408371447245068951305741220612147706182955416512292004103631079898530391774912120470665374036351905582082808999601584722768370165175842100552276999845022144463877553264494200065910265800321200164471233409973566647790827289059497987582127182827738430627125001393174603031498847189527677885601925829474230679653021158726278841336653732823166346182676807953604748008459230549810522805577040970419484586968574322927967007775268678185215460503512879528276649207519097253526720033108996518440239755688502048962499421013266219376802506963136775896974915882930456287592061281093261982899331877843067909577773119722076350590412217677160036898242411145806488333322365547566794172345297821306179537673042420200578450513169407847006508984276417719038485155450668755794315245898545456822006951197192608232452269404834216681774967286647033460698822251614534551922157516557464139681473327750131008124956059651583207061124349620489622336016125441977476727893361729425452689657402073767935167057953271506601571121009348586351449288386119329537961579379647194550654894679694337570203680203854844562175512768513019985302857352873924186326102341636291871860047132655211104688530613655934063445011766012909519789836730749994690653759624392803703191332584583675767432086529818287557563968381278785841165590567795748516908926462891259275814922226317678025447991161274217592274802475806742813626115088213781460314539784303927747610765159770573642403083926124383077842663070892741410368457466350218468734633270003314141900171815306010258785891071139922634051826509543303326753948101092116759353269481941373115638234701523218626477270116717375508450745029409802230377443487918724503925352296041213873056198453045141478371291140806968724411944032378766543115016639197884013248793249579713821648020742331349822859636225551635455626786957888097022349541427884501175942279010552509506392402300856588099453196603810362506351448444111110588064439164967417990783493269085148639311943181430196521614841367009032867553162806484401182499532467227668375319867125467484846488861965425133907323651437805912050251570975247769374086539418646322865110852669984575532415963617639011055425064183786860553557581810925021507712506172645853419785174813929714740286107622433728848812365029794885525195826528842252233962748440289450935574967175798637238241932717371222718310855497556806896767004279677202968164615741328089418856689193436018388340934067087102264036748622147798404278850277578493766976107234798432957702616829236566863164569968836291838541267219061719898947337515456084711720660866578506378180850781690214865457996860478168737870459865243128865368982544847359984010933595944570313384062386516794982973229497095785280782515013690938676158268185001654004955421607271311464920192162483982889103457563760398773834355549977198854552667325968880939131457032222983197656765241423649701080733732768509695454882301055481862311449954133953319347084820752494063470995347823797178866167979599409724538349371509568901678095852797830084095473620521497182608388994151671716099067401739727124997333893250688766659612088129516671146255576488300604788538634722592381352798245359591709257094019849901725017248167692143125920275724941195506548319472608070536371757987019509399384868203554996100098254710834873751362327358336587370050203474437801927067573901394060800207636985898013947270804691123966219039106446826613565543890087307862332751323508856846036511241732976445284924315518942441774212570456749416290458184454063498234324097362863648674470291744070496925164818912968750813159645436382226681701368123419101576203079164017231010932427220077069647578872287866896047482206799648703342726862060482127014780751607827782406012576873389478390665849243864262764302602150136467964708273254823495685234740260690603833820189287689181223809349325784874439084762889074750228530141622381788741212359940559634280332183591079149142416475491840891891437123534126752381120682804130989964189412354397328409228661763896491564458860038659537173499855413961816994262349139220493933486133859957943784210230322063810455439405918672655763185898707921682912913799514274099095228884245130076173643723605393080274117907930057717011996418221721742323877078917756617294220845725220042313787685599247280110003130242034417966376121130564635099774265135632328423366703180184545781250613966718575134763174905973300664774760587469881930200693812347873326245692691930003222581916366351166979802507981331031954304631908113228759460503704942569983936899812740979465267011529417611509260235505792107598279584448519906487543143274287656542741919190945660735900759172541277416680339137341776035983214870179285449321963157598880709869716807444710556850460987565040413987279232495880078891029266883115044080835846493556294191519343610020004662934368317176889915885187849980081581375353295577760984460248646044999685555867611451298243414396092339097498453988332869275800427181677815535640259847406270483514324314043177856444182398454361598387555828383574467949105322255710274529619272205763629382565911014193901228959965140482380297663984546373982027498532403530530086273663624003948818906811765969956658572504791736251731301167523349050552873967356061301648891880602077954741198082180991195532337372882154539811508403408805318006826006329601156433249835284494326763718973072222471627161221920888147910783863280328947565476649112369207034011432207277505599594298703389506219702563840427892668775614457231354814042191412081490788672820513951398899516629260153455040676330679504843967021498934727075869994007862434752004416762823637669418307270838613553900769040923899103401501749742031902916857513587715758888837012931158670714663168702562418122080842439567003423628266195988150125339283854471111843311904207443667747762931871628459747825867934360728471726833602365296963125557410657832548224683097300198788473948127753808957575166808079275348092009869773552217629801081233574710165138816391050436401628381710061487986481867875416063247029061509250687511898763290216417672941994565952848038242616552194964146561807336975084703828992743839336856607124707463393405493558844822802799048984839179996547609306555338749934306104739693589051558302283690259634787435507910784992632661247030062286005655838024498297984995488792221050241868492093565179747457064198170415156480390650913352376631889190686945794453961404215706174286117369224754700173088240546292222227207442805293344266319304069796000349472878896955687863982160854811524539506100947619521511925902080262955862569026357338776504055367282241337858105271733697477330720486674090922714293934204527673069276414405341262879066482533179754410585597330738972634905421494845951380666469054359279056776995442401905684351179793443795232575485468197413962988751442807159307158789128268480387545975969582586832167311954154099644365652534116760039114365697108462496735424064530715974686263349786127860249698529488543962842340626480599226957782634899831330376973229850603806010440270665365165683020613309521537373690417578779378121727325398030929601931930678824416140848599058279108852283825186045641445244544394184392705256301138854524975482708941711574706489820159423399393056276332521871017113577019004065012586211726825259412815177503321639442196005400643445011226927907543364268925356836784840790104991960570056499809117560078513495018536894163360464679677437858041099352694533524340265657869130059081750791184583064455412008368234259385198467578177782732683544707257266865473551196278400715794941972202449594374563369104458345743345373692600636114309000775393985728127773439384749237886868109366783573601012623165783798295071825528836959453786300469565473022679762589636081710417846347898930259797063746633388679111838359218923751208216904078428619215719526114993848810305222494628402558851604210040834183958035891782590713369638966752282448184977265758865316101045901985387378531774347759085631485081634223751547472368844401322367456135431936362958864701986492274559281951969702413540937142638990580458764746459392441232740561902341706044942897173893949217216215435281837055490025239124702582951405785055980147057450089985407649108066898663643807022049734225644593153982671990013759093262583848562926742677006931614835361497899750598013946086087664897253037207052841285759103167590120048014075302459453038454454224162259366890465794531841808179722533733683570038391067221924927738251310184825449701855971015492579028037326094018882536395394880509747103183124352938293494121031419929073295362084377229190253123416034614181561206236465015972766365938573658107359954213008287895581895856295255371449874182984384227561992306846036318781261475917824094363154738587332798143802842206062212169804360495552415339743869338590678197970206439451611235193114170623588063714112738195473050659457461908303365471443600193419495853095400855066957898346714705279266912470829382522617438819245223857416287745803211954781915444935562542666397035143553423579932006030781573020042371657894016896093008841501073695565698242862407651932706993836736568795047599561534140766123307247978367084313147744049352683480416922863905941635026764920268308967873747580074363475082695996971727408970431319649729364301306394654374045813198797541851212368832215049486565701286336242695404521840860231963513854047788315137839567296984974614642641303060237428462416170580586843444804063907369306603338333841361770435325983193010134304604648289635484901297988512163323003444404545872232844179024998213796940312455019192801641220518296640903171816519044449687666886130180144054714061298937210668568694475980475208364336789358662415372478579371488384256594534954361961695393404423329396262553748984216167346560758700644050419284565431953913147839366841962211874439540742419797982883387303046489509834744953230422019471666174827598253990499654969747567513504902760920651695631486730184597668210993682241756574196908239811778974229935311532770838374294076673374188168235857645422542924637279326283417848045427542243117241096063892736921888916179921747453162481426614549804389203816461679648639643569466910872249268633837989543425304648527712778725303451378532613488040948503041808757564677645187349272210419792477096349515916242658152819833932496349213844411442621729342934996683166726312846977608627942531935320677518161968697148779489949315095254559968383056134729669892604040228050253292385797913466660798827620956496116076114324839845324800610941014245467577040700243207241716737693745922465392654570761486618072251711887986940468318032937918987704573429340570282057945620241481376615650613407510643367458131489041322303215269020950728127272636930428350060510590036617024637879057971247051036723163886357878677209809548039858331054437646149616407882290241058518274159596210564816004052741581438504833624480506319422909011623761791381147154018497408910444485019458117115773090508703273435246309296811570234965660188934635191741556914057812187213993699137093265421405615882246878506725368758261815065808421844776564625042152489628439213507798184644382623851564341863120804032721984374902138367904321082219564858111435466588375758403361849533347954962745974608485186073713944605863075517316297203823852895332469406428026785047688811705049810658240538299261295662355231533693007961487262739674801686405614483961316077556087828561493992091641669924227179170570211506635855438639545989677343309074996289048275844774124319770806506645518557610494172600417091467303402826645147653071992778528756932399481955997070242392331719160994097066509702088497265824880481409028500336048817135878573988582371101529088114101680742760107676918532624833863241381759194235275717374499032474356592796538934392286778081596687249413636183927458950428298481343987297803295482327678058267716705259250442088306514466179928156033379725344090650998879475167503403672219896386935610882746083046363517894979991299228572822533036487235897056531526597328084129423033989759521555327274754844748692698392390361235221463050145560526792260664635622724177166990011200071628502272395214090148262481436953091471540025267329018359766546993354598943160278478568475943403418544181006161746374322069296877799811594974096520726664703635918900251640482004294843623891004849129523049996374889648448530730502610889709038828955384946673689527840788354036351465188628841845480947320834243877569983737276174856219091041272726304434250338913994684265814069756905390020360925446856131056414799903578885699256446578289170217792230713894651913033200444251652161682749331530982518508179526788680568723888434118243178361491258610238365357614102259057749704966121201663819650661091843683815287616432679925159316030900226557108660258611244228250680388211121016987053706472719081445284424628566222646999123256425526208090945757222481777815100911155836210215896052518610372604985757023204225302070965916723470445312696030850023249300686581207128070181821034507447646303895446661114086369285997365188889328864527326905661224895347985596605605795673375927125241572136328530294676215784982413510257040031669428941619192653689727487152824995845318729450971489143953237050576924025624519644908118942192539965222795736107960275761484005420127198526074550509964853909917439805391115498334485119535682706148882632490375651350469359404722996976717450167777134269281209350322930890836463130769023372845772313135970624302707633322854672077217770665800477922737788978837295532698998221797406924165783732307769705488204543691352492962347135625308829802175425798540406559664383575070024249940197209511453412066206077755199550774502525662960585431416141246170244845758957872781637532181898347517683495743315221204228671585084533636744657103405039127059131202513543840033265385133980896942676054378206033875504819901203479430851528487588223146108154575446252585939354099173816078157614240434523135411653456337899732028919506481288268994428481511262275318620591901369425897801918263894194115275404897810858693693055113618482411409452701143180151838276656379732004154224000488949166309557651893331452357189955779414269119101603627987284230312862810308296861167091939269125926661828569334492242924272641164925709794941966793267575204661914210912431846295229802343054036086044062289396493471922118314352749655990532578545276341495978638984493791526958173421327372240252105843574882416234771777014458996759055044782289674473879760993830286453091361923170646166614130029215455075093594848615564575130668870139220903922818718093778287067192729658480981621156564408499658852436557529934232736024515762477102556419456691170993415148417589167199414842892874688467176775173484471824443700743471791795741150355000421645109337603653905395481666824722656324413053621501641922054692835280672416338752173717059576556998416216626666137439670400706562654345395195580351678948901898295372974645240296252839299045233261986142440533314942622464494875389701434516985740533430306519893298786328567766955481870006878247815715888017758335422556700845939648819498700953430772132067718822753049373103913685684185346007622501897506110528684578335713994967810767143854894912252045790225641358591196223993102923983412612566004001149410894104262792289295870927818771668887176403489548930500207083046568011026338449800177602800342893538992614362810311809676528189528726650366349751012827860899692862566774935068941598931137543155299004141615661905830024582686644459857207252852854825601191954193084833569872225572798749503818630252067233108253248400378172015095982010319919861937755940825557904201512808679970812879157937916325018574269938248892849892891772642548728716258130643328334835359228540187350422781590468019926708589652534693531239400309188463875653149319678254092733531034816035692786265316661440657762569859029835364292348794317623606936973731009218914883533758751729189061671821021053584283857243609015717916928935804624419462663162690549431682879734490902578574815112670577574119596283035582520112284724182747412941164731264203132176450697450854525503991338170989201225804336621098860463583645227159614846598205792806117070710935344103485853184382196116094840359035399315316010121437994473375945364988579069809718021869411294209329770879129708271567285812599668054946604574144275938920183737463858193706553088002471468217685813593957251324267869673807472620019423294790524280929292304623989347100844548225300377585186399264485055135593576154199255672061704151474349175451846532421965512313520856218785661092352791096063565625952259321970393840794645831412837287845030979763223984458100759425050687052489337788976509880389702000129908945995606676494347886681798676752853144454806437487490769717978521434776760633589861405869766389116759093636047232713907610991725571483017832570575387975000128322444485867564317739313231155135886718078849631349205988787764080779559060821105736661750294832295801654381632885068667517056335405770856459387685544523183584944035870015500991805302453108252526263921289899282366805733980021919442564605265354452135802852518076739782980665148918724446277416161314602918410268892147127925978443455737050583002733233590642618945452798289926627993835376608883947461923465497600804382052865398381295370647376575220530395916409962282290653724237849808127866820635828936671100538563332110427093456817335843278275106864876845996917637298365729648182405358798198553857753036165890664356992830901869097356219812206335854822314495208118796617268787767810372035188912581832131943318279963222168077970757663359992372869044183171052106692983861431562411288277931730735125996766055830869080654470501988944204020173558842260138129622541819302275826261021078230779706758816069823477114192021516356079164536481001506045370085319232111862154485523952035589702768426942365746489313336262298444583814746755973370940435742427639515764138632890135908122173157513578541425946840969148191796760718026381839402475048473316482484425641658351333613698932548370454391256103830164145927051496681818466826888103029506287469977036577950683193372447337966103910283636442762894118610905512580960199929105157091495361318087807076534639930386083340230889749207918782888590368104739393809261975698188421565710522527433360479583234150667134596011372761547322880652987322923965246127613903828628868091058516521676655416073148518937413006885558058253564625595484258416209874939494645348256245537962654840343306676372367428211471151400060111215106711585246313075705000491228824794233410444576346756934069400540947269327393212626652513590443173942780121324378132361713168179233503429026624367017339001223048847783733683463637753302367741051910052328614971093328687509706073278672937388957839379779388070330602893195429813155392019983467801033821189792835898311464867843058736542329089680666852940909696252441581274603894297716098857595336384064874147688513666436433240281154567353795182395315681809636063926796219308545499690199123524278977932528826307563411076267975192622790051825008622152887032860317070284128097693852887921230109864366766216923934535715813206164665029375296867620558534989781702955158924742224999677481050717929650957432909525823462863889226595844254109091432593574388825283396838859223294754273791846126692585310963406541833145875171145559506946336423640808597987531127274848847772331554745319272790571288700090831050950236831653165651176907229824963530574550573426032379068128474051173060330214455868733795399296837120544547599230215062947042162807218384590451511378251730807142303266533357649711651499377252876471887983359779791627444433213748199336652624104505125288196264768783069095030730424873244791908400486144984786265454712325594306739152795705355754246759796843017955243537784736098370820241928350705679104178277064804570782704427135292065169294673646260083016588666778651054142753472667584144860382831402600755234155592266188374409359752671321725787759503265445401831817865701176373135062566000361065342815830393505173071882435180786639563332214677476757891024606545276997571794107537230408957675681464932956421767404621465363679054950363639940439151033420061798133874580416790236182453186314903675358875100294787940138311352864776978392978838912184420036247599680735918165152684413354927123310110440153025208102201753911828731242080804707298745055581910202462883047598623831073204165025666831397192157064525038529378455063081790581296999798955614455862476478318779763188669011617256573237159603759773239098646386077773022162639880678336900590920586878264620289763873716602969613297001338622199326983795982528802875901512829921481257838082191226269991618842163639039513420581751369462178951882080963221713541962233385897322206018011495672577023911383823842521098385529883275336842912503534689763674216875939700567460202321035160522695894103355834535343541910108403826090122938006746964307371343663614032983237760951466785938197430074065859286228167479144894251645674086908097590523775139424455148605721442356421285432733839791660208465553382746206665529263036864778751766002751133320262764333579113958339988254979456131690611394954563845251217366045137637726784537115205102122269746938115968916026846643949479862236914753117981861016659830984586416555934874441110231399608913559242636574499099809919348095255274083565490170598401598322616104976377877119394581084346906194913771850796014634711052017106098017495556292440357018762830616723185211099414256650078076552178234833005866469900494012117756425801029812376082360551463199304603245151502028583167092677901681455678773767636600324309057108872375868568282207138183141885525229717337049873543161696252637467165118287911076812502249002308817763714584748824822472959671204148776928610441447354348026882416176869090115258562076032063097377372242192694255342953401750972669646818391341532828091209493150557273753188472171952556079751008306127638643486563031976827427051656176965436994119244815183426086643065809682177033584022615693280528412700798534304493505348718453367826842000258687153263268830231095069175088638312321814915686838239935899368771225511861762855937206627800725990982792467554164874363774581321198311753078018530181259362586023351183337502347691487233912815488170845073250583488309577301564726048138090972938010122244233702848185916638296096571410199143304806817101413340931602433947728186011404184371904459907415612580729569318279346681839135178588864268737674949694840295210497052510094661191262688097475960684537207090681790630445299696247227420345998079426871859434980241019441967096188375534532974047168279138820731512981622981812293463868703624614915297746114725800099227789275748344923283463551668790964274488803762843218018730244477038406682205460921427461867546701292104328542163461572757140709485695247257699791275570967052826865054755615078268362115884563309994534603528069620824132551742361551712555908844025431064882923463763315085547975925060714854237541956960775937558754492134413956756030879168884085153992294053394281636993715353768175114945448286534573967792694321226310778100909501546501998934496393257116823156587908880280346159935004045047374415746008386868933478586267859094403952965753351222463727500122731254943799765817354577532617761848195434464063806592537225079145332631590874811739383919645943477481109272177772373140063176589487862069428122420028256993501284113494013424724232112655902013818130438243633977375942620193673348410546769651272865897189121004335186316283880418207539448293477516100981742332579638408521854936958083085536175432052647541754544014483501582729259694116395922173962588663462458928667757041822854046637555372722378451041301924712225936404433797322486273938888381081608215725640332174666665362715823132945726236821164799010297723754627478529390193566893875071009278916172521923924267994710545726708051337166072157126639394930212851864208084458199911591541920480180735011659635222553171541202056281397832614592186557232721704721106782448441129417814065659868233618325615633814209658258137311045032257263757689962865165756903583257318174530739937929262737323808875394197558716395397056604214932613903450286988700404603876472331678991706996524429654647236795043270640407126654779266565807039830967689253877764823442600268466023008408262564154814077409529073824821138394107920250535342016308804726789291818887559650810125413206686239431841275009002886022615452252168523998506073760067340041043651394978358797927838516174858475588932006083024340592268862993440494217146323682269795725182801006558393480495112192965125691550469292346268698173360714334017610771894636093836537368245172647142210080322863496070442806572982085041279002339962078069085387608741560977066687600892299583957302299817357767067112674480690741620791253497642775819381337284607008114582196817837877164934026583071276377307113816751376254131330542667648190801851763705116728854843252800220141617621770281937443256575316637810484451717147895541168146952202636335244510574493078020265577133798234129510416576419398773324533441486228478428273477078697415767948866232236889340981088106883541843437494923244882580150589449285417221906167119269232316578978839686950213392097208566582826889466317565392387665128977367051548369379161051373893428731512953898096462552557730424206919457440804048365912862768357347512381288098734332052183494868943336006456856865055127635650219209254070188590068633235792464702187987465333876361525486489221807313155999105111191198382765954600586922106502897746919405890766921662631906312862028238370046033769030689723983997793329261536202129661558978190813530309834684537206691739521800965443258778725348428561791588400575499007899174355446622813593417200139550547746476255747590185922398418297054311128488361701670142030980680926632259892531952415986572640768283708456594474217325569216977891290521502814992163333200773335787641278528652671105065228373859244604247159144579004835788253977980673905689629327586734439075903690503363753310840060289446221326670513900691207771257292577405504624785848251057098048036799720703672621711642625394889470209967321492939444033957117199514899802521096519379298862513346625313945459418886215709155322475031171981732861284585879751546886344096412871533183173953392495046519680904455914427012983533025081206771312381014632571120972679775820788314400432256311173188641937826771315931781657131935852963562258580866565696908193467491803444015870943276755268870928987213969283930987788344741419257080461761271103604678715646980951284138055488994858707045833158385718991507725323583494782245794548653749394852314546870837691875813892596627229283095766271322030658022274106124454752519221284292445966717523378742387285099177238830333141208298597609892834136696149083890895998822659371978190094681650493045478253905247602216014308089884142201028773705268473173374723040784944925817215985607235119817839662882769903304256549928533136936814908219400402154074940896884000557668413882155862673053768133973622413019829189747651833579210588695846427263146329609202007590785047711817469656353160724045992642172082515847008842812053742330714311935046461245684826106491310717117531581410613133174698205942384158439657776338239660622493068182887321036104979620487172088417359686849455058109313042002722726795189643401911123047541043420417440413568720929062992898370633090376958456729535863820725721788634846084562802154043515037801259736958672854836702689285421588219611412933645910976158349074505831395734065517125727694569786387536008573558837658569180720909343983117786856536044892714674368689894302320205996524223129335495314153012670537675603575395829828677415626734638194075937605909133613787794630377138232429710019272261947520146026362917732323599229929447632788239213142401856937244593608505249539181128857280159261322429820461116540597015519498234864964262568838856318960749743908391903515033905612950959764416007127837061976172689033429268172398473724041642280389559381673387420709033529498786013104073534681387105760407127351754623002928616319516290613749594171567392665375518593530395059504025040529832294261240593036290876476449510649549235845249767599091600050882830303833136772715954072795571198716616572638240528252732998618109591740644417095519802159423845528822820268937095070809211654266640917960121185725791300407845303081322103197313792121038182140477642977986225146099977083991542164316020333095718236091049390155194903506153859325156942401809525789836112748587847245027082934867854429059439677281051945811162175335766898834325592839349099925918385298931130923836436134371342612482752602953489863476684810858174540819744559708944257569948658262959325492494225785330046407631207283303038666970952984978264420262516264564192922868851720762228204661366214560376208277133256932262267285822383315643326922809147921710093402708133426787682226123658047258271752392938712330329893643882880848125747461869459334173623967000838737006163770861391179181960174829425654860306259278737891705627816762214722868942156334075239391555053675417836501249128244186531058874680650708328928844964167647337809507903270900852919315631239705621148334449606297521882657560803592151465718349178333435706290967449404934414560798922820155327862216837590132562389076646995418252449577114621377430347773046720595930134294611021793683721489967844352821285062884328409275009558525944590602314372780496318058138981052152132844466213596851840405881003480431913182141991479122625911785168937171081245105058157846576317938756958663330020771687831420192430470798052554181952677803516282149116539529724822488810093360397017415491484839282859572155626731482071052190084380616301800054886223790778264397003947033168542333942884243227372214458232011071493527013453997297064319835247528896185668379650031393174475553114355155663080184676840342533223638771545641818133034084982495284080939416719914464289428785985368637416901119581339291522074371898915592685197887831675922135688429494642597606927752551738246238892510505668403303058799169547397824778230329889352675745231403339068223683888489271563477087694365722185353739747507756995574770704413145173902865802653573840677145347980424445896680753463849152643415515583362062990340008215785842726203725620760110047324299291018636449136718352175897406289051793080455856957051279262769780540613058958754749020478008008684538748450903094116402162696483518746704895464785908118801572555389739706763300976153695055436374084852104973787096900643371139894544651184773417198954540933014226144696799490681462100468824427886410219423610937509638703084385307285936999533607722469679961915188684734266116865914660806784469731801044231083422496064846770413879539308862933451967647888911307032440928192424527728623811839202060845804768627975496888437896096030229552499734121616136045110006602506102414930418341554769980894635449397149445576080652342641104129770506687657154516667747094578366251679916987048895670254611827802500339145457760712106540380220659448905681630873959677953428053316230962130302895089652450662997305380825295611252107464783814425562591781665824486678022619808379351019907089057048367053183135086251750270390919839041248742012869617515478564373890340778794578989041997630533824471259017448767861111097641057278106075233026236332760326799730811920582449198529885649246485829034335786162351215734526823359178347472841630899832392686431560000141402505539021784403006433340726687450857457633461379754025247824022089152036674264916414004460919123654634057791979707081828392379296776141868376602593929606957938502678832930400036331921996560178506735168523611906959509562395809630925496424422028219489725222488118874459622534825058590037198276585209478599974523957201347588518348590488599596769661129958087337295665331410037543916398258101931784321176917122590466972343611119231035628356581477792990019773961597894460061592324661791607506477568373386610871372148236478228906033239163227858053640498374992494949473994202076972501458621502468635981363622334363953691955402886044190420285001926875147256044351399298967476733260420971433206869645453313800734713376263162674606053493323017751544864633073202818814174909225093475203033814931957926220573793594254723957478039014390069954382119831673343579680484646837501520348493137071740015972392280157602586559161871914067392622159790340699182824937696935934071254459571055422147778159439898361115597714091914526461791913797013937115933673530149070111323835211935399950584896822908674288239525297109544317586855384921674560446653920663000247008830965498033778553943823073621831307642408756147900965316405821595695356732165182810971263156846156348612197580932752915013012074481178043607909917253978079896137672121915774542800584470839272287672627967033694070393850476725623606635496241391229222029466577253519497252252767915862417020027913132212628964093729788336872609762533193713502825598886146869998194970803479453277290891337671559725201261636554679809853990393824513395207707729592220390886026350790425539496913768872311647950451835314604471972379913915861347408335621370943155888380243425689254723304886421426542324294321414241408625690544078364641087638120958022374597048554020846052166041855631047335285296890509591792217572403725921640842604592885338594573287905178042995488313530096566331745799803419346511730816498050000105213408820626856255694163846961523959410658688156928090586443853577078783392934417146705911616174903258774010733497426432372792828854595201766972918094839723368888113917955511463203579595551261682467249052460896398035922949551083354433094533462563265174288605511455122370557038970904726824733249851054584734511530903176698132235230913099655950268592176000012872088340719593092181463724742699111288890690738160345000531780425873375501174864257765534110849527905318752932554279179041064402975019703482719307516771301784429719612767603156312409990017315343811615575825612665289893655530631663980981737680982398275091770056939512611295446638308675597311634679715098312458151695580301879712786843492322180517316299686563768837476424324561118286447663464540164507367397593417743869724673595341276258076190540904618658180589101278851011945456503481369565805764131010552683848068725055227680935395303221614731138538790665024879157046072941712026810989372906140712220807270016118305081435325021330117402143075432120234096029654565640718267811368340982132336084319058718283540830317106401575655362827261737360735956168417867265383746400790773066354452684467665084583470090201843127215599435016525216708934567600486472534522807322690092748468884023790296347667851590404886354898438794746938174709718502943894849364127364940898419339956810956975854222870108320287235317582411401334523851631793114643140999508067017596800432313618453160990688926682933446143315295821108696787638873297976592485479235120848105224670335746976763559768246742351287122578102782843275930973993625759739318716282973022969215085376021786710448815990711218885956028407546523668183698072166889394063644043644460440649885706040945191508481835541311696340646116748491085031633425052325079439027293514875462583806085900578749273276128186456785403623858307755701160724375727764225741543104902613363057307128667871754954421448342388229657831510970866808156057896967867637543032317641410695777300494145996024710098072972701113080820010309043739550414698177793729877930772252125677369231695758008835171165698311978609806460512522038472916409376208476592975011743929168001414252343997376324307458692588892061098514186305330272442768633517816310282448097837932699610224112613700241497791346861462621001899204236201224998708166237988121461474216805932267820815022027074907572315109720129613312576752515633520425857528369033096452410470332473826568712075202786409585136769415697022557916292651094633028545472471251748702618257912512764635228071287413518083758129209839150388291358485326214245518222237187253171220563993379580874465439310304473470393910056192111944971562735780298354294920002052031502984600430859988396711188439197995592898776944719958655972586793746683470162899018129446418976928976948312047140334095652995957896202146344043493960545117265521781138170373454980623942490598481526235146753880399842665878611064947384984168465555010187923151166752498042879468937005922149088685331167299473153102857668517753074725612177291257814951518647298991959700497395791361518724041203268193367488495301175806609980914782029734221066101305137529415306196092407679321458690570654077075125432714477783926538115354802860278287797195406680969173204267193154572743004420895919086988556081829576606508090417198330976743507933979588720816712568790348618387310516522415266069803831072067748793997560762764396681743094013325156899432822581099605598019385527414417526088880913488585920840100005168323253398401026287691014203773441539046156540346119598700087686382055758127559893076050910822961368380581519251965780026465916917529900941050781274920238460794182547391659413613721295839659819589316581315441090694225284919457366734038774278999094161987274676604991159718694088282209078444981761804334974468780533117426733070182874640411677311285754946684430462811189446550139073938061819230627862622828177898455490491910205720491485093361707565459918564148800698572766641861986342143405668726684691254687802414806329636387056709585655103369541218331933195451739017183226453326041056415737626454270075464983182158840433159541008908555460829465107716343537689498492548058639772760705448966708426602117720868841357651219407251235775674428603767556614169788735381726058736316729109136520194193743775913450502959614417076784457682409878293960416864196649868597678151032352372210726790588981747343265701228396655901289664825055204941067951251130645155316138899129398521601604657016195687733125549887857131068964141234049891281192297470576760339155317769904552369660132216262444313906146340979389800359328437192364325339924461163555457013891141029042398605750662151704035717238845005974043167645468036934273010425102769078937574407881721356766881645657875785741041937011579443735414582854068857474520216135163103985639116806471438329819449983309799788897764455334986591850858843670836092094419022551569029276984557211777133326067585966549460753103361811588943424432597134441781610955699018081589296671742675613809606363670432893078683190075152052299202298923999434723745249710031095238073607585577831580183777661655160601922983564206950744995372690895200072754961115299300303059731080061418007016440348211765584827878025979356611407283241604018141102153740135746886215342510604985887112646076284276643761118743305602899722746613334705915363738718509357233738383869202881884682077411540175895027599818186859273427328740414409708992034366542864637333128415847586528059186186951399770335086408721558062264333194913644451762069794555874715020195237978297741513387709232236247652601125992530468319897778003035831077237409782625005954581430883811202915289374465896692208138600341080389528078034712700743318904635923273764855072009944238577134880670380470178950713562820589205859513863841812965419977362951922767180779962740350067171026849007934465102770206279635656603827122787110545668309901645641318833056114852363661854640715247789430602544452501202494879105723211381327115488227533535122005188835656677085774722015221033379259761799205053090359579471383432087737137274169585028045796058957016186261827066867501622839056564349130187447925146305576455607595296216636309810873710031830937807631494606977170810666187776308436162933188366058094182085549598144424198645302139989391285215629048745603526948738435402836943108963297631503209339033012915553826564871061377139447366701405594259600681431950596716889588609337316496945770558665735000738633869023616368694099866311746343757161398148205948530842037146145263645510778295258807909456602154142722289975193538757193330625399017375679757925520532837209838200322285266427946745681678867587787600358079367351542109458339869996113582993795246846358648044599997385316396273555561313920164076136566082276194308691059890645793402307121030885293511914708360139580938444929889914211692877477564340205134976091399677729888934990834552256313647681823864064327259633302138925462965323134985356478688263844723149936386273215287981167729145362891595283071641585253418264878389728987828539323004572825296362935716341931681136945868599919619490996574639873038888931191268255981530976412228127678632325464965550330351460485647056130837168893295900801164555464586742536137502107313179042896189221561206494271746534233177345319903158414966784440490881232857012522193780320141106355469298932078120744930747309671200286677820381222239997257017457618541870919837391871126192053072322755578197432301949233875585466818832162927062827067249970243924445952617453833923005276026318878443266550096341160332305144010496342967992306344068414471692368449784247781251920302786598481160787164912986936913154176215383593839840293133948344560156290443201331550379130902398662084220820327351311152865480829812962595910669805441334877818444903514622282842541910689077835690677626099929439560943619464603289682274849829100229486683412739050815053861274460895907884748024978528849729034147683186202229842875118253104613704659428432794646654918353377699585069921300271641947518772299445298387748913886294699012989808206792103101193621625241729642271169579504185330191337920751841576579339045549670165125929368000086372335654893055170074753851633266112173807249118962458998822987839714951600003898385133666226070946514508844608028696856866835520260501455067872412766247189113643365967352704506092754662270792555910389626643676063838066341234932009888238805972612083161304124097521946676239069916252872246533396077914025742881197962089363089996439070743016238600653210971324333165965289979095078177444727323485427150936677489846977574877606935279125400345307978169990454308327614127465024124834673939801742660482087206477660527586768991195064808635612655050622296022339314352421756428071410642593873304033993358956382691266912170811837344376744827951054695859527428173141670136985381352301955469131906253703765755196537653504818774895748301853776775918669954843516584888548352367715338193617839561125889864631216117392110073761558081246140660699084693374365087385773136576467667226872940153246955118378299282744969139863446544482499407335569297933105416727082771035828033688814725963944772618798698038208739810358771814648825380850579938757774525240929440020998693104428425279554189793428311824429030627255525491094575600387807702049892126667547443058427514303323230947244691019327004529422600841122362022690348397397029136009462605582323140773820143618071704390440361778382654294201325641133438016967102665551725864787301049085610749866471362442301764632647721104272024036200731192753161013822033013534853794233613025119537845721508542264832270559130226146172505455885370349673027005575443255572921886822253039832432377314337300202001139027501129520359885465322572281710180386009775918874851407058844216458808508719284946459343362609890314685150780052700407573247451058088978211205373877991752669522666353904155423290451610542179019772719453087991367123903210693750507969197763665264907609777815319262109697395554453566352823234877500459038389162949281934125584555164030117552474474134009982995916789590985705053171546587777288185899300053172024011686502042219660830435326120192760301028467199391068118574782346893274486535542173205510482374958222374004867031201079431954817248083887839981159909185385464067862039960044016523680096234710436235367592726374817909374371185692004204898750273464630310972862262088879735832181531192709968632078629528489557646181749244807775612616417553285351359232896719997634272923852471819369007931372122476504753313896807935700127355819528966548793399813011116602594357016083902483176153681705313911945708692764558369199168868451251493620601851602796980909851694131427474840505300175435360795837333259008544147862483522812281580682814715317116380516160061044557895597705268813319137924395517308716669365144236492398827467681510837317071338728334048320086506294973207432168491833093977757577042268338405032006476737176331104044667691465065316650671222977773221259700310988690524507500589087772480274598121985497187996268379517671792117306739104298458950599736240701304936526594505309292935421615053594106419016360160059609554820877077356320057728869341752862466511928923973280371910332198523098423268128059310261476497456955000926474993431227813876442335341321763493949634959065569718699299663878319881862081803156829685237757402985988803068391620891963748204497113359382008800298993372771839706988081831664148639217761424771608223734621916105203828002790359848720399281174891710787041659302406313745862977930996786814377583194292791384855275570532835959516019471355245960890692515586141668527283304507467646581064183901551975395305215244472536206372877404017764981426575254208193479312876201453318643520803003218863821515360397902478838603638773309911131955674135018627593414318671473590913400708111968852123350505641801539549089549481682233683236109383359022470997239544453191567260239646187252664003548372174064119870271341205829361887986060124811208338501964231555146579546922098214668598967169086899767599034597912251119378416864489870123967317459530323040543368699047963083588823077320292860598374292513473668084062366479751969958811508526884438973847633237970995657056426184978995839469492710407437806521952010649503448956819280465592823314843737173096889276642291504271872254558891283223585300667377940323789245799244089796209007500352818048826466026808429497325083678707069732426618369087543089437712107453244758315387372586126130975611125442286418179223350353758507331667496227983569970628342682617559140660091075742296995274040449426365839329812921418023208269637440154296417073364904743255270392718074251073621180735427320274268766805147940141626127443742786883873835427908445369561972798709233583816004658701390234333357235703031397149293047988002955097929489436942159505830902531231561535325457595859089539237443098535075645767555081611011649038257859816504620566908055375796078584869170472137684117338507496033560866284906636487936574549807815480376759187556031139506452461133719233560152657211647274110782047538408888094169915825894500584122768473343646277797729188714068200860623886749449448736026959916124162409021217995937987211589953414309442560589728776256430625105162957867965458815677282314070309855529040829424657814631577786960280674832426362200193028432374266337212306457759127883759138573704154082724079398767041255018069419792800272110320471586548582262329488666790583160481558314577150572877715504453509650724503568864727104974471096981613767572071618697724484087610851853254202121129038897499546775670694169562253451376240686903857017019723305227810124268944408894551644467840787648439128247682619166321230687874298177869396256127283620449291535703053789102841001314302606828484882843643225918961291816743625214138015062066076122955671180909129009875049648747126483168356423477292888252570640029837315636463280779510927049235657281324623460622697270994249050209344740841145873246603926806990393372788356152891200005382809446450788899123611912506331718050287916486797694741417472714958675667927250080444720718461265389454429110403963337926619045757588755211780813756208026428651903223942659296415735525190538609951974539021453425185901505455872111479013041514508702740905909306883485320870166635945001326231174995352964127836702307110854291993391547037017055429498116155964069500706710837151999324237282839986258867900928660585114106663203031139395415126436219873879732070707543364107159529454049948809342215043072865698382319114814441931096494083324316847968083407412489816635044682242981218435880933453241720667127547305676958453206128124774335438388790318614043535687386319347291801405902804105394582089654699772220192695381582804327844187139590120058993641793481608661277943674292172443371882279565184510929591136185272083888067705290096899172818449804957123102830889611954463757856784569447247511232098658889284890815820176521704883854107165893200749500633621108446376264132974152358508243871295519108371479809771291902863209317643236938414050830243780021619802622764961137437864456983734605971697779296161298601480084297266946189730350359571271123830946440884229445675909965425894695107008377834275299906103095567002904360084802910340570033094769011262247251113095783824131587642147213088513237363757091936444823110592418002238394985032420998118990523535861006128633494064365365274261251952522221742789655445485044836044360096421915908526568194922757118426840213900806640127664620111347707560053725609000800636728422466909379872580070641146593163491899480481079530649926750945594069232802264246032399592348959634071805353116160788463921998442054188858852751387875578228616034822121385132985092853314924962585102474967901187127899145068151642484127606993709597583003208030776251403548184875535661923287411561881980892096967411101170793942583917902724550540212923318200837762075716700033053929232341135551447251357347195176467022411759692148994703122857250983562672508580595278452540267498561908382300724208888681670946969936158696723331658686148487892865202698958073580459540306207765337026698580980627763654607991769638357802506577536462591008901399087121563439650754994152190580928926887773336713341414917809545685647379887182967572378899205997278011712443267714397664794676416476875783373468303001029397940819800663595338306693090222902762832080941176881393999082440217916753451671491779259609876483212407808765916733219401557709795825035030760256206643168804991228252295432439447162279172424628218203246594228502096368406515746580315860831534098433271126113364365744019312810403728348381373187504281780983827096133198303580833904474103811279570567272275127754616517992883244817990650165215245346045113371122265002891123262404238090876713117688639950212012550615898287299920354152891440706143044455368990177223736591426573154909630324048081013010096340123338430883221423199434356652250482180550014526905050607001586273771723553012140446359538654811215921984747390224929744191759057599194057774300560453793857852436903329407815276990621585438954222302303748268831727165666980373795483667731472147376555125824848478366494183656390490020934004344492863803406379509354142547866537012477004407257329179245098743047307200486630582779756859291456853095249517168607154982956296326794228890934932561247032730942340541254978322322745739777593410097312382739693311773113751827874325656089955146512860218762280515922050072109067957372846888467247800891908842298932908272688944098079049184656672247386553860199955262630922016955612082531165118119842300026446806871158877181608795455700483744031126249476617224550818716748262249852569166491377368297352993359610542803499092707485958587775224316577403601432355822025574702740535659045414738290737191194724200304619341902016096771082790609755659500585683325415608713861093074101314025701214846259236833341921939084240274710648749828294058945312648838701558945508087112624278047315362613091580141991311464311638495206121175443286574575061311232943803038595523288071429518166482770711442573166287047886856011089697559674759942667652529571426278139035423191033243139413356947666348927523877382992475785957310529491590341751648967506357022273217973035593057868718213822580258065957305258327541315107896716232048958342487898896132968864366762880488055367317546316591437031557971093531415852010202357988367472624629350954823056241709007264576438906795536745506772384863734184828300571148480378558044638018763879867238948086008400960904646100062833872636251643076612278146569141777074718595850994082625508906325681928852405193725164412668367607299734774223814118971231564265410917321746191848134948130515578599075395636063168090624288557421817022315720554882707558587856750605073266726600127647493750713391671283626245148671327988285620611888001901534932385851784551115196850004079500007190537911114371134960986833390892321973713392373467274863889898140409612991401729733024596469766702504001551441549741266261657220562318481848801327699853799485555473214088512569844668054357548035723683856514773689813109163747591163438868571471896962786361891049464186640145951052983912331463931565660538465616923021788175892043838222081439543059330955361508372171198412279326805910630299412836502296079485162573170222676986572394877377461056475812758187954060098543911404564555036348318354402764732236151770988010399693586508535474996047770677621282235830149737233720083551431626580560798038337834144860485193599384223021469401064858317702256618366957123293722905731297883603032615286313479410398210326349083510284115748013569150924212682300895892881872188305171512953683247727019896181748584696728942536635225491317263677323798748118711553635990323003713420092586006412781380580574125390378370567189112281942342204570435981594790430050347061848678179480181181472428117386415497332620505795536468930238246953630940081697601648045656892806697048634445032115660766771327321380618393870725591914334749606325120946629421408374191753243684543603660350641599613598125703846442244654607031482621404017331842750610439836479754175154045714729767314126440376524379644448241455877854298415875250990054885903979915093854524433949253796684485147980275670224727482815650889629330493265703459246119302453093640429962839756601820096075606683788478792192352473723886818842682762541615700261928472144017138413300301028350847444130101268929432036945505326371685453249790816452050810877069362546615224678691622314541074132961613645499855676136325953576412769574556316747471724696413660591412087010960463123461009288873505303314296254507244425728386646552844980868395237477126005984783187079447954479853943790325362898643421514826882950137906209927778339695568715813589741781364947718489256128854479579244314751258158401950607798265232236596514478323530371693139548236656906051968092583481879638674789209390600529869007514122216823427593913339196701001597272582536601255281392841301663096785038554776826523387104707569031278926560935962166124437847023169276094190843304428505344242678050988336580970906382486525503167083360863842993669847818342744507139533215940637314860623381243645900014587849953216522112838183469032788401713741794507718886312382743184909087724264000896559345614694730437181616183862434163855551773272255628279137985802519834223155240917431020151794689820613058182805627585003075219352511363786048332754948003197882239957445505218485466298053402349396726865206755828101252184932326519634904152528645388001137488473116540994396966153829019647439252130761287807392953576437653322143624889239100136466947662052774181884397177505796221756786192165765930967414381218819122748207387258635535744284165089849739394583743009341337856666518205955943544791899849818973585008997551993104501454059464660799509756188237462342305929650682724067288259037462622372482948366703148980948632053840680834297836639022149247153207290123986783867535140744592559177478507545061783109086281485157407300306158303401677410919311626425082517391294910182717080901118847226250739878956151531410757377706624407496023993404586141516532840953427342345345713461797170691153226381506180303403583110815979950598151177751803989110500075846398888860778821920228495476841216758214937153079683253961703705659054900131265378969383655435890190796720540149597100147025578404773841600547891522320116068656307362311633368668806846452768968195802771882944267693663303383281602101900479002416322252179609375641183677698207816076804935792458756073991774847997452799021411403726577823675685461913507895302420516237385994809743335534383517530281683723402409559597217226748007408852263357207082484223562355299187516835741207210993307368736805542461483107585965869904468657704701501414074708322965818535149950630242761515633306511647644727022452499179310472639564857406845792887465128642497851211777399337365224661289158146030196607665407772321332880713974316146415081778351038952126449964215647492595152160903852532030333776712199550236631105917390937336175728882909773748478221391450306998613620926903903567112880582035866340884111335657649058809695277152825020206451506264771399452890279979067213637320693834285249274703432745630226888214618563800987148422027149748897242753684618689767237222701623061994753321528507971992065686707963257086832902583714813052831745588668992763910902915865018249840204079328650805767641411964415915361128625329939853568280698575991450324061642546235737370452371213494031149753153720942724721980280980311817502694013443994919701319107165980214326052753344490439463058266432810531287752649849708452907116862917530590436341719227341299960999871576890498498439797333527754453959349781106922704098256008183173793076587217145293256784857092684238574101116349871292198824942912938421210613223274204892762776816258820448545385619373538299397236108131439248403222127030480828033889540648724885856519905695682019199499825768334978720698556226477953826297789655762676911070579364357935115278343811158865073323384470003451732128010005480471538460787631508729231961811656020169489355678808958721761683871957421311106843254829382936876307139872367843264936701766165500610648379379155452487230986849276530414667407747623216843561963023838404928313057495823384805644615387486465387955775261993946246044747982636983324070345574613252785242310374515934781757873308133584300773932631646367999553318990550863590176807446295785345263129847331097304932944260984552548332625758334653758765437435168352201749474525467996481895540138517716154838387551783158126092593088741886148367523481042953680311739630359718970503242259056667792813934112676424443610262334728205878692069790360121237072291371431424055817199232287565377988590183953471639400405138682466617316520281072192772786368983816521094968256738224315902231630675487180614205363158814185640532932305280146748313318880275853297695676116888752415265428074548645735843686365782768895966311303796236229183830093731921380500582761106980742427864500781467913851051253933043941157791053065042877632646737568638918306964678442511564367944281575941711708374535602090467048506085477613370038992253122168832257120487026769843318555516937545800718681070392977407211554118743830200975781856928003695482161505735831090650971511519056548643822327359758226831465706122499966104039440501155799118016059557342712194333628951211764999382288848661544076179109593476279897125131395139596755958215961585755289817402916443822145675199069474850142182138366298590435240290117921059473050233764420433052739769267266697132201594796904824041245228853676780896533297692683620183011993453907372463417188731865835259485093520022158337442942091252258817485326864410272291043474320072942089265676278178501200572497689481696876856467897460684211024413140252200856292012996289649224973099739546389618299612744174429331398118370570778672835761892859525314619013330336955336721542499543790973134173216780412714609060073700643600521899838486868628880592599541545442728027980664914350188269381333950360950063399114119324603431824065799848738161450467370666862933844862862617535930290889182532894084977946053290156916083540283008687555841923744711885027095052896433660711579597196079152038604890313282528444803877944306172701922796921021454597005788536305542362224947478217197582928784445151505104672230094156481856352075747868009255005169952014420032659511091020390288822377535784589364552781405328845496921023465551778678848147996001714365873141397046329494147253354264855984228770406185792625439149845906573338129548695025175382611969477496035796246158808974278064662141687330751802124292301879875606914853625913473218212681809600123899320880701407520978367868964742643700374706663741721561455603214652053390502357461327908532155136635535978967426060463755825153196259496874200589745545960653423885461453611677924196198033216215180311520273008815047974861213789028654885202016559100178428328865361772351841117769803856108449902037364426095086157368450855335985246592670842112709246180166432568971287571247824984452171038514115192766094135160337502197756077560821168723837755556333865683880561637773426092107033466675234708231601883693250059415979966518151436482030909007734764892806395842760926653014861082713955312024780346572297479270236823740206204578185760240005345669070887796148081368267808793227459414444149905355110248172545409670879673971818348870267489833416062206931447794511097977589283598042138765880047124400704800569571861152555380893492715879449871528690799051922264081586768945729089539808333896836642893292711129047361580682163625779946219798021267607625684045069714974988711820227209064218353523441452466252789682089172624495477746655355982166781809073762783225414855036578947569895984197841943580702863116928431356955615119532750175925575325210056746499837538320928884384669461707412039586436351157029586276070703620295901400907079514962841175870182436640984510510299138807254170783520547653700523454535095335841948277076376350745528758751818242988567880540708386619839107560526157852914515392572882392513349668636864410239878603282839328387965700637993726423875678539931594764091740867855081849912466561096588914365979845181316022095394019986058503332523420609059765488552099271606897280403017136210012269259557753412759376494213088657974115808946070615030653268641461280552335809552108318156581176391261063306756171747834902192775509982632117628264936490681210216252526499985308366005456929073788713795070830859947516162031508299322987560558816721571744887910849678618735593325012732732510907181871523491272659449542214372537087519578876400961499227062093142226880207618064196771459955892840722244555826298671483310293061365186357576874574321064315854896027645045521795971508928856241688267234582378263594628507025905121172964570555209819849426337120627965242700431027665718221543883344380543589531434804269114205910974366005839065723158306986410508006525601305595065485435000396294158866172338085403797142864343315949545339809654279493492230148906561557979717294082290312102953979406558478899640624119785049994776447599520175030321028820376217951541314436065630343553939409302251860389563350148241433456006676395263188596048664453100927584910262117619487181868955855304688789567131832537343766882189505118110768935055751088959077223163976023260522096595432042127604711986224628374058344242672360122774028512839693230592045534926138452991400416212966519145576545342242042443750791299736602066328272620117285524789295989134088582702547931129915153967166194239438124605542852990040090075804704399648500987407005280685240477435976579641059633549447003950139319357771742446668392523944543191498964533218777873558034151683603880300618337971321258769160790307032642915050111435027288872812776735308677466376312374517266436359044710928904989428350800621053802920717637626827840246356092851598897217580641244529149323889201055930141276439214533889938278145679442103186928485610226649613809053904386863253708142621770255101484042341140728122864533344094416719261159092438014258881240879655575308724771519095331682737853188203451547374677653267188560616354183356579491191702832826490624373605470853741127137947665920772737274994955306920180612874375239299756186374332282635076807397453061251840996434712537847334819952009308779929605372152960376581998016682374233822126471907209660149219484218680479383482400618265737558174658490278810947751514542279846858834871421464551531456666243380862103866282630657461782556920468508986875592561944663519197649220765706723655046185865580311838151532525881955932544246350046112344784413322301068655636817781675179559517491465927963653957592998346195060113558310172508144487014379512534794844832781412890480844203458796950593142008897224932190711464742457534576961496597245545211919699018082085473525245681872358893666141782514535975932663937388811579726745150500205495933176440286174772803453044153912543823586321508020483863503628907554736690563324481559758182397336862317261517347805870321197690223355322547717484445387664106086259003191797057788537584533121610803745091767476276314909993306179892920728929225478872757519746388367290414277758034906204988717650989774320845975966779976404841533028336136284535517178872446623262986481109392481610564108120391672776559920921503395817835013069091758153012085048385476049779444440312563396752098663158273029329509390182728797632603404041235986019452063629973545980173453579602947382686283366413793978862404790104210538596401490053221890651552539497249844632025813379507810804844018531167503870660034273016826061295944569480234956410045721794108772142346122582085912453381077943200402310026002021714435251141200684687407725054370616851575479378665586444298211650473168974287012809269857459732253778103972583706923413696394275313220468318197846646703960872945889234216025578016495848123256796700213374252310534899774423918603774413042796879110053987488987852921345815874005335130545919854478436926634593948478642600474770528015246915340930712055911808936039267151985132303863488917314900394968523685458366415452356499278084068292712615888679258955569374521254189523810040744377749656370717324068354958488273607644207523864918945154303803085181482934153941007285202172020368985193028885415862343446526977956397146357311737366864644652408024732314533003123244222733943168810920772865498227956755509030672483142615006735511532119069582204088861614310950311853002519828664226702079687840528499224237776937709092640491355523070811951378355609502987053361605174832473680612806981237745447097252391700018993178454639459499793631371624638009209663271298402976773551005759238719636786926238189057594909283251196008650548908413840105212913386931676152236869017216574836255115858843280191369565994883003586236539687797826924981343258261873557154274467397185866594871209509820538250610391672421486727895930239597665546945246672956532156995725897026120131503300852195180990968060205432697121206336215839686225559101005790425143196366458082919670289110886027236866551534182300751030729100857341466970253547307928386946301225896690017393596283323116199129876177189595281023831949819539543911849676768227077420293087638101175210929167032871459945390469575971506867381010473334003840503199320768861333157548636191765758963375660326721450361011986689853867357309539881326319462251442258770777457079393745890471224983384527174492712804784424684791081963840773171789562569409632621645753337659059905532336650608054844727521773223134245144590791178680456867692382782514664373620374901924442947422693244597328681866953016757452035160952971378250086626663080605937730154266207067882357883565930467832979905871126715810875929906194756279525022976568365320214185393314230872692390107885162430675900846957683169296696570098068634556404137269832867262254843037603180098880325134735968110880777734387803071473686836204122693236710035656090197467736913432494643023959262688971450146948107820423535683624507737852822746550461665743412538795551136815895682518748112792917136932542375808920951360684535180704844612161829853633696056849374415145358451277143371465862725811680562022126110805990277654191415898926234360390383333644251509060619910272345733060393720587409383088220587235295793420636498446456398058612536794386897748201849685480505467956533339998845671258548786892196889105762885051306043624736521347787426571657301599663478143477584388952299467185538394205568224219043161924807722751175443085699120199440798897809716372709909953034450465346627115647639248275859246569049762680788680305090578345512433935193913606259938929944288309047871213520017284996042702915109863797497307901716257671592873873674668486830833460041424720184714123445846904152171442526754778274598058783402169946106894584416278170799389646595971376309172645230699680348755163459901366037940115877772615967066572088848377181614938788304938138231440172923726130849777625420650923664223152955471844107564394596385198033512884333948016252764320983233961845075834943539384716230420777012342030853004464110618989830456614572532984112094144921567696288506290869338265796611146452707584394141442051353478173806510167166785761864071283040336468102909870247026292239580279081050690841911220129623499100112087880509625912567204694904763572258666011768313081936096278524720240835379910528931185302570369153849421772561623412883685555958050639492202612610114286201764457431718121805038565046273800860625479247492484662678189042270891380873456979317189861748684307266596801981207507637687055262084261385773349095399004249793517846700128354955286075365363456738703253403722514797701325982118403926015127131964245844777100747589258606705424996961891201366980896829940576890928798604018750561079546628375428599624935756585817059626329919654808421590822631020300420878289303033216068648358890012416111024218218626588085692719418580458976148875867118465032872355970421886202074236960565182851366007897376174672684706650015253459016951531816918882953514897423980122308263828731877920246585528115191162949821850321506868788212738458202353752268749262164414777161965868149753150245798020919574098462133155609457169358759441447914552162353027431948747405473015949396898335932273814054637310110878302415835328220348477811274222252828172783835462905039202689905253327093782128538919517901775316596658758962577962255802828856979003997805064908547272798766709478418977631665076510105107804692750381257079467362543289073645004912362696183661780570678185380771508534339212543122135775967458120092057976240604322776187630912251931634263174581100014571466845366077070469383294951434147382272309385665765009756477770474141218952385711582602374530689271806689597326909630206951167463938334491142135782907518780285463968146290639298461802433963662634330449208561832542599672847784767849676688433857461931375986440902818284745704905995082763409266002409476652862818639993340667553109466429833510940059452295641508642378497702878522746516101514711549750047573300866609276108805771986374036692663779230648070856635071890243094520211965296533743425213220214068340938155317224900935129988283799873482114937437893805860086170989160125246899309220597293465086316419943813777222407367499672865238710690904740129911942962763851852666575153600062352388619810544857197928046814969782068124782512639230117245443864802356295894784820924599453939090988904505334046438567645305315121209966707234572830001286878973322826453710758023459323665371885050744270324318629351313534848756626800452792648910660805050145583288125042360184251174033948740189348991585290360728154581022365753611145149368814627095942774874654666147811089421100584009759362975150337063999468394766033839821957349866717517603152014967044211631018630511271011838831965940326981369383318572198513560747656802852038310125525701139210974323472455927243715392455216365224069888115191942989014752790643706683543819029243332108550536675391021536511939746384139739301472073502962709581472052218485031126150576104055097219305213262222522628493854082069361425729933281661854977509844214221682056760431203962315701853633256166795123688954202982908606592629052146255281905569865587149347920412988596603793824716961651356398252913345153553613631360967686345253314464286493605955709821881870653368548713007906858852616585265677907914110535239477413194258247678550160772718992112074781295270206998880410604124165118789740929085178526996771153427050588691760912756817001718616778844234305135222673912926865437299427978829868416682454634509756853668453687075995363415899316785577441068438845948980553433956460155345478770341250974363206764891152100163813797320946287629088934312193003561404521838952041869714873848928145538733863390391735000241978349685292790508269560793714477568845560260617951511318065912117878160207628739521995131988724646845071777732084013626959045088398805799420570142027207896239713231372100285393005000716346380164667060375917392119827280961310173360185485041469428517551813931385063183162326336971998300187262671253887314249003400172747333994742761510764681777024946765464460282171137523873287408827289352773536058629931897540368460495640310701667080234975033690130907591445173474541524221709400272613731866864139898124389698759728905404554855258923765083815837749037242133312142365008502434944941891463089934384523145320408960924002910230964625735063391530607039372086286970708332746729857613049233160098744944247802424439888346337360219836394994330486567045435641543368420940311577999530253087076332799746714513541501190285238566800161967104336534420629095450232857515010248726127558099856775009505420356903956734719799495500682587640193421847729699420425590912679267584531475494164805263779887781719234138829147043312154770897055956564035635187010787251413780424599628856355737760727221350587354533872612153097084365387054832270894237293041721306313517549233254431333888697604212459008383641264708218821875239589259914077740882741241893484506450101377038437717667048657876979282356308135537825878945634580622784803108757590770684461629579025616818466990610018609372281028736637532629225676375147100803337697982954529126905703403954445428282610283796110307796171554509112338813248144688391019113808467956043455557219873478746623518972790217649335463493685390432869927830646468190361209766406130484827530157104742549806789114616295188893817125557338425978670845768235982531786844574735664009608127072886838690348145356635068877189929058669670934495416390757442194710704764234950728374639458409294763893929296332637526365208808345721478195930334973160403894663633243092794503606777084393470433938761377620525468731155128270655873593741075442091598978630444003227962647890779143627089384189783880882755118334376725407031729678384103111273724413727876719037376667801423039346635688774389999482610738393019141824229810965351268206521612550260730218186461326294076275488048970609252824591392258199206997143413503352857837057207636091271916446264158146906403898595641073980598280740836097868334176648845573288183967544139818492405945748447154494887682039274377294964030486526761226008869927538195866357938902851983493348124803069798529423823745623899550615752365901774486883378887627661984318741850196356198447001488800042867405817376503020919938122077703570333816551078415740202581100366054077342501697878915649770442787942121490412887028575709336900679803840359797402995483029081203393660052358095307569097305827736696942333885957620724719973590132198251491364804820295965045612947342277137474150247176852642001036449346970553914206593221900031972417440949116980176737426254217972840961208790081170148807489805612891293580870291831724145596378024938412619306218059684115481741325794262961110918973921949122101037557846396443700652995561649442603613580871821174064161574063710326677755421574000280312153635407269164705471427244881349840283638684460434443536720107754692914021536134255667375547444265661872642972584399123430511212374617578360037369145812205077666613418164509970461438934168609422733889876657254732362817777811272929176525496975080107423006123274768279407559435397136505397919998598708114273456040083967675179479839399198218990733750264612068266734277215394869664554850841260825079752992430177417291171779627615353176472932592919398827115701942937311505174135238532756662220736035763929747801264386380124999237672600456142872544008667705439065479206365817172574660638661917702869532469378336918378973691376320022438834665713947861023305902099459987511741116132248917194897620420980154693897947148355780981395626508000777926615013580186751954770898783376368327210239879253722390489282355032397511794133376876265649189805095557301841617887304162906733449731207924999360626975839120774948354507484382640363882321698831832314722925226023963314357944909815693223238031279340894705239270805787309059672006891540356595696051639739158830282872022624214099036263823600783590530116077381529819782831723301512762940645149634130229699778927310744831708402004518158290438861623832759237351049010706561872574498741666387765611877371802917220294852645966331383576430928224581566923827150242379741892497203947972888841148202970375310804743342074208059089234401356229359337993049016927745499386911641714369613187640058723062299309318494871347620524036256671774542894105327423541846836109169798593289295564686367893757889049058494493811121935310434882767814823881979631814959065172602095332374210534973665483191232648870135999409721832482669015667194123805765941910128982896869526107798161750967583130947461025370194634596450720918438846720265274765889114957367629605947068638795662546750935227090013439946865427683492122101304660370124783921692325143536738936243218979595367002285116595931953203442204946512225227140702804063802099375243138635932584046356488229561332215911420778982146026964545443759753781795350609539330486898604522818655363150725037304708639877997150933990954636390114177620092196374260741452953833503390433627079364340849815326178783621186107288207985333305224442079399280003390754481937946556496649667007825225802959598273308270849009299406984882565220798015172657869293943927288257922963990990214304213198980587312614323265932616658425443823011061831379555825980870109301066668077657952208121840391282797130820702934584848015728713027590586461937226030980904741502683393717814793515527659126810737101832499083384947173344972319149181560689156409008864282438568352694869353222865562914003603854438722625466714140287740321727219612730026368092307185208510052082942013215947688270327592734728126626894071667922354287784023252862176651681557735006377443986617857427819207174265112745099490120292656732527788214032280941568611616452505197275824987159623256958276396609256208261270355522429676046703677119771208700638241574600311069557293229291746332016786108826520687985221399236734762026478730162193613384928088857332154811171172279846369253745632304831785369947315654899594096842090259762397402272529423467796679552158835828747035210095061532225155631411700707449242995323718737817547181618272455384932283157996270845379814242304231546106388380254390208360226161089991022334510061842262175852616567827662999716127052925517481016032876094594135650928369111745166356971001098584288700875908490943438673829614592994864133369251374645727309835715618470845598271873027038926573600943731543189719920599424754185742482656343401982420453043159335587510160769380038279928901511417080295726116879102918139672019485602753232578378631981483186933195473737575044847380705384197665398083975109695165527329225722242845275200063677891520146563799049478667206472818293091497198241715514195850993092975446318790760361882257542422052110172751267104008017081835234116089020275432003195669744612879588401617581578067122281753299736852771781566158374236099558146572855867043609532538149895674608970019750720271369387507619062297974342918752780301981258653516585575192484898284691265709375684428721858563767145154056596509660565199454944602624961853446491714427611396102908528498301577437243069154739154015011320994756191748277626536547226963441334540154805025169958923812630345310014144296221546653495590032974393882028303988411148343888363646625931249735014673458630228445582518697113235393509123986294100562876982951725111182947505645873008777176759769896436725676257717353611552400669372882647674113981387001958504357125203666929829140156760411836630810965525478000064727405065378076488810197127025040134381645073149423271588597423830835416615722623099629777048744865202252824149494540386110918913689993430732185918658821954270555116860765325581642178032834546705195012204657859860939421295172270036223027512797887199115722615875406933207055334666983189533058001925199034057368037067692277021127615223406493864794739047217102086072553383437718793815748206226581067432803823945482603802185577590128771685412655850808041405244786691779270439015557483320494127251433057008665594478860258677406889922919280139495608592677569158690335735349863626338992216947164679809130249665890636061910664795062098609912933670461981026658595317221756135590845030633623255038596905926050835844047646388676504745912968569407662622394525041781402821802840310910569427638690325580678627556867193154596285962986223495508539752841269053713524475560479315037882120698907823562813430257568471318363386881829275603809905868498221109691041754766302192986356742467909075225677980858073522722644888941947380142407285246682919369479075600988382268508549879033641196163144336988337240997350584307875275000751134137105146366144837490509765079264360777416582946130029783411383842750179460498781598492515613429559944743008753295500628404964377454697029650166265620688465701808159711336819968477537085450097907871707972620870251938120538521749468439039747535832370909513903537300016537681856244516708005718423907339821901585492842564344373602440819998637699284188622782376210925678423463237712787923417583359157609347635750229404396764150342320240181173962417724089059026500007661293388123966124238990176274370879675608822781102808882352766453902663431650238612741411623018399738128890636232378920986388175759349680036870366436264689526471859895976179992822955217620822074279330117075503618467556973984333538412870302629355551577837624769883832010173318183092437614993298297546409607249313832856102558068145834906604195988431582085113996808309633383729412790066397881653071067157855084826620870447367327507346796470655121815235616461593948466275680356975456970875112596969141223229613475206721266032588890858416647618035639335880665279632058452518854351426870746498096868926707458752674496045896902949553649991838497224617290721596561089608334023615053190840188336312211762958642316043910130049987789988860914041348227102200449002745203085424204293684267305370518408026180683224681687606269218984646477942440087669799557026820684017466834071434299166516101139223792212323740199049903783522368371077222960949148765461217244194872562489439836837337202823273857894608126783108975935928889441899973746386454244969684446289723405079807982609599003601947778707176725194719972968001845694378218800065936189429463765345362158154334740376052495904115095907707690522939029894542132656562129992281799591382972501456198448678926542416870427800277250390652801159311273964310822716327945622317048741470710568266282615682363114129345454909743298434440611985898307182466755206405159067358561958728387714560329175910598552889280323670226641003780842224943243645660265265840860996081054954624057540534839044758042070152153167006921639769630418376931628339935901702295619548711168247213499554724131288867595802391113072477176261867744050958134007558821205247042493781310940984831139013547031629488931373722527653023538534825285514000305384372601530279099380341413157647265612611962630035015003898820054792479478159543393283057642340772861956404590532686056302306048750932991811998861668329656574065755459847664105064162762314671069211734253869051328143206111909740860451686510871327429875789338011626528229997032488190202709047776114311047565582603131238072368126647513202830153618768490044646509530084934714133636041259212298428636714676940744349848637530048473637466906442770499154217404693709097991222832779800164933812582915742279330724598966999710657022661712535234632478342023757198682377097148200372437822846788905112132411268654240003068461124063601679330430514993792767410203959090291412102811196817157319371256350866242571799345177112975415892953758653953444864624033305262289496113764658040747842377402048863960103279801646613849685001310449827317745908542613831995796192384315629920884628981304053573946351114249267966226651279886421261890406787708869914345728583853083195650048081020984105536947493624271785808738717504004402091475710961899133335820864243596564380321321106003880734080659825620435665397467733639138970759285261086433836625591619846033456926887463208452341582320601562041934987844424140137421669544525091979783186267913087634512216489953878744345408440486396262173097460769400377305887103992377827487807857226600873425719683815606917442402167305111352091887051852537253121710373971080631622806841832803025500711920553927881062017649306131012177457619537743717212522142042366448809558771848481365058739020723941879836385724942270145536781435880489055485231958851937721463323160040011344454532544541137263470621809758780889774386442178917566114074154642261340361672242409373406112435460124702722565838910000977837745989503954149276034715578357540692740283348373116378349258437730036498685875510405215063588299162572320750964750336089183356339481556628644606080787711200142467403585771858700461825595003242731900456588328542557043084249869622347868988850505332895509659800827115897153686222112668882534503665200397976020281820780765418695587423720901127142767345042889353943307173895110811254809672564671024052710798669386853209334793814920219867027701454464691618900374424572709722411499347974694707465790513756887764912736458314645275089268680364247948325210747803584951933003047335340261661892317747557676645777610552769104786062685346813271113160938740406169309836108288488703579409209076724566722814542458462008246822941828668216398666608473465708388879738011191748063304098663454718087517855467430131425528842602419733347643164788071565422773804455641800254230815771913776844224176846801767501503815967139764937244033345792042118152188487030654534027048344633575846187014452194581814318627506541389127676158952047706034256556328306075477887364189598735670493207527801161208586935585586295741766381593782868801010084960119164434127924158349736515954262136209871343505113577785328670977078448956206048900415856671862349287109518727400412607379026495494571914767462973628140289767553631120166785280331113748182870803963418259569583671757357485099466746455265471349393145245769951255959470288575818126492214657649369714450835393425931768700162035894203293536841806000619388511094455365720898688809450457417647710251013507504161403442584812777550773045705254963032817879845371937704130790883579455950681127358483206236558246937874737568023927313635931771791715131573528604298531597057526811152780941373519658305857676786868985561579808581568212374844870476491575245582538874515089697936321211666169340877684809128906165257757002656760241470625412189980370542224575697323112471269620254949749659900112100033267769603585837762974906457815582119096045356001311438776865624947106701105803411474970177011551422337353631434754625371720317244800109216898182396513990665357018804542823257257289530071619296761687882325690975290765258936859932217767468251894526427851861058752002960424334007692948370009812815715471597951127227998428628232705495630178053616312342330292111480082631910582028498699476568128732586031251467873709909579179766857922673176815684938635852951634455454740597389385474105398288564839998952913071528695700495569290076217314147341949817704715568466570190010572323562272807965180626042702669160343873961356719674631033033422464102018319972408201828774492753626440936426275121812533028408493280194148768583671900919922082600243941251179432034102172242977179236930122005457636025131245450458559035722534847608321146422998106287825986294563878048771304679326937495794071453960189619085109826592513064047261179260587319829709145862002172561605338182415659160810534514538125669659789553402435888415087237076740813035708273558563220896999296976124220061601000058400122613086739636499722266200417574009823760422003327413977713317988213135967194947309914172576172117805211247143231052864705072568405930217856989838509735120409000957736362508817160502510186734795345013226864047429421299591737856863362219456509413602329791331050162209002541993894558665188854682601946286152087028194294091878987249077551271014693570029765835568445365680240984679972969635180384775728941987617780592248463203506402294525914847072671516581240989526860361246734880815211696504773248056773259384655611067481179529951124640033001375957427184479563566805412625287538116079568911344481105706564002744353801589053089181211438672036310000940735670509526636428976564007256097053375923346983327729980330784024838259813128968142380510073829036384405519191583899880199545683923845861835943173215887431448527722765635084488601191954993725388550704182966615773260709005166655322619263548085630086436663789458045368150677896793921737075510882307828319747732858801881106461393365176423794754277083394829083817003581751255207384230925974907007638195981852149132795993995444371087984233942316576184953171314925620125490850200264654090986474097643643867764336449667269026222546883515394257538680537678931596104059360674270837265047942374434914983104809227106355864213996145526190930831965657240454456525293647162023209197712761631716327258185644787605029029223695962936713737393332139619471131698580481028987544446219325132662274936455935915449031096385460070455930021130879465197509098611043789343621138685643027393297664520877227951031960680945409467443348549244269592233950902999723161292511787114601352021804982668616228173729261786935030022433426131189172766734746503444783859374146014409649451315425189011629294005915113036126085615154402729697464412471156065380509370924347878665825906759488762778988057276155466860518405764122566089091806740923017379151536648929720096619566734392793069269629614473429988789757057745314026240524141834283873134921650108427602398538866888726793843387733774572235716337511340858747756062144692807714393934535480548233062314638770525745427404730456239505188523301153475062330009102382864543051091990474652326860124647464570380478692974156028358692247889204453689367242177663324554742711320200567606027131758658357897035511761171742054951868193031615662577334685492498264395505886844972232446105424310761480255659321609042570611699066316452695567877343928698276997919908946997581173643057809958340302320691088512794497246299761398367150026822146864065965299798498337575478793070683989121421661197998085235719261441830991767921892661823448841615376675696446859821364919506157016193229803126221380655499644194493898899661061813617773987899093222596429336001703843284171952907874299038024495833753640415775590578782052328086372150692638434107076766326619335956503159316477412610797673791935394542885627520653985320512412026580436502008221566301013810705171344990548238883309856309950312900212796001106305170942535506209040109699370429385965689902807844130721386812038993277503360072236361208115910065090730359698239559175767593604634681806695317170449053720586626583651471769903066743279926989884301378234345011566547088549851675713759241399083776266983667768757408953766007411629453992224704182958457631069743317759731587420441247021937682124045805320701612432123995983275204315981290264663689042834638723453888359505678394201803395819660078075605710593132370529062516426607569607217693819000825922820360243141447985496218414907001645797490952857449724252741761135704291190214626769708809782649003273867087951267712119485857609965852448442849547384495695928075961593519070312683609626668574775491242632199886672430199488908784537551828147378740703838565885482507203846291694501174006447935152998037363669768315803445218544890410157036160987671572189367117313396375264555574159987768922233344580937748306236313035830764976615513491717824306448580251484580860266555825033986405120319474553461781697870378599670002934544791182149453366054787234740096552837133797450307889416659068731519614238054106030852357414869648370083743792771502959385864584371583225488698611727937682067143583394837293674067739223791353296101280761418960683731687985609820193299667928295004784087920809382125680079857181350103466255638773477803909076526140141854326376571111772220978156522359740202596792327241118956023817227256658924330433939588971480355464642331669898333835948986238319834458802274656962002287102671544142703095507509923803527010119806747454650176914214067261307621008655263343313312578845528457331372555484356195011890063056156674789139290187583289680825998954822573601970370049833146270744568133775735469485401486512721723874325208272367092633586637497983773046066177628228330025991383215373266549603242434529026019365545338268545536311249664593858903792392381715300748604743945717341625605554925742191328001238926549610340505068677826905338444022787961738576518456557038125145402002188524856746359898601428857830113401018737896844411401012546517275133600360049745106197066423873766371916479741606946337786055575199567527442432717849317497658831082887514090967545608693745134904906994274316162535472813016715926996623069146453546280385970431494073848374612538867396719927105723074908891538447725093980171654285961407890764243155044253944253127009044897088585339811637856083276854986317354644241036768071748248619211482028365750147439895896014827002414898635014300100731386027327988614939699210602417331925419852427913170355183417550103117475984953892545160101969348485940740063362417489824005597662776492902453125980865864203167773720984448021483888471641556222286641713733752001933728440178495997200458459256030287299103210587146852934241796269522371933229486590687032095398427015055953311280975582892624597217333714193439862227037058880141026959849528191024974297109406808861748049032350555088180618303805778503133236543522234091268615639568182104414541875855747978012398984577467273883357679710890550050374381526888779773502318483256179427782304984996966904881785804849353087998457732768292037963842049335111215325346683467589229436313846824810514640368882708117407046319466752357650354291318381582928673154488236016963449097724213228528635912420336875289258876942624002573008652188234200804984522607258680576960856083435220672280990978658815854632854825137568796896861643563171935368252907321222569208696057459101608615718214368284797731093253518180386121771639103377051439580637780363202415338593800200515623162915377934646628247179778956894604937913476961946742090037195848618493297511886175671067280208337286207909385102120766044600538908395883306039533398082346575970957766805261490338799385203218382010233453949048206151083929209155009260696196617410173304270440925838754414004570653541339977861848377118084248590631996676623775454511238749498985736188588911914209413522434901181927214563826833737215317589206715320971969143967639826656793831167496127616917935258041672460282201108525124302455991927681291933973471687516406591832270155056309821430775268295635820710686411891046036822035229189424382391463946448399676253177014344741299064197047876987170481138863523917346184761844094751143409789998222001023551229101593112823139540482189240149430084076692929968695078535736851271220367629231169651876973650221072993244497631897854793406300930930132691606034168036022562704347324890342126855125099352622515254621974629370890542363875898830665133097731249721779746169967979278925377045935831367158470734864731633956970113617958711843827042166032621111882372848636721130128233813117990644587683736241507534517135803216196267160680412741341236334145514083114194049358394700375085670847108999928019572205446315826285382675599793895822525820693309403517190630765689215750788687552611307059106231361491767385170279901872570776342618632421657737913981167139105332531486365162819234147875886257198276919710994297193428574806217547658470711685990870490097635417444021978693740429392432859653727464101217471634028865110402515741818247484703191750709337181346498673429593400470252708102109616943051913422075752260810759166828060889214584285860431386253330758067965240954762498126614522158389725359064724405245368486822773451188356413727940494986994577350792843583462343857720284240976595563378266014986258462278796692848561323428376580052033136338536606496596746556831670760882687795656381858306346460115786808282756050560028150189231504141241176893786471697031411063528595556092155994177787714221006941649335585297044489663621942298705090761219879728848674673552713489209676817107589208584371491373287123850791118214731813389093193589733919424752460730827544517918499415513321487554618330235309915912304965916550192805260992251262122402682240448255598033546699769735284868732664280036715451925027280768659458372751266232708370732978587964001274293779116048945367660839963876894195860571338674013015217328522859237074514978794070473261767722325681718337965430107144564964933120633118123096321158494034329307413875235505261248946695303171677731750498967967791283126483141112868838444048175145949857384361471348345432150217357458435870224969293932806456132251417767079316547331643255173632854383427433556762370098829021549903919605013761263220773766859306308119556687593501437530407002190669633877003956603914500472184695284245322538193238211776106475055159052500510409069740381695763951442494729550024754606730894614769438040771388716606601587642501169099877591750374795545570280716487794857805993308512173913756085677887439511622654390985564184663889955184122436382944522015596371013047515367154679122942421959684721642242468603561557657663794045939689545656517618026158954413670553045273997226565965783652090680689865145303981057125262356416739382109120188265749729136203801188389024485633475919666475176649348400022322714202195038763086330349249783388665339486438128730900219517817040823937772726353616524391394283258608636671156490695631649484993983420859028632747926335969577552812419119569537260919738778145353584637788245611457757103588262064345224288886336593053941758951605582760062687748142386038688503402510570320853004271213703655563810802141541012160579448585168080536334182707273672890806085889874898360544054964308384035671725132977454204814123726463505862031163366701648508267746378207082985797858110754421554293694905514121163593234165341689091338034195383683455798787019372460497382131537946956643503940107861653876059594615322146547795669682948779824967035664896782199584782390440760929516535599182876647970249939347236642330697149557236438251339307701480916657674743338566662914617032283570203099855530890956542553073385610743299200812800792558374488751851236236102128093126975130835664652174266981541592755596474754568186415846293514005942197682196142848702374954052282108552611551275700592631060313948042862439248907707956396981732896336741216374091316720492101348215869780015625679066342023098620794551723688637904402818907728568515279648207686366623714778862120134358112493889461299924995720948033943223184333397472449667990171165480574483795749036696595997680957111076807450736750522177616799565714486240863409314977338917292191727290418757999824956377114235616983582861721245376869802373585721187713099852037884825831545966454184327687142518285227887100037102000311132246428219307916499566009400107651845339424478817017982465271818896926596610297950810209590248027110294887043315591706567932222047903295913651513115765398655663305598183342731869313726911936447754768815058908810498317076529517862556355829754987775322114570617954067696223585759630855687955540993591649526629917611179287053291581029886471720472269156469018374714391551178889295354605765177118428988607479354428925025354236685152165892710107446462919011739761029213365257492043305104250431254645958873805735473049154983250210176325649816708419131854980817339942554089229466146293310716236205942832363628858475647229373690806504252830585518696945813913259877869815173482228338188226884489149875439904764529921262768115207373041433866060604044790031674890646809410559688355824837319976956557973604205062248425706915480615692433825421125345128536310679168169409385103206875271362890569439787822848269376189601891078544920882094279389000311099602089689407569559553580370464896301129357666529229600891193971564119056564130015301057828211419734017491379844785800822810659622045823975259643165836565795106200250229807791364115471336487285483893541864295136500125605408052476268369298988953361492536755727871914288633384826632426843772596818490735172329162712208725063189880567154624311549799253540098100259481350666863392784504283225887819431225003643820549441083925762090738094713504458468563924153635749369089174815866133747489148625151666185245536126057380191203759312733592878654540731437459535234503452943507887634726488280646871405320873738391117830000585317102525671104091982121156038337211478003175307020296056708926745930612111465444366532664985021530887589486864505710458574219032923411927662769864234312582964664044270260743473940280619969852255828121775076498294864416507885633682092268813573197400884757219221627635733916549982848929913951448213372631519217225746316749555090267181754980144291594861883583885585983210225144956478235015318861309283730103558254147852301476747706566209805613379400786196873608329583205629825457561252721133353224614636962004733831341407733644948045375694015270941091184165825823714361542097747566658416771884718794774676778903124533888996582942816698174223519011776748641293951600685504792256589544594822876902904062862412559243454394314848278152149417188461621983251383234157439037940508329466640911804099862501489734975641300041011829059746331584305257162854977127675906409487609444042732771304144066193163266191545072784387370139228441330094616845835591754752027159712017579481596948681503960267880651732949567982684397348021752485821807920061758902569779110219404678391930644165650122793821156041432316433470247978710359502328285468483057922315625425337996647354366198403940888200086984866790235319163015459102617071977974424887585822679933353318591167524352962651261068330038691699370119326399190580855744164775441866851469654988593089312652677495936755971265504050775818578333374508740755439295062446885168295895433317442922924730759928382997310442361497213338771429421778414438167997973691204428969820896629443015313638571186532574348182150226805098767835874860748394909628938055145939895485750568897063781318119988980028913873292958702294491541842256374459520759681666843489363589016526773723028372984976245270282351088986415062519980985460013694432769914906566452718963767534736793518279736128855556019328194825729322012564584352214441311405203115775470328901512450997602148603238511482233959070975006918862513285145178232465729903116957178874343063643595305322800948577893439288763397587508895091728029522455946662586280849407299086020250118097406854429570617185767368014378842850267516270077887270373638186694283370284547511462368807678507953238291386551683408594042170391043637514008396242821470065193608665932531683954387960909073595420701207102033201884804445143632858640794471635279250578918679785815482394285638343194684361075594868142895154467676645382400207915005475424062906600592734718308647003794360954288941738813952918614650423675499471503198384047196268577763202212225506810134553105763752499511246035475476164844387291056842326739568442178193766025203694991903833316655621666915323922970672238461830946987078201655673658379481346640156702209407035989955611306642701296285620737465518618914010421302708939607790124474357890567297552794566795761523628112748799441310068476672693072370660647482834260294296767295865852978109859197756870131400950175738120701484735666724641924958553184212638013525941213441877443898767771281095564843064193089273052399826423689181357072615849394486761823217342085247874246620685590490428906492618379124450066356327076572530822096940023174971108087433263143301915544711092261520712989515649042562537260780235191353567427117937669502466807197742318408501677127038902322685624975928152704595496322229210964181953244512728888368724877897712676807375235333140094892557392166647030855005819800207745415455034795885604448824973684379204653956169017487984142804737945838000980376324750375844633230767717397437429396058041179768780377516423201062596028142200917626722273850022987678842996371635281077616059420622875926647333178506707131783442536522205022523987155159397783354105781125029237730345541985133783476568708451673153348429029187189803134474795980228579474892356330402139055339950954853406126511403167165552700382908113787616520126603123188737371557255382775578682014692742984572911245223229621191354963843860555034010575058839001431683977013992572144207144937447916380504319382280108530784143492287624703823309751212963861832522022052546714620092735288664287421777957134620042104631903268472807337539582997022539244104042122801669236654868760671150380432722222905391156886898348856828334913775159713256970026527031614406115456477673712610904825098023155108072401286777107990975414132079345712779887264229788329634446750314338820462837487462145527915141205539701825297663751712743550225746956807395442090617785145353018490672179197478841000253626996427187702184375199565088738517568941414216211407323600625045740034645614697130550742815829252649352003776591814906341170403575516455593559905296795631709378993103431835006703795501648570186764096427706979078139041441361128062690059550022069085430933542659165769416461448064342936037465269905207228223866430763900067528990670424776558412861371638751912814631668016936888353064448000722223104969992692650814316901491825721597742024577368706781353411721035611535711552739294889009873268540715661322313832458836359537959638190095376497052141442284801263972203357400812956333223836178923783065645287055826194031888827597080488245568798865972130530995162689547132158518845670417229106255233553861558772988774676341475358855614499606298946954176351891668315921383133705434101198115689513451933517671342690151605330262446008424331519907509931088430971499256268999006825953623067339512806084900219619331399243132867877860364739392226801189957164005869110944980786329285179323695158277516156673963232416062713039780160514367917962438217627437491948500911485725569657025867816558405432623822219962123211421087606890125751395583026121850914454004505593924719779658240966009878526564271749888908682093684501560171613048876147421785701020933904382604429043216525090247509337621546559257324736327342810510410458566033747086673604583829421511214250780451880921299223487673898425825241895089926586367937380607487410476542993379505515278635118032836578121532667644608499241607299888781663161515962668280882200525075118739663277367788987781751449470134484380943612943143576788817934748140745628199056679845383512021469475967617830137646045122758953924578449085430093020262411251820108055113566026945215842828097576279459186644974453131916684052608803007993983321083711038332945348925148108082511742528678411530234211868284948393683714576967483291977691495244535723790233095883628715788069556922224655451440803962049973399949682005933253679432101020223462819717615116727478549394979540062748023497801929231274383159347180578373130193279267757701805877501700799033621053914175029536644788206149461103468613982606156727589133613841370678095244675809518842343977476342429594286675978341483466981022738439043983513325829769506853401448752779308449104424164277019513964554808596006379911470609535656379995145134948375285510873956194812550426672226133028415869163581195979554399332383107155572272282029624960308516337932484583235584714269491761327315406498708201250003039662429684343361687650344955161961434671888778031036891843888659532775194675055072545436048462759786059680910189688073865857541431774117700538848833826313474709141951207786279977749385114719142490571083655284809231669492118273496430592212476016971602481834807507624854473552719952529199839746425185593976009855837579250931326440111013577066537017355054386337867050679874761045937332054485944241464849321707131518143143797035225326713695795078625598119737378794260375049639415564365671282240451849351432418204713830175318406783398660292770871379750135581483021197081919854251114365513504452058872880710201469090277149644606863275245524372579291102591228850512446000877419783299164452884238405743800998037749730292278082391727350192870651662381968796768153865429688246233350951412823058621594166712190789324143874307922368964054154586598591289642062052237227155134104337001479896719014532166686409423136025447818350379354971882534462524688989230328252580512346131176875835493663767676655454521585913825013019065646899976292036514213891725337853140001829801237440041951458175294148597908004924224515603025770013873237420807910369073067684703037687428202917785300766336739338718128857999307533499365013197328690449703765165450868841906637941942364385618757474061403611741094354538440183588480399803145976582619410852678644098906181085889952867872903593692071379837474711957446292524639414863071552250086796759937831542074503804994853126547526622072344585933532667176008670775308721094577823579560860533337105483443499534703682681827774977696237082773569083260711742157323619499507668729367573575975976678420798616054940519902710784197407496434001177183899451077341548676125245207230017558928353818205314006058442314616263360585684871419682477757388647211893324707568680628900995508501038416848441964709637741896278743218039881578287348586234540295697271881196125838586637653610432948630452661513351086325261802541308873422086213068226905346440956744056873170827462343863815357710136264063656768456248101810284078492935615512519251275260479281420597695513599893774401849124173451116981984884810138069195449196374246824706305067383845180643137560914647916033209410134749897961071519765480437459764354447967024062888189632115469814966886223183772586006971171345398753147428690744657604092790256944681096625741593352991306850518287906893293338482465173569265016994267937055518683525244091502438744857478488521827756390313839441835396800534584169046043070188497880806088097943125823629627126030379402894382934967104875945622308126672431434181343212534146584547633172592311671195663378468768439532063394985920411807769018764946192461329178348745375638914987699650455190868776683268245557611654718833261383651979060673981556653386393079794060544276854756005685550407658128627379106233823049622607990081104258309764593156693072904203470635431775398199189333385102530745013327592254105393993862412966709212439885317271984074735121586614399263431553361829824309599692229942060128689233631674911221203896071613832619157775526447758250211032883932007045285159005237385309675802010757889879133556214683091392443949195529829153290222265555280702226685888000498595202492787260663869821050614732836107549444847567560484768173629908078170085546381052267210564802826029249082064026240649664103796113221377095598088280798827632603027980840532701772649088133765503463860918831723430299932005962398112889542895952989966885655056362353912274586552839824786340627858933289620668054802369573822091380354408632851507612661791719198217541159147764854601949248365722392939893889663744448498343180302174923362942249092258735171841013138714308106636625284093588149409653828198326036680302997044068662039229465721691960455679341905071117514781195788323366842250258825501493032423626586650573603262632894045662123493813455316772084428433409058339142905491512603385762558335647153518694386317637218554011599686249407256624126509301999719981991584867879044005961640316823429595846878585168720748798659355078570988012605622743011398837653327503189284520180936169467816724603589469072708596586362377828341282249573670882731140267932852227233039911454511510651726834570031390558550230028365384871162612841660797525234554098892391489969153831353325313291946463211133498838089190009433613658928814507462182145061688574934049448394089039462269538885730510448300564132902170110470066038836802891781250223151068422601559120144749203124624922510920541632898623226136550222452952819019814212115268404721434296596558879751331384555093663623183700315157524414769175009590762531428175178498490700864729698372183547539531464992609926246120166225824268541090775695592495911663165240931391533715607202034204870213786279986907183255594431329263801927314507779290325450649158596286752801562423653728509201573226391288884135674262283027849270087873589097601575056237097729305052898976837212423629644799555551416944180630012597015335977025377606850163348174560069841934356631942864003077162401091887266343138289288716734555003077332379937646972646971412228038400731340194586221001666406713120609135800993112269050095086927008737802842559600733359465684845039425476007673521909465337829794541658125803016541333067585091785246198015240463754950141767122792394229796606130170736223443258257754267023827030467643929442058887325911544159989443114109970696470297063329539615758040005284459218939875730972634817368069079847303653400809527944243859955338895992930961208250864513227750681773414438977982257784558805612077821144364223826296235116959796460959396884516271967870466073433741835299649309643727379645800498593522391027703862666860834039601955564114349511194157596389881447021131194290587396441400138144208360632500402196767935786638623278021424813925287356145231017522989231566177467337233896813989987125651886982252495515867749836024342392929395169244449208413993630227714120150399822040559961538032748812142672237406618171889587531771061853742687756354380645721842458962335065980198995079419951782226128955591560891464536020009698317102355556606936354501359511137083122666093837131666175524008156701024800047856217839563450375504863098714500987694288680711415235655964133046505585630110060346489787185486551238762448795542219716394923878354998390054575575840962093636455804688011994051929127793893105039394796301370548809186100436558596010310089822105229552348253408067757167286938655583503218717993316409481583084213181368721030806902761528016338446306600427533980397920583519109789301260734125729939927138152066034945027705806829659406122147403228335526871675480953067175318534281671479600306217258068936823230296673629036280336770542298580364214793572514388723496673965399825306875021922884679269002044148348291126355311731111605762960413248590556819853479643199458555571439850616656315485707421879989113145347566166737382271982196528484609336623940022181890987425952180512023736620286957878686791718231357375357329398109744969524519445609782981206251361760887943540833722475960415255922404454507429129755233330359367995465697682599323172615702999363170078608271745197424833809225056537080420802927723658844866426750495413729132599541708280996908992143919607659860118814174450246080697214928289117464808695357613016911514803761625054510374237323590536108790084182236294295533686917973371763487769923088196217201012607770213816074794051739856848832361032525812792809207806700378597145506723242458369203254900705305558677732736481181265181804529266649563746494163982127316358813255702618377931353621120437653884761563870629729812448406901438355883709495062495933588644850222398281509661437545726433750349175512222352569064362873146358791426605333567253779307382156468368967513416991426592720769371467159279235457513985802614140886755998494494401675132517560932587405765174692499935316782559602668105412687424299311641213012436313587534198187141565477009071419698498366495364602053120774843017260893623429698562383872600771389814734475274718974350686078718004467194524839901456006459761951309228547601238591926414294530798215368432363229684523025804491529080974642394459569349391571749608064914714985830510379941525654605009183777360910397128901469256093514942766118802150739165331652062275312773840834135994817193934158754318452019850455348609765370150178031158183601041873065712680585835529115009725474591004713767335932898658626053060075608216356603790476332143437773922718043768255249534334144033379119206983138972654780935624393207892366591501545905974093526491702676659037321971467018451494298155767385759890401109308586690995362417539478460540402706663503204710998779860070113345896191013555912605735306852187043814477548449670503729296150407322379097024025963335527235796092944207958239333840362781887139208967579275563886794921700232052601666094154339094571005469568850815825693622115229684574710363238940234965925272363739467085296274106802047293626384505398047753401624747436379697663232357142847591503526541373217503855843402574191555761967103959126985853579427998090897735056482529568246122365201609440152185639186306662329101980584296373357659348994653239755713152587251189323324475971487055601922873959672779439893859289173483993790644964765304985927832176771653407266804363373347038316118710439561924277776184223059553496897586718508173599843868287976740948080235749125086049134351570543198806245812899408312029758757617219411578678969548362166469614257778512537014387001767851407071297250487512684918428234278574844413391348966826172403023222068107946191846446079631335294582426257676487553323834560692044938611444600501541358888955591301401507632867454804909959919410635511634815677120872396873082635725107368380492561028469510468023246727276751227322702773028259994602840547593151184398219300312485686947718175593451480886930711481155646245326949685201780225128739421990855465150817702740059452360643749431126656198730688090277050997788676913588336847449382076128210041565958282007612810420024173362537041194468789778805676336731024796361573195824085225349875043056118027492109242641895948482180581252662053519387472587365644120429520010170922539393416324526441136252538174838674877806184199264288398782611831253961919542725540520195731561007846349158614583502685408713951178880129547884310358307410846363402458475263165989682188009320903976329231539880657707605004322779340236111594696220058588672132399604421212788539059987723085791139497675755216186507885583382009994039923292692354802995792101448102872108755191011390669761736157639754566639951375106915338204902194519595993750351170576539164706379821771684761219761480374430249803295090053183833687440358928600674590791378666075503024695766516610231481011642876316272135607210306024448113164443512804023454577419420748754774114213429967049537319110699916429617684331194535031362000531168002460535609678289976920387093757992349007386619261556044921014966375278485276269739592840197039216947320883449725438639241531061950443889723740680496648789686893993078386966411067382049074357998920288338432776317270377863080208631487329676254877307637447835937581314312900823215536661687217005601414921394449705351701315856072396602757306991820646506453510613980304231722592507403790193763549091177350610634681562632447283691902980925688123041509609914927083631375571695180826759077024340001667248847535389137108805069075387175342454798826451733008549002718221812991690138893963060419904092976541648178093630647065523957740904507660137627039758118993428696669361232082096854835732732643122808859705297105556823787105460726783436427865234867868580098163329297075988830892797468518402270718976804843818290529789325844277339039660800016954292840614722205326587502420064790035690862677643842571692955506736561727968841605839519263047580489658131725149427520782778281099220401173009902705417496750139082634809879469698299756487056617683518317890575742838078246841944226812962717945844575541863297433927812000045578194844693626380074895706558587386604822844114079008050633314317068232572476375479084131633780764608093330055882202142879429635097996956631161946286233176002356890815538658032132216577288853382288936993873749343068327191484097682137344360519673335539928324504023697964893957322344908008315971510841441320091082937247192516071338708770601381940768357500974310582559432938048967416276814002674564770753331620916237593793911359993952957828377692758310615648896126298733422522170495234344710291377280801074681153154452185004184310544522951087653386197809587979961279842090561119870277398745261064051829749251371154524974102082969597398629148941201333543355863392995905657782647581201112384978338188539090591499092168579406819425375774685256326846607733379411444750464294747520007966308833754740958464250885296068738027803597503933074190859562913589810795425888076091356566896025909730872029487875392793138015637768568562046064297876444994450570658254103866424771971333534896591266318475422493544648627731132735143634188913270027864918463129929149314343982699943755136930338464608154487942362587054761805925843287760538570514882516189133353373993197218322089994763842154258046099730613550505939967936428248038973720412812997750852629235053925049038187061733276985406031858745439706917641349268882056952966159588577438589679645505719515459682806720950559126172276087233027659138238404686973373011390119492213227051142486149515980631609842965704448632090525708102691765114559768531444240881522207286197219862037978678687823909589959975067838833481873276264977546926096519651580088921829641763965905796772000125778073194514483325006359879244189645236127876587614187206886614461900283386515496058838343425986572347965025231734014416518458559883350003864597206017829641047177796407598001966718947202182259267742572417849678016636055828621518001753766884989912350261075008057000169143933941619500127573838610479585404289923301551177860163820107495443780208553602713857717173362266938959132069485752905126537760435186210553917913323472250046503179322414098389889422554707458503631319454312267714148017042871824286787429759544457058189239029266761733974329498149212046110158560632466350770158333521713755483843307797501419996454232241496867293983440028793010251691307057886242127668054169882432973943717570620189881823820166513851591730026034243460657888151672218562891341910528131655615503082257320226530769971253684245231323188464593640184002535872555660849737881163398310485422544380754692708467324534390077645079172366210823325830660014709387700780948568254280235161933303694392123329253931237785404860824053447596966907407861327183675629140615426994856282991024711920953586027964065419829188966950873281398427500875514536896717440530425601848454671479775809443290739833669942029856956612513828146044444291803895248235498620117883484051269800158538079892681040360357619913508313412722652954414332856183995795892859259102949351433080848756804589773945021317735889506992104975007835155162413503975615998605273389599221114063535336614235077319550160716628433382046941225119901184941854411618930914729055700759887669728154775151529465338684031428503951950863007520946749145778660532767560207256078587845357099732463149770168435184831723301569674762417965225238279221898570379879172384168856960501373507772021301464410051432045268454999282240450780542345151030320758830218188818695397969804836507921442063432335617852161350197058978761231594643402298535551377488187602160474156514229104014122877671896510056564409452688955559068804408591614430927317540248891643939217585242233373952998406083941068981834154359808969184003096515843007938919731543850074356183948200445548562305691408136227560447281379711169815284696073884491846513446965091895752470084136487319666383502685749473877401079563772152475719299942384355116329934047247785237065861576055231298965606491337363762707419504704915708774901624027235280323714355490071320686629413939436156751880289844737592102261285470795838852132363075359951387466899955315269830623297938513950671113642200294782095736968766818792313723202890278117409933820858450622425279041301148176111542910843110315171249340129374698779441638579897409012655092493888075614121858929212411419137129543916690632829646576154094978778940731155514542403803009134057026817534990588692551517225374865992479395537397731576751017839831609991708409394412062013324086543912582789468540114231255477438083861242078093548868295450313045780193125357463981460767588176433321419727910925705171811167651161424364950942661309003598153213313397658378101075531942777147463076137002194294165175257903611035292463011434220721742146922349085580200792014551297604822286293776292131795165893574682497278375178850173774401399428705838591205235714206820860969850184202673384013156626256875334654131609822587427159670920669057410713175741628257756426513645654111210478026886215983979370204800700430672636679118364647388971520432667364360399966610025022565270807409306334309237243420706835739708445847383708802465424569378673205995199698706290109703195150425362115443439138745468595696833136937664736541960113461314242448475886289646851955105432910954320216042327117683581090600637362190588849438793939895470612332171447475468644368565302525125052098429549496948999851770563571560679696773948420489409369059663879096146432057853624476844149591510138978604355835357857339548776059536884295903872704467063599872815727889993701192008304251974581381339883861838020557881262970010744887119115565185469072523634809312674681082359840762642765562267607738497898837726423943900252504794060914824163914687542564671370951823755311318226299350989165451026715424111556868887905847565377928769026214397701577029516205965790746249738544291638663577760055001708779421396731587330424317695874950831860962788297058942633657430667462966576543450494753125155516408138683930069407758028353188251390954270851737349445211741595607908055555870028584416631047327981505266083364302890441805714317145457361709661902748968248402583444085070195376550030924528611729136307012314061644100154167055362901400039860084626061153126719442215398969158433825000503265449599889623758555344538782862834446789357802379099139091494726736393672501493071497770228216651497580345070548374862498695997363769970814417169451424642938055157112975465706879827068185605816836092764029285215611132326662099096732018164197284570727095887708900097116875510850418759458273838290906027099563315816540536477347043738310038382835070237035324388822847977172973477104150013352556073751535077257434999997059494062892426387371350530780635604612850926465309950860387433576658537849927423828716739641879591242955926730790871461779083082973103372567636558582719895565317713548282279124488635216617938773692218681066003562185043998735213148980626239138031235937244857897545666824985737027848477953950313253202491067852908757699111012543826758647752285386348689665246859813847836650001477858967956312208359110549334200943560772842082296474214372374084652666194631397643513090134282351652214644595963769696502234629837885274374115612008135716896768221252123165484646711747626602501603167078920792949481060264076460785716046739546132305311458814688386020451425427681819099161753557468594686312770181586156293948021284520987285248789131743422822015758779433285347802492136310834226737142000705811875151337646297648441462841933014004000291451445897383093860695294873960133775785223900333790310644243628660316776433182628650574926520784481615456484621873054578259374702446383247582452474062043040520757327161854300684859188482775426252893025162459191600715588977831336208531277448073670220049979410682418976221470821759974016511672513969482850562517773979946035481742536157821230228567739023617593119013302806172372732293761324379929108544522613894165738147400933939360353189852276863358314809085333375917049517182239031734821372159139147043398249468754647834586627067416313945644878049371990234492610977940241070362958824292243529550974510842520587045820877801142433964740463789806109575462841032654598254604592060838845370792495346508048721751581443777739402050002322581527773244613326004785126018654741799004888575850768675977223596319071724037104275496578788864548421188613511341163484355300764345961432978024556482699709778376015467444792255300187611609973630702955981221046291077288155606985732724665979041794643212488163367936761204330171758154378909868115818958701771893639990175098262685796131694408937343806274894139537762996324413373405895135497841396291345611852081693981682476718791096291143147931630302677047313094693253111667652211908310096879543414456722154503766852758909635554270544334989918173424949551090881398680213688964340994746196304879478641675493013521430244373253931390182856439244637760544227275010270769100666267931043142689949276766547224140219314148023907617946607487991335909471370176394116406663156866684954630056432840615720940889127196669304018537299420623057111729138296829817736739335199070346496710790333267170430929149409240944338455838142679787180226486259842665888383556768667546698150362630934103226081117582919590386940893496708046559839073160150931827730984607878715907211072082954790624371020750269208554646189500933716313652342257079112607635190546136854751809108770727816733741611403872062776420139722974271567450713942024805165336536969056833069072642458895707854790876136384247163461745697482204939966018089883343528481787486279712225122391955907946953167777646579585333032729403948833717937293279613184576181022570666359686068909265954336441413785444986823315810134984379994076326647670132136305248653824329865648644728524070848332666561733598487304056225740383956010567479629007691227564515731997238918475661551861815869722229551840275864398221090832511473197724649840435020029649461014793033656062952075341255637653321750645286985178766986000134934629124908818211282999376154216740636223066777450338652891168370422713738175044347031738999149333111808181867509714184857296642067588262549292660320453767472566467566210644918478515429443210649846501398408267459333204635175650283229852568413230745481574738207000222214447159555108609094058703070594361718468973563448779625110099204369116417712379893699884776150202108082382614437067609696683563649292970279398625700651133800665024640783973433509317772235197832345099146362347975254085604776667767640776881550833795706023423493140884136608162297953582478378926627434199134316534218588124981941744818626283828481270710093405523616485546246322580117958618969738561963388033146679856828014433137489714765384915303448314224539731364905782147345609840761874438310876977840324315772207772331616042921837722147163418588607006646358788318258836321455888018227731957535527959160415162966067088322924258828777968857014063325942157134582447267882524309128948401527739583980378008847767714908402914307212010482183534244194976645903118511746933574785758174933541962257566491650219834017335861634409795648609002688356144517178580705115031010747480766989569067036511191043005938560933818987119301275677445857144546594325419202372006542603241156688732023233076155028504873931027297947762915415962963062582934153611292456022264177137861428644325071581984384355158775264672367280756981147090319553304682557475768994669107592196108527849616454229374182197117930838446658371576732009433116368195709698028320188405858768172778643681394028810428048646433337311185792951805043327604061316857712047909169399798325005891188615022295439444354718792723430315279884536433889578559546033581890895276002422384310771025502463759060562383531907158612237568540760540463422703892450961171965645052875548121838459344887254295799541615697592747987003310646044562997067414388146407046944478651027970716173200520778186618065628094707700038677738874337883213464865119462457914647793875586284457757625128698297367841515670796096707251024298694250825741976616569431406304371297181258312021384064453263781224026231846621259499577831523818754478023496249055464809209132434974461059788317403741837843322752774189445798788369460893729371340030412391125322149926883488987314087944899085233064402613971410024607644468219593822078189996296606494788385833674172472906479426122498032888309050650917550808520238578681475758609592632325326407027507199866633315018115613915426744128698217590267541774852794614347784876020125053513870076971757906029646389153999347936759186847087881789894289164279582678197654267372811993406946141034176379482112755362136737641428248851351685749630373281189614956759708926609518632835908561930435699172482174734848317447623261888695857605085031133712542895319837990892823278037525630839715881511594284594439595860433997075720107384721862470649796395584459457063184777925561055107646317920099098152265629602994442982862503273669687558683709784381334792389263679918041470093836557090065954594956772598182564437085180244771579046013584425263669695358554792412546555166374655266831177403796408341348742971722992598754200944670038934045490161811985975061146647812618154707177903798684133676946365088565897870594205573393156582534746088270621398843534347705908332021938248466032803075466830748385385012642607005986791728382430724973898389029540721192785920747493166961343264859210996183503720073694018289019124890748737477979643301355786364585316643551195316586286963129187215998399914200527783132315539931951456345773935381922683346813189227640457130202649345118438094359410277384459408100379728406571194906140030818151853667355649192600886485079157152978969650765694167996028700686264443722298001475973978839431439327220677621731613267414586202655023695356573451943992379773126793607181646068878838527574110965624318250330631043404063463762610283032959571974537439277470952991935731665478472026254364780996986507824983723175341494042277595942826228280329501888066630578789097601829929419125167742289486410690056446687899351961189498956876734785545405985530031483462999295157307035220028754831026027315644813043532514041258015277907941232657828909761093001529553261190891416951004202384953543948027682857461279623959393624696310715415223933124945673537279563714947276656217999859036331371460709923108160866226600119941877805258775128949746300398128941091496965192641628065739460760042463813569915040068649243819693939698686452332330207515522177356177395720642792662979216274368511352040425880270728577969433366425896952919132070918532117513774115615139726255174830905858308877621209854050367445611772373741913821561780382369276364921093716329674342035756740946443121500363221993851361035488398717409432933368378230782589886197489155217510741047598221278323970125754101684941099911030929283669800702236079647411312722400376976725011946482739684608908793588230335916247699733722859887467052354981315916177508877392781241884475084097225969389861611665613008185122093878170870512641824630737622557270569998837333037556104153105557831381116222820857490177011415481795406976279063668158697059556902938399769478301212593806557215747151095587489853481402226732647899094194122086443433618984742779083446890926914642473780786235865342318825173881480116794884251042873332204758429554007288346137172886617317934160661670113458875364447178941408997606665296236903967389113080190974497491906545359740408599336805284909745691639559974025384954447857011246709895612077539929513451387334369041209405119092778434148793296879274351576485134199410780976627817114340633167164125407950216483842948094413428777982472748100842082769117146302451728779623822236330582306015711458937263069651582433238318249478004239529259152935462647667057799627194203694211819903794362668668512267413454489533272163581159731838111760933383712712472274173221221383363424572640496715636831871779576311656168283572642447997334649882455751110611718422346980377035446441798885430412398436475997094827590351975125304360076550991187803575235711540955097807175959879970625126185528324217288295062614915634981313694230523665749668989248111750684032395122583463589554848753450245136074926264573122247665918346545790665224029275749122009710600956181538287732661502456910022140789945551292226164148529579876296138052337223163173212973706010411797906942891757365797530370376942892923902550133236286988982776277065904629136877347862024966659332223030329561120805941022871403691099492295736873686194576682398121506970391656650184878259698336062730443632588848581457825105829791879942034860778491422317570967884552540716713888149603065464618101271856825721638516259693005489124377159524727985716066576577036332781190018544816761837095081316366889020916825707831565717055713618613025224109846463834946341647581054255890923759534546905157515578873757880996116516159005762362297487058762017999239912465898212105360995815483243829425874761810197814047585960308234438393437136863714708746912032420978644484874059525021036401516337859999650453338970484186435219702438475540010452229004077902546066119685653924836304453846687323030206721108495660232075919486828073322886503447043578143712839988571578734627821233785824286457793508507746166996633067575819787572329307562719892876740382496124519646023771312255809489709264662969543554366463594927374365233437110635763353234247652226457942156522218972662162439339627140227983335522370418993370930086970480357692233907631095180029611283825288623006204069156536005051364041627542325592660228837260120220800928964000204202100191126076400696185638187932648981157564046501565683400613539416459832744473415612865174309330835625206526002439297933849706146577262836648676282072896837595686653328260433462738501329927183037968663702663971027005636890865468291307049622148299679346723944675112839520934816454297047189387583664863337756022316776274096938575803372280446704646237419450798106086997367331719864364986045278626283683377360685373769477858784559460831254487757411028568727238661789862522168877570024394698590194702161113226061609386240949177939055270465207580678821935857490257689538384227203911546200915040669824439428746355764411365522607599994093780685578526862376950474098881112194351775424153281951143088457974664555011626535498302279090426095740889264328704866547679529405378638199967478697797663526095775794466340386444933451389451590305968418252770147298477233851931303631401378840460030273898457823251860297185494786241674833340311128690628056104394839770958562417162399691289126848835329920739803344281541041921224865947303887336900016057253979242532655216492739267127712730056822525912473397746185343529321176649998267089481082683214402071257475142627526144760413075675487900054377813577515900973427120234887294630958035983647842533014599709172658252068562517716327914890237240635538196597662258783255697849589047824940473689006085902956772832085606359442460320264501709315760457717906353550776716003519585136043294508772988661186818995823572352582621213072856514736956239859338280131076898996465185877145407567484169116518889001003235631295644400348098564199909602377142841013540319457082648574332458935350031216781503889090776200286699343765745630648488558266222681079420587084164957143222298036878351317579842020255205295540522444503062884662220281299865741407491565186938071122561614609630463277901126531674534277705229927794147589022254974783530815370255288557603839114650162035723882284892244785676392017366327813553760139150638912207325965222037984836283655596452958693648449057427615105412763687676769939171141629439452655670953311829621762397804962382332029383824564510184115822359904590480555473981097652062485554082734671830604935721490668250272914137285532787254050880924454153829100844459719628610416685484009275628072856645564141084001732934111301838922933528221029673410498229376932773516057833492151685040637283998570927655394136646706098871000831580484141585980886819185268290416656101420897491359844945872121184122030585535405265129571386814971046869421109922604816115754986822170756419996756893596077228423609283372913703362951414314796297015846948281088757476912331857003349943423490318468454824818179027621458981897071304364081679129499056487818365068258059333467059097077969404117079599022146812825266031389458032136277277594479814192095649321320013981346323929051958694215022185476278098142483633715260474013802488961483111402697333114385336551487531096547049558338108178504014628427988396412828401732773255512518095957024725133943643458705244654292130652285836899436405141961267370883293390537055596804475011674331254845907786278224765214350464491371171209748367943972801104491316064716811702823839201298779154010782707942588448839812676439377531346511987469529361545076737354909114808435275359415355318825540137990374988614544394061311695687941575703609014035678562185251207361194391763996392541431618976843738607247839613763212594601195125361294625251765590443785782435162243740326237121124475840656931705528241746931935219343438525198892817743874804721202019764669378299324917394853769031032807820784966019206049351036440258695508303730718785128259647446657815386062160438793370471091410329646952414135717192642487846638192383853065058750963205283473134304330150489229733516885643637804291212448176322920049262226289381575785205913762077037412577007856415855385223452820440053405202393054822196121691115528501007407583595931187850691539972654088487640634668717951477575761424803535919590251739567678982813171175279789773236734219829813717867944500922270434861312645272264385939993425696868526877824158895514027386482710396472299939661790451161308954154090877941560258175191845506158464896246584166348058327969222648189647671926070347386606672837961073957571472191643025229631494899962848659149902983248907508232852170709026964054217067631312033185778535503506463236213046725867163394551849775807875391148902863138288058583433095004486024667560166312685800401486511622607587793780286211348904343632821794897065786407983118633753654611106447522129934519691237770552927274318532160521183462151765162051238427094142759329458575633435825337199743605109921032570668107429823921121291312650879949493836527324191140053460357856626797060683498486138834728157614817368608221521715500886695629973694451392983553493806725603540656230617194186135552694902088663211879418417832778511657111920699196393472224062567424137787150043760681235183294113121157559940355844703843893514546779675033535914549289236963885702622729161226423907388665594148698335968316034754954177025824485537546106386299234453218256740552726167070817672535051162468760768820947576356918777896503778793720703085796064409580876273518237403148763374863941559477647504496264074135047327788884929793064397747207796528297039429194275028259761940282138908195427321016964737586714141655429676251476749167145614617507395869814479634350538046957122495939735362299306049745881110835868586532000924276626201709052045660815268431181631956795118498693193777741203702032067973128597489654766395192577700913181220644182425188338235351170403543885162866849549978913501955547858417747651675256702488552552971501047304793839281927590694977140017440907691141840214183882430460240315536110443375928643979530368798729304517175114919374213677086412782110401139087933798552667963022544347487450674161976472795798384197669612577511063144467962962500724536995199532121047629074256866604292455336379479163876792989417240375273411910055717661010131889002924035827379431343867595792126990967902931003476918350787985209829687917509506187104206632881990465556710841431673010499526787767307951318347707549402020044093095451628992351582627322301898623058522780276452836519674691993948974236276349584651999348891486598370269856646159038092447451856757898822465261629396523698331849641406069025403557293403461974359307508103945351906480156100682246601895770221092733153015644146484491806607537188006245711299189487965118408081160616658908335771072103969690384219319861809039389736668165992845334616064599488109807561631173257332596934427927559274410689373063561490414150596102721488785460532964662986069548183474490370608727708106790831480663727729130270659170914608936075713055779059341595290628787698898301001990061881443856736300353220354029345677254221975305186320052721517104419362662059123134796063545973248308815282749403183789962343596002343370604745360458783603470175889874321051927358575039077687966402413482498763871253740708406785113545770540747061656776836516075155859189998820402136258313693713675459337432020509960731266191817232905040161910191530858389281781193084543354510902122836829413593441037633973363857595066221777538614711627596784058939281427617419419202382237734398921510911542694460921818570957655552419572984611905081694890249902014977712412766872586982448739241162829223578278378563837763711821366604215798900123740068948878753419168332482561738881639215521137586487549444323831741675675499425252710564563508632098436586500572272710831680594642688542817942124459714615649964701019261835726926866325068989086574018771661034526748939014020264013803642477490431905379900455528983517742885182979285508852475534488766955343385927209088101359530611051554921878427826682125465205848348929153318405568438342381593324166380459045115650350400063655878098334723163827055450404357787049073606189234559081602799126647867386306108594401613829828028244590893880247779961980503744810604236849478812956799877277376757852861609312143071012275668378866961902294714966954727205101509695336567007117358305304476776685116378516949483511249408773030866690129310204870278182390931541965829912773465863195449471620095641264167831323002881932873942401503797328865890538958402435339680226731230915428644518347661042339456284763443124536954803001017369567815280181603909642729357163091107103375437533294831334691777599901346497084916221929999428532094656360709463284304059854306194481724479415600866338301584416623152494741793971554841347773076462597559623379560772183504995869057765036140216471559391366234069245638514033962424623357148361864500800917195453198706696861287511917388079745591266249850574308530209907596013495015924083789481695867861096501959186147801932109070423115467992747767582326314838499810114317623378738217701704611294783738386401764116030875459016681716008213202588003667527301473408339288507853366698072025560828014979010235980976654672087228963643992534114568762770187236772380440480960235488348741514113202852378124267782488806362158265609816422372157481593630740801598660818658482388622252903369160786092715782914549323749630208321006916693141967981810318437755897012616258496057142067093877028558879106705369498662855742868979223552194713594737137899119730268923382076081829038936678057503764720144168623149629377899407508462907997230105523914415446722731528432923878909751480348626204711047801829215396853086114208405788000106175436335367442558414961550387874536371875530381985987852247465878365122830371157115286880039487277879458701774945075174045012721174504698393196642869596772436435771589486945348754480340874781327428334974725640965238604754981062090637774938670714260069655331893504969572397166151838493952425403320316484023393339212948528086289269664782612396585308477353384129580443385994156737268115283073055830689645515753075227309199966816263823401057656959806029890109281863773425559319876418351957259683040284237230002065155301186679987558127330599483780617816436597837115595281381341162516564343441000888357479819488944242571828364730594858332906694182205053919670093513658373659244930666854078425686994848929901982255240817682684972408175987358870900059703330734004854482263128880184335040260690101551368318251806517160344275909118984189931721221210018935991767737603703073034766732554843484177252527249548438718159416948490585643749071118417336197456131390347845438745476337423568351645738072693008433941193612762914402371653494691839087505193545757505241208970842288500021498639986844187198786824696123329868673416466013257810686928151839542707499094858064651286117331354036933636882902524827790464236330839858184222779437452504922393170304476166793180639357226220119087238744172806305338298188939356236599415737601821907860515270624266666473398750814268448299520814537034788714899914973620772178412450356270369607860526234602022282921824457553542050252931984976445402755549366759017753018789369161158071044864966966414705618144555306126847401103676768702476339634230787874833233773025793213998788157659817318197315053256604485054259930842940682717660851082016466677358796117229292161660560124971067658608962342011229885576158274595406784144222124412916408476057745637455962794950221482273997300365436010272236013154345244740895698917067535138667032385155816536514423512564524278484690116340827129206856462763270106824489774024092311047136222922552209134877309748764444148915114621268048812750781508478379086344648652524463073015807071685912656498822108770126074469732073046117589355874848867418483913478847951829454571976030226644698846221383818296859307350282356364599997033650942251213769825402582790617890818807212147099992281788047842622491761221649682588717866934039755213355399365512646042280052100525136574526663271055298895172775673784585928395883883992006935597819625461524747865386638657162079212951743449494311195333374387879653233354765800244866722179466391177516669724152768130230453603729832645746761963661581016480816180177590127473874257527895269710717801137009418577498993392396026562449524238244151205082352998418675476653684794414258052210192658362867359311749199350844537478431423075034906696482341816562576445321540952808344921622421721817528514857805634485259224763289370863704946448119409902357164318391520334315983062369140669757113605529062554756601493940326238630261465230117113303679117524576885208617223394330517794066356144657704425577340597764073547769243320820860729565118455974613254007754965909488508724472857867328770544642874545593704227894069121258927461188398179231203825993737964440421403266779227144489689163197162988759044385587612115376930583288415189540519865829348756030947883758876801155224557722664776155638933938578756247771907291942948779710972434220456135684634095382786704714693202967256055232507967557616106630338326617904352046211053966895815788600436149411776762129315959123904231159522501893269221750440291889793250518488595942430666981893968479651527585559280370114860738071898405919082499516935836330090580114962298743024077277682426032936786775272852175936202383963563710694979254074959132206815688038655886973778923878201590260275419815719053402059314327182931982617438833916300696009294913087427094963199007816791629671797053086292186970667427268236499147469419824244575474206486945874957399118006638926790618213618095236847925904816369679701593566734155240730810734782241436101368369673223678344051763417550303835147496728256582915958767420184203217886260670047337031975393384555157215461217767428122361113541312182629478033681773903944771984966645550420368315116289021042015517268212385447501316431579609692099043481689977566360784008294215683055570019449066835320750126097608654655312372351696287628127495400922059977331304616935441786658030664486735633841190471274000508101309246405195639772774885130428942547995468891821892583778302816116088143626951683168995755752941865916251145683576099858595310219399552646470004034008509989338766975077704726570530529056931339999796829434973793370455161236200892837779734281710385736039366632188235030292358553338139102141463607089573163904625552821094153403986803000424183696823326124299503551452107610900818389734766194900029904260470517492043079959318767180759873199361543324556658800296207890559837346795609800611295944748361334833495554898044800169541036044679643817265519239873118093592772157986994293180673875259723620645453275366481929887705159937522405843768715928463563738500999381718792725116809012273120644279985066706874270470051378448812475168835040891312137946372835674025590500954415932957095111091224552927175302513633696371684971647594588190795972843196365432480472983984363046923118035118516254404884736780897884867675317114920665806719319216534869843768032909279793525825980242169514360312728698362786743765246065572426710351685390222980843011016812041200077904871518939856853925104603467546969784705153427784263065199437483248815660328659489991717962710717377630750566994810535825663422005133384262230582057120530975069565956369130636754159475587708576193348146180501326202816348420526512431930823132522558757747491708325259349262471100476429431327228787364731332773879688177392754988461914671576777732594138744621164819845499612066910249676096774302175275998952914400794569054109811913717624782602246484511544733172460053075598621137352757634201025844951417221944056596448375763379554753314715134058372731387381269184932190725900565651090878502690867826695521378077313798920995059912078621203529340691919404326879027051469644705614700517369291546893068949517598807085670196533497611213815476315979827158868720492999555602895018081099321693652768247338296655827001736644346979007447139899349660890641357489134459975229558375438876355714732494884188935767460990521444575191251168920784952495244077848673667751407079294522103650277745417655916787137535590032229052736350525502564896172466442773143140111984643872249522249643672906692500221362502371601025049047771998689278407679340788331097307758532942711757551388380804476824042694083742477494093366049444198864301201702390199285700494315881066057337642609691630471314627740927126808547429428512576886782005140311636004392190899874366195560086208167031365903302922097199200600221371264319182316580381524192246472793814390315906204542512425353680251453761694045765728080778693216055098875152998560135875897475951067998423047038311822171620940848458658274920181874247104450978461768754337926439962090811484358598111847226413095650677352917227290726624290059904936671321707271616608160398236808946220313863935040427752291493016749188364352722155767099870451864363388828488733739830021780784444621985899785124743042198971374176283342083609813506477110226070650339770644314355310128091603760501490210812318105186917892612280565298489342841989526196626747372403303500947745046253858792216822654802922227838751021388035588529364017619700966591899720564632362459317252572764848874034551164422641797649440906595875005442048560463941799285186915154664100975066430106842242750549197953709045217289125969878287078878135986554576692636947266663791728678027074081942965039942166195895871208123974295687579161632609244866043766936182624905372301589310359823978600320980848320968642652516565174642921588358544698043787676142092637306204937025180579062915080503336264144148978281313351546484311582776727459182496625400539857231855213718895133254460991145165279194346139893421545072262157069402158378892788551476961273474810491615079959874950787427862815940830330187808736509000534024643268232010413349711373598801314012696259372855558369910008513448968109693192136009535422738959880522011638774423284660409105436460179176913139721036974803621228120924680985367792489827881892749027738509554505173938565248872856773664105684414300679823640596646972545684009645158158671471589639268955769922997606844502271899833311656587951982952917548941445236281786077692899678328011993072386143690951610542456144858222742095580108881365537850588919693553198798430269013410103361285861212080819717301235007221357859001860882850022695509843510240759660527217561644588393708452040081773428615620565345360839441461884283048871201546328270061767960395397208894017025208854876430639273875474008884372868939782519905440975461325692632703541511272016066568280625834981711221778824691676806522695702892353428193163758983200766403000840481128107151462180190941117382590250021376060173599343082163690692361460554507483750078855400108518016103811903350504498203894127209038687356352048750925547049863583865154528317426333568950663155270193310170581395294219379355108205948040343626741038977238321234230781170771477194298821303638121907661534002865566730303923817139046485590005753174834651999006569871045593400678430541433117262516852575227793247713628295575869234806847664998832864189689122764255386133012322431555141285592558573631112350951886271594042831228751762686507872643992789739937124826925547656428569719354908842290170837744227381865917476986088328179100144757409364013530072229014767258774521092469788545295547233160235543867357226808832135959654507686057502264210083388565680250853519167775983540423727938530875241289303210054472215523892744427150199726194746180313834547331782731062083417286546263453480274539750127731021168618493266802855046488328289375394719132369408621319132337931478668848592491088392854946654051087788432867094930382425861740826430984068954841629485989923084749949386618099550953082810271974615909353034840000220373287470392609767336975067810199256715073594303721530363158307403689228671610848049693780190893833982590773991923002624518685142585570258901518228471773659739502620951248059993981074145744903281253266917456804777384963043221622550208280698076228414876588864433706144176002615338700707969529778565478185762767331621855633479901833985644678561729284404299882422814879342565387138310752792833377499267673891478470917458618340927108389082567698287935782037003996782966720369857448635299697186224628854567287902250667306047979789142850794222795147451360261478160007220581773665219177159222932361511890944333155520620392882949801035813253509491014895549532395889000552962724406007847826844244091160604958845497412903752290089836627468044729273301940127503341455082029521290443781536196486374224786954584845841014943255821997760170496411035343329112064810551770732755513754496475893389307884335393424114149685646054490361714914499681134029570507607232944100191269438675841393015817407379125494296866750636010403586750667972850674870005362816367147914883913996434932495804144690037400586014644439513368608625008083225330741841634168123257238698306936724408775446358353694815867897307534211521069841138533893621779382705296715511916058589321036865985826676447430659115582150836859171136325623463209877917777715954816707975766621214542392939211615101740290478958227531793409231554110313706895452327024161134786479706201494217826758014546347293974021078134261368260389919278934112188787506697610792908398574308259176456962127232525064632744830630625858439771070613606354829081516079588227024469098408049413204757580198630114384459121106390653561554478520169891748208073422251583971540896663733533054127827876205064801505140359349073475054943241131264372327003592333812084740731033403085304827395445465858857855399013203940487058449445190153804944766223602731136846211134597743735146360809690994179922245222981163434946750962670609601308805153874341497035397190537138594127246747006325961828905096626345163307372078908625233008840990736763276682947229415695093866914684997642503306184188720349942428771136609793942315331342897238544785109859437347875839724584215475919590625187186176640579679279217804534096287165000158659542925957425274959873291620851335251936097993047740304918170537648947010946156663211258735592093983841109890999290859048004878969054280116973424544968533129655856993682124396388994036344551714629796631402735812722773648656634342347834810118236845444234948953113808202521790719578262435915878519149621324244855914465476518442638364283064890374921278830316002452267764327823039542020958666517193969459736508578055405180148896352133792340062917779760199374384561928736444357641673038761370407623826628507677099413962436613239194049749722723902861550199933419159572527832463295736874214713829433265914563895309807150593425064889501095018593289075023621910646985081972815631303342335973744465585476209229302440391781922378633630560957887986812536536445311826089376814765406276274775222030396131839523530356648571403896314920977530632362487301553527393846589887693946342648005882495858080703949264571426458948620139976650770406164120107050924775525391041530810055552186901536639040367519645017045237920079765812171915242341324082913970136124001978645190458623450838980272296499383653181636007995008158643441371278139557065030037986692962159021301241981434621526110379818226116839091247091556981577810310281489743333777797658971850050931896019579764330223750100635038037208599776246366051393400107346386074330968453821313711387628452756401835809390159609436278126660350900618403149242037076430167033052821259637650509061690427078898858654809818813650423807933988201906363199298994961848186818630907251969256065233574839055811057004701053972905231400754299160029378754166990004787590124569271076001435868188673397044614247806881112303808774836880568747995641169020486419094790094082337499315313647809793672473809137233674619519866780004577896113378288823436259241821327548664054228192124562121376825340693534500338751436848992027831770045032154603865686530778971708943604104917437291169751580341245217141442378511015814384301121340609193879843300269632704043777588483620936952288154697807512949045106613703449197157687561027654209835146875422625676802234807142973769381848471687591732408332692937000945026958446272676402482492982821419048911458532795834912762117118281381941554634804522695647577329960442791181080247919579481376699178415393921150205136993330382099980688995949485039865341212500907381395922367923963071951517681861224919305922882968199844570906266045156188587642115422989201374790529014773917668024912581438967652386101533355320256105908633090233684607958264502958565145444784933469541063609770167320322484733576851019746457523092126115111714581744254736144441792848562694038095357521626017635582978832597975116251158238458440201989222726932569097629838124377584080342249239467440915693758080932048242612285099883498925339175801964177669785671035695872521432669665013299524423298032821750773393188686467195542250695707717714725194050602657500212709890544058027462304066788942073928526561905316492839946660751328616831464413125374735574402274771228217933189048737544460382321439930563172587094072779075936011878857879816501022621498427255892293327715445182230674945977073945279790205800651204240759419829031912236016918205734459077648847375172458519874878685884449934845885639915515833794860164289981932939768185445080819201103451923740444046562789680292064855996234617100532938144905050591839167185137362215860406892781459468655970676791346049613317375330483029523193296859561175401465743399514381651924145463852747685868073230903761990195310525135917600289039863617109531880312196434996070287500965336906305887586819934651281929901488411154381662882898441432657341800608333011444124630491107562996444139825693777122116426514967998147652124784894923825472788171113710056378644104339350575060821650487398450724056540086339899434799732707605250302970716740203000315607939068481188289986375973712230835069102485239350247246827235877307605708669212666564048370311786632202958780468017989526518835738881338893409364350089351461351470478543565417951000226936666253778856981389756375716163362177539842437316674839777770176287463131239303010581868845882376468303853006025829626480214823214629127579121078129548829810706219351721023460525454342126219633071188635642479257707353156028589548582709154050119616023404999148049317558737885964273646118822475307465287480147373651312310126523149846474813400025361252401267018211607282806864674145716634193662243677696568245107002924874291097789575056075348475306337906529382723418019033522021196334372388980397311364112910410008322284481242474030837302350089211709432325552910328173425005755908308223144745673787261460870299922021522422470742553140480067529930390489573059018352860581427370803075347447352840649864358557644995615187801064179255096951950513810034417440639081746064787511524365760609804541894506065804687780167031032456345912327740370790118308562157581274086179086301399554911419651916942375860320668605480246522891421642793818740900824481171848366427929987630850788167585273643122013095362639726905327688761888715924696884961265836528800105534183475752174637111601159578542134580243141349162548878167484448051416634025430797708283286352369119075439255253893126820533278717415109415697302427460735694685264463162342261633661943610933634970281036117333801793606666823765763766695428434408977665376901416855992317632315264812527435544726154309461914021321681845451229638956272514794210262252852897632070654146700322921331183327335560440014258310886048885422893662080897059910617375717279158000758875252739977378485319427999573601799176750161342818745891105084068120562884045180986423251043779786649796220947186669247362138913598161385994412885657138829429715112441288732699598850695652144356168103703768292098730802347348070284642909722435988585721268143342234867555814673806835908600151083213332153313966411289703788016356297037819059207320140687759659929055721335848522639258372998971923069140337180246394245037429388643606079887722043642434628706698566392601047572186379883317833757497997661968165905239869718622187479494423980797963726092794685403998538973504324654110221162460498655132889962239317458573633248939687400641489123076397096224174167344086986959315845488734400052595656658751781603397190950525322565649953851305234720863612065419987089014233885966962741029002593933917410869633662115577342128066765978881659186769607477876738552163360823747477667972636132988173570014334646835607863534416124984015027863450853936206269283311336171158559575776398969256096190108527244285754867802485932436289082602183117632307033951314293343552438034188035597545216175798072866285372109300197836501271568120648243273450527001858675905497642679833767524435699050384076214539676933284999316157634638212387688665549889444871735264389489660161195461246447400785248404859746511310517783758096450206235784232186068514722683757145955268068326155699254748334130773027478887653418382972119772024231729407083036465026831249247238735656055717705009358511573344189047622744595321744300333005617854111811927240254818364653919256709197773234648446292350690942559065566879573828637685413858394389929818434727133389905204982220558190545049110221889243096459831285584829393421460659719595896229785926333528260207578416387789870367143759874112309697535254156450816208602802742862845330614382528006876617614471952498958151244555702678846152693451724486521652065002903885174137602572709197810203787218282153744197203631241347159803014237758537317546020998944444452098505105379160400495243923251070202454743240632643363610549743276127043402835235840737507960578538813121713355356396702708822499745029626366548637121215763499225675117440472302644141361826974041453483259443444301240625539265383631287059914529619016914725933572949452653536755581250020790162867226356277570175575382325644338291207721073381995806195737687675397434473379699067124866437340142165042657528967037523287890303249292718629565203069364810703496741320457942589386590064741469255581648934731906442678595449582606688000540627611357933005041207631696901883637660759724089122881443260783305387553978731890359375556880440895214828155392331953242163846931017287986733949650249954394615567557138711318496531669534933095426747389408509454356580671331868927123645942325474751064813437446584998500125238727424302090471398210954697606218818328041352216360537384560323343263774685555531518276685822240899364382200111478742354170062510861136310178981232796873953013320593097665963239817596169880581067080244649557296601951431293989848209586318544717039546887225574613651071598927889700599842709448468699439336444790950686510600397550114601151425274758341291328315091727294812144091658867568317807546183108882125942815427068867309468948217749955927011492248466083369992681388725944068650259052431876668450952410005221742748932342321109623507424913152675149122978341981131262986059805775099048170916011813398426665333901375103174438446421486064402309136356758070641882382803248189661350068164387559902418426140739203240755445486874510729215347072915779375066762940471815203249794340987590404674413647202601764039259624762549556863235429210606787304295007801131780986323631723079896627595394220967714624889636923428751408335868463077236480260189753834432810365241466303197336414556970565305345337002954994122410211631952353725654591307990072866900897546228013618077577406646493846716566699276184685236576356283426316675151363913721573025179420857649160850585681563784875823864142036121881857572049724444827427372854368498368337891799496065585848208538846393484346929308089167118267052030907336437115289220968080145802662952918385951117349921537979065831276906111018267767686553973980605210777115841941607552607285835705573939836772654436191101812573423346674519235983334466335550543952671838783604211136177721125287761846345722951064984083097927840898186954327078965285216408294716071109654298359511189116570179732147828413224601472311768846530512858784397860976070431331482605913461742361538409857711339961847539348826530070364709608364192185145475996567602237306430516788114206564396502184255432372581042950613073750844869988766134420373570400934802154075065523271344494159360428390728820626313018078988537044237114331816264638566157689126247774510811229502965050745789331771712673315178126845127311643798537453956379426585042923200136500712980910639338442843287891820771478579212529581097749969051727002717409047407319819033738361888339086253149347692819393697081232518724216902363502004582753828379381865062243782351120364593975453611767497923245881812623819555094163015824977365847420649795864608938505225951211028162573594543156406746419353597805064569072851110403095375632869518407501676581411840116019248568156568272472898876681428356795333972741432448388373006477193314623260329707686442477380024255340444042360815663886452275938973293930395512169898753602846438990700280780248743751088880358265240748328724217725252399080264556808763393627897189875971418410843076983026554883861846589292673326336747144657491436748832367621805257896485567429114466435221889430019356117476920561451593372869451752466600103865667936235385778289169278063258344621401661243094432801341948353494172376361491710256072350658384764056123241041643585774977749581419364456263065951322776144162566708711635395309060395959013409138996025521010859110812765294905024712792433733349073806139280536589463394755965295376191255287891795064418164236245280032869788490362401154186882792930422703753831550117364027977475030774603799410912707029570325527761754530916168130384649203723834508501657360973732121326646573054844693416094342892366920199847128350924515695230632783802422255062274195118270071519946589685562311493010326004240285469534690315457727748916785906556541102208611488458868011432674260845175053807514297417842148983395570698991523886024802691505689920967162573744746179402455277890573427674530131617977845394127782573853138445300944357863130638152743761904068491688958894389484406077739595129419131885052329148428212123774812093470793642203526794563054315773965740268556971316235350869989221242211586305311629164645708533482495453727799232407165048179027182050165737566552593607420250075533136946238119261895157647023938310387905832787841740836809833952285874943272312993002838405907044022220869530548531698177113405786653829348334984918227293196348850841035100918240124180413528587020871057795785848661187905177286187233480409504597124666084898308837804643697426324094513383048519071474524743332605617449227755850033125309261635610293520161220793072678216732324022756451945351700844948851654476900736032099911712991511271857291025802580079207251176783355749949777329218267960787142293449683121494121881889225358673609819896763989395779676956588841279745770575732851773278271368260709053433376370990857306096463167666427623750610367995558692240964222898327518785551026768276735324197605857659025567984394494108792992770066572168947174701293409803865959970295987968657267947292241499063090466649187597775760642874493749421219827660815328403540709155919449482504656385139847623742990592179163209292134615287664325119849157820537184703406853926600771054727081176450471840437012359437066863886178953215816524251565128075616755285039247778725786046656993835520777259501332418426336058155131053642684909263788177435736255890901831701004868754610075195801435754686915319914821935725235652201876851682635648690574250503605325812050543903115002931799816579883558798452741882730990215469287860878508626375433441265737979286719131863811286315804891129360440004270539982144184456313380977727112459958388049831690051949719011683220507579270414729739681421522471277784814093103899261882654894417120725862475606682974510079548984890854897485794398330307303266883196400395907322608687637007807508378404464878107028489132669087204843158396781013864654375559232629051727835839945134746569347068606090629500159711936783348746222693388234841579982719494408899377059400343157811287244864536597824893671418902647992380854996023010860886072626863435183659540479596409956044969322160428734446276565571641133706519204300501663136064291766747048346291060359160322797952639525648221832917592112304259434707772638973573110985044459245566092566375889936142210981432104718874114482587321836783875356344362207909256512453808018389253550026833344011139633919466295480949688629874025464339764050056841338357782630383369385802284615591595403564342852986627090153303841083810299039504998854203137885648652179447607273768165966215369367403228380550773412502995598878165164529235573584569188296064280067405132229954907232701510939302454015737230439013076181966644018657560686181295736237326158323900491344118129539917195828067866368139067284009959349615176546808269447165782780892657618300451218117171575231221305904618996609665066940204970342836416852605696555520079825773487309523345554927690321040516782207073003391706581552057115279061769433314941318031479449847923401657221726585377364586655269275925436635567739647738309010685310559657802415037840211996055146810215428679786709693026391319677629309990392445560454341696064333686252558181884217770386891477984274353029017657529805604165780474791439534062591346220174038337143637278214968341720317346498462180843680423779233153750374704791681067063181573397528572746091586442448800936816378915221802529686704274219702341950707772110944900805925278884116291345803110924116549703036777122740347610821802584960106311417404022898884769341968587733856224605876651557643721151207641114676046215240921365673021554730836697004836843236527718230051420414396122575372265478936788096321304660461686311394865503076752319942813436000854096264941693622214902076472482130399733198340567557888330686413909175305222845600282469796439688736340335794281987050324118285676149102917117685133345049541018578511831025261904292313230486020573718780295653690474362314463924570585006889842796572313540503987630061110127554582458101768320713839438878715781261286185627900701609575782629041003412090761680935406678843471419676636654255877758570942608490322660550860682005186933738204208079405147677020719346636286267266299146320747611950469771685026270510021200502376991640983959325464819596583326311899892450504345686572867874847043631624514081818092110012169323671935015109372127204474315896062503926229771214036511950745647742075243271880208529636403927177676400425788223657654922807074267263689019593606856859007447911621146964502021635788696210409453826879844398398083777207037861072098906276120270246905453052061881228243892894612210753095899596563980425503804956853113803104280183475575504900259386155696960535402920728005589568488950373420770190199954809630475857490307612261868077759134547855866135131883169232480621810268162387985450197087855760757448816752833809920037335337878344191189444030777593771790617503008771638618613972469169869005797334290250860434486891204599914664373974849698004971447254722680816259312454233166665028679764823485944072838135753334237219307923663988319547572175024053196528499548856181759647710770169335173798963067693640115653002996556322118337409686099827625474063214785062788783746550610428103584066731606305238127151035337106577140153828152191430026388620377420726278709640525564648373114082190783819520166024551132634262289363912229511213553874659933681792434827464616519736281476858819531613384569994782004166089977271308653363780532521739548927737848064164037148699275782117267395626239582284288938786653738609180013983680947720519297852039042969998406524020509670512589394675407942191571968930492369868803271955430873490810774817782794108902323694544778811538920453125423077878153299077967129022838792507222018731109901219292098597561866554562207565292787235722541100320454833126274458093940025779050656500699630712508466186998712288809988091883387119115957621204810219910909454002493080723012244455357237003659916253528254563487912086286860914454091571345100454831077248748708466344274888317602339394478358979934158099382385989691676373458103538200021285720595934228707562955170346122141292548861056927009264389286349088990494480847709494726631000211576042388137034157168881068104451319280533298329923383203071143558520598066214428160497939782817274754434847468656570715580970183348398416539040062079613602857885930176548105731547617151138467820014351651227854718190131354425554483011421653155747766682254789316888242890346317740265431382336725508669985968751690954251631393436833915718574084710448405163159278815662591046029661788796254584934189192728080288318025305346418933102487048792439850674718154340043300815175425502566479370460962795591774578117660673196585999523814125973962452491986074629961322713178592279217839172995470966458516033627528265716389698515441723412771774092262268022594380630261484026511599796349536037673756043687007951290219562327335139400592157205056160282402734602475902727065774961142368909352523761110989173423927938262450345194090899621478087606696016635516326981488619662250573263552017218588481975561938132811825739470028840959871204214263047048740961613386316742783266626149971206128164749922900041264372087140438156085394534103908090103561612065918501058235628022243919521085060267255810377758668861625411780940680931358032318774761292538082409174780631716431049062013543607055780369764607490305305721362545573398193496420357082643657608977288460525286028406444199846805164557019046945172357338807416924776665384232410212863188001228590326902822065028083312565462282318278539940696597765931164678254995581278207423174154039989582433730899214989936094644814942162443018024834459820414099608783155014127580291081402167981600680859266769832841686073195623429102565411409085007521428926240312625756802941820729777169996342340395564082563046509533561960169773668147655079904651891867139029993083393695932322112678383183720819787529219240467829594031462872176212855779085539241267391205675976138505054332035117939644993749921216650010344477117137816226533692291227390272844260740750220789057172744557131260059041173771777996993483487379111312810017683304489407691576506597842997930931750503372530369503141805802874389024597813441151987458830589628570254468323369441589739598061921657398803264513196862873451772788322588265798854343969824456979209203256468183539580294432695770369898839494358954307927875630609101219959231718403830997655329936602174920845827369405117255004170808192070326965379627595123472032395380962906013971803112250743417809754814731506788332505050125707392201124388704578317710262435844325696472170479414223395867523570404204985981309149837715914122633916567753796822504631900450629048685706916854603077450548452040400891360854328594573998510007651780459299183314192293909607198549289823064473371798086351695420105641714391769466200329728264141510696621181733871621410704089310861713449152575969195790883507041961767088591807529143260005353019520854209263397150046707053407178038296608311065566947345017500734382413952515975469322834134934541185330276621625977615206767855874122572151903275512648656861813988377856859142597807535680123904000019577747909044927537024972324533978130447334460074469670303047619015377482161281405727746647407224413926225044859825648974131025329271773364287090177006450884901572928094846463482942144170017951176563825959103622560070657364617756083968609513261417748502870576972748513649582576018914949821161616699530887485479688398934205009973761542126895472250239310067770025938297061013051352418734432763683487412182080583706339101863319673577494387421560490826365702763498918960431507005858711769109105296051437272287904769697946611684286795597680183739181473531327079609294778649305452751080902088729565183143236455982995944684537497469504260228047486502399453936236738138999536849299193168384268192779240974110900261085286452766507374091718289283272480032848574499473052259889633271460827242938090392058279975792477476546816589523559077854199619588724348358878515228126272680803419292729636160704748861420524138584075000014541045453916490834650133033757801610109090673633025484517688920310279492540777617573397367883047019280166158305663605508738278463000436455491314232681337651369432119060970499261699456577379735441679410103300271261422806041027570293773022278623821987134545910617551466820977850766379452397738151143932054380142615257972542137078726129986625945541301443614961181498321089593069789186454385119799664883222885683543571489879930645495444964634241814582448407555281364945162038603495625226359711665714996494053278840075202742782726840209376776732327321021291812389497300485009097527628623032237163478113483672954844190770554732237029252149028599190493192973672701648136279570588926211516553510803116514622827576241868930731296501985417547820403433015548282054761780411295572473034673600334382458115759862447243261843991036482871890089470308332179864203111329631596155320676582550646096848070361954411648224403895741350780901091050461206170421776246859478407153640911217974121957309317035727410730027446540374875987082342301341987351108746160172341380025369712401198053535079884673058732742466336752138564108061051936859285066252446642322730580577553286685014500737235039733296942926772331654162166998889903861736371257481883135237439179897655163096327704942717493648203458575831597702368132701452577376741556307762265255287630442620326069088398513871481095639505119001820151781820076067285147932853366441778295020291820810526141654527289885852957580392086075980264715567877767238888356217781203265965189898703935412935007115870731045402178077196826207002834272299811071492826974606887846640603317813954825806175915530405852632487103141899148301675912586010920076862529314154217879158100582298223969407263741445157409813572723585797152680417235233023477044270412686015406762051759515050200478507078863888435439802180873653392074075292055163954342437675154404971358177848654116236620488561978164600820621780363556354794220049168538052191149251647900440700239981617419627846016945172767195168196287758148143245506675972409783759396596257088512095590502146632842075920411105180777849352733280941301567683936624942330923724702523786258394523735973330593424839855897171600486196450401818876700976135930287660382250910887074055049414713467958306252390616290171059714853202730693491740878635207777618656661237762434317249626021350384815437499252536833967422302531977292246964321563629698119324059568891066379877960779808050268222074109012524732329588686329569735061467508810881720891968974824000308991545286014756825955462233010542259977803167619950798487089042184369255422691497282736079030826971648164331652448996391081682020693869220655981567051007549645583261245557754113942256107796023791423845718040414455663396917212048999404182234271158300790702951024828084717711034229878901968864752193113780495772144678327720812840528672240771278974792420742554044612057563644266343195715414523884352375870315851198943351307274676796833523654098839835793063307071388255268769186490071634938002411445470601664426593085972493909024946593731146058992219985699506774597886225929146846159921611362567273805399747954508460595664872008210211045398432868585645106610569404246365849634805718141103838673609659340929099890032673699766080178593432749968556969615582876722950221922875739296314264563582515062814430863932471929205211852707727359882250301099759839109426662423456653726581142546289496383020417226188600878830865338274243141427917535752690974509304717878640468043972931127157654634310174685813766255931619780748381429840343014971237012492063831992167801537510481269858264432209283199995302844259005551447066319582991279026695984552558302161555488007994699243578979796422211552608247485229236910671132752911311341148233470567724076501860129527260953882428670316910812478314217153293206413005540908186830845031433223014410691661716386543660766756039495409513556049230975499084676130503208081924406216718625070868191792319238347292311622746136916133095243946841566225960642354956959501315187007193574221877658933871501385733400149092067742641245338920343264136487003337823233731493478356939386861775090467694589750990478647026406838147879722644195395958778484489795490630538449876929133815088224249997906364283165772925176533304788773971606836582218550774884993708453564113644613040887149423441597999785133596313857067662215781435487798270429210146746891062523692237639886485115029852042538688293283065161671049116016772472780200945035314250848489665663785381172444208688751154303737765211267038423754392735072672721076050538596497732106375264554830579189053452549505716310377058326210334433314052404226158642494887866568418267069642061097785549360129885844062979309671395380017517688066125370246795871600440554814441372736718666219496875060261729302851937404664541611093174298779030264373574263875353376528065233635128472967131811060722335818308050123602373258676220988860284898173585989851651273997151002957301019863027039383500034084359760378785905297627731632350159561941779424973272149005859506478278285903931664410092869601602111885858723581428787324782926271175946716471963673799994170670168973193105522471930852928106226295368172471275357849794008442306661649228247920460781364127412344489485175110509076686326023595178335339727783348189424767222709253275462129492786459328079946460631669129798342471686360467257745675364542982560743376361488491075601248412068391005217658198123502408363953693362166339509590549201237450639911579269255383951199311451809370519581179337675409315437387967245510015582447520858850750549274640929883663610645989373489323604375444135026780913836168604570849962556655659048320582568150832980873368221248991969202478624922950033165332494678636553985064031852686465440344400422007673573570599482756678461544042230854633443492504549898876851647266272274880831914572131844097456008846275760677441443708107806711081254261952483489113418294433709883439283905763339107402597908619074138713161960103698868017556660432778792713638560783803187830141856398751801863820496863167209826863206662315637806378503095079726725773517872473706719804794440242294529364313922087524769618951880701457554894917503388498794686129357828887331926262156560015349649935568024780473753887251926197499323008884959722901752279878386381393528508827854087496526095785095450396150347526849978841776210194274533007108604355054734753653421069073364649198859124119283909451803036638211355053041546520079602578660655183529110056698443280789398306383931120498147993800827038849626977491602867988756834139892032801988221167659798010141978931542085079802273730834890394323360485105099702268806022262475606969436218049408292308958147053610199496791411623771958440843675422776829245295309757748056472545980017354633973528739637191836042652876001402299653752874341477021319489643910706272182563788122240358628495306900479381252524729423320742355788455462733779163863816817159480961640412208300784845064546350828529352766090928280148011659583774756776323491773138913919757896298898149428159356723092836196229432367346421641040969903077908581188905340778189204207380957540172160056056206075038213047493194883344877061000184994634880238004536697735845699688738125174156119357672488733896402179573732796739026434007488830925458295317281540851553235778734113999507477310380684892745583713100851117288360772929222877465760075247775289026664428974410230328388867566973535637228355411927269077316514614346091578620036533223144380610175286230873405435590929213348816457981397866460483376874052215028722209829427337074024138584516096033659541406020490942378955016601487506596351351435660365954708146062378125263391606583209646514594977413506150682514669429238710079339924844605214406131189877105091087669633478979009679401245762421460759704832698906212154689447488281133067041490775636249578719275676491535240988179230648734415840724564410395681663951865837893709518060250921066740554277109813400076906504153269816751131697591238838075285940426751968744104242541225590531464146691539311690525606828747134723029794230093974247804304792913809394749472182296283740465814310441143413015296366856976025150230469081531412692602746616482540514207192294427402029518622167400204779034923577363371074150854857577000374133415706796797457275096859340472708210689894129755861360968673192785973692665497270522925275942973644020938924665777893514006803801690554374969492303836539626164440284360543045267004942473843683707323217779694801901159896937472270085929966287773283348839698296785378240242729862286000047320138143207202003380020340976286340894328616844825923661279725689301055255143875102669122911594234469319218556692974193573015586096874797742085692786977589622365410825768032113461316437153633403671976424420702160034697615690202811131865676267496151887442306839887625749148643165981031391657920974090258814566081768928149868449616356858027833788939022175753672795975243846437138289571430801978733323246920746207561921662437293299893802399053756012965175462396510234137847164642171678695393732657149694492249495162376700741454218595231248524735227453634201039067642090113617759510144569263409226236855769796482274453798260431907159087805265355290328116260455605097433422073092607438916920385214192249413550302684128937037242239084194673798083780908913636237930967306380740226000398600743394131877308030370524149588104527290353828029392133176499841859879112551370248999825007387911102597973187005947768542892412281575980008046720099895963826244224576895879186595434693866428435169855059608206388804017161225030640648204831361743461786831654239716883860353282449676590189536129802334559073129827491646071597140127077960779390054457080497091755948627677149139208558545300721099851551592297804561909206345040974988842242142535527755469553630835809930096126442915084334164552334843556499940682920690225369878483143168732148006612266468496160310028857619306944442939129646392982070723289201504067530526024782071962714244595544633213524840573648667135348844604523253148225866363836673945724577480681745796341006548780544192469468476369551448255127835627138216878510690510031825957081863774306316788721995596189887344027888000750726503736567184331061611199685214176534784385056809193209317199738717656801051337338658558185882652700978393550627629123553350444197425987316980655078351233490256417068794112345967266524435476756294175016415517484085011781966842986856166848694231411538436088881186075991098177280582652511125601851857780317669930890163850684529812581158530004530540487111893717686910418616491983175198674402982207229572493130875516910456570397907077416839394708673103446360055926865151489045020578186516064819946894596836032767559858262069413592009823526302059031108447519505895351382656147625673760248990753648045026535691197576387187992984993612088479020128770072637272812524819321615061833762017588738659511073428498767295118467184235520217137668752697332800497921516628888117896159099023591587513401066903525689113016780083695746434254023686969521862764690112460264371409975237336738315690633142834104208868159296363345746211323980435638635545448886932230047780653659550576359485764583450806956555403525229208768887572325950744327417396221981687439119902239413401726155565406769919357358268321958511682587047089463983795879582288880049441662015805053510357526171851651148268685364490898081767636890245412427290820364125734900315412169082495217681788411477183772670968665961493558644587236823147740756689608811916004888580448244913846046560077021439360469617045503778687200554032153233891374440721306588131820240701415025064590813468696909302747555554254377847532337994729765502626629236164791248314084049002340279538619910233633125803854111887262163103588532503638204829709919747608842442378520683791701742945075133437955415247811772261944237525879751499839681878419654022857300804882354763399672511209289587624924149802966706033231592292165570948760346546713978884102559418109590947758202277336647954804711123124200376207226964978439651903861838065368119220717683529151337704378746153426753284739579043516316194094030043752149828529994105885444132345132462171189139365749784500782900167591890878925168257426718483590483278867353094337995123034014400717252907805399513388957943303050928116938250166426364652960260218165802614863176751407653807246659090667158543374805569532993077982791007870718789287332971010109378008097668422777836527902473186323034922730591418264969925050613471020861278428821747885837710668988017884228334818864973099929766608102753831255595264118750587201220190101879337451167815777573694907332712139571316732765860516792274098084504429564387929531923320164695300934319436244275915183403212030350101580152977045778335566423410671003877761578411610473851081991027212792792294317956037188402582406223370419617526623161429943405607342121558176067653297732339267767271830935057098939297486098803724830848922631289394737115999196061830345832821306598917537311082684829850033065693735354306945067162927728380740800627558054829344955561644119094727541021112776042567946920640887691113072713191518796217541189653389984064681195255583496449340309762284969616481859930328376298573827958463021874962447856502241453030948443004003750036458524427442197290392384009295862599411794796684113061945401050840513332132493914920348366018936669557691936256202478215440797034030182703837126006066506513811229958029347252791880831959305537225306197545006730378578879707777853860792435814128937303095490443103232404114460705203379246370673259102532117736079442193852215281903916000408041689286443122050795873025791216651938676119466255385778870094228764520230536046284844398711416404330984461571329205915022045762837582658012836099014222463918947949922761212989049209818905837524576263591833637804221561789164482973181145885712769630124803048641525820771419985204751326998993616341502457750570717457776545201368360791065694105080215113014737985144462055339871280403893029367318319249422704943168234300441602577401977680900595158292113675214359057324845235772265202087643235140823102563258528358112705460662201346493713653105600886580699437214058705212230190732882840550397929539845251317581046894355124778976385930341374235776034626909122399013805482537863724840929381892431914546800022552262881147835501887473997703607734554777478407190520826739540325237675744087547551939790759494921922950999568994735674585536478589448549590007067603273592397508545623759801312603598343223902045580088528435179991313475209078418437249609445712671135497223188106933013787591289048049691303586910098896479908235693934912134626047298583213881329169201869361893238318435284158028191402132991960057002817083531368068537133650455416993240347740463750758432543253227573635177357839676393736139439923389563305130291374448969836568585381276794731063848118853641635436711247013548528353983756157823794787131448238375650495440418479857256923673101218327436487915043225408603478654660085285373262735333367941849207963285735498638965771372302418229578827682140567019129605363887441005362063725942087456120189593027587342492119483781319593474364144500295749709862874576403472946084748244244483166301248116764127356427091295543429409424791154115848253036125008673820297183075061261122648995022010437783656600432342441343091777388676621591573282167470281111929309069721664731178084789343614635754885977985197160687407794530707015140349949831452273669691427351791356916311993531504934963247967584486390949920144075738963572146038737765745338440472502205533763871780569645726900274623149216520954635918107056886438696823132992384729314572336481111844677919876282666427241208172988378690228578209237461118838241351566499592846775227317395241937853338492619661925611401547845692459013763341009940312809796047281503855453017212324075202123707338704637940259200182774698006969863577587194922527388097940997649126710909146697676203148951607459613598152019884005412482369416682470098713647506689021407930503735487663536991338968275523254786142132871805893090042065315149283795951428531303988521145685137036688854652477110150479773940245868586151519126441138232610017005853490045054765403277519860611540527363599401519866437609995585838891466238375015870012123165991938813965536010385547541355744528861057430190977000861961081141111019648220609416353236826701856496147830536838907919712066470960775677784194938278263125800127880835944581237748101800166336260444492950258916136669589293798044949115458565217599385058768758982556296127771708815988372959480227375036662366796658590025787822294849997514967733783950456022254610767002803684854005776956126415359868960714639601049819924806481140613701103950279363983104569687727473190889332348555142403739542425916824144035742254510928774893814047117619266204005247912217292070534587353005094710174638843013944455475415203284478490455792229609466610035434999656851857974177175842980296339736425812581777175859233547681572130572421501099621425699849022707247847501915585150309290905775067517775611293403116047296220954584960150578852909828106413736138972307391884069569127468512565065960025270833029168110069093558284582864275417653162760750106665444556808908712756375204827904850455769473614040396311449579935005278748738400597827774707660147607389895916337886445913731492613206266336801903559094569917775197582676744014813503590416540287531913015482031264346900150335447817307735052875401608579970287295377875996325651896729131815345616830724728199680843479602594022576087905457102153529018501973952102372538691923730438299700761800973724565672969528315716428822994474481026773499187971089609245476307711207016758193217777064212459688636715774086207482553890188713625448199038796277373012291091494823923732213091896200427221748545229781477471535197231022745703973833573759770907850242392476470747033559123629258942580855808132888580090224160451781110838242895345520149893365561320774790195359285954626594735029709881734647427627671092464924222839998364981793558026449608699099749111371779213883435945351295069189404763650149218412721898100365981130513604210792765736001420624121555234828389474718729018405739925120402973418968440968873740391704217323889369065734446148679691492401741320727397706474827570659505698966282684201631078068009268028765995714892543013790540063691652849012219589192592478520457072993163951016025633729915178631370629680075869697974187892004448309992586919700660836298012859922022947749885965853219585890048304903302909494782472478289310896728348642791734122455016327541822508087026688018477044085687615122895803308888840976026910142064515302934086384296880779511614623215339256076579087738938065989958773467133403517596581227817201016842076174227016694525953249917655298414426699908395754640979053813729805874269402756436156024792579078228742961937526789252349723817465914062548211408286364435573893913817576626089324221810457921317495403429154455662034843248006578979553979003722823450421476655263323906341022490439153324345463270342920939728735155835558609810618904270286414483025800062885203463856513000649343016665924351510657366821767891025394706018224906606467158232579563593739779718348426351607026300002775025539656015401391731319723123621065637736621249420928135149060087670215915241118264941056091665735407307049480028947984283084988518656728056558148120616627222486527820224926119092538256455907462322846316135152556196489800335215463564641808214764871966013790777722084065773064047686427572109162716648704331318627304633872474434094130261920844480437442621752588647622967560145050153892561882065780210637829661375233674586027223471839174099932873758478156891233849167930248849064330467385657618621700582498073007404845166927071301750910678745982866464985288708663686219757440001860322707393234272917546038304706376222984823195281986416740294438277919860992546070332572719843881193348774719129286256839383707053268446775705533996992497643375948305358004005126922741611288710916753421654267379489048605719226567540012493594908796878266040170296538022872067539568112009843599444022526490390766853902294394065137924713890562624978618322375274824475607466892704085336864539745170237653378016999333995450393444900918728302405201133549150535139239421968587917016345606863050301033388079821756702337009718911496763215031915675273079134373331087499793777841738803736885445762551804667331110453647499720365684290949065739307040488556399307913214286823826083292018615449620655384319451072613645647898709146455719503186709174342139109654552956079926135492555229105291328475783239998172990517535809377712212510899003792729883674809219009843537152773001780693902474805142861973643048056853498483186693926377062695318343397164032221018739610046948152059636467776576083061504941855723623422685263463621849079093998027310428731485952238145655023194862834560464897783524753629103993109903909604546849188189116551496188445580392275996911104972912493102091720383093786481985179306211668207326467140183246606454529634196899312994453868366930653172137530902264730610321042524380453152282001937601769028597005653468585733088663519301468120856174214335928412769019520809679850908773745683170354929453875644373569844760541461657384926857250987906020874304468601967164080395136067792359434412101971639248801961237491157816345481885276647422853288912884103609064349947672968261889070251748669514319765107770144218168032754985752854909982359862454074183351296422140613435259127564948956721045598292597877411427003658070619254097889157745068362437220567552171792871839139094357832365720582212303058801053032431830808794548393783578967274076970056636920783489341386845505377286727937411655438055034589998702947965540552431158970370228993983819313982034875363195327262916791906392387644958218225723471147710126780786392576831034217132376924061941320447526188719784036799092888211586227973688550680077988488420579030764889193713938700192359405152296243569375948105642659671073421549112688704509594174279701607963566704735608298184219402447884978794204090428235225266505693399067584068130219220760676083237888617000633337632146244579842913033470123246647233397964920589555328098225905864363530392139970735623856300613113470584104703292340766303260106586682666131064945473137749710657782938207180049020893359675244931688833655752953901782004096365164364970785674436447821015862422564338721833043203973019289625440793786895547012784250840261413072081030017621782736845776270827666909676730704400376329555223351336605836508694308599263586384003843558904642975664514930691992516219818293398359082853413537196069688056452451890811277027717517626772833735507092217333536084216529607648864293262517199603857888852586870254775496028967345513744381545455296683351607516277686845052170937852073719965509089372220118037946207451627873677937136933707782601391921080344712599612065303442826762939572680410681001954128318300017400982887628557297538419666522603710509400939365128645796627379952592629485231906472325435020979895403677761120483854719237784867115493551247677187372026925362081244015134569633500215936270667810603269135326503355698464781264394148630390897496619846776685205855763379250848299186619058718823028363669182384984256842643806122072975218998922064055000095822430122162848077895098163899725957179543591774395386758702993563102460064574953423490619677226932238664379258044903670145220267722933586579401076581418443719585839198491298604005363399359129454902231328840068468765473358845068719577970525017979422750235795233297854991572893747146308072311036828760129824302222130035420591330251823638353316425897968496770072752932486526006592107905860881670944844434553502054988088603805338936741489088474752247894276951215089634058211959491211194371484505164455756861537922868663439093622185105254547139265450799004914754711652152944020416050876226824404985982985097573309440033979689117125969412364141061281068500037692908584700531366798939699604822178130888914442204737437405118276660675001502041399124366621544390226974251666040184269608924511793285689057501363231775054029349892924119926961855273245842630659837047793383009241500710516301833112852241075478583690704452115308274233442967422835637276672050357477017393231641840463317776103013843702472288661279440014297973622673953302079359520673368441419255991199257167509719308952630061681978259317190054904409981306333319999189643598395061964130977729586842837940084341478855544742103247439330561878451648895062343846811917184583582664595205004901052840907352184764643476318872131034483584406238840915417032402180249819214305753549067622746383971788946260576959056975256983223195518971239586985192072645373512310825840509950554425490514410013132183595028501672495053734944263109518761071963898796973983521738970249319095727355484751069069522197618521767935566382847687813037637267007021756626322032528453938078368654768958148457359606145804445229780284167034268720838126550217392574316196400246234016722183653372053744823360068044349608892329829227071932591409080655585506383528433459451718023145278219319810237211183960619879866663956815188000159601192226307607417123055426146103133978120107618779315517559629051047737325942703169519518132159224210264304840936282603016241511372115059110831108066712834445825137201256862434660346850281787978089774397739785271294824512128460118202555619518239397005457962346428801538790741908055467320341290867530766985425643316537732935633146929045896736653529833475588897271210731813820345836274090268744145978831153311134178796278555602806779387772698774663001466013154015041140414621030755423038710960757669946303086485211333884923224213791846112173943504029760829725141392568225728333752414056729451774983426257009134930093182701166196931907907255301650981457734072823343848016834402377417857996950041565309152211488625022938552335682546619523353416740213583273841608377035375774116984325081786212016383203686760608416182206146568037822710413599683034196213803890209639041088814055398646150487860552229071387095060187337646279440903407789295166791916866193913926952379730748549504394917962995567090239368900314845315959683310059970497287726886505750206274451553629044784115759449647466194143036839636181982383728683530890352431169452084750998303731318214989118585691229047116436456951920478675302047449194126964828236606327604371447387938926481106375861864699009517442182036235048793834803629031995533997654266647514585622167218627397355143566744303470737011206245463152860576920443632696345627458278623056953948288687647268534203187708544319114302263892052715886111224400852642135412641113857249137947354571821050518860745982060648151342976866159367212077023739475405133101885081791944784568887008627739643251936423975177834272170015726122182250852361096416581846697554188483516606791279091109418910309027375625627052776096584614734274211410046505682713130468704196170438218983823831891612422793092079016968175297275761234587294317064594095952180722078593952744505573026279564214841623135261437190492853718671948824469447966884984647066380205944059432929212943061721452029420641059085905870863620662807607535652656236924045049408281402226248773482245120442790720929282444182692949555011816371297894442988634259671282821260608604617913622104677673944672638508990652082618416579744260634661884543110019583043034019355160488511127002048858185604889949994743618067749789584051240889410316183217389631911117850779831001319198693685665982728225422891952662266300393390743293891487607682044760556934262605989315222631697261032647693192550911303085610368690228299365691665013152919063023142887802706189339987242158406517987759400162783434674072673345441466275766152652265359108609883172850485169679567761203905510734579375672237519232334065630999655159085914331552295019484753358515317055544715935930348536073732858184938320181222059435802656979049995452484257856572304273679845637186175503281396657624103125811722641491426523133889472702963026510837388340576228957930617491746725605548890133522633359129277744193819472701086956242399634143166389736096810591090495028369921301442130660783627853163733251078341492118327861386397871151066615747276313441393177355673046784642931267716768587999992085634691205824448632791656438664267244553423066485346336403787819266845832512740044963069693803279592504031794159206085934604040016385595234144121565748604002854372428670177004286111368966561921105668127894134882897077869689164031428053026711440888773208169746709606542930760164875866642391968678303729887052640605068046111257148523338491119947433093606086465187425472475441343999903598264006780345162331789183810279791621445254776417266789028588005733744757341510452101469962580060877560219836602053218263118665374431387235534940668259411604961758771106211703446886786437641526502993617400758809978714896487335559011629800374864475727719892457654790762300354162880178749695826852232962561654591987929454250829171600396402762880208065570854209591531361618306575739973278273785279107399933498454751944219079084789213752307333187488680996798358328423577263150805768136041666849723374303370345645436763206181428024715854419855538050846236977990521244225961493772058920410010841942194475482529495192999831703323909444782381240892831087653273739972471985319049144534257187404207188702108188126059319025017624293168833146955577013489281840734615235715159847771842969530233583293743152936493737614142715640384261001052413961073528498361461033001289671076525911716737515960409305170555808891039707997949254975995479409349010216771641102862740413993092517726115194161969921312348863779114618723170029227463579674619717499216226003605712302415653228076228491949526743794056978558774821368680610804645143812487212166744012527323251573171311271482233237715430489279267379407827205665567786500532176208389611150218099531587665415644691444384504631863555610567747912909494073699600655412412898719964075311482141280910187002256180582187561165791188508110319456936676966668901111359319476704615354121028858221488300584822886416795418899631152136186561581450978718141465173624960088629920773898690653224559109369908335939113827292823719075407875061284816183985470650866726440776309057466148185356098669098240018010235978055314754498212650661633044376804848866851661892589649356555622934097818170837336907648281727401933679751586592709444878839632959876283288453048245209778589444867792848540010394245681747489118698622209028217248105762302101302586992055490716001350542318754377183007027165997506649375092509874519150550356234037424046017014848106591721601336996133930290204670307542679986159716534915648867739962552276580827486705873844763415584201804418329393474045756367079868991125987748615056077915654005831178762082878779646816458483452332690363044511323978542196639828819600475720945837627361839691011355190878748704252902438727138303982241789583439389194191194891532162560809316556312711852655749554175417896755877361513731021279700008568782733959148147106425795782147557466033719804205689574907657252449547629703120862528615377419632254924721637152871216768362160589439297710183403965474392951548161608524065664641057990709507791808011335066823677486668412817474391939128030878750806725159726970711141955008491251733217710289632976315123490625571195069332236361520274360823897903451809984287622520288851358980946737517004374418843032752498001532816022351871866220773241071373643403872724448563604452135393624052197992551909751381353944473507276962229005650669406602749232872382087147524578099665908351480899253697601566107707569387472629899185216344601822968760431813657286721955030127679660443413654277622197709920649170431102625426070527952203569840035162836822956644723187957693132885527061579338375962423814804465259849368652572870968170985378204198270327675690542649274521571830703457110877256688523733023060272764859506630992034349850603355248108292993774901462594155866783002267930962992697704550912155436669347884344118828126585860211337812956734757946096239536763236161209122252855240587373831872813628386867127894198732788070338260132756302883962311612734863076578259381971846919494591900664584546279508741655173801546499746137764979420506166570077858342137166319043675134965912286841498543394748779114639456786082791505013471202913031447127004395500668120761148874171329169420472011500804638212334966204351671819698156933159981584055991885431499494987127358063125701721064174351635414582227053723157437656957431217241901703391309520582857404991384117799323300498245493305944882814877471067400300118082443665440406071803863208146203801378391705340523593426555231923486890795516721066841221568488559598799712507507330127338080031663302463861522675756789700697446476457545843122007875793553440906310265083340351988221268309539033214991325520393209739906977452572460450584486275763410243020228134402209661605672511757172447726718908631779325466130312828987022070991844277990427877215172048989702377034009687086451068069834396841738660207308975389364170233815107605253270608893238077811544025640964510916419949866099765761531699087182258030588368037371449760663171779309764989766029956695232529615381168627905754850210785404490793594439452758307376127462251573404086157617991900682932899048080656366838406800888428427873821517853648010607925445708789729745025428232682725694588096909379507652259734706944680949384793842771528342945230247082178146170370417011502738486360981666384061138703378595678486718297261972429285689104336646927056208849323390870077361376179347350946733926743269168291100717420498459670496246815651037119635442097324549426375259928304009118920604692075402039934674622249341531424672806280996671095105137590451978620028806170374079090722085742737483608553904002162779467517015761850390139867951710196305675730577387624909847884478481422469346465787770230221856710881372146514440476160168709359737509793952200127396900147364957648807919305778036287268259609131069126416960536480033178981938673690646573733174148762743673558633741530942697279084180570317498552676054811497894347341527866551125721492704210139819025574290089337157183787105026534507824814064429849566565903154366824637497964567266695686497989336779978317868109854068926380140522278190885467103068860132847439518039964687852357980296649110193524310079180469575532143963091821148939133521610205268476542955458614166143431093840923758300690367364547248291701296806873491082385161076713843054636360389568496638729097030249350407661426271942690882839939819944362190637714893080984185734675764893007487754717335946067809028003582264052578517245771529695741585755986981026749448291729280136956005004742587447341445612257712925188271787655760369792514470075275068312688962279251405309739787287737670976851521488010086015076993365949977376008038998897942043532285472129053355516195414078889408718677174127000948237726598156454510075059757852354707616714477923427014452662583355863179535972639053237181985231355371414316081350400748068289135554873642723577377468937646563171914872532018699481822040204441681364308112874774619157285200566320905391197850149099717886964907908193863132921922724318060636370303303648660947566582613177230615408897638089287885118625021821126601731623755490854475623265337367872845921001887308857816758389177126868259063631346969260309165697695056737912820794159867858582642300885717282977378511052367171080417732410058429357189915820164403030551276972838504832655897724000428634187926314715899673010429938736248691403280071323412305604035416286373144008399148521590207633732183561526617942065020582704119313716371407490543168375048068432008576475643661241609765410438862701499597841287440099223393729122559371947021834936650728939073404152974783498230405266601812391242276399438243314664398639806051545999102015437555795221390249095539839303103495400529904889976009517265733628345240861218518018571276034883320411927599540877152373529257667206961570256673110506119104575004237410310569760060794652678352454718548996808032640447184484841426470723970758777178422611660181309907843977447453779051127765282536402044420468938736925857105061664453224626674177150828580611342212356409246499873949458800334212879763073802453719696927890665174365647522552362197162711170711789286912668774653132768897596596694288934765414995636409394090516091303358409003317839822069498194618153080694711265802476360925554888911935726006005191793624535216018207054556480973084483733123966163603419073858701878873159114648310971468658897789119542188121591991958169056246467630558387280127085324234381845130897223579698693179881453316843156610995154386571402207508876876063477872458900587574211888086319158217475145836879575233021161092701276999110360152155797464891535254835822011154604344225678172211009420884104078620017979377719022375210005271663222766287793253345940704179334859649663464199801831047780114396076126966322997678679815483126583203906982615332528688774501409619485914946513662041323097388818183993637617684425785758796153798863880003517163274966552071813578546510218480204315592711811527951068696429985859188701018076745386350763310064674485225732426408683653460091840983101517542887093390414278329734978695304161273237648706367203799551715610269532631477977202664005796550541652486122566978722247598300869739179926222039627162218750878743933151876760611146894798526515618364067292206678158725573532108931836551930717879610107748246303805859679620368559903457301418169710625621366720325127274548772678909135509705147903588491227157886219368856672036640511134999868471353942565440515923241640109150841459317105183200199092054928088394696193022568980473680484325061428266273593523546106019759123748444600205238867915307090335447780484397461280283613729530479642369113201106993290867460320192568947884409042165327042811101756041284428834072035228714541504480810307381213565661357111584401410857951467157423137132473666779953264162937319635125468629172188082033009701385027980507281524164864548989823876783656075953128482946520999461340293483500063002295719903967415782252047918043721293018527290159469215266884654700868594106841781870896341413333508552728573918897879768073509748507499396033839413953142246546518103488174952658577762398543369832147228407535192346249912601514396883909259122235080875926972067650836168117616012291322141322837738082557271942209919748591444743794790490796462100347950001070628632424680933667618289593202400780165205223414564816464742040484130264912662315077298158008895337488832661848468547282294230231520904137232701061839931713000042210915902501053815562778534848293706674984002555245995639539673365190786187335637099123211602882362999609553276180241204108354039668580153765287091505494564631369855059087931962332529429468808781755868223503766063584673060696700608412871510630280438075359597051475523744716092843236444448382751114724666931070985282154736506357468345273525180376478971748311786049689269135697967009514402539154941171913136256320936282417387350964558587151584292859801470981985049667849595643858894684262529599050651282071548108102804262218090997209291302573755684392033026685486988007336669861665047284067182950691867255262211023072461304460017644662436699236725801190127083564881936530594930250162835260474651985168508112647148910195101705375914471782873416009317868037368050273787899230915893932971334474724874806113598085032543930692200574841706604861736338937397688881369146870417064163258385991259404824568308900169683267600816622108814195392877383194320962363406078859824069206439890166008303476976910396993755744097196950552131767894691864143019568207055295100255691035693069886853298028728746545965852188770145595206396001741032096819443256283974585699169653468893206898513037239364805390563021798387543124284649017302378512477428593745378364140495707386060839274667797372569250329564661081519947695913718406061336705317804151240365471682954960085474967959404345868846889545989729357775967396263165462877407297977976080536179697544875283371774765275830456459123753345332251783624003947260623888230652798795694249480575534903817457621611559415633775501262487383189279273830515590480830077925810732507306501672002000195523489354369348311866006479354760543849977658144504737136680218665103944910898603911463831011932784736085984648534279024443149115031875413443158318475188097175112838602444570333710395384889022376026627052956609049250810174597070801251643807823577200163015813895776390984529255532296722682732113992054431112379540948911888562495506757802354118514361322250753377281438148426048337437019665804431524038796915089148946476935799046660376650321272802829819348215935428171669497140735828339019824606565333759722138542468706796168571477349972237761396285185475156688401179439337902124123826614074499518568526417617368604090828980529845279086503838853422297080834780584202466206178825464465862048934703436473618477344321544968186276140866613071194957711526176193891614443134794918295641908611919785277381480421835474974674946013646209779348734914630004004336921749970060989908885242155109224182214575867570320333066119387001148796719854254967952244229669512596825912594811673009614039261826939517090669247595684735810280902651302752787748171879010843797812786095141904185563517730739633510496712384638214027092580559530729659391797574778770061391583476392972312395004890116344968692298038693845912967663309904761358928298922589056560917992121779614444680630907205362876871189080992139034772773470017920593884808192469865721439978359329336744187585628190599602979572571838411324090274626579405825670268639083076532666580395656366362195901334888135633563577913141831327588859949539458272205360934867620162695503018919290581946672494723138155644677529685642738482641560691407926633446444800018615754815756522178666628544036284094524263505989940260180456566955679359781474658792580190960389200516152051299798369987943881018339374047738308621615817329645801467843780238415897130758412091319831128647207162768707324812753945424619039217186201256646061286499708402142803968576735639720527846324026541964457016042550887167840670469819653630986055475985627168115741720539153955171979812060454424785293785273116558019814118507149467958233096401902086191861156900981639244676208688967817738387817492768851169682765707405368205905167825164460416653552666059847333435350178816264504996230376272854231198145345167543262558949329363480288617087628579370628850847188704761279805986525261943446886514826547616457344485298477988729259034471450901985030817443474479888828307920355969522126990777270027088983840157725341513819332295753524847007105197991211310293984364681380545546126343957553696189558513124947181095565815223918033475346228089475755030949193055589406596636129786950065028308133494850475122868332216551074792417942624593221557967869790198955411812306052706570066727839077429437015109796784289493364718971667320228902922775822980643129887692702259008230042160298318528827776009337799439967489028305979279397016885326048029169585842495932638864668083922471780273666880852019470506707168620323157229495435926663854366245125930245361458550246233477068988386463714616730690541526718683537194455194165765486872296419765316524554459343128630078936942870592057115549128172881150343282825015382218091799273397046211485401332478409542987055495379419501938295973235379554496986194284280821237223788091317853983637483561633595317981593246669361311338374198428633328102061393143404747602721875237533028631092009131302379593021873974809920199639225520381911259012428283033043511592717122347774749604624565929107141474639039660668414566333141214406452071123368403388086086252888469168331926710693139541639367315661895621695059909074631998409409871260465093959655832927093393526182557850324466431205358539866254567618570036181430666703644946604423212232913959704094447788768140767598653018685621244429996453619298553575431636811933484463808013200169985098884314074022334561731733872737358004457752992796403600479774184155312792624462103498872642932781015239907238771931232924716671352696501909506062674433976363621701731283866434893534688403812171640871458795326044821266392161293447875508657103953244368021222771277472735726284464992612510975171853585186134034922787226548554947973430396870613557569807704441381161044319211264425506265325301788704227595827055218230048712725831795795957844067356706394290171034699928025751078384563004420119711791222912946704720324198721255959266625044550803688200792128667849891030758268178794223223926766098617985748978952830801627650375734601320228757038307157535871099987223943401251659236357688540487478969298785701348201760173440120895875930759035037036893557285165408905102957917992935040764992220856957828487173702772854345028250508200039434957358015046084059871748328170848069650114838206923272113687972969370087158872211920825119085139071069772472135619043874321624441086151831398904757357930004179090493218164096252596720183820386419994352184022150777034089628655702901261594328337017915846519035044166982723662581645903083553911036544929307668013809342133946749801325570242285098806023899777601024192209871666665025308682223336449440856774605836598714201855155966161965303593626402931965907308232894002165627923107609879231488477991495198376478425983777707442913395815977845077738492162972563795452004511384677206154779926296591917140516549171007010374154370119906377311952441428031279909751503138022736995901612690775322366588180676602582792239900565342337730405039419223469281523502629917964605346034130053244424939909735439089972583685945212769343499445617925775040115593677316502667353537861883405705436697212125944071361472251364149867859630903460769901239649735533238789333540490713196545181019785590618599541221183722308861357697356219021136756040014614117235640851585721148802312082191527780960437949089149697999054887809413474357024311991375772101537236877397092832441905272318306451717057052793473115798503880002174632711899319711009857300363654539972963231218998960923471568458287564107813402933556594978760655286563614732714479753972046854665886086787961256379105855015009795547546326764093415478496954674681460918264882265283851904342869111827736278393610593863697051238952653041497527056117926217206214738881498392873443204848911631748191613054984988101804943608909179301601473590689112177143519195125756364889147474835374118945106209992387452496632187761810486409261369470192622407146804919105146360425472059399612899309518837297119652980311846642751758534329961416137594856799414061647004590795967643701412485786151507568981759469582831423728750144536411168749445880067036732179856414375319761013135540719578354899371730907450339464765549684910605464818352022873728235451282867909151978603571062158016163580322774745913894685858793700798322694376995537021627980547692311606268243001561892181209994197790262415798023532273422386934975599809717276457481488039089213524350718981882240139697849990866315096704544467376294035924329447128424192776506904008029537507095114869503907461943731544677154151870373596219146324990319284396313854498509288113153450845602160266774963421083775437009143849088957888247482548724453137505956811061892019335012978238048877645318492033907887247164288394106467111901277852305553681815387368175657593066545093664412375516665185714587573576857333208983991675997960541444285223817952029362809157717265913659822420993854468606455993449328378869187414113318217723767404165976897365828841055571236931902872431293206285600515437460900611157365575116656046436986871212810514760049274173665787875429506636527789577298397223213399593720298829023904285712335684284288283940205264682746679993577228293628375573469354176892326467954405126033613172035960081756263946168384431097175565591611389453020107550952888833378675624469270146184149023262299348360389516280952816627318329113136930251921911055595522975047274236810656825307684399520608447120897285702003335372594926829168050723011271165516210534067575595027911347819347477677518966483717736114111007899661835386620690772205750845086466468010757279455093175002993239638830851681509348130394566389691931419339975324706246391741255093107963455753163182374973878992119876837062107953007737693098092863556813020883566637684864631074186109272586432840798089210078093879466287270061130546892643435138752275512799862460642903482438514334331628959337661661898558722683718545756430432220796813124198348464019088166834609165442827713592872599470164050164315598439128884495945863003494969609116864881599035372960675397858412639150150699746159856657350772215307447575036596125118359567953137254810133347152416480348532964812298176961771951087754997714453437695741113587494532685572659737376603316049521602437769475264113795342140547488346052091913451958118175300337290586381952369815478926333953754199804296415886070217721025358454084981794455417169301800621024716056852486993684086761829931965648298219912473525584067315801613107962920655000289402075303020673817190419391636811459763274819230904357960267224036922382171210841189696416361988501336198861007426198151365479399860471239072378486196642166669700977752598194852399150272714880710984505371378159899063364587322759970915699036917995097981298242359589473619676642512443304409691734183218770296492590366268170001677339186011717580792600817872780092104730167980355234796475166084211899582621969821202346326881807061531091480497237687944812181010324118123589471043240907966071219566310751777902644943825159840450173591771079646795363386949376023861296972119477774671886268889198021337464773649956938766716191826728935293807713259624434951381945272258316689896595242760461784289321872250075500059350174109625645952939724521415271918085483138457823880515229406894479024936698877039689946516417275312010827142642179557572370873189571806138773483268224196004997270665571753632070793873172810025876610289776706449662516790340146752104929207779402397137520178903370259748355305899135726216903597828981767660671478076272489040743985140890885251600801318186851276853301805411951160370895541696311317075630962692010025554980642989724410024180433611948809689280092810576043263045732963389766910091028392862229885893174332767056411671748977937769546854395051310750671075811424158190106137850735584912615438100760108405050990941525905424772428329918982854836001950102915162174273673167642237988348769343673581822534752232662802721389814068090529806920709164530598333028298632748396612233415010881685873107721126709868071388966380596322427277452970903267005114138400817146666876295798096371594347426968183570105811307500269159210280383178639542346623812695232985273317196242032466441651264257891909124168623869836076850392395009141753397323001326251745984669504789265524745957479163363717587384504940362634769378257037613342205804865888620404503838961407273012305222134044788248523098562467443159738630589452660147184307402420893569928782694951069710541512395329843317634381223449602745788495085085986746438677004973516318091399761200262053905956691034037156252963097923067190903278231852279023723090218081194823565710726904319882451590040835909368591265304738375514081592545906836065194900979767533874488884608069261348994570294106258024365655693306085021139509381192363012110891550558463205743435863132624244742425266900589188211176919524188337854382509524876685360667971480773915042478157745844253242651927144720772417525692693221488742459063989029600466658244210972994548645717876157065961544003816329947309024717797318200895519569517378990913127136142492194131985238912437043743608552057484499494586974033352318793636584530955567818272231981969673909063492007136305375170393547809827038426543900471610419722717952020197915583055044777958622559923126291403426638565862881999872103283133973182525226330999391319398817906668864803800619880606553158261871593969101642779103361053849245919892927304689691889947290992045735178403322415324938952566931577871984026824839544921883250149110492338824391665909115260932208105509959458548821631444196094509229787740137014614055346351542457915807896612731914560952805561838045539307134850790805799216105114958796250344248837795029947482886702233775723180920907998847080444730528766251021480124772885981144306912413650455437195930632177852893404091064631217539318616002504265830935910776199118940813819505726799522293714766117168856204498083840211355606767622210444989140196653893977481674218561917526903567809139589206420142645116342292432677378106980260490616629709812274817906294737544725531497128471048750126975368123183114439714755813258583868677130060406669803596233532170749075200408872076400557305196791253910772724537041434439871897088584546230210092873157616795313701653249588416967670286181416416094566875410462237999338805658353347044312679669881806775698139640698361208863838028793559889505129543818127611417889890769189386221484399787454045904745884799695086459822123978470875872693763048700435621069418931269121857043471929921712737933170061294150442731690366327375219623767269502263384506649149835897816135283307712571742722589881695305237583001514286630414283001694288077476809578878676886614747755860869716960171400800130132556753880370302297774883529376913835217029130678041881730475050408672843267350042909303927447267690037488990865278516890797045328825583320702616980800092523893426833283588216373185961221151577913002487807186123649005143774967541593609313040872764670912558075416794102001601812163858525940450584945004720616562349640110690417758171588240949234160442814555495920910801467334583575809186143186424850958297162974681291876308280377956744604761686577284724239822388024694437315873785730884047216252784874299749069611560475326420019030052475445948288727252924034914815239008321799169879450584868614268588862926122860518377541058352224299758647984416309751517715874453840194816058099146779650020507863856474292635177800798235232110176186537891589380025221508890808473605209943607079802901603073856750332031182158456122231029063059958249575970766138755459711350569859402017940165338703579429910102509704446511436632487537703473791806961946095406607911814839161137570928409034321522811464807050200500755097005360437928729029933564725311523081268259676383295857711566648095143635848415298448168728072593318513682011729891660852664785078295100077763412207510003315021365087320318720589433549930847163196261669752105022782847743157209127014620501032128045122270841131991874022249397201447837830505054919118806309144965477896551234676873686925477061303368186661744733373520551730642807093467672609297941783064697513666787653638136016375282946115397868924502960707936099487704461222851197174001962763534700653128031518869943920308999220193463157893230108400557048587504782070782391121655281897692675639276901283652119597905363300216098028068749145370279822050160856567826223448518806018847977450462769583565586497141019983888609256198881971248576777657902511903850608580128789515307651975606611423582701417510454377418587791711027672644049930429237677580026767981976530164889914442523009992806786358559671158301912833658099117531217253280307099361953227371375652126714365801258143007524555496952693076617172295633634507344154375973376582793243926918097060165817672142472069034947940746465689967703983373682107192955141549186740408991128503384958836076656477327161436344491677351365080529639608136099833162430729610784287297758034364279571799841613305934631167225037869300878734852707932511919153316422858424449593196499525378953729943731304502700882497018971600351346339839501211576664803902739901947371312400376907422721198055932947162896879837439455930565586807689774146680579134524645300985555487828465381386143222164022374416045903302073074642451865378324712131075940196803116772724069808886491949184817707099785400718581221124261890527917412725655288411065686378473074975919048107964933780245759368278247953074777502259104662693999306168743293850472224768600140647031498967011986287413229560535245240441229225222603658670349379713929034552072276738790982743295897402053129469918262486201938287470002078294599165243206108410834626552142439800480900066802602216628422794152194607609985803288372425146382557759602852242791295539710213880450451525488459778937993534270142498456419032879302517935348599968137432877430499767786896949421188035867513574367245849618706540565603141168836155068238137436134436483223020965363510895537465990451788914511794229566765961053718180645917031436172281899092343474485319936096938134692029241262464015077738337559784985208249590332807793699148073911082332891912304468088459321442180678676299385200839535686039432670345994641860160712094484401482912934610690140481126962631326093623543608551187759315897464307078573937629052474645515891565255966015744733708968835379653636014437631459717406021049321912109022349504101357171086327351673795692601338671973210889911810263912640229752870746638320363593573113251166062043158285238472152498105232920158336686569869562777429340943961299335100465331155424275012574085873345678480407730844291013659378420905178991088894455801389919005769541102818102761371436613936949810086016976148698775973733405600605251201362623610842539923808913001472841309495698592190990312388576080500190693153061448478787029991585899765251202385148754095658547063375012643338097982283475120816960952398510610846293405012461338348750184022298092094184479521713353700266143853267049291541112195907535308709936258464384932991674995574474954202278241822931141309630529817278181091392896345596404775488714221464470218872593542414322775922740463141284431966730989251733436004993087125490716960563125386987723283710070911473364529764891446852580202837568277747403232971426894574017059936996643902216057354954104850728507390060288796279808543720128353301525303439526929882306350272971195295623843638425758146593287760474917262422921712262484042515605272127567584392428256412448395152063051072870071038231294583744860686691165799410241998504837654341794839640642682875189400746257810974418106761912813513122950746587605315211717233937559508179403713722129266347286718310024717727791399477168545736834679740374882100376197850829673931788040996005961237942102560194934587929007623615783382914754700998795655224578726695916639788958248921977693495010062224563809799900424837917142803424279571688189641608447859247701669361649133082935087830324890745768241088002741745351825764662137997348959830102591826555987220471609330787255314847803762317741114950121603264309036363592948013586021484309906192172678010724276723600065720926480828648632268970780437013591303047367567183386641618236990641171527279115237657354890800336375235405894847675908036951278246780818312123984100930342431244059350689971817547498226923114610243192967959232939336314383670225843535544803964090915122527017051922452588419363929541892903061638031115223204981792375562225561438452862222573382580628549942463198549143370230980859221219303421215986242779244909271187457778522455343714414814662573191408382862679201375411487968986995124966913810680503379326071799140902378761809874337276699285673100120033996828171722202723646173489764614307168185299071981273055192862676837304954476095528012293719425966518169300284301415467506720163696069058109228862713404289668191330538245187285400446593397471837407734510049355200002849478587226552150837261501058192494188363583094906425636186836009113522352612058454530412783137741083662514023676298661539566900706831104272564023673802364154246142334666477469558595669561714977183060803082097509544119423637275011651455660645487329099965665537208241488363470797995914751795043765498359853339357164374651787152947601569413149245496306463209028168790225071946172423857090156626669657598055237569355165101024693816196640511536892885746180931563026149116521811445793690826379365617210634849132793218369519359799831074723033915306354237711864566355529625025753630535388195649100951500816938718292832112232504742346266606745485525136681033799032815622577025873422411712623816786586339228885453348192317742417459998038413369958284461685781355370759436172446087088177725516496306987826542451972834710753079355864580954769374276962975414189591533140743624711550971980032281040883947695184621748899683668442399001943340182117022760560028680611261504949826720768377938486282355787820337383447518903806293368174604353365928283021963211371871886744190200020428108891935828380422263033390855758780861766939421066646796528777989981825192659604494841088943480756237139976101456802688178264060562480218476546047187805694114948778052254879350156235778025745840821192007644625189678830392241448906642500346778942727052058208815901044199341389325874546571383909892222926523627142452906966271925077869254574200449338607176134230669047740141396732423287053855419559315073772349439519644981186693984914989250507113709284272604309713223268800753716655527645300902120746935385722623689278614017200591791935243286302859811834503514498427210263169592972380152064698350990841455556997822113559082990563355543286849229905603196331433004160575387090818084183925836436916332743720360498419455032942807686347146854041326962492705055694837817359784308931894250861198815710397775051346120967743743912315563502825524119225384707821304283884557446728765902353668215147003780005207451882192254023675723541455803644185556818750332298827612629579597956763929879503494830567732428277408503962853113954607427528995118878340978235089621070273533383783270132267308280405531072438178023832484753550428406228099487281416776887495147298392661938987102284316300163416104465118287583074958260821380113426715735337141986474215103920548824217018162044368773322683020816702602250717512518487488627726972507580867647757812013691640073784509907659229397535037075950889216932763794608574399264164301626377927886556520609971100968120487460523657205308333495730978842407687694994880919789520715733566287021862708740283280354409374994192790748325103341141787143551796699530558589415193927398292930959248859130057001551244189353350423108448121208435130576695700264364191658301053210393710739109727530956529283644683047183403768606055305063590706650006349404599045290319360509637212966487957913671180207486281774851151384347050699830064456006922106168070326203822469359029933613906679707734759946185276858622731719432969149440540749180316277007853194053734149971947802150275466633828988359744809664145230754509106369073854393835578916643496833269777350851358431505940720334204522313597556396006806149495016435312068257687812590721554411330770562524921474545969066526902231635756754671133221735831914055147412931499386192749324677879098849164168392740392199492932634739500638434148745652286524522219938859458340043164349193602259907040605820786488494683401719653658798326665204669398880755898016360394312873254443759379749460939631976956372453309024463251870146293425380238880671894470587386096299926595251448200424922194040668925720744822866510209314375619417644154172214811657174532292233592466540007516029382361306003854498177633929821401664182001019376671669035293448512432986767508453140440341528601416777166577823629386976733931782732587865159331051984222523086470365767357945694852743392443899471978945385622693805222968861201547290190425485522683858519075811560282268479045886052393773493741407848157027311152546517668155131000266168733823404706165218148879098164634053199472232646635763659582238759883733266271400847239720528286870494198998591101784429823107792255536607260686817285991267252054766784047992703360082682207214896809320993933976683918857817494558056070942469816415671153769380716687318777296897691616284563766244029968050485064775306330771487143006893377094123965927149290536760731895005592149653524236003318201631361594837059969047061667981100157230034542567728138861963887368401750978904111039306937314575843621863643165729668744410126824365102658435013885037627137735836682446277936377953712275577671967667605896162856194810501892420528243062324838820130843407240753639897333955802524567215023353717093986241647230710032489086178484674522252055260466824195406796200859049441744425914774429217235919793647037791707881421049635069639965293586851194106480678315442581605060180116278114615862244304776392870443226880493875495936272236833961484904692587137566353672605207963136982676843595555261534175599460723481365779774702538483028908485265073151240501233696546376730287111625176074088855412415742285520207688437834966830962278852729934243547867312074387168555740617757504632164857286569426133291432873651458597110906143782088209542931143201929568710245349455031938592799488744024590460639959811707187562029314677571959861714000817892703621336867409475800846411592941034575930034418294882518501467705711163023855022042084895637041449592966094586328414232311849541793448542764040403027611312722648170090784340221703102885093708478581035749361380499099564131630720152744022940019110141391506671587859816040951347893252906950153547744538465301564858215637421293868613621596988363013396449626470539498064575976222665472263776891769623528040717675655578058505580539753195914133092278038406728154466667862780695954236856257827829628027995476750257426920317466169969922509520769264599956568549678701119889075175501426019117967144130323562498163353187137626831378935519166794397862791807503336411825186144466691651727351482992393068910095332655278499461854178285181308831414922382035009446026906786917713670343518152157041667658705796349973932775687749039306331737289299462190811877940550145749959620906040110979384131452337003562311349168225246047154467617590255541275375247588558321805615063864572177331284664820133008620205152719714328236398639822475333407229758369103105213332973572337819077740241204193559439033403782491080408924931973384298261385424483063157028830208779754474342640140460246981945316855347041123144822765424925833658976612443560258181017098716462897188339601103163660503750606483874065829566748084513930211661705951743755939749669293103883359341279702880366136895283102460994365725410741868445693076962088414007585919978857359235372349323956873665437391162585870349116393432105003239159406968030243223231784992105492705525040864954272693712320339806774059506960806337732038724892368624088966978777102597218088884190945018231513442192364384870025123498989811587059960215211035932193566577672566821364367582823962624206679659937891538898123770879940737374659632607522960448749833196262618634233661391653401342773926959136401285722892754252203857142285695255565508585506976207187863441291054621945607636089762924959350817142181294545561768075096838023717218803388309735594375531313221731483554841727738604726216079205392567044039623628244762828733952673823080112266811180729064957772784341460760608056746914802664492852465355333737127877915935961851722641124930607873490128532713468268253914143538298015747648555592025547150380395858199180781983483513829167264741688831731924262849988440144743692203005706516875433083504145453949495360912181491752625249135043122982920690050214754629054283414937842765657331935877637404110433015519730691027629028423616344934829877797430336896204014746534831408384276280693215709263787906771503664526688002670286521183841049838583221616539356771485303644853060389809573922732354783213404197660561438869559806369691615751128419376481022186461862401380291399421698096664937740036432086902558395123880853090235021361252113363847915606580226345729882664959727944417295881487080880385427358558152922098819720386791573683366804034593170049322819800160604037325300392707219880585175717939004889333248471975173875321894020164347355007309084011978668898479628361360965627901457807909566708812748533550887460467802989502133779002997154774302937099250554116647677671163385992843808742952763084469270575563346005840117288553820419585461133491477924135705139628943922345033649805496868082545173316515492539418438814854532777691962422483500147748900280401416081136298055137816912616065477314661367676853648106438003306992260644590737857246131706444151168561388853306491304327101132504586463983901980312115830346619636654395269755724038140010935268929871952183403647290595167901577830269787725592839095228725696358357910403384656853699391323911777539246589058554079514098969521275496383264049684373357114483693353122059450388441558029567939369263946548125523196173772122928803111663288196323712083166547469771327001877457451679005896175197363544413678701794051549195909507040208817344293995650617356361661225606570033351908814898292050754923441117044643098655921153987460463590727068253545423807374718864362296233654759801761118930072090238017479787080247375497630005347065018322118997304992605852026513899918829282832358661542196576797789739024220641082095703431561149564986051154225098345153680863019095455719961427049844689153745269886347168883305174809898453097019779395512575797704385125233917251037970028336412378534394542363195046366428789370762323842822030442691287115626005152059858365510298177799439046545100905450045575892361783329404538573769835170245386409203770201544450355093171109248606699143595785409911446983018323439019460473005827795922517220455950285228994883995108222574744092848794912250059347580991766346248869422472610368848405557406161870964045658832993934973507262725627660916555396463480470325985483220249424229376520051800547652656102928995246627633597397645487443321955175188730444256331814189477958552753906259140624639049160793919788695059361575227238599556532319981003988580487714428734219441821212521191202060523489014084578851891805505585782512784040699567490271049360206917899060846381588586996707596458042230819391790302880214803889531433190341078349437541706313949966465332605158155821165963673042326756278884595729205470164462711661930780859040940069447276831334351479026448219698055904416080056134441061246603544227268004717179456188158193648367274374971411560885499916409073824597233504262046342907395745190873045376334043654377024432422827226798690477897511118751013106966121461637928968127472339802587448128746931193171663668377720450827170723027637274274343790543051123397937790474093682458009788743842961218750533539823309000723765996344028111867221556449451692852476165453582600866164017367423425845090732028533686068131122573101639760289856392182946933927272925820071580101841311157000137491185244198846672831358831809448092184982595188934172363128434673085089029088473481979036621793435506559215797307858362061637218130293815949708209812292465472770738803018511424271095508648646643191137645806950185902352315776464285424882290592109715743564171490464066055027575693468284836400361399339174653687920436604664577993539537015865605271150408405525077759522434483816609983932057802015009855838915628314777429567657513716294117312578363204094804629066047679267781187903550526074489262281294183872050668130043123797579267057141736445558316484577226937240215396360321574404892873244299896451173396746590100314610775914244901271453389168214802002620447464923884054933056793376867687245033547047545743112112527672246865692281378315731532841083596855051478377760607564580164663472013573404825399819492658215420095837641239696246545709267871650388227159805694606062718981699505230285281842044323762227155816891446621236760520371970305889285995319010735918604360267853337226779830689586928510692056854870645491365049416475980342418749364586988510080688837921902100381499072184042906845773477443415850378495058931994243193506018805575472786429611658562914695186660015995217773398807470066014379036474981101921520957705495886392413682075067960886916828615695499095740188581117106876377775848335121692844498732742679944026162126776653890259740937191170919067485935229800312824749098722496058078435665785681583092306799149864054968474467787832840634427872390799078009404376753948506665768555849638122540030505192740398514281005240722335605357814925293363659739624002948202437807667648824766345739759926496135671284685343840545127894412172190151385908247755718098109745106436819019259995710926849467425565062587390728069520387515350041175326562962227183791516810352412487215705429001790453215445309315552677279614951433179780561846992521149187600877668950958012448333200182717118217373780273318974570765979579875099935780649177993442404489096375855690435199043262057233707932946117174435923434788683323197266412258932064551009276308399240161413813844191649589532067841774000122658508233346281195456478217064224045716370453130662140478099964953113336767415209144507201054611555167683657597685241260710005414539555185248784602271840099669635507087409348959119855466546164099002104425334388909042587442293869650409206341305057900530230757750294428435332506773439864169314887288487214146630900454683366482408477632944664054659093896900905292507041754860084245998101326628828967763469365024885173430822948678145374186072947261304774854043962842170711078360723537848650489903042259861444637294885009754782011248765737197690378124012955207758456594918851274068093474983831742146990808654585125335265252605323323987312440897313539920160573130581726115451649438442393656537182588417635472492814429210821751931062872960385915412057118612537678053452013348527741710504598750745223474452461768092066997262196264777651760129581500456563265882873293428433131274291805017731060774033601045851541128711891629435238797864869887194292071466422919847306079468578958359359475631345191355699597918658929336138577195856887264293151526136408688349147478330583048619444962951860096187370964686429810080805526731709319111535510306591446136821099364301191525965759652784037269367674750221207572152352211376564103682191420344457936267768863676632271386622876191263752230549438977482298820206889265374512103080326690697802977312186852819053489089846101529301761683271107515909897159096448420327026227560372913721275275561801725430955232330826695435304536161412347855377417097886716427177628615499842386841405883035269313461757853313086147840077584722717076561302603597986416871751554685596498612086327740634078202563979643206483571585385198882684341329042036564730924532848810711473088936694452785099224526559569719603440598731863811450724135330554479173456265574686810782127471204411862322077682929825925470381456239727749793178198821272189405317690160105722506366515434771321615147959078300110457027092917926455559699449540303934940146107291075428130754561750174839780924769786017100635860009471088043485547710775873088343930322574305799258314398204356225035858267051520265467531754691886107373346383748137541128866119705125635551430106991904278119787401258635960710973718579999660622290067170626457452460308230222656198292053414014519687910282370736526303747110861668120403944693845905570885381754659916690287608596722162467807962413289877401330421552523660203007591765318581657383741080630830214239374370836447514905003618806480312519426025051277398934313296594764122998281172642214828892616785039307844204895351285714785128207445506693668596371420940608502394631777249936625414653847908560299120628381578133194789350714073198376716382926463263664681448261309890882219930748059368595415670671213648052006744442344226071366178005490636439191057964838112048517312695521525452547606446475519101309394895299181800999235343448726966292989414548683851319862898086470412606145878325754774112001330452917931029295556828697186884252228785814346478294342974248822679772456158102706862712497731569101505020851242878270965803499372462464860976926484443142742087764996067049678265717487269754497424882961758957960006335027470713208024731696310257627550161633851280425640048189438156670823871992518031686361655923835804549879297019912861546060732800101290728934685615317963980153794953225603436801075809667537159538450916027116454791100713692948907117303327060617551817893387354522744811651817664691289959954382239496902040965800325008660327503773398605390721034162147887615068168895605476838926372163559588428538331900002086160384849563740019062676846177464135713083007039193676623918997408116177591099175795849811246926193125166400713168216405030438892391998154317631023439490694263423293749026821455296493707898743373289081910440318913242536923888254564419778350778492780192866947825837483615660404310697500118439379890031247225905956850736060181429364933595290639863900968616148579377752756977895078810957538597235368457999477034474150229711552504559010324834151814817252564402474045648598165275899399636035198343949939513817336972774753037863223953163334341228052031240148438994426471376521292176350310372984935018512150746269305146635012527821836609468508949616849632026164884675818123569753473331704062677639139972776237340427963285377170156655503178433983670224194516827037358356632323852293287093982960762001814670589882255583148184630181344677668559545873120451487620830076637123712111369608030434542629386523404424006951093284130368376677095164914855701951933031456567488752816144406842419041195455479019441628179621148973459224956319301002358667328850816950936398535236639272425787267167933886431431507001650096490496861299910943495450764529281281686400797813744898433398138394486899855347060627877127199440764918589294548635012152665852287500355976206111283965136810339528205356749873892663260517448536059963411257866140152099728835934166471446408592269288340851616916789214319582604710498800245713265747889179721505707223909104482134188809034416266638382339215372439653628319413989573396407867832747848324151988334258956062817884955648300540960616822430373793334334997727868095589727191237467116844913059111057190167275376601700257374190343875097224700421225157952459928241143034760653231561712872990474713385388039741479154730676020576890868236888607478972191090396459123462322280882836749585351652317329213863502599909549118747693108198038557050517453775316489314350897656152563152327721472359732014561178494439278803940124521725381746755057823811673495727559073742471288207213910487949643164044122003976226493481290088508803323530712032553252585875217922327479403229870502781174078617482135905412030542576945150190699926738575698297722173796339613872415860139973289419091723786764991558495749980116270486428011194680925276393587904922799338285303511320970712712784526470987957504623077348481990513103028859741332593017974678244900114282587807783546202028886400116908147007405318750527212484743616916848712265638729276730841324234074438771022666060501955579560219608673806089429514084530781319250836174546786183521247699494088761524572024206055010980259084647913492709102172179507356772277590869766279400882038027753306456955108771365375335858166005627050702383275018726408775285820517165075826866706497464938298946369637608177979023241024129891047439452548265732516099394314635765340606195644921801045650106952888827166138685922697898748131296083032868301141529798594702959956396029629603438278709472061901512930672582221488805556416319116729437334917167689436572778578442310141290824338884115482803772855974622578331318538903883741271628492132311645514436742177523074266736203648806779271973398349819789628214350384940050915264395206977880601435686615873944033179849519853335492068704621740019973245281521128385695065054133345079105091240745863030868167909509919091944740897565943775894321222708904026507764871822230680527761980961912327955344194822788100926552196100593587167044766529026134228150173770911196761613667020743649495470821416164567654260902680652464652380365109109895130050467849403037727014064287753949622051098150836631450247304518759106723528429019552422796214401978783170585477989073629861874604537890067078492692701154885439780555218693458852645827635346191755342655715427948485892935002491523060937204188371403763524164667724997769550352894769650345010830575222604236592302432113515775076474193247602848244300852303301819924613847181683724163189684053102495000153923438694364991715847201448407082136006497042337996606111672069519393703193652540243549202159808905280899963783092165247999340777484156472853160781746325564306756309876967172349040822754385361113203037404842624006743643166403496742211497013552340849084732022910820257538097092779312295803025099479688344752354154200404225036403378510869397578155872120829068047157179731088316229045107943601094184989103795826392556443948922057636972291849102617145259860047776270963049973216141009964550039947037474750923511328538005749021023652810995302171434254445325026900702247199950860170990532077526418446589783016803400057521579491202054526994791787090797554159871575815203635265365758115786735480991206809949001513009373078214853377697603994243945235924181324358992460385924812683622113362991285543226689096104845210609587268985965068422573536374895568755876891554226503499975216505448564219559402331069519532602089283269537533498814285258607777653706010223074278804285297816006570253522861781936094113074560408802326842269183372122448836717834237075499448260272270849331302457089252227682368499986324120240504928477265950437959899552971514100944835324695118029383154920282158278803415446521914866273851557162956814598292695792087363220761429488345973890990183126959903469602220126245012068820849516325439450093826020761150584339622652577471291416020639676732547534603930001262516876695803060245460418987182457430303342287725290911451978712850564716537574772106291253018369515813292143662737438183651463473361986751408339885859889889579662882481284322759885626882743420094026773906446485867945721604189089935637999465481380773702222599677220307394925485373713477250218254313900730794214358024064038746262384827271288482536370164257488351250972187604600648593690986667427793102356237421893261583251020831385622313909868703398407519827578583997500612497658265037583576530267990625707120669043138520471802051994227752793543544298244506690692037999586821215403422860939236790538786440092166537505135265524688483398141038139835405343232408136403203672657984238612577657335084482891909999936058370936649888961175658299075398897995637358987310552165895106453879298581347333538749060229323528401840340356453009965595237867479152555958852667023147565235014697900123785690276158465221164698125898957817036630109278394849466668092069429940090092009968433054377858548163043270975502208817557410812620761221809862555870116210397656884497789129545358308046288718142268694344985619661189017785138213300844355535360620286706844560725541274810052973107367867119425728637604315328507004299863384476843380834561043281714008077706418323209174631907825826693351342121537751157931690504068469461648210971821837922189788187421581349911628930595343634916444573951526014658505156807043062808495722548369309523516298495564267523449097393747941777557636731044745303053684612956061831170709453162721715838980856051973490597671202070777799247130858661395846676837764764967858950898412878938375681538970669617876159865026625037269181398391145439480008350537827656684792296483291231396165326488114654130942255877454135295161390511353761469494384650417518301603946393920570201807643741760938400883962479141535290903279240183786925272476075465713927643026139416305273040455107652753904215371659055821738707160591816700603719230970489185618141995844245686790459666636511302594043331897189198676542154583721420219627873627440964834602563597294183391041602530942997516150414790434506100055519330820468923050288627368507174542300184790378319249164103735758146904759296810115314017083590562902236701696282207780160463847445032907735340781859088313361843096494770418661714407714498503163069226553558657793924151868745752705535229208505225495541414074050163634878251843233647179161861762926138083811600427335867052215081124456286911781500423434771987548215032224195395674856165613718728832793324893654411765474792628655615990869552056642236286017984473209903945610725331762851723831175181962381056975283732892217401181331705373486405616489091202816337457508432751807386661003522418793402955579532218769158547215802403891614631051831206594598861759919324570332027284809139222918885742314182733221395014032435854557710907584380853747815724280698197835449907374683993276646423755150365197944875797186966703157871960910195545127579744795346404962750622707640326167329979534940558615583738882038112709699087450565015043936365498917847948666658011154045398285321462965471876761790705602953922787291235751072526887051856380783496017283501767499697153528246397240197288286955596167188353549867232866914675205590715730964463595406817275068214458483080270175291717669441008823513156077200807604296695104701269050410100838308107566182037778961851363982206762695501936922281822748813968585427615546621193908073962050097259442561765944218292547572815802134606159538335991750422213380508649749677538708305848252000720478934890972914358375484241782225547947470176655140346501166023356956101465566116843066744010798938903800533090602645665923716046679331502604105597268830853702863397467236581498996561646408666028451397333730646888317658661070481540350410391460305597151401584957137134807810074719658210688408040557490215994541296378242641831443913765079252413356016678074684890722589804804129219783504247702326287536277422426314508268455433760233227420785687672023516031456108661138171244595796692999198838166409789447032357597822570645448000301699210726265613785223736897813436234495111096730174588622838049395047036572307933519047197249623602468439297401021495071398459354769460579286386097307947052938126704161889581915355439284913503425295730451000803389174402804419842844104435151223203198641504660492579261822838691048022821078849001239527222131702500878227739368938534272342846612444946814388949096114257297409047699238217043767579056363850221972959711777962425724634353129702783863258858049016171386441455705941911318482318996954261071420095540917965823624468395482238000254311818853935576065084392561718981945988237285288371926237365932576179690818705442616954737158727601058534955897893198457970832809445833030623878195827558264524798721096746413221820207732513858140106939714846193938229051414428511066148934070330036059367120517080398368694563829682805883644085848517988799404153039242748240112665582799059960092422992620501425723721353120075082488731981082275671112883082209632314961615710219484815823129976513614646390336343404528877973740413015086797182304176390007136530916153982538766039402334385720136650182181238754837244960969699615483395781476034217080606507472490463806304357551194439581595456501363807981271706850375005096210266955232789352465153433536433407913161355895977677289968126268958401527730815561189981171569014186480927883538783352338308194995627492833164277194863988298799812492215693737818168408851706923516363018453534641924148253876458286380513301191652828321864855817674051888178686650600198059774840149635514668050595271689598303899734462061519574977840629305589726089278009473309917519449265778249282421424548029495137025909520697534457784905864809179181069206730341495414633324086139530991581326170929519975759945402187750511728600882304383595591831119996082006509064523183714505901198526626065123863239965472866976945150601303559934140384765159167134334189276701945916708311683841389673353081066821272119125251402316653698049055961087982172599990812966365616550823957303168119213037501058840661075669784906106841781555246863799089521674746203395411470438325296529254509114759964741780289665501703711268504730115463019881283862417632744960789999075956267499177594720402627769265049893740914006202377833522122825721166801220639140781125603167725610613660786533565696344218399405721053500594725284578892876811192982627616621885474143934893003291339230263463326055298604810431387516732297888777704420397612996959857209621484432307106122477931345183117846767212100355286103066856478140125560923974304176240085244546279644858514882010751970937065599406521991079673873710185708768116567543042337429731995283014756207009857982610758521954796704267238318032273843732519109743723720814326016787071497626371936789992667310207027040532293978964592276706516947879052607656078872161194416741808668923528430245680449075201165621742508977527004069249076431336918515632427232089662231360821401423310665393361874256540506089507937425988858514211250901151691020020946662419927704785490543073020197658241777314202888543105888648026915441725151384636773729812672516695673076331566432452256686022445872114477731977582711914724127529882808634756554017588692229343773664391281458050056118890213102881403832746409043028718532623617002265882255177666439544387941620330776591716698617142217050912564491660922325120999635391191851558089494668932760768311174061233137430839540805043510034094370246363018248720881770040577629809620430952294412051779258872825981476739163948796554489951196921562809043902659704523895306498408067778382851065782285012457106158378393453421196009032983533241929898190962905147106679915611366406900384057826553439795007697710399239964687252776900537855187043908858379337179433752468752268761126888025775282473302079081187262964614734910225671564619972820775872985841432186873370527159109591541869434655909026895498103340308836453805482911063322393191876065143093806023613257662753925950175399763491857159576015603141341261465393897419885399932983626265770401806593074726771494275782573768514439161129803652759861593750751251109735636992295721782935268962516939084220651543589604526199282593839012326730283758358744796824538371674884558272788927024537018956703533375338457976317044360842365510727104871852520883511784065713306540555417301507783547317761575114306242563570981196047448256028965348051401681398054872784638145775504879520283276429789677990689367367491719438697174678680207039958391273886229915094321086777344573991003539546932732053081422775172129046720253384072109277515855427298508177536671497495588278879462684981626441246253911155207643186127350983939390446686956738601697362836876491078573814694598744507740147916026112105469364453725734030874000016899026799673707778313174469653742629691426473168584479917262182324629146523587805835126457536225067460585053835029051100953673885121378755963949946842735655260811039505454522360726749358479647708355403486181209847247459552879080393363407758574672341389754556114111345889605396653861467135647306829497354830300672388823225343093598960095324791980908373836238372164504577176467575566050093553039333968200939618366415055357837897677397766195822242555852892754282826164986679704464249551364269433472251332393443952880195037953061373578350399350281515427655386087915173898246961828627033294324313101060087478423159961948147329347852840327387431644841736676928352113785723304236816334487157614049766764254054286131829541069427647675067233038645725976978566537128285448623034105219392034921982246346228754596448663219704843209151012500575498584810543149074987569766511472025836968378836589451571650974391192716200622622086180312337868975105125653395414200153871132465476317807536634016471756376428734320162045848974193350652808018911444673566077986083094326688429284838524281546812155139179659166599028297788674306214326341116281086120407645648243980380097046882175753446479298098297760902248402171149790139160235800780327719371627566376612716066325761656646345686826765877124016301957726539912397440037668266598275123057514927694832521100605648118923323190940642384794371221149452761174523246746864784313249819953003579954719732193658331142918321744784496684220518894462469301836752481684209605441573393271395078595391053389165072555276682505966426291647415220601868130409424635369809359774138306920397836699509949083785356770372528882720129116186415646810963483570390269081272699742425018658965518572286572292024824552243920284470385935560372052815984568596018374051360208793752364596120180660911125303247129668292609726890901799366528602053205382024543333364927147904843496098635520067031689449936318557303948151786185131487789448307043901749143630967630172935487893419998010808813329052662698627693805442121685722746197635882932917369985815269819493332942274948118564238551074810183945426865447189489061858413172666347607474845393303334715079066467939501453560898198962865314685063164119205109923243783947012044992132120536292295923064244969432317004142536850979243205764257816950338589074910302179702565064798482934698697244885236059782184293743491932944771487615271171673281074148497059899495900920442497166653241510603131487004071478699190366728874198058524076972687386017406478849566455658427305637950917788880162182877094805678048911454477228541618031346273015970752251413988824539566983494024578073914081941185541643544573334241783287008167623882159070020793113023064218732207772204521027821189966523016849806302392433908610120438777123389099340741567804527372595776468810357496427363915563949343295709677234315288975485985685419440271325795656628658670231909752840914435504372119369797520824031144948903110029256747351327256351715149175714120116234627784656391028382633296923330386686328551125678281208795393461396369888728278832801542833013604091360159492400778588202201587884636130820187815165264463786925129947916470518605227031703582670064214321736654043727454483356809162807547186411744038577188053537626093173517438654627304386093416988474549773705529655077977557669823346367657336507125337325027952459538915511606797976780675424651627484231863251331824283587163934759759656979090117950596327931809329487015105087324065820530132803148118180060966579733319181008731577854091374232175414258612211649167825807695033492532354190813293092221762850214775026158986215236618569741553504461354403014290762341909043221982427812135123903662893477217040923494533088761675734352835567965488757311488498792467746472748480640410471407476869138772772739430424162560484647618713201340113759778170935155924890830142110980125146641298364978687253648232276765629463098432285087587206768487155112036073457175695688865697013528960686068447344631045845200997910522571270940891909693394913239086804302229120405388256192160005163681378725338467467587357932735746922773775277521320488981685975529245892553601612497222589025716374862939143753698113248236859154014884829080315242454822466206948110398872000171637943842433654465527283954251855551367720650554932901247264395672833784346682034292520361788579447221827915894648776534545515085738327201543984210147271611988908649748288688958846321086057436308606219531478577405001431421311000859440441264362983878649990072693332811270893087564386470679588322943416656355312189715883181306473885025094355762500793813266361988332155285593307088250010660833546361527208908180860914509716202391040312550941483726597434204089813762773068273841942529461904039797368560867405078142548777391201152003367102010717338233975796309926913031300710503958490663475149493562172755263983405514970745330499721286125453885262558660952152774668135570930609969107970055646836969631936396504421733967752938739901566885847404385225157179093054216733283931920548801042728115377653449359361526070136224510235247983705990500888048979664016065890551842796070994434705274275928606926773682687685924081960140641537260406454663017519337738390893787690900767571341011010112577549395185541399364986741834224040198381754954256166341429689393137709612832622386327940252516111629550520225530704911676323947757977954165276544047395862075185161398171569123127192193385204869389155221563955049902135898425948257284722635319983364769408342486491221119898610103270426916306020375957313717967306862351803625397013596494174558458934217133463145156570695281045738939260960712469198508270192813596359858712430685070016715947597237713287633153330697798912255425722481288521339463352411130738097012851028218147930316843007687614296467368643704246748888916125609496758583867192150499078914201783046003530867938217314808313596050154237885212438982500604762478844020966843089953029709267894163735451803407213614313789916861003317752366664326603568517906317144250985714969968881440750188880885526081185152007611503192144320400548631759366283489092619363495829518385179573740841432690213307643002887076600875116172526128252077223092175495006959841385272795089746318378325573140209464725225259075923123386128097753901260632672585228079634199357290814691706145095124088169227596851926446594495939213446425517217849347630490226564251121767866524461060514828089025452930082271386537594016127433509634798898299597404652746860689557447941326096711980954735249555432971122446000718042309960999553420189721646527274117992469792921898809770023269248328779599944017349281406408094500923788118150710277400002634828850136947383415475408317719361135121831175090238065926641157617129029040551068941842967685745544369793573216676590559588177510270531968785772525418091111570613679937019514859213681047096536882351194754863462656979001703483784772218878552393142316164482860722148652581655551498010902477989723676535587204226207779091812824807000295856896800788251535317622366350356435010150095635649438815692165129763573622435672251756440301588806583548496592831779652795690869613843874324129046416732148261631115909451862256579278865758918941578856644975668884282388113163803366763157511546666450261987049520361394518713790261572919568471179363845236154996907500497915634177365297480774500573826302302395465056455616221770011803690518655131664269695843507811608703011730112599918080676469206919479448454128523490681333701870023548628723016015820226109771703744415717312296619818036050273078543783262967974337153550595300122016985189538405974039712683113587816137336140510751045294429793652935675215221153852547214305717400331275140898565436598009713338704640028894361513302605525781620456822037162967126020722714952875669751954652589468139176918545626678026232843223681760744665030326917177073053107059414021350422611913023595648181602745936791097003231899429310871685831502054159161684655405790836235805348442428126150654177253723936737919178683377603066367393904688979554663753356639160051560208631051007815801093288979183789951219192896457453572716920723003103504804868688958436178084770876599308254624073466959160938482943797672117970509826496471678971598927084215873731616576585823966538194110729257049687137297810262459293376877499975034141512872181774292755808068212054373931700203858259630008100332246552311197321886406701704089946505085696093133767665304372482722588032238693313807678761118354271260933322877401371356900863244435033239840924487609215302691175883083718663696592652892800785528054796180698533477639982161944259523904855713291517058455283585736790202827233204084901608375536282929448415018850033494586289806111227468909389866207216932391498919614484022507767562681275925167360635562566492723137032260622922564360420081114628317281685480777812889826953378837779954500031919720278441421559043123097173310370579710475793008817311127031833315396807270497953693917019411992723459724212063216749562016483710045790405982885494253007717075274658909064047415016324977977458420460057650045244211731273596039333656435355770672624805904762467517738744780509378133672376888668672368343078359795973222415539920695765853998792067143439199556620040440459866911895503794978419007155642890206314539762350184562610016619829757627893190834806595223719720525360760267992254076319756050205465981897027993745498265732362543987433571590256256024075104447494579437694945281123201775917645790865380750382878410211601354279544290339454939547899920288252573375620943124465267515991140716739487634279012058455106064977468661543652969090524177550685434112357481656520909277013430663668029646875872017509312722112727579287516126073210777438787279484644839204695223581620293932169331735382596342184218005051149090239088361942983963700101142998276317347975561407799807330475318956782692224074882940496613122938729191979396357098522766806419768875505930602977287146500791872168931820795072994609766464683160812971605396983724690446411950277039642695560666591544436119292240449256131475745867385640298405660015608007901648800207634777634361998710424771913400370788836154742821533659125544319067791140699913577865555732139297972932521943024034136609087792589972833214014904453290214698772778851551478791485761290817069780222447466259555960068266561467835684914444855394337835764550490878941289399296767661202376446680029807312708475697311241527057197559798926678737368141652921527913542403064519945256341106014751519741809652387442943502738231362850253082792213395068143881391614261377145398603425579889438089608917054199205752948782680177787633394733428041099332998425039384962998886024128791300142325532494992132574698455601985987090732972505817371315237700306862791664320450340566760923230332022797014874658552912173309836214837529502996437749446624416110030853075498702443532151616363143059814019817203710720232725816415280817221960346151590973751593386228128192114258053856113785543917160317252109117081639757308280566243275391720083069787347120382135673118429140190395734839094684825784121164509970539455892535105739575787975469624478146583329928287902595506053364629316673116980798505421710855608507097948155692406853158546428716519502181243086633344686734763727155817844447042455381004999021153437394995074114971746401755833119876912024376884186724928820928733867379049370803969827554437683826950072110857898832672568747189625155992847774004969797985541611640314372095655665011353113787255562156666278685794002917764578482132511599848737939886687544359243512106023606813672043304307192137623090512051010227430214357490972993507887276651345307403311016714398142793917335647667797272913957348752825311413137648654106306669319395196378726532321612771315108275975207085869637816480588416225176726389646839946546985269330399768900258458732535653207123390390657270406726852009978592307676047076955358132990993654822578501095298862391783941027037695013505385914207414156040458330786870302165849788899841467600552152585389131250571518905946434652769430230051190048038900890697833386703190518893667385775425429012120063213079616189025286585259604771487217797200964068120769843658800843379100523415132201486112295145786611594324385423598361358092170637551167363791355745445199938650593854653077826502941179769650444712800612838023284906246367871761241257823830403053329736724846339591838831387572837940966544150652541410990173801858265556484560999110379061623867186564479297377980862213239603841375720396562632431868642261462479006118515773988845056260229706063358836593914367207500101242284420853976619810382044099157224809717508347822022041854408430207563110749727189725286163672722676688688463164173822143394364034858094367990749256252896250224570321296178333787663471357832848374950684292921634007696858899275081250720646011000400430506907608942186473938853896442621421658301307321699981610829271434872769547886940850869297811873144397385791219004573269559690312782994025933232346155091186583394319278105766967169906505873497885383778663443871757742655716099212109026938851027559673626735173107449762666353419231859429942848261075949337032600832602197751768051278348643427676058355711403585084028267047042033889365477798796675124117436438086228966152342740249387476836307763828304136396729847078297285059594083463230199074217852612763826731143631982988670429061131603649089081165269645539939173044421760213865809345938824445556228574095728260311074297696888871736666154186366150855448610011501832452088602677262543052291773732229534967396780007635076608833266220787737797241464884242391263981715241901093937144462934662637599855975977185955556475676414191032973298726773963157334008981394550659394053360151648235917092087440194820073989494014127078367622565245142398991537170004717471525803003331218028352926734507037536395154015022678313367334006279923719792527343854919071382239016717902563016500688531959387951805760009991880229779635138945930080459658484485440362366347089547942468600393628732400952667415637079531619192372453581738239337550692446245965323630942990989694638271916653076770116849412713412058722033566196839576724255789128753477314410261529480333435807414342226319202338260389368821167986064198127219752425487150316593486891113423350350894475267484951935425252180757534893463315405034297282951761068460789588245236619260883120051970497240326073360597020910596586222779087622824049105071215789227194512674415902804059431990712248893981241030440106473229467194444683435164160445767764940322046685689122771371985940492636638297110780313932441754544627446011546584408082993493056300545114984886550608411706466129616757502580985656528269187733140019627658018089864734890633393285801168734513530416775286072679892186989948047069986655148299497485650486031593030654316314934820132237736351606222700374653240477038480899884968450853038209110719934812608320663844901154342486853782557463484426294157823748608645617272101190856184322511220873747429549614465333967579006375428903164822095438367310585900076119869673850204213913564223067438069970160663286314024108888445111478106747897367345092686866063088368516738825424073152788571351331421397157378023662672070304227062799163966860840786886822892890085101606779626095159989804580688022957353127426676107098896480053132428401557906557492298788670496562978386786387790528180801859184435006419893669430152844245828446643310828446985360480930451520984582356194457873521589406030803798268783848079328807648699116070404255693714402444423666542971367668141680884663792358475108430412104548352009163761809023986952427155581318733698300450110406074187924113810476853330596650664155807751523717234448684237578262339650387792427096969633785807621642239710149881366411814515519740306161879289706281541160327628499792020034536137618541618283465088885825661942827757621559163547226479879894091828116957503804525387902267667232464283230085186602344010540629528225629834397305537133546350568968899780660669035444495551281816726490988023563927574025876773757147007207695786443610465002561384375835390468292078757047921173626611338299063940883342196872812686665007053584217134013928936242767728079205855434947929884446669560924507197534779228586924916509999062000035963272586137064762029442825461257502333379970971117960699513369751396370202810193827491829991610462316029067534417423901528951500992484407054532039630701867737698990533933845849563585744592798405189338878017060550307687589426736271185209604417838236313506950218931655449749062133515582671872536046996342178686180628177162747231209698074802195082956195628339366043586992895465609599467150431727408896094486136812575932215751781395587914483063180020706639787797534676551072073243269300087837445906823937478358971436861496945936814998920916030594931524391141728129149883802011458771040294793101175467580107834500554789196234199513723288095668411605958474202381574948765594493102100777680112555065832280570022492680750598856610043971395801189814759819378303164489667356179852469442239958151427102333920660270184544244903110542232537133811954274489744769960047309771872069257880256943845645914804068715153783026119797267020467662490504480767478495510646032587053001164876131284682919802777164137188438471730495897464077685988267089817447180649752652151907606109295249107690237358818646698208793273692047813092772051934562498291288575740186924862474395603822654503363394466527190004784993523217945844477708602456017401415968105138916755577623985504553101756010460338752649960932781726230427508775618568547795387366674107399588899018899942246949998171168618859573513423758044204290754056197736199917817808151800879626053099376982204551263407746332734048403812495084285183514167784460844250599054294920668638949575110616434038688981143931073621667866769366326634804313714225154544376512216519520693394257531707189113145475777099963336476060505385691311867614465622408330010910342040365841914308931837695552440095046053723684699844000327298317683963641656969883162898133632312987095587669956325642290019206260380296602703892977423362411122795599069389382916051846245061453928363073921873763414052337084018672840696687031178442867077042240494669004474113588628328134907157763604142572523601118941127088593629121958450907068771976207645938046479797804981826908365884649235965488864077976037029670741333063159726396761589565520637269492373613906985153348674526839255229248387430925078313142973826786078799113926144514475471279687436180971491993692951493943910413441102701375878237997851005144403042112969288055450169698043186089521951350898844068228144832418109354168948212277506660987341415923172823481437329453179102054165199178155853555824864400575665094332472596091759749432136978486881001899772699331794573581996324835423392679617291325906190609660526491068988170960664586179795610697950627283261717462972051178940181702203893275969675347734476040648494556553577032517034769865320101955367642602438369186173573311259253065562651777874450268099078740185087705067484084356133322932055869743477313431700592856315697454939776613368202167939292481674265022815602004289980701846808712834370748606110121227268003603789742177220585782685464525575932258564459458326748760538120816024356957333310542350866159398377129910087839840303830711343524771732692924226230535070121157573691047868348207524916964644323717388579145582941955150009294897967501566891932092451897240552755486921431071958362464481722782140541832051629469178591611931021940030125059563569289488382692608293502272484571453262183390097301160791551485827967142487585382267468786796136075305978892937633134490183100241169787734478334244612400833337719288293710338294361919072881121907859056393331176911125634321360826511585538577308497702016187057503584525602617185409648948579018705350535639426564208144499698321434370720672831353911205217623995585523906520674755750767811037435153714187002834365591036097288669214200479266370000724868638633617218010458692343509435834484629660745405892604719557716611967601016756398641700478273064188749943360979202938711076687925898184990550247051317979310973724519198850921594236160331755300085126300296027405686537629719154966464464665194873506544882277003387959868345919583111654411970964320674072128283994892795055926336174194426178157558910435898443654260569717218178333406806328009112941621785926573060457773692503013426395507430810556594010071530152586179782091328372052365777600310450694293299150258068150157809462278894916635169736484394139881033291062686569500678341929894316713964899002081207460711816092877106292447748615514918837503718390108947708292904092289856962298436346813703287069262232874948662251513628017826075731731249305801624876000209176143276381972096877175070599137839163581611233638270502422643661097517468258887338958694797322856542716040911816511259426097774964554090305384851189289551584272589088505090044684357726738900892596646195814833655080758859245917129815696580677040781495866765385618272847587380343454066736986807905964722635818868277221803725965530591163495208528009542673086340952129962028945835910578655606844825700882695143079396883667670639138246410781710459708703896641036652602417679495118252646244220341967280658601027586176130128086502987792946044525565216244548756230191130645652338827763112332649854647008843401141282602067923762861469911202480776189805083058466505729339504971566745344553317078109616207729472652605377857732001157130071170112688051788369259047476201957821757359609646780134433089931904228359450899311621736162425099688594577170151781493985059687753212853381916545438596435569392915620399242564794901492852011287493279478554410168290435352162066529257385951957081072662215838032592598336999730020647543733594399220097014970960897188548880295680682899498578807291688145422746327337947364462649104146331107442731355532612348015942924702906148337724782964005379891387063495859844154390061653753069249144090722737084973292472847119904237352971686946377569596929244387364602379032697567932402391800112692540276522396530487892658673805863082051013187888488163158637676485953965183184016020714648013964912542254319595464429791112124758787769330248164141475542373921078963852528170634592163781326055019897971369749443446139488594335389017138665594879625564116907018678201183461486681994494744986074162747090365322402129828434457880780240033415235058041598404434107932397260894438516082763522545498678866823055716737809219489820366696465461660574634735300200469383499573178158976452778428975471003380641547317548582497186040214789695264311213182348423042640889746477417959524342807508314682007004881613016596564022036804466997547573617025079544385841177591136432255751601605365553689947877773076420760406447176512165340677999764281505988310289406476818093985072723257017708393006169307215450281396811561470266002459324217037037144008162959560724277079105608085164673861940828877028636597069820725977067349104606189826048695228133870403459816987785102654370510324178463035917714230566755284905197089402821014198674137611366809312114267155543489748708670257035141771938025624969911673321569246517506549811240566963348777438377399623163167803024057021666728101988018185472689964112181976032199845663358394693625669941340423296195948240615046925749579434617903652792310299892382122060558870551645525920756683874017770069348865039545322667459011403574645479647708454138865610991030013202860118470941795459147300752926548759893182425517410914097325552228674535463638941912882113910648235926996570429442643340102609674310245218384455822965900464450262146203821913424904231419002965293002701055090707273919108315337672811196419324421134512189578310335710811394616996952807740349485416363641025056264488769742504712363330970750809885135610001750264891392732822700971951081005013177999839148881137492337950245276152819391564692665623327675609077999382873911889246126024500782089002843379679730721198482177918289241862940922325185605746478802209747414421721371348515723558489262770576119478485163676384212887273692801832405749299828078831174728961239867272525204680511177445104654894047784890049348089133727294256275657820303807143425189628606380037640219313078866055157031063784184413562146123866395377573399068776217603122778989191636118103680447938497829627403488803336269435457761224375384507045463058441196863209747383246794939221718956297735615484926764510199432298473573768125760922806612184589292839403256971716635993425569591558613627723707758650975157280184198104810650239558820651993111478448083168339193881874595580992688244576372935320415445046741772700514744158061501203119878188564883768620853142463343255040949561123841609833358681887216355249918775683282953190296011593821195302531770350527673070262998148983240760890105202885508427454660660256680323587020001341500581682978042246623111775858954148627281914701137697852958416420568429717449473397345727970352187369874105534812933535872274503571861953178955827530152100486511559410842728792125551057118989442339575743903866798906667439462866009999742116299198032875065215832033717273009143949637794755462797914980646176901818544320597226291479967280995643841874255274026352012064069613549677095493779892552893978578897044047527695891921745829627361541568569819131023649284182068910476401811059515488051322598360668709658931120010450675614574053606551438548315398437440501585886426722348993859388621229938689525994151285194255044849688162833337048824036528142504204627170045697105835739202522132974898181325689640317112413417863111959463736841117270205821372134480752842534261282211433667041287561790881647089856369260582280062569753071383350883012879298354273366825507704478924042293713180994805684154352082503626302846147697729128624885046344465025042842460540189277758063092615624640931182786024623414812763835953972829813124681575649745692897566735321720770967525699615141778554656675822120629293562114876920238334277273997092712704957450402366534121157276728683585384000052266539506644514959910820729237642627292960885177775708951510522688195447675328575670571132487333979498711299507918193486980095713513680788262331909087598884377228875918664217736669370411262220194596415315982844490189646262806633007770491906869649188437945774971027021523556043747040313620394060164507956346971714024110732495571482055728403369542019059594322944186449123513006944891696142313903180983183460095752955732361010800864306422184222243534546747724000507977958462655378979378608936442068886839506554989656953334438547442162855121037846016946486875074729096366651242558964258158947658960782541317671034920737198451080761112052804261454482196251118647984752682962256532256338979258537417065165259355609292487307870241558210744860384960753578230121593656924113107092702950527477398647665946384861678110710318538102540617703373094480890194715235672675370844534171921679348452348997628772425792640296847493535285574399089383488166853295026170048600215592875783046096509972978819402898146317651044449330695531024742324232124664489836333828179190984667299409906671455344386669208711578806639685854182320351218880364547416881513365766734097124342321402492237386187711350210079813970709030311998885333597391499306870664199888239202760312037027892807135157913381772618071280523959205145109549605435664728432991288066472834803839556653486056762591427406841149713674786467662132109829976062370669821992426043096791978091818018953769096256307946254109832189718203721090126249019065539985933773189864681329882367412241668001812848834901342261475894894515170546456551331693597995088557491317573134525576378540558832003519030870603223621504919937824844407136314068330598352753494393272659828876500983790315069908475663927493714869282085193951618263637083182394055534692635002314227076120090667544542655215944298740701896955674937077050369009449736032222615059598854607145721447377803003701054196588391763573776050644474223771470927295535470548463354738118473917243167381976206221455270790035095221245027186794793411829171929806854918485886148194954628589389931341972758702460000268448284990412413632231866205383793021158745458722593443953245462274865572541761992401806665310232351967309224645136917729271627581006471022425570292211017817474775316638733231992842807918617818403693174801388354489250828662582239767498778002637383999985325844896226567911920965062009659009181716156371822642433989617488622321721832053806663811302306334275332366299120839402481337966052397865042882231517070656724476739879272973186415853348665330075984412179220466835147183597829747034250912810056841835784937326644387773852596949455786110670914855875335994033922179345559857390840839533415330050093912578366163238130258211845159113950193259944115998596857108034650554545955061062047991282324953547916589264817536924051502735111480961082068982413013724474660892204644075674069120956885374001051694647735824029668080806641290265913837050357068287347870428194486500998523919351221354832607347816817297570378408432088079411189631352696247438723569608569406283576183302414179324797622992395681093341390563008696423238169325633375766036444465112759857815579287857573211488492791665254892425750497688220311583661978625085809581623947500115733674859757637080954082476375225286926979885886640250306344951201490480981762993042474927303274944985326613100101311838635809921992337358510677898929436199472474833953711924893502495121933436300139810455730761788641583953622743306791136710875597614756680840387801262918274950399883253899212460220237127873387214495652282331384797317391537390185214189022732108995035799335654870883312796996369069948591304013281192318620126793722063467595553989919933696788292710084108506474611659129759997810198661183136177129346998560828643269714623127916229122577215275027764765107681156598909644718598142783420310297403665633005637375068154477609753362974095266560904832795547331869879488491407449052514310992731987502442025762493878165719801806512058214595624744487691794063193627245034134602140378484838272716541850684030794579386088773420218214869713628720448209900897248509025472221799633808118434463302492267453226991014097901287567102297801498992213519225871231859876507313441369365502673186802780516168389396485912247183945317933113893119602331609003433186010536177275302394000333986704603531149236148500084911826026674078881327141466511383831191381689044700876130395247766548398418047614852674695596586603784640614805374960644143899823482167928826962954356816298239660884737835984469622959887518370074463454478041251326270839301840994522254352488666253450568401077386768376791222041039259625905612859160225951552479968771458837617197181768979589532539158240390300289961470961821288783918597717962976867107919892021445877661429586440057414510199510287606883604055733326169182939699421295134448336354534904515230944679022062347109952937102690035404992836289653066601442970932908513047955610108569191480884417789125572631407964070796439441946134234580181242213233043563293522272007060328363161557762206322543128907601869891452624544118065596096717890891824076024475152484193471551080678478264348090958333214613854361670126037159745417538165578757502414609453356467741735072829514703536950111686900942047122798363623488079619898391769962616332349310960490968887635154905099099718442622592103490366450747578725199044461933859456145258181013785532192891087959341407670995506783995098577047172961733366813025942679253769295498924076274875767858658455476507720950420530059380928151698508488774730926345931911029832385858802270946015545499668459267223121166136915758055667455763130121657345985556456046536056168535582415234596687839263152935649623849599294483720150990119186312955946087032759096539421433576999328663518355419357857125187629531398986985302171431847929016169706486986843626139105110573740776666178504886386611729701414931858863192354054405589075591636444677915617966649123388283012117127318874762980762653411000040833333135901532323792354928048988593804095837205052293887723734994199821408056855594690412132652568252523476891492604133341833207554414445180949556371577018011785815021585882586381658926617069563128289276326570914595450718355402009440867639038638959517995162642566824617531569482351615682207681994953769744740362882423246482305637106890493912301824814885460330884395195175727259123631387130635937615262694204110046371362595715877449546341119579913914020709559300756818711876170860112252528183974010098321143470279035302740885893685566973905059707482399270713105503904299759811769226441054220903443944333923146842028626237679698482856769159398242810155554165761848473176705336464443720383541160533891382148158318250684872742863308538484485721556668123564138929070555240226432273130370863306517045533146486803468493874380278529705881350112228905066042201173336696980156908598373159416771674564545318301484378335310698987642772750019643364156189019018087353427558906888778149513490674195503496687362977027799639267101244432453211710905963436203449598736194250438308096581690906690415733268498863223960252714754001158486851676490779888928514958382721364151941888393971230385970090943470106384481241796109231829665178881252846073720391186953423913611636947688334267190311148296871423371665471346128895745046078947171837582974304528506941898683230321834882881020264758384471032116638995802875743532238521389715271630807226093621984284679847987060467118169530920089698353055446668031055822499019443747026999782289606578510021259769134436387452921010384386914808691276086558394160423282339278987608677977689455257736417897022754376280198646074597256393306233301113891407927628589428470317350156355319962882932437182071743727339008778810205506473624340904626539278458137775325507670425569454877093233388474349769681016080004714285450904210425412205175920441285886602206130015049444092937362189527850878036807051939514028922336764667951719032628066992743332068565620498786047946586825155240276628438706295814370330624179895478831873335861965705316592889226857950388331926508885237187432555433482295696513373016329411070193974844905103345322866390310384427727095387994445493141277656092264952910144192735395079005128734383727459241609593197311280107271848835131611128643025276224624846293726211055485299301806775658396685043801945845129496183969709219220679950320509697103360416482232069252728956869478356665309637099807420903362464731075854753216368083388579999389396527789750825685248248808152542230855429838592691594656169471191134146216118682319476767232419395253714077346094290995397690519270678723638678447286062179780600381466282356741686692089247340468535412683169478766628433907620832758690897326493132707674247323598816452140275135521604529313622834055423236640038487816773116190233053767808205121513840354049505746785788675414201339891823015768702968576658009275426280336487289815192582180653575867478339454492476036387749240318326667993002055277765648555618373273994294618452212759037638275713070463255133440179646864262713786826501357801413916543217152285766792469718664880448427260549941974681275045615570028808284875782290328953546084367628803828945349295218883172698780363485380543676049731423280796849624199591042568260464185468955996413118496456124106020694420820288242861817697062781877885580664811777190982786818384689748651389804639618942227827898508392800752516805446155311895735539957214378996755597201094611390325959155400227166147084328448183993692805485627220869602285989255137768629675073708835038588891715659710481756264497474405011174815718484189446313637583951888665191241106369670187013303489864328630334345466266191588369674479592401717623283543868630025380177282027578973056579710436249968814741414755247056853580301644749775305417353610518768185774524895020460838246750720408897408484697503076290315576052502393153314076870141736140444957515918317070644318534822607024558095854715959728837818738484466414808518913288806873289471558235963321384699756287856921731426484820265476876946492411689621151521121734736839123843595217063707572701667428290759490846515872543037654817657459768952885621400658373359469436075202603735975454658837143298887023407450153279769305630653622851281689455033949243021044593462443511138165732410014284322862216038792667298893028234110229634440124664266067101664273445982435683106926896093050350227755033648255590147487229175808419416256367359803865374865124737595792349510079791330218979538993287696870533045043423395016150995018931028999852011877165330585688775444860204760493879778021730887111902306836426674440980741070714536150805055147958819202550607718877769041982979940747305058901427058806894649249357347770813682507334586462547730553597805283203206216027750229800535459526990471338383687701043263034022080206897940734341155012789782119113363350651046893727158087150597621918261877019906515087127272441593647092790077120556474866967002701070472611429509565320330259566604436742361643333509507028402092635361535216436855920959755661908901392015858792443637356598572887662498963742609999380679258423726016941003206033716893916378788205107215739578102985289636099371830115385893983971131191331726809369355488108523175684357507356045355035974698263064380837144081893449968343989950935725818116497530852147168363571769213756521803621688926827073048412965103178758361645063562366535991316066214616883524264735199104813054358383268186516168131428099952745310771104708565413974801069913574048349055666797921354908886564906938757385146396610341315019707204230628980891310760745076941531588295044033322160808940325705716095621539414494335622611746759764661730585469524167287829617159968250668145469511115944933235621586566994852616039162132364946843004315037410785676864443738033496605993251039657918329085184929658023333408695365664841562663082911596783346222078337360780663919294994418125207417393314691346665298856214142994715643989332895810043107011509740980395936492574287804780014025946825416516666354347743888322203310112765599878399718976411828338719292145843452930908380513985746177524680175767303217527363696462583655135727932087031886794206109329890294656153917314239166459158271809469164663893024805958913523486872597599359749895923338119376165163257135931788209438771325469982043669520114770332469334330265807441069468203821806334818437891541624327754263114695314394999327504182652760808951652826520919521350831307473043492630033848770022160749635167715752814519823543785157053517639293757108659425977689426323922463200734502291238009469106606859738914432367135642250421254920321816871852364373327880598081480290328001825906592721428579489271169338401710028106864642729971141354013594146217902639601136563607030562999188802123466860563209336729262641749684772644195349098989630624212674101448990948401178702351101443075313960333083280846635254054877409178923755727499115697395885367973000606373576502759752093064850678534112507615833053740285562866517584010841453141247497633529705701548115666847154317349203594188501871920910966878611023242064096037363126955518801556452960434540996356135246534811257843073570743171102995968333386455479008609835265423358679345653138476572181655988901357591860049777245375896679442409205992306092800633270217695989967165405852757469908181321505553503613020712298521342570131341544286311952263178853801996498524302550862790704008827695383999055289099794540949453565507256024364479956388770166821126826911224113109459724814642617586503823375030664286854673570245102224236925952165668528470521689931546086291160921448434568873973599465536439311686915886105905109046975027059846533033861294334144311135049490885824359808947415148132743086057015518362671644833265191672485710251751684577881590927943601189010810587899971116920477336173705720456204464796759216865388460193075890110142885921176432821903547804186065811454391866974855617916477460173398381563538778040055141158802086654923587914154419519051813829929854292542515939150607326683040643984477553473270689472499912330806495864077989164037386327264436308966472262843212893760543582198158136573949385783588735134741074729818177241317392304343167589095411749982118862346493493253807062798694830373795875277625244859501916278134009795791759048855332754370246510555172575863580358319247506659378212872291822568337012462910102341704526280221544499386998867459415244794519265518382350778999385546508222121844073574935434595437738000103021209374492859778994379620612959370323897083421140436409741217659581696894151088829698312263942103919532192445123237927581474240253900714702586135988368209835613977461825317278330136833692194750116177519526700327776429668247919389955713116628771308688612329919172162724806841748948350578757016701735574955811835452646981387034504570532530311299425437047919918988807304803555567289111742264595383040876487488259370293820893401056824475092036598030937530052502421933829497561499655422284687804548522254221714155076756104269125434917918312021371098646185827322276330283167180558648615016797905184955834280298820352007044695117546310775644987012489369376582002856454416430880783728149068066039147983921446027862475453341354684492828180046125043580679264003178205451645894446396298394470902006889207801759402279965378298771048317394492048538226974928015213648206106581443889730096047258721519089978124422160647829401198395078738916922633709190702351696289828921617734883830412519363250229472651275603762633329680781341844507381782971831586258970078957111462506841666429932429436260456945678057229653698033962442182212108157423275862498733570266292096880194616877350643521041454911766278874119069088400315567112393657681254152564774477745315009708180140334911483996095936231011933822188462482249709182488722258111305253137076641612493944218409812475214573495310104382964415982527846046897510174657086485052027790913570214832085522378334121250210443862024056574188196761791643944724566827313266575632816464542302002572283615439036000220743865775905265347868291924563603048514233487985925874551053207623872664151372684721450333001749163819205694912325142237024720747204763431733422181272624648272114980965017774157850442849244594958950821834446667197660893031767620647117420087171982514186189981285121115380299948439606427038107853013786719927342068435333904928329174109651339561823690346915651888125269281748645456681375069154530446591613150453412434623622591849206283511727508047425910391029918516934125118973018881555993204246660251983075841718902114891233107866117272131600725663833307887458993720795511820189266894863178210309649361871382048844029728318167174394603902615601928063779045219150504314490650564709706305819733261959277349683054183368738669805669351996814608856216449414715439865848705383866576613643719469919387303386219277355355307781977258689192218021963939933536897889149172983458717103485227262770859892900492413348835277297814159773764222387551495625920771165279132533678631824919456245303605019975124710556685640496950614244559823252755797786455292503362525400937935983872565904669547243856843081634429396532211325398164524544756315040705496447287493581195356351654989594653361019945308871019825394068762686440427827255207041619232475252790825683548954997816109251519155193886543937059933510768869250561649502774712283578583636550067854277549445213604773557507201055118629544110435817634781999128550871574078819810593083832790777552880445993850975403859293933447904344606827916232803867340817156035053121850892319600686974607251059083407247147601974485062216005619926065287018761548897018250457718179817330652417246375850608249738611933474865856432991302778300971047408391866156705181198892266062124903871585831484671142547948180571548497982142100275946702538097839162016899530430913377067351578424616955189222194030744878888482161043633912258292636352872408105069567871317168651311001413376658838011796614323487787088807959261143995715084911473446843039374803697888394507206183626422192784691486456572418926196004574788534888763508496890629075759473040134854609966247031657224126061689532315874422232425259883536935269650436203539963616313617155997439223434311250779741391561560967530066661417666618762560765209767341128749529138072483094879032201265516201770052156790333577444550490377387044858891828757684326654850709558779389546482177331777074450364923345722511445251492778497083059479195593064420663505308520591399616474704969915490997159929405441931680799973650221485804091568600725911872019717676191342061776256787073277338173547624971811175894166083249404977592090861386752590515403572045885419612308976648196483879742992999451595096842193402834934337878010384482060771518244784898561364584164014570116382818099031267354050283848297328961071002209886296218708432966831021368817479774635536095063446471731096530986362273881779215443802821660384522581672602360880899544868139596522874421366620913901969095258398545143397618519801723046063890615839677122712321782989464163502785843061713955784580504871981744507742877653984892855495451924160205762840455662149293304993503159544132541595452111262281604676683246836432978119418565297846073995397785502887331759503993218977770970185045379577431342097406063731954749492453235617461892143993912897103755432087335730756910159680162746624847491905956463989810023066107984535576973475831748113187998725069333312049064517679475303791723881626294958209761301777110124580703442672126020052952932170672958488503916191365153452434371660991883949531650209658062747401365617342350065473446791944445917464188486489297539386336813637152871650863538156343738110035854661801474535068045545590224716351664251191038935516704177928685418076131740727124733965166931865251802096275322686137065096206535666363837315500679547895715547258578448973990965141113098152780917129864065703347550826308488530069074921402332047337180029486654444786389811515390204774728455405224681039591172828579150796414276951077773214204343985175422785191365336787563392741179524127018524095449901689220559903112147829911894026236317387481452904442877472318628998506426428198262855013492963258100005418732248861852041145548403452254227439686698662762636493551214468920855041421858387527100064489837486987530937509444376601024606256807962567275245481860747978903705688410546679606975072271668313679908062256038000129606260421149234245532874876774451949574638637563486764056595385103934215290440314055226240159948004016603173947454319600192508325000749658816502414064428972350782667940291705325240072750974458273156661481368980044618381934953957715234953938659998511270950549893214166239981955139806776230308025397918357974518315189070986036074730635003347025267422034784587771868577708901269429973759612879781609893292138571811770179759862782765800455459825833967536340341003730228299858806153903308443850359418821174998121632233808012418031302819776700887029900335330795307595168016840119582536832030661071117427317510832039229429900093168238461146470195126215766257592066983539370415098746571358225726626797105287744228276303359506000596745422396575085252877822274476542852003474484254263933257541115801292184775812876268130545664468641359766805538929709226397147292234967395255937063649591998317465347751862934451779254334172192627329327710892748316767284955459081920912536521131488505383804982067471734942200529273489825962965277752933696690688240359230926714924740121205235373177169811101051924502973712933949648435591329429808718266188955991167609116440830192842237873689516277794967765621611690495944025408244129857543666112650931710885508613737429435630051373631899633685087995630582716622910300955392829734725484343392922409330834718907111176931796333479163824059332017344357517706674472106095944018246631667078590017617546006096028268526990402633494780606547322737208185268808492115989280555251320958522744195547561347401734248230002572974580862084760716499004895315835813067014428195234648602676041754741437181621115672655494661523371532929441115330821910157169754745359699635056791415896683067911119587459632744090606680912799368618316253822195812877362728824779254297278596422193495075403061778732367346348017618520678783883322634406227650291083953794994937223162986970736924072732186365346071981566929959905421067504834369084528820911875357278373332904263406571194298521623761857935975423718013380617213807079178610220294451068755431316871864722237089462843692160060170649607777770568479480665467370071676926825273804497027184562282131677562893316481974728966122133970128570601865172648196155012242357162223366354095437274067161142033924090386842590159100450493035562271857659025786896625510614616773914559282434249740751259046395073774814841926690003714439409810693701587690597930771213804397892270983390533284873576556325002367040884868459505107630338622190194491873099143778629611469477311344596957169308013631522309056337806616309214855578985489732443053558230245228799547959952421130782265296881281739397152086944607995147191101828039882521088530042772580845789043479102127739759587683977766989784417776376074789541127692853388293135733860447291878817589852982166143316461051810094649382478442509685301172833447188761154320169815137332613837153612411718922302477515985561811643464815533445692553746946353113753373523568287528246800277482467407796718800783148429223217220412173256693071900225878718919297423294522550477557693400422426416621149091887238455469380873031696812951899143202744864147368197440642204841509133245589387504843312676680146242030530264497776747336026482791825993515909827483201332921579325041918814159984290218043956433683473883983477431046673288406960347617182016167080359998009129522001215752354390106581202722001512626179856451289303425404203267875282772077975943453765625352213590788481246937451691780517327576345479649263455931647084010289794467661906285979812867787929507229116564761816027532476298359100419125565018150139498130391447117209236943696909650067352116635438998513477237964554533305746588543168682799636407210959839066717687532980848520518615083536452144145186823322470721713034836655811498891737347298659527776664068663106773930746411882832062018051978361711007669250322670700417145682995318519184447926843330033025119785246125411471018719388371389585652010210065275764475859224188909712471948961832442398020834376799885264168440595365936872025811577102864307768705737939288767628923815483675820304707890203130382973226169652730668440268578295617725936396359027840981103869782465801570922865518073803606213734854400242572900335027514145892752061517204791374636573904353694635905828876111056714459443270016073540311572897570159240115805528276813319190034535604196374368154359923830724139011295638107706032500148907149158206167945749453133350123448695750545423360791240141708031765561699698581925059024807433822263587542452773767118576173289180379892933831581818871765795149860859615760918779352557876440359287093160453798758000821062094922864520958580975751987674687743495246866975350027656435133564093335956214865646953339995025126964405829560672009670084166485425270324572492929988606555405663304281389802946770542219309519300291975602973282288863506463093524674356113120875604450634115714293484787866206168633058356947434598402261232025542183327994173187970698660615991209836237147157716309422904622889140109720898775367163098820582808286778266292315075443617084048539337993895431205244673628303956441142335182162018776729041036404883323020324221655712382758449923009855097408307413038167424160277877746793526630258282658847372771005049712553752880781785413411497791822093576173205411772736383289600358050836617439347096910015152599404043192090878914866685553972635390075913425730079634608871965184251824335701685882541119638083909128792926895138147849636922187590958978682991564618826452645603727067470063042517981038717597563779884299676371869770994889249203922280893419311467104869501411197186133761343666410003154852063172107372036587625186025960891829584598620352104575359689114629603128149743512608311199197036002027827851100158496092703890254327565180510252899690123128002847840167840774057323191678478690491603501751067231813386794394589709581751992015761222858864594913048934625258575786944115981258430764752713976443917700784997653803002472184977079535760072222326829097612484756453716119851158662106314013557272026062637720294675361158121514769667726631974354053398690223587703294077298441612971987850040525840995769284051678165683222382461204077378407946735735692626698401250855548280777320496775774321694232757623554204013351596105378796688628686269490197325439489129290219892867764236853350770601911683737119250195301009084548189342569899704357712348195690825911811005944450812492462875586137472099048990288990908232533096537840707862495034990973033297603241323404708884380952619868443589481193304495258493922561227503811970384687196359376754180941861200287566854351228277740068603608712005352290370821894424055277705081907995788284211454222103440468295566021250484376974548575437380406858833403644028367412234848908714790339298070750873894018329710353614262783688565887699496941543677755841903853762398356419402295392032704885992046508011436951262904886481415376731914595408663685575648639221639554897947438856849217771550970850253575247626975508597549417976716384813414776807726006021311019885917809390660096574016580634488885195095398015550685418884527860312455719503498494293508375109671483608525863315602235606328965482348708396641300628433869275630669483790727243371839311618922092786174605624455521204394994959429901767778932617676069414950217654043028990506367249176698912461728950649435167504662898242808236115963098708167467728260349854796609893629099544381154830568214846314699154918623959415995454325925738398174437872962198586569838654021960361840919261834390421117747202796064516873747249713949606942729165526060259039710819905447367941477951673795631940487797401228394691095255137715255343164921821796007235301530381420485079426047073983922958137065842638232936441015965198388051656060614590624348120085737155381874843561306516764307657366587148125184709664452171037151538817319441476605435040218168391592162566203052142139532267003700665782621428903315668282748403198542656566322413107467758697001426727353785815660178280857468679473779678628958185503720588881044136869497409055926484903689119666540451673570728967244170025539511331297120067482978278100421227079201612976702581684422383800496818470218026300097004876287207659830291616414564221281667761934105739788593356851303684726819167190979339622470770498461474215957951272691023131631111931354931533942883847900424172665519139004939097565413911298318941052368224697308926511201832677192733615153102842929983826443931689887082077947749725730274214100551143330333036122834864231685227616440696139085966733841040679058199952371606360478059161023697673758886446899260823047190456178316085945251590622169722653822927033982499713093982921660358691311700180132617908217487862311129934388242268808001700473568564776918534794898811010861770603719722838841393785504514004613725056043850925034916326515333830578512474385350121165455187853501578369502825338974678488907759511763642241585818740123948182018488371652265986044653379263768546200116166331794071684979272828813190193488008320079102939761303479473749360055401125476968108407063692258359960288089653451459758851715266250405588473650753734535587545095148953923835289223500395016715481006332260457478183410802801648016748721305315558195420300552865686594233377066879083314877328057101791068062726279540896576318023121034425128367295752358038249013338868587426597165071707014735649674038682933552594965917407422735881119414048212347666580187343268535605752766052435759705620253811460177293741442801106183397357400900659405018814882024704737409928132083222021743806828178290847364716039508181629759756586860456386460740798090698577407104866514338087852726277412858048107306818476226002397856407664515449279268580025971807872894757655743552325310547869599723861987950616570296118706550759688332931537554363385257880035266064485452832431546851887715816575907628716640819170581798758926430052216964495635990231527272124825113541585675664777679811370238429969302686484510670381992060062146181341117631550291291885516743773944770011454615287999677347074332020808578751047082754388804469895850600999790304905015682451986078453013270273310943675682882416155457829094051169041740579700713519561111798022532038711536151784920443320109914527863294352263333654691053438107164748325719829976051063625860875418034712833431673052424436000292408237740795787658760128864011161511958991996113505400837524422746479376353973172205600844651382530012445995477387413964862353744491505158716786628196923148949746114116067458845217826066433994082905728386356662091272570114575776038991821452170382867990052512770290076864855408145687629458401270755949540023848776580940834932173640451109059174720075019556787766387566124326721840799430047562161189753478719542387934982180743348264827680491419771180730565255379909142822039764379521458653340372043028800854020721708055147337795770080839144665065905935458539455466918134303327879644189860257505489159429358682015940935372470146190935271838561589292304806663117313733191563123677609489612111775551159014777900566603816364407934669081571926517619581085803653169488256472580725641227913036838554270337500947464719603129217184591625178029926023200727268181629184425517320494371352629484991840742036040817700172239556619888359118957031901597618988493770049575546265520330442808900407371947579033753495240566478042918037180053151075599238131033868389480627229221619645256421104276469429489565201068871641620162082200261619676517299112857062617794163443869443264910688293365865660375693711694382527940377679725485444439122604968333506069164351650255371452609666523638952364081603675437298073404706984502656353627273727071847436713044288229848529760473796593326559927671101887542601712229134018732907416361194637017158757370788161487799505319385317039537467938265782068775530246226020823042264355340420144315693207625997764430313328617552350781239979957710600548887783385175431125107691003920692066514984486641370353905618252482462329719350542767456916905895213384989369554446338047028493654912135142581340083466599376929381103339711097121868427412603451672558002174447297701848724605201526015378180881845418529649751194108520753169069707440213439736790872659490844792214085519990836953426331639787892048779920552749510809295053681104693347624512940436734325838486806375950196741581630026347948253098548634086701918932126515155430194920145727149810946822900446877604237242686674610346532215787168416477676702317193021234837232247311918458842380727011041010203809581572134931748570191450534719879940797233359613120237086372776628652781583905111699907403161479480943394491245838249690620320409009531250691333045517373830943148569677208182277116244429367356244031805361267023786391265438533434147551119187402104042305875748685423524799691217107503149911769029961740843863636307907927692646931631720008766531495123285514100496710602943759094806398934879839199536284343722890589006849747911681631098766794710238993230043392250750084522428462171662797912103188389586925435294656161849076791672978064190648815906615708183824369204434361381137179223496105426103341373302725873418547292020933401693670796498905314866805293456719528820485332916114673372117067086422018287440596860396369680226075108463023727697893624638206410457037724241839808979770445834387223315230312811880840727792820892638421484357304893664521577667674002945928409334420489088041344890935667943964243546773846032932449997052642437872653495904714050267186353695128940254879833863410738146914691301933594915259055382803860856053785831257324133857494907801154536008432246534818428536811594845224255298814715022824394595604668310115038251063588844514389526211052856267844936042589408319001570994808740237900892588035101619041950220717638028327889081172355804604369824244564322469070343784841643273404748298174287461969028943877292210983562592075188762551645705791773184220126298097017979707292500599757294687525780086047193530187798016955497255984760233466127823350500204205453663207379265625635147284186458593330604379427607828380071546709456321565960489257676436097443568914716582070164440086933146950513394578377775775654168851810173612512492718144359347560509662208042139856655080470546324183166669821569628800853289551164574324890801385464563621545508710073304071798260620254364436427179695892901521175299691175816624250389370792478271725369000903780565548425130043663741054185425654074990161503475069824731805541622886826881025338684371433161482812747380083964364027520626558998373758653479198612015661784544320414080398157248858499639198673440110167511677814167449768084644226843295616805277502002708826478573104817995166200711590626875597754262582886184137627849088657508984121893683132298368630214486823856445226846451274589291309970321306244637738398169917014861185728723672768545378502805624061704300106507373447206440903095722176777657174045035975575632769543672756883094715838254352612318793475671087666608767407535162505856351169753451616712335594106274586726108473960604326741551897620499100105203945459228331137481540799564843307960847610139161771729243695876907637047221300249812143839619028096944748823391594887916697428843104910710211759788968085772537098459958254566731757602378921619472061534261651875852403761794401721324795047718627888367200868649192816961838377980611371776810212471913797149874424190084770262989431373730501822726176138440610280148709796449023326482380635673998422888323250978868009349302879766216097162467617791392402020065862359379010752379894600403364839598430066905299850664599544980346910007790178130851890296444431054226721714501971882107059859604752498019999693436608398564864981717685601227740687676689080943882021099340161502338440540346807811243644425146376904886354728851957389534294097570495125752560093983395453748469016869359550154334285736876587489133569163006877044919511180011646689382236980981089868223959083153403803496121181685486982260211470371385951278797030179296569798443523611056052127131494079514967041000201276659364859207442906229189336632312081850743131571570636098149478425495636123849597907004662538578831330519098877018567573565235208612381108108301319680656214258596715278693313119369488466748779134649730134369408106699181503983516072807796553285680849556777004472885462340662102977057077054229010918152987135036847502944007888454460135936111589001711453303933659674251116675241233535960640038309286179615407361163668654111890452750027130881185263608293099389103572727467036111705533177665804225372109127141884192143890922818267937353719051932862940251059356713616845535262018725904571576391765067200582195108130762020933416975583728716212864942373258175130965191615112597261535424984786351024693348087143586434223086779877503435743198685089266890142047557693947456497136611311742561118603082464337733915211356181120004830095834181784348525562066866891843687130510402372912708016701772948663922195738478483328850545320890500906203647796359878614843859096778391037712974472562500182342558321664990580109497006981658451926172259741588231536659884134157239092241963694259343355531896100740365087266848523360631010573502330021822410387927838703255596075775106542217586296752696483927568639038561211083987844359754607106263500945008897282866891676964952072039453383448018928708624161685985422281502736744293455133963588971190442782646775895022639410005280178751161692502910690235908226544536448713405740491529064159365256789410861049522377883556629214441800475722291830088099584728257541134994466311943658373800855501258443145839983207688433616571275664311252862186422719180766792562388417749868590641440947427868215108825698764313504040408655839904215127876015890394836825020809174450940205514418742744257704871071958713913289583961195566035862933170591988626373106645036689465802232048899241924075136914915033280113050206887185017799543735686605271292314401249771303997587153902678398022275214105115375111287487897844396268016496685449751812005935333433649414465099782858655893292571793493375167500010875587219331498802495908006528849903688772443232399789770808834113976361185224265783708816963371724727410046115956943819449124511841131524384945264189121118371580992361545350654802091931247016245951080262033202435829087637724141213864205181496564872942322089674398681769786707947024324560650136857844789390260135900458578179416340912665049891478718621717246384454112306145203115762440540336309386824441469933334767564480384510550738049465756488849121440769785347440867858486888182835787270955946374511490436411888478622470695091167047523952891592697557256929785265763959886064559365556573686789406695493351818942009374194230550559990273767773993728256024048504723940100000263134114837514930843463210759674529100272645855844284625923547418353339079713824889891852886406584008547716688735583567465407206419981766613369683736782055633967324776263695843027786685016069574884632662511101636966434734346204661177649986190246792634085910348299199711430478748967454317279631012859644584422328461218864011985912220014930177736789741847629883576759046180656816815481022071897377229503062631059120612440251332374207519290118616641007822233550206734589323993489844262924239130090476738703716154263744932554380597448679109949466114251978514993000667880990293007034190735693439489528820357476453318740980937049627221913596176991783313774728699911657401203077549785234792475091184928710930312361356857993899379477602350664081804676550387389641439386430124261748490041694463102431627634944706100767681314303772713989483543812814580093201403501376465222372213491370599269530324947412413618628565194770765091782140207758077950130529769860148682398241949804755293684475153874828354682386005067357471336919793870131675794596029704873027838822342083310388873793170522450403555707369929902400489934734187630111316798372563859706027077742159000390979356067406880203398915864107529105774136212710124317325598030496659503438599017238057467886531250622317150103990119932885803480752918092656985189680820409928187756622775613810690021228220804913421848193800531792750925700646156495672938034666847051098496920583663610908246878848747160118835833318704830200795204366409244303711524784574631613849244688503130713903980184254723690539150190138734561323085691736070100199770314748154916081824189808367051414720093487052662946526195919303398584102807595150757134660292599556059740165469375962665856890249642919597666647698493124892138981544967582101075358299382163489718457643471211236878250263204354593386613247071273099666037126781290563521852862973318881830939442556426298405836719159862111563796434922641494993607374387802409354864847504820700840516802741655791532180428775044447014810275425164104580932316120155296533670408066139726298503336147240716272353115741130078050357507619830507115399136341651093206037513336401790663906693494011822159419421193088897284960514819663100518043523634957079965675223160039195773888291598116302478847976715939469883556610187013647797538782905599468320844656393388438796107868352937342677232009922974458960292997630149337596480293487678722683561757837443079445304718162239719332239427677613557801734547304747933353422479450784273869790999945360671981573362849430912084212301778614339826869682623506448544694235173518963638539204038232167348261021223791307226371893844899709706780802037413331767013059550687920357576569457136647296023949862013543838618612441416000510617539657244795952681583240775525026861832886724523173461487012704701132815301279484595594594014092723338942071158298827260710394392192023878859789023274675036649259141683502947229480817789007382353706163926867791162560944524174283818784336339289368824386700863284621647628451525769120784743015140952074776697662080085716898519884984365281851744748498743120631198554591994521239841691036130541308106693797072736621019556105534058767117913899553439475899997184505193849893541516455138224548142047568904073091939091379278532012001092851475629327667505969330764532875095525422670309967254282032607583584248436161958039235384629691132510918352488229296426900004495700023899328103695897124108491659162126435675337405189996923947230209453743100247348924292039145828103155786481443716447776890775226959133141981479211114434809583127083035703234775363847665549644911341487163523112459079881964074578467999776759420190305048911260272972001999029564914595978145332181482840388003079854118938786480711440944267909937415208595319402769521043253953273495486127550780876201051572721624994571833915375174552348299477601553159839211057292245298233381628873445932726231786021962665129072694757722603483323912580175187522674441236532683290678547419090768611563786963807767245283034464260389402559276586533786032619939383532675565063232760964135042074989470693251294775855331932140942835882538300585369777590537285142686568464330993846335099672773284684310345587968897812150067714836456548550815168319941143131534140771290274801783301127781583700140134612057269584799843929194058138704711222661518181049437484519400568289859074093348185754745554540147461562926735878185889149107931431847301203133999757422791672336026004729894913643488560942958771278010598190405630214571565644753806758085288818849453978027100971598093596333136360643500714994966638827587412551029878799141004603436430611905364813552222973447519659164139556649683885238544649535078173362735860945364529137475588084934660036130450568598101573812613140804813681494440020635620802602580886459936263873011898363865592526639252894248516147471407750679094356754280612751651741671706651214178774144723073150550314279460519274404402046288476327307923552627571419954944650063292179878820647185956534147923449908891470930077576781237541900059402892552535833900793211264812332561819853350601317103080238750490676083200242105571448120584874821132352542253925477854783647073213054652832003473800737608834477960615167859631893224244718265904394999859175753158282196928982746924188848287051146356606857108342470700165144809154180045189174440372946239984535780060304989046714295276143609184851437814542184105232742591448828668486667880465799341857264030901743682926911453519379672888583973162930557530759378786573335919667635971185331668127360647965719780691805815799865765907704521037369720733479337141728856709439111559723420269129917366375036709181144681309546307266659708942561426444777451901330325430097471833507534615623783780638181273618445071826394499555842592171668635513240164768445143690261888441887160643270473438592678420636450030124610700754177342655613490018713757749465986099440346607051330501298737156094894429819724909303764613904566383025745882036937632584222165646490785254674302576463922357629158987752396646586621373384658461466901848306063155676487705358112038380683448616466736774448650498518184407398832812175443605431346257559277468604468436496943438141771111540334974618692896335640803349037710031953657854016524037889348305479412389028886642462200439709547345294653476836287077498235400380853648839181578740003740767122299654607686729632997252963139664143870106915469799363714580491742500296675484441774235858193373093169047954470776201102189664163993194012725710340083955634432459125298911119161152576820037950251669544631396210044099194689359221735604759467422141984354252260619085538199937994479081788938650656011567815564400164189195256649474623113589860991569081426259966694962472406847027013376531706702574476903653062635505752183237457322235417098149532310729227050691266850052495350389994219149516323473332892904738591348200446865864920719844387948734348360937849404157439637000776688148862377321446271862496053740577552605929514566507206371321036823018773722719185700538899900160321073276565960102014622650711137391300429400179790893645410918259499003908917480045782025149924121981661932561403652583889108475027285222791294385269417444633337905889055964222169917271792928426278079556391505428540015357245720708315013421168903719446006502841875592178955924881475108582458142666478634610329556999614329824161361192761823016059007552781341459811935040043130640040919188481534697833866305813939450955559695108761316880117979084566627003841100782622715662055458516648975263466763039209165256953177795923621160902026067660687936791354987779973388159270144887481892299635121884451896594591284669477842957914923535049819909061886860432148689443149122965273909530619312070445997356823010367386186607645706281660380157500359747417433722958949414981028732163650853583697937757144386647624626654762556221809147604626905606363130410050801149927822243829093321269191035929010451659100013129371066535805524595948107955702971885352150340673932727761771149086415077906788907103978121766234693097414005201896977668628357196063692032813407863975927081666597913377550671005372920799112574081784747788041849916382789897298739740978464662649244784073295930557610934749042685936607919597112208400582505378552186754263658845637318874579782754177667331430295187984491146952839444773426981570991499196492852597755848544686634762552761959316802402034069230201273894330221829909959110614447566015136065934777917062269447638891663707425984667487674686316391564347902601315694532341484007528845981541760526362667440186970784507932489636595114891802960627832924342492998644671572198837569161718644840802415162175669406737929576965140181335052757361543942216046128248504587977706294729899350025754479587843055240071105027397820817647909839636756401382676374636602884766147896333813603618340317114258925583793452963729405046871921687375983915287410275852822318137698573824730574681134760430853741426492964095938064695625177384555292909121444055334375221002481352411338285916337698248042025066949076125269741056567894666743398672245630513464262841246067969256327668719272459143812716870369499828565887447230461729823038086924427618454601455995238421512596502287267927609968438290694884677788241167015651480709906493225143674611185487953700202171869249486938876515209052806251534603856280473023021337585106381943723910185265422707105189494410306209090393932669809425036491886278325962491874804531867358525941364014476071672422834257175915953067346056643127583545613514555864086452465681843772730740141051543109778331599361177339472256709206406535599953192596997696345498825581092234642425438559519687333263430454404399461313160393250295839725411958019191828835969536659514204015224693194295878731578429936209648605789137740082912751365044938409453305559545468994217222426562164922706610906354661100953586169045905648762027266901490261204254014657404233789044449916727075134333731414448776383804586610361375008961769231516015202340268691044205194070805611523511205024427918370237873457951982934479819959647940317134781223386924872202830442197513036890081161070812875860483680962284081118716012817077470733813474479222795665764604845553492215496941117276911717748375823255051978410617459093567272330817105436575982868768048709725237812194499819070113334192752478254794914548670421531805696308457115337245427975249546336414392912784293520782768165517972076092803325665530361937320376994860184419118704213909699087242408460627440896714586250331240915216828047572598058593174721277656686154619246718244813572131381210537342051212524617908112829049662277702486911959956766511108594495130197073031916972059890183070591529805516786156573142008713107275100505119901408968618561600544939351242264565111825301631975562506132088455942122044101121117830306080358448233100847751094552246206715812162909754972073937644954358025977070002337742180495804510118270190977728116585758665976916416288947829580919853790175336540829635977443925170534588472009348297815141483893036881345239779833642163167215135552147683401110018739712003381734467185979954591475425358351054634751078906131250887132617762406826071356344629016549349866241164166252581813241520472249355500796068055412859672758568356866453942224825247597207480078370426314000144011622747964763079703501467483141612884187643709482352722229751792450281564577431327174368535836613086281306666259464463997406300081828728747735919647039266234962529344630378485324135813184071683126803125392402090544395143023908027913529329995615409756388923597784829295324532593340661001179037960363990519799537982392017686124185526415463181322606281993944117680743602944501436731515881157603904882237154597981777432339527711969800598321981520342148357439197698154657018950003518062955103004911826720721923036333921584761967513178081831164995600767998638684178524422691380358461575649955994723079323249002400566886864664772446577043491386955417157473976430706180907186294032617309740163060759238672265081634494066581426342537210709175701560248826429761879956450474998233233543051960612034868892701722755735899063031550858121038060211418289571757607369240847035619638310178500683197460050328875139575014941582473908330050607466304349709276983390076047090637985954549416497336605742047817246761749007952424706459397341561309719587765436278301614079917279691002980902158297619152836764087382446992525154698052314713983715154218574617521959710117547184383687499231766287690313391985254512773743084643388884004744996709245815192443595838258045906813031863154642696350203789083084479829976723399232226995259558890083962036614249006796235954680153668072901466616560851706244768563657482037956386754929209224095820712037470130136980641150517684290948595136627162220498361801177579790008937422097238726968226126497993313523379316248890415333168612023942404043226463234432242957239926423615511103297237367671152455659814157523157025749019738575747852704941373361094307948021377121568336065286578069113540476583731857314746383376554918099645843418748038571409815274156905137316836151682750537074962110754680044448734515115137677124153553759637058305118718852440298582762978446207563423574995252406380040674861156868292019902871321777388943553582260385048495600710964225523908407887923848516490819466784375005110716124992322038169027818165711928309290436796685287157188711949724663134267164121770140009596796428473460914579089611310332771589801288833506451500643621745787507393448217353937537358226209295584944268874246894929965745405184866657398033148748732078798972135311041932416846254391399238320708319873464927842064187605432009376649645568321948998713032964783004723890790806050532594682124421151740261061169237165752591534390667992244600324746007869907183724474426248225100885759092389480575826653239765163828943964426543610153837552096472913129332489220413250852898134469317691871045829887251829526892733855590125958201116018921028405628324971766301105763475035125426197653421709161658783558374541661287706620363438385794438407846820460757219512736272203162690874589094008335137594974677273852634244146288956607531582970650719696179751530644403272326445989910660406947381282681982259180969742504029305270239071509458366440057179619396505929719809607810579054351476050153055285344348529724761626308681619700122609208628453993678940673969786058359713554845537032950784996354493372099259218213795483769607260678674056822427085413585415496058607390082197620986807398404104998008429426254486972829467886316944116672890647881743092496163739760382718798176965381026511329586913897722379196859677947953218698032554058952597968148438830283346560370415308080345479478388772159711853017741299242912361712554367468161615242872056212614019369870161497930289549882654048728768774698230482095271860817971803835278332348008581308183197591868708931793226383198757201852018826206452724451731743750552628219900242999933465227200068136824263125818692994244450049204069795415743182985930743285082322106115103986814304513919279842690703160128271986159295128343476513368187565757014028994930728473722721515929687056322492708975998561426835520199476257807276317775537082443124584076347074276839395282737199641285250424534457055770138780061066009361045521930256026426537120812385039059722420324370624760011885803513987128773660582966110903403655194390284531999893400985838424438367617664854244785002644633802190130843166585007186796135906663836820542832961274515644239811167290737960924497157058612132193605751282300661657736278159475526398933677415156131400310659753506097779033118040264612426719535351448465828472683027660339388336248466590753804093531523041682821999750044828134073359983685889543748436726904133140624477997348605586399665090057756673563351935006045924705430412238113742993547257129157855348522325549998310509557079650370473564204536821041541219699873019557950839982264657969696263766875018559759861665158678248215815062722680576485705918279792203190080521027411883927794961275748225621945653360738433162695302719034097802861626172043541656609896423553569566711526230322039137824859613064239550906070739575836690912038474470772462052007162912075017727931849669229568991470057899913095255035069244764296803483419545843691898656867415495476943011579861541848059506058695871272715438563118745735598576313614971786790384658804188789676122641369836190049519265788764346578359328770834042592668180946963421056764707251843462977054314641939835565186758315619950302771296947732667218932233914759668925325563466970385035164243129682651943496688718322537710187652305908795983711669036978482244482455210030127709498322543125792952963308644244178625671907676249124616506316657206496465148349497079188169144897551267986936866217922291253503539568294832422370317138240799257473542258690313589281720007277231233254299025379207504895057033227333196087135140338410836535976235363779124394468048906765148526775096653804736146239235053135729786737664829448678652834177066008399717386890917756096987467896255322116573779681246535288516107277731298015346803088575094425108571207626338119730302224195792608909387396089709536687338380038817267201356930277285789691344053413279762827578100173527090428083706555799697595474143452336409314021698765665198024583099885144467605111363996820293120458144785316595892228161849376118558443343865314411380421064717863418810260282731103749385112701088203679709937580221102785119759688418761272175284952419710565068318810825744541795870275296178500144024241020344256856800229401703066431965935301095868156765529120624689578833088313658291303939137094599891852536189032615274181866002453658546847335955033532632809713994561038530661413407113721365716715896413574626982716205427934772976562825932810573330158829268766480149775593510085296883498591180008823847257534222254811181545248566752511572836795860252027968054786768520129072200076798749839655514240937024190455049205887779355676878262404467758908419718020523206775021561571078652210088516038681120592712620984987192682353434043836089068493629416838136370448011982554569826082973108267144342432168292228911563048886078769957903160872819070041393016388965760366704495083019188367730703822878268406143471511422830428732962431785462265861657693866163054899481827326719935495506748861156267096843675105400060958167160867701355537621278228615301144302348777751588222147004436699874000366509043947433554184308551778122274707939569810678156404135206547229745426094632994073476661340595528877521846406012076052533532449470022109291408212266458447237250146968711500607851526647449744544925897905081186895167995964456711148832820130588863935669326545013555825143867979484815160450985139578566012509086154078009571120495848108432864958298968368806068787538150799614138187343786739788820483752588259408373984109906092639188567030907261495719986604405275008586469586902599645480251546158194335339095017348956701779156759318510931883999328442737427905744184227419641798459865231142438179114109269687737138858494792350685513188715820444055988042744900020247146260649977800720378735075399224189944334170657311771117761539123530202996192051062983375415710016036855491038958065732455604741780035106463810032613653019801270710374635956952461092715921575451833263400559633989107352980709032092481257723452803648017839109240788657132378772691957798538677431169058144097388603105157943621092826387041940049634678218271922758827054298246796193837387653686153791821838205034762001246418637907800587763040625769688043206278690704974194796064454916798972381956294609738517384866891522049447247256869616362725936674771083510368095430869801922285733232546134632680529321390598163311903110397532643486096996251489797785444376110371662446136263894733142232251937055207567981623185420038321020500867261052340571032111861042820139974396627874805874143204489305786924185360366466532807468824353977251574923288097136051553512012889716164133210042740472660269058311454745935346129429205123017198987436214435703012667653829530778075886698725036359740910477193238225339095870149937727005205962472966263242072983551206647066379065542450048008614169286784513808030146982693511709868144932980440151725555013577643846732945647560315840178377073745595165925946166042794796419458079404614150727438935143532226229212554801714323444309487158286364737613263781450999768939713797582170715528009078591719539915307009652008288278016870546443284008437688123664649771164460421942337147009436077931988606260230167174918080134610809121587195422664543621687683830666345912652928716843877869802113593952342858464702615573103163540550912277395350067212903038425278077507024008889848341808733323079601913816233971732034214400150893359036277783464213746372728764517258159350330055626308500334104148495890578002464561404444956434067815613524398002397226045972799232519331954814771297677810158330434368367902847292327017476976134212366396462430934563236568430458922694014733253420503239391818964949752728482277093187300431199665884941834138281218010550763081575437690917581892163964545050849375591509765709050486622036071337210730580717628143148685679613494313719723528730575522447036256076832635417535528688782886059832975179324065698024693696413869326754920560603201827287590332665034841471670251035172854704383117971561050423311729461889041853935068806484995451821135096100351398772705702305678402793078432021452152990302310855064184551488962613587222623846853229142143682115752683210754872643056598577116682979641508905030587798167258656294691524061827776542380851432038684501957254736997187357003205129730968263543554702877948722847289389048664989898563393816900260708531695128781127713114042523408567975491681579017143815636176426082984890270787219846923362341586858544921051292380219498845118717469324292320078170412971498887043354024564876382521192726029552452407715671815272074290170951756464207121980170930576306701168863707066118245270735810126430865341158748318164874227887582691470332221925057938623209924104222321211719065784099092403525313999501244693132965517218883548918337263708597495825085056349666573845608953731775828093303666912589969650848765335594824534310662340689206484990818684252173731695922733263697310121100162689049601883003693737138658527868278053008300196951964903430128582931550146018570459101381559861610647457223091258727792837344167280705203501325685939798101347895669620278545381158432912849049426622215540986656674459204882336859897905048189943559103496480789345586219375279850308225189571627268510044559940003556487245592472775283221805910543484325856519577579749722096464283707952277424618793726573482780788505436002960102261309712805832824643334791883912857473920967556622090487090847313174487222685406697163663459603147492516399386847834826029848261105085542477133505830366991169458258626949911076426826552539989324240641995639895943820715742319648997608050115153465655299919542701903838367476081823044014610399410285750183175351852502467292382730246570746239738369646055463210102561367956098929570012632587208203557529491140223127891984528753657732185806765377455035106961854803978513642636974826564350700016978321181130469441623008021046450821040538696677708550363947798978438468107186042848737697173965839611592144250610933462366468321798363855387936957249554084875448856931136328632198031200776712715273752558955741347409567118860607398290542357355142119321587007529414089600654671034579304733391918393855094199051996134201905490606692699542869003219147593727164292037288134339587504261662278054351226767168336718047474256176095532999485684083182237288061456698359224276672574980640445592748540166547632516236299095320315709880091785335767683224864909567204741244187200956736952046901426975891439565474484381894088804974337274496211810232737271840384544985723066487678364477703219059401981202853272726260830555965916314739289952791684646033340567793292309216278244931113274551606466089322637856995793043993345590875422618089413306234145878944562556485520817993326419393792510291206741099562863559263860573697983508068577102568182814784411994970222269340563783524802080085725736431637642523579384363843774987592114291020226759592151265596989621548840808744925516625584238497644638454957211276868732909454916813548873422070234170126224201674668931344275711266696225004510737883940311537139142000590130793443936783102510560018075228998984482953444320097173404789786856954283374389561147814323968104515842840770499861564423980595657318961519324202292215287739856117130733772957484464307116499079146561795821722881452647942909040593248867284425181737626102347528554228314203928928371436409424338447028424341495022204917807690990499292973549344974512839597551103089507865231865755358363099929791336399078010507697217858385905618213981780053779839855385057537242924412107811406909819242661826557356251505960704645107316729065550909050820399741672646484136298863063344299852805631320380817279843759238462825867227594576785617015728703503780197536561689266340683931467476482451328491637018236544937666376131544483976578860966925869132170219240541041222112149504860886640095560349316394399315096836532183038116171077749159548087737014498757232725552062726935609004264531399263012562595282554511467282589523589224893220590087442795163367416277486772056540528568600018435180474745374521313493100604918107702194566277281779560331705574023237677926213643023455411593299985043157505851360519793298229437141891637993031264581215365336795435527159797030171728956804000822204575589725116358332049320241208621131546281902960076294385142231867784708520894709276388159692746163542718622532328046406530815391010070275459805305660135878228430355497163576933821489805722935611781175283106665201162247630456101984556339141809669617614066848250304135630055462629927039255974707781390811190939576107452501940869664895026884143839578997400770822569401993722701435512128095213245542692764605337819058265738219024772087305471650276743134462414772670994178085305987017710163412863651402518301243989247192742971873957879684722425941080135456466016396036079745024880689898473885193525581403430489011072340690468155646603470383786867778783485641452006987486816116032594886719780573947756490057890013170015814257283871571476518016778898775466040460213067198155221585662804378604896637119523715616143961194441232214975680130561811997070737876917711863333540670318784343420826485938985852779028761034929795677669698383620777302933025149982273501077285263470352536106956185990395260341678637956216534098389080656560315914220824471622686620593062021638735668844026247202137610806964064665732090389752397391378513060762895435094569026151977624946450602907968682910731099878614732197135247446473841369909689628099919347519958444394900568273015468859687922414116875338406060944611908044693895534374537840051099031049645558975964816802892234081556136829269858210316948259240178540585989792931868495511872758759115556638650396698747412013034968158457535624479661365480827416874574620430948380888002643578033939672063784701184143446597947511626969735229629576234605124410684884575320956350652943417672303640440946588513323163660328243747296319943706305994694490015263707779538252697975626108981872701436341601413407061631304303521910542127824029224174876621224720984433714009197153493538082383212816636565931398931218513095538596240939261077283871591537611309009939092769836032551977953127290530942371359912730393011598845599515620835978546593107235310335473064945042918952720909799116356556671054733821835562303972883560013930242460891551127186024236286778221605418298020947206312639370741791650820194173573153743566837960588843136167509160945855419181536126004911705529159539333159907818974423912200658886467872661722897906622595334241788558742587703433989372306909092109781106318029786221252172232662436079331427818974857234774185675526801867587006011641985086785713867374727972406933992566474796895122808978129431708794681276984440650554976532468721023890943062642964333905868729056282105788003132428089567311817041522931625305215162363936216258118354795025829677633575920638804894910102520245209740464136541417484492871335818394181855615742200221798607510193315041509680914871186495970168044147620757910988083665061140268503914674866611617872352316005675415861612850931540173722128467561687148500642900779195252800258045451275141145922377073407870399942314899743208037599205869829014221909519650927452638771119839836722098874633931907685374687020582191695246838874818583602149791300637640687853003554851704909918009223222266093494138716900091407074515357183893039591700288349179076271782684360775892156816250121232073353492029069820050175086100877905665017077769463422803480621835979039732895144771049685251750148003493140884407010337742604294733809631188640843959190911502757928626333482064257853834995941706599824014052443116585068477723444768794288765922345976765293326014327725447532966482872197600466594477902091008525984073473851001885931522941374619670804677301798215267932948535128614140456005451317250406520767730532284824711576281264250617704544363792451306324692521117415251679974006624265244725731530457434869706400504779068677512306437989514649607136548273215424843658349794118422862927188959275061693675845054243667896622859094491639943226200942352844282759379877481281319928789018074260527728500420355129623368114277406400090527881605605844353072412829308479147612568181253089052752647540872967078573979459450172278209859805277136450113454069478243085055214987573042125867975991252795586751039949436536353326183294967720604281965045084061794900888872433760554007157755333081038946760806753740616677442273262598529693385792124560382727744361028300322732759585153454951817464113341232014041451442499800482321741071326434607349706625454528850678427274004074605430363345999469532869031038897120160938515414283851366315755197837653325148428308774775364126088213723757231090449089351607307807665041951230836938998008125313549055767208960519403399058989032402202720460690323805069802336136157861370390028177872395776111005509977999532721243386595036154570093284324827302633119351915333802685750061288725012753529181031252516783693422475042952216112780572389707058416175650768570458992182338486760920902308970770424994813943972596739908280756802528305055720645642964358361488738005705891764313367300008667433066116498012388171976102702529754020650812144745427908993447063892816615989287253092276914324231221948224573170669995478322443196820733585803250529555921716152165856678304862641422120286568567146991524324333673285382668306430511349068409047883722480679771189145112945979808652292008303846305553001954247462934020442926940573331660910195875569351719551034404628828113465855239808887607288075697535127467928930371283969977524316653070847462029466180096324312560037432631712390901551101641737047368909116132899149863684467251300820527761595452465308768700319519200089145515544684641382404576642032926960669586495273032068535053029469025402721681230113283963670991155590399629594749853952117935618135067465767156254532117309057466203744598563691915376443657011853326777955825355131412448594670481042772321835792714722380118878702243477470598522991807470049586349611507398487001527166597651070581050070505356370201430393939487889385092000636766517195101125963845983898380669135280354884959483377088719259787446674636719145379319166574438675503001190038570334824745170173554745369842160524417345827234379065153669703398715331229576661912850928348714414907205570195253955486166066296228952286604105898855205868257043223418233252094955725206300209560834264399883621192152859135131783822403346380366861554073849524425064470360502141371512257952703169305173325684790304472319340571321533374441283610179731030743822809078669679871394548311608260124596750813175096202437835114842016080682579354863851880926315162035187506604372099974809597784561689588314550235505833925650729332438449966321246761821328592654381891298664964706798430520928912646116047211854029356806565358025845111309837488955254069766784262442572285640516745437009757603276836720170502152868445683833774610774856504583953142431522244764276703289649257686509309354745662688874296550427023352456584195132447570848702144395065158445665688070807525811654388502938913554701493422613833997350084844661503552116914632046382949259383600355932377570598371656458471770603013217731886062961509373709494467853976422536756799178708619274304734751825082494943490848078234030537862407392973707311116343955630198753628747864974462361720694592752050075394025073111565852273508322527891019681001076704180321372472060871476084209474770416018604126971597638224143298068998066732115168529580136453826953727247627063659864210821329825727884095179114005187857570497877812086897753570778728876088573573068963653705290272360831538205430259635700382313853759350206348006582995288000308718973942398053542959664909498980216363913442626703282636609827175391622860348186797860234224946098071182648412123595136175502159974652230898104722161358203243632674625313919586638182246615326642052300925727438469354852986585703851654046824135767458539585764185742407757366434286661125862060199895493885434188687813099340674019238451264353999116809208844547444813935372463627350615371422542522420693857566517988767138883893663603704541051011332133538799929762288843593588823011254538055359010212132362335210164224553306241779646947407884706869924902262356955049760976569392939746505487093755654499185464020174136129305249698415452293332648184960064695162291133634803677944984798334889127607391272014784281201009694755555217546987613506414816952307933192497036794275077221148431966349139752448545022967181520065982239880767852114214920551050400027475490383114102044102529583474041386596645122391286857316958663914449977096830256182289863443377157871256534965122270446867182978341385814308647328043809858513331098432221381094586724584540798224680690665696623893344494150069341921794104577712146120703552517020814886227913826926317375494638911703857912215973193726602943250759877349713473514835812237185314525263614734727953855679427521830244862235553764454654245899386593956762161124190364393252353009269866922776147217459819360247560658417248753887319051611804402671371349771942146271715879390787720224236017188944024683482303599102389983831131943623375685771229497502909309961092777385817382431308801266334478341398538277936825183304516659856516794654317374492021457447145248631522818177428063505242110567685124178867233028629692574202067278174210189079898887111726388546726124945863859201880997888302349919831333810843039102871085728635433039064365444007249512710494383719256652504195831358258349027164298007770131670078842549348720308466141565922644699152787320159163437898863776344836752641669183149314829084175151540713921768877471488735495141987434527716103772705063935637698450358890186812524750517400268005989484797998319883869048424729599097530576962399622062148803848369512881590391677138370823689062798495043792086230778673179764824067327088631058093238133929241803614943055664540678153127821393587983396391503442534509817206531871858081979076732439019646213253907867790926653493361581224340781722204347804430886550933563001554098402644917980342292011726722849810159369756661305101924691711002741260456707662882010275994658337136249925502248407360809539446887460843595048015515079894908485324672912058009034217915176350677841275248717290905229035981095915872766290752249984518565427687749543339755871997874161075083297088978155250844893100978306303340867894107616793815286117325011013514624540124103010400002082924054568668190505670821822977533071783946453140727739282554561314835464740158682577578811817805840479261835641314294351048433318566703334554298475807644114388424057395954423740447771037514906803049891705503527812766498618716979836699526354273409239781481663227889539760072176628182722067406671562395423573812371646569808226116329362520463212524855217060400507095731992867175573258517372068458328177728790938244752629657718707185965631335785768434965874466706666398668049036472330836564564604339382816609337315789561335089863622229154881600942080935997639293039880354799844075594433537769699715262190741853653137303087902643132579321180565807728752680532747524450123875386237984364696410673663558676848471886092391100155824623087629930872020226426021892343376926288068383568136832302527580369678295867129023923761200903018272970174109320277279884411676296850229290498784140179785489042252890926070908177311643691227149023052249618363526118591559640969226289405371631198572978132050895333928970968002899988231165020264017867293610793126055102729719907238511427265302502055007568711614524613743671290436846766923927094099178920345251950791805189132516983110713377340774005292266762300067488591527962065858814848658238885826708462123130900505501747704427802491895415639021984010747946225164022828923118691988541701775047392233880729347345034371257692224015702467510271763962880281117545248459132068894484012799674726453604981103505733993786314138064381142480067172059640704457813423535959012356278160646743078189060658104766549801375912389000440129726295593683317753711013391812941424569837208337805881015600632329134258723105705964859006099975905466241782619603172596904940984463492413726464790019982146377990739052881230468237878615012165815100427701191946122449785176767927422191356457453221195716331165061877307757760572963788142422391234844422756461642498577955821287497333201044124776641763947866411094832850013273166681095969740797079003267380747886164905892867440409311999131002938264973906826437465298335520160165718031229090992167093377951282467078381707356800873952746772829255793127242523871144937679305086012719897490671155141972257103972369085799926951194587898997251516623158636770488045703716499958166690101767808225347200059590300474755709652615361537833261448878122556311947395796930357176890646856675011698882723173933120388502065706803976785141397522589143407599406590687643167575187520445303155003450656591519214096016971365160612276680026610899315382825225464504018441578837673775009346098695768779394719279663607048521816350985725156908225846021529814498425883637010638574966695143655162180844307713854199782248061713794678312500730689629290942259372883428404333877576252014348510054512265588489966737239798644324362366642409867352303327194643117885729126260299740337527491496415464389537720683861192567275913980671088808395838108326527133293264951854696249409317603428995955628175001288779805825331253549437575520008195769290252531323146454235039598122438521910510896986185674136598592596290423397524389133366789313385239587633794182858761339516467749599701819897637652171186183923443393741167102493804161471142335948830011002449372195995804145965534941001152373246533180639125725936917695316148099108956743738591811537218941024405112979080283417457290329555351688100590512161085906654570111602216610515364152613797286555623908979740370275438737068672388696621572198737139801718661459351204599507149745492731282606126286818722366870324628992915117005444949909007281752156843777037541812407109693597023703841926427622818125557526723620899038026417378299941195770049243479834320310849481078283519760688488548308449221339686898929955724065019764721138880157730386132534181605536523694417421487008258334422105958915969158372695175640129728234986397458767249298871961266431273362435261845694751845484254430824006382326893482266067649165802104135142794043373500781880431946659869562247615992852274062834276241686170721641247739828017248200205026503474735314297697656725598487069771546957305495375615415435174417333726198527383263531174271119468415882418331077757117755994016829752744570447988564493238083128574608491803975669839529155090168369212012253425363014683007124381148300507922359268836994179782630772867604829791435370810885622554169362403868360803291036028264455629411185799741166231228182535155334051388570024557551590950668658877398668281419137510178913502353743980612453883551542488452948931975470201088650745056171916144684836331498224262895563560359316648638554983624564643698645123008034878648157657148633212394903573520911172662856498391872871759298854799717045935629422769243244203501553131144362173678412738902754979413541911826780185982107347642725744033558162359158291433504001729988382907466038207720760700898590344662335375433861827697359134333759335916480586787811129491013575740602757855530343258971662611031869589655444061673916915719237439087587649288224263780313425621852246833002428357352713999650448598483803201422269022280739535628506013315096750421152449532526390184762360530723906015084992477131495670565172170021168045643009962866573969821625047399270822312943947349129692186462267848268757791905757005605915422351314428557464066630991275090293462000579498862139213758942974143921269947968946127188039641524977561291479464537006693577620463542311960253299095996646405346848044319097989697253144568495605284035543958773551856477146917253463819171798167405011262216003418498493914503676959666417555869822704900572448658666342457175030851494564206817954380697111838576879759139320104812262202781418913131374862694452762699082897632045058238361870820787860651503449456257801745718611123004171017057194951135602001809432005753135808878507572621742102642416941540754709513233580856815480414877662528029983881468978348898380543639893258209393381409095333255930485792063616977974134173019505082282290392536550560575569499819504697087861499331493644845135014079109606702379319013649688822368320828194048241693894646038150173324440118234688503464993306977823931162297314174804760838158339788186455992302043294974721182552226351498523230962484987018025600074770309114413548114425859647818274947946339788939909929604068456394208704385996274824342151314240922077420523824490346936863012802007140029334976384682605494528229159932756099613930394841608412281475192826465886980175250808288006318476872319191539805368602520620214055909447483675003884351000850887790788899437623701361545533019655109500733649647177079035269693655465413534556997310768336018068511042715295848336159094632256568818743470451359642937787697563712179152228824636666423418582815801813561662357164450822659031596507639245022521881333357203532750468221476378127922063821292181135770808453733317213168542792501618691157560532591218660802229240469388526060351381711762324082700715913310912662358606121246163443187834618365731034161039676791752411673851528052235788771505849324149270303754308613646910706358794984152113555074899809982819853011065481639267176657400553849399842374631596728196074874001326903876815711820752685289376463266776574192714129950916659626328741010435532046975638952996868589857071041346483700708218228378069916395538961473688442538217490541795565839507233170893136705303713426802786640829100912801939753623138046910267038268260384394197297263522081913491829548127139433187390437088574472437565195721747247794067103557448064585118542329448940273660040978383685660503615597326461186114884341008578144765161205242853122601694967009691314732957341821128479304752605646003869611061160434021714397552731911315692197417021046434736157892282955429078311596401470693345075152688354321093952631610465446048329643468748521220725005104361329946718244814508081722264528899286112859637899122275748982270710157456730696343799683095587114841923238792563494947176344007437365932256098977378657103654137465048666337896824441495137669746378401679039160532193017625548332388056145914459587475284100019036585930471145020849297246705400016996554583291921992736819250852623423927729094998671961239141668637402327926145111776530169572935530786407609194071516922756210878442714827374687664150023694774315711455312730779866417925922634955511841042042184561399642224021105296231273090060184211388012288304573651122988079380181469214012269896600959072785935980428054156581990842512234273145633699893334279638054442585240784420257224057042599672422322972870519101377097689568511358804326893001363676499465324098216010520015101424799172913768766843305856698395874171544505513626703078952698598190287614168709364186343020093796970139709540716923580303541286271553526617802752870778340230102321725125970427892193219727896699090825277993269639402051438457835907182784145839437913823190261275461677485811589523804785338628561254981381302146589605527406868925655098423711234447965667906825031186859113244593335815027596492081548818728054248661846776167663919871199715831751147237291309444413505000174486091813412501097357305359836751983929682550678301035066138110450910644087241596886208988803745797887849158164359779545025925203614886126315882375349856897776169846833650532975590774393540406490749250577995787968234011685989502585699621854091758605235831755386457934125827636328847583376083154537984073853842256082017055010558300681576837884191911922314739727800540919969750957730653520877875231775044555848968842604244797588090759811651631711209987689488597024439306043676750267447311718097495092260060206351721401598131517274718275669053501460944810368827705270320102411576895053297349954816634288498804438359813414618891305929152851991231817480890095017064771559017401438494121779602766237614795981958266718061923466788250859613861937690352455729064842995456215340120186524660875413167508029746731675405998671276244889203283594495258009186336754937336223796953213535818837917842828553874964924016306321766340963682065306542774299137305564953000285236993942796191417398430036899679604293162388082854558154826942060714624704128629767672934131851336950800201755229857572380976936697803352702922097015601578253341810496716610133866123258452357070543278832272435087821068638005362136165632996383918293074844899817160758144956903692374604166329628396666881282054167643956893471621854671107114231405777582941091513198845368397798831115189003258816869504165512638348880902227551271398439095073770492925454194679647381804264723682077176153558297571740150933403100737701852654809824036676302669602416421120783598165419981165649884231345620311230149535710469048723539861167480356790475115117192960416537053373845562391924583325132224277008783220864306951002023082706737905694793726153489138006206692473404703480748269072013760917249621520277984464437531570794445846037777388800106167321041333151030360332822648507806100974242241161430340917938413485893071893305588806063036890135946289791231897153282026167189459764986489454085479578601371100428573959892414387295388323448634934371113373304485631465880316213393275164161403947541835453485678205248739251480709023502838655742521396489145289508347470233245791152744622370731322028682159669500863879321013963383004746460332368753577917289123655377725158786344385822764233105038150398094144181163356317124810084600297748023275961114560226063486600439407654055487610019438485375655798796978511312776889704330830590979216626935805130740362200279629902057563854146571592150049065947864144661750165444420292163772204017404913595288122575443703865453290000403793523309038002898261711710450982087677460073561489460126583830092621563955905819302799402804581476328137502207949114373564000503326865852274444150585822622817943994806129465896141936354825533944503897195087405486680948860697801326975994904639986620894715483725027342115009558091585565744191856736569304482631099677077182145161192965231633231030966299201403004655831438429322526316206870775452695976211452944288761573657304249554431505077250815582617060472507339792042281743638311353645141974294678036932796748804296165969703140487328116216017174912753843833899462774217688783454322414857590275452655895789567023639138669967313518567074960671551353806283269024885774963271863292155082313030440535617586804950147917376052698734293844241779534587094025740358686233609078024156959014070974435596086894870642560926755159373204471472432584074701921396308138734458193561039269612688976570594110269918499643831438579048162350503680753536158731449138465063264093781625366886007714472208447530992492385242530080850186323805635739097257867036620706217087744509273692923849377288944610551857131809331606412050218002978953148873535120669933949019650850725384009167992265845952749025949866897658558419533979447332106303632340288072436515350818117436591152987212914150860684709993304888110961567489470280131225030674297409782390486860119494700684450660922524792769802452078648220966009889322666430679198514160402171119598912598208125318025882192736094209072598014405045546440904901569767591010664567910208632642948852194523799098879156424853024683322491765331530438933812596818498915375183168579898557774434518164188898322300909822857686987391074709355303676510310882068818435978247427851427013296613278032980807070671950404828710777425649385684283522375477735011029472786314492054567224148506652561505745997516545625023684841445249422443125551382904966544193369026825873881129958959240285090320402073009764491640695687279876824927423154434526027680305258666022665850945691781325497001760745053901375345599913557484735255015158162522237904397532653510060507644694474421855951927044658148690957713869927835820028946174182122033585299069003651250372727458048586019530583014444695526934153864513249376954878793642489212917073283054768071091580869612999505621758330803402452464859028479294184757624559264676175252650765361570191005438657158186341171558067424372361085512633622338143755395053679280794741345717210012596589850672383180725914600193466069330559449571842230750328220081273741998064494916594473503230519363754178625227163110707660547418430880874047684314437876192143471720515887787455638470050374146491923775033999644420730766393965424644632414138590578742629725570344987122630496683812175541559320300741442419378254386869066919354208937396921648961473427416176315467368955572023986619558244230270425141905897578976004379729159447051469665155983349760254500539293776094122606351868994652752261325901175946596779735046425978938744491077371524611383917627075357867138176205321060305322562653605742098247644014693901082476918227853398564103982798988779310436441460454461931724651614715533595941196444578038174690383446316183558880287245914003676369297651448962670314182215295063393027132774786484797255284733311498446003726429207077692468684455383968380408116304656848660051374860774873266676720209346435226568177692825803232938109642951512847283530030357929013831494342621318113351150643785029808809136284864569343011814366895034739300061830409755809864623832915269122779584274561206673400564553246781849106263082367302596738509722871900483286207609372517436744943129319116225587974166885913400114811328517165588370932096404143343090795853106472915158957510977863669265735452007463568527826917283257754053326313018429600297970091817597199720028115980284618474896894730869332437713993597893242191445751743367228277074753025862453094011746956568083231538136458485931877025915509915864899430211694232796366155371008060134736485938593232047192603131348216473168328635693050554611218845787915548082947555864292538916268166265767592050404048209020029141511016777355248708937400135913057325472980645698551726931383653427302668592464274019433070211023583707406538820811593161628842653592726700717825072347200578077716790192115046783498168194979804132780980334666868913388885339725582344508909696611329336180428218655557823392121941043976113024411704229497971647764701930368580911050660486889140869372052013078999340032876837756134375675358410395262356749509006636620258319413948693569094568889997832368382755676148480805226329619772502296417214703398381339273607628732370537832569867348322292069337890933102806337604121353904257486879279161151678157366565878280866741948006511184483229073087919471781755259230773503135955333341903812758127813495504683613572072592753235513200461474853923648424049288759862179065666433848637933145661216148882642751351495483035972997010701238458587497413217723963463750057001269015971017671276535586546882894293158199691901295523815033450894412284439925687365863414354478634978039688802975285063001606449362037917007401484071864438868349649834208575317339853911378015400331940415725507433574953437783534357885212045661019818230389216605606058283806367040369344903458403585153092454448234133186652710099357782442085804300594446404430158793107376290601200570956674122283637753086966455929472887851715060011855025303645794391018324518156596754096354356213433206244533572195634175833237917696367820206692068060194981548367919379366772157287655849144866501946934639337003776259177959599691335110114840653206082020328246137291832320532387893062914187580336156304378712459025091275986573254574130746821850851674752267563754412698737137437126821585380357927597367424213938925837398987314243421603947827298011043047738008806994360329715883313346786730920965888045558334108149334039651892464802425816016350513372440174299611107640380550949366442034263360730084390135457573516066666916564568077969113122615146082586850405180499483693784272198849419348630753498343729793900362171819896452820932449938935184678227178727885522507511004550853421337398117027402702601610164542192717139124812887983010032256791313056291265891577390829513379498567706011381529614132541563195236213147891729542962133708448815444391638741559108227403173990297436704184922890610622492317901590464139213606103202529788776601958988708579551030039002682232263593192381589862246641161367210639388769554401475996386227500100275467902741021898924822356150429756563364734977636479681393749281354613501989955528424172652695162823434739364909061743921300107550306677738432152613805286756938351064887052253300494359419782111917042374322544982721025491088421502722489093834487441242574596943250228876244767453338549087044943743660188430627370397541437462347841582101127487301574394998049028336861485718435600571320441517523121442390024009572744310441672366423106174221408677023669248518950030700971769861847341279952365715716701809647945620517281979760211489500933616983156269313530534246696103249117552441429545100156781342300483045347114839327469588741277466023257070987134697886163641290031596897257938384565486687018743929521318813998452714377755760052972237435785575449045883008242372717813775681251385696035982270451971650840927586247416046345111024308348082232511213445360826998828264726892044884658099073900911674460390808019498780259807014644869163626864937455634103509037967165696733450752620669667629115906086527635589740860583048764031094924673235574810482603027013922656068824354988771924922626963534434375985172378657725964905417427084355210308070177602603403540902829963660656170996858516846771110288120175384892282508127771841038718849201189283813830571263515245340148596224869071155381950536398349700134222489430946415700977235692403597170096628308386421995313869095026804301808680426971796269494087690959445375728210377669720195019913923975472796124117994293356734241640215721954669427256118822800032024469932275052523002752131333752181149986961346923016312534259123420984439634512590764091074564648888273448347402524711946493934578536154025891791050193548161496486479774402097520135910911212556001059885272694174208779046235645655729498464257329922391594819867054550548513903417854437047080295060042585352753341197524308035540534141367086254911923596574877602375881705356540426142199563618476222519494008074150170378524599138067671950558108671800633988986812706877378397225750242905935782370886530854211131301776857264723270469423076398985002799987768521440458595355196000022135811987623189617123254542205792897848382591346783469447484542373382787373957146269263911935411103935573244364799680853696861285492134815677775318745773966494632075637126105390444639676839418912827908260081668013497404085259703809675972348324760852251965404620576902601631218392936165386856859493776648372467922316708379261413664193035141776058594891166173525182667740590640415678542189568767498719011760845835994248411035190875965314418046407667594889947503160818122489574968061533399304948299951431028602397260230721394666741322897541763102837320858619181150543331494869818027381468132128711400532477087769044271262891345982863178131394321363836637383971834312457625283483935361307457330599354543922263551284280967341395879718899828519580244805171690296025377600996197533888776768843562950657485350596012038081507523212998174621760603618022755300064580834183696526164511627648490026726120179247466547449791717309485929665214059293983776091713453287410074155521352760038442949375282843563164401990848185435253994196405742535420114340939669148996539577092026734373693981125588327000611115669411292701081135389604807801230076705881708688529261896170352982910176875884259847415445539274028877615067923724451627265133525011806086369872004872276725351501273143424682681867856290256099633473835935848538358587859256928855819360575025807763220539736680217259747016410576024618881818182603417679262512891905324834650863883694685551076266618465524117096102545186471729798378821053854450324446477710510660851311723887605405844780578984111798839378094472688142599090769962087801720637717424784101920679080783589473998897441750032208066801731245705565667020975517446374102987126045211756542242105018702001663538166038457117781616486806947357844532422492340051289879334460046971663739558439042930990872734255181010115686921363484401779668722893504096949584297414395245558862021954423409086502856136472671233080415232644467567076328342305393947899639499176173053367415995466508783031328286496495788588584365410301276119498657982436103446256811285365824603958271918748850399813557521912848378027322297303638117424129902682354715379265484001743403154128427603873625841310560032060797729493930703748053872188770830796123729750155068828725397092065399051235265022053155063226535026091692197870226225644663718387943667539940238025280497401684714297718753163850304521187902700101600773813175376266502647914140455821846074312266336996672637298224369724542300190162452677690481229594240347235938989415324024978750622940378231616685384822618887487126695292862048830459177039951342030372562939932581212501541445187070809551015572292062746493166918863919552651828751499556871066977572194509058068191306549259716612033342841532846541461442152226059005209534814705895039349936077559838983012446922342240104998975658874822437067667962962360335216254217248618686669616176973921050246911028717668986130675038887241053763540584666579236324368155404581623979275843811510525671340543385033562899453731489765104244980423172048436876912174600921761360892964223860321101931796022260548352237985585014330373752777554321473878703875257064356014663867461774627101220509471797311114757868159551369669564697096435027267122236656001912384074585237100895141636635436088655329322752365118631567573351092752670227403268945427335471365141740547149616162120510770056776881493035539803810880479010316667207942499202250373816137361688989156055013760649221643586498896419193474883554549441055597488376086534777751426074955412827855754334779334636114445587720138700195691022482640575931654050468719582351574970749344445642150486644465421068201315086517613204246849664074253772406670661870395169099528154152841275025558045496754439115952651695114891900540619330640922491699444031356218953233290353316253994493669986231054713004681511518070588428904094210899492044671936446809387594939505399861169791812425063877466573575278520437551693409033341290638817549544171235315108021051372570358771547672447001735201090796248745764973078941617065702812321377511798112794900684836634238627251745356060078010537934869081545375164614230508873786273663839365902642659552643962226439809310564484662887608012077676613280700612079312389791494960962254954941220578925636127056598035636255455105041168009426974214953713037055535042770526756986071611493545261020721176403253474452076246303472773608031792132773340959673746977399772792486311699786537014416439279876306247101075831788168726282089657301626195527408565863213447004687680707876964059162781250596608000180886348952336112783078722180465645465475440772006437773892678077378700177624006994761185315336187691473801143735335309245243746767752080086403632865883848660636704835099744736743919408621757161514653227729122214927899144410683979192941306309521500941540082276408241459801197573402921005629294857880677486828488044152918671804854851671562504477129477318261436435718354970529384870285025979466917362800877401155537584411929274521218395105100697244329608244991050620183036630957084664022894503121333709144979420004793204752868181035929476055411454205202118760280659874367602540914418113227717894592785651623562697344821505524248532982506422371848725070167222544309366566969298646892221771045248859426047372740225263196299057212728803017009896590645819268484816030173129661030204560333234956368873967597281390480069722794857147103867804933522458613645586582375936208299304509013715894220571834788046663370594849460307460609489579385785923715765434189510937987538915247857443527970993904631088016039743357648337006556593042339891839207427095424616788631482166342963567397108383391334095197094031432318077782825573719371100964391949360048966618977838519795470978477828904877490480801936330514850933368581601148933401128248664514243087382535654391585789989956159972965158851711476702240481700334454629170673993760649648256719914591535067707410904675242128416906695664860255437196143972302742690123406705715394320522548084696768887395596683444532708543070639290158104959807942676766195971230282097779354206961837416011304043540107214988858162306559345820485714124244073011226551857869839699328357342334465669674344318013490409761615525585290546905332734263823520986213411429163788082519361747040133347548546962369724239374331997982096974598067404812296225304864423745067247619833611279181634658130919489732199078803455919209079826790435718260081276530085095586662590257025553584542541501846765845709519021529759953819244160869514268268567735181557765374402581100092601247963013824731755195963929970948720396620628849725372731653057482467931530995781622561236339941607710458835143030003127856818624645111236986051161337976059975650721158809228351810743741028528786308440314387335610839746178011342902932372130545369571827905452632461680800135069374127263441866890352394213831143393256137184664276264628457150054235167409858563750966099471898458073402680034961712087349239599067152743647507839694012558127031237781982207461231715216852689804895613066974237013612229642540011083935186093076312016142552714525857934666007373628099359555563494956307333866998233706061314757784500697157787844066392974881678791561410716218855360361705544976611051025277872027608969919438819798487054034893473707060219186233653226940178478982714390305053765198019449048470540464923776809417443374039381494573805157174692761627243195918230220766152958364435635856915667133879909600737817008496109514014668829851908035359178045604996732059035576588982410425822303068797639344151799347638606515791136085021715251091998754695814334007567572035250753433857865915891207818249203477026868347961279783759649743119444022199836922946933612202550158679758301420134885729092044970946281631193873442854412425875900779688391753656885021193773929655479547360977069129780386782582442962497699485712413864528890728200397676789468992475475311668162282978885822523998170096766648866225427144787634435871337313365098457302172052970344873882816483795895638234053063471460241330243042594922378111026570563982007005979545611062558522629114820015522096739875676755012453489287202050999540776544053638389684299384809266021216075609045808988881126636344349788678106899790618860157433203162760533163071447679257449979832368407049633748330219300551291920542643477501254753131822176072251964537012072353468338550299419580383239845527236011736874161404234160108695535068821200573416765936902415890179905214479190439130122391032877021359830409791291359624634096099493013657068782504295386946437027162447308871736769550275126681486108901674237961520192304488647798730971925421073410862278505316238153578463249960994026726228553844013552809032503354909584202288896318622028587231772905391618343150756786075420995323206122027324693937639407369763978743874436625334855913650562464251501891703632421592995641771646448012240485768962454444526743035773738738500555349027208745588005652866026842182240555045035695091505173895195389635690971132709070503879689901968977318258011886850512265010893409452923195717278735739773973588979539280582326821188117587334641274925473990548480694474867818955534914886468363922293679527870432179107218781740483190084023892623091704414125762971694135909138372101446812015035419593099429270193629034207006514268839279959629294880116036797064178273657108990744222961746796030736466832527575046967262900356878974246060826459262411884818549087109043061115058870650640696832538907261250786191742030465366290239755985899124045694477252077221035738099660343691764048655767587449421766370434270854552069026260432912766693372815680901240688979062392599964815764256831419223532562251981057816373639002369419844119448358709361987267528413270323775921494134296274300726902295075012927119107406082186483819866961419501196398761304670492910871025043345389682265882252410376072236383705072305444352875972315685392670527065821623944839310173173786723303548158771883031346937656967874443792313924288060366158239087488005378555958153573362646932737250056131983150973458526857373884239683651204524553957851184064112395025083528018541802808815507037304170099211041689932337148801796831097957837427317754430289943997783451631635252424381854758774685981632548023546236393031796772576072360853854391532142503851687343541971288608484903623654667393597567276832367103974758466547897882047393080841302835397734889643604222345868547995760313580173755188255287986067638626092238826876937400848415831840824662377427358522749350969420023692297959606708023676008978564658683833089367028349926583785849455377322560327377033102292352822502507316769289318137794564650827473761473784961231339454625653964014100667689748664766179347904833020450199964412730430839478365600876862832456710807046188623187598700106955854394793687672457244677180602626498785049197458182591802240247185424673351556525885661642610592996631002933805105279046552534307490383105106841302641486869372716882418534080137725159797340582988933099550159562407011724673823481120667242223676936256262626706901969856415193613511495335680234863700224150218897163778595164239272349059828769591514161654464606437387570456434852377302184823561747381664467172883317449372756899872482733104988330236558275639884156603012807496783857538174165982635136482714000498745902071091006751939660089976191241518742482852510615927969675601805323580412614920860700066820827587625019954288268719789872277437369458811189837373705193375758231012758656328800648189837355358323825607226283400656720273652509055256308579530677488422173109295083606198040969604886308252842403706494057890821729406828291173257273187302349326824899638840014036404332445211169367312528618565166614559391737526660523027624473144398213265018497433828658588869055399251557012876312345226173329079576677393449661568562577303873231748302485557642168107949327755874233090549226190484318300597391203998791308419217377072949028979733384161881385610608741943801759960080962088861265211486259999198122783000913099046280430311444531341264937241762303929735989044331605686467521653005275307192580663647873005965773399250168717685028718471299962106794931582962406491328820184870019340435179099985848198262312633249223651308156274112059749563313453150928881518963412939355045908525528505716377873628784560842590549630945650334095975378790531479697756178488207082194638493063591649339018955990493908514326854724642666889832020080005260008776662546219846797751188689143667764773498703124802722406323202571106325222067810867224580905758042365149174172576839440707003519215030931070801102747188416407126319940105419639560616190363248335257819992878345055431669567556538637802085516401262293129065346085990933469695402705554161942907134621236026853191353506233303931382603537822419910825224040828284625145403182615699450690410298354134672430306490082133550839746904088657637964332974182735680433165376249427204673494646213235271497682533766851126517929647400670784912507636483499590456201926412949112626586460630756009992810135185671574382091432163827422798060562468943550366213203114147949443023560647023245935888576920842528907130004647527524149731763686109266446511821442006920775079539797240769342185889437733305708471851152711797684848394362600843127856323813071598561485296489065873311294694499664986742252873691757333783540841649569409214982099697598042539435151148678469352406504681666433925543817561334751897843248360924146454738258476596116877257322905790123168548489564784343325621572254274582648130122229279920352239730999314649014130029847708516661078031224121878044278549971227251280322391826510210401353437265065032879542301922402921055078436708232827378490151945866776673750893834707261478351699581595759169377033821453385901603575653461411602285676874635131813199737354844020007964655847186861212330516726081373339213815054411394815154668112095430789225915887396854157869891448157081409440228641096124769289924679142098889166272518546955318209713663536866115805677615995920775570722343098185100347900141789385816254763254704906338220029018569446064842378585118746136427298997379791551091406002537898578965073513754146650214249075771239860409474358777997339238403279149108585289848300270577482327967647096357295069092377029948727747080816141221279114565039643971287056943272539789892114551725142181166591953431718734289314673581536396073108103995617314107608336311695207683478856251685161320529424961161645572834293205335597092043847046298374067858703542847212624356443289136655026726965129093205528833909220955130820235250207907590347574935737408477305172693508413363565240147158137225570258986634100999605758632309927256174119071204170418292745432275880125964481720435558660980159714729060863538246160483602723121603866829242693263579394886423948688845259264618379074312570234330620338190193578674810067563018241837081944093393587438028914859682182946801332128668828896445693093081119912215330967644035573322254091495624542581800685507249995170538197379614166315533616270549868207374032206102845235457062788266802427396327703236421650825478952468063361356728605904820620646060807877383269506968341639928179029696296504167451953974899470518911079401024261375302185264695489549584590655227631415379567883481420600160261902016629418699890808771148159848235098786361447250178587235790487070842160397301168517535984809232438526343439174138946505711309970982761394335324686251041378461355974412832509043993058589794345250404302316200286378105931246109427616513062687369381554677486445237878336398820963043547466730716778461197313591438124196837370825418455359382221602120569068257770648586040924230841991488657403482058502066797633609260870855594646759523914257478465080913760269520599425644771567658839139232621287278127934052787528149865110298890678188168172308741221095803998773126189656291236459197976270723221711558721169693942191951342723183951719747542742918380838434302529155584366753565470604365326780760230185702699836335057645824479877434311050449993686622567934285675204958446124303575012382109303530934900497175250701079520727658783569072342079838483970234615150378126478554780295942401509442186405232174679572225269720149495037170849489190205268460676540704849732059377014282783529786806639703221403872136952788149339098838856806444670875511825462881597118192972116480886220112247479239357785419936025914500672355107192494152917480576283164711364884473415415270529433960359841346835360012001291754729849913270746374671598513195097935245447425134596851030880994834251254648404445168387385608309698394234407405760782387997715930439262276061330527962685247950611295881608801835989913231361361531062230100310767114194519440405254640448125054273000777764593802983906727248993330933671575580118107647723403456614449684275373931070159090584404546187180697890083612549601861561510232307461939966850794280900107160306388081759381297607750155058960331452267387110486592980694388635578160573625684508280291186369889486890152540620918665838546655915775136045499516633460023323823516458132665726918699651626721578462788568909659533783061485872936547340210409815869904229948435153071575029469898610292351864431123277764606356835001868088636531218199530741173508444573466225647443679615977482088257052232563355469471680767204895130089847674686713579137872950450891404456788194822664841031354384936778622781867709861239752083224988908267009051096437697933274898554446516067872701301590781153944786186471141977883127205337933003994114268945682920340834940890911977040626972937131716109156116320712743831637060879529996411136937754620588031152044477622515635361868139763993730604848905087924088786623095636723369627777179663820686746899452936181247059497033894467725541721760444358533983942053189279154082345242332572715575828322933293088061124855405068191702472999704496381010992646150218304539482528531159228900647313859935986935436203768395661780299708776600693745198086180031340153331371470185394628473669919636432692689356299606815915694347918527530297741696054053115711052058542918024588775976091555349062600798576210504937863149463885439892929630014420707489915094029120365365191263937593212614238227814221737334149484365234862318377856661673789603127672950521750070586676342927695027774703543941817028163445694741337623272442712336394300529357024019240583436568650849020854308171180766206993696088735396221989467349100816605924722175395399402253368189386494102819611561591870111463372312798727092446418713974685389820395359425256737495478310890155801486583716806529649232195232196923408722717978887234030364909291873808721163213134726417283796549120616847927750921460441673078193922833679142450791857343388833898009809205500884990075176903633509010505082298184031918462914370678937740524913239670332863429338960724101174681520982975180288838578046251290242728649706055230896243991749664349188177158378669997764743298219015598853072088304543922219374515897082720900581188939957312118810276440863225941196273404143072898866430321085993287673970708042512940566874602676900904989157781442283476765881919721994807008236702844423648836452272954410848658114980185204817446169979385975253037535823126490054107101866587528447324414558046235296907230585110018165412610123926548042654329577964186987851935106920549512271616367657203951180002398212153080342506751640493481217530967036020340552121357592821492572178906936644015645665158748020987868826086776008129025543039154126890034033360539959987276486177342309405098986181039009637123121417138451147311754287926531841307023109874329658509282456665048237277091754480640169038634644428944221816607483690675926646792128061898090576012974964756930089351551942433714922888116431303528447437421508092363545700179232354046320910158600043029041821621303602243309895275645604507841564114694446964874012349253501834157500091587261647679938658878022517927760189765503654023807119344206966521213910013271178385927470767908762942656238009125837634153433258870557003048190370285984669068043267507466226485858903533202428080231027938889574194410831574137244619926889990762246082755777267690810126343029455544924063794657825039726549906653770992110997947709944029024815964162740606942094483204129811998704582633013140773476866256432410339576481833976153992944297752694655644644775375712795188055847314026086161274648385096447111781095370210412228153425193475542983524057360548900177984813802571645221853305222657307252035493854992137740226439647049929965507741018224411622154821255223070813237322464008144907770073083479835580273784607525256797060033392821731303497625522010408738153571743602893247902058663932469887604517059229725325131194333460373733832655927007261581655114521742264806430221518721862061986221656091741125242794819325021514695590070322028177253696988783808893059358113412186120453364510941587825348061755712628152436391289067535657536214018595693489682640790731536401465219733143723705702926005209109987638051138511077238932029221482469552497730847423207377535981050441311601639110411198913259060273418898369131917913343118328742905915223020182120697283487396139520985767986189309704483014760461105375433461758970901706018402443908974457996683420586125242158011495964239387530615458650097856949853111536349023775645219788232571074551434611954221283429308814196340099092456913794325275094076192201532291917016892103185527979588314570610880411213094072112038743087435015206944536795121703895071652763813785275407834641254241064495946315575922171601628115553119132216465347257026396975561905302963154792017660524940502703451594114307584970081515729426611382616819534231045510934220759667242795822317975178005054409130828090526181764031022522094484620091824209342869367700741234715754892281842522068453566965739325166103704223221767074831481511804107820974798097385745460237600979569279592447481178421098382165355842333017899627215747685943172527014388056432893381526913809868434634976502606260837929035177423635207230225355823615778541689218591391978319269956826527610527066513880717340547151014763432564508512883379435342859055009722571178460399490704817388914370468149684109666704526838912250825284187725143385927149657031221695357850127961864513228361689475028745686683808499219946778294785510757223446521999605342386195349253320547425512459007007906151446424231947375282090236371852803920410917530740287354776752134769902935329999453133104548343960328272662292556282219853772705896514927355786763589235533208411685603237125303723793738079948913726386019017091506265812579710619317976663542389895213322953089575241675135993556210378763289382729032463491315136442296260770130109636093309740457785086118430666021699100940487435704939493660983301292969224254611200206796250171879685697083795572225968327161060054815031102942382430158125654010234802740814004049940975889000681239247885563995011206393060761571217334653312372487683550264867566563969927589137707030081671049635292197286725774591241531334636776939598645079420437922866604314974750687743621467545135876300142432154676825560169950440993583809774765436251957406304277784326885760337563600233137132623762735542536325898399790726590395901147986932967051201286948289980725374413507283590223670251714083884245965040616561645555519259168761130274565301070052955204440455596599565588259621015369338135924542292688759884905486317728938117978336823895876143588990005280169958672074024307502127148607395353581236113636761929558008471163782154897873812728986971147174724265058602749828990122710445125451534751552466350823115267029232429026410166188254632068512823599223733846038453560957245406504962395811132038228966742772812396089673108633203320469108436926891767901904219323740959148374046274125269067683974588681274437498692090083883266542696924931628970390944545029222608152669122382250751539236352805700979016754395172948292089742043292299573211113494265789038139984065468611037193130204990858936894886591411527458890151800124498954529202753912948394684914733982120554887601216326133520659946269226077250658626037304730503174002071835963889887103147020305668463931070035570089623371625189287315293046851319803572111039395806309435114260076081664808036936993349206308641326175603471759829102296999869232674199260297547473328998634541427288369418552896513723962515373792085393988861208092794303044992202023595044245185872412015781424903807303540363372722970046802574051680986929197752100027537577623264350977422832144614493312752976863403363398549253544459298621954547165919805824025069125026937111691399054593741310018055506831208042182786977948329458790454128769281060432303455742945823524273010644755826620087246961586456999202092392453150965903466577518145228604295639360869949059756234288731357026484139236824321706843466713949075758612788192789778205325943088660625171433694773313433895404508528317345489010254927602457948451712959813457175932406848264944695778958737845692944411138556426770479301018423006701119145260728909865334902480488764004421063032737637303221057023217516212000781634965503178481310882285699643891394970938153640665177327533596847234841399356035350939731084112406616843419195222628584800345001313132415590056578539945154779190636238251889289840684212008299913198676375899858071918262705509422144060325270384772764782439246361255573111202113944511525778644020090722906936962564211601135406233382186641355193540029967899802170673781882009038861915873275617343810381538505137509630326591695653213495637121622220507442999089231031557337917322263649706862503884371008403889023868461292762747065754152052267299419822711777158560021891379833978101885048756728813270768749186860202852677699254385419184552294958387145260751585959550914934161448471971570464008791401343482859721717390020887848449337075666695908464183771253976171534783743600080101611654998448312851721024422641715292196550582420977531558618696346853657735758625635992645914791687137045504760583806654902147580026504903980577258494824804865626625103563407778795248250441331485908010980170876345689641286985817109501502862476807062363014471484690670017054192456438368972301569566873213924317180212511116258686695452431330188818291869551407880410422732863826866870686600839447617653776048916463542463456863217751937281664761739692280758730900075496848991687307823790216749008724382051082862320628070141719926736976220804130720561371768870858400038684063824368627710538905717171280655660228497447710439126917248163962805846620855281807319840674713278434746805577179950020229514800749374842954343674302108002037651880736559170025379531740137837841028357463344431123952350157903160131683958563530636318011784747139448237027538800273566909686437502832906882551266660868357004614541863660807857146127316226934422744486458042260297600251060061522660848418709391181182607429779971615243748477203297810320469722868243041845319458891895282706021321890393901294831319235859196442466897438308499005035677085220404440178549121182042497943238873954821804251439538939409783586689224882185847638004601525842950537052853163224563634248827527614905217649512484982358488991795105058241225078237077939068449998962618197259578464218341333106204451788156461324607381831859002794867743258875212326652410234626663828570385610966714366048126009021191407698832198611428780346118277511260022014145355469564371744573644587429998641527780414991381723922490619057757105880649963847255845073327157852988605733096918329512565862014194641055410099096652339549111093971826074644595726825567680397063800822649495982321461913719784810659739743667328168201705375744264899820164450260686999492419145566848620450999751680374259194665378152389416775237703718357705953107909981307157227305869324214034937978689030888622507902135484453226904083598299068973385605179117796993598879743112042521792761492296967003901708118264495691132686627184614358193065512106451562239976546031589661078801851089145062457553332459200441984090234089378760138865160523152907817527222273567809626101711971345541969631353222850891033229967220380456697639160972887090392744057417393329895698559386282092813628701496019073295606037292887886842997163560777872802898661147648388314848011570141199200005850777600287388675145113700202832684800893053779054516520677524272419230316665712270970143897824391498889828159462205365080055771766737331559048423578074364917471934815779027578452906416215134979552347622678868198954615283289709783951391315336572231042993084686548421418640859935479173362555614764919483083352145543845066738169131537496148960263564553651910981124874175114432484758684822860863921050800633360266339065854749984296616942983782011429572243560754938410430254151128274969221582777833954680283670258242370612900936015211647283210267966094644967283647419522039677123625669500419059405093852532073516485955577238978176172313928784126741037010097944090395408332233244234287090574922763365610094753072155762937861061943033316449047792372395738272774894133337669831171094997640752486473163352117287863444624349869689292425314026026679338041534345114251054041112205230933519531972182307951423440599617901582984320401345278826805780593993710197533129800030931114327710398583620967376835892227987863341836419456067298345503797529723699056694784485594686474763234701325258499371612212542478353271519241126285537072591813794348604040875875896434101945425131558423849474868511352002224461541401506908983607577818457360217489651732770857923427560855105784253153060903912546150292025304908007499877397358345865178465247087199115631116349936179208688240448277841354901520910311643196363568852532811631212881135010246957344191466453803982812796039065482568806516124195121749643879207928785122652478130884294206422307332193077809387388358644863646880184260115350328353404688432576378389183904827712196514337419446832575716208970209218095519659203691192940069261203139771148295280176933370463626268052382462793290068418092086976660526481737699544357056468135537596936253725283838054360942208033686899429809318140057201335993660668426217782905050963967242642083083474287264380337148832265791394728399713721259095033633209045265159052698051312631998620196647885970052893461012193522107087736992841152892804683104330421678719346776154565029419733589026832418274550524511569375093793155200482363328780964460389567147038430644994844551485861350255981733104916696771546085441793842255660567154948325363412134603964156074624507372007815826891889821760882130490013486394889396973412962854835976542605987737525134648872607982528638127561249428696199335231193942240475525186061314066024609975515129995839564737531210506486012714990548369884853908962981762968823771386222593271885462698861321291181991765099289085968965668541056121982871020010466179442513787199152271558737342606169709635940301285338682160179583016796225816208298327965060933478703325493283595526565874987650570180295752104880194834361452776161128917910695087347688435454823588042330011990239168467765743777025008852128675695803609966094408935900070297867992933592097753385716975455584139291827436275929655428132682876518988832211965111550299334868123609575321948304893876586014110426712802295788295383820878158273033089714109557658941851313537257681413823769699987002292344416868366350782893072292588649326932697342672668914315883773902428301356932458063586608489961890060383102323131740193796837578455079549991169691039300317072610270006069215852574707125548884389277027340937301477747091794135862616105144270284832101124942947860029362082771604986502282819377342317375838670529754020198463341115215005271769924928214077885275003450935623974617211208504403146781650154188570682341171945391877003488696998069519652111222771329147595008642773085886000044766632794266161135776301064797570185858850809992391129485979600887042411242526531454885646670836474379401756211997901208439252870541976360285831116694062364815406353347278927187840755389897440395580832327357572751536253536258099506162196464928385763417059227672765393674485795001734385395807211568459690252343111322869641686803834294504383780003737801922555359876560029988709899906954952532948272788417353892853306569584485501413867250465562799455353516470388056818913666589368023832423111301831513006306661159144324234258133387695368618185572075550771225032659352066479570498800351761338890107179622436778085081991832955174207952199576046919855032532632483013235817684436792796146562019714290475857098457053805182038584001265242981751109870836547357945482635500529463680177781935258698112553647260971165322891477630098723266743990990986733979888827883841080370810082574632530036310613250691371956697921126818235116610915427605136756367750042177853156115935767667927844746339174482391214912915342942539407223816501915981668014561298613753253305777838482781140374378230531569165506065479716808293463592219294448906624249358954413435806505597761882362495460554689545371970806036198509330397334992148376544095214558523352811355317896968501359085678084375284759193722797001327222787840623978554667421580465905810919411392856249205915179008426074257558649279718741225693777618203188894162582836975633406617254386681980221791001728836024869543261451373311569974415947373892985285290015679424664728699493450118337052247237144450399265881617145225689462101245562227585839832851873721823809464573139217555011621669527231341201936666219779279376764438084243054475762845627556395060661244571649072503877871200957863480945553326579947855885817109411602838870392885615404137420633084252834304599029124237104604296694615258242351745318834575953198271861481905099488401295481014421325387667647149066924139338808655885949477902587276332921945216863306548465631323844655582507010678612780335270274001400576773537690643402741756751398636590971510226143098333354410777620102885318948393323263601016241916257584624438895450421674752049705914719519400756400013929694514711764272761992604850410057911582004092481826623550717089234818134690462588045039420041306830497525305435652385629999326110291602401803946274576082121103563978209920651168096517583061261958445750702360300957699018975961674535695417249515224664754951658262318755133048001335547682404186101405230625935584436252240376102854482324766359867594001863469322783399647576109991105910448558853050986807694851662047579875056594212797670726782109956714898045856850823746758386414604222381822898693870894993966944962241229461612909650245946574979041611177451664078268152194712301951734980776585799370804507334840188149339277511704678836199551545478866757866589520651028024253055874255578086019574418484051951364890435518479569647674574274821003279139493732971319591995505482917170715012279213082661846184545811712517549382287312322270345847060931897544534327886768550428822902957054441446977297296699600280481003955800514825363626042155040317581334604289251924943625003129050027754986601873991021067009046752993056010717318539928407284332656320116795326770658397267192673064286845415216525779714188672871469441975153562447438326697336372647594956803982107996662223160186672778143249252103570171192430734380232358322559688031947352915892909035272807606165413051941902893977629064824968921386673102582650682502324940415569892304775173355472503693519474770448309417614866812277183124021186374570170703779603137476224369479829854451350689105520067257238262099982595671048680097701654202008316645463889320655083009139740748675142378868398667467135409512355878009655136506807360322299609130875559058201885044265038679316828671575823721741212391650403410715960736325728861981002604247911248398300399261958816921113526376267926744894286918547782246918839906795756393562959308504285319139329032538915973814274774062376431736119136542979359329622095132807710148718638384409908962895443726021665095425248661450355542305256930819611200562668992925732684890798264744835943665120423907690348199558975483450238902669360577408949338684459008037555468331311363648853557200997045394580350006216718669501940878865173008375160955370938223632911614729448935543045015778032967051983680571547298029012837525589749560729209956211857817475501464017003114066125353577210648348717649943264622763810566622681133398679111854663188956743197358956677804467586993308426720312924701723010942887972729000463155345326326842921547246005180657776444507208731006186426495166856291008834841093619795497787838583256293320557055476788913994989479991439563457480519113593082052244325882380556789296510049189110853197626689294760880182642500361302241899359210166970018180806922064794917238791789307195392939269458514834259120628644614217544348178110521207590918811204553906375050332987841343214351436698925159764317539816049932169902236816097947844405500665788184232822269431321484979021242699463732014140889779191623731739213751991896566528847328855724830656894775519866496396972519240212328809821812067524039381312696702167577914122731582593119671187297135986052247978234341604723034999712858193722551703118274326974731890985570670589641792306617345497523798684580286154978680060699587304659378139916035730082969257616420701981777396080706253788586665294526261232595315113110286234661439577384186049796428022975565668172206036610854264299481017356529502259228464754281345587468378446012968786867779117365682129369546052009787898965349161024944482635015050167249255412584981273209170594595948184169280996104789735134218236389244631849729305505291333072572824715022160143203291379238271043047271548416524206935033574595424322837162143562937315287735654528692137960026500485250146818665690161934977008876522820283325723486490051552330984294029535086432422760357387378534112511605508637492487595027327015543204542846564237100227836626332919519484754615353805540933330869498658358263968502765006129744048672606920373487217522050979511127280681433766102243857334253858480681049084356166265298136687265946057231072890798240706725356461513209170936063635074473604232561553538556259112877594278953023416898261324361981294173865493709654694820194054978105799948036462676125942726877902444294269019310548007887503310633429415616222196187994763474873145355097828810048162918094172781765086098078466835784356757241454696194458691574228860508236779461740055398232755383999737170608912455644812108922825699221010888090808229222945471983212860296369053002214558996509287790555042822607624795019297997119173666128062904602912430207927739954589310338697599666705756543435011129526466654884516826691006832920016887120553603417026296278700609367848226852430824064314589381831066004941558669579396479522706380870113936710342330557823571079206981877837250277610934195047727013548753424727191131462823104970970792022843886042632686715982549882416695807024453290570692725397852801522926023640585870505665215811106302756361967957160323168104293057144402638121865305580051841924535704312009464991541855232027398751069577799893900634434231783527520009059192992441578282428792471282989351237524873228785390724680999607605877732008389618142670340979026959468010983720677500396737792741069496379455821528392878891499095283768895417319019258824852880969702102565250239507867436375691640805957996701953274545369028684764299985317283457899630335426404777585950707907855649953879459062859593152962162096728998909331909105753896055612779239619554239357672035523019017268896008324598353489715494664543265721704935056334914895811218101935815772409984096738323136106692117780338918121052720828549677652989560513050285815487321652865456517170392578405274197484652462910629054357383155500298443597089106520718546394134905130852836809272267699430308350831089319452570939075334004856053569565555739708095695247669805181633734377606802968775914528567777054991109682737615968288135168660366406050640523040270348297485083099201772281068833410186592585606300647592054886576661134491227812095647756786869393712212475516731153780735130422753870079783711907717662764636528782703276449459697404593066427513474167913904833816336359870110275082343609247076679974501092145301028082012842378429247356295090321423864768564821965041496648414640880652111044966158018765007078603996809246870160068789869900232411213721909734078329569230094225875177739799894966892513048091245714776288731368189349383518050841691157381940545724620258591000235472009240016376286962396422830069798045811877249996731080876962398716742323747381197809188273790412555020654430137375729072231032310323548212809201375453220568090440247444895490149627394443992286183293372250271810142332485039402665250243121443371135550134659163209277875880235233813480235689538347577573742721109844219566698938758396182404663057726717373505409181000751049770188905441591431809539280128296520525533996367607066122203827467703331932322065493582485768705819931221135758504331426426594838476150804045206109862222141484925695796830861586872045578245617535319155141575292251130264568856795467985317924225493711438373821613997986429305219263099387755504161188796234281827657276564856565836915378734361008243709858650734912286666585088528077577581769219411863050914750548035590149869773722878363065039648741515597203949778656369290523929443543290636035634671530124774364029248370209257674746206114511946541538796475664069543243689943370461772307715462186744000767260872087198218309713556558229693396156342373157068343415505604082348087161270573705679233072774475460818319216621478791798586050006356147871486425926696754666976170506580759093655740857921080002419105922909132265038072780261545100920644207959071535419748526698008890332261303228779481975961089709646379918055837137133503478105249684867004271355178300210325283243714053718861926107933089153788314788797649269508682756385682350411030370514723967392154371702136995235848563663166595931259548312356876155077666861308426150182947870904870640102606692517143143668032359089407973118640048350603455189908507420378030915431088112353394580674198510609726623531033457587866351467277822872217732689681555811404463777988928477428771131870609427137312465418071236264665961245961568612507235104947369111762543888543554295245652685867204886791996761472748283278771502046171410120034291413699151267604774106812052664288401173790704198275642167278251555451827178994854532293837198343175690669663879550393271445424252865947431139438034134183609273667558008673085602900465066103455440681128265483936582906785321492782145692824429199549939900242804663106821260752891753318374219601469581579306490214865407599619571483710210127429350356203036727591136821951024683072300505274467504831960347034336632957469300429700596482965894990209116654178330724685531246826152946733957905801182907325421478400437988945694915774103084404822840453183537239118810171258260625749842586988000412051254280429859451634055022269442438532479372462819642042253712120826881659149677282066330818190024900006005521722407324338387866824467214927665207970508604148394364697210106759508443547803704959592443943098530595175330482998805508185527031614368601351282515843578267300201236084995678165454379370580033191678889021472139789760549019121276497051039982274740875238371264795786763938737649002263183613965173924895272984608266750894188069887700455261777379596765167071042431531443807358065736195384226476237614132946161630469532189016807206702771675065525228332419833158185303484472050285452632447703506726709295062691133454703433701255027084692065353863373447949476999028220394702138542238570448257450328992006206170294150067881970724611636426984017524097612130351421620709763809503657567136264814246326216865431246615720860452618698376615777247485019982237815587711894966772716108219025654638136912912063026559603753601469003068179489660018611918198043134183700042391575667530234283191310290776462213479144523084928856963007570862208703880909830382110083371290978087102012270169169990310507311537979305779475661309604304221589311391831583060528545779308937385731088748082327458505968481191974976356698759683871025624733831936679140829649107168788100867778444807503749265602129886015147111437465492875187670242876909972571317946117728739646627454730653990544473903969747931903550316710889815793544705230855702740277555599284878426981333447674290415824824918485901869120489968581331070545697639523495028935658443005748581373452306000588906378379402950159618635661307868927831492234233939149647139385969839741202946906532658468619243041823365371415930897890750603618988990879790595388796045463991684426737324435692405353087018476289092703680682857846271764047113167229682488766682314159992038486639750014029005322601716489188868361568651129293202081886355815529586227870264757158805168327594239972359966703444282038154309701539215688744563646823273850275937912334506019850251793424170046236165568980051725923344754211110985851727330360205516592465747029589446938213873335237690676426700188678839266762999030149941255142792064404608236215519780901701659288504824573715357697336583450404543295462678072345946054758378710829957681102247587839806180408313348523602936752776564343899712537853125669879343040249523664163964744802427112552802671447957454636807116594961674306058082754767399910960813179579401068039841439606885724056655317522293558880908011276533179206123164405496814252305322985865273577942709354939452348984906873025523592063634492788283175359569114751620996101002043294138311865846858839046945651558180396370759263713232080138217572254270059322123184333983572271195915605542166262484208998362744078819332602651600291514898276773254052800763334588551713757675342347312530146633723429627198942898138611940672117201814288585716306911070992564969827265664325531255489519804152233497388675894675448562938214741634701244362963364843043405830124800820323203700390530214455282656669441110837789706781422644622491832802092314020263578361110532529563776945701286125534106768151317059731725632884017777006201717398692706164900406492011905497035038171829120087217059767830664027063473947376629176170091915020896715003948317953492344117932341867845247597230507149868865797798768778328680632179343381109717040432569593714200333703543059162513132620698350257087335718018797699232031078897552378394516455260930106651024102802998004259914727589190200839083628258042054032456510276212544248779526736240624738749571085746181294015241202221173411151063122678738760600802058263042954140223377285798322819728632852180393111006381561257521177172581770685983988539246886005629475808842112295422515699347473672825791156086870172222282606109145830563911097876288066373421480826055502882756946046787094022240380824684928778105719266004710671417335513670156473996199713056964515743555074548918749262483906151155221668612651445264166699721959435819703173849449513080375252139344163289282710516670835983649165483569070762627081070331394517211402621748009956055533289617112797427758856986408179032253380929163946267216265571477238765342899517415920924290646293982959539769315638314688184507465502421281411165369718308977247682896377546364982892341184524879605232483535673255400191471871110271724546145845746413790236539100332851664216951795190307036838041636328402584281064064504439424517974211001145352315470919191848412518653619902475423923477437609553844469141477137014157924718492667016712249719102894448594058558085922049296571382888712503873448176378130112789727044370693821922048007033866809599383049695409242455405353560714284561012060509557537835487166290286161981777754331501364324509355262811936503490071632932370234976252738037555060263185010965548577430375621142973468245415942060046571800167724793788232991814305740899301230914699388748965745707174891870420854722733449338277075103651833256710472739118226009660798254174703098471250444236240887885518297443218056866696235080229428920738862713294564577725286021421806011042969074278271155305133534846799882589526636994883993060107340238684091592768922687492850760722468077091264305894227728120490099095345344313371847179937966304752552906433906072108634923595186758260878774867505355833793926056042019795712870776526754262755892837670802065439434969009659844100625706618517100786919231049766240928937964837306611834930582163368519742747672196796457314902318629311399603351561900028463950271952721329229503760565959390346759607604716659382310587309380526811497808101960543177685364249316373264333557415312895094335670675884716112331951207200557681520732328731006671894022535700946984531376394515891679989559325492215145005819089086582826090153463480745809076673924990055218891047045797436250528095066437650827583382086330324280307473068297910842227478119948959475717299172589594368271239869117086695475350151037176772967120430887078509821510904872849499878237447540352686512153003312956499743192132079725830936162301529811219646890983594835475894210558707701248976575477203726416690838474672932732047996232898648716792932658536950051120677990474534126173707097442538231969545029458432244179066326530984848417921626567238459512429063084290926921050281366225378405662763359279010537665405765571343113191922091190116016338970550426060136655067479193032225773552707189893518078297402780310374563674138265164596811725284331264500132532676567233574241116679170173819390218272710962001222763120628736415685172173014846224659634495076064026569816443331490920928908370915516472203760791088397505138017049263554748226513022844898673456871802830264028997555735095223344308929413538115386640962552517189170098939928535348271850595278527226407110801880743745023393049544906032617324181502443736465280476312455318820091539705039342671968162103252698583010217370828768255937059481714115756288288825470075691614502357509070134589279286486352396389409063023386108730430391091173995776384285917101791659362300001261717527032288107175661076315893147647784033383858175555841743539909928539985917730983192131087876885438260059417810832698586388013885857826009045107023618160929130475949529947259136768677389819170356479502266596570365143294305557841063436373045444231875002913379052868458526518682950035330299835376407026952882212591212411409909472144574488332386182015879827319211087564768653059267998333138234438142438303393510576612269471282646029759900405563482662605295453876731075885260042581754969948113089911770224893065084133774490723998192726860110608856151752300550352085488432731574895312888760721470462409786994062799147328814942085323339170323171904244510168127105147026352720917465832514307340944693629810109914488428362724409588536441337883336274731064111009837638491336485911848594884511029161721790103224622412428043989925235996622428056605935245640955765163163749505260615914417209867818051077288741889591947547931070421254530633750009805372660143392181150836854257023849223395818814120476938366646576248014121712234581032052934403482389326080225081864458191373598219899362143441409629386779040890895091848401234802852149232075334149265971431425715441336961270740092702454722870816496913235567883836480003373588144155728705746740724917289443245842555544821836908134631071693798891286802600516362601439166570003054747375811412956187064289848709998532632357695314908154957761673680776233651912842395355374295442037460854416994816734223668437718989661835077858126064811150635865864192550052913324551878564142314094282082405807696161075410526197660167381170300109937088660568227086550686026914666325880703190397302931044556616045594648596997550359995664807252720900512668878042295214567269396665750012165274937653362580450783302507415257216410937804561403261799737784851738415916504026591738677185153406652087294825638384225773983159509425597461747013817832924284088513722808590215952786469985038043873527371656075478181303256967071704362698702551702008483935586815038813626379215245781714646886634528010636691403424592712538385988098741024681302564282129248135262677573262222141061516805871495673300285725156162585284415021653984478396023129529704524464058494682737913965899418246061186116718784999262099696797303428655081258932800446426198729649734915283879518022493561014447537348944102967460379026869822893246855587064899556277808042150687885458734139148638131533890854320920312009533314915047697979261125706028404687588949354995283461317483610939465242669087298687234329193826459454703037767720099476872521770837101501837636982356583176342041320980005696286829088367502338408847787218453556537838512086849081594411059565527518247869668214763823092814311549432349124538286097928525054555204380306276728940836886916292052402667780222370001977200147169788620323219476602690343890250164854512633438633892287682983009297851080396934925096200537976723782973471815228830000789502471135804719267529074309291186828087153850807547021302266888375176134612276020898519569901251696520507224163529995478237038468062885391800633749010395921249720341273957234242996494571593447548491772194038552977420251502656016108829542388074768303358773966350637544682436047307592575600518383178801461504057861337210413064221252106575467841993359004870089876665842162786370863543913798203021498073456403957581078851748990373008824141710045380319085738153983615121253797540794987749614876424854673640157189811811675375390896093954506987590303960784950829489211192514326099264070842206619096023322196484745019688379565633071783302184256506463858084357575363223836038911817914985742731940917006714341140853409901439812273121076907477086689602267671410436798418504791514189545345084415308918711958184959024548895986255844101595255577340411533700112137805445735985489235569224567216006533425726971291355113891624035846074255094230825149149633036242401100400607957793707103865193087414506312521387953175500121452731848962194603051559262227699174116139981078912820212946380953894272027769060573192843905173777102307590993999102243218541514070103561604490213787297160892506862045608293724134825945042602852059176852782260632706166137303373834190992587549205093531850022497342730431130047306507975755023750513016338913814855346387100995917159457568140985781689136150916572810915001893704166154390102992956735277022566038970097644325890586902627345837417306300068166408854476380634511787464105796516002735513947536831200587818757464968477055863287269240403437042033700746014434739427049747501848268402288654035010041230713034619195102956856869980891811714886211368105315754739498632872237135746570676188673089476569031728345566602161943875531996338004584272320457513494336264982203496106333007335507780607281058871790137720026258093959795561736184946093643152780950163656967464871871385548912679053807655430995231459443060789699627632166301344613019600436750508649122150516202819445085697778227134116724794556946423220751542921245250153542590779186796909724781248403466296833748128348818619416947605603616587089857520859813719001339547707480912237218289218552320622777427635727679954855020943079116358118159794616118506271273681069327932476989109988091682637770117839706968145388788439125956887051115268729415241149248789045707924393480169136762012873246761429929138692798114974517546452852050323131904278210332416558414323429955663476748759978487618453729695100431721547335368683459596280256080725352027241477351594644187956490258658834972164143594755222713310929525746605097110488926351975637537104164196803787384270020517521212727954147124680408690179810350060357918740628042051987716019127114341700336295130664766570492097590287066677571594935941610730577336591642875024903304260280605292168567235590654748520459134582302001944741262073803137223968555099410856727632664176586938092680341349535267301372973058272796429325072740147618630139412205365552272532800199703942595999969406402576531290324536099336589794537396510331811807685412655093515385501507571549775205285020704019881121110049140083503905162725029507204508726291503435547253428274357983560307279621984957314702465105411120458944637608579081514998256470013510376540672715682345365784406605961550621852048293620560258407587749117752519617593251177756401202427025158354911286700015391156363281320497117085145939337031351072567397106100656258867953238698987591453102171205198291979868502578450122073864479154570633168401606284777219005849261918404766792419497484622290464912162429387965024002581923817992917905999241480788197774557714788475837405288454580493645811826385180884637098762378151265218442687996927342251194399543061684980949531720161792860301738259193657215590462243041911330636984238296031345507884107813144723845554466795655137538949164898816678560624641643915674864774396357868560900874735380420964863419133355313049071773569127944889039711587059406397048091307683336617602944531439979614240729581902376064221149560789676545289923859406595559849518462796625654954995642952930938462168092309218088393178711511571625779272639639513383865972542343158364787515515862678704875213664969675537322798797367697923857795920602308368469591419806244717271573032472765982874837324238819214586718771298444142156370715994328986218256312927559640798173335977826724767130652016690133741339792594383528347188567043644660510200507462474077152840123775067430055214053001498801305835046391824892057081962616640498056372723566091558615243473934159439148425811561688942857699375940019301313778015745169480013194964734906992900671884333073736894834548902053013972017656003160753509912407239293351280827933087745006241600066993301333597835792281046167585058325556381398788750104649126890582104370775620179535679781686640333262604997102774988832613322936447894909567482715611665133731870022728208613027649438171719294280270913970311395525781593295199170551050165595939628783715139339615588310922716093125228776063199759822429142213160909856638734814929322594413927515124622137073887209149479753588971917369967773007352299863363649496859469678314216714391355344728305298956860170830898124530934344430866245556116484871315151469577605748090478835692061248610000360399631154070869341022946393909974451644796548254707488063978888232010458559766702968521052847147776893408310380479563897867682582846661974833262177401431035668279541844601844707905215354319996109665494576681794357169945376954113852496991382630069645807105102887877135554607661143291092466449548628827250816187731960439367959554449840011306281775681380444901165758252755338550577883871170594267749237861298540720214617934233227343349524190248898611908637024904877169102469134256345186774061238848310483717690338568449528675966615923992663298468215146571030849959442831180800001599230838449392229445530101707422483817042437995240715806068144125066474288728234294241287840908435598090275300898311673015843063111020554571619854115344949545417212475421112347629802107903095018986591308228154652696060600953920988169814596085733984136965895645508566715125746266047344162484711451126165411266739147211486424920613143828363024315533819248655421300018298014904031118823078520215807087350375513930628016574753992940843377076248565687476321923923212242252839385506186306695776143712692055853768992977831351529260352603093452455912175626522020307136701647502393885948286480857747715162636747401193959730436759891642575225932364178215444187533207456260382796478505435723189044835558219742487870903559248009968447532992028448937247340962622951967090115165105587017519893034803869108967881010291538348303268367105816727223275076083784070552196623350185132085309785368387959071219449160716624491858858217088932908316723828605301714998148286234685038892969376902795423977353982605428521937207101284915286172542350228606986254999728600964768559827955407843965268419656958188272263634342640669574405678041174240737722136802370535208850564620565423916597744614455259669233415501394332043564922414175464304455361312096060348015063389357634760230244442383381666953844051060360598372933216938229916119551606158124306455066910474091898249238970836898137405514832664825593132273480603711101418183294552778608619925430177887199854914930263953949680646176746507154866749487919439069813040431682212339431617498870328278197491417156288731077480789503941345616893930456924037562510272305414267264147099779683661739622347627242226436615363997403269949598386895480619930492060147100192871421415129447955637140695115402670142719014878141045902433881693247389814397956705340449228962094893980711383882040391566108649312945543191361536074808548238694207153158967713371259823440998091209567772369809933470291401265546557138530945894643485217914692636303279668567890351179503152940029921096596351241509523280982039325217196580479180744260146640488675429880873119005574477633614811757332823016834755893264120703380586334713977305897807150014459672713815913856872175309916277322139620215833710766966315801950831382325568185290155687166983527174100754773251976591049026529159056089480800110213455143855881569753351800512625114107016421276029505305629486877760406641160158028393842336506349507005551935252919554943684683646197881878197203294775952292195809712651385005723741726946462922167036204928070891402230976711304951357492831262082773696294055822754154996231046760245370130743889068868245681510089290090397937518237659120690587869831610840096395107596123822373747150234756495482196318571816935261600880666950244852646124302932649058080045147413796666771259155128475935902973227810816468703056547577684107789983085283811133725819511906900874308865789341586060430274524087116678170055498998327117358919093508727139439946876689088331222031649717385620298546821288258610216856533202456180106139971953587713666414325034934446932035001163419217529852540759540865351566553963310506435166629401251796227971931193962109503945068601971193757822134480817752612813645377338361182441255342849995791161871971800334794115420511073284428036086483978260679198741636917519484662779901809311925319596075239919198362380228304594436853527718482185835107350278861192239751767552019465919002494678438270623119380452352608030816650293065521145467830248321433859412097467292143595185395632689815345415605695512290895048056473022798931469680493959945635059757413579112950669109561877712316961200815516462387398250519296564938823334674867817312621581528197315862535198540711496967945104678267386970907604917191382837213874208848363023375736029274536868077840660845979507032338691289583609141917445933788285920305697590637445757060860972640904933880377255996574305470365732514450065766421163684480900684547363682985357760516590704259974210414432507019655737559208370560176807771115202801214951620613288298418889595349539618955696936075757912380250695128352339560426272684104804533090881000375150022841534099395687441244733766576682402140246643084338617075161685313895050212399908606425307889738629687525463570871591593846014646432323256770772122010367063969381417742968531170959705580923085217518251360870528867687843770720862176872304680645173409170092982176828337073770588466851242692547832574579145736946030914645851560896165440971741978047262929737196542856399214966658836022647619912717983720184886620537808609212121204545098477307526410026419256711994341018349283179054978413700947356629562622172227562449457805934895605879126078508294929423471731785542726604939685495681182521781969357816597686019090389822052955706881113186529536020466600861600888036224662393351445578700444023961815819103908134407326098375279206881841813095059356261564191773818054512731249773552957683341449825101711443423092379614219304573948023376293055644700079519090836716196567894365032215916641473741411727968263770460089716932153256111261538834240370214360213777498491925942834154901097668490978865927150846938559816995294725718947204629896809258135235253586873371231386567173310290255968561040519718247827047954201560699864591701018852680360366570259402790292316446123777731331843474166851408224663023547232685771776997838544448944783400088359016375587451611285562243098120754008972729743914682509586685004143767680789574587126330380932960946049444495195269712495268088566561441647619402082747786355983835652466747291459947235429320400717121295605460245739135127608796334780893723828793902759534349207568567990902932674728865504118110888503323820008347349316560094701197727521653135363999494843948934599093849264639775275352477459729348207568652913000489661503324902087195410240945708429856310361598000116179242073823070011575485507617145573558124956833565639983219459606763014300787617339682263343747729925954481692447815300939931904447371018111686607061339479503875356663634664264233188000248462980930388255747534823288580188720276046320651476722595206146255339975937518353954414753855812013055241038224459058622509172426561666555600754018249722292413226847693806256627133643538602866135767760796455310590080160053017053855703772655229222154516750803817216849062877075275624086720815163049943624532772110155974402819747968202131084693919620162653983070911465792149249365794316346494662560347694653948115576653567959375655842744385164881066241985468594029347860438118343125588104505340086501531282993997299254581645259610591188848355989431062863193597882215615113769564136643624999077982397842333088546039581789587228884376961351134637458817764149499243267984136604738469849750093546486119915819939635190549406709379987387852762579984157787199007375573972287153935891510147740326298228812304087254747862411446546899703158287584988206310517098801897691840490095153180372663359132067515584191692350962382535132394609230041578273406550328966005332855016577885218218691961123375523945806717836828276739784237037115196881138511795494810815714983177205074503491682455969931070472161327464052229140623898055924258086140645973834627151763963564112589857997300114910258940925069486553416050961655060431552033973331706614319577625004316951491362987377743148871122865129745268626752145725268151444211583946503325389931020854270477533724233725378925557827671080918191242886487413173874167767521684502673366701684982863041227223049284436527629589260635480588103704584042551047859671195989743432954287252353666496120880093682340701382495847587407505165192662309547340989067188198808101026376609570708976839889359342235538295630871627267051678301861866977896509893128295646813459311759073265429438736042788839780540818460639655541039057025370664894557580934399348671958495698393565227676634436972618373397868999550973721595074964677954555073058839652250834242960595290651447899410300371649093113489462080599225455684354060591365600243689307973726380390965478785703145117748236509184355991879543288471518529503618012163953968848935806116869607514242913344335317990911571629391807156355248432366561907890234687159337223738081899747495640032287302115473994900506888630639252336288834420907464587758081733699944995747101512140882668507344961411312014468630965834365028624232058458833956560883981787776121968500994190113432893599399260377515345193589559928204699619161882911576080516812412896956917159869946597755086120032871810058798362983209480150456881994563723863705446881710065895373047702204097346132406074443071148017178784248126918376144849008960109313956866097950350645147654380190593722674819034195976035955750445158145303780327869447139652352866945911392855934220317799107077315251236118880994728793337166677718072678428436545856068810272380847655006774115135157172906688536633695956154847065106747232195353017553982115702129242782684246185617243300223337612443366110291197491258098138826621796482023578488539419053304745402548835467625915926542575613860032815487006848706493316606110803699865128904233868024737331147605771773411616881537183896855630185467100167820549620568025688557353064384607481308355418698426586166156210697805971355769437788482813866024562995748974552292555841743077458388116219664251412598266079945903879756387035699756833165616629610176755429890824182868716710486908828760342512779704771376959211246836988932180228197879682955400716465860355719535461625780263412808504256721709400832491862038782180042605094811660495958725760957331935250681798139932202670665311562856435197972944009917800891025451124596606356512601132131502363595541158583555447232938472716225631317519506598302579725954194137767497600254391709847597577283939819076390384496981695124624165429916946572119859784225962068661194347722895677280001177613051271991148375023087611810706028382115370314004968914193933375264342281438059431987261354002853441890083392351023693713508259766958547669047143599261064668250589903137068241875679612941950745970715540356271390384233096009479738669291838608453352601577098381856121151100168885339080174110538489859832285346283367951508919182375222142593498587641030022598112374594733710173624570590580048472313095270615325616643407122468018181254646260862758000711589350935774131202705878911385182180111177924063181790147820619755589089765286837325922593442141693324504827136229459756491905698780803532983892080449194069390431805738272428071307930248464114161814757625515210425385706673455703446898485287324240467147257304543972857277781872664522885656965117852859128888356096435009484969429417875826622674111349216351623749780992097216331755222551928605550187231770467110413814776269312011563066945060935022528272787535595625235613832909308698742538960958547926815680705232473687467480077475994079472532353206386140786124764435064475017559790020262093449401713756162567352260268587785954524504976718227997958984973821794081664737905437643092518930700898507237091187909937005375355167174927485347035858092650997980624657428385183753098736489332706038827832230421831644458129450971098063225653490187582102330142125151557540360859239005378609933570391627602041323362327713676269725340293648679938406611022399156818351197691195737850467359809045709131818570791078381327478183438704832831846963893379332228289253890021743857446045151182185716180699120151177371936757082615603087675811878891466365511028538925783382919426072758038466977729443078243294155424948739405183232636273974174073513011383533838928349834396705099084845266300975515508877678940643017692052517580022503817098207390751626985376081464195024334763792070390152416610586615819336154547983994777366664306699802637616140334106494705791459069873866498650512678311853191429573595000568075129876833706939112482870110395375714843629000764174443602748659317144441748325201444235876478144394502651765472685687555049193849537447335602420027083423124486187998343228135602858018785455745489433131401301336809909134329602194433530715607668881186978639484235976490219851417166474936617913665546383954623008217400460333505857194401493981264425310038739765639966517956530246451213567775555893291033324715749913764913586671297267037963898868339857221144378547817943936170149042501887371942755981062493497855452514249096837511617771683371714830748251194617380305054979777194515105509108792861923302391131244492538012120802300026950002101899701374670955025469050665653105807780235400439737822589391799041769393610971631166317791032569821778511735473382749638579133915355319933033231714687755814557564455270471808564848013106308428327779510122766877484649427256232072805606527226136968081300463940751569445986269461574104272353563977034046822307434378054875932860095785158174514492794584314961068564588720127049428849573639696768424747484313082907039025530169549073499335660973575743808370679251290285783153949841949967032092122469806256052284463768729631151552267944601485338903058334811024131574405192658211251842890955618140987706656878916510802356234985147745998006561425731473045113317827506620984922926450074187862843204192751357078436242950397990923126791230658542180103639666293872171694474869055280202568806337162670190025902305985632167641290129577632763056738068748419658067667634184700042913712606855720084539726053159767011284037225473260389515545481620031796171126362173480979072465710969023182635590792513833375408278103756383365814831288608232106003558172616316436256071763275699997126825292281262126733368383171295115659612794338899249752389887644604885668958055853231365493490133900647348945797251979282074239216954378625126680050423984061425338463424107093763246033770495404586452303742525557482407844109636757618114801444901667020412849330232504877773449687251593955458029618314641127853674309744492927615332220087701928667490506583194550620604993254095996400009056380443590861019381168943923328875114429335035977056188289664213370425447013641983355302618771054689372990555181909559129789017215489399969851639125672081062541613039252370082862322891189474250409982382421194353554971291137847156792410616463491121303259765638860757462021512209334071695705940129837273057030265261683205851669385082518868818481316001316561483291079470620815350319099683481146288522370487720340522106827169465847980210485991293660019598945667041693313755758705972742704817303026577998147204772175708414159395117567310314859397983669665278149244945635716714692759860177643185053122383714763705319677789639417567981902271905569663729868568162630877488434653578495273332565741868272394742298147455817316148480920169748861034815260794631397952473298941730813217101597383265160830041930331766323659582193011564240521281534257510173945803006289328020546066351696197768937939626380902684997629175441095198382224311372719928245481578311496429100137189521212794049803240043112901538336742752707854549979681435281435043657104771408179512997029341205955019549649430813813687952727575993197139598916934296592946268760101249152321395244017497855171181821913166875091040945676787209113826072192276451239287251165556510126401106830570351349637634721434527488180286968303078137632014391618945688229904621989923124876692830659151529980604355515997609601706418292984545594558855484766806436702549493619406006400967127503867184662947227175364335775052051438247486238591391611452886281511670744413219661110877832041330041468581992502312879534138733453133887546147627299166810692608184886797013073874984200137558645263064567270531513018001248355641967485351942456895057334849190599085949858315964076775522058429928681483484080914890244221731363175653572717280785557437863345033292048574752905160709504502877434373448834643990091210123003048378357064947844398377626222050624173542249825050706775977882711346221264353085271846440155782850084821764850401426337247147521716024473887920141116430831840137207738002204177954822664844507271708264601278092938376721622630158039974705121917139857817121234061005038564767241760319800606176220103641174318922651210482525835980084467198823150115823966874654648753369688708497662172275054150678530986108916162759500974717446327892505712880451929031232896432956312371016455736451308339553601548239123412507732817076225918310739968330930823997980520385923326097151081664116757487092879261356480845302440657927152684596476984825230820569994548918718347807661568700103854790528820404073670340652482755717538433645582603071181448004562833123788293888185988947777367734400307707987927573967428092696025840983148423070897642763587788116697382977114713932265009849697401786927958968193843013321977503110187954179657434359351182244303494319807097868412526982767923208295093941622209602265312209142202398029325763874040115338919987284215247620053923324186156725020434931029011965372055948570134879163445114911077281851113168037347470090202862313519259470515750167337960289511030736675591710732297429743119249553293779937443774903463006260164480221247629284174456135743271933058446327357039180270275775467501691370477288431712384951814391544249412099907673162940980676154488766659168256018252848473352173976472464075323398900131800123491464051487364272571827670101763786524582783034421903044206400717797931145058219455602040403809351002659436726954815098192556547655804893575909387983488210880895701291597636498427178142490013079542816478882951568388186341606874250439490929257607574996625509223786359526189536457140229032834946075661526000643271272417860099144039647677432592309241396686874426400513403230244331515922817238070187934046143075656136094280409298184360694757271054491877124182025022936239756191744144445311892940296125813800549638036573710054442536184597887763658112834356220775739537072073687388312309829547073607245807740492945391677258410103338683999041912582839237068185874323648485205011814788341032636334457803902667351424125544681134435913207059212818419586956365123868024015262167460588030606194175229104505794706673108701264175816995023112998271286288219685931312349623325494654602518109623355996698664932015000803085967750893541391708295299415784928370953516367482183456731838318316586887580340993294629930807193752941609477194267193258091408701749171308350966123749847232528637289244481502901742302725619478752074252953693984828684820219596452367714929645597221915755735886105760233690201470341342495951856693099796212632334632539334845704486611177056150244785556585412490953831074749283564668905288524595293655801751271163677892728004287397470607806943318565121385514307688008875651882049855064343039972054792124226495538598414271182197641943502626648000651974312791940981210308183252772927666795481177104522626724642478850705039826979865109917498161404452637042266561412608321782033860772778438534000621892270222922370245895450132490314964916826339920056784017764812297532303276252866809772814453707015474873212912980032159029709602893797617480318887766523291967610900051596641515674756203640460006697258035332805355170518822698265829945107464395177440233929554304486475602785174041413667556049766541496343852945639341861747105261512383267427647033913131607169304926047678446900767572012081313320410140008051026509312671890588095926671914932567682524071968083054423481749425653154271648271384256058230628816083653712842567976936173104128098414882690936207917106388205043654028578823078835937057423505183034736962196076790091558281316495381859622299480983430147177628338662104539216991838558158049355816287177437622265279068335397569058064141510412141252591692884693608810390348611070649781372436655346086269767386743770060514141440548430154606379455082481756694783492336645515754878029462539514262167019870307462580809874336045121079573699707203152588746709845986169458115585557190213771693474612463192257956988889655145128581304613116241865856673479156978468905813270787880011244193018013105243119211838600635637324554232576474185694696984824718998965145173978019409630920546192911999965138226728330919102180968942510243628277425167690642466314326747064688411008290446210902103729590867130895985495492098240854740800519255404220851425412056859565222521625987493762586756504379433510785126948656220773312777818800548881354376509570720068564783250794513269769921822230370260322890963974012000377530651039088543399970020188652541583241337333825048496197217290208439671418437801534424771649699004139014338411626919509524605319044401746396118249286579760290033186527642726347468346848159320671031277703398165378508844833130342807772675816948423565539805375465213500112138887164797561598747761328759751003661853256063680553648611524128501053485918059030795092321013348953068355304925448544127341065289294700524882057381414281191802763596055060241578728606595192358128097368225483238297680999401544836517275445437315504935449942624873687486889290550495252686367433187102271673830706353541027665945413765059057980028691364965792267909158771255522499717880984401267750850099228584344614329953549973440948742164658248736334342886606652558968021143949974090248132961347292398930836032175539547219570949916008020673890360844956523950004838035215528013259817544027618782729859019207090910837633403777944601344175877096921381725752155778440957157331209150919775178280652663056842173262752075823620537948565618834042226472831628122711575576863032852833587075004866785609462088239649365264761497615448518574124466164758200307087005123469693099183866015193038431913142816644197512641046851434565210192921169195426589079089087799205326333584879091527481458958085855995216328407791112312093789904744770835953423054728565946629197276490874340005888036733228234138478703003218805085648277765883098246217063784453932626938170836896164603883929578633395415109951573483739701349514501321091693079349848065616490371188285715309393974427734562936879459131182733851480558139936515308655651231657638397657344780172117133859058334910709733447972313264510281343566944117625933750077503737396652819984187312915798623239102895278456465889318493931222696134994061971886208178881301475210471129068278402294012663028019501532999203800433503234711251633805136524799896717557515412794612090700406907168200450253566853710532668449212476332945635170004627123584178806679158361088458427452865233907532090419141002061225772572305442008667734960185875616721927889418025263910373088801617780879226452349133093933349436740140219685708234540753680403200765607520792749489338994610542205851869816840736403976492617808577622204840915862511617959919169633633583319337527453418300535346368268653124494017037338641018825461192787734270637788216553559880353671703198032976146484063598868794298394416282253877140612507594819324201764770803480886724877097279998638264680609634420491629149631996597850092682463617402471792356514601475397845165699488651807693501517884145798415122403942031081338639611672014591520017227294073569823872463199021950977190261686734137868386473392443447441980307453740806047567207320799654409243813591033272120137494770147832814668631494739311121093138599041103251643157548851795079240054441109286707689623384817806322583545743366278105160074535784451638272449321411899753723850484152515950010519346398003748688662574258795569962833500154371528593593643866283305527175188278632437741152343520415238118722437586210593335763286392162197368084879564995647937822033993464991455565120574686110134067534543784854009664479952483358473369751260026819893970682634168299483325864339939592166848030710844352310483968393227201073114645951101231517715091351189966008798956247278345067157549099977985649396093456115402052103466046193612054830854784280999168160761215577188655700467737708455995663500197125166873222393207790986545910786826787473278531037046358094328896616684600900449139041214155385151232656851995173635049210350883116806734333245689002787077410954348434999101574774986893336577641701414750123555627151797693738497282513169773690457333857397829298725008466948728334610428238600929332534992051273151294908529497102900989809593328252592549934102278053457560270994638239512912618120901300020639211349264705584962588543487584314332685872740593154890409100091502085453769291970691498157511552772763669041231245890443947461829472646772086534584193193080488006583026142904964970126210015296404808039111906123060564742144673982487523854851546371310872657411368623353286158307236625626743361095658047338271794681102264836172956046013979922211205397969116359642575990921528553300548319937829259749019575754387828053539792639146579981146640136855421143863919156400386887564037445555877800414591598365320298360059738069737237763502493126307591242884334160734481112762862779205250479486897176839923579444534945635236042839480219894419497510188285994072211971912557365881104400526981272076394205208104729537798223919755499138173752087370217133668097515670725662239771869256399763865072884072067484987688170190225862755320104161057309071667601764144230026067928757172633684060345049569908570761055191037831770467279938427677257074976722385876473195728381337771070136271251165446886049191769808398903988270441929585241335283460533451642014576089971850118093362755496756933287070171314527072370427218132115656613991587252768864428958291230757912048217585118834344921936052966068791985655592534337716034143948316558980200572783540679522857535872362608550103919171162595900926745571079553531231692053970018090720231463705007983286340222358546213950637593599853102759947938617121364625957019493105536572246864689080907775041322021859415271639011923101210051758510469402207297822781806851324731444495212463379939134942771039035373717629588937125216079927957745101621083195014430061499805469023592042516117318170692465450493434210616593988519645707654791835160427022588778113095329357005627066071615926406648024611118570359045270182730375468307038577918317528242244788800166497628664218823793214725311877684303669028632154901633089518282949807572990364894370157997030878720796493655518141396725562990740663558483726237286065187360978460963512445173315251276973525381196615528902773426115189679082967225454246542780316002806507879755536261397229854836435485046376397289469987176909487084064856506537710595041430505428840254604289328898869516364094402311250102062366127223738174411130994837143795681552516163218529428185921636437604458865619444633494005379853599114318270487476247051798756697982330346176877976493348871541261709913453519421166712588744727246548244718668505034003724350266564875603800711309015148546395487544200012030871105911791367671546906858203601152304280460486850906302127363686809071874567979894377052335183203027866384382906029284274813791213254478251188615384582035447336851901283940896359692573769160910121661682289941130258150733801623134796570265226940657924937726239076999895404496858838294195849088295516965858720296827694412198448813347495963614253137118444533993819928742029365467529446712781425233994729562572045526056565789377494285228557007832186168422509973052112480001002830651255305963163626161632105808322493547122389761409467094795646999966808753285530640871087596023660837350951702409753725770253539063965599015097640489810397801957638502900202883317018914018210371365735072830180967550760971270302873196402612445665440771525837339239975751793801788147574852800410825419633686653401089124743928534983407506845111512354279174453442419088010669848318738904659570398781595048073857099273542027789259074274213357129689477795441236148822379669648923147652661882936170027958417819604398913732122048542636323507376580859518089655277154177123758756869097733308997601980058359739541393490068392767534652422840129466386260290833020001089802184899888940361149100673062485971372999307261414998769619641300466735604843704874562479886121774786878047032038232179080409170214513982300811128761890947870116435359517601825097262903756167548985243970618140041394879581754604308425232405622757768044756210719735200663249512907498699748867874452550690896748049891900840444556713536485164637082892419626483159613976411745222521465860049456932943402880443453816997190246645387248243308848481123667276713432432318271739223722709140718729690235148396562825601637021905613475642617184784658485229458505111404773991128787628927742840787374298317998985973272203484697958430892182466084797123419615413968139328770073134991859561860108951096764405846354372851796570928877079340015179693515389264227054375389875848468825558817753713042222931753877109785578446377762298539322545890491241632028819936821224426016075735240489833473218574363845414656255088706157639430017439926138384485786192065221950119013457155419522725368645981257351208167146371848920698701717822760345836115994441008949127398023430151203550254463215168809961170106601596558634174388703682949323101245009560486875380677937019156477532532460590026500546029576010505849433043524240823945627802788362572835529607224350459127999871797895150202794675317213660102115295995398842840274648112560153148838508224161459866225017095528339493972163985402072188147452285917037473830499143514945073987266079863919028948542362608037209907289250753800258386649359548335480663586457200287024974734143724058359067347054422875520001329251167097262987083737860236967964871011710439787415981452527083069711446910837445782602942384992555341411780511301997987809498229298892519524459218832806086820222170692630934689087519603796495869099768515608359525164774688549661441397408968837611792617270313839189734538094965860531439525892198065177488133881727388445050070583564187759014152074081283137380921687976832302799938768909801308124770537362838655119328443407651782854158145988594284755847629503432471345397972289937256829802929531314731045773822620731157603903632951425140757687259921000798367998143542382609211260702196013445249687517673699019321294261976715465969552940143673098054326251548817244788865032447324660660828999407671966665838942559687587789992848948172879375203197384117774185725317094798527893001515262682225001027821049624056505179386932227805488319527004095772171396968168583420823567138899734583608511999640471890415954897504699822645027063857490068573511123532831320619264907023482091867196510123483683775592635786180904348295494180211397927556224570487667686773417902513386160650673865042554893497970992425644436643290475023369884235525448124430258617908419974363108699287282329665266962094028854391832731013212904967660326274726311939693320381458564152603943212997455659739565893586394195800099520319104788989440673001826477903668656486155994995391841391348791567090227835974639108269488516837318809343375563919319863391633343510153287977019634127543798092714277340877735006553052913686661795322216179482115095602955937331559445753553802886299126783435004832556261054689103181403937923485375581755135441645535991696855790981486196605853472078390327539180048811272487894362672289481405089918709462055998881462114702808886606542046710972045954617669540309653688140331565617806345587660791577664664612374479453837833896656681363770605808823586945744687460025410245080737184864046518594875551706252225587860123560723166589604332956452987265265961141139448884327811210928558055605101880872970175696824820740476664003502029848447300846854243811350440696655199625354341735593653541972867603345953008527484773820352958533231479436334330962307393442078708760836966393774394827492500156618004015779217289099381651286063387031779021613044736307310560007624313569010081609766484243428114832755205218364862462716163433209751448780666829359518363769517596543004383778883088580054391464670665270398236877148653623903511341586758835236994542108043786016968471727659056725853351337024283040072308223170141023066472997453581907446705571191481777728229742762441381353660006902565726977676830070740281409694050565128997409911351310642184218313667309273868565004207713455420417333238870904238184670214751328916577240086183853165357852978209168869535542623041075193180435819749094442162047127084948317966018939672759845147872740947505585789821952005272248061086309645693158494603011346237348095991435624329232192172541993727864355063505470048388484946011707537065691516597841637754717888537744132595255481113077307753767718655191230971168699180274594858982271956283918319541422823159515435531166643765670902690777804001485230944931441961073062656430210124476973298556450051185901978618861026271308147581109756753964165689234559807561154475270168146265792014720001665525340117528198549719496542140230573423454022569426629544136196521964413314590955514179429215515743965607140403860524136757802052622349493913004230411597695890647368006460150143286299409675281932633026283886384300138858705926002117661496443093541309371508349060982337766141624477699773671092894003000752824132327397582557389976388997762485325763609736285378784932136004097734867517231551674660260497192789693613197994459155879740615279326235297118586624522547177823896079869270423144490165608660433605525402675175937130705941312052339769579818746889151969680539274278516734995472138081091914769065204173013518031354117661366027594388459063249251462218941320414433862929149244320959758932153326809795736291579859244634099858106825983037632440493676819747462997308677793746019681102375230255854994169735384968788759313945332169471934632689417045169210932926061132238583716854463446261369233848214320406638125337962131152038662813602809682948856574168663155491907581487972032410512826879573163482205313613224829011116884479641944451020963493592025658689961664208708340222246806232471602147052782805854645968638351422653468014311966494695824779730462370802510205930090181319434119248274733439743711799062336974603576729668393899676269656350001200008574563102228361418792923475685719635789345966229583508336770251249822880240008965032443872969530657271247885651247556425803588469656614409652176673308446796152477238514590552073111107269551848141724518052530738886154322418865905697005845963453863981656791533182358211513702780894996214424818096597961459343256787838401568582719147045603542873076374932442307294185532976742855057703218628368507933238231641758491729609081738158244719912947515986959447011345996507791401799963605634190337595106823107376010668943899792205103485310837561459846853264227023255938675207349874777052642487527492085309362632892277953579984094417988688161262070399568367529781724445978542216077723063732059776459519745142913956550219451822948258175001910750467247874962491556159719815212976177878563812038238776285665223838018654873407686320313276216570617651257340808983389025406964194746568041383077252601289396054877105561235223237552800843404627195407739993761661919787108995988861803604357839119871232185900154985218685987301059392783196123652298922648970020828288382281027199753624047002190642111026370081616798820116910127973602031144431219800754848447815052389373127760106196128151741644493582624608649134254776884435530718474201105898278777526039217670161621814329230827294029693936560717020911596315718495744240403810526114022265415048326973974272317654018928219510087369712313011996551889830570742546312960903909212790731459861496803549166194908239772589093657053904139672723516136608567942141817689184856003042645541594846138588837020137199923843193802452908103043468248597967054079340177396425932584361934965907540051483022459572051983153958578117364770656034038081726029150143183858720198620305375260683592104921169194978963558506214069101948805759615553491162255452846685338398802930847862138376096740886118818510365534180913297890502965694373925530093875238297223558005524227895384705071944321929777419889405810181294070622377443294290517988990365465371484223120826477480345110012981174919586138749893740468597370445241093425875103656143309992690067783465868691977836061169810454643062903721894751281625621555109999852718665331552984392194417086073853108826298628655558422372539628127341643759333424818573466064504403581698103414519849413015776142267522284320718513748681325394520418050464865514883082642794166475369214834858774152155111515293231335821733414346308734864215655840514485574888155342719046936936693780674283364591885586211812554663463742389874254912700213386215545298225775530335839153921713400652701373882266416077709439339948069595942202343251391840644898588749459823158238235477532653656116675304205879598819736201613655584428496337431594821940056955958540721322713072795031296645223628389741056291341541549348108363850713065594732275660270389713250711400822794411706917895088334938010037477520544081625967517550554047260919213610387429099316890639034338047207138300880311692342096286694077348795485604876525296880808471294555273726403683345770973497616604728968656909717532494974107204775691495863507366258082178642960373403841472575185603101452429792241399045291947965345918459408975918301145581489804469232357859866424661199157946818211079986767829115130487599317295165476089594416624815723481634038658152385215833976690222937985493349457607802643052147116761063396204827734215733636143277296254569432852282690057580092365564003619269793556323085475902229058127790205015362220943665510861114360444989591184495426800735792413266749317900485302748457860554201100019458770496434887047737671294000885014867156837366914713621459040830007938644865447116477116694720606090913038235843815845424643107334871401489616874081159314912703742814792664058085736025852136278867310024263900848425841394220493963425445261336767711728934170683273813292103743045174667730585217736690748424509073872923151882103219276741268196955382639363006321526036497241694134736412279977170219797464683610857157616810715208697731050094004224222019653210716417293861398654578153603311786384664357009515467787470841405086221655413859132910485472869073539541828302586305603454991700515221939200655973193172585186508496293885249941946423579309819882836256622458734010172995191209844535477690403181500238229055198237534152568813119167864290682850186524908632964747514786670271526318330441295962890457671133465835917959734720193226177670606722663207418203297124135318022914892962097125565467058460967557554780494273153483302002491381330110873609784241116242208201883401457064806267037119289118900105947920404476332133465515032264364967511793370982730781341749510041931769583842530674512305062893474959542336540178237012001628485786012180153377975473935192909558911989341879343518102916136166864485291721523268838398058971894560041930390993891959196640925830843196803648288592183258438298554246378679291018855018000649888869150655926278983806777556005969916147083093310461242321684574467568202169186475113340042854076744621703816632376642126520771364248010929498239669952280790437540922294218912218540072142966266996374313902594787133074982041206505680639382684910944553469818797038644981298065594206681512643021373093341137598604904307571104550425821390395405868404518648221457557747680437244320156560216354069987871003445948776370158033213288574959440640887084319337721074300490607892820384379817972178758531118766350269510907943480916021376914259690515563734751027458141232975323752586479065238862299484542040375258632484040735872529456022206278357454707444037652628810190435476446434485979707049353177340086460486102085828320885573550571022205341368292532859621910057977200913697721050906612200176067922119054712684685235568708630971551500044229424584852973007535712295470955740193753555853676589666375321889040583665075062694481657879219426210023919543637221359311018678954743290597398200564254356337535136280219638446109803457192540310595167824666226099540269382511056671836715491342632829829381240125044229834737880416560827942245380462413277771597569428338506387943772957017573498795886468329444598352106139323972647910612740782744135444343343241834435564534987333896563895720193132036357827083610699245967989359814619564734069427585191483984924465761254930062566725557245020094131786543869993074474850213273291585480316473122733651281221026940697905084961402096238370487691299186395257470071811754829445770077838150706179342080633562893128300758384914877492577773447914192714807417647694419863991667867586788625246800309986304190079792514387748859671572613937941794174574278746863163266889234568730346728838095517996249707843870458726331844015973809732559099734163914404592533345643714603461456957399141592363405285195825785675167274943902342557766280776781615168521265125749687686796884996020812547568336370809021358000073360850020184946501706970293830286262422020795382394375099371057546633850520259959689163911333760334206152273328156993675696276057981920115601422353556717684800695485783907105097990624891637030255719380426589177559385558317726556538673444064696553607835581807906237381034624130893897457612668130104384834805218148721014217968304533521536560033818305235873348485043439113131963741106150691072795144782609667758578846783289678635989789322225556158716937493825164826968735693336106067925902057461756431991579240052359786462162211379589121640899921712043067066903223762959341974148191128709366764640278319627933573962946821332855251220080540649249086915027784421057001965439249961379323817157337881727557666896282703930967214635502520994773381361528009622105811522742411168552936802464959500616900226973479408401680890844744523408121919724597923298052649647090015794325962075228338902248727304727876066145038462388206662145278917995934154475986238435938831102484789813999376345006209794418038670278331269363405625488117354946879647662549155016137219431717685294537254736946662144467808027438993231724337594489443675789545468146302101683506349234431366943916473000923615353540668206690051949339351294133150880464241325379015349000326051227322366825065658005615377809201816604174816370862174884616533956834194222850838192855760015941168078182032097840753846985749667004151910320880261634672727208366194150920977523548311717920052166119155904155984523825489416317558443011653939503742910948516679408813827688355503038912145247030336908394802292573484204380058941209384015892147423651296369508761712819662853050455702009167877509740415870553204627823133217217151555677523097780669836201313828959771995809691357527424409264385194891944623841823270239102874880988319881255887950753975537680835257706101020839960184160500407073894293302453408663140583453033971888005613230423468599245219585405490105055467366925472163680962893504873233588048332617224656493398543082465485024243602998782819812402105584241065575099944329131098852126868720753600606865386523411980217333099822253407152045104111889325917240549468750516303292829975663873497364975238488953550074195780775361719771698024181395528469335971043272851041456696714552994272148801186910816562465377467587027787092713917184675408041895948041331264353973021884442824352625845810174275526667827310174616457404057900309970274685522237817614413501550179952851277556317567259477962923895758878519458777320672473692464683188960851183513046527226369149502734587161453862321001988839026409709907432361209882582812715984821286333383635757987397140311489864236009124266580152603677850003945154469345273550612274755152217602900509137129766031407854817083804928516056820934912784675950324184754389417836268783349073001968202134617466651747529317366010011390895628325056474705430910622698354114616385884920836896248115090760590458240355842809502142006011628957074956196023563628067000793849856666730049320234266550864478168969888028635904814781888368900867961804516245607492247475292599771891433065759615348048758370725173226069858375714764270897151393806729364062316738592962452470354941002330480339433697295668405353249190305404679402837812745098569822762522919638304819407237779917222111230763705717260224024434707030760883908258932274605469716162575343501128515959403576691950810444120217060146240223181159081940266685595514187871981482152074661772572425436184965360625059399465837429868298669940073387402131837883710754477115440529832517923293065518233007872715935840676629527552839115291701664348354241042281068330021494992409261175162365051497055933097752874185408479933671418670947545056577699158104746006488895651364766066427753316148656123988714171813244256192584572971335659575413313863051914072504782499643647592772863801521731150028651214462443639318325241836777554031913879458169373194070307705054200721373911403302362216565692531437730623474910015953281234072985650373831038049968718201300397620133778077048668937420390101434846805265971764467138458682582608607724649477654856220704442124278262662685697468478914302331001695719926871036964653502161526385232198753982607112194302735958151967949661992900561585245373171120651680988525760913892962235310821969748376565971607171556615850414365969609770845456938400649459505029563468540224901927383395176375395413311971686783259975843152733543603959141090152536333577119411040361598410006663264671310927847308326115011367479041248225938954001880284554257895097799232614753974667836347721830455522313871867046334217054485789008848565884134930819622358090923060929538914430413325631814318279248207360381844620241444978064025445614474987071321256058199385394031331652917342768161595560861524353429947705446710231985215213872896533486843247617877760729463461017657001020386693298642863131885471642323279795492154433612637376764622817475344036837838112051863641445814975844139840720833483690696200569469545132663557635449659186491240114195504770671039028047254597086495835318733774821049941504411627250752602224133008626097192222373120516766367547998223228190558338279620901412585462382225192249112072326268026243999973374280174007933650217163009479201465098463818600220361786133340767420969867003487243706738956232040889284919534267200091142985102318947836398248775620229289586267074898041444676260984165690013569615286381793526577543234714505965771561374433412612395081946043578548763198642151745000545370388811896988880509978685710279074425445441310403900597953592901895552866868742851319683774456615640381581074210788244712916604163029290126492232536225336238608525945950238676036490888389557451219309654642521390654782681865392109119975137745671593045197936383618057238773038156117360631169420010841996033092615497399645556077805536321305597354273831268604201432959005312195282962580124722630401889675942157323912747230157196888899288352162482760670216599893088791031438691560166653307292433162859049753217510899270096797394139991421257925667227120630854268370185790331165887712120742620275867717004318925156921453707523142083846570733233241700598603772672106542515222996024297447068232214333348066152946015937343947893805623842232154125574500744989461221836809541088732919095956785423180929971666053905184066321705288780939016616969787964841754459287406732033460196114642802439152668069275236975260680853925366945655686035018795323269766786583688173237740971569985763049556802248382623701617257315305668708020891514448365240742444287031600006184727073697316104102589727383861567575389601492700279912012504278502747153530998620477683185649485587250975822565409267414942857446510620162071852526966028845219402721302218320595755191374105529449272015017517359140088091596760217916320536578462796304548872184091101791388405491282286415526528990929218935816801871450691858981561350266744473260332122312387867443934784327912201202467737540866806341997482456082007273121679323140813307839508708598545525448532539297655600318233499618616234768947857205885414750548553439262534077740892275266649463813219323925120588390906393732844551533296743730234326329036928955460831046985858373520220454303329225262973057974618758066047935640521390178079485272956703148039613147500693291946229801484755591746677887281619492382334484205772758313617672466883368400969978776065397613958596658394329441297946033082588321473834993067752939378560010258173809629655286998748067824668128501610957778666953085967391219384273214992497022993139149456615540733554587938766599100685758883967116677075003368598061470710530877419133109189437738646947256796179785795997210634317896008728879764148840181898266176717461544851710728386015784096947240745548935493411651855148974074863860990603487165414596126801137980340550096699963086833818717535276113076563192131270547995729723750063706489253771269098296452918696549690029453248348247695361070375447095163744581574842710624295604186370337093882174824285924360673110599061741899871618825441785150084992500120042772080003261659864249246338393728742356545541853334529784877777594873432687724707801586655275633276851936074143489700683821716114648363281031324837489987763271144583060953123391180896658843495206823101003752717965408567731626957524532664895441480639555473752105335443959596199852509712604325612777875136886232127972004993968040791473864680385661731035879081219390822541520992094319818875051183387101599214129718090653635999405615317867504241245751629010964388701367652727883992176898381894577422585802319814350375823908565501941182726871964381553100566884419838763970608830519047254808238064901794222177708689907120083914387916496484075721282992581148108631434910467313945821819029943168069664780141909866550999645270541986939899781688684455262052537621519694623659015532830488754976153361421869926718978222429648729164164993205142297532876044120900033187180531465952672755782317249812160632459816906413732368722857470143262533751537032234245619264791462769461753504712801171097542248433768757440830853522135297454946887067223729213620270493799068463087168690759213692682610046716464294420935384058765247314068767600944303806322511179385125319496124428892164734873270359605318477548580920771744007225755205339531056753113890164761288592286705285343822906493045810460105535397660294146342529581774687285113316722566151739247159983102409998590632497425559544236234273263405193967196277577926083431013044664009542773668900431652235122387622967982708396643383766841467781428991693324570205412312554861477794494591030446969830374272439707992669757490690142782846651228655367527684074846224715910988252209985624412555210470450174264122099175955452676227535135248157656131820652516414322461383177901610525521318670515538357044094460129787288706297431515260631488556585121490711918061796546692895262766042438050490771327292318484816006764556202737762975723124225771642249687041398120746609409169803445118185913915718654876301415347140545208077018021030078309428861773946965085624196787207799465637953953115353201887607698492367501452324786304348472796814624528715466259949690622733620183896315539011163944416418550611000185880359188541364494106055266915325251766285807991884363725055772413864052745158864960305380139183870624581279382459551416618138463785837124042645015196227106485987024864192588006718125122778464638742071005614914197840412237410340312480146850852318109813037531264825348085719286416814401576803003741378126098197716394473518282459587036518183059550914075391288896753483776860867451178708615732728289131643971740579545182917510057031726316640037678493068441554307045714408900072965674369970887322500134010822596095227313659273378554469883313809654054843041144934797725450706325918590478975035432072671392924276737749919729383836978509144092815168425168945534848834391035163566730402937008686774858828535551452670370462769697474953936736459825653016142728464771555063997236994596749925058585722205980826566185322498907054834059918238200648610400184143640714618610700564902800406316148046556605456479368892542071442348891706254892064198775452090141845977420268553282548228344953008075849385850676897306646206179175440837697247750750920310629186392110637624216059941514525253469028929029737777738832510073343861643751539357567128628790397664490652345533782833348451731742181689254180826820092255477565532307762724587422337499524793178546696815858252522280056560890817225790509457224822124584062867910948040873434476817047213080046957242500594495328559718774295335221553463574110793698884114676471023494736117622794404713099529232249457450545448316125805541431526476169366531494796762507843781720477267560115568990685498459537886622633839555318103704515025991856447557047365944168722596730759634137125296828292183005251886204576738029007344668242763344199921265226196089110120068443568705319798450331369537708148937508202684535964168685508207104130818773286794130008677638282796414571398157472617597343349629775964225312174922135768216224178181981633473421582962061465788430065254591155152687261907407415289687322823077948275302244106367710379521998025004416195754933586732089976697585137182421954026958936366009326656237717893001726249674767151228520422950773899830385500605077552177292532623256442086920756222140128955440870451685131491897285009517290380667325789072301259016311681784405076701515296012463980414136391251419500767377930454901236621890592018277843816755651541482592850293787559150683211338811294440127566069658303075805163940269322299231848567334372312156911048592140224113927655736333967890596477581391987060334138286274200530907644931076754479036036790451568898603969738033248408166965842791350121086627974539964623703315279596487009713210565704778952575096954970572301162139740008764116783118223621982375777019374576282137513722346372668507659768884433945176422779939630289051516480716735384523094627284280375118611382637038648667751887501757575169283416339220659229498870006594108757106063396453966159790248803636854162164668262123273852227659686372149390650822842462033675882652754700991029114292899511788874805919531787195786258114729225066596371899179955827359161251193730932612075318963466154419607747425911393448320583784784297941311309113130708024142855957733403859565793984658357544231536880207206291274224809869414623175382327030397960409768298958805361514563793772623606514891238783831507189193911716414371318824131103266428667311876305028448499591000479376550431103482959242470456799380004816887006875118730321203223026158155577204828906403796225769803967945689139792959207140171604047947995974135415861002772556656397507261443198221948517355050969329857279249282473680321088194345211788881041101787828943798697836134690714908604672769891432156036949349915556565513339321687953415384632741858722360046700509363430672290709279145241405277914055104488385651961195200623144138200588526836156952673534552707261138113819705946726566300451801988782187564553410405891447451661645201238788861051372204731789436897628346857045623751236145257051464749618874689621036651550332546626365490490273495982361111120542884106735541116623595901511214369317120112145897125236284843294620559881246098956097859315179957954662097449414812946124080443424826689162957067188090036882863874962276266759762273077236084712489541222502012579739175509709435297568218481551612334093526961617361596141488607229554621576814234173600891752265432640176533382068591738261547343510071107708696246732717227461798617674743866390799676306805475057594652260647048269937488542969033576152978068547064345808285649873569905796136899300509974070401253748586290027618489785196366042426289605722474205098300507955892618623498375666508511482282174066914167635617396987459712503043454499403399556659432853265175120982293966415694981499809968495472247036986205698407368849221522960622171084572665318591009865562800866404544430335065742668605875182970393483994088692125293031802572675818903709733888512602786718211500386925611442497333819594577209331214091874002596511599158796934512954413428605138002100267736742016720944314306306361574429070107062348305560176656059863121907285079299569061100166060724965738952356436076983327731028568192207581581473152433783257420501136883551951547343829520677612090645179327350892422956877803394253969464679050295692875615371132660329873703014722018155074548760173970538444338748492780453910857348286511443834829645093115044763413714672333492364543855673348381607756882794517586572016198047293054577005485057271468887365279754108809438293517795912546646264020904309241927863795042916054127596838455647529597956442701195941938161688429754504624709984344511314805406702053343339110388315064655941786231777576921115647732558240782472099071109256351702616694606444564130181909295773676923304071019888981563981576980463692661715452656125617946863443125005907202937463663380706766070973917787520457052812172759291302678036096654772766366008609690474737905773175274706101756707396318597071875553307313087668396047554224970746639034650049751583793437156856063694911841690286914052149607583364693455901476060107486210763782192961351862894748325833214831747286559304893028460511929440901355578057624489607328356896351323752255729119479708349143001757946876035877309764556815276930265373139823838339516882754360444001702908741848129877353988134516244768815098095117904645348463925221791214076290628681396859586660119448521947343939072543334537568044833781861239612376184748972576033176751443285829737700898738953125917929951757767215999370923906775721999414292619283768485188474774629950750047548655750926942546983815967980994773380028159009542592058546334434535592247380837973476763017474657019413535736248517309007031741273705231423317709019892607689197600810412613885938674226141772246837968165392361388442666975183733850732593750141423706020854133787705660431847102584108361352041419366631985167951758744124954316743774857375507780449547569863853380161359243911707002751793908937344704269443092739376760516557906750866544110790838256599169053100333421841578075613216465358191855239155226428553726345635468281415512539631216914431847784340329153076223384039925343853603904824694857352940966498256289871339228456729681194173857254576098367364182935848974459000509473008040816379904373940934773924847483324060568107415597377806989720588736356666149544296581809623624414169245760594645244804026738027524328487619037484368011818832207106148572302447333207577905792187874997362019690472084488734828774967332720456894030650607397723485924594201615335906058483659013243476427714799852433576738731746285725272967754952482100654493832429671250271332508486890493854798930163985815382151235757034340667616353012488546977959285570534194050890530803991891485703273692800982401268425897589084015877476735034642836233219559966768133700213616239686838486512925664467743611173237754528119069706036034153591138350208674227882851320945285747655476171197324455959408037521753572953023966258966123826409928101356664822688538802410204483942719409237741090260037590696132380678943208309482048481687349914400462845395832713305172614239715308801899864983178040148663895596517446960397532824723959900719436905439834233496620332834629770097109376681024451148715400552461926130624499193254451190130474413008362558272277001991994105301435981416601512821445307096115452935680705564417922564551172111239456628781750239012379470881233693840254773612620469381271190071371845231653332458477581125680590747131795797812063447465700363358996627911569597813881579469656715991940450931670254233451225458989944208830322164122499766336405002378618803912369834988832685168205733616455583407004248755288990628760637172676480987978445830434464384238793108258550468878740070949456292022131515117833000857279340723810864795280156551697905137637392204308647831383284571958003743688953560652363500179234253387205436872960459979532182913982810043536276320907626648106199146663755796463533506864280192872345187382789969019007598696802398334218688363875331765992602897052086391327583075283063040321520342319953138371849566644198571576267417431832037389210841505130778695873227612289882520144435302597958055962378680477824951536608480920223432046224394826336254702950896960401710922155074177750665061216576133882069995601360062274535151133839618888547564979976562000023761483080519159566845398247962500856086399417858629534682289725345449891280083127468209383841566585340584149951934884079763393884061690466909722275046052745827868773964698784825639836007876419750805483076210409869316720953966072968766561450944665966286142524577433170747114056635542905962322031686188241398419686252101764789358587252467048593668597470438135886239346306953510609851580590497374019825682841177186350040431545000251198582954394696869777832719986241515147619879264650903931323551379656459482905547176991976106477595282677912073851149215394966684672646518368869185228361156788270318084118684188020178412767320529165874552876661743572076369690041496406084056942033349132965299780863295101152763747800231134258710654612278206746083841583221371718294615761296923820752939891117107082248751786952712767481995241648899560755377432293535661664389977096784345527363170176788148579854099699531300219618174887299578850098951022531598572550017239721876884357114213818234331034977041775306015910442764686442627491596108980522108639951409509751183770323503824282622241198904682898954514168467290381178193259170299783895231333098974081858109984054253125652297552698623383571376726425539663857021515069262646348533202228395785567726580627395663102490492356309345279837053368368574798549653645646774600457948599711111134149503103513756726982352749374353817014975484512452002448093895775287023110643930276471796272965672854416680084790894637578367782035235895101096990952388355287177050663880046035789390973896917438166236939590108630514225829447678291902925923119147664457373408904605162051323340780629272414719423288165368794649732707016645364349311830326222068290753337023512516225279542075195340860130972406849310711376905535157172286273885042007556449636429513052314427610400843816717273662451254285506348468839016802732609943598274429877422199306527932065867491797390389465201458599733264191792331346185487662927767754320515227919048706449715392033620727409240426247450807679571998447262870879234510377370456717960095748138080264673084414680225753830993952386178054231811251161940382162318620710489238016218451625823248954227926916321185524605176605308794606809139636270868295179745444096058484232827311212277631566090052291019944882359329721093736713216119469805230373052246393039165207319360043293016334149482641665620036093285792960305523466937334440546891458402585116394336154123151904888731098236536735009213221474699349818389844222287463982610034122765406156684522203180332287019912935172631896839299074315679212493876927277484914576190328196222648306125706723009257457038357837601404786925216799429299353264890550220301381924577520329483559461059157069027761274848649125281597635833101702947991572517562781164080384376107436498096011038879601214023160576546623561042531089002390946704161534498950337806362574751824582578174284101940589195759152796972733814005100998775140077353641770293515669063193670379367896250848486502444991408762117756799634361325240628784845866314822916088423700824601950733171339249962198297453699469155968269196911960014683989270569463578398987438206895212375481921618737016831238545715133764847734266173143019565020770142515538175373617399734467445445448623351470139496613830528412583486538588868587642670488508904677310592198158483350576035557803473531579766542872881814229570854060593373611255556168246552719314866264211205416396046360168808197789255058664204161657734452817983732878225888698211713869997272463391680335673316597619649106187102807877399534383646432192341194293608347516323572348200203372720088240243473260042594499081868526635945691390058340718833227844302006675161248541879343719015445737218560333224561410760705895413539224492903619510741400108952419963261734696077000547435023295240017526188140690653001992551984798120881055092941264044669634792221789437112656629739344352256209976746288457331945937454274674063987352092765680075281633666668507549066080694384027570138185002553926253652835846139873230045383924789670938828362269487630734784347509514408537700435981009610269827743097712974256840560019435256137544070013711458818186926499794893999511458431787509124441322952577231605937854845632243261408786991934950188039908245705826307742375785518578153944995430575302097867406441976267789702133646349778035307277506611165232219194863394170697929668307708247555964976882605554915895051517129389814735948749708510655780124962464585006678742250629688358671012820989104310655242753932272569844290397684823842480588053491977701550414347964183217863599389717092820968255349053535766882645989256999300655281568283129241946094014793387040194310737532037881813982686224632841615953984964680447561211061688774099439923217189007247823739599300291537623254610949955455434872123897884040057491529839199778981899705976957246066388301976061568267014397065847686332078788903933500578450700018667949151133544223810041512721836623390131654808288369109957733565652926717090004280828634868166399328809597859713561916105844471940546197408009494992629881617643118837607190267000365271903898675553405978469963111548277614025231969443474252757331707724050808443624589061038223564707496235690350658621563055266464524007489706296669358262694179888033348264021271860323411109958534844950141140677909646193078086579198141912709383880813059306418633619925302422827346690478538569233492952422536811261191587232227065054875876904085229255423444292563671173664288671258714638453296686126562009392552934812778072231894153322844377741142419088884254479044274716671626358066808063389173507413978596870719141104477991865714220239447865621909698858629259104570757678582171713667929737769193097453601638132644478701837116194993092700109039959972625949354069206836608976116193119537547746954366548826249294659078753483661025993543623677551144025560842998510301045888335908251004637419162216919898229787458231604563034105871815686482667298237280451082586372525472521622285804708716697687879709079817602702385002087215944633524259385713432008768865646193223250986991936667423329521090241919098325043927281991954580577990192262212686414219508110621379945167071488526395193649851492252549114514509382527488242360456381797673708731221734929817159395066746470841116048198265820347326461477810458805313106230756920231279482441928489787297556579190377950764273247864763991627948420779023028637027996764228930282198888962239483435730895687634106172098585377962377127571270764601805555794972428541356737297426878612164966552831397230680406479020987027366806408367856589891365734898945044498617071771833961705631945229404562158231103608406605901842972206610422392025719293196681734103788124337855512452825419067543733409457921505927188067281729375011989351915677692618321922293598785303884650865865606424266159350347359696772511314397119419280763216067593226579214636255852671249712766591991659876697913642229225466625145170575329198772335309323790972559151872588399714904234087493118846876823885578723773073404363237435027737585056907623389813543249070104167233277621071381244780097662145068955308963482068670543693514929177115018566611354371804426161137688125234425379646556693853271815177543147226588103942620743645164688472314637779717889623119526382715927653931845790998438685127533371964822548673903739834869037221795510319412607053953599859733528614940080423492606542106461803872391060486163458591503416350412690633155499563492991790296870371937343865973000186232282240838370350996950154060434086408949828659400510061103211446951169670800955493975335008654492776305191906040708025649205216014912685334402242056082023579280532199027511988780449839042120490956407607543007986374644768248708981862046245684637303457685987275421897386996591720399597182404229656834002036681532979299095595292313994518697901032672431837830333167324482728998996248674107300284386035823349041553046745999027870635731042075342506015688998849749115426205198651105162737267819937617355718842438147379685162606406490667303034404914001985176081111454063909957701839425670378739056637499475790745457478963081915343379886054577925553321648269466084162657275667832713475411306023972960502354212597880453113410607001884544705444907311722594791035550172728168981906233540694952149789882925960569109304394724355293368969796406293972603964364040490907339422284638305929620380631650987906870246229223031325936578824141698243152532384085141021284195316320489233928834328202151413041300479510412363533124005554950971100426817961229112948880706126027640151198149803458848956578413287744177005810080475088832005533855568538830757681413749145375127024681172509783144335504237327250450733140689903461857795631033983523802186965327869774055542299372749917963885260676708337646938393153202238873766835776771750306998189210036022655148128042145964774553225468654343721787777408012805701554473487287547028769801911193812463660067063550468221547846551097518178332909243625729914318533709534687080157627199124259408251159264573014893703845918655904583786148914258236025478225900538731390042689032114826543887499414759152029947622770655281413227131982190817404804995784012964200892335418364014588925228926279686044625695225863669547241167974955392237909218973928521540909179755113738599875753039028384033778976486403340066437879203757070807964477592579762183619625133248171880505289171329528179567206834170061372895865182122350372033931214080627642327988602504810177624696689007185343853056621543820113711484031098728965432357433583261248854439719736470746902951198179800082743792485094735138841337738200120519351026568093542744466987369343531737092304532818425728093234565711689994022969906745405182398746125672286651844565276029765300449681268021897021810100198564006222745790529594501184897845776456541089944950882733660246340176526384227141918772905886518898475649540499378423735545854561342053075490321711706860645902165369751269097207289146520872295606366651370242056380619840668510542217236286938270643442099554238234880612043369921517190063318077529352000675548812555740218912625053538621091209097714090721281037854303992224968684619212063909141878127305910512261904708893010826019645401348442338731601355264247696907895459161367756384072553338161637657541990250736838376687653266123981430551452232610167783792969612188502389421533203141774158681860742380454216025581602661943219109990237880053558351241743762852697247921282417493268262998974409546637273999782139346309926023725543286081199709449386873857090217820974228915446547115743678696499069712183588274620326114764204525899853502936159709398911464749991591448050441981502923561599934924629718092426461921601135514054018287519702401232232975900468287170131888564580639756209143232410410764584969734518732340341631580484417517153468848627328200297746918629311346031740125210092753765076856878408074462441625538071326088364364380256955960631479713899261248309183947918420532492238919082602695237975356510166698109173433969433127184724032774044264901293730062507082904328414208806706901493893010005251974000750417903356654619075455182456904268580872227941351208356404336358404558411074799821849781658621505084313712426998159223923544386799641164012658945240280269903439746160401415785856286183116682423136639010181862900605314691108537822255005664334248097013975937280392015657948332045404945639718919199017201614028605594730879397195030652712963866672712107914242295748514898155456080507104928577564281725719129294415543434516474084648889583809337994530775103201899913970706884120093012674927053996858730908693924468984164228446637039868599144238017280521108569299986897769108216226678403643777939784991334659859979508069586932209527775104620864321362477486181092863570089714770927696469076225773722436604662799003961291253608225995370194547033613807343248874403668548703281449419602262876988200010554205663304590149199271118985136936405780460579866642558333227557062039880076992220790106577704505810783342561061546317456191017734877112055416325181779997248991970107729229303453335110282328587828355919713271278657654585805367662127540839294330613672456060486082501629162319685439094344419355420818291937039149714057084043196278367619536649161650844502989203343079362904624653948676546173509406693786533132799157224661665413086924584920922292518013894168684390632924267654138445190202519016439957692467101614096982164511491718341392753894937573007130246260563996161926998448079354407304306201516588107970345929734202766209923703070924210015618148355743019222985008037944330625392837302975748808145476678117094943105136832034342288015010689317168361272483779535346688016662599216056300196229922697535039991732689518799983878645969068019970411401293726713152205220559121545985509269996130091012718006378763742619528076858781277128250047565674256776101213243741995223259725354221990859832468268667256996688562663187041612765704804606534280388933232380338932004524769054144652651260199030003428459914781383519241683081388076517737446916533503227437674490455804006730028461576318165588406851413263125316978921370815651468629582678573293187874793959844711956630950795923179340397225064747097228018586838355956522312717733807284043593988831229810124751089911132810132441190573110275785650701869312687896694257954822839617930813784547491982634682054781808243452150914354026042297252443455276233237040868366758891369787258609626465220858066358926685126320433377002448275589323896604632840777703702341966421537348205761192440978691496840007559824903870030770243438675168244566062217221998807835727235697647183321268822760253387277694751841310966237632916011680576966258453777217508497279404884387706692904608483113074090541048156484926811160674679782972202329792325330094438159097152676872604732024695015622368353805112707379747514332717416218077992785418239928435113077385258114795673380896966741612577096721456448185210968038131008675257987346110058252748395461447307270886294274962564045302421221747221109996043756848485629133217110060588749736882569790998997533937720407321492143950509328265776771452255638310971142710576495956678051982695574332700906522686779731863219759151171161734065746076727863395634824708871464063435407661110180647195132397573481208289014736696083995106189994017547247526165743958238459211482726579595463902168585871663396119568141370534517448988030468524131840755137058179545483164967431836485702656742120791950862871665178222883395661459483370330293162887386702183737242266612504501599592703297552687149099011021457033888317963702018258337681185620733914599222138598353041941457249400908056363559229894472521523189706211531912901802003121108144347214536506247230878393801841075891616810265405206659503838380798432049256191075154718447764958010216094127003311215983297459757959841105069498520505983796315578278926139335466511644413739189282566876935693078860268511631551472748315021247083095684012649620022157529955062277581672113207488988835185091469669942339907760271033448229247110359208908849081513340091944617862146187346573423182059826628937220411972516025442678485285255629592091988447900505971027796005571368386511503648164855923079144156556589180936009789230341344110760843738292476805294870653828571389819781002029116565816513641044874997173834996763709864026523190546432432898210537966613917390483369350879274607061392616562293084315311100496927872410681884165387416331561682507546727354312058403810544456708183418104181837647774017963594982611697355288909956059997387568302977150837605669913428496076951193806232093540286583447421766169464684810040863241901980168443181866322589718942369191920358351957941149193975378725852249827884327146794865447612288962506587745817956570276384224032831398688336546034716308441800189370947837447123205593768700208268293120563490586660574819753314855048106194663746629298055285618084989066585511172436439496666653796248650052714434671027488206064267877322314152281813647034435059699174393542144590439273683821980836603721811209912967009904771416187292528872540191333885918884599415073892323775524967565422780377295981288520759136838871238788837599721172855485163745539458563451866861420586081034954961129077912001999672286733550947577698486658954688864663003747679904950195051483369328848344526422906055262674980403972753386086900044809889276980606747854605225689184885963153151018710956574518961563902249472197251626580776200553305861145610564725528386936972931600224046607625491707354655548491128423546693660388258918017776274086671528331007300861904569690717869546858097768731481438133556390659181308089558677369330984609057266670461033553074409592065922307135573753088272884166459169033197426268248920327163178204666481590763640350319907932717826053304665582126164058300282594533925871086772445965423340016601454541528406218783835650287732976527244242629688815582194706235255922119474408472094413172968369894328879023589797872238279084587595461390738916182774680824104879770440656803622162944806547488366457275160943970748424930067375528442117713896260341789735950418272966325950888986276867885527257362634964877399431001291174004455325949290691577624470150293659316795685563904131647566601697563880661693565525847851802804456759192018857864608882310675895956793060467221547230352224094281787973761735314170122303652791660376156550034412213545870255989797970363904151420784395653484210929336929771507169025417499157121251181243596763986376773823590495826648261774488618757714514529432472804904319897177622825934648996211781598264064150292174474723783617451246058902805031798820352347913161031229151065639778555173724659803378055099200572850974989295001031270915236248177366959471047624648653444872672702194517235349388004188420110740215378530835922228267805498097995864758255777391120482224206312660331586553691932740154547694569177141407990620954017042129088853419091867982144266433157765487837728168693633181296775007338289803051935338599236488667123719884242617810489455668829299381794004097682703505841387174206310976405818974417330377991061206808226977364107862548113902972512924605489482001380041081175662303915630634548710020237460706975048280906092576822406774889303465088070753818683233300415561638369492233888886820895813347770247173656425604396651799084318345351577524165410911402801513031046390177158561939124580898343332023074857316678620099543579073379794156229365630240512124538004889179734849666527433629826842601567356894128592785858603834589580422780294767233947106976640096159135113905694274888178259878486239832843400603348222092690235303949822906841620849927810657479061066882152673686005525023721231003231976723003892062442466853897607954236205529483140037569240367913681925157977923659410923581083755507878924607634384919007601196399465056959184124397293656146332794896453139927069988505518485887440628169013622477560255202497655754057459531932718466035943839660313316279395810472083684155142738414664513799538689105795037926328309396073441014508360390020691839343055783275217279839161541458264259232692183482656338165750228428719609470264930339003462695781328353672050142349566757586593387326261250148232343825259636387031466544582367371511187892028905573307057791806348752684756237752945508512379784022492945625109505686701528670358667468852985706087222640751823961176894004497773795036399295032797044418138198119451244529374655333670141857294297255845241512286688760155424976236661054181585537702206858095051219189126283782368687621643743891133172718799744306866812681780734694663919922542259132888012128963164705014578630618516739338603374443958472058053060174898295102248491965889761225481091104975933858866699869916092831938304685719567223558349672870560444211838634068890184936432390181513123381111649257362255446700670430194180871589466942966264511471630862105037822118898549970378839607085865294722522492097618367176412133774937715998856952553821296910366021419216746757811424304162253557489372191973170480451947237185176080757131410107500707217892741872216379342063693304178301388878776531453776679403371421132238562374890337882110849665904964520982808012957902005264875706922470265465456833460902841225072891471290515835219011675874013374041229357211105675896576561188455142972002568742432950322321634838800541119178408717696046450605906767813065662001105851209728785289551615316854116807319389143158733109010980563130944870876117187806517255177970844072704596950507580638352030445499935647792388384791072365677245273451853441027404127552986303879490596662938139780365705531149810230710866678757226990043754381214006212578530609318522008727265088951855437459686192814753188343024678119755486412112626183080258612568323221578024173733919933628350660660025844276672939460362417782859383218992625264097359815698418448624386963001205825136248126170956883062842956566319280085214107165660233626398234658022416239540201656306582549004237823214797924632185447805367331720355292128485593839314822485854781837642952847346568121639176915358181173089852227481285646949723126660842886900306376234816339715501236494703704427758728113727825193851073174211096384481176605789493849532776833998329306118273487674293522739520696836980529701262733565592707195710281273486625611335761483641444455820379544395252456078188078899977599458539530921216605783799702962843400809308537188610333934112384053701642547158251226784756111133602014389334596138040699284182790957491901678358313010389078519726555706931987323668792095161311358588312446202021584680781342428811592572250333674615664178198051943813191142646334251924981336735387050771351583754284537518770507205621230774916188902817134643503130057680777856301077713303665035819942949534265575227803435709603819203487905611538760468470024823542123702951083907436770731220041524533096100261649900671581650646346911450623845031311424026116144985916230344586218451697414060074331539400695820864166560949889127222295186362695855228736235853945288825310486239717424678403976612988230281035676420288792225047453438297185108081643706231712479169974264703947615176420165512830134536393599937608695484106585926740621683601145785479928039869357288690383734643066763940527598906593624502353640307672292517401880096730952857761460650889926776740903727468510526735080970838822602857794750154845552346028927348309752075778679916261761184134629678753209792707594612203847796925736708353948183373165703068803046287975299008479693781429286983151382832793583083746006385910900833018682815364843862940962113656242224255159735849353704427359714314375924024523113141898598446460478106598235914555342043282783542378808226278510678242402417748421902407867152397960503469981762991907842553874576634789303969351263683814529416554677835561056648617339565876282906254470099836308320722008230489752979355920375154850681942322650387556759307381832087168187627867143418589125255084187297198352688464260354237227761425397552244728099746171331034624000107108593031002301976154333208691331467395734284012498196603936548896759735710265072000862650003042516299373137835954093724203879035405770835131654132336198977858909280611111275255889181987043716191201186320428073244792315684532936164244531415552972631708710866587697541635522815928231336832195894649294429070068529366377841625625106908963588001688962528592972634218537340694060477994261996927881478005419319325853514220659837102792589481868921177860121738375916032748433838703705222168634282588947731349914236938133723183875461247770491424042051351684997576568023356198015080446421022465075500175574424784717675972685488235818370330289512218895643202207970604408932348266413076623305575717240830874938041566093870856201785397632444220787295370477583733949962131162200449937054340524489428168234713408001944412714653850000901738113650835315134834781203881520379744593836086996517179934583960012535345848284012742836318503036625420172098799020819749826362818524665009860677121570225781340673642764307192167053005668689807494751973473118129280658716873134538650164491947195569621539350317449561444792620909228263465738166529876525537602992986742280905459754541646185970584255586338077461941501747522926688761260318354671250279849174224267483687734136423204276088631678820051370609695340185226800526429041069542221741134623497883856338679492745485013043076027506513224092473450465569527462102990123480920179715508227741550788125140204583685884306959512081903194297559676947497710324522541992403056751059613878832175288587194976929505422302950273265852395710918083220389395354840282208510540180966220683980352327749742692673761011620533939692364144807879019792953960992734368671889367746367635486200788760923549814277803860972043611313104685177556707449569419738507720329587597375191294660466586885924681502701249289302774592941207392590210101899483726426678742950869033926816258486478903364630900203526608060939452455750668914406364499559911317562680142149531398879259018715862586848326651176641005061319959140359810756204211989598300202601484571647958261783457481383379211678746647828116252591205107406087573132543287168734935817708690405078860590167439074047481704953746379748998700281841310907080034288553904458836254009401462896720109043655558444470757779800870272974757863899612773107691949086053093886821855742632265237751792765409585742378385104270142764693972051149128251359431864864927897216338585379691980016022545907922723212402197641095708074867630373276560666220863898727989468470373645652773874177157726412189187188035336837186376194100556235109011691544340590581148702945017069243088587841835197975765179629937394551075132853048584454503746263314545617834089428088579947432963121623049437158146130660091324441458024703188968017553659449536884920227817434454152949398059252509508809151407800024819005748905843980585513289303493381808584310779186816969228545690603069208360048735512154673868621043057886663126213960862465560654613920697032297617091551686004407067219308420005985382831580527627286347165137125624693065189265077882062435537942442350633175830802464338548548842719815490061386616582411248354823485654993636869209985178598534176397451319838545488837123069995467287351183063561769995629183231250717612088300394048674222919841239100951424522733329949558787908620141662996201457133804502135984537563014438275060518904948794982052632122786487929423055455966250765101805821177746387731452804241566257160374202165004360357982215402857590346436308346252801282078689379926236170177313446771573060042740635154757023443895053170318567248445266587795623415151721652667257629391508062960486542595614942241410143320594543372516361214429231674799432503140424072919317113200914001179497401017410176426619890848894287109934539673360399484920945018367501494372798228363457136834889339427569761609816772505812903829748902196364897751767311007125279866521170168778601636506657519886334838219902108562771206925000673118732091490341591063071002660802697800760198473104398325977263434160453821675746759996725382132323847451285409172804506915785951815008714249477101761725771558459781142489034681903474152163737048208790806257742445691588417653691759134942070111560891478009572467759907457137603448276364057340244133238904266916765917531650501355686902180840724992663536927440116403293885213150705483474107709930643544011964301626845152216973377741381703200047678520776939737290407682511458978382862899960826586338900957099119100979716415032392906094781860286222740499724825232335165918997287524385636620493236845444688437661759050267573280950635821792720703392943274700965057401876008778395604650598402310754005015851064787043463152787011707358703390490459686026189613875425048450477039708685435975288978102903376014730256886108970566865356203176063887426980588233872622878269095708156059173990634292643763042305751645586504258641249175925323997264745348439095870528619516252111784096599469812252845159930949249626923156182351185807505714579790353341804687541839695371078324413966438728519712600140837665955960479695429320655649927150710020486050060105777940923779679773650336130275149675103168429995183076693464440537716041512956917780544246750241419808265717673004363695287746153066644259366971644503186325861414632056448185931245051906206967912284167509282396490238069017783747455530497947492911667810943924699175795959994710312666775226252623995289148236507052388844913602640930069254564306720152979665397614249531781865970021390948935037465181678051964065436864793200453815778082573237593890048363326659826704141466972805112223054000662032516981343100276402476430471770115221852512621752148050988766439468071496144107127577653548397344683584945034806745448874760214567682330591978263990497278255963908423079687211001608120634436447763661448143865019002188446325110139336410970684827866642025727571910614970393431086535251275219437875464701998134450944780290429950410099619618530178095916529360745848880167089260505607262594310461279919656239389159898866313684646197624164111035979703921437411121667094943662109267052989391971233518612206188128583371418805928383227962730637233656404413756601125325059402475209641272588038496273766829187959126963152422970891610514352974659254456666000060894962016756071899679873256609786934421952531613768915475345952599820853839890266050514403420011604640587386578779695676420262278170716036262192353535998781600036371533622156592102612480240179201894437076420220282758626075871192474137287561455238887760665702118202969766486056876433165109358710394957427510131888739526819414872872173510703311094140530577721094373455495739353270510613900109226884432243543948695650676737574944799376591672802631611946545545898376736063338219876842079624794262059727987223334550453326183536372858116880573968968247923593172124395794450653114495763670040067063696928007617802258824117436140672741534974921749909725028743714442123938625588597167057321631674054940333069835987950061863432752570762941616462617806300353346644379538433086113513458815043606599210078797538693226795714304330253320410040217924004493302331127532583414527335292739820867642435775145509933140669912603836153170515373728370694909612563044881214945043572462217521622638690050419334835462113814788502936154089440285979108963927969868312281017487031519916670448964567220352082678295094160806207598110905527733121937067701891589779090813470844797413909496648724684055558337597970201032418564841477106181236025788823023665328075097168798703882853023669436357110269081784493361693345305530288961663014182067781450184688509354638957226871555764840358381240242633764232694383175513156853344767481658503480460993820113120584620933907131904338732679356275647776163229855369431199166555026902901791290081280225245443063075581767012406724407494381716781563538568099798042946129313256551176964346390685932794096815920545589580847292592568712910897035127842226992016258499788993022086108794162101788325793512619262548223465331198630963372494230958361793078265006014204357696631266086628665653269905473095467504247496114407390935117622987265594072119351937017986813850011968567131527708604847510015127815482129331940568155101010216278256252575607598940422401455914613706884847980572109466210635349422251064994656282110409127872562225354381629576715542567327749504176575556470025546181753630116949438534929818259220496027821025133858051164190025971608922238195552962804002975417000014547782702553984900874091970831606524765482012286209117303987315475052461785955924401434222857156935986456530278067408762376297642233086665355925324228445701328030528347675887847128026051486551808841555709180505789350492696945088664013922842119425515848733367003023634586342029296650028904404247181256756927071831835899609986969673455453386546454192538336478224978577536835528619830272700257799962868620729358009596264687062921677536203469609355972912839459329176896668243392524901660479009207747635859727908521054568935403222389765154860397652637172394412278475412979263692535652505506128196465376952388851548001586993641700935182455213488514906353478809565216576106870514332018613449689615945556243556926979263682828117540901446634445939399674213089185992118551826002536291201094354078646597650162916795497493319224622890109295556562234257031445419524688957134617790158928352648443548710952104215938165723180578060850970415106816468221701667705872597341710520640396878504607740216612114839160538232124984257472883939783699170664500019919859150887004412699816153584195181872470186887116022431067129630044486606952596777585666916181731826260262217209243823315512487926085123281725228132710911475723166085603745718645071515932934247463452072615450212173189035071938093870569882667015493646023023891097614947253224806241348395287195702028983518733871387341070486763327008875991654996518394416398363970781456322007202710496858059986431551997140184382588891674564470206876350396145445390291740147829507866839140356253364804494535149802954279948562070711180125806081254030945261623183650138114505456276840747204762610755630832210605114048491952777254519160318212745393923954436734271288270812451035819939899562797676544629556854089070805806503549820571080234296916376307619019232759782136050841650408969652754164149351601587838775331138303878079086169508013612324444285048167948184467054546291265809351878223629131072195536949618615318394028649395105434469148348804051313655615119096814854979057454019286824475801834097954997661406925419102986869452542203867286750597590479568951571513731520080227442388433690027470710344001421006156243105724103281432376366627180275720687929062669450348613511974844790406723512922053334406772084397630526685409356396327115228052951651928993853368951902427451559593564424876828362007255635455948526509704033761330515725242835142696935887275321241785131260406206477990443016443382265447557355097703930055696750245232819702094184609274132930559274533839012372237227928659055469835855979094559396980780972749661153612442754574039816072334648793532537814899375074156078216680942230431362557508988657494940096697851736371558983545640741634083890169512887133220031963842821637617182998972201391943152803150570560702424121030473461930129254523503665451964440775099558845940589462082556137818851582455115375471517075710566004824993226901659579896497187041287609644713529903209722745280299160649725513202917843935848809322116796905277240387678393543652031825841917256247281491907696807220361856404830075022005570196482652583801445019733827544515949307282272900675323310426995683494198574724893849790545387113681834614177423285370100271576871304225676416770553267022823196069596597804139252789519369822878921529345425164374640425459353391653297993272420146202802808289695086997200247171408992166506566992669639052951065637873821274516127510486455215164473108824299489376487509321904466194157294376724533278043271964575213547671065552546106303580749099952143776158559812667270351625591189109369455807427406327969040904475485389904824543550327881852518473901707872310629103785468888986565836326132007450391797366144600211076763118131332927906709121027373593426892901601550187211525395926989404758468018988128794044265701606998432269386707738373573413592868396521193444333981954305604155815636302943055365916372863606751980216278738656590566717007549063657273614683686750376129331915592206593739869605976290380978685581524898375725028442418421735137397587456348999280422313484384170846055756310098629798150351622442203980729515030223160878072325593403443460084981262191899211349096608213874025075964528741258367252196952945538861530492485469334828158312889260747257097358035171007367681638193978788767190231703523719661120897120737742186436672405011305138035171812178123615295371102717695815100555048144102805492218565717733287710023247479849105977014019337070686545357175702688109716271950238722294684380827472298128222035629493894783431873796080784741675997148036443196959942719780786781254315021863201570639809600231999306810216826048583294573903670993555100664809500563739748915281917277650340443451614016338191900933223450118222184856926352297852907474738961291904763786522821020229871190110447400472620525316930933489612811220720433570712253062862543795680684454758488840595984232027547870189119996731228614451349269467858588079913459351119823233465817539080656351754014619208196215266904595051253082003040497992250947850144532588023378819536052012076054317942014737568377891743529509115118224748151485482972519532888054417816185763917170563196036925484195180508671978655919801937646604887073139690046409544731402409504531640025915022321206567151043116636481780446508093380475015462343747344095202300090175598736872627968884740384295217561352041467285563760670869568840955389601727315930748781818542653084427919651018534143616270088621042754468757526292539530975916708611858263040151283889880518682059028344674505236045534714182369127476065440081076355849666564587359359783293690879288514256531272406151506519751567468103882161492846726561021176902700692155774252304340325414938262134435145745762752888847550235117724600532126183507852266784265153960857998223715815548089822873503581786930763984595076262515401230220126741532461916533984833351434135788330209090320860367834949159761019622107246622150682030642041957892451993160460029268037854425096292930427130054784646848056795070249319367239138869052977305746252028069806941998038229063367061731606326423454164750544588038937003569636225641785866934077804867604121034377817335445566790056202391422881633546033419043106765946315509559951643172456278357029149360319412655623779610962204612336824499426533284177199432476423759410031128464935796173654006625697110976603500429719983962175691960477839430299236885506417080406341829707269393851109434016046583107084131824403371847962820238410956691549519002532370917368500855238187847903165235583441288826665808630036525456254955517947470972937352004256038952484736818258796895565312209384971176826847617106434489440349043781332045889546972610199306534277761820605793611177017742210015396126261430859697217250593516235753963700200377819610065676603256878217711126641980152237075087196077009122209343166417938272255254929883140114058776925569906324331614372564463861505223616116927194366132607082123717004369273795911994430999782897836384165023193216388728955900531082825993169977411545840502823015471073801912023169490887237821330524356866983060268606453317701233637914555465801430874148156815156410377854893703605195746922530830910317136848590686896039231679089808150182236197485973677843494477872762496909870981522832336774122299554560887824782471400743158168698853727662715382770150408579441613802896985152250437506147346632727005403737084618890286330170518750116225338388264800512111990773445756484817062888568471424355471359756914347168077579027104538454025178913795572108906010297236394670975435583426165954694797272457384916993218609933144380288182033321391204003341132815549725663133580389960339004605735460513387101891871422157641825266750289906714817325045280326008407537388523021993433196704297023456618972630730236666474277925263968285286206978425394920675131311241528994627204393159121760577176549160690431677313563811410094618027923467631364442447804254546900034218061806124063561643241748988441806629480647015822038983778542339281301082259627413456818818343948660900550151714372678377038181377991504573687791698598199835827160420443768940998909478246317614611994209225838950582796732940700034132466533119998127329372270473367792225800135829964313705359087426481204579078126468539518641110350631311256057376245106314245459052159430447631440765717948471094990565827700137522580640246324109286092082001227446763683352208790450879370651458986288702131026540457059075538635800496235429240800041099256776764846317546027183485927641954571851142856316498388051180984442553312396085150753188284531052667008867414351434604216279930131478530385461060666159916076908860422946538782381409465790944787673027042896036778023213547416396203391517716842015155999179703448883450976637060092692833654732740412595802517454079698847873792992752482229204851753176767452798989334946348126228120553192682330452448728143935885117772865818140084463861744900068872171287639812410215072382819157246803331540439173803366906189998243782908868137042547227321674990717344353175794128920365216798904182160885226309541417126762350673403727884609166342308906315956876988193456912260287624707801965123896846166612012743375083701933388401299237589149771004105630534297726556981277769093776121388134516185745576957731372379131022252286222154669054748825634720583041057474938046037309231446911550057057906962188449238221155600223503003713507286070576327542889399518093677035409028577855479806639705666051973920658062852458974900841423144400968117528960631405294163014515765575315594341571310824505945918574855614842089436830013842816752546527688158793657915821541096477062040978325557291255700989344817694812470245094228105695995569347801873891478991958026672479770228311146191696024919773066749145325000933231782058169036398135651218208614990064264660477804199921437963059042811922538389561411038730523382133084903755795985661118618871144795428903254207061024715525407287183910956741279034100543676500880385675674686097034680001863310417978561181599222476117037694796569146734905413827908950293522656435049327724634960852182786447244558077723179376899259497638405092940764711926453629624033945579900342552247191068500916977056039041226512728614443168724539694658011413526789206272892074145550562346666123226703643225596999543491547544950845149176285051218804852589604592326574633968568171896358217036892015157912768309472394377460161349727654916415595491444856953335962227626833719541970834945609953826295356550837894456399590579761161121176717635338803981457656085383356435782459534096218577422566581241700732430246550840690956018724871261486989767127930995686416148078255199667353221703559376053569794085781932337089941455752952988194965724118958089493793951343728496862077303685464163542579547281103077369665824608679474009681614963584076955868510937154903800291326840556183281305691035255442911400188768220853309306920967557629800688568180351439365838506587653048575945309487251969987270057625652483578339213380612382524314205807030679825521592338005914623963346242442387718865956549007048239524338522362521818071571872951574914130163354562211403386073961581226590378769292957722984253931647660317029951688286265304264816117372509091746366425507628568743302645404955496217149924687975513047576857318188533870500875559938232151139982944099568035080473410885733745113122883478814360265874016453721886629086629516425296568508991452881393899147754556372539288270355529034018081010688984401847693484774489942905035098191415984714624965993268402060675970238830645291698319185846346047324526833242170953316348522643342595882942618877071024290816592987526480527730192870399330727684261132561348562301044005851240525881144099249079377980338492098782545086495070323382154901294987328559201211446315818886807771677212693508686129032119705571895247223662868481386432502311085734215961258276757129085625881131708368992555855282741706974509225266148558814206160899010683793380425952500602392469548168191323483415976811958505413548534791855349754183849498873341338146616813000213824651700257004954870616481323665015289541785022619650953694744150833024936983776959875855876557504675961295845577410368932409283186482106919216288124246838208419275687654590287824400825746145108384099623456807150838301779875184780587471220359892232472259459548432514173929444600137722391278151017712442393845792960087632950323344886324825367787934947916894660708452039378603881660004547000922625306687604367035576967569563032175453232813101781476226317496487643178869872037438528887746392943319211134983418694813640389597771465036324543340285238961725872387314082917735859253914107482912160932699749398441623090549672336756171498659751637035967600590334245192014293030687181038787321378660402809964673772525008146244498631249825995499851893739911488890266342431792329975576047186029877618507441999011355856466226576853667517565941953687916142427387093463613797273293541690161510241477048319191646321480142260195688027331076854899970101830913562782585335427697228121262307906529602208734805013879519648846289021214797388527626394036866824729085120189293060975151388266030280990738392918940569121812208519766610393758986774514872911135841028345928265103317789109644637663810640944600017914132338866256325412605316390864090170971436554964550319898262231636161214157867229069341298178577627766399723855239908733392846325442927877469894020887366866276902808666102218245021365446550330405363039682619530035594324040296686068363536551268092739372776412430700211315995395616359702449087425334131892283765682507594754588743682610362169001975833771587959228593970405793208237407428103501252097173154410983501896952530405824313307196212876238467135842641437152545936872915179762378610348520736556757757300269194064062953131161132982968598188831363440193224871308313073327575919882883267747371395643921188190273128073868479192552652751038702320103448269854732507814281809803225480655376992475898460113505291626357009285657573554031055101760133578966738633309952475189545495442207180893159600693447454955241088466555002373451666669296994121310562103046726949217312816588921909141529423380849874230552516664923406876251110923568990149718573993537352937969537421111594317988398611013141742799797650301783565684123361997462213027449211508788826096107740029571414159566333902592430205640191667487840559672698566932762406869474785936761469707416523398143897256122221118939402256471366993146659897551870398007178862826799415361370682551929046153297332436309295838283434235243844089084876553543520932925852961943255262243363932351422890285589302239756099435706325236366782186379059189180995316323325464489553573832899547677874328980073797923950122395475133373476822222340886225599654810931425926017599674273237348369919519437042709375427286298133918951864666299680085859388252903158719120419681847751967755202292051965143783773773490266614223993851576422167865845296663998629538652776590472054080204093876927076109945367017490892923669869267740697827550554560177584445829364483259510371029151447102617360634991892600098181861933993249446554551637997258021873641154351839131137349962825058083727988417409847287755270963954431278029069534732751994152436523921933780413864712878650425326298730966378348636464582369069286671485724431132365105581205771111542586572439161764421984395852959404568280869397020284733397385542566676816077600924246760661962211454798680493173708152863680379712671118755917088527921070449417599319588687191131686052330085626261379844902009115786731302116562537587936475267701115585545179462927109873334531579818455093471273170937886649167642817302241761459469156009622523560280682510441917410617404060056622780535300830460233932827273604863199986491022056152069077147859935839556222975417531112874044905013606293203745649476326266412074986074712661533006925921940429547093332023241830380516007726383858405003413192956087467176187309367700360169973163375668946765303278854445877615910366112976115132022818778219396472480986142388216888108824045953834362078735964716292841203477317082879480547781446162624117571333082384362671022118520018163389780279573343210697237224699637992461931999355127431788926764060680776964859933093797652561066006904407699663422314467346933832144784926875383030405652600831260327780523100233847495556338582682017283871751372619375221232034443213834094653009623757764728787893188120765919381162785944980012351256019638412465019476028103914184826451158961457182774033817803658320736851074465658893278032324230598290155872406458592127459554156821368652884367195579461719447688464188898011044137144990387870749481862513627770672900688028512378649464322251687757686236507227868522077008585748477388071606944000089627666898829395195462160592060503854471731522914384992205072747292817251514802131631796647339977601797165538082090207674152391168265368549723480099768892593179720785975926473839882727913795696249065498731095720145048244232442077860205840018117508259907838290485974058171787401197930413819035955693674885207466558285202367583895818519230560025275469721815572822017862608318016867610958138778179510339420358123574238070221184533781416774652168116114578404934882647861620424321841420818221499670142909360832997400005077473092288054417219841407703107665971979863152597385023756268417230195114648446169519434593902913571131023409892144800739553125137845148540327408456089217387872181497272314698082202769925753677600982651916937225720353339110961648945059508062696291972879893902414007657796526822553480874877509006686705532293942508407139311749042275763167286177574436216437647664264817577659195167872784842347164582006659068038497056604764484906604232950936905600727516313429928362755735459100029156508997812699415242325763661282477775647032486030145033590196255854260158571157785429281944930856125841552782069746953673423263849783595971826650201629113918750780012731722910715642266392710521747128537363622368806691524093658592307755351897073431707268727289197431237848838108146747732958455720414926179048895305649551335333422605793971602151962327001361439844921920043764938636695507984206608189692838160934390039980330568344711537260198112064898848636512913164635152235801947743813620061053341795690732367865291877586753057202655498942751198512759378878332274276457891450979806360049351431253351815941774979760802154592246707441254648509731015757760285033736207738057785056036294742127243241667833271122245283690681993263908137067277423261966926916741755783830412861126007418029146835477809550880554932992721457844876181879721952231024373315875869998716288671800911084038145061504214894265383530767506301697753492059295803445630899381835869877670820203838985417744467243785898865590319104551784177695812326463538217347976973765192342711190494031638059256364178623643304615128453332669870577001779654299334778975603320107309702191144737573468735607544449783875744663426996005050282402718431060232201501776625954245063574460647535273334296235910894564831418712018243097948801907087258076884904353165697445636081048917152890885736454774975125518606868316072810882302247242553174716146913756432109780772140852103036626422597312410882337841176450643078537587162303093703967826506966964876986964006095872610388811790582730087932391535914865580195427722838881250862964463796282679053150642058111976855129201077349406103630520154808809932458352629665534884836889613425496218134768805687281132922103408536441852965456098962789331776765297079860174006275746892575047894055058059173352738712363052749941679353859792321498565086863498046774995757460518559724289602146062296671790862343480897721312879034014280414704653372103221454365481108471621693267057529447324474153541079825466122620371311633447008751770240080476948445993193587652063984632761533542871338429847388577657102749320030705690196137088740505845144784791563502835410987432732356493289875998977780025435458632627974927852666091185108484510484914465995522261262108798384344135874670624065682140078908957811790897061404681229993246181620278636523950246401609528710502526928373915171037838815282891424375426188640650780273329249310315966792151228088825453024583543873274840792808549288741178843409814405564679360089091066511532561491577225837958587851865767399024041948496238756583026028255141025494890011871023241869988421024165815431339689900934942334054956887296423655464178335525393945366335205730357488665313302115161457761370814981497193824880687039782073357784103427191621681459052967164508975540581511134082253285257233914688756720337563086391953679202893597832784507720645361346312236598473671939663297521617793213900686585776687716995757133755263353927391264287505911565624760943386471353891391291440057657421740720242587443643916694214124777133043463482704951419373965717480782868777739240587183867643301060255875811192599352923176064320739837615497112884630046552585489023605657554042695277599446593658680400927656148567225507488320127959186077985110314481866876354694407078744316151106489555331756510930018221159660305902839607952607743383001880272401897480033475917803556374312074082555175825312339209544406832466269652725969036142083193962064645415909588214571406634935750073694185825412465297146488006768056808195501911669425089686173071472141837041241539730725506799389850884012032621137335233642673131174827274396065064669294292051070514458534429311270837935903743239969957386779691779487597399887093767473758514232540060381387047228612390042497691635161472636594799501407779983765734382798074289185910061698432751279400122929165289756791707463310072818884929941515223075815952788449698051507503275791116482469872728936259519839044311707055477191156037528804720461724975374219204375788694600416426243605739196786763077759227372923105955081231565173992397366309138329298227606756817587162213773623407099764175921473526349916234938847417269571173150555039196556999092510432101045915289951523055467271897458622910379352653524925786291365922509599148197389100946209783870395870665894711237319532365675258656347283741014626433236385757932368853218964021792442106875249193534103499431189819580065957935836403856251821240398128400263860925760562539211532402580179886686456818126088832385618224507502997036026654380520424098256567630428474301866246028029368204983056574766883987204633677397351807651921232328556471064558604253513705328550840132292622363051933640843183374820467051791566879153405280982939353851062235393844059587438948338449453522050659238407694847013170329491062111494739918678830972647564501058989414703591677349877591964911750708915852769293738277535763631862861414948076732617115898866667734844096183977823124305512789925612394909742763605842313526187442909639203298106279237871518610166639164005755460858331145983159927230819560530625179175362988288746918004414827444400450803299959449061342486262786119195787441327256130948862852540362068404446787669185940698002723002471801336639582106017265717317983869213912147925995116880502225089557886358061032259909993698132520984399492634186885316644585285006012939684303070391049420322644737262926532305855148136498413914249751315581175438024342214122643347271827079063458892202707895920287729106737635093624802527516163766361399696436144353917486112937299635796085576080002065388254155434735498157992138485141277214108790082516916397922735898920102296583940873274561086225817675009926710686171082845358370967258409247193230981852690307740985940899754711097981196280557906015610441602429531059108488923152411216805266197482145301390336767735508210235489092037796696561606139268602385017329586434340589580761070661185118688036992470438171279985985484151751184128270970000296582778697748993462726996379488994379137215268765971844425931776684007661417007478021622088952437172546205068242010150013411856271683464595463860791142406032452119124692116566376278687000684521602083056724091770735384082632511886888635423842369278936824011793325710614980131352297454836975218775005373153122381828822365790267420349004279362214809759625438353691665963432805759562556572214903627490080114243792786129455434457357325185661756445361029836131204351746739644590651351595307754343123416421237121859485746947816006491085840143920426799571592738367038057953954852356187382929722982644715604845762161145191822274726460553084813567888819726989230853314885628903286160484273576147730712294738032637670206446914175564174179013115221737238529204840076428420069497105544392303589889328025572845009021312053405839933387689820730547886594827616250532401349631662978400018862764526594275101402973947035938062510082283414519679834919078589110326707598659197157981064259758209431027951025318282350725466406738485073830334142596780108125389564244222272223196328120709409849468996943250481099594223296175510456219467312241578984020719331284405890036069647921676630980840874851510238718168735621787011301566468161281746021062222325612550747897938202079933754939016182391420941207039426938445788791214280663986837828816482024472623088618211888156377930448153660080710598078959946730810893700044429921041988514263396099299795696730609496758225918640075918302196969822174800138137241030607678344913329684306892367643700230611027815745056568592906453670124431298119309213251868490946696186579408138676924427303226801899805502910637272709370578247004589387796475382718681996259765733816678151233752256886183788059099101038986315527202476970514575997575518433479805124447602847058306096386776880426805667072802313208813452191607110132530104900693476740057168915716710817724429584829526954058230673770679661431585923028425472336246309810612509241092304478830492256215373013526004702356136901215209633193725592652539667771230604493218921762996023975779941868011744858847872452586294946704802769920306743848894669244285824926192495318949572682575646130050545728231692659002100057252628038517108121389612683944029970330114791676393732981376441388592875387292057825003021833230162174109394233371125261247249312526793117271797436417090164288266447879280758663482380726622013461347635329161347248829675308437802331902400833924916477842411003738793732916373315473191900747948600153275422703145711653308556495243521407412294109029508700613920370601401883216010897290074273283888060164949852133779256750221736651222180209505235568494262268319675468868510320266968312604013458234948239400424598331273435234803565535341168254505322918692855436338233348079402999076417947091003413765901543264863715638138599273515781717726225726073753881380366207702468684929554142219320268079865528725058982938678749532260990719572627997393205131047988016379023298372083519414439735872525781971358743545392922255831121189878627494077121655613781519658269744316178095862970110852766454851770559205516373153704599533823843193052524284056100293926093620373264883693797758802302800701267217150672890660512894801794160692019555996750070445920040807537879885863614224980664500538461027917353426528175482872847789184799989515109941231523419688287542472849479037571389124657691847414608989474173094669326111564576650648115735391843386343085714050908961698340574737300210222373683241148477650398187777058564806446360491485808820593951798011470214866933400864276077175429381569793759634679395767608166393675123278672479733529474712568793837739354152667317126631668555650983127560203446036090561183299074302506091252281309538344578532055403008451483400568152867788962191038658449229407657266488817343796351783957047488494106245468759919578584210937502999726170124300378913819568715437705110103559092959509513719609448349752239631886481844125298145051354074248096521975209771261756186365482021445126795352590744693800571062929248042947873916446623600761378262777826858361428743676029455255001221412374539307725178895840588265310535836289064095291385522388737727186136797223988023203082348377223898708339647077871777436807516543879972392171125004289642622436509233108620261767096528690400236920826071788341526047887875587974170686614130492013564618864987706916181372628489307722610071004441648347146351275780637436432091406243101465581758344900618111737360646463601598501467046054402281881973020403339975655323175987020118624840138132405658533197288992577541096128898717539879842049307102203080399575524619010788042001444114468045184965588934534880339203861845477234015830622430550450360859339461609075633478334322187573754165719929289458207369559107924856984599387701851630319278854234951935750643217809710130087454601678225165250024648312547265585549470463567563651778858044874659602026266413959409974249199807525917171172157046203127780577583639662618743431172911844986403922108146581471865643948623190404616506199477857946845441989458905176944274500298820405753319632659250887491561442395806714030396354017028860985234441440652812905956348323890440516943745612652798124164379133144200889343556149591886100031048332165712549928355962718396952643637672206994709351183227429857915757172736433986710200987304949767351017701021056500729680749461198133250711372743105242983367761528841958893679337310412732756387068471661917261272257738834541248434859711848042365944390585112161276020727778595732739596144533145989558863983616226359244345932637381979800752870775401389043025380193214059349467025829581856571441240362128911279422146916981694451343737673436256451489705836273524138342387893309333114254536820896342677047369837248604082491277721114481491051330677118182359462239469184973264417408816689566565384905540530366978515348123223750715694405351074161341730148165532154261472346553838722242842901928996332619721612031531017190981291709263957202442396203582078211384682689876156334344676941158184049795193695729387897615102614003295962617297866564531594764363136127056729097724488710329060384194503951743526623386955692537553347961819337225291992300445718533837409832316300018115131593024064413634248566630991857299114795463353045819475804933056304846200116452086184335086747817407397527160758965498431411892950417397711561939161146652474332984789281432818449313801878774460791517620362861079620909538680633191990633292878120545240754029356054080492089335817070840772557016953908662347754777870275468052130911992710741974493590384912935775236583592960157121710450298586721918354192774445941901770111280830336788328740485605735027474211566821603644841153367157601870165843411872376565974240535950055348868396563649374332498103418124470814326709829906745815048593587573847954887097925911955453995263237456483602551731714205354081778346879721690332282069089938543706599068698301449185955683019821108368636651356945073512580218801083368201480465649795654478327246150752996716970645504711940609050454353288988743994166976460368421937722970306600600052007644149641285844288690323570096749138631815525803082595923364197095600458567406324970649939506621441195942408305818850332137336679059931867923089752627900099334504632280974884465838639743164426785035697642069683454747698153011698177213624847867140964232246273200382327485529208497151925018650777367195128465361353004517694363751874486423258395061709413073545037460233980572736698756809763151014414383838274586153075870427431663891157877315306352637448546746601030697902730662120587876740185423459972827091607070624380876600698007606072178677640611082947715428354128034825464865440113358415597507567624028155367757120845619719282633041374069749816972786869230987639126780438754677834265965626675879237790831383424292214756277869247065809015991115383647347523402080872248106373181932925071866037344635304621341254918131988489194145570988705237714504470398672225440136537637066944662901599886015498745808468096027663535141509338366624491551570429311653432915660003465391039260260469372940593117411058570164635063552329098827807291973328793052903983921385393554961677545680705610803614528126145266293338764811039388783244021223343328585851860230745656563612867886307161077235124147607306460977684436959486866811476599188845160069641457120617894402155809281959762103266817163516495937798056630982450121204118388449305585393092170077120205613219124048380557267279160722929498493891210532102432474137646993959938507870081599236926626768319032664468141300745593220391973653349241175361689079635457358418822875094905649920384453034164963269625908515746876146881787101378093840470894637576541757702606730614354269878044351308188133250675396091905233300122261525084836905934800653110279504069047901481599020348328708562147733639001521554777819821643867350296723268603800323909727022064345915649089457944807636456330267424268965508330058023760072423127441403086017223700176166884934782432535907816899877971643919709428359555190927011006298610754134732852283501484152197055613965779304907830208451745686652962343115611963045742760554464322448846807148429418526984656057401317509480898313328766667131427811035459648580130451295098123577692461194961060763437406873918703680478006116702747700341947417200097262787344807008808029121326786116030724274779762492338166013804505163886808091030221546467875059476900118278202303695876231588096632046428028518641242409035149836129011254165176820947250505993677126448368625710842661218213515516446306318201509646982939953698176390708046939228318348197146975459006118933429800598248619281804517533355225521212065728494181465357128735638542418302124940040316465445763742088365266197112673469460779813631048357766823219390074977043234794830268237305955253565193724487478291419552693311204028267281666492785207495040321467640121345866699757498140089700723015242059081162190486384292271744081795892552817833851127700308026777904702466446002758454368007155743758306247646165797667960377140034323046739991608916551222233881293371493891379751167147722108429249146680426657882671221993148368284876088815293904368852599606561305460854283488226188954902662318439021075632154112760902532881789815665461822709425271964150343876054877055196823987873452323537966603552775242869058612538557811568687506861712598053136760478598267523107866502991033210827929188144740605679325451011511446436690795576844172318386244030547775835377377911742947484999121117681244685723888120913555100079272928354647523394147991478550046415163634991974080175027927312182373712103918876190900686828677303413495487843090886197259465461975067481316903422766825042370565398550382847380955744072765077496977963013955909245618758111045936063640254058069093604869023099385976722942643221184993538844867520556949134369662348459297992282518362433691656073691391460354649749283551880910257303545860450843841933231333310869136937821906629913013965531088794404212698880212546107108906518410945189787073265319364957555368426555588659975956071002403169238833850721051845165484013170970071563228910147008204160201693176015337357483813305412209124242948864069034814104390453094320223348273080836758043637033220561406262339357844552192850314937928983266767057156641461708614735186332999106251504506829717341331986772837315147807446596150538703189587852707961959035835348819596119034763145497202765700314378563350733862360759380350484012627418542511286901106784250256781020051024851646707542368939162699120726780308319500243572891265423014567577371355203360954935551818860882374922844407279799421876193511840451193339496969677100326178017872339888368353421251251313865743704769756308989924978375529732354638116515098611995572039900929987018560805979100122108067261640757833082479347152165734699449061495708159767309293904578021969879701152844212327174339620608213380401802678585782109254688347065842292197809606592837744650908110419574227109715635896577108371176045235806820951011680485040993784853528845203311395418693940448594528632652677287531611595894202736961277842360168563625218897906873208471998427299955805406484266321071508630976069090672759291712497841373012373332216134758865405180971037455644281834935622579117557127005970267972805473456342613119687142548574404648951249962910152899602116335272132734580710978634876751704356039335190621574923850544583667897426196514284592916026651246949543644978091622408920231687708398095135971063038785640760364395797855187779504817525045738124900178045832837113318726774707181360709605458481309568326681826108009911356555762146554399128772100917040603863247182284473503314403832542276788345768296574493838061931253951267903580039951792672825175664061468380173738247089005092860891976087790791456195817434988980174369172982629180884492681615500169268584598011233449762101931106283307746657939737182795999644342020828790580052352402307010364126585851079577109049009704617651519446908876386384971440013468450488091390916174457675528776046111875391327136334030017118532212566852906706130787048506997435452804640205460615897296640367226227266267120095542543756644536850035269239396676509994497481537970900432594289791425819135918628226893077847229213417520036025913908604920774871587903145073306120552855191987533133126793489185118697312446866815309563928701703239333507963540160131062088447731043160981178402467080001597506491577140736313268218730339010574423336903128656692694743080016695312527585149872632599741715596315621945528280822425574673038616099783397816993329947833175301295359341446882874102867959796492386147609271780925164187769310204182086951998433646765733400303825681715167871913287019118336729186880208780405954308485349648286262420780163400163045064589736568729739263546870016111385592154584605217389678437125583324288905497038456442478415900692530459314501115778990864158102664466290570015095563412275673781311536182857686873841982865736224846293515090085498568477086876628605872130753002998819119335274052469746854588752206513567923699846273335385934326926277735826493670786030692658387103639373225165044174119071416096636037646367233941601276916917868042505605379867773230238568204207169035560505573733455262323139062778273048262699946222949264309072859136416862206163327716334087394992014431332287370923894452736010611822040366959265914677067551395015652315412085573881782920929568981285344200949933738896913168944053307433525870279586004955207840047094338544680743425909462607216099862066850581634886975813784850292252135115958432141539546731444614132022044864965633193518395438850772783019863377931363604894122618486860665239820318450136681212483248507992351548897531208058476236867427369534406433311142066695363947600416803023430082645244213282424916459222777984665595700677078552141091791133757649629496267222564942643027378937998914758879207685913919243682580803233250863951431111553476181279223590770249892610088390989433131223409393867517248657067601636466707255024293650100961262821262938590163164007266358611556541406840083559530041106599984342888756175647793009813041120849622287047276453962527758680498866205214397064545903113382696412184526813300889869407892673406505636809938781793867656225530879016326475667446372370544061401110924700153054511153836057757536697019297301039083394388469444804261615568281267490405116692561081424305443233743768788078569203456715329538943982555316163313187646137412544584310270931379500691333541973166970763123522645451154103345517286590027530570313252837921988914995068998521715092473316342877733605565159411347519761761808656648275813574124488201461735568419233183090322309620335355136635168423509634176625445944999881580495596487514833583938650953994081023068121653462858650273805342757146576465260172102980037989230480897823689858296177724188488666401564249041381357026006643922902900891984109620626067766940413371360207535743475998456828275160679331415244190352060146886750856968872101376846326941745480117617571963296749848877368064534492839404865393794181151079364672571045423619173023839446316628276093623144347264005946278680913926198304451187505401864066316441774008652522490603868025097777904419590294046860732094085009909990389168683765901007881489437708309058131910520159448095172528335332579496591383842553836789156301099974561818952909202995444107269860604376763601239987021522424627709474397178318334515109785784326885571053641113343376337792102449558960506709886613132354974473651070836764741319808700422451285101278655934435678915239090565649593126928339631103067938038536873439440402241157877549101356019168763377958973631872887777404356864071672789180337009085537687861365350421163303789060368570911239909657323224898832171574750350179484685991376651976820642025971347857126025773905911383775419697132872021006569489487026320671487869014378521637757490007187746138533547194584185040451699200566934076272713267222968736599434197279217462699305274285779089216413370106999655370568277809013952634552919730801578680466998405071938257757980020973005129410993137998791661078747630157382143037028246356302186956122958438384951686755274940269698576308453977738528862463703765138812669340420386768104445604594306708445376247454377829885435520417059117741145169806865094046819570614584426709255463609204637037249502141591819777076621653389179402323694530915373514862664114635956524627728124851192764464063361487826245023555402437137301138345948977067164079195964415982703061180048114791367475868017816057372953139444504706448457640593430794158168462326279372600791863405070855745696513166407648555508747131462435559335514263441863797966822695622344856037423839811735159890240365387453265631276168576202054519351490093494794563554686622998641702279236349789671123784031537613976627315885877463909192789197831810298701972479363682337426962769230325268802205231589801889945050264271925963998287145728891453973660811273863436515323564412287884473933358308719301819116887828470545143992394112118152805783467428265282105315611704614389007007751005067550412549496731662440845794223726623399608344212911976397922985194360187384224821117839220523082789170431421784785359471466358292543241092790440682758228514094954799850105776102889234553053125810061792627341417361904307390443070582162845293303009461421432583329839344531303049312802944853748517988911941557658038914653688665077257598618761737673171675253123916446136917139408574638923601621897413002579123821323337315332979745630681681079430024920456779621031293562157431905444760975820137702922822703260396101737552289586706736739629156204781523576627999918805200352576890810558022540540723965293595787194429861334053073540481739081458739118570253385414738261289183625258164698060241904323178020768041881210075787153331160477573584871039236731011379359721630486010133344947783822698211241669926679429573208438878213424175526657811411964794395200070966496330161122708807284841700091343119730182857551138392059270201621492552479129086608631082582438519983375632773637869532895306154503396599892417329877741186601203318174465012287661666853707515851686317511826190532502628904660000167062848648607840752132288446696275380949242341432261363195079476836987735328462713759401797422100157019469582938457403237973824550141262690534027514273796690181191403693474212839986175286787403128521233631717476659440160910765485680715579288379161544755872053494128584026085068400496144118130239143251863711887495091075695462501459006651990257141327855030297185632283133696898880785758890447245258741066232173904440374408468321865462610805897432611276999535104784818687388803853694757285915940026781569717113780989475659930070799598874503412475932290972396025295169322680760254921747457802631838057623990948233640489646054718613137978003946063026351769642350350861909970605432056741406121976626713183668317558518342080466634515355121204389928947188087877947122406905690783695004128752680702209336406662165000170936097874050959269341134435823591388436732292345844135998152288373284193256881822578068344455058000024607220632292813229442815659350890605642038098467768590604454259070303476964500846100726428974336942092072009930901505642086469918666094578760585296925931010672820493315475238010691279226793627536056732489807783768567296857603990195772802868892903806966976190223666205991147217203018742749481747877858953702980004584773286512079630129497439701604864037170395282824241070485862373745841987652480604747071135929600859852005922593892876568581389604812537575483755282532790550068838658980932303108425399464904534939308197386646921594253975093513653835621038311681281504481245863877354934555701616733491312622857480034884810748561377510459123672577457596027324949588467106297473149040651337480405218188622641743447549797586639857141685562194832994111570759798657024071053975969643079890247199174318937562998106187848465894748311902938567215881024201573932640107279985274836414168978554019354354729382032432159659627933756611660772852742677065436745674738955255114611398571299587963136705141412133722827472746801632697563413915702897958942408004798697997302142075188315022335402835936428904867741658738313599990591987735239493891514384899968176932331761150406336835506227627726682002876405430358869799354123564140342613909940012234704385337609509778079433787237327184978857954469457190758221275700359472812034935513797854930934538443810370667605918679865818645344438859945384568263663353983747820841561238755242187961983257669585966559403637061090128562372799027006846514047876712194894229415422628714239679897330645450066679921943293471556942885589681434271092762131502393527932102452456765549843873253048509327226710146962836167191805003087740901235235097132020200647884395626620242764149720971689204117174477135842532458343751187258557159666658618361544950786662181457865471166040788247824232451724505170655387897682175687733221354122795236923425612721258153490299869550234078880119549368081733583256338863819440077608895612076561149137084676801569184686021788893475711712288910070282912833978928008369128573464683941746610447466597745305122486068829619169548239521085476745175074983777890604978528124360584734186932218539579456328522478958997862253165100718018063829777478295475582561613415512000246035422348242554609025830278375331176692003312403271028466093269403037442715866317238055696635601797607770682557977981591238981511600108886486424300792818737771006155538787625259277490551800158345814312336981145465538703366086408810404631767551268670915158137013770307576422127071234597220089886846738168630059120761044702669160274296259267202843665292277770991539492927220309858749694813659547784004091480675319556261572958394980884462305340248670973490514866971421553914573493856857101872269518827057572074546226289903787729262847736468378935819081327286069038098657282535837971088114311419435736738981300992774781256924987948254918196296432058757795029336712797446405821041947218430999319005700641766889813847665203029400646110143405240226680745241567058810953270794812161347396988968058770667359001582615992127658319272429515745638226914969909760773745312147581163491622419856993957891587373084865854253109979316540705837193899019569377000987806071370397611011474264835274296171450972750160707127461206103407537024556043505972338754069689175246139881711261037469267142094119108736086485013951029568415457490632814839827912598380486999298428508679455818859288651203887962935537746910485406685436465877944596815022991909541148648074372949932208480389081725219667252309796667086641653059790240546284529858131238447794308295108353957047645447139147148533123289944033445473180931818403034419886885271693664718066197908112604714380902029708774020404750257101705379231523877443158324161457958396286633321551535467866860637011831759014316248056944329514089930162507433220470512542870930390258663437806563826161644104999946914597268654637888390410541789942022596409009250290437305103160332343931757273465219313176521369992112414113829009678567619586271715723618469822319878927841022973215611534488865227042558751066211545623039820167222884503271699871122998759797958794575716468251746247713898942409410117807407828467789727847478578673683555975601828497697579812526634000826459976069014641191542347680670236229757757119836899838146292635932539576324322895206177537856039325912699172266005108901422553917682731216174381660430677918573774752818702183837035270666350266208613757012818219504870357257485735166341096201256994973973618786188533984958937705086777379557860148482201562115474328850751981185855495154494597409395757377758412525485627143424980106357621115951819126035777277220462791583587989067131994904148905206374739207219094606900184710744939191988132674296104447593065727086048924445299584405754071600413132041385142230539280193212146520958179926316188221256109581707179563524287431450666946944751459206909989876867132762133963466572319740535241194113680173231900192624647758989276173032194911850810252984063063570993803085151137417465221139194516231672323909783004597078906628251336733831735248249324289826247102432580704236164918360935793381522337253764596702107798012063755280655506954512862540796065793455391233676080864311987063811949068406707527774385774191837701312496623048991949068352303944189358006154759511263081519964028432589258744520131523594074919107393558959154142151910977980197805879434156933015187126154862047882785347822980699098717990321073338160639026522306713733175318322658437514865682654277300795353757457802177696421916480224030518350053428126401689989086909054431290846332291922496008304282505647847203302826431145808634893150297242421286858900994570895600061560835916800981275446178333624649606306819070059444054761235902296414147745136118614974887234833269324626410388024808526652322910661351368274035721234730255479252935682142257786798977471885870173465682804147791704944793304887525055893947559730933260191655948293672661205220442880433770718909859139133296123321727211265187848624571552564144593021062750361670566571679037239972549606162788717849984469054500009223483402677684949607033449292982151604500431843395876600346190116927694209268248491225994904090192772666963925060958367894277906963891083233923871471687550931568664128407218003233987726111492757790066722099627137281458661263371037420068050445555509032379651712622627974831846027169758325915443295048590525693632245374735808430832811570197344227890567140068226032200782698620942408445731965034486946830649221093804691086629143200756353744121264545602612149026201786275121148143166421190778504648652578751935615679065567728883936526890643070701694111267983037735310735784555361273367545732751317982247818970032599432314250940994105927721493673960270531006119076069331509659926683498179503804245260781650630142632482610485813619067970381620619857178028347964614104048702470163101740809687535750695159901402330525792966443623662120992601525117253063758571642225610581001752763444307793312000535056614506578945974879551106284830230962754344968899246081655524892001743336945367428185211339897570742429933293803660993719867423855777756684120499841106734700905281072993478751656302854575040606666337844281419331281615371719060280132575671912204380924252553777160541095591960711184403812035957067863010653530138281202917079840589976895176059805968370956147456694393578750988140562045663465977961629330861067014522447028454591837040441834297387898684287620038027090834455384121205962020993340018168644582912148885667124715110555628125169258306373177192810757638725415661483900200140429834878980381864748760869041767919417216944672475136263135468010551615127535704050709209869604260660003899209370486708908095567073787076527351215426682715395878006109686752313692240403010600575252532242242254767706197978588052183108723752240027534903303927371431924568918602594955421342827255544050039772639868421121958003162759358028152277164853031237645403934190624804276983619098701179345718553375415186406327443951051119335886173861435745839803712711246300693162638402106587151019416683976985478586542429123821819480011719941749925896988151367526565566934118055527302554307960680459986678420766091094272748584185828189318892918140699184022962950394799599051684036459097283813178740858097376511473387247971542662748342792886464899786505664551756891620558018043657682908165556556563889426804213568215375778823629277161796407004728316441499501420287639168981840828173684060914725157580945803467901520414444420984937739833782054886347479437229613103988085859754262088330160315120701648757126076212860207755306378274050284021154772180756591142246247440931305115363296901527046352322380289647578293015508027433807838966123593183151034819389944374549994661988936508757175511774364999188075404802185291966802060827523332959698774042593126255302354277762423618373755992746090396611216946361938045317434829303090209815484147540352651818717776816441266848531703885712617290336179396535268962396062140408088606867529845767561566500559844210576356359719087620669354809020813793888923978364308378195734317765766798661455984103740480269588645542139780569439828396960811128194469117999798325420820615934928662134255603310449311721457820565296840214612992882002790948351392152663248481772724506959545104572165250960908191123686786031177055620933518630452406816459126565027901616169435035677106039632784144182618062492214691843650156652467717487160961747704848461226490456576662041182240488146785564248482899046915188786666488457450704857797884305902260721895129354480139161045039932851390017646894042592666171749031800389234596573764400028514358681739357037106178468885643204811284199981027732130212958933282703430183799433217383373923440902458148491301956012943411314517585171281097896126922054444144732180789883603257147924765835494522308723762203790043690552372813216690594038779823299749541952127012210456544282087242611724039711292276954084683972494237108496725235619293596491222672567952107755646403197210142340655051599448063150242610850577634345965403287733096026392280826376994538652936484503205732892276615227536333521687127279970085547936137650748013983984680612917910102042667957417616214037729742143379701054513462335022470076725904827416788783216381715539648784728151700241328400361917329513295239584387760292271361078262893965283837127517431609154776480393423796074408073600560489420735003197844136548522514702019695530900285173642874395188995692516881782182078416859566206635180564896099982193780907677335403299019881834376900070836058590556737892504324289008670375894392169701435100167911932141552383034522748945354468971252348438823860475463182827092568932351134581064724772904832729275508157932777915169622155930271023226764695106261501873846252926499376211808190089213425701985895206892374613578038931684072383334963728272886136223222012486646067400666341197549939661518859750308811513202823509273880719451683704907301825053998984417649339079536840630305817297571563866920000390287950671945555715851341435175860327596103500258822541340552988523912404509453920615999174434844531484012770767934457286484536234935601412241059660381367413427707595795171982531346431304082759756553695706978151862720258876329898625128583895186255013949610961007037351992760202162851185727124646533006616673656552513312700143101681904340621921712819421812707546224177412359122247709070566743264874669148521046357449968789230460406152749001306707445421888993695237748209448264268700365964648866867231953279924408636514997212309752403635479153158893591898244606656176817379828020046829173306775688087043604036234615970422625187368118654701919831030133739794637750419738929240834561914828179600663464221061319218833373177582639179242430596171563146098687639458804260808527607766509113276896268182228838715608515228377130217940285419678101473038160737576088501461565856771495941151371128907110339566430620177917739195671947189576747793755049859779867391888388714536972740171843789351644636473044446487895755093521315536928666895574920104490781106443279543714082653291277713121802524562464360844545195615341839789452368730133227545206167326309115824004271675550938073718907600654483543404277480106758753734175998106401640391387003768040944607606395878014172048541380990419919296823071567860426602458235070258961422002388138786871176949902470113499090673378213339418357160280951580193761070580901841321563522624634401141960387369177301634215007349487643761659080447902711122268996853891202455341180024666356942106439860480467857724714639532527361489268912794917220814929360960886535852149528229146444855314387550993688556630982274937264391140652464114144493319543327514283736843202463377911873938226580602510730726510056156913466903242920338467137673774368881087789171569663803808075162283034012487526122643820881913044204373565159254170786921906787611729478110234804506617491428714581776064371332357423590560796989146656810363435126571109713417104203109355910992627488921002526832360589690866548914292919602044837352736376960776012151010881899300867989756606137861396993068990203592667487184584481063343468787171644658820250542509140537343422251891815866100933363773817668708341112121933861548494736794734124830648997423794377102330801003854934927091757363596705411781347260047970651598786122378069994686078377569652879804618811006588226122512409401008162838355123568599858208340956467908070733978831330749919499879692522183120863831301249115410702631189119133866491816669224857671362563350399848212644291419475641352267092676652089529009620732519249082205306620141231080084173705471534551205368022878747321962095777722458742369427321096184858040298834069521174713174859970310436359309484187141834799162592638997880603772027419530579628943865919045999464300323736809854390421697938985292781170917822450146352744580004326705117569696798387465862461841612244644720091781164200009564184720642393193908459880661613881896280516311297253971846536684397784193251165265079390236227668739978606547081946649510494870208108822900273278989351203287651380535736413955566287808850164274288595874065312433169728746798506827267616870863524351762155130346259778413770542908738965874164447101047789004957449297474202733793196651286563459471402399650553336862542612075938104651193343586563194536580537677619805662106171201861584573830755183614406792181008855578896598288463405625403422815286926307774122733169415551961882912342185467560689301852658956084334006559573538221630920027166802009543593458203897153156887247780805551606499986196447827908519400059362439209330068977877149075697771733436234545368738561622914629547831946777364935769578000114223740178661276947531080586848690002206422310287898164032274818285857156909909737481873162746851759358109201857858297227232015500829313771138244260211732156410136210244035607462646705753535219766536015457725253351942507619258988004821750492140867662946945912507754129835370116308242512331045409072337998636685645129039581258720314247312125541271281538353979280712394837551023125760099465463441224852155630207577020503136631969348012505044326950064473268993547958374602167284013312395839442645948257014147893670162542125535980920003671266447098442592743955250859301598120353014626838621443492184193865992748833218472085011411075825759799571540500847467518265265328873423555247814463334224392090186873088210728662955338554425334449678393875095603435493129975113677307500851228693589812460670115875986100857104312739183394294441527013849407714915712125459960379695155356035989503228954975899051651457875769351084013231016728343420417811945420232686064155994660063516393521084441873341924207390337266009826480999423627814830531957371554379893054581240010132380371082303007697853904222537695493768258573143869918289724023681696484819220227172958284796017530515986343207499959169544189347412143527442742142494330691217079163760486750732640755338944279886246473313742262864551820483655794544490650036718173566394207347096767044186961843844938991503281080270357450633322047627651156800288689657292168670238901924745120281000043396666990291606308540537710122200708396617812297108612276804399579671085125092273938372402289507537949370224469887423026809485799895850599155170554129928233063712527117015875317399684773277518114941500400362041606692372804880600068814494910001930961809103897897043120931440251834775751401083166680573565711443871551049244029435957639031118125828968732773137677168548186430431371593171822250992259289777744682037019613937826186165135102925614964986431845318173360492965256168435574236928564588508668969062940083881337190605422319940924271294846919561274581559845858862405371895094972403245651820110641031080270760027294976228182637289045526010275960699694966983498163053996175580311300426743318828524438732742205864106119185918905222084599009111802520105743556550239670542664050239163352926073705705670234668593903531182109421729002420286512947039908806568712940800936103951557658174090635141793419082569123697763659425508730814495322770002498005332729268249381237160117541393691735813569700074115931870165059736610312169508666273279681120044955590004650291491994716892701244839837670676622689315696115629665092380103520795880964939866166565185720073240033114556249511496929848949371101288636284804423916627035719439353420920295505534891365001421506515855699852957828252556007451691257369606047997757544446283749521091132821019564425243812030815867127416345441117365206538639413827446803850950595804018154512376247684673864211708305542332714632120233645021401751108873523151267991424547083472491914740005391449156516521839090349437347658955616932140594373767109085550577278390841041077065788824869294121162271989187021348426192114176249941208948993580821820526608321465694905215625493684628343130401454769324077175832994621763603205411361369255630320456312805536509516440373429182568194508840698865934370154590175775063800744915919247802956369843741900366274266217375123261816276134096422979961196068415751755480412209891918085209408842310972171426545213472879034603011873127393619784025364353199585307429568058059717091044744740502371877837638990400679527267646794497911782298329421657728074757690961858522735996995843692075886477577863179534829710556902867656274810035295375157570288832600692123805916604481143139388013217830166484831265551835087706858389084485846429084072785962766211319535955743255129723272798327998556392255058840738470454209686922034715845404230885219725419909584743487454617903756385607069077716562698809221853836903138481815718849367603905022703549798463067493458741034174302293312613398862204127580598361162664074289179867094852152483101331784753815245459540444249339268445422800168351752036063203695553875569152223574675827359969290032807810773017112571738433599970587058168805211255390396921159018930630507733889322418069859373345687672237039168549439923647522991921983247179498748215929152284805312169536462507253407892825684346258061257107854534429721310061260692904211245117439075326338936351805158028551585228018354720307043639488047457728791286291987855229139761625597170429477100286447740757399216535523699964434253343163908126971087474551798895738842900714293020655887294501559526222594630333633774885848574141287751745869674251983028555131377386711734074255579947002270765091597309031791940444210428082855959092653204741534183843035502376501363903051384233205598412376409599076280429918353320797968854698329307486919152269276276627601158849830312650931201642840466378947265992173291441019124646372083055831599681497461070173755323154683905875032597878164902392812430114551533266432098598304477717490912776197852007294096797371171324087594949610149298387426486306026003786938514730404480628509661404450037803568761989058109782331566913856811656702761109983700618860983230614735562992926292541066721500552872514795221153011249841348436607094421106201892106059475296930542846508287088021278179078044079268238716201141528545206667537596891098374451511953514777191779096866273614341315138516203469412169554294284914245109439628218868713434274187467632403883547306597627844034541865531375150831241121065607100140521316219297296570683243026028005123150011427111441535810784856644439309113135547020763050644151906365005030818280288536224667724101405072498170441717459401116880852000991371540471196972440860279853446853372658747375137999084654033711759297132766286827920572616351737113483539275569384602857090652769130136480560940733891524593527104219167838725991391193913966559007576452667416370815215663723941670336670970785286836744560493404241054441698583756774305785644131899295641325404474420389945543134363096345936745305423525551860658341773376883930271276814147899886602204987995328833522702475970060087003486237251340498669891842278459160352178495495832037463101909701618138025749840366770030791272820229645308498657626551014552820782884777882996080404057725969146554376729577340471353937473213479589948115714842073358928966701589808516072330024904743705899105768790857918271492492579705012657069792850190889422525916417578842553233943966058846276410162892328666747696733823893628607348928435957978066250568082995743113719132850834824966985161634231641141467570714491298564813162426771791687596037539989868379061114696659369599762850340387800696952898594221707269250525772733167349266363835981516986254103659409679413794046019998125748852073048436884826560336662733849615284817104907729601360660453801630913070029883460205369701369729332902069802902971044272962971604641308883600259501061265598745956665790938717357533531085996063246611223385419092503915148529495106817424201355547271139692620467184021536496817602763273299250972085922830535992892915134274586345527334546133405599366257823438588890148828425566041608330395114611933956006822316896176677261218185294694270656741961067911916163717967579895780231508300861350919625081859087452922944632659756699813322364144889384434611439064387406552674146481036006538452106662437793138351090064064903725068826415075130634191944835458238167493866226833122553776304894402702496214099549000962703328293108680495716541093789604082022863082082565838084446542949194131668098781186407496765396175211537194485738684002629071001650414779432614511036567124900299602179042848060393247495070460204284196666183006341797580565084706129154595069086910494690811125107150271335587026429904934395183718959592812635788558023678328274696945194051178628804661466325222581836787356431914599079363118688572843225754994360716906369486977702537205852127210583954327289298309952578268773143815796973049332606007099832786737823188294293853606594433922543089236320926324130810375331911454166450566078581631645746565463657345662629787625955607555237871777742973062142679434044239882358120698015703343872175017230178734494370757324742760095328958326058744273275623072100904143398603079938641666427140669374201190751923270899533334996993164863768187526923906383864145706240849322573959464400771632591115496978078861180706889870956574477209133291262156817906577226915816691001275116700664191652923117978118984298320632272139935441830238220658653457969256929492927765549662974874690219103476638351270558855938928477389416392651594233448399539964827955114914661468691694352119277253283275001354478229166628022483617876828340133031484442079632774122711786603721150711755290745191539100197265484979692143915237968272239595338637623574693720260603682298379819983268236989483247185402246071537888268765264181071433979836660153884254963055165151817875398840357173980714464029991378826501440182002087965572939772828250926479085495684139693958397968781465936709173205834763178327577292639497891024510186532941171063423418327723909767023251840594262839068192247516458521906296970571885960620224368617813973029995176359856892712579013873105149675216629592947492848734065231118104177039658498324428814225600465048942054757669369350344182669600563580198705365118020579089319172302429156436757971226408566989859097944384894260759328807558039437279202649508506407635491852333022935088994586130302330387188399933916592843244232096226525501670172587679814442885079235123058603100206575370071862679756161122206112907664299789612134547603242888922322409676931976915448546968523077599119970024700189312733337665999824377960287254720930469074428576544473852579902113538495492495035550068343284708614734136100787070584128244171898917458489726545075830549475388718788064255687651968576770649388385371712159300160625215503706981375290973908922892291516801592664817520503143101451657414679659863185752895365497706682914180568921671867233511141115236315675368789440592584230643638768232545649210133457211265974374345658681311994952352013759766010700125990893664895431060686584825693184632620877244558395104232591923368535612707932226574793847770454408193609047997421643242662889698946276178500992642942490535240423991009567497315130182663192262949841232490487347555215709841250660517782951052130968279505019221542975219685964448752151822130024500273843635662447962740913325029154738154692560493578367141557675533643021512679095923100216698167291831442393988914117931555345633873483565094974851376025524906966678369298576005273548082421338323454142144648437467025980449005247777616921278851002366515899778350029517052777295354253895899370240267016292217463228276001864240813612164928674353505665978157260640820983971228629652794860975435555197552667697381506438117560612962745632138618867853356513176706844157886181673435912359073144260578346040877641918475706361312553913757060240477379319321292203691157460842256699388538340643364006340243786073634118594284762934343024760599969221850968465175281564208269450157168283312498670810498656749372570424150494308493549602455353692467116093772176831676558263811706956061288709239248178360633495215592456036954785973550794492851812751166398056578504822622855512888297500318034847887108950281055112956156502686387605466768588726545984149621648239176190076779439581564121251850414739217511376247013124602901993989903587440658400012562696028939027674749951000658583351427849698320601904860518736599849782404713211447371578149436961156113049083043356766999971496161785168086789808206658317256428290714018985594271331053877740076683336300816790721612055562614175964930451796891346386494618882946775393778213055281802613620426259279427681102657146332267392997759792497900977867387640919023788360056879908779854037484238404949340336547709013282882641383297309217722803553959850383525523785829082254871727526326144503223718508702652788076433825669104029115653899191267696208900116164534813911432161800068179591413423099114287083067775242874640337542866182643119614792089951712006517535921134991512150566728640512420374011824206605287445020311760725325559867361390500505375581402430986006439852279872146198784626598638927627784596932707737412034229221430486216002532108105055151959386469692614512421327376583736891625596763370591990701947750268595199289269230897544692319766287620469143679715722680057632221385076054446444776022089526393512609941952552734860208508875233494465338232178768105412928680965148793058559271976793377580732696424299844596575919109860462604022658740372120589409309919841380652670003943949786061342233969986768099119223479827530985150841904605193000143626000410665157870123781190577396703394417989877743072216733223185608074295322977377830458007776735932756890590125290791198835230111111279427991536501277528936574514221245426485174632995439486705240125542538400998370896939626429591518676711597362941697601064687514935992317493830982899898752248442722383606462212808206769044012432711110686142872789855171904511176006326458865690410961268563717939309472840503359596499581899811728387153593623923423607531372627871794381688308192009198306584777974147040038602207252633277723884816599715737731092067068191244318196008857016396941943551788544623105053082172667186757093245881185534715941579778383049407962055910032462698227556731560272364756113451494161053284144951106859363387411472881653559629424042526601395476566991425429689569515905003980389115080895993645649709741923373704977843299320523712645064720418917270554600105176631961694311610842054777055766209538231147649342026122120046409786354022322624665165808947426298639975741128830781747958957967119659926985670882808826995321410500113160886362325505220264315111065858909798356605023414047256732880805166577236924757972096183733493674310162443094853018846038976952526498509840661091197866083855766990345385963861375557770036207933008981028887250922638325462439214909218090552764444798784267741113279307545978313439871387714483887911539205324396700414222087377423306660136795226217893782695928119419391331521867172857871450109976657975243898198285997819557152416644429346881038511082275819779519524213228016482563729858052997842632242439742199862165127869449597309919379996935074270376114755774619273154157526054018898917349800626111281055788787377277418744002560984242924398125800181691110449619435883598845100173255970939273543995937711385514034367812473745972356648699743650833676166602454624936539438706778119118977936840749425252192317386703241521739322041588106998669014531060931338944687612654413787084365641355538267427546089020630880010462059039719574749187915883628166856367128528189569554127761330651772340933318919758597107982510066702486776309663825898558210945983294950525550769013815658215652247246035429678007056097685481631313556926268119592969059019778210210879469675610679016053801686198596218073713221818204847726266272887035226396082918745570932367298875636326735893809671374075162746950957121494616543338583587963430580845129035252714797719733881838573295137526571933241073954933798778332420560286679494626710355905546200069054404817081506351940170771969341223431291723977006410744409714265719758011594153978161476120558702532924246466183669393864616268835123764180176813991494350132284346534678657929304732605531214019389965887833173572189550656977913186246058031189023600694471340172519983986438862360928399722440295086883694457313246120066320808596677847514192285958836226821075568719817993342172748028092196714619115210945375520925527797488229190360948572297346363297781063526683617841687716911007745535917935462016853438853337381336337340199509739903754815625761256688253273393681406032250177967112958180303331824865024078364752941267340448419503358448050014966206840267851992829075910714388143063271059790040554281191136015742517062122158834661087066532080569193141364431219276411846416472964622093243924615842721850186601057694718254251868981030216386012239660186503120017405541824271367769678486045413764610139223809615397158717859672323330892281586789768317692255510721770094539346970546475610951423792650434557872472126481875169292951606566226614047442017040746035409444675385657722240958891054698520263644177727501274013241448464232266428473115716233688087350456534748060431734295889061362605043358221582723010382227742029468918055249967757741515453991140797553954899513221479029476998584811924030403698290880175173467421138013572469925875829645217077857898683146090404039502116197304530988632221485070195725817069385250795852165369799956669043832002511483699273896499743056512400137572565877070991721807651077890780546489976087553897849782913134119629272267267195388020449012351694535671281841998953493840130831998951990657008067256524605305487000322583248825414665176706562323320382529795256674219370814904106805592488653288003927895101245900607029041587014517081528097251928112870528142713061610115491690439693907653402730409638500671431360345580074901080653043024775121949148580854846385815159621285235771068046395485503722869681754364634881373142173490549302911276055419666726240944484329444401751375585593974172900818212236484350879692856703228611802772309390322689440556096200255707410205730657131527096250272585216097330177964055504421308805782055816259193323052819133805637864780957752406782324936876944613901777424258101203203556048926065824529136549068734500542325254679521715750420106712943875458176963212094636479571891105035981783667828897122412821740198810114959650308313015429360369115899406902417269892463522782720825281391058651088495177519537287618503848171322507929305998039769720681432270970626402527568557723268018292791205523826082544660327034594966904271703839668007996850005384961803616043766472281046809029188574003897900629748420941174922515340101992944802463272118840587821901449464248347461107772787498937447917374486515204006352228543228279197297872539072214345077401217854315842777676270858961038153172653855743295758827611174032311090180611867884527536180149300521065676991296507502045824935719761464192553319753106582128680738582260872799069709726455857718238363754841972611233847159295692698238218307563898648284077463077113492802550489406999643458230132318035669815470725234741042831684631536147010350191753516869478879928124305305091879611103046243416836111715926247358193030045245483219187211450535760053908469292657547665242896556890354482607013968100986015384807035276119859640254296779684120678327352302750485094399913578473242196005263432740561967200443324835400943797551221081838120348568965264328363275008303071956469196180027736191421908217677666387435318278149642422281879475919337118403557857863799073476965784930612651185399817696277951989224369253695349075646069453925053768591914176726146279520031086005472806981157077964014655048878210259719374153594151164072251375458876778671651522432564419988061942193731739105965509652368393909861362493585162584143733991730071328815491013824118490656266829694725312325348275973180720593061926682917891172473421491762769375792998983054623229317247982965318773812397153532855880612621953058675949686089430199800930052177317143928208028426955528980388389378016678045004302678050768934723089305667778660063439224556320185368605216552139170664363456886970823986749371812969582126146248674014049685674208548856643971458292278968800180052318149228904168266171597532467761461686393382208849081037003150405989077205101940205235443700987946997548396128974912699868217783649416177575814985802693443514518026003457992670117832979986324125877588606558806692512318710793692368152180361941843579310538958851915786529774405215948053898727109783371375067789636264899231166042008569653582814586579967243679401240839069377881528890621827239321575602880430043966308448889850412242416244902693618865624119941040898705394924129696125992122051699011798571054913343281415967118949621538433428460358149476063841720259899935417064559802555995767243084810408384054801066743409385490857074662196781499743519558840511070996624380229397233274057650807905047030692431779472855738197410238234308590490918604357522912533321513908961863763329587014917405224790004383046302428998041295378960898229593232060129070887770542475877235432071428889785009787369848605844681788833477892404117075247143527407626353856079287397326974502869202455615255302159631065649732976715363533357092195251721799623193728010645712190433336095842968100168331621443541398097714787027150635915004165201694752692730208942976185729645654817912800014765004721192974736647325035688767705744509519651961219427811856024560768432654701122059583632593436001136781878749919395353876364442032767896195970075435778734498789407041602773595647274137302686896526241539062008897487309691598418420452569850277158524526851565124145243753061274774321121722856699447318749492404006562788500859861245206330613909609980302001115096074075225618903948664065517311459397325608124366044935600160426472573225987673455155621217984671235411309372228488834951985737758052903738483901159366463913927460814780370229561452719898800848762942586342569463213183242730136316836664114325242682785842872080928361735128501856228357830814183451610096347441868739942715699381453122331222324427505624725152858711221645089143326533912318290319889108606001536523619037214856022363416529661137289337318187118880601724384527915647718222439487014934649278677910071694642852303391519562813689238977059700051713869313823662877105442362534616130736765050265716253217470166509275061686177853464167749440221334598592840644696689606823567450107035718345182980983738102181472591904266662751850437223258336868884861154484989486947077018387491645715240882066043639741049278214990780416247365119019871140381613293404580822413677584217899045744903231521931224589340538317695952253900632799564354682507387109289732792757590060999698468285090433552160801721696787218962935069550484641072114729775312325069168851730681202189166418928066783447483243801720911744653973282789258766276854464480858063649226836783455512423586574550949439051705388193707870389856158652623873304168990147530139092855620788555689168999278579770502004125769473637508328127062251900810932106866635834735244835499759184014732192278524058818024568075620888995694704351895900590795468625300087532077311694841120971268998746228596523612751130045845955415119988386141367223776751048620010806990224216306404538318871520552698876712592629900055675458144026931771487361734103371261404741475665311673776516814246157786262805068682237878600692363336414237776657869501455275728116286281531087361814042090758228677969998937677182237514823675995156708028469611780926576492031361013285671232166897301768296125135475053251209606402584522143316971067872694953019358585474753096629447120518763713718591973481962099332036187561828437083187258883734056688360915702938594585519390269727740648182084249801694266091931428396507831034712269215975245507173624463637634211798028608585392397708741038782065059078262348735234445377494310200991593480046534062530463904404520205783399917815492011415921772349955036985288996175075145028399320804006444830710541990993747131315826548948941140639800961472490731105548052916249882692596854298166294622271816447250389338351478501951250243240138150215185889048341838074867621430237931017782927474784703609176396168420942644089302210862700707978484893305845879754431529752241696052233097743493499585644427423187900752994670112847447396404153349895096349946139975871504956257341195576828830038468808411914412656635281764938495268049809694226966669830797391068917147006891643447298580139006941709559025722675148619354747823382641345718520875795466483832845867776330723346225137308552643068582679693013886869140456172756492140177008799700943096520497783488965740079344335107279733093700840182926131137625776706806843803152104041286450910036566557367529252569360910334952003622629808195165500924629659911487655625641277181149093791818078772899637480348419812435556626284360281948711373756300807998349565497362535675752938524139290658609685971248451383812100148725986516593347371555339630039706120004497691001338079498690828790661858830920639202385945624258957570523070649636432835778529430283279156619126645433618390666644087276821189278811710058099345354094259194902663287785480677928552832119457362936421501184489270961519860540003786683599191847035465197030565889509123693534450302985540503878701607663266035645313656062977561337927611986010491928554065625503018810296072288527865547013814888779573795175077419513977465463874186826338220959409405608116465821719852187184891514222502758076932002866364730054495275657707238307524923342890643199806651528871541278243005096455694961486477641990631268122204361762064224847723532653799494814960448190447571493940416153184901725392652402067468070901345461130455771063726579609238686855448796159880738106591692642379739203354925154103749340875879640143247354887302284687666088606147815296922892110371421530256725018297358801838164738623848536279350233694281395316103897166385768103102811752588547515223207212861093653464051369024695537188117602515866852296622650206758555365557391938115928168628688185211476400686064899530310003097155139003145825178203597219109330811177101583451736886265388167330221284523686969111645984635908600725987034933101425003443392160060779241382460120220739239608623710483820531017132820296883574713775902959087644834198864061740337074077854305307173146221290372358586567081680255611222323615903058700576863441006376069925291621275569709422285464789966763123898613898039926488118014915646670918692126121985554695478004371041616674891251678985707014828036907142532673721687560291192282475717785643971500595865332007861444818528166342273530063060521208277432966885088419785748628705942619158787175923445200880922212295738285403219310464079187283867216950204363506013257391023192891267415767248761582603066979951641004343582059868843776534007469333382702185562455879449286365110501860940478828864463741382539068779870512137551378816907670364011774991438706833687282084119400941651760876168965523799013662416632895586802860275391055981909923601924782917411202039098386042977749679103928146616658149900131342231935512926616914897735490105642439326070450407518688903238034921517913376507699216627439668657566257911480708478556521428092463788876340106427129767226311043120776562711016448271212057853207355641477952018896562983638651103126294751346670577033354399954337072858709556076492413030876890865321047022541649171888557721893937662578492606297072866440794317454095400370128564936679105436228779852731987846785716544120337934411354099499968937640342596116029252531873189652428593354645082371621509197464761715913882253248519070893509259030530954266907698461185650497475038479618187500151011478581963463450529504313688716112169880542076057311752164130260461756260933211700502908961401636082585185005708839026935653331664363316503730042065663599956230271670477579261566811590394267186928134010615300905211949767009320669282129993756726568701514788218633353443142516081409571895015673611774296951123533326400253964816487754159944037664191288254686084656814795119378378579202675868113108621081773605350770481674669967086777797944318102418905713988260190689998447943804672831066954722928344924600945069529755689605677131996320010480051653628908200992218074602304274901031486855174238122443120037930833185203332436837091601551501397214815354635057012869670789539428985859503881396596931111329719807713828638470090436074312540754102062692250349835454181836667654358284211539722317504402793438940287209598240704748078268334832487994315903428955297218726050693587682411320511237665662528149865857803993466975654738145726967428547941264918005001983692571568444739549633775756451520676369601470763977789997638005569774659940787192877699183368079723509532636492240659463648535000982411162417454205874493407732679153612714871614334033011570820710356773474372175754384698210642559640366409141218299832450482164725830983240189420714259009646744569920108799265840864503860940961348769114125578150566009473911254984011662118842447070864280748715373443586405243205948913186532443817932515591528243022407286349141650246351219965103639655958746963143854651880665240588406450484122182328713474962736385888170956418640540341767512663265974425797731785253081658900797644502688453072423419749017718524139683833446429430985606160873430349599934162516107332639315945683970349648993443968609825119055422983594846591380380806237926212805119359283582207470172386697446510855648352905917825005512593758724593408510654297023896054153779668198847790783985996824807934959583363074492824307689503492095257464147950581888055282586173051925390630391238136325608546673598752868124561892545006525510748801803622390082003688403629771110121483254772725135457545242658295540436443151198780405779750228723181496042868913999547804357530799675689338779702313436670731159413471466063263925697123217572212435918874361310831198969597063963654983292357535875142752018689789124681229317033619835979021256693064673365920787248561057231462266121090740556803190958928766235457997581721104056269384301819394128140203863620187703811109095334018622791498222576222637448088397896676675179818843878994473510691888885902990921760868163364613842462170644421773736233405570079855159751495386184434213806591153109132229348784907260121553162168132995564459721393314400930718281711632362717292408145537333071255437472395788971338884078264887210183030092787067966482616036856587049125988486599162871937233954595374435004532542218065199281750264456338324068316848607883057467152874248692961115907049708124110936038365030870672597864737280338657413016600564026853006384594229037896756682081904198608001026389119103345914417499686927264398585311721242347890157986147595533819789928944117781720842560239676576021522000487265091694068627198132362890013522295605987044668709103201547432738415714487248446481001503182218664236118438236406668654496598218435460570834755428054316647390466052472861460238138573611197193675264363225138635562403399586158800340032875755218728560712979407596091647672293653138709273331920093640829920578423961306191744454890655955999806446120718241114010342179463396759826584641165251555184589116614452166384005798914592077882015699972623252610147250526822792797565833376767020826692232288409100774878009659737767004831078884832010828833460451107300604962118052543705450130786102428458169105162382141691824454911503177372274880223039160794928784585970435230869072802150554013364401912937547312802453131388160237477561982139345654018530882432444722227157333853004982530034337903475474216920133197303058890008227074231429472588086922228338641525240351982914127735037017291084419191001460839840426977622610886662033753521740873491745649880226426061850693320580703092472836057602173057063400863518650449589438438398739665442226801792511318597793360219226147763765282302351688875659436074869432998801747598472536598848699874648290966799326810358265886213110232860086472860731679510405010689339860723234203282847960311262903409474447886618076443549311327622443843130403068389154500671641998486107638041058285182374157451394932803095485918787247804193340582685703781045616945746741399679573754533190814766129148545794192092934955602938448108237241055954886802171798249548646550487623969837718766193561653315835534904250026506681826756733444559949171905305895218363897097286266972094565655726243810198144253127389308996622303868301929103732406250461846904350587588126056980944240965062120066330118942361602171886228665712593799207519573285420679921765571343621410508035894171895463067191146812484189173198594606375767500793378421604414245533141001837044896401577764368101285936605755245253654160129754978722635232215746164588386432847764816012406814032356029134451387540359834717631324980984428811105824880596516222195280259919276643021753367074752613498053573028703852090638552212039950789029938889797902097021747820989484841641987542600733638964420577098095132486982376932556138700524094635484957494398107703972354277940195950258103743663036937051589537954933970241027572752713438116799242966284137976754070688759643302574317806552431370916791120386929275759739651008030056156209526546256076432094284934591309743671198182938863252182986928822332074881162115152313218947405238899795135501481545031312944072692450279138388863084916918550978511128964298963752090826226849425297785741093023066359759377303204754990379680042675227951290924277167896537388136241763986416065546356245373339217719787674673832981923026510943700784570849477682899683560275234861633812836064026617950958861071958566145320343536867453859170086652203337422109366104879090013171237406551054855298315766705217202035791927298944716592987304613635249964154084854528289345602253461604008626494060073184710518495061604964409776982597937865569268512745740627790748442010245743536051802247424242240461639659936589975617521459253344975497242028146827415249177252341366169152288007995509759303244389359963932055676043078236035287917796401592740633072490016592105624547973220538804406012870188310587005730581930449187831260669305417352924192420646219687721731978465452686055903693948934007549244490739172808367197080713653691393207172142024901127390232719466578197552843882586943825056606216315756729818773638638566163496792428886405370949747569323461449426476814225586255713761028454685425730744910972054112901459157523670370028102861182450809964376583392433464321100759159338747752905315692044150014326407535780733377211772656055357535642763376560907786658511219144102838265427510411979218239186338827115666940327780236178476434123551923893475224561112822267579081715952189836812672561019995742625807472228041658525881079058017139611998294823864923731834615839458501431951061334156212956908782173104214938600648585048345428218992664193123855439570378270977661531411196832596520119298922215771832647620380750878486065229259203923096344828384916932001586467310778329302221532255514709957077504146204615082938971772451472294950208456564165457223642113224212126561618279894199210051224715898229363650643112962305266516472942587449145198579137672768351110117822596724881343536433669594303714662187689630953759307973686692008326899488582917387803468357249960655125094789628484547637897734484961792454680002139268597844178388958630951927165161834146485149795400748888951352355388838789473749882589952926829493611658381001654793777374123062384455980539758565431011547926875581150215352432082096124226813045935664987625889362021292934859447073887552232082592296124857507242940155625903890596961041428267180784296607431078642287752601446750001963643886438366858707598378308415232099050212066271894854880202019440772040402471919916597501991729637992466028875720978397235774399814292597494631976938215827480699606936901268153789845981778464037822215839720508884224513798948107096644319434858095111267624916551897717647340775228410244713898829896427802286119804921210713069300426584435018726695052948330094653848319200196677826951424720796959695726228288390403072129239593865296095338204229264384970660233009381813957321356312547016268303431932305359385296971534652250259905698681240142167886308728047011014859511894525215734563553403807393321613370399183774577217331716872981664579881501623157999229226061529390458810406973263821717207237867938572007887063744987350304864346142923585624718876492221902282193345253845586512098478936250689682999684897851783890415059001094976423564051873904353204320747283427248141838867176747035657223719253622949828127556805460571853449520832334352343772854432564902468595486026016627499387112354878111086436955230299879826309074096964168366171213030106383133715327082473250554823616985395322903715956256016349762337058896976341514118013913371451982195326155201673824181743747739584867121928102258613493894031165880478133234318183918024095595965685918599791595753697304629168180012812597692308509755229763249021047618191282738990017085457461022654569708798306367628441371835469059942690993611510689330814887831283507977036331876561662432484346882601412392423698614220476006079073691744858283995380328610722392107001241976738065677092587527470159950171137974403044870733914865962141799945974591387044018743842791552592263639767968502726681309972038521035761735142478395436909683970493070681829662360930441119529800553300217750034820583752933037049168466246481425501853757229886418082624184359420911276574743233644012159478002107436533970731609139850121940265167210092966524188508943576737070992665352931508692762167787968729072873492622099634168536997975001770133546976758414857069145765428437980612857372750923777428253656579940449650395832108100516655693472003797553752476988983317115465673048382134045167783632681034109421739366140115635261538228460500451730895172783335239927081035500186408824044724223463501578398095712450316240521176420118144240316485257137613563633141091608674915545200057530103761359956726260059618306541969007369518635863433913385319958668658222954738589929693939387471317563090334792855637745189829948412796661294384794170677024961725942138769458516006581673252009040056246423392260324979273332309547079553801179999858264539769598277894711718125462025784235521777018471379784513156550619072471708040568030752251792501289554550521242759755221949694106516457692196868929583069712679604961540399457931916026742442189144412351136857356881102090543164886996348022154428973787869674438457694536016764002519268218872532096541137046809008395678833127576304937846259999720690348298740073083920031450436473775137829694156500870219948639787241489552016916062700803918884238027335186684427810389608116018032582752010941685140463238814503412154837158696810351229831263519882778833178432120250862534890111227207427854578911865438516527414948113519778622876172008789980551660006421730166838236765385161305955615192717357881671550529173457054288077392147038609491929198835987098863558646526340413836587101343405821929189468940736922290659603592399242682074648197881434795665834798419323273576318925853747139257149585234712792442032269370562733472935361523309048458330175066439063293759757328714716874827051127645643930236795271258714932423755037247261822339982959865858843419858480844051269679505293520086125274889133284901726314652042433487083265900050503009171401811074674139359626130118951019644160023963940078156087115687377160659398019307406729608754976676822549539754061145510814258994898354605683835883067170908625383233082646693868526696974503720387847481385486630123930574369585593875357477953622201310745398728497723448197174721349660890890130101132975547905942796218420444862126424923580395346615927298399255196795130240522476087402185473197678338853771299793927607370989625469484737192631908078819030764990723728180034921532630910851026794055249845108828677479413236060575345015215695665430949182202944562356672736041252453926972092970162427199580512923503192886111675992364138783343063512194298082531481064354653886005888144806141308989183689344275314966357051936468769122395558630416574724065693569403704497947190451607023610531988570349322267916306780414492488577218426018998868212335224640144816774510125531406852950045146686000204371492056980323142960027664957783080537210358865323837173401739028008910568705539156528765559964775614531424843427537451895712787657186479318415697113236907185007180991458638827297326849484150502897706318268278881849722637207356032973105316174969344149735278562129346970823557678789981312624780041944354095547537726444050840574018478102195269640278000447289590632294063020943835106175366535267502063306564972205107435939602054723431317198409330364419908713778423328427870256551268693579858760638606618731922805674022744948818085979785372731630679652901434699980412812606504105272296392369025987657632443450028453531996669580630455793397719961119054972092364106174275774646212552992945707441598616526927181235459654729722161744052140993115010886239854617357298637187316728520312673474557893381671319767628141712886145800582103011714328350587956121060605261412076703280217832534727691723245096969077056801953122363216116753158764045866043910313271334618459788176836814448277800001746900802044339164416386071304294048803850017820051100449097168744020012292611430676540824354019221207510614626846143823660520744397242404330371476580732219028328963388584625732585195105343036642163262374002771368401654546104590049335620784499190055857424434136691857655520819346000041620131984086029102416333203104756500793730842480040051995537842758638641869807340914279717971632130423244246302677380351236218385785333288838570613539393748288283424433274779960315427097990501745422943374083912529627627739256998038802649673488137575260653448132345291022646459104319634115950139826819290541788472605270501091773306748209269249200131090349640063453519361586595603730900740531749105557793507290509885183152308698143835468883407795548631217438461701591270107117106670682711896458554838670362115071310709090418111916017498485068029187235479292948896404351103399292823311472124455201547486055252253425680214703621167585540329137068896399560571577871519250637495932801696001656078863789725315665996591131576677102419686147294949062444077881031166542721814747950635674015192556156421026305454032637056409664580695236068678869917482667991374562684843810644894357882678651482129754010917998420489967999370309585013142288503868432791468202845339972915441471154563549387000911443982644669882866875405821927995164218885935144483804075312490853045095158355875089396621772534871858178974262158835342393286067958948625853698472188219719450338240192202069939356501955508972203898107121724418630737551197327760470496647621248587243675518251391689051014046216643574819553438667337141858674820967989078283087659424345792691179221855354409368084093059275625673731572841520211899750075042517692128287726031773959656139609089740752079199744776873555536124114630728967955330911404080401394986332152878279845779043585363300606201115569336319732535336144320112557880572799746503726296867099386456745010720551272301890173374693202004490046424615433913806657745190956498277281104546253981740056584455987201634072244859485850087876864766515036711525974567489802629360132176091055500195183923400805730011280984379603900867246110924758621937881808045505728195449647506824054017416459225275611215799303547403617652734748352960646676992263324909090836489560799688108026660867803519165316150402133175520486371793038816721383193393314660898730602710033078452621016645302624414616037803980222534387193899759230624177101943605412018509793616950599713521405632867271963108044828285699353050775200914319134766184864897208347304504272332512774085105334921241732690647603135909457612672604418030565655570143568363713373452708121544135885719356379119648459075166286012327078308694977046850855996043541592920157101075072081351600053990438657298965870551600264944847163043019614650811609157741250206670968466657619244477761674875317553258617752776826930575657372745827205199353786298831393455076464702785600096652601192924470575606535230411445216711041432022128359381921372893737853587863691478377871980474804830102436167744736383532573193938829931032818543548737053937406639011185665022208693796703351629049039955568432068703124943345440441475212857130209935715388908710664253941756369019794328142945351652882675780013925873316915746263872643751134088891602565915802413093495402159346325484404173206191825309614628597300086119904841076373153122957533504207168139130357147507172200305127535891124768846554828292524101034059261811273160214172816565948521248660831577436444239657514640636551150049338884061950376835912629492034824637508942702503098608105810896277907005293316774039962376970320178156063106177541790068453758995052566504841281501463357460473423115633975552517267043785742163826970711947921235668981960679768018742855702130460758476048816594071310795228878282358445926803852946548825033310317250625515277040785015302343188427028757018736804695537374634165140355642951574350751262060728669807894253944001844497116082724098838035717994418648306490086104957836553221090510007080018271184951661098707833830016131488321755522610467353965152890323811669494410437528696172956016157868004499080458273791038926586562154676066827160473351766983212008410919766020483315153269789626038231000622278883431038962324723553665027386920195594042172191348940434402807246796304858624172244177953506543694515165372035190222351267627226683025893790856120192164711350367474931647116535500610839178678160197065214340009098107054136795381353692144181715579322290434947792022608685260425492772149593668043509412206838189635487998673167562224916598627446576133135100587924172638602788133476744031682082319503592126028740498318058679856120025076751077203203429538440211431431625264490306477918845619697394207317156309966884745099620892069704876965148210638138238471174296359188754996628296264797926536515550353859304912194892365519551318718403792832604811768407744954804674451109277525931918560565898959729134646244205863353884954070444346789312844070664497971790033822543112071657328956965679822955719140061070947433572788798227252753210104536427239731150520143770876119071339304119231273537114068725669783127112392779354225964244052595818337411582223774211036485198658196201895634359119269620776501724514071423196598182778848165221973133937034364013819550934601993771815559817414603846909040881722767737585168783650147582979733469930014202862197609016899434263372772216492126289151253841871332294301649077807366618423636334810555804256104284908456515902670353227463324185566669634573342753472572240974362869220610834435618573611608338521787320480014899819615267317540887860774865675702766261239425226800009295941232092954184008992666990720613919219574529892162801282149772031292545419912385607971664569376832087327331680250951068572111632189681099823679956336561382505359523551332941232328342329627240265791858736575372115713088408556155308333492350397100806468810155123272834380231326037552600312034835030617084188351312868572320871467602649311486641887938525425597575393819301737109492798782394821831481425018187529752659930857810434822873204984878456814029881235916722743370326164646544259908567033657184329814295280271009376821623343522390201369116373545774863360952121227562258307188143019855112244577879765256882730736528508493611227486439301262514856969296900392428066958423527449701263385698968477296826742965944118340688025832879883096986451777997867119119550572969832812101105781280310424801351742009998161074430433497611724338697538527121647434916673746488239167797171057585463594799217623167366129434539284990957705971627694158857283012467264914968239086961430799125204442282451707766771133735637760943340943062732262799457514602636518473374478528445137069766316622746519696469955316176283612409457533154224876447119960716403067037576794644251306328826808507366480461439850131400567714821496817818147813988172105800204102793250658674012748742273113827144637780658753816975423706727950769815768462093875168409226292300988057725450035618478537414330276929966052577298678267199314530783090483814612532055055430070802172536987287744675070005523027360434550951911774616337946621132600661174383056095111861418138025696039918206303329597336720827089626770691073331413148266244838161964813915213346658273413468564072578679190673837242853168282491567929962916499630378906740266132535514220114531574550075564827830011815417966632989248883057016039270695309118398312048550520905700489496713074659574835114242920306415563259003546351208930488800535900515339196845760702749511788972437000327601506824434809655831183855573269118072424451609050748888006479180469080213515876575234412088756659705485059833658446448282822920391319818394144398249947537990825046905214756965263068201330445315298968578516521163469973223864595706583806536974597995812541784239549612768621804464642128330179491065807809220294282929767488600878578067671521180687503359911282268284940196373112343425719509302951319990583219692107426788967821010971495715923727647242203839889337143948964579908932798375219912124319792546759197647509912788377209918359001195147452098254292534019847953218710474395584398112252424258212621793786177921330198429862849751677782243995706861949137945296596824852178439407228637435662889043202594521355482832190687799636734802935983166682339554816401936698808144370365707106713746899700273814463999394683149106012148857718054760408697541783114511961670714127165086693222229349756317347122606661802960922376944645836435700698355973285869536443439358196180973932780991841835435669446947309739331938748346928281655397954948838551231637314384579089052932634993882082463592132795508858500480201893875846876020437084680114128997882350852220100347104410629979844354792365157366059420527069543765605498387143824657473126451704734962834369375686536970569613713852847590974631024951994782108839633598510881873251352247683576545810072485086088764456422397579428148224020571835983954575121373073907347221097625632070447011053965751869577958245999950638913535350949522123262802929464025289183767894665676194826620629424467991327483330311551109493642922693938291060399320547011899005117280308159454180101481990985855887565685634388335619958533534421810622917289852026607476423713612001938508706372608860463890402864823684906414079807622970455177435426547174792609008797687493832280812795341958973459582403026242145292831901664261919498162721301632204861377918970316366427146457689605924159134068891555470070182487098764056941291348805793803921638285290864506691773140661471186343329034833494132351970353637843785281097110940672460445630142678508555014296367125540768169322510260298090891681662290736568990332729932508240531424171276131435031651960144295708245234960904039397283785038381314153212561046582296310967314315649177287102127694655374759081314538929997663437506527442681220307193847789997454399583998530935262250730654166263027086298257292089170176269045658958906470044030690549610645498372883105309835470675107255114273929205408958770937031635182118239822548474677469309144428979060263191243757404588497015901773207981261873209665613818313355653050046527521812648747922163717172952067087128494842850037722785493238554491029930467056416889846746674693870256936379033496027374976799196868278824760908660999888055756879952731427417005851380506920051833693053722765399372529211516760817923806356896546985149336684594153210875533983192287053804120516830635767559877017272218624391659261082310803477833215223045130957253557335694100194412819007452123363998479162197630114271124107063261033586681478849763508137618261287718447782038444016823989279344929980247718412964969523677481183419104978799245242745094371267185015393762051723883264318131103899800633691967761810294946002704521099656686279460363613971918864157918095803533795273945395277225565769605184279094882058023398314289316550994937426931191581958088574368636519435912095072303558228748765549893028823199254234875687715309946064213102681692215897827280274592437367507892490092554197665107893221218774531893087820542169915752120496981943507840747635593545576780701778828051424512809567083950150504880893287868172217416327237046099161199402297389257786309756896646036391174058877483005387993763248801841526303452472779474510579938584804078490538731543754238625646050421102405210138255350790407522408251484284352653841996197013692578832166474631952104942735794793182153858939050558523238880361702651294595059151804768152195767520665209786679551193617872083317461892659159832116811593181161966211391909344863371498858181232951448842291072589655967324160085748481882737525447756874704487994487044101029300617771910240098389285850301876391838160704724770791290465912887720464884394656453099384182962827283098278692174019533313652614473491121882093357221803999716761778026628790286825515006011196325529697002180656341487499559457721108655340715939905081202147359610584920702127421598270871299909363292783158454797887172609632952383247077709667298179477412572525699453192835556093023510333463192901204928556723574201088209916747360604122223709743541491181148990483000855222558440327449802571864812179557988173592464368759149665885550168059044261898977423215225075517527993720462309178587026364655933308608654584435691976917343569424094200861577830458745017909097875618545852603972920010304402000187566045488746125533694076435600045141350980100312904059400347570858626868819589882277275255587086561500232871637287791327419889355838266635865503038300213952724776032681317032120134442926340881911085517685046794103581966879021453682064667036906467746831396385998765098845310983900281447957618455319143745418148583296631121410310551331020521562863971371652530917803280233437234249110060555641587942552576583232513539002005089860799014743447954204435163411188239317189421104869111305906615802436533393430547960883842129961206871840754138030920242239018258831761719793248776053526565929360550032812362166183141578743558836077392532564619935998945840175220082885437986569074203742530433851793817856998668485563787278532562452527072407255791250654434227548020271281416107000201388556260834121714063456829843872935328758374407595783646927030990143101341560661697044383451542402657649024923792732665023851386672157456010087199214248327551633398343188712612387056333037341083268588249925453958109989173436260461619945980903209090989576702949169237014449053559341542968219653196539203016935392886698275149986846029835698659476133706281283899581651666573987876981129500063073478066199413202046618260785144681147697790408500423667456989441448957623642899560213908095129808298526288380963434292956721552824188986390480926679404430239332930902941231755508129340003168042193906234407334153083516222928094825124096793034969223459614175480025139874419392067620276214767465554043069143379016109242554519040052896809173559969729233487989898565853208711203827699546982702934996948294011462519299382169449666084912880167264161760527386336727738466319514866409369745238472957932427622635437834084769690961330443405598820506519708979682224513246998229824407074795763203233778226213150173674412044308915507158883606697319043788542763845908715178803483662665629876692149121395049425514753301011170663314036178747107857649856326024003920752051777516043614264593895494171962310536276038260641445024943138300844967435132463292407022669759268035992404367008643932013361293795408171069608082194812856940661650000765028096001908573749215095573280075182603690578484332747950270000166265888392384379631118385879969446967846989936718883306983979942773520756231824041025951589405416901717911786356253388004345275242458775282735687697031557924456350789543562580941623252656242373040953929958879045853924919451325288821458840747731335470732883539829407673585312437683070836246509377457743491219934308693031751505379297530673892830558173891306602327782039607352873748351815186278331419635844266847912144247235204687355620369839951636073545027325138545092834266447870612289192821265282334724544248940249895572408725143498581654677477495476073798803222180998057751478596768943958159738458540437714390583271095421274452885200347866424090847296511241697295829288835254454055930559168136614366781286156825711664631117003989251563359139938450525919850242699687451963389780823353422020183877084644991928986544054323223058819932397305103281035936480294671958226738088497825552516383285476688415332595659688986661144709130543445236063362764598953466654511721288176684585953630804247060742002289350125649294239980531776972719097401670689980266779017648227288413116454766238081507255640204414639037445538218012714823009475645188776445503228537053261932130212406280137513203120664825577896354011252043738245304062205636169101280311401691629916233748149360674348037477588821989358953903411044123657812345720820104650272905084095835877110768431001698285300462015790805257656397693752420412585368422117259387364467570869347359459945423690444414026626472436372590429988650547433162030183936511593997788424924218214412716662253221529428933182441200405803196003646603776285521919032353504575971448882534960178021647966433330294230374274273450787388687382391818460281613345287736178789209207006148957399480653256179674995768825979790185258227191037610688509653233668612741599314250136318222885790504787562643226245837310472394455972087143958845730899509201152872876574011400199809098070575063248002828466274616663175715778738804753990892722043262479218480769420206964421932976731215480865873766845652391478506985581362799011249273739128780710193668617232352197010643614879144337129843827473319633445528289352929294438284757898449577358053724655753680248680343929829537119532857699231955904172608302128405533083304108030264847464627511267024228130380963579609515132181269087494430197113026953843719143642194317011688629384062662981007228479185541039132677104406780007878021964653427122356452860779604825968890993911211930874768352850049927882307373010993801885938788387554976719345360984775036988450819737027446312157132870359250874761986500112017875836878949644931011256358206940439704730325997949016851369911793162532758695066283791863169620959728200870582748406276727711760847320245752646935441982854676122024868491993397503768534625733470335693384882626625824621839657994344598310163350419449698177963201187990015568684732508029758122137172719906170397120078106848123881068513674150137355398749967713688151632192790642068627568075308136361967056096969792191451095435786242402070601632425642370679636788512377754996386604733967881136262330590795760488762599974743405097541879917874007177582439992233874750723268570414911374291285310777307439861030194009924448159382317754000772637848690794627317145386576457879317590629178347115152945221465206061446468995636158511009530220371247810231911311278781463966937582743055282191591957178723681849390160949966482424309169431427012970433773844008139453595181802758141042387995320938675982739089334092545638406573768527148030445327251361928437228694559585993392127847341142291837879366300132547548240593700255224041018049978530463049087923407319121285108974527444919058743242021997540508403573015878151407976048835721526508168087823095247834093033234758514387615692861540245318390939112736799934388319847090544842741335289463389871008985259954230527401920540059916854070318103558875059569246127701523741531659717966522812347008380691526403436917193714319697601667402507519911262427337742439205636952401858788024036195018986153144438561426372464750556553325042975596098762108887025937345735255977998194306450511744111671390595825106085902411448861202206694194968403216551792794695922413265020674598163438656870998656296652519155668055287311038834812869634868075721494068132059457372808045528194885351217605777706927831436722437468638793608368208100659397620611512967902757090081024476049918285955596749935800266682486891131909087011354283637380867841838650066040038092642123923501372830096020029489255056169094774497211306789578791872625623135881018394719422919552128302018120378672847197257003343821739062860867482580224309658419597545354760794404847621922563655675891891520827299182059000171424129149620397422630149509076465370236170076887690216853221538050237808784346788384646968525886738995202677878569408475257266650209125622190777994287162720672654940049246130682923310218396677635462464305323950485620507486020371529566912057546435287892368737932963900321803033837096651684982202116095794570345145698446390234336152885195403729467242284301318955593415712641979623523100491881372797067602162631303575009175004202853885415101984800800192862585429289171225498286316440578578769899987828529131985091392513698235037078796545665449597969565025139242687024606873936015216943622450024880672754739722882199096028152002981675833275061552296219945799228737257153258053879550793889639361538356226160780669627949348625892382881590985425514431823616756439932832661910117458708244430947429566133196408260710550716604997105954932615044158699512736989182841427472762477921542546783917838617495381951334454596765262426841343725540157388671515490116257683042875866929179314585180780939971171638752683930442802965422573393172377519048151731719043952518683571788991768562708075889017166760522288488087240086803571824609090767951098264849241228449226991963601080494282908965574057956589922121276614474238283377590318590058215596487864370895085759663072728859519656576624375767555458743341361504654945440488239969568247376135264556814118677057030539266231059355908776657860780935775510344603593008850538233546091521001204642619585385474599349566354315505344707943404511091044206937156782768056860396994406474648563770708497028609463238334057948933004601403229583206483095874900107034372517134311308426018511198795832864948425501098818711145263594669327329981423656412726011279769091616421274545225577417900923883115431550372811702201264567851479355580465543368726846342554266638967815009535748444377436793977940282934046842578475230272901777694809707226501869728664590879655225368616985110803727906329105340934598629817773221188051658977445588823420638205882119322750577675247823785609633184238694142271706107705754510672868110275022885855276708765283318592768795134830201813555736608487033105556680093214975118057601352907912226128167568276299078897588497843967107588778032552960041163597151250262618083152655418241582746366179597615662190118302221384696328620883392698841884724093255204428758376486739825177618519976458281677262568907418776869883040203615094007673599583747128813298340870037826026368780993952005165409691997721852030698862141466369278210145427837727816362591525017335142316560971324638073579914523638080649034978844086413804617607241180021609021188638623430377953724389369010837597033745915091575695003448096016432290223020829702043947963376521833637975519891279260446976700381609985502331170962137176846462133819876759873555135168824308596314014549948551548782560285684100549308679974683842706196605813885947593400269411727992976721704593682247768431814503514058973579838488802559264944481032054903504255142417867279207991363367730740453878063073381913817017256798926311439177386681617725095098065795649236521172361389871411705029989412621695082726604564490123683967353755478660407141604353956962833038810366161282215627539713156588729698355461451567205327774573901725192389714313102647415563621879030017033384612226822979304952687608426861714116688128181467563842948380128483240460730204358890934970200637915504853631404906534502729394051894973152653036404251061853186952548104964610284063930328078869343677737980604172610289919944416601542646268128786394919991199125059989926781699340928755664218572123907384432476534995085637637942323320773479589633363550218458035514777158017483713377047515281490686140350183232668360510567180223819849411887273335330095925592023296950691755840605437708464121742134656733380186245401395445001166263953402088544366832906795643787958627169275941080706916641637331147989011754857563292940730064980848881647527957371368212538431299884615271239688463060180474542424622689977501836278161509001639930352018349636076719325078872185770582266088018698163674622549787576582308685478723771083607129128110667918381916065030394024249867157249232947770682503862725071579043393808176964564700077242947279012684770627565032475943669244295943414326068845389373394117927511552570808654750730399839564841741507760836677623752014627113770923638062916004629940871233518629121917550749495363475227775707199764886969858284359966032947894777772250597699606143266071388789172976182473475244772363729421859390065246156006283839887673927022303844914654115680392009424457948576967388416393022520249694832267764791934118912357190443002121412145219033504921032322495155311391218860873946000773899334251483827794925927225448584236785730865165038241748981172030769615380218112798762973152124067442084134425657476459198219930640604956296427515738662508388058951199249333576477918924226738530174448555863922586049354330738261684341040889992631771872955015984656865465302427279960955685781687901263145998125056811704602957125261979489157175804407444942014877528053969450160257707435128367247939885772450070713571335378442578074693219508984317899401699161802121951385802933420290153576718508131222834418171472993828146737135186084607228527902483737119792596295442853493891943383575501628091126434306258947409465638490176626996721467486652094977588492069457104264762928539602181808589336719851436255461927563310610303920307112246049609072785160821012457960810970101163197174431152963340100240700646760395325660503230631769339419548582425175692295423008427925823805827213600174564026899088701506289545711257529099963064994032756372329430071499269799730117735143716796963608054850452207263338995744854568228277991887111241858285290441605276635190119371905377233650483569065974877097878230853745720528938772724283468374399285053103898441393316122525035785889648317363578953524453541977451257059990021083058676998158307509459966946671314679763421643572119685257794383763990997860435623520562137686955634137014005812150314445049940453319308592720216516675872556984007531712306369105162002997467830606591392427350794767042642055304834690352069528392100059534598761801940887060928714172917140254304154378931278166423732376689768977244568900610782562715746317852407171143194775252970564052653217367313915983825425915538787374350216446904532253215969101284110129508600923657529388160447962687998618010462414885200257009532261713688259806078342246648110581214456501653094960053699783353047687780132523398893689074226144838556500936415231467843575512312654056365573220226209799746409864062341297076374559133725332995442580249024279019309789239404699232691495029535770547762198378005658910612321822191890554084976070287276930061339194282567795193662092397905958269268065964986105100461627295607935815653374960446351129457432931389759376887006502565310834628593604900321161571317870078550889586375113242274793127782140848989565922230916736264689487607462726110715615604062037237650967625238763251710760799564511364120982394873183919684981255474306912975821714009855882122751139350157589550014377906239199692429726557305516967734354179743142629977931521594741365612368892036244816419322979580302333251603996833611238604502694593094957576428288242820983869605151243133339291518631299563163446958752882350579177039912319950616124301618624178448797567581673328031050329502463585238176031701060740390805359785720676730727510235585094520841960515388724897063429875940265711843972586355785307382547502073383724466790481367949242439123944775270930892972159883318247288193607890486132948798379923195994411245085464659501323396071411762992139944610205494535703523510476651967767468229756824143948838558460084840389851736727427912915666131513064672074885651224411725796849427125817342023482809193574638242698675524256406317731658012119908523950807712996254705953696594275900384853472008419739122326722867258129224890295878169667853665846096530516116143502504998043593899812873267765161986646938557749984807829150860056942008075109234073748798187894458842332467313580248742002679598511949374361949530844866052356602257530795527826939236874171300326115688260579429275223598021480665896230601048634621862702024961240279014971560114530376708279873479132310245416005926790774098712836195194630962103102751862192184157124362094321271750451680522061944257225568087768345655211725884514771608616368571623522123589595420261003716962940513694452318068303675567226999177727601877235047715767967920902019048604255100135094537815552352120737149205647263765783564492579750314436109281221318109128890270100015312451349994135245885424141375957915998852759138171356173039701754482403755692717858338653665872136173014623703148110505720553548985779254420224494824564212969100677479978226462203237544681387494983234279009822752589157939939937907669329901414592442260570469605510867798162277578324268693335180007094155359655393558036219608714915829447630129228146630006737576158648324692176729712572664401969917223535602045376981221120598899478380912091343507647515978956130256946777827763588325918626651198091490892501835498861146922141081060600047130079076797145054830926830197104696805715149715790574955886755776002184213547330960523499715649661053718297096873194825902903993449482026084298021918136347786812767811436362667857401778197942703604117795602975819681799292645569897303847553361797569687958251103292507545561135890931120347382423060142794358156686871930595378540909541346149605817827931221121362174933403494184129768428996851807157615622444057262431243529454338603925640046251344791564038421037684026889917200388789315897033900588730431607947558682784414603182144395364896184693169226833709873057453281399017281778962290242890813015186197943390959031165305872712455204981088806695250170495056102736286097429117790231005171844923345624173191306849034440456652565382488671223617479265917918911509444349492499987063825504459842869947125217635224310092577767383219121281418524847239724627774216456766258291383750971068928291986289704558597564097140987884195778040735740999827404830001326094217626663937573761719676358451705548836024687247048329754962592048183885602477910455910643929160827328507901758390192497132023335836443095863412779844924694621023691877326642698770485085799895566896106759485997310679086588380206342942376003141905304892322873329980930039135613240453224452310901103265421213834429231471585339662402064180075363488857763887737932474006207246474427516006527938048063868689120823222059741631482736392316340386533777851223602860648653167816343598056058863938904029284398093547721853260852746140377616520089184796661007226783751916681878014203987598509445083910148369587909197585621396821686323293834088028065109255135863004322670034279080972199669771401410188636307454851104748452919831448820947635804296099037297246963615327877114513840674993771686761678076161346387778413201317225557387622424419782308174868526642201094377365506846743790611433025585085254764157548430068633515431527574881963777837306565256299029793139429391142382558174619711183882965433177572508098868971548014454905591527756961355566579724871737462739645805930452295520992482912305637612372185028881806649664835998676119295172371458223187761630315632741529242537038029358519958419044268566296977754921785882828892894710306250534871774583108469641680867324870339312809628083404292279431027217837021335604994176703467253431723517088839617168602173389560028322451677047790917775874855748225955703196311243863839087751909351254952279211143419372938703862389615333048384168811045358121899929452046023912548014026354953645664311875995576890818258476594788366682804349763587499910966384020427536799429660654515495977983373336394946911788920204940543910747242431858495681112315289618727456786698884736110997891155773879963629177751089947452719733596221606251767779486405300888174094624219458716384538673645266061863188296674928427759508043642701066945951286690578673184791302380840382505631438051508949147762319637627973132549740109091009923473129561034554813823134631411522390138316996181419496646775666574174803461130373354980517775291010517768132261170894366688285266780666487380245479751201866951671577282697976116351341998907258239320994321983643297291748180669125585709780558887708732010354727469958054013255627959718160909333628532918822359223117506924508486363863255423007576733270296773656692066642583000630379902845691891704920548402919364610628179898542545821299040744811084053844797790829893573455291738519658117587882264980066099065731376276187781641149294692925964649645283797063244590185023640058034667028954149035571088711934785066316370418712665563110966915634275568082609482055882011030306157785607602692421833302704058578714118184369131356354975147485546731257165404255750627442785537070991572483306362421194121731279195080918839687637337834387989120550329049513878518969392229886879750997733636898390126423670387664215400531715364025075361096795426196353978894204520092053731831879103454261929564653324009539316233046596733814263749496269802851077170061807059655801676118891582107286882242016058193391458461227162287338910210934379036289466495110648118757674015261562616948557773229776006304388961171568940474902249344549525728179974961699220478486255787732420313618234227138124806066382806489574264399470109911412141617442083118520042798178121593014513616949589573903350290227452196165481194725087129828473328891235044519854349280901495478622474194969619939869076545833647085012788476532339795700766991109447442168850278254316893509088673030694008919673641671786296196412278330664312737288041530245570899894868180758553012871026426461719104604298115792539351545148782748912690868049545378293501240360951178434821817064111375198660063611091585216292354396250299935659928194545048440979963516892613042063382477098021559109175225319773701753764919588028260127166889690976023156258556454269156144338754747756599265083094508972599513987281645515375170441085214089943894253602626276933674928154875223656860342443448673131082529268936416958841687059991507785584264364568025722286713099408108038418655661287758392824422157197285790356462982275403407007606333381204423074799154421567087953548474604247979605339962911984591161109979512971596243545584627010146490121583216543693446920879102025708751075566504866785397885739375031978574734128393194735479336341396520377467301439021836870450229432985306226420443469935847303273627143151655679397288980459034450741019314266916185557455754114212185154221729539923825700196030091814631820396334204828304896016477654218910953788109124679883797700765346010858674673428805757153090759547723298449362860760179796036368751418960840329285734359343624381113783354043776438667523729020638546182140851538877794138771829630312786977204846543432081994126539137426167857040170598154559542167280146216118085330953021647720385949146182190838253172160928759344217158261075386136086597092356499771397189499147045329112288276785189942264526491576392235727501198334385932012328097601204073510632668200398675881530661944759752796072303601220881283245135037834347894741188398145570952016649785511799682415957192127872838535664707071369658696345495439698434014912236548619594152771660347610023869806268891862655145184501617147730286440661003572878909671159197162149377564044922714966205114082440933574884063999791210230670512886750075346907571549940702832276444006196461716512280988448775200328739222594610458573693951841266946307605008152413152222763423041040434161864414694291540888389866847134251282390718893673717245348322601968819192016902661883186020130756392762736670478041722270283877519739342465498113817733852675851337014513675652200563749029165245154190816234679868187426706369212816045358650001985561223338224802939249798138432443497039543240691382171807992603417339347078876705016924245983621501289970674203595508316597552992052063980773101514229891737918801415590022205020834415859146625073953495004336341335990923551272280250928007003064281449388312977963281046899404913734681202988860623457570351837540503836694266033109365678291088295115837338060680477335734375385636711937377863570021801548544707701588831983700517394183733159515841094679857537794478106396772405823161894819103564363856694679955912147401844487547424540148851692044598623454973060184699239269805493284898702939671800424792565034801375718854230741776032609045707512219498896016016148143157210488181991733838845911431706410920199904590170143977813881909462266301738921320031583050515139870775190240773522080789304258034625170524782781995225092752876907878161830594276237981639261886915970616879504814436608788034612704630518914638043399500044950185646434351889323539199991187318713892442437973955362084158600610432385154697864894136439756693089858615794810936251893153347153864771442164279747462959508790773433590480329868563458092687779648615035707204696580556860324935170401221997011105424691444535650528853486239808161287370754947802467484952410524563107335913938690487067912311020151032419859210577866114839252919700790548060452059664506891784818657201012882508500946869169029077520919602509071981539079533583011868173847235291642929089543328382911032598245321427030088056646988498539691886492755780760640029407053581582232223054907966356613896027169058727831528996995647293572398673048898493530707717274644844269678041827049849875907161885589092158649659573027628674652839088052478679166832477538041652434091060373198614370041622514323200070576367362465349851301636536723281485465696258899168467810363973560896563344694477444712892421623193178394888285790538118492222541983473217559247110539669035246536718609031416463246552523470668708855218069942036491260991806829400192557881436505955118123649603841518737158961922586713810884740367788749491748232806162792309871961499879231064238056896491628282995346676625237162909163638886696654748932600507818166040074006062761965513082810053811431669410315830534433889792907873237772420669311811148714306068887027740875112056050774924202444652924173555418083893569173696949943543976249258479697453444350953323472702921231146818515488539966417660679790099372699206263970555898595925247444872018707786842595460476495167555605861660546502791400978119791433526591044956788994893684993220494745642855182139024127125259793960018642303641443095909120994501582669542527893564224241296315244071693819934219030367531804551123873994178788555837975840669778475089704269752399711935820345536125682051704323170249282815838425306584565444582060500811290588393988155739193523929748683625345666209495779712599409006469310639153903981885239111694365677495180787096357444697904663716709997347605382553604569192545048707745790709449241569172912988658129260815251870102885878791969302646166875523910729510897611041089823502478980323525930480165332189997883017830226683754175368773699773714573922730105179770859241101188326178862826851766593528961280415903854361841802471464802921653282634773549313396555735654891641745426664744642376245176683601227479576448508067394408712636821641981653412263124416928978064886543531599895198621817545039416152489396844404881332549401223353594431432516461099259943269391582828265588384138760086687377715782457207151228420716014667891531523814560170019293559608133860113467528215524227054461595827351181780729813566457154575861253844404085624509546497689451908396199508750617397637684017382970044854630817007613627518733031506782225434940231259104486879047887024035845059618667193019039718191339131351668486536186245403335197405463107469584049454391756361540845325563000379648622726745394564487999906150844346778392094656217477667927002396608382770875158954857505871891423944597396056744004545217640666267632332139814125759711892700282442426874095201020240751515974490437318410103155331024932688391944402978712563779027152002426237676675104255357280696352430771971211410506596971347459656899122414290913626927755984614249304778157521512550783565208274277487520635654730230588636160776368552122026488945657154841194402312687181446690896029164217084353369973702966678223973108943540467647994214081053424565973528470908560203165133613274810796428414793848072931003871839838447936666829266504178780786326613542519773601781130460114272607764120096954973231290659982606311121949002553524428027121390358787072252221941218008685162137697057626000954445934142833979566599252663785000786904206824085351610011578379585526852528472355108059424151904375639775984000821495477142093116535979149738198625236290432207587405996489516770609920637732426571380227936307580713955779371202528738997484062495967466975905394985474690923493261336805377188015010875819699764000801889041355164623096322057626191958280482941296506485294281493315393491479877639051343542078882794885827422937003631063581125889249327001356960170397434526088444983869139167135477284703109348461146014871777284113744466234876035166730299796500815261972248402709594246049692677018121637191829808374525262034906638872125953069017739936002238851179942945188433474745229225341541640851983874595541310531841040718708167783804856509483577565276660955445851584285055805786875237217882782943122230673027850693599713286902386542416587248691225907730593722686573130576686473639385189865208019342216149152615504060933711121337017123346243964546569264762209080368178348280551153830720827966478441452440732559048737134501537500139367380259721806165068655561231790237402086894808691636303703083751368970754335639503888388003476252401853467128187480587564764717345669242129475372434679915519663010313836448365780488350459539304851745558807446131212862143174587597860273922990540551920014666262325281401415924821630945551399546984114532559120475987979238235601985202505187581266716966227714320562218223508816895183748525288615074560531011508414333685870783823295590516348719490070472134274954802677565399164935078259408824269252630342472689229062026277412842237070735750312908323375251743648969385580944265670718012485551926764247123218651909605933074010812377962737277707696756207683797639821885966155598659868410597014929546983006531411459454770997957417869301402858205388540280030686684275449016451390798260585666032355585372437908923912931455177520250043004350302315251191753837818208076232899333102472370767548699701626385493580766394263043311745146842147051285079634908209300794806336826804756166037838246155189006819970592559051393753612794857242660668114702823160010719516408601400701921147340453040822195624782944674373804572698969070585067606016251628765375581485574110798515931537514171553677258400196842878276432276423627603027648308096441676256646697590567767386578471368879360173059950162323572600245895310524421478583625012538865671384110633094139628408561842506375612479132342644264940487739893602440540838445439906532325169828902805534018534784604914198000654073641326148664509067994549826535139910292308238232721979417842189612492102768191527046806133408308293103542426258949333243562102172000147210113882654597514933522220129858223182869702475892500693545713372537856786910144248660945404289855426618070277595075209390407409083361482528364708385874785016656326524721742663509154669845225947949154789469401067454365092813857235041884720065286311616669164699601005717502878667157851417592269710796195847680976752588615367249356938148597560143875468906844218761490518239592891296720559676920105111827328706779597086389609822136463092350842886000361195905593780762197767454128419435759460820404738207795091549413808271773771444127745302734508748443397892328431853423369450242456136688214699693853646690871477664904855845693622591179282043198387662934271483197556997637999544460946815547810680165008561788273242365520263621003706222689072769526664761939168198056706322098170307490324995225781277670635446782194587068795610547800257708676450284508960783511368250489974724736827592517296417796584566927209279896330010865016542155635817573672181108768627031200989671360503505366171952338226135681378072812378077103649127300011758886371201490893107428054774785831964988634876791622248980449909089472649939890593615370807706711683460592052965079763310161354507555261575957757479832716112655509117009085367920622441122318163337559758848290486714745045231163114657524816988954219813810935589774497876012278915784435801776859824573156446317626582465502717155286888176515675482307767256676575002824457085733338996418269847661047654044364044545436580664098427275699740296945491390190779347849504643774771350097229369687434568348376471035040033480776859007666182467956431297454022085894940147424828537406010285667820465815112675909694339058826942258664084578041072926664160936489602609515932564008906739715839814303728359198627428349323588539692203854968142228693691549850359353244833083257045838940823309088026313670207209427554381935078408871815415261818665338692612399443303708196467439092291583864772107480219606831582988589028986875057875017091746717884714155481616888177722718822539428850186020796594021929628053675301517606682206870896673648700712804168094058230056437719224686257521067109194861632051139276750878578670752020006664641067091969529711577757528429970086716839078203559603216894128304551224772529786331617957275313171492892769454079658707536773373828674592865248398087845584617205712789201460936572656913365347705085804649068119563567680614349533815275917327260956553392695034680270603994955866168944165051057740802014057932752857219727061304524388524456382674334323046082409665612693799767097968879230965839348214215531231197452862604839701496026447333187403995148326389086109978383165184869230835366477921357536984768665192292492045586550330018887917370614600020046882870030926209028142253580777903707068000876123039800379433538469929141473984480532301876013495179891982425674289305424005489750510380949710464158028322482032807283344531674068397696127405133435952154774590632514696030296579012797092656895982506906931478982500389128461503428768470310918386403509481690901177682970987138659459800902543682880288268425696679960678791304060865624451991010502688563560710344569087422456310231812770473063678801236710179215850897562161611898179603131991620170458941462590052720806739454003055910342634396296240050794530697937032426182785165493220227150000224927724337753861538311640779338547208616270058078624750002033639976048300552774146057053123589229038080000055858709252566004352907837741727959370190080092112030143169235558702992218537616456969360042635648887894106503045510479804710141628638644345663227671198615166106846303233560300131471744621863428054083683539879797591840200150132357796442605128154036047835120929777141484796733364265186617625289323463990950186711218117961904123022408879763654650646973785964823968462564782104111634923144525122897622498156569845143768136939589895952852507846667194969417580810103167442154310788975910269922074964114128507570959872347268303633599445127097009783118816007635640250780300870580452559370936727751479429066329578506919011042279140925833760644678816385686424370704483953474528662557188269124245518546364748390677058285708496099275756305151757003159328378387372456562091791223662943865251452018868185631126089853482431984094024168266061014891244145640870132640924564084361151525167964220379662418145849055352552992073828898705658518740662316492194810476571392969614348255393787980874055484584180092513072923983997531875657940402132563381533369690529046453043180558232888470041656394447703437689791971848334348141226846262906437677840157793257363085906946167240002769673362057149157694754433303124777399511017475541549725582743797488767286820371586260617767229191891940452103808888432371824146666939849332348217962498074094617209506357720229636838797036154181587634222394326152171649486736468847337242576791237188204796805891046949645648635957066164229484563073066156395082625717160239817217449247870099590581513128919620079072944858743467212363865927085450313054123313004113895867117230258026366619526351986931291107292978299731025747170029902023115568640064326422005505171026357958463031032022423177965222114733400496277418534138303027478993209046610803923182210595240170507442698346635899928992760174686774071263703256553758565506820969553534971085983957873014906931927805985073979329276156472403069027447507470392644923829499128707398071766583392752464452038987610647667276356997039385114694641148987138163324176313276970904889572919118216275700568839209352248593841844282613831638688987418558379165863102934003818415616270417597454989060964388708609924241146569116800803813097698765992506402076726712899384056288169496292598141294158219423892384634540463651493769411601127779820388740702791027767204274969748742087762435966216398506481693942897510329470730225990279774272536774437048799216842736019619276566403789371280870912691456235869284189686215896168345740839066498682447118438697752183990014084350085637351925425487192178507273962824848678996044882694162780486789409488270329378644077324805163699667332900927643262618325531134894475843685690355384220412096292444732468899275006199763083130017809311871821246828240045177532084042391903497084544231695564739631150462662735634821158682705656486476492675543352000186131541591377056384148766281437172798596253424779395879242042256093952743028823806679887897112282683419845430542978309176303315363048147610915063132332537894298813111516507974351568750608252332871432130319851165967867221659489984581501596542428326471882812187471556881819894927856617917349827813307065165928523509825615551017959854110728080650219236462736194186846873315907810849464600653226669247497964655915816784517853620538916128728675732570966967301693785251741612150850978444047391018557153456991677960193075393057069240391357921217731848265657519906538350808776267320614201758463923497890616021393137168017621696991695250063660629936749251472852630759089721837342957371854619509121547151903464407926803056460398145151728199118067049404232508638679250364910993188917050486529007968346327337102365648867268592400278291408833856819566601357369470378600947094594036983611033924502457085860816037640984840427443377618351628249404511182659783828273070630576694370034042766775340781389907762388993196121943355048651679015839749667780639256953827180690035142192355381247672501217626749739009857292840958132124998116674556032464063184907793149841039680886574154072906758143453430237566948897811434296117379289465352632260766071200569918596950790504242129387428428579850450352313526900042096854180346274331764042925619668163925293709023657362193190757312467539974988151548292441433841711798119521131939047636303934741242922877771425087270324488811611306833147493527494851289180349202136794951901642600409790062328631128787175023294252820385579130267260265807407642060922796189279364163065527551223811054444827713632585168635428539013927861302983983376946331001679647992424125513376466468895583451730505315459701213729911809831267863490658527160740571906693234174605188927478417025689829444186120482838725721354325326162389006634969382109058605246718615712258694860295514768173409044944432976284096490657004328257747663649693193016879265856141372405019953769267284515724888161705826238037570867975866732945199141143496162792491336439491047285704107117986132717836638029700989098521780207564402545980826571224367414730385549497012298903878545467130876046493156437898813839352207182989405195391708174486014112811974502258714945184527151004116792903620615787382664894963128570270835627414171593657212664435114940921151323691968493546994044202333687068359005024628593609501433577242275678223273362608089755160900362484395236840762626575708282593693117810290443815757392655064783355231751240513637922848857031034452747096672944121968785347263621741938792866068350693219037234463634000280873488877480664628664887993000454886646760440451587390389475427034892804596356258949771486753434356777922370212324546939469267129535967191780754747520127847041181421531629324751880085513993563877250767153049598383569382048396241881513215902737296903750120651653385051720325229746829306399019780462960217282920006274023452393138244600273873665783212238334363109136600451697659510393030241126788299624435688372453369616108661279489807214445169486217258271860649791791376861857946009207392405501580730949221461529015198673453965319645447361834107683704887716163601871448186448748683645508221455726999822795044382560101879378971531392198620818605609388614974200169844763588433278737471751427294083596022016571606417065056278572021528530789541650686359790941043763156862506205381681165328662913282651071140361764245361104440518927680118671074448102193126058602556673846596681729769297100787472797700026005764224297588268735234696253749350103518975632621293217932051977018300628917627146781829036347735153806867309874911085578918417940303252855059572730531377403976304393763592732248488130310914862920725917398839209048674509706716329167185361918582875383539264310753109900487830117372474513042120766462900647359950197943048439755306020136438831939323508688129303385168995194149703688106634844664782701465858900688310959003512303635143217904415544738075717292614552977649003808737190620304352020281629338045485514352826685835127660763600457673033123554048398249158279196314723861207250871977725034199100275356886684685424791493379751243707706944775427277506264278426294932267360069850311698983592636400822536767153237201908231439236318743112088207991842129507280075464259690207713245881416846892456588991743818631000463892100837203193351088052702570975240693099038549431473241966440313499409465837549080183844004653831878923013831836160102609437698913733670914363057730739535993967864651546818215224686229468572843931801311844450855243787965504543729776136779366234535675452917965182235517536715728820675284224117559560781001289100267775931712719932972065293242272442035484201777308549744660240366493216404001962049207328077071136152580940538393631273952648400306044293488538882406331417457333351529430224363174589425075610835462490704324661031849003433564203859705448189074778882970458689209406898811493537790264979301837258410214363200125200182579662446531956504228036479068118289344869290302463820950645328916519391693867715103820890952135432673576549037297098285046223655823727551278246503267129712420929967342732751493213652788284125825862663393207093630008856161590805214778869947055272130795415416075235406080615758287891039784531053640925419223995694892915580680925188846584007096481961415162010905445704469072625450910462428700269563637675042734147271570173656561181142952054639975231806730552642261224268934269668342347686577527673842815375933651407549598306537139410516413892652953969053462482380614578551960892815881730992015885377854644142837882594710260228136081676898536313516091406951922492348517436811061142331083191749288773960605312873984069779308890991010829257763532659656839943846969816072333427767008108330020108108634323619005157388150733984469319684852180357306758641859384642682763143711799905287123598077291430694872855434164908072420564664033689349868832297870902388146160944992811019752874079608730519714624709596227666210964387118555286684480468754011214146063894311500440198676088404929035783362776970612820329696124541746474252058960945055390625887704128800886306108528786624276421933790669269588736011384935114395891024028613817738845123932485468239909097166021565212395739413490262814991101397698474298378490748513727468068740272265958685248848643827801741322262193767541566846558197638358378098912682042068233465305225727727914682273112984298189769479704698322407126743500124424725540850606144849954011117722257031674994186969192741372816965334448491025040170501483305470170429268096806353373409099156606017658815842757360685128485755218215264944575265691597819147358671277827642403390941677982458351476886769992332771867801208526140840614908774314789510336939223933730614817384035322895377160457735104575976337210252183691680569479105152747996715340925764386189915866764572245699536565886313204855880621756269658750438956525872554733618669258503185899490790868150542471007002690179909655429521256353190991878269539067337542206392809306896366598663615749959588868814220259390784306396951200736541603056491213531880582379184890089030149949802233781773328427880288797583239469041286848792732411404558740926093447398946440440575125554432971861201315862209917322693719502096116772202129335213841139562295520577813389532684925172548601841950059962542898343210810560762832767495256848447136470278080968417262461328823571470029917824127339760441732228585819190746874426554110160050904829905755651248082538520626196352321179481514008179132244658622637555079690033671648408329651573272330299662179344636414432812930818488062155977379436812167246687157704148401797072176362347556787708742954480027654555079373066514298321304720832095510868960078101176453835076885779857928159993681692656911786063468747185128752042864381911247650020481100192330158050193404072520895323968030906483511049100482861706362786193452904345456181271989975294725463337416292590360320452469209119166471453696028639540733517181820940580399892999840420280372917795107353993446365860654087992078236902208997582000344143478894265729314261955577315515282942113064783699890372822141079946399337519635399779009936117619271450682253705598823702891198606122335080668193823182046225673538073718225771569402432189018043428098374917039960774283861007823262062357823037652875396674232505311988170262786417582970788774933848506000488613599787435088487518177013640680141730660845089556908124556526036791136125765055884784062335098983719944991053724042868233095903710104094624106761980196910661046044798309723145305867681671916177663491748603537834622582312250984834327099166708927334323489843592431810425227583398822241539561219007546866618673481716845481359242745796312811562744888631691170454176165984187740697428140296824000979129071575556904852781684658550238391752862972282640375899013420260201626506139767798455971015548353334956844670129729335843832982329659102947558822940950725950430258550965119962536345659895441009244547377599328708800600536320189862539119623362601845847307928073474934761723940479056616362994908648025187890598245880885441146421779058827020881106820585525514100946193530558682308455092280098026600700850089938170189595354434393781368586933841572135799265012560517324713150316874931820791709478852033088758797902839465953240167714652654254951626013874394478985373476009752162355639373361637953648171280871709484420958860696447434012452473225651586282113125269055648996774949142959575980227616575608737257851295972231652352254375117091401279819111587407404046357391151111877356083725644573652471476126777824469910713000474822596454483981759127899190489223784640976153783983615014437373184894050771506590675115864570621786122283665435967670007192110919999083275055269365470725438892722281125831847095819572473347756350034856659291570888787540599605585761151593526404789159527972174127058410767921071942503585856179979607122019347530143245662830552040198013986767898814114389033448320410132078368494076269127388786129778108063974807732176658788318106082374305462131101476285302790527778398676352395297640801280637586298531395235408232743041480878185012211367169729741367811969909961055488621692948445923337600240608041774757068708024028734213932633550558211034805890331393934322138896152307375682562043883840511606886738945631979149904229935426016360444025768582779850950454723829246181050979698141875922922522499272486794848716279037926853878124520545634585112846988429158420710040231185181937009392264217557154350874555431416340862044566226551435284074224586146557098188250079844338156249958785459229752180169136056890622113698075387198229361520845403328291124994120052431453052559274982451114709968924524355307180222423333343927714033736091750651885326055696913251764123765501249394905983147714748730896673521244321231353400951024784746192570892899308701773889314515214777026637425759230304128146178785444804840554608725045486386317068755053117602368303984266976719626585501968863132467923669400442540544866187346288314188268726632738149832515901599893327964107530305574818383039088525861652688254144288103444242380978901304694277832422114042799595259324953374447289846347657782541369889229415242529421401078398507835967452938016040013912695319656395764550525945509933558804087137626936645549502916054839653461136006174297427778392947016677622281542282737492525506221378398869440606299279282383814239866425620162816962433954823629157779970121433300356807809148960282018713124137563517260793124949526646030757257970116191722236787127739605426367486376445789242747301353318189197064752309826496557059440239450681074035200828384580742271831293243122543691322823044966261845248765968589849073320072053429307510750885557695463456644628952839354110442150640276564576326349600466080279719197744350311016923559123969379531229328997963542543085256415401274585443432192679083755049116753408601085665877836717900187990972922178956225878353037586287031194229482716506287742324926230896604032682513283656419423641039999902619363468253696182814234945551635964083481882566860350005414687413535190712484436263922218256038387761826324321000361330743094811690179096385297119497746369386052262394379489683769677232449861187587839919156521660540140581418590502731226401131101487207515937297878407984212314696967281769060831801232633894341558075604951567284773091349415043646026284273887670178006537071424529764897361403051029327796799457370124498748573371328604061544053335215481480456308346100391276385312620859544645182325242199056000671891131047960267279019332035310798802094841240964790968766578941419770903974641327807423781834981298346462951278615696697906436772968054004527742884581736509404108797582613020620907643085997285836260713205483626445006660399583319237913323626930262624103882194551757093448625377387572885804645899527059210836956741623495712826055689623199040878633660522860912469055019676527854347487969145663829157279002012686345751863763030802044734725412629630736143480843306641115808984467290426865584146913679832741762070942606952567387592511913759398679022803869599803233066706206178699031421781966936024815861827300146913591495462312786162342285135997150723989416572767481372765154244203631572856798084618144043626287686571774003560219199203123476344015960672025390007062563436862204521955363307642316638788463037721688176451221570629431728393894933904139384975947954943293693494059200903811701602580060141436528713729785922455241476359979311981880982318735201349469066156998145813733290268520991304127594962403697186783341712228961734403022328451396739806859357654817612332119023771764877190415730906000393122319669101582203840991935400094206882815432621683622059057146665166894811248150582976981464048540060913505962157495714448966420302108421667587338974813390319743107191217011466180732870190221181329842904802957199037672495116279184301429749984974133266937143639981555306546644148410818688478394392635011743947326973152968474140392905191144699159454952371774172231783600249822474862715491819750149170358509563660108172992472308161559645823973174370996776058255979075672791258970451459931432703633191115096490350052178704174785488440817813365917562638973033432790397842734429145176755507257865974493637622826489038553151210360745188027056445251799876520056631863917107246843589686900917964553427210691193955796933058233689975980285071702098296684521138353730306999066723604609350223202105707745631520958941885462690628027466650985475744870307854420469990097255689622227100365108934245922217757136871631955024234699726018627300784561681725867182599024419236501505213380358519931299697807021973114195713859571046242525707773419517785430330170316428497818790946499997486504570052951245965059806471822780379731034541180273667293403471430151967857647910291266280873208048148324854154585259133810903724078720825272704255929960481030988469081826160039915104845128672570066052497134899005662646035974205158598499003253651479960171346794035857747644589802041448397028019538034106014188011076942850053962080004586808284335462010895329064682928869787160165375084674395819995573225789689544011767282822777801528676746242301351637206140156898580362240559959450070228414581289008674160625321672053395892264216067914180663710393609268794821971644112446270857692941965211407556737929421371579712872747400132638269171332847085728104617886057653986386990011280574103187999493243085881012624385957422013957547563855929152709979058821541399615293461682410915128504925503990720561935892921598596624513039443673178133510926593849505321077704438910797316262424676102313676264435955879714056422366862333646848826624890341766627106270515348683839375042414644386709007585473927751749153200423666404319214453235796000371915494753700756541438411465176027704130154776234947818200268575688871479341223484744756547736119894445185665682800884319633199165808450594838489127739890343234284443982294199718261612227988250050825947965230165388539104670279146993017514286382679347140475405870120398258227310802937857744007567271906508622590780654164037496420601898224986526234390446512353860108981832952297885579924641114408875501360111847224509175589657573239544796793959710261614676816818650671095841943958394376287609331933171778564602462110920422777275381789129751897051326695529800786210901866002358872376531364063191966409160409850592140403147263452871370622371483800675707237378854560576457381286893111794173472109080175154373563647610968571743136023101685483873776872677523477548480310803824331593837864884887104171524713673746568681548481254683317688226606547072253956814674358422656793556359963407022997504355052548242833131632463829497094995292695904485957789900114458765576644762073549446751209110329396887177738069506807142301669937415490418587146311112569314730349776334305246939024058380384554930707586085941069275404687649019337491493357370307298966970949332734696898612221663803941734608903640622213415846326077706871487552280759468300221911728245761715699675690234054367948667405509106200081707979594130278612386052314500632047271350195324224620254139585554250206688975914919760958736963183670289284817432326494239290039562323599327784386418763919597230718078535940666369808116962491079090043413761951901230498041896679106752187433923287858164413191075091212752059957408756495604181993578980898754947893460331336559312766849222091490453501129973830666937001676081297562163179267686541682419818286783176001674705698844786770601949690037762476113102616848270920410511062588829055161959444627092921252481243369404199013562985124163370995825864937407060662557490849788831880152106987840400387545623994511453555549036163846854478081324872395157825480966434951749440782748186630443839085909521717268937660301072438881763116232447590416172111074003219815757401382276663781137117262655841125519780425162623601426666336376564302817740705847273157682640244534797462619671748940400598152541224755277344592682425443589545255387763511324880343285618289985457635729030729544523490748421523359089167117615597200540677157794276772134327591548620058325281001841762463915627034629448520689642196511096820129056205950786820884366789662984263076612188986453862833774850823290799878363917352114877348185325251020685647240669466799269592207947106264361287692686138914326011173824057954018834706571756106750544875557160784222183849325462725153747604132446475032991567895846845675970569984261691050762733349378171413019138460715328899794223119620089564055206640044872440532797960179060663723858582587172296950119591394683756125613431754957853987798028986994513128035826499866967686193180505265359083267403291360373663824729063137719190593206674784038065745780384764094011926196297591780846260226869271745309959785682256140658891385855684816501201265060508387156022874917125344859276487269739122795558472287680110107103500808137889277797460278568668345376893738680479555317516841354655184232902259292442863827977241188192898733942204032771804735952082659138260229792353225293713054290927215547587484776869788070626611450694098169386522392370459000217602115564501782996408480238584328897724615856158148845366479176078090226077607656074043224417209121315267825559173757904715052026737234867661940473288256647606746071039528416065538007140721937300640620150711096732641790198702917263216551088428550241615732386831418519669176913772029239945467912782138734344779151107395077644584258271200453043931061526014443497746546361058795694917498632812268376869191595726753992611110293951110451981490240360763951333544030928909192552514017487562633524281208027352954320493528516949667021016676159150634945252098492884423187369038439497925053534521103275867387598664852532461190466333003796624577524322426429361022413186766344657191177871478753838919957749143295368710001428010963990915076573181220886366394405656164365553007539471214910061472375370458398107636501373475424404533192521812768721431271006469278087347828303394143568322389505149268315665128632103330901233451818095319833345702222966120152586245513496156770832514080347480160496375720699555567012643149820582575481587348855915351163389095972975339673120001165549466578477069499275039852706541384690825881777915871220024269115007936532022582647554582357694163914780236222185664239117757788686655747951374492950185668296616071551538313316764955259428894367650005750816817591821778261092540376978683901873751924060239031065776052935822534746770010853387452847395028552847022435005369005586328540923863879771579554675921630895540397351648751341345888050233768226326253837914406391632207158010284732055533455465757268681719408085820212124321284123894527590030584685639173450398677411148147793546386457378098364939328501665007907643847113823682405620548574584736024336913276992757298830076294218003346149276440443546665169987736849563008790324035608309154926982518661849469514698478736114112983473586747819090537820346220588721671471319863022474370255565106455902507612352219390336530144689225701046558558237246581404159645034685281964433976657500428900391048948803636999564536289319532996458808448780691689181492668868143662903088369380249828243769848362218188145653991636477618614707129133636731092100299966679752788044788974816806997149244182465069950655749812031941482787538560480735741363352827581789919262523543785479726479050919695266543964958721817013124451313421214662682730330286246953547286588683744973367980161922613032669229624426354909032912127966053797868119972377168520116787226503925300855190543057109006865989267146219485648641230245090656739071420147104655054397684824885495010481155979569854207055506186174846949336771752565350350295531926753656752356751062324831304485926733031910754433922825030205252627084745678785774373358879936396253911315179225683620173480333602115118248407363177782586899518328530848727604039029357707599067894634511986240701778839423806938696548030299087091487938040810716612529654044689218966522921335200484814930055382099555659321179700938854370755021392131800881166516109965489530896446943251060334036588491454530737147521939983135133959148268882766708397263670658951821392939998362979403998351276177762507899878577295624201494209186419039769641254717717962751599905489218413757456182429083347531125006745048584339461835709966420630493742553775947678954305646544070739452972852448884946880659258774948033449352066912446382469589263646758495584264400888954552043287519381405819494281628244112821762320870041335725173829049122947748607669256799955074531605030662721759926743421707753943686916424881988077003215108461119576548720774593911533360123371526211250317545426739334406968740795949904515316052192734487885772164740806884180795671912065056180249744354426652986741454518896901872837991568792244770647064185983814563449973128226841896217642469284677300088693442421742950694928871175689487124921669976103485959395681580332596440199130267542933640666362159326071986469258649060413568253234195941487283171338776219925875115441260080966622061048355238550791204897985284671411659663501697844652034054691952007071358825388368127018685712566988536331575833838294543562283223675069854351211613757696077858027006558226121024710083822542031016225739673545125535057223525010106554627406299569116556036583450186990077450138671963536262586802153579403411103262142442580020609775395480221684160786455364462503237597894997799887671707270907934723006143724914810528531510727783366802697507122631072938328947849068839268565796215151914289464527095941717940429760688679880039340680870863961077875835381681660654741698083574597256781160913641033851415038772786896010195163524486690308635242034732890982492759657367462156225262722003841917996492633344949058392118758042893847104112867391503311723241381579916274500923099802784939646601354734059997693631910078098722141619565234725461305915430509506412822999909452887354040579086164781564748629371380282854510510868559425980130721925858614912018986071521021619439767560757694281288952628317035790751094830746960564116937903642105336087184908657600283472049717428134932095958509441278781872014945477494941865240666227095030673768594443650665602262788626769048066399613954672975526858673761612434625898709513850174624435255694460233654218839127089685675470223794412022846453450642213738617385334695070951471484738414099231963314975415899841430194300567603066631589398666402736545755650402152100922405914376519600730407427893485976408877844812063306947364488031499323004815497479202116437156279923253329785078700833674725105974491090127842342804321539637997556236323677434715678621110706612716377918195994597108217380054508971626946459168074932724443664056422916520491341660471494560970637605193791597850393349897837444821223878204070267511305599368490640481150130742773946593535998994386320385204364957964509839948784409868685701373769430786690615287039657776553432774723117446467848831498612323530921466765430510999774501566725503387166341974245245902180992808302881647386414604590922875225579313320989294797363340128100688608254873500404954448436093096946774611801378313987521768763914436788569345925911411296409440014560369237172424775179546900990528738498942885952494632684243627815972334240430553113546845606564096878245163605781073676443016478591431972003570500228458029671810277383742391195798962879979593361286400496161205135299080754189994204763905769082324207020158378905882790990723908855940716658570155471267672261694790623808596525593127429655321614935018401629477949852475348044886999812518176433037587561246319239329207967457211269791781740997884049409720595930535520814913184566484530847767269613315660504794805358269524454152582934206900088144895712279395613172947724915741302221953046817638889185490703442214109760624397093568220674304334679125096366429233156493146080386007343686924868322413750224981357255774698120225197819631763010932581837787504576479779809905362214146679984689537743983559636053480269138844677749100759287043306071765026899878236591541041638659345793164026649121106962828677062205073631616207585099628348333889347434190982304878304254391132878489479551433109671997533106963748514622467882255370916141615242381165678053751631780861919071763367835910028236071081922057982287850709444315023079618947831314084249839134283716260831874984355754839886468484032120357709807442263010030980095391868358427493107980760396712547897683326746755683855975066077482049416507721922423516676494938520134801152767837821574066469641384959866468775697799040655371472474690204974624164403643033042697146872066844714473173477764153175789293464778183734721264128746874345643763667426957596692951486400218540923416355135466460272457361619576747579593341116330378740113566549996582914540453904342312303488180882738853365323436769163508819515464485929525079884365588684445310277828928170975661193769593688255236990778035625920080897580249983449624383528427905292499461970827217921040590865096932156470176472305157976639718419938696406428725356160196937553966939813888568305455996018568407720508059101487450078598507383136096125212924696401422141866374068853575048369529867081607302677407951373984582004006121103287658648776755551452639222665761075200545633577771706050958901100908597187891210348881654598364398329399089171479322800985689464911240016018374084067828244838893360963283026077007590264666226936475611235393370511365158738099161678644122836942055620760114741202247596243618748004998586422124579202146791208457191462391821735095477089985513687183729158855607407376419240751684904515786336556578312274503543080464097372696184591775648820057569487230638145118664641688953231036521866324412805101412445992377234334663052987676216396570294943792917860730484351279566105910064507914470030733181915185117634340577074993938019407614371378615741157277678326979934917670955433983330159253152701584313168677602810672773245098153557951971416224695980496527066675547491493266836207716921424559204299098757178310806817926260821856672013648024961453442950382400236540529665716955419015850516740140085140882357114941229148412475915810725479325975345397884868460916127417582887733540057093298335956467989415915180794470032261627908255746946932994875244890702089201158137513755647052486023237097315114195444776352848813786568464815508175364492678217412637988529782301355142628214812173549717792530594621485537888572171386121419664541115313341884089414845692796133575583510798623982929330309815327701608447710102298097307476181080468432442676480497053256352750932782038485667553401314433296488834864676310020966567234253215869257617417404490367225718954066793414010147537941842415581018037008451428285708025854899919117758733162840459988641939452529468285202421428389932233784838135106151991539511704563730024103390994639741982513742471358009572705705773499006340264903120995492619745369756833978654632234778122376729557444202231758748974389348118838903546275181911795907398282640682626222826201650311630838368768469672030681877299671406321834387193150936035724739353079531782803722197191914633589499726245369165795691213464480241990487459608899491189708534201949735328219215921266334852385053176595006008492250766506521255938445322177877144691001578995372464840787138516990126936831018720646596683826134376671093685792690138902079851792597246805798587472305363459497224126156763766532336925085993032464186643352758142144750944416419011925594191442670227985853584125699986022389610551317809374084135490808472763391115872656181481543287784425014198415861984236421005393894873713840569314668976768934906436699087091576210825416798367801357687784181543680798491003358743884346493448549374360201891568445553003608198520261961422314425481934272540484104865996673653356734829943354471824800339168480971394685085418530108701989693293102267740389095821389288246762709632445253374039775978099109356135435121118745466481362524635516142221225693535346816690527804097548958809619996408237870214832734129802230219725266844671636628766705430694771211837825037464696580780087657755870663749802613536693495327724979301305243843847660467359409862392479503442162223320945108453567907779319725812073808598693989823425721040683556321288068865671585204316111724467654933564611818741428799731442863978914631230350550039404375507085055217958346869994696645312897737594085079989594077251434077152438927334650259732423871937413679240389953662446249768050947400380699029952448507025568570136907994151436449692224492017427430282980323189609059807170350644608491109767303614014313992230568885176989842587500681385007564323629823612764143729879788675357942481930793614551889969304573606316972521846864773623498427005315487468841268001887526091864306512864523449098523494410622816632155019688564573485228119119119700467183812870330263355761168448609208039505195682198608062587356266799706642788140927709809454197482955653650253489011736502389812275945446177478038875542404377688811586022948481322379247094946156520760545928421121738725645179769886752395969502794995522166189046204942344741337406752463270963307684528876564257309549469284477491674059256395957675344507257058742293946428140840416402683106373928667384411911946118961340701400707535667015766766165316312622383129109760683688397877309881484896544425418185613808492812802243860817266083193034261440926003086696511285435344399825860680135807677286596099501510672033174436197847389220712136628653065458512164995155654718344466153933917535629456272848674768004626267171812577420786569110896099138299583921912355062965289787365938986956879548517560919260265636549453126247362150489770483876617146662312778562674074771131103711987478640809168320725103314710239780991924613963001417448170131996675918781071151617444632784114148964328593519580962952180435141829604937471413882806891937733670826893512066877497951632013642611815004984492702145521890117291021608127694539858679334425300600735360836051036496251448396690234856530620768635642809808099177768378856068268734946451965572857705222629611948429364010526748841659930276558899441617985995186914899741007909910724004840095813304724665881161606637956593633521545380076903060416006528739744560917172288415897846347086643849463719920358561491145838264201117177895578177262477223685165135646664728926353401933882982057989990934206720849815716442707550985502146753518283032953846508309950249244480991850972303987441780001578007484359374487132295041484193428353819846569860934830689881726533753697698325267066351320265218582130924213872325490256932742597673017724061581926145877243632297551852616153521571022252961350378414611228098009592915797503734675678243579871041964030563906720957682934271629844212551973904735525170072327367696768728339385322209208275655834215207246276361450642316061120462732931969289896762451248998950474042717720693658365655340850154733368089564755924781144577320010533909127667382707436727923514670305376973474838198781085601083999771842894743032133682935703982529893181148428584794771729454133294434666953094197816215095513701186115843603504175316816545913651278623591164094172830684384443508693930268980965155528179446499576760313325014123875475841109631688051901094984082526578567273705142956778900838653857742722409898255134848457436332970488778925414815660757813359564710100775184016999337888116764792545591870193198148190259737056676423586373155007873051522668146539955161175737092122929504686472917566791529111091516982974746101472474676458999196557980922945692103284043784042266868344896585175734891395711290700889778968792188384141865256087942154683149266705432797784221589840178737254165022297267007690011758814182002169200675105941486627249851373780781827822981601793441951408910047062140248540871974591567665295218308590379051451649973246471234856882434279463527410869231288714394582083168046579387707728820090010768905359401070553153265326972922244882864465163889133855306814456975830525742552252637613861036973515523507791442364536371537418730974079096457138486486060706713522473968327668182088560436117953092542762212033695685188229280588436769236769610184106132788965675679769219208731167262233660215990324859630332400510392171672843269721039173264568184897106115166878224729063644950503764646581807896008802985747455507101728962160919685486587897803096140529677324121320045424319375782785022870724774896718103406183471424173969781629800056068029068259991592902292521906724125234291781877058469705408860771538247321637860819091317707824085753662689519877109789050533963928448996251804128046116753174719262399599803323716935805429856257187711364318681875365545896440963589892644728312431529467547360987142750083326005503915103613380594422351358744461018963799773846681847443839069320790277905478520571635097150417585608853813939454758301930050752350383944160054647419952207167376164868277410433216541469387077216404004144078574438867294839409754523844968020092018385943614894981573573120713972710161169160788214900720374170290467297377477741293396666628062072622611209358543683875332141575954191638311531596695814554582268570032311196773500064441108311268798847471998043202398753772370316989819158903932975405829148691464185212699762538739790007446881869547171257427770836785676812782676874218053571306131277901724984152659317874798851963401321000757786621566413012932867359101470221121759111286516090474131988772233539257473865678587698103734732309487371696384046381785804782569014961672252005257141751197177148215292197836846956486958142595070023354688095892929052629177078863351599593755331269136299878650352678765649279644265188568296241230467966799739663881244244095036162048806269723113650840364980167470980973933929571378851837747739325055577771553909422892254184363377641213385245865065715541468195203743591944908608222540617827857303797692065489686657673650145524234908712085391428617573337901554908563680695722895916775806088877212331882294034751693128539660572611901196358260913499025377341924973630819862835197567097840029402965280593408251696102936619816546122422400589838204960007099980443004367010094709059471441236771943902463680934037454758116690562675965679264691808823307501721179517895155491060828756602524328894075105779991116384310537785837744321729948322037779084544117281145578538232348696636797946731645747691686933808428177034857177020741583449420144416806801303039864251510198660468055289154333045435404587276418564586885358859771827170032781536132060104016450562237689285362912474209198484975842207133138031290152663859678486099975009016823610936310789887659824646874254417296273607502656165240220532146790929285395704386002783448102729962527947835183374347592746988955679050724719321418425788308189154555014593951849468402610929218764069439525970735766927755635583709854219284049539509243993619542072194002030758588131612300418422289845410941032533457827391132692961928294408284174730915570005500417964481811832039966596579238503239905484437631044401716698314812828906072684619555856267232257994373147142566524795496215861454020751576668676213465268658668313651335306422907046123673707460779996903212042313511240976610150407942436461919570669802793879653800794945413883142053906314451020750353175130603672282774008919841020544183972025485115407049956805758821393765972857566859020490851086340848006522153378274527093954969262536582211046696429224508027904417476801399702429867584306365003246105528154116463382584891224591436157924767778677255916149430644493904734979893977408140451403834339637634029266922564806833543069434672283183844113133974520538546158017152233285739635630691219701671075218775606125817897748266166730014740413864061515002008043468586947823011980146298703658616235706073964078181556010380738012816582014380691498137125831091617864610765594793727191224587777166564535019185345904277755189218816642238620867852233309359476234840753100383412540509529725777483985788817846842001019278532480550853127659766368878662375015663132514744931242736987489183356293229371580714256724511502644932561043549149247780487072159275657727346203729308978589973143847732698541261750882857357349358367247469160792866770635175677960621699863285680594405314415680635037862196257419941119310883390122001134113088862761712320796147514745601346703193335719057853210493287670422267228336824721454843106126764666647662657851374756939810212176791625355530470164925309978822122309861681302551368290419399839309693115181628848823571962941545510786782186912657828177300991336806040718050310291384762524648649548787674626224293174866203815822191045384759077620976536812936754855258987092476754736539417295515125362139797098718007732224356075958644519997811454027794809926291776223923428977692455163384764845500778840604048471424209122255924389999781813847979649959359047406748319050986208082855514769776677555136091154282713681974108027778826172086613372349199131450512525279700800716634908265499467122880360449483210249719423462956851905949103928379484443169437544120277239634338766560807966387093690793379213774277335478137484082771235491024351549399567745254908877528296819457936183288822610910196197162879564835890171205308033431746682766485868515715160908686418433199272920405532519825409435090096698027158819752518989260099245034968474977563284329036554951267949539608070154889748167750587345307248024607212804546833366578189721718659553571475118915553292326891728280913811024793572576084321705083762466775130942303667450692333761803968706861251200558999644283472852866060980629229034937787542561719654699470054151117523448411852412253800829344887629482290787556827296813410660675675524676742684915911285481864479745085762214886736543005513322920229052167107305545000041807692049470908667932385556034736834981416737060378945498008644394724221335532467650524255071065395826497170515191155228024936497862098647439277920223056988626913498373904555990297997264004547939665262722666403082679625165722920433577932681041029508224542813124712754664464365284623435697268889439256327452823369636602538119969548916883047587931249805838924895682477995993668733921102336804542582080572998401401216656824938320799228758047455917830545000172746029821498529276312660879183234728921792274109951774456024560802744329494159487244798075902645838164114088810185335844989548503049765553177735289483405543841074932592879611370210586742084431236308759059968949796006236565248489131866956392958674199998274290721208829133795733783391871585366324374669278768173787353438912699259893938351502222991080185366628429452197473698672880553804306742097691370852653453866901248040331256553471292105499088645927638278690174071118512813494636302596757085225615355280802054650177494896460873488177507123419487246149650415833893490132321419885405841639823710300689316777899700286538939230080800972222383742799794853200010273682204702331616713775952674569512744252116416530073274101473364516803514672438327318147707658718058099590632831456686615827483318098126713926433940567373071441008356309874293967355853340655566533355958886221685871285593636138037436395156637188831191637626867996747901301163190548196635446940732716535335857843724359926552729900709339472430258151865603441274737192618820057116158601896527141948955100699043284896269981335732632264465723721291715783064504575762108087813700521360300621981235278879519372332320973418889631127734133934960196386103174412117877921425527520508867508212936585072255492567655784658450765611316337630842692374206946123163352408279172814551032928528395552233559643359533318100890484445483261502136304415420806827383712164994043186223037027250694418527516734739346176182952379532542213653364839339556531302536915181289823025781835536790826720833461044021404234681547535608846163750511162773261248490117198207345833600621214336580528948777198584860458169784253695254900804119817010552019678396187812674009843557000638394511317123709344033830246534627705014017394014887053018807902427483386410331065746472528877719094848772287337819735259731659969112751511582714609354785467175666719043349709459178493805787006628774017812427442235285298744118188196868501214383779107113628942651580969632682219089437414842216530931060216138558217233860853511104322879178372157092389872271119692115106885503323467503480248941793998429537689710159944912847605866021159357900045279553144007641472315494154227389731638209292757580108956736498809488026863763381254682151101875768469525431595372049365332143826039210840656106994881569798566286320527482889083424745171143437794404831315512615428571223698312761211856157774397971427528900239679874434329113077551570426776986951235851546198391890775334524832413298763195454162039621664698549787114692031880030480817577886522054593933943129730839555070108182820535483266516785419539191792131984156022969614737517771110533311324860704040315540425128772226753053657305912160035191870730102971371414076898460119040956113260341712406260178584974718717445553652068611984863176769983623475579240557058213946219052015073321231686625652652700376432891398738944106438407492634307364757570878638888766353142532464603368296385001304241109427487136350122681162631506768245955620358440766599767859987547143321264853036870651870561155949237410654885518665074739534820707697458733840550731728945135281488407621000771817475694958456044035159584050345267624215247231453392302455083142554528085983068253931341093142645281129731498393549848266620159055974861567434588842348954781928536647208327879043862433822604971202349407178927326519706357513458129636866861705791019332002906937231500166421492721561601875119002844291920285675747270841310056984348539164340356836739319274457641830756293367019880495866028461102989579231773124434990100695666189906003277813253701099810712434737601894428646783174954475508479864608306544671176278633785425616674297897237440335196229317400220378856250649386204259113365867462952521916901949355158833182132000210694605139086233971507653652597712333992103589066564170272048383489652080646172106837119432028257036012733284590483840390389793275568721206391217545491176566926333590543463336432276499213223354560094515005310801751536171942559851316842292423514957830498037612675326771033273230671679062348473384637579677718174939366313039614804888314591509385311064219483723546462270069903833574575747938836862905542168415840813119887387395704146649942125816142832898174592607544872445569341892923885355502588191807293434828322242234837672843840265337405611616699178843456269139184188907728649050284508867847428746279271911318909279673990507399935897844167542793818506189372540713445147187230719259596070019217979422397528433749014452460016674556164088950089883375337798359781551208334758612808607650296414929961562450075671776029885642993842375553156626292137355330130664606386255820772171030448073521026586388520928570806203089025905706590609229429846527379305828555008832540809225605113987313616846413053353018901688812556846054041237547505697688251196807931207832665997346949825114812316286566772436466673842790705794398175119970342800674620646977479517762869005363772070405779750593251622155915795301219733288671090856731424278728148278473214808044886905371170790354607600475762354610101492424019124350222865320833921404930359427332508550007158634829000006604210306179787133151973096593573019423140598974647416794450005665752237821838674132868263944168015205702724853539227232340850487524857029643229889110862386956090431267788831189785868164176018992833267528919566255418896039057367110398710243157732519565128326865500845937519447316655717626692212698258447907852418856794450992531783362031617860631479510735044632346164022932344617467840349549957049938933215532900237068274008441446739637977103527086343136996877050779544355714242193501347039938983650868801000322806684333967212295216784695481550656819839281846020079693758053040331396502149075792740094562572034199346579155273874131495896006998368321366057670581076444007914003462635056466767978035402509550806540381087524083237131786265667133413300306408253568269364797452261654644700458417994393735637284274285309773249575784845593184761019562974658165695901733857753778019827342910495222720994259409600787900764446409068846437822260215179870466283011754721655473379583034218934480962241942595653191578458354836685607854976561207392984618407853351225917296789739529307221527559524667313714057873747222393086602460742638092957953452765890138529449898687835807871010345639088152258801156244049014400805114487595479254304179489678162748684316941886221086993068131944398274320438829295220193218135638766890652104192889518768678636072433331284542892072004434797884493345796880791691741914248557201275847789005302125096300579994713120548011744926667404631421856617875815203984562086414588699612789879652102481045837537246550135023777861997931060202518783006754004275976294566140009264554524204515231470218896659792863225708797284415948515609241233954844121396051455897917307758220864070188929754927501575612642556220235871813958885245740407886206528368506558956534768626030392968828456371704781393628624539080037278272055417970156414215099300772789589763763143437106367127052744336251491965210345183294091925666668577359577525687325582307688810882046407392843135735355638102929524134497458605304312749576389637863641036769078191193989157432329369626100730064003609451915063102167069243575924688732889240010364371932641826219224309339573851944528234850947599622892478573835218853362516332643030167371733047955020910019993273272313187891364219964963844704265317480137544395864213188676105484606821507085409863063383794673464560755291070276892749362586224332367460394536428859436709214808280684740574868412838493937975923552144518158680578223080277904428421446736855676618196909991996724182379969532990680666595340431318002175287011452752337387088813152216521877645126013159524945089124730724281699332523458029000942881332461629185947709542179687806914135911698211725420409347556730117713341768565955976768048874769955182741705902538328657829183978852951608029666967583148381032664303132493252280054905779771076746795272088236003147175313656630065721842087072797286255837919061866274281092968078940484199763673878942846862726569914660248745923193603937281493468218280752433941230951577732856563342790635601028712764122577064958406282033488873302742087584070494847952381083592785389190728885535983549013169515377769154659959439708318747944954430638618704955386118621865785773136358336063568593309226556237322523879591565353640087628674988192322483741139808377220757989993648900411374227430815356743712305003100819948870169849266063724333375184592954052046166999605898978838425645878819906905012137120292542240778604946162029754082956029292715243988819539544601280496006106343943932494963897090552028910646463895109568594790447931689490448848985892164146126931682308114004499928618057639157171853576829235278356700702285251635895668064895713987278985165267739746408240637358080312325952935889084530971223124109467454532594346793674189856567646256434385551360974747702475392656412088136507211473857270656885613537385496559004510009248721420168631887581867374747631379310546682726087200876509219444670156162285581493642620629501916408285445084314370659128408793756706943353154920706798394774109241570866342691583027725990051936708838439895394384157316075380678112452203195729681662194995386361446300919971634116071672464934068848285441917768525162463986348743827823576785009469636446323901623070647572372808989891581442934455953036068432783758925224735103970140554503863653259327431964561110464989931775920925447736974090521413528322702853558165011310785031944634021172725826659330088707810559129801178537566788273247694991556127204784702301608277489795145269592442423318368091490544382598029623240069954750249025442918770901274418446272300183431560857732411417658035175997977361521745665769210809285652743343228459849376668547788693982131950807736935373284076577144876425348963216625930248619113781141798661061084818702727400773454909647387078965871427188666705954898451104899889973172815674965868945331909416238901215473207212621363485227001965395419874642557027279763625154844667613340290661217017568067479424075960529531445161044208027407785223088718763789592000823522185240998897580117727394747983844093493090694506273047886456635511554585259112505246712360307825478880127770909958702963574332892914039166156332508843720083376186612998521718309016458693781308518948229787043287757308217548593687627326475542127846889091640054078393586550192294111248719916992453131915759636846757662577913855628095846227174450768387571192501641104798594125996838177801371859938097215787957130156163074643078281743308715031979138447963923746563266720896256125912661877892796188693983462385459705796560306590836660735527408152798300198855473590307277859346095369626022976277633714662170130886679715318149222512130649809294137823684714333359205088950523067912128577402309010603976018615276580080102303866272946209744714003492760935602527315192064800420265750301125026114507026732585680469828263167978722032624447117570781998682411969558434832889884780825667330087143856371726137790813439476151615292830846809873594249595508080135788501290221797594428816910374535871648779743535962682769948109575735814401612072954965678075719974261097432797347246004607000674165065416328754927741596076905672562305317049668884673806950057718316218373381036915662538618725443277308602845916088034385984418278444956750434300609622063572603018839826091304575048601027675667058565513336227978696548756024085430945882104375652607497198676332900642981519186441405339442347739720276556617304195443691926671324996496006114973394419714380558248999301868280201374502854596332265823864868290440446635057897434941735582269490221514702301017493581044410233749579483662842944854664455994387556572495776726932183513609544777276828100805902518693650638529870939015568648374853277069788985830339660942877339164824807660092210201299516436377007971757412056292703487986506519392959830027400363949870004019614220046419107667764843628730558535862079230551184384138161213118122319263173576906110294531143010793632643646504886579671396820890821560104615450639098198742453332551971908491948801845652325279073234716091007312909411031644755959677737577928549151275104390822130976721406361422645665013539807896131862672546486444334966352224506601158216811285643669256838111983297201688651170824611310326262827935138648064718583382458067031024361544260075238466533659399024728447851189830479470404514286392543371141700487759040237453723647377820490816104896640322107843637349847297223214575642462450223385611910359533938883743652900824455992486778614256112802548088545050139673107072087646227795569927451797129095751182671488295769517780058652273644153575350684517164692548993391185033788324857614152124454899961807517267852987508435631543669488414914457116921759202936079549601516703659400684973960283731132124904488449478244667841100449740807133382508017963376752096271758306200902843324981537627948162349007279549612762579908900120216566912394296649423017106424707972260396562753072834125804331783995927642662457094025813766548786979389127154843392663029753988988951298091378692805204562617127370668302177990420655571787032311907524041792504524045567601871030307505969931329792337890487427234647806674252016833915632134593581783024147312517154714893593827912835831674225354962087570556282519250984961649024969998219522420624528065802147114235237595367795505710505569502108312834842471651544065418680529066361604463918156106850413657359222994794324787755592658451132265477403779348988942733793391698033600419273871424258504613087957319570944569670486695918488333900147842546246941440360101052046579609497679831144234740874265798320834577901565880484938908534572300903605864493374665343392597645599149092131822905513055086340860962222731224991857602122506744240257229471897204912156272125513969953717825020623963226333102238649331815576453642887945414528490886336567301293145467750940975001590155750739495201049251145549900142245280784040638237687732104032988092164721859571941694002278473589367209172222264935711479780649635959231395458554262674604450506974970642894747632692638780518562980731651700863067790913401794151324445600075157573656904118435335516153597937168984290880817711713960303502531587907959889695860536556217548968611679708232157313830952128800647032315053554481858325706181143662125641251120468075049285869832231011309057800165538957767053034495576026208430843903898079358399584190683912412466270101031693418899640993749176077461419827336943186381572828034407298901600046136874645386328559312623831949709432913836178840780267683579911433954241110446514175146168259062451125867489881454136956941907277326825150630279365720250710126298148999256201742784148048057170759096740124911423292915532203809270056474781338643454199113517290928204239094035938250510841089661198664199367558597683004668579891808151559267214835935319731625135113309897876225846781693908654441172419854419772870859573875683981557478718554280840774361082788225560068933532365358435877922822217464077931852316042799573738729929500489522635830593462256027289348182469224350227269027909811952374115112634049920400964296482345175196295388993292700248529039194985679588159229040496902463657853591360827686036527256742578378901752397681248268063636013779512211802093124894225571970841551083810352120920716956372410129922929971378454544582481746071671753322107306943623324441611628940455267586638054169115450764919526992975320545478766442173462624394535439859114546478295454565905403129489510963258225308917181800398061674989687975439778223773530102426690856771094281652910009261418910411107373471748665514554229153754992700529885545928792533874462222881997400760805320202521005745029383539768099145730421558789414335394420464153340874650519016036699503055758863036547421810805587168888716773934584519091870251312997909298030292712437703056923287408973193208715924556671312408714553117092184090551191198860247696297945417068511920767754969495253494693633498460285608299294452726314077157914823309914842331985775909733396739774359011020840026182990277411409761759350660608039656007724537665890415740913514248398093907432660532321191764661969325636136143562469813918887064803065720891837707515764637607512801729831938818440881912141180079086180569696206182312523944505014425291854635747759459268721138120112713074095323741716928143523823756616604309885752832333739372753561905484243468250632284733523083654381257337709823605092453373707863983954090831421465565955808206069560105889629218053780847016615933672602061708480015729904556165863754731718514408275762342925391416813080716458560061845639719526618906931244406641366458376828596447584531944290088328471140835375940002075478641739896758001689329794432481309366812854648679566368658149456003095597882534290362337103328588280274477899105132537370378751384903864858183527351313336492015628830204688207354005005117018989726295555317643021206214426195005876693605792225207646530339511396171223722978839791833959289978857830193572345408425660641313093313371292638817278539458983962941249683279942305419128640826546261773458607900326249786397693476296638821048365421255468701247412789755159043191555896066800545955397792264250145181708311682460012416951457307692454628720589840515604285036120743878379237075954203366575892841771921533277020399590834682528219948831666534702444218181483716902578808522726320554537344200287763408315866761648441988668472569957314040611962761441394515318487740747068063700523762379114486500605259351120036322931879352161208734665486949948136078540905036850055006140689522526976993447627978225125605492333094107438009415002720528917387210533159044524566109882359156090975224500769211503563499589796763331934564432388041756268523839515563833098611194260044318414877584194508777349129593959349585289722250640594054941777978111411814313997312347580526428532425211436933975565096916291078327484189547913020885019473369022184319810333162796949289172280101850065692141050711069212600743254944424564536370172794088134859274656002960098888414267019166962353232331818255911466277200900502579507397028925172737083751290315393923077943742194536771168746332451071031513759325930915269235852458623012684762304102375684116053663669818594578262049215716162219544255017314644022349915994151441910151414674078243078453958965850338014144035057563474213341086845092536775161263528446548878492850419294515779699659107828400881529070370287613915868176957827947535215427375640504416411321549203381596911929827990834326032050468817835906480462979784076928379549883674714600953967350502096922159303371121180363620657742940104064576195090377472662932024270081429983635985441335597605911850369698931670656492244863228544871895868879400207736851853316291474005244588595789572031414566507293682861809373819374530831008928975251189898470102832844666728165855344428526280189214569836867150845885968401146643256448673505620014553939112863511820927200345158348327238826071150443143494035687564267520593727281769889900241203480329256738722611889152191708285687308922732717958622088986703216836401371248275752843831415874397026733744581483110736239086898078481817080126690214360723363561230262641028164244508609845134639108453421232523887807705820838153697645681828512285953230563836972796372241115645873853067124927950098134139371343870693952896668401216083318825171515354943901265187801357332344094087624153160554220411326420468102909218454043138171210812559506839931601422743513824345362047527644043559134001760699114834300591923993905732200970607197875640065119086441981586485211344099154923357342524980012456531138320348034362929264202107001385055246650596678289113656221021429537149099249182733253671360189457688976671533020651045703249112876895792981270275112667469305159081573450171977766021656164939000563998115872463146925505956794347593830038001785283795758724814746257032923877966040426248184277368767146253580272144404606477693269190626184031516435982684753786209304724944246518948557811657163200673628631299247443449669847490312489525520849633993116648939754150175871256072415586662662800919360120405942677496957288303463517237108707446360803055746557842374881527123227914274860370558958413390037190399276983855340243615210256312596287373001609760322157250301868748731432539959319552577930825972019546275355585646177123344905826716640050255870071274108605862569437861917506225476027080765941846792413527898933846251433799439246327716437094478704550649076785761009704094716273654531207839824415491542647186376698035920691880062374838911557855722504805399167231085871275919953080407403326449583863166575032712724018054414156746349572424295820331384601488901052186367892827086867228223415614799505346782664961261458495341657771258301544165051843030464477419530900516873014651338785917947375765294459474387712048809703427618420893200177536614272594843425076950034857713715589190772890772078489004091941388490505494030857199345628634290806348573437041432773005556027841180678825076111929262787793254990533900719931615986910329577452212162726057996202758990164725775509444117998831144667125253305089348682164804948349944992663392986105314169199364515237823899315920089287384405308718162612143779143249966715981007596313596267883913915557543532092652441649443755498749531168007766444611683963808507517546157506737440806944061717305672272175415027618484061884799952520260687399041196112065486262682916624315493937583431882693306273812767085395625716703302232011214776240547776475152015797892150135978051310843278886099083836219477732522594541899588362884609238379038805992841442554549146125311209982302964443613401725250741810667287229595374687548875529442154022559951421393842658333073320476835284767688904381354857148531589122454159540417583524745683685220191903222549838254898752882137580615752750853287386673144447087397692893031887365827713771846310157149713024163665160582530558356079661911147750320827116459140375666051904702045043269009054218133127980614689492925455508668090554244529139827370961416153783164987106779123154795068567049646358959216328602593710030175068222133289032069013409721362191866225126213191642046567417355585860384707829047042835407427932608450817615274259235915787963504789045206600596985549685146301954250249665211335710176881228202215876198067797153926918447907480263315237548777638561027494863421986419540316123086613772054035048166874631128625305916369177235651314406337118446806829739599193783727923939726999878086552910278590954605119644957359984290515029542120764756724271176133425050702323650236092685211474970339834360425395830936354072928707755417699858528107975993352249044695290246261613830541248189546639379897735071816901293490578988214957463641455498289225222569667299433162794106726568998886004655475142690965458302566760472617344300460696989837886072169558226207458127082656974492097956649887682638644074002980434820811689889410330770906393606110498598660582666959494026243686531179744905256973690322654898278058361534067418927493617867268000466058646035604718348194638147279014304814838897639160903205827773273107032451404440764925968395907685007342283764392936810004110549930218259297338969126470146324810160596350920154670781341940319203552753161862970386816936113349372922494983373511073557446884009634886097122879468681444095804607920158473841773739523538746456431094739215117435586412819600176683042029241208652237280068418425347120557053824033093086989061689950335204951624109408080010762320771193234206419503471350634629932238075339094640056272647579826803007296422485505032905500880104249117093576953808413511431467451646366707210822315441631090178256630318371774283065761271584680751093738374437063013894619219244854213961336296514976414797614140338821180072410721746628834305510758983534996941908297088026111213996553631469065796767327154175049097708169084627922559627784790215546613053347339978784019222982197060045162487576336316654528456466236434902407503827549725671000506007731767056971804227317894751815795404698479899190965102116650773020970160499357703324077928877625613571262734563830181497378304700458359816620785292706355845189373345132818179098127755764171472171154736410108516926896405026929785413390802793749687736041848171028600953869346635316812717466381714003777436723702148981696057079021001128632074456435895397177049739268658299438499176742620367418903953667192905525851302382057220622728335447811228916391576106721179272838342939479153409052113712019032282515490860044296887036817323456899836875050810989939076158396537425597716925749277812177884160665891410988031014052682349877697458768583343271389183186577009848725009001939647396510596320499646589263978673917155328607777872697185978651148453114864631689676146151933550696727808382317885064968534104909243164154524321528568369424004888058590967728525224998590741019093764756771731340792891779367258647973069563562616576632697173060601302773552261935606108181698729675169197198657176107354222950326856130354220750096338970243236333551342647664083667759260164977241970294167171977748063936634962938275487833042357953483341310185638627198460302252588269503130503487178049118233300505226257159920248972264312052788444080043223474946757489242627973379146648982549240647778372425170100722363182356420906382524851192135987244790864696866785420534274636345928468931021483393537143123150698749105886021291103421112107781142349820175422524058644415194135847890460146655148118666320407304637976490619226948939716399938099039990086723179924709456141872753053495953936991823168924178715123778104447979071708571994266945435332431491187348377428790401781213045987443384301510180236837038316932180942392371762867216494956464063591929418963687629162922897425513190742937424308167939876303626004846655542028456290838208809319871111108131456352486819328645827810605164389474363613187096790238141939851574085196243325271490500484981591765580451261951655288343768685698671881863130202829029852313689964888598881492232967176478680268977576285874934293285739325100088651736258727096619521244475647981892435613497559800868942313707749071139082697732391555109416200383593438399975401370171915136947412730290867343689978111126096261891470738989986766457353074940917223054194218392507969961507179023041893829439701097881690134551285296411787831260609269014925936733844954505516982238621962136447613335244725201086563760624418314838476268542620751808133350249543180775856994367664033185455008686954096057478441315809778211098995574463365063729770220143840657173358230995645031594514430551783332012044619937746496440244851939635528540705894373077912169548927226308288742975273168109943222252901000781948474584675899153442833243730433089396193910080038947688283513093964106393707724947774640142313265936364858046660754555314216123155669744708229076503879358596712895798857387208434855515643273456186436079881718177220228665789633251898723588922866947078491906186950442316705546837053140370115411778403353958518110831622857950368688604155291570379867091646980046535104861047158311777641684526017703694833445848998146876347733905194937233753161261216176249511715399174198066087576911788040212226249486660705997845601817308274848160309060584681636644941468707120523840315906198540372670727723119528659659423123610553314713130174485399170590616256294968115899539694627073470500496002273002329675837883126081162203010590864095980705175114385293534358598721946277387722992205606742855285616381809173815074570620511909233671361383907346022854707017573990341241828097942815429752781886543340271614260111975252265858796191317060516538534506390930505643097009284064872684430010333249497735668756337772177644615254954249983208271893199145671439203098022226786550527439967675064183974465080996939923728429172245531804269766407336147302443018907119772570184351679913815620283565288049633849296640254001988636302822692696511499117012165419235330300371353767683548758840608952188350167872808336663709451014132996189128210660265875144780348028605276289364362347414474864231885576520252512318104430530292781214755343591851923314546551866380923083600706384540079453300924653498325252571867402032585304688926206039741710327006580297613936450968865383288711637415706535390402732828074214218768528394668029512224189262913947213534776431525863540758959871066459743577093019630645127132715037783580159081868939892369006785345534546030069839030156460753195530790002297440672453585290547321080354378154955718547232898581929678919896074840900937613593746839979215343175737977301117060312693132864341138271060374269141398625964088404028475015135062374752381195332720496839228152947251997683533875100074370668096726094629264098859023663153358554478950581519918055540624671603963757000799611008612062039392227746494579575621097715745929428494257801834577302638960951292256251176151213539864878650554592733937411975042695874075212348895783567932540522010798784823314031601582892262531278271987246448892444094873664239299986063106003148120874912869466364941599567822154402308335124607820508780757641459998441930969052694413143205941366131296669223936542586230148521958898978177683988104537724337211644550374861534465107832019339486781427868611048482984742916233486155182282670366886834011456584772306344817207274490020706220780821357839454603225598445795382132267102952700826005604142354682854832246948758262499793229103360421682789151763152784074282200262512972861745020267613139815805536295047993318991465822650710818545652032901054607401007234824029909921385968206027443417748545904065345717066341713627676086506592382582204304717553183231115572507845282691040234794914477119055838934660473232763132381543599913282780111027577048317141882167378667149265179871350933152880558006536672814277607064273307021146505166061175234138205971254414407334724951268657352480920740410659822021746529537632251504594016068974312360381102957246220257215688737946282024376748367409718479107227772368471340954059830025672882484440630590220001071417192922951683106962381689559700093182613281425196771402026690763659742113946693883883384497681238574104696073686002738154468520808181905428650087182302040954280158219099485143826605509626258163550633073015058546573847747649831029920332277954044941259373453996126312077346396122848371132517562982425854387778111455920279220363222200928331306421311061072772385758551159717910258040806295887520514642330906924990323162043751389472315648309965784009843342268748099655591115336703613253753785025833369709376887040257150071088305823563917619027688079063163098748336837476322970292938728155194611776062198513306494502829924965230218990529767011922525377028493297291482416306672127227294757436873569627172763154026990051507363574880473554052257684432630765420806381645201815425780857530241330642848587399914014163086531381286134284501044357819005433377422715883417849263214201509839993344298168346342429016862434661571264077029234525472638068020343429387404667545696402460142460548311727570105717031094493029229290702170610235425612639302785754057916368280068716092760594433390983937882316555596861178162009778411252596398669704375741240983296870708656157283912904944529618673320977856923755272133763228036782750444892035966031475355062811761576165897356696995388235285929458355016423807738498516811824214699740268661881091204137602853265729164876748116309344077798861306491122520979387725441493601867994551356004545550899380860945095415360384205271035731586686075085637623605352425254812828620165560237269595533435293580243603211431480457167543803696524485629544959141061078129591320129547878100145542224421239346242270013804237550270172392227291665351287254931264112506116829955395389727986480591925213339299547599897867811424856485415643229555041565327375222060787618361073423441533722514181411191185955591567935326349665914120465344087670501486980492652660693570923550834429337669858088398511801062571053423378191490134858183462281937983805407150479372038927853816700923771494828443127000838843933403331771458751744939532847474192822323091494088993144418769962973908066477488892389993113088310455675957520027310681905149349219859167383435710765988307463086382606918354825109982769154057857284413235319957521936497883614632943013811061244445709487628028465279761689330471669047002687274305771644417775743863857619032864386388378123358967975898527478062936877438111109337017003642088357483104248620837203225059686886185467399492622539308985508640107743971076396062709115155467595953563957569143898000922266601799278010954837682118154273190409980039139576796066844486671377124068691997315229205544104265225133734316115495994862959394168843282117703664527309006893939323539409634776645351146878065615886937205389849237641175237645169321008217631926343938393617700554983634915875769219604109557206230175956814615746629741945923579278486461494136855284442478690193367237042251664215123625194303773728316856365238828503018668843887288740074737204101398994438412788153114758957321301733201046879198563416703067987927457342563615019666867872058649043693484094269926704464919806428691429803392565334271125496115133209927740304115724747967828759822857247836971661327277256627539839458595273213311802335362024103568061008004910397536942598911897411768333774911930737796663608470795865814281681790221999825142442709386921159452263064750110641973975185974962538363533537885835844065852312239656698624116820669295462466609148976661619342517558754518571923944163518175721784190966895487253488502709529577582027878364186929516390273170603212302407642048042016950550743741864105760683964970209659651091252515018009001858057803880046772981950978614231885792164507944945529484223151871278841564537786838584888279044984438217940866835359019382596202181468753815826804218782490627468159091706013979341232981838121229175124489492203795133051014103375532101917085000312628496913950752650720272215611581407991876019941800256015048170309241352937017202069312207727422103967528336638789638952198247262002028081929154815966624424297067827026108814275737855942520076994140609650971739298658650379952692188960694800477875006579178187901915407373704996651121156979826077179826809886310037036290268487251162794767431092001200910631338605881902402480135429158046672775003004383304385055078744911237945023607789297709832158296010820165431492687562133423202014459491583653632414144609837704575603665255518189915556749247371678370411297733883670092922563566737412687860002572069469164137175362715216824853523004027972991980241002187345110286270536936185437321211770119876682732663426944747595341083126014833464771915865552628478818339312984007421197202804032791066297698600379256163486891462872172666068043676183476604692990689368774469763603999797930239063609113084935789087301022428331969625711901606822395064638635044630008777453454089737417370810964474312863870951260652394499634679536751210912261268961758981165339246906964464534824895752333698506222413541544119846277404238094051162600493767644200831733892477226237621129934048365069300746031963863118556389127840133768747292237075923342926328261707748093325196264952542723132992856079628288910833839595529467434022927951335205030607405622810294287813911758061493562501325658423020871831832662343241374209450087137851750747769007747111934898340977692974113622093078872143557666715444903084505548929701747749992230655416241323435503542517422001353451506379013138908881672695482290540901942334716468947049019302416236131222900127080795343088181160271848551224369790144270779971246313875924819351572765519587638121666335860134356542620450573279543774360030444014790038964853915262661094062685083551634877285733005915557990113297752210040501828387942303443988898213220245573181433296769685223033335684835267388896572231018022506501022923595504481680261457402610889534014600893612710093374169495121625962146209985987991792215228594869836566232485446809931651387978850677584746818853703384687734394605850470218122135003991041092284939605343957453506287109336090393075716648942064042965127083891772800284721621776485479037525060458636801879366444722283857929919513669442772424760205066278227754744544408975638957758360661765780954483283497847431012903108370009663052193189602283797805347893779754350308779020656086119870030759374244652794535476449904787559859338911241001498701315678609732682224636569137826897540239777250737099202710571062709791550823195876447831166635551698699233779046887030445347335243555126116220519114396745217946199352452666136608099768508628585100326460119413007483653098923161725109978946323878946422683529599525239772824563885805370472955437847710574259947814720447570858339175103483299142709855717235078571199564506217640122474866737356992831302153968319471144037115241699854621011308863264671846042156346999903852527729931604272995380600667421223599530034247772232004771239818581348760657203198648008306081798883068321722797920368686292005322010379387363007491686203223746572263320016921995110627281530497869905514899554214927123183416422671109804303147956481418348868631584002256071551826214976634691981783674558803934436999807866138642951971525799943658971190441796114363304193551636575264871012008508251438060882967993847743211296061489172104014727114280183011766393055238487707344349484983202337913125528906548589931519967639131981846679355728614737632188584752965062031507922052502394485013870776163394014690821252985645834676895557552111448455518172847645369013792653443585777788883110487399081013586652794273140586513524627939896126615187245214734564694089466852392881163393315716069372119008828048755074175441890371012682088423251295496144969289241964427549275779496124794656284923370566321358070922081355841659512222276924778010705061513637270915458748396006848330982114720145534778238661553867620625500109127464951654022917624891649358025463671610634941353353953765029645689770443176511236025532886929886608605563918554838711004345478737550714666727382251942592847057133445488721669240365066613694680368471261158135955210435256328179401801255312529821767294156689357242344066239197523184698933510804427658585670875827737965360617792015715998615603488390990481247240166259752500821050010958333384408008348021648911729109401879022457324856861272969913514432348670937169907328972052442366971588003419280232170331055803549332221405937592809320402599697288326210244706991930136059205335298981691218474492210198740732997619668098897108799962404358501246636559432923888996930899199920675011963447414722909084755394933447281528128991160029615693762445816296777150728515044124995736294406740389356677539956583850361419761335798194275259778696011733380917295373562890007266980945727917279520705259242119413308478543610353785628801773158298185331598252015412873293351441024480380765677722605649613010717564398121929379264888721508459613606585806253134641445798714094017976627349066576217546633605039112091053607252147372587010257130139851980040071967724274100393599584959945400573653322143619348238912662810100599793790332007213493324848345209853247829462985455909981629734267270858686674125115721812549831228854060255235758904250195258697044540215192918306250257787356890823687854807143392422544504581805133919992036431340442508041084623041598476222833500351432137385354832104878155998289786973079836107455261070630365107288364736349996099024293414089904970533317415881001377445530435935673956777780826219022934970415915112196721349133148976935984684835314852063227567073644979110604308776963226886669805115507029009036435323495052223934685838021002583708276153212233248808287967281748738278275552641355742339123344072893531919155761948478330778746755936798486048132284581811544199135666398946465031909307249766331957017449262833919038814192312741584679237621018704208016769106078564033738188410047812157503127231073844955660069693447905273203439609995351180004712684571497885224280911433722180774460731436239174335615733178176038305156662674740924098087928103723887358387759646980785987976494194785560275234433161161886373428804408395629665423084360604361012013113268223729424604563696420540938000249451445195173829495702707046404380335750179427889709970003015131480878635529334175497630235670934451350933776489444670314964534903570426054940737927809762556954705234948419039248996583283260069584121606454603128964435786867203431819997435635574215740919788609850767002601722372792291578708616141068320913115556989060192115936258616651257026599194159828790870160181476997666724763606287116183640568069218995547824204305701016474666097898499359408005791595115323670571355301498366971526609721859605769523457170382508425327337801602631278007293512891763407867995519003138031656166054125727722276972350391076182351327478052875483537099842289947359583833595622684595420682801638079865566328532060914618537411283322392723438223156103270672739257211069518257051973862221759683272130217782266857819122447021743711934463896501742514492675360603731915470841078395467296903166423065165611848898772840180353276426740294729590733983072848249757227134408962645672424366390793039427198461350218003077795596664477864238551969981122261319898751083078575696353498728842041582068588062215084819158475002109259577196232171959646212460259064778932238910168974770640333674117477805298333361537865548636901217836042472574526530931277074624650323689839743727725994503615034810974542571480152133790270814524503446024694190316276625802746297572191561633657642490474260408598762369616015633484981520362323277483396412784779920401886005173140951424355810362031867892803652382828467083050505443790250411893659939301397759002304019694950572722581366992539970790180504658596591509303158788969089414201767966557489583161624816506428149827362290023169617575249379298236021279100368863674274914627535139396896262601661361658260572154820589877778146366468080241191219067673944583951347725705552423812620288742906613569752199004809720289736451767772579014067739125260184279995129586242393578176126533480206370882254620026631675226801684482740569301234925337615102183529645118765974458698496617806307284414012711544941732871701980406063865121350657014728778001030211893564999649463624723960762153303742311317745483695507872676409655048627654028404225817974740071366602206754120982804875214460633514185544347333060350565980767320038670598644214610141171484511210164584098918853135115632751539135508781637023190292936034244796301627528957533493106768005569881349694832048269264569434486304518221652239385188055833275928803293558913590340967887479082704987098488825563912257649141448040531159005933574556905845931415548251450976241214903008625627631799051091543233186627844514859695369104030728170863560267095577172770554283206143682049828211144667387761186583777248880023688651515829877611158963695081071341483474356537137368373395973036664335955488035998831742717506346101985022693594137691146275909220346291875157577187704831645486415872017910691504347424019778170232065449208132430140317585099614578321339790431720674718348031327781455582520162545908301517741538344467901467384530570947353632958409484748626245158413045577536339284208612232513306773795488041669809176236932019954475504273896496610610902662941133439030630397459470678708910309509669142282228379760848504492014831478747901789884087152030061299799694441219434974869181451398239877896797730263692266798646197863978820487554276468436365770847454765368661695283325693108662027421264334227723198601886080074851005853446482709341405156218254130616820759713920114062436725300708421126373678201857897316339734790308567504817314244097769648536239566171508568294058881018622286697245727055251322725651489336055101440157057296538791243382682163265405393420317642605887045606241421179408532793569503060460748657697691869809015533935286883350035881920158680335135946006564816370286705061518795511059186354901448554874556489296864091952599247833805694439709947852914525443545360063917374016238318084249553632817249222908971916694408151114234798203079100761410589798139923952217431572661840547820259233741923530418810675187610780486271574297518904314321458555517613743724751338065936501339564008338381944504602612380209383320390030471796033500376786269017468584223418198875606872823820247700078297069362411832574828821156762850775288287187014695965371078943654357030551949336652627566046084701959105476171789549662743206922637025882589999254848217083639872486973925385666247862287981638646162421228974365115030094819935793317041428954327305051852117492383266976012677039188433622961195166291666613178975050364274717103898166540109181762875848989401635783525795632572067861836148878319912556698879594963889990313897325838087277277692406910166596567949212048934053654685783186856256696713250049666318805503868397191767499993961988202062523601361443804606202489581205484603913961886677585331645407242624162802624595216207567952374556431304462756357468082989462050464733404818440031549453196919560063344200795526597869745914414050462985928683218404766340886120813396574534455012800000175545484216284332416526843032058306562116699083146426575706522902779038946469069149423145693459119673500018987495956576616658737586117021280319216165286339996643828594065259572565534902903683552789802465193735269541975507099423333926985734804487483074089914741032859908249868198394739112362207534605232464142493674232459256632982339416345812554178123596151193729051531804560007626179496496520480948084839222693844845270733947380511886487745670007738156407220353209516422569281027743605256925252022883776382482760661418712888622415385889403644666155262408566167594940518669844362860582852362463350677396492227135490007921236438795233581007396415072748806998537691596836794115620831537241641926311371585821034287412169482529035675772246649036008483145387072760323414801238895422473043979025693186069928513736343635200988212819948028087892613758034748550022763342734522716680071372896512337565277058785496883045015128551312343131336370232078108788354589866614736610201518980891648353761763181844779204258425192025226547745925179427672623134292836729299785325611765939256800912593773055240406950480250623882918463755175599404514472450181942257969769672346759611092911900506792170540745372261105338262515906485667373923709847618926795861959238990533418604699962514038558723012076387568968646298156696920998150498328156641842860415303290131829138255996369633763101141290783232917292086009762815627995555787199891730989373776094266340248296228855179478901910806997683182939149641618863627687296147260203843708237270969519696130275285238467899242101706884167456991654719955688580895840924353770734925850873678900731734843230309020600808827276015488987230449555520186407329806022431835986861054052375735965049364408952430695613851389113065173972900059568971160718447002843899356734814513298431714737876937927512943332100063129465187379823057161259133932754876309972143579225269860849523854956283001247767818127256145787370056801286551167104967389806526197521221390066292539360339810037917915321630864955764006406800256027272494326854088893384097020017615036580179938653526278953690000455169280266340097372154861137313042888022386881943067185540753280690214951888165048600072686443841425858169883145340316783649107087820893944879117488717643477269569913042315534742210344488090444105490365619330375711665430865317283812050624854070443850221632292927272742793239077881150776194396098732835484807651446476598186707116445719964295902077065083300124326386681230289339532742991110054770877310327436772667450661134382122572412588257934560731403094282040741243379304352359692886732834397427959861938042029338837867816305797074945330113270385379348152880129929501783853912471803565508369288422148709050301175097443227714532933032608106290531165533269385870453015188500052115395601687845222228680847145630414428017436307219071261941696754955740834998466322117807119004920818671805539592150860070274834759826232769497895330991228408627029356573098201911720634915195827745717299736251568458533772690404142040074401937071765826207103066909800973855797044750113287317594503299070903100084554292698073814260721954098064105596964802162550860597749764296466725762092509017152270442557429445935317659392173696638553182246751209785720833441336787913029053920604982268821971682455866040310130497912501055931003407800722870997660332819858851025883895176297124359252206609456146975927070881928262058471589344256238662602348399621472507080274300363658006147272945441828970105684296025337281388930325888753469567073579301737134389630753779883416386241681654836384548187145265009366061584264779609043851398395638499697398025607106704647419133988077959758052147894408074026682584930400726506792939321055568921962658807172070921449031148265786145051359986850395686500809564469091179774925454706082021621757606735327246206736185395954576065029801686953188863988353728151216186007611707566874129733207526956313738804631350572988779162880318707776653260455271183136526885751400249411986994095639011770463389665136940873660768717755379705834888212889420746613788986698642728816346899752521792563497283502625084750627611655100648998672373318776265063010838001135767094708545765746376001032783041995984003391632862230644166861260922421588931569401265380527958931615963248547348246461796904609481359015981910120613223129937075601587015847997092146014610930494654090726043295977180095558874566335290631881602803393025633253421536813332743352237128078235001681701781273301510922600047307163186641523516916537888474782805957246657732248433163222039681315995347056713972285592946282589116900136989050802465140937463643047121924459614599638860840070162315526177712937688500432321159443163574041622988136356014798736918946328698592480625942292933792774994326419832586676488993436196263419313351758431533493958826883685676722428584865695259551954294972769908918776229337679279692084427609394981707533204139564840345414815120777090101815770873153646916047287566889943382678414232513478711680770724186688929881234867041353832564919262996961372262648529633819758167276017902411152262011951819440245387023478814790571962531628815903334063755267787683590218774235143356748374106773651740873805188209096998778981591368852402991307533681897019685218296372106185372670678517481621722213645136895262714551185119693453403961524061327898000638536875350913293273778521481992653423909211913042123077475692982678459657765053127220444815123873278948249204894524756392601100974501800297976152020852751392280985388735342862688064188111158948578775739849706973343033679346713346460671515001081596281726101184555644760207748063271398404851025067226886683342183496474610678908321854952643051790134643301782956197563149221768260288090076921375199302073954408105286656049407247691575139451369166886529953648253408102510109635630976410563640783514950606096682313047905494863785744133038088121091628707023516848897050493017288482147741122736798647201814831514056592251842664321544713074585952143730676141540799857130600877645488182017407258465651078474269137716543442292652762930432161752827061713062911878070824718200476398315264530839107946723807332089713712169903078886165450847327706080013610189246487428862012089858276856955549036290486750793912987673573330006490226417542078218597504024322531139632900058523719462584451325073071419965792052419046105360824223788160676737201484904898164325591403733606445418659092196035237950105615020034913346932591451706413831424431294320176108340025291388233324164122762286737581112243228722700107056897033069438827708847893593320999016520692534329670028604341966643956493704270121139515069003614235612169039534781083873351241836234479386290786762917868541805402837290259268103675281877842647706654699557861547193902599861866057501405847717099061046695341127116896219807971086444682116866279092726641223616627651684716858314509286400796045132190366748444322240883145138974991971183896223952797316623768728807418304041138383210017178448912586869296823249910810858681865282467236344546356927270657509902867847063544074233788614289706658174807857095086213489913875092025676868622986048492700930579046337483849575458996894595791205180318562579121088362624387825708371666205787807470930676256802075523387675574784277654404131402647426980782323256779364913607492779281379477739638649819622166194303062392356178108273433241032256595213582038519404563423264203909066829222875907715106547777659322210707171369513871560167298801219695737429961613029697373041372600091428672553282675584999691441793474141717322385184337998121626856548806311795092952108382329368487528139512856912464379083713772238543865287908224949061523676666919155849637459064081638821333800513529116431099048554210618981851504634626863227930655093367288609531283288436581370641514440528838279434555017898220838865145221375039781148730559103747035058746122867552938242527171053674011033254440646622161810622315877020188581503789206662051341010767424440053199733350338546286048092530195233705936910579150888889516261088349077119796478100188137565155297998185666354823997582591692081429049015628605647003894094855528137380799636603677145780803554006819668144479125946798397031249989288905083294101732071249273159326330074127337512882616094362559259460118002370545294714990939235928764631752927273870237274570807867339146565809799094076626399286598130372368804597113062917744393903811391914796089683309337590382426031038036952061326287367520329976820365349953364021430874432172644463747821033840279323883974806561512827705939691355014995595892046816684090126467541840814398609708309901771248783544522202413750886291582581230765037528721558714401121509401350662612312065038933308103495268933519044567850027222975347311879219454343733122028747740231440680844990808778223204313502341382089755586515301952606313208145774771768683372381275837497812945243216327351563408949225039013129107586733349144596606305523775354648025170013157386893393797333349692873052653338382255979772971553376157011901083330697447692504929423088572709521329201523261160394854983294616429531793617190181150998257831835585096146367979315537874353945202982351176131408771270477214095830550848051124711905308319679358501711143040754755187066080424512780823639102110040449559721944100980819289286896587060433625541313445417426069565734375935135646369447491467336668047746540018491676844638649607342269725636659525156536623117739170944674782621005721982421578060467599089171349250908084859555466098864167094819464444268556364663083512814502740469964036350883119607414306177209272895742925475212886436590528170378288934209770739486523120425645525678562636519041731020450153043880500048250931308071495992086075292531698786643766244260425439787505740183366348598038711891670471165038168580862529375235830779786841360557784143907518367848890803914173694538905205900000281492590538280940484320855093801436068108355554773185980223647666224585149992738455652330791741883405851735585429537918984296421809104955746509936221857373440560302068955599446061039111874023775131387038223678910671492335714743443025808708353110052763776945452136360463144880383378438309307501972092012192645715897035147290730220848609252197325352111039412166004273016143626387570006556295148421379950370970535284414072544488744676462779817448668486091860886194094684375612872045775533515994338627611232085416961661481404356026907241705964251635942138241495560409668405306575522121665979836315630144035844465807035573519616905831449859503148912550265122058625346031773863715514830226458833443774352800450465197888136901958987208882097809914509282770943517461923470931789845973345458370520125776128812710350704909135161081220421713422253521558054760139753692496031375947019054673775671511837309239798156228432418331823858367143225844028263486018246980398230191548092756202843382369208400804656113893727025603381440599515243384314808678282166904027526150824208737218230532754589820953383451917416079140875922748302365350701971256794139304224665465607270598754443039300756674905182761430307381242137696561701890931905697496435659738039095320940042939669929718490233702988315197515358847065096793815686312498262129545329722757585687233630420686576409804672249538752602199379325594403110696931419963662920321972600932177236574670166900650913422961881273956464450088931267894049225972612170732492459560857718021795694402232262924812629146474429062106326284986972604503097779317651751864059067384649121947538518616312660529135400803179263592014645515747175527319010949256153810886089631180625515606342432828488498202428638005050556210234435952866893348411421049475504654728262359485041919698421483483610448584706181628305062774803348719808266340328118979900662962335840981970881116895856226254806822157855886792942365711863410458583176939512142563119718691131131099137874168905949815028065207665483669014429667907109589909455872341857990843388560971031717235340570996684981297638127853563544580336129384988651181520362270359572690549378695421863959633328046555063435511239085854819775524964515938357393800257339177449157695555341858068193574973045132227596964629351936043064457788543862786299428555702583629724431832542441669321726946792115002438112508237073029787110744905716035245682844172854107065201483206392101658241337513740857118513924509185489733441637152202336138339492312594066410116827930908716236930740525270727259124165053327917171542937033678117240487798285633331436214883089467027757909028428338162411087067156999614481616449197354961970229632213740229502364160180287139579508657303776666356546139279232477264572743524816089339136685828970549650390313850335675056961236336961295746262148743538261705917614043762796412274190019468781974168603408437950809231503828068765167171752630090165006687847772643419685965336450637536600150653069078728428143266172044770374413566887773524866025892212645006641267378564936053667676334817185142080464204669571679920549958650582802793270272227096436348805588344636233479910162227328874233399268802916146974699776917670399255603487358786774583458911532131482640704611019618370468639124294501000217406623106347106011772858079642861433987574790270153160142368184311224989417313519694024835362730170576189054676956304600061876441285506539036072790700752728896762262295460223677015421744128726790203668468313510647479422891072860583950912232867491174710169384463555333096979875313299168884795732559998991576434759510862937746614223582220096665415093170947254493980827706787676600563835683899653463091844174445744037251668121885184490116134939152787803156491979570358457910145936932618621612917045322021048713415524621474475080701858432193832334808961701203427611399866785659611552896399486674697623908121982813636004406332695558139259774293871083036976213560473604815896550561658187191811533733668604222082326669827173782236237686795422516537925524338658218726304524125901330383167608380309056282499027791648064521182045793595977550269479353668364348482668255486091229999528048911276719231561694646224075226397498040635063679836842319818178333389967677468914554352174216305282980134125506117870189924749589320275686811590253739794207611810368386127791462124815101103523065982471782534363179469922443972735356258768723897075267912380538460535616920042245765601438440371529666725383131117444661759639392470580689569228970977816120251055926791323707140310753581534605816337222411862644336235039877374957830667243803469236750042804055162027567572408262348730664570567742000855561803520270200719345267094669117798181397815513829554007346041123627501313050016166806476719456756222552523317606411370717356659445288206659143354075437427153514090024535758045915690253513266696400237450462037916158409302699802980119151451036899263102317714068123169651051544975618583856290911160409105148184564381047708539868281063479169814636341266000213687173448069984697750735945138406504636172954259194247250805377637464750980640687247565364541296094301923000055010484791983164030831390505928091135352834009853511408728496045316276399341156976898859487610651384232596502342141311504571602704013927890226786058079561610905566780922125859266358872797900780602716296127381317273726909966464246173068011437094258054491329297862584812896818656131101051385536137336137526471249663040198050987366452920055984905073562269119790883427317929719663927173884225611532605464573527589373570115309399045020583150273842479366357862884283717508295076785270458661323584770214383875428814811921379479549330984577755893569464005804765083345234488233473228850207000880441230069453474385057154500424568159201469401557008308169772427424531229838048279663013753999054940265125186058807817372659677326220369304476526305558723502872008174657882131893624681057254047579210771408771179115874744899455747361290327677450832871434597899732220954774697244287429233445022620909255870251981449155952808943005419303584345363761736416430488260791624591352771322589784618434949198631281330811918781257511562317858786319472259183136820926545421257540501117469001025405140838591090529020432445170478830958484758463498718375177896798649346256706762456784094199556646409439960421530644492871277567856126669099882321164606575200061853620096022322123893826943566490898599861581886062569348196582413256714508821352004545424559575607750865880466393892577358755916385329054507431053807100191455455723124077771002698590129313380707229399089393302494540289637165759204002574873866034083931290862511036152803759881379778536867022127883639157907138297679031167771138444242538228343186860779307145269920804785786211037147932928247080528786873072237379676781342896239042543020930044508022458694027283578105012634269280814548440369856730283993557117206003920359015483693930957079006081602419358174972451430242241290066773300610085405551066878988094618037012518531183649426409037653024677796244993146751198208487831816098522003195345257076222914185264973638017696686323673929480306491483517982818337519619582503511994790720741849158786123084465319122629235265597554560540709487560846535836196364341957203305187862596344284489096985548607889711126419685387417600198359091755591589250240026488915880009091114065332384553094046327572088769518469441387671706338081704195552798734814292893838984295580149243574219605986955001547070290009664483929239985237019803710864739947551169569642740406014326450506279361814780102189846541683355934951487378988662794911530952447538120867761109994965595485506441074675170173150997377327599685308488096174188195030148023139850490388845400671197928788609287157907708263144471713744639035485891950409038946331449556273999382772327584171147111329363049770953504065475648015714189057627475487305003457521985569774389291032564600173968691371577386989878939281128113704632864361625811983676206556120427039160728143345515256138450744198902763498107015673526465330229413336298063462209776439940908515584579018038579969438302040447440442575623983919375415920754530426628264850124823211082852063985030849845754713493563305717220314549680683435486012937223193473852885351077536692871897635240431930456921718783092447894045797969042847172983577124075664225109624996028217426181244315353769427294943280312170047128796085165172189541978108561717168810676606380756944369481933377833911989646511303943084780761324911338821701086599896838465688085043071386535950419392463436096922757111479553458736166115707297555585668711508690569194308685985626038327482197733655642152979538272946221772249983130678068074922770682190431334117143798410692708163806595854810105850948548427597856610162325791061669255940175420261753214231464439662304358464362769081226565499101160647583850415219718211957256358441110274655484333942108562193071075101836689685882540308947719082821020076660149215152029127173634667536881439164581849602876597128523108685190142314607442135242119332586835782357263587318960769287593569055334425046268530795234309266979975620430321506439673414962260589443408994440986135783924265795028543277462557968300401822336079419681255874083855393021342255926325979571216241811441376983218299936222922089920966747852081026082898667538916124871466667005365650125046679808139499756698816304111755107979117998663056766653408347597791150734950021324347376309165254215445931007429909593806730415869361989390375231255620050896919744721068622508781916716654753191555679615297439022074006085721248917629504848357701355000925705283269954697834750808245199678684527139118709054692906120535139361106059975374153269950882260196483217490404056702958920164275739590101354002446186410375113193084923983202097771554642572078809978541214491597509977130513896721880147203832115600718102500025782930378882804811926322689604012364811096259080440611636280692575632409897751578534530857708438218922513558950008019563781371557725795416286906966864304320011706003750354344138645092096283288946017587895103846777963811768863508292902285779462640043316337742052724070444238156001053903734392060009845448475170086595044317565568138991133896842285150401864861208958342069708770901656180715332061073658238833819990468133431999997381770781937246190590528903845580433493488394613751983126203237481025692873452344497175602745904381781353019957196162225775088417797790422656445954880166496607211918426408999978508308481606985996664771947135098731594409457114436753712116523822026217665639155957245034067357270282951116796262438969370982491177548554893347379546715149417898523667670801954599576491559669273824821526021448240679130296188157497084993073743784751478650630001268639956393284403431716949034027580652799953626739570206483967391093719926007318774626960085234821085836056183209296003775278177609862424156971950912873387243683679429839531983903156837304751726647562118544161319065470629411586242086358101200773233989375218126489767033349604207295213677890274929591473427056732540392745096491344299441922526418871673000627502546332831818883518658469968465890688638537582000482219827460099620558500816964667946129375406948558787032915960112715718939768500130323004866273409689096611594093637195475275882993246055036055491173068231429194808298031943185656411193974590201736987464469203650542895830336792693680251228886186820751031060436253779345395319540480181015873100339850478062723238949984945987743985255828656216442151349279781898862075871306247835838762148003445982138967179563935137395457127675120338219077029112701519234862547423739830975486721252843246750527894703714638810849000947078946231340843264197862163924665877070602124168868167589680388992780368546927549819700990725380890979399891755450171444768296662545678828401507819932701537797580810082730800227583812755779068880869952774301072383649347061768574979946267998501009913939142787827939272766511629597548516750681116101355405643813837765411284532607158160446855897164005872577372488943360349810092588184439925740238502378033062449373311377499276302278967992874322990648497453716447680486493097128863503271524125090311085881859930788220132355264399393876025434664406166286871437351939038799825360635291816619614343716177055022874304443416270021487366631034723683457161245143610073762215180707638832631545147010869880629465356766004084685101905671056488826711453917949218400558283318732658107380976141772577544749313514119542023781357277928194112605005436460143663481879327073547116581836298858554973717326704686376822848944796344771439740518732623171104968266453648350403489654464572627208087115322875398818644338506659112997948893894807076204055882589738576298304360301341714993544486191773721445507726683812404351434326044180349623581374962977938706715383026484948751423407646877959145782646102723201224898734998635651230813519062262128776032742860346930011086722364546128028213982415185370249604231712442674820842501416557558412483735408175457187507149046032386060394856104609280875169803231296001577178408333406558343780662616280212607744142512114619701558531721596758759010090781723106331242347896528843184911748230971734684940967243445779058275001518466005677630323557697314839710443985742936023284992237460915185335344340341653250559374823896617989731681747186744524627976822984749683405335262550940804291478508110494566611920815812825027144322684648371050075549348448431281776867659598319204852060233441346788213889320182057711448209650841222808479090278802139949568644002136718663393197439880494136837320439699227278867473703348554449050573065858713004886878041375771449324317182214835272105205683221421719594702921261627232974493718563729438432032616575961230298652497748328577701394519686815558679838415361786900154505590356650772126539264862982696486219622463089512983310784619415568649327713112460078440439631412628115348521658471299523361178165054357752066479327591521495183452746956781788814593311027870855840794663932888993685693147067037054676146917215513534200854675969685902856959030897173471623080250882594838387598868621371096150955604215291046945815098516296859845990459172623183962663141834349187132705443259800282866322799610760453000257343085799653740830912900604600919692987459549300981826007627679129734236546539890711380828341220921436641663718469440870293198161243015225750947031171465567278419570586150186485170405294657288478461230388437261580673753863163652407154384159444934848638302082396759581426297194978445095294968182469472336098000333207334021866521376897640865088746014905864466711562849642702322551349775229720287616598055185374911440057604508664645757929905524412516072603111291898756769524667682237678607365220049662234551119440336879964397075250573197476044724032979824368647505388250766103858301602067249215199277994966198666930366869218963879301543919893869692848269066319742137358402973839524350857929151559743405897498865606373271004203338648856022925243993668021082413867122500935124371188839272602841235442253675046670723171946788371710159750224073821048616724088782105204638674941913577832624586176186420354720286372148941981470185632763594902979177271580982375701316746702450272387303184245181688240006568165889164626502672871128618959026294074590287234280729951153030054960465393348485404422134338233923816255048105600366750170225940869773157198165529984847390511646827612094971099116844436004386125869761838399804319982555938894441082690242186409785049109807252240919716744595010123057819094284175220902506694873541479092138899516975683176005783767916280690884738152011490113238423647449905009813765135253385006198231086454848350772256599000068036980857136284590338665978467983686316763504611287439599923153446749489597429667696360755361634665266817002664311112476873807001134886007956826194553583635542761547794962735488187092325425911058192271702602251085497471545328161506082381990174383337323992497398152427360561046836937179295330972492829744705526067439469832135057576153374437021583517553591971307002398818586454943639520530209894764288300799484226618841168638783377916900858288356575519171485151232906886779102727228236662833650834945359591899519591266108781374445739811267348500447238139007574341517873133825732471524904227127265756558137230290817195886167102657979785585134752625950908280867198515750521281862948630635433356096096260212836022530829753011633040224812950761704316559069707505979526813107664886871612617435295403969687561498340018628428530306755313659067840985432543675224422193387866183623562682707589270785085026775009483864359138510979569638504231984927494293309109702612561702203000991646621052613618139800512328512371912256598635700220129748247080054440609908008831006506545783784918715137753029266804577134238279796037631764619668335222017713753469655304933028700193183095203480448515388633916348213464179336350907948561976687284668996718813238151678127806841552254188396539357186060408317412711601296043810052442034521032549610809649885163183723570007810682765362656964933407111359028940085884174803693427870837747992641950442695948588190795213339284632083648463777411752773278442235137177100676346292385174920180646567218234015614649794872417694240498667781969900154569421534301823407940843554903953136505620156853123506576387649501817789956435656878984389726543748221865432021793230547895322268082638575307280629829369439830150695624325231912669002151623389770904332315438752110331230535509700008971016399056661786523910208518671459562736922146456097514358626326807716038814194478605708130616065530328075572098643165603557804673017671439253755033594877892445294955342211441740205051211591232714604354635910311028028449594502990683716365074910882637598290131868378860305675133987016054925905101314547300678682361236143227819369603360502466097603594825440983932539790069348170502494967485451759376170254855548496469937287394813045616957818372348794017766397512179224435471682221543135167692160590571921316018191295067513820388472441972587256143874800821027632906679641801597992271898285939707571052521135159014637167068909884468298798149147625845194694040099577847739408786846763905284562885554509758536122860705927728994773119822569660344592297151696795349869280071909704483119009025873279140154395277575558110399859378778177386447894659740057711563444583813586091403863271621759348142619478987535642589634479701164108700080561137494250481393152176554752658194662589434347279211089167808807400782426805567874001916051623695215571303975455626675066037991815566444273631138293963444192297632261925564879282557258611182464015866488674568493725803500704678203516483947550487210960667839404882051650644583133926090698398781918159291059443238071428966484277495539806238966564685371325180312690143833599121706548771354855515310869340097914841358952521014246154859279351502964495105862404850673529644301100906848943743795538778819521189888317360584461312956691273121260887834168996939423082763383529153663315559583213190930147443001814104732303473617555802365910608821703697682598795883724194799903694948117764906910738699003738729028173543800827782425891137690107539896193763371614598481391067699210389636625710652893839206602705815381515587422975164695503928049607360281607615725103400449737187573390076849271066647916652872216780621780627199699748713691368391932217686520197550719232732816656982348722954753119454457354140423860075259307170148706117800707886535659830556558524718125069241731879084189626523861816532591154142064061101768415249778713429913382551755508262955967009212124428559992506870660048445611793688668843745827213545050587423158322815805360397817682635127743758876462429328059160600573935323634956689871130119890775468755031677026621419339849347671153147469534400901803930433399356247132847659055478208275620768781548302471742959660406463962407836040225283614084822052759737838894682912261016999270203569507490942470852037028908975083174537271350308620865985177980827927212625125737693068404260208990796162313169893233804505097930061462168430603795388870491774223976210616249679031389851525799396176578211121909351150017698507805344813700471960452661014265419478624081446152159022929897661778977885907492581197937071325353298290319832774396549221896404048599713559890451507284915522374473604161624394063972672111177311465978701117197797240932595848462746044374590442467962290895035112975928427160184133884528161738273528214211201686451863294976917443351202922323624837062237974976183354778732210392953270038036584843611760501215989003485723264148680643937432300242647332351776179131918069611893293473446714542089785810507817195593380024016064504699925760578640499868397981831970988629620353177111500266128333209176013731082147855659069633742009486120504127940364639253766886955745399975789378224628938914726399909629658571803968487882067880849181589937970655106906789661325268381564880011443753037211799242227926455808751072111891840158963843119340059939122628208538322878440792072062382607089992617891987072205616632341343071065119381918506211237356698464982398147599860687644100948417591891340766526410353045436603201424594834574286009426089610611302893256414238918599092786198876335176676392679154763957390861836879280888487150587844229936822643409146884786725366168721892440407413847342365473541897853694853311432472152820568708138330998985657027737402466888508239556511597603115471259513774415178480921319906534452446575836041318550259518908485961053834559160812242065393268980399207815316304432169845175513374812833067294177952794382894790845216352543699698856381147257467836601140336940247842609082812396737552756119670013557326654301878198021419284383135849947997430877479171369023800599520538738308216758763342007431849664782010710159529134501627670538708528975504428104341076729141274412279174987636078375747238457733675263807835652623588192933573618579450041184444453555523023750271540991304737723188415437818796618204314025233462749965418168562121874537122318026287495816775783871320365292050020088063441094059246937485096599979905847812061738729302274312782074430362174721570046429410320307817477437464411139966176740031225031992057560344951132647943137397397222740640037977605522395416652853919900851988560842102326180888598880061202485696572145211823430025603760638698150028517761322595630767154489082913477769435278317230351922723466707393759806296748726371316302514983440756792637186540656993546883994730305477357665071158332592511028918322119249031451183568137192624538767854505060877469698475265054953550409694045504939517532106100772175629068573327580913301226162275842120636626173402025280470833167871124889555341561437309784276327674558509457065104173082972154759882516795622563352911119614125749301986456005047483256189340350643522599050552752938617438072476027377969796657553642963794197035182078474332690955410956912771846655174045344491675249557642458266675839414985564958260561040835664307854878071822171097548422299571214262169302074084083488898680402852287529610787405212666882502905048862206783032861457172516263196693533910917884124459308077357852303353709244378418969948951316031911695833966199916600039401110986670740752053349958905385800759866060468667591080318768559369087536610175561643659769289446764532745591935034977362461986481216982364418479147030342580102561646936952592432822193875620664589772465576356916231234735255930388800046121166841943484638547529858515512616287318014189302546515866623340794387882446374323844330903787442723350776683142241779151822772699308441857309424189926492840275796132963235868153190234108377314326901435593244874720428689832827548254177701740648528195727346894600833642158158419702195987143172841776535513188004544110492042832573445505419010309581333274955043530846153705566154552357557803913637450611195307308387091157651405237645037349122843215601165584350512475727684573594255535635500510803410879435278187000812982006376961487849090440770516280836176592065591596627821469727969364966067729213874921863500125327450202856091878951916007419023308089650759078242523110642731524020638479825695657092773131088195949052149385380889679261815228201659113951015500650262297105100566491198091527143659177054628872394677193437663980296070533424335842693213159312416746666480912143838797116417400157710144952237449428703038162799792128351673799050930503080516364775775339399357886283688708317969536175672621761952351916400066130716333950876491519675370118085197703794009306757912065437632747690720272577356803642490199154611761858658101461133524447012694488082000914945153583274615001527653164540240271950896866600073142217009543254563536452147956492881336472319875983831984457587966821607837126312025086592211569579010386432287681163137308687543455845428359732568408718917492540935685320338553923861674966413380041731303311456611985818945838138907984803597588206573493237608135695006849378702472139644470053610385518552120664619572870204460858189699395314234325008228209364039663313135043411494111578332873723020089386059081061461549607313679811766291869680950195046109909033311868298890646886597629298314066927209942477739355794291372661389023478430859630942845791738688374170156767232923236286286455856574427586213105839625645700330051235769349662303484134612880475939027864610563247772995244378461862986054480644143877753873040115344084629676137103486490921169140653295733011487702170133539990402793494478406391669821012370771187109640954935698640735715623885786649403921580831733052791087790272863717716159039506963592673764888407280119494737838348974120814230814885062842439780520096970598426533578111641257044259018037297558377174928343559074337200602972966820264150331924634071338219936841598931061835468040738809862824668377841455688235567091876286897048888036066837070702171608954277588515649316954368066242512220054289726892948731823505863692534443114582334916722390946331449534318925573490589118209488049084725239123097908080685057003179010913542996665121468142729106178314553894468783369725434659211370891000357746129524276009801353503833200809806399297222623489290390690772345529763300757839633792441545061027851967192478424009360039644925320792076020473981059337529409465615756533473571470349355980605840897147719674369593951988308116339180447115157274521776320897411523418851297846739105192897157355485411585499532856746350395162367192953158100807512692055911890307017235559015917714770711911724774733739322157555586137094779664612689237652015013589126227269307882669134532832509290971630815399598873907877509766777813945605327169075642610474391396712406877484074561066226096297315600318656819596226869243580266563007765493324670484547287346911277589732046743577773938392377070915426799262802958949731575396349028667918006606378283903829997340315570648219696942121059437032045881752438031588696325919650591532682667163154181169394210713257487748996224317635078769665992735009470969075216611009863877688001290300947285626504698312245005012813147099499824830548319402594490686409463081429811836984378950406007311518430295636369820899344194516740599085998233341754693691441591186889198517892924487277582270283627145422009568091041121088446737389063245563817854899554495437777861422185582367058146077723969489513388368039917380702200111653663063036939294855095361834387107246783247364698643925932728892329128031952382236827704103110686384284217817241861879176992148941836081393420287600061120256871978733184079221373841697644871656301061140142769995947357760940681336110241179197477337800412742483881220533450974265276943886328202085350685578526388589423768237321632658969091024399700763227735086702834567963335624087500996030710877037891947253178042941556167286939508497560228792109794106153116161834055736114669046794862066000970049149789256703221252408178599041855275852607334444439137750205839598715714036115446525236159383044678157559967840628582048205242302032635698538272424463993381298669374394225307952820089937391237767162816629521279394783047146831440590629178685193757128465214661163768262852621881288374351566355075413076646829025712157038643116816785085377715940270937189862905685668993400209859531550930088694830103945139492630262352969577007181903959685555797438654457517752028020350226142001774888973820685699756790861395340746690334267969506991588010392941810387474357291854014442191920189521234722473631285419395878029372205520678526523035042517340240706099358743444423396843960092037913749343447810119918918696755719391909180441216753467704222906262133484073540696480067781950494681761964689294081764209397040668754657856925840915706168005246285581102847952277571827266483854603620615776858597454132318978596846809148109154115738969206411819686327913452905655008530728935015359458419465986276752082167899235635347805683357178435746500731074206798862990642377760265531643399686846785597948673398288186227981385198416655017919890759867800056798170260087361155423355508574545830296932604579813763856606913184498222803683118907569257402949326335888828370741929764688002638285527527005634753767175657563376084290005161130805428351003364136342062756124293833388051464267234426295075142626076122148626373819489711379882178705606117584898897742180436804979346678275657086980399836014248946777916880404684822601901487283331505536874749827243317588966593446680878251469370471048555847738554131239191104357288759230841469948677653155160901802467167384610317936099862489996131646264482389968763428459649817086042319986579502463927954358058101410693894774551293269071683345594922721661976395937953471446989400943134901402872747304484902993495262851543122544613892265844390600986599900810074555694448057172182774655243249629661531119642136796150184997697222241982596794719342823166606744933989168159776440553784571394612676423565395197660689242791702041101533672256082360730153946908005583752790239152652816339363366421276577988184840098823139372763923981054689302629755117629845483253775709118180060040316087316424510090438203774160097619994439643598849033455689285556078504500184880465763309729615422493773285954766302196341664339337557453252465346228241085442169479273831880589824633534470833772465890238087636221221370591642367328434995106217537101258629339493604692557402267582695120007280316644042165114321190076499971891803594355021372132277377999277327149482391493255752061637188345267548272391324723471327859703386968167395744216952939063669122528613604716993182901109940875434685293928937237679672255954835597082228769055286722595922742433731616199887127738194884940275386180004629995826871884244044993645148259591291522892079122729039790842273283344806812057532067274560250566045577545030069532528694918745006235094008482298922726248362460646565073038955935091757185606940855343457236010851508338954198603632084264718710954163782363261190818906552604053382139861792461187549222750719404809483304396171537470024566643451897231784269551573588665618152626794469925232012875835287030582950835262396909453207473407372089051146211183534980040093179977532498020269288025078122709697334289675375893308025582582841114268156247351408909163295504928481575833242971590350296746006951558842397932146241841415318150094954776075414571545609538135483026728550099723099694092413593596801936267764791582766656976604910502795322571118381922524741989495538911681106080608370485543248062802862741318555012467991812999747281573503231517182647659337452525839961027499162426562726263963185210728327533986702491242717868042099787583356443824049915723053362363186098886282535616872773751864983653225225860047342004317610532224341468868054842829257050068461088490579358567787082131651244624641836445118652365943467009686067457268105993586275462876946879682486674870105062054564459261551714592572863863432438629475624948268435697893440726357858226319269458058775266829249586347057063463496363632276850901927378536111246673585671503361948160819911401494938269271328685195232842918857990914351202882872516471624445742968175575039336843751020339978135352084336727058506826745017091983037093597089022639448591815317585643992095854422065406455833062272883561641367606885640431281905081747754377941087736717085585963377268435234637325122342863712811061920413479680204396116946970171855999815357903014216006802032430554977935881123243806892705391856783344416625552347565767156355038744697813302547691508177509927091780716662764131600630441465259874948359640348227183762034878955525900207533014763710519087980486350558951340783619797750922962769107599680815936550452733722571452026745047767728710732131166129201105884152818349943655173570909077259467059385470101093446392440990775691072330597498579768765594950754721331505098203690535980883915857974855003174333882746837804335664237333420057063424275129251055387480555888573809267437194586218048984542067665664078986210342550826113442648909717643315608016179946728796531142799122224304158838523379850257309022479537108267149990782173240899820320666101818370256002737472499598021013385690272747227984204312747934177559475001769926107943145083599383004067572889875296835491761536288031011467566924615158353014712586233477975535135904456587639011170994695329694635598794753476962108559832435784221696971790514955828868115678561273267061209828777515138545405747527939984451197923889899222504362212670584706441949282467570420519053217637640807636459051323756528821346913575642191599781717700985922790939128530434544617485342885743829503040246656878014845655752088941279648631297068829691446581281111514060397793175861165995633561080509266845182609536401515496368694996537546952152988783199385286908551458911524782748259008976453242469168639820664261573742456584965537455061238442422345356588385232562696366241248039337745276229335722746220524780303007904420241717038526572675950639092152983662053960153143206969845906909841421772950875677887697238368075908614775930742478969745802694515776628882738805805257762145230589069902147636412300402385820252007898559186323022848493600988951353650681848611825271429238110816084787333799774179909749538195105044952921822998849000240810338541076079831453891582590521679657587662607322175052546012877572387947828452192013302321707011331307273945768506664418780880274640086494484477852575802075818908638171892379636598438473046640874356280915606349086991219724248006082854670428764829164871311466958365210557920674469916229592039115782842376016353576915982859497192641524783764177052996487182513144056900026617767513807345822656815291978957495998287292646136180083553383906503100301332231517066076690583957767171971508238718327132935360413533334422891915288328793670043042618903639000705202438131422388790750682619023543670523310254501499366897956957853281417307816425967132298536133383784692670673429286671184521502818545672707730016610749962158962618026419552467885780910896060330511795755582741923420263400654497539910111480810494591281347633072019664395748134983226869529548491962943678850057046827698208000673415402843406989606752161235621953743949675062939104915418875052384299103770687629396989788578809493175231108797258584186974161937160504656872074209261250391862621504700535651194820554035389915753115860544793550248765185301169375970027735664706869162939785607314005265525625082097440879731489607479312055047729662773641744128085195359841437969582668083819956106406354527803525052163003977667283302335276648967232443494587246606916162484378702973246464086159876370472653439036380948160318894059443836980286671107021500145888743153847650517016383298093335731024930692031763753830296716070815451663493023696985394826644381069339362602322468486846481765346290002209327027392991441839419104882939922789617291469733764199423572002632858200231308036999447148235416014585724298591535763815369300388382503880446034351360918034373984620107572887953258054205372299045990636488624747864885245798437151983807533077435351935840104964794014855882053548513002555937002202708940923358896466895569303340799950810724440098816331111771650553917023177345292384685686223909084823429860746829207264632008000545062798844896690265641191026985478070022386687139056924894807732878240782811496560940602492309181599669672889198122373469816494384072990188046864249704804000025346593927551666888636526202285529754761713279388463904152370792427507870148134303786567860593109617650042575239566712332078957234937269930835556824128786838404929563251809233960806685435773167827630151502191894781906026937294875520747479856510559923113344417256552919874707995619260239696542765242917562603755415026763217632927874993304505194925992213727603133572581073839451633019163485342427241995858312487139097438394947177055078539359995474326063625176743495077132198367763364627538944036711536544891671586240464586764705194425328264402887265062777712438613713338825526749083482321219608430826315062613468641488150273318049280337147274442959435324413341465390557388440651387579187496554724215308300180748377048594750793167731465181746443772502068501453122525467008268677498339870891509436882150595093107477299289853075873768155927083797931138427845549190379289455975590849854468452341525139501369222918209882862522899630140408862184637811953244948097551452753343824840795468658358477681389771821137056020082199745246469031508165870778612154702412691276149038168315136511496133589713087381363585061318770114537832356050728590171683478109202608338034389263601567160094852515325717232070887919379746551434618335428138656207188265667003260353324438451211245109225650174381217199087510629851748299328258020711077555682457260769410421465178197662719509664013029583432009881712212846892900383032708096844971004710020663815051386527940051192571441621408232723749623302573027171237431680156328206979963187510134975926634523102752598901397157409615578614969392217374902331130401090770028687587743861588665669925566213201713639485722343791170602956487709601608135821650670507449211696658378996548704372945517814786705454300122914450786687997065763345897269341069249281540897325720149109270764266644052722706035791638246165322015029891271004137162707641698366256219210117877852780945964772833123583393760944322104715574633662638973503003463635944957820399859786536083783808785084957967266966893970226271908725967905192975106045207250173136309736467303730374419220133126117186770081037284411610068183128318410063631693787294600243689138420559986066896619612209769128628365899005563990165562092894751821281468330114158612540154250537606129260003334823436049563879336977049445352736029380935417254826506417286965235800321328730243659467452327924726891191201570596967512031041431180391122361734784469669302107421294899145570041764469325265558093411793452555627871548004750593991425982719257914382408841485446155117762199458222371515587842263991893941152459403455667243135360266740031314714362409870875131877454518759868980557996018777439010831549661702113161017701426064604495104135503211627210951259454277837971669384861969132397554582309998140347440077909146779015582619864455510315350260732270330069976201422364410771599280488249414643013894775599847799380097930603144579857099367371181831886470776466868562716944901868459684850237148910331008082820713311739031849648067298274642108768146541199607028013619230678098315840169041363857801925193683511710050784749797434057034814777084108546556563308841918086135164100368612529413673044392167128961298259442713324362299077297173402636489940420367942389964641027604989117072812129962898722470340789499478974003185720764754923270846623923621016740880315057965713644647603391707067393565518974339301115016803126487388119484202953233040563162893372041585338614402346117396080266072991407934477545777724876629833150371250557221415678470986777810732777781962176238721638654267821182579192772622407399692966774300364033496182621994011053494586644721378134440040762747499322458505404381667748286297710289900097100916030905542538630666885528782668455017683064089469442034566613441422976511860239413150403295603534958345992514753406132828261671996813550823615070437953006895558564897078870172473109348727590709572952288125506692633321784390366395802557425557540174951618665309288241774849646149252406000187714323803722309832351210161794240100760988676932989692975956009005381565568649518549426003352662897244301154396855241250520105909354064388852178997366700265015220042894131191395947771445745010461120011316308843746258874887815878887870443087015550829240619650810375498325387137587949118426796463262735075250850728132040855739594653019808941044393542443026177215438286844440395254950646314585674406338300859115276873672367387672546503056908210820520205119107454059778669430806624107400095039408069344675213970540268597782674174408769856759179466221059964862265151056558922748612357023412693520422449531095543611600729876844225621540361127961470941821580966759039837021578604032933264320049701748429652075751851178702869775392438842699918613929193839662837579883531377237562589352239343667238103516523347665805245016287660723678462985670342016324396889940499366391382025746089847870318498733743575937927592073366107339178414570075805885945802930596590137568860140062192947863869989367440877289748498176825234659649263772277597793149983275205835969947161081602714166186543111587044070914210280480283004464020367691001976975614720277718692226659223692597021517220009680919094311087462412500561955609989022453524864846964481265901010434913519548057414854147220259545415426056276725305822124299694882129384754859686747571918244441076558971191121409896697082119243592669019953190598217648968274600649356320279020427695768238672582577032911908851284181885931803430395411827866359619626856788375297238046209683689126042653716534449480038087463371958415834457813322052468070937224038823499156556082296689562267443445158038899464524611263931898626570739687893640641403161654285039695173352866573966540331091543891441844568069832408018447031298412393166428241166846133109386413696886451386045459857312188501035374161308066444879606683947193295355390854465243068389225694445986486461793118880693467356504725345128493507786426934235974355250808160124660587708635040022661414453514724663889326364166897242279327974301425170600319549395271820373368530312474552186309648046259790458861690558747521204135388415592099125961666325109462541459441967568576483379718310835913868531684043728861996793996036537449108035546406300073525841446117561468088521831611850298842428595176458295705050027500617099540740741570330892203081499152987277148747317024760427975208436296795925758577776628509510784178177064702999993674252478815309433281268748529223379614371105867345240663215437865392127428889071784732568545842631670200497809544091709773657892378292369474846211014727895038253030387976290080425236830934667670304143875506624798183594287217066741498118576091104334988186920835724184127463921376040826169996542440947044056541891343110428564678294725312309122731847366060287880794863987286983169181775555372535023936262871703515058972468606713498334566214648914128792147690304005833319693269172422253146052480040775660436297271149249563487384900353224409068685046710806211401707991501513001990191493216077768071652083446880038848974848761741877513952907810080627423299780620325329277763747131081928337473684983107709522666939431738192009407678616513202677062551332645644146331990207118612451345571073069699779163516416289161139990127302138594428632164684263550280280771112042339664365868844745298058408548459588135645620602207139659831908164490681101296082422977646042012928705441933479162302372662719848702605118416939441774516488111639813377683396177406781536037511974874350187969218722235917600515785821072774351485436238398316632978264403740622945839801237457271549948531438693454935792533240535487941726898414640440675264425551857762536755504378894941075252214749882899578348849825655485247645360096054450704545065467579026564123654723650070929525734292757071878871096313725550639475095015927164892866842426858001882293849255704815705924811563079820884324149645098475602774957468813428146746001722652842711999359718465809565946889428193820367242718885769980284268405791777152797263948792393349390650576719216720636526708528983718158553790219938947747032943013382091080408999279995497271524036783285705284188670043218292959148944264374929010167674193511452375209996798203435842919658681216647857174399328221583009035225682745960411904435032094094767045655823213657727677834715157560291716157004251075751816200712026138419728673460427209010497886527633355539740546123064108162551942517585537140561748275518329068648149749083839731575003686818618284576490677373943413312492649609920731113247361379161825170100520347123547870753708435133246644812317374000159226534403466158589573600516935592742792025223648714837083046386093860917340928689003474019728004560714776675849761129934492914949842666875849270524425140716435457209995590782982888492298093882233658488111430558313332125822891094475172074874812640894105586552537133390693006882596685545984895437930128125678852456768114940429334543218988117692577097312440677260254055050457139495284380294432697154690937911734477969803829126983386267820418322867960930828868795982993536437800317450509416197826380358061760938352902727781069456158057065105282862014500160203958858140218798091033240872919614772229290820850209592695676808745347790566862971421131437564007124168568632891843507995023183584313066949539736258079519012019598642584409033398558382079957242903003115969088294107590566641183029602095485417799742613838793426514026334686471300127612661422992037697745486144604087234965173254743391763197961167881260389673902272602861780961916244834366252840685956498599114344456655207541014722981951727863162210677379936639927465897086505692135144780104163016471726303926049094151775344142927888352504735910165591959863983109698413987973548996833436563587958064645788195479570410967540457168345105325678370788925844187516545409288413919708333461803729899939287248148408387015521948452062083044520358757172216244197037915154663933160339648255757104556754737099894064719663955752454127237981374191520747297206442653812175250019732234983609920792995018672834481844560169213813640273228358639665147981082970803687558462874105014593381300377002209001934786997705346946101079680185160515675281703961435392532429823566941766211976280260780344990835895059405757984402488066245146240925402863306783169989850362243663176934253948061199844907941373105566857651324335728014415982409899297772209438354014335884343617648985869531405347660354049626729235209200956100398254494155574985900149819753033293380813474196098817257937491940873665081045215904483941798867284160331091907510770161491983747515935316331357085972074358897845075251835180486622261340442271669572104014707345967091130860084534434020586762951991551918763980884672782269214484659138527497792354585439264450914597414812788100500125010525930956951481180822304885229948127684545592529655589793934367185126049437877831918650990560599243942342184495363240395889474895428272758828901739754073560693305209149694600525532337316790243491416899557501444757189772837075315290679501796810809185346383872554489653123165113279499039120737526296355336428095340266919206835793232261481354565178632744376862059780769283008504756028311166779594824421556157578384705052006524116979289351808118743539317237893897656344072391847020709626429827120605047299141302518648622645170731462075665107166518469708359203112855129748597885297532796028195314939995042594972981309924548135078656161433180828474632076970908309832008427861211944714534882973523052541243862359240425765416170611766778990595783137767628776848627156067149256130645429416310001511846606941019309493885073595616409372521258999867578770552204636539895569727001689584141264159982004931545517605202728447893815329952712638824985537693883728885712883933832806575437976353423378902695854899988414910002067142656277514968264902219574603587638321912223091857144275451149583283396497069328513920755411954757167542625431683030989514803532651167122638722941563493196713089403349224127351318646601793128571203896138512524881331083942372982443808685210487082767002899316578087765253205887740476096285601460896526078714641831278579669142586488189760266243541783519631344675333958834263566623709190700184658253376623432221649927647535138897552613851505130403738641930465000187761810748528675519194930331748502926603362468671974617739863871408320113771527888538138928848309495526684328366711276073374816681182237700587004259481648382517642142863342875004815075133993249162027351434494776908976769324550147728528277669934157355129315957469447621472469462693973518157589397997643506097304854048829209038099833321926355265876338993875674122199050253962770959351527416169927466947329226519721054697782127073804610616712664204056791408380232651786682039275925260872331382106697336968134492057340044784896648444558852875383131911085418000289555865731369948019709844902497308729384130036317965721773101257625519217338986492365848340676687605912852252092012817022052677190886364611572516299138568394154872851647604144617062984779812528060955628473075127741175375157760674438397591577400340863574801953399363270801181595900455804261688352805958797455979833548063920784244648543544338262535581932578442662200363112800470604096366702525669673670434084376416757806980926722970266742465696093967780721748273207085690656775408784613892649361592450036785756922457301820190664422586338040197077153777537862979902774577789059749481981234623451876764704027072575558141497453782821819461083365919603031757027583199301171341782693066623955177342441768304407464952087559604793261357402503675805503826448831796203485720374692544960370088311015104179849477929010610281930700112182937095937559894152567868911770676995294853108125867274043099808079908974108503657131985876393924560289690572912637784317992925120585958660486867854298401743235950793834992412759928075421056359027336248257248135176622435494939152505120522312143844892755788123230556629830029127795391084057949035332743528498916433231812523727117121041702943246091552215281001213203656004804202950442404497971961682078846237726638854793866647299861421468853718442693906820602660726072412729840029472791704133363839470426622289089171447753055488148715358413198276188331746102755672521704497777470508374684737605586664141121933241824352165274567338094762821314023381863023080641421465989892829513321691241210888626989900172693421819383021208294745437837527969823864429206239782081266353191364360023482669574645157241088718242460745133560286329529101649037775646303665342423380767320259852291668671855487872599553874749049502298076918919510199852998330756709339444209933364645932553171558658919920967561501251049677459525280461736661213798781006603215899583453551641261395341238488005041647534321306440635612698100243114758858501441123392560086431749909113336133506468761488350411093626365400105167597152085146489755987378480385229577813236305094812878008324594019798124978671500122008690971986810301216064257089670037558259348620198660211717316546393355984561555580488212134986569210813493040226566957570665918373144792561283245060682748054886040806626097574085521079838815946238914131155020589595013229917581770531946854425854537204782548036176073567380797995852966178673502718179182426414343207513148132352489978154823071070674604430487992511473035130542284834613583029501503525926144697825746591589658629804749359536694978647908604845179737312359097388569085790630222462984460611780523771153196437733463990008059335308007582447900488095860614671760955869893206551233669219619650767037921903399489519432910762178387152963755884187828618907384283116109464624477093134396885785772821200742076474113204676520302436240566389401919914018178365058022223366630667425914651305996122799224501031487764455299005511418513958557197206173788003863988392558967927056425547812453921699704837986298935574461716494674532133243854900305673684324289634175019325903209072140673602000427070728639336241411005914910173452812072353349892052383300824371728423121635848096094462394055668588049160630828832818194369419240898312746243489863492082804950577514201267546844676364462702073566908957936042265113945355314683470768323348661346706181120643940298119383169829135918873735007222538775271367332381917087316381332593809884299554250061614457709405205953503973868719655890400332272860104028665748333393890849960916123569820315916234580227619071193981165213969258806935623401363213080953375845328782491024777476716279118560057202630158321926081903295232943984345544000292569445837436265713480753907799495407484618506809060473554889514194408758648674692991929869550574216686188227196856769847393587664284408201639279988849237257831407029549028111122337477870290861016122536033294775321752045429672980042177460860873015682960549372653078099941976707173567321005736799043150929375352935419821902220556521217621541673844709720477286395015108830982747317835714932155341605082038808074010533314158376489870457462795919027739849980436116411045305727378936232787732458266133665260652007889833997043340112815936453848075262001952914640565054277643808654736089565551093423294206980710574182541831041781842658397854247343927302243804726636059389627728345245960977465443210968815760126398202145356780677016908119315048598744033442026308136649362613683687803035846150467259495645810056855639174632716756844461861316581509432694902816698328193649414316321586000420651470082986045663086311489340449991026455526708433411684994457120276071233532974069816303247234249406532223162514107821421787616111424286743964011403370695798270252359104648326253237882893252527815208856666279707949533975252552303586627713444529364853731572233160120059101534144759269447472151507432093758064650951073353642953878630150390775713703488546234197152872938424654832890666660575140501834237929531463859136341122443945706473277215514222336994676548935872361591304341908075575628180289787576546531388675685541644993222086202620917449813661718557566623166701291914028937024980833140830355396426640811509357217917431707839535179170735849273324162482931563792816361043109739248895310460237778011267515106012280752197871362869769650063105024492454569536347555273127685471344408374365777892967171116720187169159010818869203236681358353151414221402964567750420893943507449824683606855031372317843516114732469195490419393075293585996959049380205203237742626641731614452562813750005225682554802064113274624248041240040021487727298782439150339619894035308090680087360481391650888913893239512400760256336616213703243683920578788932130529138170433037237523337559134573524096807177724849329153020509764580830548832449295763865467726928070980993446930747455403837579082591959928510344223324978242792131145739075910098303464089719525377958982806129003764175944258692852134291963522754632663703159252851906796815064242547933733167507703366810912433733608760743264347106482592424147811607185517151317451782591438437063353818220632776356529420899834311170000250335919599308399494754685365148031777474752801134934183203081091588918012119538927561808262665748740703273391340248318284102926925835502421290558121204604773153495197206201523780280467503201096962381286164546406261551867766885484196002203643944410053296115183075392592566209147776508432990371823560908587598602540563043153114320828778845596909931759328187266350284895159456583461399919710390005833763738160125053064154017977026440404032560728322536095681802016938542513099905327653487709864295516659366455488603093627857218241152828107706562435916437406043654836808365379854538350423153946396840707769840748172734679205677714761568318358304379379918741370421175906547527915788222347870980765066276138077348255721180147456759785254063363801525968833912256765660356717996427382183176753158215056054062247876812308090115598999635948736853507604833928640375545513535179920718573754919905445604812007326940218714521666992671172902300086574791593716269423812920222322278049523233308304046988451690445385967851925555694777119677101985396837852183881523862248576421920291267310037823365212023788318251330557089012068161229107581298879377956604341137067631290606578660452635677562982479238072591919840630183165588699373482665381502143391472214534340245146484272604358399256265116948250062103940394268329526838873229149199567276858039394588237258048979117397324365388002807815816287862565326863496693600265242525464759286832272916314855617633936773333858906706528917077948070118914351949587652325236574535672421704571523304179102021293136837705852333342182175193340092153520876033868222602106123262562412738001368181731133746592251023757830206418386981288339323563374844904928714796006082496057053956694724002277197525754642601124919060414310531335903035068364577724993342807042403707823713222127619543563781804935482685371127117490815795109175565555382415159998822885755084245784951033013974404211599761421600986912933847694574032863038252785667242924398882940473108179230733996677441422239125843456623319110234016144491750772091606117784631023684694647622691217014078179277384206346540316233655365576461208194309792927346701363292138042305279656934298859971640976644604272866820844008963513447079127800730314446773189380554413579586945707198754694957316193006900248650574601752376691676141039431813113832700337279637692252714453549208269681341435293182778626003337143529100252857425770077134737962345044549673644120633260382057123458708995358192621657312907788627382380393909062846868979143430732296613135826414432884040241361951749197379177000653778223777631247341005426114420517520116910200748538886276655716274139773420094094064275880793715357507353557139408116541876652435312147812214910793245514345403268222025135384103105260007922165820504905000821003660988705156269960511088126753339037041290033120381611439748455371849604231665795045621935165750893797914975873759039187645150727995860313461046280396004034764406471590288083459142300465022002932501775711818036795347061468131571596678254424435233266290955419583498937593524529079123006799804852477780915176721092867409103701377984339974243398688792247364612097868949746243987667464149080248732670289794989556390768690444634961597463429991870601849126022166891474700149353888698941267611674119425479400555710883489323314546809680901281388463100219634205392328561262854074945682701038861924632291869797968777698718778704818034199219809469740232657076340071239407637388437001535159534238709684173427313183922766632728345269932726840588831643665575708337419518899326230522862889570089811859475512534487862843270668745818157855083242326741016650021948623132332663994499249716005266459615715597228840333792815579526078987946541521386622608610154061308445144743265958452113497602875712576132422526705095428236015962423043281422910004514739435787404814108978036172411638345961269361721108153536526834106657431315293055274498116823564933743294680818551643748901517873276398984410552421688508212161061104594581627541610694773323008781820488624028063270667852815828706627672955191703951699807735766578712165019848442415619145962811386175596237448099420517551193027782008657674506368955268181855020274100679642471539651566180689871965666022818745505133090558269102542609420080037931841194269545040458035911941690568091536393877261127006830133491480515297029333287909257099800683502880992167693565977335882268335810760174152298151231515330873846656481608271182170942553698300801926228773353097961074149605776745210205299369585288105665578375246854837391224752682177312460983015469357570605992351888453324752446822292139622470207676442896459516071220381901125631039854995569283865855812800682460394834684396581444411687480840530426995085813772534302921280011664948679430439861717029450326247861443849446077787614532244937317101600659255171687685911641619579523892365074632313426667573029201660874808824377384044521922081534493542441493843911416258749940572231313530864159643031740510287710207083420160955517099368899892906484713092887376136180527348929380131071978785987121918333683282697624402513439656176018519305532496055892266677270127889858667608562672692255178054475949293496152936435105619091319478869765427372802802318674851715293919176091336904769974470093458309970229201994900826545776061837116461473217973102639798009867407258249232992447305980554197821715019335002634214548901162563225830526590261293178303574650736886287508289473800386761604516199737086884577564803951879736141909465296035529025219619735852233484404975529294833481397389738309034914266276985594995397467963520283066399807182147739759405177068515129237529786953140293869727041455001262043131636447883604392032005709285981069060484350391663959858529498956622580153049844698021725562924198152181339715299870562781137350706056814657474309716116959672722045096480771689258439391591378973760580163348923625347801504618610685944546165018387280916122663019311601623677245808312167063765004244796660100654627587011296199354195302669611321988453317590876111774709617849201259903362659170070551149405088919289419434889431326374305588241051999467660547307836255715126057296085114660363962769836347098176207693716708678931442265026760279471468084386620944046662386994774267932711241200612389335985858575784940815509714210861964381845571853580843605049411324936070414674841084266922950811670070249810180549004012716628834257547015593157871282350028420038518388703434403450049531862459892741403200060990506731484117900839516712989927126321317897599335586602184715372195856584752200960289583258495155260841730277891817024725858128207380041644995416410832991728973376102219615100107662286208631494963338023655646949167968297258223545405379721684153422076617756069606430098351307334493466531120398947030714366730098425248186851876714365231409960418097227486436327158643384915215747725583475509606195601869529238219507738742143896573538478552890599691019832644628551353621611540313168591759969869079302698397222995382387092235902160509616523945202898619378660797145005695018044768602737748475022613456054235354099575563297104554503244884671619729802484233583475777909100707920064533587904506951125728118613581232850697821460962435884581605541188252680627809162174110576795945086610979231002777856715704577620783347946484579824288416989794003886696616584657053445865375819869295724486878626293298979373221227864341720745948403252529445994171121473297551529695634161903718065906774460053365434482704140192494693072950907739235858256521329502948922565286781059098988400937367352320309653787087100888619789308767478425869000072935977627833450487293351280357336004090603422367209197978992662001943168087264476012069462030225824046854491238712630946404730458895494312706224909349662199307415587880751646833484592495209207826626514328611397659210079774576193656104689379990930812213330464296929734379515954889897487816397466755064686342030377512263970699814979335941345499108551115146582190387887018508910647407694933104906957142536810823946764047541892019532249671422640832461258563421434478951240186266911150374236089693753774500035154786172716987882600948236751624028336524872472241704057318292823248516070483363699883287440541420596869179004369534101399302892617228194660099360827873887589631885442334564205906855302696075745803671338231092030724321251955446319533239530590967976665604894526886180065633776390942252538908334273260735898717089249260267956273166292038238422523450053228246781823605755890460186636120816055323784097159364961459060409451081787967676533923690691114260265256859119258045612550272803610732348141826908234637147155859868798200772344338026012021205270290878586974202450952092209268364751726989827283640935970243406658479354146316660035328507085905672488821900484864232019348301120260039473157919493187535786205003432910855792729189302479315185582259361082629931924615737187500053724297581745381338938351692330872893274097697734390313785788516497670309343268873129134804346182982573035612931368327538395162618603598243877898360632051062117271429790853445961352303994847836576200540658961742658276508252910057358157365078240730077835928278884176496209982105267153366527574580929273598824122484373895740172946621314330511473291735648328966477201633658184058973354337214023343165136108227656602611675464217241999692507788633112011522968660941460342778275112020904745582328884732320814298099497004977835320561071763914472603048800285222204922879109009018267035877809744156070248934881352058199551056003392030714615750283145036968813396925304563428060225119229234093676072697215221287231038406268476037548297148641805804214723935361483865695307370725375452219860197256909302731186908566885879816557792564207028289495653320808130300897335478616385396808904571606925421292918957086265575285240630277788283500725322228613904880348666256360028883061863962011587189425791666290950417432307668745571314997929341862612634068054394523119165801338267588643312526949518005006560942932678436609179261680872659330770174195500354000831157780723472143481291995221309359838410965708661377478514707677303695128916249055389033090548915470424567953892100880793567030087067670124875575369081089075621439457163140717393370224541046660608033875770091437831754666475473837965090190098793103040106332169736818811417168522980619386545578991549193754033356146709643876693995722182033696589521756955020405427669794451991786976653690704758779267786371041673825354281803755677503021065607116803849300892107042853737429133702094432700349918193682218768603307726009150187242699253987665840214402846411011902216636519995549614302785514218899545044063151600667546215531699699594395871996240788067133258381784438217773015919110135882588636923227285363049128170203625578650726002502415795936788617520849336570873144422713456351264533749843012276464517840313252925948678081653675639984762986064053761767905257755942288135943884776269250044883409266682783448355505619028718539318786653718411847464849332907082028561976711573137717355648938256157014842488562707208895253788922037604668990559912527735070525062377464511228145695446664490477330640923464079608151056983284542065689557934223066657983456481321682435386054023803027855832514344026942963438370561640377633612903362896235161988817728169157496763869001821883381207468488319604984136804252223707808491193392823162469578329643304234275498090516957765022672174431235274787082724505834065920818048326705933283655100000337340914612257380628527457583249596745156983028951165421185046970370717126617717470698781888832981130874686351638826614194027253152945681521390796988203671443593518384384267409388209257826215987705606015190063748862604447864312818115412248497459100457242915505260974504813502090743654554891196525089958549385030320052201557596362908855759834143792608477041580104110057767350530703520331018379679338161073160190064137907504863052448322738685546863699311006994699834786632302886302949337561272685449800688137470907334184579518308908494713851654885838476086593526010553525338919101411852723153629798658289182860344004941129415867307696094384692826715284148342552878894783333834927922293378577628543447920368890322658213408322968896717949250112633457477992973785034512452126893799224323764765286575382626621417586239024680418465420874844828741598291307003277585390425663698826087168299920805588253102652068178503497699770775495071650972279599857476553584587421248844506312579874700976574394933894049079265163704305821547062470394652742427047908902913218306211753762798730603473081947853345844033004035861516393583799230509340295537914179533172525895307399339430868653434341779784955329814197369396824839392038093027250314792565866345369481828829174186505420685010539862588400168415632403178656432908089384325676112786514176394303447131823610443835255142269502293715032806524698412105971991826099808542279222219362694043910113615241728659926375741787915405655433023102692832055959576686689246910662095770645718179721147279000146750428419337029084246232130104850930859133473894177911708261768195132594813449050975295906985765530449787611054078856264256236680701981851826330071652551329014012411926238430620344476944261051566810277870936993345870512374110370664927873848557727745268607716469706454966835601676006607463332123396520758747557129981998186911255722485638761632222865881179469744867354317297607214984264592430658679146395594102862933748974512379536956347662563947386027606398233249269626070616623348638886774863524713698233119994572033905998704367528357934861133131773949378223564689738948244590831219518077593489144197198252805044702071877655048508545323724863470054056109414283558395399793595881658927639974529701949371240313067034161067148150582633629009577366582456638628305325642958048799887308595754789672747293427944481485376822889124578578404352788707592458198186863861364417375683474652568498600977529655249548410808968203250636932493205139204494553381852987291299956703881636779598710856327034139294634192808316769126908390885174940314032929211918862543054689455894022840298949616178032191357996542335836316199882333632199177104195519350910197135619194873352638021188088748364189815128593974988228498902600597793926850112376951227338953425090254903873730819370605464994330410858520598410474127667929353550756324974897746976729252470837559112803312532375653508732149894897630466159976178817918920277082876937344827670895883893699968526660721183359255981075895505843910465369918382146003352533943393495444442431387210265501090640846363772595382798755344525820238427023541800765416950499821797972322632096502617704758701468789425633149611366082822229573551684193197622166986054632896375145003813570255190417575110676175996132161339097789426715895058488937296143953462808442319761048875790160142466672470639660659095971752460319203577839849751083578954179087075130406329771604573463253737690159390470832190741308083658292546089983847790491991057396848392122658038012579156130567472465045600161890993134301130016370756765884500640120787600820301717303653379612639080011412918232250952602584634566621085315644543810066144618310659381075995991770577637536343672727578194290761484807891813638617748819351964032338604810823875557674373042613198316878313371257547256498054853166661003726796029273197934243645090961876347511064524542675144466571928818292528099519040205435107512636258803207655793703829912146067797919756727661882967371814238484287479367729770447809980320348231563912974327560070174569299346982411366068378396789717475513660810161356569718436562126617905940671560378332557939262394801174567208525512190868248256729216777029533713776368375139246042611547585624623029416013665969419668941117133013440121214692964605080828260450546142338807240503315787209880682659534392777056896098363416110610639345652505431167628965502233937971774153048797723066749602833455109946127805725055189760484616157338319092471631685624520653159076317695506522189334062365173570608912027279645308378341084588286844220147272164891091857226698172803882417915904692315194577801179437950030610249487955343000800333334407397048644815368387525065474271399657360227193864083330583290528177565719616739949017948880228207168207416751302649466353522684204006099588412844646739743772858878793928308037593962382319233691588701830550870406515503561531271768133306812684014337035326621561537762058989531383734502208452704444903568253367132028821326460593163178746724406782252665003972561935284013590092646800568349923447376068708658099113502505398675333891930834404065714122979132035066748792627150341020598176660954915416348070472030468617279480590078742981076604297670189338054466176485990739692950888637868327722259087913010694449779500549119096511974084872844950529871549446698139644412512501429143342866300981695238944689188366455936282446145369411755683902727032576777915568380483088949680548248811808073026973855346920187337503658658402305885187565656291198463310681651677004275448409022365541868267755313033197766925209937262862342421196286194100084127163430888047950737328713065070242298930238549923140892253114991478677915814049446221974971413169008188131965227329914103677600896897859895602774679773480964106674072780559578530066850251507981787946087810411581922975670629849381780724701233838491911094374221264159293755157617553942637385405800837313738770913763876338784543422807193785732566237256323938394567903617911447329117635562783662401852960558313037799666467586969176139622216382690200199110778076330442717699917437204067420809303613223890988513218078888802545879724823101127406888631252188343749742010209731494981910419881206878933891673440791184523761797221328497275927047302307192985278596911307679439280812218205633410107026064990496179099846095386093796970970367095036707821920143469186798281171408999215375664057215532396660246906813876737723566212876560981817671356874193409570407556135797441584509807512682754174777736544513333111291306278195535208445890617160188524390894930288555044146964694549046153952557478867454015300029672384667189658093827128529855485188377337870359869804771138873310910605671984101938973664852329991954006707926417261824709224666316310720319085363200941508083640802191240364747545760524482975499487042460739198259412293839851869233122047083305146018529505733232197560751298725075892059692976170131504330756976973399294148437200196320768039252769817175341012559542914989132459604731791035922818311441980433229983023078201881752515433646326085571514820402221146155424933002494726231431586882566365852024713618982386815966769372861873461794626641965970708497384002350979103734271445419124081530289979822787731114267129962386370992190099382153559931197540695190495410997816120153693871169572984130414312921643021871290244922533310542434299826758177030370059277358271900143297525127744960490816259465793455726583850559416060021637888500728394915761580040274510950254506958125975677384032109886692148334674567188822513530104933298855839940169151291523161383683306154026145846548639706955205618296387087789794061102717186519481087152553008939125156092475978064189169220836450651784518692713295462216853546717621190083645162357466253910029030318072925884109339154744863040081643438478348722964099794678828982273848250590206830748797345804700952947947241776734545290805126815525686643655605417322432638394095132603759433179203826731444755644784600646664097417849412219816845219509803956312341940695847604366733602675983598590411218751240649102104175129413960108563005858200365564410530302415281729376353125232300866308913815406730592590231643280637483847009352383801726159732591839438592102127681341961490938851947938427237039435711121472679902361701431071433318579294878645477956513981071839531209068173990032799220645936054833687855753523979868008344588275062969588871025055101230841984808178343000013186660022061330689215955771201437338968863083343145743108296567269651197569498355183180626172398304313963448963164925601459518830231221520895600549677777399228120799401834073152701137785639779085383542600462052766006076541416309515092110249435930530276542381977353977119266722417395695427735915028836716273609403692388222091280352360940520977261951792145352861208005584355465158026852337128167934099427246150363845556343436551182524091136219317395703286369511441115647856588332292357500637071435885834320863311769890955225772350609544806354484965203422205291493546048318510792698938507293362420211976346060551646447367500317553609190509922736912663537264795493086866856331353522159593780570432454733473941474474791125182437274144409703352140356002026417951262696634670124155067745274247213399714748708854808186089391597363499393765711013212244616892353172112384877036243027649756249606790248517174874442404564019682516592153876829230763329965328485332542801763250294606589659152357666536053396930475606461629632571334371928909958006380552990595911571116359966134345873560523676088041377326731893560389051051504569672287618186843316052775811624629694441293095867986026483706992211280766506864429857405505093403504731460014612229344219777869693529948158116182351851420127882236769937766033741674183642791469585556474637991764827961951848746609374357844661252104132820246777695891903705903816817597924610119085424079695820193942326786955741111130334652513702273810758929607756126787674976911559879066248841510321376640878605828770371152913212759459103321786967772775396896427943155369718399914378610254753133480221012554751939131800082009705751534497987447725609481079880816424326482333537624679232100374086866395876805525791281466690091849657754211413342407388850279246645874583503362650521937654796380779231775507071143544169919094621625261705626825424214580845996025028487205426605944456787039536215872739674673002853078850724665180163559400313317236796071425377684331480196921285899072120406084918109693747423244982337651732349962814280201760624486744640612083514224808315697567782956472382610798766330351784718742273188003682839018988354125851256058350026656219613621736655240300849812034659427543828291611131809754550973893002662970099006271167144071411276902747142539595459260271307535921537150920793938912597285993289426716351769743999294728245917576471813129947524184762791821608252592350485989870550132155218374947260421661016379796279104115647811490769142183098762434431498256205856650144951925154888380089787285301204124552262034248186466194634139516372713992037083688984745997004634556913095951952462734741174085512666525100393442118082756345930656298958815145626184858001895556163175239793901542009032155548105762336535886334912766282795238711623822079099644622690427760704258888681917081166871770900546201597959796157735528896507376784455591635691358825638921553645594458019169041681460956056193493224870146114036137698744008245267680553519394094045499598519429001286804102715590438944589406925080786466826575669737771559999678293498134334182863451301742600275264233444228913972172028537685874775990192435508889302408913303653499947890399519910877526597718741895879026579564027898652152132350545321157806396306594059384439560230601056465945599758591419404145981684581142571249234381690929106259616017439498704166120883219927249676120627740054585492224949084657090613730702625183433317365768094745728230620741037085274429296362232757527035506436427714126455239841234804819272251499558594474478272471880502487840839043276041506928280935411083954156522763385674748245411392523842559239965619758015737602865917310461078644514607416671326357382637430317644689933824548508961074556071969867707105059051754408168054267915224674852367826698526220446801388032402890890374081762636261533809150245427811089054267765857835597855303620161675217971094930092083084886912886581891792608241735026035246851681885944785542510442482267296178711593641619586926475928986748120643294688596249653076092840431142992653309117987532233458656640494587586390371936870799945700685260132744170997482956839638732093745647259153637131404068096486435339549095575868338300206668742160777820857437241165339782248853328481272891630351589261314892182329366240338965180637133900142218432598300865288454193540632635205392859063921820168229132479328242112153959582719992101147556093805372764676577416643843946680414815956896867688602289090267293339342780003960684239159709719151728291909979872137411851902252783933634521800000392505976623264067719862823551099639006992807554883331653062105568157663835773508190353852631939457027821193913537263208456129957826859429616198543906521783288892809768380403762025411189906586990478419949379546947339637556734968856691867259254393462152271840088736565074216387089339004687181961395428773301187259226682140484743906736425940174346392404036467906632718015068405611238473945513929725088953999833435235155226447278250768389941976466904409210601727404876118960917627086750573588742462904111411455522435556390475746578349045861799318808765358316454725403776929910359874736461341271573197251204370188263509247165794765854256595404466908211078631151588672674048395329270233958439057979268569251543426571705502692957477805727109673298743648382531349020052660647275278326802608050720172133654068651041639123075925809936913849591994265828347149821806918160510853089620329027364747682362280030249589054243867852496830684619152706913608720111945228906272373667007594351851547052830563807004563297021680829602521654015865561388033756986930455332131710452179984626223308131338429554467760476983438374544708654535250324187961832372911432164879002912147741839818390243088877506008793036929111598748790409684961291640779647939682328189903409197747667885499116081158930693405406228451535911696847847391737445116162094649185438411865769639449299757808961063303404758643198100754903157835644253322978747958474720723471972554478777516598671971208596708853583073720901478454442004774650027007259191591626927546819357245591127063583475253693118050223185803817519070104362551760939125863778650477507299025803787299973630057965562142549099086777548050441442739175107497893219781198069634644141221419177570650394936570033758254478249759066700718982059776895834571074008811654969282222483357303116585524812655354853752051865990774260282243723544841339724631378837331450407729449237760086531675232076737324382559710074463354139052950455173770031006127164985436663730501172727626613582299540209305523987427377350914665314903160469704056640532029020831606629416584429695506235646015736085888364834200250189500994307827863777787041742276565209816234838955422904218003481297721956219212029841270632201234092463477317732543034328799441634044379356697877201591067906553690491580143330652245400719935742275941256456597035790489949108370444187818403531403832345297690839378102240976704294384391547743535298758212496435930737415177384091263215024104451894000714571562590761173591060592253978180525610994254727664361976972907034329797941236543034060747130994926154190375703724894491609548417891245139725105552582210404580017671480363381361062765726419146910801064849808883106115264440946924203249767651322343744446129768968979433264940357443197553600443215490424405947476768386271594828856575821339618428034442206420639951613485051069444247533919048077373563014978454953763796990259183364375798789398220966724723355869400088335792826773398451559497204474202313139480684024653586948683128769472635643245773257359598753334259586069454243419143024424849630908639451828994374276528469400090147029205306456015431332522299841169394472801865945909782806837794552700003097402997017441656121354242050322109098716316441184675982402438390355729767263344088316536250480965290857966523996976194756403378458341923624389395944017632914151306777468806775180952473366833582625009295295129358007801826265624577508364260167539553081548070371267260753054443860304592802212715360096570917203523474302706322489980473519052042714179444809216187637087566092650403847115661246917439161176860229211227625282472275020055655487653943808743272746384873729975911410177633872660213633991967303456579108775994704627865718945006692335625236914813459540988334602180857899337980079899706494206453471329037822215261438988822180840532725709150927858970189778936050519059771676900639646141341415479130090519029871310588568000331117350062990703010310962912279924782285544613809857195582948356948366969906001438067151409731817804834377268564918706020988524396334160371000563586143473248698140041124274387637462153660282094370469843315089408528193606637663292437080051836131054216173414264323551020005566857576175651317714668542690742424431990548988293807650217426965265533438166122768257541494333647550695004307737661526107684922406795750483645153657328326995693748278458695047367633723116345760804663048073245138449110322069142520344729919495568198089648712905084472371949266103746125020369308867799425561302123458695045183780564460567167837638219908515339452938253246026931401985553824474426431742621385084874789895294318358104552437479748774467178011931260270278670283257635872177935540597930187214312889243016395709281331186086224739545251935331913131369878544991593015316803254314808672728315273525669374593588854109327727477861224064853370635864624412893201108135321829795393730813496555378199642686981139877443149561802778498589522521739408754165114940539765261026979174872220036083229871406245064825638664518969148255178992690863631487277027051940750710564710373949532691768868645130725736696874274410899165696575129088310404291170168216174183340431946639312888255145368108359828825764462853944850740565671418343984648197125131513573469652196157081144345725693744162300591934768334965358920056425955867164884957310629253899304213873044893254325290267135579004676220917815659873162650972136201668352522652307107379018204405806217173274700324836973635325188405713719022279749189831697460159777255646430692534470436441211386939622168674166859103747194696312743841953530172298579212002800263107631709098000384365755957757786468509712061193412881572448925131658004231869646281435974835917160858887205994685582196628838949702772213769623618526334424932815241008569808242085358470543959228278198968435666418205317563671289849733022324510185878763496124723039295778547458602703439359781860185465440059562299306341854430121273899223936242338215081398426926419106996582124457775303392266335362666717337860029878039527275994749319121229240786112780645740635181130392693179788353993608405245774614330424022665686680134693451580576611127230042825637220991842787933888802111254578972531180554686130962821816791594244529999375920050312591111395568392483977245520405715662799505560419402180949448383038099540379494116412528084394478611988946154839900294759124350748022421536197812667899333269530004411259314271587454042660081317070450480920517812362489601957758591674874128736944081300136407592703572414715269062953836451552707819875557172315464537960859290863252010297185094579384909543658784132072947636932847787383546476988136453649360079706977947017439727957110362554377581535858071796297972408162577653473823997087893897319767737484226063940179281489561240107190492430337212904512728040918282264468147559591593304506315160557570822495058573427439888939022631234406175995589847704409561573972790883566957812513009560465248441149047002905078860792715087886648911833385628448559952389968629338310930709467221500007516625554998045253677338806785577545192006210026436054263554467237259136489515366308759704799329480044820819464431889728511298077652103623570002572943031140535295971079482920697207157303806215558813373564312599502822338447301858678157061875035420834923385681900871398406901240914146874903307315165806145736236092432747497699064929303413259751145845097635136713304643478440703225642979327542818797393298557027904508252473747585528704204278597747985739632099305352993964048434210790473704991664669888699236579293256409083940230629842537274990291684007379653597131002528331346154381601841096479575096590675177823569473481741212054656089550243794155608074963556425548976296121438121610985669309923122926161195294105743249774541014866539770962528369309439334818982411597813587397407160596994205840389195649086898026691385805799870901025187950449267598749908257578696300987506469022714907256364372337483584554765691777315207227560622222481999223742693984170762739492519313486747390897805306095583222599612520121617507815073439392280235758926041737865257981803466266135708580906527780767462579904377985140911848040714300773700602434054634692469979195041107457918399032687849425008407868928338638616920981933296702735297031327751367452052513558212071352196272380961174904557561443652831707992523783033920494692258086781255430645501359913150030115502643178189524428153159344495365952277750191428407906197395362075827483876212600947898772498495739154335258739781686806796575265519450511492746833610774170559342835054254184120418357940769499193803202821980817300209049352363016905815283433989734591600211739823690650278634942372382214831833840416170377893272903176915434815357542382706359517865232704083989896033313091714965732074584415953021803846645268641892032606383742809614978205105970052912777006109626969264896768834002987574640090058037782736710236826196954158851966563456283721246572316254001095559459295895931034742189490913742868875323905368585454620028636153213763874232633036919964410184275938478068599589213485829113068175035923647588807276110011576619488013906351976906391070331360282515767972708936303365301196147614666173389376231285607248188438757858497309950825111613311014422296606598395100494045272282513800684136247606376119616149032693603097584813153476195747206426117493942266131168929610993782716288772173442456594866782057191107183051180018429628302592736101612562152017998820649807028241372048371434747378715195491819189112270148019977571299513435978102857759615555869614392748796986556144030786369003791580010894148209336402111437458191696308169934266262974049248864122645795240115500054673059900037478712526898728151879683341610822552000685281275108440047917186331514423416121922891816802161677001068653069634427273839380254934632529463972779176928375314527064382924525261281915755276166945325877513798144952537709937615408117055507493422604411652903647824153089248446088123588090467970641173816167479879503159031538087298982735022374364831873059087576461097943751946746329289207343963548366975405388474803934941590061779974694283138066243528503660703622578625617413570787993344572921237580361648667209943366001107446704336370699262590084631754508042439016937052595229332500707743129831345495598330122718859302319520557984498553626654700152354581921633597339619326857742857964162999571562422091488987167717420456649974181476785357029834112358436713339682159129270893374441859791412264527956570270642070967350197515339955319482167214096440699049404762624674588031988431869583149257340384901143756007190616273982693287656852917507385963073303709090292683507988735907014223828915429536383574690589780515317810382900749377516587230140798764043457673859559382051912035936315915065430694839118006939260447846064725916921052980748793063025908378477931566383575810539193428484029145911563412680340788534780129389632760397785931681816613148180989829062914899543181059398942168404481697793072667767028700259103117137005283333537539988215835807769041463891559884029789233468309258336585103212165751991473877420201249575871672714643379734564774801432357531410822695445616208535078446286037602584061529654417045753942526528715638021631791374899097484155035548334931628023223795436491951643332571038327470565658932070069831443090713810932963882128735191579540806376109755607468950115114819158909293223081327611472424004425773272950202555284251207812917995396126906147453792743901026817001884760695591354291397675478874288460685843819463840743109884859869268945367317041357432759044025391173268992995391701360455322995368143458913923251187533663547760908927020824813899004515102598177520427123707201767518918689910613069390905331960229652607204558473246363936041914451887269658733894079440389379537225035896105837019405983489993127317108742122323802784027154733218748312375408649270823368209709201519602377717215435037631373548049976973703097578957752396495744373273800630585105160850064018695752930310032791849406835639766305353128010762044984028802126129557798234435586431737249419162368688042224870774045891071344227187422786257457390274490755712376686418725502982966550410682520839342398891594452970495055354599901427345686329110699575714068213746268894711916000518925231868310156417691885976494165397450146628300269578054553770660935465110022086605441402600078230835150225724394286969810682813868812027311615374450911653891782972419006946546148230721032496351020907352584034385099202094320676227046985747536198615506291836850873558437540767092479876921118349791950371740667385891503053405028415452221289876051488218961928852842999223312710635078756614563983399178054874238238159696827405794021784073409425453137539535582470310585656095910074631263921447326081586163277503200501541359731366553690811636603170247521862101002716932595023362098918887577830071237081247833265620308010978084656784571050658266566623393241841229784764243618639010273838194946841664622704162970302239807624567013700213615432704905520666802059294829220006252000382599763534660932935743083382179508831835852475577562300226313736849605326101101063867115109485481229715492048512271856542611277753835288875324577036242232268239786512136510134811521539265991308741321250587173742839271983564539182084391508287299233702073211569603946179704494834721206215544223475575758576294602667950784772301476914668554409796822721523915187943733040841661049779682894085538954739622157550030527692352075035849876240730185082731617134937009407040877569362804854291732785224493497453321225343647415212201315585268426426497206777324912392344431177284750200072125670565158231149715394377489536059167587387074010567770905591635929648706572938183331084060718837756502261285575811027276059640466368323542052548195085698882163796009628732676892093293634685048543439519559361375925445132993809920469407997130936684596570293430403224664490412926747153833539749330172939773021283699054337264869654056035969208640308768122713762158865811407674763878285371606947455867629377880555951015916107698197227082123466427351610490213261305519124261660855142591165210883036453132420192879130942082726838342254416737641442554632833821496505838590073805888250323626677574124604924218186192413113426439990576586193680797946505547664135652159843733890658328605301800087823349466522434799430751436468478113516607355598958944970945619174630253598626043518555767416093416318767214269127459141014148201604945650721514882489193661088232108176889685092459695007371050470586656115499692437118917188819295390234678032060935725039774670549593540858832857420972371444545376293833906328335607742097153069851066206300103848441985656275902556809194562767975305577425077519329029461244034205355973633670614335917160970354752814933682070235374853234993692924389352749455215950523099737159593726997259059678099053048934058536970003766037551152236555320004376743734082298452740396986811905754565090709569247242819799636981389132627014520812636720970263073094627834635837664087975466367083979104311742252230999651586621529549845343927269340096034686781859048495855542958898031070242798910968404855402943986202081066953862683577991425144052356773325276422386179725630543945962589197957268934906624835749333450400384079014791618492817828745102168704022232831412849876102481930303095358524373017206916065107807130141240431496959096416233053963249998409494498678167427184175800116585456474426148205036647233829371980507245934214180889658273887467109726741128130867240683913457958620399926581343457449473777979253338972763838296801602337987707509181038216653995808010677104486428354547444319274465959224642613957992310528450137476824960694436112877338391029891736645427577633200128103463353268261142811146130530598037357713938428313850039752172744249915839927625332031484470687553997533710708095635004870010723637113660625427030833106069316812643539819864848064588416733885581925174286447470056060053635802466220336598916389940386581273147801901048094284689089746025770070363389961181162680816186650099788768651471293873832452267120296195524644013108326242278185458889092945272887293424938320586347256425666912164241239767099101469588878026862424993982580356638420958122804865054003061158876432833527543039386046928516524757134878952735262297389146433747614521780599898611257451163242111678837780493205909258875776674400822019444197556453042892404938110318770913777359409277756803268739067241732896918237050383824407677693526884804044755564709424154962185460282967442120894695283049867102386969868554820294242869588260521445323183068749429548703076995744982272353555626965726398673562637975016082952922528573937312862832611576481103919904169205072422009620504241934890981615697278882008387039596475557894225796671759514557597666558316906997112143949574018170683155075715153652340367719652372072576431118648718624396192274204342483033953393855920440970121980140994239775422668524224077637848080547061997257878247381395257524513582960008026667985447659515676076228685628857145808636296136587259454828957840024964081556711280283325909008521608259770099543870778683190473250017568467134214241453845178338587118085074041996343282565676409162827802914279948200121571476754985236211264600162243438680492772583261368288895588914808264419353018995327986113818857360240468890773849964453987163970788049263415963605638746247290941153007500916108707206357957517087256070356398268845651096071960983795978943305761163194904416849448441579048681415307411518598613599910309773631647086591285526380880070578684394071903816763520877827633613010250080179879862739168787536514987746345609885193356337472674494464589744634768001732168194248510539308030945282123224356105303273864964377421809194730320525516256460153910797502176926135693007310653522598920521368694094506237450748970254651028525207252228830114255447408491655835160772703093870732342329933667919496011636762534925118229047379974884548365126858797670175764879799503840299561599926664845394739739454239491054787794817745280364423416517293957401782276331868243640132666814303890559598718419038491331801833531355676099350048006793094030591708808310681836094838540307083063062204597045597695371913762200189638947667334408047091825073377431677730670190794376356925890266287612884426591318105188253510413677571689475445749780882773312153157847762473157865143984873470242539997174943004173954160013038163764254301840376318918453229156024074072164623722666879357575973234018328265278058030817814042049729027535367053313100085760651673824994175309132879438935914977683075598812651140094428869516410940982695409660861013090512356042432820849872575654680725679742114102619147836006902401208524005639475011202949642912356300172196225946261954719201017172642271933771583399138675859153568863170784223958894672231538942681399008570332386373402004611091077101376680324589336462575244048823561188402584462011090327449192035602551290452602830893736289190802352521731507374249996506060246636398282653600435247490740024732373183774822495925769535283661287609705035442431901300576461499314723226374804636533436438585750487165232407590297747282862079760910144157896378658009438233148784418457211063042858430012658715712871149106310419014603383005961842066354619080089736143978161484493261246872313648241652170923259810430986944189280203868647685468432907450382677325473212805491959926407531807529775966831341450518648883171627639177000311790523558411824973487519970298672027937952947700252139750925240617989343398798278504821637928427242745179603160119440019970579122976509836271437196069839781189095458812350279407059046465862498971346330475055656645416817462440650384924208818667565859473165181082917919775324378003576129556034909763884788252673643463895381555078822628055002989381095937408219703938887247501191703534162503312280780444548230460242411572138447400498976289184701745461749134362190861068390750316607491104821605318214347959892726466123124199062189858221949235480916737422856318898917982089264235703868888224064959299662243549162140562063657199497877407011362744449981956631465657790398696971031153074199631224942263089675093317433588060467947296976161498507110700251474865293590925207839236263803979340432474676243553668926573071723255076012241844278294196036333671560579802910343364211026636988217827993249672919770694478623576188279868888200625729577013983770216689404622941183791989716587662528858852992209560963228956719670438519095886642518935577006527607196060386287021258238875923941685139761150381254020654307169319914782209019332598125462875935487052250573042645029624692134889847785717810330291833991526615143305821170907652485370492696621109518695378837410636168038844245060861664566317847689812934951533693306338561343705893102173930407524833491620901805277645829488662185875242169203689158922416757222358884493154521427118015821433567447004461646562893104358192237408022320136850313026729001152545303337685431695323761202594542278785299478409424156209750132311780100927582611769993898258389527717347230578144451200153150265022028745428775878836210171841798313361628887691510706843933715675541495172383015340587973923122992995898521908514263901455171510001510662402077666345131959284198536958895886155899623582893685065538514886737377329829656969969828610403647991708343819133255519428147876477711011985545585895540729271286936908776987447582598464284825340157226320054307703168095370019175747427151583564064269366706485056767138958522351783071417559380782855529005189068311391882403242790055905445597133808226611588148786728924086359379791333150966323642624502850476275746744850122526908747345668713550884849062619684216060032236343638843860389311881069535181292729926511872398820513813226109926384089106713475253635534087430687398354962330460180145785336353382549550120897263038015518242606399337267915792107107423299749326274628196090303953860490189693048086601548722441888117216833470724435227432754676772038275747255645999469438625942059152101022056628844830150026552042462366440873234581717842203994242960713986167422275683036291610694097204153667664391268437933698209027043447007006970461379036617423795856007108246150064255375336623494098104213831019703662715618094681974869117182968496484314743382739921051492760766475690996133013584691977932547126341571177992886149165284579532073483531868503894321854048580253925873806869743211980791607415846146647504331105272063772935524935117760123517794189969285167748083324211686928558200482968874592599425612405706143578659611121102228523483240594751399103851585311676208178656912188840318549574230554919811312936820348705856700841468431022887651101329575236712376266675127708478829268265673254387307877974350798281219676242676712241370920443958321196458401865811377857270208742181851859915690970739904122644692732076741537274188715891370805186892562359562769321007881889882386448038263903872836211627470251337781089082178630725108055974959163568610841247216782233221298319274336334846382244851166361511709756129910093339156071274399061106261647562688045146955263004740414668834342259783553722101648008609563243093508654597273510790047911655906359615424394319526909195000063637877730989554927088363307951324644863708263242489406376086270727082177844086559516321598328190157312695827640127390524178793463360378392290835915365288817604730538057034325820022898218949464639483208911236723202842733606475906955227690416258746857264835103446682290316956989251924031123844808037677910082903741098502139931617658657864090088697452662219437194465066477882902575371788565312301330100110321565904334807481979417260653965195173985021683156292858751340534298703609649618116565635633499490452165422519514433812587017494074380424390284148271268665626862096881515809342391110128907578659650172439856538854140798387157469171729582983627168216501386658526430768552966623265828868953319878903568303152044159968519446688323474869384533752594744642858343293477821234138066994827696374535710398935738111873466746747852937294233157816890159152178579600788888941704871090065957113966749415168479845731891353904368201697323902664795279284940674865867872199366190289658103668010517925858319950562273101036599098077643550687385443178441050956777228670780336492473033186814444209469368775580085771490134725835736241708753437754061967449370382953728985395723795238765177823676235235232250641933839953243805001100096192465317477947984675694042549831898608603299589741716166295335808992199291829052404865105598555996394824656042922078678241714615408739831757787329346136993456348673640336913554110086275498966318047678694388712028941198232164616648771674251642128352166870806643752077106903575219983914575853630457060791302767677535714321576859293227269712144505090409222918824310179078834279071992640439898146782437556655365603430221704617807999553502063381704846675584965782851021422359949159930479124716631559890479359558580745201379850126887360760293555011527506219447536911842360391172162036404256204226942759460064876787959388706158279716254233451225970208170211205261946716485374559204575845188009418475241922230591172173398817041211712892977850358961204255523551977407837371081378889731568075966463747138935776110680557764541214532411920759606455220327089082071398789252303785484323374604090609185223100501947165621192257508722095446282896057658028610964982764404100472078721950999969711614750792505861127985363964521515104180118387326496245823267751275433319375343093020469863224984537704790146282067061413579816896369926442289747064777703113088669488866081312680248244059489810079037765211506114450756661507513392507993238112955811927676831329747387438650861373838388109414515743422172501242468658962460578237437414231719034333115386376887562417696824192654133988542645436598808162741157658480891721400510152048514057522932127390290569800818846584070004474350916911409017821676282602833326212279340264109963792232805122954622574664236107270895773111701086569035169705362685552602466683047324005589577595372089240843969076834642886229488684819296416046658872907064456699607539272551859648544447587975356829981419901221094770863443976742584558868437528945724596564203786318508620637235418746824780195160353174070685611503156528739022883779523973226857718536810874653552263745016138163799779633650184478271475963238606728413256534894731836639455501095735691775353738695845977935681471478754814482711843986288216106498929766888006821814796428044728665772189647268365325588962938256271167534440732294633125743282072868077522037932973710674453859999662530991949914385853718826641394513711786387682699645570348320102471387847446132392974206566228550879536754694078619842298179567217617522394258220537008467693250296294437657769662742748773220229672531781244679067650337157741961739470269345777668266044277531118467903965202999225750796483395573048136265110588997162966227303593695736241241989373860215602183387758557428589431424359556995518375048733125695443058017989413234694445921597278417504245629666171184875940402096170317630733211497704239285754355116777439612884957599975768994304877320092991952962719283718635988332446016209449979583539877006546695760495861259304527194393687079142411623313149153927527995849288603720741400675238440108984770650783164310615001327793722446963509049812309686597029261080933789217185486958755419993770767794752535686216000151275726713257338995321697332447727762910983587514892801798541978984347068587040479321789403450279337788539706309192640034515602363172670974779360410018573224707976901640796319148046982545208960778264441073305111805777398999888876086056647698378470374167808249816642633408994425733870168796005444889991209056084585181152727193148127068535392146817244332455255276108847703073641792453278360989860573878211932811105466707584942728025956747874014657678696252862176696588361931599340461014062921810894455146970761207849045993145983963074034851199347880380040735250237240109847687050179608054476335950969204523395136227602768191160915590456097865682421874489568123218712084421865006846136070091442590264415652878530727787813887630510320690619590502341264859094120927751817483050191536763695075291680850478360644972822328100151231663446244280566077106866569109989366900798388615843086398819229973229062162096961602247124785249238772766532448671178990931076555462851671147300441028794514436858499139635777366517857485264102026745553254448600048409809965900474003883683883720006324759518949913705340306399144672864788619989894830906860641064292387585028609704973223581918155294777210078851155764332153658052855126772931819645372398998145816466392403132097988498236128809573822857046416385664523768910909582264219694510258601790857624482403671274560530544368030729737621345779227211305669181585859005153776472942178760006978723977410958638490759567619751712341102052634967646195308035354173306424900039690323605924495933294296128618629113061125936897741294424039013854267761222754897604379818766287059397659895770786743200550823461444667813577280712514359963050639615959555156775213083372534475322012665309809946929734351152755648100413784936965107327993387734869334728604839936753515100544997164489501896591219727088083554639026641806956166446131684957976092909659483618244935197139122859021462945014043210700058584483738209687823038066506472229425671393468616729506338574956185035481314236932173168800952651995539855166454807660993362516960953767326225374923040682320307035581946036257005783784586000829899982680144397967338835888274577029241289740982416656498544599307954082250504491269084528845082639153517730070332978661344994765805037176078420193807281795699139433595947936316721256907950342349192432405209404520017248092242116797823063254019520826280883450780741512998708541916929300276607442601587474256512315888390348775314817988624221533955439833346457888623551509846911951707809324824234199875291253332587068795643552951980098005633232407892927371961023586974268350097374258423639927654350235525704781417949301580005001544530627371537024136736159769348215728813882775518657914873357818894524908355365993429925074855978218052438969220061123880359360134281852606323479204399776173531328488544786913644035659336103274156550194418970732306432485415715749141450321413430278648253095085706408190633362717067681072048580358271933578896143893638171203921541549532399735017968547981987938842947861291608016915980905617921642865848641978243736433058169855946730882105035154414610676527537326346587769278084698569676740466708623629926217821671870030271789633278121073270420285031711458722893661323081050098141892915268052949409660041179417696669461278953505072336177922876258408026080938211875082578342367227085724960294735812116791200148700153502295822769818121988077248111761281642016171886668505361032226362046968544941251367723394484437127949308632969081138934531160210895303265089406763980798510112334555980760881689573119608448524097582074423796349400045167327052470613380621301454836715543470044057692313591750892657388093859199010840905543629425843804303295436082652609457752480458157420740778046488083946494232143065127133653771306697093384860746648533345249276620391442562232874430738821026871204225487764890424961900779652880752457313421571863537773641926406152313156146313501502039492432716449437431393861790717645727102213653703393551433523679336819501208565454001253881128264529784296012176625198445934824043511262054625742221512177627392205928795616042352412490874157388970184591666489289259735542054308748756290762149080194618345607283521019869415966506255918728348161129421161472772046464636489276039030709279708467464827786996845441738935825040770458739198744220964363465218850658683793544806728424833344739567784045683512536337678739500319773444715585872631662335296294588296112558446609176321841841232387243952592343776531219302348673711759186848201714219998158568436634215331816444722032222681602608564937885782889360203029918928181007057177284719100352084097274589964951433648804515497215437164951798305928381394029115806166885804625072683707396118742800334022012085247507984877392534118783077324211610247434835029296187253617439421246490691581955720969705958961716868084610449504617122623448974760878649474689690157771888914435086795349039301958055512131495226190547792696112065247350798824701512387617958925360625167426505541683572055536347262824549776679033050110873491475631563982734546415063416251408365579711431451695559845506117163116609510511498490129008293995637465561727489246923107476377642885688596476128619543862894152899710420929196202132760281682668890562412377552448218967285285802543985678403383981113198580423192378492205461036092395457878693145702740175318378140811945476784256492335384953036295263530924459569346103825151002926070734415880850649829743598808548030963530197906925575432871303617710385401824632970819596860665270315898205990046008264362916611657846451359562946611133284473353662412261875497711492892779505618306095361367784979562091147523227605192691040298608959382260758391203458249558790581098135422059512210294947451817298086447220202030837658314981152725688995505736391001638709055068785213011172478721675826566344222318019875714542007931622244768252930421602649483036763019931794881412707717006067531613468850911833856270661988686016901022500681314714762854641522414369715662464986183320786279313207198477031535351670328142847427335763339536664494907880802561741483148873328623161377932669615958500642428483912723877493200118327247288885306565494668614819368575845029348740885901796922186429595004247057252745670889514780522490472926766665275193824221275311808549459711704555590219648252634697129343971580313469753885206316495966848329871929136610435914307704614138970353947518539468886914941577670063508180971808526098803594289932221769612801382076821667612644300138114623903844682762695950226766962087844503162306310781956397167322853182998996971674079295353843870024426285870876223337130165127067805964474973227453948021744047447612400883014219257932010904946214297558344275931735544418910815810302236353577591958507484259702256490252633037829928521259405159295400272968044934446481415521254376498099297278168387758244369027553019547713892710105237674259304583030944243203698666826724918908514433536105202417091045830864225843770807581595977736211426071257644216952020114011677251988135286740493244148236003421690781466560593114917250621607286784111640589652635662141512819444339247234381905483009036290804176696456684696411993480422658478104108779027552830347815673296939784345809088605008408594667013489919917641370984442836430950436167847822574476821065798743292232801603511095103087124643344215202927368355532506005117858499045897805664374930789013385312337088466865180103853642036608784094743166609675125951866410842824197158694153063037322400822614509211563817117105857423769135757854416635988769593255703269044307315595177570300311638124026841818848713555080604616266002689577734907868020424881640023423118034178976646049905375567777779773494094230809266946864859781343194991553334437726842410815897030709882173971785092272273686622578529500339956719822515789477147634100456148633698462026442234046439743949801206458911321971636077906461771716695182230444907534422599999751693295778425017056169872394640068161425538857711564214024421360370965077785723357293479803504513615308450913531293347531485673385756510948341486339729070052055204881627085403885477594498644930255574882426975754524287747467839026660393765650106367973000070569464077949119558233796247649700524696902920212842923519086303238190904180089311957143425310094813107762091495964941440641695431949381130170972941839891075152954480381130388451759186722606474886348524692937883399026722168635873880121784499838669159657599192891847578357887277674616722795167062501630485733984302225053958935207088195703234403416678265253053650381545105088352890159829777532784922792768011306624417343607813184502504178190521903199236312160305450695453221530822982785317391407919923736691106430506691145234641644797532875654703573234421530646786204489127170809874397533165265886806462391248835022608998699742276593702397971647361389141537210454462977114378262522889686423283759637135474477979095685028281474090686674178948512720930784232728072812072282529257187871437532106025771209320789327439941958305352061285890672290104644838737855863422214566178503070320452599744114748338458090269950129650421905734781826132506574394123689064411567483129173182153276450911347944084690425207830636367021956833724655310663842523734402231963629524307110313072121899260850210766945940495498094803629357362701864564817698445574322979209068503276214454402019374357018874468093685052780787031672488133565341814525935323347442495002383994900423488220461351637359996505167420473223779603069774986716886552767016021564104533595184611467570188585840575004034102144174193270009795037940295137987789286354838689978991582266999809991942276331901264337088618942044176717846938684785104054356331873649375293382106524022945946154488639163777633649680617817596898389429081342479169751592982958867227432177679255988673909857016514581393566804930409801536982135528422805688598690599468117605057097567281201207489833116894025169382919216287083961477606412205662694164364347131071380522071273346186484940229435561740463492620610567053009540088897555781391822642803892669768507909607236755144967383392828742594717630090621777183572560402165502596559982212327863315627030743678356201792443097983400670546999950496143115888152679890473236062202791379490106092491463230861863512453924936150985535200684704120905350155066633293369069363340194825952129549355691359343565613374831139061039255826297235812175618521142869138067685048413931283715159405033115536432621242445969209691036987406900360904036115038544767941529844284576148622016966841805592790481125050149620900914800423208138448205466766981609156043422855737577861825737405392071595843548569437869188166688269848496215003898203403189214453004246680041928551887084580899292671466127681988859973392385786827366401456017493374594418344621439405227323143179229620333792665089019638543733419826760197486242153933674930750457179281534235232005322786286976327820924254334987280433160693093679783652039841241235291383408201278078995136453155973218581821300993920702399602271274808643277062260137269478694049922703021599458874454814073892684706703430187343326199302403156481095377683474220930450446108660666652631390480721835964104284709333540946885905583566468891231875321780155790750105247615351199034214340849244947286342397492469675268089963987242712289819182661412884963308505585574537792227623949453325977255611478692988894012269847505092912962215282582177175726262903915231368862802852617754171695139021725581240895839817188622113612831540431259873264309856077403386296438413728271553185787663091340948494582384345291248130380911184295487082765158411870663230212802064112315151142991626582400821038038599503264985846731438405079974823503656046469382111201152303873878992556809921308530369368437137659142424872843189693396176993155205205246385790751767747147060650435963613418655211300097903226844132207746421018748379261486701956054634622715720106406165181310118907579901221887755859675013412292249286207567471134380752203676590124143368772136797936953713816937166414944450648177861689495274538151998593986334382339365876349350998387304830401204151227637531963505206470979697333309472175804825692221631539636276532068439840688269444418138773296437118422373299256399711310727018881288513942379841612609820046020590352635458085475252969320870928449731365310163487128561797305300081790649928221344010411891114047025878535682203732206707501138356943405581875278649322013625701037960442208616453477695106545839857148447325063446927549634259509722761757009489083659359016401102362983164869779533755763040282542936477194150844345042606412996256177758577303251236352544856122554775096613380253912875495044770235582671562864583107146967092779856350817409460134135519309638427327418279120867958337221886150483619665518749643943536376657512832954134274773779046578995113885894679210136881802396127626998085114211118902879508651106902844406213464754793195392151890412913526685748456136829570811427888021140057929925780616695379146344234027212826160910694331305786756771821158798896771631706129147117901958401275963425617228071129765195727481052750991799183991235228714015304876025458824705270379161263831160333320732111893622717395715613127888252730460841293065146269946118134383528754479474581833517573458127151630579250836381717748935653682592767030877502680171047741249346945333639831220575242851547160800469609684391697933536985280986951553898827407251238434197729646808528116112081763894375744481149470016082500655782345826743684201793837858524697154030607507777947166400189225353910166669886302921699238099895716492959677103002749088126736996495212866582116960279171025600052312140490016565238287656351486113537325066860710846553203969820802508145617788535306190528412405148730461811320154521916163913169850388448431137997441471744532571916453330053251083431285645061329749484379606508584469481670501775323451213820819509943244301711287723773438560088781741664890560518520510401546488819224483313144316172198531546884143378928556092170261386839107655781457159811840468381941122237891353037661984309070437852672702555816762352767771079615625480635991315481069848558262274360526620646487246992771849535519870946875008413153343976862782068967894139352944585977687459437055911771861932278136089023648311522617079799467816827022035643513879776898004064801608424628118886269857719478448697007730858269397508245979753804827820627417044770332346221113506046780900558355720235439237221844788401621114585225373072657192562446353071913371639673261264448460803970483887956077238465085208769722537652050403570557100341649865850037367886441953302326703134109940471160246065306617456920770055420822656085579940201235216701125076890925211416479484812580597846069327672518356051151625960985665379116400485288652847605470497990988360382020422846908788494509620597538463951480600352964804796904946663674526161874994773144789070816651277450549961800630126011392960025790128553523796852855205000603766063373122787828184624425480510305375851774300123093829426890025116464058835965875710945126657948843398288971944729619722738801906643851602763248621349743441366535160335060555611995480480167496643388095333226182153542910025558857171902015326449485915568942609305080053365293758619967147030824545584907232790964828182872389085792488324557743507717749741108896422278605450913014468873160935362349119455715377050308471595573590211101844984306968599210547903315719901815073536821293314494045700903850352834384494601672943650189932895407254287962047241148358489358959049255812248002678747740418925714598541608685983605634044527758675334795043455738171988004705405051703484498253226296464662899590344224483234204213432252996714057554979685563262779894734601160310391611033189236417363456041592009288973089659264219498262892425046645050601796805816429461766213494158919016482940213479855112931296797158755754492871945347345706562493626611988575338856184193707209441505504268061156547156122711271826572071234046738237445872295149029025403510597723870109292849113773619178703689073895887563687223101009386793225807109104379178093926955834664183350630926144839588085762650075457609424036589505230661142200978413069407135066134854010079119875211623391645085350651467648221582688103308924537990366132713327839151464839974633380564345387752610627009248085045531686619496786819450542512836919651506036571710364874380005602143604548677831484883435318036055264454535283933040653898266838834032934795878670417089439205204622676551452734835779005624471377681984201359985023967745334754173620958801896844332600473637500328782029807674154946814938596479641263846489719657665541302131461825987981159077826189057418677902914890197401106175414630920215775938055231638332930415511496405107221394411329240594360040908382792491423477895455923325560400602431864420162417288079576492052211527519044625912283594350585176584839948514332905110920720928655964402581780688826700427747784883320464952893038413166873618269918603531434564034652701678870086647305404191573150891788185272305915535745584958217391299167375800634361214932829164761106599436535963716665434034396770400098404068835705316770544381248782327449129815365424495961904675617025256586241410560235622444704602322998368391006069748640196173437818677057930702407828931914076320828876250826985946311337755882329817111425490139683549371644089387798988711959133362338834295952951640612954827167349501749240574274479104567496752530504459914224707333702130225600310086086988140974581478194556221182855099561496981529690198884730063158867531943901040371620218317458444207386005372633399921502959631188327985987305800248576793947548506253773111895718827152005150652652027920937576723687330781676214324379023820625796313854332614814271757754525586324016571567435721974547043052732321436077937276762128302415020729047895572756528858430320359721301411815357742631025358152289096272804083434009109960227146658093991641811055038352734972390671810982290655110006053165452577744772560190214164072655341393558257413100733681574545347963091727164785537972850903347670041600991197740464350044369170479374442537077876875125686896262626443723231885950491935881736228496042799882840874942985784025077482871110275837718285793317951775633666951511909990640393588545499920504255689674819573429063665079208837176825765046722416548751113383783685414556002373104887027390227539292444737317099026956568604086315366284471062364416638192965743794337550526959325936348161306184702333895309681031364432768922344872293536495381479661456795476295155896049848145461773701979231454101989439129485208077157166896165510392577209367136204096197269137133508355852633618030537236402763393049732001724296396601457593626386210731012943496979556753923400088478858013126840991728110091226109394716657609979723175265051723369051657211983417551341518594818262836704125884360847306357329693348211572955542983575328744171211674540521638898873436572443017864946536736505451817125031122412633780868450093865076566062254180569328122377671978150500591039461897306306432935438262264235450171561933142475455150886559496356770749495472436762422283894516333065430363861459197594095630783175410826365343320970302859306674211266874624028044540072465226548687875149475273080592392905141808118032393718281517160697116385507452497697882644452693218786800738112447759689092133949598092986636092788518674385677852218229947105521427781738126934673260023059404375534131521812781699108581048669483463770937670359183557031400339655369658026669480547296708400552006975453757077336580332145940949782817379847683922144619146093720451758690130430201992642215855938213155215065629280102936896047584789902033091981014644667959556751477840297862099625025968153900054151899642417772072006132937798562342203399617864653377334073917924536602308722518748468993514881329613428861371383621049841603269399294945491324871426877953007233067443898756678601881711296480445409694065646754431216536180480813851116487977863407641558019704451898057983912295251464230474035051004203626515889610181807130414066184938669446592126769124107236627660546280805074979619277255047173269401231377729566371561774289891015898336533929814794275971079775507120914479871056130104314081769424515264121746268833026665361334131959074942128538477373302939990172290214870721669064840249734109006822143172418031705277454015673905750243283816091231393355739920265434660114004592648327708135497073787137316048620974437659753588811466625544674073253599167164546668422261955628311708590865774004436992779639418514695300943060580474646575195197618949228624476502859162589788395776500961919385437128509101813991518444771450765127756086906068176905014127721427440980333279721169305866018712875978734710102825069115517271356972162227574005633277434675612330234831181235923039029941244386958873756543006684571237523749721479853703120755972535798020450903785820025098674470303195004313573307385743045432883671195273623753131365077720304198737927063336933495567283358168452765087271405541971831402656766510964057948187061118643884299894807427581832976958055379790680521772788358233326981808990192664408866416538877474534068019344300378233262147395573197490123718198999601886722146014147752289431294777459715135000937767519725160739557768127611244502021814982456586659141110445468533890322219777799561938938409403094955730426399473073020077661414372723239108550051024921244331249011444326262340033770619342301435109360212943635679200106561344831467157484902760197982814762499446820121983512854407322630883723760504191871962686746778835592925455908754314761374891429878012318456564335258556897400691604109645700790867199060629947288117156248210441728894356118495422192523352726592739463107073017569290873449012192942020336235791536201756442807936320247401361478805480259360026266846255969759070787547644027258693250212332345558354645367792428356461513678356594000314493492000776264069241930348120320821300400263883644166663253817041020376869383378597727577465620406858932088270350208353409903439936405308860555041505261813033307255071738868017093969787941716759119517718622966044996069386829560096286756058621133402222119360832551881173349776162038463050646351301394907622919409750507330781000872043179526973582578531790806908416325595746327775045534770459771895437010945584985646487759455046270992375422398074042189462502355787872658274374608692472914636040695043685744805361656190954423070975659699069839784605536665487439966972646666644133528968245706442673382327547895409799997671222411705833153619552974607618845541598432918562551776716054992911197678118320116048893086424252681423598246609995535313555320641880412336880593694985721026328110291477004468927645314763876764303127832480428053242479569051306179783969279527188352921970223706005646712540214875728798191373686749404324349725037483454828505081404634514679966999044176087760910305316545753735664591817493192787924931034111821140899119342705182990564273517762751568939788230046125689778051945375477852151170996248082430774492860181269930799958452377560758251429000589156987584328900537427582583433903383935249887980397804535932184949405795406534746450732101807987787171406558254397674761317825593039101153440742313051612383168967358044233915209930559632498777821420685551157458248629622867773289461121552652611374325943735767643611294968352255804582912821721940463567228292032102543328556991739800011952752204499063034117604044616814766195820892773918117614343913958236137049524704430680593490796654391375639373970180052263531218821788202791311882400369700836498363614768800428660317334450398151813146506029455654344140410422116710512828898484792174711447446517061784659725065709812213918445381912755397118970766415996589215738433159542263726133116180620777173116377715471806161679087208979235999609512969272574184364343571758014209380436686924928689300866607333696284327682673274101482004931097994336876750436954093953087192267951888828676025780198276369119358428200783904752055206125362950875359030618049946227125937655224575296080808039948217853022836223063591304814652091598904921049547147996860093048252290000838339860995675588615317317471981419415191507330069406985376490890245873650591511875870135929561842802135002468764086874796309123478976717673535364375474205048631908816098068378110905632697362386346458262210152314650000467070904527265606870282404705238574232332028093103498027327196189421610030216843642832691148481284530863708507546791370874823835880222012962468086472305668252715632581060079308178925766553229662692661000526949066825847535873645393167698629674613560782222435364080006021663707634483891410937419025798744288740483675717736350122069516043655745679564802051853751855334745379837669556521408872311585430771378286047092916052447313321958719503159650273733827178185395683235202849844433606781161561270793151645982009671297393895660018755918612524519529870203809205288386969820696432546089270806519477451983597175253885500198242680521150141190075969025877788476216960152557100111463803836284719073021261353689244514564699264157324583536962089294579547868791801496894354258470089569400126188694747114117789569519552165884193141734157408025434500750225465830667746284774835800544691819351453221717046204109547506228581815475254313785638329087751653743659924221957562343108830306939174977877787700499140193346810207835132292327779936009437395077817049032872969525839534455359429798037721465596951238252973989938094807479729907424335396274893598801409386134494252054124566095671079799525209867003871022063462597297217231517543919982670343062215850481385073978579331816734906761358126306068742576019586005774282714598429645173570349670168380358294554885469030894044277767748425687060913584421389369469003465987251475440500042790348002215089813284518538687102015807623349958626412973805178679581101470446279777910131440414009022759476578420260358470627409364697517151716233802679574848742772844079580021299435278399921636413232755905089710009961752168042036272946609923996739978998669796373067688344800907153082641292584838465377107153223488457149871364511822145840560011011654191655410778272894218259071013820331490212903316717736345725863888436449734367796453267114668495695791211554342122790126122212288035919341249185840502447274882560330479046023472622920528847063099413994777034477745860220183061883016095660129773102553665465594376615076532493159929567266237276774637604350300015186428724802475248142046447844090656161811371278824106449588035530283887517834117561204336371804963120351133125248669685012525210934657396394159908633889301586432860643441810176804259347778406209738623670692881371944222167348583914577099477733804717963232372796863916203204901929521957261705960534903541682612534909323852322783513382689864973447202506004108491345236642478439008256165817158451726551625348967515192480614032595643501257179664756364440482667713921430832879330693051522438767431205470039059797570451519395439204477632647603478147074564047232333762315813446297783472145339624972187240740910929704208962175705704987030778991430883770751090485866887814030310396064399632698569140244582523002131826077176723112356328906547556571448242227736065179602059715654206867639374969821025849135926639535282020293281630902700845302504904439339182577474367989655179271390107838085047352510454732227809645120790371411251296973062606964784787347397244398530191130876264522349748920618522805118524306470713633222100471484126497204127995792279179625090012461190479018683145370668539178402735983529278434473286235994211423519427345823885395745349285395830400298891657460184482659323259230655226705296836863915243985726108983994865754672848066952459927047605214420610382256804050358071186457133006516674572951734800546193571042335425832291890345539053535272865568067094978024812372259915726909548305615411108477257161447773750428853206251542568996390389772217849449965247704454793664248661031788821497141262265662181972654241180460412950112700279972067177381826976490191305529458946259834662738820469486666658621533858855910289313947181128826461380204112446610418496696374727854395750250865789530501881922635120490889904377016351718953920336214146225790361655383573431899018780604566474809847538796821721624799177109809434848651540982815036436199440166790542532547564304835648810022648648632612014304710763739615557846214258441445113547599756155762835788619911593604321142974685719203630901974704550863226491732840241498685513905069918959796153599140341731318201829243940701967997007066083289693865392492248872383047339721529585364185905967227004470159301974707620737752042431240814591275419818175878010527942924894026930667701087111027111766964631871111352116312161315603698153061920157265137843034349049848399057185918840134344231773776302187956630006868447798835538738925535896160075231100926193824483725038249204001491465558804090247145463549895995980571992463821713127612051402025477760156531409196082479523432073980165395061530104773004633631395103093524636615187696272991392839908550097185218019819793917631581495220328469195317955042895836436922289313509811954641098839055774214008481648485719857354157535434356221776110718345623187747505546081470870148437676347573523348285223174882829920559892765298642795313209848308750130888054162329905487375067012945362768480470594339116910404853955908721281878277510354352501662578097648287043398060879426710956825134224746955725523920174771217245063073903966654925505118302946144800916382261856531733909347592236538839798273745915060161028432657967830178485765447222505235599162395136662496791444367302679381799845626722057023296486372192579082910033092977649108916086318999377979375692850411102896619515850131493581274835765261398352041866140356222813486208681900263247008610999067352793279917203959983462417983535794586841150388429544998255084258346928920734559583352424219922941175668694668130180326117117573303903898565567693783799865287294961982285957143256817511398318119973694727392520697389027463900756110130043386788495607616683154849588901859236646284472787616633810817298418642657066615276383366484177482500475764891038333205627777218480154197387256351645375270575029436256648049059517673832063684456259494178642575395983812434202059456516184482156735329826574896177883201089181288790371124165640425400631866701858966188545286552167695704220364424676735469564129317758317975197322229649100383134944403269590146346208353794322175116465824019554523165824625094612934738048263180389850960380939830034772216738337982492661142442954256772544295551040395459445545308521151699935900357927200539081742519272725733678304920227677017599036413539122685787375196093112965503097515097108907001637297195366426092836529481719316909452325580509243942993900606720108575070567538845423923098083299234385934861810397182401179617764344880447360725261497832942194271540976134712225042196521292387556760135906301292861091584425732535123359054338642999615369499498469169291397468162189675675288788980025819028441905377386649266204049452622960273793457084390983078654345915420352828195462071775245892763202840079605243820236960250346810767688496987494444102299420493598751060093671864165571577572335616325019378888741484352416334843104443795608164115828736058943603325959167618676114826103728108989040028990416484684870442822783277821633141764624347414944601858644182773907288988396661567028164354089705741933293693659441308549710611183435924409414822525111604695470390525099193940440374501623143339097862107874846318943074891808644398364369777368165323103932283065986464581858704203674034834722925160442593262163010763314308029568427880608500170719988238482641764162532276691232946822217916687125336843823810448257542641056731045417767784917745030859110974216665387795933971540942610564388714783521185763366035066417075946789278805388866879364388055724810266880977847051931082440442900316578321326320096533394986053741543596508521579416541914977359885215546536261126559481604616520867298552158460644708023953635674254854847050732845314510714066486439292962459471167598283388362804241342312014115885953048477325231840242124549168099269894781011744291059579562032585903239260938617984295150816491500519702801335189477268226054703002534604417235169143591776837100626967671269828225996155992742918929816904332733143716968531954617973834244382194208722024977100448234509377289183740607239789612415590674696282184794513683207024181464346024928134993396876345692167038027119730051871368972694042098702271773261361837789172127271739304064629927391396687264510513797302772893148394896324148088877265467209190398459361643008339491940073681581789426679748957389959066466228265999658236760690813626841270442163999273381825120877879849765350818992049896013904050591678239175782550513308056827037628677948607664677019297279205596614620726038318676511041324705097294793269356912002040449300720284929148369281232390266918070743989332663658067031943688772065225225389595575312740302008002194615251275787147355423941723339072939295444644104880997848065688689298615678902603529153129687084198994908714543580855095358675485481859235921069590817541939293789703218860565161260322057099402899441555827313533621981663316911358624245364941014818758372585987900957263745198847416981205495643704408003929873292799387261255518496956844606721002778055737754148987578352063429629565067659088833123222423570781268468145554469873123029567475341556481448207666095736608284520748209777637402609070799813641096370415814512671171361282489025198502424218687208191844416899917678316905730590009907544188121917636302293216107812031557148002813042156225906589189851996891106249067467754667350110610251795296742229686833896478761691163251654576079157880616238272245056175786045640592537112576498756336491454401863761611474758080039342902315124435728146059146899623037765871760324585068955561392330256511663674211306427664827527445091876038994430305731882019067465289920280878560709615262251121784284308925017091528119315023736651009250880438811340957345618480031653584485511515588693561105347862517991036881593768144289742377521898691370837763576949603706100323010905355507908434573960473461002398591080396207831541529569203298848485693185530590544430904334025976463079968185908372732337643190380330584627783343278714836572375434502419833748365099209246792862851405273490930869369713029895702893950321324001346053692756968781822208242585709383007810482469991346454275910538833089495648807773046792784080282073304267290565685658102911585007131011526785179797238586020034891876184050085907670565845064502783401735218253812515406489472126729605166426736285583702555834166241010509736404829595576998873488206625342612503034449522929966659840860003088638067529587640889225923382402321609158885958245844895781188457905302241694075466304488256241853949287257514188713662796342336459344342642082825893895895423489059436087414294782535092079206960805180682524376813773680304879324463202985080219617533404734970655100500254035826444647483387943481949393954901519901468684949435960359961859284460370392571541062962309292060452374488949101521445403994877697647068845999642886950322024276109002057649073291238374639609287386701707349881072954081282410916000532703837143610541314072008495160336156176926170801733755235232130445021164644167872836542488032133122244511416512799507517748217374369237979467331214453088782387862449138147586061940321459495656417386061350320302156711832182791594715101873792304130953658876411765636975660329588412512491249073881005796874120174833748840643949060297271286728765965324558909140995992214366917533539782890677443693195037648499376867264133132283335162558005108332114040199306870366362889096367266273737148087796905602451944156033961261136424895083779239697796662585441538717050220553133836784735924262985188940675103616572152378306555064231083120670909978461339059493608098924043304961947109476099818920498891046921109986722586423772433352264278744346840657205196804127386781742124506753095876666569469386844910759349689171453751071858662870721664896766357143215321015966805648399364968619861133525271125563046917312131113719652379598960128380577100568134184744786107586995025872682510629799917183760723200298933994895315953472179899881214612099469906132267538427316874881177267238609213554180262929490849376823206785642942809812375112448665944255912815140524177056640578518934052673829707551438643361400357997182567102810598690667700967447276925877569956565518715556498768265639301165695890410755017418041027872936595795917374888350142068979092959840048421211393365958985478639723485555813035176120825075236050391966364965278908240547097192531930073175986959332617139684971963596580952881743927280281556008023760961139312541866960439938147407101459281720656980229676885129943206366195663881903168910529830862913143914301316989508584393446862718514759619216446503762666660697993043231973609525128092690152601275355938670234765507003231320074340260828243845420267662814076194289577347645819182687431760465442556370329203679467971762583532536926511264074160158537308553572021802281461877404874662271624706834046890581075137562135054670622265025896204271254664953721142174321528794832930400031527825224092746623805193324305918980300582080103843213847435230503827267097038816605215492937724065820425226917377658030300153270247552902251159826834655969385729273642667147528315402187419020298908858419011209116777191281717402135063592942107851381044876533364347996741828454002731957149212730053955920912075086421130539989752010024322893758740879807431976733562637129085400616494989010792546769946575026310069530448588103257714143135730840082772497868759593910814882208018590346929749701734508325595774088496124009958795441156006993662031611569127001454303837262262792695938809746057626540915665266591281441020547046671656841806071035390322598726942266938063548628040221725768966846955222333053121390081113748704830703755667777437829343573290529920409099985369337460617788380514687589003400871177989289050371488571842340241242873705884836149319432146515654197950452156312380384683762720483894416281988998775186208778163677502122905792700456834867690144906261308509369272526567162330039364698195834092497520876156264692505652114693132252638931317835242148963640968487414679020415874201581910771624174601382061429004498051738145957004905688536963382298615569811727831887409122157494316405528655309040840354748079407451770657727556554706381708716707741924690616916612771065007614252880954391401167933759844928407036578223031460020708895923077840319062220207602959587158845426744068173265944157820006969387075046866365451595507309329206020662617350985279256941771367645479594227331932641550234631097239587839688482672554961553361025020115502854130062989618432327791213188973589576497276827083324225064024847386079859842525258323204404630715591497594884365360209835314198730406606537485765205678471530820369528601274988990464002958789960352083194165979102738326463695084601971980972287579977374440995970645573856690561817692614569176686769924845859684076725791925690552645154070759645350010103977165902007429977816588679060703185243531348396436506028295171085321764994854331600796043346345631915888487890191027796482456551444284916456940351029863878982265762784649471091197177839316053674599425722485542227680811313544648242981363740726716208689922951007113693518368217749992637615975801268397050864767139300814797910840469889424374750595064278975582736080115221365726528493834918480213806547351005754336608830850367740166909604242985850659179370903648485298672819010867582617415697113120697511908111743778763218949941050484800707576258540109439619124413990410900156853511982705791062730221674005823875816130742126646949209774500165855639119227467391768398931657535879177644816772980953897017806959919537302827755152576565563820278325573176146210077056373454201350513730551261410592018897057487804014251312748114176449076569571352338533316853760381804533213866270595196604224215882624144011516743232347472046528659212400649324736705060283829387303246493549566308379878844877562892699745157781294692433251877812930958961771806930686728207713538297161524712707493152397818875064247510832645914036273480980147180397155225604375690777079078816426889748643094278474436422043027725406468986852087214940564341960204584246820714477054054052538995680619359697496663810759811185201664099808024127243838426107328208805890024422331324471859860351564412084916283173114809830230949419616624773181577804773877231083064549334302588277381209855101857400064308809063106971295671039693246899980817790144448241439532274755613256586968483590788269346649140751380161227009440345905509497170632714621264369549587132308093692253550400658816440319995359316038839396409286207173305049034949536366478680646024648062220178119961584265639448061258138927808485465946895752876503263339066935131848008936318560753966042368311101216983603129746332653921035191479980949101694838311456663372078896210261090968215997269238654548328613622251013126094450870828651294146805642363748568392658970729933842224695228850552579054636432478886714834276531018781143429135682623752846910318714787772426732027317187408022723099128909120663168319680909029667860682594278607584948689985997004421812808457505106887005414111954853759532252666659759756830812901143333769970729669241518639860627247264856254363774543609103018462682614280057252137682487429504126140111575181053413308304997564908739067599068675138979877784030061959762288344977848212573782128965108723560608036751802455857970265682408256170735050918900452376648432772650345453906749064118965085780191253503833500925970591717843984882021569960232641980462150336736500934738489325258454677468539020486954151432155938403056838062690756170857317319738434927545681621954894062336635079304603393502790426532724518298238129997064076433038810377926913100031636093621956721611009067010418815161813040573646434707561980691712778875846291481853900299743035509437144930299219753529890668545763966958410020896359272948731674925912471275386541715313387546368918049306936513141835812912824507109761401768090884916366963844442059367401786301469102341127571133067755471402162644185138439447671875248132720718487976556792646395076121469787097174867897503637692070645621138006642644620195319970860981770032379726187672551520928453057083823077645682642222880520340524593501139888499339755278534409717463147242564924089387966820795426722558853741036904274920797509115742917107079263098286187844686715978805573082080785469565347770316198439167405977613663581800143128978577440295661817348761364357184285786241569240715336713865905794081678210315290818862346304527214679397008403947558478052983317673706335917028688624783598443770842849665249851475540445250493637680543622274976821823351635808385998780609146047259134508042854166657889090568924149575362769379480662052949302930131782663493699520790843397003336168774247574797863183951027188292907830942265335455001455245784084596298098420911117983493487826628777977534369641771453572795935776832626988004827473274304268584464762695008842839784704550577086856055737150558693412929518172069671550491314129892858395884893699675869162110459158683130184336218421677039901728379981740443888038921256971338102201748428007885110053271574344961077480926945335327088219934577752411759994176789108048890900327545226625407270047040616432965433333841565269445406821017059532744313136419265095480309598204571915067122814563483796308316774682619242591502610821595889585104276759803758058630182468740360784459074266042774145211694601738506009733660530344599926139356307781744190398482466576500454447591302725270923871431772382623366398236804708522141143485741088581544918535260385055211277729619982226950995151329308321256922422979214574667225506016376198940977811109500371103995251836062072551826701343356071984351308406876311123195444962406690731493325169207146226548443797903512254748583451837828007669142853151622217419985571078781413134782919461448138270847457880056816547689405888761469885638025398310307016954226560552355131093077189077633542684832676375885391452077732917554032143411558434474782769622254698423071061296557470158545521945559941632003767234764133873424358728508761607595535301042733740202425011436049225618577527084263601046974776289303258040643720194787800080028811794781961197411262194721022314190536501561552349582376274135926662481813895281123930243297459048712583307277225183874580622633061756802500902482002482368998781981947683222753451702644621819251427419595403593189515385061287014307458070934716754166295600538019750779176022095951983728696975356577913442163189944434519995225780260107797839636058133445056401177508131972218283050814409746176821767990894794050512939585792535944762511725429891592511912719778455817111555992267914842979027856449744930732057199926261019150086941130536518722380779548341246269144773198002560567182455860676425780012724942531532767062039086904375602433705063547355963083920615817415834717609075661331184604284045580823412623352170891994255249486048172579531793535864383973285131333788814145823805921595433737162008329630106931978437868313276428358406344820142799417020298042796296346378760412321035134262965655352269351690869416481915879902538022580084583947055879506858627376679339787822784644944514318500750769316953653913257849713848372467282719887377146267125829946493247334878880033220210459637543369743743735697831435290516718351618278759836737123324250588612844396581122186007674174933320919356057275550038478183033932745347014870963670667148785380049206104210168302388021607531598674334913993382433685432644366197604696160931242693056195583852732910825935582733579767789156455650828959752194440125565516903531906385817312735315427621867948253801797478338478695662174121202505105074017469191858317353318980080368533501541319416740658673142889284943604008494022032105825953696840506317920261626395720293626564742480771434975625759059432534434812044869409159814526153373810384144956472673716802897584599017920823200258174513157246064120218774240168082559459675980745049683634463589887464675144559130881878611646502603953162046103120616190564995461358783847660034576160543329136791815355168375928119037179205865381807259413698315567519305459653815256481665567039175507880604673084284524575736928750274790780017899452095843667585075933613068437894973240221309496850347285852355209745727559190963736024812483604621576891997039911009527216683521693902818824045548954594771066321429947137843272790469191569894234729521896571755865614814716931637010769509425437860584000327816705535204942077123609920808128228766043906657870229422593035688315080144721680761774602297623152244506310899082092173632373174268873165345215405412757728521858851130715189374769579321335115127320928510727532656913816327584759555417865195495249079702170798964495525846625205673915822473185880174049463960265779880507859309016619723623844513411693153357819301946183809296394661436663740578321710714012792289998908014128492831331852234378839801089385904461915207367727315880225050123717047362521329294592895100660875898432286644741568347061189904807790289742347116868106374850783731646366512912163333443637687059031043407552636973850970623409256191737995538412614884851592504414722368987815118995266626357313274887271799871639611119816956578956612176679762350155674951633729923803969129177268522227235048848828451558435399490893399928255360820664547473122037688884470724292085070564755849029348586603784322588074437068004148039206666552261213942595071032065822888288434239305315716451513820431782082942686179698676546521760722339297607922604659653177781122479752774723354599035085410904744942476382545519190925344780692227198155164609258424278261421790875988977322428721617416368074891615425150655305842463792742344816794963167265162885978631991680741999873251302449409514547878415278013280528063055375653316756950991145233011076742981979365540433391215257195354967401413432313167444940135077216892065399367777842732026180189667519716931079451936880596048300076796498621094019591114758711312348718117191709618907459469007193528381000562388045205904127295897283203211755084478272634768851771072141458819764627063839115559052458196033367589312119013820846400632066562901014112378533071757576050188675364774578568384351491228967945618437560219917737840246263084184565435157690221651607208598800390189277280717200268160304632142327661630317639641970622809778272865627565647685840352857055802664866150948977359989833178605060232472216835483589326079912151392078467800149513528639556046552384098092473266383394621730242109560658280800665662112493956551866468461439727530019793025064603354292513498349999806733944834238435224416201678783001326248686890653340299967285482404266860001764930184189086427835193024486988825420125765658230554054949046775136191770250559680845394298648569914128760434928761216256886987881294160944763810198814897187467795485106176302032702796663298846145267864981330444242546854929186234955898740589833710659057395081659739030434804451350559407782362011680996725713940521304541621455505013369249554049454663740965382298545016224867598396722105885370363055178848055425980275678340767327203612246703938904287748962600950889762799232608781578889275136568489668490762156132765103839827387604000499912108648103366233830150188551399485949246898195703938293645875139203248430067136759591864043746745868020168267416323621986388107486135860896927503760378909092694093814585630255967544496513840518321849493985535838359673604117718199043436297414741858436822657841859746994323600993060202671567056344496201985222561815067033667156369478857324002288510908600970595318841605984591328178800438820738322145098691362165679624180788638205756494715678663611660763215125300241820075860619998967371175126043231346399708252077460516836861081257083050982565522505575345175330122951890825581074235378393833867491222212968658882775911941096712660466570980709540191322809192873377118238160444876174503188419140868727822298295688164514238713453004505089833031882779842974314442402538508649065779206697477791276976434155060976146553208698375021485836812243713062835255015099733362280404539707859252502170948904582394387911675289648673717535891201155592410166289167005962623199248379566230422716729876439952442608580356235698493985720130066032966277074651919550028626568061205569465936448234146447716380253649991322639989376916125663455588454851271118855400011578742818735496277413137899724860789183014834364710873954703194849472512924050310683133699718243916463941049847484626789314244101746458544783339355401698156967650884340068162875741989638265690702620865865969833608283068347318749116829567572374775300557024842661281959949887576421997426994418185955727383226682821888988776746412301547276096190867724206192901166925791198081967046112441938347451181719653467264309850584507928689608724795289175780298096316389133452847065530850315090034575463490553096074755958187412920626203129852999577200198166097655789124941756103416593940450005553113564130787403071543266944569791084794875153219018013455945276335714524213799251557519609743630574428604266120621367487230249986864781236168396142143554617564383961768982655771169804395129995168276184014015478434986306506422436137666513576755811672003376918891406717325618240820052602089392021214783304145811226185863834201296288504275244485297220360003916681928226861732895837710935619317764016705018068063430484652258323678712472218715655971652776370798569404664671170441388361300141751026621038734281483046699989668781742118603710454582697960700515974146314998485140815358757599153618920433297302869814608546010900773586974718869167825548425266699464785290538331422990905410286277245749793771782594090220070265462987445811930675922490819441219272585815932541010689055882633163144281841689097180503289476469193343859074636378759508506924244888961952247391552858459645824173402400122328558793394520142210361973669513868754758764264442345228132073469178074043522676594501032482110745654246998351418291533003758428288368864219846818067064448583124291442954673679113325967256321966052563819284105959107297503993577929606841368260850155787068235338979986004951508949402751667332496485162109272688852572681294370248344887104797881964556737089144159141456029726338229212303799307781920894042804407063113237915686506957988288388597387235967535202451661077095382170114894259210565684976302776454629153220916318316349343157459394937581584195290969722867515478341846002262338617828916037299065348172183583218111788086109510610811325226623400538750482386053916170369614645267459966492168434465425148318491893425581533043855493326009237488103552871294344742772384687129673282522768576107689394322042096696716683809099968245190122176158021018676807253264594114173340854267326361073274260655149481040653549228782262417242918215833936197367688535757441691869477106368093442415520684953612237719748299922980873957421198586770019647393435945874891763318993483600692655796106401325838397623888786746606146593644150004755399838666936980459937590284306443887928000705041872349344546089632577118397250931447694236014931722957100323981674946155862082132883085561345979902603315600849220167131233294856137883374734881155755195801197879335213697523820343937117663466071906676772698948156632465336340952204717860133498358079582890891927626617758219525764511374997967796126890002255894424738520410914920529905448741887685599613294062897951816504555394531864010283091548206388655475726249996960513769980833208122263094781756085059468587533391474030695532268074689135739884170508242716300876339945045289593575069269147653446411486785206056324536062383852278204440783333586198670404099059715067500670821818622584725421385415901310756901708724782586846395383593257704224484976094273346048120396146489299570588024418729963043113731175773351758794490052003679541559722469486110442345333789907915812682813853226301533426059547013993079361378599190696243673103028917662436549941614439700767800721897582166611855897077445880590190330368154672537709557093929486986346024395753389341826215149985024493674019805872577603869952412223212732776923393921747187897111837632685668561767054306682056919953902957122463687018682025574072541454578640937242337263236362827550972626558875296909638119983536042569480692273010219839183696045827285012983888958304096081401392046217721011032434470454426175028830462244078091544591590166826701777007148860744586257353175370556475752605470417355154123758807177907614247792922169571622255688764462590161216599611076059904413470767488683414749933988399437339467091531179698678668944025424400355596597681368809047567039394169426940680206833414996695260765379395345350600234543974273833200795447814308197153652509324092349304629254834280975314527947167730495124036351770480820647369583942647959870193735000719344237018001043968774802763394147400662952852984826723614825001800136012979156268411841987720854982170890101341589947616229947382880555763050170703052361318665041294912380707639447112238099649245228215713289808331232757621166044810524549768328767746898314777477520973470040510504589309874087218071659957548282194758820480807654731537111139873477954884573468238042057914703471072717249435243654244089395870004090126119181725152871412569175735906853876601030314152420818401614203024197507107184028408000615019506160963059548146959982984402409893323393675117475458041045126063900372445725455250978498323297386169803902283514449128021554943654183392431685155145277809405608910922525713132331110604751982854815934395339980838959259243885551137966159630046729178591129139801144627356750099093462713093343850825297544689564394096932208315580046925465666073602650299258564392610220755779400531310890939668046841799968688733107455306522062804802442074593472676327780284548962228537515819562093423885107485370990804149057087374760521807949490961122770370211784002922637882312385913637815658303386186706387181884997682730847138091388602837931499502930816743157947138706274117022268767125965324822511172145597449811344817610488365948026828164081813818712382213211382350288355886325558074831774259787008092873760849167498457619632612351515867325475366221299343151914304432041750125895098493668591577590296248399264391653165951364520735532244896643342097508958484260802917804284966832434430370837407361946069228579169558535983152138194323401480733998344054828517059394915390886827906579667303061313456461077183803588597247693856852591052756383141420998200020683757480677243196167545892745490292634242731935440839737253768629012266751697257246294690860734543556757157973283110807207389422310897900216495846096320991217015427291922510559064434039642146716753867957217790783089691128179456096561321237367691278420891042363386445802943738146233439238645939972954079113233414253333788520213305971536768736237010440943771580397474391306497171271094901871937576882448235283203757189082451808698085438176112160869906998168505468653439972088073932042122765768628650433391130974387682042063856147090359054993114613784406049092598862420016491385501713140584271561048419413130011192454093558301862125776432333298435096061099152415316376284790677291849275353947249633977576271429764480500051033711028494780932423092534966049595904812784168769468159731104613568882904431027550593019170216322636503209936575450162289203492695635170661202048474697008899293079070978251853202224310787304548668543868574579453309860800527578796918121434047320499204097017716182693219411329643365090356635713043111456689222734655709866142380437866118371215145243797701272128194928496032453447274164029035924831910947397620697398045308771170005886550669456851068009225168813358517765203744088148546498684987414915423875765113329497413969957650645915489078299096895557789653924021104161694321722551816696373923036318790679974375157339916523027312399876147005341300467897882213534755916316084590343252954766743018891756728682907728462723991971372377786413942019878788952450490290318231768157312058749868048546711844917777380172883088193961197534003712424624768550099721209371137762693820916857224830664396904333978835480296960172253225470108893722031315796425407194124424719650702818179683663577042140986013343404448018135508521612397916527366944214577087767142557190316197584175139368181790658586695916055312437156608779623019288144121640978234385614892601206656665533778067335241404622452474836692867483979745168696249644645968616065867273868745919438355211640738716370521888782649879720596995373656384411427145825523271981934618865064230481187353353657888796023562849524368567943779902319629251920163481062781607322194926957012493932367398550620785570040589487589106206685609361704925590809748206872401035864852691417222930068415484211395141394336364017416255384933145316719687045953367676654013393402043018318133297837785242757017319736221620299473889216015292108446868844948845101151618713152845348354481617734651536548527110250702263517017209030443174921796261589992254242122240679949372598378566975443473218716651152353596454534697882125952276831480094079910102504308358079084667771037023995814556622750259819175384484240527525613878079683202854960010097639305571037323316669997508474295771911304720821025656252467825307121933503354607891803949847795366718574260586490514415681826364410069803523516933291204839125259671163222864567449523572878932258748851138997359854679614184243283978204424641754539386739938622612121038224571633003795900430794932358779648942038660473503442643646197318780071279320591219894466404013966132815927036051226931509759535544262352684724000794064251595979082050395781680408402614824003694360866682545399051763287718402826522388196563976227849808708513753078666388594075831144297504421068115608137324180131172368148063688976891469885170654628213413505137748603373021511810906263768874832478583678205034459960331299480751825933068225978196585979084100978310477568390392117480174583959901015897780407408980102104146403714772012123458224181871286018313347579556236380898512301333484587275052290554161303882582583496888371690880976175873370348409117237969604259635363743524803067408084534806767701898032217440679364827358874962292584907788344707858158342165601808355461337265234689359388040954736709266571292385159688249980314431295311108974129705295855637768957587516483838321197715444564102578256938014038581210987468661829194341027506373600919408456611835859249366507550460753108803574865499583998014068025765315928504056259900982588057676242001487131319110358884644539867990114175679491730609125069617597186874771549972134095804871594005750579226741843779082179377929633835444022948770934087357807203480111631782146616119045780718844430077007731062346316751851043633776356294310984246078444599432357859390244820907804301936818836061857664071602811330634284506551347847817300018220680919510744269250068712652748072249166210555275163973097702692228574794551709715639678747313381570072979526123092558052665599865885889893848229364568482295138496998932659474538714157834314146080379077999581654374621633049755691701212085657296055430239653712963283875166077438209134807693847901220627835994926169516203401271510302227924489146032251242506346900338719816849670878513407626892819557186371545550249628818052836074661031166600724515322827419347210981125916537766598852439966608067545259634676201291939094598701105445864394815089861435196453561570235829349861224607320315846244001227512037373431461443122390962669482309681684195544415944370084735003707605802173621735005177928262981916402934643767620203617001700689842228182349703986357128634839318723877630733119167420967318276321923100937546964309240845486587548508153851163630925944398629305901859146817194916178152804024059399394306406059372841882649838056688239123778072936182674374143058688767804176693773443792269713231495829175608348109627055825219484275901704807257677783832668403177610491226138753137254296133959839952563718412311770642075644920197498973026591023229968117734615999557867267562349763453027826067817578740153233075093054334678618432033497216731023931603437187715004189465994907919802930916450116931883864865487865518510743485250138897331750301565837563400787834612581286350457815803902023851909113109603220915378703425042303120896661018881466331050007055251749872343354008586944636305245245177646816042542582830622130445997249133244343161195278771921496225169568239702035951976512514616325831476368600473062363059386967446324084323041619036798557449026558050959321094936868138434004968601871247444208314204708162962892104700595292198316934273907893676638148348409718080043022242375857534233346172033339580983191590757221344818505118118931588809378515539209392548358417035825870070577697912140802613808618262284852053147474046189859815918479018170368630761416030969879478103335122056968608156161058449718665357345933589969664277121815972521636322950621492831857149188950694810202216576041748109232907945187399667675076967697158158391052447480506860205099856105491152534642940804748359275355785478246711202249424621953754760333887462932060336557264697947981132120166619890104761039443597335727783809787543116321956117773265058371911950701421215172992404625384574088336858190485636963272756914704700073291110695584508433741143326817569169581973266370900601999477495865890771649678645570328687434255214724849320471901014682956965238288062076482102561181695381450389307209116300442151420932778018931324027866270468754679125476545706103201318802610372461358689816794130662344876718003926858644296412559989513397429801706961441761423557545098503865175585418432918844634049111773723753989896430277431096948462186967851032893008882679496012519763492963940863416096257075794893072517100258833871928365606357726241829742502146075000734386099552421154249683267811990619772341585876791978685227562961552152678423646756881638338811222957993534194379201210292176241391897774084906935962057932180196212338585430304928963178376056653311581198556163592542364180453941900626146833345281254062616374225051975775773172982964297588168269441282529721908025488165385959980251704951274791152647794909480776312055364124849625586239509304530901537015089234593424616929400064444445078087841011970045712678122220213834855243826203068854551445404926845372788431053631710617906911662658775581255382360438520984357369106621735238030810987257998112021055048656731839481629890555896614460546620317379349590362300952278823429507520327998194712988841173164212544522448722734029796214054925155534419539334012380314733622973203353617762945649098448734688450836607625396109199147214777895282579454883618081638769268926535356568699281300660314314643753039486752737686304109406442694210636327516630366063332897698691190880553357971849998315530291138371829705560933956910844614924934893636592153501662502651302327008950152967421583902332126732884112916414618621778445606135395850069767018702260684981021104925884051825485615350343422817895717010692812149957252792679094294060371351316483767337432328166010400076625295834061108092160095802387466494138081262053754368057857076196893106921619952794946564187717548528393730825828800837072620287327974172890337211231570632657996398822900450399185580644542983132095749080309480710947499983045451643793236023449537068173036488501946567953052065152680696713169512198591120183390744754690166087895501729607623726390308012923259036020093457826506821633039108305579874131158693155944495034390702160516241416926427905702235009645521113578307600780510233456963662413947474605370622419797019513869509966184583967655802317829973533833890645422122988473977065232182185591940328286426679404013799956056782310395634062795326215341548290530247472169034879525988732877614649562772157100236892470061684699539004429378514728886857940355956835744984189156569548470409533242701209920994555137256541799545079147565676350041426034015143240277790344822827595334448257141928277842781955277978748223898176780517005396977338950942334160868456897388499561215743775816433333118342580131576187374947981175312279748051058924656420083886821528121530794035511813032965485692854277286087117708929662051294803983942622813924608394874503408234511157563178350741466064897665527366299646710318759906713798078920154560331628295508250090951235949066598390929717119731278588347356660639877771910855947632841425834549869442655091671383561971957086124261573712445470085747271083648486083463769880848699469473106591774858487661603892506555522924347063157728648196209455462568694318852352287572073246246768139078512821083344094604089475610820387809896489586793156297111517618757945248463419319074520829850092308303549667689301295128686193752974808957286990028324586328962589129119016432849327495801301210233226923395886372534554529669540896902223914242336306794218957970612425363483331020951091422784400800334048866665212096093579213449685986243803868140394039187313429319515532185166256914933314693045199928500728651163550708494909564061550902664595978059242997399942749506350096933421419981562410490046636926336733109402131984174225882033256222347595942555172730866512596278972236462151941413939162636212609157823709490827656980015192974095015029423798633775483171829642273367269686634518463301038239445823577396203760237108626105365617408280636566290633656671251067208647273474467583090424243606672239123040892470401465705795562871200348750672726158859945733816649428947009495627160739308602192576250227154751653664238002691931741603938730241552044320791213451308489625818248188663186135320538809132582237872708549824045653917213364639916991038643534287660786860914845568047865951248418282102727251846065908664712041118010041994633435867151702909478533438697072039929464050770272097318013744713523988094408802522601219888920479699874203453911162876813888739803384820911538055445370231147865795280345051844976221370939789253382566633266562813242883197580947745404987686994180842225299919301053238970561657076110808998272993784676466036153042375336725302324404900396134301601823988492012821783734239200098815040569980251570837933003137919500034978048099873766704265737410420699450346031776524303606720312798762257806226100245141753363539988395771090704658860903342858419159787213082487722374980499633241690788561813762731870238374775898181573123637191072847180241702683163502074303088704430274112376536007160036941774541853502778267620218233513187211500399682594298687056646432488691479176016949654294786492046531328136946470197117840364271558550534420505210737989801487707241734024780846493159801335488407558235795513788427185698027895359910120655890193125455922774223113576817289787774013644079096442768049791400156289666202850688294413763155194372349187178045890380500329775277266330131840875348406973275268830380774248348887745150528086582119912968354036207449631388631130213061686326663839043205016156431386896871113511735362993270346559207525557550451245079644499404769751558040270470893362996056420383943908863425443627451016541311727084280959601298511487270398139601585742876425140046610051170235545601578731045277252846306762473026135098991223472214574158877684207583208983799262534173202485525354278727617069350716643570406727645602097328992551254552637239164491306128565968583051871337553853285793653019684264093099291725036354781749739398546798226672726732353175793928149550591903009950444599201937639767361680083212302900057182596032280853014657943983108159075150497469500492092216878075862116813453354864804450504116763060656411494580079912099811030206007878442794459611065627852127842599787722342540483198869207006014955271165431531843532107278530703247574491091069446813277587946749858570042612753285521750498804973344929608698021433704617241938496087191561495571773070804332740509692436482998076798171297054608042569636367124198815818137579035898744635160472031114905350402332919900818187038104938278023157802665528830214622982401717071014237044676866351820830017079293874088038567010718066049623654518692886940892775752967382975251483918033320727085642525326184303143638306511363859996416650886814717221560237006997020737565036906577738300682978465348791289241861286461267905015027295548813242095366392620771715225066468621034897228400429661677489758202200189444683330322901748916490882741693054100519245291195379072275027616055861862531768352214299540092332602530318480426079427534020293117062573795871821906692995885264856032898112242420807170765563241522756405312467995957445228353289655494845025471947683445844678516953555562832251581781777089658301164211404022053568454136628712335967296539799066404734999237507996188487761369881634808862659660490981504459065816442329311235223495614921663455910857045895132011460461309252267622620547966286223587919459966604392516299721594955870131496600182230226043693212064538432412568881815149499131202279130369237278630129551076507480150134467607761920141551459337369173795572624765076328911098573137751039669330848013693839210368793092368375445590008510813923332306433160844352884132924660430141323272838325282229578420678123457872327924767688577092686159862421384905964936661678191466136919775280164863992288257653760676726925969028948485917058752159863837812536180354312282224898799989179382989658740162179248274173885619272995128044443640422807313345766677665120933517672417691736848835888748817727785333576042682620739986914136229950501133563591345563003736932333877134696140888168099522530604546670494183311915361481744914125094913231631601086270187888946067285363479955177417010047300176190081472734621183677548239767732296574788353734743973987558331284413277445722515554511800839646982736397375838500476562649302475337159960098564438323977363097859737812337300323736800152553389284422774900346603963810970178252327592532831524291075948228474988873129557743531629694293238454554549018541619171754753002443677879465008207984659661429198161753304347782296408955506160869160942910089256756774498483483440152762143240835022181327429405324961699237336639686113359069628814958015335372772225728946445982827465231144676551800964815141874989370325397218757253454832087024599197631553717974605830862645569812071516826387744956611974854209797666243458523122153784688392244102453543458361521119042898548388098151600911503002191819883555156355408653925528712402147921873848912536913234164448584078399389542725701156340664314263673639883313454711864568302133836083311380524609707062195848101101413484111531571455185459247832720936711121243038046865757978008765555544459358646981697987323072505583420056982876990298777509127825464787031859143637682277815921555757536715630790145825062266038872266881375853485271795595341936563298453871980473361793526117504068618081090392933428068198656241242404748446915250148398174999236292376396971004989728461592173341713845585980463649122586027587444698683630252058888663063701445711691973499272308551231080883602877222550159049157429153290983438402041915473908520651413507572328868710159592253942576885565814425119232158128921951594284202505057953365697005606081385706560327052751168206087759769399809382071818465512096252432830715218782894144088588130349015146960558131341609087882373193136075290283879081513916957776209802863769866058864420578148599675204455110160686359289635388779602924357410246875673676178142481439980101623297848489545804469034173725347078445548869884097028191913306898603350333271268678720563657788327611277358091195972379722766709733126273373021955741265862882821327736073325796773931249038560117753018485779859842106034171072417494351852444468324461905746712627199039571886650207845043169671917174640125796271304636975655998941996710857380683166109789660675224989386337644106579078463372402043862197346582885074960870710474817124422739610157907157416909669026686354214769949560058699289036585185583629956092966600106082781019207398174367636457547709053399103034019891176437026140581070759254513530618150129080340382126315066252387240699215574153510894656302892844534855787461587007250644298940103878481759679844934034959220956537805625333372659667861352871850137670598602796263388660037668222570007458431568531762972591995831899600730876383987277960857008639213627169089711704241463023921536808861608578684883345368395906579272593353585241977751227099062948937864314979271714269144525588870572152774277491916137057568233840281723953585209749355280502410573573795180975958147904287572116801954050692005712350523712354141488873685959468900140899370292700625122032604817631534412996453173217531919887953979782242413302594224960139750602107417552151839542767569601968888190010042080712641384623629172143946769899101882574589115633830493381168161719790797312449875081322479576869960234441045173359168382972973275792185820190909357509936087853826698711656940516756668685427051152922147734571934083689033918509009318541630631938856149282168968325363688057740958865390170006626235438876935203420846348936213668388992474803349613706830115693626556121103033742874328115644586188216135200358920945394535805843768411341827959832988508544263091975873781110238809528466048028244912936224165922274568249169090234031112345501111938484232445517849834764221601931714804959546258600822181010983963131754161372535846382542872944473372362969435013317435726103477401258223986939671551280332402673772754305792898518639813793726645583268334126572213432713877904241130930333808280967704737432450035113765442279422972837384712414943641655078322053075563172143247624730025838441655616730754495040748359710496155765320655552777555285172406407621882370737475922472242709729450813858316242957058979368405425955401443634731188656954879266167798530048792204312451052062715391087468567720788195892361279497390934948776832777925971882073050158339197574038830373200387311803365675622948601186902119859462894376776126915898540956987769246075190440576580012333868199935771759997288184312084768978930597895915074716976322226451974882833469018401700139658342914672888851447152299800114424562298321448357863528606990914084774992927489698338865368695943865894906419305879837592174133790952578584449464354342234368559048439481135796211061966097386215060945770132480251029679744701667829533067952423280397092395312841458370880103168057711340930213759630048323636448077925787646886940019990654792365130533721568543338267877758866993243667624973011424089060235072392182670454758760220637338523331060344348579103666255655903603630004913308058467938255778569265736528882867973050134998812521308634203060294964392540051817826150473108212613097170494021576535778993057394062948739193154600323510041617564532727058240044943978066505601361512660238808453181243646570263555538960688178427718284155342666819168901426666153128362418613724392048619174608386025046427262490284810944492265863854877077516361949848873365654935839744817912200821486264240617225547528840064739481254587571195970757602876666262332378058468794992014410192811053314105819809691305360078218469391675230098177248557812652942281398797461058035353742826658501211167986008435905023672402402896090340275442654802881438469573900515508883443723535950173725593157273237043832005987351721154965641287546868444458022299549694939096536291303673185646944282593196811909381137653467289594036228038060395038715547280159509156043590431034324151359597291495042110931176245603096382573879898641464869008516386290719673950955350979580757968055060877797472107437746538970397932087280875338721978301310918262579066332571453309504997976756199874808621141099323752019559343624792915603744829734602180038134495612578640846287381704162052112120746141944872899998370879895126485412876642342630041406697918522556906880041137978001126912468150990711903464588483693887517235494769247349372739487455498719825176357775275464735336616952281752002414500735603023449726776814270741260332600611287218993658818935279527903135570774789890260878755279536041762479047609218648883385872020711249675322259777935697910463522108954525310927216425385206154773241457892776837909571962798217510243152482634915026251224933110678051492081770994594959903276158326515176199170214494941626815173802243741816292918329855447550053140292216892840920408985735685378193535483541760602714222373750948250871435683881568774531516303506294138665281805662899603696007931181524849919481691360750769737150495943092363861103149283950611354550170434480414870605383487239137153867044058005460485410358136480832138402627488036191515985149698434417360724275712471353408067436235643272126911545852071891972557467890178145889980670723575387671655684749139999526191753727677047888888499398811031477646038886920469138918343912208600198168037492063728453850144500520892929838507728022481463552447011870010347952826255102543097490395914091731384807230577894998470165725774165798467850765346525201106381895337282685981091640212098137599810330833430745183998101503012359514384704933321120504677821967373368597695891784223599231129712374976861263053866837577311334646591973849887429026786936253219946864986344651373015733637881423226035670244146862472377921774004236022915755842857793276649182845014003334231458439372243241748930865568672004148430787736970888120770390213579217019383589531098661332619097099735763111314279330072008903012678233391844114833406552737732599342639013134839125644005420744781860976860672249692018626906549794863872209282193283826971580343805642079248964820731968434865224591360010323052976529141870509555506777880813090765422797044915285627267846672207781186346325546348956179697848843428827920353286352740673887973422731403861905131495527315423285169861973772103867502944220479185918767315783974258353050683092289154441759239334580852070208436568972327946994381288777172196748793357014048058514651717203259421243063915299504574684535388689955917207284757509985440978882841692706758909864403645674993259191686847334435266864101255028011850328606144277304217613371706110230806243038094366190486123361605098341779746500955484339293245783163943377202069854351251576301376232456712852005886713075510119475280055547723647585086315545902267020867435958545730009279672958940298905480018400870931192973055569401655682829419763812866045935124238705414466958221207764613074754247116727866008333656262046189762480357296826142990764771993989880353792328916095681850823588781338243233251216740118846542404580898015087464406389407106179818745169429862733189625256137123976644852014158956442752742442496046875395246135970967645561533276185256014379523397595897366097574029142347770779731317827042025711819451888158706705862604309001933418973031612279091251133657649396650463244435192722078315569955357545903426537018856682950982765504430950127958927808838133554434182143276810204631196416144240228653684584826812128471688613673643268633096737319173954903769957377518823272572122830686216704839202357087305585646096950322257098664833246008168070697707311894721665251974502531584078282120840254589834490614974841517748238240421430598683087910255358987782314187721971590767662825692963860988039423594896868642412417737686874943794029134224315254486496721538753203746393470725987162499518206059811906511929475428518455262322052425734416707641583000930207159265520877745452808301412431328357132501782966025763552062713074618823824596414533395075030395050702913383541173976876072294609678968083908263539860407600818095541862835946084243311328994518001132577523049012000104685266707556355452192602032056431191521985756809577907603708939719935645300699626242901656470748263515166033816121387084621916379857884158749071184238179518770645787814581727881141496718509637486175652239992247039980146108860553155342333136113051367854001322612418818334916784631983624916035944903711631874190494851698006800031984957971545662436226476488960893985691474002895314839067317231886313855134709039704862411003275060031142457152691393329801909559267731664127266279062977605252634795350523706120171294306598000700188283654465404259577008012114207428849466616390412451998607925768208214867406976503097377572078328939750182876447771112937782852199957363997183847483388018079318414146924202188580008392021960420253563765545202463871154960082526445438568011417121836403981619215787157419526130223851916840793190207633217625928262906146504634736037170668270319533346014049074259530253173821878699808287826835000368949066500341472158834387862581805754875091609246284395385040243546809585608635373863294508643317804346386472784257090689799482377330183523998256281325544204645018170770808928356944704084708473972939246200681982048935515286853722332426840672020253098362483779168266145508192345212855545694423061453923972235753056699477348612696936846468207574048414845837041452902603411345658274019761409389036388012069027237696786466372646491071762556569026830202117724254198225860073614390789273874625111215890697452061394495388998309040266377161977571108509197164841317575491049644419978652803368476894571660819715869885775586590369145453669898162742972621448483550970200015652272200204932975271731632630626789889926435429552134244455163976795539054527090027808799423990788645202015274145274295399696055379928016775164577481912349233331920090200785586016822870982355617747583462114906283472258329770094951168647241828240136019315536190877882161949801141849778135598288192992632769161590431511777908832115829617581439632406265443175473597763594045371751060230429682569696807510159090060886600066421909296395035042636408568180446379328368972293501662881364626475627044803582448707723677068401920649957615823663458201347130344710881018975666481421312330504422494540769632042233160579533036418338059798761967268458725385847482993556484489670182682952022411240228697817014489670565775038302093764952786035140277751131038609383803859711895810558513130401744529177444380428132295005383687227251787212116358784856624068950721183059430829973839268043980842025504032043236689409834140428826030973611505093002077753979370054119184115405051402155452264275466646900605852937681151523130815803423049150253328879077614019036846126443155224965207874398815942499695253605894392430596586190134854180529526996650385167333750486921399264211279504180680974094361384966215905445228597760380014160700768716367910123732763842480279032966625586263974915824964060592284085434313977472760398867896406831786091486133701004356113673282563557970551269243145505914808111459431165992835702767607669269827690572089351150447273419681181672319097985484679276371487938195277944080863362514123229998122991416821137212491927052671228445240208121024507480367306296380828974598238186850346905175668978044173714508731986102000520222691556051231400035503127118334679447388158527034350310236200134493090934076166158615564934149487883033630250636498824032359206011976771958287898418999706906542888481275197503687660364985280182103924085792384422309136969402335260519873336921982510917759600093310065620516309965464559474955227596792740078584516223401153339929998101573843642857134885929773171888115358042266122202650573074753054353170923040962255027543041556834639425973141931025085244595015658541915393501476084915476437426455980743436230239364735053725661582243695863273156971331125534989445593773268660386720523591300210160229556837822139441634725974422504184059824380677796234537950540872543883280611329412518342182470854650208085482347617027661749924672287750406286830141193981815694152866714499786318796302897619746204073855843088669238916212650645512230096600467404594391421675236502022577929240241979604271996095860177321748562415240041334227539171602016620378066584467410224228081932047554791240622994658617573335342052312619778716248524659191944693026731471774341691890587739978417073861407404295395262761387408998353178992719500680771288744679396866623773998887702320232441748621827205826558100661858043102594959876120819529412218190650805468924421875837460954873484627462227221036243534103569833498519703860720648257959125674665734671914442061576063520774320905933694592131986377589780230892110807900620594540817323152035253157342346930751727670804061020591645925114735295320772125489604131343577513081336853886178235691184362890112403306180625229120712747101090235371158756757715365918993712986861016704929265526175367036622601877004929522087165650233322976993988737427241273402727398622704017663204831702743029447878941985095897584644374004088930624647175227171931494723971274365772988344521012691113778468902349684207582592784617102264871592608677711263272197229645164293254769008719555536722516113463116859960358035884860589805803225111530455036499589187954892640478771666770345012188934213617033909632549213008473043675581716054056541200217195804498212622650202546281311586093463278529648979066199353743853393165697892001693717414131459993410000269834640714959543271910698881402757710584897611533938526473703424258028098550433465795004085691183440385219082208708174030396334383990063551257846708332827485819327708049919697356827258858530649451945094800544828161242421934966457832927398186021358876386485975065546032857168867688253865317848975225247774036945154374770619758644389521590232333182404966795857973251383354128347088607160448768214409081483408613877521446923120529391922258784129039424912307303659984842270118946916277479205422061312315411355327216312838029271995049777831855761090692030785090640491489830150430812947376671582859297852338781920608412318688681945616883756454456582647937357719243001622694371221568049764721919844242820905691389592729288259677648228094696129063764286977111194150053957493810842678049490374221862575050382880221929002844828253558886783358629404123343708602620554843222943004368515265549995130630185970077134463376588603456728437221946160737515495892513699530488855080502346372807026850778639704595383972806676848869746372682349124836410542790737650147577358891619918883029016698950533855301313357056864469026866393672444813396267884603591019736590263151475599795177480113643863414553622940243646662261372986632977735871173120779962132147465465832590789422611315181046816236371278409868119545053997957772353248240463075853211708631793025434721747932927835919756013311890069000672878069027907875302342063928184082450429375147480984547635596107454307709819164478109577650136487194920233793762499772391312243763492772418870194232238778004615341046025846836834883442817847248943140768696171130086296986853017604991065217658488464433959686594582861700338808758102025321669320759509135591445393912629094352508131533831540855904099970534256908119428645662095063237185480231494134308617653388223341998197834062328221831370635063558951680664093652071025667077268288247436145406711982663737046646500756063180591342426616565126257260424876873289212766576650815885838085399272231780248523134933858375929248657988697423923695166270458416780398764520382868992397081498538247869291244896180237611647437831049382028079745232894197876260039444883614046317705453945146058012111907611458011213038083582816373308494415879610787268624921406971872045365293097813618108313725585434313936790913534990244773817672125490965211593770970952754886928388499687116006989360126454013461908825842613308705968633338633505239351943120907944381288782217391407854213675913599818632700689416890623548107208868161764987085062213984284169103318393136053253938871793358686576218591004081305932435648952143494694025752219491135883942727795961309013631413465860851723512141636599013569681742958693164385464018212157315126561094819085158553395281020198978329547345180721491204430093502850196310826822630715328581632443685995290901027994662132329868170646065825149346745774401155578633615554013589967269527805262005206546297347270029465038441013457337439835977337746288066076012956396374488503046102189583630073228860535682405145830907588686103234451917339848140675736141809523526592146168668512069162864442064904829047666162099775761455029075954539315208116696887667992073068368380429958786517574517950218791981710391800252421380706498385981426154796849439935815530839046113235313309091760211807833746147105006669413693065765469143585274889802180740925275354594758312473996288172617998576957835347853044313708895158563814470130018259690029989028920359068757668970836377139406974838298217009113216735732878970605358175002909444560010735164573527356264158727829670449556137467594476064829251216428105340808614940018315596733145675846165763769742080806482670555561557404429086804644249738801092002863778622254171180374383386413463886346776631067367593451686431425370979592345188734667360513155843453544438999352815669165367297471326749745783149244928632696582355525006288693566028344397227260048538145512981606343333888003837699404262208647884571407340484446780602657932995695714706312330617247563585321775397889425744317097806812275756607394505886167423376172456970491386529989161812147574781891284550854703640157013740843634546129483276898619396093448576431631290372246555002399879996676622998375003990629165783143213448965113808508472409908198973250573795605560071684066446399683136947102000279718639298096136879911435132373449554141820213042516554131864984615075268790455826826678426953855533348345630572629305041992784698076904290482717874047809436077451343180819560235692642906250505098484807721425124885789178392881107299033790320745219190239501039865635655329789677240135436654183189146937969023050008302175516004980269267202825596853052202250545291906861906589999761919612132216754867021066874399873137234123939969770628989732065550846485807431804542724456373909781319758151463564277108487881632288061257370432104041108555005039917127265623664566385754033033218678901451766022577544656351081296187763684792260685122129801559125175804405562289923947412153926478101679298263604578813407165767585989261405048844585755729201300018966562224978376720330185085604837087462239413502703614875879367303509706075929899062812907662259003714001793213322816414877862459899789912669959839317300942012294793171416438226101858262204335377714036917931156600352676417215511632646625641202275978123398133443201162054365158881285486660797071751352541744530061408936997232537887853376292828912030709617505550377057333167206599563832160811482676289426792843415080492442109249079687700901317534659466347578696721458670406840273102801917109803177144830183264321926631395392023622696262088865267942682560067570452678631262248611227623350067240744453753294537203955582936296444102567024636582166721348038109217518816119462534464537321847656927450155778805158899047879694573758380636970267139158766601465207066660327053196645846218304169566712657024468266360236922015850980705974152994827470761418418733880990060294379711519076930072730076993707805733267310832294560893993054231601251615782210907902180738389452096864908603958875633444359363847304076442855276768012810928611339260965829129864211548963965641810107495975886365953120138060574552267224514555517745969302656490882260501896491164658272370322601345237457405592130134073682867707079080019354406303145957570199419606815313498196453052370242238417024063538154579775996799262176818360181382437058510249605781234805577474330213501927508670117251553925451597677091615479731057918477742060951517158736618425640850663028825795459250545920597273366077132038923806048669758863429730317404414869559143037485126481253123610004634460422794739389658798210049131004878292739112494677071257125340803570290450235464933957796249754680573562381282770356745933240838966227223483297235071095839748820194593654495756405161760120661389173161972629197953463183219147802836305363717792008323986964729015272942848762380436407586266455265468726129803639478142506263254981105803593984094670515038111156416853524840506754027857367254543958081522435441726342225569268891041064448155973099883346527379361466383419811639262194278846758049283956127549749823839636385104420254605072342494933862733534266107860943326296868440672827530867139711660312711315531027793615237329551676887539716621870386734826404241440288343044918697919838496819722671016642148489885790790005365409571405062411396683207103759995348614734752553267079025959226160148838182459226212496268958525282724217502217757371440718754617739519337813735215812809184430805565444079469273103933713976650346939081830831369577868180244715624728261412036898868588780739856223245404970585725975004270193760092813592151202381089325226426697133983979239494970451826942255755946930445737970626074525631205004287899316692319551701043886768001228049143249341845554506424341078997536846478933967515268915822339173370964452326800210198435447913543129951446671546623917533628930340472265352346526156545001383334176275250251431250392554160249256546078152438888781778151783929311568485094201664811351517360646456995614948826599343839869781087643290889595626414951949940746112288376972327325027830164003960812934853770935405490627138317095420837779806635653480728261769094536116217011697329192565873133966665219261935477793797313131691634790893098571558529077016966768067624398246571238537012820681824612288047723066211452268235144876138180391267187572574379123954252445144565870836300195616769908412276015648392323470294645812345797455544346837861008456497684529986970984515831565591298602901026011166073424305840078392140579355362188641744079997277506438102817257785289253126160878703880497058089090762219541024173658002763899193524182773921981710416824889467837274660247420191665857527522554071475947311472845996150638566575748146371343874343037611326930867225293272561894564948455030110541647900458910876257733820513116214991161817745033567441803066777231047769115273244435486890706562754849422526348514875134337298412277427116067864352833002534500934577024113175381005880221000461204126773204863478016800029712376049724701683308249924360988249678159130194466755121057228316652419913045581954592867488698334839070534344118090572956831991048097253389567466873838066200873851258166067545019173279341782952197682919942546022360539527764328961063090771802603791564550980201363489574433138242410755414795689353666035552444116999771975432457875759371116178359667919681668106646818865259393224842944602632118877542395398413501486261382795187077880890573876398694086258590882694011359748463515858347864107687690516295789244260802733485265285132099780007793686272650577352847892090122434509693316236527635847404643881304911779437297217794796210523300560996914906661261968395518176112668949690550907715648926181811160783374562970571635290218391254425880259333019327998661496691722211737921158952855502076327612909801520596336258481503491351870740819068183956244000904022525898813506075428984056185542742861833175857500211689915616717755984080279166434109937714424690144653575176087144517152057192161816345014965599884576218363584573258825010548663687662997103300083148850369137913084748175345687081252215689533674243695031110578490612722551573634986014521250161545484888975003689698326902710072734137492636785075113756152011953386236753431320540471808078483920372901922309314673514404530054558269843883650585657301693379055879565949446032072104527835004244725159604453925433716990093470387147927156845127714357964702896489830195624930856799060328126687421218028563265733788492303464831949514304162791661303728495501047339301180157282854073201835053749865754293586486708204884204937773041973309478058878907408353416887266030472957288129155195670771324004277958499366653668069088212950536085669828173943041489795081942193417476277459769908826667973677226440933540459155796104976846977321386112217624079178434915811343638509269084103482813733510746112433120593960338265903443462919720432566774614576735396235924983869389430791690726644652666429954791983043330320088434002257183136699794431876707403443466593843028693975407212826893031041006436178947968664184823678351624824957576836881712256062952215060498847840510268441868626282490437165141755227121178931455491355593368003641791666239106928389168843176330803109325753208526505221368450000204428321914248793880714811721520902976073878259759849823314735057780677679438461188110641876849833526253362380092819553655245455905385950787671977646897675139745577283185978716684184904453557773022561552152826668365222031615282105425955568954692150105778926452377028346024170053038878984571531480850181179916516088611778158799378071804966109050035033821457311513280932504648253982561793856539102474200708489879645018821404286886859998946602762097997149963218695477854764173994189662959983273677140458667984284958335286055080610092612419483100949049542268916527159478702155289189497512187768964118641013779258022007531159742772390923166845929230158650763386149798472464452800374467939496241578860631407981953398959884299872765532384469326792460986766720272718453635826087849314517605376668308313822639183335359003955040153531272514142845969851680838142768167713382763529908872840368548729037845978620332983994682065282949031056088951115902847057703717518710892717416610784275287404445750554616776487271897989399243205380596036025861594375685876879852814266871576529116737361130936246812966565315402198879049791013986862806086462705829429125340690881678780808456891191381021167833200082545684851465025729669727898688828658170672704377486774820674187622479842942095222510902385196573705927068759711758467306190171183027911919413753292436704692745166156488355170910580596595839370161284191462488418638237452685754167126737111763983779108413610206292218755789161675487809644627029160171023492981317570834820581578502804470226013472924447059721945035343824087009478508354304688017947132776734582096549868960640473181498295001697890090922555698991814485051069281415552247816036274235719733493312106677556875683014078968983985153955634948189021529441626936420090840033194151839172546450172128153333245435748405071408297403256851816022732602685856344868739108200165162209077541708895772295344553946525824961758035181069407513663652246783352159526692838184031053162763377808543866511746772598038781696729858187278662401898886196866178341517128534533472986778742127335912604688776677923061232340388730175996854863325598754951636298255916125707028071099715584403195167925397873998094513276236788978706694905171750923323133084334318563066574383529206466129616606061876092791799011358359783551569493651075538673419001909273598222650655315494733807815892807940752872457637329572720089910740185564937956670734695052618026629922842971255454476342539861809223696539114546035150548238461513802242835322213845404910033215355567876774851192069377205231423718415572082260130468274545966164307347170150163301040197371999265928491752607856229846515994731452528765899997786425705461221617817995082262014304624049067387153987569153404247698322300310804866401775110166930155322325937763564875955085644935551145787391134419406117283319676809933080854290943748020010587396822979258943604817184957107208743464605836029010266545165692391955837749704999787728931474933348177299346309555678848093026008506226190573123303798368339744253367009775345941078451344624566746840412362420038405430851024388725810661862886357430194094958911405853059749246939410085237413945731157334518479869798991182043709182453389884077013184196882920245302749933450303186611608499366586584955687854514999715427400721731325649299362547283118285873222827187079267034350916125349667560495628022777383346793165849924619436765664173436173466011303860011785557482247464007044836668386941948858836106634863263601995130832457300973299524671379433600150049900815992017958931961324918303075648207561975811959441346182175276743173072061485882486858461316524557820546562699493273910992449369885017186085579133498288807710005224311567937024984955411113103513822307728996228418406210670034405417730033860514349379430324033949671781396481891028080176240004589608711446346052275701777012282355888206306305078156378647817861368224346844704984174813143504419779185412880633649849601369270110825948834515082298158002209473427452408986612274948919953520217790878263222728921754636042177172151451079751556299507256961301041253494168639098106293847786920086272223867206970867325602362817049254017642922399198080836388964401952190990109515856644020729049065051325902724006220552568868490541991031056410235300374658500082451999187669996037580987817111130541660593924093190808935213197099564131275531741951545539973945979960708239387515452116905422571109986922738480876039844449444473751113268573822962696741325554599437626808024407465585692610696419496910890656350357368320974136119615985090500461279681634748477677491492561031072075539160314138398705909276040225787128603395380675515355366945522067944249141606777167651620068551266222157700620699196181546433313430432307728052862372148693471897193551143316420805518959520033107534333810728067631862947505264032886549186394204639667204665362931796882965707921157620710219507295992075869219404657591332282804120502482784836108658638720210089561429494488981168756533627265217801208606106740851637499682372240005011370772908099379200886882945034021570918379332511513196220989188414177750070804693205608469982363733715112008540592397494426310457942050293779118635791132370685293961521293884824981206665066820939433808949671143610697911046067651736628714521859936048155443815250799301314079477461502167801338689470676972349345395467233260491438715216499544415514607346740168453433045849915824774057462160389277122401135052782817678961868013823710254495679691095821230575079241425614019130506693042401468923722648330557071876935502194556338588157883368194718029013326889268424237318162368989492553354545418626905744302157887819372189089503034868963527958094851116345290005596378597545203925906966830535840587508530176199088148488453852270038586456793613237495463333787080299995614501028633816654203980834821801180339029795904568451765783744928078588269277427142420304484307679520442880469240118321430673498221622866127086361648238944905372919743268325156768061679036374019215916547163911518740608740708214986367986076679555417584618026271382068224112945082878780057450756769906776073224637917841270834458163801511265346188332181045285150846071374875160099562760185809131947562069511389783218147190683246882062604421207940373336455335331962838132650987737070277290308096430344541211918273953006541557912503147369418946352626696521342823645377418965029583304395230068596303851969634109927280638104095291160771135550444923878563459605827043740299417049402520721808788788567249689675708215712998031972179353880052422782637582971191400632229943400841827359485471469802787383147469365254923036325342456379020961490568422285559899106204265168340845967808052574583861326542159277297307238041985413852747261503484044501714524910084878259011188527216188417408918035975019451022593867044320137961520336504493283504838068860097228045774643423052503780106868119620860235713711099508516288382238601981361376743759849567614382304144609245338165419905172609229149986213986669595567775887413541042875315060668746542849752720854588062161359554194468552239582124020070688779125142932727411810159587339672882621638447453345066945572729359976198462325453399814386885010960514291975755698239575538955576330798615886254612479915412838935466007447464474664061636827969869595532925558898942641539523031170891753299555196693003453412060302577863588755945402432625687915557863328937594354191065109707030347397310312374001676564804683832594422724919757589029789747828804171486496767202375646949372293796551463281802098125844532787524824760858295471367675538217995088475414745738376330180646389683886820105518785689979163417926460584449586567537310810103979064820514042915596241837512715896809847581239015136764426803779772237695200214440915828935571893526002027150026001747771247827307199303593322168347136895698148375740769897089469873706081707445174439698320756416873037045254993653946689246241684973074515074043176913843433338326987746703641723646695583415799942188827890217938928609225939685617664186976449481056479989116830340759384776737584681035677467078868497553019255002655639772105448835613048472488638381059657390902085247581438254203926072305933062830612427726917778263313732314631546038984542343806830736994511149769160193067598448805719627011294764360273782598933960838925571615331393918036596138498232646143701175979870370712981003740570167750026627785051789046260974722295198396064507591368515437717267684310697957624915013903050880208114205511215976756825558272626977330622100929977102394465751683329725089961450951064989395722953573837103254738503850844805261846414493151759367822920189989041815122434747261173364034399741179791383085419669582456580953935053707560042084183200323064805270149766567638186382800479989348251702525686239773774811107795291878538013899266240951746939054009206655607999588552503326883842140525573805961132117879392201560717825496806834338885550697326251085003485041091729110963735016378364124871834029495532802116500164147270855553839855098676845637857024164374636168977481884213369164153812566140219350762832170243579733772602628825244219602256712124399600523051353579334054508986642787314074852163609014842608447611889293492575017473722763268038315940901457775341331918646060359259449846642427059130863260219426906981535553402533804868884202966086992138505172310138517566350919663377776415672782165512635745298370183696330331912096927365462998925366005300513065312625174463422879853089332321587715618518232335071782479229752072917362897573213726820669818811050383073653146108391242375747374229888452245305457300766514993943661484793089289725012148761852280525281498268649722335123541591063135508616652317280644043965533238498816268892070479279785357055003819575178026757585672845348389418581170967885113674571086980729796880621325576014937653882319521197094239025778363013948263341388020263744932676591157209341725845487468429250212959793733852019436245244179378934308662130873018600807179839724347791874237156982668480383934132774920294477216816963477953134235396232283552103433451204592006385225196063704350425521780436580290115389020891823491555792168205022271832737934440835134302734171480419710659654461939235202567738240811408060465537270937468115957088010749962421537118710873881374820822244781600758981470184446527076925335910395025338281886920593413101514545163407671266868429022661112514410264629046326196950725900143331937316869342988976643053436027864837591014983803708636593009403846117287830143814156688773737645795779747893022008301795842671270775034613812853127753071497453164678308395008199501815284792704760772070900092863111510925908736623217922440569563778122356129900030640972508179181911674447462244886693845999593951045961296118881214537433082186806168484377747389354502188157075789728691570075221731097023848457898704197602160147693289181312961085607625643496073442511017186181166564950456356793860538413558407343764418430952777651796213945387854753328695743109452517634901343637458691549687561399595763090456244569332759563645395238810694808935738866823866112752147281096102686458917726575360021180679915422749462091125207526209487533288018045830751924201212287195817055898272603913485724645217403567795873574290381745082167666058031854632520425550700158448314460590433297595682701189312926222847241352989120201663545622648695671584201249574079601396734012209554102760045252342663828819489683360227403224190692497075798431329917492750414514143278218062233914495944537233690120985179496031538542641618292089762305680587412877966033693273663122915829975576827325704299044715043521036629547718606465333901292122609679706937552057437248112767607452044691631860728265245237136992843781778491176113875504446126760670896896376075284571430878538851618509258309996061165699853682555934991612285582620431700756645588853970131472894164530302170775419831328398319402330581813610915033401695359013650440551869463687214715751463445996460163952375207094222091630539299581684026134259734916884466456273332022664374959573259935155964630299852182889338012324817293736430986063490181186867861992512288079164836672708286202342269905035440109173563381905327918283163609988737633562422996070575075034155025979873842244136829585829126619043937582985441452877641884237084325797003842911560492763103179508621752844318488306405291523947645523793106431120996698614553192511742277148709887912587214999428767742089136896605466301550582067199574137287922596665731761158497356532085564660910128524733371077770986412040028287326131183996179261432911906125085031002257983959671488827067952497910702451780834015794819909623045419176244750161067273102785300680665105822176268378753555876255782250782635294524954108385717638089663172578709714097295850055107792406436020231042819494458429869031120263748537705207378240583768794058140232231049384594195004080250296708556673688087091168930274576167553160979843820948373731915854131436802425946580410032959327367873200033630831653758946059718481301595387970708253532338136818070746200956409095706967477903326399762022176073392345847977981336453190550407833611588043153962824267201981806655188686552018812623922135221578094709901411218620264442632259873363670337798869066211460902559922775000337273609314569074711345976834998121330468192017537339460480065038207429017312677383880448843630130543857274898530643941516528016244231421241855595499979710551182820334548025574812879520700273622856590535827101367312922751277207490629203349922408375676857023901919065072321455045515418936518897889076641846063394483637636877787294455808591382400495417835278676493377134991384796568227375061185969399579987786484376753980308049065385892195231708176437174318033906496866351934662274623631852389829610251192477569185232533626448967195154145894608918914927131793841172922323948532308580691149704379641704641580922616422028373749564643610403989280618290958467250926968237108644168427361547359358519148684628878097612574993857121353010763854359548537442568320872961540768034419094059772744366159833590968816470246949303711128629764085084733496283299683619489858809617234596300501702151427595384487627769806910992682439907966241333922957942222523530972482973488386177665805531440061842839377675608252777233836870680627939081790934416751744111263719444310803170785323532654647400961066405229824357868510055307166069312896908768660079297156611335046267449304853379337458549874786960572110892097840408033768674073034716122640472797034439128394953580548556336421317704153371266288043973081935396770053498068052961873249008472793320210121183335032849303099936520503546908632791511936892947397206223899431704323120567311803613379085093333458307704533172899670151812206785783993148424572600299129051846322840441991176797152074227453981453119139375118842817847744684051499211959849778910492739577426212756396460738547890174354885620843814039361207309846855432105051601731607394139433327864462505795711652503744869547215551539900573160191583740339405446449551783821368309527883942365661750947972483446143283147633496222638477213175710457925682571489511726336339079544464651618153875500501922224750065576997757268643636885543128738104196762997631295146977033960609183703959139370031134936251402440904750178802225405499540516669765900347904972735316642373199220237307426364092865342497569269391515027731214469903357550290834934191501687901315260182799471678722440747354570168281341701961700662600352049707100255143527115048333835972302511922386278256787267880778858851116525705211985052659687057168396725511108785767186314356104856727383142674986760168180879550816565734472696861266373918104078383462015452545178192521787161784194582436263263516164384117908493531100936653725216213043798450505994962872827332895143931838653641278703423887434385202627852752968887410728907011516072477266868628568509044593141916526243121242049887101117976726157573625350865389172269995961034841778001452172504122784423902578912114130716226955639549971738772217327305038350804403978063010914241688993461500960095213926984240020445448478017607428238396267996459731235606382050239409573143142036530939963529170430680404063579695734785629918276961340942987785871247353446672512985572333398210315011852183745067316138685892504248140889358473059898862075849018108082117641633341924880481341355008913787926452438600796805337091739532409270931583217654820188186101706070199689382592931363148257870881977748334206202690043098097621458997853063812886089857283863390840719950548704793008784165609442065596760174121971947120661195918301599752215701094261667501421961911396558982556981659209933947700334864293885742560752177208672418107977096435755190012660509983740100436766693081793465613139177777334898411914290329668479694661943693249348321426423996999086290014623925562158186940491045193738583723895336167161441110931139093453975129121793880413674540348989563877789893054243652885435489381536784562718033291791220828987761272924538828244370313528293517251244530063432900314799920319057794801665234394747726985186034969888382845351298100827077108619963920716132965323758515506361173528424816021698388091927143618631961814462275898804796897890127210208224248886570402801672075857894336918032758651180741914224608241064016937212833012194781205963023171844965138273686751898171307278762281066890740581548352141638920975112423555355312583598463577796786991362954960718572205971072994039922385075659183973041325316607712151219887272891934407745450882023401436378142692124518999058033383872305126765746472409908445560260621114971066592319046137911724516744441008876495216353005283887798415924767043420732814235003860675447976555303031580863625551102493199368919244723591595402207479380881769054846870338031885727701011729040260816068689552486760549434014276963306230960766188776542533723727320139754101181060320092831737014251262728603181483561811859016450841741077604735466079054804111956371483186384789964453673316235560201759739174934291755712257794529731817698049104293547616296722287396380242743685412127255378027881775303145169009246316728424107612764308784531372186056694924239855265495352488026962579949673009878622567893819031685272305142534507579735071547070243693335104903960995449103665692661474706450808698018838647203984809831020775976895784650798168250559155719375259378173837084104830108925513735904896628785885626223559902771391157200721524836727980785583156806063695223791390860778011529360587099407577176231866155488199356160750636766948127287610208749787530425937058009486338754693664089968299098582818916310831030929172659634541796584456645077731198038162095067006308333507490045001673646248464594208061111459028745890118076063857294826963045009720075467266519583502774212959548816185771496210849384748461068453847920812351047068716656931986632174800491726524865469120540714312047351220383645758056143836645138728459783234056117745556054652912306521204762924557983292998638239677865653074024071588749750727727235778738294041452520881218544660247220483575363977101344510887115417653491593651706378799623052016920801908512657860136938909678095273001880522366124278869832443410663629228191015538009285567141664316409732134997973743286493834715704922417752373570406500169399403990616233776093297250217628420662075232297468446617390982796453280289137860704931931400534319982896020166229442826822505791838045152802877933562940830779887514061138328579902525174594924759627762703877970866475773285365591409708838409740318340210302473089334003086974725159163145972430621279697977607633915818702631107045248482802104303995815459100936072950603015245471510152496538447910361210266616486356945411964868563484774738470042270609750276810324670423526728447379112566755492083358707908296629282482694236621923065012929971998189126836463887218440465853596373545166783328541510575924664664402449304148818552171167199485409454990916700175422418960526821897564979205944375102166603578258207548862309820593899344131179895707523425023468047427209249347101856123450486062167504401268713116550226859264310220894839805606745881514066397287215472157831359764071497750730353247474089749468164238054032739882138271618140795549093169011346645180528704073041436212522059738933045098376926795792310339307229322154755527946105712417232919755885467209451772467165390431473749204944037835831204285465677330433462329950759034590257053334115936845259441638086793024055330911493760885781648487100546016157891683225088089949736993939625712067871092306342141458663457534257450839685005096229891172834768102759971332210144804294588287086026394743689475871325649339632255912444411447166949663612635259729605807455568051217501173971506513787295433251125435771882344200539789692534451806828764434960120747823059787625126523374723190331040655894114054997139202102195693302556825228758288641871932721830980097093535550752809960659839945161844140792634528328984204767989127336829139191474549732417259825224226886690123861486958415201269718041363695964979104083550046125143991776513628663072178415738282667667030411392165034708913979215221699187320448870984034970200527167703156590686266510233127888610437471390124731379484754359838907718554447212577365517483484388502065440579268530278169003929675685336112160590221046755455270822939370360998293936659772088446374405813285587617492118724146349497962606431021995349157923866911862629126229729113906837800447018398977981650002693966863681145317934006773573053160263323523597941307453448555057533026817347892724039096358104752299178501759803941905290061345819399638229560456107315865523025094416767566526392610389135501446409261723157814453381760252993326564204444976816055973134607882812502664987865767124167567347713706371835084892163194900494012567000291548097073804070079436036482822544598831078191457889934746781947409354075803983391695489996425193507472052912621807552240809157299036825854892733827497321338415107463147924351137385253999442690986728295618744210661206642172914096929800663129979118585059684097724839544853990758732498245249436060987263177080657322936594243450852231545711194025892425295630426365476135937019750198767100746464154656893899374857190998221096931439691242017950768549601709911399023316746814072670760189250586319421132657827246885696601008465298703730014286338361366849542253672697622635290390854277133452934754075587407123473248355788784682133255803215411951138994038326197363610776044860047773622883954443579666597055749635243592580445933346376642745429353926239460381695969049335974412174800264234463044618939095198848869540106274379397834487188263835356208611515356274124548077011672900099355855208496855297180231165448598474857595765516469865596898547886529066718624868578388374718571977942189491377859072644186488606952275156014592484970376632369842563132591634382760345749094251961238916592642036476708318807124617316980596172728587668057089612321543468688084105938507688056421272565623262436067781650364747608084865397616801871702957176757893014365946525513199344545808173041054632207879249705899923136863814585869690022706762465722378190073155178839263683731826005354874471027990473464640691913611031584868769499216307647419071079384801199008643463086286906729475630153894051584029433685669720948573640801365132655920123262307582604172894618813708777759137026473592287975977114419073131403714702691806639901293176474803122500593281265864404502288621075527502081231338906492881921579971771128218377468475094205010827262973487459264754144575347294796139363023843394036463295276905234723460120851803509812824890534293674678997269879240542680146840634990462214621768237279482510403900857575702439552476253689165411267755667329829039966498064189383704122465305806831726258718699027872893965081900873000790619510729824132487990021758952765706492056762617135856395238306106481529427863032037415057409775813291222180012617970898828350614339968879716630813621998646350269107824472855299100036987353717117451684964066407553954070623763200630917983791950939269232279428158037462975104694634401648141965372717826002413563171410333416030406805390809594031262372087172294039577649589219791225659951565685671073345801568521925976642717909239935620644730958773822589842825255806406847078828047429081760231766861849742605950246270936501518157964967122211109294488326510704213770420191106713672899992007951696135068936943039818485583119460787722877524635267358394943043157939674313218198963297452307038773793103732870808970952741653580487831283037167369824498172959751390390884736625132735468537443789311531034643195460027260996160294851770206676957231583417167446346912866219912218194628288121955968165808920026560871502620936522103882112539790738372693350529204562473594928198695973791033641027350176053039065194158773195939233255486493133870485911775301308906056461903703911773306074894427672702260940492097586881769188049265407794559376916761439568408937358217528423527900364438287957450352467804556367489907037437886047169268593223312354102890568160922696662705641318369743743836316879789274265221853722578489541974520951277073175856977284018091379483543169868109591480640284636713188132686269964215554702545578499445241907008581531000612030713431814999046829699790921289789147522044662899288272081337192870867792548671867403176429614487682902109134357315587799629015020225500768244129136243416269398613169399659497091228532953735966633666069718462200254956699824210559613932771291973193779435219479341699391959116412508234260983085357440622576012838234315469604430979758749447464779051423335224202362552962012396502861494619925804506904616163853598808056172576942677827800648896169962544775170787920134548286192860892452313192917217116239478764539213157407587437779733799304628861111065533720965894069089466190362303192859624282917352684993042564596214732033518942694744370166655532795241771997754381178248987830394193192563228843707516346547904370402389241969631874233350263986282562961142475469702479881086531363693897311960438519790398956405517400167422927336873852338769443898951171798257593584951708706110167088361659938365781943821235188289696172218636189791873018804678560157430017592194853779945604998951973204387155829525328191935734867234942084080677108296283910864083612707862240614775131938595553985605018019116351071747372089315568716533488880820894525634981720782833669751636913265952224091314443529486684382449943688922413708916163447194083168751080126244989419514169189310827456392574164515214815642968648878810338130390874008258766268991890480611386380560955163714365828981168298957015317475012812591293419749815668895117250373553188163122904132224642914833621630363070307463676724067904618504076128343062398505481253347610239703168276727064522039302941831468626374080690386273064369050280956349809794386112050902817227110450457534321491062283966891093600475640137016613907172238647124790124172606591211647429873789612793919197221202085485797740978381243409957383888039450697635202175994576998151507868244842717440900645854856586448767748803321600334920819449501888532627801806859109559396854395938162242932141068743184444042249100391346675598395729807946827642018540681217979750688917417037722454959244597440637195627157627473527171480803431251084587422223015129363899134377078185563497887503328402734621573558858574731866490912808787740948088958911256719030274910324771784880045475825874544363817746099546336774242391356021289024773730406552213644000250337482446157470478323547395981077936635905134332689730230759365486257178959313136274206108589475786135152030126341591347902230547692994351752171259524667881242733610994987689414454866578252588932290872634916444862428113020337012940310173908040199445722601561532280864919527119286789301040416007757590815094028045544752457440651311081842652218848151931338047166896288549309407766870344161439725555032041073975888127961051380364389890470602271083906827132991646561380962941560551571961782440362817986274887003700585841365412674113455611960812622621562974761470138111141823618384761432838885033072834805363120753034116139228273850433279671208992673553470858201128403285602951612387843972685336170552997872676093855806382328104996207419059587637324898558485473143919220605945719474082401332182182086631556857510090101756393429584945383688686290810341711429054906642360826602183149350069614269219382039540226985768087151573680326853602819456162831425563355630043334358729880051031899376308076082474558005748626665094795447329373738562035325239157487751154272845212659658295693210959644899455685018866520799382247387207431433597264289419408976927658421888136898981131839653119349359701922541065717751253499338019310596810793006358573916352115350223303228120666150026556864867690168112433199085461991752172021434287743419058367634603668198802227395841858631303669134203676832861388469330749381089012385995109962968991700892621301083214003351607996318323772456606462446238919099727628395613859294591451750041239921934999053558959669489788884450574239873597288085796314324608407568989326324933956564812546730993953410312668078679332050090308509132816292476771888597076874863004615181378396412228005650174591356412983476852959455440771273508012114208321493091618807731041936677464162668045939816192604896854842274976460372381546217588626548916252258375517585039709056605466741083738331998407727665617090704302879842098887800383668946453202787424533187393578813613225952151699547687630100499948183773862948933440307581323036528402700110417655184786976979831902968504170186549367931574005222248918474707931642276875554810563683425611291074537574776072696500448643812951095850325263278979839458905285724841820504033156139669971151200329728451627365694477500728091534092807927721560086281319138309333817002460526377021269567080983383224663141245853719540906806867562774690770975018258208412123386915946023974767050752537468907517234757732726171802145667142683311460302948899424618504426219917682893931419929280015026438376391200405066890846712817044665510465995714354399011826844494185739758867312986552224392644620195493187216588099522875582618970199335373592042525263425561150261701567532863840153067361031166918122423805853535785274414174912522037877838040078011685021327706962016124340481297124939326307874176464508192907018753138621677669442042605128455299799457586254786226034831467137654134207202784153821752554835518625172046965121301082337411600362711552706978846655772384130185249242895942792234660786345972839709212381548722896784217235648959153370309192459774271302626050358081298490875491171977500081964935208541198159201686225767052414086719125665494751441537920842351744405609400273556376713328207625304671797278959950709390174274674243062094861314887969922230408089246501265250288207792139634414766835270778789855629751751031849182945636032185238708954396916484744727116048906569183397449868936749724134979793945788022660309906024182599847826571475155472457143865678605609719226166640876287900188827348327110779978758534203006936971543421988853297135289025335023778423488547091107759478665302364201340710157038222729807736117948766148106672524890920746440133796083073727810187736335369656217817479302832700945490086466922457225880817118736343700021505527336496778386593413164626667649248904586099139885490919055568829093405989959973553950615215833045280149871565628483299708715257556187823036922701293409611078819867083474082794297045554254386820283981414782573576398032338244083456733552287336362343303254556904049763262112077109889551874492535164012520992989492475433426028244370430667979996057202427140877460141474003554791288618791003506571265203967945076736879701861389698808442596852416338413805016983575005865002560538180089279321515132816075448225911254371101979523714505331124074016438418539375655236138470055708146864792161933674649424164781024256014348405106091162481278516797512172985870394419866430652919723740939804806977559551335907178063264670505061246571843649624687985657150884142967244968016540439397196950172647188388271581393138514697987254893480255007438547913792405723865825942389869955368421608984436987036052289119254915226170287990933512565938402306209538885346825714401423191584171682790108019452133647018729129338927136106758518847219762859341091253500660891250319237285693328719990920283216490894272450481163278455334835819258620499720648800890171622825701928710651103715101454759544906042412744494804285219587350939929753279597164226154227754973549634925610919460479652453312978729208202905955555596448816227218227101783615947439675815439505852924881019153271875986066576576774304804967502922284364844816302621960549940614624426523465368805649884759061807879654411923479184434886769973018548439481982137300423788685244287266102970590556450000590330478058465790507147072203992277443668478135918918077575898203724254162618165360516588888194890116912352377919235187613737498160487624411425019490570892978485339019858310909783926065386624945061391560054910189067132388446443714300466852377273467351457074954013368824882179493494082945896682033732811849468220590895178894088558299462420753661303878607890881367631285451065747120876079502937925217919565981902058288457385976843213419009569915480030341155832437092700751321295321590012083053283710506260161699343952765349147706602428699876402914268337555032837841341638306516779127859750439335160408458883927682353523991617427798257855430744319023676020532464321336789648029557721156935589222839862362894029593773172462672117602062596993180676175958599073820265241203261168269440779415206431622335775645057935799674263454746627465238715822967775715264487478820910775577704088559670541613196375979417644826594091842160445748829182759725588490960027538246746383885268762770324011554398007638160843961150675494959957197216135565078121187841871515278668535788605946399869086249279837894510915574539659956898273696772936252528074799256643118869672280660697648773506848943473405515655111122358908639607934856010409946059514270775520685749446123705593763367813064559956623357140272447085365372522424845418067824850945273478586824339373715914821783656534029772956229825339722516837200693258998368592171715922590566857422251482035617877030078887548833871706934503889111777364132242118158881213890948286136885431290751923857707403598811870952305625339395063471140656088857897196740338629983895950156309163979824974984131560698589017831948309820864421176847383188008652559726890967010994381300651867507283141732029562345962471179645707695985833774658228037925128543858984298527895060620787196102668664887610373399926092965611658213810430623503964751685231699376705298621300339586665368452628465320785719429860193735988401705725693291960787521633569632814755047190427993416674076228619899530825019224736607679681829891372052472127270622014723974251546380489495900266000070434360575893083404637730606908553834206313560634103241716239459701496242439102330631053516865795618132769745651850840217503684750874922631065395061054394563651129116886054772736052816662936792053547975395405927070814796265666527055262895301780519947943773051719477036916084046911667248622404186070910034350451113013095529013828433572677743472260692444155250721881974661207263146260152341657800211703255817737407769249636737090141534539364784241596818202113444311848697592632817610305394096761993911729823187771573778030473595774357863156840662967290475462607291262248178928050704092887217230626086013000369320038856249505327067650659299936635859392214464611357225768740867091300493456238164518400133302863189790032662395744040862936998780646685935446184129228818821733011722267184583371525411435696855061337238101103805542806205164868897664417452274970941638174857096324189988615468851521364499869478735536144420881763369321140517679495733331671002379328661296594158563691259804257687195350421765001100244802405605477667024683624207670346448887806760725490234600989470880412323384768300966675673087979101885013703980338405878394787149839669425080950694563776262884483774660069175619807361333468569152531922380342273617837023209269437984831354130848729918597997186037449638978463696627130272867497450011193037650667754578560208860876045387136715785074549017374368822958263510180653137313272450632754969839680688424483924432752814466128050038622057992386016343076059471309128171090548056931033004391171687804612708331308735085334581316604693069664348413143497129464606587824658364829559317512756142967046546704808936675581022427171200989214110901861548976033812930396244862978346019334113980509154206499453942787352746869634292098846550134620388148682342294785746195615585353013859882713398382741285561342852740346934065910451907552351110787900802552522429410496847048597824360089303448703641642945355696881151910368338346564251793689332775116643650179350214245800518903555788727475494893714754569513140082334742559614105510306398734848408306742709398086181689611633219760586852654615341492742319552905212226885797708355691981580052884215112684292136395047985628053613981564704835687612056316270333166525388882687717997478539060061943736785713391875989263252157714479642768124445289018760460609784047067821948209956990560550078200740989788565185191844247817317432556367297492411065486021836178311524036540958307190207238358060030105264035142211617804423986381852068951134592746404112734447926720122545800730574384919455914197542443040795055823884562253300522117144293823024359955728684318460207104993914509654117599616059342982085700248584064279963194070427177123695979936364908231899675468873245190650514771819962200023577438097149303786994710346658688311966459147132766204939679314154986110431272809113147368517261339333211321506131557931615393400785612696077714541548020703267624877869549517264216429253079729209372199235273293868671253582087777434471108276746107968845571580452765755933759510054911822263566758854732204624306951526876429925227517838365256862950867679926012219888858667890245264272414447879382119150456950022678242510818208067894927528311091370148509206337129460157244800276291869385172907735385839965257879521865369609645988826003529000603700511920176222099621012240783641037219263475526234320303128402409422774228329426704098269339166639511977580710931143769182014813250986921011661867338970607011250560191961641080502659167530258118065264038415748842820902914477050380687719219379864989293700853933744351037287774820458071829312027693001450799554501349750052872439670416630100474833786576314146991309351654046826484663655067281539499489582180032620699298407624444216546712235002155308174684175230621855425641832564441756780263996816888347306764870123195213170323392962756029301573671494422979910367235734465470011629146793725009623865226551025542003205895256920624013955830778028947914418078951157899495864529264491474504424286706883577776221276523617030314045008274529926699172176278923088103019086788780777707849800256580747366288760232771833324152875464698621576586962558545429521091229433087912500884823744841462985111174602159881213300686955125012051377574529730923148193447147239908578999434793133197649998661832533019049686305444197699478538100670182475166231655676611078612954023905377102771850967963805291666559731641432746872873940675301642383541549146899409457787708115994703081006121977253541027537024337972166943726018586607743416227190667767195544383285865787310801392305893664363139230162301894801371351558249310254451988137752489700600822482581198220008079238381583257442588289107672260724262011250125613520121636585095091278177972494171247629649685371467368619896859749659855007494521588659039161597356453690112390654370475050582374453587105409236625555254615296200510522332209139161365291403916953426445793819169381660181419282420682720344237430550469995538860949079552262890658866375423963776021035660782188645125102650055519104757224362885646061178179741593500584800591385733577557883761983574225445953728666057922902711390961019562828970952713414639666153166360338104569507443163636494246439943104779390941403830740559210455395214245224467994720447976556823864338817669480239740730101379789409571623669256083551118868802435930457331952263235742748070163752139486664386499280629824492331241602158342603646535595301742477282248050177493031481862974991664230321432473022423173799609159069691861960104694426011876154007678216947230364467954500838805126321737599717558714390063372575828217088679078742048951131465820794967688824554802475054784681250984325786115740957429187671151729819711360398909170327471098634422159931072509098414666421533771333455693992013224697378627625046045605294892558380313206245074116248556433869778406576021812736614005586509891549291027271375366787783936530465725833115389718482742151581360807846280359854447981614896705758965721490245990452884601478066142765661366330026604026500601472498690244354350369776443978493626007589499006930951283053017723343411202399879845634716844903752905694136747410708225839407035879863914712341057305686458105912820532692917853243050413973346534254356238564501907377525832344799460369884382217585628781660462849960538100147531358607633841127247084473480943607940257550154844340293647001486430338151738589601688178378176017526299307202045058470759964075663809694744312738143380488161903809195007486395976926489347586942614420808016028441082036094268004581530989738273130037887810897946065836276863965987578740746856735186166983228202297818100265259791040840130454229939704338969698295126642420994597092717873930003447954133898090076059966021747825690983595270254576334225314694500082820386743902548686639618459444486258721633255762432333478064910690113126671351558721311289916057952713292666562040598450525352218207705011045232175220650933399865637588001563909146140622906548114533368874134550111639733882292059786700565081836135408141285061013482524885216881209617865710251949152104623944071795864095443933790418251388056443426746983516067446331430575516583566294605425167966858337926064238979284312618839714574856982438854208650027761760712675645823729695562053385080452975675738779349031219250870004335704968990315903082815575823794165914653094645729369231068061100716181328101566600337115268702186362264262119865568731485095359895417752099606426788437902394666117482272482650609261169885225365122041147922817279126389770418511032774612486631195167054847597850241657359131954712237160557429378513189840953323763428086721185808675865501803009949494779144620674793243324671037266148622828506699650608629918148574920530321629206239826546402366187478324542967120735795050940235986724029236297867255083459191633242644712655992475017097019174975030176682706986817448819484977684456280714120695222395266303602269737791089849230965787446613044943129535349276533473979726527608180160551577832483834706971425408953054136424826767539548480315190083290536647331198907835792789368133378497103616880260287906232019155641393925889635822100511357123028241239729057688629131457680864617641005934909152101554346251474391432402789969522643443504424100964444121111577098010311809859559355573199812136873235552956007650045220058424182491418306199792736855776057448853329002655949656444015393550005515307855694154553888113074426399483854778455322565111799127491056447662090981847064943361922899600620442053497444762367783636249583546299915101343265308301162693998528528927926201462319033225835824968686454823003029966855337882539039789296014978722722557805607520647058767496986977821605294435343856953720618438092381846313158101853759616615488452420530681522361184026810279525821163635249524170294497965718385265446887033092000079189239183069370418146492777058274390451398542964904097215123123160499926662868105564005157839250187337890727776778472358234863102269744185985253352138902616853261071746807371901793807850668800280244444306314850548468360086762504628555195077861495802011690367834296656405984807480599234229077541437014629392665573915164828915903130994726749110943662188751300463712667944997000168317381898901932671052890750786289384106680801301512818345439852529571386048791680663335580087832285394933696788310009284319185813573230490146727351617331501860917858527686913178698227418324453242041281049633934177878231817072741473129155453516598813609423648007186139565031071983391235379113205554738168392918748624471806430224825009215151786007044242261958543109852385181166897547315597713728063809737737004356828189848492289290183127720584209555274603134908273575368321975614322046668671945799791763211917644804186847800611826505968079737878096161808826012437040536076797186539417182074318612818446932761976540241276081730637138610616761621635326070722851720893672441554259469544537466735657607405877215748917297423276363329875313431665450948731771019462514966580871075519083440824808139214260197355443591382566928433129156808957721278832035283682441741345058017082710848713862469319824091560382522239288423667861881462993525450452870202049577948947968235564959773327998057115308074570051669299195519384667014942288064900800739375175181470767497888644968110937212751254266686986540848350713454935674242245209215682561375234080458937449475451304717526342194672530405349237011332808930057875083155889025356821218616366805320551769234408565208464917228156455904828674051956129217382099369713316741080079163855268210470328840543483236638097033743203490385672433349502604547483898719982315958680513100025694100993631005272889891258695217152246451287013897095599368366470964445193934260314622035284501762507873481172196368495965844442125192930063334638197885243527391932491468478482712415679585096187582678390642180748578357338581123500665587791715888878722326194135044629716975005949093084460782490082652289800749205208524546749328459484851079571484555058556406874081686841904436350750765339425088329785169107976426198581459143679500446348415221083926235329936694814546239518997778657451078492633522524049816220089342240697245117763691203008823140238025169315764702964171202625318121220764493665597737250692880645930036462420979866237788788924694252977255239418513483675820712891384434912624987245930338742343545294870359568467034570108980624806335677834506860156190111205995024165971642417663981136416185791918098924142707941542588957813589747451326615856349145994420602297515295824074914077952264601828051931771022720112755797076052889603422149712299651953129979534571007732190663249902467395790745000249819932216356464366177745513321172270041241213731063475545776142076449593872304150053051014441085603378152187089665489885563073884308502607426498795812782755065968423204679586715093116273384698801755612383427933625466196394404009758861152697750336850528978193540081871005242683459810516560410328674743416097601914107024749301899373097177588564240697660425735560124492304699103752516209008850506136563884130819312578394866082768622509389461169377065277597450751726760065276502654706119928468418674601658601121759568793335755628828263174722842396466370398660760885521111263243169048294963555193226966382519160780485239874750205851751820066002243512148736738708176469273547564964805391134088248877629188632797055738054248420430099685697376848546446788084146580541125029762102647727008277104574812577227403350398583802508975195190188163679927328689683074835095490972124140926779122609585745577037894785751460348701511524619006848922679163947624991708562808609517716512500944479920567055139662733816672396906591105687634705303991866181829056607399370328881959140082171367802041571406018541987817680242851716652376770181874144229629530335023977024128072746528316956694707698672911123954510204777986228187146618546211215895415131449529445233436900591646198616599742891019703404489009024563080149840310289255399449182626146236287871301496189263062741091544999449939196307290787872481168259775438362773443138587908108971188183945027871520910902870446485055081733587426739674858706326124548932264748888300056337599910929516334584918672863176045535588768947633980250219611878226696857105965620785400343251227669742165185726355184113069676558865243119480598006768082597653453062263990982331472738345644853943291837202642670329251976068366690940418810972224560181321324348908115146682862542390389056933087983685634236260281924508058741633292475535307017095955980425219015808911746578043882181215558085543570161034214043220414932148062425803192978940098739109568359042381126405301060560440636397832960668254940212423754938894950286301994431865524300593315009166552405568792411589911155312367582917432576392890340601632955024710215757208033036243477610264965164754971721120090507158146710419554225689223072807664367039889412699561578615866365861214633433211580801090276503343727680041768837544711402199083866492176714060355864231372854675264727372363987543617322237955869572301350830709057744150759278935807220260081942676260800186780326184593060101266829484446187171951499956977971351533737646704185436586829269873476729616287130625276167473441974857762898706344350359185074937773626113401777118353624569988003249956557723765367935917912980689731596838587810333094899610732989202613417394015786295883575935205788657410385865921245886543791604383447241709604031499746634026884124744471858479583397671674698775536611735641694492129304282007384961202302036256946454063802493334372436382072451470547928559859510392097617243814536970931747362866652658626548435138061845830841653497035543003163091913926300640618551667373691853574835083340230676142956212971526164841985664767487749107853748932659375332372205496454905471083815893294120850250635000723376347008975399445526235820000069000662717610655345556681552928012454221670579382403445842295097617226508827537403337558091790630205092367600444566094164171135754773358299239593597024016484974708940491538743058542514562275808973334940071243948275446597880305535040115512092134722761330667527501237781158558965562826551770348475237753989802957635978867644509319849545334650056247947335020133089135794657818232750917653990816753235038885400858055499376551146774722907202440321711711950513606709698877971232746159403337368935622476799892990787590146253752208689646363747890938579016105286823417012129967067821430682961086932247662138450300222743850559497679743838531687274865504712962482534782123874762490143414500018051435777494120533007193819245869559449329832776943543355403046843382647030388292112739235899722038315405495619233513059231149566282581091315778643792567456753424738860173427909017382411505568184781701169267285741211423579423158660984268598581581240460705413107217521688913226317734455678581091936385350561931267691210390572512713549652256361037797218923821342391753134579713051422825896971353324115185250182142979381666762423447586826078920930397238708273203094643813292910752375209170254704636507193474526914741194764914243625570116646581741743418063462698878064308974898257712580016200021672993750866946922888027952249073485498679638316824800480713230840936267712938007096532333596338481079771208143477046676615252406316214025837428565753671465944044983909808387567886868963537177013173884205489198625294049132987614923111914632409614772994912035154935356496199086046478655690596486997597806005638053515203458244219252070872155959879539327037271835317805361630774379064425482923452065670548626954044606640322694687537646997268546677513216483452636391180795341749630837567764410803848930597379493049958331158412081907807205464768944293605263911774484263158242312724890993845872361791354115404071090664366456967623473961280938451509599669032652927119171486890889376471615536275010503854709188571630871699242943524777178063688967175136179834655099865415072129064460106851270173813699403692032254656506360249880144934722861646668752498179303249872609970900659165976584010854498226530402047979493329913726096368373265865387924587322933221395885239415724288472591822069823659320973011040111817599283043496884087273091883463520005209535408090670307672282603529506414886594714236609922688759667632161887700026124042831571233781934448210447170218608573993960754174062296240566145755822380467406831834064248338726291047573358964853327870661148727777128806025416672494973905804935148604650475089325344415820493966823945684670804291937658705455063373302232567738996163120318741654050609012389208271839619619078619908974510454596521132723291476540955342040760391668394254458740543608731727405787609861542342571142731169440466952861146359721877150937043776939216653220579090391637104074252786971566506899736665463455095557312813800326112436237239048813551918622055651487405371619319237035518064555283634818001054437588289618133225845176916931937773194145850418081130996718443445290396494432433100816407369217945241908454032557992697974246646947231624122866298156341443477645899924344999651385656344910408332423644024453331684410545454353104924911555142889925130966675085577206887429541842941013884599140604353155531570286747488332296291965944134202005563035367586323705521382312672513779711525625950743376139276738770763014725363793604182954606668936594202941488971210379995876824442307055556933846158114879839303519655480596196050407349311490016419848660566293319809127563478939684521117946183509755019932360474347727575754305677532499989904797476297591379486441832803121196035310539351678503823129842045951627114748472513669292572746212989373278247874437633767926070432021920520361358182824690231563171087957458014597556036533572498833381524862801309196581216181763259795717639635995276793460357534351195394430169215193987389627392508480228064097947858732316524452197354724867026174275783300416366351305412943035236124225579650350816823000585333692206939527825685700804719733234350355758065099915713390086159184576148945962721207532775305965187823926017128070477023115752471523585295094035917754045199183061980815014653566694651162004905328184666556563386660028822563274881852703053289938490475968647030212748772662771866175256146553424159204584873932478418362666730337371926382488513624492290260752627366566085112644940981446012827345091566280108912100955220428177044461588484857025339959929135365843434992398417189966748369655183774694156640631388968823645526323138284827706805977056209537182995626571081309072627595131585667201787713268928224219372598983502762184935368767727308253566807769068849806982327337786211383037966440375026470086162892657023010104554731895966637593008049738427203754834336351438262829424494041452712734475763209095795209812102380781237426986020559406697240876110033530140680273712117399573678316216472325730512459808241992292284178359489437578600617270311141588076385871281255449417527528824617990656179514241750686896299711087714739892217914723555775290694846216981183125817442013430477109320491680119388094157522975114355314048549148370489914848591871240450736942546491493170081402015914693977095809984222979707894030223876226948464917570353336335747783469206889628534522230001154293421726916845907819225912010848385779251654480306150498628547573492293568447266967345303891636209195432017140064977235157212217735251016311021662464412863270487504857830711313780319012216266830534471992762324329440602803396098476973566752658041513065293422547908654501758639319802413682394945366552040193139637351340800633553889042371023498738902709378987457596168563456163158675697872122164385551129580308525104636511830116576452755546297924166814939763481428846808232446816331959198846448178633242267763371609427358470978094981304651791439086606084369896793221611160183082147497087140933678293157304431688773961660062265525473213412299458715824693278509574233276743814936679651938293911792591228001054976623027094364212097199322195149547491484092180844370247244252592765498698511152164733820714749628114417577505970397073955324992360979741769666765203778975335883590319334683831339526297286027407872100383957379029817296422646529019873443488268983921947745699639807182055446677814419372535237497253763526020549041482594955052704928595441676696738609544840362023302760182712363823502508949370718055490596399030988236096046371794428352162153879705615589709819186131193867296019974790559639677156347023546615370017792172724218020435356617258633417109851964893117105499106062290977321816411975460984917163990146727443930259905294369533640146054209091508285563268827150605992151299785055716378703549107712067519069877331528277206215628563765936055906041826442465804390017931861971188180896001607166943206008434221296836314237150429038403505355421931203635899248427067397653140063574925833131841203115733561699765011014304625714697938630513270013093233438837222982881155494275663521724361721887666409004135946203829926644540601728412966804053569795131238429309090436819888323837094242458162181470158797686058963453547048085423734390964119593760470855431771068044061439730387534148536652943665697855348545545000839363168544322439340553587739234398984710887043809573539088537499187201623276095157618220709763218625876134724474031417835345700318092858984882584655542989964377825787655393324316780274218226695231202748604695145568823439358542332797353161987626476138074443653050975569307513919526349152832415022337314105916175058455965113149607348869740261775792228176374161722935504838793622233032844998617717261496948003375957220344217764839397047287656727418109966223695222175794983272579072248154092336384876981415331395784875673648791677087000242693811390076754381283351901622015381862286035962115266872764627572159563310825137650313559288414982089843108837071324641315829076056793701811670320254832061827094159107505607422698723950067102333021479818812099748871473731090943259529396439872423177461626822458436457066052343147021184046799652952999980009923233322049111695624620880256760568157945092295438323842743025602031403885415912030531091017004111812523776432473932076400715232138708390201850850800985900655763577285828957383708619116029761061013946907326019868200041093781678514052232723072730185213731823472703152365550179351161240222490899627899218114041537749456694174264829141635435622962792425102358412359149521252672767613202946950411174462822503145448673941712041428037995217787263778308841440300650300109588711858012745184042856803209884075546879723531381982473166236111045005275907308119506342250320993427162584377984766651246347767996747280745301456268147894153502654453667813562919282909855108584381775994388991479537534982281785848086109890329017426617051977524085990032652794823468902886623342957835102954697342225149569577545720882674608663848529770318687308663276567985582841399176344882711981562001570870582621489737334878253368253044591883153986881150618424680929059173428724062729542736184526725452904473879909713623255493393802855674470839440808451856582972114840112939778820457632888773525211147846889683782762753654088652220592827169222622958213581709961756781241434558241692551086347115936948053474915218968663403439687811227801453371178410907890016536756623402112850045670916167987726792043346296158150327060153337663237034980004858299000804478485374908780960989819538972561363377812801771368255571267712701212577570111630968783076810443863604945703261248176247364899100657027922730339778945469298186415919364767083537729787226549733286358593095256246153668442016755018011624979909717583000556329425375338206937187886420758607143662028267039254989950795915809853250158418346629090568210166380833648376864483560725523775860263603448253395175047379915922299935440526015324133209183956873908032714355773692428273006713454802295898204598045153163290252667570316299015387550189561324014387993014893254297619064046144059112216131004528474420069368002372371111369457858271741296960892995159872567251016064795539591557806167026532573840254649825018728621107676594628432365534100939980805171727189115067346480328302445006364705194085549062618707085910207268656433840748935797228417435872545081136147466084826474159775015147695526640486029444720114511884130806481730441230905872525688673048275090523477617756555333869376089853569964972997085556656423141972990866965142340393256539177108229992756282108004725677390604334401050537212442787689306778846369892460880374452316533025098060425952967458824496296842727862671159176961144347455422772543497099936546727741532366467963661058195221966766089337830865059398513238201683400418777080957113775357902698750859845952456009208054481108506597291971284959929046446450353244297659659247691195419147951045135671882644595634306299688051929474789362161193545267259037595472284634011425555584930065546044542372961659178803029517262717634506038322921144159462251022918328472979944364505628222038182575232087509954898530835576557579708614093311749715762057829205843669975972640374183001712134846397574169437894883729065592806337206637222048174988219185061546692183392304826254153016037005942132463610640018385754659383797717999863324928576488898988218517226149499041816285348165962725845208899624616566807206462196895523946771094060938783036321351015961198404755485796297273708899220346765159952597634115347613277833436004157735007063972082283252447962801205580810529449294465941036878057019531087094033048115400485745432721409226839108316088446453050695269376601961084117893256188578531586710397243337722006292806631588920280543298519804232207175788228084724034464800338058472963770987030233851273238190740348065876326724656639792922976490643657238020770463149048287703432913313836216841029824993868142267483190402801598563565865551626614260048909429225670130293877892676703356962959088299918755419829752876625143387116639032887767354177047398940223247640813515157584979152784622295517131055173601382304718231523773339030144915964851455625533735420835794669222523389653671506870898122954660306616637315751801226322825527712269060264032485057394949441950287594769707642679135772756398450143779149331193549843821911505258725979913822745834407825148858323714821818266451224610550585101066734890724508774925338049740783320102543885596126020996114482108077566639881860826343525921850723391337952312848824374401518761794843444809021884643984924469741802523879982078593407918195511236198639191952706353614955880419637079964819707525169033389974997097664913975155692298024171273475783046674660366865757133424428290723311788143075941692148314568836309452854397374221245391212238795175240422881682942370617430714775264633420245097681011492422792583457519352311344408861864080178143115275428768207804597697923526838680284157148757152259069208884494370400214768684032699655394448040872619112817112439645383081631495582545869818511785251525261348101853271656228169972268310025491640974230874847345460501120151936528574973954957626209729707215549457614066639872902508608244770357292925031718663076943869480242711714273844396748021725468039234181210060058376746400315828402518627692733262044805279581960175698739133712626487742421308316733081537877681766731801922498980085887735927588113795187460485188565357205765554114020904339885732937637736448220812593355633715322893539645521556161710166600155767919781404213300330585367331830868801072051531087547228138356472327424819252306703605652920054137668653875110070775812170724166776376301180172218249194267031075267468567718965898423248829185050812128580348189314779179174879748687659087960210271756786438073446784849537155419565225105462561648946899009636211386207418968932014866355892063122805945530205544591666777614480456849580579618562962684506183926125391092632325978915422278581787665444181808078339705285963350598349799046161693802568457064127483979878467858692035857817793166755187239219448017658648692786696539625180495843703262998231180208097868796602454657492646920477141377747409119199746859218065389034885116432348921121145285418227779384931502447488151498022787315616096691412286302726764942247012512741445152024654981944591207912221415921704210901697658175965545469738941696929621153149634525635570642169835537949317114058348702197464962434741770596670542181851342255853171465070666572811818605238293757004971589734027619589917529828728801698643113157179874169636096105389549101313503682966968656311138326182153803882713986875224451686211379513038279086897538396294252481499607458304371967022315023445156700693821072315195436625794654684788613767242283006204750283162344988038446085780020344089400364850895687626672065763241014782303421896850313532246985535738526768338086617328898284574651371974711539051490216967855231138336934167840475242756169696940312440989267920455633169273202510805938646656834441123158155552334770680803649235918847541659142140132936427378400879418590896611297698884414971534832517233925747576577408628356441881142756572975123018527793703156546875003865600932134643024086896298013922236467111456559273022938627232516294358171422207470870852437760923577292621968322953509440124509398818091040159816916934538084876450822266067937734545061061460591105704660079098932031347697298174129767510978799534463423854612534987610250925639501601423080051100642966813969705996113129934153844598609721796909089710540711250302286292975178867156591493112392371951288743544726541165929436672048801891753991921365910882010792946412586511371421069732989741308685349390349214155035539649527106367383581084608675835902334539336340768594748676013341675766529286452116349545404127425841536541224270022621791075216885966374461558761693378970746285964070071894597609885076310107958995391851372222393647165034502257931238028120590822369983474995839406021107329418368239952057630642206895131432386856125029531783015683432201443734745278289587165312991288417363097398988983293182669100398595041382446781061459311457554518062143042952313367848485110648518020617339012500716030179060626368915129245962280703261372814104595506692854914372981896444628221048387627643462271049575165720890662145894225095905187379989393600408282680901889851048982815722225734792539964322525399251270028826777257412947171190121181823006319025702885607695236841035683518229997319718169108570350265366803163603265033875488308768191590836797075629983454762423183122871460166667757985182667890833200797652917738114156298470923279783929847861062132506520790774254550466004066448448040589800017866219411671229800692393570592573116777285468602743120102280968838462534785608825034411174715599760002933887144386826003176812299529656939845708141568449483185001711001085285446378719375006098472080053960507534309093670274770140445215285236097774873676798755238745244277074218881705631458841575871424071281900405297263926844533683393407785026987127443803917365894886955496851594666623193508033724176017841880546471402774047697581126442913276253885509527745205603951598896008217210400442339420054583730494968445433237696359555182666978059754994047015989255266339277793984808496191732257941846214908177143892646164438522928124816108151393670033438222594647209656056283045320350598855189019394701641335839532991982025993636588647212835325857059864855375311232396050863083024866108745839886338504518265883270040147717307845065189406678829012050533684034147547407288216249851822885139603028903352323711190205613485494715388117901195493454043983493337948476514376399123097422207728732560609600569182685738283587622247133106689027961527607747444969026722559682598494930797018465390265646450111644319980897967678966956700749046787384608298593027757138686245972767077523478005427514406167271243427935920342409222806507432753460091050195172976577732839870640121776627773855108944181028814993610001586619439560158110623290393891628101960056552991883784640484991300341807842976606952201411199761626770464440072402060134628494453896773673029350357156753004801422580307495768624730513761409132644978381862315684088983915845356853853898920841820634740744860311590989617395204404693605711514597783587513516173138394563923862486181218027853389522490799868047701234139579424833032431739003846987688657291666567045964960889507681167003344499710931027369054452711806451023813710272690273607458884530605013480694405281742083671303952759064477792434162953604236446572141616488251869306813180540744081956239988515903817458084709142143454495151378440516501581736969565178485434121743520579196027852463482333837245260094771225601210326395865446504387078133031303882330118707374083001528808178845939965473439336550753064558893532853509919724434913162545638594089059900276497621022101532623190543718675594262747357956264162063976650805522172842753877702289369074644302791145615739803521801212050553279282306412279938372687210103397467517057723496069467023019414355710328894221101014569703172016552112512687397407019518989200604005253363006584155100148243689487485876550625063962495756061440822348551988969254053554574788954351925115766770312034976614657603766803999158581166747353675851393012571851769405216216554931347254557885151331758634595227863230609326467841045566782618821638809808870114883025733422408168062535046599074239584118708574585298688624576915916398045596696821807263544915389621824477802802729044514143729280811096660092185484752265948201866476026225924094730744143214268936756228389649350863437769784549996497559542721479147808681808960683655759130411316716308094109267996112758510767548612170116348091680216782661649780816586212097416782233686052096081204051676681183208469443781369092871416808146861025167654339937987171736162618803907365549046112126858581691296299080804627852816170339870784391417495179461970326666491056086673548534000366122852916240473498506651245848694821884502197946515783704560947777768747387999111336644249846292568740510989780704050547465630245522505525607446751511006447484140880733346782376539234304091421821565641487093766238436088858822912992144972909291076786435739983133646996082904162278802096110251009186786512014960862370367378964839612215448143307591424993245346943489034247790839499926762605909115698151993972631207448382532333019049410484269456097169626814350899191880072969369385325628696142891837179623673160594538587511511110508978763639413836365212301744100519193499865979496681441668067687115395714290342781156141306448698384383789692968575808384241821596513893525254207370248707725435929850858810809541218439294989643525251304894582143770581102048570253642382935105711756691027696830349061683038158108454154991035729025919047108735183724224987939910372066640000657613158726628090630908296851401760595559490729952474757431658512535481446275837305993277563532980171837142987134638505508034195691445471854134853322639369343982684832945144901075570232145879378936165581277500052794935814334858335969480445807695234512573815345848365529132985793345390637987704719038290486650379179939435319379202532975986397993022203924158157025757414400795591016788892891780943856641112852282331027746603923992672636675618374890580533890519475912137444652842537290583256604906201414741902519234196124979322043398713558426876605618535938786564625862582058051064780772287674914017910102002952981213644628859536831604141769804032317519657541022580677784599412107154366164617671862470657526187161135441105842390117645797700908768538493817032301869602837354552961441562847057639373096995540309499364922243488679073393669137255889788133992892316468616257050662516833930460275392873031598251414733069534376979892318558674959597384465656299894219460927630023273272403524550458293804056541149523901429325520722748488112490798907196075742486039921878787777302090501860064465920717284390419596445822381383084005692329709514994430766338396826566869560424048025178591981251938224089142652650127027558867095797028248004991732383617519818283172198535109220816932142843209798215060190241036158011068305238562518872570708921856321295519866684142836169935085920599687300053948386716316648918863664459145710342204861975595279000287960291640004298820713863731325711983609721174208113434090215335957245004583272575011693014179522917789212303578323505361157879825763036267163544559734230978100625485276194901300669410745462357197890609988291002515347903624999526643495575809375376028516804272241797077424038373349235211634768181260360846016218240195366367957086062274944546144471098358032307357971245210599532552060196988824275294710991676085710847774902559044308667873539525070542599182186626392963809908714596229847676478894141124307542183785865684012844883852288990282948814199515350218942205202500763994986224982898591387713839150565593793498044236605677861958770922039250745341061798322278107753090135754159808373199571076931336635976220835658550958762108303663002505807965216612510999073845858262264460119721401872830366755074002860480408388699186705967915604263966227915997268937433212242447622413423641774445862479080832014844281370796139456924354741345052432127219338401072253135472460919368333772314930134324317985008729660463845889609204522723560382172318898057013791727221775108117556497400428483503277071925324736018400765758275031554369188100591565908317434971179742770016085588203732713625897250354573414880058229673329620715567280355894115436779667888399891397148437935453353879920302734664706224151076026700279654581755566086767030407498846058908732122328910907174603667324814964737306365722561274439805446785755716377285734327141035074963859082584047012226922665287944111172958974952759146601722814486528741737417671550053188889022944438172400441927459958790962290506010858026322613404185515306521387146570622575808251747241992118535689515270099981604875300657026759435316577905103203492854528626231345632247533339121406680770803492628366666920220916457445362733618698876684342583112131604346302866536146350958432640592990134329933192739541079873651723176587943924954764450756906513875230628524996079952208442174885765216276040467551530912810775518790716261004380312570904482942038218684450046129507481333216108184282420876226346893350417742908278411604117778094778921424162838720627263341505729723259416098958081857362755436488895007262951379797390896226229420778918375909546890965441980271454917020441697676585669975419942558405027557026276649356330753730313056879775308544654284593411069599421579434611232462717685429508094623848532902169807072317148608503060485362557680145001540198354418061869831946881736958739805731212509001625975039199307101359494617134194812202677436313114032336751253287334029539145175985437739033818029117226635880680051341948917214779934656890199042744762253289918731767057703849842037670639237943062331260604163018405682912104984439897971710988357836223187161273024862637596594435904505765876249895005761084764093742382392731995257589566441840147505590591240670148064587500870739918149243802902565911894054143901995269407835661997106058544266859202103187770885350752254345762163172380969890384639511583459304462019880687782356290978689207707096607935394746389030409016865493116589889620712847207350378161701508174289101719289013379434748460254994161200063042276129402241315507532169196638717180759604264259084525008984755371287866309272577348218506462584745606770459380386148224423813956479990564035703624384523457270321680556440047173790588361888665716140225237430134640599799983315160180041664535917901224412360115543130840433097460662538007553898241601069931845327176628069814183231714543863117013027699111832755805837060876928377210500829634567657953657662718660614371996289957889215592220931415920191361049563683856239886878890628798378322609258581925781532027818756361127951407578832090069066278322879389169490142077721334885552734903909191922159481028003384115943564010231294107016036979370095387499587694703266861133929090086288495036054162021280448483202492683395205921847910348710089569653601654143871811522997840274952594832722453130194719891236284269289929025008001136750453227406678483624985734859787626705017013874031796799706889349507569026232296681321328306731676308459268204723304094326653148905034481834453745827991708323588390437012902726581280370524506517026240181251231081514054987826521305526656960141827447821876372778429304774181791241569499336289257221263204483124293975141911842761250291928780061813197378534243443223927549646297654062516615257147414075538808860962568282329273349127594718368004205493878209917308897250441098836176016284539985447839667404370561481835167473067981853934142423429504245097196814595359220312826672743622462907772552570897537576085001624674649322023393873843130993343924339468263894919477561708354455469182373465970487911867302138819022441582991520022858456812531332755815627986473165413047606537241938752146895029441062640320659245213728497121710902684052308751632017047101963356841627439753259396865247552135442141469564236809619865861554897914500896598002382565886500666707063939465420088181614366195257097020093782744129994148452566041351123998146625559110707676334719834535424296882372511325285099690079121124562923792789066822343896454024500754821801678589786645032392445083504098332489139400278793282018687243319874281534106738452216258980230226516075287473901419745248761737642322665900784839746602455975195122806831111250206283543284037014982074318711671488201273911837000119974343408059835677483198003992089746283693037243837229437618909013522769448003217225878455622654734931616917722809780560421494794487605104353061040576725068931958653149317137589519318430435945723676518694987533714155595086670928603490939577568867268812664089312947758368895363900655355128794931564209112159825550114969006104506393714076435197522258689464173716239869309052139264645671966150397734846780043678459923926561950593989997462348469676079276865814145373773257765657609685756108924360336164461267829885362601189962391723364397555741005848387610570653083133877725393099313702132959782333856343983853046329458872058440071115809016915453844230294219225236813743434347000496348362287765443352991055535718200766427413845945758704845032461496879493373578685145182566999167618604042274594925029573809670132392719395750792844505533817981184629376747344137487767605013247197342890892783673426873373507888504316516621251858038338797715439522592418010172189706674127203292654415571116363734646336957594274950085217149470748522953056324523866996230803834918340865242198523350181521929175612591687230667645037371525846546202626573041398663999251282368324436411223870248241137409229397601149585689319045713940599326831417597722892836566321235350915791933898882884656993810998971202865744921480220941193722639622069679057981071502105551081439231245968996455178210055740291987942490764027564033926089290820570965532387134285934457641800141797750215309292514968704304314366979825065104978806502028190680097630406746224767412341060703819202284392736901904651418046646998516212176903143033478145123758374656044893129624102636424877680230999809499914612194866761767931522607604113510664100710325301022269418522475056913609893699857516221889378983900707389905344720797840562797663640049048387313320593423692532686662743478194403757242743195933441832854412595774531947282433597167190904764361821668520795183050359536830286143337415331672209698649339822447760503041126217467327766462013744074096562733135579633164573180868882875453943633135862314125378850727878743896534219647285201792235780904837089250910241558373084481588098081457182743813664032159044149060849274362884687708725015768401231453721528208253025112931486875314984466911472913988737076521836457060456093919565207416896418054728275406150811649980184594491912075992224026437060563445207112774930529292330146205057495458050139631019360740487701050669967366345520579540325135011727203069522123129966106328237824980116650610659585493601172201615566533641622467484488645235215198940198773784964769218185999271554151770563869336482724393071495696532985869723747027784322795053513599840265254175226875987113755350015516220283181789024887032239957808479381303551901736411782167131615616764622060560531146250704560797198999586146792788007229638626411146439354843214145171161117095915998565913406180804277974674731239983488586563775195131520550793466988849871475389856635500564111397329352533662231776751555257864767606717289637060911711174472149486693304079436369033209716060274845302526059562763975835119330337703256324806839943337590209472111497360293049385876137723724852715445726986624288176992467826400429325870280745613008823751461101610951390957406594864818586203953798828404228962438136973401207957664318966308345319454520667370575538271123469756868674002714313293608651892340043029386027923648826242892788778597567798053450173102716461113867998002839984119570362487834148669872547020923017518854132921628477335001608025962177192685399992199302988204709840849279347272216964953565541991406322108319584431888941660889069883205683710465830660006337900518188614509479037409865298960824443363461808425047502113788968495346370436640777527175851752114341088401927519485970990401682390709396678427637440447664670647044471350408738471186454838085081442949114183456867554054932674258882211639498330523038209889329927471391566517441911046302769083820840607945923104782996951289717374869162185807871568974581668579393061658297095751647689825394580656011763602353328886684652712045810590008123118181417629311791868486324331569486933353429257036865449359764683162226155965206376329462678707487626461427929861678581996956096809826530157234095590326452867304181516806728223619763582590630174360150055188482792874695389972354205823093991453511212110276135250991535541913890836969511181747692675486129934437285805882712780257294507968159357226415562590718397880692568816419169174787367636399114562410831262980329450663284668689419548596257781288220950850950428157765199319638968981305715753019490368406743471688567978382867751399301809479607069930247555584407660981505573474895953921009113024809159565044971957824127825016296920622789390109465030018710171120264763187625569650906903552032355353383061035218874614253506663352458122402275087373559128085622808645415865331357793543768730626630381007461024263490754896773810818175775205256962553881298333863344570687354137638289744580142518732135095869065372796209569480381157951220620208799178876767822011239779706394397821526445887837636571901656240201817340392881816074025746399267233789477667385798755725017385059017351630041779626750063592283493344838540500254179953815163856658239699788500038964913092879042171630485463058477071785303205930818762611231089027385181668685506491322599246861759693872020674319760418952699199384216880835480728854820654019604529777794348226424433381664913368387014374441196673058867421929603425011730327167028408026673430704620926365054296724008119209047887873452154652065619793712890218952987584612199258774613017401318428357048402773759393336567471379208643423350573320995499000917795037176544505584194192995861421548097642675538933784860378318049897086980282432103705950582056788402949440691383085629781087872188077631909341954623113630925900936608335304712256422938944998021730020264952395722404297870541729674723518740331498640232661179290402122260045254462965772825892254821970246309861745285694512631534940329345847430520874674356118663416154042544202817288343406069875039647035674842214668002614002750541935477302939749187752419493009943720805225453393562845170278677358179755646727820814559235469267517439622474722471483787422197883049075812512927670720043731967893889576944406825000868571498159687165207644436460590085437795212796186368132523245291467841398615929074517619717287283742536047899551584730122121823290402672910149123626807477624171442557760647501212445510518664322646727787253960595002604049291033537921259194090576698757781973317960015917038229037365209076544730760721319406111534741353977877293918261373985595335079563077419035309833601835848905215127377299148441688787126934085988330748740228459276631455117299056323879969448585745428991158571674020976716864474081364538674007698643954173570080774139181342120098781744241800538048212641628856901916671435972934835532030324649371573620439457817115822039171850499610552520833264008193571677152489300322524403785208906859573676828355572449356240830206693882099209325553021867510116280763560996491245371498739987283498187210367209202977555034410948411463071266370899235512524754889378725482793829000738825028285397395140946599219747258011488704004329646987473603204305524769417060939287814828046494429135204900334904926626716548318945934170618655652320128041907696607458713964402220718486652567807146712963226107711046479552471276466471268652831480977977202038949624350749549405138331971571151011086286777149021837745232369663122417321186127534772468651438352000045008649517669041421073325826905223007691657219100704735172803330123690134021541221033315928931812205622173428761096721181787627212023583295836751393212387205764236962119870786568005768222057714981814386246282611897404552268622975437732377747286015134867202281528434238459468277750413732242203130282422630631600194031842699709620350231060821442616432013273372108560559166379448395036601896742279905986098571745399760630929114174364585556884684225876724138783988316344686846095812041954670125993335886601755744829885777000271432194868998550300011788863991394794567719951266042216135371316509254418269251512694005313613123059087153243006537533739415745472215239154509549206490290097855110996384648529321836459223855370519216386588851583441694708111975679598441306899239181292551063495091553460505978602237555281896747597735830729810919882635813186804308449316428619379612120058303332075526201617825628373248057341570034574186118968365515054552592442308261287397732923867516857250349780825006396750974957641386256848271770489969625901546307442543729063787493567151792550941814646048601064949611214479509700426254870927801616598759214704028173250270653457722239293065975817541150329637484815961111769576345079462450449431995305020433567193056445645947284858509984536206759720045515375716835747421987054910261113290849517188937943183127525736712344554002172807107629920769303568417342398046043568517127318209151789974403839783741021640678704164132814248529548200696445637971393003764564801775349334901332092364249222293762614073789173843059855131483640643028889492210485461883551907748359722629020901998622528226185576594480821558212968662782270598496876686543577532782577828635719869579478769920455656846192872161986015189657698047832818422023105217394305494321925653246183502730414850190267562847106439257542577352268554201484657455991064736852342285819545623550093390986442601421299940567799440122293035727534567700526351089309226396663993579073556521789837929277113127594908614614105784126729402587018960059051477576308515050166848543899762290074496544777143227048462785500641731849793094095295807549878615237118224492565250433471827041037361018407807968894617055975601691368578650768840634585908349583871711968402319796151554216087730707631023204677712635371407537601940536483181585714729037227580282439687084152519474986987563620875163832680454687652765017217614579569953487553837342559501025271794770372690328336786560740345809555016336083320827748091404444681962911776500119664605475100411279362175855488725652208787099417480322015433607222026256856253449382841196587406551960329736944734608929813647119315590165995153171237881747348022927737800571051995800677289685792911068539813359708114283381443882273812953462117500068922378070962351557739585454080139286418004747239392526321692713113218784642035137247183822229675719062100009529853534029494351077617975816338568142684176258328226014809914119807630366055891139773300637208117128664378852738534595712311401007344309948588772626684969895861496429102293451507597834086963497299960351788323793599608867755934407511592223284930256530870878269821702513156415614182602933532260984453945734850439086704313180455779497987951675539197038421654571809691138826483647639885953659814639871527306520921833957708856566387356687053300452829636492701253345488375849504956929047600658171459360199250998063949379474067868150965587807201098978736565987901054103079523291158475167151115409010295603403849175320615709940618112064266154083628799902658697593230063519636583523556439446669538759923391840238859309295499629992734692693924978805473889027218661897426827090649311127896628913619660444400748733389110162498487846915414521953214749699850308088739416605136728565822152974078346219899338387296060597517846858404532185453055025268302819813750349319747211233771400919601112018901558056447307956564716372944727300915852377755658011188058773111315440829650227523280435911234962510294311493320467821892707438815830163701164097423842727842153520396602618716351408683744222556932623171843906900904523206311512781813043125534501743820810703582473595508078638184776121696315131591164026315997314450232849218152095126522333527740014902257996982654086404849652710710181262185400954449163202226316989537820910059407111807203648533613034419685524886971809728561532529330312096882884924952547493216488371835684307180434430070497994019146102969519574871572050259710192610090668467428702095049482479674467920252474444678131683473981379907302475618087353689374822359105299643256606360809037525026715414381428362001973127497057399155652126995746903661744646816476972969774905133890472541788280264213818882709478038462525950426618174324980310253512099949185572964611115243806487016034592247158900106342826840310119064071114317158093926140374484542647748041369235221930164272044206932523463784031777328983744674633999812335212827394550948887727343606128140713854968058146458897589084842688729999942051656192240345515029647539737522675891201107920146953075690629712849509714037741528328015792077096422483115845705032043325185654724811180185122262950777668186469334283674278800580617972918492663580316678699163961296394861141496259844609645225488794128423918258850948572986177936660309711868885769755736262718696028293141092729898234722599428648255057648268864389594574122799780436646687889664574343813679168177282565864650840763464599053180251660792965375608958087833079049345473283133916640950119971508859872892055392399849572698125625727020036213725165360344420095565422714813455260352606845905733399630210376787076117381870977771643583488063007775443354070571627892998342958578966664675333190163401459389896424986909346602996000492015085647960195826676571990250238706143091794582971126365169121582002620813750520346702768575543760661543863128559224795423767580442668422334260777641539503097189675157949966233517392316352356283711977853296332497942692763811410683515138210763583275183898936828218825927364897772635685568384388185714951252284269580253697660093487946562151683961231425044201780620585457521259784065460623853563099612978414572529048523132256549872417092124087340899906044917452334002715834235988601892325306533020068100101563406312576834522862206198814299785466589677219224929291115962768324772909119117039342896387372348421194099295622086581623280851993298223007431249753952846570973096647450143955485669348743375402163696990833834327752828710038261093203894047378881045650789968551204722811141485914712713815348129142069987526567655844156964729359642188761693397680938359384664814662283114666041815588218781152380205860016540701940535847746778051532291528584288739260192777765646270629360719369708111174034763200656847097033727773032984604793220233011647789653136146798456149336842121408641508362575619226121659362543904992507975846232014726654714888071527153470316170390084746354615859044160774575621234367831911239352839636888338346969672633405467666574043087710081116195616878538560746585869789274146836312870157101486631241551893179417619134502523543296701723657265038425366551560897288603298586784334238251030333030081521557992475930073234992602395592518884870000364230032628836811118620077681617122181945841015055271527151938871839995774926698475495675693367821405116627075795004295215843801428772513136424820698598076623310914787542571105813314907996989623833738832433562566435831016435375135217781461457188568688966787531506276269976783823111376716833632623189693932404359367529268667880833114668841159746287534090245777338974682693525158598121175773314691101747848937315270476109859236845166361929491428719694586470604555602370753938641277669538946869773364632565883627757785221492620579807083378035831090679647069592345492857819372800317538027460958664967640899028431322714214561246912415545032018980402244852250155978103292317865351302052059836005328899499503280672225872810709875381989177348143552388368138416522466447633763344942097961225126992063321151772027115723541680023564386006164993446483818454672399873803009678623778911568525805029682595735245193468772669351556081602156999134928489025222400392651030578714742436797203004241566044188908517443886646189209747234709106417209031671687253709671961283251975588432944721384463086137840132676700994445582330077925933291578870407539173051684536924916532498237364307365118577075518496671573657424996269639398728866033943676323389941830477975606833403142148709919601038883841049970627570716135235060987774474326830484659594799625770547195176043704670855787547768390435001060341401662960520044706332803816394111628214377515037368906811876104339892094223284967891659014484536614005647504365568008731688922368495928782889861057353759127131851014992013434485206077090912413882608849493437470556466032002353688355675112185396681514206811040800670492899071849737277823510507631400421008742164865047951432016659337472399144157424509009651461342267002617553917332768824649720342731884735173260200570507623289261738959018745186010359630509099283490909790434216311846478502837354813463704657200821892916090796827100172425111049266097934455461023315631592322875519561358773946953028496791191000955496909912949158617323081351482357675628399868995031565843358997628692850041468725905189538180008429527091139162730830791648926043589112990477132223697120904844152147681012734998948780055567648174558831417509477011850352326146984139856419739001522629226366781583766325622124874279426797403268440821142851403256653915251420429210692153564662541888314582538428086832401613435288230562170573680984772020277603348296089174484622126166501361138841203307322888526332350015769731906614216595212312034457299301438883506982843697016266396074112683567136624330074804375656813678687438381870580836943209932473133510471204106311931204852975867383960746746346669296914213663878991366697019151719132208483506649090778162143959837320736894580225420730180019896187938582665367555130569279597916359319358189303361680282550238667541243520532307540944692421003771394015812629663461553102482874444679695984969791655425961868677751958619021466412733046664582164775374191314472993018181463608425228070858216965985092817462203213076532419473489601483096555729059600591524404545810916237821183524747383294708064334316570105138243391293571166106235033899154051765619825075598058360847363865527752867073799380078503598715454562500282764164556025024083225438038702944000313919218108354038223006403630548292911588047245310446793715182014735752624693069635662047305319414014337429768515942496012601191718568997749856167913129550642066771732083634981014510559308633386175294298328931152249746040744067806347891073649789584655439744715476415990716277199096450511944411247086494104596721518768453317907972249926609284751426549353714800276494065980701804198416309332940305018619619256780755725812828068668783744823819790602263242330990004202297835959603100372461475784926394878072954543900591615198513099151899444244648926017491962269727053048902047869275589319621428957476367326207707191326211511688764354774147200892134993329957456352727366858689772528155743639849007813871230467033180277153908516838646701993214079400290361321726494561568784248847721151251816077572646725589048423161010181849452976741071741817705754400073249996018898979108165251145390644680969918545717092363697757737169621680508207480592175125353845616108742750308935962839562548535011099941238345335825917265738826645323141006405230531484503767957659885977573367385999056789273919514728463997021772780040334333321276244881665627699379648167769736855759421022780713201961230657397500357055036706043096291219029152471569155883680793112451213622511260609019125429879388497575538179018773154059911137761120001520036766209110014183995032645845470313220343313743778004271541558927473994929498079589203476725052915488117143956415364962440633234714897057888895227213229459118261652429988842596829436432088095379408231385365209581050109766220730138427196033862689892428721509715861824307386013377384613884071026790100035425571623263108476970513574239224260553450295586308030460970182204060922772653799006891946966351793506983823133763213213125121884156328511852034282813472731061260312002874258272086709535009416025122780420673436833692961206059755735860187085798393862582995949375794289490645248390648788772709883848954735134326370240184023653913243472367855021036268462333469202974451230641716937055763825417555131107382718494619957785177503892357154105700029571143852544831355075852902177918963151155654924737860417077677629371937540710986511614608832300077264761688261079453768898513633716257732532712294528961693722452386744689667104838205432582471205256825740240842340008419920704948877083090058315302418526537516272926131577390958828621700765975408826815020805400831686609081759148573923992297621761266686754574769531978856928602993885572542771400493081354307706925359386604421466657291366475719582529317347336978855729457761954980953544538904975161569498367862397382776895804411682315576497748492481202765280124940473943107154744173164033649470708463403323266846927405669345833582157697091165450950324979489888674846713094781259295465635195936599059718292267341293093746135390549798197100036731054425567104000715470100686536191115981720413116971877850711238823016740900553691271450242657115781132400586661410732750169613705028521842736244673714579831595684608125165838844998640909123136557653972102471657451564640423716139925159023451736088696894094384857271915140109459675287027562016119023010616879079378544584103538216962419833989166164730098257263100850307641539184582750091430615636853834499428476564946303056520965082551581894533581195514410952132649854696411176030164431675575645120698845057546379669813530862204989630020086631402422536100460220130948222399363517537743438567824188805255151206927054598699199169748628224283736859589676677358498949785237956748676946844783543636632196906851216139075637594374025964555386593352432776081582693274945283706917644973491846977176559298348897923591135984868782915482147486168341849834552030788578647946578371232825612252945181661085236415332517362084541956362095990953678028307049508754974842288299570801046421420420392471361468343309844905134515126016873257189962552329618302695898410255349644334875524432452976764327908944823040769331919625806268939152052991412436640959061131107081274062787922444115259305198417115062658017294479197680070101169965894827971265851536702798207824939318302793625003570967491019828587501193657136260372720133284038311053833977992787697466873661965557220267300512917033499055553893358009944720515049277271743479058801609179355169699160361558276613157277388035845630961032433171519683300520340403209029635487011008076207735877020247971120162131960954711641884186197968123231264903179562337974929692081839328348902998984815950313422679714881326865611656941435071658958538221448589445991896855959026872201495125105999233577131725961838796026161988919779534260353937408517994192099122203402286545008829520982411024250346720438260885856057029665002457658067372127384261434133302209373621037826335926041573098084536985023235202770235728288610392509524217652817578408644244560867251567369150028456326566176096429834010687377212811445857362934429450905423678697476446656975758858885496915029350126787677210430729318392297637395256019125127513390536242225367533807992052815190424597017230674555799068929740086211636975825812373350915630750459025564900016987952474133962490055139451188723532586411740283571337400235167070552189133710907967439134510715250755742726943182011154356193354316983077554063381456989084483930259309442748227478765568960312589536549522577450344277172710465434182912280192051978411281880792677743081222898430267741881623489267999727977471546801156422343885105864384405621945148179553933585994800658078073177704462493908392658237951671269454719422110707495407296710299777988295351215423287435740091353821434020985215565197516941213745181910775771037832447878205790195434753589943037171616808621240352469141355249136384819173563801649490368548070658385556560251032561307035883827222896116197293669813836071225313337415361109432952415148763604412800045987975914591347230106204017710120107879648282410699088628663828228620575220793044879111545835618936515398632440504625197449077501410321964994617417532623548601470392549984594239534392331093833106193875060617282116808191879923985665218069084397388414858786738943389411434885586528412526688920028291720232143038846855372481582283536509362805813397984731429701988594065104205558898264402379119236207836321736415013435264996199894975365541438163902759847225591729324448974847434250486169802613645146249348150933282266648419534644526166601569479118815464934384668092300002142610528525737104683916568216681870007186790539626661832645317811728612540749619655857125118771300838591080327488825531265938890880846822354229506331191413022933396729666335175232038253771800536257948901590147271127978236587132418084349221480451403385317729182999609217310653416450908016238908661697492561871107468243781545795158562571857708915814981087488072683499029362805128780970170798509927930183488325816819661339379230659896813767798620707206833539542244658620709134800169537037571062589239135646632425985783847843210835621657943016017160677936781442286525618870450533658981041793327173750620720506882225877836634316899659853059745496870236819971697131202724112779556809994030958730467089786060610500723695817889557374559421938499609772695395805881067072386032727907912851464814832693844722944992744502173771137717505828920051720064188074389190859754286455408720835188220521362827377606664360756427723873105000864956660976720737878205266603054442537176960271984366291712825316755673844100474929592673218334624906847250990710380414069032067706723231928739165229595670530655817803852333788193542629498349199152327311426222148381577265362617262269925242270384934377957262121691471954641649338685617720257342677360825652889786626687020952735729675054644338562140007175979255174500635695295874674210884457761465554164998054247126620142691944930762885262032426918984848260241009537379945203226387222720027730841972804067035064462167136285734738983395858555012223706534706004106787427074901758454755923114933427337888730727534963844015561972775385537653429216049566105323512474798224779353477181932670116849556807511612619135068208165549600494921218503351947456340390551977053836512442739021766352688260861502215446426383788792123089954321337589254061780367771463890112419414057000974629031384801743580663653256910799743371666031312434251842569231662784098036784745523684596087008989609988378494464134031986053777311770417212362618479105839283784429657557963651742954931321447834551440717202118933508560721786739056214840405349736566328784957832483758982526003005772815148988575181878957602539155501342622678527511809320850738834408285017117241619235454207782121103796072387903123468871089657482394161968168344025415881994906251311213136048307667259472296989519862586934009112010702941440396366726934153877547542318390060759483462143851826285731750962089389068605575199993014915315466612779423054257938886922034221014547453121886423585218895886027782738863168171893145626678613915659605702794975021507785270724571302442351378762328319376155781137800497166172079702212291106077986945083099931042433072721406460187514483532489249970636107306040080364557755873866772702983164981492114479589702979604627707329450749619076049011054002254177599013197240033991695763504606982610198819970820325919602919761385649077252353837825833795993602735224802342528120333271866132175074952195327585425648771310613792921982702817442911751715150975017403846608276084397032915970799335026394064553795577346702950696252029859061970840883418668787716197725233500720213745402065197084864005123954801630872619461048987015736769884116511103234462880707375227387930914596979254439636863000198900034930552193334670634121217939327031686603949370477562020937891297336758888651047783155252908065627457698261929389680743312853697525550259182232044959503279744111324046920831730489538026308824788591323510964773244879361999012561208807162278437805409361572036354742777473190001408834280080154183323482762590557997206526095716631114886922829358551687922460297790761333155128056879238034107669640631389015199358952416380794228403930512749787310844587854661953063858832314107917496755407746464920628458980383343961456691960081529001785578345752529126917283055064379367374388149046120913127117946290447659160248093328845908512749931230722139387387175847676362507714126268627242695389397749471471340734781930892003383416061663056656888734442464784183383969658678719929897688069803201630275406090499856333284848615299768785023309230212826806965344956439119553267988881470069772006230450461103436198653869332816258696468962246999534814137395504712870721034001976101889715645508818567947295168628604421433192036578480615616447378944750391495958268282926880298357228294515692321396028143239444311556405011787237294246721968055203595408980747657537464108960875305914561180566019875065344710200429299800437738175559857339262008482843734904999788875464295870213164115558864593496020220477699752360611258952209404286791844864565566691322654906223723145148431756906201785771408392964839870208075574374117628776209275107041485544539047563634930144592554601814374827314004340584247784371723955549309533350086314426788555858600703867976030464919291624968793044229614892197788660034731842527708924134320331273026644751845645572884042642374001187505486105299126001157472486233895901471150450688219827165757539379985932970112314736294538186864799177369045759694253326490511856948577638903949275683378848655321190973730882035161030610228365577292694170651891354746308628474981005053238235045421198434098519809923166741179460844937108416031656519596068972440437447792360968513096262792361204306394585303148407230483749348548825735696629924235886764758774934568030772713589141138996200030773588067590649834841332530748306713314634304817923435633456396789196044931912918710737315856113153569017016489940970570515560835934823101651423588307155107274496735437513012256266312977821656799414569360826760229184946280030980971868928337995343554496833633812332185314776794192767380671280573890280675876061468841195569324747500693427013079460969268995354282588442621799615391541986690462594824125715438352388805251777662889108023742152138385881510646669462558945908072283468619344095250604318904947517360063459660634002917424465463185071231919513852607694203668858183691621878701254354144064167275794883744477185007021594213583786455892453452830142617334546203797010128444848927677068018613187314153118320183370937359695502692501031929169054360948649667122042235032292602016614609976031154601346961160100619831009497647568039582118708094352205125167153366548807450261880251605358253655986004004333994947253592191785058910850937541207963543766625224183150437534081106389000235162988650346403527710122924365240485353144602421247614649770639293727206003247903971535786996013638505499646618333177052284081459612592926673419218349014679071162898696353989094049111184466385262215999703079200792900676080234434957551313727958228365751495907115281921764195582140694193638408986898646654981027105303998040017899515183507441512153008086830250284691361487837081770950871608318664397095164326019606788650176119422038193700751423914483526884960646476588025607607016842685442499782468805219066035879087865375531133006253696444869065997401609985870841351477836308844859108183230055408810038460212208118945996672395618738625728474035087966000845474414535230447846486883252092259881462114466634860556649901224616700878381140831731017562599018755219513196309142603542426274470080694963854206998194524940121329803160607070041389075845375149970437103140158982076253970701929029251900106248122503828114174876745111139115186276881734808413267448195925122169638351792810205552931069381655449852589495354979564517221407684790156327497190648625323728881588970558925848613767074197548434224739372647002932871701330711106704548662313248713437304737798734448055970063017130869238482038660867543136333487865155285569997649898315389110507666415928079384967330175746680960555838366109551067184751035864867033584845651116345314797955486835285479384947198228644217204592910404843254736503674601124487067879817567548228629355407273781684622386339517195996052126326071091458163147492512828204018141632081757002038382825756023090059059920483986554976460879772589256923174922175801354454732393395463805552223870188335974824755178876335519401916589570809885056179044663134143711912961966601995634523844562549450497667849280437710461803691973206626967937724905153189272672077677209772662095933552005249531347670105356907834851116264976815347284365986536349666414337640552308241570870568282447894712310261817767737727244827757753612276547585651328065643098620889974264203101907887174972686159229193427154941447955934470449549700561757094855965482554331970177143297982875591740957649447351564364779848607364747276226531802254444187188537987232766809308235619048706662654015903241492077617684911600997537043791621250047331723141491423566719305929229547361434441885948171879865954851334047379638070149793847207348141742909470798038565904529401861356396143775305140810479616795438301407448528729401223559709521618770655459062298215783427958352842125822243309746094258190444094906363767670460815025695838738474492415239553044668046053676977795280795068181669430429671050899980162643904788748174529334554376564745718202129425360875972243532023013272878272916007380203944536088470133403489861642004595920979019591632716774453151799149983636229715445519914432609529925131520799435919901254599942181483721163762719763524839003958493522073938811917877396920816351833325352766808831447318279683915722108388870759231149313454344586735337791484609847347792489116739690968036873925539741368053152934012699671462283497695456161008281699873739337039858561930679667213275365806500392038186989105527468726809375775691495579219195055506631246176757217715782641981944037994051333858306839719493468980297572753356475780345108493493338347705793440795578461276156048744396114714801982873745173433945315369064779381556662313014565669033377659468990648450345694996345881174307840982972424541802019391777205669023965147286977021446248604305221717094164660063681333585407358409880190937943066103507773433473579715686032351315000446050587240357115360730054313141341224059771579136432538860393302526427572933197024378106645718368200922763370386715249712898560894088302331849774012046302790635575852582790252488517485986130542709204740998885760904926386474593684389078386397342140522051823447036723858588248316225537129426649830231136585727221701049413207445805306161639230106737612285233046922666555561025859923478371216217371603677178340446145705851512307581613393448239594440518134349522454031816009160760022632986183884145128275795263151629060433525523605444397468637138362860904157620200103665885820032817718634743138624444323304169629762860888986380390138990633005117665942817285373614943442033704649694847553885019035481847352026804608097700894527598692435015464785188038973941401382431908799650252692642140579727783545331834695690455826700660578466995850212576008619440878596561696375161294919756913424139380172040289765425062314661065872050891046259968483873473766058420506080415580530058550831714880392712929061451810764000092122608841220342224100588367218430123101680671496593268286512740435896632283394023467762673315977895393349167785040535181316493625353383978729291587328128116953174377577332516410890696737705475325112136086329934174135491447681249043727798116777608466359549975317588586330190152184283484043066046553113592660231596458953522920942607467339626136916434655822704935382451827116507726059272003151227771934909011649885023126587845443914669825245191328346496367780353334802426627336815737387576185572208970354968664294215443304687270886473373822043436893935577942667717541164154645191994830460348050570596006994944119781151720049558524425590817701370857313747786944673855539211942520105547980946900826103385577784494861519479393694011173926736563931722048079780307179813747933825174224850720136508483944976966539572758214640211102978838052447077213737876494374122579192970433521319049577919094266474236822307287466715858518077547199993495031289636085761837841717371686068124952713202889331078748005791975854119002995801523979710308301696627073028955950334457271455006880885916517572853503685294058991851553485494318488726315425679928770163978856384679742226255525652435272413526906519263623509276457161059829769147563796214361950785848314828256326413461697036498959700486470621489151279629230230274826573698133564620143497556912143757605947865159238861263577564156535014643994360467693591657553543987489721916839588623705780680730321952888515545161542880370269408669156708198673787387734113684261364831059670673840381154373029282929550588476805177194020817745924008930651440417795161946047031666012324745966107059360327830023642720106320736589211415498582543111166661409766030494271555243848697890076140033814273848051865090448207339233832613670530635055033817196078619511064966817874617509101573183271636323518698224284694615699393662340339393816643765833518310047906013945875945929035850772958309477105566380768757654977267554630928513277119934750660001302000284510777891600852723842402440907781714558208599813321770936108391205201672177130624805760777887101962986236820641993645802338091117708825169400790546394212259845693933969201442339463297178337131656522573073951629789966104778510413788694751974864989767291279710810483625409476710096480319257904607071480369373738524943672328233926889550365287545641245122655699066116088750061179276069707247375181589699343857623421300637911493098272878848376023495788550566911161467208119292081229359486191849498824947193186939704460373718086395863263704531206662520325336734449016758056142341921612577062233752766955939332677963352421935574734957873421570163020708822472446965258131273486914971138017234650379010443483061386682466249423999214520706163599684234166586000647187969777022072589148300194766415688370214774037472910676496027820434894774500440650411487436825202635374745641038527653465555928735840368248814016401932924104808486648310547631452747724423604114431730073254040332694159942171830345626213746588368484080401671776708730387982593874839533331729039739842015838070139708096082783823014242543486675806195410886499109862718433386371591426705255250925575601666598752170474647264807120496719875198049567205215062911974490866992166380100518945761193287854212418831734301092174759512622111494891150513354006593627386682904863223383345796040274314048140653423435447149951586305357728107987851793258696362383249911556811985482896784283493864171775800670003596061124777022114619739723900860205409058291266246591843143386672011451200803706749087687704989969758182034715649952545209708438834156883477005400912720474298793768677473336762913879105255340238030740612588513989000682088037473865281101536979911639017612209835049620138680599030531952376718690619114463413979974996634197626229233103555893554900274383209278415291568879382266704836100753417899365607542919021278573528322376066038027953235486233366769561562720057181045304570041234936873640071822960892731697448011430358927297122374022977113416906483566594135259887343459443200506858500717016191292215743797275807171154743051300184130337148088065318960880571108044370188107951454517952895543124255920047561284491747462327092688240384305694756361609095058565051622840059067941857418041672490990853086077693897720428552174258261722492996891903153547831215354552510520149030342600403448206378480216342635042853350243016001650522813741913554173891192303542090148382052995368928853403451329384452907661142012229094401476283986214706910328591422847840749172343989368404738157334630618690777258913541785858862254878907723027664618543054257403861205872471643366760522614817115530791635413273964162793457898124657697638787118131763543055230403520124117737775411773223582367848167872983134540201799088643869931234317620545402551968868195416268737071113525741124224885454649351472329960653753015797201587278691806812087302924257815490048952522805437556427319669927941847602722149385920778449889713723743824929109106380123780954534521528629453841618100612512576977315484147546627247723995026432012020867635135251326052572382912124750094462491511303292937219180574834699414176737466756627344235640603876954577749023270043192116363247884758648953780138859681120769598178230428794579971541605611222146439088063565627949956105056316948827516425020655006461986518562331191849109638393470742557416747328270571633941525106184490231150726624872416809802845262040601660867923432894522223158832265419202078817684425625743471682319191716361650678338921193843612073690556025839670182942595624267009356580551846657355618021717073901505801868358806584886411367747806818095610581063807273515915198386575140172104965677024056253614675960236284822082283850192441928799877387501515337408825239832956491733262912578882773092303383190104342041749427477080867386225054330825310824334976062189348473334592527994805061301699703250469690559302040069160249137542228050092505234712089313433029774522780119418704103032790027293672868788131812053318529374131208561683951171082313596637626625737783349394280056031018509486082070370164504054670375947506912386713352182600952107128445017209928820496498712381443949317337160863183987225425909806473655714092173455462161611693206652569401251963969784287262135527769719918137650263010259428781818340340023833744738852813653080527217407748958695438524739605258271801136617605819589770713786517452788227331664543528512552239431797423638379966705396197661289805147212349580590138654961319181093889518738133422011094544372125374252372232720097332394139592793710396683164757648343065377650972354258038237375871692704813405319829885399314116339530252883037581928876830316351286116154454872914898902711032815668885941616606066522730603383328424546715898172687778737471163160295779636063309982635352263084867069846651282171678464998437152751831956708115813630888820046673926519872875126133190025411508895593868450109709104422638452401348018926839654067620922690744177036594201352557358291042384346967967852539393173584074015397365450931172596842286676768027922601232552155272561630818614983955921377269115044625575491085316431146534177286054557662790463158473627865991629625262484452234657613555377757007269796601501004790476872813425173001910135088758431121121634525538390406560335098836067089538554525639588832534837431189621827206204022177218248061334936535806339134700604935514675000980190896735468080410581433375759414154519860353242223080668583623477718705465766550536750165672461098226493687908297319237225001234753551210775646220984946227463251175894186658881911031339150431443596551265262565700987302242569920491893286052213788042956803099463933879627311279809328742300082992264568056346032529472115118916710433512819572738617809302685142755585833244883221789494095765012576418637605904212504195299330302068199399469285562489737923629480330329000312027832489329206939670997235811075566235314650837194509527504870641096782145618262486922305472169574689168235970393270303733389196358887108725483996268174397753158182230548831872966281285420936283802851095574481812914532041539239243043726170354405919680399256247486533238000736485438174433682036316666016894516224140883008817564679042181436101507239957472436299614861913908043590235663417677625513248373985143408800897068027674260862544559648716166621460185422697843916814937196233585711598329027307971791223009387595447087435315191589297968251606875506613880981659678832402508668651595147066396744805080636747044040021046142612688632502109770163665585281771032875826059610368728454932446522927702910241968807655568443506079296927542825134176623704661087877571253813426973019789884431731998903447838875277720610173953782269122979373298429893436902833185336403138786072874266083797910725005200213769294858239594390789107397254798749798812504636383604639484708838349879709385183793457335364369225354136658662669174640367549542660007090388272994396742542808466050906636195940173910942300941557921760723936039698863732712916338996555012428689683958184393250565880610336397659609585167536744141864725335663961979235223958163560426371544082294090122181199637815019635601835868994459269203253503784203042343343174683368544538555521043460781316125107917833751925812107904397842566759298546299811315644900248953689941439871419105700861002328996747059935461272998841810233200803050018488576905153074022502825134415642549345327845571452356704542086645668733865872548908446146485296342871547720326341162723545905909371272129776660833600632985886770533392101731654620815870067818541018589586500441882732197069220241688498641074994162254770846550761901445669481574149234850331218610866620835637162639116967490439850417918409536752630389145523410615671317268448470847682342497468959127252963311848591729511021980028982004409982773832084456472132514287213574541116967924320370845809921020221122802793757105663385635366459550999210604453937442591210236148444234084753098924649161429669850015237105243488020957040261496189374798965934476466826119458438202599326613481870987596452247063218427407158304655888223228749870456049334996800741540726772957803841645570801840546267525647810228962351343258216553363241450082896117787510015879029788949719186732590320840743602900622709198952375942308802731984079170120454749255977751637252865217039384348963722989473458901175927933716939181651734295674047977863869543284490507272953979103012913179895671533882034894018078392925307973189161436800962121528056634974681719522054166604026670752292054804480741501147303599854353157595913537881983785122322082336450347010259221252955787136806700574268600421174564098364627583720645581897340848488196178926987736926833926892657301903547031458171536689110339783238569326654199774198182365967089764780809534035427680762285558119211137737697255078531442987608711792331852696438762048430132303556817245517002439191264622789496762391252515271727513034482063708434096990186907835635768244092027056596786980884268097458999055882992630487625647844599187726564957593002036836115378842572218697548527509681562807580167595150199730295086161089419789784558206720479829609480964224227454814642267157289488083509282553975845287901024245767500392251624647229142794895145244524508398099014200899583996882891614111738337827437585625634499397674684042769799862752964592234780644451926916873640360179271487002327512509036692860047592925688431832454899371938257948323126846370145930016881834411459797107931212798392625837407359853979583828182675840850586911630797473597564349238833399640142961338736840630231855302350887578083096343070188004824428133780773075725019148913167607277671523241251341267099772033142068403981591801390509029108315593341742020017789702042249665539586226438805139738659191196991236851736639340107298429961041958032827494329591454832611972851911930737434155338877134561502153141419701595759729449759920958093654635418410984572891752549008552259654958690408849417684112702900230004483967455346602930621962068610694197889730051559392356188096544709822681033196403193814456013528701821006067189007359295955088736007433109593018347621654496075657535884933100637868079034321733913007710601684499808886773707007994162964456657306432892899101380232763405601840212850373894329452151198132167607371990903787686039547132011411627963819887272715480190465470004727103376956430460550751970698099467027515686550178043733996788278529666382862687415812777445105821752122082586394392409054004711388036605090109618757913951443358461670123325906447526877972601634899581049217060120189433656213911997712737684653148875674431738353764891067164735439286699816045228925552164762941513912392116928833495303356479655678695675384559797326443977091249496602557732732545635510104366218692142179523736095916869535826762376331377634623833861227770843712986487103185726967029195736659357924190798784296215779614002529734606262814441048056692060204318234490430189532542995537379325142880266994317957548451898382140472694063085410638646532387013114041015289478875486441238006715620337727477681813810360861533824115295927842922375353926223952953339094938900491402626581254474933040974172740689103404255893791463163298946628229271131590869738439154499478010436538125762059772305185530233606837263133751553813116241494678861156268112511667681791337349247632073591618404723608828169275301897109461673936860354039712853042637664921020312317561852487796580512952892065915651961438343684779870297108998755884240769947083211691210820177895462959932557568217667971569068776790911431486903325217891450497251986822804205585312686866743096013315861935250434482063919989792162320122854328307464611672444969198213885997062185151964813966703206463278706317992379206659328828944521642411673980521262766522740965913920191917453188143694389001144263601665912804207814155326908397993963012188677840143167010619802534319435470998835687421654665094207611078515666777760444402242726181340359153603799692168778746457637784209155281743287020691683394630978431437378272895482327566429177780169364152782831157067914395500141258978516436208994601229642520451207752158049994001828002748129827610112528689397492557646903583927234768134547943536671002444636347021812060587926411431935295396772976932139630373769912753676989928790851847227261168290754046361743474441188732835813977525593726096482175385726513893747157682522452831823287262134986557934865035120147431675377208230084355281855142065851361603588531550264911725338930565203587947835387918328257807935335045853516040688544517868403556754216774062086355620770242092147506366264585314861769085360674162283890875169255202290534097794302126503758464526173677127558618276553896517104737183293820448805841499923301858950555534820794676227967733683427681247129847489055215396268395184867462868795019710843859129359072640001746969780168844383157943666346979068228233182332576632622066279227398399557702674712688730703213733983402896678302842979239449827813991901586267628762037396172046795893697640685882873746368278043651261153357308428366170510902063495709128785087344968661131761456390691794303309403382106114041464255398168412794921316772032055677584963387985379638391114631371477807108968799737120902367711055654063376491272631412453717673141866146689238634145319498022365342652020471428126187360672164152782316946347547925728766402665185941090029415985114211327236187234039042310872536517627459691251505071484173434189038783991106687141370116810549815440920641613862816478011849030774782409737502200315384969277051500361228120188146318797581583955644536359365963658518680864865803362421682280299860358384669791637275015290940759388747836123810835535154463372529595020764423488965962684904245913774667429661840798120394349912630078147341934876745784385073163368827873096174905729645222110700350943386831018853799425631883601851359950044136529774925176145603282413549485459230414715593723014040279696077877557837776659484535153889076872649068753008598694268492047874087837349875238928615800479342196214592501801639107763433082795594015844315461933139924136884942777730791916468139534511190824027933661261174991906872731841602414677175173236076223697453903812428581571519248918665705894849253044712942063106620120403211412739198042904158410924731848945933257558285597081310302950040103599843091695053126113632413063488696884358095506448101194595096696116239021342186410334769629721481680213757265486443707299147711019158752642245805343692992338206416752388859434428609274969700682625192626966450095641960188068227205161899315544970713440969636784663217968407547353089378251031153163872682415340297987259159711826371226057712785772809325133007144800914763984105746110106505469599479172593458121183586371031176213632845810669495383925271422194727448156629132172870837725845567734848551707568927191377241199511495114993828388546890481136533793022277142597011914912630474930923103359545777655009952412263596420016789915398965598524042640655673457402513297895513448543221032215511666700036446938973477784888887161122228455446655766967059321411319615984389725063984513208533905177173895876002627966163649529919064522870202617363310833333305886234294840593483249606192201463920364907423540261279208199747785828812986861829748859134256706343408958544265547776808010481804191258441479007678691153704795006748863116037748081429355985390765382768634022133118222556743219407039249352991235473097299277910245974718070666646701428524149334200015076190185508142577477270308236614523338548835202063377903624257190315384946222169266984962887069847574289283302310934504344579106648303241640967712026776421162865263577098549745797335749049924114892615556695331975541564417470867568939507488198886851120902680329111869065482863201905311247570639075066842451080686192922020655381319282104543007475637626550642775780062663756267404594857017602882205061798658798038016481111510725488182284591475185358814896879659568725438252990270434455585602384324916092475853277406274884673496933331335478205104834510183800451980552084689586674984608844843595004776822883619696077920768126465771519397645787658806968010690148758389499840302499457230288407440673249395085141578085610529924369237086116275149099561748179632232088413280379724177132398391895205726624284237572614332882031689130610323485520791508494561209923892262430168285538452826170684713789077850512183785467043609205183521815778206851054269370444874532482080414603684101724684808244463448630958050900412114661272372684688584156950800658032091559247961923251466415779541856138569338974161113270440964810957900808842418909370735442782121495331032630154612724047579266717816003734210442267858750754612770932295252766105813745694062777208288582698025004630187563776516938808139036853433032486515608888596212054588409533182214613616790484387895106845040573219744777145761621594870123639230762489344356572778192121883315638766804886923664941825849111450465038394512429667134384717325265922969287026722962700869902752126412142797100831727474001039428825791753128845271074118475748801749820825466935867167457392900869560671257977220781612030370177501617268271467234956168976123631475779649885899893420977571691095797141134754614329540932341832169933205813338595779540422325467174043257811817225875048599278121535565983153903471078176029934515240402535183554564568633028208069668203436332361897767033187264782161558115133747217331334151524699127719830508168288077879039835316106451497718817827856396309674208534166902295551962234212881254461648509148196506495213546506071798370699072524108775687870104382750477057499338778695964244713296628157320456050192170842583236631782783678878298390027491952200695091829361423099061785593837568525505121868988848008025525467848196201605436924271477243455338435409646338315087941903825951129521979008036326157522841729001924000259604784708061545905479570573078927370740666145853239550580929871679009324423865414843718589525420201947251071759678519156484434127421792436832857887340774642981532922203634515731322462518824865845364265282330991703464750269466388553193157028057919697374609738005752050196087162237048288155104808807612880412302442687643462620434254067220063953605132798380292325632591168325652093480031040436101011061829592633824732179236117373356033261603742902727772927726749107944142723173825812274052266774119691855120308493281791616671525497204037721786050941907115346649957818592533997498901779501130647325987961977921927220140583775909056785610853401650753433785802474397624601806377025539182213533838225785859553711632370503899282940049747672532087892030329482316186717403619237633136810450938185419675449642350034506203544341195849407602663380173308365719394467172294945839230346179142161613101621972051186020892234587109547092242170851534593839065730599843657586983396137228727259718384235559104809433997067247989503315383403753898040418878289288017684724029580386830995456955114392229432096576967096484744928535911261145403441760455890313166525742048919996190779144393116296348489811291544115987234889645655479411892669510270119645301372498386407132480969300484364274633731559826280130426856153408804224860120417827172221711456016886687512355797366574616204683346040632627262336654243730277815009317486841190041408764438458626470185181693941767722366105202322741187711801587341402442831751403788216043486948289958515949221549175118996433581300323025572279744285946910256009441206050992509171104322873995073469094449249332450573905786631028216200092019770161535734396417171625017975473957323725655434244245029885068732274582902012702660442041668594897002137198617553637104600257980042632490323935546875289162320585646680225734889362467501863789584529740503796373566803399276194108275134509461224719964575710314016014791787575787021061676317890969445896412968282898777244294773835153030581736817020538611161760907747324796244432929253943771225392511434134567222999491139581154971926709409885622884958119809008845822511538726278655815635153921951465731032979519939020280680130470476906703888839637510125947703362008004364042239585673934001442475814993853114073402223779214907807466363666879062656991519232386647094156996818027996594882379679941825202719274464327112087149664526878964388951283156190259345183025590641586965804782168577361203733698852400112022313441363690334930167336178809743097473753402975439551395369654993773739833400088256746949840675692345939868907080311730816837723443778731551530061633219861924220761956638101807563579757954150775022391168037133092099893578232725122265436993758084876275022403238528770989697677649453383966242281630296418188632855077054520697453534425479390683022122315166278624582026502912494717163839536656935129639238408124404200014776771466380920476212468270506399547911147246667666481337821359672384648416441680421515789668172650371169355367551946163990119397506395049122739377452374641930464257994747951837735350232352689534200594053867052573152529689665839438524629431854698623044985233050162826908106271372873724174497347476580759606381576057197835638952112555258456445971294384006168601468808062037060865155732526052661911487476864323372977327589137566013068095188074003315651179087926444861200563650591118973936877954257284143715912342118861454478940489670027436379728085347178298251948602536846761702175298581134988110631748111843007850854031364209813577444489496059186860882594128620512434647677789644794887513741556894843314650877865589940300104941036592457481859159509746118087257356477660446852140294013451351717653799807968674569538389016529028873140488640439659258214143071717451347957135275969144303537361234907537724616868423618543281740403873593209446563985638726879703185229393941249026596760970327374385011128556183368359357114520208741948054047998401964147831738713212236080131868184726327452461321106325213033877786592254991735601560161764042447896594310046910499620536452182786753995747507757463524452565079195179003499281789870562625896948477612347250257757553023981060429190154315465364236080409902037554081424756401664486135454595732887103481262220176177470783963136721515834955572477235630518915948604280201633296600551462357952922930017278661182633027707860580580717481157674088492456980307482162947477401332609823745709838363065045694092689939837303613248153123889365654891543663057125736601609421364948343421781854231974551747287093302739684382975946657092246464084844621399306819095871500471348051347741382371638182247922755138560424328345396367204961724047554817203044440362289894695096877851414875738565444736835321802614840709308400104284530336752675529961258890433803253549304895441473215304650906567661861421205702728414609382504463996130171756091296005417233772252595549422848630546949992894182054921875272452924254208602818497090746228477513121537055341590153040824238313399698234181067686328640344089561827889028710814524230212111884890224321524964984516568336647580567920560574823486906560151269837609950070200399703034268803877026964665623494241547663893443293360340756963041149435892105715253554877818984317892831806995957798584295477768148529814571182402459710430608132563976285925342172537521816822217867363221095767072737192480624009105929107577642925956640533916686994713574914964885906024252112282906467207164172783771414826592818306779566964383818400721267208783180986850791517336450490027733904727024992011857588581954258104189007623032227389203182083481993017756373806805052189347279770347202415478850710103287030694532676928439036759973681596231238642126214148648177317498248749102264394953143990701915598279437941605719464091521883259354853375536513424933629567322931361481593612883307623835145802761569101177269419223661522863119420593640897649084197460402553345638905925159266893984153300031092225784140361282000147677318476765403719262695529623394893006310565695533141360075956692034690045437279290712702237701899120538352331571807135878487783160007890990736703897357845948579017228967317578568619946776123271041246539219688803981809200886202108935102682976290568417178213000408496607655369615664545280366179825683070442841250231655432812224478448889229248245937369496192831379778224057901261573482302564321376209333563393759680005051916105684281221785463001663514768727649076925536392604293016127159869917739359608333859048226685614690042367642339758939925026124783317397788414639623265922464354806101287867526460987458587515071965861933764329083277790438411631462624811467505620337712314284704735365349285171640548638066497383034568551741268035238429590858934824647918228905503887592201433228236352978053967780514100706971619780261977619389869778943460980794509219869990883932685167817086067926220411984130256372642873498760103336297674386641956288152944077938729436558212731826160785169498689350398358621789405585276546364979811703805438868195344502713154070428541006728659816953626184874254754823599253816147602972268151033322527053961098498819016354967961266148535410729548774597608938198738778620457166604470449735767102116487806383528459049126187150052502874714704101261187199990942145561689989169998560913691933768066462461286426096482274088835852585764510596294793833699581189434820832410112627619591059563612075177452084445980346482756499114274841355580853711798524774179269823541101438000431953744680318537737586307936499838859129035787473667170088622219904089441091403801124515143135977336460210557222339192568465671182309645940181928944806101850388769274102344397728910839744328379014441411139672322999579550257335691056285838074217564169480691456684593382296719303170882849001064801940156259891705331134855364160829741271245242273987126848880748697904137476015572768166937846826134691325542785270611629380429796625636722427547674879220990722905557792431882953812782421260284776549356102813857215767738317736476023954638512539024729848304752894019924107949481951641595652656493545154940160658378714820226933924673814442780941256738499594276690535494741287939916662579912208737023788429137390217300526783667463837259037726242030350541937117814915592073855459015638629894143516708726150051965353962801325064545570963619006059375983417472401264610322489398672187077146205036365807993675951260578024750983313879811631585897288702181281747102136655594698082588222554453734845851582591934451733727811395973062550003721704309861225406349938303822948543287879595567875019904471586701746107173220739453537516406539045336375138469044353572099101208711317119039990829505952440746615904806026023118800273370861122513458034483607111932147749747339507468631983618330040367956122404197777242724413537318817912086924021656424571090807189691456565540104716826257868388835303738545938188067122729095365936228210632485352944716747808706949416086216822128847380318100331656754000915130680219912068411257197111900061617811070045638323397215119761484717185840133220881086587292348471645078798560245923763307133385134028063929655392638754134915022940565715353136092846964664817947091849977598744002444952842022901233377306280950353262910674239517494376099022282716392040191491617329396566055071507484354396059130139960085586949314036853593689546191944203540531665588978579692673051330110361987923366421849826282397615691517103199552188026796988923057536192578434110507087999230473068399116800629353031008427688795852211392475113474563451868083351695843329199274537904529540740339466759085713867251409355347533208458949642324986088855357490551197614136131541021627800554067972398618296983444526070901712634517692340228532990822958485813264070224345149750363400554183929332830970668802475639845544494510488701457327259509164421728825143289763203371839317963615545628685480190559888110536541930918883734292368871730625707758613642109939415424882167400393288383004563244821238235478795412436194097742520493603696592932722578453187938355345929022498817633250981658606725261337201484384688093653011810130654028227166156412098151517614719362568699941734986019105000085123529505963704438877748431457583643071475566990078328356009572876494281417790753808199016737395939408540181811677004866472545968072213347193841793456646895867189670184073067840771994968541006509008533153421872560993273092621899168299448127172798965875316440692573811425335064725074476491657572459877486616004145678139006573506475653692944172704700838324340533733626261785749412611791611819173197246601969132888490198022744088073627558569760340657624090313525640096761966931703659839098024373086199719474060294307934223748005434007958797972488053940203773408158644953819544755085695037036456075422834192806255728468108131878340003100211349546577007812287711438853586795601573179576415538365865186420739029806173821555275329421706390424746891831174368274928113056691447094985524136032022433659917626737516673110039434347535749265121566878457297053611219769865685351656418835084848110895999107908165235609266216448314802860773515203432393265935789544582955295547141931804714292258034239600880074515336891694183820634647351606591623966311766062186312432914982529827095113928685490437815504760465116870945189182467532679237413395875612630715328147633783532684826558296266485515971879660755193987489653834605933818711996706621251519523069291196526652991908290173767024073293391752282103645457995090368836384565882545862870703702533428418453296494776525764047929063207233777620463186537648824342957469590397702293456438919164561848891343613291348677334029105714962833570204950841630999568314137894711526123707144600004043678143561684751019117603515107061253841790898130681800815867253289634690314788566838058156502413266592490007193230463548667946925885419622276203029612272371185169853557989007653734013335149393499707472665284873327645320017501156156425252296571551544135800454604502520030016408396356831039363621560977439696514140975204939973774808775272807944242063871782493543674874204278801789061125701888591956821582520854495717015792475864324114888595945330591437574721581817907305688527483929507172697517132153849505406266456164067993281326051502028255645010060365713409101369575872588802019202615570910092186519731780911649063838830672689006461355722317618066731179845240548778461617414551632411505105134804529907719069763478814016233707071792090262936068804562223211271365670623313002526866045757297682473096700610089792129116817033379455375533929891971950682480247725351587054320627463587529704849078848227787743084922179379539852043834807500790734725364894167046349594587065858386607574216723604971777715672466238223701376580352504331742415600953379645439132085863246885637054859008262164419414872295754629486010324700656959515538793397994856764135585342602331515617828071881578737813587350791371312630042283092428968624939812974087492307656827646287639973728528453080957604697253045642540740301274470424927543033316088030478463820551251243467172053190091245449995227513704076723596485116401453443485476423003465727567031150929310270001606796317173414660537471936744157448497545994020575241733756120348301302586724487402300820978539219569621858038612693835717350358583895844190884747724743530636042809859914703939135175252873338879053260068967662344107358900075517168307288589384787714242678721817822098284451856819674971389726546846688127344724789757277057273487775411937980082057220186628953529681832199128145431645577936979654191779004065638780189528608749392730001201484623493757567112283432069886222489640867422184344665145616044431398040824784135643179145041603741202973698155758848458381119860895982154215370265481476066019651990498853068263106706675006436825394882823429586163383867759379949805448192631283778256742679886823759109948778150371514949533095282223636450992609915218013015382648907964398179472908369885724381338086173875247741004320390437174085775504730491494054386038268258272844465459682351671078395797610614172297060465815212368779619390234761631247891241671649834721538185487833865170870782831773803223874512831942075631265901557022452380505649958418967415781337743439333965209489357731815262563597001529143857409500853769213189500585678853456314379891364687158814891208415047967243955348839942713319987548182900573085286772393388674455193720097302044130661599711437916504668188356194982696987143474929005944695705689093087279819003286864788084000550351269577827051154185487425033464142391264992640237940096031129426562017168134527181140283714171900012481928212776002775705688280395658243061755319333851693322260489642746998832671861555848882676224650638661637833797830493028443107874068095241173985745236573122093378601985145819540831620175560052684089017007849380327594761594798802878241711952562240794589463890803286262156532057967495454713451082642504549066473122605618504668720382550182454845876475298159508972340067724345063112210098261379283612196840954932301972409814284577941987186889972708534895806317454805540683669547921881431692847826965135730659363602841027682819909257474743454585261599070222110259902930917660766010918823272404560444288517915924568244907946001801178096933440972050554713796493042096748163724260503863052734196168285807442533881736433134972630686364559316112206696001295053299516052030627472850826852252408768337353965346951130108123411548021353832516030454536639090868443365297082862081036921717547746255279443137834192040686771924701522675244703158528143789097899044297174836843991285961171082172424258188049002662433807738096834487155239335009710798733349017192998323074205708765935442692677006581438987590104003042694586748070707938391358018820029096628423144827232002578643860345165348114587328949917830085477223606502225492117929501569167199370271394516662850385366097571128394740151825764895754652823979470595153324511763818375440763555838827609595820690785742634030539753496357595569912928698112344142531667049987220695584952441168505351225749029781099935700716970635327258355874657679255785211700689767049904686299799043568049651980774216560554281871759391353418104537387790000147942943071272035542008979341458907996940199379778453067944984548578774456969128572211566128798778012054142129889107738332643340473382729155727932660682349927356486529969180714601464450264780868396934910768056175568673426608673908533762651297534703896251943422751434738106332558529648861635712064686469365980205459280351116122718700931129962088681683604072890369374990023498357816903794227280928405504218093799758575164930359984897819133384529550423562885001480804840650383116456764651679748650662679357884375776412548681298460617249317055257467702667896232427755690037182259234522935001441499052385496034811232538343304550952091223477859955237736243407071698085659895324417025965757824590935828770733924865296345521342880320085154299329281050321812396405256554731102642841985960740505617889304215117268601038681206047471160693633560387220177332089901778044571511457622305733600639941332987926838076593141759633712764061179863032769379368015907499001246482272400114247085742326136465431280746828455619052442032851516433894798676410919360326017492133713108783475137981971116807042793582171032544054033010051931955995765087034042472207984578687048166038285627055337632040744865182249078746810582043725966332298809281306462463520361490419434829182443004547020505848575631630155395318326074261173738297209269022707779017164409353375282463775361053083418053843401430071852731914758943476572596107648665607325862036579575023327204392231073758871972887585724263265107851662894639768852122094164060485565948481624588055628712154028168097919062642485272534537541882893041060481062521774048182906699343643294305604830102408814798697096111352053554589302450617293151827046085493197895741676024044836854218903745412505049038393108164073362522045550743224918625073997875353885004592693478337044352343746047879805202073306039934870604712622379092836550099592980498346464956986671224984362362308391556882828632279047540884398652744545452014519363528493241634271001066484629682139050955297598732222572771097233749418435694296330659320527553287203892601423054464598229409561539584646438374757382608114588491027343512208061003450712140007329805243867770602546999066363889799129683997293349852481747585575119039677167609915742003279836663367525863281495508158468032883156870084949993269315838024961410150773223329554412859831633951221373600612341921269073534140099546977824142359719078677509693002481640785185431126474602480191988114528317395324811601262806235137203963479821308443358891265896687061678890223681307420459868355988206433203505208623123723284115250996089124523650514078681414732592363416647228471913688230656889545071130696143411947567677655364040129184788727539563949931098936054924552660739960354117998240623167501445672446542380806985545697238584509907322322575947977244456487550695069564551959621956712457149853785395266213613955141908871494579781042239127796765656106908817447342549137069574621757218049458997974420337292590424956337350993743317139083400261872552454085865728876347793925687926199269229215022644125542940104081202351868173450974715219758886540574660537614845041803095050117263130002431314804934414906419326399018779931557834827024565551593904337152241737176287057995072636424304035929744921358912895547110910459177968193077072301168641401678415543253519184895132916767069340905782753795647495335259445151163688559246650062314266069521887729982382186887225303082214750296198385504406473857747998943045825983613253383420871483988286672907289558888810118842191996885512253992212462511592898177924159272777177055579289612092341034541160317713845012922013769360700042680587372465774181366907355590420740391416994176024834603201687066982945865557287056665754444274391974189231928548881665469728480054019458127481817365410410672188578465844942642837059023285572485849302161983678404624475919964009882251955257116353919338701641716809960636831173565831983911539651667727509717256589149999173896273383673928333048265106565710317700006684353059082787424305568629056346433555761799692607142479172996121737745242759127440878026249131039106564199718893248693779065102876589216534778821587313192800516013582888180324598528530695054611499306648755310198220275631441471112380187114301577621105440814017415807690859131031988412989338207767491369089943997390852955305957101557993030661157159484566716437809536436651665708540180312793660698098179360517128822586199435911113080813913276496047553189666916931299848829541370662928143133762320003028614416977351320781543009052127923736989700781295377782415471456672182822572680946412592518610189125391328647854352286558889512041304781482379467100516840891168296972026265334078332893778304260741956416479119345504307862252423763760202816384265577322567574645459500506291799306681821943206338812278665781755052489831664851347160439442039932764076536295327390810669550302030615834935729171101436269948061300105961710649556269083555702602980941870977189745336750372958511210200714695729626227157069788749516441579485463585086180490926060490607228226899704204330531010026638683157468835225925164209144483967165669014352125245454568850932234973261459347559709152345125745297345179978844630779371602253984103062102830063340098077915904209844072239807076184470835728182683047372504157172454446515933751478724788233581698607066178211360425004927185133294017063432738860686878161433061460261968689812934689763526032287781180679833915907484594431907042314854076155327876604327005193166611308623021364661389534831945690428873048167149518711689853190521250497201515739149587797959971646607762924043367574392430510722857788837948072961489208385174110256517672180159732111576259387463200791858077021831212490547053003730278144726042948373066477630358448841097631488788405361126504248818264251731875076473599803684493192295343425717257861408855111545547738409022554281752874800594025960618851340559739407741224308015062361099893183559533797094242797554771525043543113880717036021555487958442462086629815692330059300893375240539291922633236661408735189292074883863545680169550772140596151602125383947447426085975330252761400498500257151217004234290269661038814751440297555887298931840031972488711343971230622569014330997047115367612414350027550331647544006382386592147816649622345717074942988165329631464355070444781329608583797406943197038478414825269408280797710971427280239410040519321937011362155236565491669006648487861899974471104487044256930608685425408321042866861129939047777262783085217687243385800808321969730905887158392537739692627224600152022517406109234903386455178486358645485429357764060679793808046573388615122277359951129780759691948531272915361930052317241691027272943938214627760057575835909056213382769864828969236414606545303592452210039977619338271033768313596339973853768411834868727229807631148160500496634110017392877251566933058819242576683234761150979143935427935394210254633899717735403272852620794522840878881001497585009239106467648559426547381768709652628599793583665485863481411118661057281550256750397020142846943598964873259255962007359798824900922304159950399880667771301081956536980493276623710439837083665538210066133370633965393765020839726123757587689861879367510518253433853152962465675915029152899940722835750111244119984323599583930932429602523188083379836012086251087988510331337794370700768434725791094936847231518083449589491248462191788651771580244534886532923975040947246686255032308017870327035170151213424107510987754044279366155039612204580854933219580213788701566247800269956441868405981833855645520843112008121598893893463535113160747991570711978029276419372236799955076903018151500502773606057513560224538198770363978051428992554765699406337623749238152792659739947565239432631364512934971706338611357150359474646856253906048197989221089438536830441606617428906046514064376592836353558447101613391115492493450004054493080119417560856065022490547266246628234463115142635899804404721865613291282956789518207955807529878951117737748063925390605305997417643083974307138013332777187493741272771496647890900511423674949833144171449633899098900678696963650312323283294442324340174985534063509862311144900070577407129588691925557340830499519240521025942266627365726681186490862129714129511424839983356398864261057699962891694349479951638106516659952145165752517979550711598077490309266385079165022630494345365652341194810109617477647323619096794574067764132520945976226206543647053061817372330512349849002831558454742887079091268925554305146230521971390403291907110263849050870619348181391934944812741563439853903034368966552356239536431459313972650489961766701991033927714264618739574269986292270904630356305416019588849328796866623413661206103055224135816783970878037963921324192267932715709549044912761330514006010334517731642324164290293812718432547848977233713957925213215287033798909663994226043471970387607093825060799468742022933660243722135254064925630891128730432184231169075925302694515400859316514060591295754023342538829879001551884149853393661006949312988564489135186980822354646388093642945930414924768828754323008619036730199728531920137842213648900382663619396374493512471109860238107339055375098581763501970776452961541790834319531031019598225371117514917777410353106412528062270756515953772790414899299338259566307754710044925639028924733137043789422118745623777474105313047033695016005371972815092584565154547124074943888867138672945925903236460779296641980585559690914535170200264113924461134041153769642831416156366819069554705141712874029177213731410037494171697767157476300052160903643915371198814650550928196966170564137416903410318315507247987133763565851103502125812378341416977583110976213899786159549015662562469527960872201634852622591989492448555239381128220025490870182308088810412530991444420320671501214603456691703103254807750555847613731302835550624021059570567287605694447873875689549707536661080366686673587895712637448116901374502054813021525484357019203535539608593679839566594246284214005167777485991292859750405536019303278115807262814657513854054738523838040586337857128207271394840389746158802869006134225636983975752397678261757874209200994841711536933977684626330423884672739406590049400915649966644144076033575282196995889701791346726077825830641408019902586881820365278383188779697413204901992831315795005257488812266830653099753495635160198263668284705036904540244694501470418335692620576974495150084749856073490937162671470200937800434779914229651866991701686695789457640562162427173908916077241635076753067361711050106284514094834018444458313390435069912772940120461569920316818714804188872768375101580792087952044684725730581991602289395782958312315722277026290770539486689661173467116840207726914319881514793638739171918754509596305963298173247784497999293556550592571173951618784796093756623843763120410325043761807056277231887421776866533033427505896396606507041714133344535365081480057456365933572490341663465828028643570141993715295822530074441172492356556702098256914063999313158470692650399390026044270683906185001955208599163275894820519673438996981753598195015843934948992940788109717435650567747768167569273799419211824441393176066320371372430422401811581731589216473254941242456308132452194191624461776138712228396505064731956483248993509464007925824549586490622241898246756715289966105200928866603015104642491838734135760646372467151723199885995494350193682771517308056810287775671797863027568831556912765217360944481509682893235853183958411719029799371710818814890619482268664576634403568351642378647283323643599337649889758504209955163969199025074530666687617949351679333938292733949097110099924781697620862669537799297043182911990638861478409404631549410838849970356208110100892470844648719003637899101805405229142912406128151396580393465866628635678016184639857317751270371984881900306887459571638709126210472176328131427478897157795408438031740429584058975112115180629988371372421483293567354574006069964314970858999241802787088363598150775458296508077068281908995364450697321388505572868047465982604088282142494244544102464992814239703673368980113618746493027417960263591373072006393776924404369872940640415136093670438091882534289723166462842131073441463826298653188342367083459025242772972264987063378304688517414876884883617408383045200640097516332359444086536749788934278113820115905300072354013039848761514410388255720843472902064831895727264115957435490465738391752779721214626892100719478520814081376329219562417119107645197304623329000122122333303998135745099343888177882659371510871742254748611527125232414757068212364787330379576946713061105367554609165005230673931239527182647948098410818554884087698989000570774690520782369835304448730953459535830854190162224967489736368352383658341764913569514487309008681231069841044627735379999360419195299867429491887543208624201569088014629999532108570029920928506101788982905731363632760048536430047222597126987308406002788832324825642737453270540975803430566259326962701637421012238253427740422278564955723601637816271036941582705272804493880221674982160469340298969877334199188096100111954513782533162990226913633780615839068852804397626287216715306517188847612571346668317802776349472214499440978447417480928552451415928120595552658433847316629401815859405945629289928063001996367284050620914375445241636742508430674754901864957748804942529704277178358887902126871484699424658663864747807998206607748527373009725834754618997407815049153582303155140955525046424862372118528591910656453894275681104344171101458436727179159881061154946476614271589810084857159363023601380749549957187883433226225737686785280521692366639706327295985874711950523498710846063928519245606646976194370682047281846633088276294353138291209276994042729179928051543048632615877141790893288788835556490589939943030204591517179471026365367526811821883148660933094878454911763389775898407135860963886126244342438812290251911315466310506933499022088055345338300634509711572119297041424153756995422116169125748765039801274121496290154345012810832273996115653951941390485179918177756434471977034366906464719488963426656114606552243732843664576113714262356795729818589642295526155708542243543314114514314709645287031307524626800629501999295494508301705488840261569881150425563763260208613496983313799003713324760278005260507180469259793490937726100050962898471008330641019358381996481808344712020252725991318941219492654063636705251850335543372489090145759411790049932656755776983509765220078525653115176639287844752051341507904783231807643940393037191894869275022445907763718092360093117477206017610595793948524034379089849402557979838882125578128704837943145067820521594819685912028560227117533102036598859209291965479097409991048072249726012935223159880297547599486822710011383616898016728667285920228716365638550305270366414477614993926301338307485706213231206497477296328526236888897627987202671415307566178702021765691779808394197410380628736322802513852134637360041886360004930213761261310103955190261391965090086759789201933736998982515109733377308281670570546692296220743775331823417663701110859105622797895245098726502754922012207674215366796991683783136348856557438667912996997223591762701105985609864752905794900392085190637569734897157305936218145117274388607963297629276290862182841674326405960602356409170428839958997195080973212036442664565606813632245712230117532921785376160333541836208586746484555434994643474188771818205288509401685233338657981622880635004214406167493695023690267467557315024261877539520221996707075150861392443485219178230244153640940556055677097613226591374374501848608331693646869174550660985356338970641179599820278553179501017244633876421608943123883132079028854207286498162906427799592131984026263759972528807302409786282677455909373701277000148699306942344896646981560388554357647729263237491987294779008071209259541493657109047703613194119340113997480798966525773388004990630915577077953058512669971436111803268951530615869497228653427096078937600702363867996061172841880666008037833277994954684913476936812185161414154335423207728183491552047825921618023648654392341546090969895816931449674438099739914923531400088217141503226328931489611858040639204922029736601867483291577620110616922289240109769383307443411378231088514353734672998745982067106292484051503482297521681800232409170029921829627836220371123399353391124814770827956308849286891328721862456686490662615896749236110610395685437120594596710426668420346321730058031781287901902218122333475924226941043115982008110472167984898066450963094700249643979903484735714099789586219112180362348206328670313366708940755605746240688612613930475147766605243459554040030239986054714671841350998652989461702214511259175308697363813310791808356137629667832663854586333859516620493105172354647286156037881309668489659451355345076229378883587935970808170926314538913578951894181798019874212801942195530327194764204765507799878361997515344374409751370027716898144684499554155762299412214592991685838437956281302340302344028385715227690464101506140148370710945504602976902086323156799107349065209427047055908621892259207940594033456655067001020756081502803207293373308425638726522465981028006029268865110542020285935295854597796974134805905612496531438434258422469222469310729213908234552118216207202627627558429039490482995133816329186784816573296357490706170999577265059885153722487925778099241612205480413363820901906514536122502867141275384172768845583106836220229968409021806723747973261096028623972570754318378250672968949945360305286920844576174290780798666219512721121891967107452688426064514756104105786054550979889957868480821310353884349334419001803791548984657361057443143799183617089286658916424595920174379221388027793664142353104710092454748584708110632630907364289816091434223786790846695092679813098428781545214682489653742930728331060059709926660209570380118401067416825205123397957127856965754064429241207977976771848906742740445090905674606507827533604957740663401537712129721929560205955287299236036487286768023546510182039177673733996436930165540216792309462700997811899832683424270102113512126941294149543331911528589307661115902416451064302030070393054858342432706836253673179087247329962214756900695413861862852781718119111709150040313824983409568270566037001841772479695661482044046182218055060803650781289392688375992106091381506257115013204732097786254010893376820868439435251403739609943125079791820704680034096507769912808908151105371980956985348122165086482535750133209872876436777801442179552916236745144182632261094920126484670791698744400099745237660418684673142245174764508752110672709912176421002379786844403300040529482082738024904316909148296692496173382927439126161602133094487348117799947818212183074613244295087123915870265258804651973057910395870382491955900580396842409701295307111452201107177344051022451493239983993719750622885016477454525688496354737272138351331285741848450806852937419150692785759117419256489291389724365475339758227781460700123943057652146265089295293208028792610378211804304159145385678976099675077450413215251377019676406212718626543637645778683017324942019245360326627898993619837132018323880033035970985128546585679644503251726852952948732845238826291277979376798056573140028581613051665781929151416895312753387281410584021344860412643808560389710057123882893130338846353020048678234255431756969396222276679731216378511047983883000367465447362877449840450910104423569364216879622824967454905654171481512418809591559479024476188791479769787496241476503824114035406983053380459341392013072218440072538472412958214536087498696748518766022324483243867333645716818906944850436787534401265094602463017779462695939811040467144752802834899820330993837028548940334087900007849722448712220996557170761993435782423992828425273750875122669750595465092132800372874943337298687530837338355820784516575996993244486626589322068011463854481131882296328477326791891221546896835948973924092912637518377746966369686605041353122021924027901658008820680115212047274928645931808932554124576101292650632693986344008898136723897814072632701509838304046993432389202168297201169382472185779582922741734231514383412825926421454014972757598543468874946473788808044728686598800505242619169184849237952936285341405537608986846763622640989925187921503130381808702600745166616924445275797671230649947792796282215837972068065960015532814833951766868745544892282326485737368364716789250983392087726311560527197028275488352681688603775503339359520176239600635132777078812871173972599248207391422603928160753946207825591606482638947391246125433211043142812383985045867846249117888314990093234626742899544944730811128377200304380947926110031322370066986443084354174754666787236571973162807112648913979005130065837442475360233255051441171960693372645065732868365337617814837545426081047037426397537874083383473117706636664711352494303668262698433589368660499121603570040642445047445591032439114108117547789908274704097872553846982452381049526423583788151304727984101245707430787685637008912230139662145179181592764042741329744153740216924919895803914930038205534172045081575731484999785463378978346257391238785133818061278499046871483812980631402162606781980839178912031925045664589853412080300677719675817890460450927892254209991105249103207223104065905604440445514055507044562165555300917936779218067275832869708914558837157583186954549495748167397537675139598685805643172353955542426196158331659532560462642291110131354131109482848843714713852505394642727534191044642683746940432628290846830075500375702716386940394351452259164169511855509852025492686186575215959678487419678179089864497186323554524835562000077660265062615078803689453947990248746327166309092394100983850690627802531374079992903477295692371354819296200502235995069094160776193087256579665531610447195543212725443912739612893337087416821081973414781551338148179062865051634200226531929096729167986690958339875928949083409845991634641251050458557830949752556741466430931852330334924723309544172582056768872201779148247031118071235195693141132429831412887807602198349566676050745261531117812423783264415030607131305100876144793841811544344469296172718555289085940987101158087210880454581553228723583239553551556962945657597465053869554592363157850675231324862531470153760544136399674452618203186342821508406662802431500066955636742557288563495294530426736398950361310141631190688927907030525989059115536066348209464921041843564702429290126380898208124206640500772229733643463987593139556663859078406201725048229345161474866708324839842737176439898616631682609923411131037031994557791404560641453610884023232538733251313764140186958464741242284703393581056686114863337571670717441954006877385390479240010318858769212620577883789114514913226682810969047528657558230126021257855673017450376645811150908257889332383003102586018876119271001635762681388169205691811054631328175832378217920572748721271505374819770057673942432168698772424104217850866950556608236267692531251306808514645872286416063086420611146080429935101844134749142911097863952719975911244275411697044896912959752537559316786211854153170862100584079279661739201197134074041460022024533253295378281550157755551268063703837466370107025670612155922277215508940653219818018479099830536198713231267699818627931478808066997053358450433190539969376666474868595354449426609507960379082372145671980455119686192404299834859215948433026752126422314876038747572789046213040614862696440655551695446450088566530267230641679971358170231970592061816023413975384750282184715112454484167979983650053584629168669026211056304168993954591400271192685977941095412846559752488011859891035378548863415344880785214995843413815312540431458414457926994774886166264626071147227317527954059876288696585560811990576353715140671756926784485165051950167074120196179110343115661445774783599201278760061381841682739744094029944116034231854737288435738213487539311348581526197685258089528604092064441146525886594181330718911735934546539786786320918439499219776043713212176251620832171057078613900884526474865630180267804878517341987792386642983850469319381975499091227442191619403545060401808997670794080671411406439625337659521142536644764375784943717353308468831468659441770662619361986231915451049252306368266667633490664223889537280344603664047627093001828946749556347101526940230261225995094204101962098215845760829269531047365579320340438118457378283866096004624778976541967884346838043566042854530543559467240536549263239873245526362256758032529614382987741156819893285016567029930635839727337476289646550368399053257085974977584477475462832483011709531466028962186284033120008943840534312804708902189231366654603686214803668776486427262028905607395964981012280703110648312860714956208558430289641451806285759665167270030016772297897441682109574871025911507563147576465954327270103529026614190121822280732926128823106255029981888395411290515838279026995712188398799671821399770170134565121936287418253163106887650679664240533881932682610644751773409406920152018765101969308604815578710804137784004704916800981421475218733277740852941464511368181455151538080557765600785908284058081077158053849497422525098832681012534618469014895031432400358646195159585567817794817047955063803898438125548814515942553824845038575406457506751273144515765031997661534498068080142421765049721414630987722543427294202887063835082831223958966326833825461158101419170614217030099148976609161751771624609459894706046700832088057118530742883077097584680256586516823136371339545849442629449217085720462789060817822913479412106598349538247605962482534719541050014965786993736206196475691561679438861267228578939650542589503223987282103163931276469867132307510458510159715509140768570921080698961538928450700307350666736562570684524296384028013817972518274336899622067679541286319026132044802728633580588269747205159578519757124637206965408975358680771058701577187542120094107149717305129769555780366025164029619099630493354699209124500557712044637747520645919477654093362905853299213817910732845263938161159188238634274628699320142130249823647120257522741976212183758480013562599204639862392736797116143310891708030316781547455291535377707409903539440992040182944406188969869199083286778682481260918901131681034218089694514410733406101791540490282748182578012484433219671238316136129913558658467267117441160953317391662440932195353527318865966122657258412642676323208601221510359600305779871942405591192362434372290797117390334211429410448668179004603395207109359588054449070121052273507690393567956806359287976336098703915552816351520999003992673666530308120207056937695040836282494866043183241537790405337248690393828590762431827662058209399707936044024235184946077000463340071153360888537186330723642121318165840222394924209094243033635233731972779386856098780746113718123292904307655215677424857293871345098830393683250164406589458134398626473433510043468834370030500353437353462561426143328796930212862025140638006796227743802342802484300743947079072643119947481611432502345087294674047765282632120797107751748698114798368342387030711787333639034421625229145261758168005658472053804001456893598856174991231867225113751121902641624063643132428667309951968817864639875506593327381971252727697680663826262829802436660728810084456745279429925380747022728962313156639453933415585521839986091879209327928605894565161520674820394475876152645008231442794827814689558733945804125835185583132424810334771227432842795421950616055147812390436211080473249653631407184051074479443108248629275258152330320726292819025990670102539964272334416070200547828707616745261729116334300700723920343466165910139479190715704547360930348867544448593793510249484513353777048770213283709114406792567875971276424484157808310880986678487657202644348427648187912427719814758621583397990636712836641320059224849725883655726465902560032968572205397566997888875673610026958639370991507434677559951156973564110592622245304748839406355464950275309534715639484668595286295553182047145894345904156864760658655800363976362575130421488140990819200069311056943051892265045690257989978893532141637075816248632915532180628402112349723347801460648382119116532355907200282847958634975060245964966108012344915475380148335618253005851201926645662674093158705956746919987486580114916694066561929659635909970402265854158334387015914734141504917043633310283866645773832675892444919200345514508822741692059726481190326214927227973920217833177268512115893145526136339700562516373722523660968089371104446092248438916610253588203871438402450226991832201195609975725696837505149497689006450064225516544473341535541621346508427873563277125737537604724037077554470884036936691992181571860073667059874497453481367463630069115069237732309796033975696830889386822751302255155764171781460452375867407187818447275612383529024896816899144232968766979505732350603528266784625626938445991762582493693193597860118805045586083379954218181236827091462609862461884245034613740125942391352500596557302408482413074248857747657529091027703600372576576874727102789241107691532533873431287357817001205514671492660080887808939872608582058824475710307907194633630689711629030198484181561851974698117087928625986064157277202989475760373660370689738849682666234144399323032534279782402295181393098835264837816054382064443967940086867845247662986471212858446737643368419478840590152731712042332045571457052963767504253634682158380165185010208982433062220062312287549344699769410755804230309757086752003817968211814601681606545575405293513362177419144549455242379227132356008946400971783279525546296228755165946709972205022779002296801823083176713109085522467060598906376407583688707432996472604148567458061161781698876422879961639820170296549111498466289289770061187084784176996536515903329241801720800358872728287692287147115918662445497655158482301573551094015757849397442205488334876182311334546612678581108908957332743164652760363717835986278219948651206558613539849919955495976948432708243427993853702973382652471901136909704516163591106549824246448407500832063785894880537076490095516805330797494045480202165926227102570091853308868664916794741718520604420107428737677651594248261803234526531457951477640860973550486239450977557946784436783889571833046124756929868241212282106895905374203980040896796260852051953251550646219914526118591013150934382876962391072033654235786311138799688868684466099109992180501264978551294336521160273981086823374278028522461233773111401301242254658982509316780833829632111851025162016733664189672598320063234866516787714570373134137833922541980074741076448364806889085346223970525839009305337676642613953290935422502500600835690406772337719776292216560360353030104854868396092034046193897915556882505545896980265582990109407360417816025654754470420417101833990931680617091258157154311701740320927526226402004437525262524326635484215470263678229262991219486486457650637237064923638156419806129473188060293378473447216635079211232223183437017283335297729425112483875776710661800196027998515329456626777360475216197454282666928252590921624574405441580498674640094285277578686110624747005775224003567439973962660970470901631595755436666644398270570285108676293536106698316335962324809711184034971238543773001952347611069093747305596619006793182955530533160594039386715336165700782089870102803425521867039057710050977439541197376548359856643182972711049190307307304392279285707672106667461130762705980244553236575821595194049144751763107050135096089727951985838809377662786612957887450354798349510671692724325846991388315546140300613390070103403066964828583369235777186382246423831807948135811391489550330808713996508293141605425633141931427637550604592237478890795072654396553529956352376487479126531330680246005122523144305871290630235603730037471912591131995780847835425072597245268575945923042407677188005511172178591753483151731663642280378218219348675414619350015695606528921075660955621593510836436602334065965251246148554542220493037530536211981908817017788469264226957177803377586830314390290317579067793424515610528564184607121958192896548630707873272778857854752402347313653433974354936176849610831070524297044049111072259598231758641421707058637943273334207062021877949759804779848055003616640796747901141274039698687374971649919455776495632276087884765032665703964253139244221553647973379362196975314890940047666944052903819141563780853316044687081750253166014215048627739827988510487672076810334938018258177303426297936338820320578523717705357443847615833158071497429330604937339984260801191099879276500397351242582110547554966663438064742200480441092337358637200356387849505120708806270714696495898369789986729245684265334505321523804936635894721729143628094629834806768761086411155095661891950959460641314704891054728797865424953924857341973258284071132965194340314380756409690635570016490100264613430262672473831661735271139147923954732301764021250934711000906854224543957051744114188586783859441391530457589663210917356345387548365457403489838881925422653089925377127020340416410612778546154244845311903479088413950546588915906119647401091037167592390730901899590827383209595115316641567581927340436858877926085858384984992736582563567417723373423140144591321457474910346889321904053315017138466802028702282719555031161167754869509870025580205768898438115812837389905580169437045323445067603731016310404451993103937640738337502034372046891567333226617380190324211665869530254763451183487235518583776438219146406381682857893127148719302744239141161345899013727721330153982831660228842048424468370645424763606350291430523350843829511806673020625771610713162991345595834111955245458449446545944921747121051181994989632386121138412379780256194831234881190749697689360779197783194132110250906893931630993356060235623576035051154263168140983824858622279108844952552068489235436932529024281297038390413240040160842490392413178703369509441534470577225830216202222246310695334193788102996211018889829287518420225259488821196995099457674669401239579825828046108891285870127108801154984045813971659056258373289282571666592715516973456354042668970107880492420428058852778203384057895303235776913756519282637603153693768299252271810360268786056256865373031214443666099066227618218662583492936302671392260336708991178663048266813665989062850946996742772009580955633554837012095750910903702158371473068670480880708005327584514497778585744280962951962199500263484476616127947478591039468853225017055720589517476268847360527877854716212889866234332092706744626421973077540933069138102204390115589413832418980039932945623271681512421798578994782019700500218654371666001778430569143131728231344293069935467229633190924284018016293384050928452823075930515939070056351240800409262596658401807750763768249428488025241996120713307272242699069814821051349328587305775134606100715866940434188833325838270726539461429738566010117241017751726815126576203347350298199629390365302145591879528073163916243487823661299471710442906951165390828213682517863346701744995040259420998129831366584328709053567182153235501771937650938494204117796508316924311048121936032289582693303147016600437187335836113504716460750160632758305832395768618473666825816929868710406922773400498251480748179523383329866464901784883691468399472127647828187664168222803547861492456988553995789629914004526762700071121012696155039423658188379257040737842749982860203835172682892563984071842623403352216956790923972860698895296362347548854747633595520265743744691874078413986213820888627087367534663150298441242682058202796787656775599990130519640557114528594666588142321406961630255673823102843190131070843147931587722315093829527392621190315657667357626795422817431796740515082765849491147792623595889722165152058696367934770484117408973562709827928385830158610134230389600315410903591835137671250557045620906281238575654288267048538519555788679409496049615769124108604557454373901489420456414028958921409136079643781167157657169835362068162804125893075279124732639037569130795928882569891746982502859504270364003609075847145934829985206525469885297602272818325510702118528717004040772582889129705397685591438159772816882015851217410929094150264232304818037155539092377481709798235086368242429430531201738597435958608159381295758654200197974899211642363374262240295294533198183545920084384771411861288939403682575334692467681139325500855092809512756798736997258022557901975791486859887339087432163145358736246361306190789702501931313206964226586486709725115295948626719827457256917957531722805412903873320622974241179864730239535310576660461042964761324700741923949148540328946672149340295191316217940240724679605849028794851600546037842006972496041889035295403066562849020692992364843079146246088812221663061711299702541104143132321779423032316044209394612411096044911843329976138636764276358520982197996763710186576067955215357358840588651179901555591185214364410840591353701372891535936429804797791401210633674745451453182844570077322237808469192734699907130984677444903658434340215734945607509483308836513291119937518182884182117984289309627261484503207883851017164516284784553163727137145712705370674762422495915810802199127306047899490370039154281363637539662151299753406997399136231008858414364988056913771557781720683399335578657576477938935302703749625528985128005514283995358862968369953546415085536154619877111409704263624005088529722132828307972998257091434543339285130198037603824274280644972207577172597128724301709898826347385883953637251201315494734699063943040202083471123661979316211335911396786615350180794751878357161206156535096625130345743519343884102864972583821484224947993450912317915832411050650905863798443687667394238550134746263334121345340998877973735219246777299612009770514639669248619241441475322512596751911849487020231020830991544425309775884523714294563437689125717005998850763928954501355468902239794416594480325597541203973401725557728212234526218595566320634223834168717990663721002456518602804095878119162478741748896329968818743751552367586233663036941594923545925273884179642081065453989287249850596547154733184757548622541000973125268028189460559525244928641623679822340871330700228885448420794152037810396074292893655675393591285406837825991263070722688212415394169245250998342538770050108308720342184437429968957697419282456490089343137878818224783957252705544835109873302590926190562384379265719716423862747076966010945708717467106269489069347986254241246867763635061966137893683553775118629393246544931316261390190866831453998374643108072260381859391864717715508332387740479687603447771712529251541862899276171596554438024901097793657688694904672640081102623443604742686237111637016582080679283717410077882494050845564650712686835022794412741552206050182076173527008513276473383101005181787852344387241314903355376352344939813048784135071376961695365291348072262090109347918048684698390065018992703780249709124307912782845791269127650351350157030958778931577553244722998964808388728057067326524400320827109042162720225859492403509157887773952946582600122417849825858869656316603191381629538293736864570873173666417191852391873005646572622751132053810625162824628062744968361171349954965375334802484403159350154972658486290391357497008395532512842512748617479153629452882072973087637885398189304150031552532972147949336280675046884294466511249933506206007347882521660119137423423722868817237224484946742034891169452380289607344194409769789522508056229783380788292801362001683475831097123381757765475658883753626906512495944170862751132279569977931957277190375367225079656432160143488971998624933152307405333618379930680162900707352855854351148923737677633136296873656663314676184193365184117123846922855226868900307264338633664225086772889595672117777798402034514302126615280640177041682982642437822527887718129063193798557138255338687666375112909883731512748032339446759964698524832948203709081431179418016532251754318931728258592423710364606294163347264103924992889527548442637937412620330837900958723725949564272601972879283600271520737918047074911011234267295498233532512259992786298509830007615940662267632416046818478705491861510454620781342869750385215517938905342193708966853421870956347517621834995978431443317445735262972049424396253792535640528876932826800793854720693948730902646082532640536720037358539024774059663203964698349511597690005710121660835467660884187754126456778671890244256377223781672773936728950899595407872107421430535977540576612199483882663101796532646747250242074330010022589824806754512998302538033816042990721020565818211833495936638426594384261085207455795527651502768652302963965937684390050810200254463281306081662898705221646687442259058269603295798618418590174152535095500888886914959854133770144876030044266917841008623687416925334371865159676061789502993195659453129920647742665003972675203181664774165562659865849975821907770375176756239405402484523631710321561506172248871089567858384155988907962158560178767063739459580990551061188685541423589882854067658089045542160839543618355134274384127760222366470004279641499450843831319037246554974309693983093511597451530261186853769212775276132049276687567263166330718532943631088137930371451219799907869239108676951734497641042859887863719674322710478292468163774987868485191855548286569293489177406863920878836126629178147812671940774194733859632692126746088176188614187840129598102312582312579538425343981707588773697556643227987180357815235884164133497917173974292682836295289942496740125071195644627511126398851857614675851651039944391287257840967447769140669590365552734635475997922113000845574794301706840250361766673068437440777251103669602536031156085690624765264730493051257378141427977290494065714597092703070815581095068222398479084261648046396114559253220884186143735943952868019517508463847286210645324467891566588516612321448133672961028248276672257718111964195807781018475671717210335186698723767194271042103935335757759326034873486238161431961732404542093270648058532442107326056059638058255615261604028174964856804213062577048671373984021421010423413730157298178793168894492441513271586663968297629778037690134600442155564248299068854700596669416733441103960298017079172095372313950095631184382664360361739587938702052124080428351827334387215234316303858554811775908578778984787389593369705374719834784243263181453185462726772287975752345554195247238404014162374443999455117856566697381425254716498505616553927487134248148375712369766075586882758371820650743765840378854404495145846969556929314885276323287430375337812433530818786354504953372115343805979719086009644885979932683479374144067473498129939978637317714300077903185602714396929769587566226892079402662146010598388974577905236678078005942061005846097098831758275382813774698134900053910062125248828359530366724502051543149795192307659223941917800673377329423551481945427428396121859575318302711895240400623036190265597229925304050794950892263516491955492675909010567977597373574726054503597653438300719664344821152180666210367960570953612281604466996011177548850368116779834767034641258852745894310964667414478426641552955855387119916228433037503385165759945288072984561887896290554666513129179868531432363686966818871037676237482139355921562513206240105469875064829704611854085385422613096105225229994404077272583153203792398641763121699873876050793336888663658330462092077277030119138143448925379661975764615741415448020250322798213342868677197723594452109834069188512258805866915620553265817338886952725406444793289514436327336333173174413919872435833479878795963856112764468807986360670147184262177076429748911864082638882398827567709993352623801313949293074666706611579341743528909518979039579928098109911052346751932298039594221957383531771225611029120175009536727980831265817961699004932338560138860133283853176499711964334845183671989064048077370081025053356772417285338312081146315521618463325720759917709633015636821261885375530014492608207580600894972903116333912299086722519201754263239945564844260809196864900293984530476877265722469437613311584708023262074767314246549332951607951994483588129852036200360582880938193552122132403227694735308371615209636966076014342860063337747205803768554991737740090249143145940041525180552012505137265631910721610704652650587786286636069893549845780679193761358222518250763747042290500340152118396615369134480455123306204975036001501907582601724263103727271638498381247747662690860230943407409218178864824136336381471567360524554878543288990688307989771565160927523984194857724943996139964143669265329383316455363652403241540194289979288039209566971410234590453995405378675845994888086245378003569980088811843277802409920876313137868147695625117027119150385920784412596636816130904402870837264816359044668180492339317934108873025584304380051579205968448713237337609364750076112180438715262066834495615873240240304276741917614134996679304337017765059573830438246710510412840235398384188538417520169454547886127417659859768577765837514347148519569694302268759185015986397822313962227276833611513556787088725195751383431652003317379973172084220612831841754535080870267694947425820031739597904024920451579154599415485154104743949386293694954801460626875314278554163946289353748864755421093840390778739655760321114967128246370761237382464239557509729994640874175005706473615853765784944669826318135473388095973868684104137513264831884960694972150147407951306129263874441972554016903326544882648146597924656366763601032220616782140693300456021225901037742616790086255311242113548359835088160087757172905070173106787460603932475109073111891999350078508110627674871303403067075447351307290954395194904709340658717033987523941096822941149937523540643478071191971172600979305229136494975112829404444890655471458042603744972705612831987982498868652424143864143239910498573310812573181811566728964697099848342038867235076134250793751833099625298903157205492458387033296333423480995221322381699262227474576061030806538117066998889988664306542770818647544045187955798643057550819214112042761644524409681403976415196973203376949504027380696246454300466435176930664481129321851770580887757246357601696122704132253895720223725561002701975237364818342455126448610070929836297555720856797793095374371809913029974503253801929053850588447968361927750555311832360327245313832735216128150530804652428692147388951106447369384559569008420791662431196441426545344177363475232027103532944525361668511478296341340577380426059952408780518856672926990428793932670228265460936464999746085560131733048724422518687506410470223065779842913400917116995982861050156394492429635050909565839989216992675648528684226340581525874394959932104376184336778035726478171078283028353259806911467910998957947448972603260585409435975937381575702541881562914980247466996568252377515735286509751985436868035086744838902047938658406776929988319973910303825531385250449269660565497993539367873739225657411552426754998439157222223256425507674079997915045948608659806095440412099694759856419156503362226847171165277271753506239346804872532850110531528252286900720485815634337862985817471723209406276369963515739493885201308958198325722279625275478662042066809743181919911738064143542955124252340505553398238422808284315438522953901298907407703949431909952920305534013939400375739829370805007136648744454707534350883111271407971442814833077271472699632386412758239079048363888426085383237103212599765415076888731036698141891236040195632463318430694014992340697754551810294440775540123691605025960873639936416712183742941430720656361292090151971043917513474121258796105153161100049432501606008500524437118014944838658977865103988945419540861993234617502021143377743383351466242021256554469683867605186296218371267639216662264841153722413826462539034793967244599848062100152699958883802689500562881135209261061562566687050355704189865876605306637309281318030121234837348076734338523252271668683976063856396833837482995515902487752034046634846893835887700135893350132943504558839045519744575854844540222288802874556528586359314689793286456247079643159460430968065710642707779326034393605091373132642872899696457359066650734573021111420121310487904532938624787858580526773501216785815457054782513911198420863883491185541319314737920409134690150200437389190589343039164228712550265313210966616410103280284261971966536160804306794249635874173468962663989241048883615403670315228219841808860494557144154621187892199813698188068731869533114046478463780159306387303721789636953398070306622002567555767269474761360010453979090317806566214996166351638881229814531759023217579953024534970793317306883595025867973279290966610564010633255334529793248325684670359796062709746929137673847138462569462809491687201712624858189065926274276778506626945192027453538493496578836718279708018330767351659899270092717642422671435471414731145564042314026247183382360490730211032782946686612964554122355691999379203821997698463497673811844562134404067967405820753859751136781109666250344631160457939073585177115619065995179374032092611928821790383984748302289550398292538235908981892347030488719838388812204724232989339532962254652372990958626750563854796168416941815827130396200289107476641964350179293392199977819255316705760775928780201811743083502635162905920786890641875844321479035300244496758001024831798218971894502743291866455546446571271646019090912027168775799183787462003489239059485606759416543377229335047324505362326969454650816663477017281815825645537726434088790165493216249839101577219261933829322901667955930644608485448789321962148483715553390299546628278306008781008531835532403762076665743622346653458438763086053928462164331563091404728625438271299571827492565369538221286181174975681048835189885538673847004898818071286287915550499413127577209755890600664264467860484368183644647775959795028067343213825291182992940670630722144430224863098062213861940204670274446143600096151763288215679909360835978898930518788361620220892219280044552906094468408751073229749411501920531985082006180345456432366943509188469612077807838566970415897313878090089926014593088661500452093609584540230322893332104562378771296255628623530719130398818151085737317156811241724027805165946092162909115182059841538015257028512861091364213011392558085163571298815146175602855673782897335514412409207273570540623237536832656149112108421700541005043258857353890426985919039171341769525539708666220086077887074461578784391741380787470300283563736970030450967409363657659002913390028914628151868393576863606992186729256595295989735996434631605648518643968531253374202296932669153813105326854834679894938528562064333734105801663114362712075927508754646159266948014600496150407093668313905467051128513108768167453455875474299049552945333670439988848518742230154094163557192667850917590423714774131845547044739006346323761641694176689255209844289938550009503239452651840239709098831424900857679734809882519241488237579204194317168091149458444931080192202411556466048534084363187473113708707680157448137561069446066586039422961162456020210496160915534485427558425919864875140174846386825864357934878478939623680243866551676776190835131021102774321972949992683518643236897708537460316096891395887836071819464205213197539963805689239774424159463909923292247317047365998672940545215988431076419844986194568396631404923566753498866384539967985739091512474948011060217434731800144147803819764354086098256055680162150064605426131845578867555922340142519617453064613558892022425876504372461533709893235350639722312010740887715751050158252836628462956214472405191953446826212200856454250579985677236506858919677968089507577902948622112954803182790500103313928893970317991474624215554068948685521969309531576258356824224177479924539316245540320901093173632264972184468061041595823892903424987760635521592389076567268131271496357023075022255954318330113353872983268963902041401202757048463243988584443090113678856815907299520733653739948583280599128914257000522060899360626757685875094438521908012364887003627769436712336642121753663747086860718750471937043598879731601775729832251928910569255808973181271595860372032911895693024849777887010967219346368099007779790817468372961733516024563112732704018406464686604870821945937142273263222043800446044850356657705821085856199002430237619963603674490287656057741153857751031978515956673403147676045710012662760870056671333991729506925565559513960846395576306649770367636349149918736347820881219388277662479650593808139979899125727746966603676307520344800258099905186609353336889894207736070153656158155560719394373974091769650241990209001127791135862747781204681231666212504669567298285317400960058952454923631106561806692648752275860332757158234484223938681132426759679542038466616888777443771286007290920315956663994924227212697610631057377627600984926038838484603797875851855004745224238566388813422992988231797357290353053837254109454463840354374259487400078397249558753728907767651051898276026593745548313474577432001824891678811118979163550980512551437576761610436448540693008802629137417649166306452006459174495690230868885923289756833841627341775430730537166472772416956498637306034508722825183270683567369508433952283123326202827385686045321536570023736235172350735474589332180245067500097584450116801985492754181574965435847364404836552189415543067083603332662786639988502217039772253956620128334809006347124356784494354968446032085055318352254600719664407917823158353945614820657612947833778344180773386527729706309521764910817289781171210508486011003546429950393279894548706815117336591577611159067725135097257379689372088265252800344849797772136465591897742600520427422461298707891352234579759583331572715395064741459984677377763019822007950632480054716919691730059704448886356865902315228182777650447385231113887027828493221894450514008129343582150162806462638126823957892676054940600663522755177650217759918927076756751903286167797730561410326406778082731367853134652220752098878129671498821087895699630682408532439377090936948632031686983693042008780255422867454186857507286900559334015885347068174906313151121670150542949844124936230533327265854063970818142995443735316289998331326643613022713348799647956342602357039149845817805771091439853414686127332703677553842576296936902682275500449907764558465952291962958385756596227775230164494601516004071565679691270173335417263276951148102763083311981557818045155412214236958444411726916280828539343899587211736607391942443469922772705495527139840807440602613580573339605957441846748824180911921944824958653178641982112721628662714349167896975103703600601790621991207326815859485949262378635134211474129803218769077218798567988047661045623068478229535332112796300907525373983673516342821761536338869526149501832032803691389650012939402030603820645250846534567353358861236759211401422224974181909585739601524926819082545019778819426069604917738249781067685672705237468372702707083183577592412019571620704770748076479819641541375038642740297850377515704388954098569273282102885341876964285389536311966509375236875702632128429744588433456003492383197765302463758496152401440514051643547470740595154294106736118468840594144166578541397653937069682245430640392263228711295894737867066212583914676898524010417652425411619227417104228122740085166117151103949501919926341995370862290101386528741921866931125864758052087032386520938847605922047338238407606067384487563726068041296975695609285215608010185513360604376379741851700246543960464034643308847100635544835792346444208636910679778819005125486626470975973359794108790638968721998083246782545749036786426465072447599083267392915687163356363867359171214498971234227218597682508614239817549155163539340678395839315946446425223268882465724789603083070305337620231887418468275652959751677253901466262858507773407029237443436935421119191148054357031584667870060413393550132320919165135947744926539458409810261005927346562797508308846912605643599761576160563763763122114333617608392424771071085963239186815358420808736480697913311121668782705464687371198470056794331507786888023820985686244866473635590796223261390902334330113001636409595378383630873086593924081934017753616498278697856029747230437976222801501970418222413538109078519518481899810044327797420398503376359050017446624717108672982534502680754269808511028887172649208784448346380094224216003657302369710903187359737082934569162447805861582612384751681055973295157782652443320891733857925460313507522303042896599738324578639139073693043381818786523478652725858816003330626617358829471628552486322321908192675094381883905827913098452553707830735931713345605800395256429148365667006326663170409649348423247695567461607683243451000121124061769439041546399179468189194308684984936405561713083744697554986292912867188699364893175650230912332606107914883509592150027490853779951582158754025280481378059837682380319236282444026721363715180598462650478142761492129799629622121253841713474869453950209524418492034488928231616852096281671197945720552412715507038940687353404537087636689827883059075390218771197563376523258183680100208973496216748405384034786666909069627785241841649508953143569062424061510113789327806526830690627885309852685055742759737356430718984449027671122637237100427244542006170021263655624224135607489639158605018326794960622225166904986604819416565153315592598261331755578521254973568415379333122928725550592807772632440552821543638603758460121619688808353535200977046575229520734789115174760584850249366230131815959050466211770436967511207749653944358732902987803834766403729899267508480671483915555927419184872932289761029069400196182296180394109324989917665454088958356858740367008079823307475635316182494173051099600012332289002110764853601717344305033472444605872549852042748692368164467239497272999482694130432227723171713910105289569345862566469313466664082375576812970821632205977885837417160518338412460815152383252239291450697807327040492067098722149279221172213567013332614583283896178180968070954585756921234570082108374269600673806462486485789896269018701318208206309182794224538509998635516321353226816284827948064024813866070397231241910542283853592466074775402535972187261781822618595040575157059294167701166896493442052085103411033665012067603910079544050199679772758704752509056812770827495915247189134111249506007948329585068964794521581508363082173121377277136733807649774627064961755436833316529341209410473354107901064875845172667777771765492515042130497713240094318409042657097927429713457459947303810594063329081965963154223044335882869830245791133416619867444349268960400776064504463864418936539006659192583548006142508655372831566103751732381145441915981897238664194344462467297064539364820381303293122615242513622008325118982717728890154160200077602172092963188429409132073412735558497337939641744868034719694171158168983636360945267565218963293381045540304627128288266929261084516171541749152068570708809171899153920764867770718504441557210717623122483773618355523848170231862867693482055791138158749890238476125163909385478027187081333812710811576951919766815086201219330412507207760783546398055548908085503629394510448431837021540209075537098743397125582963053434373824010595701074339430688526745026485322559660099143002821694825470969393590261905539705951862563149148782171978158604989226769288893833208867514130482256399379966302516256016202903168575000032469980929097435605805663499641211553757932934931467469952920042026490429673015356167674354748154640432629826502164422208891181244281045481967249256088744696429858461732168492232342338663138342049253156774639582679982186902708419217415604172679626760956242104782927607884727589301739036460577892435760535908909945998408900595293251827255337283727448101161099439547721294133453733680182979478222807574084153191329766181460836712516312784011862660389501077222365902765308721268911627248141664756494674424258331450733034142701067508185690968433476595255290244930956778487158631027582760192356429567952204857629880690606061691809085779460763781688301258237651204921008081264325851520179278632687318698592420548277313204633437221563005384336088731773378624666412720219133713528208906744089744034373275870418643491963414716870932704734759384874705561667294497779052878864103678486511810574270990730883593950339761872990196765165088264620553414986274330282928074122457219681363088426864269016690745276748827023216536211017215997039933618293559844950464032069034105150927592469874919798088585576635954081427297140612977329737432477521736749594828995266933262975786539819938587653529632090168858787405772170798707055872713770684015536090533755168165278797579386386312121511598913264757555957803836293867852188236766472832441019864034115378631628974902515053945125104180490341276741097648614391615456733677299745447852659422882659551256056424835273126527095782346953114829014336052637792963334617689843492373860287856914050840778253911359302479518031039152189996731057324521882854649470246783832794889520506942971532350921730823065345432248802275463459605767953308304921437817809841477796790253735564724610465671845588191529324079893826784174109226679519057432404493088439389628970327405083625135795216203277289259672474258179071664653161853282920160698460186597699009744350563978171750893186540823249917538634273917675891975992043160655716714992570080157258927132197554127095638301544863985053762413595174810512736276527105114983853882144743517163181929956504335143146389123738644784319948245714530371105605373900091367576793363919836616045603542140180089838301554120156360669997383761453469437627505354132159210653063647705138794083798616457760830879586729045133539116725512837758032088730664846770489087995562130856900866330568899829989283348860404011918208157190793478201314950352253878469234899704374677485953342510949795554564470144118774191787282202503165174548850740319249112689758181145188849220744351586284404421523596574483513311316680965840872606556212894575966364942831412610905921462558701198732752225739623361726381349218185806191785400230886066949344435269139531353026813314037956763300649503360195844743306305726395023229767040481171135783637993195549584048116208127800369678539242637979482930564364350406127342910979957560499700623039616678719683236096383849340148640949275434062429273775360305721421282649370794987464238957877059180088607244936129658835987140676939686085071511643074906150016322065560801519788380377650214030922917320227023530764285605367759951224325447813567163074832989866364254034749495622449493679284432440952337265127136249155734052994531143214401696533162402585458918750087316617234408336436265780056022981716422877483131570055255428572260632980434841409258127613757300627893207354278528667671926004910521072073726777674312247810694080104215393715143704011685902749840779026959767294829932877280408081165692406215185336262658295357552183893609363866726395294129103056886097086768137411505578746663514906676175827072405645550054748835382744566199174249288395135287410849509080364055024496929404872670179744257490396954542155814373220535694285210434180009540530811285451043126940788290855009394092101599218519760633377486875731890641366624524915651807638956445215692398910948118933149421035855149058365136300162116964914907681700348072904385507485940274715531366596510119133087350573784430389006094222358072309059435854646106289381985670485215363586472791559940518694180683502062569897882792468594155645741427748183182798816404318537308557334992708650358224452538639969819568571562380012825700200083163466581900140779317218024441479949059559830161837088179205100265289765731165121722842397151688424128267481803904778295919418984132036939374518032899135872676178645445349352137127721650092056062745609956871086310779367469289960814217582444579287257437403893499881416813932299387147793223144537267158311222059148030328607255738382542509809909288367357651569263006219415075006086658779782779269714408959869420058661146607765940067316006146415233176012657141022841532696800430139536652144998171902312625690092531605793048283794598194038359106647457785618896117621174404903496849220669967069011709765514755427524988382134693542056514190739029619879149563667245972115841571045490894200834999200888270434266314940890167750496688135958749359063291456176769537958297593788924855770939185747347903915185411992751570760569485369313207918936020960950905508092062921953986873581686192044038788253534507221966069479096195482131117759941807508233582976363338554427118342117475389779647067660115863105811534804350347484703604520190187349038895434049237185754962498104075676860325135449854878685706131928342424850074860529381338316713399838782891001270788051650405038554986734363486215601481171326674471217263241190426976375079581732257298973095078900808370864988986132472121131744848072495331672620133770265229826141962901758279561818918690153503050093596111462155303731619555765591775004819054504211464607564359253434449102650944763918316165391239898055341470977710057091789417667778968552269752592405619836287189015572078377904046681073982995220950367182586948890997117398561559066870210913464805299822660035856300427443149774040204464151894901878369455961563952896612273769593985863693167147510979755894982692412546465285798647143423571507968516229132035568453744902030827934369554282292720721693613767811154623831867129660566945998682970894271334098157334678984672427983420802816648232671682306197399707772396105585303546078118070757928775481816997262364136716222108319517006069168658591880638528854155608991671252688051203586122926321505208723747043679553382829966658269896171745636886204901389833857653642306372248324382699809387804471576207264467615873078132344151535041555785208430203233509998030780098762964165614654317020037929923516560085369533116662120166864481884324894956304425529724985795725988705722111243744953136316675421713746645377010591666085125447540095638001285351553745844095671046607371724471795959724230298085927218291554367598342081023500455065839716644983223291169896875273949373632751352119689234205411827590833335175004049268882751218042381057748395650069861842257179332056412529244499353779022760700332114356443896953985567951636685408579706012947055721485212412977143345046355875085509452242080498433442423084289649021851980810578155182537280965680263641366444393025560776476169246529825988134307497313537352806679428458350021554756095302103761450856901015174189635577460876066882859350825036413511372744519342608542234326779830259432324600903678578108448875776179948245160183471113255063975834712104017868503577335369890255015201726424969718174548507737550134420078557020001377700210601311355056349020139405524526869309562542267757522455666444589869495011565827984560907630100310286838162713380152303442259726742567486596290175075850060747405381029932883469983549446975712185620398658672024952859251038347168914126624770124979180074990976124962886360176978706759535582110937201485178634429501721023127465704557167581871220345627067376345881102890348470444409348857282866960240242033074589843509682940211869724554000665644432024927935528319832660159671581523532036515659372265568374613278607947066630967981706173129434657332613711795008634333371998508806338297113740571025630599600558973425711359621066914066047249461430224983055642401105419943570162876870743588034825958571897909386121164454376069648444140545049797904875313914457897762346350151168343770542772507674606377126229009990187232167882349416631505799445738315582154248234881818912681050555620574159525790036789086190576430583970090710933964331405784406744975454401832173274047534331315590200878759074829959563362962442862681255027060348613927682201739356550224337536022496114203949629662572290801591084925123090046277209738928104271457404561658314797186792775342269675022799259996411906088194983404345742621047953155614510740085556539783200850698041031523549253867458664798257062994729790155466588648008982339661189722029293811648076562450741409697368516145891888886945056120657525827310765016560483520423730849071336585259401452830035869638202556829894207237970194141282946883447083107832975065624090415882148900933899118488598240608847167173659898728300486553341718731616525891262387519581581717310899282637727508345047265024193341170748396287572057467029513177580591873010890507798497112556162226001389388274171659316105722275427978844046198436198733820394452153046034672370490335259502415302805261557052437574263046000482720120183119786248012666520340162705929650992808781007859702756979138846548966321412283942195187556193895035183153540461815124530008584414099273129048197032790622839666574755945393386515763170990731751307702249468641450592142327815132302314979834919613512990097755786692866638976627233985417482314191568775751641563177444120801949517517834629235645519861250456782325238550582559603284288642176397154669715322088662422920463389150099653465817992009647983880907135794914219504883322530024323901547655325370473357306581204248193152844052049481632823627903253186532871715536920204205491857717545887556914165259879630569737777810440697619733351251281877236519032810933343501521574601238883456314416543367751601433895917044961796370179505751462567077650164619142563873298930890050875679173332294318567001581859437008855836468534187839795337547837364887257713113714079385932130735258634379028530063196388882857893263051127069047638988304777851042662475669315737859665379561037038319128512997149064313945078351781699889160135057624829101270142359104157548455529316042307083979806099023992057731905258080962798530794767030301855241471315501228941718885347086075566724102198266750646427452251409609570306999475349913215956803582648716377750836667405767077436327286109430194448587965891913138647162226797965240426797375191749448222792740832137668739128899246907693878439247029852801036563902493894013190765372801488506091565441576311233143139197704032336494179616058810022423586202696314225508998436924824358209063393118267135172347032434694433078628467103484098934567238560022459073301882408219308196940842608036531368903635614341354153226914108480173999156947669504403524870343199900315105703993767998837675402113437887571665924903253007325791038809205848155471721725039154258257523167039206588279965061546148806156242133550150907000173110267188602006896296778625879656698605708242335851432449842653193225959667396499336185279777554884521532314437754938552974383231331371104303296002315666263261377265700287223344580486296205772616804594812646438910034523552062998689164825558943849898048086934621612364064879854365606717905431314094824961401964474617641099335485913822144158211495647128113811030112185681434060645737911303781581879857551272647098335953317998060197850583050784503083117541798128728741947831005011038247329866063394501632806417215838869592933617926166009585740496516644151860878732815049884273164242077850998222718358076823396498612290032984919683534296795589412364318537246997109933685894178961420216838414921366328514127852297548774367499735956950018342250951961629813579918735150104814232184784245704328621768251020054225551623379549605232209224002114819399044086045849388205122160083629620038790388214491109305388465282079874723560524098517964256430079125531253724194725839912054143755024905096547093859925669240144226971552750218489709819990474031281823115509734022461566641381099294790238009404566432397345355425965262395424211907926444331714210530345177966963930267966987871295642640983471124145839226588841893085383964462322351531354008698658833955792171200841015096917836024929968519497231896334355335290756425547875843285004979021810466145166954491084330414583155202371290544583672133534923648181771282202334399274840715171150410708474669694140510582420924094916940687120957451344311885206762567035335788729818130847989428204035227292361562677034706426566533858796082538429398972893238063120930802883407585562555999400011966194576464161731854964921658618834282656375139035941605473570560867962632833891553142406109365125584440155112770486635026881376890475039670404305961141952852258198348881417389480806915648719882347633628375554411416613971115789145100628939871265063777980836682866861083139627182890031326253768214008538862966608454589472828534578662149603234773437132243565772513615558594287768238529665874412442908061146530778878520200028643650242992336536186277679435056484091966180159445819481344689909946715689471714586998445979981024856114832603397555503908837304848260258556194268102789012412794499466089904705714861817892042100618953799821163979945958332020952787362279404734072536429515376316860679108545192935477233151312232658232747810059589866422015447510359368708956515298005503129715756424300497817517391144608930929135267716420102322187108952224827477334699021162867308491283740084572928414488410683116776072793607308174458934118390615558966164706886253533539698740361168462664372658784080203182257851779072135954812454926323895373608571967078058805946370001447464973021712026170567587585884344257571028258358133722409652493783787592958039174121539393672688207270811222866789339512581582266436964540100167644755416791517895155592119672424060691608615922801561286181969073597492443382377568215190666608444859510809338761032906241883322450401248033729620294597185269537326891797644931244751940293624322187669840603537928891487799758148118579785699007641710704614808532371883950719694701659141617920415123564760951649780107650849789982966602359517361015605968165709238873768383972399285886770087472568260400865416256565331908999408864456896688963983700758080161741869515688849119949346392740626350011663352145522554026416758883080293021387100763634851015220064297496062914890875551499650789000581781151302161462904229809360751269130169240648407909020680906069095726941448163372981004327146758389656683088457528508722026373788577051941632961721939993284118476295376827230866692271607973315482916648061780883592667273728307111223053070296436334615664980651374126964019153078184278876978022829602763573955283659540309460853137226221478571993276209653593225909807838605803373743555016207382543672592603687832177867270187949301008719353512348636960553567927721474232033470304207117300337867844434976568140928603585244098152449809985265245138829655525878345198681161162689726008216057434715557958378313844065972865639945323757737535103360764831266568193613128140855902114690874404337427551846787590691692466940813917017809760202572207316463915961421166560412983842416033979876007683096277623780914408632636642406508135754874540724597566521533776702335020378777858937178011901824713285658095763892311250872738981970839062008304674753146122525218328578897359233293973919906772125515070509184935475959044476169734733468217767741858853661086296709347868057028675424079158932712436255497997898154929098080375573481346130599155573697566016512793775905367479883326614352254533048525864610074455151497533422445156311243717618997039752523433737847650104871113004652338723426149940371674768471088449218737451823598148439858670326795248547280906211142226439286879045967659884431301830380901920507839935640351112527215756087586792860486073556183574266234995216202221724739704651791298389039739599635661831644412027742148168338632595072660536049614064497374953022696595688460668602056042784670514882689113815132557210967582491645520203824934140425740298305367684975032777858787961778493647723316203087098477333354128961352744741020524840419324542797893823944951105472833131562300869607719948122050035396321415857345340460586355848741598797282722772898568214687902504486051425188752247324245235897507910802272374071252798955753425957633218001207002900162191887490065247334112434512020089476856984561203819386946501065317590765172314697103499874023117884200353759491996997912584482686675094071024352610176171895685967520231187321736124332376917549691278638510992201360301105308692484513623761147514600961636616144572468933617338572885336464989126660899570050632323531636390516150474360722933395230116077238533246641058119619413137111797102468581868985871551744372715730574996547810408126665119469062631940430946984297960577208006888969645197248161935086473928388991205792980857496914327210586607591740255929021654945806389819362285959373917190922391518399534075124868734140779363252954992650857224911376132495994230313109605636204635621829764073143661282563975272079293179479355481189537261446801135793461729594044889374711455124435335338130609243118736731737623533760019033640730037955288218042073564431441818619900251015821525486009822252038383388955149964026999844901999006142337546576090190180667773561819834092483346932673121930544274955047811803685060521723929119549665625178349990886971381037965899794924007087512656004966212682795806258845859518346950184140289558500754727009979741500235403190385736033942273778557076691565976586627325003030071862330253230615393352520845316402874358256307017431092430012814741074146852931417529280273742974990607194895792091132344563154371441300942096862337791392760283339023668186823914327600393958668934262333504415470426625076306525302399002959209169403858253844819139720424605417111279635248850118129996522037065639159819457933355213534618291742205175791649462438193785056636449693857591572321503245706434698352684242254715662316280742622622822701927370450004633507381411723995329833387369610772839746070547658056397587910829811426276662038356474530523780513016695505651457253767013979613350522988831524775409586896026700844156419349110284194373168181143957394121058829996185285068944258022705037015318191669247969753743780161624482444174385255590466513069475374515364756604728164021020738766863244880985056940318463769613775470779404523454747915005602173471652403623038196532901353339291291738939902891632667154654254124886631261519784610877821778828706872985348810078087574670313643577143843922164010404890952168379354617996164497873646723748259202288901915976224798629335867673966947407767049624287599022459784698650995671650303237395472226617643070404799517834514264989853641044498360791937885769268197114961424951902136282346856708491302513666814986725238413542412567341669590448635189178598198481783080704221962433083660479727940723205671001284456983798158816282959079497558894787704619171498231712225146570109574390772387180702057881964448503092468615821260675252281478165913526224406390913893604984152206480438095057147022611627510628354555091461661797787591478443610731493051217109010798399751672619442221357682657505913853258017341274324410168589083311543201762359516657014997674050100092212223987519618930719789702506416587471008869193503235282963947085046343013551666892915553319594307733855637835383546554211561249142939329620261232722314557636118832262597096977671259330751185359628320934489947493836860493319117671637972642683205700681277115598900401656935231066419853225095124978830777023356817020632330024690000056583794393703271489222944981924424532070074878986560869687898409324979906017261612971457163800871854380475551712018384392350104520061104757948963001565087831007926329815904310581280846767285580866176430237952623341081075927122604100827596015972356718602840380763278640368187415029253529777222365668527707760750360508017621204747699095230108264244929015617173470654772676609612821655481547202351874498007908602060648942927229817366911272483932840604582916194457615444776995808730127378072137844520005697361054973148326957305172664855866770313564519620524530053798821549226369515954310442937560869984645986190697736721219071009030830464755644530334395214566744924900979099995416094285386761419878616280255558404005879747118029100863866293798487125048892050694845152858673235217374042370037660566395310937042765359000144890160025910163837771836299237483738057610889233315243320717064234631562588960544627382888588838951111397548966546318383317979886979214917463564802559217471583002315963395137641232882534823946773197541801119591492560605729544087769681913851955475586282740914516941575941175755008592820695326983474565675720637788774656070169933674053259259123107600524041763663530390641597995375273260272205920649625339925225450630457422553570560405967248674883116092902164645062681406678153000024206072385020312685008887766525957689697810453630817542067119728300794136234224188731101664453913131750611180907302538894225447525720309266032765012705175589404747982268248107408977500844984463213372087902526137690969880007733356539681602413018798861385330145822234573440206250718960524601993891292690562181257067073098029328823653250205584459770879602491576343029940842010427872909409378189797334524629905027078019786645146903433115097350926894327590714802028622816555247184673516085482950158689356647767549005862745439140637198797444421826142855589659064428513193775478806346837942318724905749909113654406851814841715190165268718718082353600982138949560876905346420731645591476853969924485693180325382404207043965620516059453624865193408342331700799162620785409586408994161424171460084657606329024302584457045686048660412235334773354930059106363283784161805587797079546158664463917021750171876444201168030231329830165191282977393055407807006030541344576844687828582472509156935584240593391715575903032509212077213698020909646259319457491376500809173876763162763647285999085058570627442988290776049518251059415694210610210943334690460368608473653414396228079418430187670800844822252638137337098022882475303564092010463499433610155867018553411730956766968102565199052701339576130157378569556100220420218319900785587337793509007005499692708752539322361260315326545568627612317315820547056682581095277164045790518853964239820004401639946483094519224378285664318164704861766800867754916657545261384057671438224442380385022731467272382955063932209683170013749540093533399081819083959714473854440764271016242686076530921091577215546791112968589274651398141032144545473930247519143356644553496635247948045003186966679472168474372412478528851283028060430432990316348078827740431913992164318825429475606902124633050266968819986040409541884724693660879706201280255537641704012309578269685664388904462751565871527387971570547497185081778442803462989622941670749132416483568701962986995582619112512250731104625886124041647015051179680549070412179443912919909912607242669379132851939645673006548246090020805042522374350508236974292390188005080462971933245928966072048746289826781545601416159479306152684052668765221951047266272135275329126403975932126448813846338689790611069033595553575929560966371847261119550242453350454809847259555721536928221650497627161539343250495016458945747051361705549107010712356632288566154866588917939348520084816611561981992498701459264092412248046547456873722405661624152601632339550421848328343073986630641549685879198301213830795452851816243507880437844558636374440152007933710727874772998725674910266130792583728756218960514083069246612434960635850393604765522219919257731949677261314910259477166661997317593594577643127466336765293374076176013378866115785885011509335259349237114258416750759575395808119126044100947028627857368860195056606725071733471961032366184579248236718871317095386757552684422901821959910762273618529693423300268909741189847853434644673533512577081885863108082175077862754252819498233047698435423319903746715604477986710673866778905083685519606031244334567471427778352467706448159318349063730986073080044840221694377524344994432443361382553700788246845066191344228244055421281699441141121907838063454600806864307508610683091217738836300588710605561034619628098893524805523594138899809394835697907662953909979094768485158001551740954980921748173978103058589324375253405362499486841839184156372187649090039522926200948078017650980422251801414291659870157108333032189368420083810639427659921501556168192796627153091337820501558538560128867062506666464374927096451329071849855698149422101236118978884768567536895665478795255098486575978762047910032937239997830216542427483858304497584366559356258017876366559989843175221398717020214957593462340318294163540822282437309797205366189137396492667755233127069216424217023261607171328585468986433144121773373302589467780170728327311470648392538629158737804032820327970022675859984716544223490608215996388152856959787148832887751541138540120381377038637470231552637327277149626816319831882274371538637057264503114154490888585816374477713704673207582386455580903851327347646739594401941722451425503355034173569658075324892027875239231916092841826234712944082930236330790549912696277762006903068248057588388907413753968712653388653527649738330955315635188470209635913429471834960443644392710312925432010566805800747259175123868314765603129800601774775747165478096688446767887437102823160882991957735275360079958503056471497907130116900067659591277945047715196050217930151587499329936514372870107634197470821276279978116258067045209418100940035213560842834779534312730886614631500152889187736579896110228942596338645573609346839615824445545893099498480951121556416251946588407848977596295698165411268998069094189068062756792964615401496217815332851501370907746637973025526245085473592774600000131835588042847844233834674008186812223448737071763721355681359612203247768401216754934778185611628003548290209061722807470816418362164580771799484918662864186625503374499231009088658275421665290274286475184636883450967336825704690367267490397837424043004860203541329944025786219103603981239115326362272391623010897057040447683980668357385278241150936628680718776019781806224191536086113199164343071179097392929392230480714139335823488430040631189395978344708272199313751942133837689146383144065891551922457365284720865744126540622150563291056881599313490044623705780762108803131858852572413375683722704810501832054012061841889500788949376864019700982624082316854185592263684596521653673190134145922573213177490827792109508007988536372127457486216024018603664522433165845331734663231344040617436132761826751585519809010850164715179339818460024359295522230161617978633519684695847630786980353057335370023208547369043188731575120519299397394934942653803964634740673729309036826554971750743642952107989335093452313054041634876263078995232256380440461652145151914433363603168186316357502757985591202871585731155633687472954643159914538165748628444957190742576715825715670389225537922254220294135835133398324565756380210942551386196823162633012390368718244633637213563962207266642490190486056402517982473818646957856724004353839742627802479774247344800486973029081463849771412000006233741813237472557111441894247866707795987797855626792823291927346757877474317974315492026111135834984792406327828097423044438275347159890490960054840689724175535524211497376521095497450136902642587885207562834594884875420620592493164458909150519383250068766146277557221007054816590552549112707442200637654365612134892018307187697292054457446390400620487035894584410582330900646851434350734799997693987894523198761902324041637124520155067224741980527085128669768623474326281792780579535989838589279226001072911425521141877939440055322526374556238552405493478591790450999711211621926436299188804568703106729630062336182851257937576270876974755120760002220542111493014367532049537513133147385702723579705341808999929795847205488640256589179489630541224178527211155468613207503455205405231811442656007570280540197600738101534008254081566639483671713508978027085064266733595263813002543458172622992447980783622950558547907313043904023419919052739514033228044646447076235009282786440473819860324740890778846056784006868055921195859580683793448446925143392814770083752485936066551306603943700222917561082675030352821009160826196158766571750056881032108560316584080903343228124176681607329245811105857148649761928906233393197771273021790882061810416569882306346412354006203310143474999580309474966457382170109825815696375315087982848594786558729795717434335262566515917966334310787624676208481262119253266607487110576828492951580554345704061266976804403347894122209031140568461905726288268098496281783341086201731416351419348901666971653460317474741570168477708915570739773636853385684534247261492988699538011306269364386357349060008831122519175668367779309525496695518824923219142541591406465380881115058584357886145073584719853333325353122309141462413285100486745647632613995031010214993003169983790948949317694545319461382435346397227949675368692177938792514247482938603845656048527560683272676463270382293872375001568694569621775510791232199696728553756306189423457032629686951582064511068759793521173947158950939538912290881319113367708474152339979208226509198961195575942630910038038389032343408728679146169229522940803471370121337592968660114655816087502966206974402990225821253189290097501524043185404075105883376781319937095402249265198549385911952040340027331751042659375358180312320760203763152697514079562031461569631440094501622052950048490963865447765049370202075884363016895109594844686221150686507311744050380166729950729994085127467342580978968128834074812419584475297719970007819485960844684161390517550499985496768946781027267980133359126221278198380699617070550165588294087355341371225012206992187495299928961420087787674463511608038114539569609406312283350060226255988114548661076704645407992655459905978749010767265278926648601343247177828465753134494474808363830515655378196049617396944161542884130495114867793073081033207844175631225352417928567299476336351468281971936277033778386090965430623908849267017208348341344790745584961471877747927412823501618081329346754378433267799803445033893181546876003158331243180446995625331128730653857768889420378203599272323820402510847680122520801345721848509252855043871040370659645137616097973667863056662162906877940427464587860825804971248921205406289312889635108676202229417194439302218126812785612179836016113178831621424542954418116902540452850043424425123992349100303897782404464204443030010834480854322155860471179781443871828107652943763474586589857858038173332946045911147224139315401318221618850770645395316211609258306202004620931847185787876609942310074689675785068277992808408302352512483714126182103713261631065289185697334719218424557193459028559896582826430755659563591983567599821016427263757022923431888893589220846293903645296691121340569585522223528850747706533469094657920726163868210051539608875701125090784946874398217774324315851591966361720675183252864386791063332913957844250849415653755410830847076635840155384965981445629307004676289630237807869097713851093436595772119133897697977083328955711336077541155280339492382829419030780007682369285593288565744582920458869975266379907282437122563621882812611415247717776393010470878555581118022492616777367594046520152215362347425346993427176813847818555317563574832645091090593719268698665396075175121363624402620846899905693944096047429931761890880607777147983981171615849519200371104060396079418346120296236723649045347544580048860143002116537418508925159257908793444291925508951245068269287827071335392548909133327102735742021912239564945043561746249635390602908493680699499154526109688371743831568995676916047340445137019450020680027090327065321672816951284279276101040789569660460495367491052153063942188175454561696099703068419857691841795560284820015753287156426122112589858408647161414773778687552682454385583328378820622603618452491119535281880671994845942013191348855163668135641971360560659904148771103073747985868038566299993185754814644079440653483249262854909069515958400939890573891638853993519656495288473289200865742564822515054267381169996192721231530133352422194031389782600310628852100282302031368153726946701091961710087931077309930080584847168505312662978546240519080978486094945801650036285695525265819483976127950089353010851967043409352150459481634083816637426733568151922487306228018168292411905535006669816073030115609670261793910671157857046344196037053240030673576453570999404580822083143377769601236470510445827096267466042039809144443875815170872055076656800949572947113644855286267475086392164393397936824287174443210790365306353438862661190528458053012570365790778509334268897243425848475106625272258794024128670635342865180444799470186907413861112374159593968772335513049503169734524434027008197577408275845101310224672191212999251864100256359775818668545247570227054614462683865471090264002968330755703392898459477885858914238768181425403906819954421420970036251749142176969436206909122056040071091909628682610418727746150081866121778999509698041350349187838474682118153967503102054998661952586662814512379193851399660165874983185851070481869719930979439308909524707795406604303193713528000367061194560996485348658769578977267263822860019175519722726790723490964891486517601530031297246994679627661404215862773959408418967113103589878735937740750668635128982734287406943687060003026500246952788060408920091260647000823644303513113644127971294890826741737121293136293181226816756176653560516033978783195974112188446020301282903198426837828517082513693888634299627173623291136601361413154024349440077997441320742912905724120992095538441666550364613089761597109870385650448834860200372639311478940291094202305788051623494512867787850841713252775376097933866406680730525666890335913452869664776975425345300151082164387037959025420565622832576212000331670731289097848957765449780368758854669341886322949884447253805285992620138935004263962564913672652050772684394441752665639544889132791871229558308129933784081001929523428228305183123095185681525252075046742883241553587301709141509122111560358380504760509823557549661876933292259718402169030477767520817692220992862629324747987233254835610785538284525393713354309809600234709267049496303557446810379622956759992907846577901436905248906482731063350455594073470063808449055116895380188920414345130103225705337253097182441413363468505713015666295064287789070718715445619689448708378166359721932374366300030476461321365986930471081458036263820943124069897866385419809318270668194019223625750603410942297551551015711393918265017465567072850314300224372779517976936432856165224716788903454528476000679329735823827196027763258843668252370938309030587045982403308462009031496429846939509475104691470519437622510484419098343635754207890834188676717205220681814024113730351910854022351395234780582705210431221558953436859729377194007336140107845340265260546666614832786667083688835703873649919592789638621173590992591108740400866637652903828542964362921302648836576363707735276243046019605688445743696978973836424997751619447157152258081932816412564961344085734530852397807351116705682362439808927569502792522309787325699032023390501077797815221049410988881586994343266270878944257683381596462966008738102202920492386124511923759975958511531587665376533590432851553516791044670571695075583455359001420398031848697576194268684841725979251214683422283571134547331038879222761778860309494633224898715448283294360567769549751088141971439717434318202018232314426882553634595972615740302598996024008726221324201881399082975127704476442161229449630441121045433431199494765087385311971829941800450276733599671476927386146084468280163301282979199268177921724246511783198347451254537884044260595005808331599336400192724001368316926872469368036366058130508703509012983739403969282000642737884654057419185173342335066105971997224051830215886938307538118579861900790228018657341506429557423153671341004969197825622016141760201700052186621560507582426789032391598236312130161788108798546468963659260222691099148678127415431731729322233636505985100897325188098842111414555223400436189173372948456049364456674278231002364353231380352267548809362419282209256520163345319664529380474063663271258848974626989293529244323513929996311239206771203939613259712208143997898432852768185266997302530694652069690427725122918190282015456080839884140950044487549081854844564713158054742113232918399200987331347201232316062997384991548712552693141620934575430993983383851299984517044635941342798311422697475718400682550063287091818655353172176670703945675757346007323412940900845074128719008048575548293084345077990579376508023179920484171155108153835882644931326429606376805249565780312461119296963833507087372061250805672723533033402328737576865521648973419757688625936090855503129968947062610859421558827195127591504331382590973085155654225088056667774411482136188506342173943599229396929800818855675751703546205580473729348251371167960673770289298791452716405443640177661695148318135181643348186478957190272694943378067502365592612596060537777595360121741202036745357012442566529759348312402397378432523404335824720596205452503403974026924538443506759022700380723482642389455015943819847001694858557972899988288879089454461859040169804225234884914946352518498306668891831678867817430487724101117058545950142732118802309507833190689699281288141738089716949942844992366639358139117812838155273692276222413546277891934725690333870398479129386088543973352134991314767214042076396425472476308378045589863779664782252263583182769003994665846378091032198671206180415277858595721708941334163068074283113452708925867118456820047409433006717617610539649122417394976620907516416792127418484444665974735864532547380181740696618988838904452565651128362493880400526687058662145440820787466889614110825679553150548318451539642970887077615783750952251204788905082755947798103160620959969945642422817771558100228914586425530187387833357522224740259039988542141841096401203040987257792946926140274377275469121767446053162117867035220819489976656458566736362122703206064561703922226134723906701185890487899156331148227324914516887801278559355316046646237370869785124550274187373692558323699022916604886321674111025467669790671050862372416475705033083096169506990104052594936810983555646213655271312112400034652495899626414097155524003354213793266560676375029584730548623510381437874164445027821476106649419373575768424236700123484557070010808963220254355171481115342215145294207235946108722101567611238014157544709164318390421758537747342684697157132371496276977941614914698202840689920500970361044725262225021414200204160012534727669646441723570895741149495530535590141277323828295376967769863346977646069060319503279435060031568342137893439729268963968975990150146818134272238094405918863673522846773073372276881399622184429219607499214748075226880289486062337345557227554231153171823157240166254486161347250974752970878545959925782444765933688867855019753661600547390747987795930679656067294574288919344110089840772893174295556827052219423062532450212116825397307169238696136311504013873454102831611597976245630698819457637453120090973697099468771313376886074827335617928232323652257428558391996009981997057986955278222924070008203760319097851873424926081919476302379730096576661344327386140318426137011741642904079752096561891687700355945382678369327776923329470864860461409717767782076017851257810310730887472457056730593279133283716606351905030593562740226910799226567162129588926992800219435229551472285532403310482946572708088474133085486458346438055261449834269012781429241366487735766670240375426611764045531420551823795015484246195905546160528356858385227486895731904017528602558170618783488267132057059438740757688948181293274923581802939611864061692596689398807933767072977789513675707110418138595797716040211866983161839492223996233957012206553430914034077189994368351483812923871359268023747564945527162771379332490377744102330721997088828751283685921874183351736761234306361512888249370408180412249697275477401544520406579861215041921862362974402223944448977714494152297219274398065919475954254307986436336060446070165050227501325649865344032973288530665354697752591523716844165951343476991827728346081450744564544195254452869014773919707555594756671837065297792496891797213055951134265665187582747838301624607610990759552197826132412904464140792483291348003408782301637558203984439305806069917676661298519818608556848641266307271824307110517478466830237703729247041296541514622270715446349929733115519230238708940393227106283200737320218275874110798855555574805137126992083691547469906856260809934920365378828270513549281746093395219998131796219277824532469140456170787052368492074437534909049597983225988631159056632319365333756111061183563275466966846087850388528733989098605730221584802268497988965387906793423882855581538397655560285778307330167846611829204826364775909773053268584488643306191463650109313584246840251575080214948752274362538315526063217034452026642446613341973760840008193782314094286038992796735954778070297225301743572792339406765561680070055703096124445644418279939203782102013424477402522988861621229626903027309712231532782337574595512768319807985638039941231412238469898366116311642593271233453670469017770106522961612373287443636886906948395717033756814788281904455845694845762627791316782613027284486546586030633422970683681504639318204679351314193885617498723383179120366305846311454315373141680320237910510180736769815367658868619155100457913328278388752923683455078804912819887005732589575088449762641119585501596526457580723237880529631140546007667975751953430688499864009495807038612075295808148027186426358408764047243386180769998894041081301956839344903944515253160099337509898731735572989850651315806292200881208695839911095972386521292560521441069243636395044904528887103718502356059236677179479842364863068910166585398806738140314649849864785737889578080568903159124445938493604249855823441895764233332014864024057361592250244023706554336253153613013402357341702056229424788497599612236733972426896241106715472542428715048287520824235232373469821998323981527543774506982126418993983750397125469953119296920515814889720969661480235359949324061826870057197607179607829644919973832303530410531983373251625739843837412667355062355052655625705048106337194016759185682432513414385219088155904093087631667062855116020811878019509807948739748251649794970809630531980065204203355141616058995092564686817583600516227966397379833985973706169367999215548014429677013660332517195145651755017719925357197058385727856859326770310421391193281238941590553649252542351821574919328922171422738127826679926073623546968349572079215411384881474099299631418575308149737730828974877747344704578882278005754806667721859756037687751091528283245390599424343347616673858925482842119619372072592562514727489868189759534490631936524721826087720698445088169670675341357280081195764601923989090900908325806928885535293720639718902178652524154071309788639605914405175069132522498616134426425048748755846184420682016215779755842775901824264113067514971172011956198768937130094869558039529990720747618482899766623038386003037223089163082209014970356194356480970621510950535625176710831916705087533304267965790554099473242560819752357483865026717258933764695166460919245579543291278552401905838397836391567835226452699383080022649201473032747843290526202169122274379697979187549794927481139749424384508783475523650090447277074403135329067673364652228575432534398283597433623586082803916913225410133496123023618693942477611145807061288770967148054682685743013302677734947849944733801791707306272525002471205419532166295713292199651293383348378934903330523875162917822675961245361016061507855451263167854559245679876812005717337032794678146986037145876007984836591542102515924480441243680839229366053077092709681679824980980888926657411388742570626887596496074353937895455193947381636394573666175358644041741680285695797061770000468897695573806146132261041320140776898590449511437164417677019855321870106813451447264401291006139103719651710230000226015649113751073568211703860480652462421186557074906696662350802454640409033870575641110653136697594293970952723531056415236931627296899341513628588056899553192893013113760397643975202115571374159829915501751324262558325086789460754500118300237021005111138316276891840834283235582603033491773257755002264521863635599797178452214733434316261409369454104547501346205602147290691199056685838627336297055475357849584053953363074001778716257502487335052779359257326382686140040725370060765561011912059464825750016324585690033943544296421630631047650064901540705503973913561084922587937089817432794781842929127841525708967959021279024337712337744594028441105961979892768980579546395692538918895689385529614569960428611932713867984138687261269804685708883949204537898722050651167355585196710620207381294648470807523222966509262235521546673456115303468638506203027230424220514791015893370355938553971870329288894357402259765322503920663664675162976601287790673738275015070772394099485603188212024598745537917971278904507877607505973594624108163216389590790457148165881545183877950394677564733261265414284685196699193571574191730021168824328195950817907347932336792172559350914150981733716989304265538196333917275721108274880835965498413601128474236736480906313586110802167435152026213828630998203866650770795697161482289099629382317560317104714429507775643365300287548487131496798942286287005577773683469636288031323942750844848931946435774761849203321799051876358798151197156467020697211928703921898988726563251302968917731221482765538694608521700395613186681414137119288755957311722980168234498625229479077556565320617561837870082850157560685204983154719331240939215360299107078483600229275344523000876952498403934667815254097253964060291908492924810548029632132763477050219664215891182277152605971176438565245853983180408780608818070997817243569182588043806425233467040824042881395665593435555384221570340351787087690252515764837547894880627918705474646707956731914836196339587331267944880131271230739687316705159569274988469880952044263485690849298034784537662608801821116774415971261567348838592214322729826924670968459296231192170635505231358556718626133687335816989501236079542859074447536225178469544579177462299298811318483558999165302834414783638409536330691772053239620193285709554984501334324067378282103829787865605950612231814414552849539043098789590515296271878159220148076447618920251809118632103840842729332938923588804657255915768065249797131595119375724270126543522288410394933911066543711996143298334281854806742945923065789048552858478188044613815879456718621756135160251238303059477326818488477900315719696931372970059874467860233358484339643995474188224413008431019582387593735814153892696427317527542091591007865605620102049960586877444428714898945201610661506211068626207713066956981406431122400894939319695582055153550811604713583105619321086839199450610780414962940063241423393025890517353702119033791695110875175264003831719609743693185701998414618911478200571374392503536188396828882933775559612652497392279375365671009836965008030285991136138252852874584140578321423804309073803174541124526677522123870241401670744378140456511836545555412979852209963317637046605419540057236403488154000340107449356350922514315127518318110757514176599905303360208221707712442683509669137419497154623476996075317425061224007435631672163642178517184760928114184470719823858421379206688611678500060503744672136892316084586836319053942105192247145211039748064735301818306289639412428022781455801602037995541791140276610086995578220192890804829615690744007662081319662101339677317736382686919777202118075596583500226483507623368723690091772400091482615919339733933920414478649226258880682111356995505457353789695785358461444045199762216019327874459395467071177530727650797343375944499302994127735062554117135556839109911443479226852186263295146704434434804637689429772385776689540160096874359264617581377941779773157049748672871075859769039754389883867985343646194130481082740138811595379827923466382862133392716481483090273853868416906010195778653988032422735534770119934315037150908116635779912569892205699148162158308455068401234450282342857394433455095563150205880324499422996998917319483497246458242740195736186302742069347803252362056815298508936697321904291786099317360228858204637514896811038011264529712914014661403717903245089226013495977561657770387838533854418640370084723182298557758748788166590701468792809107548076405640171562468551267813173420522120227946821966285652391416024135355143496593055056117709729898083161105536324598885564300525334268170930245578619671323414758646122166594307468109677561100242774992257480098516817988135744812118210563327755919788254824435324789514588323299463156088864199297702919104796663548815798330521916467432407544996142366769415557190037420563979764594577223206461053014570248809396495752135718611075507978308234501182139970897989811102507272489819607540218767952284252475065956511162668838056254356875682228700194197967035136672849855543357891190821608279287675124332842721876930234446233950645418812163857139507248337910661301928143326478496440214630685178074068872677058860344483373220068864071966429084766018887662080257919317423129109684173005693811562844196788250998943079189949339393761539111286248019578980410770782965680572798742811927935974273805637385523086538520556459099610054238695164300554249792223600903329392199841088478151008405892430589195488361544288227705016654115717477950608641827615563107320106092951998173472942935438879023165093534133794768424532677412837933424980553325492737048958754085590732003813180108584137162963637024154540557073325221270459377338660036302104655104543345399402317930495731246841871385197416138417184676380913374752378435597818363165822414730552596666266082518209328711532067331710076809883315418207548207695571715860833794003280715446247658202713317449677191067819943783130276260049782003582712150068258762811413132931596733859162346267268718717354698537115132954088284675852447766152870171730517542311290288370782003533663735100762468398868615167668380504574489006801674593659583659725484885804446951217177621344662900582933673635257136777769369873112440630307089369285934583044544910675049914295562749109939165112597098949770956487742050644810479888799386806941163104434906203990094782451616246535177930623179429262737516200295098913291957438084321915325333998869002644564978622651689839614827174773120312117016627623428906488303205936581297379201480939061213215314586068310982275753919732732986582416645666993671943460047066904063275154522256494854849404267686731584934207653043074762206791064180111202868133474463918197529107603710648141737004716679987562076104711486066019662293647820308066087831352082886141161241313613963288829226703078764651250389355625093781241829325553651453578149842467367849617289306037390745509008371660572057118292346137542477768532364368557176872828147344665620726602535595092107863357567466277371766466128131962959732337805922617313796522121331577864770029484634910624438437141757381141425586988958702916406452198001880863952766605291286240097562897171737935654094027458294624984894411166405153107607632739089869141196307598253711126746035190194265152037461728889200542449091178933331099374938969645119109656634397891587449185832421446984201084429616429904523299934419025535023569412746649061523474799575482944090082967068749025254862231129069967426618146710178693437890409038946718728688046004305357711662353230598467866255496607396742816932345743412483748899202728266009282790061067810497030729934585716200094036345626024250527831389212274352068892964447035470288055998868820641340915333328700175980298025530985967337950213881057131871235066175200722657347578512269284477463331413584911042163844164289778032032191506364401338862718072810007250934561096787806687420110075865565455495746609149926624727573998486369973537449776312220516294941251149224853699531323386690648575958685311091745199392039975634387351064679359755381581467869876674416903054910057141817992514617000985470216420804530008172760369526112834041783104147521860370235343381544849882465290965028910788010505642854610347452123808916417274512252411287360697144995281492935088799266212403262754048859917534147505827442042740369698447916456392652266073015766675166625573867211174483649429567268637713790871225679249600421610563334696932417746456136494770293416875177651992214503068780606588384248829881526661973535636454225883031406859611143861375045735363833658006037771999040553389662820576102304523892072028932673182716601820586949429778245343505161639745238048045517554040141203106423170264227972630475649730744689122251986853208679198942742228440578923285065922098292456768487855548033541327961535745616536779211643466736339933201614698151629115174430348827082890988678648140638760034990405959569276624797708898130658786090678776094951021683051798535032099631266025607402059554570301795952173217837827559671363388283738108890284905158496395673712245585182851276208254914907834535171612486290076250114917126345012514849618533569733532129582234685305949150876800073881756600621053891813593060700444161269159195001422217824235065593429583403151334144979931702516097329772081845031364152743442289771931771813432997745437222901947005564088411002325745820000394452756876247244333016690937406560909675651000714726095547244146190575669332667563532098423375470467805026148580442970721068429362870321638103501022110579511873130013342763568622237445357919571394008756076878962601479121696201233533211259598088960993324600928109829345236686361439953362298267316436327899272477581452398412122227142993109463121235878276807789032607041374014617801859596414620272966275888755030361583671859219526348916235958018719638743188776167417969683070327193605044307566150190710101241506513715805237988226625318649091580239524937889459115853433193238658615024400442390139574318361792293457068953741649613222783149258244082816977091368643285537746993360757936894777703862579263330368333544405711235648778329189902678030351515151572433053959801560978773857791723349297861170656104402452565568792849430036518480009719538488498902646172552214230058267976926969287737338789848028769969938811890080773000956010487516224326900819413730613000315770196875303524743009786333683139899284611424558320904491606859625638701725424035346274588854752991121462677376455726463324116164288112441176943691993506152903191392517899791060023441042314962098027520703155969810175190532156545811076643334420422672653301741805987550141940908043028169389222924353633072163049004390585087020765383934202371764745276190143394218551885361075000590233896190963464192019024875321462868251241829603279576287943313694942374603974220319255248183505347263620154489694257875081067903870905695939082419295059383941008970243177843784574963522937614438508330218717896871989103699603546977417983051819821577367102651546222927275174445657997465577097069772730082396949689452571849441285478293539783383486152414222962289251670716032701558614770708103587984334324993713164339601978176022579341729413092236648469515072443691260584577552506212784735827246710760723567406109621219903722901400826375226753281691936970787417330643551863961259368196099155414334487970794582747483836142060753251658493415040194746622250282156873875145159393570505033962011783666421533875642789941750208848261650172113684721291588005951210637014371513915974726039939220037391226088569788889630343484094383028505152979870513156318200267910469258315448710868448975800389102303927512914416400184149680353349175283647781642882013903540560182086367469353782334155394830622730998732892121483220605493010243594537332311801074903641577312974563562681317970110206494064414723349869422822285606070487915825595641809274054176561705372089127542474295965222972558950049116116382854986648550299289345926867829573575467893939158643394334025557579744842096536178655787084519474869420859755568688688744702440092545136573336784692820715218403527854847249456659572121613472950333252972212053243497494888614664870203800976987564847504005179677242747913347359525708546388837713608738396100496086086184939220549372172147364738864930818298043794711989728486434689786520614417966696673515171369776517530875637597316810259773361454296422124280375996007926977548787890406764353018071849609479046396906139119093697783931225518234933609255538428770332532443989774195256823762042621230484775523164987438919172913658139108353433749501770977304666484327224768590878546502734308994348155178790486006833371864692224726802767940902309919193629287241048046176688395131595946578761587845441580880127039290673030942053422906894510715091515879425137190929892483442084208110415023898393670948668553014413690850128045614369593698273098223240613077868515862460047306308081252042346560961015799625955217335472055407146834104568526294166220989791127399177878240233838506284208912380619422239357411658003272090803679390983057324317418864755141573129434250284362733063241631295597412271745353179619817441368500569881254692938297149203095786059314084153827688581688319392912874658166688313968971348090594881090547630411516661231737911331154909827538707148673327509523044356782634030119770308537845480684974771204447811005692083473769309145264986239902532575164943692501004910354393465282626289803567071431792998711104997661386579088612928986502343591592426730547425128577760059797003115212795677316845518237447622266051191194886277154733436612751609708813365906259668240841879936609249731049247022135367308806674796866976491773468284740303643675438627387677182225508277753830015617135087707402901459384555532207983222267931440270609703552045564573039641427954772771195744750069490450881003297426222528051108560900833659568119393273859695452576061980785994624457306368000154316606883376257802689298607314654768848575925646823218544662372532429629723567569541270115687185539801022259191158266863002843046522486552696582917471311942758010401536054608252379683010835536728796676160366189069311982837004462360006372269777778519676833983959145786725990250538947424758456056790471280564506182993009337761402502266017911096270805844144536693163208351267840977515059067260943684500016951106733287692984414449287949322138718337122596290000365152605775304276887005396217418165573023124909981215200198395436362182398182954257575402096387201032826593633373687438878680312150450143254967813869147885813240856381003148451075299551610540366704693932289399362549168741887789719193497035466929865788840601836887477998677269659434301005121978740429696144268152722331338290134405559479971550387186888773280890283952778689217607460191113620018006713730114337880886080516582708971434167110699287765598026343065431695460338962482001151115135823935264364810940661990619975935219265664557606830764053486206706451245522007382403648043236959646446519378428120875761659337497496564829168473045364045257521592764216323472934293383548922556399617207571297307178825903439093048074185053790918698116589538771744293064785879285474093812263639386055880742836684865489103974804997668607165740572307111148962405867603828768573411136835051164000315043452043682023186685438824631425727978311643265278361621562329240006605886583808076086757589102434083647230734475303689889051805162998285604519749362020175596186787737672167728552232077203131641942767307261884867094237388308891408190457968948428955149567326102990115549422391886545289758274973814874181631139459950340245747215511580678193291957467406283539796666717589862134274629014334568913471270633579082685019750342079889991739120577588834132911307098412028956496955982929644307019727204767756230828835381184932831575286353195247389875315857964186651350753415731498871135841769369192326319755973917955615571827882927951466180659743047164366500429258600070110090937323918745767772791371061961479914659275513924755525082681904394691642926862980145730590505944254836703576395240844385295418938141501706645067953038873183242271615252841964459881813730134348947904156647527394602457174425296008027184445283112889198869789551370152983529938683265519004216080960504527069246075758561718321250405396225667921498346892669730715094804656113078160208436672628209059045555958885311775244905156265702672864507142678982606646730417391812261941932645902442117296611319589679172736989326137389867823540912019248922411355894884660692049428666037834583826447531044036694643555650466802084902563414182241981065924709825349461114874425237281847908167718155999016962231733183452031122988146242120741099856102435156299442865276863195034859653715532365430748802896639838686224725004746253802351763579732124604450500905311442162389036261981155745908976660265808837481903898211735432895450155913185791658064240458468590410313192054655148863774455316858061889193662914305053550305401851681274921787025593576538979434678989743404928874318931881856077609517018517264271985807208181748409630221929194353942962433066094297957118798782311244434768162479359623582358959610123156991716204629823214761768722496451407091638295859043565934895019867090972341931742523914019101228554782214260563661792423109121363090968761753338541711509816701830081515847129805253071448319999660801616952891813732726395236396665792040511195416878025915873846579971479374181996012372516526426939411647887147318296493889904793508740296256427788496398175982990787267561044696098791901910304251866061308853303386807623748789499679696304976213868072904034287507475160648373922500308343759521460049324723211579566028510192632661654309884262426567775032516070399026114398268665551226546654376787868209974724674914338692747265800716833413060535018954399324339652546031977353425996613890132313752386992632420823204430524164503581955016644313947373460594232577117275147269640017428205071315868553253831123619621880637609759699703857972452693534549429109555905769927988314183313890932902746790192706775929634055931903455027159820188287936332287853419101973877733531806021368328415034448561707981251665658788404728250544203863007918113442523140999360364749172913707222180426448713615824153602233030742553319739850557539035886279581133118781114353938164552446275345368038751406751431029077727539415558637775475666671848649142553018829516214141415788766798909787090612824608280221629329994868025767179976512810144440706929049866208105357896058526130366278527979175317631069386560571164637846290192877229560809870967435793712465071574923792682573834150007292726934602526116023459826095939403078637919085483607219449009239179009893354456480690248527781320015691238755762904455628673695162674377318849144413611925060326459178117812954568496841962576619142600740680254702658987964142152796426476331124559140663122647781093830841422579801393558016370177164327712378454944120254218044212852189652007423722100328466781482949225058614312105668718391431525733925580393120723945733157549444010683235267840928930695663339137782532016318822029142406548159962693424443216910105806662648967352187566930857071849009217421962654809997071878511235981226162201694418269355514385899967573272081558120380449085654498255367612275152106679875341537923986674433775797763552819824023348934368742678057448808182956897873440636208511684357789476436420241265659420480620264933254726239643811950218758685780620692006625813181967169310425762080367085665683757922520929426344501086502170221367070858780045366464469781955777443414358759272473868993906950397178916782277003051808305420533466451265774077115815343800554409254071938648776148536422257767078437671268747751343767931566316641581491208514862263530425405954207984449973609471534828154319648135590723191585454255527871945025154783145512977989329781920785765723207815309970518379166114523860664401595062895583689236884429714870940752647373034505334383388621291379315100121766123088366344117870629251558425509992941885267465213972385797497120451818932141480621891032207945199391977948318400498775441708278026389215293007065496559905005296427142916362123875039063237637928462943732841525221579592366588324615706000472149646011389683071761373138916497252175265631519284150932415599563143600154664074425285354347326065097198744300682720775804123984679261424416320875339396527121427046391693542648784376212004908340181984638446354519582094875801397505639009050846955938646944901090290759453562094934139768410120422225575719941967892455694490039268875738954424147792771118704243933957238290600755962952100626355587116505544074855861219484288858666277334577171327006448760752386066249187493178781006939129170016350818231843481918423463746113561905540991292543800189443175712129734219210320872427160919547384646717373567535586515296647399153670356749412819029177326928341998217427401694865304515495336341747620420537809754237082362800627281221005728398034081823298428591239508962524155424808954524482317665446258551546904648666888678231742954452148505204652082447566805388588132407010531039617768341321376109615469367790619248315477613713424505866151329469169491844691877683541719329810884661820316716891803014342201653666774469809635326896774564173769318536393871930180333428422058662290038766818752054795408451232423120992441421226875475856523995813625191855396796646170163625655051502485016082371475018369297880554379795664987398490278666062250956309445846980892048801465259667557862922184210882827174930770501685527853371715865255209442231328081568464162091984435142815136047181336009848161330341158699359211825885145526136136284266607045186837707528035002944387127393276318406021996430011547621644553490204946007134653894738344258893605437308547461555980827869335472564226102876478705441102892119222861227468289867348404383230459912812610761985165501111354788055711870275836843681813949034165241964994569886162006664941002921584564044230959421375800091819646983989986798464193921564448064891657460713695630091292160017687745702960856450178777641330284889608301648708678996777179642514242608274894184958858091693198306770660929901176645309308733535915836653747684642363682992103740825988877510011954812565814496238922888558930261760580088539490990141647033269275342294148890283741442645426541256942443184486777737587030281170079964421229020490191763778185852372012722061715021699341776911307901726686689176593945604974759665207970904572520241433450825832922812006827248747156938755976288281736618638234978711281879954382928368636157387064154343712317773136126338353751206073905050583128927389271338266734674477406895710125037511050039767789763067022622553858190863287300473271246641039009905111462621651454460115979013090923782964689734412296936390467211475536823554335081406663906499538694112992061886971575597093426538602378349135449832569932780890809406715653962154085784211026221615717927650118693531691652351150385938467562312574927434444203156211890451901068453421542683551076744902619264429488288724255252946520504747136116211498055757662951252596412413679359064013336675285831671586760838265608380463128368736276707583636644423395315877821367164368211568071966069967963386850042637793768635009195819153252286049635487673558699316860548168350135932459415376847513788906041723522197827131448272127932748497820434118910855838238605316839163145089173663166372533526629083621769318955044775668558733417899848961883328498195273892344659664720217182844367970902555316418820490003593189308847389451905518321736006048115442765217959197275835873189268306381653871618077127615564761268469242139242402626499451625228298188798176186575272339393277029418986912134226730021468947215305640085779572963716871097342048109438040733896440682102640612827673413095923294725990735585321149558651867156703346738995416972512619333319637912483975254066232872530868558185679605442706044603916849727273727244188960785598492863463840475237640859844321789811717306657593479860063612333352534235833858712937438856906058768666325397874525385703729912334941573805712551604925985421673900914643064522981067653612634605397931114229748110673967999908710481952352223146515427762463344101373480068032860712735663077720790157013820477261783138056877534598023460965646240945088742760489828810853059620292808005025675973497948405236414015471340002668477770862768043646673674485296584171196310425464229824809860547101273276518017501809276753184856857966246759769727561589278788788486698581457320030596152777797918006649714374940232694669099049802221677967000048507705953155825839756362729687863829236685328320306942511125443574028246331781090091339329280818430064948869964686522165261894232151352349101538541205876763518704064349880015758201939254705798927859435081626568971546990913082827678369819179074406107384853168487538784361779015776141598758664514986283208630990575665577821549440565271712058856443044605121511613133890722692327085917546666845412849763957436926900615944902063137186514032601189047402366252613092443367593194834149707244659537318263852492703025564743357995611662460438885589556685730595919413068232018144070208156014657506200031327156140159045297359299795402673513757157867591504341333404461518271335259881764099286110224193073706395657651445595109859781535929432046749685252858670016349921220399815669646079251703845553324819005240664596154265421836129516094264745492574183786347869595928657591707433850817851082932597741632683352209725054466110486390813880668447640444258291293855464549893276636787049303029364520592634738230549116090869318560446290385380696707443741794064209381588660481557884529430922134517928363398333709680153524533632786285288657552469672260858016919706616579180453196438314386914897785441122690118284073711491590714718543768082055804806267448697776886983181056110551157998141579328306212198947997218059280113005474726424314880281369047789182309945925738205043803998410861977195277024723932655822819205066530980848244750454457154942127941960432965255679557918750156848335984862655600650745912361223432764208108180202194868073760196986470998441362871138855195916823475783195019586257460638025876703126085475036031189915449094294659880192826384920514063975575793368882807372839775331022821011780413708091341928725445609614988700671305885036815138983331198683671777337186554659567628405188422907535200950540149742240230726314885228283773180492260584338369077424765947230684735436316932803224250492630324076858359373701292245901097238963145039075459495512500587121356172692382869607086999775073034736195593212812328854712090908703997595137432201587491961420845750177714935222221880880578576255024054000285909197095383498763584695257920542194478606870321189226761960217438990063197860669722955733340192466451430286898353570722504022353864530163196344194097446532418812902472380211248624182309941355237865482089001680067379560003929176459094961293548142967210174179807215983346784377450958923031609821689368432931949836191084228355184850015982941086125481175057632651807535960442340814652916320041634853727879295478555586448187704087052213422796634974743105815581447706722217220658761363668924996776670209891776771204896963311751294529249510874550421147599861807543048837629452764819251990997022271711810038239302130601837478268503061778826238282561354503476921852505023603719682237971752700854370189694351844684830550670053481521907466612427614285085535151669164544357239881395414885799920929597825480690169833730572369789450903791932054725828129717910251243382005657123218910749298210650807377811409274687269555879593156155806250339965879299910106924377684349178969443322709824421624354826825703368281379744996943969763846330784977735263149395698707699581557551557688971405299705502354875474266643460316325070905869925135588232198889035281404017199665856996858526802037661670814064159791294199732436102136153164733848687616823596673142199165267496544796836728718272300936304602334717214358685790544770983748322684917201392276274954825891421011435187956876044830340772437231371380042362425846510738646213534479053574659774622106599034956212038798383345201527902503724592450754293751486889630321896961372363127288187903042462292755139561976634567575527011999447950454054976077812174812706404666447750857677842910703355806729990168293542770618431417202269302098715211412059129528190788094961957515755720702781256235895842106273426989694660563863756624429271806388646918537232220342486629253046892912882807566291972782295388548562949269208886864345044463371967704023525795741362263085207045939042821508259178158889201565321388988029155106489274865770724806942631335163039371689089327925151561317009113936869353374125576853808610830581055558358715847191542059937383487081841771810178635168663936807043246533053593361403993729298206802994371054128927702441353882022074220450785561495533622025364153933830662745135903577144575069701875613903323508059808876933662359015514367279332279150293204692802515772888326655148526598957910844850393323982074419978540702396155876315431851301253424351177544854066599263122225200260125343724120048051575177256663681597435109170257490539351001099358216862223322869707048734301306172621600143119177586011704437355031709875924064731769426252360081140919188931059442206941311508288436097086092027840944469697890151336568073207535540597183494248299102422033444163956324203444009563789855379248209051996316224872605969782131332899941499734840208626697984777844992676641663603424180275236769474240238473615253462876784204411026770224715083335358203271264571673847681993550689546515181563599524615181831422897581158071012364043915145081274182913820754718463248002853056545546073026776134090424470045593232334766626630468111376897765055392807475780134656741062225069370880043313760690780884859969607533839576612688690342898195221115576802929160233834959375679760429106292038196277598755020900408412344235671498708775951836384299503181968845827932664390208227626010195115053850606124819102867659680150648790742594351774331018409652432116468665503412486630393144085868731048134540784974861700897668143407350596536103748479302622904480880418335944476049663049443390057823578651802087212773078278187561550263783949434011134660799736695075565974435715980391122888172973831071338236686278176480990083015638356336623702071876255704885758427425640712294111269543140617097971647668090739482568725272134162757054206332856884631260430791387243312540944558747416971624591408366671592313187151609626547336873326135325259836200846962274097992812160862980587221696818822534325594198297678453776261237073530539049054334991016953303666713941298697857898648201973097851757732263038676413564129570529603093877814136323657697760405650328640739415199188882279342547418388152663464590845934450064517680605115433198010637662892191768835165332921314466170399782091499585186708811777297667982866327048857240661766268521796091999527969496797127630684504432039576841150338695854992283907476931557923873351366583005591827620367287006614617627279018328148022422309251403683650736746431709022977350759788164969887376897889100310266813359220573168053367014299164559252871363344185585786890971060321030353963844255463915847362649872681970591242691428150913822629089793858877551639668852930317032984953422168576873389680020562783276134613638340438534586381252685073715887995204396615348772270695167273582855082693775027826120304171600703423097702848215685684886736489618005682911828275989329800078032566535708432970383800043309670068526530384803566958042652878122823019449741894045508090708130343638192656877042870985952743349776494917865054567744091744571886216111293864552886185874090335157834231192793152316417167811209692763990444087757880144712386496585677029103273901571732002272019319787888292807150481777588427914022007536450780181472615694829409970358838064270377651390098612742874060377286888654407371101656304217429190843845716690958562203753523183379210494353266596586909059391630798507009571370061125202859263788980987897849664169801370256510661922012350328695779403887126537067721908110261080459347518046409548473448530727894525647031348976405351587822364194121594831014761670191579097098328276011717461801406674611362442749663311987817588775257123949696541470324574288120239265683525363190242306961024723008649957622251497248166333018799147302771001458486977880375390441227488694873314799074059835663902003743883274653669532714628324879197268295720152116647110465922264672642102580164276795025281041412914316610005062882143515481325239214743507843419899395061039553111097640631989780830894981065829114702840601831872248654965297696375825309642286460508800144659812205082266029067810514823010193598113876916303044751364796573558048011914271587940411250322691356114420421335815496891821435043930591740594655746229495999419498805312559348934247415437264671016792572950231342722751335536782497803966518881953924381139070064318380659142391964685116681493587669812682878344627647345387971813851017738815604343000236202665796790230618235594781539893097035608496312576151880792199013961408483931489248351197842406277472008006127069428382507667050122222170830775826272652798395995281010509959946997487473247970255047732514320295220581673969428748425100640487031820202686335585148693888356794763771243130551480924280298821713954985408984380334630366714111285604657210368708300118069486358931931751324980960828787535960147868330947214358204757204251389974815248143488562992272104452674153730077530537646805586755246970725382810572224459395688682694238784923099718207470150755383056542573786864122349376481970752110555615515211411647777996987972208083708423548694618790637215453633810499372296727927004987724289114734465614320719440929466647996289035699843849571423679718717222398136903952409436400886819845910452538981468182340559521158331851338736205184082071107883132571753761838374238784831702697619857704067302825511082677711826323712284517423905965286357755118578691054269739906535595039896417657563740924664571325793105863353649836198387211748779830597639195625275619396517547408746838165366257629474159542480529879606182257111216624964263536078774006760739396185089505020066083449160045819553418578992319081741671793886778265408431764187698382418400826614707052761108842892749956143333274551702926119806378832216449380062327787766918574307413340548894253274304234104819479294848972843759574775414654207778646471809650894445387044988434564983859366418017275286309317975897704554540750399107181326621566077830886622082800935369541266478457979119508239370403790410553950796521719583885897356613304826708852160919083550791777005345438236472920435003095448504604954985960133364324146711205035840191913643405799698056471295849612851106499617408208333192981344494190136715030675475557635340824860403686345721167607729389580492014951418795959067934698392193488659820772058257980910122066141879349239499664075041566498948197010302000798629605173533888170585392641142620999346965547851714398216152180967582065848937322813617620123470761143005154551156568467596581962256322279893439931085434703648116012555060424042669462451136212523236954519617011474496610884288002526862868361273080542602310813700344544976938802579350479036945791585766130702188190511322922580549669814070518607864040795829273705356177089360122907133990510440157020349205630908538367122087718772872254946534454183507798153345538273019498595758819646187425813282299014453516426845940435593270707331103515874916910360007437692002309858713939424942591059347737978496477082869761797252952068749086353223821652038150876677001416356090765640896441210303735971787587538490167550086054766630333834777651829191797001714430540966019837352440819529692269915280560264520745726812369888873522605903757742812233807076544039359998572979965566789815918784529181327435879367534140084486092893444340712944051489691725202589669975390476299119805885262518836331394697922383449042210650067437647364042858055358971876507528012966321702431650295672209337728940630739819598165581087831136762424793961114490913643169094572606716998483747185738129702493251599367597828219950421358372828921270877524205035796220435857139463199759645193977739896656274410792661060571974234541304652806645058225691449342121477240938591191823733120177025069610842059557707439619971866910327201635645903094073320457797801579587226289410970496776935273493458361362682893734655404357049186612123618258108379444544206005976129920169869678250604335452105814353667259835713634556443709840071028875601081763892811163724185505202218869286535973475569245489755190521111922947948359258103826020808352822669158248940471268426086201695053365142194552681920288251271144742266521640432703712880678678109654681045834681323436173529985977078896412291063573219200886264490692742972220281069035106865042754610178136181601539157346813607630366732309439778945835299572898656538333067156901595755481054226690760721592187371833585779246232241555109978923911688575102462208949268065371921362346333662222106523511645040511337358361682016118006643740097359102487493739506468015699950335938255918549627047610750151540622480027528253520181633853353459808585938578834129541528428266526000204356937522036512230657673962176849723598955464498750593182543783123800065484938584707263447856974748687417985221100555955111291820725681364944251493634544181355868677820438640668208096771617203276498304384535370981080565218297473958756452115307442466791102908783664842461744071324019809607478802141901194388533046939395605183281489352257502971508940710017106278082953025639499007801556967179366439450421964709928530848541632482478435862627809571083120674766715850085238212480728501321108248297178132759074599648219513427015063226600465654474119458834825206781595316237914189216010541613923769018768698467145102710677029297063627040521580183471833407425876571515731271271487770973998931101325055054938877364006845290522714321947121552347003613401016325610784635503647922975193866860562633732738083173153570176784910663361147215800473765287890976293642467920027472911185331173860580391870944312095901031485686933650118199016560452230514922825532670428140437356865720351818687345166520556949310307824240378071233941151133853938763611169678066190641064788195915656708311349711571057027187309495690625251676803633618270445182486543699755079584630716604986068355755315926007266486455136177215574032144442446685872863013803178104830782662116714997005562182914515646821500785382610094328994802772828978042914197611556961356960008011941538728251461297642369215583080324089014002340059291638981552412602566751528699242980929318956119507779862870964615654802867290301178673233778199316919596842920138817916726895551425059714873503312631683915250924257984855441428626591835645268414982960057485964082600460285650055773188151744136867056460825711106587770340752667973269706441070082718539944472797317902104305352328225759429044486685836150995924328874073406773026014896361981104098742415852394605297623400216460078942489295305572242057185889722173298230241665045673666308541210733140247192989446578415267196819557175773162554303641531024602963483158005241326535740016333032257563270711840925921396407610076841862032452784766176263466689938824404341662471957476777696783525546206187600418946039308012295933360287943383431129990342395440244027396228937296338974073704369682005342145824017310567441932396397658194205314356720481214398107754805162380135794944772970566130464054191676593396537999285209244231694688517895399286681189700415135718268509133846944353915364861279220901299352633228199851606530628872166239633330298370814183806970649053739099926485914563308474739563173581146819651395079541132675118354295132334321885541286758254094124707929305498743719820235794067960518184019783533047364527095993116392807540562310944842531722738092303462667109804193715407248658170906530740364578827308919363741071908421294285998812676936097675588482901213838441022477331306292130604785778886711415316130066704221892431621390412124059501453080834895855012991139886376512978925462507274574807043805816630719660665759835362562042797483024850022093346230249401044271163133081960383911848488582508664197105172312896031620781132565207980585766537673666412526569235464257645934605968840735581412437174154392756481318958910477238527423140762206249905385568357590784151702464772494798376970707964353742342874083212897871410999660371733228912445808474694076721210725345806026497456593057027604137286069978697728818306292549897760017046577241780104162926238581226753287229701930493895769259500414176725480402435986584225240228129343171782994281461069052778218552332495008866901168342553729067400010146969636667898426921064055125702809011511536627899245925364538335188987687898791485238718117592465354337470366478554546496626882944121033998400020462121603211714999345993377801812359011474305281994529057483568217132606096962711069581419896489268487000762394907242901988701515835812700327665119447326364601351489035697817550991088490014692846018322052650993438317611816238610197593377890243011676835503624290351621279701276094577348354278504868456797441960937642283561160707946969156648425532541531472770429845757936843351993563460836145960690984483012224050041745862424282148826841853557164023402368734811355703998382128675606886532205185602522147596007352097717707538757910306983656672333604186979350125956386064796486356540138425766115388336175909237966103888851404685731015163614434505570242875237244125342216617757521429874346267262457074744487827608201193890976481869169913447337178765455174564307236317354314568976854037153811553793801200106663844831679854406220759243768115744614642675688581765490937689278514972889153087290787907715416391556161084746470106793051602739589833029741921870426108612699431219950545115788647910485312118970748508751881124926355169047066651805394203560002546626304146798952038775603402733676543588743437936381882456578768138821502635299060496162192403724174831514573937916197231190173831797692353354611307857274189968819417827800134648914089230428437941081770576860054503277756884446409609002666312579217222903126586526649335091926463361706040601804642217847881467448534997710372721421080074501532477603498513634666409411696563636244870724190252397221900731048429668940286897441805065249488235355867777243212922352674874505572306045566055902862711911044845046761671047169389375562739855435704221088947842406428556157446592299090594439236445849390452066900416668842447654237605203443723540190158721830262079908549846025559480608014891506785974498903692105998993948025832593308343433976775198938138975595108734239346860551001594761189413501371802272485483781958316664635744394545549271554731755719857190600205065972551491898924667120010174579332515095183672339125880133228203354521521521729188849779572747320764674635485105769729464483148038599134446399235995334565288960052272010497456851351821767137683726297218741249084703985681391278089938467838630212717791219566032086239107063249343127438951220492642603793455631288232892667458605958190402578723064152627679357341522923316067015192710148641730537512225222702313947086558824886179403283225331295310400967467504125672674676707213556090452208038964528793632307144545048734263636437749009733344368699656000220909603357348570074624500129836391173901497415771245004498148187653986805853723555831098780579171819277987867726239909517716760554597725082634509241937444858293597403989991310828052619547174457600149103841287953550677964481947721879383559964633824860888938832236307779256247938650489972123682725132738599031961279755143002849689116319876550040533595739638392848731194851159678136296191353036915930858110260954793851915112031634743464101750735805598834471501074131685182170705539502841801536188727103149480723627449844298513108253400629902055039955370426742680953875493038292460300868538083286933624905837142089579651585345848328701798106389594564806118421651357419139299421867648374153301486735988982494461606273037552434838077039035138360433088358404360647990293517113904623997813386375044170724497032799619772780881133240003605092048202346888988094569847555344150142730425323521612522522132087427242619395702710413509491703758717140972854372981933353975505724306960251311438991479029079700550857205925184257672186936804378306245461047452490349990087859337673493472133792431202146319517777890281214023042073699973857834562067070559802830751712805783244902976498681100507708271619796049515097095492123353075240943949054014105410255790997895757507269770766403719921379715216597857612437447833626648737075262059060200590745287188085768996326111186067980764181389875959515969578780950953775871147722337508216958932241586884351770935213340738623742529896122893032937660116901421896043685014056200657121399619460436986981745441301686626905791345444795703166048598678095776351257601300769342186219426602425809203471123831071716860788468991165572343572108065863975802443586374287122128512345690357898669043105814205737611053029485439412836814168036393930585881201466858534537356776236585593097745744521749087924688161905081811003780306185466947390773332049860224909869086515434550448959128460476659745280755867274731876017333038396854301451016717954066634005453812490332227299782174269297942320622906596459320333510877638445036966097609160216374063127773337461882722615328755219105084249923295163294945770284655532330074094715576353971314538024893924323233691037384046830203899476260866290667183992340625677016807594987529711525733876219172294412680930456074301127789287123337532197474706199549041678589549140946596222551589427856253265413009155278086573995101253283004333711921794078984978062679647537166895823166596683568847733514274700498239473407592116647144424591258280188197967695051955591315767212790728081251354974555378242322153213522501452939249148142126461025829700495227880630862042272868706953214801193766233385856022560506280374695320667812277872085525300630040427250688284555948403904785162796793315478211057310715878105470805969707256270117658525760409644210991657440404983861263958285443787988047221565726294489601878868453852713044252948310687739987759420743171330856233232025482740901482070396151701041923327201091582889086533764920656926423501184435406070569200067567022319559090593994343696705462408593687658217677591353515213956022223638228850608332206398812954315548167080071328089070252152931363330017847322051307058368219927765097068921944844964372456240969308519290434487665265929551463650262683736315780577331099797813228073299629700947879468923142074512717170435703389379734176114605480329029674549600037661609926998741991419927875778121264295195489401134538887448153615061019857084333910939498949449094230273945684405266308671854001144209766030614868674265840757734558567510409012230487647215240189016921731604373255277527613332426393768610794018309129120966822076285211807924773011188324235577288709509841086926773868856688808713590517090994503338257867225315302577390610703378172070735836295031558743535415619042287876367915152185952523904409442511017409763491661846763958230156007931637748478115069457082170489962908368674542726656593685808935498808793841252427765127609125039648011240123393364924101834003310602664416004125412263288239549421716361041404125879641080438070272348878552744999665536742102098613951916949718144977480479591001809556317354790254734328953770257761857772982768720640088340327831839696453286064708330077299100574412073647133281030606882970363197884629763449740031666114478353888276576372777335377613221817253650858891102140983257731664605374962229238534159331714343475499654501500992247559324985424015413075369181523639052735027053465472600973373568187055504867693324842779910444643744173930492668895241484354855207031240309663366562763506146878496635558053965044840029668513255926745136111185461864538823763650757858911823792558337060390696099448891829669824606464831359644570755694569993543119431825811391748369586870601833971089465185315392214096722682776462264217035067269196730612671866713731316921379774855169334378822553697679135790360353239714796827608121132025644881114968680742160295813686616150132331834295111352026972961691194739793244985657113607830619033483913137350939131197850156992865114688638434885273953314105815085281709788716706044310280146352837954910129262576895429858500200789291042395010538099295075968859472004082848049684149754587486357353870358131245339195389680807075949473755681473395234749415364501180598801842347351195401402105573867388318704121375349270630855907975011070954576562906317879309367311561102888667002117397287244108145001081467674051793093937752237169036293209874319520712276407262041469807673381731915912464255077170143187481356788703727065101507496264166374309375969910140509177389070559744041138449548394588398782406817512406409612312084656578726572740363334645794143401797354245218627626325060207396081574476853408175379440489854310981619590018010674651829378772375996317079110770914135755239311443485831328745946507280546114733613456875896810073171890232898533876991446088718309547158496250306258994232451779972172768774408357241146881087112107561188390017212347805487728410688054217617055347406378222571417394021392320928312511601728580995542789828397211352014202111610144638616595685473254012254269427159124485461452577563403541920433910718529147248302120093525657935509174481994978791408996537348027048468282779038812234624417567030229566100078426334193359398839029130432796652631317750576930336980040563276315534174555991859044663456952089720734822919437567582468916598659954551175898744631686541872215803432816390338680845692233777817077483380443088852679757969837554129230304082810273619658911245612341713836276020704799595771004487145713826675358342677650752789165881936461622209597927349210411398195158637558545097309808324220774974371778385123494474736513517812668667846470187623093558447816101662796712212978985345746307005145882138539170836812479708223780884959025500271113395008614626126112266271263129196498746119805112234536566158491385068448374499386009650414948457750030282891953288375737928692602847960673428985456373792332854442889515975508655409495757585743797371847083356115754147720496384236546759642118311595999326066986647247125687745039263309210711802976488103339792784622059724538577154466489991193017443573686820680793028523740067271815848115770992868291787939365845155839859265597814169511871608780490394239785765347227322239637443698950803763039504209895545709888416243965644395344309199064166899950843904325573710335068543452359716667494263288289346432194591474526870448753428283281345252892459176125975857126439534450985162115077829565834647122611343989273107214949249589432951131909466849562957796647190305192767509086733586572162055202795387189746792834783202949751881863888269496279707257229996209786437964543587285933305422920442201799741733569440752274405639437540619606366384380741809961989272742303909289084463342776836317509490418458308848641011737832632993312914294359862500547963175367582187394872434521156182341973447449774373201573213429038258943439214412815130461098387302346846086096577635976342384855507928346129256764772384373151738390616023963669588992826299774549036454937637319117908548945918034329311920732451073918031791769469808255126991583643419165611350685080245771120859097420241552716267703651691687558651593147929411243883643449553331022040023973876079070175623022560470450807804495765828777848266781175974598728191642736909828255002050309062612591010307307683260260505265442809762040114093056209035697479951239875992496705278082273928162750418755126004307841431742939736033399145286485076055837872174981376201398071089024804241263429974348712227947588682825799636705406473790640740914850562421230969826370409553647547181205660717584455714000211027892904726360318513145877521799690322226670566175891153284667642765363043686636595925067074049759727380287213387545066787946037410232191987405820685205108654366421942526863519121971175102012505534221670320510690358198502382430495864576220423011364319117918468898711769124760602651631995435715623793378424845411023164349488936673843504762690127591138464117896624154819408591303530035707599362075488494668441886996706384625445270749272374572374236957062560692979422881301166395720494450242867914996009774138501652663290144465574034912819023265834452275176712874831212050515954081086089683218521733373537497524598600757123513309519368586185775634284587721675557340062575554304850211559007245870948892588422704045599068728286808967272813815052274737479591286453740506207454095107477208641258473867476044754832906726103473160949338285751678433686340616358410096881804942201415819183048081404987997698770155723672333661966504157102215576904014505132107510224059446020729405618777457313296504433049648183986392009601415458373298131822905910453850425820771708869670614738631362951710954320819619111787059369239348845921261508534851222843475510222434649513173298500939569460226669947650987000541776533322432714489952167968554326398245181198448085949487492680371537085310053333003269624651802073415400681052520039948564030996763336764286860830895998040762324532553567560882276079809402288963530512199952365594370312740553455954451156614044166700902923659033128974727187818309981210782643935402089943832919182987392350913393293334829837428035431068635130428645628988093030134828681129094801307993815588584130876951624908012145248745518245371568044324981929081918281344481959355006089860397768981163711581676356445855110528909162330464245072677651017608420435682277113440369499528716568012100356684722816097719364279101451383639526330809662726388202862562787664866412282356223885890334855311172239941493891360049703302436854508564867109486801431535206205939389815562048735555488989533103423468742558622596654499675249851640428762703866057795031718035096181911725787265549154053364452587126982615786315248718401550635956022043743893029664486094059213362555904195651881715034955116263441374226312944952066283990512648321146011520338005008132014227480502824012533079288339870550505435420460392720903837707127088555133654088580937085442275828208390274489046752900803514224214974074727799532533339674844589415100661908900165131242405234030425102142566598555065062550544002236931716343693471651963143723651568127317448170332941271676680371066690208275692983718393367516492614439287210792645416862242940682641867918837334988229320224859424795857306435122067122405863319607809091460222546399767507725330614308969784453309788481010350352560460827425469731582992081919302287342926253718903019590074184928357977452773505909010711257888070410720051763274644572490006534788514753577983424579692937532327280197981868248512377299218085411566897642342623467033183122299015761117652536163095238104786190480784965790629732398575011401715149430337185847120197363076865474966218181087323454835232410707758948642201163698126569255910747498463998298172607505274461020966878489364437562653679382530737218940908231491903294853309368245985964544258131695071560305714578027803152485677230853080261452612614943665135442864459260535644755227652215852364505998711909607012377185325940880397224227368066575360958087437897743622658303909333575013804130524842240267343750424579917759463883158611649905280841279952525300966572605673479862257062387041322119580801268347185150180068170826616581844912982772682799886210290315836906149229759415698478042646143640417999129363848804437295530719008239428603707659465647717137314710840945571790555305957718631737209772960289110218059039051588011445957025565480186671673055430642499179544023358442145706074349501695338033096666463510773417329500236928911552725169542917978705509336171592962063185943196410146578435816955241074993099207318172676620532193719621182664006010156262019278154464408455867973810715440482715021812711875856057498312568883749514284301421903527871049992330696682756329909425213714449305000779975666526072854269148822936944403899284938615255799233321774295290073406317903906960779897305890795902285285619204138311978772466904494190150150351129656824607163318741658174261590380274143292084528359438009801489204622933883394713674658474682916352489272998945636735706850693598410237607062202353249147341846195775324633941562224026482960598243848296288211749993628571275006712255970660234798246211077610940570319879999717697920768019500242054197260126466234018148337183742960629796319692428504428411656314157447345108805198530440378906650747546109236800517662034167394473378976263104060922183245219226528215093000941243455097613498869358465091348388988273017526250687740068906930839224615443902308782353990192609262632285398155792999223515056822100272441793589889616901425846905473975621844792642597563662820906842014820302641133506127184946947236700108910808246405194938021440781778641925943083342118944380453586409630801357916540636962842182360379407630334500405074962464808799496932490312325768718312258720882579670791010181945117858001081384200797216019338986887058053730325698707501947223562329981534085255903704290752452318599427671138062206741470514205501776411330429215259346219498697881630042979446577606840833634546281962674837796743233560004376436984577815096489857073308724131728357048970363447228509806621794581871531545198290000738844752901441068113286495166541599015258938610827154631155734275101368882741229269081780609239385608044851847991802683340598193768403081471791631071224122628881351368842425304321203082834747046856911209003815851833195038313283193904059712064223371992113025717071905703400046860290327256210988655024564636582353266319944850500462438477876158395799661214242806517205866639641189302532610841036718037891062486748361635182235936181532000584556941898724623989457139004290013746032394045037913335484682460296360377410214631138100248566677657096273287211082239869554551324208860838907840479150896403013171222307466047249443090190334882259080234491498369241897017002091160970550298452537339700270450795651563174695965232024136149400388349292384152514736663861962336284549094391389362158534884290521374855536708527665822368739995424975326602449964811868017026251455826015318039684514099783994322274562726282723742647875961564546901560642780426036443288376407238232653158876340217672182792298212729963586101687777697220018876195200424434681857874799797544963029418011343831151120585802633128147071796516890361605623262731498497462925144054769900409702300369236036137543377737118956884021176829837866751869886670045673730849605388930759203849983938104867598094490432868286800160220093906520552063899377833103817574632504328444566517346045599934959952814355349237608581974077778675471842301810597807459640628823198546959243662727888299510813127631143265055226326600640463426773400190663563044221771697177164936876059223082391252050819129266377103985009615065332151809724720043023550582378989660125301268120380996906607606033296905702230336475738396699216242498669758304691451137909753690556296332777371880009762364483666546625157962527993959549100539958465091023032325624068358425583855373573049953110698008828065102845236969067629203986514986619935349101230220133508702030765522616132445277874013421509338454653072481572029633986986016688894980742428414952964179567397269809471118740457659960922048289075361167426238844542132510418122950268107448957641105093830457838606339501124838340624429985993983851289204344561694052750404599694422468810679731550329640910998762972129120790958570901877750039842335194969095150189153685760836268430645734755151753285136909949434033338524631935683856475598110594797133779925238472909609951767176497187393333770335438654947877357209224861938830721633365103142115690694444880334344914087069129994030999869673291767875947702394173900497605537517730572533143715094606966672455706975791742926031538181688947621554098838579834584698556972444903765895332031033160612888155847125263887028241300275944616975308604124143873349321519283526194597422263173653704706540641626432386987668854815176933828146450852070645325021576872049377586563678768034879628649190284622369439998090221450962672946306009864402976289630919724569562297848626382783651050687691338893844691462437663735658496014408961926414032499670377029060218936735898696999300886981713490596220396904913407467978101316502459821470212074966242155106955438788819875300859598553329416241087312938758012592243805619165851148927147094339607860086553076212412507451209801817790727123963792437092846398968283039378706657728634084690152777180065118573535180360720060819079885847184135109338323717947798226547031426846828248908275161155012465743316329504552189433796864097151119956681498367938715596974119000853367334715859391646153998605409017364471490985794044308326704177447312504714122906313464726584463320583826164945228974938544166487876615219457992587412101492524456933636448149358217834832046349181411403937535165239482207873624535322826573580298807487032081942627053608048202226679526516953332591028801864362208230209803957983472580906320434160515660560789329256140094147905203471147648195621955250528218510977175594310511398096954498520638555966696852172792577684292028985918319511193232538031763576105743308051949161161483031910189135761001191591254651611014243801833011827657841184657212881690403356665730848482042921069777145643284376550756368999837014681489208696429380579162569320550787945006921564585013326493048852862015314283594825001352171808594404030096360229767251872058725539374963663148607712006730465081857305655397605442327900752167516762608384445495307175450284454558058800100234186041407672791034464079877593558093902265009534953826729347709022223409330047428081988622055942923792492344424361675195562112923835970737798267339587956542946934971306184443202926196604203425372603633866296347908916885073615061851517383408270051269203349733282043905590135483046597711701838286493371442060162351838632084864589218687900969511014757515723448276017035912888638830213110529006074648050273582303071392997807847566150096838790168138619359211434127458166264487874921628346170976327608921757714748177101697991640638394077036768045854208913880641207237032745645701752080236934655876734929647455225219631264786441525956107487220664935452266522935555264587545666918253112242116730347815946674015173586058019873809905738795768589435715944917560149847936638153080004712890931053332245246427001897741433991444354149308396681383202647474235196270364035810444583283277290839617067003071167261802315816106024413008606163770899138344458073315299686784114136533513507149037187867642444039177304978853285049548364722061515321216397315932427909698871849441871757089115351043669314109069985368545371557201266751712829101665266604294934643731459272821398438141936819454360189367341861504222818085617876600466872553686416843965107781790533180045357392353938966634379801970858280095856365156921928590146342530866891384193745948638143346245884988287723742483959445615047561314820026145216384567412951047438702692009919323598513370520136331705984178035308485992653880936054773858932970459201225856462721917732856009004155075738469759961352619517601311833701422884821052103410217775205145894731651383569975396740725128410399499111430532380708420511892642761945668990828510583670884874630579665537805564489786558000947515159235953410168745526958657060593849775513753735040055085290605492272466654706332720878359066309543689384490510367922153091613999691713628783321825119729754523223688295010023986455830390636092902086192929077411208007942851873626354421095368081192800189107153137851525120606440609717577131042713818720549244529487997112904587674685078115723321449586289138760755714209122875844697303482651189235194994180257868605906536494645401791370226428382771824303193153512845240274778093281740031641117265426924270773572372497157882334082264419899246480189386966971700843096100290891153214475357654263075510690083358042615240060331096932984222976232922676407102346514673009538246247588926436245940166989133035956884698991426577857276625312993472789090262976806785155676637937477814965851079463379403352711191033932445013880464493798043628625588452414645391452745841211301823663681728326715715917183157048254980029835674654075550656669244958116130122602124556739247488035218316231169576629213610598201902221705028720225395305007627054837606038455035424177717873527102798067957465612883392922941290984777792611710293251347717432343577940869373639845236831414775932524446248406843342643962404165052299585978835212482807197210060468639852693761985859373593134747006023329190882235606792955845866023503139884477730998665150569817023785711377495419168196117114047366264177984862435983320434504982616091806413802302351089796943772553814094335832897494202250371447757318475204777976656069934307182727922115942463539148901203466363382585222393795980736393330951382872522467516790526606918009567451676277247975038654594691856077016979496510635428299222949656711124499001608779837115211187527211481300364825346111926795189508239079885077168950998974343350937470611813227881603992253515076909256359483211409869036162775589858706901754729536021272468513826796966703863947141328480026503825465254777592557478690275363225840952109637192342992752509539452561134055660042879370285497798368498152998960322683158570176153495375543905194753181396451634585852521321549639743541119455632676694874169500543883284383288790472175949532453142139038470896149682429388811129605869936676696615147771960704421886385595933586798408307537624325591503745124594212444279164597118747650901565908378909479804184035989513537513489843050810157677946218453190327378269058606078179058720376086988530092447650807457440457217870455681144638340539816701424751512561115724711259567109484686307867125145499549036754014242274064690262409350475956615827767969150481523981044116870056985403686862799723288421424178672033019112810813665906213665155365374217939989002038838556289160707058818920894607521837503875216621880883329815001168594585155382888625519333375907504429593173116504002605425522707447470137123380395310598943952723255991977626671880899306558589775062445239535466512304815195289487118620826006954495531401660396724651222646213518808509443986851563601003453302879776584818376824447432734387748717027967819279918342752194538501331789741913823108135856991609495250321089420282443385688662562105762667407183666161152835671415497042805887191116379628913219630954243925375012560912751092201332052675834035094106531138453119940327785839354222600501008681960550321746343647204353446408641249288490597759800354630814054671175969131536928324373286994529529195908265562220330691438047583304223169916939889843470094641588153479305990805570473348817430520729639573388990742247518777937640662494832296064392598339945934707978285422668103649927911567087014068233373514406088801570424821663425302620049517910307877139180142250923021664480012781285134284353882355733395205395455123064414260786700501179378012689223704108535252266201697547922953559395386926613638122381776316427984930532799163547163735719983705757813492342931623289130665902255180493147077062760206044016398421449817341071590939547925647442164483743699182473771581044131210686890865775055909041694147002873624882700322599411859099076530260228663065450783423583203015998652590734337355348782894181488653058131479771141802711339086797287356090073540149887608618696813082521479586816858006263911059101330875028765059067750527822647674233390171170369819785938944196999786864635842807072418697445701004849893102697809531889413288511746817823440972854036917323152721705556174575920547304388211368449326908054713545194127787627209742614438533489483632333196515086094106967487537314715284915234164687140066236456066660877182287842543894581984332970438109456053220731905116643563385792399088149404054987332531881632972247549393177778404054651442266694791467585356072721035364636934276759185028945165826612023855900770413215193431908120088281326955236137867286077333979951892350010967403310200826430664593019217183512647660748386626182646699306780336512800645484242415566608434055220235078271283328942146206780385596107243950302611287495683389070236453656345419130723223435499063761274625962723958623109596488673403532697358698612594077654846024539171082422551001200469536796641797264982766503290370226100629131714185514668722625651607807297513359496726321065540068438497533204453393656393407934290194356022095702322540247420042804964432543553516423994159432792809490167673233691549127820648900684902364402337718280884598024232737915950149238544291237119265485655446490809074607692285820980576204649097652941341177507386427858465340208817350391916835148813292375053892380109881399749476762477054330211248268043738005503009291226358904137088432626566190151405143151891985857226919285261227300030774037642214724344580388103986698212233552759201204468711901281525528874006291930303155843817038586242004522892992045005211652617872567561002930664726218122817510203349790635493632077018478414654183091178584066080649565878080848078570226871621441546211845199817460047762960413265624976162795387367170205329406982793700475346765210091628949567917512834663220181962092165544381013409161037484967027359289065642919621864184595138739102083332383978467089920803040526273192467397431078665631048630571890917950349661458638043888542460960006531938128522201494876312795935969434693865896721700922183297303340300436603756819711427341474040287502390784669615216448216356544949163781889266510574779312252742518484785067697800547993754979248029684358359579329318077876481227382541729085829227350074409535534290337264644289036344478669473544798503039215059811649746976373744365252103914481364658993462012257249677802282597909386949716209276103999085451240527842541964658833073550661566417707539032649497312295467103447344222709667993001742458198913748029716922600583299188947663747049050689687946856391361788937386201598492249663044924301612208870078874925400812228007859276088010529527376912635405293431348428632509597607996581315691482952689592895159445362464131360597550130275704343654700709499268129502853401233406121509322232359852967659570407040154513947211655056488838546458321651488471882016937815180699900039482043017910474789323538173781794262873491076719062781128341329816202176533823082392504693282115700794254498370860993795953325845474809614830299607357763028998165159021796962022188762651505475575743957661727642696537410392941534415474429441186242510902720564416270401742857261028901827175799418691491122963382714028053401924576685336579304112486124058152511131226684841930453227886402039875338954665851838541331534003744041378470702992282749478596969638221086891044919364171270219955640110452035150691042649220294546349371412241655296313622437155554912869722734957973407065067886093597967395037902658768081892462427132538747755641806088118205445088652599048079744945124717878010390236998383646260859431135591244519347965713505811182432519260549847897720802668052691815422755903851239505022678475409532243337094398234685053239657516316789301633628270118569543803198054036661418712221395055570194569760256232443552444324239814790007551350723640993807910382677467758415882399761703559486586647278434007837438668592244783692722941139956992734183333645238603337280983823381449830000494554209956776050181064754646233192975549149054663221004514328339153451519243817226544557186248061410799561014324275989034458927464804316731761895571036310009229254628317204536382266261893892890878340553496427990865364806323919453375761455802520691375587774847847425893008948449833162816892749269086126439740473390853312223056443302462202816829676177312827517553231061451851934260888912807294343039604208198051864673541342734876394258793253956598169620179602715202714164392116849550621111155857180483882755542335168664755985107900232114425963944411172032684340110189023236106640277216549468785507548470402623903372884256908788063965083937778915735215292467788969662085298770250683678272409825269185776473442974391205566652162612242413015840995691619773259919810416998509828678763572851213671245530742936180113587184329792650770746268658940864733135006625856775914584429612798522568471910962133904209422515424995576179063249358178442593476049765733547631127336706100578480215124710593704865139812426903526484758532647304834356028878449343951895065790574987707488956277472425219612533413677336158178536249244019399753480457012780023351334138809598695153556401784483245688198866710942994615922375398979745407758819325914543624692740145526570663751220715479257802465682270844728207720051817760290919469186529878770456885697902331461851025199064789481081849333084004394939608740828052352270905054702185712943224044084165801177819962265396782387328832783316046785127734986418198564801442696991037944618859463304674766817091978465326787447133095952956235928158823138194356452758053923693612686024775731474247593387092594404095323609424469529375864647582924182593568627281366594441785419082099236510168811351570323468192095282916293930236631071422601355931434676746436007930838766076154345776788404121836619963329576974598768786530365609676992175702680681337974478789710155594150507327232705753741873492130551009676690030662653605365898478286813947454901563557165087981901215881829388367983291912146009778589084004651003911887052144454082216015907113612944962242185224331411147641951519009638670783406793544005858224773397513718323812473878478148593574689451438445221154074069585981982361095376268829727610232161475698319984705153755145871081109494158728753987280668815033670571553854650487530074658426383874679200317017698601656601681383927176599186613191007364918999804071107755463443519258575285902387467941133522304271916875060995467350069430182281401239037700235425557163487539157870968033844371072945452346795259836738846868638019292337014947877869509379787822362769517999374263593287063658297592721835621457262078497357473188711733527202918733667301264958733899797729726952995662352396062667710265591596905011532239887545965583550568540254712511296435450005406880209552715987976016366339551778617030685701828323557218079950556388296163735081827769772704902972324997661567281894955832068859315476222016490612803898591818841632326997589048113913116502141965137541464529714177045042495225510174109574620349340224767328784676040745789631034580754113152979507992716018311356941854443792258567140183935358910978157418375246494707148377929597697562031541704399081177907087238482910154882090890765942546855476713539632587982281901058581127805397679229161991722264516480259923937754114820858497191302796592622781567182695596868969590683193192977375197907625399784671096082495152863704170376517781471651063605282078005118786528680908101878235688685394608011389721794447541802669245071667433992459875436164954956347947285397375160705921722829826145219997772874389758632590279734503611810326579494941539879875501686877845301760919616547622515970674847094018249171896420926032705442267260640331171709829782231537510351960891163189946082625025476843216664279977555986650829918120494293723799484332074426920287729664197415608429208560845975385476397788821702700266712246959890388570180859235292267897462575909909074988902200138879819730940683237802890202341512488493224389734148013858065210468343284632476163123680171411733148527482750760041890549228510514969383361058065317503641013403234051570451270806949979404211855558395900266325625868847925035210270109100405165996395833424872790362305958898564539161507183871166403937205444292228850334731914550844301936143406734626290140188170573937967407196894417478841291430417686606068019977485103974833447880061610891022303172273934328560077827602944431269278860054236904589530464064823360772343709835619053739120516128354502490127024729253087300488742538375552328014543466017867367318290220657022936219658404317248623609356474291418814585021488832204052657772080518164655003760975681226625772808815539213091007065178588667753072744518530931512747507809206185166082754996881443589669046243359310909714121612404979367051011917351789616134989110065847195032082037998881912287061764291380252703363061126977226475426827085075134644293486908111931599991049004132817181327387869027050088227834557662285994508854273596986560019630556913609941912277276272197884391963910042546008242889888219946809683467762809228882856514083322077635422779348477003807830926059717824884427832903434092963378103408720047244427307464461698746646154687383028548484152168058105654829576577137221101171507238726011344223042922949271992553529901165911303007772991312059911726394455118771863292022761984094003124241666163544952066091495860168247689759297123738758501261972362922387064338593630684121633858673791633960892944454578122656992649239665461064597787134794471262263192631651751748091867772224564699235125515727792078734930627656797464789450187826393768615116003134844560218617727276735502171853351926028674394181315921061872654118261138058104887378428838271424242036739011087875425100335048652950617926849194285870658083917192288060280905320488765798843263097184373090331109445412625710202107545301234520798600015382626746770872418281209729307479045479308166534228009984540101166059100178255083759249426682044760027246773513470705086582820428063988394362602852306440981295902819549389732996353488192642035878032091172819659559966279168419014205748715847813335067409862620968745099539413876442163417960435116580727723954934429893559357354781008609888042583903405212353295920309239833795474474137636311309585092151998235178343657455273552101198273515089909246982827060313617787903124510798499857579934370986120220240072905056471791240849640339062096697372966772823420882578454462958593090464323962537691617620284939304577345541501768157163092157571522903545939664905312668223834090585585282973298216137497224729684358909614413505322433380680802415835014403166073153603242388867092676850090050661877859192802957855679604230744500113932458711519457239314058936749324047832646692919290348587910971190721633079795606852362628021860863406282699520095924188368535872183265182011967312011277617499463503988223286384869518971657005470797873574144568450451564657476331076045943259542921159013888497886361956445306931279124691437383977376844803584005257422347043054606274830172923956575189693947478889043584920887109519935593714803344497277404354966177319827823165927105838759504264442745232900929315989548209344641200975260811716599547618645958139899975154008219852746762965278701471515662428391817096342118704997859926109577383496364962069681923491005570764242723080685628082497364383988099567432598783605190059004758174479847874529901714771267153311112988805871537017415930488549876938042781408401309433101557951004570442245394987600312439547799639656943837642388406161514271182581926587857777928999522067438997289489386539301804649405900282329363410127181954317375174492132917352111823767680278951287647269324038127752133419600857283525073670270414216804610032407566419176912742176806105463641493930790787762477374890916350357122961046923263695222937883861858322013430354052867365740410623765549191140931852964722431253095065899966246650803151928835458213281132348706476984848602422957875863286498611957223410241798955650464509005652580413105188351875067363283831330787144905674334518265414141069751076320047013492110919641724801615652894983947909160482777306325043213160738961145387041543283557141409380904271037308657243504566617494113626988655792887774917825527455680352410526323410168943574539486758804118122576394659887760919130957537579872838945009089057095998134671697353992056223402505941864893423270548737729248986909355081695254327322700121939444223475572706914084189072088312879339388532638927253028861676964592527873635776746608824092586816001395328459278921262217216497229680346828418322321116872065893453857155202498711840893257112603202142660035034333912056140148819166473959935044495864309601222958793716433154984973159607739806657714182477946002955124766297890232393567342942942509723145055601581266156873629496948231453508421597500598941842262834137995855785111769905609119294121325282716719371744049126586205289886595498276985264108205919231197101173626505265083591600373816924322951341409151609740756216180605065955588799929043425015924966055236705334668756945131959643596310039862039921914725091985566313824674260681936889725449382244077508266603978196666295501871683980556541965706398431551539749637984098996666922592753281857620714375488389612389268582759815240708732560999407250819662780564244773615867988147440196638629864140463198372946761089946291061237199534692204176551346707150604947313968507884810514587882484396712285157513375227827195946997454361049736063510439189239129369964361638119831310811160732949639610448204212868097549967492174627097489038013693154464894817563328309504112571011224974837953140270651340957777628349155295423584542265376256413930951806677530097838647856100673806194167978701481652634145731548408244167619352640231578740017981684653320802546487157709389068741180747949162883791124736645346013569923303298730941353707721659610146567661164114043129879221777941916158062352147908216882253165917419721095507769484876052002671587299818117016794305434530441680425271047184763317737252844563311451390557138952639943387123311717447971363050716558247172312516694856855843581342039356922611934671196257675396511238711643186553697103663375978416601315686297381345883789391643029725675782695858285479177756397498786262420232657704692814962125512282546465296091298488094478404105607816477911791661914576334834891511208885126703476889731354284425324649172967537340452849162547618216248415289598653308836829926976525753076305713012864782212731040666529421515512818573085065563504599265370986568358824174022183150561368782676933388970919159795130592237106635876310854085108141417423808607248563251930339388051427905018837168092810372293083711468768291265816207355339770753195831010239907956236082075941739353863732817361434818714809537767567453769117997310609333055821063011728536906622697120553969626434276732924594229334766893599574439552604749043851842168809866015568614549172149520538839833237687271873165825629253727673353115183484608471443486186467590066560788527921539420449806100602974994095223345645335411021901879951182999477116445670018740371993920097444358596036426291170057912164090356091914364302979445252980751884739298762312828826187924234375128911775277590515571117499139934334800798087742269310781516233052721671856548537283903748135354582419049506443996711668158621435388262134144339691143305100672580095072774114402882631762823870161803078161031842970569502787597822387261816360447635418316347032783475363624755898379614381983916904826745634651063232857113239393176809527450360357476138812621255823665018183157428803877183222221237991836542663670148014635206124337830540289067796429464652568849140573117374383405134265693292780232287237434514071017089694702563120670891602540000409910648185668634019417680147544091342784174460896010414882854119938091016401964669571662402669530763970962291541302556034906629683434907688058966726202897447136934744602364756876394448421122987452564282663505839093573033494215567499112698109123622187845861390054191442777013150227581548100534020352661659128363697772366056306193598294584306146501339426094349775790007167819209512025158787652300758735149101814663674347831870519562930008227016768142538026081945568340474997882905915405097608982754289502267694738322537448675449192636771947304807345152374068060562307645591037402645009252071958588077059324828528407314739423179984210686362116982602107364059007169790214150287129041816880025678086756588346699738483545081665114518037176623178808100160371918075374342029833663076236444610744420576049440544245598706913202536297581217924882104562063016505798498736458041642120760584749802912204445315805513419999177329778141776219176242262918610888476017677617362990154248337903867776454909674368939786910383912222879936677920468600625628893879677079435395190980053847187950670623756452319576627576736507701199310411100395268790509368583507842283191169295449368826100841314872881135897666065671284458163461883958114447516002177702263079600894942616463507805691747904333099426254983433508263652148400452378100232394896488854791926419927625957972461603248353460917594675369011957555974479746130884236933158464899708811579797222485557735330308474893711744105164565594019170703630416308449759870537801344207434359999294321833160469917755714701902018875018668725863557317136628678504023003418753649417636756286821785511455665923439582295592656277681689820405247888060854042673097917196971934731568825278411964584632202205667751064024355026593491589455799247032147985768313602605107341724838132497198277049263447667780721880465897555629427861920969168141131514220001051132798103118521386450113119137631008865040156692841413704673577468107353882002714588302687709965052975925431906384141991884585771697705126831764167196717455158172607913686107365021677822823993870162024801944647065914332726694191160150702605095892654579352615024957992560138021767239452844577210316881747361055645455558957386967782412555950193838123840729085412205848945775663832768556628609133607947080134889990090106326279026112014778719883869864700632604111020793868787808072389105404933301913535701922302594053325867339233212340675966423474542101371530061328089657126189836773512588814260539635697348085375655125176287139226032319852480918876841720985606890447441380413660504135740199959060507971884139934398091200895418334105785454840074818120352770689415999021123115395050868059534793826534475269911032022532979258110153228899862393073056697075890427459483650261780381002172662697656238310271293666076217019593197352078482876778387647456885964858735059041713783548428419050231649486593056402939396831930216900877083570232952007281414900364273306776003712988234244483679418024363980496920573429644448499361968974280045742349381874944533166237397988613265403688904834686747302889530330014951232168099238223111159638490348414103919527267064024657052114723155327900969530601563587986716367372628705099903388672079376611824758873323801008613889697276043203780125490860981637143293427029592313420652046957337072896702191738852813050417727647701506855890710715596835586473244834830219450611027910327575126713226737899599698717548108967481751965396255048941614042961790526394492887247451431084255748395321847908342973590035338362123558459410142726817341545699174941425696264281723629781088426926157546355337101383364462859419167347262720276856128853307405742629406338455176946117495960227119266469824991624933796652803100400079722299898344291453647395938361254878046724247343478359306519643654635326409626597913222125901018635065840410805736753218731914203796310921110452234038463067279953572320144761245628393623116390806894257423287761899317236658840360295932522770454917153792767956253493405115810039243198920953572254215521558799058699252835842373738311100889831261565483406987765752686268638118405368482426276986132593736357398324977213175896773709664051031329027680231557816768540127531119278077333512698025902551198405303933497881442704395029462795969140661359824202380398968199487305759792032132115728491689558848411141009901079263011934630925068119639749725526895057405473309690003832298191830229457608538481310483558927280575107202960432123241625506748616939979428555006046645439436136523345739044663372794413174627971089862501498207064799434620643977285259454803644059512069511119660545003843980342083787159458506477647530573067537213483009870399506889968920634830680174094213604768899677884203709383456462721971944688660257480442455945967460469290410289127482878105560222744584564369777390553994301835685661118601329447171352293481799586019415091001468764669866466428951516210473159296897342879014516972754810195164601704684388182215246973665672854864640289004842975398398607790669902224030143164797127525425149709666422538277339682354663763372360883750887184227428072086750361251462520691201089270457362223537921858176155953508865291222424951430323259785902918178310524318841261963335860240859697923249061649401596934629895398543769473908060180602405178945660988052006117448549942686654813798296247310477463297753908205281630855120357797363238872308580917583693988602263305270342262356943174873956339028646709808608533497000551136117595268427319548173785146970394450252236436409412251485582601648917561907557954960078260174288383662885824285824318121741753512735723901831516902570931062627543137075091218347839411996489921706951283480849168764037751254771263022862781551059836243254263303064184097290139918914527102885853766191648441183115227939612718137096813524124969942647429817065345752097632360906046159144102381344523725204990512908062602620641027093514230063552210628073669947371698225431830744113477824035158860685501997857181548984814149119360937384021234527109729333794088723304338765551587299192558887322464732304968012700247313276571178176553371167848036932178045790902348983580441921024262640279238605034178029217288407240016943454233390248523253580735179147344796618804223575066702583678919332058031255923412347449133815010702593424697492199497693058891264716252631092051908385606879607405190561479038572970739295620592060660070208229236478887161451527417096065546975638447287220606264863549220859301305558941498375256113212939765136289909249535379802805105360882103819341456440649030028165303262453616213077584745158116290195190451377158169860836220287317948409808473513116762189168408182567838888428685357974036181175239454060215414651651238549200335107102174663847540636321462221405229020886951892702681029680811555211793485368433451737509068828295405971018806221286385925906132387684251195349266345566857259188541433158354136326616011327966231424295926656906675015360610367995606462640792856357439649440813238063043411935576207004948926520778147030700585184084806513457494897107251576574776695243669811351712711878749779230365093194670078742614205035093269126817370469859322399376697886706357050416012173856347282845924882471141100299976640708673716010824122296495576791370036669996112964124752796899648588979827553855645124494599236346193518912846279335578808101633328964375782196114134856817231958103641203863504110756318010665334977548148094349078172171494429396949582758023487021833973022103795682674309806043259797510808167410116031595097559587089200406800325408447504810279188007644038454941115625385179850678304430641689874060192764097617231739911461211005728818723674121747978886894581741794333187352312364517567769860982607757213596221870394222205844226430078482919766490019571945570677615569610964105886434715998255376255388231461624860333114799554589597010465559005065124282604622413453637330714387216288820944986660085925121577013086368361383202210722307625816703622295888923334186368296380640477811248702693435640322181575417658282793853655860683651061090848213876120769121605898543028013944237473542058028717372017390972577602913586335307705119475630740153061617632574126557498879402191393853723906546702591070346523390595516543388280870749949053802364638044800409953648667812632556745568233602543433560119925026206956528196299552383275987002980149418957791572436173842709715886351657092127403479385326862086968044762446268265088199627435373419463469541647375930461624626074484563244972025821112264966035275214833679421614452380143693480198437484854980679424512332943223683168232048771323212544705426761917211535526407354315238150323412858514616654047271759331151342025214151898252564739575079337380095845493805532952532160903849694471292066021109222387326135405392768883116865962927541876172107017950530702228955279493852059612519531405955953414183311031965484288623112662500621644903830403906246801675122655829208729723757242234428148684065250590784350036623107898054669541918345073073774947991969835461160000643209749488433467017163466106998932059860563215888103363009825682486774756920539063581560758388932603307361482809504161611203484635047763864633987276743275236655701118025022034157074629765769368709667805542910240671383421015694468586413347331253784277795940624562698282724926424432277267824801353183800372824634089972100475140150403613902701030922629308715258988606386373809800988158036462089266879632726750718813028409052787121899483585861620641929947837525474388919765563657119217973799065419205961777821437478634477525474727083440360293376952119087559657106257222098645979917566282939229937532447763969213732967111377050422399388658372531846273493028659449860080778232620578214898104381846284425847141060236407391770491626208383333608472825673036007776148099550587285590090091132867866034203674953399613048461610338683258010211443199191108830242622516148558111197829914671435131476781095419477592174605467669987846529044081607047719662999631103067099724838137926622683730847244127957557717211012728429244631344514617996368274029704898007747886205044773756079339060339927846517429232811910578727956956990269389181601492554623713299794101979635978068217437891735149211675842936103503846332712097885476150054996496363740749388524137337584047792559538559560184042863369387626747138731648699704232493968659470061037126734621261268340361396136293226985473105393586754436596543045908467988261233149844314589460731415161226702525348486793805028948135010904397349605656113881125168509108754590513347855855063876450049394944163885442477478263810974602649984891424405627982344750053823952118787936774763219655003863831175523907582845444204795149209087935003830617311030271955529251656174645603923340263523010747651585508541955792603559288390552296152694162769446729193485026783122977085801678055776668133541125337915457089557308769690718529202722642134883093121087015357665622786013085900418497882702623510912002451736629246370598991377933238409578031624833411416905438753753210757014571515438534875370768638288853765221668548447695011605330620962743170185091107581616725234048242049735960082243591587216126241315349615593005328188675833458787050080337192169269052448161787257498909912811391741181166263840420103483237167454863892716586591936058303543596516253827664066133656853733872985100348579654471209906553457833003071702443977144392792517301259555769113231300208419623685972555710592026468579129005027883281378459237841358355562307823301304992284974770008431474378192027889164972036833428103922923131911160003923941177896798130530994469536177026465592367776675213090059317518877904738452536223230860035420594275624574940470553194006688696884781824207423740120237007415340334604221029095574900286639224714834832550808683679106604000254282038402858789640402067333110070014547081855002765001685693681481271810278676870876379952803996087493238956664054052137548208132037324816367781566141386438771605106861652103936622840684601768634670398548654367098207416836771725332176397967743879959952459851754101895062285087238526739973350249300184537191693150179747068849074128133643121749150834391036686176169765157353004345754849115188333713516940276312895507872800355040202254873802952029681222638828844665285443360539961749627650305235587065078958418488693950220647987229319045220767575183333947316492208361657070971250370642701543671452492154990609910304253996588080724131182669020935177657691798629294603746995578158151162899952723587895390650073328665410890495121061679537071399473935139532418665068952737815706583690643869906576628179543956847053757485370268043562505508495445445953610067797087815649845606514397148953881500488165409598432979578141924736457162938302083144621228209566557398107083551455838369079766745718649610800236866017120980271367618889691837156526037293135841634163699556998423567189585476879557883409126143170249664730589630503804868304535983538257335924409478361504908434976707667037099130436776395592072714180056304130765229338785085392177646593862500004426229939291866462149190085468867312924076353571334502948714810886757057718633257277739512071472217904821384045389911235473244404172973955080561096769395283729568248947216019327117811543374853781854285856441180511369708179392100688582531394496081614373030936512920923203135171820852695737786027897249834021928101687658099664180303651904966032877972941779681655389594350851878691120117383895844312594587758933210354856389979925931402837289883461513487801545261774546329984204609436662225684446318073455567482103197366835455769594192313684032924155820884813650516362224028717276708853140271428795886423436491520963102117202320070056485449485916679019370299822037138276246275964678681399781803575202306734590916899509475718783948601776596013704817007677152007582272819026884690558775134260688365472632958882868903597305793618448301081767496676929130885956812487792011535664120167750566834599699155816365704843289374206121646282030664456956793615754406307617703588421866170065016445841689074627108114158989315208659176647768026896278978041101485243929621993355743423611662139962881546216111305450574989831463614612613116974929110472663573002854815959155230954198645203266833579966898444327540846179312285875030329303651581420715613564433876963089514975385143364708450989336318613921713547393288281433253534521715903440856364982832418722975221715604208592056215590798560322195632114610006906542845518759758185008882564782106639826802652636604762718481113767388546879668168140153287142630689524553584559189175674923369883902265672683838635085708691074735681066986933848466261302619403877516965514136265058190516685611508599175778856809026101091001784874895271902496101524414131842943393520447220186066249283737497717508054025503386150298630342265633286526870743085693809882730527220807823597006422140360966156330824446741569399847019361970961250281290959870665943986382622697037302380083490039176415331041098053989587424953463115124390016656795904551163067726679482667034698998418993410530325111088498146363454520382946547216604615884101085564660999159058805413034293697672364114868993827882066287027935203537392131517741948267658706535062669005268972778375728107139316459104045044992020743820419701888543280382709034510482578483614035559025449908160010746060694073677772145181475092142592206160003443151844782885757338492310947486048531619563505659510318735099221666931291783638891802058466151546442446484828937568285597483093624885450997773779964466704168158274782053275193872571910317373138503195231233764050487493927495817577294312801197226259759701212367633206156699736166162982151447539387527772383558583926736681521965523398774848863586075775069271390152475232116599754068895084482887179689513697840316101704966466841836661486991474181924552022339309569293477896442050378420913309366238687491220691254100541755925369881076079525667474726302258042436030307483255306404516914197500683197966700787781673797707583592627017256256317790266536474340142667150604763974685456670427809837022076359779749065009846933433188407274246479078466876465504042277977094032683931819445382248239570291440017727691295712500027067608738768872922199532479580838342339076354945850687040308743297335013991884576785901765079579811165056637945136991993351652450705617868473345316096070455823246935340088741430447659570819787201043854937532760817978684327303404463103913749866341141908019232112250465004351919442716921333005877287774477595816384983299789495261251633630764144141416553904306063199700016360504226146971626687761878431461836283470630786683837392818425715035818878842628600218461683030407923155532618591181996741299877040780544359454113161584276458967508192074584044023708111125778443890157947185953611596480104652785846684848106797108555712654652297022885079338112326884227633629847805313633635198616916435969170003858043424992375270831477792111299445863449524841700446185086583977430100156381014452713001098530246479719024283295721479604814529403793016160216205218466852944952335099753025631374157705124222665401351567167552784053414849394941713725631046100652486062604351712183087578980397845593033296701684973630070283197553259660048074939050874775293363426784978236421297715447911574119710738372114392591721179100805099276404547474087198931192039587600763372011374247264260260722726207874347895732755409497658901769378268852761823653502606736893410778014221099031773693287425477126903281465777805499765244103263465450188441139754126447451119330487767691149463739174996506239766047615847486486009507262982528711606719694728385517542563097550780224106556810585162911238469155261195336514965212126272459112140987989750819148619182085568090334322300673224296574806146157042996125257210833876596540822566819124807997674122142610591520062950627870199027437899541842568451824697643015580687348050274108789474776172688221749795147081551200456187886360042595411287864855518324342952161012924734539892708692785353780932347283862750275262008425750896463839472200264953517849003109976380601973998148513519903913205567274193879050216104594748101675395523784707304497316228483247059867500831068509490209064829581614156474713580753790253847199449399872662142713550533109818717955563752817732948173448644242685209870759142040126805040754042189688400998197490864593706639006599909301443728214345985637351165571860440711212989800707195687202296038698851815249097768472713070487337134736311653872590273436924587801961490060422445665144589493804905886391716742560469479417161286372939368729964476984607559451077697919531119804272168252116423802189468149161058791647788657468944745325759969192228103554248912541736963098573063584854255643275430097501456483038064320415036422165693268907031212455080602692126172731317752781001653017663401457567005009415738661945700225965877590265364723573884452433078132276237944563234369103926721762870168454335065609851262537187723212130305883080428189055672784634112925438141602218597519681029695065837386081266774079520580388796334209708647300990183747620569605890662521129987007235074839198212778997953249928990215973698362868217297725790370890646001629329199108696234058511483889631072762083822117889487288364356875215223842119449801117959595552024020691802520871653399083786701017944356081480741945821680603193151124165975554982526866548316981764869776515588273857297214202646069458068717130440638407488777086681306549276206100250106632200672765741773576095022014408224545647222385644719019138844058364664098771851018927192526702786753969809421043645192336353196323531011452847360829267518439241622309958306935772074806317661070122997676275424232641939595418527478524918354744500163966459727577419016203068598166446992609135561001301632817486982741216599113913431455340904627116242044539956927780566314588126293660562183311419170948472861674943741021392876143232739536638482856444543577620489819864678698973419627507567261072342362095713791893413271886956439562643220430441722371995661402919239729888880561557625000698443150583597240238098415375780965871188201002369666484867194655413907990736831390159748775125801379616704549812833662393280624008310821452123618175178191265705357276032969693225599666568820983145231376565750494583241004356976467249894410101891477552163947357995758517882658889463331991827787667269870964933627268557540308158104426604521861987866350562225755412903992109164684892850059220482160019612733567410439467038212926674193748855383422829059700417581480919264672799023544194161615752270143527644431514480444664015046960093496481232123550671583346914925992850748008193556245905363152883430386989393402134363137881064620159490952166426655726687599515685066068640576122127279426316293813357667342390711210627679194617406126599416907878632322011283087898783916282374690936388636609141314854700665152965132696460434624681923048392033460721698419569994384494653251332122228368000054796471048975549720883964644311882022554591171024350310627246748324715885861512706515928244873564809639055515088272891945325328333587603938656836624701840323865068687019919931763620008469032035843925442062731444015070528346753222417799569483215547919116355240076268914965086859503910785453724694185272828461905764633925534258352972285406456894146524859914303871368017933344532946587998617985902422941171632135127880155775838214176516234060919336764491337439078948214640951504192763367862491440038110834334247096473146067167847196021275131354381319456893684638418090511410328794914261340369139808314060840340326442971091160546622103941820877990195155930299178608283283244476656685356516983697027586888678860310112625953738916322841218405943506997521232497160846783290694060755031239054230296021072905871443414727772492889443046871329027121086858596758614633582242782941682564552943691876892782336096962645473434525499464640214816356093269775264353717545830807418836774229273740408742594848833523622894883852637959978038361966697276811259749377912880460190811586610377250040331022057518547081025636989313576725179663362906405344163071653692488347412351593880658990076740271619017331015888545737977629917733889430168668458150634498499944209522697840613253437232099046147763720624157944686881028231425145853658884588172003826248335947448761830657444780282236380174435479904780568513243678135092056660041963273712646407005099182893192182146249851277247390535519520239376558093585550678848103878786144295566262933141181626821002833519778582938301261838187027652315842278877886232984777994122629637797285215464972782807004950817433119402628465769016920811502673058897554555577793505991657298548594618507368991837859403642673656721824353755038336327802944418427381482279602936616582182093468171083939403815588798979867477383358358734328321202401734087383642645621260804009167780432955878541617564574408424095766214689736380709273749128482242267472312021137856226516783223720642217281490089205818481101098113319208343092889405535786596231676112223487542820593153884129329127125592916973119419747704919740773964825584784571290344783324610732049956191344796486231261132994553220920061659389595081687045869374655781806138823629601308946163347201087438308367887995992462774375290182754301565314126958486317505542209917741646682519010393146909891379407820754531164993200053874794878411987063929293762930568803713406089071167051110841708372900803291013071409283304308825156415130366186330460908232751972530474535160258010528247881774424093592852797143834707222098534470981752952672668340462154173269842596087222621181082404901349309878887183340865356978137545308757960111907769118100630721789906424027561210312952287395562503695707743888215586010812480451203773003202334794800549383244637546651236683088031947164084923668310021377752832476016253369695896675417655203889315529399436129781898742147275404318874207123658632815613373320274693003539920065207467230526006020566758052311266488390549782774270235616212061430500374129063474083310552978616825196523908668028788262800078041166091760403726024803207240989023272424032992469958900191237234569440003910558722054512243131515276078895872309939471279394719429679836280166553481833729389627275944423828323711244606895367039715355416694585605455615672595073035165225562019452788603711959709152712854523653111205801910564584963722294657570879072406662300087845332820467178492165250888001572338770290472401379058742213558132414333591820429336714782594446028534720820168889019788046267966640478232571360117894989459863245089698064435844655753854847606527078030764613752287770715774457593556649845369151759793203205148239510781499540887267426889084931755562606140703541994160072161466108095030153413264840054727124402702347582171677570785151407923269927727249855603199945455927144289451137377226638316568366125537102096726100386068748780997129038267275933219405676350157707690605118200568953118244761309953184150522785682449322651056354567416256592220939849830429694147423991670625548659720701506625603083899678532441475487583859909351975104634889278815689737429657119233822607825274855217850175185948519977347944821715980398913613044149022553384579610267778523543791181985643180639553126734672084468169662009960958468254776119076934493859664541096694744131989509208500101916153208207667605944039060757715775447070180660133197792311371273511661916154383583903450328842960424169914499882915121974213005163810361007648313471749895433248362335567928376210558014919019623559039251792890680686179814132945742598887980015581189132585596250521814005251803554338344138183665628989726217294186249345550874344879593546201861397790118246678027334831624450387756584606373210317569722164792585544282669103037644005638308852004041360374732892480213829450152841987807037915003308723415802569713802485911613325485683160698869763520575997462782451207374351447782162691221591340089759114415678515618705072236963919780560146991374743122760196560371899220016177175575703740873688009257535660362093195462311512660026733170210014738635160197605939638026693951671586512178365143424979529272783387683757030102424163963400080522958797512086710511731641080613722762224230261323616562743197146403789663862803241797907324426615470382625263596218341131576597857546892209513998945721291146097375389540615755325626802631338137912673003056911823401859362507349507427039194388564112092327382832484162671985463143856859290358996793042747820906807159612030569477403508208876823183988202036567390653354720392658887130906618749153014759214970218528566418769266205263326624767732142489249023855720689179397009255857050560755408230221027286242484494591917191174019273997199213589390914358589946595626855013748078845692952450378800217392311639603238761231882158826644945160836462802693626673913894018108398556693312912475274401385319495756519682490550470286161838445589928947030169876853452295720010698001372701412607735549002131667188509841552050550295377093050262530676524531846719302399969444897580247264420823694543243832303560260329080594746233698519220624366052341448989199539402145978543298891590183205287398477386677701774223253373781797791751313391260354044730073655915316903230548993665090999106587258739487449361231162432918754410756029488173078585312457899047357942195046827207610662690901208140987414057580423343593011747200885526373307335448166939883125058976077509209310083604504134175382126071252327454813949629866099002196946155523756316395374201399826095249852571651677423504679270509400453545703588794579375730147184736417937972822703199016736095383812965748919115316392581989136346905625047716773444531439796422864426436802697143970792741083640134474014238273007850407121359509475050230658062799954736455102516742039779773573599194739106537779264050716395789979104614342615662699452384651237440050444898849658200626410441263668389680760699610463327223262313911547523643814567648526374036384749180542012084846682467026309649293918337493522227546855574753771108352490678367178317963723443468916874090845984936396680240676596267972870696546942226467497678508396650277341600822346648328501718960976405966526368978452071361122187890102779587764173289097311079819083104218226750428390727731000080651037215995256942038704229616412752473230107062078226803852167238843644402816674486654930136480597195463576436701641484978411468664931606146872503131862242496545727065496279634903881763220281013866601867227002767129234956004466226022215642305469913001551211426586854828201856160399433081014673049874256373597161223953976122222051663307000866119829061538459261753846423230830359242284577307476551021738215667427312268884503369607022640552025588906743998866402848678036634914857448135824115396067219981997455947279238834209715730448895734462621080657512747637538205112265420685436209477494276166429016916569398196778165942289865528985479420779215183972648323714445817861040676563119910142166612757189343261967918764506057539876739792313006430061950617631389768950157703429380222173124755952569875726292319102417831129400634767399343453841059499673718375828659066415187928075997804500423238452625530995601409186452283695594741967146388492875560049848991774782886818096944868310253603186263152049082585872662481952253399583462627087558761595420152340455316616931737791688882470444764840308783232783950041985251219606358508092742822501528276466543789284956527501445154254738254505317690986161851962642898251365119305126273754202913201439258041817334619358822580735151805424059310983381251244994010319030230033053720562472409871930193675835478093067873793454966982959144648806511698684301797458033880791181081033993952074325191682863687095908145211293050934547003526959860889837910878561940732766965018146737167480527523196055366143370462460144768607222368218914457246839839369615420989927897882703715515032257767049168822205699157157085244358349255284938558733392100781381018142013982391022874270796909890882171853059797251135754832776870881717097780022792854752726047199573842691747750973651062204112588625465292218101403683149778278658336953597237501041473663309424181943472941090508631218604347280272387129589793157417059153821102494299954929609608627586950932965010812246863268444468033414733938127905318481334321472909087373797506648278193499961878354665258266370173052857134143510266505142091374018586626372642695753076549680175183008675939806238195997151344983229645090751785807834474580613206864333410407089084182730237927971890709863049363039087878792176543661793930271534627549276231293933713629974670822929480574316593265300650919311311836018367714046525960581063744275536776325676075628586537376135941044176997003761528707641553061430102994949570956188330024795078996546713775681293490097586343442967392775484607258927093173977743809890692835835340292087930455768534757258318115437945295933423027538023763189151139328734222206674941302984234639461686339213671080300731861097248336459529444569693428378055456805952011666765045501773306253686941407636822168894738616983288795000918757554456790693860260737161036381341870780340581034779852227193342958304829445719575084347533507903084028624970760671601901226362864736082454866751801381102716457317436234455322104000706293193929302072697923224335853431121282933125842488357394915130378171001368667005767452842807822094676607660841722425976072323197881770669560487111448296304753377774375286317920116542724573760430515287345533885969401734737905899761218670296211956896660660214520405070407049847894832922545650001962884285818930730533236675694765442866351786957292048220573476219161338881358243682002425307273251646952267386109349688741444650318995065527307617298640419420830805463780399115119127624113196724731003126291997678051939675607014039299705408407441771120793588948876894644474554211817226854614454797387370843738738269397923364122964604832868283265835024453342649866729563489479918984039281118436084896339668519310508145240495624598487704731137620236226865142470951834155337494285480976948773420706674313523118303680778255997603665516367179028541343560631372072130971281915794969024730124437491450120380665852194909039724189164333932133408673480895918091612714993609380571594357065296137195801088681713905136143501720149220019573036395630072429121103666073045960523242420237144731290069018332137949162276174380211320046554349539259114587430056328497986088435038983251579671301623710688348859753675629038355484469938154362899881133447882442579056801600773971106268383317278612182170302998322700785365232418143197394805982646714273334921551663178008749235314062286696497682036256088673540250553306534979108218699821028650432472753157250492255830108863597745737378009328437841304452456630779901881130539185820584515962373850702030383611115834269484209392427835639264901209071102644960967135444488051068112470379018615659267480992071351170526125431404333276139936775758374334476093382225354867260383871150005117412874943805586243888713227857561734961667665221094233969284453257320377846667693922849404159907705181643720513165268391800267849609273194586753822055978254391256947358484109708148172216888961341123718260011249985140638908131408656133885489485177219655307939842366504476712518924363294627457210288271308266861595277493923634535290702629423879728509563694704245395509805080569515546840029904041534151927272163165567032032555692676722067403109720309045437886979522272414453561801890672123180777987425589675449889225688187040856454562812446872487157032497319689818289870403738008414814314483097126621228418824454390388447343959154560652133168861282032740254969908498442818216729237318374231596673433774949116477009682630199421004775577774294484964746224370005855077053729465317389205216401982149885702978753918500386879728497518689968659056485332561160568921674301555347780081645510337193646178660983252170101943768202222808830966415048228656636636590253167308558967273383912998857767833876187348015352752971349855063201075702197229781307592372333565741966099544443311021364694467490779029974452536707338751671600852156020820334681333934935034420931145070775665362900244593390492345375170410026383770583411714477578484336223773502820592347801072903896313627415163509904723388890794310941965263191008568943711354332536716428747495330327548927322967705239813014186693201831692061153261065178687315477669809758527019658195132416094371175233505009446808562791295013051619942590261762577194797147770627188270594128113712476838882055668889639298325671049967814665660215859541983164584038754463957540666645797213554679081209252180473735941012619887457272708010940742243556613092756049670139883924896513339447033336831322387639756175690810924582729299798899029772197387479082902249820166694714068002492999543012308883615689244512298112738068420692462403444035516554984236290674985084255625467292671278752809942749213377382971775081212213793275414921040611649357262540086468890559787201886304206133416055716186161644849764310864442035039735865630319995782526047867214902843381866110725903190248294621087676039941726688684915136466830539763690175765424894871798622589294721317382388145242983824561960002311597700843947710508096535414821236729115873255143097891753932553794563506489345706962921023345606768107417855124147031033152395085676174686542645730890546876106420396759288720615183008483567602605002071758438886092547420141975931623174328555816958755140377840558027616685270163803619637133539696770552272599380843280266252406655875101250018130667782094710351236074091345656702549727174331049968531622733854993256925772565361203472051175523011420235054162638499482584658128932583506176911187140615430070285836177281097398284761778861243845528603368328122918629105078893650760555646829642313642014309645459217892049195543665569404324389204567782292869948243992601669883695384013120607440103133564340100603169144713606121149836018609164625545186219444324682499658002449852344731245307874807693836065384180501896154868065648231063088373232221872562767164153124350691786452416299796141138553798157508998895350871135054228964099154613308470492493977163612032712357988856662964262836643668833305021410300219235608748297326298401186289272817201018182501387695762376296333534965548686716500786584928641679864989359974143233643430309895898310609758774966431336095853321426232647966820052651987999673483598443419722232842003374652982770077536844064560869228376899838310401172446334483790997304599382688250144741674759194001871724524372644635196139192506271990107527225439929319571901319431994540073783002384356339486489536193803966681348517801232557146763154448598672326368882178836726119513029522387128802388191872798189760394709957722957547597657671617347764692478707000131243193930450060343516145620640120789562057998716436622309830166433522712542857840190362948906509702270154749835461182774269517217037175486520147925793046677684633964240063651700614519926645015960196051551795602640542068182074505942475408686105501877252924796977812179170080506774101861722522708403759330961796957118573148145618633696207072779069848542343727055601059657927874370359213311569196324327880416360219016298773786663915499928148885253848234090183250260790425152459428193377581013961022054648545669553010233502549863181318225520983342789924868193666634269744695084695298451817686851224603149085656262424690501544334969774180357671556190193211228419354378041641375115149387260368805188563761665646597035909485464442130755260343382806866233428646467509213156327156411292155661876944088961373998291945717547200272295824742530802471402977091078310809714505742561757365232653079531191156959847821355524410423939803041399835895504535633092223152535161940482077091953018233401642652689585688804251173358461276630845276633882583323995919266951329351822837446525893656078851870768765106506944344811415182400837597723016272332361707825056010683489125913469278539498316568841908165609675026809164042561882498763045961909674211156383407911009754292880326425689716911401891463867721896912558152341617464531493535264850714009979571583717533856984320207625088325477660860336539591287883116436919065723746152959410914425986532299261954351918147861114426983791023079550427810610950563284623942160435057098032156980714506550387032702411153769076205332329920729684292133591801819851605150614917032292891056711999569580330865390721948332129110057212914202185600963203831247131120667304210318439545446064106620121137089119071083787281391481748847771125467690837646432396485487394843638324819044145214409705852025595240150774868531125034027145876379865214151432543598767027389730875275667810628895512504331759581103194638211500512681460175837441570505904428586167016560027692188756556821979984643314906418909465566081575780662817332308546616011692106433478001414885872115380070353991639818071791955345410058918923514863153683687614701240561739254512417298652459580915578314526774783566852537951834598093009468893976332638327634766310334388040493962429796297860974862277733682763485547840978225780410328178851143181079905159233596270350078263705893578793678468672838807996480649026830381527212183508068262910963401891208779405645335102443123781190443929440405549337704568659504451769440578604466953475417824808940097430685501147882581268194374300665058598500165397386829103694995891525286805906661431903439517770252683151330058605618261226670565314245394307119381511907142216350553231665227229370560666813722608819478763549455763508249996963642160940429827181699589823631525046073372315543611141710939939809812211141615038734958404382722374086196214434608170335044217959051989872877548822701061311753240791192873635306940235081623768639886270664062745385926358805862314668880627901094869490623706495799746816294508194892579695863453875673581622062049511036373017350755510200657899522481849217708583092985691613328536662887591775278351811828169282890572546429727275764506238290832371657576202822821868783633551295959656807620232343037160105794601202968573623968967757005548322810220261869693125327044858541115548850424730714747084953733069337135781557385703479860690055948906311249776513303092146562641339671864459709570177075202397165069259974333646256460447435319333566353274524129768505806403923308963321742635496553108978568120141139421900184018631552001373711444353808049489434954616045362865705839680481082619395425773179766296346818352395918648702393631511119970233986663111332025387344513738992429179761544638004281941472947274765832495319973060114147603950911637565112631431700210033435326636632384294560615960718479359920638288464384343655243645002644926510120834777710846400214946325709488738973104931287482545196251220680355907039235575041530750355838108938866882443917942508153743776806965219179753438101469891287197898428364898158947936560354108757775691252568034066298095563324804676199616812550792119252048225708734363149418287623562759213128568105962998521658985678671860003595504495160295343754722740037135114157975141214423060122401604706354711537664825995409335480900093801353770461234061990783636033632136223548443118566506810217324580280503836955013491500234027859781014041009708646949375391089704970487303740789720682777452363928779395370960862554028601101419626836983936986279485594706102271145015505405577496081206073523217235260608538635382246634652504185451172809278416077144975801980530285568562409402216696403265999669901877427884379903476118252451540089314203989213680038332127172624170586336958257292217306863169418120886403832077385024038878080178044294508560422254225612267478989506381379800038270573581648895931802768056887952953395026444644377559093845578913070254438996824996288345881907517752855692420351078549704869222319367442877198022724062617683582130462996745053180740728626807807403004323985009807686771052314101234916802212703946986542488641245613356089280661459151666536723600716559108766839666246183505198106244539543045468727581628782713272623958679905317026291920944531793440969376588367399971466046724447912859483151722273809013765529147173364282246058188006413922846626950372773327411861982490690026195031468177000185737281828940335734565572416341826865683100701751712226999898763977977920206242248486050246528450835542246740892373082798830362682668632803445359195513344943548472071997822747782574486555170126607875205998494851189123679460806701491747261210449167256585081909758435240175992268526591218989980066497556687920880923618871640874509946310686290405852550641970780207654496306942974227132740069937122282955810079962699842055872356521103881556529065692726834288279279794672188345556983576897523794136955487968265832725265951175917215380904868041122718111763731859219144500067575272596660618388582530052588688992968220204231264125184533544222447697669310372986622139912433705972868762732825710576025250753536532769180098793964015121092513916370443626916326344709521799166507662234972092633158222155116117616536940537274086848312731586891983781470385880935174074014592264449795185958924512208806751281433837563792656269765410061888157452864166917465019230243074524761555428111004698805717488181933060150033186829744850127907413333049553803521432740857966598225492171781303344445682590728828159615003366000433816087544528663466762783296158566545304299623993681042245157442411066712300709896633340678366284441601053640559902878313047342355607269639954941963036790806545949052245517050640959684552160563408644275840930603360655382876450030720562725947368197816056294369392082659293166082792780413704427862884926657658162856359083899663346073202057140207126452958996267108558649893173597117591393475967172201573382174199839954789987893455642600158794742098910346952938592529478532525461612420088458997799139849055003731227539673981722592152448033114237037645959692266608296378803265976927823451623979091269730811140387494475551599833127156908969411131295140154278011588752135317880572933085410713040075016008399001265220238442555402299199535698151837304723098904677623135857422527078169958508891103289348223810869244612662759301760073737634122766307322213093350270981040970064961168908770066503739329342207806125339053580965365844933302550200190766171430447146239150576947258958877039271467584092574903810612417417924360778668721131584811784709070927767996945521519170219576621098911750925804743055418522223122118507059775670344914745807287257685190088341243366418214279194318206949510047931811993777533051165505589123617129890341843913864905775394408722748722413189468426929097747606674518102150684101321373276177720848263410530133205100469295887858699291197391591432069652859024286121890516148791108832369115063605035087881661091141096720539262381813496692442015137396116450797488307899352198836600272693859240265605180259454445734160961723784823612058135172914315615170616752507864132656559699193496724406733115106692233607853869146419451559561099732441643111054070971064732251456309859519872689240819836459499759962473443106442204577721867011323813567233942546322510311951932567522423601189499463966235481778408724448451699194992810807031592065174531617180764791055076240071843121229489951685664864449079855524609589311947753060058469536531616331059276308842563196702822968138699048237438625563300337237115688225508466760115361945949876090220676253317823600706647838531117966886906164299745196777833363192160937735062560526940728768922250231329664486485310626618553952104006037358535550923158670353549131836096267680370392848524678368857951519101003799507184611242758309358753192187659930780276174487130006731502217413110489773510864039523451729789577441144971135473688872065312636553099013474198634437798784429015887616977973580888016309449175619290482926553034140771264508957375428029565835132791159662406493843971633098456600621144578532330395642509932150555352736234314001006933472131296388696527238405323139679714830270099947184085815895892239136549396857683604207864509770719963935462480080513423135364471029914666101694535511008701494977787546757840351512916163904209834330983974172965964040963367539986299499862579525980525301245600059840974395818040532455173921609066821787390452069548056632554489670372795378811526471327695248089529290773829927711916193503818708186566436450001581226211177139001105791735511138179821234989057721799665634352581009374030341660922182246942505172692829025365958751787045592406577898874251022173700451470586689408493717053653366158775419389137213704498812358591977151117543041868544012025749616649534242816411709985468791088189589184036558751784043960571785778121208777297533212752711442481644256246717918932210597218793149556920957094876026921123737545231154475429797752738874188040064371042441076670294926137413658350665094398031457205942573491659120788189141369042549617538417898756710590913853129316353435927606511204775023045525227852302469364347629309433760902857539849022760034823760182410314195771149404346600299090902616548671376130504461789034935334793379809107541466306901142265677678048919347205044772422204862350404306236415784626651331327294746833580399707204007511206506619953330921737504934583452996931007164694771599468305057102062322610757025602666101999483076800690745951294845803667136178694620906609616523454780237668254651234897255334372824466777573104952826527333915080890603592261317411946252523189065757283053426637554923239279494655466121889825326648043948989871773245987422439478816941483323974284846459566744986644107754178521511361511742934852900457329446208787347727145738676499375866210731706053030722032275885313483815933189583633800928463504472207010735101798587439539590929259365318069404690565996081488662864656255659800779234443432057645284772905417373883291706845463697669509487504385310030070136675934922567324518757664131037841306573569921394057023792625443722398631409932624870220333294412064092578106241445198848460622360700909621222348428150146955199024171951145349453310417314110241544869511185366805541243148858232737357317906325970318092688184028732034454634138579976562778241925116811724811048224823588891880047684025340061732151352824983865785046395393045292298735330429331268297595803432918400520396964359809584195939428036791605170463616841685117035262096196508460277967800254721414560514078305576058847289853756055119873199780860221971802862737952737838658253909764120612501585541232064552682138926385005774445118733808168361095758316398585983203041848478496433597654974816955752680056021485044546099680696710169572425297461947936706675176183625370912242474452225701282120394701297142778285308472556935466871153579024851696950309960348744227716998932687218671218565003076644322725602161454048318261720311002213304797589701801046763504827817208645618371426492564491584206902462177229358955921282362609329788146666081039949212391984019616684470725182414401474396819115478864716590249941155344529084483545745641113293195353960511477413065234445175139228240609932090296810787894350307902050484823194308758461566188397395712288530423771589395019204431526404477571447717893926525001560723505357711434848038549401098487961489461080174812770468085926430181955775372683389618649104653349641136086527023284497764616311456435715980760075748736636882768346135024794838832413829612989105411736200716387813400249099155362995197879425309275744398445997272257965190776136166512799121410214851938964411130780989806244316675092652807291984425111441161917114292471729401791672875621011703872061237606579626002864960475655538558194757780910236352853671793501256075601973705583947211449629993145470034964678807634741259724580792956926073133616423177665426575427877811445795640600989706844681297289537251842150630114971282351126657903549115453458828260170924365662901244930220062630569196425816860787089028750581754737748784989282402915807299912782618954254349106844341568969430260697518727236823442034575515217017625216613752848539047460260975472050738164693063121130066200231112440729649795624212631355897224892683966740819964150240842611220893094780011623060833449098692230738951755802774865621129412944462622710987322006195876060250228601544824202649527509168590347027422398914676150381184779071507843322771179971452838687834203002227847073904659667805217536124010922960101075005094266989176082666908039061025856194395298068482135683541210501725271221512605613071812231836538948170258829458156064884238109108314759230484451476360213843005563360794371565643926476507859612520582773850437691980225886635065392776640857776172733231660092466806967858334398324096422529383503403376045385532295513685018357332898476371694359465876638285848759493520479984152071431071632937831778407907936170232245927049763986053929230821817643616297711407455418885954938322175050337800635823446206428341238605324486268336359976604499306427298922013150521739735993110144218041109363264518975872021811231282324105764384249240787390584782436855011622553272953319743436655322863720071209493974327718387268602267592190641136971769527931404759910476745055595032363559751153711174447324037677733835026978253416247351930318016368298243392328109602616906097081773977185682933921065236810170738010455994428888640184564045116074882802711270090958068704291674196919619786130622313423907331019462210002643559746102952856846297488705099658231575019931213867325487474322714785230170170348325023917630776061953105899083588119007534064591559277620826599110243707881458670195386929810955502275895878046422461819953232695562620987468719132632925282493549955660348324410695818626122593156672919594563662545776390146665516665632887568571886613722461208896429339744050661058607249579864591954778122335510669649964550788598874301504425351660549397703095213656342375924010578686987154836025344902218904213587214886879389774516027390823637537189809137509976131170914201655514133466438817786106457381442743017594375986973181549110615429330026705907447176859279294968014630762935217951972396555827289208033006103475924008069506729246842718229325503888512598419146138125840167147813811980356022581341700508862743548210652978523923601105957003524009005802535844604959394518701756237988439785231969917278346156235782093120959607813599598633844970611841123304152655135907869771197225337075451740529692779078973338930606534126080466137340121680645690806813473702728955727456439779653967391397977408748847859033159632088253318519355081982202501514787074132535076514911611941620089810766483252135718287598567840442177790450180262054193172557954889325745914460066835323720976917607424059178713111704616294637622270711820232701856846616067852760301931485468400724624859649227736458923649768121720144667581328691980369640739792416336338433624258482897089011233501634434274610415274694323877733111302982927048417854853749452955247358706046027216778648895868722192275277558305572720219903892908036391082595911210616246021294958866576371280884028850879794820989473552055534029857653310387866820189118701905351819366197206213429161145699495253838766135940803711225246892205652186797518895866142043639131583883521925722911382259340477118126362368489525604939945333628778755803928871040203648634926954303117441107687372984542866241931158669719975452440706353554589074902759143280452294550081062766769647239911954185920894694182166165037677322957789219798877589616735040758507238619627805888500367655103964226896182417265928608729582102297148653101867423024527039506104522714582270174795603469556875774755757856305001400311616838736915862656515044942447782858987898780978772683195058654041339773644746644075376696153653834493513098124686850229317484410727290294449291801894827926321495277766300563748820760937622125605975120934390645540342549431525847482817810422345760614545031231944668292677165616274083230224223051054879767610900806292949748476720043425046150818942065422803421276787858925425004386755018000299767603172103270035285284881685116560174782695160997979609595775458595174339569045684156943405785493529874398209367712616211143334611050529656117713103159622702439804735989956406848049533608455554272573439790288327044531509411075715331012943719405432480011956120714143740390112070804251313517681097435928277689760728592480593699775173675613682186336570922786998004544230403342320986616027827421041624289417623887207567294435801299776068761102677724784543881953408626553025650972211672567340271030830872986278216515639079551024754651474448320655621417827214882045830257106155507690803819369612818158730961895249789056014539010358104415994745767635864838334298023940608542428844970837605883801366892532153268968187151224716686176034937589385811916901085911675296426517473399803963193994827095168308476554701229017041707854986413363585087053168490542207622202084272037813499023986146843722100478242204887208933819053294954953633048684393514491394874610425911606402696084596548889249603949736034464495214430556543796416859990192318967455500436023545783033148326964464218045459317517095995294318651017195640128665848238289457202793829537478291846113941054000637209733556392069587004574343376399165913067147247004109981259892261403482838525352784225361339086319897873700029104827596062409513589458071883220932345974064381302054436633377931099214056692429112791090649054371502882673013827387779525463974034053286677698654577460148558372000137021575593726016952993344901577098591618895797903860304403435561440940793032106231256147794831882204898403853448087267687446731741881936149663631377574644803552256344188595490094533484650110281197452735756696538997588176809215520025354539050530708990574455900908890347633532074236242376942898384321139792548859447528160343919461798155628953122246123927897357509237735823926971336917253996597355972906249684027656046403412519105226506546356245532217856155633640181620168908506008149847778608158339815958891375096772760399718324632958519285836728598497473717777854338207579017307334933153318629660190037822373413680109794611618669522671223749880119467732041406009489105754103130813423256247743855564374471630066545715548219103736121300833404973156978803597830154418682764340571110858784581560795597234263945178650654646146010653430094977715214055469741444383422959831720683381995001636933343336629585814492278391052156055445478829443509348381267953302446150417575058512562443459770046906507887479421909101778953863809411490293140542496271797606470264151460461136838974863381416545880036054335639214944400198586422061087791609984888606777824937388808544894115262858060357310213098400457027319022171290079212023941826753544013162224992980168403642573570948269495260925511864223394199890599636186960625583110282012660405744055644963920184821464849330247160775846925091682283220011674915963245620670522735571518323672189627020548081718624962513110192125515669011360097427585778708406986343980740673374296985780894071205739812039232325530334649491404706757719177107606872101441096666144505693056904903040933004103866697301216919203693206681939446111596647904294119485894857250571588762899700877426517338787534656736386999148145351809393336908255037884661982201932159144331881867315062347135975050744956196304793458467418409233589935274904268295125156132356593833585199131414574928460704470578447394319074695545788683419812008777031059152401609863289901397982267848682880349554420179625776076758426224690675607568396092549193003137247425413519540558246623612596150222652138597989286406003351677971333147956922762844493730827404975066120227837152830778911310992770238718874226457610855722177960881141676006931448382051580272287078749686820033805981413840537906129296773632687694340513871061104049386009718096595540239017590098157215175668587850641614103229251556336808916993448030509574724464666177604761063443651284703370397572979530881351356141283057621931144184915052042615618895724562740684197064549966490907951302753868335090839164960856948193482569364228413733952699452390781628627049375564875777520005305194517035535194856394915070131516903274760659821470976818568940927658509807515638363847403338495689778597627599259591976555682521136567483788911226287574736196790460860401899523475626195798773860979585177501319729679165968807848864301384671551191952643332962140362810800060842279863668632421995999378103405074901548574910078709963626611840986135504237831675453337635599195192194368625250618287364575166520078160355248122813755974527471123637567096509697630874125301517325200154354941777683157573599709176911153216054168275852552015582416218095418639197422329430901864247661364763733611655114421783903065165240275136536337666538319274036006007760780167500751800939846040177576132442925880053642572762802386545367398340407855242092639667827458336314153990407225292183960581053323092337867530199310230783730243009663042894983699583890779443083202227549943475339655446581017656285741863409312319883004300640288512334917618275182274201338667243044210472010004360453712812846630054080979077467223421066212326508207681558721197443651829813465517073867576546592375515129651770482070165175125798005984730979542592971600124887777190735132816587564095154793837698788774254194938666291029079797342979326854202226198630437108963744081937513222293061778833021984272571125012792311108294030042460382509446079362248874957785982092111960301925255844428496313249221933973495875278750103127615041673491945475721209165355400602639219044679666275477751661450969361008737805327921424083086801524925736946983974489055356087317330495486019640833974757778858745322266183584555198472767493388527481825106660167580983769194167995409871365608736299669922954127025521795060890628776850855060733642056628557065758627356859914632316514074663867763802704563121851924692265381292395786615961441104276789221893071213661510447741123374376330493825548743689233776163799789416735748681432784271952250302907792950743345787186586742746232039415029600590994179064526690407625430309968828640774209942252660418135149573747919691024413280112087878721321503593139433244730902794275725375810789881796641702395290311461404204650497385253935703252768150680486827819813335744170609155874054651908096516160750125596525101457819042845109669891144013760495683426137871823010134924151430134032254011086094020975517726962697930313388443881468557587477699540721025620451085598365837424563566665377185562434754136367497277029447411048929883365996660459845637418885133125563795432460424779279639392602426097066402002739781608173322554727491043467904238317778179462209727644920917424210981175120089622095857156839215802117214436367554156290741591936392659474057065684374592034033132147542734502500276747948076796970688227171809367137766827916201336440160237696778379733797943139566504714059561270928653080595031341493148636014249833190489772373308204279878003264471717388679312891786728876300299215498399371245377500077363572659908134851100892279797680504841837332948009241923060292434121878355246420676372451615915282311649251860927428573516288411105396992947543371863311983918289181489734180536516330233655084938325350751947440209117216525613495969519673847856269408864746380304736474018724441436931820670029372463814647484859226498605142761099174278774042802392181155436087558509105724903263605167566422882966399680341756960435138070510583650017271372278357967426586221267893356265512319656337071033084747635001817603745757919057702670543532309847621449678963720731172402784872817312885159683729352603293277266995400630929068549443440050295403336878853023039881747151425320563669955638454875183886610341402441770665772146909756623085122664097977969060976578278883353151786674608086301538774200743109128658868669328302370595390019090423432786219668180691807429619598695306449811419658241925009464157844447112589141405586203056873439143095252413409563937693979700895773449374494848736425038516321385610939630371282539067286799856567158384205178430980029105983516209146937834448738122537334135094549086701735025954830565424323384767613075716166220738386753497581696544221501747955177426163286344965936764270297418896110194927770861576248124471266883774385853402789096924323170016043376548984964467373064158360723137602158334363944845332966379929215882895918146996461965603566104032120250480492242669504653568873495746975674554304756853901456795712902635233396080221286997416083794913113340261374328098098436098245719178167819217247325729083819716214169816904334152410503631813188168911948518151127830710530677150313715004421988654202990851035494191711083089219937252957272186099302562547149003338447675452752523673489205471923536848805349320544696893312754234448272861969839628286151024308318441214944692490262044475938952799299834626088620944929016592536629249849921854640376945458393394457471821371281000835433731851986348893651924401058707040019214314035805556065111593441014669881699857029929786596460112077919327515369553270372028283227509428871255764293964534657769222424143853376365241168641146361768928181695605129089511107308862644590079902539403014852513544885014892260671757819183722942853988138752358173990587040100731515838428013496284014685807062633096983258876582759295783594092461367072803044941494629993335752220467273554117217733951410439174671984168563871058359025392067116737580291317674406845266823892783076150908506752439659936280066496168759123447077795941136096690778876936551402395400981900887854771263217491421819116530518153036957109039370396194365124712542137682250079150008009219002211216744655828084327517303252311596250637786308176112503305184537011861979325487353552214001888693473929912616457006692152323404071793447039664841916234465985824514309057719990010953183283330814530339383177740297206226712418015169161185970072722412701720055650124767106957614305101553748340608421393794548325265809213319752815114561232045585040194989384815700879915030933885130238281836148878435926187693899999170713519081162756296361435006730205009370277510503090049859023209111172257690092069677182433702868165623633785410942908373966050022499578578600981453067298417844073525226099052376365157424624633152342805232269904479659411268197928612455719162787767761604389979421270026305946358028257254534865880987596573284126666908079208574696143242392614646292014221290349738771182911808018257968123485647498402353715841702744119642227106660485965063673586256316708952062984632817959757666380833000699547996337006907663243404855284389812511650260756505818863450734681537434019106059746039227810110793951660562182435750250858629257866659010904558565401795511498474403225644553573300834266505114963463065845086033111847625082571672077972911562124318631960371465268798425062765933903580083301143096817877575862413705723517122006988877664251144414262064477200187041533863739800599792151142018955642986099331131948883342576372016528100825542358491733290880627570370802930963753075564684188429431451079458107780398656251776518677234422113943024166986434692178529811220451503395791036543159344720269077609126987320523192920033482460032757601986367418344012946448691619121112587935298927422768173898675205808566722505822609659069583247526418350722871952086128896004397662796752551223678254650738106671748972548653693999172930926317004894206864136440978250935213417645239947290500221533100024428705986116649140651812896225261842957674029240453287623529059835687682786322684924969194991192315775863656702497441549059119388755522932440810799509505887940830487569173165944584305481584393906497752310431279049839563652597328430753108903617389632497920464435813113956689363404738627182716948208813500125079440533170705695200228665870838344320513642041156727301932083671684494797776383690524987820979509752641262590242507181116125338162169219130747439822094734012411713864637870423269705562693586141284446670173986501119744106414080572336043324933943076728954998731499498616508675686896396195270970331700025833806832318768708855849262549656996879381627950343767709420145563473026088215353547670851572202561451541160857048381898847967051019271645819158259041183394767685242524209390925862450131451456389685563886955816675249887018605176844470869293969878256116032373743567468243458281642306170617089062022851930617234712003079963760670788391831752959912488809558735592442758652289187165464363265024165946366574636461872251463188560827927078452610559883706962688948781389771497478296953676397470699852444267511475839796617381032022442967773588520047509426158812940715080424521052565025568995363651317242061217668795669283269547390759542453789024863810940869548472030401059177291349561539135298827650004910609985613693233829457534059260721758362231762282333364750454096321010362334161296417081981479019577713756396836767432717247479792968215806865055088205938107976555891905736173644253246303616519932623666636437079484290132163330227829029390544447482492905834602089642364828572986280860270496894857331668969648501794579925056576854320908918841932296151861899417349076073974455115612921712815649033391509016738425494119401454598786065600521546470647811167112164321203276579164224862207095977725620884008912843701878431825441156533599731390624808855775449336923326517095349488288651662848789924849237187158119828606668158873841417265613726401966582868257853402846492012280825431514671395967555805410986218143169640684034487290550124123993546787676217241922393423119456169267246059094552288942184851628105106806922342969251736014964344667536644941152820660224158765585087527994700291330558382324063400687519943132845587007894442723484934524243039015866833233164026139977904419733974629012163533694458839707973166442625524232876976413451467440148487141889492446234818743504716506392755917788770218111911048726567883537863507820394889974011519592575310796946411834885404901977977990856644091998224036697043141074448215954382523083706483521725720713094255384793608208977127163888066684769093736662010250005103179996442602974928435378484739285608681103679385021297167156050404687213157970862292304396602737546105633980906136213371683101769849746069656190800791738984427240297714277340117863745626748749445002335195355172841799489736880282542723796228978419076606911907271161905121385603909308437468583843757860013967578297159959839357429353658537234583693134515459228410493137470413724092803542472635134589858834746155551563501455233328948524683682283586643069690826656653344631276223136762606273847398299179927409543112571892065577610242087585412849842814814106656421753323023567561896134423500461371151014031639197385839380338783326383983847184265954305450621479815772426518791282047084121681248040886464587790723560306271816226584804952032588329457708135440851759451118114861343948969656968600758097215901856965005632914828755369555338067663775834632489808317432149714141780487316124364298863152653932823328113512629786528602629636113654429127565554746211636407270180590068160104061219432042984286013412929082682740663487453705247721870832674227601015094093773410628812665413843357083528809876298229981311242349173707638106640585372379484065900600743127008742271271350585065313501213875797045737232048535438297058348730619023573790130413177387463322284074822663771032925238090166556561114296959745081467426123477649265778997004811417403690445719281465129028416696624580860305304518243060672685523752615133873889033755508300674913034675360895739842472337438849319430843616567372743025580423261657169624018618659253402606173101616663210392782254220350835862838139003815072698356302089273072117178865261601099963103528085592931890248328097165284640542306563297377897305936591435617817381907112439326281811394414427726947235692765765101775718202201936052679865644653574607602810925219804826998015476585112037875325576351020792165292869127210070335974369639050416948347131889334106432603255369655041792835242474611192047518454975894603464192469916824852457002021840982263448950148872242832167943836551605638597860144361760405741750455477011145978654192581026974657689433633702812375598820892324184323936414202165022169085210992495828104463340617787649480978537982153323485940315060858710358419006344958114021045459352689711251714480694004543749188356590508277423329827977027442318045547541257941292655679863751790862079269709466010774732064645040189605144867614140832907308448893803233665763197906142523852428572569063244769757048814757832421420706175216053420368880530266708761111059583770046311022297248856380197745565177023454404162460283022616631808855415737992084642779241554930579032510911595271348910740287382815889001302614524502393263055750803484160053184039446797747524041530143023422772924070258003096226827304300295491835057346841074108210212958318413014011087447801377270504915099041699451036354053316908618494197973346509335149081542175474015625628965898005453335693245503757761564902239795281993621717178019151656331376308543469081259673876475932583183285181742804779035726233877265008617157404422930022234861286731205632603089724209843803237510944850082219504458649780567375422771806974078259363720021227990725970052996712255502976015335257395760292120969808510361022275847055397987064821753762530777962310678346653744242537571460648703058953711864855670870692947318167273812951083612259772648345337879777268763237313637828275674708731561390785480009737730780617828270748256227143343790447016723507334845873648052496385367877063049897324665409518661547823924127163677821182569014068599742277932535166950560696128110068168582803032653820284663871733450288049306155678329748186916999229186855678101225752767145193223916064767821501391318598981399467308393224922941815487011098226285891765391449494163972316335590272475287467601176339730188319892132627095721446765776139239691312186558378592063523287630700235250702490777132464893980979317002996578627845863274896454381012999160003174607844697462468438986303551110027374550785559775562301331138762221213969040570680592220134420334769675640997027813429003958773692027342847710999029904192800476734294889747087495154154803906149506252340845929931736378839107467351434204215566839550043128320246934459263412188293250228039553980676178338845518296557887207946815412732733929629309219808609594865252091851126928575577350888109167951337040543344356056923803022561047239365763308239031181522484181794502000572231031167660228189537438210481599587662874218570838273481231250808753351236216540430937686609679547684503675700057248413346169982518656303189479882010999403397352964380556642281023656325329206729251469875563862750479229321932452889705871831495466056114697798857896994624962869318324250097526124004444302069252036703660135137790642650555500066114193481455529478229251493214060108799562263191681885012546484090447600356587296054886346056080541543744165499733468982517200605859541130922035432779974167092322023930157294251893681759425014338927440772184291867115488469003293924242065744571095244063319327454160663980468757246321066159443561280555450716698131681366160445368284964042479505484966198341577817106124866820684067215551417466739587048437819686256654955317397910402983876840870208087154970727898398145268701970239862011433901351275839720320130801447685070381562353440049686187838772217969097946323213542372882555495643194385101460210275336391993661404725347445520791620989883200959378136530070560488407985538791624543637617745091195249122129653729857338653075405806460224069836959356693294599490611259164445045851725877974487999521151914699963994062797741854423806607475582698862015212404166822536734002560749640032832596485611613081574115599297099264980462315970995875694979504244161709195583941550355248620562555887787422699202135070780594069362611425841879139814285015305911721889646772854818713894458603428465994747481332645191976228673911012414288457883529930540845378238823242985864112116973215084174359722290891784059549832666847966281784243161981557855178973965198656157670000662796456245715656971265735904288471306529381420706479899957931161680955450687692419703021684801330218115900707250284064390015108995826839847211500952370457845133166431682185415137534631763338477351418998145296611086274398735906397980981052872355403252932531804465035383622201159692658464004946237234823578136536451088290895588799104662273113729691658199235958717795923704891565207853552208782521574394986009298421230618610029089409145513410868272799578104356454328916229498130670182304455612957873252177679258138204084543229968654941308486090731391212365519722718546733983662787853608022265710126775588028140960158722432163758001003423727936460203705300108945199455801350263942792127072877125198490857538578416859727571649207224535867136901301765248483917982084674074534409962528493253001777941663133371838971927340748248627752102708439298370200760249299965288083962960418329355079553532659328571913409505728150764000407222776957428112462165451529704024958155575488160455478406261800755816405172096664913558221369969143117020752481941968916557738601406160074332830681985398425430371659386050692411159751504528643008636384225171291196511038036458278343312248166580434262658641102077634672004729126651156787889243456657847077905043864513792430891941533036704218116188210752959707805726766886955558539918276122339096532657904853336822762911690204380609083340663546809170935798649642088939658095594628335051497353598811651071178528113399856549595636137915137144166709664402217838117726475583898208732147704949746361150067363788689692958899398987325240800409839929430168511369784066560007428008003179817792143452420739877131806524525135601566375764286597128908745438357584169035095431271164835893679462492831329276092713019760864593855420339491495908449812116710476057736681378177004258640958101032353195816592111834335070217982474668892704743997063480464189784884110829829914066739937062375505699970752335252619524604112746215168238938304101207422840083885588314843222163395971577007995994956847575287654973939203594814587335732495088818170866234139645068411857728262450771579081604204042370701325875383273051684003994527752098468764588521541764231997140315454199627792179249506254537317620120356677402844770830405607721017830508263698185721520097420627523492117286597399286057419662472381068042127126192972611795106452534671689757703299695125292232123352287399045649615771107768451453603912613232809116967775785257974772921555902537621568356942981649851853457559408193092461076993072894191771000471788656048362800882212160886662182840664917395839202233256637842249801445984494807973286915612721844894336677997120350461927514401450109439528003388972497089802398877286592777145579281002944580594817495847954520743610926441367815471158016489542374608479824787396990831544748262021213030964192741872235653232603687880753707183637700081440128053519958039147429148944050076995601462468805560071064124295183460832606887017026889756918789172340015186043744718452760386848729960829165336677763699635753368742506308975316085860084526115637125873087406705609279311675324217887137776518139982910318846480472330654809041012415491188953012483375531393093707748103287781826090008188952477013600075656100967772006507910775970078128775035720855164559836553765805252480469907924436290057193932002392069591329536880317790377063165062360956338752080697859237279788040257920157393394653289331376918533580948300698071517394549086732070457555990232025142742185317479612527461982631531470159980673349781770400253673873662977009284864467747631795468069117346719277965297604187109915457127363535386212328897428424535087431282034071221004818178614193785941762519120755245865375859762125959979329299360495565953722602935341409258881339457422255203980004598756367915155478178301890744085530244762036779076035005221372815205735236651422941557609142893059364156553539313115049528310234352273500171789837332089988485457747202341433471311863936828991882812909385454852582170180742383448522797171211868108861484828751739456780067183916692983454041259219984867362272264578971068975366399476316051390042750136745595032175544291258266863137643627814686422983080995463162353205680575636513064999946191581542658000247188883141966801832589060647756163313875122821388040463953002254460576197137841879366445095328612534162127690125312046988094322808381004864730964275032526717508490186492486359612531830747938671981724668565617606631907936790856744875933919618448818307893713930333116361830232967774072877864062865332329639404215678710701223407480733167879760715488748133122297375557374227558317352508193955740867354715138073330416802456610954172346875578543543937635448277965339263898593713076002721832144513400896607021801614827597549725293901805165914027475805245227719047274139994059280069845162387852436342534576710601547179197298535499798337508380338949829975998779883454214158330890756732354621539689993666620121615079182326947269461088071272885663269367042725510583657781946263966966781022607689271640005753283582009768284969682846375423019847969405082608379614567779297370453103884536643252806766837758094098282626093131355027700869872926462238485617705003412390856843804738809634081042985669502793907117407793127426812022328463482410159381498159046318888548280487902984276609274782609039066934525371464472064873573846039537814313021050911902535501991062811881928573740760553556649995252976886633626387198470781078218309776000841980451787517510742279428806764327019414206493539964727120980050166467477917578084298956563560133690600927104669858237357817060154027740580316224334519120913636627033898073333380478994181512493891611749777691401970399754579424282653605591040850740282738448889717117538391124353952530999786105206384952706430039837330067504341549879320737818870245109732207460824074299963800740750264844262065437216018234674182513023423742462454171273947915476280511739281107341646275094632003962840688117001335112042495017207658140054951667109389623537403098005317642012183852113443851174314021851010855626944578793896928648376670191334684250509722811715964136014502615423359559669789448580981198175680509341224157772281450944186598008368979825686469422543161637089530173535370703464864063864833682138025223653683604494943597140838203131709703960763875670167269184527664990015327301788382853685322948033023870235001003538262135333925416970122093620969858200151506723190671315548028324127115094496412294826951658726408018969573179084300655612571864343382034884602563638996782149005849399382195151001197163233792266524686527840684224578056066696677630041488796302845861161540501416303163850906445992728849043366040117432139060547023936642621665331645319269594510668256632503802667652663298518384914724803092976091887334300113736057682430940208772483967362497468962582319532587307709255563429254458480424464801449187882887754053510304777441618893194878220091806417582413438580001733444722263314893664456836654367161364373258438856841331013610476687504453123297050250686697299871999622196330995228446767092204245831682081762339467451523035041335706956113428331591317875996134904013093593213787630187838475629951846130975389039827179048973183171244367738656147261139888081909578299373516343756112805856180370141178705723247323604174980593239939466885826709380703292450470904269909668319799933457283683370679976619873407876932939173604018788692243501353333195795374925781613923778923056795446274532434979232992881372299798257249356311355305840498835242008183088052197863778840555687984597278079637566294079835913930311021782782582119901492211948579782114482484854686218138902281497407810181043777529549264574884513940992608314330716082518249479171258569151224251161163128093962245746908933495301114264092763322475551310835793462072762574085517367298346553890028462878676168070065241700261765083013617200668455858988081288606042173052914512625241611082555419282499530014573155687447478636557597005039206753294406713164199421669482538463384477709410659244488725466531119664095544648704887035308533927630065591681839930652842040322219712558843245185911379073664259359066308267347600092247029777362871209518570916691057109002058236220466042995615111457547605103190019540780971613995197477232453815647356404898018582248663577141711909143125292749745237460900079375865341842116545856264685164060419722427476718961177963077037332634169952985576223794311288832250155098232751873169634287102246234346041374548670951254236977718955240580774792235174533941311784634475717045710184178537770271507158016838024773239212243436971680243659357302373806600320653448491521668486410396788358160440863966089625711473361517136323492800601596060194734618824941527202994686902109255908660109349857258479393945790589359651853053727864182165968257264704904289422578062399718962207021045045466514922698257369098880655148610656314996089145781033994717622621646998924956470910913772444345174578294382962715371916345861094481931834661314870566480694685649535427793447096184112080405559566163059371008901265491750285323128009892931518157281905569602665418108801247871141390541774847874292939671904830816386335935654221087328072966574478613117005902255992122675478657829349276185000093352888893298216563093808658016296418885541884260632490049735693565007989893541652033813461806283935607570791339582851866112953745674758226353332761906366393583030802575952970613213527736854107933001332787303534208714987907363630320325302791828917138503981733860635780933244714870353190416641717041160342386731716403556928749472718609090492150760543710979081159794641546903840611301485232666864725718089193716776108141093632423347208041735235511488530101664905618015600895774246673891536205358809511824507080124204556439558796814710721456150691613759792619504147088490290503597817652953584833109683056737982245337979960906081824924366306823052621535666764479828217717188263499255037836726368651420519621214868390644528528949717429659819584619304442458036513678450137907405649235427163699690474843001583097919530490760966401642051811920193640904480247740520099194851857257266666859978040060808718848827201033679137269067428521976106380145547148726272116384539177445300982776754656876139093830091106640828935827811288204915729245975601768138306663341441152495043348139597693689217403408806484853989555574409449407568315748208400899435496569823731673601721868408429388565233100810782703245827101585988317874231924886826398883277708940631500135911859222353443914952426477896584644714784496599688588981606679762268973780385132248574484282091803960567583081883915793055617433870492562838150134080841236874975966653401412549977135528446263139172714031716997726782012512822943908342948489834008434188464451712557900132044511429566486318911271255056851236956153118826903446698598962518179300658214978999641267966931763383508249579313507555870798708182288554472838280535812921573795387080418584634804077118451970173394294176456238293814058505592606263071005709697722523213283652438266381929741733348988426495285210529424043348688867176583532021721460660889660689963809782153360252610629345562486568753735658353123525781844748744535280470805813441383789750912006005333425536947597539301769702874943225209988467514199036867279574028403633332111028164467291467039843170477394726560478773393374454150563741426350569458347988468809221499325290695555334645581486155068443765069125267365974059834137885285191283154772614885268187858077170111927301006125683869031328188195629760308570398364363173659984280734836519604874994551859948586583240840542348065567487470958705965690253825221909215779393688124307016497712990847913358043333711795788104318002907216813256798251889982223980467170971698388985169739914325639283796391484072809956109413435572978248860139105840614509377338376943060631637568251451081596502647974370025164350361014972573674063585938031382005604269785868056862073437151990941704925755340542259667618308273445106534337479324718917386817347899135641462000442503815278244854085170952319059630286335451504550612497245115912203687487355334113548935515325310256209324824719879437388167417314388899922715594118746332013790200008842470687879246449025469429896259239251829722296453216324733284786764476760151661254759157044597995028410367227775350317561620340959546583664234364453250078494870285653487285933233436676936954303020325182925268829112736248362305569199918228059653098576633903671124849733077119428127130219280917498041104036325496019405381469594115656139931038477728488627346934343060969998906072984167000563005011558305812599051643270680991188613591716900750411777987735602894872791235477616659614764666581798232786626093673649454644126574133292597205592546182178166613963601396015378174542282837222617310005350633593027788005212615178006404212618256666854132692035619300541662099538591061573487481830096946106628948986569638358539738988193483357121015824933793622424086359047640926027098940215004227743651699415863615827358363946332199331882418236047668385291749772338578747686889322904726258106005410642352283952797856558786681004504197062067908259754733789068595508111681128159086710826279512762508517708901994631401701162338737870173985299292442221401276891228877474363925585192715467674970352819864703069815524407672008500719266290148620066965124039736052685381823076241771255021758617402572184146722424265025100258984814754297420573874224752630680186702961929552348732967903530097220103143463487318822925282937333719676003784776565801604268648382423063920064698694377975163171288178190294299325546566893728034589868909271978235195495707630821653015520921961701663637817615544141474859727577349878192296491013059024185587458663410314256101874921610802275096254119900279866689991371965594097105327563077162354923895947067838502828895349918273874930650374567103063488009509586015053369425179496930152998611635982195824282960449083739463513745068246062939131259956151920711792097575858358775640820100446928058655885732370172848812435314627443228155500723649604913632311117122276866894735357825684914796233542106068686056540727244963986973845821783462919233669618406297368647721099603337106646296882656280276206702403920307020768948403877927448554794208889940178175710290203761220779348454474937695640596340652373965920406062215308509392629386603851523080639318887016381357825595764028737383932394844397172159524308480717977409957073084740834121294725321101867018327215327335556997519449837176738753221369684621086172914220078138280341785051550891868956944691612406309889507365761168572096140347095598990877143220502907503400554755619337461724122038686619068111733982324520176912861059155057877620528297417660860910310732179462006508146084289324399932749999190916663889175353798923964896645686077301950409641337402873108691925774923989047875168025320692803915783953324082113172925387646461259770706133156151959060241441266322061449003369407636134528347730585245949496779432729938483065493641861172242488048379620688650859589853325740087096587649628047220838112353641333800026635140751099126241385511754987714285429283254747733641729455356702245906844129777612722240395192285277946319843647944938807737423882275182633546159654698329271844920085472806897580511076285299704166565886580504620940487494102542552251952539381572023049470865318528948227236241080420928364767746813070800887675009886376655711403097742977629518130123411145774395117737301792080494182613542522083662851566053371376689047315232233886162957881496859663457991175801091680062122317361826420928187535711979979245739349926672410598219876556504745184357166496827762071075399214411048108765383460607613358982184455724396449729417397670954258332887630415805312484873223611635630625001951953468885147494801532043907741707107249910379263374836540926104251748989177191023814390463521547612942570149768803656523109853476811881533484571752294016810010705830648362313495606576059601300077038844622994982497002338528124722095427571681267516511458055689014083987627539524335105472248266407175283571770275805887369814229867479516432695803250198109020175200645516162929454676322241032451201703950982247645881330336291027791379604285356933294560646913141518212617131226508058831871136969588391559187814887353041919118566098632968302785566454741582332609402984345422865387418919307148423106189560774001881426772446561147361767170734689672560242822253825608900887147150521858781273676485650600874237524776909187471773060227697843875375937356384334967699965986119386548383088601372822667501652778580044474572447564584239069382539873084691354587846261063997155613400360867762417952509566670753033857855977400164506037433567719051775734749771398529049441369559773801767775835851023419723673500260162679902888035944216272494331323304260237399317680877510261610391480522231986926110939734168278462241217957239312778623553412026255971809637206675350360062434008373173017953612075314136257601307645474645796054954051905711172967262309627757758173093676298338300439980811202807898848316768237615788859294578632973500204622515803151668672601475560869428793255065585247851833871129729810306595298827629554432659169303355398694416246047544950864057700306380780070924544694658282906684447776701215419413199010011807320242824886936913581873695899106261248109107564365916682914792380908653324695052129708407463658202200207631872219887248239320529836792580261774123007400576811211116375382509129352730407838404690420916944756958308759183622348558135338407969065950566500386345066972766689815772052591804721468279913265276396153866409125803898067912697392545971309750517384283473619596884985402724483009883588649979041979218568302827643045389970963411589962108254023034082607153358245429759181437379917670492879286451390887206999311079582624091824574119165933896985762107291737422052186948981854614554504280813370974126657288223409470013271840770973752471066757022768768227972573311144999614127881116048596797148641965168607520800489098898035972597387392905698085996903149461125750545459392957319029808777576396547247118700588875049235667742427235287615547335998149948779445014867000243922239974739335729671208596855154981070174651293412899195136961606412939432172336246091152223595074557179866591461450962413578515137430318652472072969152650256635994671856998750529793295309958347305100209128922232765789114109777781864152582795951798368389998374625745182986540181938907339575604640929534996802989943381917949615682886417531424890031109122685821848857936695605889781963643669633812966442583674767803951834628635271426909333640224775662131875620536427054626060518227278979305715580920899247309452863941581047112940346251403574302570630992883333670562586279155262609961595057756181164420642928531880576549462519646384072062912724965127099869849255094238234443034390902513216007461131455250745757213462189606042523909000964382431327894743759747164354021694423682715474974787971709804903537238930223611165705157597647144010076983293445214434048303558510893808237044899737222986945899463593743593384254475448238472990062873211560203120088237494687202116212753665350836857806155828555113445119553125334015017489731912766708150467751301252470803660101220407889253858127727661278100816668710124894527503431913203963509063052441882940311782223994604106616318934588340499268977211065242668928904822671684969986524004787217097047680863061494291917159023327461316078406173549547814126396126402294805181171910712833756494609330240461482647052970279628583447142308989566620493132821109940412073412458777578040425258313835589155894585741060174747363537838511946320389766021862903721906085635493092273663329443086063480803874856206985984754503400697838336404618787412939467011086195469706590756765265567013871971131791315444344493611498774967809487477305442923404257004475721189881022149028782378375591450478114179024574765914181846115160689117121628251174035367723662623982521822205650420915531199675336646622151673619804538632154137956722880803404619369535091048151187280373878897746581869304504928136677410148955619642034941644952457679365765106641506420484469691871182410629418661784778930815205552740818818895416399223042666863903917179286785248862328146472050283691190241272999012079414573294073556638660949376798852145207989376368887320051871538683337324633132963749915326342206377836607202677981401832596685704380357208397501690347359441311454759935317910751166167659375706988257848166057066599300404507145821652721513773763640101144999663474302844621745325668253303064952093828343434100350446280475549075883977708271379400920971311141377755178129011220863142472490535972163830782748440022447801135216921122428955004439664744984403449744562694909597326305739110293806298496152987941976658711454319075231691124924220219374163702920208390287880909198845928107728357999160831922750095373265165642348975072001089836073934649653624582053644966763961742532873048934528969903347143483361217272695293941766483782874432309670997710282733213979852166406146981329482073107737588114170318038293679207181074905409519204916506103105816166640318361729816377394406709197424221633279908214173543266722423456043994743815765610035049464871510698861653373113478297429890325974758599505478500877791562805472258868085509945561786738695252622718418362916864524147192527472365492366090210593951697074955300679772470890202857517936141611575995891078059341486627960130824991693113444260227209542691101425161886254593126344410631764100907241907987117241612135532150213579380833864342116895431842660019688705533365615264253482542291292582677438168157926694358476296052011524082576139899517144923827300053136317278773671568703935550269325013454120994146169047883358004475690072637464878561021411426105064955846688856637449586606179612486240510877519578963884639143660159841517806343092851952566491167114198835248150121412294571651399036555274643403479979263671306926630730749971611747472220920834039385309289622416236388277587907698429537681272775404319060775524555431920653285693108213927046429225824005267822192467246219759657950876052811941202871195847040922897850357254756874255887056244967000166196924352049029600825777215032797881402710629544497830677638327629925361276144072391707839250370337349979907742580911675960957129759058155585207698509300960843261128621661747572432002741288526414047293095819166826598272072270774622634885013808783669916326100971516367621555699728388297428412049921982367267732896458625344611282692461500556581010518656658718175185072668198913887086616985441763968760860293755127087813267995558140917538255674942530007103795815469067000831435431607068187854078438201182060507083417927679320926596659155745347087801526526621943163341428355420241221984835260906045285307346905170975725702689894224050059694838634549023390192399428145881400282612195930537554225594210313861489472416659568280610167828966293036574287174362095520477991408457571162747994720381832446948794667461331503799186382525140326503412709172737913939396534376884163505543213484606626322825269956943401925708648820422423629976179476207296269310713617405773270546003647826604870282130189148829649298607595423370857037579477330141083351825672879930375570175906931883070240235521940392565373720892637660391997039710514252971819841271576833320220588550808934074069040821333510896762521148649598356594224400617465349782109766516193328058272654633898143342013445177325497453341161984171681128295549380293883549212457430273108158561484837132248983789250882660793121136789744855134861230886363882986592733560445178801448479057753256624629085207635364944855552813002764681931071509951723835489848463580068104256642965723579814772938367363733112123166208750792258686230161903883750883515778320275649491838571278615194894537918651467566688327313317006130227531689703822486558825745718882121413573190685099947587882589053419777985819082050887328156778483631892744679028346012344840460605786755693487435755938524789897305140090593653783854520887176274105904830434484265878764605818900395632115345449930577026296299712409186379513604976767880947146064025289244924503087194889198927125158251634538081705816790217503629397804686184638942581662322946594918216531353762831074184009516076655447160111141263547668555214896038109650776654495587342019701101462877077501686639517214380091313094874043317927904751956422577199547610685973483462314738687599691926216060166285447651637684840094684214697611265969352831820573940977205791659684019034558095718383007757644625617406495401641204470237912631400607599202751213254426750394582313120000742613178762745012262336310556188041517356327101491149431790996786818965165703998444484633103378168887528711665331361916533088877648162996913875999396412365333294538910026544476033822153715557966792115668759907705116819111747153873140629275432706768146602156704861837591901471655383832086720225093121681311809609218811115786378016334250024754600922661781895181138256389551101071311027414576073842972512211456715531915664107848807907582213493430591004273648822125779796587192044876788050639350553447846242748912267380560590396726958415360305182723449074409989844828398818481075362772705703507202525569071564751182173393265551656524466815644920781714565306417178232200371773113183539153496137543826139589973085048081181271774558864208313381807155852769984681226832102584907497265569135577120401319220258694712395731619134394639660187164464307425635057231186763994341242104842286942371512665104760966021718062947387613870101102743769504431122095395333416977633919043954070056062332061563325596928604388476889324111312208412415197239174806098587291920715886653625225766969106220922753091592009479158810188637915706451629484100248574291958493983681723057906290399528809390534917147853524011666935763780093105760102186883240947724160743588961793835605616390173574230922371541275282188012863101316432321075731802515315601300060560972365100896500313934751199500144571442275640058468125730984097936398602088570775861246447882019571847318832983957483345125049808926153809161949372549776834175640256773044596262797739704878833773007287519102785723912925505861387357416816288293499184404927190945673302320790111892109715150909390244716431074603022650859819999155941443543702148986439384221980643912395093489366793026458865057576326035164539318571625485066859481173680217619325166645758810624888057489490012752440194723025596353391314462066249274355688525597262749798458780331028761204605752566662333432474185236604279446107990611437064131786728088945496967143064425662196326822909961677542483797289719147079903591979509340721433773111078150633012138148534883777371554411616257039026230031571925709386864425720247866309393521237881283446352011793857959557903910030979130375785782984704602323312449646397306823446206725240633528978333312252488287436485828512338808492177032759400446147624152425698224260603114420513282198142354933367094034992546321820252414403325137839301007183624750278082365964352425611969646314687991022954253339260484239030384506224351921622836984842429986126657202601602576160779309290171279383118110085827977297197913472798275209004967437782592601578954984046336064976391967779458459441024887344501927918178352532180080623550505723135789351502853372414306781604017725223525831453600351984561697486176828120980417721489485509073627596314329723695012959869858043137223803908841725235956418669787918793691063882813909189243107187848988330832400371420051693780993739852048000762543761408306830287741724872069772746126308640624190223677852070549485660555940548763483129002446201613859985336159669711075634448982778989065744634918708045459752950871935726308982348086140369436461839035880221831492297701355855956849536312170606882790460334087211742074674891477948687491394332325303846922425323722481974581367954821141080738973498473227778063406540357949941275901030393728048651196485006550258991336522712405898253511178467221445221595632447629622960635594103078863362854149923386711450894882393358586820044140268169158150080624004721265024297650324664948110177495205066846778066263895649724459900656629598618843013292630549046724662035193656885572875011121095291898235528040371694533072497990372393025774002554227808943332079615727176653957284806924878888708282981939885553426364375557313314665640424983806874657108580193988918406266922037186358406208317969986878291636140431239798355622426508196331293161591039390862466176877268344884550366712785205268867866168885473559058597560490367089114278036102002708448898171783229472591315116404311399797782702467898223782112939110541312862678406337325419181027746197431744034259985228358732191356141462382118972802913063631521034595148001060126826589530503543774298757644408771168014360114697131884461968269796136156754200178074245954136991645398272058735183202062928640195561952133602322842861324951722974448794690622387997643060640614697036564561624314792933298094765726172060532851660723315611571047827442084037237346883059221946669112205834716652259240387563244118777660482285687057962179178774813059674119539821507467293332881499089854964640604281537930104736248286837126849571965692903411355018535629528408378319086687539773059789895594387127193496531344851389526311839033313780260648225778489484590705802898677482548651599693561392967352061090527996003029296820925695466691777922167802146253840754031509776331529225421500731687536363952657103749333253585492049077930510432858573981863735478629875873874496430276760644749258275104651663441472527514279359781434372070320181171721423094353334560534799871133980447963118817211402599459007298846110586259877847066022602729647301975962558051235318078819747068869070740923852449986888581564495094620043094151072603034172613859911869241220038261458474009032587195365028107663112196020015208125234686297835597332468524612214310465667963038657388405543021316263422898324315037149397259019825985236239683130447782513092633378558920662632277317594820519953441477472272726246373025238116933288858855177298031005423853483880912214026489392531307922959533949796965491283082490997457279675063155158144514899241099380926201981536192897502286788393510394504489862352089138587789543338110799772701265065276273348678782930738268786976778253895143609391973379423378029856616395167881414729232925869175803962769376354533693315329425460237435835166722195293879770055070901610380748338601019591087064118980018816777699184044203962143834146682959311244123435864013463845896105915193728239976958778026095722698442779053042024041729486202685767313732268985196824200209337497909298665275495431435452792864256990453260464785662769572598777489445433236544792827444840700598127602611529241355540816032530796467241421895284143239437470642212835594852864779185507794085725096092818445314759010045806675346934209905219699097773033035090764023370915749556370970135266130859342436565964994606226473939497543049379107380156304333461409410320129612968693015470119095317463358545778869063995590487746582489170680094233735318509391537199868661970893793645176543634135596290104953804766862823820005137805689485298547960321222867847669893393627493566686908980482224016777919608152431025753950092598404166155687541470994194247704580159164314811487263684174063161764155086732426174254420498842467048317227428114086315798133273945167970942895232595802103547213014937239327406263635197760053165170990424340575516871363607923456138261306188343806005991965109288127311459604223224584140994588907130530092623930032488281933287399044392424656156470956037898448323899260217252784014709353518150965265629071663153554378328628495398722339713727906776927825319454038403477454196694690632156727396795509326949703615206412019386039030961409347127414873767662479562319465794836108522582378050908572025614456464968263982832465084955778140385387591237436084977247213514315748774691003604018496142587923114800545336956937666421562971752083645672561510787604245196329630837848009263217948248835082799890157364031695830224320944062868956986205842037383921081149971930541085570358620281201685269697527794140784059096384794618785645014211069382703994020772899801623123032283904839758205888310542498206992465045172375543089529830969950854823933650279408019564984913938792014677690724149117320695412932686470690726948991114849616237471841995038738688508982986676700936167174217435988576312462080358251684660971806961795825787221528267790300339697110123051979778684173628365307792741790596185333124236802330806618815827541619305484670084565631256361771686469157709112562078270156223013888754358001636576972340892186858284076090971909592107333272632282644110075371284183264570866002054128794580080755634285846458174130311176743813013768469809011924644253303415843371723760964540213711166469605962673587764846625550359114593709866939755837639098243903177381192608786701463873571388544274130430563947028156393850198834481239311419936465533435216650195943224139010491374895869524045502345755548414249182483567442780631444038344106725557078286130307351662093203195480126755804431357462519957809682643154413957159967279961778132385139627847220931898651894066129673360170545164358585947571199427140551033765719958495982890133760182431825610743323875924707065785831032140695448085199369011915473216071268898378163044541470064580973747150116996419302650901574851912215421950862676669356269531704961203281826866895834195923098683873284097377563447780984843799141390038426046534372679567142718124800696355932943581232350858164143084624331049892782538692790611684315074141474226430321454869153649801629266824215403710703122950315581467514705423542939214425650923388902093179627726101785274920516147487293789213425698164650726667731040733118315906004916835609794051427587437351364595165985975597057015554643920312062884372483629948637734025924615743821374910240654189912890986577845381427318623987123145680372415396873615680908957847218439921819155386973062001062315616266157845300843286891753554152252218464017583459682054619612271494888670427948471895977326607664539091551687765523660330675198067691087554645149251035202664022240350476295171136680019584901593828895785133138264510266002046585549467219540609420740816777681744053149030761766408884483555657236547209417679335493706571828172364037379669119478069966597494416964493287633602957374454248396942405045049301660074148654723097335682067705513227202972598448851744586239502363211656575807019983410513264348840221915542601265376764620098257729371206516886541759496337371219473919055769632654412791630457162383575158095259659176770874888884528316026267186691989658615758989438831184124452295437979751972572649861275853154601996918077314890818007280725950592367658632348818713698875409680040141660647017363805200489965214506723835410438038037353872583671937808931719893603595713510538324885287231245591718353464087516682679444528590749095097504062198040930249374965799763540046304130759620901096974425026241432532312399415417361528140986955189304245943891090608368892539367590195486736755904622007464545510703723124691393270605926943796001764158705921946439450737441555478647608019358848318626230105556080168844063245902310925673333441217088984122791512053207822302326505913853927962572257459399940884938399280216105943613633232251722499946358818443289398040445241489443385125282476962807972081049460565400160617326360547976607432654641855084754978287272042983975216399676174689136334798668802960090947866294312038896566266132992405923738742595622441946864949644058104061601839818314485690852659267030088469265393551858638712932530496834527114414858790983300789367784211421325565095702655045308835144980133476693895060708363907472715111585896795743182162805943528417816769645776674149475959160981625021376148763292629154651430191517134231568047595732449556694190704269755351048228689125483501666486677783334808932099140493929368574632746066031826165268323775771999878484512813022288687664231897659153159746260386510925502820481262794106432250203143175095971172583306315570610029768124883586953866163598191394185346978025734731812491948207758097191651866661617565655972477742185525263111398924043357493673956675314647824659456408844078664053409777154902370279211714391856053242741853952760065796924677680177387117629507184608140680921407305227588382153625207502370859271741185285134761293000596215100825461646239981807385483447728995505448020061714131145546665033377111862305375679432183779831642202330615220936399439967560667382114121451763057675242534946291850984052787512038037490985795980747352487497259075144630565491999003072568622540710827435271169210592474583409429651369296578655188554479122053130411290391729804010670513035214392283484189781689333570033480162193010106798109149765060472834459171321701392073259248779849006156016020806840414505275935940500030845581320293335970968198639954881445512824258082076178354938135162923008516382030661394514768450589794113251814406961488323762372558636674341837408238446203313206445810343256886877498954307536701907035595070456554043542476819854964974564368385424589189098440545622944263449339368245378258083440342083123092972269422832104060092775161162949381173794228727686725653222322640484281305987070462269518796588523532959235324614360980610591724833153226339000583731113816805229946077805079870140145053456849149424746455278560862244595212510142849065330117964596684186538364662228284786914531978650735850457052054800116141007604615025440261494003888308089103692117191686622541731211450528862947894383593053534903865619434201697476069125099570141205753080725093922077835899508009905767717220013597943548792190543340597782775158083538835179623457300829905466117614379494116203525261015443810188001957393530880474543124676664149323568431950238079004606505620952024875304616332614335212224941489775148692775768568473589834597579045421786292491889336518484065399773691757038494635679988969192577837647991422921565158688249704668226004803659355505392400389341909488897828702886910846810201609756167886941093821523429687572231866918392024257033225682683910402704116568932593714361305922464414114104956147212901413415828409880296237784287326189714138694430623304417535972599737569764559203248168559667013671350838569966578697960753654527443237229937480447460378023331613281428739299840940536637274485911582991141598943865410947124322717767475948952933323744691938287696437031965577123680064590478569190983791089905684601230264282024671799942768341917806883358246445623631246761126040198640162747580766152516177063997531922225836176324677514440252747480782504059806147657230302042612982280743802420352275977792373762606418560995786466214856175457174714555765755630232632982247429605060311572305882249726578405059253760165550249821406498456903825494460748670485692690375132086964825261264878209293021653820812838724911280127134426008127430767656952417248852391533718303906513127124005124223121269472890788132558560624442237549969382301234003163388586488447142662331820782689660780054900332753600949205819363048771839682522179579201229899517420261223393422581237904595301998356426987348304506114255810803109116264422243246272754051279829119638213733053536614059676919341929211775570951894706773180913624908158742898374421436136352720265636110194063979289777534959523070697997995305551820793931339469909272151436316663660900113290398459762868320739205083827656739209871100572646747171051343985039298405057351706302810067030455284084595512249765065607229787622809385344796690482337726542012187363802451170006890591510146350959132635237028168326597751351154716234304155543535486788429395450315051192953420042639216819260812367151632818205935658165715047703327060906772238104823179677716100621420144337165250548831169068901984686371415386073964683796446366916079547213983022289282364271659664397731528067155750108466687862911722220263563421299079666736420873147985030773026170510241817308900886715527560833716386350842484387237053669454402225550662454145941405472441330358565507410117046650187904299747124295632758894736037286283518083244251835723553672294792906573577271144982322482406057504324474017048309996684622788995001502930171942674765500504733019664189820729203532487680238081793526787165030709293577250427609790486036146267922156326768424293527087732367829274995840746740299598309270707543928050675730694077845569064650492012618985100227219662302693677304145714625862160378519962103975345475097940165454853411106512535366448710770573920712121776891704877189760325324595090309626527852714179920330878538168490542577539337351924984619358264224103516759553663249806369769779708464395582249531828537149582791828183607544212922568417913174297221963706155344264318014155688680470369684967598140419771913833525604382440302882510375617014713013685666542546338994251590269777577805011257199581261723829127731126300657391400765105885807264548485938893133200856946849851086196797256481173978727465340054438590798673958779724651485922237620322462345221279599734922163799452032232509002561266547283203293739450702598584539227522741973304955739172044277346139055872047129298695264391625416496139514610303873934420522220287206835814640601725416001849206474734143613727809654196434691171784691286828970812495954709633965058785109087732027369470067348232058568975807356667434505411000425879140493881075146000345384984703054835661127962555702939884030038626080062523449074119897997153236105867353714861334578214232846090564345592921294937306262077000638084127607612602406982283290942324536627318014374906497024464117058477435502784579237474692490119981613147097362892960348442641533157830234477067010685190838770042165326309463417140890997765618512776668988136058217068516146490085566796667355390333880060762569154384837031827513946164112576318605186181836714720470428314160787641397738903560572624806316387616854047063067194017456768769274568738058232348971893809782004351964548645206336015894336730659970566312808259146370838527386086851305337785514532096273767649541344417344482446550766271467475888701251830523689261874838989338578678266589888067326924839684817420826222308167677288114717004841720696217868128603880105136283586834711821388392982514521391860958413852159837040012727186170313530691357739397258303052925179828828162470006935023409607094097252295992121164705927131206382423318358053807836583029051935253837864432875507333995117941593391296864694103460248141541870866366850115783779992962317450210147300669820615951109703762608694084108070786401491531869562295374849458046809231302401714968129879792955896833068071950006767865395109064657862094296491601492608551009478824317268366308104719594400062262563324890350385998100614659256786111875585803218177998339435233636029216158734198745516923203303153825007534964226753332666441101821859009789762387846988490429218131628571069253627607292796457328502889083419491247140400847240974815143966707162606064035474947127766801284813421884611990145986954117133693657983793333764391959484361750396996449054858760502561136746734788186970548494452039788601276560110100136785148788291535241214425998907363573278254469908751634998741364118756610335942804109511037249305325763668444142366719234614653640906426688887248579052382756720076803684959480327706929404967082835637901561712528305727507894817901842584869264351723629116899951942367016843773735898046553753506397766833613768808739996546439499882525765062733479921602288617983655408026051000791437040920269808000821369633041965787430540181953336941092879382659510187330975933195429079126857341416382077527181197653954024007126937013969124638313232598843038820939858136412162335740266148038630237943003174319519977532573641698500193434436423077651338311023651522969132074496620463100492109446373551965241440699701071594940770055029817908921027535798791946714645256486244665640210841444383408355745485669732552672224231717718236872256180970958889276664845665648364525948491282936192420810837137914450110068546172747091008531643643338738458106814885181441443672524088376853158119870643562881643923424377532492856125998828841011141532661713269817074179469420459329354078099582848564793580128092818545041808360932584838023913419365378458650626692526093675473672501384027425545598370958792902747454046018766824383691871422046242095340609921573127809236686968614657695914649989865598808651461195724294870137789296789924574023391491826048211853240211319163915791348995489411411337748545177289535994268219793453465756676038277986523317555162682118919691139419119278321688048664137897609269704913136508827636731479080884789838966313546325388127162957431397194626606272844874963781548338519425247270174716694506776287630091784927669389182946789485574057657034072194363380804627291744387242208410853789381620835044480695596013378974008368456930298130636541357453209671983804973330638010125491374653849045632365124031530671908850816049627026461868468363372954818177834181616879511815236692727819139548389924578729467904808521105504045764628062736833846212506539227154828289770974758851338962802368010507288955609475861105419079068289333872047012345979209492364917697177548030008555444027458544859428939078609401711979390435625160461160753230000639147112502899069271616027433044670660539158606556191898255468204846141891464026753616769797714368240314705869786765562866784976395871114010496734848505881409652653429756244009901851584934330472357084138841097405477511153172751293103834751080812521270764078705662292261949788657922438661574429029192208838110105762224456568509656124498149621477987980050184382476122375802392852288788039549996682190791693076898899460867770793421290914800708914081230472469211910557303199178128294057248446924999824349476762465789470396330982586642085857297145835226576139691162363718195836141301431517400169093359244609758454479935033283755856545943731056625689207570620573591287003886772914346635920679083113539301858844536651505012819631834073240089467871514011331747115688296757793921771328497192438879138970240303834468071522674767590192809144416697381188773388000147720559607315981301811340169943788706109714393278235999583433493580083142913252692134298099878150650267512306896934148786702986547647325275712325114702590983353075722495731399622167463825994966083320552086488722603983059967823364358035041728088490277771484911386041148940249684380349344706486224311882930065872957709985960666329244398029225568323185856698453494543795030675450820226917157566924086542749108127081139978005211746272013459479816266559922688432534988427603240348700785746530029669127125752457418613131030529293922809620557962077566264271119500692735614221120641621550753087602444484992845250131791163704945815702573420870923163725165296316089743668951818083509661296435505260442759063576422149984135016302852846171537215225723477339192964002528860203170385140138606555123546954255302417472708400974937736537444438707142925786227517313023179867953540892532180226459291914714556944655990695665203459386743083773085700940072941019878669963495712910542753205113222796669804997538175181525380518248071110896472013246793674027195585090749980367276722945334601256167950963779482587693498915526873182867160685591757336302656720109793425805913817583929181608036590049574528849642547811915660313457844626191779038766383583328779430384865315284972004437270983489462991678578826724238929247705993387589777228462331313426101374852582248257059366827059881885370780688945967750064935903359025543255455143604986739127410382227667230629368119659025310038046603128202991050813033952366153776613673165172087283592417663113015989678931597400406630815531811058135761724588090348748546572629941780498757108367637825221713188025184092033711783095065780548929020860562766754480228816190177388366519546505151668322917010431490611887111773095200273944559585050235656910163411364217825523367850089751157632511695256610571318613957216354995601675790654050029332543044561770883062020298564601355063180066195349165337138103175806143347872730325109684662473529827511317118491134128537153433530935765564986953175554449356515857259221233734233480878166757882964822313716502302907300836771038331652101080210768402487690264166921135630306874384528657567171358363968251515830846346719880911557853461795318634167436154871046137621118516661717543573354553284873670336399529312998102845907917180137776861611198085742563022348174322097703211789164664276153215841112853371544110896899679229187520921146239545253449684727464164360232555722448634034007121246822888318279919664553783589276118097325659514875783066341842643380072436886387931960047133680675377567479922754919630929319153417076973955986713220127661059354038634631274423724217291777125704544301439249001680149457551442260692155744977887103501199011823120839889166419773989322017497107286418136468859249410919553938481144166489820571769315056013816895184734113006767639605452826824308966933032070592589252113114599515151893937601763942389525438109919432139130292083882692186244224931170143171367383496681422617011801166963467842453057910878740802363729493309416895347324956768386970841360280001010531778225125695169362505934309194057099076691613426064243183184145517176251690847855125670342745019164656682565229769806287611222822099016188699160002832417768630074894472322846931383323525842771861163585518439962324338878809932015038589487786106045056827613411850160018598143559264547365766662256662131024307255123731624326879066794319278809645168926868781501352077793210962544573556471950488436337383105514905445801705922392405947593970696282598952713187907699122889173819793589783366559974546649679814061163719624546732685066626993478925074277553418074120979756005712439352942580224018017286833747459316785600527701680862579124021215563577370263854350317337892077258002262200133037651117698382062630868525612597695459647610650267708154855896021473554363045805804094923367326136392851177303017834456824079206541545998102711984086627673940442580127391166928683418691876399919142243924844956615171341066090844718335369525810101853769901059790403236398978139586698966893002990960070354727591805107973913158490036764068408067964153245466261847810691417596870059588322101568928413069752197841983433039128604443324607842343856631936648584405570069126592385011481906017010080326503947337825701233580644449619600337770666563870572509224694188229447337851370888260991009414197889064340772430135616517954408203349842277990894621788073182054155927977554823344137063242692256462456499393822575907711800127220682148027278375415030884976413794014875151227480363671113560801355728979718658229340758664222664013247358584178986296462273554094320566390247795037451272311596790661634795507878092195110782904907778354915552576770918294258127654357178637902992324372251928932277537486711832477071777237493843558352989628128162979689410673937912124526404282249285973086949227419708694303106375457493245907154733374709568754931272215006862490553060741448580119219855372453926466356654620686331279385858780199988864796941808165533023510230532514028870923556874449934632077225799425145442681152702694309376605642744277581226409423882667063130693429721236196896189037401477585071001673347835449893908076089840319829556100626799650416039549612725295820713245244792015588406876238670954815856130698511504500090897885759232868014285648241096231626018353712871182876259793454194785004487137114639348521530040782058547817382056626909662702933506636552694641882323229156300391636899075789390905468668951677990058820842966585286240402751073151538399424636605974042720775400537407839610509239724888799087162167626554034709052862076724777489146702743674424562084965302302016799715558110073983469354451949736290522922349060647768867750162524285039778113286294592668846585464081397124740348248248995196773305409720406583385396183987596588795475714476104020435540623890085963087021581777499607702623164006702403391717815766739401283689363766988473210625615116068862489222371164581219733596902438261466571918104958697934023261328709045101122404770490949394255727422978140958548366619951135702080209210603259133576484607776458438774623116386020867602293540568354421965075687611318954774542909158536569437986227010583575146415350218854392952981324971509895806808227568649508139561187543005671827782612361681225995117168100313838648040958372605407497694472369425055601231256258999786860830539337242312964604434733465606790266875499729699410168646019828604008884305475742325351769596699588854403040207210484676361564823850250165556651335064890946668424747341769753187823585495437650307423460592652394433474901920217150144342019393947576925411737353721010116423068251907307632303778979020776675321459787264455335450976986763350610634362881042636632567119468064811335277762396130916527452739612233659313332413466062421556490799133980976218025653013673669933282720069008241080147996884208218028920589246881199427398747279294956912566407988461674120641725404978655045584714396356664017674699789679972459188195127423054291552069004934190534246072342301693775211760373632915140802460787418079864189443224283023496947988649541233215344387596844553384998886080956824541506819511237935293569665207367570019133469058392008069077809687960145126644599577797027311726584070365769075730649447998249341552135818520612469697882726418904284964781005094563527969290714786144960856056987580582691983966600652611200264013166633835405593546918555712031998899601970322110575982690160409345472757599409590468515051551255606810464791992065938837596027334024641776069063825397849099513032833568616676242441909930884215647286378491160230769836344255467197157577928281213581555762605805361045850704375261218371931639662244783189809817590097144997627198350394045671417671690062345657703672415755588578037840742542955291573500919002111133809544098683980489191115923718229601735416263251571786138559349822029725011068498464706942173738054414783915414988024657155951222312493035174824790319002232862835902022361567606080844719512186622855854987966985113751010734595553669745707312752297145278858985113581381840487135737522762730502222106579675977947856188460074920745010698614842318191110592246483299454304064569557980315560500772080271423149153931391824040949396163547869945817000715084230865302928861699431246994032652302465241435541605672918765107971162509858697767251086229587975889989564989949131274810617392561663816709976812765442656465881594322395592846220063569980399585647695749036376212881052470859844604269979796604980002656256534437164268212638372468296907314791675169334354686668199018751024740500292441003829005084446606511027366676041242860291424538332578244552482995761751604988950057562607301810347724801139098748014679499929569317422796504671371262053226713525622813387804159683925093215533463937194562278996398626368128279615577022341194267075752904151009535727861175063251342216729579664384385224802180191214647527182202834694474977813357474831063613046817666556477208423857912171152278691809470897535681289895544321841455841277253825000749414627770481288854843033841023168359212297248761622439690219967069338395040324460722427758260335229180697403461049002639100103731347225116222369986480969500187163715129137065605275048125347401214900891439236676861329153667690577828605965285491714071029424161782211427359132661561303914449391454628653591704718183217114631311616502486622560323080444836951615928443276582350902641651185670988746392750318238449438599423425083587311566464456262990330988382259550467001771746586614461511273808240579417145560827758461726912796850296590099986782429948064347756593914281161441322663906779368692583595624049032933905635398269232782405677895963540841053321012519912343117605118270990072085852856230382575901952355415997072800325529059140268710508673108240146627996101739409339659791874710278988205054255719915768751668325803895277590165171829719015232841397801529111302211829843494317074528664073634883506244635413493935546480418176168591071576137276500736406769739901958372942751211381410818575618791301431670783644638821635697500972563545731239745821013609206814535344957295859175390847594994063420899596716849080171052542840035680337018986189528888700030457499746505936016768572892977771591626040241614299643277874645261641949951435238206882027589587523630132060569930141267178267784182517590630833142014698086279969437942686959095140784029088607585907191840228226445435896172791014367404076555711969433765587380507001050625058414933498877658792194558863537360902975940029622737621966920754334693668436492513636505938566437694219468820323887866330487330153101122884106498764539842026957685725012004425178561893508830069358274871347600716219721498644263189266656385266390115931925999758046200049730769488602187834615864377806793061867580846577720826405698312467196020346252189375775585851986688957583456456599926120285688405870613280583851452489326956287721944732987756610879654832861329791019341055682265373286517412848088584606018586268387558432973226385398676075790924755865697977569901299025701408234514291202122762154496405547331297228964093261031963940728666557760583139282899315045896112548465318707586155469265333869021888094476317952246634588591408961959021610587284281756337797264920404236140612331197778356573598613891103316951859324839119389528625357650468466739858493553250932970741102251331773642524542769659780663924666156231795680147272895315631310406566208361030851409250743506718536367025599724314307334461132608581857866230644882626543446862809746905610286011982099864368906973646676481549760815322415831358035529666381422270859222607527735047505083980779758866279949709080155694713557728870772313334564184376254007356280155970272596067840592147187735874661642904766874008031662855127952686518027943404069670876290777368927060461368852763494478798490031131574775359742886592815277928015256604530057702226938687679681881014783947502221552007064555140314236492178194291252001625294533617031310546629289040183727939851232599056015329785872300007756933873071615819729589123081146973641671765627761956392873421374679706475834776641418072473125541964233850665814292002510749904197225136549484514524021910890772295544628871276146529979862618882265749526953115122195178283705927878794877496139200820288080227695281747178283095267435356271548294849083873184892166915147751304779122132449732923720057092122437129853301946625689993006567582753033064393901203798891716353773735090007325776062332038464020744948195145618562288478138274105613393629559944489065332371311935665171146257035317645802593310799930185337775312872973854721852260950866025991454471517046746522475840467767710367363035714530864181837120390547214733103706593836523691096095482682865413784390133620511668013249721281136178388396009178918699330408068591350133450080589962577579560964959701221056438051981484185124274170162280795584987976664757974138532841494216891860949532837214324866241514802365080065416204749588157754689860211884830370619309008209422115420135082555422629602471052246151937145674239339119633529608989075558401744246857586808625766865548482445984921347525320017891161074090470954976634716051580803132279445082165988385308733967461428826665552308435771152632628296559678090059822983147265187169742120286307816611534750437968158819046529577485427035676514292847417438919481012608319199554804678312266227973121253574214830777079531563232865494498649028214214646947173188972711927559969584146527850183539410048529582032993042737587562216026824377502917575058063458886044030448272127550365084172550955610185398563503088779881519384710420426579817501457966903184658862197895001616194332131842277040390043509777943395166439206599012485138293459727051134147155974215345453656099635680241170669544355335417035179693806960926804511033182287055824840673589537970019458757283462564879958412936811477543301169253675585317936359123811966213685411566436011267510615133394161182409672367522208499550714889361071057487611393096743188867532310072923869355175727318386705063306272523020902092282011986562985964125136566533768542720411685840688918995318784607456748852563567999818712418561536826111943091650168200843370907660910155976486580123804986577212271447720924719101105572965639642031271023966365283210368727647056665670355125868530959792743895893317720170930967169382593129521020681332099306523698411327800165165328873904400499089290033648543695936267087312110393500639486462700664491002780977105840573918762612199094024657286175997945373358472456511699489295155722078562353937697188451544860624308582844970062183819786834492504837251433992588913226607800523438406190778053361227011695046022236779162431194327753959823541944514871705900219399068441233440956620093462554372842403798863321379849184514837206777924738832996949105965883868894034473886707328249052131533082277732653733172728165372340956637802691863171672550482794509711041130508998716810037735871955029475855244725217198848257687586801193759994755471054878164329507835594034890049406844146331092241181759263831754619418049648474788874336115515933497312765270203171724279047636386981056654204989423134680714049580891367612937321972583691111979022514750434032466041870119675563642333517854758287685651228382439650420611214206587656238159507413670004596633045764734317563762763597091073681706956407668999720357676150069399343765985718880192062706655261267574992556924584439957722286090526030975824476932618342496031957518835105336961141971896129742124366265805917838243459223817206206981522934707571394028095189441009839623478297129733614783251415592808762875338218968082255186697207678415551417491969330432248264650554358053394714182244918138217760816256202423574046249622298808674318822774795571694198789018799127653076249798870283945803493222955955106862105454101365093788165378965592530958710895456323428154761294326697827659081089314305814778808488434875527071949728344785198319984162702470712591660632319540674098956450320122064556817663207142452539002712871743279115207651255374756985892385421223421488779879264554909839883555104518984070389841320898478750072769763224426751938728635650774633857376010603708636678422268066705932311303399291901253971896662891914358622350515396530111813973299382785821787610711565996454528703488659425091695392292803228821596233644036340230267743477533780473060794958058195767125512337150492584863006128115548839758954364115695931437702477122414155090575639767353855008817860042198622846735058008172065661136079075888161692710730574742215429519980465611069139554137702086453042013171832372563367148293837622180350715992188452094688772467957393509776849054870796996176813164890462815493566930937999053061228070506880868855070929845340850420364384972391560915370685319258896890119087055866543533685500982948612533760124721357102488130424098530407042434127298518310155287550488781441611483949235306599058022750183976013516717214871594821570107191329595193629174171490635115538648908338709918358375025881913622306359816988460016369291251975084118865190126063353881219074681262396540764613747712790721444232455759012843135414310844794302597758279214615843361228099644163073742696100339820707645065185091311986266800152968170541627486888483463525221749760504285253408561421034812768665900867896379920833761423639207367245387857423488573998924356966038258737709733929063550144448854050885272575742828307488807317379478375054220548203587226027407500270864103555515546436468471578201823847242559406981123372466552046277123077464597346717661032224429474818548529436244558071215208577199560106753669595194525774213060342964887904543676230830474180497309186213351899280004124654079935459671636734476346624317842188255029375122636904865835123168099437709919098653183755201611732032750910106934111589961353091000180784709099129342961725401479201655406903494308465394707168661824750576798802365482355067365521301082012391928644528081889328225080604292701340068770618382876696951287159529125561366543030629456301393477038839620424343026519036547307742448138379196821168500883220568024614231449178898300227164436054126831767311137836501340797377993617651022579491095719719079474415702405227803694978384684683164409256480445908680373307765130127107247761539603227566417481659767748422843366617097687078534495705130980334154196023774409155022702839235164599807685872551998815110518803525872426450782026805649624392863077317697819824653768806114903203763118479864739923138872880895419866387445726216426174436422592066113354085429728161547270249868011375756433764203783851917789568670523007165460259657677060116486737664019399177814010683687974081045025211915718033297460957320838270250008255636343521412559165833878166371308353963678422935860544092069767095094110842655912466111869322876806636665860265722921479474135633269251699287471312380665384491141486255601440639799690796335965859168318235710569557813863247359772722566201198514723680351776011228933733708401371341637061692107223696034560962918137669760814795649272692556470288112195292601223249742614836914862133753081539472123754064357729024052552193856616635746966733920957727764362214243633321564841895551164035182952191387312963287436913256294609090897860389816165564200445557044839179992940360902925903155956880984733743511010179562605713934179531988791398965109424366984506350950625827298239232431262692485896612400774309520069121612179640603792639713269559754959766493730962698112056808500920694255567416474261506126832325035714768872147103899182787258001071122529066376359490208533323819317609860202882671408247952939840481517002194502813921433389032601214220895153919053665838414862173929151067322535216049721423265065059388922663189904085623868218948514630101759441516505991245769017260307783632330049467253701565542000795462628545477607625014498703700814799417200920577767843276594955717404142512368780711041222323829756480851370685363582513009721070904122546096304532568164221607278317485311691882350088386541358799203489523280670700211095591402919180500561575835068828526631099982176082817509397124195554899479664258618556172423981618175793567612366543209154791639971222219951257741736978802113531257111948523522900876546629190145940777752652364878446552275155443668678280116896511279786662806573484160012873184131880669483033583951816050512974995800266121375215873925496886710458936264940546745660206646626365916097484240646014134756901665192590821679399836569274945298940538225009141565623236986424929571625219466518478266022965627183116554268848133109685334014002338642842690959763248673296333444969063573601985606880422767468956519122524919399554278599927191990224830492222127335474433339763169570049319746752144937744356532460702686068085111785582266533020931570208595190494068363652339719846548594922641989477057090778068179933971226096039016866121326757113065229723520224973583368856803845870783010786015156460979008321190871847656078685423067573894880900897148698360427901353773654633240046664377039297865817185711139875446856308494202276906514479734724898568504623788301539150141766375141518817616070251121958436231259945881200910381646607328874374065361517144779147765758036518048289240074878405191660512647538099803065640124061557328811407735206179267619352571702259487464104778122653077517617031520370393228363054174528093397502697828762096748380755104399195404511836082963397586259101346201972152892305236972395677574228305422595122667879965704085060513234047348002964773133369728326082147122673966597678408826507152471264400200058503816160285992924113502437968826937634921669442590326875717912815987615829619245528253348570497867322170847364878168519655079188409817806549628955164242425646856718006144811249615585543062382726197990118345484539549100299792959179960859802637065998432338076954266984814680056690296722754603319411362504956467710375969122942948307026908112671928659649739400087234160634045262916426859402005349246721203254806994472636689006344378731964771229295968469711043052214108455979899194906089060470997853620890280777357095161922698413255516596830103029714749097748558050556445998316126532858881812095219215575951050793564672148199219434039029007305539203158974579278208515565064864442296204470341982900167272089319751706621251677311317032120867669230159935305899942201829870366558788651019569709852105065970520188642485747076486880038067600204430157734660028400366565467062054364869666688624369688929105289489247208899026120680955032909939193390955532939341514377915235180913254948264847072969166181664645865171317481450733996791965141288665008668335976960102649650586790863531676323471855378163375738431845642757760733236963925419822638258245960105734450838746013176944351470273170052039554364895910137317154192091042360852682223961393837556643916912854526686066472486463965985272714111288688228354446288546530210880249377566757345823901227809245982852085201294147401508906619361361853621494317568977862003489130853808502578666207134520491919379236107079112098163572205572363826298243554582834988465812488554844809449256167817873469689866025994080264165823214186803568220584394555913594723425444690012998525730000834954234464792811657066797041963410425697243186948281821716659808925210369976910293879462846567622271164129532608667717931468797767164992376835625913098505097747902700328950417297011022470364137167719190012212655409357360660662459673896007162870528118705870358640056775099146453744574232552518105275507702642802967904581666314207583352484842514228874862929793119036308434398166703959725528447625182960161176977163725099837787507352551217375579917858535885550690072593418018805137569116192620323410758845904080122127334569077330681653847627955196739432476144684485716823594756697363696585239802608202907296778669531459382198742578266126820194877437774220256030094369510009818940510561757223394186443974397777691666877989687790210474925044604005966881830403915778800511725674271805958723839813276865652418046380462164126362459618297541278185433929952894212870890064789834790347654802360022652678848111664078400332584114795001173833822679277075240306452511857066735146927324851762390845803975340572881774478253467610549322766078228731429909211530731114541928542981582426681540853747594344852717491658913246429105254509237385394863412720901515248728574754524493513846626259776954260333612327556631859827072121381182648256682136331001406624958875724404064293700216499968136444338314960562315697742174428436683222395477215525696851094268369130702294536636058429078282332830873263039922486904325514349915195725992474051466272119222866277664764318516995180215271752516158907100554572778013371839938274043300925380631735289888486917897691688360147948567235796299154660307167033597859505021871292084810580470224225414473216063362020108818963104847911433339553360647878907559455885652440498563806230683426158037527476698857820821489563499840286518434671447357310144144938491000775473198831587531482703639892435127989966808913277992083861645123502356002973796718645861048642070105399034072335222640005885235986280231924292254489651829631998427960750273500764462544170701190621686338464772785132816284296307925235605668546058257364913556449968953698880726006995976013297663004921906062783929745394491386881051769110077590508061638717875120297125141901506018343006684274978195543747512660250385275549019147201209453626796068793597270978155797364442379967981508295120963512072237976474261506316068937196746458088587928747098255233897011699228592303568573604385785188029339894324142151347296004240361206069552917709849849764035040630605685153465331015494947708936637551031789441785736292403606572405835379148638293423565010661568318486795807877393578983430331561871636116140272235228941270636907285852046177188709210507817129174685662909728263147604524436828263716003452894148019345605604554946883863377850194245546362447447217572028547864015572257482264518911038437781064706268692613693469265033306494119776470798373427829913258762898239652869901690168179322821732899772724816774587418219369687319486858957691159982958441819315170583226331131942084826332376831335576049037852424847918776975057385870047692208595196435377520935981108709144009468226605019705902200667049366575170539713614164285281365578039116972264973071072069925173370172861665501505111505504294862820423051828696558644522893161527006015014974079801862812148504983473750270595975585010256805735254630589812297930437523439419750849491592130569757308939918603937508912800660534212457774136324390245347930752406091860956342161259753567385764967037188386674183880272570469304992699231081039421577263715963963756005079160574554323114882573813092130486117270029779527897243612768847711113946008775081630769510425925670861979828272333063922868867823224830124288192598853395152582943037953792122179064676383019357122907124130024326594599415763191969707284447821692360512873861272583275511384095444931818942877590818812051014612506716658278223986982811845000520223289340471933139372166493423971684301377608011480673307967019612132280272149247216692762039944752458067834584336793874995278739843969414071549964131187788437762006795506068821417630782554644280631529883031618892956762855613497074168085312856210665784613243437861034150391746548729876567929792698278005274396831597255779764495041592002095388345880937084583632884255742499372218410574846693792960106094105476223231368003705112909853337675177746600896509712844074116344691703489390688586728966968013086070460255350863366590581998300950328211614346740179403515130980391166542085474479883638729395007985295298318278599807077136487190844267512161611070440110770587244459998592321800475538746006859561183179809928915983287978679598892522784801698013360864608227361286586192616907074699231674841963017900528981401390461324085611494384404275126676024796156528251359708526653236952633425977844859028305093558624622179729203793536240773213850427304040105246354259131534948764827431326606610276848479026740989550063040446412078027256888761775340802565868464272278147824670987709930527866443983156320024406672213930126224533987786636402202887125517412072164445135515882136123302697581061769434111889201740601047003980543773005524419314240741421934946451164210882872484880473277506200714735255650236350380746417636277627809129513043075182315737448842295079524242200569497223541317210343171775438962032182003608129455387021163137219262871139070050679530379659548122843047541609326696676941455973812165201815098286811961729879891736294596507709019462680637143533996006312432010274966914211541776426277017183563238170781251300831345179179990524569469787764352864350570999460233913545193172547200507466149745322401162208557464441766025565187411240029761994572257717988327654325321242254869013330438641777704279863666888444498210975388080719663271662998090461051042004432713470926701655639185035157917229984177907373340135668842087895571787484814618043584225324786211784452439998656307371830213694672937215444389692673050044436920396832562576952269446947477659500102783637482621519912278534771392793313501321311110941358889830574745672283231345506358413987563139006907428453259114170051537061107463373865327340850183592065074618668526243126206859460940413040467439270328586080699217059675121011143391492881312141130035463239350886256629615086995302177783009675075960166055844123551738432896500961177898416336795419913468963868614551649479003202635790868799019036477384025064254614162708888802773278950294550566537162589641950092199608707686391549277380741596520189802118912034663133260353425967899918208067581595936517954521882931579725554011067845228688931485745899671076059613586994171273407714946736066365826936201642838797839218023994117149237263006890219740687975916728670446734429661354725682354331534224591085971132956983966040099168916341884387103130342636417089379492587840540011037823605924236132456581122775590666390845284125329402229974020562141078700063077574530838242944603950116719224760102657192777057820526140003372105082801307539141475634149539822868021898485932884989929532941480933879417486693593565702772809522959242831870862093229245848009737905193055940148727503694820027575633485653993923162318126956405194278106725059888211021186822221052742160200305780887798697986257393874563010160929926089666023433074567965737520636770684369675767669978144104714446247084599778919492338871671293210580640078199699711420307185536777800395119622569189901854668835091551035289061708680608764921819695624609741870456037523773070539710574798166226555050103925043660670147325214952950919974759954157690726543676345039486478875427318069632508925341505414429739005356087114033524343512058063879968272471878517801666661937985360325682925204841702880105471135768761229827764832491666641153614127158164230967783491739955228306216936184830226983358974075432771003156670630804827586446791472689964368202314015379339227434785317612596196110078653117446392161683812702313962332417678795724647684790676215629376354679153198349611333561541924029187178089677682620680782088764016002522009945244927486438756866461037477022295611800310233318352216656350074997145338766349441485805823012139408101157851189593193858989101786377842693887513363901793331608015509345056699206426636023727239272354541197534444700876279889635696310365564157057672914627908462571169970196594965031568952548260799107929209980103556658806429748867900527368761947239331464145777518297316780162672059936851416111793593901192930089086159331713985089057840910754210138174095456505093254089149593575684890959522668014971717501724824898023643791736377369136131326480958108231075462013785551551745283790173129272687154248295283655189113529227852913726529105225968739306536105424850885253846310867317585678242547500944112090643554923088121827030966214276353356263915846894129633038200670883671221734970996506155675745261307682855096539245964904405110425216158858779368617136330211391003812870526481193737866652358463023438471645107698722357043533588433796462127516744753771204609592894633904834030476502491211025495702247620816571671380272887792743441219570347879566981246527691343672031919304453188108616184032056793651180367878606725608497927386364885421434975165381510512578364161506691217470445063777897158956070519373434403141753751851410707091051543342575225942885789250751184103316270801164452678245782920808769884992348564468716969002393997919500948485395071743486535081966925235405185939431823926228264108744214124009600912978535138171740967460350357742842399926140408697041355186748374134757989522392695571481639956251543365625666365739453971006304207323544822120120216290497080067838315162308414136964997459560064306447511558703442197893247601249284256137827454276743938518903479714358678101038331052499985002690208300259057673893143276190413963713908476629269295512598109010935180187632495533211079148363698062090060044952952934400608547469808645457774896026159954509002900401995574047630069879965424959468337403756408512144868179976122387917096991124649509863651627257888844143842105408171482662149653477171391759392838565678104655785503264819149572802973536144561907739518586530740659561251642852785474330351234873740142067243349372904515028128449421392676946162537998614226409784866033632111445310133708192950548312430042952580813126793622985596981273563509193714867913764013527047563864503471810953469013611461643869618834273959000473376410105400766141411277780222585955851438758281925966680843062889215091148955451290091345782025582297359542746006769990588059194240855378743074856266052084305998184599861565708087162110739086723461758199964231959781217056447808400827183283815457132975454216211457157108811834122832734223127594402164667602263026521405901371833810063919983749312100734139310172627356749047649659369557465681156175676855715858882907917864883803879588561164139197390231880328943692766090662167169416418563856242832264928457081913934965709252569681058353126343279471600791682784110906789276972004437946531578708780524436143216861911607558730938434819165489019459111749478043097306284178795572346447467970927442729739832900441271095368678488097123684874967214781671916948956014157730428257180005966702578876260957186592832808960765400526455812799989342762930956691601166580598915499703591528836949390910063126955749021213031958633443473514231315828764033680203921053199166817718144744805487378238242630812461041720774613664526858741208778648216942442421079731121233710242058345662563210788504792885614212188851266216881188865334769858149286459970233611970201539970760234581702252239850997070762916249147862469452112714002415648159884882063773493734922107904232210464247308949918999656620064400439393364417032539551468771572500398294690873636522924611118797994517034864241262309600027891453292686464731353533892184711070577802180346327839639912105431457059817740722046125984466989629403973176507215004655333662478984983687639911434762774644702355776108171859788368576367029144238855638630643567229862737772863861279961425840271696601804847643820761689475128473718507002015127711444297609814433466542791356666852535396133122362065325564408025910765227559424553931852695049535609927228343021749948699890688127825221869445658848833412498659999433175883253670199820233609323188470287901856344234478435125596613641682556330334449681336183708386091174634836527811668723376080096593654530043621340113303607969843631022994839777037951560237570335565702455963477357733875118624020570038418799958751998546427580839936368389214859179780430704527582318541847778250854488805984986050117328494538205870289492743015985074386779559844114114479814004093819596468297205129481735004034631761292451512082852335464658732937379000479875922356651124997260556291822756557470084530011739395597940694654468876827336283695345931115560243669118699901050616631837725542555861449285598872157489224438945149781891908844611969420038132975346438082000245443411819299108573089324661046627427779475773561596187473851999068393214054837332280027705293259202848810309262144203507127655052243712383781184753688199223546011732206686046628244486596536204218886371885271948104173753091226267021602413449668353772373951298565156698932627631340817271889289263423370410522590258880362780366924893995793034498683793414969758940436535604332634651366384869636208055530132205515919570891751232828590465828242308809406294216762994891585435715332196599222464622923697665758984549238815149273041207002330613943064524426299968450210207569713500550608837167096612427384192812360427381521461037455457639228081680501179307269439951578337431281465760478510970506472273187440190995205044936089735101453330767154759737298121639491868845682196318551995732313142470632196486309361407517972645449921717403928799863767231395101444165800636222916051183941232616221971352982496606525363761303276162212189976212180229170478166377536640222021192421411939365960633400462378602230151370608181647233571877875659213115540863807510977406436253927719134013317281221172838382074724288054134216547608505876741412532764813793077026740941794227949706115595974926286460376885807133173948894918366965221470182679607103414542874506321636541031319673050581167367550330396776584640410760240626809857575768106009149144016181616245977406036671438130641218097266834512285870434723079171073108974284028522348596909972491625625189147487313516588354331784175521983528163039353870719555902433446093809997027648875596614315847265086278793867351128827891191094830652171632819773923710747362039756408037108631201844454374287769209796552540651103290896769166274088129679344380302789001869478069326053131034676052300958592837050987866391409299480005730097591937180666465987501142551326176219440194397081730597270014541416905329025694935583773345509588814108036532892264609933551952208054732147705562144355829771277314356333017826153975124197344977910851283099285455791496463604610184676887457873689573531751204912651050235269729576455734027920675214114720312698114878905162888608566279266760355294490848080200201329239947807698014021062934562934210118441285127710435750925006604393325024727768316323846860038587068366327417834758922896462594561156906597719996531862825494493456911237869163450104988678912030912578401856583462036110131329936157097470922467964638799860838809245588352185726615377080794605828887704236718706827774503234461901780980900165146190736972223290964801200817662843180046452821543821958957701401658166199535766404859388416918475754446417936793022087482168741587538267748882148943791085051387436815973486899496222315070753199028276821509943555624583585065726319994149796644562190041335557692483116116485321068625888858710863900218810959201442019193582727456240128342800651884704635607348325916816194464693850462838755139648721978481771444209442400739048923467105797925183071661040026100324476979845340427725129680466612643899409183756424088911527749818847247544231971042709544548422430576327169847147546371033516561456474017175276835951380285417046178913883431428166151626852779634655384572513612074955749959784866805499112478055467933807808259219453914817970816411371441064735915263569073750890478876810983710340145885879596742434596609107883306848990722179133938837907483599516425367916315451724813869666740528637495762336108361450210316687675023093551708739441844317660969410354599322141977642767028393047971927388479717374172469857025604124640588685676294969273792365800516861715889790119169112288753720534382162697005799422736893697250889145343517499151308619236796410581049051476105337636279352244366326865713603560414650828705989605714813656482509765132620501839049264293811513652612424588795972391591399672017774512272437913559708104869060611797109749447117050212112235476552070262273178545505284573590994451629581073348716999909406614524303606692321492961817889117197216159532488442607267320429317755733567538870313802333950429513476766909115233390900618207266576111636530128834486982618165012482098810873357958669553531452924339923627020377385652413705839063767872553062836721665757638580475696402439870763176540795077786813279584838844134190722325604333675707179682539579012283734318742782602267898988968361558101107393435590527145992985190746246601065619048615093519735449600204231786953726799031565405606787110656029062972640128593602502435930907268095472305009117538415006259582161408663297377222473661081353164591335710788270085691438725693325185200271952563947116921741871887198644623564544031594470514567957306272608424117237704415676158268187397104666359413886430195009515743587768658776247863519761055226973851563129909674402758136504438591443077510443882603133420925993327299097749841639334540842912121456562697039035192796264879911118826999150089531296100175545503564228539248561649108328076034203304619015465922139013730023937392617923752007340784800892003755631038227623884381386157105854739898082531603258102171335401974441306092627580038450954948249552392949336677766555516160018756301625593412565553362224648396331696416372316396225741696602329149244799480549967063468777662474028085547115022717306638221655345677866561776584182482395761215156010458270329816296806039653874465767761449107046555661920099656654528620186944948625066217154341028444720598412936535608190068986159455961987953641215666024159465528180135725431460001920883081103545288765733867280037215372691776083892888786261254288115421923515893138646041980570782836147013247051946034802203682551544120240515248951725829060464076565928102981149247647999127329217580701926807475917885732244198991442778848395153569247353602762489395626341427397778561411232151623095488786106271599165261412634225473303201300638155745041037535373364968354569767586113629429536053920571189756067396943439312139076088484548360029513010930709052157757573599128267332734542196764871492341001666895210176129465431878483182600992843953352663350561393085367747049729416925341830721139856473654732041691537180046200877660247994544214438801226073152376689211504793848155759035933892190880505589570487731370049882693884937488599606870696716231587371714523590146302768825238248210868870948059550200654196594851832157911518692038575681396173436898987871701719472609423487797799965547614835584474730051111155089394547620051751622086077735143247595638605286293942261853148432895343424693251697528579875497724022195478981493630442177207787958430174965749699831575683084711208993505033602934147261320487885665089469272492284662524273800723690650636777848399316427763525814991890219230087485810813574013111675548877973885004710957073441998520409134008759427902070141613328829487727328516481003146722208485694504472643706326414349168115050230114879975995066332547599332083646549709658917718942448933777635518780989834340596738505784318762333939078654597689209891570248858403251923524345869952881967183775883413583788474011271950715100261604829385371437397192221416735454184476667063018384442957382241208769866422045164817391226170395097154113545622781666060181025411837677521705833429163978371388185851476992894223499250615878265862320256241785777853416271822695795319843827749472822000856473923662629747686998818633643346068021854379915105340464756400724593124644492944450403818910424076755327044495573183750764611802990552027985096276848720488662416736187057365237093714096108997052922819141499360719199084639323853062517995539729866088260054411428261762976381284049473522357104339033837677329967218747560448575671528481800188527331626227497391454038775970119756029615760744451397945511171545426668523592243735302141267707885266434774144824409176481295854684653214193171807640712080156959389773862943290135738508776738592380369267303530395966313588553654039911620143275533611245143951638071793147801869631065929144418873036592804533938243546803210222083275894894743924554861316838531393270633944604886361776853572963701547341924572569693039421173472574788624818390383026171761517771362916826625337564013045457236828436956079819809725774626075683916369689708711946748669625552593508699441625930117495983426977181020791060418561001313208849500156647251888961765284481043699823159861559293567449826367586287870535478068768591889882002061223339646737365244255229792547113560707771914725513091232238475420764368615087337163469811214736394758476993039580687029229991141097876510414498090350642929471385341651864512727885392793984989089749944104280633117096291383832108248489722506029347437825179225229603673130326060534859778350085370681291359615849810903982609808961110954718452359448827459243509457493870312221157532463582892479722371010345663555771270847256799588485762297507768145611647523679390997703991015235361337018618872313877030724889178484704183364711945133311045634179673973561998803285820321822567681253007124979540485184535751194378873055963027056624546746035449523896769675268833529696991342776871254833428553690756844444122217148030769057441743880316714613975709782133177179993676771461812521382246426658760328162701025424971222904382587799926575402894548587141065901087457828032297038713241347430637285692794051714652210986453205068322321375985563374245554420489329518145133686163179701558359667246017483190323697667183344831516782780565418803098927161775995815797313417737016795046513341761200007631196036410361717880417957434788534248654171631744301922981218881352525549550081598055884690994199415746558404311708437079660827082849324377756110743177226074336204926469784552300347189584655516812294761421285671014200314536968295534223252931613780195098220033418640985927483629506492460042815455812821404791241232975082285894419402584009046727397444509794987822781493343351164317200651172663405733467952789047830214661008423018007431248581674663494886699173039521897983072609249081947283155191553600933803287352445411867322430856842036553575012169290433209025198265536275797229578781967072623158856855973244845747379585670349667460893440911688663592582587643854247915760802441351497707875537578041072852106315911933410485177999363860329134296270815326159911906232921044838867607991250560190469297496097143735617861029771590545428039321571035368250317619173286295666195865189287384464110289887917193670058147542219156512826881726005954269665650167617381820767455567518923716082765894658535577015297129696451306224868639986981447147374105620180939406487846820570213260370484362229731661004433138755080276603135618060138412802242380355083863834755687732178888402788644719655597802379388863214598712190120564953981621806904866589038944415478395011930505372168644301475241812780771439684244573723520464954449883435116983729172038983837796650340884148423917686205477411503953906873461027853322120335222967141322680766811656541429715278591680720608722443390112713429136237149941640873239814305304272061038145353158044267705131955577436223059291167142865539193971033462787736175174572545843994898613501605203076436508571912515354102832246694164228060348334917134922606396990435284444505695274204912545671891868568013080380100203595816200307507369835660139366584768686076210263747723050900142574026183260139830875612970316872120083161606123409386348123850564096169002009229206395391708896706096485310710562409483115175653019426491607248656353284254596638066251409629603647308430810638047256181891961822027196535514116851814384238305037283218364678998458076496995534308534870313269558656296486456897134820806650724268956598576330687013990417928716159457117366636182299337553274806126383193252713800892615241308440556692781065973603593030841535670179154338888515961145028371034723970668876762644237278622428169983844079457810017899139300250480858997254184147805826133631591705568130951223316757528404240238444978265760146945790980575892734517637585884136634063916551922910380062646652561261815633179608023754728058043002485418544346240509975457270263620524491420567056760217459635033494390022237407290339912706260579024745540350791861674014829689475961153391771715838917712104390853685833828477907818174966115622636308910856372048522389942120164324170299879536340660620905604738294839441693702835262502120456269203997146063782395019753395571400755452589897508586431182821054941543328207711837234263819449715727932200800905846148069210831130098116775982753479118020709961238507979765297832717298065907759686485857166611152116985865928161538274596942571201934134826286993525036287657236442564727044544930278212107976785495336000570253214963392269631240541970705917580441207620167673136616358518050761116715956318138607823619232133638423087270387538724476875260790026630689592986545893471894718516268522602836934509366822508631996601446023342023265233590120449489381100064918563452511692124292438101713384687561260209656595799446132986345382563953242820206554384212271443674985091281597664264563607112852814487332139608195677590557600861281197202958966459022309055462645444628790487775071693717378024037337933893496401208401657712788297907691902538240375849383742728822454756204851101051269848304814295243360870513039082036629066851748525168883501657234306446727229141466409894668491635047714032524683961146629064974003402523544145795143568657065398294264776376796869155593839329503928429293631103092714011500782894732697076188953040186231744126127985947680721576888752326730367424816206419567720424012268787893970246910570502927164578027533964591241929097462330561485392741399951010310004275865835827091959809412465444332703121210551150466760480154282344108919000435042573256525498727791630414826962338802650271153230327196724446154928735484454097459254695294152413516184063460010136430695075622684018495332615939666594856698502964930776072574764204209988690420378171836767192754385075854435862576049215969410371165552948445998120018776267364035225311103966041152292323503688027312681697267867722988060446164293707691528660622330274699322238284461623228978861399840700759396000075712656351428370568430715453354143838163424843407821634399622149463376938256397742307700802916218211620419859103893309026616029796062439408948100327327568932542780781029489691866117403843372369330593326858493474071485557434550220974000772792698969501582738269160892143052956469802244393050549115018277910502723209153858798373999759977976469208466571527710968882805529159852598773397288337462454686257690433832023706260672872194253363370640715250298595611245675275760832375999212079882068178970157443831187865881422266622611342019436760301228313004329686592025634487369735116941435061703677408089341694085715732215529110685633550884087500730765037305204655732752855823209601757987309334915731728890984007758519206477869477202175991309566474071959401415738278424665332429088031854771130522635419730624516926496128625907651610971797909518813839889554710974598224669261110142316181172676028742683642626249462321599289954896000514485611220220473721615865749541008492626079978719315398691963445061890874862589781916459020106241855405787299937271079059149941194090371248266754736522866188108016174213143763951749094199375162230879509658256720104943555045914766793077376611883237356154214622665539006741580493602861231395491987612242420300086682828873731252347859862173035511447674823074671673599192152872638716017231664317040132982827679011661940643805430608698229426765791540716821759748020815526723370583058703905421525486255479321005637620895834720040743154119520705722396696576204005857939240453849539890538489595098510934898052293443177833364733050142314266215573654759730182147966760288272822176590323360180130737059847093314300606612196877874093387343097429212643967864343776253682738922157564434092713296556868465161674933031908144756083945182795745309734824208642373861380680513490063661300064948122613913864831539995578333091642369436862415861396556107145007416613248123283331216300260940658965119289374832973690087492070872405514821653358970514634709644819505032560194097950547440949966521261083633169106381892898571885453661991785221856403137615596514247266240510783408387081508487422118527593981284763182630258305461263507714851929532524014283240557154403648495358288343080061546205693321650303757145546898252828494683812942996929400561422705195048262879750661129321464394215138382653641936313817976603438840724261724293091025944755397381655410651948447549961688217077115032959606016002400807523015157882170489627303964632891622220374859046361557842621001713029405338550603054391373940744790717417590418425458718869798205766782231788016602188356789421555644436421600352187790200093441841285951431651547886071369631282811951837931805776778554398220001783664415663746729443295098837480621796860730148890406929474064498127824799050856177102545806984581757262911431423059612165140372481508311675509395082352715590394580567454084787531800711489198182950973935832632741134995251849653619190221348033743429467650182527577292724481264473798125303486218676434310084950310248666637669262474526269992293228173197519331535788912065696955134658472606938950781384063007649108335003520234919789566132311003214772191741065988038575068365545762508324541759762309235915467465996626976732285237336149078257014824942382474399567073772944798017940450669667248281321437275112056333923391444542564444708351246237193483980848911717528961171598285016790045731753538759249680856796307443497653929954556442215089679954082231226241401589678389457939090049446666112416418495974601491830750274448780042289889862167283508100322692596969474558013829540512115925156340435962284143578654641730360380243166232993209183956531530835543570731897247818401338064651168692706317598255206898612611567406976074723863403590495667403486547840212142184910029349433239363585545380232946022301908928535473408185976258146411317341443521377922547513280003105845001566708802256292604904373159463356368209666911467805481089672871647425138742444453456820006748135067895691235354568068799276690636596931982463397198911513408319193832417481839501257283133730905939110056829946615133266435283382334536727521966134760044673669149523819538804151700836619538546938915484023773459733863751594525204002573373510005752937703144966044613392558524778235363065473581356232679849661135750142615780581682164042682615051287000347727229047600382359990039455659900319117988901969965380039094949870303890685086940213828545572393974972256877472205197002838663825790724095657534104523082242302526956542479650139145493639225487316392711934071698590454161034839740684158040577251619793940452001466688865221187639613621185906867294473944734770150574766382499288163634155987895428695516735473032548129226358824070925208957975078056299568362859891185776443384816578511145484975756447017222941059406248832477792510002126002376254093528997566729421505249750564764674103877449142784890814422728641606155193189633673599768818540858254920553361512070244361901334878403426880126893346405767711629155460961359402992016864088099915414921813938829760534803537575025481618133966906363513702624099234251354511902705511854225005649933057438491249783953116743480629193658197006921127256020106093619170263422046612491861298860717605903284434610460411012728070700550490789256728463206205256635749861586156271372975608784304580816736181138485373713023506227858028748651034806477710474611874954858102135134875906997513246329774658658392682081678749552396852838532535065285566191558831508303235465986884915451905373800586123325618641582884005548071133568614149529772240709238419159518085759048296939467625178572326152798120106161019595383251358278341588385152489742331765824695714910317650114023321518772982813851751288467910563501976128693208410366398368951931416481241646829447719014643096147945086152909608330836450629067577204334552682324875705119662581650224772361814094236964867118007661429464333337486452731005864838131511305151008368196733805945905500951401176002414649943703693990753773389575467812426918802124336566626097018049272167670234671521122681035829899716651800078910176338357688292815731273108397645938261966928018076367389075574092878012505477887954840400390447564061311629925655184262595861710643554588134388437975959154095073380167810690888631111628714286177670344529580604429890138344701325960545433260675180675907836500295798260862421130412735390015269048932899584744783626926661635750509639773463772394965246068334558084966980224754797688309138756885734308287464576090319916480142126083759640071989587089470910615874553851443597000648364834551321419852535609642236792861685030899735114211216315881822624104366579288364060315150989638803013586847618105966824648468791534095000695404739971531576328047771163680129840207984285511680116512882678167781875659037887227573113402788520935175061358135448822532001318797285972909859141237582512953997513807546103527198709997505637898444444671060809701688334672669943184108811263944279194691998408705899257493597218360470018835875808989785488964066766029495084012568993253350384379125767180932841960877903841490766489199327822854245173033987674995356010549200068672141458760903526013632684374134676048560033957762018467838217283098439596065169191067798619636184041340723785771464773823160419451317300115777698085375565946347113697027275904597029075571270399224339141854669783460236918035798833212480040709053169573086388105439654784820491446560492892300797677735245539546686882228016100894093030143772772068348148633057421912033374141017468771221094431280085872475584689102260161174956925096611835088211193449123018407418026907077423901843830773114059502597489039724524437698921288592226407298412248334234497796431922411765435403684314398762154453535815451125940199520099812091014915052139412526204954840380561404736918213426847065837671336081757562264626642807724219823447712582114556630755304441875849108302078798857028349337791761213440511652168548976477457840499865391774160473130609307925222958413112143223512348300964128448664666062670077797526378502839992451061895461621310702265133727095308125778897518153387666361287660045972902104252878281842816010310717843430351024298646258915947232189245905266475564064164940898920616743011289773835346900044423960983187248535087949378954695419950020616376229074547345140251742903411936809355996339151033133275611263881673224482308826431707767345850566474880981828473066576673400183404085795713198537187871965094725577165818429076232770431967563851827360164759174703458539171644021474679146993318832692897617596169134954854508285646864014003354505505451365793397866783552740213361077081913508868371355046183161759739312261432458954862333512599926104187798141400531417989837433216399563059384744312304142519811642450532417332761260186160607982118135116037988062973518509599078826618507980050706285226735157653962149112505520261995855210745920419409841267067826201424197656800039486418178212832136173771414097192341492004628776738766831788315315576683607375754163530343592240213776493522555809299356222360713633492457854614717762199078963039190957406691650692876000178111738909434975590613136300216287148044740479332439862440979713532549247940877883446075722049545130397253881386068648428745691708529643207562280864587462242177683980894185434493206606975404654019951908965329646723098521389972747010798092828451146680127311843570195310664979785649701379237135158996153098300698464035883468941016598420274479456060129227715758026049064598368773566660986942900630318333511885243324275750146935850481704953032069611880404288700910743932356446769881475644607993451375006191859551895982463779830554371580774746207098214621585581657437437363532287363938647959197181352160363068170356651155804571670285960728965290430572691392265256870417157086181512760890251766690521045067071399630617347091171807787920850412670725299222226299917076728403103755643148055290244842002626185369303120615963964677451959653637399568651324727789229084933844007904607671517222619778558620649614955418672488182616757801677755377870008402094890181087005263907743413272736939015625128870170244327065813797267557770578019941041256823989201784475859381945825730186993716157413326531015830881195473462872167025409857321658855272650991133469209413435861752080082918834861208881829272374366968295832304766164880940808192038924882691718590400012077501570500472792344754566209519963230671385939686172676394627919218233032940070862605097925694352552314399994384370559255884529748933232909202942693255533455664772845120407905093165022039389231044993398342034422062686631295642056214510834171690970359463136261091326646668740171167588385301075238178171410141957279469428510205594659799708123683242030067211054081832768361568721505192568026870859746644600671197336212035086280181963477799132594923152336642659912596134928493254881844304474248142869703488702336206958748906956433181117180054292491260013373006124651169318759880973667438193623659534197118356101610989662029118484657261483924661762379827750791415464742523271296189811729766436181085304490470141428217225428071277963951042558881094787033163424621107862825680915405938012477514628169497046274319122207110133380946315856963558383466195194236694527006837296666360928637336057926036502679166803254182050267473179603211892704484709593758788054296268585999907526307821546954550991986124505103086860979838050370663528675740405722509924245603851655202341475459429739904656009794817606952193902173368056653395607186815245292710860719228581037531204310998747900892178039019704932402399916424025000802096309573359614857729754438958422522774591710936543730566485220532840629531449856752354653076426605077561801625049358863727943930616458008695300754047262802812702956386561731923161348727173299478795995050183473633329247757800510241451497096601556946859219084986555751959722115826216045889053450512313868957619078261985739081260685054599141315331488649327302174314916828399621203034219421672362185765527115580532149288076317065894106837934882860150961114480935816278904843031792897212374343443310024463457258314778223141227000268207237082406580315237331962709967528738449619317343207308431253387908037051491921171747361728751055431679008446215365789494065414825420425092916315642483419916547157218006958067934168413766318949070440687041182907413784633682746995088458513656009866864667681027512901236974953849568266963547040110401856020981402889251107290773063327419392223269936559518251564397672052264261789652150038301860664000868652334417003415136994749758050681152633363861994542684712494492028935045766796917228013794372300804811527821877775258153447190911164892690670573004608931450902897608148811294730609620718720425713289081824258877250570802700595067303529413785956886452728089238094863046933303829344199826429627423281463952949657775707352243344714165516817573352533964565811812333068567905396786474185047912766296608436961569731255164083239432016169252881199394153470484784202621334957899502167466255651737904770610980937137956501231714946674000900430734291991549822223170415325494591296545403613730219903685715470374418331579986959928887948052050938688683892746984389646297884481967157327922204897902190605708842472115527849215194650991383206225706337065633973406560983118946992967078744884134564613455912444211159801965680430099615664643702002135313136638407088089716545558998243413117437452834750208598507141076120123937513332950937295386338119691027574812848764448652275306604105778478345986682281343738827645022423529660704492604722402971235791027594511810144575316848429813146257973755521220220758033826371197874559183211246788239031801934453845741763863498180773182439428343305428329292367721956131797136879261554125133003772202616578863793489299793448151297930869114643539824904772554600853625860457633995483198885815898462932818141130089339042724623703222064913616188019424563209256564401248118523729962994967052551653250687713529849617709457942695469137088893614572089068263985180008044568591321304797389558630851247569458975925627230505921433578049249981050836379571366735596889222204539949787548264392731516684822354575607377148262072956011306677216408787800036491972401125663556358854967740110415229934983543438106082416863439296829312249196193099122312063118869857294264799070213429049913340370358407427220438395091988240246324732383952480529800851196373797899611699930872681309966096921496130186358802795939662915369800608091126434587296115749804458995472940860242836100007436255792011734016418808285051348912671533250123961680366649671580124042511265960730660390904650394600408583971906647695327970589423322475512860482164095027579612702559614933579547556516751894867977151137499779977252822740907061561619914582845826721245084822653209777878254131743050169397481741093523615573926440085512766968999483525550319810327415268890260034640552848465183895064139304124768617690363098866444009238985415179480787801896706027889720209199878976335000185469247438296525903482820951439791293121130856242669302010651048927936170627985391999129369874962382687657048825188637741363720276976324837558760374821537507606430795226363727058320108416049724570660101582198887023503214069162950043302868934913876259457316081105264766976692597133227091164402655435078525970750615018101134990072779634766801235084502310988200812996928002321006688969025918470439711881817850265374226789551426934015363202429496375842252083166888976943498748153446167384313867271189184668356598669224774468309575102080738832095858681346043229545827334653317093071701948611255716279092892593583244375150800102076085555105789159249265586980129593157854795361799226990572304363911759085902461542758647127206687811781523284632370854988416150961317451600677496688544407217600697377585081926377854437001064480265538520399449224997646697569791545014726737717068289457431556616919468789997721169450789824013999404564149261751288103861310724463476402258959843974719858785999782764143478787300560512013384073500746645451175104631600877375310847658640468928228630841109848987169393407438220975507072776536316997111236455537842506409945993789652129995079144784702957526026200008647442456034950829369800012689502654723905470340847195357889378592174732604374048022077155363516426954987873825967006188723144658622451801455664397057948301618339976527905776404743816695697024023627750618182381433020994756670467601402685006991430660141103890414102700428344555514614425620835451018935503701459390787984020151394156508397991114242496393609815021246268852191171403898571852934498706208088779385440282872481712915067380674461151951889460476249043342118504765530174387232094580711531581897424552217838755954679075173502185615282904390235159452546405201090166350467169731591368450262033155332913545460505077982154920641049053515311904624402748913895101037446823532237989328755701748939967718061674913958105996842745122710730087532312147096424906434463091112677529685801996050733591721912809870873069833584046066288588697218911241889644150257185323545103879891407512137197839473436897355684014644575778340833741514671837231363998561950778959832605893654348783002540070980204825755668914107792882462290928244918265727981742454592904548424183929545454813328196412846081076475220745899111665596612055058690298682111170919030775495062803820950237942651924374664102475476370876833774328317115369820651946924500138737169179708458684292242025453259206655615450672548143497373090854905429194985336100561819205409828555838735225517000942796402466145351531920630831174855927896222052395268590008489863099082847171378237282620456709760306064434194612148959060827123051277945435608913444271366601439322461104587058745437348053077854590978544414532574859260803381329594249302815506510891206888548118150965349992980323805643580086524260832087683006672080320123766618913708888890341173577723315853631692724260413885090301747738843721545691816171960656467837410745259296561755526499313947565399094492951838303484414148793883998290134646539888493527876914698975154777362364889381986853157517327634812094124675737488735075270908641810675897739870796046475962062285071859375987931155699765741624326669792541312502794476067592693921745849846722951066512288540343550415083904176317852729376438615166600321586793292183087858795758207848950222100656561371733612684013519545885893574721485229883731139399497231050461056488254729941542180858685807010075857960026056445744165384604564408733007158484000501456276745436517826906860838905117907534837366886385934628806187798598903499279470770356344172495594647740512983019663933501647617572763378760521521116713265700545360800780672412278484232090508138614887517574147382847691994107249534806396755731328888024237159296318486604472329270307969330326725131579477655335752867224125036199219102377467213693137584050762490878364628298234878579409685116875313526280775045746337417331317323234273250915038886331987817416944714735131013821349431824404529696964282498095355262753244027664407888276355221146830560682362550699272307340253572205593126447207842893200878606825956029186764242099415963584025409339388074307591215951645371285403101784503564661891633273064277643714814936277753618467483971888842931319458507922680177427105270632875286132491663161259281296865196505511964654691608266975797074493735224525842324760095972430738988063057106754963216138877270516454980328141749077831560405545692425995268230659637667186267251566281474546910643227457568681779155159886386156673953744453718566180893630235213797572759664846028775008149208899675284087713569253195397110736838624138528265438917240456029150627752677990941852916214081425687850661347943469340652034989666451835598362613179311841813941029110624880019981553756769549683611401656672038574144469751907869303538823137450455462404858352063762970701095509418979756860071581452676948769437023665726319049148282905073145607063735976845007565276413692597889884225307957212544895393608737950245752170411700617013308203855375736412751923746721792940479966057352727827256942426581674495810146303888642487071164263951436631082137669363115086586375932458654102820003557095756503339049816636480080412217516048406897086043255345037243937768513749894880778431013118832904046664574917620179007191282563618699485268737055004988206443911482004149951440779241423787622684263591865184729349587578373731570632477580003594893944365470091485090674936529314607659402403931662099440926625948002590477018255998705840312545795686535656637776247283247093137231713172485793090745542338585854655713583093733278744273267109722730290198457147942300941678055750763670396870770366523074615830394677332862936875527250933314097062761110791202192535656583832926037899142450906529888101061388381414847743758944592691160905743910962469575751180531965081456404297333997627243275210499920496421874055635113422572570771262672774438781970779581175519137274724163386460124229437871826110612211776235719773682247846844820477689879298858905341060973365839799680313817019255440622758429078854697962217459988768918202907642714789789991836678200836871279520239359526060446934803672163799834550301666860705415328173762079048191343010947751850520823665373775836646713403647245801032707061655567271684851644032683073899420389343987920894564487845404173860662499535713949385323989904231479637941214595657474925747610826890543599552676962481466581329911989942567115828693476271220301779519785628470380802495745882092741330683262335729922675289123409453117354323215040132216308545451786762031075736422336346627483244027953565401847190698498143559247148818591448391174820048618450247067299028597914819619627841193146006919312741434968431475473934858138220519759005638174531184463304490185954555775391327125183701088465203470639296176487411985091103581887329722967726117534847332578486804623418376932410132513721049008873912256779224390987036659459067230553521377739037877130384939249327136080949214144168567558583461290172989065399398667068969989272918204954691702453258217364157458860169318802270303803147347249838934502360640168422877053513761397260880581916015056163429781921701827236159486275227312050522314335330848147474628922395223085229000637663160596033533823436312211783243124590657542157366879771729155033430793184774945925777795221885109534291457053448533595021929757865976255889314090350952231947562302802606121178376019920438489800028873295927996362974514207545116950081516062544302980745835841510529525315640099907797109529711382890862814135314511390242071568854388908540423528295061715360417014728878050230649726751510848895258830345801528398966951038101882849255190188543811982004364493726274618703669759200720075002257136153629075218214773344098971454008672197616870092168931260101054852910405815228424118281362893094582329229977423599208251298395461116431008977951009273198566372168032312552691412095530970458181427254616174301862904551849324348412148299138110571110157549496465484780612999451626547555646704057518875666793856644765863555497679949903015994296999326116395300148635299130992883709546035461380311170510808043027479528616860977861458886772957223129070748831424418711624481724244898640973188361674385450652950497531979959511848831071445548803445859428778432072177484397326748919305445030591693258821754477309433764572125680296432862285833895065206228998886282830204222351063766910144225684851623848066430148194591577291127291616486990887125674844242819935724873768928821879787420284047001449222037623646009518160931663267880377701946567090631611487457120173805555575965888026536793931882698013841462897508061742304664832931065054151861922284359884509531293828711760662027163943816282369901710095168423037291245449413392989657857848225942702749630248642802771701913525857382664397824718244964934881368640273392373429490202663442301481157363390144392193926302444868777836395213728389333234853570836394058353608653460236102086891210510796343445882813472505161026979480203220657141811084928407516720804336432628054392634919575010929350997277650506455576519249892724491496534728451159648576836754283057615636842169134320768624515012750202241999183714971047031851612645349054703625133420761729489012129201615272849539873359590928148086706679052793629797423788693755762127467848640581482410432878113135513386408007263744505991143205773890793322616207123735262529750791208412541504359562144328674023050780771845712492459841260364475132106139321537404457098654234360972634382722463918082702503820906662872482955900862411679437090082400759829419412367854073760352473567568399685126032698087885363509572255802457268844046197747913200388751728048886701057654171047503995887371528139722105034736124342910106222392683020842125929649815226990352914774217019448457782423660197798411472868742145601158745347854202113616122333795397038326868034139996194077021886239281159528772733055081190054802183155672635074410683030257031554809487546852291907164347536235726535451628391253352604503238741063519577168359824449203537505749353992894119718793258768437552852038311243146775481802674742851157368023578010201002144429440256034793538771065786651320560680428052135111254697413874697954369205739253705682307526181554098247562766133827127909596443420516185779714244557140276388155411769459566230805578050556040065583132813337336488747025700878601008238506235048512090189738675346449285480660484461765586283361878317400968745645274594997455153331284127553364619899795233602970584355752874758161523615913086958591864001049972352188080840423277384860351524627220206036214504691671681789826013332004467459239883638817839533167174120757670730733979296590723440966029292817242590159802588357450559196347270852451755802351791611344622648838783266357169212583127788225782872470949731349255411003769323098595739707052497622736008046936780627734492637785883412592882713347706185837873105410052035528796568816401892236743979319346286786403451159780022678862434121826190010576806412657402063440068905819610578652222797915536335639039085725851913085222997050692430847463217358067172124730251719353614834362984931672801196217624254768030230990913554630129697357238729434685984159372982172454334869989224901330389423112257982661415242407377853024499671414357862800298682341961138105963256265802762394061234021061053730106626006035006654957390199566671195851091152504814437236768489641589938556052912507625754594759222136666180460971124409953624737230882169912100645899278087729871230093538214223064828829516445021734193013950436438193027535926749371872188887093219047694015915680240176629770496387235741686380608899628025884322307057108239074759402822975794438019098780945947352927789741890995897539716315782248373655861015436934926140230921805949481245875341079836607529685401503745550325283688672221185821304391610378693883056326665378376265836463705833949683102189763498469121108162131515507879096086591223292875874605898105690734925855177275876336033196297865076818740267642310422313314133485671350968398853311977347684600892925918752707761759088925496567722998588148028753628555271217771741347940901836536754415469447946402894049787708994698198218712909724207921585349151636526892287356756546470038373298846038621471015334872700884418590772719717332246262139700267806452680806633474151704366940563451785720677253588779044135135202397647866918795383578113523810915943632706576143247448895126563392188764371026164669036445562896272353082569530661205082608219646773701257765712882532416291324895019856818015744000730699207216538698227004995276732736574170710341947475782957211608912494834649478522965639188456426845304945983074364196119437982329208402047191679830681777481652179892171737457473032457042128710661986000120415032296840882214552451759589505758947879085383908944314996174883602243022658419505839803678802167505506318603668302208123819991332859028720737105995781201035237905967674757676743925898471175893060243177591100351561392548255839270015378992171632818249264761543602985375057156585804250838853789857872343375533507082263580515567610174219246251001481543961953702989067218401252574259539055727955323659126510636292425209739784592735211711637232127100460784618914121048546515685694830166182493719455319297998182646272088738763269374576072838418762475301973154842198551412470751009280749815466295972733019659230625824570270515253090281278487033431359752729268459091373494014724672862687245447417195735010783199855750522120827126521935215021009104044766582903408730993208913296398113751619611422403314471887277264089464405203441063660021012871974175085605560968993418456203909881067027741769018169752212151237525191810212816449178514581934708915575027189366654858909766307164205234722015530220371866605616724830377890707215560758451372644203808887083742767294022057470828276823294393958843628587685339523163745195809537884820154391292514076624111335185165959204263569601865250297443004165392243833967553638836148798060469922260713001825141683583424377193271113736661724134449400735736770487799728262331733807172825777163062166455329507466374026907371785943079201286169678509998326692943655092134439696710305031610470331995020489612160172486207351519967410550719929053439370893984954709849880759791224927740471154776976348143725938634914388304437478690861663389849863952093786235610727164580293583754103475809116936699366927095362487596820238597606598289882607423780722661236081447618520426572338454467864334814263583000602069118045885280106607964167054931130241063055615166927898695340983054045275638034714392410561452195983612851855976401487601079316166094001289820661404384380193851797618808276910244448928018008256886756138306297515137894656221132647958435439529674075870679314376494823995517622994737304461705046845019117385789170456123253470771052520554330256871207133703485471360746281079160822505418482214571337686210053799901491121790018145075838403360829630710326315188703186705013687115454803717480980974830166371022850802954026101919374256651551697445364705939761618741233509291038092707555517155010299427809576735039338502475533285074202889820554404136572743579537689333755080613920361019457248607088632959803517007232846025992045587013223699463363504745810697589258744863741172721088748765221463363745486095892646403559276860162817576192057072969254516647449016975908784307959044457147816519223010715890103665684610179401123564706955257110687711618708726007731441070977088576483179919559302363860161724520756504716980019801541787638072798812239646873609452143308563502455814820586322384423141306817752843531261854934858694989957580915730444491387047546889053227127097296429115824810402834630128834523835108229469162776016644495818156870955354572901414263084894128944551349131264830128552274771937966454711871929003001155852121228752233734346431085842353938341023654533980597096588069777662312208011427719080198123426762951059902843855832248300186524318251196897297409938153918932544941280709331761363558274099728873814527873871082315827224404223454634631066115733041055565675478786669403492584302600613540603304451279179980099805149797112457967581470632641965622561263481699667315721761897967056480997676346973234208446177538878384362841992090691849897859852588917369261403160977914367463462260866571179973332844107479609424383863007042044966581084839054666603215602091029890129317773543762838455329004520683337065394917445303750010393393464276187988451459616854280280566525711657412514847165734091327772671252276787231230966916444599670484921797819552394389993953390114586949672114516309164795683099602958088017688494836305066966604484564244788050895512760971449209648757346219786853029522824777865893128914504676798721245404407289171888573102570242861599291459287656634728247368072988839828271375964753914253011126614852334625176246499853935698089734385475815282150625963758844542271242836862491265319192335167562625457259857759741139682000333278914103222910152163443068639485119341954348003811111844236595497717906393677170668021825571603373606461903482434328091059749740170842627694531769127695911848773825034866906931064586367379377430656402735474040359118104971909656116952767506722316659194181762800757225648743844171499357003056416251977677880251289780174809693879168618992779564359497100566890700364565773838392134362807253760233986924433918008227060346100438246895873430887006075657241377522997133705980246669650697054287104921001237895138499744541146511803309336376196392533967360326242078819472676657333743043904027056075676689829583912738715891919527323994928628706010392874235886669918693084961927537631861246892619675755553127870997484244839596178572681660420018132060010231194729496784687238214864576460660613526615511813171477413979039284974088416657531863078784666402387291266302415437112930336764332015756764917866983277807152051330797519655012223963194996311341340604585845505789664725360354419936693731082242436619392783397048687037489882015100870601717574021794648548186559705362690612836882416090711679610307337040944459789797223049238963031345956475601982341443316415452845251064548565000207858556903182521601914820131855478213652280269742794975567019147115094723664242590760717232596461624362587039118241672011403819551858960820704602694506091425485389014202756005327052768035078901164589746321915343074353694234140151798965444557435414931710624348953901559503746502117809750794011283855352177373463712414314648242528676886219309994154814747301051122139490872431060324060361075658134664089318854531320389318459471723421803135529646043651553170229234908060095262475107247316997984311957320196061720842094336622492687148504548880000474274836364807833306234774020430802136520827537217881282651769119152565627322705801611615794351758533871836091977743197986765649643330723341456297096515672784336124111415785807117490165271378236211889659825640017319746546217992992135642646510420758370153821809717713870399217610222791882243744436335543118690179452430217224720000512135082588071918161754817255269684726615566102595966700225051243451010354313943396546506659851931876024800350103425219819751476583785143087321351547127628310582349972378410918967315774461063326226826199382429176512533287495830799403952780752110074505351187941196186743890583449745594613482936033965715728244715909336551639220531507392983675076383528011271538833613154072648856703349527256297139316787498185062337220793585364912990200499557683208646468352656124298057763904965653372005706878597460495485594679821949050425910339346495969088043975459768447348978175314743152475611749950769514310260990994934326667505994119104698847394293103467020726182237272695768479209049035581121788490225561570251814286367933498300218368702708636199732983343377204150869716568864551902095447268262453199348772204205063681611541254608998430687131622728061451250652433013808858453520123362575851190816187679020044110481799103717100172755435680459549170030937453284465901649209678866667654711870817985833717228845591646517898660479696829097204997111346269646311286458973554102422816439021525906572365652075959379719538359316295969579512502061559957578633169867856644670272761123830845571960405159753458681372114151129970183847452621740959827506150869849896083239260102344203287492926489239285696891924952610858288772511139441001523462963903179652623198749425564081061512495849074012380466700400977700816164110766807943820499235476166768065970551979352249425027459545267483023665295479865209193454416862420235860625282585626474426081256329522591452016981552282213866763919530966761962841407327907703338444790367347548817610362119449197245074678207767080339980630265280618775986360690252057179848853348367286923903094127826354436846223156743049861643785980156983342743461176664163547210423051138695771639179885294646969695675938503608860863879410396670051376571700093380131360817191638342065059183299512703231411020042361652139434620638647486479178245243836811124599889937913123147392556758074102812510488219527979166691852592423850772946767776482482434255650602751950683045727173140635794730099714566642073316558316280351567388067444465261969439743857363980469500182438906366307337032863597003616969610559472936039529912965053921842508004609267274738230972714313155246360237486881033525918942306736949283370353796793677055073667175171517086009866333305586131528089210131306838620161491289507280503976653489940520115013618152050470842602189601782928029606175260302271686555011385817752455842577562765000902929420951830313306684039108920034736057282224379788624788438685080788822494930298423267610077429351970706871710226966150878752956432092190738196068674052646284126950223522685025420727938369335728393233772908213634732727386477515029387086194498675676567583992306948076002067774127776615441202241452136630852550903274092483243120792281603634234801313650907619355004676338118698803380491790938813922497436784524177939159671685201448097207859811304205692582819002089054198480348442725260256229080325143484285639854240630977109646209738897914649779265261323155011216857890886282527462388511289009475599169696908594552326626946410438023796638856311540835911628626809402823710771606437209708873110640057733491968634162636978516602994837360039558971805676415453853290832392929021144455335876476745898027458543980174329994179834423153947273337403011521396271471283757094407668297211451457567960208480268865931912110508834744990904502904912495768634887080437578411455433865117169757754910196735033998784803710217926229158156706925620151138407125804818492721120661812730421200296638206267567474805197408830608930255439275369315618494702832352807011097847637338160400176077601057782415167146819737116893665026725688649827932897291275909617895059616967141845027029074427518070636273042903529335356245219885564587925592611264741423627044125186638680144851736001326651613733746871066257396430902280138645610902998588199889361078676530411121710713302797917823141878449743943536100312076877413523403911845161342828991072712158508093913812973006254231660673449494617663553978287838995521698110374486911145651764444391377537706332463219355017367217524067149018670005488140141930229784827872657591481203158709000097390110010763466561339989596132708631439822822180092340940322855088298048648687123668396636494340606629422882807103233391150467883615311252240076379727334023893233305960895387110967440336879443788599526764990885346713237826077180878119286160653510796499457422840824270666124215055464611482272011359149379668595244395785619831101433740664184837145761111608005944739834337605705919334669517453017372972873175170540185231182630229316941655918397235873914694039096579210286042096854336817624149150664750734369589278487476348655093502786471188928910923573282907927061047432142880987936102665685352663430319029183577721128037363034345182644798993216874283395707655781820131542114720164553879540136345478462448118694566845509816196470072200633608097427837476487079174119070658483705587501769723856044320282041369111141403219528258308694961437915863181963986306963258286836111115488312460154927552576346049543408373589434240369583077125275834560732228449779905416643331596775050795507074165463894025701079978559670690709189835835873414652617308349454328807483610004980899932690547398399469349812990683236290067458627866458096790288991709201608479718805522590684061606123593427317546237970012219145068289451301165413491099381386845706099541088911059040295860305176326066790058177033323269104578629132250763947808403710818951193125275075693378714512298622889203766509982766184038029828676390608011443516071916514395920945346252433751888036849232259930675381813866777304503551286683726709769982066941140260407165845853294081315481112301223447148514336679619421344909256804761503693623611097749873962002866158941735708216340435416605299401384972890192343644867792377719551604878515183181743408901974993875131287006320910283196223677582398421754187451242817184746032670937338835589477016944639012677927232542605781029839434843972648575279835877583984944411045613398220782217759474035507836736251418410474055130829366581284313182735647277924715035196979217634355865259045605980137776935288406286331349793715660819583589777556053872536619094495088809177552951655714974159963667534186933983006413082189077638257399703408842799552223693114915354222666742692429085036297207703819857735904844707415351229127455535811820297123042651638594271312115457634122945313481080331833582469711621961375244196144450557111428624334445645114204577231938892384446676765629741553193278673129496163255974649404959245587846261421595790483048425523525326459401568410284321560632813255274080664776922642668196980471736773511064694772141512497543727507490133103760626069468766072016048008864773423452118301331795861422754039586160658383641777336335416257248623630368407617593878170526284843923001145609632373553933493388876066895904358512878323707895814261533440520449977624990426089071817845585739247258402103758775213048429757676149970207378251870708424789079545385603336041509292986015228629228659837274054414676953683923090223521520144222727501650629575865082444419450476488350145213780637366776234582147719564177481489523885587677108382217843500805716128926061603637479864926742997288845546557407069209388196246339692202142320021897124953235731911192903509993434301128905604733126910887299860833629585511770431818102169234475669496195775186972500276681096238232155586138957425554564685818023585395425760947430160906977922131404170946085917038260236588933511668523275004753635215169481073957632185182636579629925300101163714258861096773154065204437863054898370566162143673207636971288231344625927716782592750667434090227724848173399863176513568013269046018016054195300675119738037630224602869631167985691001342305161184204771163506943317468133384803083841870219152753438840963088154611478275176989710376512429911600037753964199250709051022075758363126450272743985107834110388296084312293548101992583807990055174718094441207766457183357171243148166921200111849480522929766744552056848208745415672958037012085752980204193329649224598377008781772181205103848731966623927720438103904219676289811892858006851771652780199563997280040906339425045446970258125381101450316361948939026006558858321716894711129792492559104729853743690352321465306506331247578149260331851507963805115114906868002849682325018167540287308474816273984031122480884877121753776188946127677215052497596139343276803527954402334399105377495340425753394951991558712301701441003829266924870308008301577208224567510486072504578028524860683945182652626331364647589990955494034148316744251650770553941920973373552386838451589847934994397182469899984671109697565467436018118126733130631892565698343901347296260619478182177529265909169167700738002499693809263356943867162707803908127057997151626867603543839983994750238358558517069361342340292016133056198706470839106617259042975192325729711113161038824798946693028234838651908557184804458564430833960459249281733503138876936988522607140520146724359765451767492154881754461494426773203929913784320771631539315622195856035069038123559164054146221417224213069590977117439216636235474810681566435819244296099523495320212627318568255732420807545537415967362906748120337229888293621305706017921844400570041747679118239397809533183894657477063573721002212113440451657565290625413070025041921614636871534442243651832418440760114576699245544772827196716195023754441281455756134223139848662891378508207926930305847982953593373204955136453445388102223723338414717699752556143129229977389143277288071639869318820162973499899702978033976700202044629599763475366850029849143677325716984964385259597848012069697715139978389911443263289032445067292936824781155804428264914228274308318270790912297918540256651637061797977036552716842146272666183193123963456229918023303344909821257662511981610162318778604344728202033780922961469652271759847799091292148014462818489159411524798700683877745800287917044847132973142676296931562840540684721904324085332952497847668750943239244619415709119830711974668007826613288574615039671146919188293413006285458148850960920673848699364441062166548344436216302794301894400899634163019629506930228452799132491371651725673712371099802396724981459658815804406850405270653134137333273943631444995767956731957257299753963333258167665576510281901312653404825179153676816264547648169094425916645312332233376879114929392109917101017147217026992022253988849082833235898777797554706658445062224813425176811060735919589259800362874647610687698215464246112387282629241330601893308774404657620957839702960821996003783787093458137802775141158661939773365156965375357672329790745936607464639573912780414500835167214902180608264228447637349625401486870349616248183223996242634574980464733921542306283922509519950037780367498172248579555325251865018704423654642320790360403185215762076015052312980735438648662143470619162171962343008678075839792503956216994910871338947242119275332866327118753716167725841896026083560550595937052314198202267846379452989472955387449764466427714029919093017721592950574284695650172862797571085808688028500992114172489065487635049127477580432301188646698399271681304372286143474799634154983256034874545775862315416898023913852041072575518446907744618888251110854141561733699788615047246027639546250388376686256864358141002454451177486438416709418611595875626688446201891202887866798897570967056144924054590211925494151560084904606702817019945462193415488922121752099288205011626684444819585169720522622845134468801957125698397786443855386531494852085859869361133277517063370026119068513677581671556316565703453367299032097836338671984583727447688238433267003652602763416895652216352010778189062988876259896922195794136427917324771291252981512501162794702421727458101200296557163460167638279621677199738903823972897519902900032583656462127540465381122340130830715915538789513506619119842008664044535113574341713000350161499073945889935621466021080850261687985610120801018851195111460645025345067337714591520431980272503548928912658318800973231223723461485249063697743347716545095372856014957304264928321479061565761501909455552697138605526475175835262060647751744749242371120165709101658196965493161793758983924999422345885511664208257123085072402949778383992516989634687351321349473484855141627535608662527346672887701267538413726391729585580473825159316703532290569938602496283740367954492434419916272174310157644271651827913329631758583705521532026780581618342050239190039404967672287482017421553273800905437993276007102149214347511614636022984871861650578800667730938305740218116759699232255545934262911047369174676464901677753085831721283722627576840056083467429497245565417420139894270817788513317602294487532606990323460757699717074375734783469433363856352585058682527685678291717471277760768237110971767181843769810624753672159469577128640477397958893476529800270455422852810046661276228385656050582414020332567678292753604118974190529337268059750133062957422713308066552621725163455634165455740365042461805998404061350912510963506285422702015310381026370876945151969393302157925812325351511270351855671681185165978691556642517630977653563928684205797062872736659504472309131207058688048117191790073874367822671930374754149866608802806029708995558976280932649925451003357324685866345484726204616561892205034231951032720499330612707435242407120444438360637264309425489854046791034757667286522821100124170879896400499027565645734082747235564466380646993672319096480779831763287922373037522869313839319145501340272792870349111906245570188586123655666115733165474702733841394895711888832092517208786605628274089572365550123231194257866543906870697695309206715003065578644035712486176236821596166508087736444884179317157637334824492238236356870590975506537596897956371990796484179275283523292686542394601837284815668434106094334860322813446686039665412732204670704417886794309600422685073013868117874642152382870585810291556361754515050876974849417491553169143471280247312136816313488922677796885934424670919446917452461400927697987457242916793066727816456237553817235314233017325020836033768280914629308251398962471936252833304378157488396432541092003941522488157792705278305039297570771682824544182694345465972997584740693595800136717725884255071891223573290421709238262433372801926763618947796827934921485646541443061798925119775393207491386587498952481197386162861095815553329752482894402159821660417625361350386680401569370058321628558121763576514301030421105032614916618090152308081017956550413342083158994160841898361602141482566004424494214884532211939041389659298883750119510145094172475199964137615108503403936315214772931007669207152474348062182214633609839391866138782387119745942452851375873924421203125168380527540948201950889022742419283996037225235930144041490424534880718225437070211894283844771930848038479942532989180984037446913203527936148727435783397430661457368957989525375153800581144677755048969024523803212596692658810838024849094761819784841671489274747144946623209336672517923797432401884006930815205475573290387165305580340805424336036444426689909158612942804361965804023795110883528126445182627387531939521486831748480869355312652185195251313131848237520264423824285432702405306744884724113766915125761341365266944712927146452890013642297817453881723781195966675458207639282828358635566985811629840497635911616592889613515355921919170796919180281756982688982542647850355877717341325885716718247111913938114549777063874148313394757776412333622431186809531789648121087480576734921577827853525414362947707880497129675729209004426575115739409557217680828018539063122615523799059283162936496628856046962630884270531295571669590796408053429772785403148457558018675283946705793351934794446770671575917463633279540688432085321599267898668971762558974866665979092617751409357776351111593837767800475762214507169500283020896405889323907194174227357664321064206376746688461542053660201123568533124639312804623063241953073963296769045545039209141126216537415599621079999153950339348853802570271415104071829618390684588433010874998006401400567633675644153287527702589889736221617511477437976486636828307536899904275083043538089411779847088196274910435001082803322542801486104297979763385469230360065532093103913195057805277938946269315621300103753487221894817199136564093211938215884455139334060841249804540799753679368043260176802782610296139909172970544594318930066027166152823713565102229463740082654838936298427251283757442763194855262532480604119368952379768371206828991254789998338794268884434782227759034959043770794459792077486913869545298173961672440219894170780700294090481084489165955037594219220116480661934576760602536838259793881345491508107726014113309104329915599087051199643214677059998634653468753561222923998584453824178088743025948545315090722621892295563440433118959909062088889473192450941704605828914953433284758292517654429862647284929902086467604009227742098873004365249052439641101702214495974897262691011249342697999681520700643844671198579019936546065913924829661138330583583036502305215168417662275808671200347024133819821563693775718585156661402688290853970087393409815176395783471345464537113567236721581082590357536381790163172975699612837304928221573248458963431668309183821654099705694199809885725311529747140989318127529278497981994049641011807454017506405605098494849453978409058106569433995906768442322053068884694777433222312957976378082198032688854930884684536625693453702355714674866256411563807291841252059324619616874366760660454292392763033000478921784143201178769460758744103341213100690033562326037130115013778482082987043871477903141755385881875614663118366368150192615289429337677319220092317405766428252859383315459625891687601222568052654228756565927632963113750383631532470050728831790759265813136609324350836348696473962958325291154820633047012010601483636502706261923608927360740904923302530652257414046265168178894285203331759094620053747185658379346332724183465927275122428918448587121222818749011332763142168963803039406866555764246864711228928081605143632983769429315991098942112916568377048032603278778212912838261741243687489451154431476659210605491606109413572352581916409218101263146100478048823817421936614223770476674152452909360793689007730272056988963799411916603084997423194699740285581196512110681210923978092410036381326227663257241638073750819354130513298927296910397881847714818995791627705090167556663312488952005191238782237985991463793789694129157101001041097368806295642307796815707408873054793857846973970750733886841955120356553806307779999025230357293395084376755670360492157869949978379071024280952781272675010834258275601761961936634878656789891796908401128176674968607253893898947172025948447723884331072640802755662643090695804860863378856872739031796917800373035352112931642452408017567633366791819223565198536591465609597723832898597769392296025441482927882266542851229938848512588452073446745571254735793059578735544022134212081345020327552736571269028551060505921818694717212810065626778064083850044017165397510587100202956146756448443326292528341155838059709993549045072088001098807211070014292026753839623690631217467921339350385887288269360207631076417514932685002653236300663779959964518283745358477749520724753094378905329061000623832928224355087952116135657112346123331697671489545790696302736320117371356948507068429198633915690977693791810324137574771722933180550643452794886084158045061342271785134980458595273569988236147701003807093770387027177091554573619615756950197160990361401369818706302308338096781870596559587388267106579728312166335894624291054741200976365902607904601894699886294835149178178408925080522666997311795888886386974813194286131982960900062499803680906018187329770029354304656994997033972518079880473411184287201773306302559706922172120230983241391103205635364409737206727545886321875731961390608649372287596641049436570480690852872417547778332752217740782834981097231700661400709197865424890382915532359634860645721418449538136987568426914862995830611682554926301379908417473304091069907991934756838560050924160754211998575373423231303534189426354843335683231343926054037354956466812354950869375685717891195037438400612240824374785976571255705042259428878890201015561440945873751388272876065087350803816439611022115405527445848766351083659453065384260153080323557146389946655930669945402319703746272701147290000123870867052383511007143273282916901044677777195874867143806517554967186514362067785265827978619567930603195941368525671928676196046956863410412434844968355004998616872307284049423978372877775098465760152241193725877948455251078268773209807737293313233599096190494893994949519017949528346307258428037480541222279265455142471071843006459328987662679530078995518958646609485736880746392916228153227904573106095389198916095158091167903643284670488883563285434937267534860636644816141273937740525520224376817225819456337021142993607124267676432112611415063207304906004437352657816023857457917663978674611585384757607894052634779553771929320979199122967460675233368438833581638552192968990030327165829940524769090130807192933162897781029301166848233600142878135528221754009096973643600040623081540352981184908869108768422636032435685616877871314982725521849014218438382407920924482651370484698621352375938059529379554601580476476143028114845371986613606563023528472102429293366238113840551304551590732618502854584646858404945080308529898750400777055419405599456540386655876822873431068051733963749672376396616305608921371935909283626032521694130772115954400427061924667755866267378494229613199601068497741521558499884170522593668441957456973973193739721536949317444050001608712896896696056108131337196252559675463068621122554679763400388037711518113264491929414375939302493904115813425741771927742466221734959356157701606503983900802760889892083856053081042762268650706782137756769517119325328761177820776803492537443113918616823304205892618706038519541782090388370148287356769638033686990860022306830880456196801297323085293202306689438267866268121897395664976929403939275883883764758537028615901063857808859758249212666390434229723811198947516140451722946162426502436001948241347171283654308187397691186433580769060920932497594681571917444969364849571842552945596546224469443151994388710779041896590700521763388381312141018968238764283979877588995884080822921407484803735085102603261486699583803919829312587077359382661745784596733294079909484620965834573955284995932674049028886530991637958696196036443246569291549757660630100561563098911040340140483033893501170676292146750399951258894022370385576459012060243237093974741244043926329290988624818149667977706462140266940678893215633015624951830677442187369394064251751223693601725554394578852881273149551259614250913190797236982660802440681898550838602648055830868812185056941932440942427551780852545088277846218282844996098104075968973949967455813087593458855482915869659775625418732830809879723984283663655240612129852174361979843288696387917195253904244326696893500012347312907836846737905036409749616070478288053260325798020129575043333225700446450139259178600290457701909718230324248128827976431287447937134884665782861139303070514438523690212698829132800029794149855552484733747415337749352778344408810264741609266176055096684167717891124710439245098186712408946766112699926559374347209470975830298017440843604835247013383274642348884507059278494828046027527721311205936325437119039750316800153719563057215107089257196280999545394061550653390255802464763518738952467174326343939324013567779065180576204705220461440532649607040420575137331474169148759784670183819935373829038962850614667686384608734979706930287570761036143697911836176620745312778841907960859285252767179769273615852350559158390067405195663933187863363803863023655791967404504820367764794982406913055384522876549221422013490542271482333262841469895589510949588638248356171086129302081050633122695775021033628865080082517998525080542219567441203175818353927944841091198878823047002714786518077255896175879007893958372602560319754283284124900908604785849465939109034012457930788060229486844086638051751221090740526410515320892225899302358789532430351131026894843822256884611449363840154051493214199785304571739322553737146436668187285235096380905380585599853364989076772367820661810999278477774202639082804747922201288649570785030464664136133109258569670723970525951843687853038937641094003240031121897875494568244754185641197656867285938250368435032611469025240287107588935513682039076071436288955635517236219161651166841367317780142331883383327786792701556611081610869993159449758565271171526055710848491088731048432772958952928746500095344054362809188268246303126907753548677908759352035533482223865794938928857286673826854458365528342451884209721494954236061085428425505988590895905999358662699966982464400885279068524851809629611674513470693466408705745632199721373469998363940131879317071064568127949878304444564056050296120213820830368025675468259412785660052616681593471218344806029567431475541414121812665921362418638923719645768202015094773149976902300866936764627252562985909158410487092650411328800125545070334362776676437209086978379431550162380426172019259907371051486562063456297810333949838144984265457902905747735378692990244653706886779873384253358020502397894192734059471857929789016927880333787075161350304678362888855482533438846165001594708990015858466766388326163467943081610141527053196395108190895459096112554542007051857919658996815797444260689701049425022348129497664112497382125211272235472583626904751522876165543626315910363682030263408485602766948947257630186276235096171555828999543559967815775219171163246269748198189897224082657350970241700522375694737970414391005924329606770335956499625244797579749262379365395599268705626704269961384589384403579357431839437618984441121732978142103472852431754220620001216993021127088348580233165917055437997519631111976238943733282928541171190323030183644969165101911707964585241763780969232134181204217214531798430492432068625369346763184154606512587860987352669474317269597682974560634692080816961397087599157840828668391404839174061320469928689833892522846640020991834903341157783665869116633875593765093593910141012799930861957031243096524155000451507105747481942906034877370666594992651079577937099351678797663142269706482287408874603935209754776918223525119464259018410627508288520086807503082747384473812040982210930210858724002396566799779813777447206054604067984366588626448942554782787221015801637068397631919389241719566941844585893754605525147879775519220220290864633586034615918184678571934424976705410717298879391896767426671199707835327544607511532723271739234881659480204827018249672487767179440716787693404512691233625096911000983546455486180032803945914182097558645591108314535300746098657290079957865959226617635974485962206929037214742517688539304247819700990983596906167261357099430188782981451094699962239770312237848809196079779159299062935649561792768292225658770279111909035717896218129207748527385742333001923783441494711264753800904705623938783294992917004361473892150014092052289262335854541796759867648742042568767529940969819372342913014399659203839870737019817799906185501103740813754360922608942132751105674826522545162530385954420019406712872672870359776662136556863428905378361303912851864844443711157237753245229008041028712699599180890566270349243942997646484270313573495616049655242312003306905541902519682556720717868109941326904580959560766220062786333160622030524367106014311265139509779091059704967018684284863289744845804159417266789609738282716199221097669663122454419909178168041311553541439142362695762293226977449457283594575201993935365448633524790368376544135546577883935783444951967845491580242197361230551360252831976966987518175466773493857871680171764678120052216806749339972499578924736146631473669949742008972052414493942212857982420294646605375109722756807455339962770275844947577119377043570337179321281364659317001825265908969560676515709813538336975995958614165681277196578031245686345395018642226496197913273702164930251481767949100526502349905420014163484963210614990875048267609883454236320248955366265550809992720486306489278972597444832793872684521937132310849862767600831919214845927962848052146493333418929245845162375920087046277382782928773914065294614458199574642104600612747407771920655269205021951112095858119575228567447209382983934697051338627910393246935919582188038387452794357710944775611748674481998070177596452804120505135117917901062392974364254194916761722275881456161015964049319923408237543406752127782731554144709772714800234066721427936557263243336494060979863640578844028463559008050577204437962085048640173317701981607919100566142592032521467217887173883701388442141252875639670497797817275634463636635088653007127493799129561717962041683622947800322510363617687042160487594736736375944491470378759295240565184816090780344698405704201812773559702359161033871303604820746748046117552636593301048873268413016171284220637103812474318205483234491334659957697017809434956564249473745673328323906589302588881936953250036556460751127497947925744848881129816570064575803969681349795140187090439792558633845864126903748063939110467556255119786305664725398345916756084605851798571155889299631417799233868485181032566388805867813119515743462075394623786524912826136840381039218059943727243036913368352209350239691803973597604263277823734934282228877750923830379512183530779036985760701778426760782262786787649636110577867124729122156561142469142758806866412554440442523790206787032223996760064629101914916580227237213598241127265619254661308997885223210820269577279169433332531834625271882807157606113897006683485097506522099130409771676715792563450496188354017923804543102199691280121739568076167226385839422888029472663606800190716573266621422830695911588799806502072939909190032734138911020611113847755289297292525233603535696703921562279701495922860706695665920435066841631217077471689611161612199127249549521825103403339023958388274644330461545076999338065148808886806862851024349464956397753653438382414818730897459755132854199873191474615515187910834141333557274241653401427372909764418656105398649502026246483265017576020305041952223021809326158510509898604798223211270756845608507894796642533754342858417483588075259589107652519639021427657277731059626375492806452290137513412681497484670813193235615515259849790372135322083388150876537901562393359395634746110519809386538078384594063991206383812557577760716792898977473009488719064112763731539723847911855639906149842340288799248625715630056242810100260216358129698041782589288976857199317443835193136642236059424391437627341256150259218695350781239047400698638897782623628109032967374705522933082296808522506353615481595523625499841488168463966821321668894126337820437874329523938398011351800373248289418522641840633668725647355623673702381360971429099234281243468280599750632997288830850965042683919219271946886172037322781768937406378191558065459351732810020070341536865711112264443500310282010533354156150783006276999434486394572116955030623149211423308505121870598459119119225735236626813279885397757190719355333674791879405074104687127866589999864941986275601803222089235951470792295778990536368530470397554349696143902331096762164807784310176405994905941025757913575792193350615172209649492552754819813882755377715394745865540556919267630497270311590469986351920146329015548232894706008552345669968443592011901273576379258427677483088662270170951333834163609193950262510613162587676631154152214231954056679921917976787324169556487383587325972486917281938984303637028705761755541123188665510121319514443704036989569418287575776670615042029474803380235825869691423321025483893762400892177288005049881016257541541198701300547499280665857599703433409234088236441153951897148003383180580161630431203150561428343681761590079444193409724634809289774823899489950649281645520253922218643642779824056126858451383199556218326769113904568443367402948072406612258118958526039863651714127381851128437537720745738083479274635970940152824178734393790092952069466097520838372533102674189735160807396441301347416612824189189717549844455922157027728126678464529628889403082695039104902903307619448037549446381063201454953509046265828649774340916489549785214691130046892941326082350382979221183446670809910271869892203281295757701530946702589254102819466624388701810557500588368879883716590625689918988145941213065409066742739828706319529139196384795713835420122043016182876868451732925258396801374704036009484047895921245107046425474011163841908749919436458961815772270677110125597364850292965813983753147194445183751363173052020301524229358691021370063879743816541512263198196533549445119840214598204060983440666932791876326564745431459507783547931921890788645745582457081699067772591603813713504479985972503741583342355269970278548179328535280207459200468601629270131808845109197025630290987936427237314866906991403897995841464361363869037149381748300191947011041790777239369876695638980891261831237217196461824277277997906259388939166202840681879501465694315814644730719867798433870502577745049989384625513016825969193089735350706486706246801411727222771735543393094934238389573191696653968223571904467688947921156478546200191258533184390955902317723223241100189660994146301510594670094866108323338542834982536597293788592030757134478869278929194468143615298039239915321554916085990391314551899559681639377705398520107526734043309360952187411148314482405147655336093872219568900436717612846406701138465874147397361584848173860545599319207874401667563660648098559967751914446935858516178302527761298428152965228140224424684853754116081740217640391117453075889715120505936020587502083714648366234189656109098934277803075807553420953529295410812011595606685835316729626629984432072748799298479065567616731746095913589266136241235593769278243909739988942465310452127835469085489974490538369621257771465400525709611352774603839918697618447014361809242245160908396122572197742277075029269704661414399348960638368067469359897575270897910942351842188240244501541072400710673869778867917521134634770050338758162989883481427636501108599890090509110067875168441720895763341919803283383111827732602176939829688635207590620975203580473968360675571709620900349963849983732686225459914202495003427138134930989446545251174527011693353408326886178546213799813626033739730074170825726703181640884400083982211776346242642227822988356507463520182095492467398964015740358038769143403333382557911452098984424818953014637678504956209181467706699114280789541611105497268450814726497919554844256135745112827391400262053483286464013690671746821263414620036892780853926414993860907487952419425712450539983459847443977285115717924220068580957920595030330415979686840796760649331517041865521973589070693100940723471972681361470985494617923851198160857374255375274953296286430116688006279516211025236010653861641430266363356499836412723133512529710446033453175239494356923478339452981999951255600933786276756533578481437019514289800712297038854295939622148694881075336726161001799217985810204497511022981782355114556362705977826093230732930924318297864887694449266335748894854809681841417763447233383158854763691792333409998364652326349571414848853158766678144025189571878969623647345322969594641878155008544917587840359492406396273020408739577936314092017974442978870989925574944221544584656147779255554788767266253365074385660343370877839328344813520388226717448414817467350377029168685301607686600234455421704822928114179329033871270010083321635295757165615253823805170564362450545713229487314231852865432826890619191957101300347983922143029033039652856286565647920885991398628801371835689274282526336885951917644065953173729711169809786254958329232796846178005360069551002541917397062607301674938457090218447630147451255213851932185351266079697336311634955816529863486890929354600951919198631180677000876006846314674058623890533012727654720843774382215025880932376028197056242955995981489695016995729499321888133568012474365155388304413079383647277440690402888354469916548395490273083359855921941983950883604679222570230080469539329897376835751860500130625602750868048922832299740102648726235288643551397139538329377840165463719103651404164389718208492346986008400822788450232629080271953164740876619324841962754037554829687088995785387039836735323907717434819940269240606354329645547057965323461469153671833752920884857893973242547670691151952586332715881154079531479375690227571841229151733535593145558628817203322953516284721637281079805818769024193223579028998375197570237272649966347388624681477076980727260361278462371248370058848582487172105468796529446917113486496961783680273468267682643264227724146929236233954907859144725875078251444154748537702421645036653876444141556987136499531338038123042518944044364019840360273200356902329211183689822892880866982210347704062031010955528884292069370442107580813508646980424906473573998956125131100288220478720771186641068180828632368513251599786567708811356904756989665462842706374119531663476324963977793768104984994529164638269943422560109421595401323394091460155803004568155849306323944162692446982245600275620425005153744564432302064112311736979735746078336167349244905052857138407444423347893819478081940273919967632600199993123136298660567933919525172564675290158984676642843265863790726771411695944434310095113621351267389683922040834503145305612829004329531003822051448983553667381571062935837475204346414223799155666295341333040603914677636564084571160789562966267133105056588578985478687121569808488330596364110988791525103536366619614198367902986372974442048788869365938542035896318471973931734153467797773899099925771874020449265290872726245527502561217173567730374712692058754720222831810106616137749735244882448925259611845826869572809252499809391618271010765373158304428955798304546453191743521344627023210938224375023517705510666005811272760196217997208811400073360571905191738658361882355688479641636434527900129628393527092182481488261862371062230209432086803916264048643861300253365643471549833619565586529957723855663648586363834112283028702935007330849507627810829716062992603314787752903392811700116451406423599937721731345424760775961027827051067960752389189906746665333915339905082034618522466521379745196365488188155232387574525894196887719370308647424956444064744937649478518625054873591779531590391833607056468624182109729864152704275266172527903263372742412208670210511341589827095382629873408682473579388396737189810126854610872424774598311228767228306985876237443483674226611876271467624892174114893093494455388621272805861394272538700165640002218721370586370892742887596183546067979637426229338725009301329503253423737421796376415713235730291447218753218330310742093073848239719755314005380385345161475638737221451671762277316244093427446299530739909629110843101008511115030191459640880022940437592042110734755910547295988549940588489498093846862179165002784082688778999451726740178738347895016701330916922418147181995161940332922376767577916944895594344574774860020162149409709786821584647919911689182022268235809052835917771710998088099104573247057898630049952459411401744186420050639477903444653478099575290553736407701321663824701730692208390359170141687773426553388720155334224338331711276639056596447957063312399730690584172711793219370079361523699330080934348848593913303192483695261777046204989300243821272987810407525488298612654051759406096398126376891389214650943986957573069779137051324723731842239856539873383928633965778102155455296373219183561103088177567335428122229550235982355795198318400454547901111828590579622612823149079446867360129965097056286860812498562651095863704953684695396354491278235470709095033552735271983286955124002783052597564002092659720324792460110265799181934163554679959491652685889602567763227977961292093752292764832087316976436778798615273979979995977578657945868102362043669770845992103995436804437828575609851234765506443693829612250193389560502341598695011133968705446009351430753813890946179337288628754521811614085241573847497258295892684860151064440157874464810915628830980169408552893449093517717385767079341384004523742862763317669966486488194827706334984426327035936865438177965109835943773956930004327246108789341998597982505622175046531279931505107531429775478484760684458749456966350595376907483116814142592404971235879029953977862478553996860720894786863288319420750534965417242110746283378541386920560580186948342434339781876229244821508081216708404212358452419426301907303460933999908636320958058391467765558012886884490790355341822461303478631934635559911501236160914917687225456675325149152421682054439650117238474506978038116360645788343534011299238974107973487110009743988859225264172752431837057935016188011420165382212556379690873395092567903290676643685123378253343113126953705585712072657767062066983351191714576833460627528481169885257526708532673891214630385872266933292782645198724859139685984964609707551867857655948158376521637775400554511864523186683391756090585339260248446720149798283133185364972366230935967586688609017705344748694006228347981672267924316419266877228366790273720117493258847093614832237625374101837794487486070165480046532578465563152680317242858045961301661794137453389715675454206566751162463073380120414120004469117430132762037588576448632927645974147279138780092883304377740044737662600381992930711008271587494237784901924847302222232039908810746257685532890008255651669899667683075427667676215856244914714107647361425389535009401851091254160372880385325474057130656494803522753035336106095753889662212720618584022056891522868320943579357538068844531783025560050317417742354942104416064207132166218907843844461074173710512200653658760773952430406970141087108609902419024257768842888700685160751762274465049379226208080433850685777058442511263940513610624924142539748278193619227283124941615041137860029514787984020750734654898125770513688228889344984103729909345349414807829413944831407945692565350738806043185892155055575168048151003228602105839308355946659781288856633702955012152758337049829544453182811531879941281966155415335267104761250300681431265646307021669844373516352674504449150726688128145752229327542284715455046406474222686838886375670059583656111814238127151056830168143579271348709007346092935584103111917551727938408880978843048404085043835796858526718637854127082263709811790952448865593584441242245060297287757726904892379749999406771432990179747631691161020297932084854106931652260827834889514707683967563800539849316625175431771417984522910693715038541612885285118247190776183503703315042727598821514152231292468545162793717457023815764853868146306495249320872130263256032978621238088047151377999903189685302026385928371789611402803101986506442480503135576643695204191756883025567674874653995737712794716954640213536673417561113469249490469483597532043993019418754315676196984556432309851921704892590244177920708176452532337989989224737123898764843626602602757740287063481456794897740259412737101497655284383911087427064490357327193142887631609701207965138656557240162717864054656346962466478314324094283617921751747603469522744839056187874361471459314261626602424026082903571618563955621401401968409316000957082449539945840639770845802454379175682952151598886288596303724675576382527952935186071318788015078948482492933243109796884682799384450316070668648533266639224213896433402263340915484240429120113703135199659824893126937809405995996249825557978613990532294343755658491819884473717945012764746619338563467014311843593744674967870734147599666719182770202492827674537156366921197969535542513787549042874800418867529890868969191667566233755667339317424718311100136759532020673032498367332093500880789649745050031744878286306610461520864873448367562482281030598199916072218998143564053802884113295956782558837643727058923212527015478170948147037108457389304360596709550679184959548065361000296250583632131474687709035150271126507283352224075641840798621248965643563657852194674071497301400404731174682222481047993926499708350822907866184609887122185021870009722722824849418824394846490835332763249879377588303332014714519934597569044549046466538526710787950397781162554334214069028461340862807276734613121937220827005157033265234131877313769227282776481030310938271593863535106331831751755489187496368505235585385861704840666719511321271628427656741736901624083262234754346081375592843895558833238554868889461042427576330370858230676944526459693587793089662327588415043097595366705425702793354738550262237856564799055602015062911239752589411207602812101130386886898208577034262655568336345786161306590815862446539047625333710851375312401174990518153693736315274324454373111359620082867237003350174504607154050793517417867565789672711056983299670098662477926686653840889949439182059056516571825755282146977368207886647710603171658794303445049789959612382256849356390740880650101660854657647836983383980582253717861628517447854117090907920090168671988444097500758505321018148258170033605843134912463535420639145956141548145116884392242269035800339742647184812902644947422274124286151242856163024142365218262524858996801961700655102719343393445002337515699201682078909715604295387921021204148488329546123670525224300480958682066445202393050756543591168120307614127350293712344529586376204927496157383114517239989429608795573304199420630554143894134811145126514469601566087198477266344752277044400110542083773259165244001424906865213203971080546059788689877481742463200810952164801122078349257843380166746098990434240288525237452293678244659589805137727879200547094475801387545773658816210719760016282836349476441443546127478006289066001409392962890024127080550464501763547314603657444900477745126182187125633239722745939424559598712217065486565645807819158422163686835877859707458178128914198607475008159334255029273987146974410645314027689489826214301386949209216782883086019176883052148894048449035479821929023192367595667250715816659624409502708166219191149809204523045779847115181802655579175655695214875161836093748569591242884626020196834289506898749259035345915661779930828940037740678216984773294173554126254122887143195020208943516315547548599359466628201647642632843052568402489652632842529724102117088938047570630673905984093826415333218969093511866196016602061222273837869351777357489026829068965892671596058488531969136582024660188976549023975610400561005269547522106363964717464745836169558421210509653009188720494611547876908099884976852547758901072861206934388254329025909905841488140124594867716108459404734343843116441321900824479807146801363510506371969410337096733753894604196873250090540729216967232694409744970145104992604061171682952836190691228955026259837937702796819686591789068766436881920875371938602867510967678253670587850318662304661896622192877884097156317785700545992958843817584563891803326108325950445012444542265265271997799582769372493797301196601222985076534008178918950196654620377181186464695969706655493159515389706772850180875671363029494192651390703076771943134426139826271169991785238629746784757332359192548586926302578375781712528723618614752891170169120088443580578525052622887950453403129441999429731614121747260218633735326922821171954773838158345727693394175156572655794632742426546450813744111337396026758757608175916717631915049140752866718460850018954254454906348030775345776865648807885584217238315269731738708721725417482929570881592311325857412834747926628782978922077753216125785492906128465291383224282654059954219248533431967110321185570734026855333855285097355628830982395824690572550852097205807111013913180243805335091906244850123146601973953147793940025240362006007197332743651391726854113412856697798530752599102047687574620186486347822474173994781422391051206508702324820406216884628635932868278918787069820908348886673383659812061154896056500309783327573884942167682276493116989010335394611269433051883124657461187381375645423292077049983670122221144290655588380377952259855648379006593694595112477982586923269255227683417336438983599999890674080159391355087321422547919845028810964711821613342389843292382575737425577686752146941592256305873679011123323132960492433807646911923863122995968214452937411518080485533529320474279396658977205458763662546527591997701299910793663621447699400248054337060227598687544202246687010232121097146058828214180489595066452088224840757840942566898394125012261957964941798570627789497157816222189614879715539214644976706752958634452361541590569552876705107519673639202774079344853086732033491418344676281184500069968652169325956139436430935320411639360785720496518504869342717361815237464549315295220335818298723452795725288740994344504602175470943682878145479474091675976098728711437260159067037059095479493669275383706385811526148680395214435082849364101276672428025448323194110284739226233692917449760201722172800483780681480157533701504195691941273125711306412700748956873209504257240172261976220200253152834880112198643520467960102346911078945557692589371872614829059637155128546178518290411367852299249025418628625308132894938593412373321979959742778734727280055316476545289600585647682369657879567652755659043853540302049692629886607911477561055868833292440811115040156286964604350405524061800809548666422075790188469110824558475545778084080367508379636469169033184457819192923869670401369505953819893615598918177201249536206656231021321993656263231757564793951871418384580500515616406591819981190626019262813533886058613667034693929353553578192670167834919317763406159031578804004016292815698734456071796769577691129926585935900856268862460630974331369136685072639850946493068884199771770989897758442500260849796378172868197489359731799450344332815555354774956083859678288838804081188553472930245652239806425393227215511062588109115049842923443284855830852048747487390618177620609245400272438916417332985899634180807869869461268329036988912529530343225854647480460495040602283258547340853076154639497380114257213237726822554404761352164918565137360996136552896417398138412404539711419562858315845007779926684824847472921373672473445160976654237551710609708954418484243461471728157275054323351200939346011221140138827476342385552543115427620169703354348738897584953632630754022865289901453199448260423162881873754424147342674407265902495679391058018621123195810450213613624557276492120299733858225704031434386890942152542015640149221781082810516916130864426624650044186011674187521125456507030228090053984325612049637399722373940717263427985184935165372879798164168666753417343599303400375535295525500467596112940800551410292044696556630852826294896712323708889667022050737227651774433484395546725358767968683505013789725244445324011948652277677065680908921283477997904633989183182827119182700714082104665002326942522829901751734027636567346439203313135648909947312061152157168137950095804602906038662052753866370861687275944991123813946958990849551494260173433026893984621438609881708819465625538598369522241048279484968826530296292667819186170206738519943057662821395527109043060816339089825294349753645019894295040621193572330773186363264575088736835138341196199326832823661334555608361606368839951775184890915523230256717922052532557503333100120670767218685527169346759324965252662003035202101545770100051546917817514378521431473050629901358383923968784126790076795147824665906458571674119337748965005078012613241648897282134528021741974359309639335047623812422232474850515671373692243138686025507711304570406937097022036353813688711960785161185445409357061190872671633007316929174318187649567403376955613515019333350625783827831884016831515417035630710589440630429745844534126893888564424182697970060916639897443804588154836473302395068282496379352549186601724939930299223356476533206100761101625488043486673114878629172829755883734504087402500915093908276010408062365012271842762306144652252230620179225599613902685976993006066255707830364042117278222463494782671810846830260086592635755481617801663411674722208356806737078196415256634525957137669731895597644302775422808410697837101339431970769752827102690286218385081687711887057857981092823090864558748694129219629210834751029154712543721271957013242445805798353266206242558558418015765941986517881812744218762961048150939627400804201510262517008954329230916767341384670680231009775530326731578558731972635442154786748546792876599330026916155435943092339326968769985933731876142985731455289238800957998081673463229249569623610990377811438730264530654193615698907294768395381698816725683199875546505974508548794779969986092740260480473899928654225022619138637276037488537149506303202544675367637622625666642556664984228205965817203574666107856121363373712565121997986751521664470625552214638606033867692088509172191315514060008753828213084518606666725697717691446556709174192512310152999119690727758323890920803870058914588046982113756534833739722606150930201686179616404562911443058207138967758409172128328133080887716292164755767489896782087989057677066631132305270000869319021962856227452001547607907060489045252335047398069540818431981748063121770409296879637148798200725963905633860597630239093944516295157931036688732340463222681928326491958688826718247961272288495114234147297742342093090196425839003038499227612201625285145256713845448319234189477834141501520510069770088634164949966285690188969133056401835238568906219369047797339577602619818524502911058292079607918847798146154938663086069139902275149473833773963629075682056076448505637733629521212236179374696194046664314405017416195856688453724911849086242005151050483593619270494932360095359599911860105593075445074134224067386775998031588420414016757082969612495627122104310721852565230303739058779686552499142230632688683552331267399219217713254804813711493296719454175067554706390188088620066149621251157931758483105435192603783962244147433286481178578428654195846127367890485708216877509150014885842302372864206325330842486231180740460142909813815118822051440657991925820161196852244124470460552068428805523712131353860124900285231927603725161605569649771420895330990634088828827242515475005183348936247096546184848298147674979716289831706210868679682846309096597657113999963789724430476259100360492177387190815739535709637001866158223360276095036017410500931838779626864270567725535033634266594772412136602217489422318340268887713063950841103305779440603738752759270406263750179654979608579437806064130305158594448172198574979526782413900598404269840991467585573276687020628680554708190906454421643211509640345321793910661908625957387648718564281747631688318296418863573766861930269151984137057947120572557524179640536470683460976168592896364989923949321375353606174925839422054555358321864775523230344786206830683357024863383245926465154154166314522167648402703540980885683660885512423697087154818659055220942907669082200837199562525586057860450271854419855373977723900811817250206044712541516099090771933850227106145780006675121030658192713195881442115599905021767348858163136841481759312622889645010197670442761961772250861678515041966855299931308755872076655374953202013973068482614299120044666626651972175642175584867907267371430901311909009718229630407350087452279088521210363864420441600266740425460029628405049334242906123269435033509647791475877138844713360783526070358330788181411190994845037081267359324877721395012446986161469794419303655995673179867464472365533083339719808594460311795628696528928148873351496834151702545126766750197680248198159882752734063905773274022536490049962289927416920725344223903967971936148842508040965001590719930826921805824202077856839738134221899262141272511045884764167872094187521701553811144006642803942663828132312558986146759643023443912685420971564986370529699562822562261372871073284069588013784477560027377706688890935933137938998213038353664086763701783192695089308999345033575932207170805497754651366494937374782139272188777029797478045806361309968783726639601664946879958249846057682730389607956229203410359828372414361507106039063086742017006536010758405666482619887489034964798498905034354557193676816313269626210038066628778415767999959812105617242667528542843376326489314110228376439076038481026738695396677191287987425763216302654952985648874913583125167508072148004062652675814840854413332979616190224997032739789732759356726528023110460955353539182359778971513575787445591520886818461855513130188698874660923665530709560827624750843506267395887698619298808687352240430699280549875073925394165750077215268187820584247598399960289767896153354242157783262203090513114615291812705602550164058447401442032366453910316186028948409831476180299338019533918675524208253841158359398919555728539776323439994781579284607384428656703574215199426755004691168301880911614826770051506273182821607460947059443668458644658977637151846374219390243179133865880629379303113141755235582757461391490988519952016833736733753926567461359466969456979860980402446218655534174018384870787068618064530549261170977194394929986001727667321848893831180405949405787050675880261063943705831023423880928389219638700453556274034677978131984022859527875188018898512173651607740392163034178870828616594093086957236546786850832387962265845075367140731266928278208726448959967625453858983009658616994923308570115601455496826353177671426297243462135853448096219192987803919115116853386925809625087174857100775028290362830741773433919342268915056120737487512947872849520284430974092661343978230859348625686272119187452082373782368577958505509589968353916759807404100255418562899484292231795099803808088359063721794563532039093706437432267775076358416912192358822457234340552090834866024425321641521931767523028958248261309653626954184843431753456414601389059135412514322479263879173746716563626969111494570453273807176776703724594661331668307064837638204933765299788552491643264823739605136359691618139089605974655598097846554794888966854434971092873813068221605556642899971788938352458195820526123265358801964106309980168425418592492216078132904073265097517516369854742337150807307149277088571470582827656502743785388507367432960353005258486405375661290785105322888655815797736113488262791755602208144905739051886241157545959814105823336727115878928017762141530472423248115265533848191191436047738944273626032107770097081329353809765061677116148755317869814660008349441796692982386806587616287546224484980662711740481579119017386868053349176646977732288194115290105642222952218235427500658739045600393384151799520444568711474536521611046946629071652656742136024299533785039555942288343689858798798052855505336009472132360895158151020150581125659370062339230473949326650686767813125992355713740874658064677962613826368349391794116136438747915237802142249924124463426037755286475682586682468216451199606028530450133112939914546132556700205059790522919273014866394033540651516744635409705110880124057582078065785035387218038661325336061859288586894940626792051400198546278599245292465978736620962892388123630949345159935615555930053995490254976868953866807315053051484435843437914992989106827760659895080366559438626747593031027602155422468834583352683973448451990152522105270879933102139398741772483769132987087601833744436364049384213923060300174029569657566633647879568493534758764353697272579396080874299421262688114376450811112974351561841557216718977512806477129408912719674848033365071085870619860388381946108570288221464768394682437772153256338786047511061547655329383570841480832120370503619004926937209166129483697935864560057817568853736493121979394726011099942991374986960687746511706389690099915309388223134921458700030891689691942075014236012196373705914514826674044143592922921693539826182464333200481812193120067291567527022957041057507376010948386327323701695682193886703671136977988673628729006070514317767341774590469791599977588025964072849201677706913198946576926160239858897280326286411783404680105907457301457481328443369066576627036149893531366854035835555404565069499819619602529955766300768520352698752654602041189884117964598220985238866414021489263249547600960852516344951806442543969997415970729827065627685908897839193221605420850423481173655009902455406431516236268551880512384934439804600427326783145111657018866997073630924459874977369185716865493023350686219493124152106195393898808746288853371836667033226293326161728513411449521508543966263913493295474421132015800406328362606212875719664448920267812550012942451257055795952323381180156170904223299522549561291866143785522684106575175079459070352724672297562770259401931187408103904443436293490467843950002254639316296735264190949467897297004103060550045837127269131346365759243119128627916839857702961147193028871644262001733329743704965680074444687493346702786560527623983962610814741932933219462531222589302421559857362110862339976305377768580690374441604015816916857642070186592314054167368630565181926320774524015775347320040108675496643850908324499730958116185530540575167777912071606217977468495658283839722295487154820523358221000643204263406110384677234924440351701860287487537817531550259221601197392301996340069135595568891089688351417938987916566246273991754811326535331866239235180722187329260017278911065621963725042051268613814350780385204430957327099915353354444376672399383322046828921458016835474204626486695388919720738430736696483578571394852383738633016795184052290057480490371258655217473286916150770764224925980699484516727551274668417661008489846602878101859638556101363095551943964477718824399947247217349728828009970348662753609021062590451609258448057778448929698068002360985904815383351892899371630312950751655296963453286380505446921721488983201722187578865897078302289884073170612520848018235902532442077539496401633457099264658146915997269789957044337822921623010913668780888080739852164695992604807223601766045764377168503209233469614685651075652231513586656526322942040200065600288111074811736664247760269679903437816651610276870953479178946653447868188522500508848525478902053368420013886417187367156155635728189002445004425227469828595580558703233253250786330378987359152063227649395236697276893732432522233646105384924132163447629900395235344218440596060767843015202357123016425618351689099907208146556680449476687547752565971901294646243115256593477139554663426454240056853477026413923408303206332606542504605057885013625775258351618457454102763687865944126361090114635727243867067148684285372093955819993419564810194590887827621286729891577025478007483557651310967956004104443950772539734002450662051540457196444733415133781906433782539600361462866375983794155301778976538501713499256674030178719847064468035751703847345982599130240552727429075532974273099309822567113811751256178745802378179603377168480932452581813376740902730994716977273762940442618543758582054617868330520815702735702966182581996491101269668837526169824940725724361962239779601282344832228181826580679387207913181772169765366314927457532244101953767035870577091668329650323940881575071276115499965466773803629250641882035842247040572876450283813406591294416122772031736169190287325082119055970063620150818771341762136571601768184281400224699537131623514913703264235631478845835028295805068413176909137782268478616832620485047340367127121943884447133442755916784965363689402854445254028750964687360033849189725178806602107708781023324662399383738980628393066696103916935688615427511114057715473634182001306806446175015830345650304959234509735196304553238263991243545637402086250937058307261603161879046940314038516860077832842715748366408405248851779532472845810749463906967479365544005111525404722453667355229043588935663688814357751948184626334481368722935979302281632506005208075938857248884333607182756259610545480492709355115997684311167208198734692597647554408691473270755994829510655507626156696361508771668150596916753177806432970224338694366176344080091202299350370320263205944890420875045828091982136344817269048464124166226795960730885091328665198361051325520509453587750641001133700785337743558349936604978626520665766832090117718036053538519632904680413424731993851455195349099976528648850479234839910063430870421060879763558219031207532730783395988282045154401005375654651861749958609988705857543195189507764205593447730762933052370752488256119147782293890952749066477093069623328260596311402916121428677817316591562901250710236617470464484447078392524433398779087920021332974068695825339744324300788466573428064458334041834403741602069451342785867527258088432105053290246371505873626479385122916912018958034131693663766130034665474162946547181936452594883049989275629420175893286639648674385611611489448705438383552321911762057203300660076420057947819149678833759444136695959171339344956671946867683145167102878367192491074782055204631405842721467669400241600973441430380347262423470076843707207687518021755403871916562183826269508375130845580120995386886788378291165295939892409406030127780261198319049381655225357157191218537430747514959503681106874119737994741523236771896608681184577010894296702030174982899036956137386236106008066999440467469687598880953866887409456372316767544698232581300126173135244479230011227272667406863507650688236991162175197312203955960033001166815837033712627690991133473296489071374038675771940946165570945719799119961856884215075178560422582333767698471294677421781186263925915223145744165239026937791309112226411198291050461881418113051339402831092167696258233365281816320152912791260740677209991425031181566496757775253595717653631197388924389037310932482847294615810108399894299058026375866092153656727172589622117643763750697137082693537180013116874712298090040475225689248629763500995594419315726087291629618027753869560335391016977586875522061872584781599349464726849195458687986892347234986711356417041687677940362622883393692987953444295963513282826175144492065112685367074972813114926238822454767413518535105687876106196211628645444611507641891274903044318896817797387516222561128437182350081265789133808189915582309158172249626312981549899465668658526768403267659400419372719673861062071389481363243048255693127479636565902080991092496512032295604291987695555805574746992301433486329793090791288476180446973882909334649305980610825199925353651967644539987407543644275108276609126207127253634445480889633067315088962089520687957048111467394467352782666908727832871693405513965511120516152734554049272261989232477183398417008924773203264976134926884046032639345149318232786187266660406175010442563259599288057223731349395405085903338091807433617638500849751494690989473595042340615807139750207141141837510332106572531840436125189501319590777865605953743589973697109259554674268599780467131065245348133895172023118094744997951862683938504775543061500170093182257982566310857245380863161550391849090546154403093166034870530119349282988825308779475396222854552469347404182607670458850048786890559821396610596836479680979706859456953842071904819189027819991195256624854780804176392996141090420579145672755248918176421015635622376212988387314292429289187523282452462654120599294663298427589825315430665893549882390352425618741436123323385410622342032718720833578649954538422708550839734242917201644972529625560532736688398779906906229701441290213470703304158204861211923351821127657064270077592180099672203190797281683420707050374436333407540477185803527692684112458170842039365949433341783893411145297771544843748045571275275651327941375291507819527622435530382202355850601376195023435390447039186019597030382348937705538151632190016963301256944124236855347069019929155521062361600148852408731056150397988339582052378805954945487687639129578164364370469343889334618556995792995914530219966887270099853991705969771293037191134510587821178547128990273463071978127263808805638212425058623289226973870059902216888376556442878404416379448992325570726836185325521049111759164943857695214186977415896682569959179545288527579795177512384791805300486038222383223969083016316310318958986692306459097645086576115609217201729026035735831662976441568599014546000825884801562499546039233541824727688825180013364503151343219321133916031781134695804359955025530470955371343220790723737268427534866376108625220815435110233869039005632801341877756450522474333673512984303644587637072716739814507560851283435359926464603801348499670143378099441602037129002868613020354586175886372044056253997142824323531745183448017538897480410271245098922054578367003298591002061467834958337378021775705430986050356642868111046015674135913440309039723328009012845788577055944389468420002515403995513508231020554557837698099006115435456536172112846680214245675654778319111918459260716010974025538634565381933891014902114788194956400418305708758134408727182982507917497196945110717917658935053961464193612410578777403830569782424322557214971314701037823225984343264023824917737294593236385642755611691463518512698577317811132956316336702825782709090704591288436421423450520305696040026680920892891735840715323984708344844963985715298255368613379238438326233933534681917181074443265505376453407932065800990063958115635100607066684754005329317801512891727167594629535708398612628040638240938439444785405453701396569098668268856028079943803061773070788018552122371489180686484199203671677570247157774827460123842367106167070376113166196048874957565753787311112793546978374628608399147861470096405848213775279802745709237897866604842335911884311440868933405811701175114266955392726112814532210284248708687346413525059460739352219706579381288103655644586617507968741231214675924104398662178233445777685577489982334524105609529371220703305223806583709818084016366994041030046948822379462211594999355533540160688579471332904497627692014093177066818980809472061531313178951473695146584492362188423664638145503287472944882170346013775414621625023384993399469334409563669733959333561207574730757008708027199230673083147336660216781474072821652985196711389026582003443995895818592148999466817700413412805831893569831751304193481880340933673270226181652391130370680241932335555621397885282360797048466287661905240733960935944357671590469039331179630617848245128470607356121714736330137841570798975480954855263654690561394713178288613401237891679658518053062245999598764740949140007666080732770451841527999065566941669175621241493394228218164778938570010586056237438083037939531621017397860307867574128993902414433846810473997246172212112858814467445477162816283680138883580702705434499795299749030028073851847203159596183849945010767601048174518955426260114997237819180310262884783832371731746932573513860179346892746942365019271934250159146282167034450380246329332216967086478106058891578662317044023237041634721657648004168542256932061147973644806775261571629233094539803930370541817839516131183607954728670811452325988259541741238859028174587135684214735806275082040409016940859247631189691041430019369446652534526375393554286614574102559893505842928249898398028588257689189203574047261178283357360172709199907006437889340517145114657556212203669070209243405281385229293458117718031949639267941543374752354539642199939101697862644833339617432227345341809392739610891602291178210751896055028385181881875059257710650711960448285965063034045317481257082920725648672751778557421252180849596849539636747920463432357366361084226718216641508694864978309478814086545655086003947345255876064587216185432178782011815010326869570587883937473657384957499025317779302728952961309611856608106179375535782841522384592503638793541036584137276910893150112178288394292050243653105162158065188216640504668875658564875984766124456159248902309709769177071182428431902394905943764592504924496260408814314965734224242069481038396678835972846276774038035558929384745532678108853603154972212786936528786771610189056274071809394431870391132278149246018643292484176210456092926709427127534981197501358981678895493255057569639013541736805669824178450820711795078595505043192019058789800142730097422943830345880277271885850848694684793198163125847280285040973648856405339113970839901198763307230180657382307707132440614145592972390823845508776709831075230364292872385343157446459183700856047367379368639579714996636485522190348892482211938898498153731006541111863649087613099882654446890631359584503752478452154005658065366711799285710080655706786409908194882834574489002942340148102870561926102910233589646609421701513230900204528451907385571597384140256551569576186786102451780277400475118686541105984184800694727599852141542956127498536638469122498587159185598126900496855142516139981965287395919556070268074763926858850027020522677556015800675587237826486128565724494889311938912964620553685668648445254914052697720557866605832990069637660210881384844794688050490386019192393369325952639793980988693142949800169111866306385427498929009888361034930696311083521576309776704824022897756739102115285990648672393789372117512183292259048056755918375014941035862695644871114419784064987715839874791415881183033704979861235089133165466131103592882819668925885152839102381523020486235160427592687660162240244826965463041432638392513860574686140931070287579271596219694232038538030180788058522399699679179262244713889228403671058206853704727057495248904613302925532992016233381143379563859165067312716812604325623886709349935620717857400571437208495743467497705667907244066814013585124697940217188837593298334582386467975442869634135281863048790307044090641596737027105490219837261838994385867846038467214949653104697365375324467767850867716879721519337930853599272702579628960994130238734551701315430709332927243587861228336059507923712573908816690528613696042402844035040717978666630064739970770025543177956027641663486178876991847228587893454199211482091231402069939417134148036413915599296566093816216692345560853872896938107466095197592006038304154192925811327398287164191832691091892977253789622315285966317564650658279882757827991922076282106898155517401810368707592231095696810117483572213518856204578062647532259483205897919490501813289045584266029304762556272614703681346901339841508391944905209099925032776173496385072423202145529673841602994715430111193130230874957156482575377978743202450928570454060594752658093909704304252791027329645827635375643540513205262084634994886158335223096742967462228545607290074666823680815422279347903923311240739730984663206158516388969871268572116703415775241341579323317215494829910466979154663293066283685661968798741087103357187196133348648225140045408104850881209539666638009406583377990034032872422354820624475283756584253629853997555791706944518366126100449654873532096892952178194100771917246142801542687525177931530560875416386853121397767474834208622681888696387004303561415175459109527302912717511965421167465959227520428324753146430648664589859250447145740477371478181084720980075066969775134724948443399754796271428502839602148801718608380099725758185585801881422349515717276960516625575695299205579065621506137066219959246404393822059469441917307016168741273073703116339601395996417644058109158136481355958093576859991887371841075153901642019576147906321941976314951243290750507493527533300672204979151916664143793967483077076872609863932746702291192200552334927866996414265890580994576845893162826902278499123138158865191769752255624623243184131304867545013962136741135396392416817885722052560494340722815752887808261599047929208177607000735525177558157626583923602202516023701474215713348427380261890900690954879714764883681982798073525277618272042899304660841987816749198194086797497567008599398136937531265775414699550298796760464921390735263157319309238862453649106128183019735062480192242993146382048119183262262835140136414600094851997178032140487825717801195083590542642455103444087482741933501683396435934084086008954162209246839169266986559241872600066180608405367101555562223356872853807524868893965127860941418672337111414847068883290284742832771148738676217434070890157318660717611733723389616827711964361975999207280273391752025596014739964582791702660520536324858384756276418558520213913346406130742719730846333752040196827470308995206915528377093593131738295511957119013734387324903427341611606499625675690948470503303878144452784057648068628225568762650379925749567352922993867045423319014662542804660714788336479686974317107468728034272317447617676699146605736497340240386197065341455728182862031783877740432437154758606002237522093435103033941869459806513950130241690937468999478811494424327373797756850856155003830443946948856022300659248534361247937438127001747481202421510945305471505005840175644036085370088037686608166534422708883630329246800297639996142719039933461917275171783326162661386706456628550527503898250764269167199617020270791518606536413639903048507848001997172800403156015832880162081464486299242749676510952032617462661055293158153024646222583376234115153570789686493115072202964134221558570433631442507802913455713147799480538459086604474590361801721927682083577069835652605224335710642459955842244376817286357946413645233672156436806711805621942373480067488280026203077504176229334575718362997886168477436549791014500351530001065678782149905628957875968721871862894000204416636127764550899669930671414786095423116350117995751102931778333305620914396394916901614083914651830643790906089506438364247831255223989333589188784271175388963261625633232398424905579101147432085922833445409874488595346445492154761545905765006287788988627982770011542505187162579789838729251021178886907343134742366923546048572042695615361980636224654996647688607790073915002038494861863848123144071331510536724631381306790561859684071793070351356405555083556820822184757400398203873679721737788222782627556983152016060625728881174514704501146324830041238871226940427623552684777440927924634045035366957152252647269834028477603241485341639096377399532404202682440090286668518573404039169918955636580507495582753091324966295420891862253849938199786954398003418744883268140883529813361128571822270719173409415863302047553232197852360808833338836350905038276992661451869232063882324477156409379255933409274213525998450035341666766565818887377202702837032102859837401745048216857090648757994781767527396637914308365844536429061220647061522623216535265079512193285820205153362361337445308536451484539403587557661770585342123424761007986275256057813206574579831871951583058499697052177571974770598499931952946595433144836770620709725669589630727980518572874024629466326538876850449968883481650915222055654112163024600238504551108453391785513175569338528916384378006747648467643194388730171247603177247766229084962424321142934299353963362472895999787901959436153547949016512463811998142577376644952783997549282643156713923600126864666519602979919864299676051972094671511588800432374936989418413781326301116549011977851934603920077425724353718797476990317358932759459761621952349267453804810740909505100301373332572615320518879529408717222942305544017405771704629335747747029936464206344514076101172275208214154678108272210124170475955550600398498442211480730618557504227314792167032663228320227858425807795452934752342919324722269175106258759762244108953111856573162516445026088816572767325742900000515662980392993075712284125176101623978424971277754419579980260814814231001668130860107235987146125466370108515043500542435732019994312266630247888985961074338313915674056156664068969249711016569883620939071488261371291011241594507367364178043357449426297733081235452631977448130323369831212568201761189239184607535836043672597110521419367989398745936051561379641562772144967530261795382220137269288886118096647613613804780289247054452173416943270170449026183734556493366997577712121690502053056518405766616990029710632640794493010542570205150644857155290586615707351743970321384574136794394755734321117564854156216745548323365807123941548103837788162828783655701534247714073400729267590519847007587964974371194059068901950756087097989591072393941086447873833236375761191971950144129122913602979702378711649061134789671269515285573301402795714930502928182121675253167139082767705731057105706128845118014530713574230593192988201108889490048243712685917961406986334988297484849125280973212127952687993212135501250257046799712814933554782739720041514136631991785804247817062891474166067015476707948087999364911040646290414122327277053734103537626369782080514681188871248232477176228289390371876034309685007166231327145793461583836847192040657183800850244748124768032601303108522778724627782046102652685859449430671583394733222133750388951479397890269751588607364631539619068736364034421210543116623383059230289181699990515840258830241844936831451947215952935693711016969727809682576392750980642784699034642507646468490206859979308824877680575429818315705751620103909367837864360412558255192415167891000916045753956441638261816047075709995974438864617545599462916881681043694752753488197200680067177428999362442961232673252656622849656748931719839306846324588397443519249430147577577357819904750445849166236368111675992154658539029888592271745264491145244662233711224126803096966696094123602869790732724641021902899516305309874186225473817303349417398980900339212417191762708046289916401434990051577181299952890494423284071623318232716817233083217289870535460903612452166320500700334051489005038632347429898980449562633981011232529633076260840715557080023547469212008412553588108016613583249017942612538043904741321705002268459874345649493555860961990373205720134031596852561593929032884223544282296804446915529357422145112198159721287861566835171469655098642649486338346853048767469412230666004212545944898559300898019190174056562370114737193552420673055096163154973072099839632469634515312752712929561307096913189632994928390141538124920501536575812845151811027497691558808989403251595213955304791043069721407833138483583154019568759535133898028496662980176197392291400790766334478384407880373991702316379651071593072610663761086835370417303856910632949910123710433225862915474812650670935456681983423382788610871596518584548706979666750287868748703733936519518109770785030790726324612409240396429248819166662150419178362158998170110472128346092748881868694740135954086332581984906099708518162145169046938035592189277348730430772251936480421013896762938208970770512466442802576685908716638164583512977615483629313381440690543255946324799865441729176579885840848915064550981105118518536972692141430116907470922588959628339176542943871122613143897097484909046143523751516419616172586830667745195957426615480182624379313546041674502603499094781965049229810533311138991057495920606804375705647848734948262036782292109006162404070397550967624570077185534504608100338465166911122406604998910251870623760290272566464159348127753672667343131111173403773305751742417125020410785725184846805729782332978923332728879371781527164798927567180767078383918669308235865366101330385861255691868025260994994936299212752373725837929622608894819858398031159528794680555731251157437733926273365850038178476184675189104022596240334880199792839211305950518258210833932027452084785105528609544232601020149113413360009633588909868921717436490784405672160338035221677270894018149586518639123833274687809362305237554123184455675393449421798701612486837509018852875899934625213802438317307918503978676974881615709206095198130118735725025234266880520331156809297772446493178067859878806345846455466287899758265233742736108887715898561622465032696910267602540800852089902801442270246493501646629312363029511171871600980916154137703084665194095965171498044862051452248477785950999397465236069385021977213552455012302878113697063146420745314169706105631713125260585241988267501562222975015909077891188256304437558103094294975795153806384779611558613357425475983428917631891929860107942309204133546550882698632512905582640798461815509163773693180712027467036724484561099347900855458739022303699652149841734246622733293400326931677060198592111913380935061237383114998286035139433292553338353377423276122473428634921903459575952865284479107096551421060813675200250020871269735277032818003021923596380237909348578858935995325940219303979949575993130648166296423146092434598953321002269768722187876284507948322962447392420023658982102787679499357335234089669950655898318121046533953414910676716112038295012359654830832172907563375387169612121642922389943079763216017055038724958284743980499949275213940245087369629992677194138660741196841312257210808771154751075986679033534639837031887865803532544930019194953982276534659492013346723451999943194422128847005432939805686051598762249606909459359678671941649951917674587704252582282476402805884081705707412108009663060618662569049770847932355724374801258253935862913896277091609350965474447961616670097976233980194579268477980879043389674727352703891236760107850315200101142712435112341074354634496315728548546525548060233400947311795361519800930421077596799722668784432989593230674410432802877249738173648153983070469394215897288152501638448528246813374554487084516849469985208182797448612344734886083790354540502875078012334365187695938325469265751789469567590912520059356950419431536333243101967415292668727052622296006216605365024507306111633560874672332047292293129416954384330106078895951800290750577778464005400701036514024033283257820573464234452218486001225205724091588804452460919234604385942722334437748797381474378068781822349516152104334296058886622710434077241147263703778254260580060453910103482469727275389548269052982929021123970642376105729362988839407079529789706678956377848853414763850588429323538312023383042308849907255623099823346826601450224672577037055639300278709869674236471394304297234448928200860723802298779462038655028399995731454451922700618088901024265973248541936602445505653909093859216714472863647353252400631023417611658122135527513570583618247767110802849973340523937552416471379783310009173552422465544842913462449484071337714794344008795463461594510267557541767677017209511119168496933911323600876414480081380848785892535523871931369987066228023985474186728388282977597936285476291160469145183506368001240472470213003866158281834881355553115058714690753391111564456924351091037475193476678427097952816312799375679134702419151560545512856547925115934799274580812320338012894841103722412911072608887953207672497163209820770523752077150137742058581669268642496878111268817602195708908769023630152001045785457059950442933782461282613015922043338941495806336521466679087734326164364585662644007316143931517374628976376664353119429540841693279939331712090155620913947558387344625735386261431899901283399202041353646022471163246117371917726326938212051379292072455744424400007453446422599645711234248085329117653804627350285043566117665534799113780649646446539924063592744867086342790539987136956608715131445349287643887936414301523200319779187462101545420843663637515693855784520288838651241941445374375563191048960631134306197752815006471559691943627652434087707992348485545585911687315575075466772551793814639383343460711785911225007301284204854561718074654931742711284196738888474276333775600158847543267751478000398062054154839132602788367406941507675703792520826191224513159342109882767363648017208275607389587144453838394518734997617160313610611238590953176227010533251227149924381843920554625032331766138739521944386136970347362843760912879532612176913747684017143944973930096790571494961578628681918722995516051585031189757483743548551106780611347822672899711889051240710432828500610966203311518719542587621653930127358335544832669106230585602731766945536838131685011802770666093754110735736931459412622414163243779636905532391047931152915378956367438595350334559394620691370740475612482066768369331985648030256389506677217583254670233705336245477466730236274219000692548487902520894260620645490477736015190959519008044390474562209198461905335241829041577383085677004817919865410365329697201238990822640955907762048208181240240380749294136566045787204616860959860902847679479079036758493092111108012335514378157761144318102004263451474065600554219227273274464200301118885404321794267976756194437182062512877627146588045382356777540414546763405723036719387509547951020767652409736497530173540933488245302781533602616312978020400946524874992920655824381896657923532757418537503211105993717959259352617801748721948795748963128816691241056679062408886593225003769717853568160395108941372835730435332812908668637293269747338355377969741149840939083989040985376842862671145220169009658277466297541374458446657942089246173391626031721111245992157774066579658441700982340589713806175077166241015816390511737292461066484014921064896000235770584770453000372264275924904446043482240633429706667559192129671416431311342990578384729679845432041620056432245128708983336586288700130828249456008188752928236199543702624950359153231948079019215772604410789299104490109595178810827364917307292522194870101612200696327448711608386296792323777869549949561485228371300965789281163403220510426035411181664581251473773822349473320470487835625326342127665183762768803738893159280977113911947741229634494067633184518715198545881440103089811310985690560108961442397988663885965125708828416526473492736526226010103344123141738802462997551851075557235991127079961036370360273934763560652018306499652718194182516324846174917854127140566566490989798025835068934699614669586476564684285021539313369678815076235532941148726363907904970099491233433736901844131057139509194116274507753088696740399006029967185928946937463320861868981792943455655346917708147631009463233651214949289980194295746348032484113616983742535723410813003055277984084437614654516200317265213414079268190456857519666322839613263125825912636093518132680456421277868681650611536256144255817038095474738369955348767530534443883020890885101615116309377756669361132772350609427213124170750839846167994025495906007744298533792439041984541469080154717849153592042672275408262041897641706973386629878143678470991320228367148249908058688991984927123783487927649217436879601541944150948509189889662180853013182644171642052221225204390023632705794714238827556766771021918140442440531411721916900773826876743938728681690313912778370675181244633452265000091321059325340152476726902553476339993337245453299502824855492732902651921159561127341618984200073768606585059575262679612097846779932129615349984645047708103390281377292580356785635839214350536019142465432904226369622259863472535486524879847710209858104803950641345370676500860411228153326802896029661211363763456402559948300883379446474006120915927941433165915668640816025826060606059941739913963085153818357657448846775319633984634984420009833147935764578220450588966758163371406942518840195596771389515089802463505397187863168432164667931361881191752282408749889409063658725217697081046109056673676219706283947308444492624639843310916598660626668799124017251619743030210658496165864289890031731213154656717169640459440493438933479785389202324715900536032462146036492703485522100763665076205593779165603279977041256725461552346378822630514210207311114303518153948509952322896768199927821756081838701203111105030147117471971360414770820420593846692890981636874209004159664828801129461450010590293221303125968487894672089737982326822892596604137006309107304709827778823144066487814281349428613704900910763107877072026431542406863487748363056130188169672153579548168495673929739311793211557960922450281591047620513039964858632866415308396650847478971354522074739827041579665562080215495847864005241849741526895283035067931748510516792201665299911490178496983414691734022535655693452937096086763204691629558265792246755345265358203031907706719582268040713640751153213562032293608884690229712441186915192276973758355002894741007814632206002516126178639416723681851656374394330450069067398375254548287246037685229957136515162337206839960167028022157346929324585981165769726431470762808785614578101764234847711984341064089369077187119410275541898885997119672776749595974994096079356421374145631597841041040115147788511671157449785202965550910218456040727726782945517698088900582454582900502201053388382297868115054519047372234324597557900532176835176233846234620180875429242549018356273612885598579861942027019110779494581574977722099552615458463224238007506824220581533218059515018430847905031336600708282592463994411251122539921982040585440684563292608140164365939386560058471965138691702075807395201418751584258789897081703677627593175210544538585733763171359663030406444696038775330790926532290250052662467619193958843226108910099903227747272863394055457661879161581352174003032273641866772368925021085257461475392948113956007690861593879989304414397998951452678214716204748382762175409137860139923180497364171610733010421000616768067702356720045430428227205024331228521789133101317522761855875093327966215243738464402136238655607617445526936693224925860823236254559282553380046050751194421739032143889688671184323141592293858264289595367665264322810556624862989596542580191534426312741273925805999070625851129944153431746339081206290444721940777992351124088615569148300137104575755212495909646290479028581217972697104031019415967459108488709293197836167225518289596966143172313609335182533283386322453395373721439333424614799903566815239950979925820820278968917347747414970739716639365832003280661406771436729974166054809181584417554068301937441649527994961369286442755924443148194453410628626061838154836844205086751542095824209245654725259288006323916933248135174480528941179819043772430336665954531004222949886907346027792741049293005927282151214987021540032942371023221665558865408981025264118098789042811979336366853184075101815723980388438686521662521720905175554478454263405771805399541919265505478006045955409838714602930110109291620304393182895154948186471878753501310625500894627768020262367282534995128333541953061173123992816304170470933153567324185780230440295322128509153601178478051359266832739647481020923111637038473017043925564033796844960169493763425581654761659145263581425559141452516894688236897192698869373701393676637048077586983754614567202142536615333592019487128829327385546646087535945295380961997365366376657795624016817046647859064209685952176661054245493514243318128467424023655868516750753296214244127944324009293619050330385577523050107850462585394349124427754085507112414885851681783950565136965385793635410846710045881685953434511771260926586670298648586246848906955204291209525281694887264524239754343863904894140367111413310094664587380632997715443477246780387307892867301636899387967093469509604602875435266599934809207102041336193835796432288795368618718839863004045851045725119155867481307497205614215666933055667969360271419818076196268560679955148352867214280407279380361674995991844929201116447719741867713095618436697016049622689068960247258482723771940658559612221166442733090013077368818514271149597727562494806719196113462930705070739017534854799236114906705381637857317991418960437747605554496790116882056872009198097719183610345644016682471370935244685696043291577972935664756034685795750210917932632375359097544528083681038153065358360198281136949122021070512166559910107442181159906244989930328597983789142648407399504736732372503159226800162673672040259922997307933449287770026300646475753440490107053881621511499016791978332183560983526114697338436548467424747103102445440139932171325853158124907676121992720971613602866646944866736272122756588709266625831148541433478067340974708149097292533335859608596478626511741127155925704224002884038094193670101405936193103355430750609176450327455847564668920823992006529240762480192522447419122317583372559903143376872768602918370102794666435402914406336639661383391976334077772362300729044227414121651167178873574315399022706109494900604432680322691013274605257196709971056840130080054115407929148471547394751129471825189610479209997406576599942155973971996937205845208276130900798744321309605547726688580827461833277890911095053906505223885379500528969056342044225881851514047885866013805825394142486704447096633960546470439080173629552820037119117099339411263686799973895785805959470007285837190129497439882546043965467607686465699772807647480986880169520810993887780494228766271803199601805604017592085238711195716564656158277420395923755469000830998191744813195993647974926230073178264739184250451846698967089028173765269727218202577773472150801780142571203232448052315703856437275330650067935025161317104459575083983477211366331445843455044457811472547795738279296420784883135308373174523477967717503242099361602379751406591612847661671121085599249082145173914448517435293130277185200646265118269237262989761543555232385562356621022899519032275099230008693058239449950161869326380899225351552733904680315072055522517790189343388424076802781528479876108305068520694430161206713379912683133751205193729959127956800503999418165333279605838143260394099661366029680308894766600358229858203936770030265843149792461537759276879405472376508644429426311893290408579131487548383973845701677098707573937220664369359334100258656776422790402187085320490724177121603849413838130667109943439787449016636304910010497362482030013893659358234741642521007139966596500657732187143663904906130066853889445666774387006182858042566713076634344554268004892743239771793819760109831773787480887183035489942202524361870672580767203329944112600986779095223168854233302170229791154876006955981033789349066960716148150009422302698651469124203405351753791520683503527767045741193781485001003278032370896986333658663514985753548124013357064137228931828395315710104875863949688172905543447664024443612507980305118268171744394098724342707471850919776667289017162608502549345284377737926037218013555154426902651369284069826507096607904497045453046925948429650256340739610006382829408462404019199528048185286976119131662396186373060122547947127482536217686445757666607106139273296082088773564562385507292217178478364679145804744778706102036980245702485129554219244945420893031747949124501223311939978108729379523094717984100007585797283165246257281783819565213202992207317604024176254563077871306571894757588152285272621137407261605061573250916664248211366357745346711074147960777209863935401637734025653310488724856406666338483416311403103300256782875849655458510215950799577166051286486524755465098022773190768704790455082420731156361498880728889116052743138857907811682747223794163484799021302191326476828748587937777283800543451745280285016892757752178836369608817397594014379082264767908689936263565238599037901124271748277037046972806942213554522782227320135858468997010854493194210532279397170548363876170884765840865004357390214686904084988462214700937604509171327108280036752451249626357154345845491807318148397259637120152313067510382143861414816117482528010218682654099768052959219038939921600259853215272075685785281870962636549916446256448107064279717383689806801545612770403921742018134959946973292708483630976971502724250913335007421431410891519849991824611364535490616506283870120435436319436007825574009030021848301559022648358076735751254922733823057707451739777112805698691871413233071631494066254454680169008355834927537081658205753181832576140123898315533387390671669820059130489198088558060571459091438183983434670054961422503230183630420566921288455220219873342902968929414213603298144180921613179006827487257418418721339158096639477784282540111572757873765705364992701472667201199920297839111629114611470378398680941969669273898727549913187439027991185241938810597170926995569509580138167022319306978559805450836281772608171487186985823891246108648610123863344178238366398778143089176583964563390472284298362867924750916329645982454086988594034631719644148946851443089899580831989134227881545682204658909269416841810840765312707630319700403721049233311931527947765786110664857013541741207259759272511672098550659208039294615864797162844767679631107824039505737327846131592138530390113327754767523620841108373559152803229769668773697482742895495483250288444493657965818229540807801766763546874676659626001232805647535265330585115793903195686043614226398432626134867677465560020124602149960251312445449418749601766831817391367474727076630228991148831684946743397464144833785134360827021862084863954534875626125416401868770115576701538122452979944849741547486485423494114463368658976551518750525562172560788724471627736488231414114270992614475989736370202343396674979688330075853966608824807089863396121664479123888778976205560606708163549632683186665319141186411827043695813048327787200620139562651476526632105864017439912284715515311481643447612431133896267615498400471412766170942727204951753891646882640805665010138192700276054905642617219013824696440837979960189408270287532368230020169605047713483617187030558975844555893432980503865016046684706782851528687799368427572863295105193058805461300994422710243842700662177383297823957995224976828032539104522322888883518400690330089949611514933737404047470378106806868530927380906008669650898243012712453528905524418910001072256723559502441406849291009452786327585090375379430645873860174326785299312892737015159719429698122800973045178289615339096334165596212555992688059002907977541138249696717958411074547859520223682625956476883096713719070818747077587142848624444877347858342338445757220675561524508157882813321356777805064653785907940134415587942399467870301586910144445639281881055768477550874264561240197180180158568643267048424549557366137180203565831907186252978112718168895618342692246253089702977481467232300443506042685603401928112873108910273428287694613615256625099420055974119329316818389042548790720661299503579842912497458292225324663588801334869098128886289789819545612187757260054311976624913015351350475151671307084382951630510428591962430698185324210299331094268249302488364473635714068103450711594744528539167908939244009658654237365241622974720618664527980768422904550808078341317251245089001191980176032159454225500433779219286546112773703625754891212119325408961957767950820548981890721106146483201186853315512381941207899143617283347865963695188888906529013868885129656000617424832115109559652973973033971432271578828989274634274586734296906355304258296630407050032906580058363459422247115642879961784945381811571636384367211869982682521050871740994218213551934045472059245365393743256342104194899268675408230564769206315694187864836683261856766254845623796157288982354363656495002566779099516997663358972267085029420864391491889373718467110269245095548836736574722856032900960401343755015096891837329840878628244490246356515421744516262449192237871826386008302791267966729314315459938952118496239105044711020035854778693758264964568305635156949899088552970296157410700198364802948455881109166247522083580564377969967213263498130865502767321530295028323290615505264916048011449283129619508136404809161453605211297433850042479061524620772076341873199541799216816489670279948230967585209502009788777751887318219318928056311046210335160966852839218526942963764148938673414780852729218770951598591375482594898947888519386851615816550604806387611452136698873247667865577718156058340584660352422168875064596213402542565774459001644010036944542947844623810071754303753567262975364195533248935955768860536215243216173566006368521531075653506340494529768093376314933466744347775941797977733482405546235870618777410350706065386687174568100226720914436750873606802456307889592566873821691114524974214220758423203693866388866929788345812569072586836034331967475402177359090504488340121849697022874321983371475520231213144961616789972098991014640277711802115557994793282048073096528204946439884547193660091108698151093441884866465296074118940181792014321072904137005458120941997690426779369914148063160516875943986085987235526245813606046187226484943640089530951856424873144320029908403406677686057635637343920005332405971382779634767165454321180367951802786158555627586344982259405058321561195832613863097024302970126058717129421469694375669948811514951813833697481001931487987103185123301352709801164897216872667487262148667820459918657687180334100330319493367021593586070164835938631283329855901324245379891300857748164928710278901855185533082793162017131645588343913051069158135282324390034778843386315414257518087905855789702374860304082395100976938311656931821451864392876089845531618465789846102942322374858108533462784962048238041812807775146496621272098102965034583638031688562428061313928674837613921342158169976954178547656617834715220811984203358981990076196768135813922580553169813398494917895974680060343889221758912914804648022802913675962692782706785095324170695070546988601104385101944157203723089992298285996022420743993290713343579846514104293164138438359910201301376661211621492030798688970139095907137006409387680544654414417610538612330790950952062631557748069647980654745341118149106427438395413785358189957631882917372233936266202957358143377324228682076179732911432880252717914144584127687237263871449011602892620348494974871414341209049284162203133435744226849235064999785194877239450980959854849710633314936328042028562304775895892420173698865690586959572423320282973429675943002285358429044292635680405591187283995950506390302587291654819246114989311371034922371011499665980760131490371686027688415734604620513456852998622019233369814993731950135880656054692666053352024533769744481944482013750984010648551921107774298174845531571992595187882512572428453317778290870864855400212547075410211479763685066527785054898560015470844344294630777671979457728209478181129556108332209059676457366122192100385321370608012358422693879103409073424042228297880887261473698572689926413330548836654155577998909809371628717064364437590484414972217584318275736726648211627859735578942610719816498047042696647892179076000336084013697710291765605590872244616636398597075408913176309575776973065135520833593747253912100312394830240609942475287760013812802250560169942073120417583635354882334566927886346675545710136808034666409734517968894770453061856486796592407487380387536733159685017121088209238998685876254512184643079604866789151702935686115126736524123443605922081789561690788807181191836890064958419880801102411795909331831380203763424364763631298298659336178561870770472677423183132302528733949685336675370156074319189961094402646392425425059622121589166734552584630214694438106273706392894031103717396944637817543386952382635710863642973596844172855373187405770399592213178605794664858434801359693977662580077981566456528692762452419625343472099397132769756156158009239418392308858609886856014084375485643936681879907692628737451220886075563572671942457753824120816384071018384452866928741960542423161456720186945036023503288007296399523658341599394434570203609351389964799378112559836430722470690433728270050230071471851025524767435966975191785035521409283471920918112634897997542581100965590497362773973206022463867558565134900151544986247769012921982758430352921319498950499812309659131024707431846085909961666668874653477375523310435027877904292122555196338229088039557298321239801534961744588598853630562704431675496024158362417257564546494351533523521228825253979104913914409385093521341277504425212256670518160276008751153680260340472083716312509617715176883563162377998107472328591903596536999321295961817221123016998456367165011900499316560074324646331155433785563635561694476097116808368216956432596390537746014086395751876116390800952331749839729538019446790186453538539386300930166873406425075834578945030241668455491848603463898129622320453382762474622453572439754025429394275838836978576795291740580291644223638535467009081936863302192651936029102657894903072790702265264634986072449498427723870626844098751382094865272115180011362910781946065952504974197888309336804910028159051136808959212149351912619045167167646053960136341196044132732479696981380412776788051909830163461182267856742949723394171124414772002918606798526847600606094313605703678703187771450638596391702821990594318868782541248624683049990145570448822275703364246135892024953692990809200066704953723386988588536177896803019945357869442005235712919126872023920186351306819471456448355410023308764873233306484922712414012985597183816902050859693353087808424363941190285703126387606608954658376983902285736418505709149816337439493423074768504130312120420142085024779446763259305454171662826760791649013896335397489187524111081713736506188711446235307645355106503195250825557483083205873266430425173949399376141431691475407458550670370373895229150166714292985830584102065963995654908815547957961758395490271492980566690649156614749164345009359632413727882606239422053535637505093273021701091811187451467013729606858906421404090184720738254724889557834377107570091931931611852497120997397044570641917081552588708493264544953556120190847891357133542621189349818829903515213201536451352673606305324165199974494512324431826128555526745187743533249840443647061594980052661278019446223812979216537761638803991860592589010054184228946525961438091276913775430012357569166004839828674328147362133196165513688792852360139984732019042017745764854826527766245848909461626342228902240064602856752229666927638067759349236813296130029132375328171066214868428100352347690882077459924937159005736044830032353626149543899974347635809288543201706120473900746044133855149230739263594767709479965253566465882563628361568947158115523443556750946406520128339238455964576975248076826931739777113504470309549132851908766096743319840599348795554323305881049497463355797310878128320656172700186797748991612649114379733386747911833465989122138993102747320511026265738918940591317827932263213684204525550524204655913368292190514144167685432719468924104908442146749040673911512762448373732496478170969168539318106913169725442802501507781411764252171991988245995117065708984080055555621970577532175420852453714341515245787150950705502295481382158759120305587219964726917324403548043693110637620099403844900254031280872703220921243251796841945415647629392044443890298806017463229307734958043247598435596286216982285373596393611612665593418614249535963630204631961354684729383706302002941709814955963885586419433574261716839347584166470582553351815497589752188908263209759488748155437950690554224657583561210591768576928623859591129541792475434201015253403769036336640148013415263011833810711861655287668391517620991242584983535903772369472547806765387455710071672370956881677697929344173029514108185304001392476258745868022461507147068077123340654450930842901542087284977975995208753921532363544119016432883199254455402237128591938498526655042392341114370803363788184209910915415247638069215608719431572223722327980016633144103508332846207693891362362409466559473303099475214706075439402783821526060630662849378036617275275614506349440587961600699267262746654310167329855717305316671278823533718755406726657168700350563708603672257417788245179105081116760035454117026856061391997257564707656814787263507963919443318420421616766782664442079540668439919183646188820981520336296569615789484534000694820838365478959721712379743001128153568331765744744335946983012264878898540328156817226945254704586102369346018767497934186485575467863368590768910503789884212696142762246326683897655965687359730937741507475270511693951499468675743991733811499603168748038074922822738773616382414579738304825856186754719720043352401263130662361800847271598395881215559923183117103076337069403230860382964608339823822980869575701448213472315020542033478706003491780568164890973750539260115481152599428286529791025926497186225108887290740758860113856368017132702875246990471899650646838337448752766602872349996965297786604279240161290263079984519463788084826303948384587730378972170572327389594425288809210866013788070259060436788616070300284188815830370978294574613411819222375871348479359645353580418348119969809868109601452432792744010768078782130537059418882555642222977008775911884415989143398401845517905179864670309913619920148458873025214618722334610996887688111449826828244145290055775327253138836218180930966239476068362908909224944080749072446654233952730653743553652433677342163811978566419529052875835676227740800804974060506768261539603644823626282715481248851120666166860101559346331032960131508676816997249073546692441197202828606090651891257911359433009516141596219369454326034093765997168611744371114939529828978714225086718113622947732865196068390481292755960206000835417230636994883861049383351452923735312432042087876239964789354507369842165660541784803848930345972269542788704380572894928454691363929355729321852316131906090318136380993331624635445301250528074499757741981496085818436728859520911937896678969270894541132106277064000147688460380678390510083836923362045500838368320944182627838809370471094548165630399790210728622333325125910735789029577457334306147045032064588703150459354122111983469612134170499323470161551565799928733249213286296521153400452952912977196328208859313455812319500590532069495027916937894015334887313221745835038625947288070550023363176859833834308817545906809965010013460188034439775403844425457383035235763098612862770514580191095246305723882526632507798297158882663616541220522909773953173222711398867513853268376226159931724765908709878248620219051873014779821726099397340838819618495038909529327721239325140477245912811836937537230520671966783971625060395755606764395978093294816067412167458884866159301002808728052180925166904482278703675691160813324441956364217544927988777624674010570679329488928576947859234769648999456713865634624361003367446061599164170660109776823930547104872152167891438617042613309100451912680744537443688159163062389950659842128527910834987741924120801388642887854292548235064217551964859284780124121028389047896827194456843757135112863934069855525001516521197063067133021355740290065560654196287758268553332181246890903509282123385853663729210479741418533581635103594029949234180843799467359492981559613378446280856337098154687777121018625323500309088487991215035465161609156017784994947869336637946991649147868980905105259987315100969826804032880451518869297304431134310123399942222225233561048172532772250418659684163699939402282239534755481540179912778707328775578047400218867802794951888385706927458898362916866128892313738631273628707160539866610661044466815873749694531617079882797412061180558015855243915392559118428587190300993848562239285239393845767639097195578703999819282072530216945129902392293296847163724745592466433628572950999109312819413219491639277870106539961702037117754943274667592285729233860521650073131921187619555458929133506132721674618655551044632697901361233894028761774886899688880431383291024810564865856353479069790759329636931691836257000752345759109592087815727930236974155343366386080108362611118046150793403337840305365219729804030961292237498809123000027730017017477678046547111516672446463132270874914065128082971853321328918698568074147732223850689126210244748474893712450137192850081564821504146774535421205936823945167202931394643802574416612273399476078373498140010733281511554592038966341791572378527181252354296466676748163763900077368940920634581536560004541230910819591327107028618925248254109896377227138496650262389167561780585392317737188432076623035358144000432879898830400496505779779688068050724274423909104534089928712952726753879835777994774724964021015786446054644081764878317656845123542803874015801153258319092727473996624545597092184415313888536740799983840334936993719648343663227307900180253680125296448706371791548861484949469606859313091582135619632849398323733259759313039942284485472255663484718877524700075558627582263130776788545713836419459462899601798012639758422930898021394169329060242636862419471457696235264317163936287118844324240333045190853255486636515381066889950859360732222656262166793382483634520415888714478604483251949068406157644190228223625426971386654314009469383355520806142354841892950594857173457574143144528308302682215127406589925124864271754449103533334254090196908397672718503240483769237790087062264203907340239033014650404209380110769838630294180438701547058577971791514950168675126105084324506191161039605323857862020570104644724391482220071653440732579836627954922363468593098265150271218085319876857521719105861595292446816583443240795664534292166070328689629220356112616781247034403789795572240969747337274728378288875615173912186677444883482703876331154282904153121518459872153908800422168398236126764752982206175354010234080577606015132835325853268067898197998659738529972458693106247055692131395843505109114517542219621808768152909604960068173398948005450798595591803543427460784156136291161433582196240822147936390624162106414507314150121151414916012879546933079878604308111399915653064496742709872073756561654636643939778250812950920192187942099226216681244708237476734820557427251169468874060169841560335094093676446332126958687981472525932608671556912612957355365966345324421686157323973883323832868547540549714359702605774967458535557545331348528473125289815487776970809485100289937213127263004693439772438369754848014273758377065922053420564424960803920049783257045003484376882599568095066319300422237588204122497023278167899997616011538893172168380531310103090421684279136040371000392782144814876949094870424677673574043213925425498206315559608041847432454595011137759866039834858816266590712435397540955641259998928849747649961954094129544451427212575895065511802531671880667671890369523640059418940246122518609390777540293952560046600236905440654516624251465133339397895075534086626799199657701533316631869496219753165364833117446661608568922736889471943355057880215604522221386978603767979805248808374104743423784479398936615415149669184859691970645373287434238601360981972562781945279231223590038924645351302497243079183474021784538280366083189005060360910254424044090582372601244184022038224038325759887101017386657171712916005448028132042116487472900724694701643010748862006235622778195306255022432585108576722187634552604298686366052776842887938287023149213694783252909314731949934701083602295843850765957948429689427887120217409683638544650057883148577987853762544294974522011169812878324019017596341369752605242874865837334565931587407947336570454827166977520681930227479857766359893154614993156275934236785064656151575663534383961537171398236882209341977092465082790520838895291674298040668317786623665155659206112601726079558860912436973717148719592160503290224970945620411617902919837342999170977639807295418487778189549033422916384157209429289149787469570294114477970796267346781048646150394753872242783943306588665967919833067303339891671042740396080886901165003614894665695326788370011424576202977661763541067798141190306277545821313825441777681986917850461621282831659462826967009936306402380258124132440158178975213472984164287969281191765237807170167838550375778120453928013820636297137669310556075259308053966250875892697348214932421799906600079231141251578787975476649896380151046608891379364877262703503141643674784049565007499266480739018872474252971594095015473461712971040404004588653541619707741917400798357526388308380838850241336332218341876025169633214966926303009944508395666982743952672933231858688194049820958782751430479034154778814567884056805227980296959472628303348957857748518027035344609264664005459878571362247476771765761848326021159088483390443043861186648739605201967816982517641509835917121245617639986073009995680813163029410956902275608132704692225810843102348041935161051093301234520618250954218676765231957736094215724308998540112955391717573846310800450819765871812891814914096114819169054477110134407118765966446428858999179631626074601327195323487400786910028759275273263850965823162757864824385563764062613026072735495433443100128911560835637424938910710904643083959313244638090563054644021999554196618727259411478777155691692538670816415214504385584267342823069685756930353861132663262514204914045136203221639973924706863730641624032752288423533982265982767208148378673715839385260369221169236347228373259716651384760012901557150546577413965672606448011968872825145923275525983734529215555441713746237010057484740788013273976085460755845269675349369471399825196064852977286157030203190762066598495708444236037381134947545383004984118597498958110768915342117751402045771015803037425827933523525440107587790205541593513929477050351285157823763236801637250286921622776331366415080628245554758647565371863960839933291588430978171820931619203670040442750828139449474860248005904838307606767817865887599444413144572152074324676704959411551639787252388853929039850445704181026348806750488479508215674919763646501957845881626716530666405670304574280775521214624758123650478886288744735169533016561455957153756001579841591065501191502302730192389364153225807687566311675698638419077120578102676333262936347466433509478347188925759027421755579529365932077240538052603540787658919537596579483668816736260549313411504607546292140701525906865211778055507354585705838858214387575386571410534397829955664170042727405048526683577230804582819918693726441012113406012810271984151813913852119835694673628154228978833059812379730009015533549005288068102369002703616707237014639903235880636477296446552247291869019403347815909233885398240578724043627840357439272481807817618949394148230367793822382395081910065705226109392375625127175959785582061382394208884123879677110222649529688644997484362074808558666792354981628051952911155759327857294985093047823439548907943094933541049001553082275012415564952020136872994376879108565693367644634819838158749849567013613804227672228817138375222652757301543999371632283244962894725837307584560841568370258426568632216756031814276921953288795078039806345048633639208504099739176724036769341990545157043764897263521580626332088972459337231799535028997793688376261826976319596415915110897290434318944829007481486419267683154247042020499356231735418233472853427081484485432175147672566445981655704496814183140724431073846115066413353983112408859720550613911597943006157044569005591170190827823652383215282343654698859262870056350592249719625386677526356595041108374815067671593837080234682684983611412433182114305392808771080768266217741026720152311071751378282053882553699151419334584744486383147909100717165502402457057520569009110125918501675559438760092070861383944250451819989689187666264378655360762539882173583405769420757842503411816954422377448339208561822258910254902949222498536997059712212064883657284965971751585385838021596111826204169152624677315500658361433138083657757089274914589746284793381048228190802461842525811100447847160962598399625972320325862870178797097516302207845269322845647668963899133381303793287497751660286012840351031780249867513430940465591915377843056656798021332165672626563124602543266526138466656489720246092748944006773929650234665816116654323455127499256918753708942972567025318089103562157881311960431350277803740911869786540020915276705294384386806780851578272359770641021651270783391430149064076370218101402647893457748255366966914178971891873704606612837067750716744566705952124886936204118425941038545068041709872674908666908753962063298067082857359897770448338022132450505107399581678215375258885146923698775636113502425425087662189589611281896546843691607490990942579727066077726725191748102273999405695971430583943642152417336584545997176516465580857810346545001834886674036497384774391844844645475302228289904124717682066963717200233702949035912277709971205313548703126342935947720100995005168188951296570955659809677387370673350888437494141779585046006529257826168413982168508002191963916525432055129405112567090341999089693225607468341776568204875428998169765014453644006055800475890093985743099868208153642564398912207600720803468576407286297775347705251413348644728261832143950484581955850011478953260019440189247533332210716454178582354981396480792325116770281785337950363590287338446935680515833930275923665526404127679791425223418885320827262841365693152906942384488206598728009341141487879448820008416945179055495685335820755633078866599427645333799154616929745736879989402128090859461501180673878136412372925280882062284142750163631217293611792457280147634475691270492931576144975695130894678527764384886996888987910319903320805055239992997308830022615784566174176073864895323945924009436198711959402605085101452423085810384495396707137386759596297074201836696027142186436728858708804372476146073703671401322923828112813942137763958455139205308342848771666104112480536571907843504281543091911848745519550020116646655234585967403424165742105958308678074123404695413532376371756760536090072603981947865659020888892567324389280661436200456387120657060337993730761935556823025549750676822386592211996492401950036395060504482234709185317490494260754086136398832006492437058536307100186868569977630443148627486776301208280460503088493346156556336465393571647780360053486379294166539705924923813347648802457691899311118713251466674938583380556677193676720242594573282436230235222182230591378825065362122698195146598401572406369299305996428269308329172343445747483460443318694831422529320685564645946808556844753962367828137604724783021271538054532090180184059519783544804594328370137269323946012591451890028969694188341915966527974030378657417951051459875828427321021872184088383616311463835405842346573841648377293204115298363341541487810598697083116541065609219905203359262374333228326719421181480975126964398168189849806050392923589066941252556560645336052376866700051241307104547903237133876716547888246467882669419484702336020301883910738075374030009078846270791209168760266381232928505983462216588482606039392004866462586911718856613811646014182073146072772970634538979646220533360785041371251102841853609765539989776428815155881446469157007254043220507208507998125543927486893812418907893462249644433051972544709108024025770628410661799737230437634270991182222232941192721311272334026028027877217860639779255956938698319211129985815140277969306479818828091318372147894052352402766314997227391572125218549520697291854717343078702250915296776454537019430364936208168381979824816566800755424516435884863447319023401155405119026621390721334580029521684642456407092227862448749299060741935139126827428616205055399488830257285438694270175674416592028545145923201754586540629951473524512842165998801512796991801513211665538973818772084296846551224181830041997959637640243261008346095332943321074291934456696332581063301713519190752818832099745453566232293083163499683053246530431252019535708343645026144290168985223419082812649414632075876083346106848374525197663854253589296436488366542595424084923995727625547919962530456828268194060616288020991417232430539264694470748548138318063682268441342397887751510040661021412901137853573289459014920993249094213764283284463010995732200531712694262548293141195782249428804018044007632603646748795053611065401251403801374848925435657296666130220463968907808680086920560393624059827091644287920348085257460569909969375139354802116552183064110840232932982673730760109083963095242097809676037260415188767411694252747821785722313341367582978528841539769119631859447583511644099722099340983536471408739600494923670860453683924848925665130886393933084762788038952710156566879899450883051237455644738540116910384422095468540435037270217979689296233653740444696552085603276523442162306468264279147804272840188449586789259826353918395449971789059700481474162016323546439955254594869185906540441681415053068252765908167682557721347096488068475497840753438730912200400818003077786501234094438514906124388521614846079109767052854846823393033113285155517655076204606207816674227998487576106020301767700293647532356449910633177997193739815524388038411492222824739654983059058874562234560469709373334009811115700259001844191344285641436785537278133474180811771942149641783095579794540000905681216392503823572459135929093646954924869384568084904955769860147220984998934108176973567366850675961158245625923299968015224064192047772444096593683367073632420279924766909190333966505519849204484903906448740698147063673111956358159810307537266026222960438946471274624334402479272416288923014675894529995755600922476185813596521060150926518147120011524082184924435012561294756448381679614996580939909165261131714753454299121528513932398506960883376376026333011949707829578232865051703371228962064251187386961125557764147942435284465079823735850621293032120028664820473169546919763246036102847448385840275050256210447081231543386480882533762059483189748242135567238205096310935726412969340666752775670480561381339232410381246658312323560418645307438812659855654103473939903566772666870676631184376685306107583167862161299202173507566451125482910241620507412553336435419370589487454324357772962297610192561156676169454757137757142784102121241186556041974352436251190090086101881315337326984740258085989294439960068944213453407166626451113273979774137001811260128540151349206652451014906067396602917449035873740495676431965396013789127954829448654016290516496805845951444154295979788293714864203808717647700429907800279768114295803369784843355171429115809212472965472654267730111684854220349173392930954144039719504233337368010040749669291692474937305858551122323637708499054575087145211954729476403534271971590156444803151139941306477260952295074381443279270343208030519075663644032062322254727787875181891039643652690983640739750885962823753928774105214828158036519040150894781389083139336968011005790206999879142980793459667245528400547054304681923077247906869264306812777850753968249638949842956747412423947558284641440708098751970679502566314433676331129112669546730669222062197962749612934209235973473315270783025100079605238641549311400435558224611541872968309924654608717450590077291147617737658433281993753526735271641548390781767426992714362523655014514447785494819745213477475195773787002699072107075731836723789198078957827075641005411888568237667245939321063051278126996954073486000199033387401874312356546035541764497379302764723253543302553011047854242568253453945846389765283874846932960518054037614112570042182408944904956900214768558071973020663736272448422761510963484973359263569670095854474825403428984831997781220829415476243776084210597795156871831241327957396295714538724381815128297822349919947455179078582153710262617662537533485320964098394326456553988469233179753173336828583776641800030727851315638966104010295718585125524740979729879945908359721233126385323293551440518052543611147650481041602656748837601848030871890604505181665876599703979492593084146710722637571850338124012050896308893329013815757975545994657544482440595147201364978869398078258843405070758074249542210908170775011085605828693964771228231715598895969265542058256025511973443009935927597225713663044609257884715834489265352144949909387409139279520126431871262371902799910730762675688840529590074485050005423032710219004131176428292494023778508399487199600142720195398540956137030254994918728950258457871125608226308265250445545151842868912644875628358527419575793372748972936632366851200530025756159379001715877683989988567688763199659134773216235978410009607727126712018067431196999023754252869363724470485667550324895034088822384682214089417829092577563428582342701011912603225233434390809430206442625608725434858855609104883340771792042440389387761297933280066263713049679915098234322499954606271233888712831311946113888576321417687285282016515930435530974593567020410323684016603279783852251641563489528462725718470334122904015877460903879139619529313966559703794471468070992720091510755441590568130382145649424594696116015702937295430420148005871518327235969329173929222142184497941868608129397625150226869587205822332845084585891090094309353723466816336040228199165098116865714757421355949181992616024275738221365937018426322362504089896294709433334951950101432642844039555849592040081107612577998531226785881513229888342255204070352808883914429904097816989957904593516024184828452903757125276800357302921577729499267426005478189053690116149624878129661906560027012556193142950577589314039457694288661231168591227876822684462653630553682272397384900119129821443140175512312343660374970378827169620087317161071865201374648966689839993237483927680915367952615991010385804861806261442100719312995619655597016052698789288530909186066805302295961637927451994737336526216316311373572211082332217380990821624874799709247634662520971635146365170791400668576463354021200065877297206924866361060236409108625936458031065455960250803842021257513769471801995357615492017343760745626622674114783680868668053325366093425598368744014791107997073240862638270900726781882112916715991807055067601008702981943112250823287386527400510035261085464026993324930730017351371743962648269483012129747756531428978648471903277596927463658399587849618993555621572380947838977316878826845524276123340705847758788203084975550753016991736386983151984239907222375348022395694680028388772354569598395642990902239038686233919604308727022650095663057713426361945302551927925826771927276692259292971809875289944541596118134547976624220531582343811661894012898213732623112968759677838813938852086083166199093684316883357415951036563246044990620692377495561784601291694400770607173032032676100885338641109727773980524900305878533623314275221601260785540850637880084099807880189402161367403870252172998422629616880016368351130153684632449991595529273759952280127684236624049579233169521546362694583704652739633139268086098278880119141623991966547184225914673618922834609771816542610458103907732808739901441850924671181945032242515873267430156849151132817531218031791699125154290493281478454163038048836589337165303070817271101538153732690578398058863287664213611708116848714531187680647180131930010832224820834679657302858230623047487217397415961558663101438431713424439586474734482366086441291054601933413496642441666389091765356514084279772081777553540177717383861244396121713676134706826840124871311461318614815376844538873640869886802181853661188888019818112843584988536885737724445330105014363647883699983697044720684206884776882443838285806211042319374905038158681845324408407689509023898676249996895646270807398015759155486362143631837597423585515308811706842903687402414479637930467714597652907754470298295461232431276377638067513307487439603594141316338654255537636127753151059260253886567104247573865229203648260813739693612191269243569681096802477542722460404599444392538331079234030702439620909403280728370068810077930558733054592359644598028979668548082169930975602881723793614444658073662078770031776939016234355471545759200077986996089034556588520177368566905220501391313093079271375488590346817479420133002853727029220875678479942171887613316227570528450120315759555938025438891954929058529142732895554455076677113164825188569724939151581231533517721100546233367237331705092482094964440998907829390540361740346756945673401335888738546851696244630703193060055859926962350754919575277414616818124111234293521595817285164809238087388152243363938268111079711890628740551036500862102853512743442402742853339392543283834582234149568584181161571370682437067758529914734604037972490120967118175906398637531353338208243282446604078903004891389866011729885422437704338963656199667537443007516163770900894995876936621277569121645524164833918548057163437421754351390887433948837133512976300337314925368254018604252530999137775344744043524932641404193848109034781068445694259626226856610046556360461613344426887854074441041764225338899687458462882476454409875348180270495484808957190758088576361038391274423528183462537211082276212796466801977875508080014184017442702249837531065252893019210964063068042553399449440879348780137070555706111347627193225277959658560097569888402443001802881774547701323399006753874713781141958504085249620886887366392931060568038745276292064538798573887947466014870656381783487562199932408780201742737791557909886721713105299153228755197854144964701278172238007359965215831255949860659923121223149303149713372878735721667661113533040590266757124622834189879367051760937109727740274302452401608983097823942891559384927386009790698585464580727732060561152616416671766654583233778790760066588168782325945257708418258933753207472963383525499329706526264260096116074236077100024690390703499371340879702299476060213797180109675499609926728422433206097893888927694853771222078230675004762437410060180772735470502480731963537109517375760710308966222964147149578440405802635829690167183394316851285331872020962603275823193991798001991168966828203057939688537806282165583865123061991337365821279107086817977203088128611711747631106792930752289117118109644196991812871277482426526671514184630037140915987363594754657954169054180380107778689176173367532633406023490055329277109467181894846203845714090183174907218563966878035308794166259443884802958055893557272417990018969188758465955755956509843520855680959584560161469969767175952498616426953500480468487043943343176071828665880821457202327118583349658807622130692346307757870047202966951455647115280335870716301376166392464599244217687284666659839737752927450106309031521091570926755752339975967154444689982507539637071799462664560160049720077815795403088480729905742366756146568560868241331354013708392291419913773827587479691174806162144520102421876532866345749512886165590276726064944561325437012189233397937979279903634693453426093742885059805209014847518706835405532060748462089485388995790699024873230373132276882393900501705353736291841829222571258635094114010038504424061861741873887755761239215935911842232618058006876274122895377647571739770024575554774385266956257357580342772837908886622196856826818456389090791520378657820227083927865581049138397593376089247492618905598143763891453889376178913430659149245320099685362813490849772048232378474024899573503931271345955813397463601463065591158377106016254393428270169424925668607607432382954395677460164594960514839877646183015546293221811170709979609724396446474089259253447900590852084724472702088868421610737674500725535315553544761901159780037811079937163331078895793977307608403206139169357434106659982167409157140753113067278956694681031333017731919237531156449022651356705752144025349391905720970959109302620138029709584906034529944016536689196668771992602367006468609369864348943251514499426471606150382686125623329986595259755716762855815595152879981324549581257696536696668330514535785133072085469639925383222717953635553797608956287375054109012659263556251739067152374364381334225037341137677732762987026973039574390478427496525363375600924733409377360284671987181763572625832138898165991483777937293519491928724476486807686400931250155716944433403042740975225767643226085636932326762399370345033965626344024632224942841889338257777612133099830030881918806819860991191451854154725601366330595659018425188218400327381922097663097906691014920527775143064567773094119440891291457857701450486000120784418457506678886210325291002206238705614488659831664169732642717499790870194339163569460101090435507571981847828162875549886653973207032361997771095518526451636540234721156069128439051126496483159267299565153542536348558177957646227377204444729937701413881159019100624034516799947441553301737177977714789830495951471313266816998634399924076206398037463085039097705819164977480432123087479524100664980904917404782720703608050154984226402059032470097077926806472837144173745427121252957214087759153866337146261073474973248848580681199875493504751976090251416628289803370220995209066763932845320573557133105129637576896086664965889839982973221069993020006604087380967821981106250512049904951964416735896285655857453606888821765985008018734874380779902292790960032439899569776489380573129115916719650140204082597263729118566231009100101204399751781765071492192034993863278538725226945821922965936020437208897325624164781582046228442813653001171750991833270210148965768524731202563516351977804853525669782367699870032278403945123088266463700337622837815917587641978691700379358568946195515900436874100661747493637606631513802775230993776353306624426806834280644117890968554420783150466829619067533741581506284611884863136583123293322740224973215983205182930402588071789336036676139756149701272303116491232633951942929233294748016487643340515695504203411386046059527129136024624315809886558770145565137452043738348635039249953963139948154803875852728211171472907559494283463994427054749495172094486845912065656765541115526937801517712638761865152494036499952280949278113685796520279561698665318815331647594510620562922975344386779184052326066019311199025239573373896370367828394285969263866487750398156076179333440903833385282126160345045024553080506654106890850159056446016187333683990198907358837486182675466103768986694697685818981986095210190362464392845229351658727355246845864446787370786312548356179428794541806067368011657472941498402277420142306618630061101948669374415407318733391289068303711147411781841073966459641754536814927555655665975903758009380180526042043960676099645553107235585200367069825227212158218145358050547982385789657801576907780615306359015057721496018073396245234152658720685925476075167778990233230943350499922045098329682563678303718580682197973774385287462668647045685553549072460187844866009392061732022868084084787939346294595956178864322809692237537136679530106226015206895002659105162652366490849461294598386921615306983061168820911532934049753861733847083119341926243239637459644247099268292541498804808222364058939785779865799357735878242189403963955688885473960523524953813448570712215856608123836189750312302887653283993795196209750160936876136188086395338521960803567350523057233096233737990664746149104757044052771995327860410889686195302664147561237381586655124843982690452764359141098646741784360160535280819217821274273483050614727130762569489627031479828928291624809023539439734657498646238028944274649276447108365802573986650611017800488142146432514368813491214747443296140058468735215902811608882199841823277871333662323315099212618508677292039757100064560396542664302667760856260004666795475387543398001168280512312783572496921995206195508600531419755177942651410297297199085125413338164326417499076260505005818670836044544638864881134008309835833049532355331153068649470540522525204140995693888293379934609263350233460923504736396479531434292807856840169653910951242204953890661127889331079335525124007945926194166838069615286617487914447321344798925184411309453343856870313981995425826126117597366678245041858993491200926115414188683439087203798176853215391109989788603851584798176285723641010669385950731431631800155912877488718222711522127602158141796076148555345681627045050782246673223800065697626867468008959715535287381727829275785498530849439520781636437254485688569309983012678620751095786242092098768088343001897881624738081245003761434714040513443454326010745617152915655788203191218373812178498617262703841524384965850440745579778493678855783597071704020402308760152577063500131435873908376896756881162657644945732756718648765348594244262142122366494139502219936097544370332132479991924338458294911962231382356543546431971171560980080521958521689673374732192540746498054059238720262743223995274722159419152745782277673418030571578494735737003678183088600090024786207268121298604267624204685890702335597126616678279035142804476949201954125091169603851245174336813531717574398092489325239941731767091904654077388860303596441697599368368614923880428370285308766376810946426313462612607971669814112902643373589453029777942400853505540415401002314464382874319262735823093027567417025128623535683604844506384173192498463626966257195343309803960108059994004250360643561686831275231436818857388507068646619420829637846202832094350364067013973086991373190503433397159151570628468903375540529641772743663926508848504922108187857344654791434195201776956446029707184830880948099199962848131919839433360233544298115468882825871755831879386887404542402170415189005029197512784078279455750486789538386911286431342061916370311253587883135922690741735584258485598599429966389382244480783753163734534441198275101453822035736327064031836447966020027583807736584541202378173330729504750106758474401585424908937391521632898946625984323667993543517516478144715605204693213690837342123912143000597765013521788866723567804749413874419511265948983568985560806282983270513963825350987785068571848671787280687997694171349530872617833139548891250435738976577247296110198240929924132747670718720478208279867761336076453999085370441641237513784322855121152509847223921570849282725017038229493430766329093577970397119604529674124039134421480927780017443024189043441491417430953119291609909620094394074715130669971096049508033196396593467605226132169386958561173523233125037436871414739650380650542653594538621423295506652177416420887604308225773927250191421477386586574210149212648558747180262245075090078405807519190675969947453181401688869240642828445727716747865579193502304272916699129906811523520152139709901015977990303099015395391255492494208575960814506269795161919994957385200030520866894374798216670624167597989298745844656574666056246336647550076349679147015665278855937196361169641265050369570870099497252444641236733367533884511146232272102448493225433407004493828868033908334689531492496446696442450958850344963654242038908055677972074937894019601132804892193275768311171144842999322636935643715545444238236800728457881887980884104733422127258887689380053366139163868710203098744543508451050684884493150787157282804562076303930250681512661245596211811395375447456766864637614073293167648299628287992356900689987243683954495458130544897095482827916116600741974769017156191960750013521039977667045928840170413967366974605267533507974475441677861181674655100745973238699534914937066239323521892315447755894702213127212770297710965132526387778998565554254751238000091502981275132943286905725572131600301993057970318217279005847811778905918684133422720915585089395219133529284655757520604806556413832569065443274524041054542410259364049189480373569621706550874570346297480751828201121238723521303968412119670706213708226005349469535433703956584959121138512022819544458066003269582811845049425947373274379009858538181345320669331352398070504816956166796245085302401243391931487095772792413878048035781329614086879145436809003436184767202600420856285200623699092722906704756662523243665537961826674485678296597654719041522499683487934269046221198515171604054560887735361748220429822706006955533166591218116933295623507346143045044681222090865647719727542628712956069662181353639020877417062431120755356842723913208278641465158291714037818123279507589052680382062355272867858516539092828332183303105210683080636403725404905626068524363641143402397520233228458747870411702218768601709836312587104643243716712080824850688355592721339578822559508999480273988076202112898800773445863705328096081272937580492772902776797865389441648275220448842692886807730362965091963428576884967115697626781082205052827842154132414341954813159894793552171309764464608043937532755266638974034921796298575546051239854332626857543424909573546766017645387255618294787124619096478415928284160663774466060589036178991235083389002640070446495033516232101983305458421189652145186548292792388402293944341462495505539944088458115877174284976433148978918177357355824584112589821111675213809725863328731277234951999906761137263333689049042827303281707997094430029550072504912614840491801149826470370385289355135480484831378386213708739350131117725496769977825426102719375063780774063585983358661697152951365381756512904940758964116680821539493994916443556994368341271261114550650777830258472010438506168920467214498578509085479665043386578379198597307077344854322608425752404979233115449191488505633677417476252733961212413389647322771658667849937939362651651800723050465458005794119242379915626378076136272379572617568508283028009879225940874176532118834010519119756871966566282391952347433281429867525096582022519835919825660962871205301552000753213998959974363282294777009651738290522034703271722921275475828412937978381610347279694691579737365877352848640567129825853351459374599241240273861617715052891765642770987792848063638055869048586930787185563901898645554176895621335590330673824638100855110822766352634452405372913649974357658624127085193976045491759064502858132145707024980584686029009779471749324416925708361719000839460380115458812377593847116504223763687375086898823363530477686670286240065897152854494420093374463038723358427765345029875022948691588508830587707416036406925326314413649839301733752203334797939158570382033629965142068569308782281623720072673108739373701828782679006110083168868899085523124739928157936952773718451119259418877893546841225005405910691066977783684286697004152637041535952569386966950696257191696021234385577307379510154497389231472956525681121589565363897915869172807893663877208622443443548973157000665800096014974779462524612532856590771785897586681594128721737594730268933978490457770543509282305473424835246122816389254133989759696761695572782232778931079852585611791564520785734055102785436635672143835954418417872009077251236583437478832768980527899296078914842439145857217955304031303697284214987589508079126439672058462368379572222891771694261496810150967831593274851900228867029890171505117442590503752881990913280814379355333500998212774501457344874295479154849476120415549668247988905527258818335328055737315826225731355269985533565056541596344068333968343049530168621495665414377064429262604735975606777933765932144682976894388333608002099882193964153799612481128601317833396667080120398646997404241993326947276518870648534525796944790351248131907815003331545664417524696452927400839316836327922645718596926181728485895242965154934847332301299728022627742848035908941650869534327202258682078772000193231343755450751167898041598628876103178290142151423451823404035892971416542633234118907220025545393627081487207713614443356613572369761184608774523770062770080889055932201326932046839040971728397709135067441206229097746199345081201340028393379320109880383209763562317753250888775234553441377929037969609530300340597321487439222397504197082739644137017181626582244955927133790392382246265635665216562228895327609613853286546286421753335599721194236860870633921614704344513845627622354586183320489451850479266653647182287754328330334041290025336945796575357991245908247208381285904281154733825152289733805957270448646190478720356365585240104005583025965799632626231246614125504683332511296900169132894031505703289967676798190639665179120074739556868461588105650706254760978178857663946318641302775197218627468875682746203829165847754004586375990876018993320092252058889897177684357102554001995536269030066058721115842075883750099777963484095045502641694054422251658723197497353501437157325194796159918071775370295992243990283061250400022146529325284718280883509675455526376495656706576837715170198273066914374349727814039664977064418682975091371319146336260243493846837335233287387925277383036607943678448952850650222635946486503101501686430660034879643154164054042238271494107594586502557988618280157710613417245205632295760407336310610653813345675125774793661559360361104316579705121670518861839289970172647933139530187115957494765565363801371795159065335189539779090652521709314522860517805196143564818481437994487416946398226190302895566309221031597086608328728540027564184601961915407696572502574409692375843845453087216940022759320804769960942215235646413370818264580161037087014764661023823674082594967927742299791964693083562203563119007375981572222632684203860583724488042604409547620657683213022826201264389751871569491452274980276590525850446929413389774682370247280266000305588912705023732805130717658972005042658999976562613240918288482659451026842493225303077840598382931839412876615095974508839664390997393274656332617242125501643201916019358606890425878058124964720009890981454636986424738518133128888209927981462306402151411500365088321387243449932163671918800371953174193677909321716756474575538936024831275475717003888464674114505533445290435539173058887005911904166770010122924366856103184159597403984386575398025125285278331037891205814588146564498788639945324634703226953223893472055901699065832762053960769982550517825435657670431732964230434851861166645153895749056637938574167482409378842871279067062106139077426924752042424576227112943648241804498748753741609285233667349291094143925504822698105120535550320137824372557833579941340036650164014958613546820767558056744413362455509920418689524536222722326569912465000328285010424815898264208592788139096012456353816129489535282209202645103050236868069643320041961999931470363803269724792444166910436592265358376829236566126661703909153024442156647674244193955260956414861013620776717214467606856938027172533531355934498297593975599989675769775485298668171491933450417431978449512872005094837591248006308814653910924885121452448786917251278889788314347086134186262705228197457220188020493028153226328741983602191539568216629205175409679951566099662470393275159756377434332933149309302333864936798812581341235051832562978030669187784767081011309109232591690121853965917683264493592181055585083495603016126644343075634298744215009462285309704821242052532264163779589747176278696502320810998865942112786868170831207176853584641387720278461272826673090967449666908567146009802872275986762028752713180578914250921754641307795177517347668078165770805937452726587122510621485427608821172879512321759938342520488395054747700264236090532554763643333123243605386329928860155298793379401612923051843556544888864689711895196842500302063872994168780580518968605052858020791527312191435101497048532686933380100856934967916240239596521172254597105886898231944675424020262014938226412288859692895666155239882669321749125981973276818986456383512599004300274993391509928832562839442930467147838914331715236011648350514485988962116461628491590349949419956381858167797598433835629792495425293103802345103488915772224870008890863474228458561358474169690709894817644762491659362609361761527911437418067749881257335786526360179942475536699351417023114372888130408106590412886403849182263335323474607699636696121542800182182011563127668903605583530358866320965051045200676809547510155480465946910590887616197691046299187704499489790626437964640939693476942336987520759251484783241767657774846674307435577958032017195172992223717935533285987026964498604027376580135285084586829794270844406758025162623114799797843259963907150590124026816055894125017894884516141361386661726823065687326166227698381069945312776580487360164989884427560583805775660316457836470835912195019913801642195299486878784200858884331970668604431584709683113894501890879104120714540917662763503680249806443742402144603676627096839939125551269516035996894573873931927061029379236997186834305486272121663408731888264067739548274751259437912850677007203711903486280826608246367518187942242313824552548636112543259443667491128814078140278209163424427527495487805955381250004569565360743317322822270350195913602790339879245955511378868437646149251481230065618488870444442012307965264958664458835971125399321029855967721939601075206718823513422242772785414274369263318270863778095959286805354281343802452708577844134373219294481114911738791218463182352357766503265492046370318771299278049450516132201738061820616521963229682177768544214519004914532449078017101170027529750218358311736837940288259205997801750004590294078100498526423838069146901907492645440082250188237616494890001344086604574769533583152098437340090156074524250369867186404047795186442212057896487453906358305739257521106578831771203935841191474519991839814743065946464396419602297328476820986853690739861112454074287512863355509209326064714443272933321593112706529745941334179751002790757427072617069791339372905126209674680973007632118305930109454010527697636346474398358881556143409587025477955964233366821916258742969558825683292913405837446787806839812287203512711159504565725712248942972312490336754066642377071047593298383097436584733136536617327376398233520718853554868363489672934422151419833681100026073111609810583772644087493059669870512269782740626623021760942986134260889328488353383376297066145679945787818862058116840385866031462277671719663295346303021021267846464810941751863463117335209900452721183342756363788733894713371507721744470829047603696514547286470104123666811454767922419442115609243756110308185863233119560732119476234691369313044102216871862478636149752529333449051415977322187187742153954786831981275319430513808872692689702959778409575580503951007661793876269636776470734421889053421055261138324697886584256661017972206275177184463951230188553210243195010728085102216181984412214848082767294530264950716671088630056173641225334339182632314134835852216770042800193622069474630288861200524189775088357466463276921402482019784856577687850427161722080056933563824865470736129690817502031226503960072850195133614937483679500664090107728055693940487577436340445560692152906442821118219701745809478950945377708517780407036740541462841334935947665370582829988925421078685014476272606398844129761278094895567578692832549593805833227264613684905529855085177980679925752921862968146058625744279675008362655767033645466962837660434113394272963112023849854118834617674108656439953335097248249134915783009660279772367918709130092291041683490691943008649091901544612229447066800911273630532267023762934957788106451003627947543755052492264888910438492944931412017322691744703106279867645551861989612927794685039367755113279020160041198052891436410550585010430152218780945197918511117017306921090533196288855327924815564957527127112371962928773069418576657039524081874405497024367462799957626613385112163684901959240395380832092025800344993682083513196765858318009847560953624636586818378461682645538405152436127114838840651908358581886796910278949370852695705919894719606424445812440307514155846509394182729818315980159062880159820949627074066222277348103962435448378948683172380532605103302147634977981148804049359253515219472883840794544579913210410117990829674415597246598774688140245126536057223885317212095029152633645698614573941818691282788238869945711281424494468643031565402234312423749830427673921944246829081445334388909415889342258040604106298651649839400472257875717088789708602524920056924356008055712770601088872377087014472453277564573474591258036105077269497839366046790773006737275391807206056815983410098605179079529438610041265082386003109765862503899307167241539844476613691333481691366350059874385175435331913567073320825622104077204815195909165581861063289899564832210108111039560879610075898494601962019967691379700828181994663413030275907317935842384855512162136913166037018393381621088830047898586450677353578087930620717421383478209323636688477045838849031799980656377244852811138869852568220925553918631959906248160525289967032895006227442143078950617613287329567598355218258375998115903865759560000894129205097609347861530105098985757080294660708569065941321954327403270600850357439234539503436977171138533210123374168131239054785915128267153319134806112312353756059363386903060933393921290887878185594770641339739466322616323209354931735767374606538131089824220814594079453080432767861770079041645031416741551197311326844969226926868745227826364674318011843782203781667711593973653108151487773820489788170131106276638939228281928198960642993583032456455022040025615672489595741556561031858447110197302640293948663413424176823017249625870563764350925620338481878340635552460440046791577908522486704583742642378023714839327944765442605005247118637462922071537213688974777275720488560761726853081395376793422934520632029315738321599037373181811020119595496056402196678351733846803250044374146731878830193560981819530544369845574741719472289977547371946447734239074772719533844814884960842569423335474011455865745150734606170539503748821553814002259865531093961977951778898408603787490088872755774015725964480407115402393554731270795241596763072091664533589847066618151281372281595731642252890041731025279167268344786910819664160605440152409349062409312679344630073166797240324725642060452354521568823434595384922371992439459852838671845582267239633421366960143261385879593708763643673061086998631486662232307523332959041624989598662965397064253650860744159881015589226032857890579394202599946320829023003083699772039495546551904776999000873904019714265366886433195550813465699997144937264306675921123072411786366949207677048888795294752877413976262763310444040252108671331997111756519277565226779767592437078294757096254872212667438119031991042880489676153092947270355551267385473919327295872100246455863033197182747104676980827758460193166153351695568959936363267106673272158858294288169668576289421655987878945437496839668735974698349876687597648006301438379859078406864277055510610708882080634476727326010485525590072939005097556298895631455903077027148833073173025215787313193956521321307135614210886041260139415311341853027190712233058100373256885346615407299080347324485468628296554907328813565885936423586244419068545153674852050035862119455682769052898142520996252024782231466884030358015507822888637494145430537464043211868005254456843738079531457944815427367276740826241021582224117173534325335292880651706227701856635938961893974660441185277581445803316005187027902198338348401768195203602665868585477903289017174364830517013614671700160650751113506879984488906905156216255420157689643412571716736505814388435273333239399651937588780505709592163997247780151598216348470352261939658213059711810708222796486558105724082065190366598161418152526274603564089369775508167277188754985431277888825806181377510360320891313210448840854277168057467602740785912464017128011275466641386183351009037578100252288461309511400273988242843298571000787083359999489239118075603616556493527860539978974071650422959958851571774923113106305898563204287022764793055779000474892132605881558865950163123956476343724360315149156226351673412928534733171134623259843117326565519179488933102756453820788897859379624677384864754400892144427858825663006056477321127259593174623130080986157939688649347894218652987781971116258294279256554457143068588665315372836181430580435866050689813726455837858538260627894960813844903617274092333912050833567212192260633666085947677450124572623202795756780547915917326018158318383534006931795343702046785726216778267689818278425837153254190652226616325392323062681121937993605240686483327927951388147425382668737513780219629726578964334095176702593760410612168590979742085983905937238746380424337860660662255277140036138812531044151000790964190960816221290451102124212635051121474109041102620311827254511529163451414678429909129028375596424870387084053547707394052418893998115064657675190216779633049903008696376724023777446048001819528591131365696968057799508803206417218143829157556331449755271824894675276055081707934059521002012542819813601102254737199481902419480700777645028033660798626353318921448184559129478865786987524970453038349185003008294291008464299663671207134552123443185191840615852117318655026926941270808115923089266621886067072163310582797260906213287085169030106400880374592866330555289551140334826301538137661476932798324398219126196414003930364433290384814589648152097869408268506080000186443415318734602044664586763787898242000783229950695973829011679512219387690906680857422321779392909760921477804995316682741401568776012204529834236017284558776159794469755694773576699581546627850038779860674873152780162897876966822134658548945551563412156142500985898805448328156778142426457150045425285909078438140345743505758563555988528539612731234173257212021711892072423322216314125901133340171262326360158025548841237402775891794138882571654209840355467792319261738386550173557436016349181718291244069344310630120396895567565778035736780139755971136000707944478075480974232778558986968530167764916174619220164251153532213029469017251497060546452339052113089240539424991037460219855948414387846650370124922781002187840123469881094670684700152786113281192947943758958330285498225330293477947602587659152286545123042414377136302577097859932158356628929553774825237961243638659253150783566067741923762332092354450586219422548179733032384500814973975666733785171919134180103774461010580793398160199498976686300523363638354782886974844613133235807884762959429871815118080197015116617783797992761662022925998389078098232540492893864505595653222187606753188163366429407082599364281632353128869473193393119421047181784115734744911274404853823055455174034316269566466946964868246638324911197151968006736802077127418800133435947712754890674784550789833541797973060356536958413844246400009878829210607141750088562175039499701176396220860375637072984011855460309774319281116735739367578312913927612418270155767884913565805358193139804892349375554725849593595422691483119357788978084072129947149589618455729731235680049112428181216020531986301824837368191799254574218742778785327524712148292144138530101171906222880272994331453512211713011488114384907999442547275918920310401108131306888991540075139667835806835504146110672607121749099817334893179445144128478630700140290253780006878682979824195911602348888733715878187981867006214169499620268312813183339783915861834218851452672395236301217594675103998914806792150958183454003496704357694003561423549890023742280291397053867003868235936723786258848909244583717376742834251376143158803423806785624732349570968943314878606077876499916402042504995203677822588396352128032055575711639808445306026231811880693739644319595631549873491227674417092052284252346314801487258941885421428830150644936553576601330200225839224513538272089869498432160571732511971519531991153464078137489511815446309564865070873452196707604878164094699095045920850350661166448352370186061633208369452206601618098354437355799452805912405007066854160447327127586337341631471689617825905202359136434124253326138029494323440327738300502487339453054719555122158640028086402194649510157799103012332745340128239475474049860832854409074880421905320450650134981762443321004167122892564887323997527653918787663314552737671048007963005265738707805044086339707390688043911757221189717609310734952614298716546702957863890229940092990995795999618063939799065076496316728147825845951466587720270742694316921142649149916905639405654667483113685124609237983117887310642421697966874162000891350278113276961392888205515228239368414625784634980667233392674237419148480883105582530513042452208677188632750254298783748990511423620870635830720199720384744934427238796784322929873857318146669269534486514395411931449809516352198648359929107198154323664500482720470474384291133209253701071701265868282490784612296067782118888041944487479159579742612466571251132877616911537365456983546215934997658977990842222759246701843258689718361440643011537280885482583668869929622494607210881201035811087347476742402156360216989742693800192889225413416887147656132375348480071756519205524278458884019786111853945044002941447620956955338424020853702864165509828195214462209602581924231257540619908323357345987199298192651076584454080194803947510641192969515420391938536710268411043403139314822499094275051898859099797580890540524807900315668203225079241542375104033751137661472162627796042295932568647628151055920334009069341556209310366507760014151808902467731513073049611163343306718404163083721754372815898680120347793360524174968874457440683977167345817647677791788250046225824231530048710381682758583111547886140947509004988968723582857873606315438946010487622344675703389473006104142388067015320748578778400846436042774182506621325152425662693064275620336806804321864695334683057863906373546487026027977031324362505626728923693696360801176226641974412178463539589990629662229420894264610094867271503285357992322835700594889913315572499687034646244744917889416722615362946178354122553088942787343912564929964961329995172703434401438420348017690515887446616050738334158301593444762466003554462111730004169253919918436978751167840084781014742034079811437557051829127992227888991559537863010760735404617397742240752751154021315894720372555073951465709963962265775755673699444082982992599762976904584016178364520886713829090393130427834098452933534256142750024677354067527134489446224763367954101925988716429358208316843255002441445709263857970084214323523839103250227116558813748830271348350028273831509685424947600273469992819049904613118952568581694489824176097812585323437461107074362511813640316343724067217824399409149459937794351768101841030304356511740549131818985578433305230917285010628580324587222080939213947204681785732265950871897972724659220975824108541872638734159994788757137966182317400616383754987941487037881847351669700010619797057691902201108599693654381497504204751508247789511875905441312304965720205714112403855392161024688235235657203403128085601987218306675071412816329699462554423829421691308067149119900788975076946700162859928407992667479345621803800467290977152401189838755358557179097245659242559026776081811947834197248694399235953366858773229052393845308054322499275533905092852663523383357587125814711874502384269262347803638757640846071606371188619024906267519424299043035382419104151467340113700760794942786954213712912012489423167413249411988859924729354052434849132679577599401604044943701485444039634349784892005836290172365960714076921418278486154698423524199581220352286169839780670557235664339438050309066544521238491568387387920681738276255845970743039372378683625693034776296066275953735407667996278554546669816264427580682489262801188179905192345474835091617139688600193756803756183215433732861504432218149715098810557599073500499643091128421331288933226755457929221193104536812186632695703824189870371476831226019638258306375152217000320084715103322564664801910400001788269506649164076227125846208451736896762200034863805940209821123652973559166499084945743285736125417379191487325239596405345225491628445102481850525958500197084845712678200275414371633215341531531214748645828682958139329133305384214275299436367974667304106543865888485078555927983972385194408398532627018475032278928872954377767440978219639416698370903598354409243150002255985981264179451731632244135295270321874198385991119671716836944669483379011156191777041341955470274718573155591893716253653299398241832888533088582435718173070883901505552802519516932458324109889409345270725899551075578001355446213467272858182994268445753171081281124735800844053739844002408267136618185251351211025109418745842994977506504579149905986753038697550748243820455300042438605248057688544518369203503870956674661254539600460530738890581263436580586723857199857401467412030718829543289182947492579254452807627380006160366187021734814603365985076981283328580628793186466140327070305272899050057570105751602801051059224580895679061289749606551523808411779232310337088712647961457170880394114451806560582420797047394213491125872570684702684141956561963831780502541642839729291055705357442157745051113834297084377625107550588104398667205008315678298476637435297585236301020916325460522050374313151555266783141747119507300514197408955526055720812916643052699065537292240825354155118655350794973367169416071690556855546498588315545513621802400022783733223062974504960293856003294884798037335421583342325853473334881115291650459610742354725289945527537784371748026491344717933846608764971295437710397617567786509624721025907166894087334610424818988272278313373619405472420778660336485926456584904022687668308387936509581817237947815630712968191301863603956288951227603541654517119565780434294216302021656873683878839679714203169940969991897815198414039853959594957828888633140103713402510520795823709878431817402978229513391577206103532310143285576103119169752386340429126654252582441794566286358290656584195767302309318157616448117458304162081490585461364627489477184247905145908803348167941601404967609058760432558655066145435751057777590916198769909393187067470544837026755705028918702071822575949734270473941259995659566635445692705747332955044651192732916297134223840219987675312012668790095713283845046866424670218837045472175154504585395057308164423299202237127870424875876734150547050036481466319347830094417520842300252923597286855425451088703194318148784641873058880100078717663476728629300064811510903583935595690466196587338532608640292809588646468006846622436250214598140289035329885492410578820361403843868292822557821188730458459083884057067438455613479192252617893978864429401475460428098937115835361631247981546971491416131630902604502105480943218503348996545504774415546668878949406794708482195595292343810697829566717540670309620839054191177625401265294257585276183162292902417923633528833112797295564575647668439533195970012991474576190916085481604098220375472159601721536778234406816024694544090378691246149572471473076318484806560118505088841362746783884335352595125145703688440920817606843934559445301610777196561832757863565762430822312721727048787118413793695788120502671183874023482756843529861699985938199074967886358692699118177125407837190668912798974308455909406183098926336605316154440676745686572925272245824309445455381358750800486878119711877782603848354634447630195728320587809176679831148670094084941533095917149799922098340662453835771580138345163346005459755408359089040904436266124182666692963451096829727097139724050674374379174091128268198772602032294168414469994700327693848602300259508709592549779471868909333361194423595803869463630647264802812702807981347217143116226386063316201953506028032196583907160070384897602193152471957887722803030594424721105875614275189732389003227282837768903906048229730123818310720683947534271604442812487995821513809184752889778378607865327334399681047953169955083463337355467942995120295964968620065262964385643846103117322507092807397883763274888316271455335801445554037103303907274400542551521013786212527025411120663307197020287433678786001342309159242757832518019372288585761644989674677359775756822175582916050383749849005060274399987696567723928089387785687701135903103060606108558349582157609321197273040268011247497871711649257422240582312321372956528173008068637349516368545326569388728606649542629815319282242917694235827760330343500341146835669462560908849272014150119805786521935752952156783878281735186349839108308232482962003624248770093058598472467250479409554014167526580674394764667138063096115237517884270935266333603894183015398755272789742016948292277318424844930815459971299769387772979810061193759242476573386650178624865697204387455580064263300918066401981502544196880674398169352901027859444260168453986034383674798811528230808652275503813512304949918481687523772361976561648257894141620840587918044457582483213062256046614792198170073090573198774186527713168277669646054595953082698082421354123481218927222679795496216166877307224059965927663720342439464144132855763484670648645285573756191463375268902279869455335823264234061248504015212074280221557853193454658095210681198667124954957905369126341089786604449597080843924659106016481761227790828753055300668499873196720549577966473881461883040972391801782844899552821593624555313402839907828096284387551571732886744850908202627499043807973286397915185211419238041776087782417853266173709710468656267816320879171214601193285617914663992177893388716777874085475365015622492775828076199882732538684163897235793584474790403447897629675252014451459193948980264654211006388100409003724426271145643974156702540490389051634911582540139565215058356518183324462777126057514920805056009520987460229365557563414053432257560418296126295773305978182594261114989344925219152549577172291507208834411299697224583354441166977664487050102218214011295206709576219486321251033181811080111920475753659048642491691812583902426562741622041008218291404516961661994072567246149364123371796663061774126993557713957814765205284375843393090726167697675052669991487442189868477391782392280277632329818050559623636919821580829399038245670507760733384787614511388236965147325453532015372759051846743927679983764087279889359474768982818955389220247915194238281952578680063058381293787062616650517058965330910068495150052180418522677947854835936025393825488283083421850637033085942839793002979006646768462434271316996767560540408395228553874855773858338123550350923562434187304874321043809669232210315649182455666077450863751080336060722951554006801341771677845598584757667685823215376455694814559071406773210234754319678648388873308395863733963382791815365204286118500445984743116727336101779541879320176831714290210049372395894715886029373930632479420054263001561375548275712944115257396694550609726196767808358143997022133671779955275178603424508976407949418279282998924785233168441967494616986236988699329267676658170006201195713881966509950290676321222140969298644706938829256576429234345971532155748676258782075021062110266157476022786825880630326480378760508631516731732104475059138244379108598670673229518795015383264443145143079537203894363890328873755792717977337561678660578134016188278716067315763833248819332913246260003746074323239783417717515595267290947867821691631071855750686591534612540084502775188034033483696150664112124321078800675990247685750599293266510715482399016674877884204791402585373241000796760509454009870349523683057075411133781990683007977189213233582630109978826528549934695892364225988189959796273753919623008018412654407606470010814030170415511717866391247743451085428581973159765838647763911962371085149547648798990128267088239464327643790316369424661387612312778943001841315568450003739361428948334266524920935244887286145666501634020283942018025381909774098660983230291112268639859474141700928045397844254877679127657406917628895914456296258966365674393194571961826500641854951991793752175422213447333960913383910632994054997786411644762239874710820501882721034671764695510922227818324417103639354547250732673110792538925787650293830388090781373462862083140363235751899020637605963531586346308770503618857034336580847886593940742750074593044321495777677222925054514602356510104620490778349498778040825996235560072223698661895881023056582105106892684400287181871950458990998437938189867261497561486959797338136322558994357120322309981884890192189858152424874745380231382377275662054549894012021591885304085618802522427610330021056872606829736712728564265821125716442774228642190526113940451267603517387837175736200776005567670912175549983327746357798513725427790605738889861456115596175786698840508367023411554814809456418600680244868907288413260270821185074675182226157778022933735299229434773409229745571573620119347071779900459809234951788944534897885261435286787473718102477727340366466567495149611824343294247511916246072492889404683219285509041907875341767877900547276752622208169866298677503099355637633674684187726330593864444126637345452429415030663602305139907658219032489819361929024810469874116839031421051806348809303965902037233606026921366540792670016426430363021566157122281563788071689832615499058191145075531483385009311292590724870978488952533336769631556672812067858961204055588311059800083838587672381723904589576158549009375934859704418733432487986966030336594854832234908486311536629859303410239396603386441228961582720375288596588824217164019198518686310628213289955510332066561066247632723546981547440299528087571179838486668547444558124974859903599632500653088518343564032136564247514831686806516809537570761260312008228976743087413911691848413238978261282090280153658499700716307834947695680024160659206308460698674225964971517001040455358088034459068145302962565000912236403482000623219048883744127611046316781636328716124821625708115235848093372732080161359040657757046470891418593003365952263345428141724024851775074304006949931307322735115047534285138211959342547446727401801802938784731288682759952146113879737518680388841948429274005360631301071543452162960329025788127075893453415455085487951197902096437267921370412914422408980713570506204854706531483163515967438601509312730093497709078839468165923922117617184574581234209135310990515499808915081207987067762729393336218077175383718740824734734539810369269377097299354505853039462005375998121067058894274416668648112799918247768186660398616578655462091292938353819083883155391700814660169059480127523450220508038188740906002208939432015196191157801872026541883433999395951256979534732104296229153111204473774097583078893104262077864091077064374084344338568967044057259017954041229133351342802888217797544204076779578938684579978731880121436851905152846643678793931391971308433458715569128057928399505026014825546550740789168725391281667508550692978751214996383710020160912575879103147476508862410665606126892204543781891414583177299304526416277406517542109474732275190576980139631454633000990789799206885831308101682326714952095792815663778228887711152895032280722296066095214507116161997367853598062543945144285848722421013398070322274476538317597855412153178476176997590302052489912285800110605857692965091422427443991405395407522570268335987413066935236084921505043896941086548110056075144449731052898073009755601536433932791740162807436499694922168631229265644614072988612588231971831891510559881791378717856576731806573167646686461802108803093966834330408229998979764857933310708391410459516276493176197990529310680584875654825462860679569323747967981121366181629181957994643406303274558949998133539903049969295095642870451858670919587220281172626113784594642946218323785918114137020564547701387935103628399001220480204989467117982892441574726090891705446883342164380807291565117574417528105797823758045463299296841672246357978415619682739646295999624463468734769786056777576736067489120382502781789058208784292851551685594550875227178578186870711553640614681086691884637963270472225129829998319093376668124598206298335696985052712264264171399886928416780444295544752359071514601730096127240464655145552615200678350423541814823576259188408791467238811320751846518031924047580887313801835442875119402518068939065513023245634868378788468346575805737873530857103574615044747413890600278299935372679819566831773901735717273817061655418107529416215380393907510463787338097561108573783382762639891082444003658690881386093737637049390343235996759303464884805777311636263928184288675087735467291952547630707913630647523819261598375743474051680884054438816714450888050178430095719076476449635245327822236368652040177929661325244012677212077313360284531450780538261735211647599595755064969506333268801043557956691073831284683645666051071197094143954900983605874928741237675717494388159635606942593501910982475190449763735123529021674437106761921965203733787034975672087259580269165508320871155515119099808279102641841802732653298121856781334235744068650345157780783907789964562957275342956146436818345522769799815732963186339147770547508201670648484288482119109716867633108175282304998726672958912365996315926993927627654160510401254955043655248553084971449580317100870739682588638117251653505492034830955753500455242033685582605079530551865181995393817928933302620876000934982595375639800054530760969758575116697085775393738950792578207214025822472949635397880561192218069559505285155371318167011343638019573368616283881090283953284099968026885324343787461647953980665422105132334818777202207026416418576496866976968373869432128550358551525156506260799936505166744913454007633718817353397745814933531186053705784031497942877337606614694594934172597243195159448572328276574922308313953657143912408049722411534940304574263504712699474579264867985868790051045088235031364579156441160425229237794041188542528913286604493757343626477077542447020692655498913071664048025175022597753333842058489946884959719314871945932112666643227165442033897921805488172322110757014337010014582267912157490419208228266995512567729666096351049436301360571411769639198444969171637504813947522442167431781781457584924541890897741827067398319783267973763556325554677180073547085868083162639828025463857464622244813413298406064515376425357075763527159298647798884461848867027692396423618439438616312260853247875262458818391258640536702666431709239043799714884112604901228524929153842355355569281250017980207740175385563849961250861866967335216317493008987992318479458844045338015240276781521293664560768799361179371681384147354837250754816946507895353469638110281021669551653711927481095134517733043905921059591637017837545144431740745173384228995391525837637661654019529359047644791669166114268815593660070497541857855659048815553136165636818051698845977428829755020706257967698557844527096778598802487610542639152631943257015831380835259946641091548413043999578262367486381522065393773173757478431019778597379362587645488205474852308815791649565568735360846037210799258514279388013364092915105398397499244325200355642251738924697334271290238593021869154880960313812682097611197859813100548817957323679674925333419590724736943897731622429277153745772437915250035153722571820371368381264799588592838638974234390856580113150584860909574912438166976879226933534021127385079408038958992880473602813889996155981183264435127992200695635811892510967575786546803556385661308275369762688719559804240285781554736297483590311339670773290903174369459756847146902671713064889789432612182128006496471197968252140717044015141973153834515203324277023742845646402783206523273386122990786922851946733168910370190629041429440965737994608893233048536125304955689776843803672164678626181632030926512430431914437697802736611779838588485995701946086099036733617554977487022725188508612844920099163253283680283224517964203276351346660250968382596272206849143253604386081616192715924975922811652994708506257812319470832891608608024347435335637865009376642048593540421679240395652728220446404679077904595256736903719463726601849073035565449494214417104905542198028807557617266737902071711180117306154659372399164361239593579102683388023762734335642523933781671912052248344871749239600497249664448144186341455440480924613645489083666633372349947215111838458628697476604653585481217520074670088427691682994306652635255250482565656891165819153643846464810077249780080383049052754028893759990270051666009184852231424647436166097458897157852762253329697477220384200122274962768491345867214317220140343902894491465556843074867924061477603294144719915401891745472824493013883288377229767296697497243898668191050336902793054762578779017367529626190438122443160108147014966644907351762467202567998348924332306315586832824078743828641927481623286924541865306801069979468744767832252828126132608245983483996767848960059328844709797730628724464309744906692985181154994993871079092371153096809153173571675220787107812656402257013810870056666643091099205753660400470326664308193234251242331679040205653750514555744891592197860483749870869984170548431723288774347854970547118834327553115453415740992159099924592039899966710565939292635594782160662591733678653740671620694137866357499662661588242816671701250075408995052494003657475360928808226036308950464316946435946678690980636373219151926596155397673711153071131343145530208073188806860304074107177649403484161723528559664990022374243502661560543963729703860334565019755905816232498964496929193928706677066379136507408427847802224402394276228737188029175675969918755852476896320792958189879614586687028832225770817897412316836062503079001373139700836804746895668757515958465439313766003631232396057587938927895261051457588455685837257083958745213999436733014325215631558433307761600383778095953686515508170661496031339243570840016089967754495276093189345857897508917732113770948552118232924162462099228569903270658292519410919085750082172531740720699633426830515328228308625155046463426429179780541763726804094824193009384106580699461520678431736151116142722642918004591853005313395524272549037940033006149649372538211528007636434437851499909205633941416816690120804682964223377163768787156593148148160074782131356427896835058554199290099570002813927436385554751676783138546247999271828652720526614636759156291617150402756157073559795520249248022495498631996682258442300877018257707078528642644142050280990761603528981740625309919206712208803300378695236288386313491981144260223320524762050780741344915975234230364801749947785003032500546644898938457565985587011550784124092029415494839231600791949145883665019458467241976911190034260601699207612797766368103434446479119192947474363193048908158821675965220436412723632513650736579538638960938808010861835150461262380923449064366292656445379389050566413763773941972597489589547250533813093746543168013764366830144738055424695252786771605713364830451277803725265155836023656743655850784985962017446853640184204547027410424841453161256934227465731909450080333369064284875885146904437616911676890505806064245704095902146274435115732877165994914820395439779017667309388730181986549450677904772881066067219132843245169095780385279009128326524663041103629318032759674250976643628632586274540247595052434521319939842865313644259203696516404542819577620872455537506731115745945397016786928750888859093066112672954361716265005188118811947047072381059111869551681875386642271667133086262810704679909348260966012840895187661986962323833412944876818419767489023298162879336993200904328994333322786595407899797934321540919630885990362753536426091583028346107519680500086035872815933645730813379678685693877249158337464409581003166108896620841939285692010006413093400206547103769263245600034074623364231702751452124518708881677756249046272713294075856910055731346116160711338709165860224631452293797402872641375831744325276980958829139909314745364159016308744663614296080267330249269935930024415604080826877930019421114783386377217337508357832581558393266625633097163460193956009192956553587652986050796506857200646865703272526944817092591587501177636176857915944347968747524141156134419509524887723272474420414000215181576337442490086956731940783478068187310680356707458657559183149923094628869914798720791645636418299492778199426728344970255101161146341762114265206957799952980257724164603667280303526365719031664191134582625614263456602087807451954862681041233529541799406900053920802794375967793936530774506219511436117602632912886305631740775981040709204223802967814822784400022112945319795919662567069555197618394474271196826671063858168046084294568804498879928960385650186487449091057628719976862801703253081125586880357115223756832387382032449816597039991353551482208505311061443758837801282069286018986731854877730820059730525449849780427286190866755552702036565583807576644040345234454004098529849563721591139277572272920194655696292885828875492183237523147138008158873327087116085044973115978872063541055527863306856755658115482689011383919976397545238602519444934969540227492921558272875787648482233485464700870530321359123072214035373397092499137480193496428966015872536190367972803468182250673195852881179448178660165924417978792202687269104038966243236931127626812105664253374560465936051988903169855165911283766782324053175931176310846347866206827972846693955760901419272973405334829886286255905957939996191734357388882862010128912536711454670942312500558442162382699276420117642427461058492904727907895029795874627679569152240048722362804815017254937133920130896090945574656544961948303928983827012510873445438281513817506222834507527903561041593460058091089087103566669305792280032772491571300804456073795138917591890355098801277298356805041406664702493594598892869468808399896559964571003106540949262890623182143268420307207488236529954768958446904579087514484017600878104062551618985502674223459752395882624990168839855344616415970936363775131572016809823335450346231911242970586148204892181595033813022952122329904556671328783531185489524722094526401530036169083620359686026213425061839414844298693909087468411561773486633551565100795614198908165454573869826852656854659277115021002337044599596773520844218144437164499691974368961704751852612910587347419658658705588294043823119196207068656774866581838950121056599558796989381640311151028746467173463780038787602217635887157863609347085337842300721623651259681173655373594402253015283294916669684481485555639009956116517414291119664009178220660014807292016347776428606813511647032438002353304787373301377853030598335236146052773157674709407659639771302573848808894010773672566445304782940492236377644183981562371114991435084277335655913808139438199628999062474519986086911096928195423493535147894580684096909189482776182876078242028154973187733943596912009526273071510315907894041599747455226922190165357315174102516970944916990854393192303710830709993002326110350490820838657578942904274473367321786130185097510960135862906575634453953193202116100024940195822095046657998578110344535987946046580031906475759100062342139756783604427004186226735196861749767835894332931928426817807903461628972941459572992092811840990044686426861124283039403092252126664128697540180114798000666878791939122348811651342272055396217792723575437501506886136390531973052066468434585280879297351594778672685874536853441640294228287755380547249624678304318801208816264835834647359053999845545001545273366647952221868084899236443280379568381496958989499064699104570668804768994763543496863455934987788560738147300177637515620272525814771616605760672992582105160972693595604503328910111914823162982441712938757999841578149701971139702711777635154407657703975341265042565293685723689344058221613911895892340925103646173764736489180062198385423923313902927179908495788082540485381708824456040538828980143769663291499222872203836017249657815737592796503604289144647898116239728900743190833355641573570361212620029532983472312322471150347904070592966484577769025954074133736706222073082748166618166185305932990268877225095762473723854683242085208781456603262186721211755586282199166717885345848051628509721666038187387921531652287304981374392743720055283323123202127402990961337552943048350593083976317333290187859787088688819638849133394660665767187339535469158160783135059775861071282355732651826346474433025641531967573587693220219451317262394377194360527875436427438866198190710269693115567519462946144604165630236277124430575316889134451760763705972134133617733460504433908262584190541480850978161110790928508239458488134635968865345483334000982532784311420171214360552933159993824196334642948200643620915533453279981433611295571573478513080540933636405110988414960522697086491532082274998999490791669842919796748533222712570266340849478132110632122758550853650078568776559303481760758905039690013300461789435980219374464312840559963232770740347393383912584560414028840711430304054324413948632097157149521606529355160851518035225721950103969260369549625206829085680463535649623376107781629042719423030412807236428107422217760159654045559884400436362435278846366174772670761864146947378520210724085023321693257451310154701251023886631334464191098920711374814613516196302436957836587575665158410487815901039306195837738671814141904627923903689100413192267609252933248740559029111326364499679409531175585180841050872001800184462827856586792955470741654299117789380682597743494870425107924413803464098817846364209548658473847433981915015986930478715607360027523058096653248415013886601784776485866669972771779690918825608385460805107009496871966386218749458582338928143650599029709356794674244486291038493014862422914448453097589563897026745294468059800389071695999994334206077672965551317491826965069975027630012320188349671991165413259325859952551218706292776087993331753432404983661865745558543069971965771185615271917609035435958794785027611360180934142483456081721249836529759890052367055582160187218770377236277698582890762891508592220996025812832616991786913710965979274342682168388181472366104508077935387502973631270597809524514004094015385235888478631455843937868757035301511830205564925424958166658831382581811216071205950284967911592939642691482690040885944734432014796699998265454921372298645283607615918135480448953009592158725347608382757731729750424416434022685995900109090004916633953908585845219909026697894077324579996555353816614711964609610142102767160187332759731367802035176849697648950314435195589645301505216752027592062167223382462209673595420421866095057840223674611068464436538803491985988083335484265455710670913757914706740339896362539604480057436926355316567199974739895240579639563994984811009489158986715586548522876215562806036238190693807867909457754201688786259374305367505470054112348505357591561988475756631133807128890050931291819450810173692500286623805735559490650320684064913080940249493962715264013109826348009773808945273659482454345479992623861267535752363726392325071776256233677190440182483705820823083782699516058620280083656357689346022748203582907025871656613880984963500300921390451729259275815371133734866897500622954941328140594146030969585467900050747051935371316619454212983809325857266792418583578075448646280585982870285717440133443276740608379378535574694816900754495344216299615509646063597344123640790578006655055798541502917835433287122701361420962707913530199776314490150186845700231334002420998194201673769975344082052169813538561960594923934229325764004076043875677440809660554120352575097105884515431055600168533064871399152624817837022915090076434192805054785655102749349452379115144971991961137144187651480269825792919164952035133989794949885675947699223933749150216200202483886504692725490289044048946226418815375848988217082937870171540720408294272574984862917067941469835618353288991420023448896202043723114945879230464137977638784721611932731601636418032290560264959871653319763339611317788056091180916582889724110529461151634704802527707180180824271415690696776219542549912556599955120072353897785658749383562397827847659789623804429811043380906352752375532895340392209184760648327075778135564556705107407253432934843048469863785266573215836828281509728526461373408280274373421837740321616733731050510912788902312889522049714804427510472971599182078443445682630290646860704249866923026062496894384736297854630052157840709383621818099937188014036988842332937893706163361632076377272539816926425674872988432970197023811046902764974368606283360842194046960211245533584901652023475170786740466353072210259931059288630825380466753761588990293553750277469395670021860932885834165981938888191305990320050115115091455641871092998222230547299985015137153288300211525421281826188628466249064450187973355314472422502625704179976013994213070738343580721502615922822080260586753056087521116412304838898738330779719735418847048787892314806830326186546806935442621836189490334670453329217846840212359949785616241957573959167692217295430930457729827896724185988588917416737124989817978741884654781421871442969177254797795878327582887278214627927496911850496987130863281577142674697710104401938141463451483001427791333741644380621982362547307151955545976816060822564035595951688642231799070170232536052349401512450928436810218797415820745524076309005980392042367118860401662440560491563979164605534954445280169674152600463192878405368233494715444345702635462505121509647131743303025225686949002337407153819842869846369824662052973178222352700981313543143665319438916810827013980495455484113947676809574133827347481487805773173892385166220447874098853039363346108655993788858416622361533240147900672758108436787990740164980695723442600419408131678520463032399667321386501130842068325872766422733739164595389941016439018121201240362836430585489482646999523483577489008176744539594753709531026880348648745035327671005720136846809747093764411457837060233036929399201933299116363314290949208176367722957264804057718295937886406155106731488397357240385914490727465768060108962468309008013040444847521655510359279353280389079363222474787728742531699874233193327671371864479619091531340831239992385673599068575397823266280378867858654940646794329642527742265492800568413637669348431753901476116205433576157584654294736217563315079415508524333414381748293462165704180246456089953431002143550417112450167392306686981277954793873869669300963014113114588705216095244690230106393869025659333848872212327129996008518153339721099372466230709561960798847837176291298091689975597374158087401406050931209146207297640374868059357626319667100898516094412218034379956038085029837039690138401912759786071473128687281969980785334831845193785114687590328723607194040121213798537667891896678567206746242600835663626269676679080908987301654396834276904347252182593784905833822689914733350561433827992848718451329149572618058534396403541187419349763768236607739334652293764055160287436900940483305066272204756703324547210975990399682524896834360980760979582201839729790508746788023623929735273889866222552579833462305422299769948589611085858406000782026344053737477774812659702673870041930742878189677719924058622172436218240115446453090044113586805935748287321803678442698050868826510539037901874285928984629469089894759133367246256555316776520140099417578456379135334163886684018862927478881081410894503448283740187451912804799454049551658552104093702115745651812408104848221858161426734900941245177066469404525297077217101919284654779812641691981805762292684227386054613482518260078794129184089095018230899913544147897945144002689868491103080290116824032194440922043380937559187618438502832629377571078972722223933780753459063871335203394183373765938534623571245092214394578853366481063683665991948680782915355619714690978715072468630902646166989093883972786454329835954110051495485168860516721235957381383065699298026971812887955211921823337120678880602705269282347273134483514389272323787236364366293878012699818019940300421399973938122808492257142164844047926713510722179451795671638529849521234595674604118715734706566590797065277613064078934168609787834242662862561545253854637770470095021206573000297450707469526551783093993189402248446016141243763203734239206182148426810978135237247340332343937644757364985990338939426888201093992842541840897233171832015771838778925810548729475436954387548301886949898665042829881559119738755222940678931967769066881198413581964746446355848856726086229282453182463781669846581342257442951317036590219931588355754538441481346822046171763375428451560286560425145088948592257482659059702271766074316417856335410026998098740482744649351459446181714235811754650103447241380578303634882418744361729415588254090352604503969294366966847497440233206443699901332592716061569781930742538077026116132577187897231314670165499133375017310519686782319528198751613503328956962581325655070684679046310989223865831221069940634942840558027360182350664076656659280191078069285353115556314572747046025548306930620205684938006293060603284837580091962571311013643149102915379992476230718638045778432155014195827721472828596643103581296160525396810625098492553532848658006086486768429534820614142101984915798746686311625712214731300830466853826664152220241122204773915681870749893350643145396350864110438725894994242707992305271038410562234195083982449855840624174847194782686989265176435195114575932668120132722094219649914431204388043941042587221521720639979632574822898967611683934856010068058002728273319928871771000499353833469797003522156753624895050864206889499605125323754438388425254863589500002109638902358653037024772479027672512905998311061524488535271187964620011847182111647129076349399922907916561222495242808707403038186554414003296748396090161819752436962910510531214971316884576326372643302861397744576881837518906737182205422480622530226502724893885195151391541923345330737161095144440730445805293510077805231986650158052937583010206783241831340508148075711472111552095814431477528868912759115838966384698814318810302555405581342811761829720626681749441507999549073262669502795987564768147740227195966731639311553285350018942067593723755880872818422683342582213939174724671244699557163766929176484028530245966644569915264186726665711812607473399342830061713846065319939170172882136914574236289950209011011155674444380087504296022931869380140298067700113030000195421600592409486744498072644055219419001769905513067776316140787426426332180591920349463020333538123165862425940608377314955009163358434291024800471439503366074964816095351272739420020487727355900551343608456450148468627524982328797926148337928838625820894481564312185296798308678536497002164228629402615732216984396409521261487665438950800113798661200798553625012898249104235251213316358791964521077552863308809279455605964575499643796201993598078346141559637513657854557337759535686302300264256783273557020055178007234570195443930115949974144785281491673181487646614428148462620126665626498209811510939130451471304730572210546342575073354548481076108241846319702649409738189614788964992359296436525536388994913196852621908830703200560256904159400699529011810454539245754734382480421670066059261811106146278984739538422658209812913163552088221555157205942533807155438022445482087260496643209833884515898374775653215509185397964595983626139668637068655451630352341320080433695037262505720848636689510804283275631231607282763666572841832822805979925876025709525635828838118078955601170268595596192384745747352165654021350097221213703823604415366454947076531540492802550915835186968131308358464289230459629841628922626707567914689293974717129817003730688218253088643243271369665607025134935294606361105376620744075287072589691256590818925230144378610186891454178655242421238907196062687177801231834294456947495766597378909318941658421812391942626946462295285754522355233479442660386629229090048669142214006644003667309105470234687654418916879253995045443984620724410712182936010042604230973510740180279761561293077180724227032758013982177869101509380135985219266594268043934173062376470048491134954424800341842316699093109850119676619977288569769442498424057533944372984357685059545998187729573459892856167216029965703486310129509933594855636089783908250458039821981026239123840467105048890678521927572506736878774081549218298767224883182484852214430978299005896206495836634788075642886753768465826666611192752730869981897683324434247488683916749190574850187513658678506032044909118647462475553774628665022636314614539769450722293012240875433371214172203975716024925090933539255301046562437801263181009483407196569895971723565739138244119008560541646765676749522581319172600275722308717593276197962699133735053247068403866328933440841030363717927950789011315248681910199540290085028159859945951708953293464923444012911233521402321957239753755952568016329839124528564060140572461938312876867088473066991199364942566012973968113674003543865277780991985067012484083869973664232772575336380405953279880571742399021717941010132195473414251337011683793321150677514580263038440453876030746469522087578533751877134328659314625845688902296177297258332476941463573112948232897147315029066710655435006654701797784943577122932308444372553267475119745764288735339186390221476285393638791474476887784437916699296101629567106265260564676806862459553891328739360964107579567383121951789818442156165773289270932488699248286417865491057937294018828672863190075438724872777620192542676678394050355875582549274320406660832292536839614406283901847627188652682812452505994918998464480739179140469778565807294992696853356423245779966125635190975982844405024102738622742883576459797072177562915413677286677633720042173780897815727847415388630585546489164369190232173510078768334852538759435879732762385908396689256318070814879787141194631191447797522057490712637633399853611948438801136534662540100724077647058894477785213599712198693212026481229822830369540169931988861619264926069774562222566751676526405123060580851691781624758492383431346694178259801090156571125011896832598133165066803220200798556199901940015306935019274734544003979457490011965769952565963105435105753355347992035230341595463962284441342892907370710618450334765401006067932170687005762108475289934792657914777133059082386181528271744436323282370485271971457470180591951172850062806774826145530739328922792009503427701391283920458035671477431648634795393799320778148271502869187871675182802900613046395800069663930285474293574827528994538337558837426020663274405858559604809914386449322954145843044636548021523265944323114099862776330214039454697136717694033819839785028497487242964228389902572744421767802306780977790821048394672608135730136911312324794840959501782803416924317133702058208129831923128379865343927779762655981240082318503981471303676923161341914368634401930390212037364678818626561215968088036312892229735745475269840030277623378726069843948106699419777406050818867322372808421101479930711542229114354649833677947188322068890128225962615828824927675684528906555336267888174575794114089030761060841561145890553518840735125517575107889207298024929192834364896515166481998995454188762977580004608822900691610824662127407416943782972286616957271261368518593924893529736956706116843025709367517091106083609518033221539003858596260239705590897916697861169315341115912779585311362606386281207212411334050991548840602587200475615349837425121557975107614870209109837454413807557746118746441488667434717469728725207225005469324211553671832509360413435721539874694741378370728161046211701432468002542765048005039294479161385319176186872634906309174049333574964430518664099733704041888634938686177376618888775776537480069044104418219243055776238122155962896915382284619113215387043120572685402427079350329855928574811432093535290191320105833085654735688842750040776666092485974311815867989836574011179834092611076764922466674702119573752958660911107054103927740386266519987442969806436378997199864128143909313947430233493982279719378758134515855742858047223666603207838006684217510972534458250259217919356090130620829139379331709221783492380159933925007618619420767581211845987572448157267566809809213691250429343802756508705325649619289755289708986803269578289590831064613093128116471515610506990884953029864794024982371370266288389615572365033338656176742551427817351058628543637469618235063497501956661265080226500175900165269652633365915453822347744811043613418446389814733362605899760402341542094703917934385510595950931898049521718567688305045599265975267914906817188252325157085785136542367134800324956900720806090030259257346406063143336682083377141044008027613382826031409554084010966416630011872106144005465780375521639641156849305699839583858771552773576027733746890529373049015560288883905815935604266962800015551477734903778413832620665599686710463642056800209764667425584695054559124418137860079091721508405026748183337817571040678539772752540693062278559995951194277203756890443226210582490090062177150133206022527938462513428035351960188775138000046573410656628007950483445850704066677858488495894025999302483127513163910384022480521605903334483750595451751333590807863005178149483250088941562509348839634750310012929441475781501506803214735561801768882933261480113532549913852404479687790701469282877863420984606916006972700081308733151273331466424731119838673638840419908646066355284735845968904472714924953130402163560244583789875381960608142391096294155132487115291278149321478496465509139929747515931294855620017518308749169596326255202059269448978880580602484195128401305440259407389288725015910346511818612207152208913126400727665515319346088201705450451613797985442649360807372145728799688289452658310442540678488841161849006709923947512443175279560670160241518258228966022073537993787630378170601588594964074547185803628250598662378250077233990518415607281542193622935060908094181034990797987105234875953027461283743182799828022458883694009493647092807559645388042901683853298930709849665019167546451000398505465300273913503967857300652408817849635546033335523515149912117026657177300812647249026729668829469837276570861108989053228964969023757375582712341219889475257679527499273450593908264142221271612088079902124137098607839925345308846888083060211687837314763716796472783415097635694491263037663317231014075027710401309784221785748732653896340751861684228585990214699612343898397397073109650349063728995911168076672751350840755968509179450929488680807501886786328213846417268008883842445127098134369430266761432175575346644253364012753687468810333614908155678885205765485870953246383567607097929024252214359474233777325664676579858665853760370643525639979586811189456923980513193578180552500312760339289533303945277980086137162234767678628497590525115739334206099523487047499636977064743053972738385163082121571281171773483307450570435109138827459451487604640627564999575372299829885128908690176555641313039606824810572281546667129357921973342796519647099021904389919078710169517631717665184735469358376935555147026761117303604838922072216288216423663963895381920947432638581368721040897026449428899800742134287099937783452669576774001433274018287145252528693194982569522363040512355627740163609685598430126218312315780142655623212947908177583884082773203242165471558900882936418247299652106280481844788421254661959112841570655430296671382164768181719906165604159929490149363349924654051397699725733296308591917874977317725328977561119996550193368615700479075094175797852312673499840904048380759842710357924186629144100212918703687517888720946892631106214302405437498351338681213766969734375744994631046534789781289014146069350516031253215962198952318569761949722963684706429734448371634984568400842702194584559654743238850972126877092339343549922011256678328388454493230665966229577944694899190102551356763277699026018710119445094131492303372281211953165213661602787080858302373577479880741027337798236354335878201494023180018971986834104819880892236472637862066471090300565055812082968851764287893613710031271986142727627252988481597259247468546628392776808655054673118130040052723729169169298046036990152291244225644286710399815482932008415006285361494562881734327009745367835750647502259169199077598410592618908010259975944255205924774991544693389059739541023215718257982470366641200887956587439284477363076379324459293846614003009834590224048364324432472425614215335039970608311768718633075634942482918693241311151136823641893151814316095231223914550597391929989033823180099065523676669448702150773065286599019693687224331533981945655315824102898440136715184545517336088775051124501656565330503187608177248915099449146409521749845797780990794281560542852383764202229803461327712307202959258278058095698754585092800330703391756475374784936696717875438435549289930141794061742998708402483076172899420986432262901228174878086609334715448986323691782289655534223824356041100254735507410314677936017824799223877960923015485101821927755682669281950636751011646057926949945306314484982268677135802955384463754814721208684621395036787510608585451160853746883878861965983433176857762500845712810471661055680483329462874105270662782656134652648774218017219969061226149791190358510869634735008504965303083103984434665354363904131765912562669586356548774333308204291182183326709960683593815406181738888836731907864390917264916488417820489465101654222361016424136500904322358656014018153153416091112276606589581996873719417730483688968828623372155894345180490395919518617085177179445403541651909006639391578388703801098062107472297501267182953933652757980511673911206089983448686323659103897410175283779706990478872189048244597852647824045289485484477326837642937414158207430209348699692824421191879840827750632611628797301698354604908613426168580016335731868395872487224727826960818688621142440315573557494356415825494734418597375508692151527669949317581481945369276845092914798419036848884180272495693995135239074963690593093449551746289790082418216885769597524461666711726634252261336921326089367652375620192987386662713268970973594853948877982431335600097631573548980198720689588107682294675684570270285558791564130686051335459461373684638256398374816512847136099060559942468065277192479964829749266783524728888626793486059024851290595029017022400141787584339523840051091802985701896564806210359779886490855506363992029982259745216715337423260337647471206675568879337614111048915104078460468949977435492365051190363441316067930064014742907253628556396993866598995323028411478355364641774006265794879358220317401701564201936618165836862809067929355244367305962322435096735417833842699980472774980543632873966572503507487893306474005297347376096601981714314206663586416714216093828508503138027458505930593915601927662192075049715071670384869928926967003530499423515931515429382079512962731262400243909605835075182088862896414569351423166744541361469059802081109838780160190238621944890614691285973015360366548436582915125727091383662743868136052704479178580777143679532613007675401992216601821636937869650473539157022148920265101441800731188733756963547378601509540087149230829987266106746743807902587876729639321569489262056029783265886452463080101636320942989674741817354843917077866418345618313102321512133051240713305906507971439574280353618214041630775918507460548816095489444192793062621018275799421537352300253861085336709515017461078952425390639176576691348435937644551474874596508509483840910836137914776274379735992536138778737990794071448450975503940178566354257469722028564214790099363719503409368210545406865436651478152342524175085852656557142684253542286089516676603907963188100932251201698703861312630820119643988734584303165076575203263853735305961934872447933517982832157232063229633287077638502021356220096269226835411181083591742060001312021324481519711635127371974558895864847774828562198161475994296345569621048384180678863576834233921470634514188534725672015060113997593564411353441260253893410158879579425273163097126878861281312301771546815589565755464655463368746117488893021851045653049038674584391081348447943047875642149287336509164166008407931156414239811167502607351993254820136617399564283356157157040968738483982645659187580455298630210380553983549946281177500841661225574967473913006610507519119287737503886662457894439637368198574406510366022877179458842063031306355558357357156857146892528959957947057786957338787159914185788564405329514405695058413847917292385649840422935033533876880189748282991762267377583819504879658379402771593707873017899847595769146426855721004298451664053601534157732995658674579730447667681450442852914614672530258466093269425776179635868187229712268160581840193648610314377312079940741800413794541952239621032473242083943150604569493800644401382167989062827697738717261454760986076699283599844917894449399437070957702150817247389276280278258230115631357204249529090021979239302751667313363531451722869552640414108420920334525253528721049446409474878621739091310865512267335812289965273762427978154869535846257070785935833298072892054905043661099755250388360201606152188732595727312970689476617591249926542338411862213544561889895271538715259476453392480313573672081050506524899116426729232431208878349957094010854943547662086433543998474763399977986564800566711879929612824221322644509877432649721428619070349413069028817245781915576218313209315575551822378182149067733839668704463312170875652651465067245426282602826802141278975420775956689412022143446779183369127794067446543284724721352284098572501556088122494704998092228555083506028939825116285497105604082293716483921562326218731030996493140453556914558994628545110989764657627198217997882409925660631056154573924278802518957124977163413373104966069972811548579711968962475239880162037538128712063584536901317291287887416934496254948325751185449519059573939196813719432250544100262529959458306547300385766852058560755217888807446483196908870795822457702813083705041693925133185992655103007421157925421299073724152820004162740390135113381185034772139491523958500019823419238366816869053294557419525721535660050200893737863518145461788653947453224584987602936780301424038344238056643306577770661296096409132674239143571979745532882868712679047274896935527030907861102007583465514555668235774856202688483763008754988428887726576999279653938098526386771550811881562248543724161658488205356293469242724692011680857363313516537844141436638125271511211958027946100102642775826409150886070088040859075268995421135239827091241839581143934516134996831372920078022327224459673824910573377578964616282872724646563687712894208085729109495689629158253144015398236928291741898646968367849332769033525432759656542782129974074644296284416717834147851895067252781669279177655765172832686441557206314161250643146173543642858478518012468568502283262823810755362255411222366060356351394322154116944737918002037989586549743495419586165744816349047438912010689383044302279224005097216817838012408180769439803497206914103034849970256527529475934954029459836656294296393008753372297407857132527225251821962367363611419328972876302815010520110200681637116135553107084955886225143513877897843026813116590583623900632032313415904491295831509122521359535469646257636090826264425748898181770680028783485685456748475549857686229331694934569689560598469379190313995048535353965018797742933702844108603873306994137543213054364676236158241329035355796187767605353228034346891322924247033907680611809126483342488583107123887678080216330845686359109664068933085252349667839793985667105829178631541867220789416243351048783402213582651997949995801092515514491665801144649432688671441433305926793835379292829481004411856951315329725871618899865416737401429110930879449136387829367214700083854618835556525811386627357805965697737966348687215806958017610117055621026951559615477172532256023496328228477497416779848590550921663185342563319029720035490360690575611762026484497278314918424372270459920812531694152495102810560254927613666011467401465095844571925591767689599034733942864925624031662978985819128171609332719827086437325745471084849800257869976337231478875086133096476634163018774825593512735842256912508498972384440785871086794320980122637618688943267155617601339795169358174298864113971443620530136419095599104778759247687955788423785134653747245788517895982899986337141665034018279112078728948490450846971465748078428074733599998117024147132104901525182289389767137092772467949355299454539724562734337565049841471620286492231239773924767864612036493051679741995192718944833836350287377927233367358857890034364929800863875912715238006757167053241795413782960600899178259215088228109227238382931823793309669781902807083939444709968581721779242771235010233369862525021803040220115669230523812536659852263718901971272799411167653915236502766942861411457111852880138875863685461820731332766836573670555702812774079667119251072599895829909488635139287703248733493421008522617741091697465830136079357827826089094862555705882660470345208350112953700151030077499781157925448066537495406239767013824091209554633027543619330316291775335108221737579288279537570781712099834261889443278684268606400351304914049415119328031324167849349823556513470742213874732075049483245812156659588691360481023594972398842550763968734584646107561565464529194512370188199072892387686646093555811924464142040052540764319163603500067079478003277822110143020200014080781692332759221813315408129250807270585417965014962203206283805545993674857145432974735234163338932273402840224133273728545863730904737623881972550597618571673966133783499757699998441022466821156403743451262485473561207162836059200151085218458430025109288782098078830313990859960872319200114781955510157555506562150392410621007087609217138377288909459299645149961538377756124057569170175984228591255223512755346552958003858163051518995356708570531011840295896289294687017295339473079289098765123164777306105715957703701356070274235778424193541631943015631424170803706916403306680960423262465378430617604844276565647398126160670445432197767747108353669367338884104484248500401666127790016559423854120460220319393664039915057918210937220314123727778080872548082792847176606293475086215896687547259660687194541916167148599763741902090836422625585333982594136663114646233663555188170779194223110225680607106731339330786746968476192311614609252665423847729427875811437297650276046134051404194659894696337927980778341682318216703856624269235409914275804496139048957549784247329847797731137939722894731581843329650704449104395977645281216425748379408386270142132394393513091532097540205039855330683844240550909486719773586827320373546765044120785291498231327019739110448159088405558548595875302407564115825132811692938892486222666203739319747749669245915093941702445017095435212678681235122458543557252526549231908196282334261795503629672520070429568595909060163267611031632713966852253473210342472956443759151253087007557035260783426791776031829539252310817629575667859269612231955229590900578656795086501220420801895691202992934999597061470317885800435988147877139670655303959910943577353574456313026921314483114989943750314789501704043167489970281492630684529219126037486811501468949820578897632211116906394487615796071907578298505626835665787146640012127957355981419374306037239465587192778211915648611408223186139241399089959945264094336924598578747478401077425078084508603142715612361899306524549529445554709398939420783652866259039616332741338946434168537114169778876443739573629118584767828704969241370768094397885545769377184748361877940561508957394026818033067290031019341526715117232474092771245560307258291326973932013513704387247412603670876839674149061407720909907954901358249467682390685673310427269612446066796759448974954296418172508627955841004544454240022020515261928146353729589120268379174002820196189418967453302008399460263877909897501411690091458567042970892341625355092483900497207628640337243316602466992567254091442438571567331397183113197528718962264373941496941916888651537601805791653469185849335126861034803942888638165279576869661233170361552157777439945776642376987307414506907402828564417607721091421984904079394454145767281688885414389056536505867096559690211714440320097533295266099682813361463825315287251971100303060300156494673611096200529802547233567013098594924132705675582200933381401507253392669128158557916877660199222906520941940765853893560404232281063838545770948206800859034233823255076880079194279372109258513503357971621356972862246732723350990475067064531792758591161729932799739253220837595496208036743284363254554298969210233095348214961398357438993307007928589074536995703802945585483556425219351037479527651976794498510483679440164945525984525880185386491913234298000887269269810342984008871783234087015956728854955566547490536196387809811978255246415745676727557876440283524749667427744516353517960072771147628532108343837510948614969957007355872947877345412138540453495129615157927930610665050264074248002012820838344920436366980288298190383010222866926184848479360188520417708995627008446229281448849606539775482222955737698935174352634441676590275757787132180031108348124685475839366917325134594231092840271775334299480887481543263660002774569675507339518621998704173412921091980745677185596624553894217470607844510137877661786778596874065533190996956688108387890659159374277110369117845443849766823237444279540071853922989346778220032410806900336009714371039157103556296734063479367818037841004809549829894150965339281154005788455371770243288752433601799004102640442456411625278791230478055332834901095310813151974357071349957122518744517145270649014425100750726588113826467791505746584588044326944352934165511852623169393345060821354172529050473068191994567013877870673615114071014744358130300062930110216728852564014231490266763486653374665257518355109982941065085222493261723931523176085463201401315439221404872390976794539927018576371312895893937183382850967339042230762736535144437163009719467519661398969058673883383227087785247215163136892196170052863274321086600017880485537484508386524055362167892346714670197207512313961012196801552437547611913527134656494061485755890964024566281494330482531533643795025223171904692204380968675623234631835268880870038722819709995704472660681829970034911732376717775132223438847329976398578641726471466232422725429872771678265317122650513335768947682748896259165211613044563761410776355075737926911780394105421663900720650973684382877939121277775599877435476131432940091635725371576920292286999948727180013559089151293204474022727323761586429259455335908964067476285745379587767979457307983841106863495991233920516911375008157444826422271526788561783160368523211606977215034402726728400444264908329785239104968969973689879715914639936337951354383921380079596315427969958253839852226697841807511688833936724486880997451775158190923904716932760785816230470155965858492364888695535657631198101217945997126664139496984634178278946938363172560931000170892333833046185629107063089009384998852316968596568394595310680425651278578146181666138819140204737882074237546032452338375299041361960822548774935156117796734275261173690794481913665743575364819945455251764664826567990807130433800562240963275599335375183850810292425338130883872320583706289291227009763350456287615839978655027159364881033165309396336401801023158166233653512981389739556537591506803762087036366967048408017691671655010709465360211442566350173197908647653821361377114056838409986955206346138355974605921729908400277182084418758014953013368794400253990291706564463844600333943432413899452270106739315206771301157563979472715333499771286677395385335380852838463435240634704545267194944588625877116242170430459078378860827427585474715215828560851812609067792166828361600538255354348752685121975284799286436079893562193938019993541950879646022532302454966935423083948035940989847511361002127575077619445089465136856257900580332793913377453758769457329905701621428207042305867600352225436051123947739122865858859723258519607807184034443851064438223745521885984254528035557426580922979849181334479628583563565591880716901908808716142157165534121486292890101182698427328725017279451267730046830736301555618186945902748296207995487666062426864804873443022211754942843015726247571025311508113915649971280167591991436742149041750578033005601908727209369671972839784456558006810779666763351289969196959182485820475153965269321346880821850291106691136084001453231836960415118336827547331341572535202566945006325875765999618051278048959573548108032248814772168600244111104310968081455564448106627012834313451819825812911311655857201525129772733046911942471270037711440401219354579132105975604804131994490563460751922509739379106409377567044528103860012384364770270467489023751660538259478793589519530872350610636450647829833921381302744842900650809722460235909008326994416183654906092165428333818968802376195554213551919858213748087823229471808535156837081767230768831971802065564445725637728726535004160190490947488252059226211553912965958311340639609326380932096502990906806559462355139555082140336101492458826809816125007840329866433915229556361134494675142692074306841774449662550537675599440186708472496493137034685412582174168452449226172749692666332390459598003169428084172177871434990995858368008476326052029136152478631389078463407609231451798591948274445394622034666665647261176007055113532866314823215305390638811438280575824085079925005529894543374140083250027893724507505314935127522230637044169170224416049095013337270992722585806289531017296284686258571265852231506965474404149062363107215973289802681733249795715272221486321909435570033969746302876137708411357468655392835574749680803068056546309747384904148935426069086430290566148957354701911677157755882139076509067200102618429564745808317527066772590335366742124116183208781354342346156494943115028858343770914891972946115885986653531397293652981093728522316510294646622106449406895340269565638354018829510242476038749584512932919656403699998156129823606702061826781109820882363427529328806118592874885870890763433816893266840372115493043818414293962159025262431506702038652795712652039084541038576056579389231443048100633371047028561726813254950430527000673890297358808558648464378038876789582231138723863389629627727209989814493036248067008552325826255914899452261314532373077081209880332959260570527087795016983485788851446689390375650879372637055163351059611925871602048123512803447160622036754311626330302198267646550054305939002912233078198504311699524152191783485414101455748067619316897204337446718995272444540432066067900254719176163524592377288631033662648119579617107884795096208822169749470978299741607240762419160016480031835916151912445122198508411068676793771672785115778357093970415748087209230742059933952018398673435552590053500219538794966043751486351930478514249250547824980290504765539465358329793258845747923818164619583488597742344255542810513031899596598706808735723419118106694030104817386744332836958443790560525621119497796229257640858172563699676129724542510558421478884113006246710624343917072011708583394053732997681515631112518215180913895379624748381006756428100016081012253317707386722140227218799922158108981754425679496850824362839915755659880107628152544727654495994981746938623934456598482161006425082123543755432277839226869855979256573192423062413510358593940465522517109521504752998322744935121712261083841361383816962427695162105478443168881749081376936237652253608288933949486143910978999610526498535108156159603886436309451490705619149752578731137946026629665499539704424156454636477364858733869082439308096536678927240566028462220342155143094598546243503126589128617454603058073016795627698161058369181535363310563460128113825114109832591041542020744892961456247540685593333280568401914946376935675695953626801214263756972749098458490404722784762397824190238827588564880283026263319153727080102571205870865234976747218251550847503217089956148760780157456409813394702846647600948276445750786816061188653508890653064615268088784272387799930259120146742430526817589249595501560125803948078468485019608329292408291873215090859773039403444654476695731954181920508328703012211657123705924688542758298027473359026158837384002925235871578220721042111578833936446759968474473869706247004829828851302527415094434097152994914596857475504743527143720467216559715853154224285054483498391309200487374314453517666234734819343095827069856788327138192408579640090224563892404786982133478846197581332805317376764260745819439190430051737589690710598799466535087331403311404885695711836978343345538232949578839513513739361268792535020076040858080252494310055729415416325985846879118740804933391046454823597824122541121855572012241011523840508081997600453771521507403561042682832519121023125237205726601410960850392933587988902851471080659497362763453620365082956617875702218305490600330794079547626235549436381475933606322642626094868762816967223453371880271888218371812516606958092985521690434824903722219042970684945831017443291341940159729510441873270088105612574549597104466817445176866073279017910228693940245714900742249736995395573032656623281112386181336233641821505618651934631091274261956395704028671144294701061907139866000189287799398603872920283839767993374714017084059442343093697896249816708451575640927936748304172069877973405843909278798813153594987415958654849361916545334553490138766781485791051755811570533111262106381690457618454718526173474606949355522330143272615514159537532159512674413334847710603158225968250037344034735454835617962295761039984641680403368425491836282613016651848717248978995605959597647318952231898991205106241316251691524619686148537942646962208798668887525092939408365781318594841897119667524165103220575524088349992040482766153964678480302471666113750349530487380778681321239150380650035914288888326030774862329643874577232616785223018918787024305995093285179712504443975679503300104811546372510765501647174285584908782171214243179630582140157294666706724055487383785430918110821220962244737037487994354638548885151705508179337774051487985764474850131466356156735784806241235018403121656327255226322696125174604111787456880985860465124220796159884164740867379966926180771497550412458573251403878740118645626771354834871590011127470157408415462243693040527418838854558145817915964801716931897049895759517607180205312058138690606827620653096746243263340362478174083536825944476590482880267021784651080262380351516683182857370417427093064051048833395965182007318050384287862746074063775480461565513860511984437919066981212681271440350216313504068801603946860670751044859916115324381950151614273064746303411253544097712950619480201099109315127178758791371151447997771580743815355704089899597993240735509346909645203333182000528670575383524369638795109224890636157909654455303879954644410050033461661883532310748323682322812714090720623053446207023295857193182044464996685802713560279784034182480576614815515399310307447427060516166066301606228391752740264827071124497306031249885300565396493465559505736310463225156966346298882332529137840178737398015305270981383156144101028229593884780379845091067489034207922055241567763857592190871431494286201170642783728661213974852939947373157527722911207147444795891295291576620233977499036898091764550052812438784648993616948973299894755675414978724456966713066358601670754750870436858704060621677171228770643809975254165831641934730275663038610529655038360883829596965043315538996022068304173646178037576608747228735680007674612015259249970847402176850567680838065659113162781850952359745746900230257468541687979363329037981467387602866146888245922632344479086610042277519764613844737737655545165573433333402364374133444962094597560145485784388255243384542424215901124020767061019536090388753239940030036156651681486291725575421411147432838057612136289192411056369417671251809205833246168105289355082588776400832629035534433314865194649860756681496901568461071262824420696906637814986247456624656333050579207372527121957840546430155596542710388221658547749623952581316183600550527559563699839428150574453523930869180828280487390377636009638280722015143683429677914719823813641379758135336665866613355361442374457018734503746451012416679598337350027248945670234764515544444783775048739491996743982072218606254021515035943649595453803944175208793771809205699970987295386998042744584598558094849832046113183154649169445689147123381224337711707237071809255718393552511043989024337302360077765162952877624556901626031542579257169406656586478336249636445026062401451733414009386465063408137563454071919883094722198531875885145209737814250456063775505348428317507155503159305784532776142156159282663381964778853279450463479321084501289682172766866293475065778560060211042968975848492511168352598318222703867961659478108664069317955438958221026970429910950282293366555990584095688435454094812978701225381361120292724578699778609616125479895898235019900169707559924256644617729622771121411530968940746678620237737141318392869175988044740169493094837039903543380190752719775766474596018741397343693761265714298170555934215265836918865311098941058831871453852139644913303367840438685109239095039732226468950025311015158319362282674429768524265416901858454931450717310951950229167312604778050540882079554402765164710716339333831340675806279597968811458805127353534515692678798542657450704334745575786974220947617435578964789455097829723462506750751488562290925261855113657542557659087600009184296073537783205439192158069875195689338641800365192133459987233322200046107451669744260647531191696636167399777542006913349854212898081103397928501571953490631370784270878021261652524396866932054148215810076840406629798303643197648699466065021512227062535796689834602901592161577832624291012133175960555531138351354211891071528300452930219939462202620501707467673402768799060107476066860687948405152039431085255685063366606256584589682267286884904146198643913975858279304491999049070969261609140485229179306538607743016668612246916229992500843832027009503322642904848718526734046548410684597803361362001048036180875880698712815834764726628793661171647767446241073086694164124382695401551314980916642352454845451871042987941855647784147450253097187120756076558642035642611828428592897299913049398125761681012804061598528986866040677180365400189988986931406955685452087920663145190521365533993109114592205397034666442520800498176047712866749342809720221321927311631238266200714873663888760086644688768485357713728044664489881816115739329304745476204105791988556710744769241233907827701097973166014393897613194226348809445213888537589495620661994387376886090225252258099168392904468533552370792817012774349198196772990520641277297966135047030442079639842689726839673249696333058841251801474845952436539828861145897573615183966031716367500601406075044936069307069394788338041118395585487303318384724662467242281506646304505169733682109580358181084463504674421584827740396326856369057845897626027746407275303620560785637037879372691990752811709248375677975051272184638967622818326563641175169563053544481313041098564549240176449228404852311394007923571386216891282448397717151303313953597784556460756364304277257000137092192129421689597906529666440007354811260796738399471925186627018827289404030961822913695039305541224967796418497017209241466760643818800884118585570955916259613887590685849322912267367526271332756404295435686768118450175427916529798214527432160078179567093281979519213650821491548539000958520553222300393506639923496190741412457338338243132641010520236714743321948778096917756211982209872355448653664150955469252689319355630945160361142622346275958654891302528430232946183435430097577021942690135419582397045319607733373661801264456088622194368564181176367908657530350560543534856361758662869994345420035651733777839043922717566341385621965213126438641679120999628229092635195463068254780431856137398903911905519736574799983271853506542191082580708857702833890757596397168608394282327827215082528013530750730971463766614013008910297876187719355555286684290602881363393621064702502712789033810523866419773182245707052089986655972319796031655441260111682498398634744187471978219160420606290962406368946571460041628428294845442063635317827218321310590807529111390351890714131483833176467439454358737123381512277478007447104112210000098677478060284078017911725333900533042228238911976903249574609725027190319079862600330497613169598980692206771447528295057628301965058769883247524866635217404013343326057401063234060848648344535078800947426890269263879989317146720152193802224047784128037497700138883163191312074631123809242123835002429228466319901383511740674620376441592446572986229421485190073363956807297782192415671346518338903426025185448550362447407079812174261941078529762674897176482243052642467237398031080951693334443932960766930647194642813841275399863945515235924097288221091938422213953365976280495551221762326503978866191731910213539183048316240255156063732258120782137262059452834806404002523801546290893785708030925635037706516950264419926825040192151948167801033852076971129868012587490940317097385862438136799567754163741200451324033932980884136678908145802694293751829565940999453234840000949715140282957025147846256913534200123665494842656505065279938422704930854892051692201280219055740010015613568351681001365393839962394500289413939506722436425767850064820591012373995312321149098829811893261989173278986086215001840683562343473687867833659002599371987999254478172762234135337841453988609555184299168161362535167525185911453891682627341220994505458403287560728044644161836333207190822188295500775037687145204853795356608198332423452186801632144877195657852102523281910431862035142230441140243223507542196135924910634899385511363498867814403426558725241363747935298278001608127121899228989290386695977226452350453438568352831735022515563446825072046290893705697843086272107029209527920525388646751271446592525424448902364415251969176128192598180188840542090060972011730959943691767682031874010129969301876609242934470756995279389266652865392872715568490553919176519384643317796428601139764315643694924088336687110395802274745523554124888040017109178105225876398914433994885091639488813829069122577439262474592464727399317280632653198495128176367999786574927276700368702079551336216925690885615090397801926567301167520359587503355465461027928240233233208017032170035637784836683165784117474588450364472974984724293226089031497838028481991031971616970446119855256129545652290462316530802337918905894237750085064177949199892190389311974734868445701869927061012340001702572473515012747395995355583621159687775239481097083882654299608418424039041304221807447597736670616066560128478088906271358521871915681752799355602689360380777417123263037805199557698168756049629592703680557188966212596356686278426870032688995172526800006070203816438912506124308737939570158538024898130052026318630574824122920357671166347314711157601861752547647261015530551897268274963829257290566009926832383495339206742921072637632867576649121755511191738874995063862469612941036306870915059922943890039316502750368293512677649521695194945632905133309755787062079511708118984902033822630841708152631930359960440156094671799277945002791571087539983560443962125518259033373042805758307956778408373847818357212151885063557358791344989795045150682516775038703403383687561729909488202736554273312548849484224623891691853745390028908038734528589376322662425168858397892346793024457833314402376996913869988312685741651054552136294806250819140620448152943613381611572219164362704715578994135201233819721119199432119211675173787725813362465563137190796199686072073548607338457024894858615834746668043012030083429463570440507003605253013986433670226996753518112971566657546256294621776834997189219336590944173905318653891710675643840710162919460233113037660525546000154627362071262485412497579074283829689605002538338990249329337549659249102603569611977590079334126631546557575005883980812927946618339206663093028058152100113386785863094820363860239914735744967176868236382622551292004538942935738571829602079333604467446070258167252893873595306503746820382397747401845665889387557880630774077868162567431786998407546761136528315691962172951928337546315188019433155339688362691670816710264357634307249910853147058895770472550633017327832023547191658366365840431360057448277732218246176882396755858457455596882032999323858716167647672521777446390690083727174979576647401302331780951905636329630025251843655099331368382137218393105559378919703931667915976563883371625730272289002077032209916989318618416848899377663380519055869016438823571130527239862524561721896809043662725751200065748478521401789878297957757605054602505936818324638619765018524169084252877946155863222263071663595708451805108255115695816598151914760056179736820742431731868002698283064058249436013750150156713485254844604779225841532451728683085817239181806834887275394102759282473755253825756663115496207203760928016330186113718476651172858309545913135073033283705279455686874943056951934323774053700624369445556256862425300189999512076638124049481690845132800802351279265336731912798802278603709815593192453684422321518531327356792970238171203380165292709057264012272189485136869545067057807293524474311146741711900462814323279811909211784616563510246366290285361444975344971874312870752428953041738623894969492452410879867418787957591659135247458758859888650275084776234489892375450835980058720228874418978461402538470525972969508159012672486617837590143948516569794928351123802915361184258199124692806792353467793110079566966272503385552164788545290109067175233231335126046234879576532549842112403501901697975718611854150188623567599204248095315768910243949101049747409182222095683415879764791386123909876002084208429849433080509454428935696150228903694977912617668847185954096821950160616875929910242317245077394003806469489358103299130065378703280567213855915494506493811667527637704480156788770057541045646597620446541889141124930794172512416688952514759790888862057549028849205872685461199297369706555793504087658913895900117364265412067899626818006246806937895363726260469927704316289102533835616119389400632845782389547471323503542520447911507431108004778580965353739540841106207350310407118764386376952180520072210791624908961934718679233912558422985917221179114447349269672175633950192578616770987995680861616586420629193431293675877411476046561080021138069890981319157779341731698974246272646370615746052753552849458019671161684569314092170873075116383926429007849397928367998621601527956952961375530713706717332987737748251026160786310162531209178144835193507596245812555321023305746493072274262834550624213846085708474301614190645455643375177622412370034401476282275128375328893552364903989245987758487851521340583478346198014366242155186559469331126770060637708081232561664182315816314085912870773006737551151250907532400519643995797560947454083413466872436984747891868424297238998343634212879188676102818823417854320754224332521011972149264649463304095601445953486668353248138003040668072492535382788837583644155088455484980822046507202425784403541726734742809193264190764206131913476380880286710204044848997568489137726726908996677548698927464870167027024338169148734464805348679960346822952093380077817976982662758911414221168006395674236130090479536449231254312745783007143628548439944418369165444088470660938477428885558933162657128775407539912936786675283994982157860306957715271746995515605874746401631865824454323125065771998064577223621669969458632324946118827723844436993468269694716989764567365894522258067450194481127028205151123720215296397628548218331584549243908174578246363654685055666039421828504595684972736953266766088219490354467049401756457295003986302617367605265627323910852531026820272945206912056193677242920908470821989710052343755862390511525517449320246588148286459285093939306223485413185414783811911821307368775602440900500405322016904962805484364774774819893355087181035628349060610930240847991512204596460027842543511390793996115598008734401795697488493245515650525816642380993951074437878029409787156997933804724397879942209768953325808834032275961675776578523148606942351662211163385275323253197123767360383991195836333005539840547698289656391149374874802181436302486637496147827249444069478670752338033217524730827034051877435034888042962531541631608660911765625283902887840646998746343538606131114599623396311114482735766582900536752788295452424609772356578574491287375284795447318252214843810449747884869757220499603120356222421527344195099799798895378686920729693222834083624143044082387691316210526133447450494150049998529780738436351686095659596469047722094354903531289501656366238320038465947194586525464670516623326372191638190109820210037865689741332503694404269917949510559816372816213003115141245282325089852035013705673884328789565393014486272639412156865525497149065545203471307012371419746164548297087864489647498382689518249444257354544239727631194418884775022794631386082912154796944139470568307223878116326928850784010489071194720800395262512096459518627031564095546980907746371824149048596900642958943285143440845314657789206004210281852724060446300910901527899053190462249816551169258750740616123495301884727267863666141077122980531219695088831775519933048900463947607567108384203855388739115366831783108029162872843911264993236021005533140544205800974710618185598353099339616184235737444281412015626595157452144338103050100992363726488090352566941387179643218172198825355053052870548518114545779085735384959563638134037652850982372640011829866905458769970916899469118028810780731135815727739966547953148057545951891725905378372692631776004289282981872658991199534781469912505325927502961981117730024944224687717735447362689419911712217893812275902789063956056169362235636115397951170339220370145451632125564837856234197287971684999111016619153692893413199326776102589321209657106864104941974701260995603321286855807127615359552767144227509426094172676910323241390387565212410091929606654942097127461850499584796872864337644613876243611349439606894392304571314407092648175905924823720531241718460686383266780033925892537386974338190895168454512894701544468774267684268451623195345807447177946694888548510440141331765170485615189887266231434005254422068367162341748071525001438085475539310826945616111345335887312075680672000188747053832152277225927930562698650669058480578280117142311658222319159065022777293786260290296496878728180954682435153963060299540274079962022042328697776793174506044315770637822595226949117806318485496245779617534494907187881737512169337540869932258040856790517764489068987877918634433068292458895270950046101449958890388136987331482182665607772774131284477570457865971979428108443077993775265475572063575324538735903979192918609494323470996993631473196984749164638958160383376026459288143196054895586536813056268916452224254333542821728127759710914484077655816869483192549398112597338000270885910828500402692133397729968159406062147090532896511353093985055100356000741041623483649406566689788343021600029507970489699448585463721381336996282403089434903124114738145647160628101270797112999775050310305692837587288566432478700607811913458117368234803455183184796675791712185949406183861877234982865357892503349049466798592872907184455720349181828875071273609258444770920653517440177305759370892301451505058960749318660974185854927209564065303560929106038482173863910250163132112526305433662131966069151628862605381163016920042574581724623757726700506079383762153827929192048813441125616195391777050043036270938652895781608005344910031026042411980096319916054099512840248411818208289403777231970787476405218193610778765106694328486858778473521362973920435245213684113013648069682503934200480352007922304715289320183399113541318737520926835531362247773976365704825284211072925713633146673804915059275395053576635151199931132945974342473515210009220002541912291938213137185453346857884241645890847203678058693431158572963220418111744470714900939951922033936564435040651717938220545941381804643014553368291371658698871371266226220138371862941405054879147153309441363128162179969351820765277361188106503064785760185780574747698023477833925219709730267689309870472590417934790862561015166850524904583799358029364392289848740716588430132030967969976340501498023570004122284474047624998720304243028511414875899742740060860197124785436812175896813708262838677437058119194328896639744860914928031940667910822385638819634162230727619528882676767469220416358609553717934259736706265846156905719173460804579892385786482473280502733959295752664178336305709812329071457379734296011258244804203345535610754888142293463884967907192276703338614012766100385800569887016737707137442767762848278912261113282874185900626799031980794971691098163933534049753083951064221681281463125994700471019826813020717568559151275881412835457625147447357033460322311921245793990189627022801088919232806162189527773739612471408921758731062205503849814407875946481957297612651956273628549254430364069268546446485714726649812756889303706547525821674130316149076680823920168616910159751926034514775404094381196499422538753210631129978862919699963820627350267443423620589555799582293338704761980499038032947848939761985600378912875236111424233632304365808685181593100041522940871626630040931844423527372804131500968555836832311300142563662397918824456416843606575133294450060840818929803671403488424358219317218326751468623628759406608001416774602104251235646662886373001151040830825141373793899833066910013843987525911532470508677223337381332350227720557856158648410939354367404695886465722439476832444565199681274802651964239534282463678403028639878446908038249684330472983160539620380022335429425433654516007054739223931877715238982048614706665423752334231870382557604105516440623249396636547115390965814500947315880874652268905667922054970122715335040673294786327414959654822573586019802440856259412388492338753134907939754206461438661713803597909376452870499850587006944709837111518584689847516339782537979342989647314173357986123368320424733816847381761737427946489288679589926678802699424873022497737941725590036580811400996533671922119500144323197798675569233614275011880903561242461153557514318459577554131207797417720869712672499352832136376675386054294986235710502033904624228327971422798873447657422235205102891111389466391522075622807395899612578705356051541768910257889232058162881137092154043802471590809317620031972250334591455842160455618218272243919539970351565502433783014401060581515511935127975371113173670407868461402834376116952218919823904105194457014075727418422228889412386895027238139132589633608876407996535396608662298275862349247430400851940450072362647324276471135332567085860080341253549502179455903142975612724710522278076748583153364711081967152452270119607622853748260432534814551166692688575949712900836329279079890558722809137760260573205407350886097685498588032455054625590500879694172872613491314795530687435341646123832796142142774690604653438636903723652613844024720415856412815301076955014684695198614910958886470302278174307777603796804654203789295948507655448483334495953184427070641975761029289126732607710111260305165200491123984165143201393655060443597070223359852988255125716244763751694403125300017946043777987621589833984241284364608721645384117855410441367779816359141204366788777173218675487597478855038194103712589348409262888015889603351382505897992181459149916385935307504238197996287514137254309450310354494109880645003660325532694169908269086206734593617100264617249872664517628722890645539292126723690504377318396209466971985854705239377850246856649765625063292935550538637744538186976069230949657208235363364578088975206922271030595002476488066066150053119393784730863723823068742400975062677831919519822121224396594710863108571249958496803095167851971965780667419587664554205200628088229166748749876481744172932494555306332316383699183355010737523412468521863855942783862095147672005913038339556253051328256331361049609714395575458111599354491548249579617480839186671382461234367159974929905780260835006781414134715086030932596534652036751915303130564260894979919347231341330800546127694861481830326847375722681879831873880085821717707356339326565462545395906369269909854351236518204359002733261429696608121748765814210268468099730622610377275101874310755590138959939202513302297103984640045907832892565541031940584425971333685238225190982288232770912326893818274013317546396144521782937787367524803899976204089594978977127967912565466501722503922713521728861936377354414663550065801988422615991968040942944783667024472893541388719825573655872189608221247436605514270728106562848035026225500037721103111472903994518975474504594822127804553648646544989647736888336374470358796166483132613246111287100385720510505806841377354991738180594489058335994911459528324763330119523349947917674286863945715438990978089397438046599400905728930275373324064826623052414726872736543954293062201111207125612300651703970049452133000520551534008961319166330659236438112881808801717786983770781045584064805885783705638555377436284679667673041303275614817077461538028779191215461035989329099492575929521009739519821899764171986382359570319080341478126998253860564550057936247263165877766305623164230445793291523086615323946689265281943367196809556366277291019020590267797358174019037593277527213074722133606317181280809846678359210209661072344137088761933522576752911899081146319141700583080395618716945095130643532472825835822608270469126541768192411909381502072990563148546823454227006493851713088013914664141502144760616893065560207695295573793823036873293299584771881955731819461596725229497131169903197579885325672842020404917632512831967163588406498093329401838379088532131853045209521153985384181596414473320245782802769486303868532641503401532026883883393652376787351863623659097810964191355613428490629152963205170579814788854540648285160812630661252263827092406913809503190202045831840250323058208312602606433198241793034416531211012226648521592656859663871961057866081157693917776877415272936125792116386261868530864642039738906151063192821276047214155450737566386198212468238230327479376210579724712816884505488941752873167704221827259013818281781710369479074854352126753793259968316727192989858229555261024430612493981300588891474793318952925836714607110215349760705722271664724497703651723557383284151702477972070005281470147592467646708621133183715449800393685727169643778171544453154089079747659371592657400494156241409272287872608828594012824503310880661844356913639616289720947069645032412811405060300873633448778205520923699575961049661576226731381847688040573051505173706802952891484765387578976066240265438881896958335435769724698095520012259359913780673903250109830351734289841752398797066206596375467976980228155383358995628149755683500041328470074553208599674287627170066884739059972545356879125457162696133911299952460288014368760758380207706797696938255366436879801236994080879323043586128305626839676666520479424878660755474663981188173472221531755950925265581113725918501563678966650885712372184813135924617680162995670312794042549561676785534863758962060244021187780489077642828717161238000282747031977710262921582782797533989775276986849506257026519632395892967530832299759830262859468500189841765627522781061880738982697489626636387734315605329400432177780679696342491263186430435098930550612121660028869510967031346358271326289486231851572353711509458988959667257006340254303954303985738389651282021126735333585167967744651692822860827369325861019115608493735841052668239391338062412157792867292287520804894788324758866044700331446744332076664167459503539203361561158349445016272542422296787658675410216981085025472012892427097441341297817178787229153121185040764859020036700910473156182847255648592623824643277903806346939584003431359963702607353472214968040189036017099732382152012984651304670990142754866680634413326973997835201431995371269296172173572353182045200283757584899934033183138807292210946906149526282713199290639044947550795231127959627778324842948020947803618277334802392774414695210621400789268542422823997574577761632760605533815844065336640243853776240906399044197099403766305188466721491210020006621582648764892624715129143862679661454747372916514881020144761914618339865814950262334585333670625506022000602361427503002435086065604828853234665491735212353848074667051454527023758698952126024806360351104478585309236454427781363466983367289370969880865434440437248426732188164008496785427788491045835577615904267099972289330357652060393945956278479908910278939782599972844302984573210721822268141384576424897441106158311122817435050341015671234599866915336409436426033158418012112544643793324175257522964146273429570956411902800565773148568967716444493061273655509264513431508661074958493832263851138601249084321872760513617245753099193164937250579913749985714779789484602894927121327595598656562529703862274316365961116770138165734865807576577287824070144738154619708595265613726829889472598744240724785497318697443691039358166098073709542804666469060383272759990814850116140587681581509651534034467402392752490649243693733390808811333551804537859954284412161441082710042560860717147154441042798588626770487213678362326524185404036916006153018706145342134076229482829252841658784301621094402361558764426033676917841570908124746432551715521655971710213068573326987885466050075247512054780521677603047629172080213009811727367457785599001163553161217964870196602276082467621941380587705874207040357148203167719105003718359195765702129358595480791162049738037112390342833361474391209056356489054225723988803649069240679418032749327566790753963639649655506959634388630090367877558185836061173056949779509073480704344831672176878911929761864203052859513894264520908970766169606087023360320895861426293658828296204318391387498359950622521289202455883927950288496538236114992582230096723873314226923092560718085358047594828778975809111165787572862759971365444454714078476423577430126445054954598261673921140403332368832579266332845096773028540820684965537724362016958397081237803525922847373818083385516535993348942670138209391923646503800938884453004776955312484250320503784408121476211287704276968050881633471651780357622879496127394288007945440345039569868860200564005917008720876329241169591019712436769272734297769137288000172285646331106053574162138301530641895134643901896102297701530712458767117235663144508317943462297824058551114196368576835213564080100669413273894033039307903495629744331310626494937121135613779950538203567713495143413593288963702894533258926524656693769939885061349897857877646398963878632662677685160510273083555786583224593471469077068772149007952171488473515199524861291368830516393271228542264480139939192946345413587070326394104155146359879363494713965140771283267503728602954750037279139296710226458861577636778628110614595170825593495142660498164387276565719043877701828710413957685658940813300034269267921177447883792142175974443901971477995556274293541353851553209722473620037141627037763941678499189086715919357655811748240419052526630829880641251232791667890459294278894294141901121065930570960372948141601745322106095002731527463876765216227916551483318262574764358449003631478631274733470203933458210207100480908823193243862422860437443875314002910954306438447058177322036275810448892672717648633813938924194493622390568371503117413193697565748136460626034248458540161665311558733946964050282808813159684328031431476108832637834986681336842890187285824048773471825299945687491270841149532868665465260540280145342308622657327526185693570213477745110428723605463335760154964037148905230340427207156548976292747673584867316649124081543601997102752062822502311155684235258223194120470212464206867498068747448010612545007996271625592047001969205892430337951948491313589547633822912145850155364880778084416077181548055378200688026026134174232237519077448269647240267100883996628013261378057472909296124339413286193678274513787844554126804015081042749245760476251798398814287700034534210836236803762068151036279784704048762928021752247967077145999412547117536654089510748652738791873188196821718388391044414867635457467442579508880653166558884008919087009491795624401284008196788752525762954863173745308082938024101637236168855314408660190096751276718326236809157979550577385010703036771118081593445714180357071860463448892184388980875503803147382531756414698201298488608322447799046090367639639381165277230331013755303008055496951282956001131969665712234516485256481527987542343826805600486157330219624910584089747498985648684842962978935397266840561310725740226275661258861495297734729778012617649717743242261663733004798548791165154554912424697575820339735381290141647500579287952544593100178118387300887373952838967325681547615960250181120805399360424841028925088935653359458753315253643285296968312611734510420133227259812357162746321167792479886413926785947615088160310095711289520321908949988393386223844819469973543620778334069846943782849914384099972645761034478733105533474430669825125588852162057269795589344805773205541287423146723980263117150834954718629729644739863441317787575989677778504942427146370110537504048335443413473978036238577617640869550587398484760937301920831694824448539913548699810999664407911214527580514155550871779146827103397234695449772462934860470723490307041278950452361374698942995569941898237949530133715626251742430565941173460877381264932472349682934824139978923943528431193913206873298740498250591553441486516091499253124789937698326975216851823973132716380753334476789817110449257861971163692314221441740445334581189360614268049426542444195062565898954931041048131992956209186201804900186033667087558483629354718169172487773882955253311262456553665264351608508505209423262371752431121359669160290414499133267111302926278512205179508848038711459951693986432461750566485531180845535502706904666734566395881210029849901886175273951280982980607394112201255745221960827702375598590542246283173980741006700629751001251481724780492651927561286328540405797688814361701672744579645780724625365926420913691620799119974410738379248609940173019184599037919794598611814114340486806748806525866178535464501561937286919143265529623574918630805508721187281190218190275460326166377451713849594228576736667353448662472891561412614640075832278224799874787662043494795814310735575627752277656234391335261182240029810434590105178829759293040202774428394821659047458245001887650178426727044030390521147206567778810169928187475937656192643968089231326755727294094521662837554699074818995600437282737746181019240644532253237406131007023148052919646752748856860638380765540912532711927652343338546941921034090715086913997015576172471465170345472424739470873384839137585711120481858111978352161100296255689963329118697469324956468997986985254203972243523256261707234826807527338975679586970925917949246575365868284674892738755399098768681299328740338017991390826703190850222444616766936046439007801546784662707078206786193685547063039272070985456218126351330662731142434517368979731480113208314876625282577828787663421355024890517614379570380593636613747772978019047692307185336824418449947626232565631818294933705110740164496616838552243201561272773894031547311728847324114170881984563441214420105245586245532737771274389044316393353669861661266448273936397307709578423510230063381624881135467119435518863173407621889451812960769935012181560919393614644633583944659544453030919765824833549060786277261267623363826254287980999565473182482221709060357367280232213343626319274115711776873290948680518390584253855096748413625042429304375067096652593482691430931507744457976753838839617468903556618627762539454749617968700919752861012079005992311350377848787755583461982016373650995314747688879050983123333723308137277007244912651884230723626483419596158209318146870934267006793013797339865406596009303220322078343864310802766049858984339584122260490646653870003584733283249834523466478196992069254723000998492520318186680592996745663756096437684395652961922008410591573783701347731949861291012419903527157175344238745286806928642755723638781584008876782283539956602495771209454859173652624521153933570882568012085235388625962185451230111568368150359936292026208236463153233074304133110256170731405618177015455133732873461370734523010432996632195602162298103220597716455167599332452445457802410827625509898883448530859297514526614601190057058613900047864767952731065272593822462787411561271970963797113938815646530629123854303741585919870874778845749928811159489575405918015591392170774366013525398726362593902141576836348810169608334103411411829637136804459016461938280443347301035226259733945611894798492855823085367367909307379214134537604950464590761963178917104880084701752880312354746409738081399262576055613105211710852493532154944002490117192585491549377704873248287075629644843026702889376319285399114397488509872803087207602483358572031491195048124642948583449836126313599258025877273431159403559438890546770188004992859345894385155777868882037013053691148988014870310709775692132569646022870112886875163716032935271407218277937550600615974004089615661669241846810324508976394249179832124948256843557956521783617866270205673680865984924217153419407437745911371685832587373329569406206599944259090019161488907017787528783794622368892267268026085509915161222995840072574528135299878015099954520275405628463340159206316229925381635226300342041903442617317620426842347419309693601664332284416893879886717130984809723765325050810254957307147555186483477376214557568144875811397897301854281267972690834060908415079687808668496465268509576396413431811125263228532274407672084053279523710377002797041134198471980509355238772500699757412131926024883146248223977279091095794442495012282829215189171737542031426100351992956565835969809190367551105431952856553259566860912848082703095949360809804409893969154361389414768703524247986360999715234888036606890128251874456687641626418123381514645699572565903801237942351107429550549444164221728413245679298374042732614053685991569099609460709779295378924082957391198493710308597328468741961431261922794753652646896663353730434633098973504459596231235222276701079566729479822567549487406329980137090961042877886108999022037673144999483223560472264032964105009833447881675370781110752572701020259988122819480677911613848142832706975937127333264369622782163049817713566296299135724445452181904026206777795594670302330006486369856526891769483044011600769768461785269953228543834212159026785862384205505922115311262537921237860192666010788700221378733951314761519115438410137288229312315323840983664357240596027777555797575059786963430292576226005848742595929363600146716677661294101587985731712069124990375059620563396012515819709964262219186072235464992959680609373409110948895947815360361929659123613628578124226300217106933636075565367823027684265111773677585005424388331968343652607048622468704712965730851741482126259364484167505853733297000027996152074681833640572640342508423629948289409845698966811277905211510358120899997839588841540183284767767485003756689034378397632009837808124405547816343502656613314832091990426844164681459349859105784456752469292118341985109156342332536507293242734449980513377878656788085781570771152278201056242786629318386402770118381690940134447380308578604440388086140350827441724220601791336843674865623480102168265704962231775123784138705038129627482793596082137291598282860568064173525894228768180157607071888227113019081025059627834225918966107459968090166266132784893250279830616639362288313398500771439345577077106852237559450760903131677750097389042281290806766126758709766480908781798370369851597639603549448601202777691581060603330384892657159468814042825920125232629055663559041989014404145453111727588175844574821335045060541158252491035663625611555350728653065462320764419319846599150437591703035541770673905847775719900014226704847820103479678284872016022268933087342554441949257820265979654882710637587010074624362056487451090087260787758301236108962473182379031925626565827141094249783465012213335342709415194040651222250452729206050546038036857715007873661924876329640425009217775878025268491042615738525017898590438422986174037374084980661288399485218360134393292391367256003935570408917569631667284306936494491443895866982701933153507358612258730360486924952692002915039486202098869869816921711479275524820100723770606265216972235308999817097695416050636786980671135998502104622054645334870984110548760123426727607682518763502926172509902539146960481153361774414731393026520726113477948179758719740709037938677033623750106013542509482401945688394307023983962121375122430480410186652425786955132007368221151444337438081279387219167549079633346891574900145302843279108127863050020462758785423924387765968669911130755724810278666094726919701739434023396239966070735220349611707290904524425187172654625352846810322173366037285450120672632826352539916051648900458845809188860242249921304813906949284191812917615166854430878213209770991189861807911642293128561874885049838107841560839830455733308891514461286325244907870078422104070570329653139314692956744718180072228535657255786003394371545171483836833456540264349899200756624345185711001389672473494925621986044202286086388840300672049400569845316880101430607838723728044677747310594353889944331874581145343549084466291475619381607183793147637200882676829389573797611422959282765517919087124160038743991008063329204459029694301659940545793380032965266390147470354338996890530731261357691185915269995939241685932223897233250974463162469632710147794348384907287350209963305430786133477017528198171299074574243138859010777229701315445204262792481640846518235506088515071515305149616660546505069971560348463251533736148590196271020055372596330653701936690747338853844653466034872442115862326434935606704552651328986982540829434776703433970008100951042746741164137821214290266897041546529378404507450028835134720035290520207293076637500637670649064914354088772303785551713706169428729205238075783079914137417612102432978945111666315795889565243714646243127946937626185681581278350076704868122372811968713842803543821275503821743157115441187670496536329841481877734174192581150480599062315328666801104572920544647599593510397023685950845940233648951432398712106830121637235072193377549092462514462175949175065606604940890571495786610495894820620510059417601358013751168691072519531529602145545836936491651538152764900262862684378187627777685821068270986345533790880614583377409313635719502421806052787018784706506316066165465543515343554933720517029064386746770358718698432875531058705273060571533301136176314567610532155126430673283758735248722437222374684096593404791409171929939571135812183937996049497240575144943729238504478321805392558073209154472993877264958676967204932184516404618256233595187883632493231349729292349060900849838228134154881478921982193858137390895237005981425035955170969555398643737776532940100167909886840435249203398433174775622343578771919482053022968160794490609109624916401783599018649281987298396562678764147564642954185397261668343790272625006971642346917775093750509344529396539239707609534620926816134604976976680462341706559921415503355548574004445141181824831278900764261702409062744680209088217948788079076426836587988485134230218235495930180670395982446235985430693578494739192537325798261598549583049623908291946709174848931135252828500356749749697781536946236710554469786881875662971042510969947143081016828564540554093332357348026574636871144276744193305690101652213220511884747912303824850906597243099344482685354725861124818996165773879411103762624629924364440598750705328267911077979509166066863890279876486954792362463168795744690846503070384280634573656145773977897013681120256236407265217599686777648750599209555734310692018444765590202369059040965381901150982146222730008979479435476506391994242779574389218325995420159260433790473572683444234200936497150462178883479028937592499870624397026334359058175425003592451030994699283840152096861423241888777927587133273006879875814808244221492301674150278835568821593446000893678639943802358351892044955458754801945255025963902785126855780462511957974331791170488599796674783665656339658949870106114134579875842359078934009861825101544266049379931910184822019250067666647379306948348505339309623975948662637773886913699867845448587783698172799629695218483711522540366560200745574762688234500578235562873838189324431369067953709648448723407697101850453266876820600874291994110835055046454691176479884279231429789946822493428671628857653004935768163610741128553797277602463998168672566425325591500872234153518732670637327512879743794352801482626647636022875222116322728027911089788325832841843709506925426324137127465406790985956983340366184792563083894944603860282596826971110995169344111517480149927658439837349820072314987564299067225404240795017666870216147796571613197492146136800312188022077807531309671504926584139127612545402724618767255812574107566483006399278419814194555187055582843720936350179716003727162370047559870925064036970424143614295275163950881031798709163787933105353235808851250912267360042476058469189993605084624147566988890481330358563239630293280934709953678062733590635630494468077008360348563542979003825756750374807697919547899453588383100011415820891961465965179427041549393250461979011605340973600507442950168716103924733818261676863579998045420413750788873686845441822007194443015028463260204309815691143501095899688468469099300331829591110711482084878404532668913911087435407183821249483503549591352282314879938863284427277929653018247292016842076076204911892252454189030870167631605990367456979091510258217315241757544694607316810981360797093660830526496800757940664317135136762131975972274225580571973652293119250431206510099959008934191217325516041680137234144543479241665359074345879182276776613333924522856239396379757175040474675842370009816330655759075168858373575123084422863701774672060347041562914895540030280210493975732323162790040400895131970772524488655627222963408165319068283312680368798847196592813493987835489252014158651493243501011437230739694033619539034018307564951332228384718397486357824369999961345507146911275769378725402427576663644248633394031195196073471753688703747231317524004491905578570818106059486241502947037983412415015335108011351614213811277189532763128231769882448639610238993745685636825791847817223109418268004920184972704294277729649924850435554697195529799213864322157292247208102261575093033698456783927872437258409911576352543314198578424756500669248842197052053655356787734350311186054904403459377509318919428116913496839172249657359932075737684558255242766090683749781404878926381478716077375859699667892212525736889772399567684287415574752244811945548929499016649035934987962587901021619035937042277991965808355173362517184265638768949263491350997487547175700948368995644831684403676808404523428903057039384416335110951335120017896522623954003355012512217690394422547751422600689578749984172885850820263384831556752711008523164652705791186724541713175993981511541320315293570008148039318919648633035939162907838947964476113873000400231024448590534702763345827779306600731081754949249273547380986385276307611173501272764102160846783496132155558503150400307964426776216135139525755619828015808132172093160122583963383298348169031735159810378223924778350668703221830877994550169835318919532282333969026567278234576739529535493224793462932620992440526595172222088118259130889987313319198586734418913033771052091012895046726722099300589410250812234425562500781658290292515805250005108214689396397238341019078996634399739162373255942380847084507835242487835280245987535615505464274852357198761018774287892070718903614629412264591550884553927684314345749871690847261480360673876438710755531289243911197144292110809845194602519369753641255195315922132553510485880394145194247006376229215601893666166841650120725290748746431410251717979962231015346527263114068620974538208172221882783601145872227973872835161960549987211082417057020982410044270041401254505546513069598540084634455920092851832149863767787161380498773007290100648167990177208597839714492180772724432696605902409598997517651320912965260872459337795362930140098826216616947650107119873493965275822758064266256740889298783431446952714495128893806406873506019151069179455402124230536832194164160107903392243079649101638549598580138166845013925690677601534536509794985741131300835130247520609992846026640854337347988054038793008749532784659339009806351959450608790352178349275963133035942612058186182522963787411900041288858569749782807988116472852880915328085883609430688361274240447005728413975052109843565903637535736160696963868993082201176119892734831927100357814935202573108841960439764790485968071939974112069746255984497828651052748368234627975469008902433726818105878777300250657999310403965629763732404432562924721753945379386689019885176859543426426740181537276835797158844856298133471755800813369557506184186640679751331669203693515183929347432077517547076607922689319905212740670095857719845097741029538719985240219700633269354207259844632478939998477943811965971815191918333279007453636990255772404006214882659199602854139491144039222132382600693109486468122385559443846694162720020895419313953163215254656207588445060706275899964422277959947852109844832502903540757923082746355097995718797998419788052262811349041586101392415909776184582160156413951700105759998210802626149709530127372600019344744193927601394814389170048289129893438457902517070337166280536068522706037541358476634690019886903440943429738044986981906099158458322864235566329861004957739936777815658856429870701857845499300626779863925253463272996926506241577169147311297765725508824466104557046840946656646314752018003400652611715979083286491699057612315609329140803283209210554236978487474383999656821871661769502910041320558975003637130057706594344269969338057526876503687077908202083596834958532027653649827419600581486659125228674816006426038096116687510438198069084081527198821008261197175973761826153806524312247245710130382338026552441223508146478727767378504192946427496527965905455438375312271871087469782058031003490448342971505290381837768337922371853548562130967402573886945463347294834036001424066808624532440273644237270147728316738863056517679862621922494978034106623956723022246446769377481967778743647318452285160613858257450546805025116514695234685255250138205793803445317493646248640234410028107400496317945977620605490747629253239103853537348056812249645615918669723755464447509968445050994653846243010223660254451874996107199292240564617443824488014258266527782357736432970511798847554837549830601502441649410440461816953277417900928867091555585082217917403374434246085623123142482377117959646952224543648364801013942785076745636113903861169913960229105464367101210131697514804597087669221371482051833711734482448205231147036964362639600893413812779361335145357848181860567832304947697591005999467580273073049780255751144441376365071643183729887357465097437654038398418079389384689014243821277465037892986382986806991951813463085358433464932289305279177540135542352745893938155841081672354076188447891135258401314962779678944874956887178230939688538658590850992169433889658915092278049071048046593384009253838659363839839372868036634322994702040127646477024340556059738411687775522313950583251802104004942078430626779012113063370772361556701488439858604685969818560508347362446964281496275684540694939251860421389716212151931180017942959846553870961474433730020239603075880415044129420946186686680264020371621754692894234481198388729014507109368444909776772444987699148140277789574541668247214754477448345279467406312714024579511454326843851513884347610869265655192741785016742806296341147434992385843637680427866668946293769758438960971563419612859910636690501024725714409984063886293884273257115218266952635975721060749690687032382612521843393625177618493556808134959328621169736950203298396921747138259977424307549526748164290175225862084760013698141560635634084938966957912429293435097116762085795192368992150526092558608290520305218146106245695578385045280321057909023427425555720218624199878519435439935492232133439557658186494240441493633407123681953940969123875677967703702891679150581914705413986068656047911887941180875999077606102818831346843209779518478061434669457217229058849893036306299031746438747763016360664209285025764907758028907808232569535902740798159237031746067729988033411311476124115591962681443586008415088371504493820716141339608623220557404799570386363914278670405012418129810455733536291723609527837846999992277056031994548324549671817801242922697799032379242619984520486901887101020559333213886105509773722813919118114689621308209848690455635695382789006632466275703902600319700954676303330858669967642670749060778580806282898352023260777317602980335554632846238936403695395168087422312317902512664809171127850583997841708339051297925263504323111693564300556780193874994793594867118606358943848392174369516203046810676408263596477256598843145886743439638511172998754771486350542816658243107176991527835018343069644131153677770464490565312575651594822996471252687170104396766950918005542405936303268452509381132146361583216479644497833950288947153737867037416875221593676898074477719084083193581376208287703437742633498105854292752075783326650865601491824899214054154537739908760321969438265793049391404355789832780465768839172233067660406594299750466360939042736026244233669178785412401023910629685699805298954670599184796903109694087493024451837020390141894646783920252780710221218085120612487695330223916817655392352304440332658641964277523457555185878303370074345365580680884590177672750621210700265910153684662465789388186043331645665396984178019334508674706530342988412031037188513230485858019665343749884947983205267628287692264300578155529124742499705660561655624186499205194010139814750904751351504819734191355429075644065853463357006718896278916797589974810803847790995796102854557943541707541524505941818957690955628953835665968220672756642970899952471671565115950682017345192642731099830703029892951204921258087305270065396318786429383634493844548092266323751943997427475700193607819643387713978900641465452331078453499689283022596503078209104413445308313795936923816475587317146623411732510352234342474002429579229523366187851615310897517991139297391975350465985622818004957900935076585530007680853783803930047937181202000980691276837341646681122930791489757867753835647254978502040539498288185174541989122679124620198996663170011669423418370668453510536113222909683218743239230013134841168067956444639992592851699320623187498919736314099456367410500969877229938465520441100943307415233291372756332629368281057633749943929338614341214398270480027543736935879528109677060941017969718919057635267726120089482109606951095935723757403645166657814498911053141565224778873616292047487639420469038703454946644700556771451048791884178703581777059029109300433371653628287492909483968652585290410929957026896500769978668119878394251064946419630838676955805995552316345588031291205028702588076376363471026896579767783972228265872066033796711319976629239581157326588069163635540251150922688514830217240843330554705742482284016103198988064648758276620207340354397046622504459465107094110417897721477730636200604087768721940609088590644914275733860705053855395264876479584019661597043207608050469967880950651728406236554364492908306229838187538749724872408867935915970264690714363496741696039387406930953101738237174626702142238689968047242882252968372005393972648601481531347216385223518598448517412260021786751108936002471571129986536002384468955561532937656856333832412807349767530412835067123131079903802888183306778533065865434332362677800900456496165207099854713773224882163683752382738180066560315951310413833303776934887098410357826193601253176411523054186132582858840109445495737110026085813330801141421239037283467173156302995715135658414100966000861396748072812492683825866602469969383486120842130382867452392262823041506916621822245875226760123984670712258632250987770120047287358078182353176276054798814454387163145338775450603763444567554325416763297215014147917793584357381410174802049608309185333327312885068293853182372151485838427978723478727299928131238391417063764711283268843867513981750090703979532192621558233059237288817145675617436823998259516953804819085176261143982833727527613979751836257368824147022347741583935683545723224419571342475670433285455093095442799971557687422822035563109776501481572812983924582123946517319697381499014659132468441528961924707140028091982571437348601625807084949292754255018191755389154726103257123982759289738444060476812500919372241108330800099012435490590186114466656229716966432996578692104346294317094456838669835598677205468543217012547519487027619560749565502948501181227172989963504911012389645468789735080020373484588950642976223103573367906196579589689230236277820166595953275689608424694571820467780621642500534824488120540241502339726012081495836794961526801096503319376696693574521143144828861908969535404841357328687024381076505177681431318802312837159506219428525661187241264317799226816811237672999321719069624155744182331385097908443681095927241026357467899953823836131238590556227738415584932303259411821199242440487354407762188245690342692337544625031319047292130351685922021111962228406907064756552980207823873976789233590212362108820512887530304621914147156354871529811630893571268294032129839803843056291079058784457670325532043370601299077490147337343016403728719089005059922263930414421668853707858706986493108683869969494607171509193241059517348575950171230292924546821798244874248343710709965609715221193128495848380180821168194129382875895358296155784575064639674089460910249764781822952205335840641573869893528748237525664112468644428711638133651357850943365411218878300416658674505251149819312805246525374417644037341693266174553415339127749326080837594014342025439549175028011554990862086676505245899100869533773540303672766776234005376111998169440124537563400218371520785683963240784918867395523899642821115583149337501575536727526459747484976880965799869353613323634386175681352233687781371446217130555022677836470583950481754939674349015832968945039097798025731496095129882876061392926704166552025524826506754151417060704535970342465552245169165527946905018719323239895987706019076166007776173447948980682829733322639180586404737652100055339722175353085029995884534175692641690755512460780259578948604857887759737283636514930810180059341434616905383127676597447413111819125236983481575217247456656641536641887539362191450539012974256943866858091263110655113394477751759750695159509922309292570005840767011074451089463854847996938991476541071403826447282807352476827273505738127260484431930121416138155387257542800181636730692050229193340959668742988719672187003234295778821056085190305677265354865141153776993948173803590053367175072179993181830837043671103882757735071842713504574492911078369208802981235511475395967222234590416606901434949459336347308500054575750740840428063239922593427358043707249731679411846281256163378733293422134201562457483028926600696299680063836457195264852297483461554660971942570229837383037900576790309657416223802962036073529520763439404435807115557026337069679125576241541093834698090638384825237981238383634241597313890817695242779364105964285422746469296891993633097046879184966536163657621430420023733572062177554072794926909170702899242707750035610963025136712068460995152864805302711573754502446557226821382481093155634637062016177823466432289975395473264298833962904782412673583995504409103313112508272114465127677050111389337090004963959572715562068142245895013921019637418375354862889750843973823763796003542360039504500392856443452067003396665917023855699951337285098957322130757398072619996395034713147823633390391316854518519380521295385383878875410751087169556900665943083595618382262009985013716518630240105927139285508337496452524532356117822415596007854895405291371769871606345412646151846975035107671659962058844321607767700038798871659532966244338527350365211549943224019571858469016599380746674586888818955155547304952982273353279707423922863077269113154382063854916381646156627813361721600776748251571749921650655920673611341902520901992722870351138897472718532703563951296927527792725425110849238747681165746741579553278372450435935792898120341288773174805768295784155805622981604591859791969888940158563523664137573393849048935194868675433530511416179700711284781896416086546053264186659379330394296599602583213191948603420497929573136958203244905111402137847138862993571358320171673409643435637337691954326327438484694921818503149234307439288011470806802089295639223347631714244248429445408566620553230242791326899084007307976807901602447807265151570724538008230473043496614983029607837353112891948595276095432828806795474018219602578459545466209344261754682307286634565475565661911661759415034869282480150529375937954706854193292760964440122067442590794436947376049932556520590168671108760564037935780930494501717958641180394597357285233521084327701234923848595316053750703087888567279852401119602493946432697812275656484882958094337577125610728615627444183165607904351387646608481036319734441944708113459456693764188018550209030812849067305912644667943804961585812736960248016135288555827268843535170886630895944055629999402414165024277882298223274750532054701389149707975615622387505205344224474615649576309871343559062418364833601676614456240873239845842417198843093792736016355397856595275602644195618439828625112861462671204453492331599989784365090418626698849071397912101391304945667738607107450618430323251473358262149839064581135167906873705195713953204951963090752949301705059315018600332142070353777787500781647313254392643358181665387342503009446619859851532943780941819399339594821881918013808021296271637762004299334435179998245204915690293833909804253783108838651304210981628364036017068017393308796827555494610546140874500190141535665896360480716316091114599456576815194704476461116599568517333476412702370141144636494551843199264082687633772115973306169797045210455740218073433742027441508657900412123728928751346994157150483237346852072399187344563707145550060195839460647191188041651276714209259331542383460631083619282915991171695071573643402188493755429208162057638476824311174056380899563096719413072217128445831308491465572673524893531453430578750327130336426998646975074897998688447249136956575670280475650441165922644302414381767001207599680099039258215793455273377377326346265312277595129536850063671257703949110481987195651124669072330692778628475832069801094585522944958053764848551172990138420749871249398630997689668086519467515058854226424407489216944049220044729157863064701867801904047139424924430388939229876742091616820300344315443443162022676240927182995670959668549956873203618747488140189240236466940059097599838270257746398004169729002681701997436357430271070609850932536083777522099076060816245256981100471842159731959157295795097633190577907100130239921457014914778224391259568454509259803761121362247530217887106251662594799153189716291892083785901612213663481791266178721495587508075784630801855957249877704427338359520890513256754592717290540829408764749716255066929914202531240596748608095747388688250473585700309357761861331397305236907673091423211372307860439909032730871282899763698140219288930549343383240972129074431472173804077237968193382673882938670487414193891861345512718778874235691640331321386830432085198778693958181939793525054142887438674362145599226103095286918468629716575502870802236229865718516849700909935409412207800408683937852781618075479884720053669349990248086948359602467828251098594634245414147294832912736757503056048111148568068980727936342297452150144342529819654907172733908168007839232385051460792480193999352442485323168147940332456905943182491258105244984421001415291480190853880149816169392725453454665477462473596635094574918650507138172951302778621202342483962861258102433174690811180606191182114054117224062429580562853699157059861665658284250956445209900101637762797764054857352037652038647653609364647231858286916953329607326665292375136358403344279032278515807599364665102224386184051484432241662475019344685216373764880651234728482851960006571788406298216954688653329104480793255162981637359236122675410859142747550705978528080830358018713756192215495935479115707990338272545122516279175235110509367095370786392826005788376858820936686688811208936490808384727184755238275956724943834298789363551117616362939317280896851344090706748271674869014447067832436250362651024201946608291026118986202432394520256903761115184399649431135831337937422589508590479240835898547586068377804362090288074238304211277066096383972284334675500602357757148823645404396742771276096465218226619735466649543289452957343256887806371589283577268448376206205273562300916399218002559201195856833195756871053834669691488981741801158580147877982863702603282730281971287092437952627130987913182297873211240619938220852727135620345548939676643661093821878731305895662752866188736320737206903279637370914452005122711085578683750715936046611913547106371559413010813867802004768465391343318660690638508792412985833954845277054880969746874615924654336934922683978289609920193711615536627055040035087094040061613886349610271116221149214370891913493063238450470329503736546711928363005512735732965043335578414742343579568564532160239546772492426540039180797000127408244653699647463956543412426581678249302529796585552711047445387420347516823483841365065575945856975965577985703432447160670731802358134804926409153928317447190115574360313467384600263556846838388220943050869063136389587254343356961873830345973137203945960192787698626770624221798330565273752904170500482134530419258574331636222142478815595131982816137281798472993667168371002803257962089466436675199799835888167340244928237183887606305975028313018714350301334694295137943897829813655631895365761025533385454015518275364647667890766847940836215275802371418492847612269569104157656362132633074365855254782970174522713167901728399182837084207659287739078005900614210115411313266616070544442905874620114216102916453617266550176351086563083074892145115150291451659346166901871049142548780185111945822993835491176696315785597581892730483044067157863420500096190894503190146135099353893463433615211886554504439852828348216755138752155353123466270003511904493138931308273387122305951840255636003283141146783012629532196359515541806016237304727423336243139495726735567181167135574128300489712186071536325603203491159287751842003206002400567607422600145315564024649904594406632956096330549641117989906671448856180664773332561445113962827382533659872856403829093927879048625554934988295262440365255255878589581005284560663575310997478676559901432126243841904517508844531494582301286836028179758668895155305037708829858732767618191201282921048082701262069871361721298143437133261348039892533190217254378725240177914005530410765470910393116796710636448078928019660329231779266177579540089394392452895698068534883632783098197914695308826665594513405551505491032188039440047562512925316550033688979922142952527462930327203860466196492995451042588707643021693666030491275188067371146344321529481102629670678651257234317886994642219255575759268615206848477088548754578481517054480644172020371336787460655009642285096147642802514170313021252158696926434532992816561244187690406468715743589208054083662382125855052452558031004562195047260684170545114837161699607540533810846425680196175706890060465471669937343164795721694265280237820490154389103389740946827098122951772847586461538851540261145440767312644464699494503008407722193518124336638589584674414072899229206686732291205991025441208595766456736188786160226555497949650821596897767714747382061549736175996214496180602307926776688617937526965423346900610659189609696801902866593560412016704146070630047744701974011880537267750374940646803059054683854911426890621877688779341080151448592950706948122882832879461155596061483317127448579213931581019190485760839130692859965724852473636528892346108375747301140943631568399902993704645340864128334085679907687887089115331854895877456568308792506548498673244862343448553751848245716937784425285721385411678743767580110445343174835558894948538029447034069333785177379644646710291766478681047086667668454449854805451332876259732474371853441790193536283598293801645695367299683263046737564734356209477907252859700383418161812544165755120720363888844145112170000833603852638936262021007640028983637056615525986088830842207142175003990448481940811103667209263204331853504240684227091199254059781694644864762891282826380227984223400832646018424750257818917727442683399863605035054407608899785418434748374899943724569933419280668172238133950823896013543626527349212731496152527213327266560831107211854255628658286639241824166443111083225674812014027381263448559400348916739208601775370318008410968745643325294023235237464781017794610243318904252259953801970742646609255377860474107268529380241696164786417367494368870715134063268348307584885683653733380285408945799914131298916518373221851324896095505096719319483200610100936606625436196407741452103664830112924485270076811788459338996168288198616806010751126165492488200104818986155173755956321732547099933296670509871445570334603193033210883613028147228529177191119786608075023969451144896308373864972551123484197230164215745533869002082484676198578767331985402718366235280864743222810028191402737664714255950503870192975145086595628513903346979879385582198414618806192814202436297329317218625149758075266413362794048567183145936009229531557946750951502078013146689686892423223085252697237755265429891682315771680519260918490008217411473521025924484365846719927487074801370006200173547608871761856470778238905364677587985669404684467097005685088725708882180473434602102571168016046934742348736749880434155953098950106762992345600602925941450062231543406550086974289145657453198109336527677035798207826971776993041673493895087923844698823458763917995536557009132316922289076749882223108028219382032174362036956353578967522435559815704061613026099356324289076798602575625771760687744451760551709058593665129716801787173861152013071079124275306704220784031412323610601868214162482907545158095325215678097809467414653280412601324529854167268342752532439599689787851056018759827692491151345140301695895034329390357186441690519588269393356479678232802394443791591128251309701957518322264606162232545879016095566632526238189064011071555113366266789761891675133959299230985652510375936297254219925561084835703455209107581190057488198608055999252722231330260980784858587376358757803896075814246068160192742902637935509210690176636199312190428702555083967506876616824752867870381581170381367698988901878919540230217243412770515324017452837455380112786150353610032910726957130390818798089412574965775616233857550710301966283232797313353331605974213431123710899088224270213137168854987407993818115023087612351121279773765058489531522000543177090929083621377455764768133566521311507567582216217785176744746199444030502178108474709236383751094574662179491506359050165135851291815897242568187444885500675209453930712737864932604940271187973467625378759890227342263317214493431899741369123955335549048470387686282210393141630649851003231317731056554221374738479156274532267712839981715898856131550103286360462970118148211622056744107975663713197199055149114476564466554925984316351301046151434688024123125830711073031837133421578049330266014719280939920224406063752804549700959308051438304541901971341845264453689236114411855125888463823429813908836798533244180553268407581860102001761509889153605717739384761519860928242726776474423668428021038394867467441942538572175011204680364386372668344953627581812588551112774625466878993229558907653972377326723625624568535091926515204388831705878127420518539623909918426252139415438127909217065094185662453087032025805038072797010925628519535986499199294473851556490799089179170852106284326439198431461045882566104643324722283439005095145757229393913393686062699946630967174147184051238086994657767814121296670244768091873981991366512503447162934263442924361544391964681806193493750903021435159188847171643971613913579455389580982809559202098204139212541936700744902478768037481921569380978040587317592170705314980147591606483277923585205716056645454959620833751316350440636396613723218136858934261460441695684627035277622910663126842999355798427948401078181437489929797011522870034880478439397966030754278743014965629048333686251908230706151938935781990675011720233144302951570260521470531985508086703851400647039052817913938521806003332125458253095512722714278162271553803151676871146143271023649071147974583068831467504944799712910206907831187309703561169083844131985638290894453476251589910711447350752286210713477220699335475115571318126433399737090927578148249820545410769870199887825231579084303106410322026323450279268305937228182273818765377805306337799208508603201886303514683948825906515895619292283874178382699513768611335971728053788700992365717247877983260396628479462412667509533822484539184836049819110324633674017776109723234517523292408593367456622840950592027326748957233285468600833321289129068728982171987333282970722422187098076893448605028899912877819244281762904382913340271730180708614569507080843662042702036458323385520583211671874776249320152495656794729756425511479889732559497013002890709576626487154165559647257800899558386128478069352690900937244408008173844251179353222535728879123669773876505215316789610922018042266962815999278058749908254178906077438460388250679019999017821408223870282625021116904098553628976651703138002089138933517332899539693806356408726814438063114503820592403500817634106044482548665000190657581908159795724870748179066106647711039336335286994761071955135113309944451751577284045994433506966703932277195099810735035321207311248160001429814555802356308163871307915092011791279545087325932337167269386738708685339721407492077256571717728717448939806615923629557900595531409065579300084027385327057291824976958073616029630702831795800984527023536044953687195893575041590616657171696590176367337692717377582586260290772159225698652913753440213037547007162050902738504532390821619228534277794951494644234607578672768594015077726046354760779459215413128807222547309005702163053765338354194445522921051920703126215130147786456377430657178260546565711262709191609621978026508498171615507212119479360544029820467665113867929130957652845480007629734072958344215716632619919910586929486210191523678013477080761642270438940546218304184731603052608403541327693251444484957039710687591678551514195260302032045751845820111784038276724639736933412419636936155895113584222465110395895766061541684695225654433706266171993121993512450484753208140332518129200255981802180999161601478619884428666362924206615553538953470356309435371384903903935544455543268443465353416696171409145673038143197726615366073239239555077669385901768308492546034858669458044531065019460585943599072250840976553142620539016026138371670280604486703318807732546703283552841231734272537327681027222826043124892163110988842299762476539994387357220392895357921347459512830475566796776428161985116244721447795162991162289414634993048628872765310393753252312305035051123135001881238835065563098247705103775425557904605575750243321627696093395602252500887273707298965950872494014375317945422577274998924154740520821185592501293269841008376315648639394981068493863573017582723569892072759314625208660425125568289935779854216476803518630768484873077678177840677469365201680033530549791106694496303683323739528423346792333439047310537255461539214925223538346282022952068702320985357534849754922092625835901639753887005491478280162412026282997794887170188532032024169890275332723231373617136031638444799273338738415303846228851951611376837578138084039917727821608682743389610355081683200037092767143782933182885541735305285566186985429336325806010466980817247877806838314229820093603575337671546841871438395226990708306107829320745504876248862750356015711322888008112483879015719739193657850699298399868029394516257307187619536323160597717805579231668802101693992262669026019789763975274300299768181933170131258690747032896658888755595119178024684695800814538051338685705656634592444588093887283892032095861327917949233252036907817095138360543487058645874431463641864457885066137914304324869545249130138072010724684046879152324656895920602361819875878989225767858264280708234975934472033734423324246996674590818238779267754847927468988488542365184747245308000759400938112411139644637686714339149986352275376353490264500943081214049614300856882974484347454977944387022019210246501953754051842118437410974518762252477234695900704897447805353176960737001668454388996237062840362189350711545794721314278792588854860815070001848655470054484999756767592650016658839044518838742772538000695023819932730181380681261912777275372624344485376007552340758901489549918909501760572407320118482165422224754203672745861141727808805979454601035142743972237989474065504595154561523770299704840124006220048832539276791597565951799303804848945218466049955221149492341653560656209507905901512680334916416346194732984348482453813770283464769537819020359854149379980378261612928055599845635663147984064301601959216922006898228197518367452683119029988994637345459557316176299729935143498390278162695206538287208207502063327350380801477675985346667837055429713232197729256908420858442498557963108605330290752476193999480592419552512337030569338331444441719381347089537328369749375471603525044893493638495813991006288748473256844989708781357700896161020673118460715356982212925040249723366861799703109911651423742965131507582446707110089654109110919170357430792067214134937858241891872100576778447697539660489629351534001372221373465567251040633023017767192234346383891271263970453990626915477132812162057553917087977904137258350107329457279388404462742936783153186767009814854031060709660445687824561310094014822376051987463460591297845431754021063264815765654811709265187140114549617342554239723328623180245954648842175764194123191378160768519595833026842154754840132167158025487632694800868639307546625748019243241128095345113320658675595502641444138164124098443122215564079175917717308104911012947422424162368938661871604282853985481543520354720960037433450037821156967027838229561562121453571616329931367759129921211818498160636958043346155875710453862881694367326220685280698872759450515968812554497750921150034230853205941005013056336667271674596091774104429073249298510365650936595242495245284941714198806880216346670190056795153587002683732578829249009984677145562652802304588992307685483634746955883546341024731913156237853538042644886975924723872987352287134768397024465645111852177306357018791918803183072963749711212253972335044233154970318234686400298482876440611745399321408572450359785641434605504921342783375000493902107254387558111901595840460854363147534253328584395949787704173159593502660726099321567252752159917105935635530996140580945553830892865725992237410736834321075090172150171179098800832483206796270887640207025362623491651459237565686286473322834911289391088397884558956221149625896433160902076329120954520735484178365332024539999164125005179775204955060597405165199622881689652266123693251023851739351754538920106789803020869563972421731706308692675502634740018624527686955389227006071422302869063125069287926084682091079109520232508874400654412450767070962603692154717388664726959158227276569982764142322557309901954599329437823057991197242069840826031000469370097945055734116739326068552623739832127073243635743916484933517233757446710802652893830278072759697515369917550167268768430711395787659030343964370232022185798645195921503702440062379538340964934720839167056641462399389194505006305542039346528533119155775645315197912096838531938485055435126115903897282607775340905610509621635093885816437345090631128914228707376213645821519136793096996375734439626453858486900779207000969460789723039912272859205115690196892251572235359872665481198583163131898773475846548846579661341970609900418861936984355647231139087806722451133316737516599198388456591558102765255618348354650806292028807031742299574392233038119710310748299390995368394744230210989728845117331503112537763390195158411580157781688504995217089821032291972184342589622371804528492864658700570434446934754102687914256125759382803696947890988624630842664231243687224705602036673507623210642559799002036959899464144455806202422164209599702562967863544707732894850936092361292857479005964103931150306154221580065576669559366716188472317213524347340642946089622344292276727933129949126067680063223851933308063924524699583236936641920334433588289241114134394439551157971910206528980736691317572483723331971917416420191546042409707038719495378989242762059392357199837732871709597504488827169214264768261608581492442850006910742166077572312407152557553421623937342621236904759043483201553757161863672958540239022771173228873510435883472592208019330492513422350442413036713035585975660374646033777441102124854566428604282840723453558436348251641594027585289653082289242730063357803415253693961234595028545050266590439086099192773869869908198571033559384458568895254738465202136381034939861197865522869757551870618432364252584671489006733761752936411904852281220130507152556123558382793125445021468730140780117942551181617538708712491737525617750354974626540941303788183868755949834822109441551905523398121907422573397102020646981210999696213461008236537438686419569416980665445690069831523078984352267146480475656902355126842438465085866286261326165475537530804297762036200896266567793429304731918709871163346658398948009321177705389727163569834508120925814003719469543183218750596632100573417703427025529072296412764148068441014095856474455186984508126784305143247806182256768020287883206142793451094756085335976996344551984100928941456270780358627275939153543649020628642129395761354305486612000334631522458121111096121687688718921212404859756694412814092697445533313727004810477715177308661383019551159954344346173411159894069601797874675136595334032634075762544467430179653677110504437652422458718237594645816701157743422432335844952391835315482529131109085904669649722907056952463754934334980562991534146663159814808630401853484298566485247620401153316437716566344434033515649509793495506016076760455139099253610449305986128756906874109303860152429523388435097827349309365697672570513768779676313801118297656164778945417273688182022508196858948390036115929740072968153141405980628472068332485571008102015957610877193160246525515766400493957819009088565711913645120241335251602384367944747630383012742278997156303675082631610823540963001671433768118494839036980426019457443976172700542258948490754283176903480788544217468639124761696876414935649960291214998517171081850205140851508046265137399785205608008814450880971399097491745577467697724757571391805054905780976101355530717088982909104281972934356890551484963750271197713735559995709804439800218023711146018465815695476857259790391187963140631286702642646170523195017645872654468339334454889838328670961911093796747309731448392858618017225834178652466387765742778339653829918907926074073969268667321943320360124456543833391964202594332721620671584652230971105696088312185178535604320395633867233191975171370731246658075362424349124362858411606850960554287164650648971597814531508668449616459707094861054101574282184997501013633560219761183034835515902856857377512976040868428667713641010471343530007483343392395736088680663081444793623176408013561990596664795857676823764524490468328477375906040918043636033588217464694042005971200743763549124839674321658788452323064324167812103926849611881875701886882694179061081974664376304482390440655264076498649366884315146150015209064256645728935063950932194965336490406743745111375358932859341853081502605000889991514431697448189187340366549662323828994612906136932356600949374542051238416905028544304260126118123039129588061710039658755452272984286055277336315520959254284237066300376886236370863857889556118708057706255588417505076778810301924201088777152616657252315442320442400147061815325767045394754987287668001287147809576316144101500330645911420730758851433203194334730156521073212790523192191744740953289642326685403227002075092493727006899102601100661049997905906150118760752588493864190265490872830948743443262661705285160809431969265609438881851568229410085499787440901792930166484815084112319322053205313956389324082277415228908220137209299949060695141137120645715770357077478351202925319046098714563201640003257030421261847477117926742242463827830451832176093870977284225552371930200406932197144257992935716473268820088238769820747732786881263771348075683781763623603653214703567072807713245950846049113520579128555504721412981791767165484324817470446112531703870552629052218627734572259545942901958706942727705506713379607057766033299884923919494331201861842580738296636316505686747161489496665438111717922122532621051693268300016271935959924721729941383211144193221709411168371295719281759481399517230882061769671065090209561212540823290645292398294863008377115155664642027392334472312487541089294439122456537600541226893870762602172774626382651544562666685548479408192663753044765778165638058112754730688487666244812995375008645771976168820862996948488218604539600749444066259808416712369929022947146922700218164798283881332464942689537685253802644701232857283560793299117634434258711321726277160675477519784526898733756125607473344841176007029087909716030488435589789322009649321657534199201179967599844668157714018867954275010638218249769956974444193672084841708271088468668735428774812390339860297846816507021487352632393411205150910893872175334013473995673474633860933974206614483415161492006872475931447388401540538366857642557582909708172636798495042859067812767199593793780108860048023139003639902400021851221654563159094668993737966960330136197398221666145389558680967841964529162315291914647079151150944221527800780614355232656413887260901399155322956685593761929381804360478606133897051503243521830408275620037478709257013457345509682386590147883680204428295457503486266189973819511578271570721996103359616205391634845334338016687073585911384759015490534491310499714461962276137729398591109740972450915212275250812827564315013542620778570381450305704344784416003654268997366221638731759400906332547109452460384215450899851455977547231942978106221209352949413311959584661388106197832604626538514244089193912021589592821252380329919718642963404594772377375913553217020842818700004475072508479033816107362737861847774931967430056859377704360514865965838958651405893381992198365283138694814893653027255455809738321779529349533536426477459875318107824522692569081919554577619036717752362271127713269770214801917461995263235238168694131487451045279470700022575493543044705490027438101056805313390884501730223916669360918353199917344702216811623814198186838934415084904076439880611938926840300004605135949275033127098231081369499896075810490916121650908749930612242242600758282485564560918918486101575000430680211029603254378577605441374486850247061542194867469519743469127408389922013468710396369655933628705600157570901452248480374083417824493117570696216430512499044873437340575951128232887333074361348899560853334379464773274972556234918311992052510859425323885482286811595270804630529439908933107828722376519517710652589150886023700977387026386952067538437482306346630534449819154858189884546189846965073208629500105717914732002657114663076110115110223697881036971472206060083977822501858915026183308929528135650564730818085474558585871290658808388500926114332836130810173048581903383278925234934854853808434909120768855989707501258606725549149482752387013429814201778956045911184570681778385107521922945720002296362030048273806895349409629039045325712685839474746647147185325960228629907327064490757646488830400434804761665346751262905703027367433511947534674407774107397810058518885874592525992635755215548255688676227473392906763252901283682990156362486636006912376859845591674580263943282794760064181664566545078760468168387425910513493736404120417205859346470760252433755154649480031304829745599051324645030084432974187566783258669985487841874709422391274223905270075907532595979427381414886278174632606483949566965029255328837932810542279639600095275079145098256539346576880656206706133947339692581097128898921225683372424207222237794916164133321376082018218205448776650735957651557955694225164389884738556156022466260957926886531777746240952220607781118519367501616520300847409177609702055828797897254205566221596409730001891697285438125490625414320309716009945768953250746200246798242898585239704676427475246812831899242039039474384669785026587418918624641382358460936508620595384279801826563936222963022831993152583222200242635457502500676556119912624330922663304703062852533266885358411000728052068564581911241572570553562176576205879188062118070117848880122721555221041061968854562262712267464947541567879538381751886857688176454520636356784638094058585820266377534005458365373904158383429944206985343058609451960443541429394287166920569055394351050796603993549171598674485248465651376566933263180648038459149027841667289531468193086033943856271788589889309767376506979786487175213100124117678550127783064647494471024025994555619915011780216417670617030314498928791085598004650757852960174839109778116788252033334286810320046840427119696544387185134760318868922979650740386894500560852780820044350548556279329241055377153149078298164499051716461861315925412923558227688258294222987233492582972250327893195798682907496958210417833808775554184925758801687501918793566019392535271697450797261159504606239015554378392858983493546404326755423804541295032874081597880193960268162979128302653905705689835295084186588583456117065358495925796896072814892842893764014838628042910500569118669269610190312857334909927722685781990563449008484004296356179162391249476712368466135111452526529620044457250375870976825708192045566458096907512777355183705469369781382509819520739053406967525935089872219412222694583832065094584501943456357340618129482204437982817767394862593891140502329897694614822150042066953410443797734562426369491722075700266641196864066669372355104730848970422381332839255225573250032506629573627394412990694335076641252512768082624695098140782168857315813595980902405419172742495961423810213808302423079238102989958230292220932346807024336841305041574470678140372196008500227904057343440445913200849215669344639675085443645451368078516170527250581142946521702649344928548345362308216604643719532337578871406012357812255725048871852345359386162403060560421759723759322272842272702470582742648278392566232529149188750269306700241062289284129482561586419645221354329189172477361219363086073788883443953321678388036566743455440141365001431187738399542530473307942028528425869513764368728695464440815270787429331660615636821424383748845721454845216763524918728976140807093530798285388215488006593073023666928340340470102963037110741665104836400783482714503856728317822224031692851217925089704018448996292887058539006530380018246824759158329212768909009520875668432019468216737568595585850349242192386515659618283129982411170077854578203293056570817766769135232071222468388729206158192779218133352201690193217102599388060226464529255636830535357849746819026703172895363285963342113272659492703159735907728819653468688555610915916977150898971573930021610193057679813554227172886974126188653755421715099799183885372785916261366296814422347434232558901470879635515252607729568068675229069938733565952828865665181002194545240399069202521458904031418750879967044407928662529902008051777942465107345094076059336475727233647906242060299407597372239518327829976048552102503096303757008888273275260118055984242463332164911895738433495587094985770241935482209340516499057423986885601158288723528599811979643869476203589792481027566155693027101236897903993643242988638204795560866641269962609666421663248451542954424372132846531223698833316245857373222365854200922089997419692931014552967818962676765318428756614912291577356320595256681167515645583872245315444594078294013047649136224547196068051321743229483082226535288019297803146427077414179903554515955256615296071924586263906901724057476856052412123398898668392524889039268081823062533493901672352035709531452613500504716074522158594060365595788592136593953068915244572415119973908066323784860096594074043234181423820304577548216563984602570667302083212760891498132989433140062306609394083769322152442152010263303431105236265543477987798525453908767849582176722753446052988608119298344300864785457485958515772554060469065612519451207591828794217592436789094517823136991115719886798696419446969483896370984344398656671827663706473857545265733892991923516703492115078382715883917673961286152677081585807344434978398700190959474365509987863682482734055645969684413118612479742365344509685772154564583352294661377396689703137382173153170725024124757962034553314516390000230615209524337801154184541147890165047422372127529135510074252626099381199753766663538051706510257792043242754669325439440864209822842759093863921161209409515069118568575398795600866946837764619734968149837716939301955571762875138903237700559666291100031381184653198383496933410427968328587819983433959281088030099963745880830358230185812727195931710216862509985213342786168646482913518147976608612611347255819409484355979386947711159604424247376973624063778331655570135528043695441301212217995100770585886737438572157728060549393614099755127083914685203525358213765632394664676015729371196521270012744264838879886417962894302606744938844051921400847628961215791506864040128577158172725607252006919214785872924135889483770724711582347069364937398980864989677077783255098689700960403285968577658773782545901655390777650987231556590620568345124700387549356725642161861205249225283498295569122033318461732250314494803504736549580467096315699324178476195323786298604442686843346276991315572982073588672888228186451972538734555363427132691676194047746244916736889397886554934739656635856634095586976112822471942586004247962670251512810840680996814355199206692906786271784766116528463955762329427680265080027798320118364350911508867370188559533439946610638721557993004744835726182556554195477207901954693699540360573533683577701291139115841856012167086236793299693900966439951064090560384982864223335771150238237333295078066392133695053580867672777478114797351914058975411390639501064206845908617553501523875008286572691494263275972872928391021661855558708451445177169533490100790700759365634268114229630570020307029429665333405795863348437984972739371105956816441582669242811951899667045114019763407355571788305089702982026368271378516954788019917116710673873376282331414232374842891843424859529009708396728830261163556846681201207405464170163952908425071639112583600797964399111702527963535056459843317453273635386713965453663615831591828931426962856452533107252828452502966305854592688460194052622703231193879615108321256018010822678608900250539092173347617306064249270204902559272935503986618671964311370691018503397520261653130784478857525914485387031233145436781777929313438260868979675113103411272656678332297020779962527315597525802703798014331684735687325725221099408306393636914132624063008915270165684222190368729914691504055102779711453589329333276177270788339629618851537945356728242287186627798191172181281187789961164269152003453947738387882532724223730309597980705622088059576020231503922993664679582710885615120346605822323038355794218762305842199780573404431333709398126084134554182004474786239186202684722428456436370797163719282226118048718532203320007051054994830172357891799192657550268014690279779366109201804491314959462486404542696977423601618072619603767128674869348458022349754535512638729317462978193514573444666901200080315544520769586868813539498219118011492317431192199248581701393318181761180870125559021227634384543777474788743158095974326449824133369596231613563327398050122104114090142026447137405208024143717257876597885702347432859243853910918619377130213873111730603983119681516074813793208169728660266977585293649745357671272650537722548548782251459321933708291580055723569151258118040329215775112726181221522461825291729714233833717837261325558131179927504649260150230404563700296854978828942732365346344050053013196689311182645226205644962219684217841562468234056209366692884311795756272035485999848682172667171110833979068796109514926183289555734067995326911952812079844764692341504966153162235375736656928685416163354450605523736844711453699549562134295490085335794910165595261845522536706059976154971335561280346957036267425285144631623270987758596453385214824864812648007493537179694438299982023389576404718572160840773369516525428689744988917260936658998022161889130058370031625671279493382783237769572168303633668729787121246225796002778216047928889414472867768947592911594611745092418214313614184751807619572554606858958169861754712850822632024113055919396767909178005144752027803639718382914757080433134677845907854128574994435584954116664859300141508424890774803963557773666974855544080408782990633543971981947227082667267132645083094392343372286171790097011012470318341714596246986193410443698305161417498355783794899433939173940153730528724682748158306575608942682498453093141213424404315991580661819501209769944950719804053332987966880271501173787509139264507610947238096694652022301876572699093426604721093171394668334590868258292143623063513986012703718148830648787158390668835867219364175444497248692435614700037882359434412468011379214652537880151551443219816940053538367411918389754079466178963756647156206049491355930792426532249593287618555037815961822260822126847495670981276652241297714954304688246830316246029124602257060171084645218461982093941416325268402852375394236477201554181574054064808835911891326964709425480078069129341993918447583298781307671471426733724530526228926045256663155002839590020770188556758109577518905219968588167373318849626333990911148904611643600205477833962163709430949165335602719631419667879990943626057776986202452021195226667040385642757062807439408127073294632063184448490184910073475035124118441228072252774526420458959523585623211554141004801657381644254168576699566711214674865728396676438325251769688338426834206742421945281038292970350410921582559612606895370329913420801893214945802030695099552496992510234599366409549493170932869879436582914032044392117002898477018712769213590720653310939521172098558325608409386256022160537901170328864462084052559954496881834189128456495659918473993013666517441365988772357844069160539809891299247935660662379247010459526562297439739141574339609902325167565518913300698184960043587090478791599426863849493677323930775706378191862292558538031304287348593986837243209675471411923715120661410300342187060725190447888222681461379307300867063636166866038983518705987937712408566680600162461016453563799659842668609186522884610830292390300272415511467391224213317608566909323020223322066810550130519428048904642988794439802799546039616632796744545055349468946257807150186689673953317017411577396866588287577747872590053765086311168746105429666793748510155444828953212244032631282482884300287142089932991704911994763669597976664184889952878706434372668995101483891737113097407051426345517209304437947203653048477589006905715583883023742493828748161457458788439239706375289078546346725737368879957498455090515051680806121237208142263900752588120668564960211962178850874195703216247953612722192683930632253242210725506170469671685556607778573606525607426450732012393794362234579064515426122630513675076489533328776717703174168554437602816912915495389525257249446370774370645428967773997394196879500523809973142910853556963581589625878044618757436770896465865637456988728314376180294697500497098897407874716609332468235368600215371870488906696727159659923223322055191578541268761614821116908259115859905312084075381001509662752771256763221185096843833277348779266977943820492534078305094184967073721150823667228666160532627116240660968131174442226257428600100038228770435393070872774305641542981379504112708995648123663617628312529546065617705647546923230460996590310965642896347693667586669976049574667238163676711537932639038461431221660886637050902906480712913822807270961043120847646504586031316568362029079163610255397305254347234563054378223547708740218026067164177983170028766834878925393951978819799290404882355600402357224236382158440292328607900846233041557516514037983012028865075708873316809979361892344823147776675257264713793856408476042023796089168752837994076714320379434406007471198883618862528640837136225553350722046870128098289797293870445685650841642616000513767615061351390009381720195290069276816260647097367377276557451852106750184542592997314440613931997317716994023423922240204092617779417248233985103434935521612246346352822771481566372877835851853400714833802219426064026182326766231769157736615830249959977759508922743720543408332367188572824962263278341405682816435484325465543919694866540896349652492541774364178159395776497051738568549804865429658943352663837507948734223225655852215723637857656433270720881796333262713329080534901969818848554317467193208750230058258471008232343193182680109591329852444247977841629797303297791727395210521573123543489152853059473732261459678556310424041089288183947542606469099863148900795115519618722815589477937037100434494560675370967467926981989112336263436808696864408564853063607344854343200100211337379777475451751361918285415871969172501037383593531589514206666896982862157511611790260723363653349823596872101274888086955291175549711469071136064756622884402778908566436678023450567579329402743688401564774678760978405467560319222479534143127916647447481382804550467173878750296903525747876492616493291461871410783496281870203839047411978303497065099779974536686416843501363368589764749617623910460748760935418966022523866144067469448819879611967112583894496684093411375027773426268645922089173062390908671711190085718345506610405645576840609469461099703289116646966248541117975626766659996628279854826114079410560949279253477234224787994799590724560748756669234166512570921495018119321518140628675889106734495160526780201166014841947340957066711611564030196399113187273231752092283097874871878709963969352554543616115129259595926165739225515751666081795497182177147135684339710300407162798481050838908984507902382551746307995892125248916842044270247970132397230080704141687665879265415152899758265278025197284714759126789629014685565027661850412813305973686707376882577777728964774564855559241424133811757197925758231924111359239120972326124063283617333282149748716478298261241808169045246345668046791746878127503382416443255092447151925872793116531195056287382532324916629094298083973115855430175341632329114820169477699808924072914589151669890845213849945944352477160725940954433297692602486503584072275979391270117294636203300584700314984459386413601380521975981157987038698035566703527829318793632434743152253059124954234709077181414094453635617470784738542943526741306205983396229606548305248117192124683349902318136960322418304058200337676577143569629955916522395846084073342728675178741855085135350886357964569956930418259710577221958602453662627264601099296369708427205276829230233575770801573849567290492048341378774233746065631613517751653285518298743887213456596446002992237696596657592484823260380491351890323401777607746375485156783470722448440207546186246458388629046870343413896938649739903409192344586641160367437464046044953083403105777157364403468254149359646624815337477491889817912606676948592192313003051182351672193170618054083081729151519782411263329679596558759753184055187187047330876543042148313785419801340340745350152094167087528932932422854396043690440440621694916505770989508493718264194143298979067719779207999772497316987031036290277456531342760344448926568767445026671228157534638765665827980939062686900987907950140960766980260319666162494774671561582267574520225855622932707368044497475384869670489232896796169678800606204953444209243953102999089487665824372232774810672504099337273671711282774798022359202197363242332292599492330576791669902153173503779652494996583427834672683685006971572839122659635813886788602389079855846842957980798528876565983410229617916506182712755596261102238444916198255032968546642505321941468436177154985250286963407345191144922000575576266891705459090192552019124588387585252927376840739460788388735106292467750733820423599731231547290770164245305694451346052025637108834440350244450586926910098071605512780102847605780181010556674803330632948188126203283055322153523576366867065791159816595464052844444039359384047101829896391363724618423030717234943769711425303595548485843820516048121587961118578346970171666567923356064877894149598069207594004919563603114563882457035143603251267908628236146455494714163991304015379891586216145286417749252582497961734124855512742889877543080166166689825816410779608543322251354166935154212429905644939288628919822831716319155609334466311055394713141104120725968498787493942640689667902333781516936983044011973010800966255442891063447890445355094196428728533802148671399982774509974995462088927247770965793385899489293702574508021805513755491854792482210291079763688615717231867914616527666003398344971960970785774805526344371155678749631499821543550376949863694055518053608980579902206224860435436541758208103165964034000771711405759479633102818202920382842031076038895870762136940821987841545925884493247566875997058692929087557624926501104793963124161766818970075589722040406935990944081592941123921440336316509220075668165079508537071004707648790384202757510911209069522238811072614764816957441433201602590471669697530240665276365899572304990329239498044443832172860337893720644068522490950527621225130731908527409727034838986558201955802036582118155763511421907086775760227985400666332346719796427847513556214815890112872607614847488751029790838093546469585146277242193866892716991145551665317466799733178933223843945024397840619016213569987027641985421874792145824715309362940373382189958207858256211307606869260523126048439943508118778140843259099761645396592391387894798134169347892060612783810898545117110311452258472634572163509685315749426135369430712219805415941062905738737151699777355264847372953958932708453819151994519841304378573237342099890115403510972551835599360862529984606345659587510303972422523662487358178568349027409913709880573610295230712227936822580688299499651796708898148004785619393385899724011721241116844282683885542459620654823192932611343995160336607275701302703228236982182797037417064815921650834650979080044714414979195983008041969769374671227253069591415105863287107123611339960793159135986885154650998123334647981021246615252337694397171819332624811281987341367527092395844469183782022877201287427522068130149843669767487828577789830228665603439531005222142639598515273282842818517433959135216777959225244719453791919436598674815771584347471409756355467882178487150288066846467315951105928742387701018629385632177321179396624920613342145757017739538414015055038656616076454871991670256338822068944248602815086230720680272908420517072939068780623836710089098347264331739602656303878336567302314766437185484037704784452828939978049646727069598602482461773862607178306136000040612390845147657847716968836018124313624355167273926968853705665214945786638001427100580551637444709565887817624480200715849195526495762656633992221765004665430769878368855919914297042961589890704965105080630881169790461157700471865507138197578482524686011276110082412956098009810046465460736129408492893440879811354042779267346623854265857335868408768378947954436075961706173918483041413026041321063768149810838543078473102073349526727575122453628463107397583465252521614598940334795148342347456287659574459599318678849506786912912246594431897567458982568706184508207827027210938515530254759783736209576638604481091156691452321056795906916707257998667015170279354439382834666904150582307707895359686033685021431477854458395654367412657679895689263165063111218501244846024556239673838601216168206654760319534136781526234281134911263966849275088561948422497190765297880110642796551530671349463799674583910540133164029977842390328561456285554271814924594021932401987755592747624784429069532222124843722779780905876451287053401261036348474052028393653628768240083812672216200135212657575518004996019242219427253469431512104629101686090757442900344390044508101004736040621605815590884491507648844863496904686308992078600343305913001182242090192657943588855262476674114718945321234364647107763999228203292763252323524330780408212090862773922645469442002039672344129244625111346288527025974603714770488280656654305578907184425334021755917201195637867596171579325982664046824015618386364175871075155441142554581748249349124925336857233070794912606100074365554962409237089368939134223081483904823659049451634094867424417297562339508117032895179324709126129346542761676522352524046116786456210002890872361853262944735779855657468866385330063537573866397620454774265040763210000606226092967594531442240926254914304201859054977890195653268686633520145581334113949808746265963668413108537811402625780817989950561636512888557431561368396098258329540392695394394034966721237379291023661919316800862423035016293157402818487264795153381629677053026418455302826811413827003485639866372639085246942859261168387970051736700030037113939726241342132859756143783490056659667098631648274472805827898765258789425950748674188635959751784510168359307957811846920891246273863514469074249562221228940400835127223064217861036359663359033769617344180546994600969111907392468866757515686440751378604732086065268857980064365538129918206318547011191038594685184599671758653000942672091207139421647503874214387962038706318725330070869049175840474499688803839358853719095872873233307392956703072351714580287771321231623782552199115883520708459722727407001574553862575369952869590543177651831073633797512884188208845484210024554398575352940873553615814929318364614887657043864026985841076473367111798370740500185594183525768337779746678416831613185477884447956924993466550335166925231781971779931437469370509337461289148029134607386187964875675574257490499538242654302667442618444228134384982731038398131072883172291065330761109282098647021562841841342675695277216300018495475985020790636772802018101589391419593572108995104418696687388459965354770365200565788132584538927482717098414350762134056502153876765943763697394793049510798112621060291085635381893398383367424245602813625085272115388396174392420641260803571151675049311663765881904579734725434388112224809252656515234149937194133514210140722180010681188214303372649947878056761233561321971723529374219700717573187627849822378161597647291887902245410144279063326425058057485677870813613663871374169919010301794027454163642808690637089356941615169331003882899971793351367269537985659462106751712890431651897487640878789664965880201431295397527885663766646912906397345548012328455646604212719223004605601119228857859942181391346025967662981308440347268936529240641120429093200290776995575696438260237273876712272760890423055973959885223295523904237475526250697036556720533921534844372474537762484168847995798292153154717992961672241661415174200430970621946762749655461715159162270655062337064153994140339335597602580545688517458415821026876919653423855909007403384531823672651106671321990929087302596754650777524923348813072480876737724310977832669384028992609099825560433874764722094089935012269904702991803432321243194553020980250942281721323040404337065209828570303243520559090409827703295485984803033013398036704997046694410278672400955660241028696163753672481643012158081862157618468887987965514484185215727798835804191718088308706584408644979951676942461158620446825097743400142973548506194843213947691208355774293299425047145488385635807949169326520501532481613014794164827837466756387094396786552080008263606963142641656203016717247602204367057308380539487092676134664638937320604859567295353520595489296768758358619253066265155165558940961123642942469840529513825540770771667273806780360565953743512550368745333870334635081525793036974604227944200210647199361295960376176789574569156373043113166505781915965395654577769670700086543915755786921968182402519908392318214613708541539309385994013649281294059519402268787376958833207794129284395739424406154475412612390657990651994012829387340050018155497695930418521021257964391623728484510610370866976681157368852135961419701530400157316797217071113091556057140644791820406256090445852678632563117234171676686138457354160306607360606791647943482323797806773741399242868374208183623933643337449280544127123106368745127856574858901769044393846792529140730584981950585709022160951423333329961194076495478631103342160772669896556012414980232825059005496916230742595205641429377691571113798331832649972199050577994973261360355961632273784226143324628647966205272844186104398917424342535457307107604778308523047528139025546374148799808598932817821414466285901291885952256264619784911537981644320335439532442182754009566648398816076183419999211831498557092416925747519310296462365522608002895861507978158710346795634632499894761680576099658024784541879248240620887306829994049067167717120710523145239660999929951184636504050169887084078780244172889306889335641477992856946574122975814776214925867548056319312478142712010260782612991371413601956522745681490529498153509795020272251942180496343880819664815579162843385844255398273365145556597286307472543419175864926587730724205953497480476691203044697604872843225040122020524640958583056239488294190201122185336946801901017279773875582524448207954646222521996093443871036878935146320954181394232334483643792047671530027203530180456099651687767666202022714026577011881999331573163848000147832809014524957564316093109004806380991904917010566989442610937400164369002028282368357682661121887768279956467322917171327814728860704671665139156213094038272036313379558722185209840254879460497455133199914702905513307866879513199913975592953096834444901662294857161822399186117882644584250495858385048094467629031281373414996129902690324109417841024391555634496858826433528065665216200968699574979408917847661488259550761227977213358970192541987665255155843785724854453364566201229584547835564468830534596853054687182756714099491212363054714427142081121123877927112111848252087907403325045573456447034260618858109416582217964850002301932859946398233981491506916522000939842276857320117264262467425725381015088155633160791202460061536918003358306236739152401173784109894851141447671068564818776000712348433149919643526221533009091446015491071924478950847965430908569936442162949411218786279153988686516614956143168588788778202702704915901791407977380347990157747627858791808371118616178495184558733481926748779586693512587276538955228350137952713377244746854841108570211417063290363977735480706777584818234658543571867056982754975162390384334858824152015298253284047642432673827085330870185696193131359172118021402767541803938088965166207869664368770129458654774909836521690817336199725847348356810306265843841481710661283773636085546458805434241916723870706761956147934452320823397868451042771179996269711847519828421501955161648735488451005311898569558981867960293218730665439196443723380043726407831529587763219165695084846907298366368969906721723142408527481554247956386014306033415314809585364969752621508982918030437070375488823702965347428847290093220959731164009319982303337544053560755528990379058484957745086087310181414079376278397829885934739213066274890846308771462591178924200497187204526634368116384817124080502907691847965922049635901235676338092157753057873327464857751295533931472570150583903252419984080704532387639995064596425127194855002959658719868468268291952875694834828141067617218223028633022912109606201089722878146740289730214174004443608206306273436286468619603180658958348183241195049207239118242044011445643994277146509600174400937889685865075126887605872917043838753841721021577507734540571790175003981656013878497542609777646691244687417034829557848263634072574741007476399897304321226134178554786390328185346000200515926010550779256379849682096678668610986686472963966421412389244113157324747916638757709125912150407660843362071425254689348047266576405725357643030920059503893343946452868494622639216442615185090381672604143196555306470629036977915360128227695552085279485591853207288091688511892820855451375641829575322175582751535447938196739203475483287847881242473451838631744292213238893436300157585501034256944595469347226098899258243828924799973445589312451210850976162811713985392161353208697257164563687700739162934736975783123264141722627821782517937938645559791152298593675755268474972118793566495823436251726622814213464220299817586934717724057952692503391734958165269057256458866448572756846432515794490091219252087421937827235645921453623725961227256091007793028567268738407533232474531441721468952650841234021112558006525102347104522565705652437487762098280122433992306955274039961394081105872114099683857656776400145902700637061010182030233103687763990849454155189150357888432189872166885930699798745811320252558404005116699379313579723859412714194090269974484603794907458186620564660759356688830463476685655916600135896152534441475773077453858530012467865282584232093279291891946117534374490778029178910440915420467494187769356612898766896822757558733657070333554952577273003186643932944711242697340274758649085410637452679230137679236897044289958421952032582427030596113429868104757704931783834131207419259166427476815600212432097550166994619974273526472975400094707428186161313604001595227087292835001258207532178500251384290065859106502446714401062645582568976729978702245909062501690546414738615109845854730921886864509601628250442792650321520008708662710239209908146691905152591371458565437710777983916117775169210943260605797275752391521549738759900883420093917034705185245621123942009042168962145474812360088121577483394411984355844444668268920151567167133791376460607323001002901166781240243902357186633208948800094867634594835064704903370074751893932565116625082101604329111042255334214395253660706219826051752404227063644721357523016770703393835242053126156833031433104743139260895523096476071853932943718182666174314470782573619253481414946471728868610482672326158805864701870908939199786131400373746072658463785003913242380543627715127243144119873649103376301364029538347758484989393490383250655598825769863654113453923428113707233190423167107096915507803884636603249989364115397810154977492877448030011111233633396084718435370317754793913969319674010173122310715911900666723706377605759892178777282560190284747688815492944157271800858672975473510440973494235820695937277801760845083747076045212439712823801786264983061399068192269357500839731209355880417862199895069105646475903216498941366110012352017950805149841038992454288227484245474774207677903077580871510237451471211657513783691146930313156875654937684914973677945080481074499316142867838636274050695843645787357917941397200609382686119904555240084485855881042766353492612111547159916929637716518767427090052291553861322896564204699753677415954460066852027681811221170625317437383048759798611357928884285110255462463932340956889024887179849597352470198772263217078807125844737847042046748205299752355685014731376874081345108036338613283310973402023066519106170252153078957583315520830451932373149164934467783984036183729290122784873823743932505369750437628641311164228839685515386677372184118050370927866562382761036284084726985194162444944684907936361583643694524399900649629497621090192133952004411302334123799320237733060643229536744326532203674576777027107248354043312005128886327127666285389721370141578139995294922906552477418765379521632752682130493774592735461755788285410322086966112961449320727363209995794615397919217780071995456023872504449731052431499393679124742855898523477606582904829394120293094853780597943937382888161179933134754702606669519405494898822421047160351929881718017768899547945913941096561335954945728977780766081785860273156434771296087214298517157490539641904713223993469456077299449254983536894529752417798362748127201733396586860313137246777096957965756752348968290527877775319323841584988458294881188554693236279307294095580963158752218388319062197925869537673792665592559714112478258484042612038634655301642761122766221403501560247208645283164599297383264867495937015727026678167824482564438908377098861387046011122692609444915906630401579125870382127533652440080649177834781224198161486444463374050345746287916923439411483503836164463293684514597230287011098821770728198375306141824917949544928514594401005661774388990683044815419702222053661537396711570937845474158431525844428359539923113342551356345015765604978858473356769716613672725686437098428626946643098697105110059838539930497933534650523749874056303904922469320214688307411282595734059254444540359042026537522180077874381152343606065314482908927120442057532220556961256955199624916996526490466159533641014797532784993997932340067085296265672103463440764533547307933824884169912364796154508642733666478693637660227511195122458282388916017983468923400076575082844866825925050813284317433243997029073367462385479781975976171212798409150453825982158192435664474612343282619853443256256235160173854104592129970779602245562959267158403479597077159058274399910905467322733519654151975986293398359110600804473878688097711608449545976097829761777578256995442987286262762573239765778729946805554412246341665612347613833306563100916693103094150748947513161905986274267382029205621133335375700963867824878249346124334142582988149155343604684315315115400546760319683723805909881901728805009206464703340291201871044821728537998830095836234185824712566283981492088699596981467304562400612980900031674553943723249191738864501064031572770836912594135538861845305237938921571536860366996569588942714069816354919798766412410415311895712357819201286358789346102352698314360489610894304426802896294338674936669872673803631557903930742440242372060583888823561637302952236905465402298696107533327391255455453907558862345804247363702889534537833239504764188392872590836806570238603940903154309387217430733483281471752867023813468883132019969130310952962154888511557756901510832658925922762765598445624197164411364648196345857883911473618418650933748566962828701851643405613930411073866349649570040005132517937205155636786608823498010824342424602667414334358660811567912319162322909028915324109794088862371107377631794337329447456415705835520718217471305623133014694368991514685091707771188002165814859514525185123757815993334932255098546004408089390149342661879146633740884009154036731684299492829286766629628100157234822056653489555807892266297496027767796953076966273774348476957813813281150739006978365899840750612860669418706253957161459227624881887545417482766065090420086122665952775979432411042656688866967380193750068947126174794622835830843661263842005482401527597014582071149274367069156719080453781156601262144776686975568489153275797161399642933577371409864729161882462578806106780128702418136320052801509045987537038484382408167441836818337029487975341095293232942551743062985915663256001512088483625387647364746498672810944466259383806518933047426035638709404877364088757233574567865819438825315877361761536799882225417462920127887844414330818502841692243397857505970747707213245274594267160957476635824826517212538271206968067227077730704967813260051883542174919587013789751809310300509029362238293242397963493305906992437407215913140057725461172522112134891369273640138887993057222930210730028764091906202082965432872277680300985392735970406659228892462935416316236403930881300710071008065259925008219203512268386075394927249247853997098522963050174548809683636170127556125940340041545720814089229604589174601509892221265411336641952592653709399524473727681941051614098055232772402329002330801256624021409925178995198203610542348930602768900525443914154508571072857138145759125856032487178174635076847461290995789264925950979193074121306817873232762812027046564019866865570818215734141873013499351844038321457950048358130498666629669236545408379819595785253142982838543811758214123562350549087643508168439202381981214515377644859712071799521035901486912957057396169161554645315160154598175031073549438514268966042801334873910134906133243612505810260397966392116365127504637745108251900096131277735711664474600533812225572025759341452777553559149202515812662187578014399894280539807605229659215569244451929649119340869889752852810039306304770424504954056896681250455133231288044545564358150119963212792281417714157449824301984539453539666277971778551510711164400263061261818189352026894354300733342499930797248806177591004352672702375112386136525276487754109750480021379203827288158322750483484119364214286599985634253699528956578382948845992697029456977320960790827086827159484558268929839430253164586124396110322999359399263907778149540664415522960013524842884154500695818780639231109914309485133030328701373458327155924809119692074864737098701732164002520398053969961304249961538096042111629500198188423543432923501006265366936688340646438855480828729313828637781280367480638715136981904098594461472289660749833462084987381303128785766313933523666250848776681691275648905907019980474516286052119490460600213204930086539309458778962747914171650845747448845673796162746282971969817495752059805014263854811816293326250069450352984596655096346634496677428189378423704880044026943293858218939134213115827200056900136427330796164665372766866767660519748883903437756289377453502016695272559006171210639446679999595234838295953281841772528874751013731427082329851465217718616494202028165512775102999269764539042947250807854636873324080250728309060649311297352915895708116822858669051161664378020557964975638978610689996917803570773693924964572700089541080892232871904708667296431464172203618174723816039878541601671601854732004648661755287582066504057767396267604443556173619411619616970493166035141164467302454551426392690924832961835912578378999070864741270402714483859645430153286594085486654344117692588877229195689312169478182138648762866172066263282574219551541141895994693555056904685804128000002699478428355108504248704245799232099073325945678592227852675505074968310664663488341289009956623360011144743960925947031360804701016625395611058620799849701634065317059496907182664150425321099330479422728537488032915029398467670335934732612807698750864940062389034961959992940623389535320751050605933922711473778581861284442243847181994830474506640688941735844682568161498406596512692384519849003243377634042058447124650576369081421706412951414061724991565885458589631453612428392730555995478605521209616369573640408442551558403293968505668089525271190402662440323648601374766532873796823045685354845411774956300251179815069977825426447470289180939834228137393835812862916612800828705757936438075379571520400878554453747097934740181495725148229942097719617255613569310114000523429959545439347749808977028902938417487857140784594533523242952333577274613447751554330412663134127226204228540983792841998583983110339787676271101570677928221072617691579435838867467462622897495804131379178693085705163569013402551323911291474745969610649340466686140601143477867298359828983782136049436961798650680345441492903115840444897053082315642020651763770399033396195682205990709601973520718625672177177754754818076023997852704539050155867748229052100037544569895180015414864088884539109151200829719411641228663930108126103083112184650865511545762054422874675332342132944422223408224301022978165885810327148812088315698637134162725926382769774450867376062722855452619759295772068458300033052420614000392158151296619377566753000552006420297801446898419208568963885394468138373739762627350256073445499992857800305928326159244674901304279479149107386486355850426364818458810753089438857190523677651917784958893375356656954889744798708531765034634520953163179397740247469625161768986731018939450095659405407100712209117839623703978804393468036455792476185522816298349672139761848948296393307849191921981419978078122766108849200020948982879444006790267179441286318674836136491193025066044991766156216611364823774929392281302088133928660503802171939063546767983661321717986962173549528862208994839044886129265249860018905148966178479302061683723885006495286092147050294981700206335882157344949733011721940409448890174871439916025736149660814794526485743013838358046563547405702030648049866993527473531679842565113514321644125479535876888304333388058175898611050158362480008708850906311921867756622911115644449167157392731436400527533777259379488333058088083601187675443006765586691010690099219950882814140920503832700535188438472685977807831399654730665821162313243482944928787601961824672297902667067752790394885320936132298440492891079581860525807039063739884916298076278445967584255850762364164170276766513768027603063418268633639980200180857013361894024672444302122092621035135914196664167697388975514239727725718150998572749550724154035346289844787834562806285782512424040754710997129812782401733958985317721370697232853063895972161010186942588904120632512196192917811676887962863313124697064205508416568204662394468167487382117444668124205846121550288813694761276756419055041897268548902783231763575997266110731618091494720219982608483198108410684231314967300962130306076459223407237289116766197618997051839086021914161881892705002233320120780697168250517527985658140853711940861476611823998051176819139082249233320663975132242168337632232479808468810287064357324903828071168846527847717400992887879821985959760404558199579862186553208805412911047006814497618578945522994890276048916853041793307441989296379838869241220438478246500611491987996968358606909369755895949038131386856297726689369214277993864964260430837228944398499324881586730585887816956652223337557791915167691808581431277335375855793123864347432982247550161923510442620475601511414410841382606830232290728720060624479350314163857317765339647051413700473822207250303400920215681550878099121548625487043177521987577359974510097398411153059887480226683047052260318533576492402066822221225524382735482314384391528831272437611392553280890916003738955616957799253662519489457699541118739539540227814256040991563112901436281036510492216160746822758616681733635192735154050401842538965380256516846815075987374995407291391641655681432728499339974950152743611294924093529108828230548812254343650515697446997157089750142826555821181113282853588384687376048038033984241341721980791510663389701917676834455787183865508942837042328921175615460164616749103891150129762967820649283356431293202184559298619984769418423143966024201177842498363638393590476612368352081882704185771327942819147860923216424518125463995114157016789594711492229390045043819916540406065301544183000551240794629633019880111572624256855308183040702806127442709179836645131228425367455200378975928839702758455138218640688404563997902901994567205348046421794621860795711491381163832627044042614016170952290520497330479258852989947973897979047080224662485629326487208425512721305130489724268066992677273179550586007022248929714381279342671805002823649771404835870375715538962469306349161349964509550850183132055578242187626995554923491939848907516661492316314533398143128958597974290856129888299574236920546270779541928708234731981673471491216230294296512313463806941471643644121416730352465020394443512068070934929718493314143527787560525320399771970662140178391043668181688428284858671250373856325616824874051891834882528371379208245486389433792529127255231766033450657013183681299460632145241500269715758183993772209949843585742192871315538445364296992449512014004303410557595170108673744278688447348451886496821878153264156410197222255618943199085290095037662611974303127508253615275212619524534881679646504100224408748970176518150602215702810149781920799861681918549549275347900824803908957700024520127782906144594751035557132244830622837042849344104660418204867696060290677636993001164218930142723857926471749898144689843981656289635667056873081744799876475347250460616056067039269231314652290891931422496949471521533775305205625401365709051129445300155045020064162262190126987433949215902753696002568420186634299502693099310945264429229759600321344199907264196137770109678974485965675155955653166567940058489652682606166966967347097498163126622726520577719639303235333832891840858847261706156173759162016976664324466073283087954422812473102330637088926811520923192796232986531383910736963980673391369823600870268083174825919776095204428207231462929954572430971861189280240583353522795431412870299699095436330111444189463545327016236674534933006238407501423613777401786691619593087656530859576717687218896391897320114729491390188538425245671854677473857380180138823894117079787709064913756446492695207276052124542950338246569619934776265588125136767572240379126302465424841982489695535853524403232323012135714265457318500751570117127616970523110500021539242389977521554496546388884130650785623461686506725457362220115965591347075789372397707578519268069260272950571860523798818283163981554229896069040379842724931897063134401898234329813170630121991800970160126663970536710012011887950246251664910005995268122793499512100609515052993421743362385002172102104395569962628435420828815825648724492378253246338898916038467679765926898572682418740422985581601850096091202435933124749041593253110918636751171951029184450677701932725129958165066493019951753725456574056249657594177619704137592454871484417311481688806362417159177777315766459467498833163226791817147023516289172100764749161836692687044456192083253549843208844727668802839891673953413999729519468929849834096257152598016805140108377497137940758228120665482618440372137298811753775958702954628710673592285047283878451728890946013111949162031443768959495074599672064021387936142275321064569122482878244398172805131371384259852039602197813926896420968237505461386768809494458375400648529040460626510026269062516842663014178490901836522880104299422484396589471534821121826110745353031190336930527070752217649714681195495166273443769012320173899397855648653894355724372351593040424959890199554076360066747440720309907413234527238174182252342406604913938273052623852154197053119368506051424577457422324680989729855698005482993503741989964134628381581486808078491624127557634147713899119102337829356231996685971448904704708152594286437941167961185873528555732474681100014093357919748693949197002354583346957747069682885900981365015105976684076106327168788144331065915317085844492860696772027256581440206153717315516016038916772368239388563135801469826713203721864914484587969279347615379013845224593264855606395080493604132262027258434517800609045017142526387432973268268283839998520986102230110785173314590691648080343526566514677015440170816601944561714225832691446698694323260128257898826090041605420036542794234075369050621357028070020182764332133312520277269667264955979117980957992094846421379626719848529952727268316480682119362123375600778806409365889543545028259960960779469413469281834586510496510413796431045981367211070065342570831138516863241335665023222644800681428661216730708825569212872857176096111498429318833407513858725268527437642950409398795280576664406645557207157470397523179365837640111130989202482776951539801258083539548477154467313158457315350475028274494996958075544480929865416411344142275837085123131133622137404821127336669713304189066738241400317287348442689618130084963752857191259113996017622673092374459701724140784961208727716802419503957267418973767416902659880206726072547967447142537680442495357105483474677052914461102304664755142920951835300031742354204875939146735384990970919633871683929212313058562495691912509406807628197342656071755982971132990613564771755763492117613475016239328934936895978026101252247773054639122101551457842438375436916129936526928087751564674212852711686192044479620036459855900895312534668582726823659805678057179703447063904175169708955129918294684601557274711713908450437311053481853020634583056798071467251785145566456362651304312290719027400195858249484371277491203292055847998902629427597398447960437239000922153765148151013726712370877692836929166003895831115654302808761407660665871479947601038971442071989345027823639812604968281137973319775016189761360889687503181086941065043937020619201178559176764616553783062306856947863648761478751941100017574357536742300703962784008341140165975054759278152871226037656207996093979226478625672720210920260269686616495690460103054273551319343381179190472503755365125957585632851785749297310014572188122892136904392571382352170528652099656899528291217148254290256080557317078270120029763882138598910747031668117278415488350897950684698638688861128710320542940232780247670084220015928398636438421516527436062692125401720167925782514619840681382886709728712511293197152716652408495981364048210312112781330353368897808449237152042000260832836699139285967274233516841445692972358851128110279072288305433637847556835212164025242380769651505116729848437171095675821054723724699678494443970631463068132336121968919501543322957455407836011464603357045716844004721766045504825676383997711140454319741540393526675132935055534268478810728153039323931996645486766309978637002789651557729021821019034254576069168379719791286736266742555557195128955882198727142629963106781602440444472058280013884274490338017809537779893075516550784714925178866109369999182080397710336866569008227123273920090969624517870222236938632254167591714485359766305697389595151196968580177520621607139417355869723652892686402984996615431087665369837784732214546284209338581517514190243122502926197497810115573903757625107681629388199568142785131941340841796598877323338338376885050108976126532878276838978078603240961830468522164404076926945588359939059405026730071930402620814917859862799552293555123961891670777476407038800773684819070519397467247696382880066929890393171228754913416618496833820488329702714429763659907686228581921284637364961298862497300689152410403780571422362062712766455609843245632953012818218638364585627331703178438369053475743694230933814605752512878731167374626348807417047188805967468638184011301411969197970967830768568499905377120196013023666804543388672543750310562994993142381007297804188324477238575041244384047557326123942080432538718601991426861502653929181973921758249375298420596303620625139039771759490996457947332527970017163337187904711280828582495014827079402159419520760321423648317108493370937589200451779165622851225393907309231971100070690070590767788041641853864599693539920499709077961911412640939294333074373382045287057085929533620589244097797183774463810227822394435089702910171966202780174067051114648955320708827577274280981386359529233991522897097356384847208502545652277716802759616408593728946553445027493642570988834269716080989754483106548034283126484241943300122203113311794839363183530071673364469171390964399608342608630552199639823840799123500588161189352633152860994912701549625024133992611940304222472076569827874844054529810323911970944079490672777453289497110924668082053708535555275779851207747470564934039226547953134822087768048768332369666371866542249077091273125744367357257070064303448263418799608633700922723217693569027009654976684809275537981851416185512099535843188262055137301969979335804425115115350633577879268382938249624738662965719680252585379265530273904481672245238904506261878392271280275255293067841722540857397324176221635988106843710057161737335869835822050621646115481577661566973689132757785844892755770676605501157536709905580112575210086854854723586919274186398751545717171979479436981432705239495672622555043753859754001239387655549637031995218865684990335544049350401732705047559533267625669008089059167247356205028504570863800926947511915011210531951177907249857553419798450865625513353454305484003462354459618803226310569594510186664583475665153875809907714390090971802061111730557620907441323847546256294827044223018411698076800707693363665317287710710624661822316310372855595892003996099617009697932030198093119077293831934306271659458743191452893543210779558420673025485614651752202871096526166031990722382308590682378452100352540797010198845183046961445769883151626315484679953748366089644599223889448991856942615283690832035642620548615220880680693066487795629506845460663672652560305575783964626721926812270831911301101835170754130886409559083131624969363658660720358543493178601743733442545463240935515717430804154070639802000592493121284543510016752431258208642717104485239433629072403503075168953154802146831821584505222060149400512436154196275555118144482475274921918886922830049674661937821926460147785888597166847010607897731113480980641129297558454747637810342052668304245728791940181657747906367923565856828949380794948769541180527452679895215062095037094341183101912758547214859273469901685123117397082923193347445511074823036560913007528756283256947286696888757354985714883180277939742988193949154007114476988673776374600314360394087957349847971242044643645823517405932438142888668148455394979371258451585678346718974328688293215697138207644735714960104183980111630254296059568255035032426065969593236918590299619717487015453200614610266235160567254611773510059666960795375230537501735371632156765841714271415646681517075941603751491309375082218769412389471456640595403229426076940850966539849638637569744226707738505407175782183386471073063697182641673592321213873519764396821582823640575476762334533692627667273330134368077756929092644137986949712468093849820245743981999237725553395660895202444463928693242243514636069052832341118161888809501906783725080253266069250739186310982961874645797874634430329987461157649144802420841735702563547833605046828914543904302459287940239005915804001083247681446455476304789371618791468994357194833143382754349236244426495556733799570693457751871096896330954712847897645351224718091576635716476838045401073347985639731575597017590620075891169901394117170105459890474031860500179183550638095738548193938082733101293048795382704037054357349244921247943074630643856627784179672319967349617693527970001246604759397234610052466469273318263447601436058057770095987772683863627569810884064185428070958262676562886313973081655193501033513968752707662415689875633649448517179710242605592308448955550563764477621414713628320140542493611810145115820208223869921961684324650719578552755198412767707785916458451044978724433329023531481986449247794100768524519841691241293313587332495996055725296366741864905407516783923821743485354000375496722525697270257812926850644458179413914736516204410072115019546993308426770087582766089351036740237598852879169423851934432880222440942076856782338623029912464728985776069158773350983704312297669814503422327124431910819915406656085894372084208318374197957847127090944693801712641109689432493552957244275541643087726198191013830079906488539575147263387754290471108411107415132411191251001410566642278097585972768260278899416501549797958182879057529658677164583454341558548113256370218758010677152313411038767945181375442971146845492215486084074733597268192768190310948982459262691494241603353984074531905314825884603401441360607328342436223852681003054909916468107039979087736014657879883884886095010193262007984185205375377181728235991753642268401458196065930221297679220266263019359817502887135513580353835599645068130665244333211075454770174295730762607777932961925244283212681025825339994319356881677677160740768452975434652037731762152489034857040937213077123978773824211839823012188864327591767777748502651632349276113760205775835325327519840436544033449128492221296123071050768081428612043099104614773640041794437137923240239049919624937241730364189122310363582878243616222020919576085506115256710209448400560181938080675865124526554611895513825903103278920146908369657836444724649978306166887628440241360204768377773601647701260161012404026344121549388488682702067663026138710464055766170736358504567441414559419368013906940321683121742085250909658809572867765523637188195238552793731525782980805160922134914804659144921843971257157317142730209914437305312235311004611343255121584994452404788808789196947417356082751698991691400673399621183718588955991140223318326503594964477654444081400807578984594286227810471592721132584120815070154133748429671046087567614600465963707916600310666046072492557837794894987394335322251729404182986977389918225594149564477911945914938968713035661228049298169985150427168720657887931246135847391248887024942657252650028536079551536470182268239737370736966559626771197488642752413968615781928257088702787412561710316521502251070841775858021043570036405235193690442301566843865601715976563927325232612874659859694968190796905383086627117588261733021632125116876369155425696301912252904419893166286557690348696834449561133682605123256719610922010431892750623632316625655907288340706395310243774397548961187458229965992265326197849686849710944503784404904166887519796944748500053171457797600856898062406116469449377033646624150125006309819922263229888516621722339224804983115654790828486265965049800226903280249805881392794346178618555491637637871867353662493830962208027874995561267959848681978237989983800957653027254274390619859531004402751596800558173992086585549453682567996137531970996627944227556753525686137389444460740773961959712252059779510733843517009101020146189243818039582199625710807679820792714009408475044494484175749426590002868344213607936297724596329672197917868377285394809798765824802476274589650929348795032619772306370334848699413289637556127410458336795644223463865212506454652681722253105031566209748233348367194917817784437266602961569761173802979065116063535053749525061728199641067118049271007488529577865012288123646442429945176078027785038211042755859275859133449333893225148263223207474152179715930084460866049219432436258879593348320838532630863046737077348915905502017582220634232176554880319734265389242894511275342665807818555883296811548970920872688938534958110324630292566956529143730864292339443171204493922513071907091288268039926392365106353197919411499646583243328695484802932147886789902255092442328959999700420622158605043275090307282711519657261627024105613620461051987191797891006349802477247345317846938330074171383322861504572029481701042199519480238150394463807634562446550661346295209641665878575643623953047257684618422175383937789383433083764941637829403426868896017723037414072633919253374414768327886108785452688426377510039787860582922120220980874086053477042860019016235988189637920607993597264812050528102365207759685942603324343788876354234306721310386648893687787479026640616108319845441907308422603443403770525786345897175825784144859267071852530252587034409544956440392641097768455781559356083079437457879471911325095068097130158862578205849120882109240065834711887609688430566915323765381432278911664930119842890938566825131139245240873387269163399336460951045629906323884272433193420252675005670283569401662053701157974982443517552200631865162632626945791132933090243198801163171397392597529798780524896975259984784895434204490138640134168097383318331758907317856609670590268173704311164420264995530306380598279070289963128800407609951882831204005738443818991812653647240182225878289666892749429137854981133018528880980369853509174777242982814870560818606944594177678156354586332230928118338787306748029685841709298014391804783395686241086129121488181754731715269321739789906665483280752834349323957257164731650221678965341874585516424237784056605481922030103661384323429072712299872066587143956059146675949458856014607641288139043147046320592552206598611170160333994686384720374830419773172379999149135362206581482393243712933485380385810083292783108320953356350751199128407605733016803343839287921348341983061553150955755164057520113172269920773517943729894197332167859392515377717923326681546947897070147196967905219458747470773937497339351698173516155812707947533685985277561878831997998140070958669106027171421418325926764807455176903357428328031910779795484950158756983361797634470694200289482952165252717596184266159570035394805811619805326946790556241079840743573714281122466433424695452072843991381034671419981045456850169279483119585060378069939429210021085945817207063406227595466396677839503085198355094974330665913871731961058779431447875982313464526960541761977907130565977741204950778059117339253906424754523021923792242831887833080436086547899065416633091926554949290759599523172865112814209806522911560754231618478475500862242078575026435366588595986288422190160788114677980157069018272801709640482510752643998968684004777376423249949269369980335545185689363130268662162770981284492087849797093903386402196735571183671363569806278470076141718510318774736256422420493754470987471387930543437950471929901011008208594183990951271239284892296520353197745600648620903925801226117034188763600230177185656134992973489910098824218347842505602136058079028260136864499247729324959013825038443807838009190283492812552183972215160631313710361894049000453410308134865285988911156468394569224615121321446502647258272413657588996594848712557068719208240112697213812462488130141232754965369853129139889963721957123986897231972643753366721132808024879508731265909559805233056340112237185990669777651600889811920812460029826229852508729800191210850933487114744552390061377363062764733951117901919582144360798796070228753446162363919424338125784811008598904374355125697956042357223370817605632418020297015802381952269314903681283542233412233242136004731436642695731763747177157589034731687115049592399404468278502809652445165720983617910658694389710768933915234204868725758921263947369638603486096697193729006165425638745962581928748338735335156263280709670563668006695084863294493619650818533638746263893511235926664118570347551810997120873743336918934962755611333254049229862150814081661252451418278870332701664781884570038691945972605716902694602529801584898738959120976177782021594456768885543991910951454295403025172962133423778520586457583658406377241820966939696787886999809642639843543234543217859184293525116296214983783537452666040613386412918748625353236203802797116499770348587322626313797764112481949072803427248659588059101971505491244592265479639135385235447815404113172507069691108212816012156371172600728959243246891369496738524571438560366436047627999781109558297289341159005446895240700186410710448923651783168309360840210691262176689246355160287543002626318928458320473573669901469581662335283735860663365745570833332096961078134351210018276904885990367339088139015005951597923546877001846995922575492502546736345288484824122264648353318662399836125661819087202378100332229995498427953036095014984668248893164603698692095497488171015720126853602497983797452554768299204866189150220165825063427238837336451312154413652413351642385949356683567452673434802367081137587789074432436735574041712253174094478006378996745634106358471577266932033680278676538492691475921441411355950771970612638122135451806028044262679571345586938917801383665843381593128668051372560658692439557210173780006147570939480708421653788344083228382400788128549723182114303688635115548075995072251032508749327950981737170486898784835870013816309229513311802989685946719956447388275390223526641780862979452557968170947125909436369487583995655439335382764530152130767380518490069201760786756167826882017823819517605668868297486775497726014747240908462549569424976300750126683201221454744325659540816103064675369406879777086252478268479874090420728215975807563630436752137717667339583907100927036544052037724948564561965551617499844124242788315909704808840470854613908586100072021297597606095490138051915890997139545561563938816720342837851497310343457620211215740044965615523205742230460785828631268497804663026341210980864933134639429893673375984174519580782335624819642186419688992447054135037450324593542741546780482642904234213414633361017804459140140146099461563847633493036387334433655648865042918821705131801490022789445576439571399833618254396151623949991120905122620824713667661757317634163432498576223869567757789659665364755924731049333886666289128497986183983078547413946510376706870076224421161648332343631033301046974113031887734046146711052082210598257514580090368646543003269033130404825454986816581359660474040019575709754538095552319401102322873556655911738933411619794240313264989820639362247430581333661230187230848752516434741074893634060768802729683468178376008344312684068182168272603138697822806240993892092275340402215249639135979958752420698058381466772835615095324450521446799049972589794599510616299928493673082232061820010133538669659115268973336854797043719985820767460280441899764778999438156195327240453802072597127528729172083794210757830538764584511893631650280955426799464104790934864467539313823738510712554339318665474390265328147370167449953291334618673424511079366024320076794921355641990610837050611991135282440731764263651519991344530048359327930948751266560259114517047855129142118739594511010936798146552389798624053448844664184583903980113807417888410158693055332495698730658291592680015688882645975463554569140745547342383513628550901242563390931209356139356764144318420785470144962135562044969294293201493768445159918445070622457148459123790913261473933877417089645492250222669100957409994715790059161023699581119533913478514434691681567600417408423082173174147451707279662047305833905676949619548443673718996151606077036839460772435808002299247336546412996430918393429818872076744098155835164190236089479772075856528833644700912389076275730932721265009034225835720449057718295131249998715984395369904696070193065934544032014433461805931785585310180103631860289245242390276172104524432155036707556296420048577674880370273165362270781248920798759453019476173049520556766980573899415842299525526017188378429497347370384560487259142171965652761424318866791523858068176120612457111663985875997890332152744291675800146115200357933601823027828897608667180575854006453870409466130276571482672015705822126282036206273191761129731305800665268437378777372074839787203468396395885150258510761176860487662478833360321976970759783485777055977740758981421317883405729157831042805878629062862039779501068317704231990796084710282059757498487278430082641052048787355775552639380158942758600077680142299230521770330515186916031482106804456853269945682628183020600336769419774614413678039920075697986652619816657918887715400125408701205223163019065737210478870926231295691467342586864343987174390753454816088721794517034959502222139656629136672718725045873437742862056669270441028185432932508788282251075775879678240638999174421621950742652926570495328975389738010227415504298730639403244637098251078762219815173191086450799749541099271871331896544183073067432498166186689231762029880860874026100120417927214821183942928019836584453705820979957734366967897705999716012906180131274305287494891150920749406428250230669824018019339788500421943273057769848380754089639639879705053532120750202308580016078700263701325632919584825766494075373584322456172489073697995225532537331999431988389130064411026036594751176978237465345198318767251973695201866082074625853778740529105610517144359689200394345876895755277604932742931433941160846282124666945834402805147156542063032236142876609988590654416431177583987756501106716556979052914599492026261649777673181553508793570714600141223851019177893990040376107413820714865224703702031976213781086318065259351351460609072305856366093009670576388530495786549297645243067197902129515703382906768842888438612966729666371150247395901666443097965655319487941419214310097090079544252639259904228279485993894689984530649395786145991990170448689537206405392055854625373249939311670077652014750229304521932838060635383844799847293443087220360916018025818058725319502267206755672108935098214976634468370341768738459703403280472993110890545857237805091798423908150997758604084841919521754275724316134042971318056539472926736166065507083813537334997079009642356105062683073191837986402333999246013819997217432439996713273753439091741523285415696915495666340718912468887445076720687575482468842079406820803691370025754530921856622130769195187285700283652795264352579215145640024039865410560202481674740092195372740567164784959588720986201391182165358097344217860734997405568652956933999977227006640005550866792958901917369101903838490035461922259090736245546342842244560316262801296011696445778877855442965032829937977223099139774926305513777814137475455216505349469289314679678461777948918877482233354854629988934578946758405409066551557287733654442834195432982854925197020875911469434038625286368044936115905060792974104592174638033865737063669450329591156744307712592857724884076861939889653826741418290682435669746110639759206464387919561114205042517570155234110964802748503133757500204861148815918253514788191701165590421949021346799247397472197164943844700536829384089071858537780206833914886473159343628182108741907936426074681525091636383446728236839936976987788629110869006624068354052818208441442283513088598921964889677459634215215845205747157440177976026068778667567013188849920877727155331673585667547741539030261830899435199066638539611814944022472245988189994793849962711374474607155949719999180867231277241964113295377896236471983449998199359439803121367765686114305365037439842441891391274789355778280320186159538691384418086309548451519690232905040062207516942011460458297558963459909574982881171924224055891659398092351008678237274632320403527824440938626288689065493661459053435315936681554360763097767097061401642215093166592421424033232482072169091195109937504302958435252823814361626898237702439755830514021819429337867079971018126037358035423496975727032710745203016807209566244115892026813327071722276300963260942459471056890584141215879531676248492368153950304875690900524632562804450514550407946855317451121888526632334234377006341049695225721718179294249315195701324582482463019440394407668306579713633833099569520263701333511780069447830134086432240235103185046680114171953122029728221292138957167173858166828936726846738681836358513098375561450945814838319735982436765766863442639564122618768742775290075208026027737217188750718258875468037094067908973099158248232549274239940162716877305325172637431297750424877509287356862614511155347902270318017477725566699217805825143513662898930734007147999586659164442242722202414756768341357885694468297781211189151313848805307097806346939115453470083893480572529692809611015315839086500753985820718792675969084097669638012795793010348580187862659525458839039016461564658350781320272696372087113633840295859307595184882713365671244274915843683032053270471955265009866813309609748619213308452644873118833665599296456532716871081396695068144121319097905941804889694216998985318233216349901169669718076410596933604098319537107333362904973446652393643974485595046200751868901693734949107566183667748801486786058517163064944998228477949060194605183650981414900278387602997467788879247788915877387849602914485056898234514753963887179169709592919737694909769512947685714251889002034704924857529662303235655815062243664416527457164220918377012414618199416544821846070144999327608386037832493331494871694533701389625731659365499785345286425818959467226426425082568986178159725623179094580621311377113719124573353704821445914117622820786666011484722660210702551076443322393205923393004803726937040882952667009521654468242748102831939814872144374467206735154564768351716724940126504183102021901614785022662885778164816923583274313073376928060333080629628506838546492774072617184653640175329665942464275268767523805064690737431244662133333445022081887713943118851324097417068262330415466023709074871087072468732104602676391602154509856365035887175344540394795943793915518761580532069527821557709232904987238589131692321510872607691922291639848740271652294298253745588246007822935298328328553206751835357599934442102257047278969978574691209411881514440154000854462073642811971639971154416986091886238398075764801432526617795818289327805533247990323066592652807395792474385213554321772628710221623202820402127417984422637458569608407453538814006313572305797116021852067601225427322771468028076127956396632333787342910119554652718599842352787905237241835746827842889025350895472397455670575130360492731398700573492227262877880894581946077688295737524092264907421860838887806644332553824426364742782787560219826008707975894303828886539612256978469056242102071819068992029973722134081144882839356073899830091773214501826606486851780869519283789224620758252692413235118530713830588537773639536245865030858198952984785314407774062873989938416961922551278532084832980549619363121194366986583175105815137124526972437603886283419606634281141510365488201597857157732907527399526563231415718004664633282157100503674810100934335700094639676393319068031674225339275779108655927800569574848284394619413181249702238790254024695448894042105551070256502301898437162475789305262355587857591176348784513963186091736222717810564990490185270814934673291196987087157606355802780485364525296491777207030632726341156200544405029634613532632161227049037439144480813772623656550560033569632040751720998948381871291622391953494401578430855388192841212181757317290357246198887335570563654702671849621353155378129312605118302739453908723903575997618253757347499200353221147414428387276069273645663874534980769609252255627385280644694956785604569004428278811202534015094337483815638711994905697810854994026096300107276615948213074853330716085012938399574229734129456821307424593203534336342099221136332034186544276476399096604102831742562149336664689714021436395971305530795825208046741707725613650487015697597840737750914351187179972342267813164308033237076404255265704066786246971862076089729957148847664492896601426026206693761316157529829997184476564580391891845937937533071857259208709238036933628968048729318778739367280130979304472672281055918296754037300491864491659050333744170830234123830843039751477894013128530358070718198731619855684897757686299587151541415557576010357313964479047570223375594796965928530749119858627692423694192102106976364764263857136965189788605363259921875071264777321722971501742999516880278228415694540889140891731549501945460134981248145260344418485012808326615428113472233510801232407491609148744490407910828028091226574207487341212607645253304250013468006170110093341582660529932662204376396741832654494399695708424364430245664186292451513117368928237220815492640824645905855063745849524762935163689488667121123507494976072589472069475047103294437259297829336622002002973983956877892387752520012363955841408197351379878182418480402657682314903893132275308698068103027126425660776513712213904423322062370079081259056702726983338534108193717936753432615322615018593322107923558627377408281334653507299680886600200260446652768271975828735903252755502213012722099362238385875205592803428740409506717770884861390638060370060088815321610057274685490552511447712919994847944012470676138918382289751483300617136553009929429239351650401242066524705012482128831372298661149878824793813603559795308780610909080322702226278852339376941965067749514046479117059357679249985069747044909417873377294768226758999649338983010695232000806724457817679640694297466641235747234034264297054916047551525207132785946107202041644610199527955077518410157769528030024094884593434275434995842125442730949448965077702197049539653235918027188454709227943937052259761068085272105613903782214533127633840274877927623378051076891466920395310452453669222367837636531783084847101629875485391101710513402913384915246432161572209774070360425081838837045552601960813029817846869635230625212412357305370651438603374499753276323648777859925629636808869785311170882634096937523712659959774126868513501170220154200422362195406952890702918520536625644333494039430169980143077888917413794449091897305213858284538907430905243836601623820318907322848206217564750778537207572005723386032213572738099097120808093834919537772400423213558774219372598676181872652111791667418521207247278482852889553843351701327928786132892597787251640247573249720264783121904687338109480107516349598169849441439151333286307945342671307525645754308379502589187495487250864979089701441805239785972910556942767992158886032835759272894404892491197691085988262822146904416034073291940646508741541783945397807307686963911591293496591058174793196722186438595076193749852254818632569935724277567896521948889768358251540135750849284589402773781602930289022060969559067650670327271547446366342683338510678533714365339354505819272323502601638211885813329724508463426293774974064496186298126885859577607442988730751458086998750727630349216264805550068594656253532355457811813010663051868915089692776756691647640874350949603729998433829770591296048195186408737990848166874820444001142325341293730677467661391582734140417194815997338665184433929161830968753052143716282375690896550800319961769876174540256620170065313155696858496581847084922366184390634368195555979446106213191786739425819760018298777166167824952442720800707276346621559488275259659531223249322443025507819921266658879871446110750230267124197226095043659857182303098004204722944945460764483206869687911241909227870467011150252680379233644498812189429430883403756883938240872862604416604264968976220185224398324647943168419344301376374624427712607900412791341756883288037566376342385417058246595100366899194842231649804185237687445349061118990442239145452794621523602687649222828394027227802905481886602662311230957952914365248805880507264312666682601464400096608498783191131785045058951587872144678090033571717753611580582287040233604022283823940463501619486120153152327736870165391017865043086590691544117325490256372121550796957090483686738384108085694605144765621019908863703932893320862486231695366083463234292468220541196279643079861172265866647206391035334838770927754387662259061129621175866164500075223073655228910004096747523709501704838738785979031902686044419635401820322889015405042175137240171196977585154124611691295082592945485645525703336061145169768626085321437316952597563922786390709405080129975427325755180896339658399358244470617660477221020839558938735712387101799452282262515733502737659305123416459451578494167320849543124673799181724380313381437699578074083755722847250133797477771473287424959972475439712901290811535726348428352014601323046579026710692862189998564348395669125523052844850460164647807924333126548615973218926878061395944338536357664464677766812252145183488977579313817274048149727360194285891730765277429103845954279286000124083820041410522185591332372397275731106957989596682858810295419438082098948526926524598795198798599289996668998302875051524635490605948827792967273538039545489644124171325116689918398001160993447742037747043746285525086783934364815517179382132366222622848248490048725027025996593107046806242513558754117204748123454633777530137123685773508474061954568305891524281680017329641559663214740362760436409207533247903803858701928234503570807288688308790638601047059302312817712244910469088015305466215606639116841103936261113385921435361397051002608600190539048525955074617014669629085483018749837919583109581664295185818694920746974012573251715142133649233820570870744768696336090937409183990637991494750053852798666917349790872433322805649309656743753308088055937352859570074228833380961101859849362645448576940461223156761516815477982433019494818594747750612329901269272610116219664750590360456775191677740211292558374725512006874660689407128217341835532914874140864273130382387964091024940728003585044923674768953019864639948108232353416318493772038077992011829718914112686912910596249633933140083770422691525535919080737154602760962179783720900107745043872718186147947675886248570456200631752679292847067474050657655329778318164443935108123801449284664534431460641627418329473391165308366347129813840625850050143714225868416159101285531630963327900126130890726789665710133947503740962671436068954948040368806451736348275052577242157260186037562208969488388580408124480642122745653480481390135012406241719633936625884266672282911974294387014870943016801249276283723987252586276866110183094273169784574515012911650732033475086102083665864244027830348979371434974542009643224214788596756603020891644734920555109798556874097455528581548003317141477338512392365826421658812466815108996051143504487641434820332190669879657991961533526869460156450048983709060883318376393070210666570915937813956899873598764685217014319189192512458268322145796305272254113402405697575137876820668127128948570565131210159381010523171735663875395526308739827588298360454913354603443633386228146969937364876324028451253907806368968087717352597912806322048204488445468290422863912408842266951275986744212860618923789701825623993307309795472179047287089334872200045931398648090604917958035373950606850365196099236442601266080886475959839552274371935159813860632332514542178467466022784935611053384328874586059535877344068674520916507850790131610702003992080383106070793407544965304341545012321934969135601459067203461954873383401871768731285979671664891931899549912726527007105808143681942152382393812285414293453808365566260084643335961985247644632049272985325181786087225106238302195409399341148695545512775828826681267299901957661825010627504699356656062215340984953622520027178836172328319578863906938747161166248588542095174508852226124989546284806451986812244804934031255568064784796304463930674933518795590125071563045270732646878243166788885599691707933082288097396757727270458620209049746297762033322497486185173549995407173751664489379671189623451818339380782726574180677662807528548005717126338352696646203305730208709367760783948398952285517374048239113496436106487185482468499520901287994742714809821455838544694778586732546568333510759090758947284650219560982824457135401526281062339349564894640090673619247901708137424421327880215762985023209103533630532290900187324363783904193028358818907969850271089552163246367545928106399402467024693270172125262812086572903495045121160826941353497529659103136796541938705380587987228419663093085251762115801915529718009150864582737030231388294843353946525232528896770459859679264705471245143512269218203339057099517873261873574855307740896308886645668653159591785043741725105465798729216725669413528443088662251271920512747469468298524090770766874713486237138090664147461742561975100724348547390489073458920957448254109796561784005578905152993295796702441543710707618808581001865509125404025027009046618855359988474585479210693908015882318323979408405051254459237055557467884637957049842332703113984314202812109341276401506064371241702332114537202207440897224865563611113799061930648848675122311459582687658670727603489737497207278088424286858074803069334554612647299878336940887315529345565382522019747017253748813143283123017255088218994604025422526539236397883442603109533210848603598425758100668184183998612143114843851783023065665786974292876105267960958145878656824916566903053896039389635957170827255889250066973802865750120166839805586100009411825705176761596443901787463775561352665332861606602770158355535918799102652829410736613054691270190591033904715057149235054702210461887807865437975682822460092468698350184865370904485640182987354023194467007462399621105697244504362879499283068439641660935453545270787441531946110994264170521153083488812029368331057099150650816220796681257005882013178478326122098262933057793849107150103841669878372962643693081880958528045686566162864129345542301608153394947188609787017284128045670030898050297115644425870327258302390856297765286427102023961576170400796364003490960563833672782298371952159375894722291612365340643057081422879050144993100780164209873779972245381328813206038864006451016596384862452908594141399658932497877704086772515822868080452066156243540622612725777864213336992071908625916540714483699365708596333231877299825908112268561108457624684412221215446070425535974910829011669858872513918340773699561978426305057647339936768890419063885669727995366808960837066547440055328968971561670051714118186157578498760400261902338278592446216780576188180415719969250070260463693232506405543511651342987562086271684601277605830034311120013898204511153018278952616256877179807171435399067617862652233882159517425569165204273400815576393852511955072313881680172782596552302359865216575004745821388705305706245821415912739660493501227991552511846352520311617272718767624399524523476201349646911386499420384898441134479074994452646383513059831381735495474430008917863700475649099524368591719506051668569992456453993870320175393766891054619536542219048971485601477630392988797177937920504847923317852904581804181461676664679908033308073091792085798667017446421256905077777057761872848663968834456771472992318958796753062084866237805220078266405639887732346735589547205411848467828887052422153899518390470048858511929040976647325384345220528379472335636359208231867858149068290820521555640880563696842136956166227257543900669104051643177249644560310716261259562788029561585402788326411563918189250330207941284378323826614991381707639422807418322662861617313841677157088683544875900538389329819433503722955440095460938509713057979564175856409098301921682845974888001605331478590931169730076242756808623388582181594834937773407013802294636040628939279299518568524183668786366169351032974010181842077686321981903246212462749879166077969257906528324196979109338284034857617491108628500478972926041171708981678697178362316086616951458858432209026482781552163104002567006566451410238244294874054222570776152395072039760250188333488879184935623402587235655194790549900816036788493931896469035496208072450962314366219017975471635466875091397749215279843954328671106426868586675109847611908017229858537854556196283991691573323079990672574050983747587142070348844445756878038884811730842099767258250754739040819240666078269946201267702996917456341652066899367409706743034598635777130646848583663242845579191408880980099231698879587889851659500217015862864356920830653678789264933707492825434129943185224256532396101489477040204267149436044675742163150949806508450321320493535288991130068287315412716242630258573596082027818386981879081978583727779170925963093877901407747743118916545412298367475062251603647324817671131800489750328530619921126952974630013494805150660655458858261978628176722975802711892915382196526322238892179703815388378845949985516410848362786996994313168875061126183478471555451345408713810742840029563107945250561042331907680271475351135628697958656336156176583503215224362793646324707458040830643243397601302900617875454579785576365099491217260961977517915087663383172684979486327530234481469071459817321628160684020133152561401306935168008225358836281984442134437293837606303002587385457644593524435844486719917387081032991095495601527557931109177685900130998157523276025371639056920536957345513038883082538933126185069192986775763399185287589316883712501427735556528584617272480353377372692462790349110003051698861474761126396442770769408427062362166716095060481554243468395210524477880940464091279358911185911499334890870212430022174115492257047767330234173655109745446025880603888379647155585815427113764533342728661875969923335837171474261528297051795934792815973880200030706147022273763278695928570339205567592896788803227899438291527299620317257293541649872858290201246668194424669625752478358456261898646114772476593346255008500929568060170798629291082827478184953866410799484194711742801616733552564357110893646233455189962151956212165929967162224558980072034513120299717774289115288182461011392920678249791117342632816730318842676213517596314639363644903975612381737227659799096572039338395412855762477596258373886001331528830100145121912585600321995369639208775113433667063110896548333349878623817532548017161304284747629865384779208639938604161308674930497023818580986404523736489372565369683460199028286615019668893931530671337638949654805876190419409359351006430446378095444681942353505501681585655655225523464161071491728446459854367623336071732358331525658248365732757324314403136222282759928865177711706873657122145170483338556942516227295063569029542112951179663420720342615337521127039167760163648055397089289073703562463884487097169950110692240881147416705265330654612508090034219161038609366241836603441800829645380234398650701921784823705886323945660593133120039381071246208875629769337437903024631087617152395126618822504957503462170314951208736668930436515115492874633935300410602186257229833723844364703349411699257120148546635920138825518979100343177555890799945560384843950378845827084828974609070364524355688672190892450665524732765809666706949185170005314269230020595062618120816282688420745345376385449380142785129480918209825809616514282905227113261122837685145892818216631765357224587044842522571670901708051343469050551742752800674503439101748547150399616285903691995675555352766703364152973851525631951349785448177317660289613682004812886244119177241188818068974014444476944017570490741253500659872218773758065093846721957984875333845138196929140254238310253785001244972132661362879670556812574790519118529197166501974150376946431117197345097835079367988779708298852895931054945398391973138520840635602411501303352179586600075226165579290416186750332625582210365937609556329568394140711532464566176232084159834665155497216548859130760679891987753605924785633117416799330510153549053905781726026945906598789597653480838620835060488211888957962267874976914938779422185801601661762554602640704827504518885338038733901063772521521941906436650369618584548102674823386019729211419615570318423382692236591238979436325827084445335365024424917198189258706826884519223810354496899017628197561434933542236334633467905358911310815389150479237893227841240972369337033767022924363686353238064854055645255944277081336033667742193082790924708576301297620963295868954989206495922668987486639808260525558097199654696276575710212519582312505007588999524093447945293437965844007536319551780374927167705051594009463777610456504694891717552580777000037743405271037877033746575552562812880967511523211862166768442298076764523186597814792466110734836551569786155415206523111789374583097380155644182168419677980864201871998512690021553623825389059976563950727279710250476194882044126908773513564227368408308755894088497759845420487201974981301552030800123270888011828068387270515542624811399791405575966324149026241797237203004143280816520314328354136038394869317252294422041286049661019183312817243155627330151234128840717869766521542984782032836578291295706398183192354408599648942388386872664663736169222860063658564100147788903695254738479217411096224179541317006410401011103628407388525522705851144643099475572195396908164757888220697864300856561916139175230358655552585188124600061951397266088664085936566708429963210074150613024713576515394575380819677110665715652675199433504047754304861681257811810145011855463151698613312503096868386319437117294516708021728869236642358300022174198513761256793801094184008888695522428805824462044462725371488269350704047132532541296191209199654641861516404492320946958618090554533710572040501411939367043651276530549648176120309900243811845989903912976615776006328326135111581540578706051216090057330601976929978914344657839186878888191331750957156745427618585966278281284647121872721561115950062611453437644342505528149191292165109550031689212293566248642759486613096766633246188414909520816004190200517126074316379186883753928784306947154887657406550968718440078443650076641639949148455014963272874771932616524518166464739618154974833321977047241595712819158277002494603399694946407046349919061224145947232049752806185871645687976371762034104181446077812008098614009861244097357823305083898414445765154320800151713838072741508991869938613941142636464767972369232210480015675756412765202796724689241815773375279268185186513961306525084043168585397944085025323039869328656053999707950306749237532689607665729430475399768757130915712226542980293551234062669164876799978508759781315878077191472598258701694322284485807722889907502066981685021685649540847778099164100078943613377518463006879955531038560787501493540672335677946077854021301931782818281517155088529365372854304377150036922911581479312811787519938940786484042938474826008666319618102643466907721558345859766963452661420406264776685573508422360082827768695854050504651220705542028662509499553305603245376500808310501064788472033156854666614812311795298032686240082158013678644466842571231281751295200250518289064697659467853705589045271079232212000001383074820248318340630182262364328177755269300768658248060562601308945874316731698432990112713281412751813019596635998269699054826884225266019514520147470495540825477029792162293412625459936768628152450207701459827812238077344606326752172185237982342480682259583829877322852475567997135481539461405564154625321953610607612518312840686937477303232741580875108247664936160793195530392623076828226314203842799741503896066504119876716070771038182770537201591292654117009464410306453801795416221804708378442608211995163701339443012446536110321505897548248552295024984550365721690723445295777466661872320523710082595426112859462021030897309675196256923848574577006111190735288635950727784088410398854536395067638206789181271267642008202013025519592932791632676445043882539854246847483023801452866684154310925499743159160896532350512809879220860060557791760729022956381080961610743095470265160612494734796964646637949795607177622990961143429864998578236578625889496645191295936912525441277421890003997802081832879115730423204682576930357052778394815224335936056567006059932900200479611707402892476191547401739093126648642449027231792766447838553206334731484150120406479219932315890954470475122421631796506812108773153776136237615413400334871856518375899613531376021988175703716922632983277092549147162259368466112119604250766398043924768270379206664337874556324527843748617340963906554906912841010004933675247249595522720761657751273808371154548018660313312869553378100738742487547724104881491430495246972193036070649750446973649591655634951734424988298200542788071670128803824467882492549133554877184691235608398725194090697843159957998789033341577145794175564722225719667192158480509390835924162855893293113488439196569326453952317180204182573225518358197068856879431146308098353821352790331744763185621529798330991943965026594915863639301048168905015066276998587223356322418477620061132413805259315125895929283967293937984196221009336920346082949841843854771426508067052390234606138644522588765634439335459831786921388788731549430287981431658494432808824585335393976042646916936003727216674880677560448279517158351877524287872140121041624612336162337931377124664923822812841455557754342230995171500411356519864746048396845174424105351539546065846162546612245369918651500634366153739488526330418030127798901055627265329184955088645276707329554652707165440070616133598255981911831260780835826434366604442532648743002301183051841167691969770761289928638557870818206731151508009398907827680284401122498977501647849531871261980280353361482627224631809890908822617668195490571594997416216781364967908408998685667374185946762445512244399926567028161139942804064086297352481824418425080110207068071154348870336063745051667253157155421310873360996544849565964223106680326866078461879478965114529371970809891652188657557694920593048338607123393594148668162416465634012449698709994793386440521951577316246915220931250602714519073218505736170939444737017344589465907898870806348675238247130739234105675019502394842403309506411652859573888366547289989053843567530238441263138363060215238036864247835682849088944285941568542045333431764649516886751702569042178261914307093795167161252612570486439254459403974411486705634331309978922395277277889144841883559213211934549359474452127688618167071908531669074573097473161808270744991419695002831688593084657195294472476622340340939449477644767564962068176838696288156008686407382162114028463370654067344195284824136521397983437622925737482748673658582562414760596019692336982161879291241573590265745519740053758357020792758340761948847915979715963247377097478114884158371707631836838377524387562494407386047830161962941252523404864225168671980380044584745464309429774134199903857789649516403619834480331058257898797217044525681792455283901901570339120033620726295433767086732345445087993812273843997934441881606671044134395427152556968798635217237181736122368360019604177936234569064594918561753241579347849464225899719786393481460911757364602228787422013912594608595294853292744072559324460483638588113598663165585449238791516753451825290167450763355211052365733580772859569012637166772456259403341745814529286642379642598827697256533891122890544280468348781911990063079425035073815830988707300838780940453204733271345253871935360622433009863483957472096591187527819114893983805410741932196520119179182593860256681359518709358901610515742831276878041938078953394191572621731302097982964824800086327132043648433984967562326793044907625133108494417681610854336439564511847839318240134757474714415175829292718953468351987669457059790801200483093433113971260433027991410039961049001883512434932746154658796220309596055307412670602605163265364308424206574144834074981614919599747691948648280630515797276041444152671741077943664745762773607941447560322276460073205142324812791631609641850724590054890461107815535549311711894789465360099683191583490934575164626021778199167523402572114460865925316585042845263220859666296924084224277310652240876217467378090568318513498273054382261564370060662855894250058953247653973360119270227883531440742955750406573571243953160789938422791218029024267651106452726312499536067069436015167445937116340632384094759121640088739820571754152271060491437768461199004941165218104846712825563971985277320409777896126570745574781911228490592785307246397381095029286921908615319889322115763736086597825058738540888039573129131470893541626912960798318289001634150826737044363670312580310210820998524043974733437523619909774988329253152220363794826318133852722257980811176796550684433942589994090373155560483842543093449254385583984256975355413272213386823725861132557013258628515600137047001633491642402522792147636613713199597780361712699603767422081511447407275178286990505106769560846785510622983630008675381735880055408242801666526208510495058703770655313106777035662418123532202632156568089467139380548506578412350928366724225695881813677940142937814172075442907784393832932197299010352401780876763989371055225324591984548723675029532744044386679654861811021624062473376398897666937253431640536806227414515668904076627609762308669087778474381103456919726480772459653142573589499501732727436362057781567826027258118415768010734230165526114346186501313621944664267141131545154088071159119347481983012811549905266805525470733268034506455856336441483908597653047271746192637645624990935309115187497325281666822348355888845980087989885936148713480113541697401994591992887787620278788162851852051172807038833109536610773346485207220225579296032714797009417476744552578130203510387689707425978483200725259679567328702804902158582509090568602557368021100670992111204472275363441184252936511563080906435665762176712906167184974535796102912556673482773362480836879204559348274730402488500463365625298436473461302763048484106936667918167499428604056600835159469733901949690696673263014769160843117886563238478960904411727092497440067118348044301033823048274121505918051661188400964948960441191079227059136224601271199991477557754517655945750290807908118401529902792957612482005545372697566212994313240766448500503045244572361363444894435366501614736692539380559953272135650019937646482554453963436209684792657815841000625134995824671809619420571496322681796732150487981788695343982252737432348626137660043317210405367716268974049165700327881117532164257615448748839624060365821756137022396502587715242926368502244998827150709304135201457888225189089543514643551604132684160676725394389041468457992468044288542813671643539876643941213731663767267924923826576173270927667243159536499998190339488751549689905609011489799541849064004282261354990342798277359263285210963180055043029899370399862452896702453101799261953747116101124479016751584117684322030425468208412977292099557449208923566411016533849773733143149600938365524136578754106611983674381568251142493654655789373393939613904962012772329765285572822832345938871242681805499777374884625795283035799217326738273686911411127739521594042997122908668398004122212516582623210968144390780163488417372009995811051651227474238410265262753016837857348943125631792741003480762645029851543570828555367563867189558944960888155223192986098329109607949389449651574018719397719263310127281312422978093168486701435723370159744939549002493431017114049296590293757626227973547707988200335991272827086246250860910409591969932964274083859134318099581497238531994357058076697521354247415614938939308291538852686295128307813158885624446300303657910617545230617426187661892638493119226325165824615922738178877683848597701561562112664445015945537026477739450016655374994402885256504282094194906635523071600410632138605917786739260786287055850458546706589590889148583016600232848539142147236937166998335807486699262906827948729219601244816755489991449142216937377504612315868512071972053406229975019533592053523470548176913048919208726225493928866158818919126887882119862109510790788822001752936378663985372546865385012034002336085132984718029256369879888569349932311131429513383111329581410752803013237976922204743806504100862860897415470342322855848243634215520134141322129600994749051071127554903684524793688675569137395014707929940852835637268441635312646264077008725778568484324574284586661876059335723493682765506830775787131119628986425948894866138731632941571661158208918979291314999901065804546523536890942083753601700782183977646832914855149369977127953580956577389573690767187525442634535817693619498188095788086094574081335806597544695190016267347295568383907221966936238217776134993477281341222600305379537798988482545250531358615361881114369245173199134570043970812146570542061219505984071678234235726523202688552004484808933008016045267955987893108773052377018924929122447744277897623656703568500644326709556073014868284213552762787479967495137644249573685734621157022938010011352575932363790989371957075630587556261850884555675878840506446483194937799540759763324087825751826907270170583466672268038190434060069968457442473062189738193452709596650092643648902263731318156224388717637394130981516659538575059068574028951906376174879788024275951291530335925337693918281935186302319312202056487828000960725489252251233313601013461512877460167302518144585913392909692211759776878779364042817136858849237279728768266117783531481257147327782295231886143128838192469815113831892932863078907389299813839858517565906621475767102578442789089955775241098324815391478052070001115359253176286383761242293140841743447061521995812154558027154706468241549875212775592728460707310973366713414118809430162275561746628233360882364471951158555638844551329530568420052208689398197345695458339015943062500636616042661821991295636246049949193974977901056560432151114949610480401277510916974258237116854153460700420464716334187115415013039222283402637985773779922390080277817299037839155249682265408437575134859203485487673917878276379610993306572421614815577718250938673473968688729160349356996870455454925502435670316207655631937834547960398055988903844834550838277092657477976262354957319919059709584705095252464514385495126187497467340922412768404330052811841104240623682713133516522009024161181411216023334152709777906971389311287183550737546371850721509561913777922898483879570753140771036740117573459250312802843925496566929189960145840650902176318236726751087977945600094074936625156654471405570673032415905021880838573149314921254709308530196374902667431541910652111985367083112468300385723876512555246743035010618065815936458933445579375249881023259960497963183268349316051562154755253755451303656378467626857871773665740331318086716122264655025293827663664013780670683607459214579722458078528623260479271440145583118519920805908342190938595148881063285212014506336344139699265822616634503779970533817496498247612496510689574073024651859373624574958785705502743226016440101729741596404702659096848633190548132818999139021788284874717591925769313852247964133705469276596813747733561700607199367188666272713824176010133692803093941905703525585921665438492218308810068925435048255933941210416883406705210225181562105919690400219886363148974033818127833467419257093478151602275100523440178980305114281685592705228453206191407217828136473006336629831633120095421429932992731458629198643580939915678224788879462032456495540414941223101333284917121344177288840007725726394826350234480164872289882939565694167683103056404027706829943309523884031013631695571086503569362455215685728781026803694108098305518291546477663220347389049277784215397884059061612832842561984254053933526629265780530382704780227577902111279146422416412887969694584849390340652906652207987859553537507625941942841213725671390971809714924448725070678213127645273597003383209174332701142792019094980968819627557455315506184583835663314221936571501541877424333618336911506498094842431581922102262743134860679952742984948951455340618699179678703218768468969313302939400349002621079821399781427532140803960849960508759745620135878175973607741039940178317721023544308148501831503989145808572364233876230526780514174304757114676074699826956155191776697429801436915363054940189886879953163163146343137924746778853787573946522792095814234659910333970043587636676338509762827675334312990550551288127984711557897080899821204733633850153231862653983816887147966230894726696113755695327747314270686512008557057333157215100973490529932861014595893039021745135662281322626462087823400247356109697608613644395351423596389270857678431312414094276734864065256777447607897195360789561392756806294462705077137257584453698111972515154648042332059035098400686988618243862823496175470138061782694787586329283832040303587713217147043733728823174167341646804484324964898758024140366294009627632014558104033502106334897582910274318723765406698310657499205416085828907819533336693469764700900643408438659624335595040986729647228002194870826462626387636465934204468969791019553932548765122337162638988895300417959433945157435029673767165823596482287458877628043243355254573239369567754290524449321334936840722593525401109099894878695098426963967649826590459657149277772863641353406604475879649456039231022905795658809176271737945899677184312841349582113786825466935156127441583976566325204313961565473767912774861510994966022757113237689998689893271642253964833618996102964813418120554330725038745072922623329721280613790696243955542601577535450350641069212893552781903620110214232305258912033152917855681122542997023352672914254915715790795971255118744578254230512532789466528598531447212309989406209746882047085228130740423912775846759183931261320329399745142543815898600888775987692602943612738498308332805963691698124229142315461298117132731792838319355313826097822600489598021962100968188117515508907964799739843751608439604379162744715472386523139461327237589225427754797779457498627916520654337895528580411750155341996876740813511573757981375147360042723456644730368984443328385573735490404819422628497404073390877532595336767006755562241999694518217893107567143695778049113488160211908099342953682654571008493562682383326818837055090633664832677684927671711702270865561222625564633143886087913587856982499764995910812196636999739674422326225713501220794217675723476025904971117483086258019010891410989710161566629153257460893860336190590681530658241016197460267544349821353748954137900355995799612587363984594070429724897936595975494934826300429385947741871948226338936702914494615578039348975637319657961039782652377537111422673366995780665375172386815296852616157602166650889776411891103073329911762317355172817756637275648118131835444095155014072036649778735135024995964886008512965886593034908802481193152420696383427556272601923034485565442507993093964132082813558682746523424950910833184103317255648926926469444656690759263031792640903723180864783248319869726140734659394882601957876530408963466708861088840766068874959001641148345745042514172843802338008941357306554393539797149294260322649981963155940707957611191863248484190723213672044358682096036727870411453988232060300609281030455026583678238592098010662919080968485019412889358266736933481442389136420096761339005241819047174372764780884682865769217466937469527758821416100430529960257919842005508619134055842350519170572636102566033339724962881272517553127327952087064151144667184087733627466299941010850382672663222080654206139792653749416526562812791002101355224444101018563057178350186433080550148019508871779884614545933299488086962070431292913803722248951701860013442755356031353367706384200137285485134283373482574250421258196217482627455640338239630110860801577528243529548440523675954788973951984771315729215621154634706248198592271818782541038656307954455201433987246032124604307401527377279841970740325567324765747610404512816727270023282988628611088808426226857017158826448936813677304127932551877265097402671709997825457396281863144043016267783426748350612276314464000620610346171515460621181258113379647521860629025665498335995092767366488599206457632520473076156802614023598926079093465126007724149205832450141934681810476142006981675111771939233029712386815865809840491399953164154703751630428971400407986656476997389305471668838933193025845926236301116957148223888044960011524194100697768104082172638897376250796716786810217477080542213043170280019900918021951059696156618192086113946226198857285400170954772571863323788960380243526431214686207957102457832692376410848934137905631771608858525693951734670569378779416726634133125152475676623300294640061495312608234651339831548442757659242124233857229493035792655295206735252848341401659304775120582986864677944568820600820568610811701955563345695577487858898613805878742776482877733673426985667928508492293428189731666933574957254555686934592537682887954794813956406882627395164432451242080085099285800294510388132803908787834682079155792098662365188962547602141663899154662559287839709985122176184759090883384119532585288185416120138317567863085938449223438901101059672685418919291194930952560826758945346261096638227754854008367476043616652935435343140512757255955112603970071103412192200088826775992369393278346027975873902424783422643731201596434737340926694087086118962456108294679808119113857086136811616013657185546516232891348055201391262417399774927516719508723794149754441937695083498131996443726625598860035137200778419064102524395918110544236016025046195920923639061197803822945795522607499703974742441182426602511404269777228656997473890144835561794528694177924516821533355232692193862074206529734078175851479197519811902320925244692481755234730418054671939213558613269936397358011495366477503688687510995430913024190293695273476779094970301121370683748789035787117072350605537526738233880768982168841294715606971708079063511617611785015969432442641464565361153896006088293029755682395725470496859218625378882541308202385352373560746616349480107667205861949120666313310689340363665807404009642355800408326287810211302094083268564206283126276892375283277971021465246859974306267804516158678985292888210068378412973390766547602017438230226684018877352447062879995870322334521902991733410976053506849954759882155930142413766842252618761253313156922168250136624529958901152539419259184457987696584290691754650421864644819152554155823287272552566325851168009164907318895539080056096586057673318051052285723556820572949874231335671880227612394811447074562199157086906836776610677158866105612805739726399790072356509870063904534103116805778428374978745676112203910789999210963879038818664329608012184354846596983691405825546506662131832519949209442688934556431124251780514429407032982086185761814292096090766872941717456201992881902839253688725664488871536977548949916055154870931346379632757537125807592023176846738171720960608394764293248879425006184822249127322364244259536861923589532385123123574182309574586753952231957809408483283715296254414790466260719460630012353905783979173069570720075838572200526097835826700241655011203929337600794230586613933972854792248107334763348406704375078971720790833328601079193396149457333852681352023152014606622963757182059128472420720355741083774186148558978795469258544350180628622213538033483542501891681132197489285421361866625340629775068828913610995059186136247509738395452966817116665084682815527138688825118261750729038959443062339561461458909371271090430405526136064521403974066831749011644030157939201686128914070301649876841613876958709680384488960423645838847635216371374239948372589540702357042008238905409575178444586732775249328030206540962186866036744665429610593216031280785092864017964977466970784339812190725386629429831926664440393663698240413203562698019927699829027105818471665734620774746149432843765891501804688489003035906410049346392749723545212583543004623313046436076879492278096350478998195522357560701773488811998116978378673235475747151642971552814972038229466033442992782111608116764657643894495550490245896346791898379436958500476826421216017984881771691051202799977231204628977161659448991804241498227332075722290749403090527717367702571884191187543398974856864657083276267013626461617342711143238775705126234671531769645636820976870377598360605963247460102192391774448285749841948306730458152205402899706875682423295765786028226382245825044568176160917131157657603683309180721505848055609106484616296595150666125439332529624643060922439883786568148319538611009051272849326949261411228318289494985701805278021149818900426618526081528317986413757315603674241725478222981444617607690382890331211696806242954310655485951940250684575375990757321283520329742426911500717312629477601799170081630242027784509842528402469557982947581100315872405805829286058818217323219837225739221301318143022580285486948100516930906481081972442126565901346918226116292706361099428294124181611505527130145477664756009908573167986318101812583309082910387889039712959708799431993186685576600357789459957422871774056804500710108108418276734068080884735411428829149550160528562021235682512852881112021514265293397364617432514327296886820355185687044926658103629948004852359438933432038122266386851919227548681506329534957319097255633373970768451966550004210569715595470897669608925159065872119908955005014206078697559960705458440341694850915653010415896395810886271185628031902703419241847336646771661781596392481306364349813045883118088987897060683451115143730799061449825189206800274027028398992590797839011639057779787527587540626945347765554693707352363664934956037628193225230581070788225313695568129398439373717984994083046938832114026499514075203417795445809120900990938482494138912764739100274419064928378408425030581608974975563734052445906572421108630653436633514289354562544635983705452777696424713394855689252398081239477920348794084213693854494556953403170738680292824032611189522283744549002954476175996453572959909851347191545311864178556438963729612885719275367875327200210951901919343403371198751607235169078022513571540774105400558998619748349206602669993521696280968243784383346845501028846076097851936566382431031282502923433231449817684313563994891261243695655931067195366137151868771170247356072826520255870015835745583937342836702385949722527228555522949659367053584223145510483151180250071835967495193405601969563125333078181042450318917342737812982840122176964530269519237081236874552312831882134711638590165551317990153705401930912032232958805538997471434543396852233301281854195745256329560482500027002403602436457612415591568037993325394426415438340918381007271416428506556217978388200744071565692021588104225192143902357907972061026101905783015285280731320237038996861167932176367583309197514148465424345712854691411751639337069019785099219813907330205385480083601041442870368511585127354965730678320299088180246579538929611934342728237346354084379533036814073145697671052113549295517519285233513770620908046548745475883025243325708729601708783007937484225145913939443057229568353215719725734561597206355110995201710854056517453019396020242320473554002983098378844189697074349739766630621850914405877282776278292823654239583078169683474864718371205160997750720406953785375196616466118563508763672604871707939089235364977488577434128398571710374078952276103994933117796532344217458423669699481579069237220813898081887936733309502255565807678668733083719967041626507689266599777181681313901961352180982097822262432790374947040461356082267069153293077582098364190238361174510623500518708988325275014569818176234346174537297196500394751164257652428910133332643973676107980242668572460874600733067549533877791884330627050158181146203373668576773027916701138307364875931268708012155285137552548003838127277797004641946493858197415604258383994230044961379296251560875797287235503404327422077095192104659492946763110830841637934942243828420333054534250282199221237501808385823046102485825907955144814254081116898682587286214576217309605969080556714073906357863510911251250725966959157387122683447870049228506409199501576328987399831732148870015318331027221525352620393347393624647803510830488288277192306786843360504693134057814274042867150750343781364504252149276398583294177141437576682598488731343183999658053753576033691034033577321841128397204017578756543970415904657151749585634739116638976724936528180958513187288064739708041353362250614970706758672324758936701798552404437802396430379973789360423735383181933582724059206113685366738475992449341881008586431708676811189694684163584581371876885296019776934096964041553250291291117941823042826431553855645887477866353610666702084124331199220296460193078657253993238435447710868767976750140547785572129939102225041039086433632222532632031238462551745724243289596940308993145333440345192373749351132845985698045641922308526840221722258560370777422322641654803976785078074010404148810839243773226252152405819749968609863900034324195729635207929453039424059337108587315359121895273953888904531428410744578811008231970200353375135884700421563016570805868262904041233529142551828940262061717922681202355812356787254697245964556015535568674452252491360826435125849224124359606380376311979131854325497941689781000271440057793967225659046464943327639112450522228302391022884864941600605308306982342926132423246344359592605158912017950828860583994921819840080707752298018960947707658370849681700204458871114870574168464300285267296646016512814761979835435445591995284139008310852685767427222308525504418757242690868275728422742815530498105570008962400479010058952003887971401919127961833336741304266977901405047250095435354530350096252243407065314527398038554367391876575088135125218229407019389052686345419798569946398184552718326121818231155594674744124744049094128010450354488732101161248282176795632279872606518779551172391266291339517037894970368169695098372172945173079415845059807784150880608153083784355217305577778811720407960788540802588490340949343736046376438973469155532100421056429480025037611276025940990336508056318087549652835578926527067692384601907787466854341473909139020373906130861611904185394873496457347952310455041176971736732785676904775642504174812380166374229876357648190294569889868840117612255096776992752894166948978355030814776633862528384376190743859418811158152416817980450005302546548969191159845773172218291848180708704887346356130474645504959213549674365017745358878961460551886196429069639504934974523766336265956459744610919803715969756415790157579964952115369737993943605159367156299162558727470675108992356275978060868540603951727598164680069905842456133218293872839073448724849118002006945659996824653937785819151316390401349730540212334334133888963595101807920622086120419012410802023922191062651137256613548037017910712747341247385679395934364449232858707540721488698714747255955030605745396077317885428431259430220430354224326435450469755139591695166062070249413162165078306257680745694377948681557244750838431231109166823461383117059543636125154255198433335399130250100146702046692377113709677577488106157558043642739727384905615426324714748448871088866649007392926245057332874173731303794733473489596783432616997013405488893884600937939070990996875434802330063028413753519445573052932772130623368204943953121941245839308598954386088185431975514374106706310315589918776078939528596457169482068286890379307849146086230998627653299509663851609749751598613309355338390969895832210503707350516505554091617896108757023923728187554505744180440850289851377578517190691202082969937190572797160673024072091082434728851790640077020348298434854274507811998811691922277946662936697590074459095640937342029519687677517284209453610883097720657011541523368248579640823126199712387449434194024809866540633085565539458267330526926591750673140726860536853297072549177039944993870790333380167120899880466237771971594161408814251544388483470647321276916262444918315692442859772647933275437460126798668732481929260919597264547396187695233858335297528323925038926485500088382766337738237956864858903277300981110591897964036828188956117698239777231669716400640021319064334823461436572527868342927262052824043651148857385405920767273864370563968939719528656409521492631655390444602015936141145782036007772818253296040450459078778598390698019390946427122114874360220667565568209856605556117061048529861637468462522256401007638037566755800740612350883885534547355390404605687081722266311538954509169050832899288733788408388144301535196017299144110286777108484667106976085371316991237944562170326057740620973913035467883648178146545135369665537520063301635484014178822959635024591549273474169414576783612351784227506015848320138219210602348907776914891214311544020465408104179760057145233766585852875889753574413825596269323307006984926547964069553835797177467278797157753060710075733339742846358890397685428558197132920995124626919651077737314424388787662325514553021641801610265632704126956832896136108481758316876295224193238615557213136079594394815867585759731500964817749896164230775001125061925023197764143316003416659768696374849245668940617461925120137646657588773667756688905347026040909121396662560682400295703288371066590486716657302256124949571778875280623057473549047217874086378091839323289755480713484990910300630703000999303296599012348593177842619297901372306597694666176465807253060315599420464176407744543285542637972906501760611418928401365091558338407397997571149194214720917801495775952721657030452826465646826230764429000325456619173759536993956556607340670842646774706491808261840028030721791191467486527138894151883343519712647141733466558119579296886496409754732454460589322354188207296233127290370003738279992923599245059208103148490591780121100647385625882526463985000311124660357125116479886375560097737982391872625250593003867255635069113410804172810703755618945282161330450284913377122002364201743952175514768467971180193345121750971160663184082830903893410063657592975015764617373228979721119918775870689747799719824191761069006070494653983228815512133225289663967635977988766546139146077982354099370190094846734785606335483982670307793565413399109989576227775818883336322177864563620087721921823241986749097163744443324909799178640442877946409785438499934476752085693615020926494232950573668260602053436846923006076946976960928981349278406544343952482924376136651869543330921052947956443046709830972863063936960900163567750905181283435961125916482628906621538250103856478415628552277570393079243731763225762321095237533078013599310528660091365190871160237032739064939850735131810330845555479520433714083316136298353656416084204338607806031621018596272175606774202617703101042808256276875225419008695332894552468355078644750128207605103678158017361738195521921313026845811816316189341820732628869828981063323413143390531472118552764618838903341523705894932296030192469204060064312383271618053082465400907057819929343878399788873470450019228981681571861606137943977174576560329363738462214520189243103943629650416463774360752949269511529630503244447024841448657551072907600635808508569782016966586860076562810823484292460514417928957595833860839531858425497716936786105711810960792450113034085491717897836039248602241809892785508829709884589138053762652353467673999553149617627777351396177424547789733262271537650531903965125095127440328736557642992898065442633424043369913854832290220977831233720448595934222275920425645570757546505162919901067760505877855577975555677643138467614105150577944656272183796393292374698070437996913652099565634007999778211869547882843130116293202870824639369641309427791381788990485451716405039506926006801658484073196399495278068533988272931854189400756822203951402523446946669549866550200605578032980293151605528416398324301201895564323309571358878936816785688642539121665793730261684287595262082991644055313191967844251403367060262116799975243790988659119183916468202863820666333891771565537652397994886564078248898958122294092151055162112886244012901501284177669671022871168679867526329633022888195210798760056221253697853121459162022297401654958725584013039708382127477603039748825018608338914824357684646961307600595660123546261685783460188318186097119213573065156744262943570602268004689364652548089258206588462645317263139741257913299764107422868231391947892500498936807411940100640881493626341685587344602366622451213808874900280058438150056700141495196041812028073863476853100713325103485753803438949696087695700830246600121190868074668088863657147392707238519440313782952863524902278897547251519580568108302391167797035364263632313667340963278402998261569656834156630626021811093060925728298131856505731463551657024092090411232281750111430033447289467288069640675773351907992713981361813347742665474237710388554222479562682130977021602796319837917629160700836088063931904141041300466848391143536274949258299566792927306089885776868336163367102386647872877970987058427973694614165980004661451590010883183972834878507466213493878910578392398047119283265350942773869691284103773288016582126160378015647016513270441702788989640470682978221486224790849412766024042476592609125089185945714580675776889032776429862976110540015615810660585257051666424686677974255422553639886195285892669083727703858744073374090711160757662273538360675230788271704830129325910623986805329332476002239351905922568770725198777640077288595637933650962282550153646811737482365300554314442371437995936046234105337872836598810514269173690277863686135123362435984786855356718996265091050969366910541714518259871148390942469995971178520017629437121821280106723000332448111145393060546144712522791335546010948044828083538347464845441260807892487230666290664622224524652905953146937910388741190046623205429575465855256323682021492891382399813358440417475882791767010409764030657038332911885875680886266380905305732129368273391413603751216128851884547583928543332743873676473903604806814275984515004790467833963018786861053705485746090050478601623898225519337202618435664037078121670488062462673734177727257985864731418418938295194338399995992411482978540843518605090972930192951209250296376867111998218719623138655722852984204821488401426339543169922974687666245026099952713857644345129125048183497458864497007793090001372643222378456989310715423200918092028532020648080969020447525742404952227825369948163734257611932428930985058458122985771853617947277964229730319138055302010610484527124040456635539950223462005005381427361212575165052874215513880494833565416205095014430269975270825337638111073965044910202875390055826502676466403636850409301117052378480767749430594206932270035938504926905277575091009029705938292186023886576305758136464332884142904669615456049533423516744913069534769450580469659072012575182567779786954349888197303613991402703257892313229371317540385043771976936753869489620599580890702569779302168823396475627156790797450760970642438032826579765300388499205877857134176200660541572945254066774399277644695142585859663269307408240952823868007863402441489520916842991998181557783917787675757387670329157435187653990313477029392085870931219837737516739129290579869810924642850727268724740331015192180920772099157357809685865434409794002626651699875727230041828946416805937391253792372036239307197373121415564135483941837178827880135879108691772979224798165835714523412581460896411349821066479863553919572472413047911210518250933545722328996738221134669583242087470648670159303834015666830925755454828201802662392435046498652371450290288503155033448424585358159126069905720151229440118086263676593929959091504303031691950872474281564755314953088937476248952025341433015970257323052984716407657402894004502696445682652554303390785656745923316474715563922164093803002896555645690029657237501530269730884025397979330928113131337345063084637158010316030221223658450731763205487766084085590128061575295455439842125541169863800913709608460404485185758327181133434696164014844109549570080953649346387378965732384851456668120983828847883505666197333165252079692856983094054148694759071284230399048530309536100720547381959559309497542425143283251156438611528742002120958065365894205250699530807410580943389892154585947950608768957809006831032501579870940715156061572473489865964901379517747992828548106605363018419497782836284191409951210952296160373861978314958427991147012160653466217995560942973238685063998337124069493841933225609242025272546023874355130043048479188728159889988160370871801705983343153376212744582024460467535479027151766872698756084031076487273826180571495473326005969541580750046770805530175772869187831510280082819056509773711908736199023861043438914822193565490066645984856913915456603046519264440280743760457648604501402051695315754629393240534942977955716503130573086100709499845957997256629323633528037947279800050838098858477421992943346324036824602348271816235703820711635023417232136904539584611751854918746876654657012675880287239926238295095664411715871370452293645428573655611705590087662716621245340910189655898895058719191313034964103679924824893870263897928109454383108475005507706694331682104753511793963623245717282731544548904287044462899186668205604659748874538909860305779037960592169916845160936649056279018383383041712528571804108856204268020915071812107899683539183998656825920823484336488597452439715827005281689099740753154789869203490203252439892937373302734556418519543452295898450026516660286662451978233357248229140769099914371071268629777441670361287034208704367237771245858668223341229327030136026774881421863031811481468623240677627972819699303970935188190725511730408264876197149483444276432990610786931872982876310500073229868635587619485568250936418311010088391310528717738855605210291705085392054148558056578495607731038752795802895064810530068501495775484358476283363670147737141165414659121661246351571301037871353962094785584214864888027186075237590865085250709229393235308186748399105329410527190584487986983336846058296327903791020500085290192106053128161810629794842985996749360888838969881281631680635311694720897295781546771012766043508769427974273065389471774150211865447257407274902126036033465642486735774881793439323871227303604154068253689889216739642707655188121871257180392413196460250199841919082180206343435726722514418186415365681149932400087566000098695628220650446200551699376274604739888975374105389978428979291085525359756064893704828350784002504167800381002485319839806578175196841179720033227541060835127754177976248098291458675061125335092888746595658718665176731317731594670758487738695124271818929365242976226034852583980282806938963341630080677283556797223743316788532531490240740788199695459156284454141033470306126156432479977366265175085924421341238422764723349298797903432612154159433691116702174718119734131020946946716269100038202785462058818107440740601754374280814916400568710686947391986367497401344741937702592884451160761836691089909806656681219796213400152366121731144985586068560268290802097570193770288102939773956469740847445229791558861796089146010866710924056118322791651558861400063960882752686329727128699098821072724976772459408369579108685692138310508138273932657672674253078659891210381035410945057337673483197301049582356215594932227355363869131951293636376173794216905278216132291097033545128774418513011068045556668123160729627492627600396071803258497607282345757855233655976302857172910497706401817774963723827569354446876524663540144441863927171017981556777990062677901813740663567794325282075891021989258497258138183406817468639487017388607827566521736946877316354707308302587814969134705243013724159867926338409647499148787379772717294083160676654740186583294304415913890474728252524523907395232962180381531333187002369109833267796253611823970158812238577406042043053793315463984010522947069341935902940561590755786224184317443341068245950735443961294606350310045260350041594542438378945086605426488610386194403258502769526216576691245923579332339663638628427398962059215786735912340592969192228440451862950953689597460004421442339423170779379601345532212003451627987628507473828436594565086920350732155904332383529221540341672498074454123112824591541725263938270243065159544436274751334438031366168623354610055473605829251124271252405610964948771015537966321588907292527036579480044246479446405107247462208866227059666937913155455190810309785624001729681648217327095832108922297828690657180034146931103138008138064982983920009647726107467550005812161275592599202747182023361844013297694356981976739870209828238721011220784599439833103987754716128797377113753621607502821909195427217157888877587569417099823420089292882540391888953505754523659344464776691210453118143622556028674881961974346977340356848712393860234034513887207891710661936571604652666594347121230262070664819168649521823829905587225668367746643385743883965681307461572491827182647449820139686180966840789049015226542777372639812214786119164741212993503780820624527951732703707946908577246438283415524740046809635412275938603814446185740294172017886340797372457948012881858411206026178170426465491424437774404238732584445818256982839820455161316198692568698056903063624016653648823669321224451644332664515294856174828179243468112685498174850675526668376381375523537994525050940802225158754625593379787145708871299931694742029790405822795295155631212349173923707037336851326006328185480414014359554585448722357225345732805981597349763749841750109265186441257931620268269482407016104708053725808936851262210790138154610444225278816657923699332939576138915750357176701155932306624071397215583426158144245333466178975041497417975903333884017667552680905819167914335301092594968580731102950831505392918174855899506351758732933090518987371360029232286703830453192005704427060645555845561255634163244939265639484363145887617565590916355877952965261607780562968001329997651236869187403617208935037030228765339446173524813276390309147791658765766433862408478676854522533538031680649201890377009618079821957935597003171882319611111928156483553333878200530854412563188113997300203302219618232186000030997251285634734684990280945857859861809891934428140260513445473942339163750859358628142108640676489512426739135914689909733640509329865872750801634379878201148515168255960057016325145192156628509805741159628738730881130941628826312217746874262322617472989781992990568603512344529201471822736964404976865357798136058985042731525569553255673289653510541771818923587065038820953874382631257853999360527082465412797045612756619440747736579884659204656479312310325881095891835684115089167526012234780692859025020118089926496382860652495201359069761083826760568643770408908873571095192024382592155177571801745108626787125085152224833519648474856232201611888462131496204213109401171753617739561637118546520690249972107637981360468230734671944550422161605700282971264833576878413318187448159445045429186672089671901186839351840492601146446220981955456288513115001199856715610736342163258349866383438799675795457316392347319005739011454198801351608706748149907807159061019642210630634562385584795017565987166631479705726987329391953202222451508481564299659926530461172433602994607612287095530886006662788689986752711486152293619166404583072762442411586118892760118397800932997693077022542628550858549458974749511127020083397087777233819602819571519911689287151566786382365964926994320705271986457163627477926606841649876617087978210495428652070371002663302748329223434799009225371120157511171470510764197092709819529951312189660796800830541307480249892185951875555873048634227409726696271294352338825587850567211267219725369697083458359677861728135608168394625301175186445194634338501272762976905091130761602421412845027327889641915646170841344533324427075655254280188828203779428689151548122724023679443777327245693897873870768551322695964475985116429134731640716630134119647954308246246789545938441474128333077082696587876865999710916242909763172135852526228853502056897656065190339059410534256443887305660906543781971088016053960481553086668710418102146896807086490908666857970720117865715103765042677170522223750056121814886377657563465753534225585649737392973990341260145852751959317375920948877315372172145978390179979037085318455188937792064101426284905562855002237092204930508937177178918689727988425688184762600143232799956217680705699449224448709867457733931666975145995112176792035034299342947631626932243960793589810917740290623400634938982948705703813131104229970597668622615131609994706989959287856995223961114684137355111257633650741723484494712107498538459522355642324522308601400560758463057639521691912663439925647915602684086042827832942745169633531511668550230554078468121070944792864907881407503088887979150235496527081465463569856336584927919904919643460064059282066407407040262396235338913762151433361988129213868160640169743234154418548594535392241328166770601297634450238660193614193920996631312791257601178502411823508772553525704763870283455153742089342678998489638906421021897479400028706903302881016296251611275827668472915306178765162454956911831295737820442461447611166028050172473277064948085749111230132088533297091056716355059497770922267166447556190263391414272456447889642492530254794861783469363066258866579029129775670037531418797547725181256839632034893073915200995860484556289942165416533556534840119844142535626933648823788381907291692822998462988858132661544351682804715531533122201693571624942679540617998840160315140283156322712308428734076035719137694899497581259805449999664682474067722413059236758390157432868040838835268042326913829509437025518707529792321498459092129683939127268546099009066813979036544477492899262524911439984720894377140022411575396138285683125618486592342313012011726034235040558645053538138900201960208365311800297467186150074668364285104905402625659022999665639981027050400186883574995100139538531868212386103287961346670908944969616636571993564015222423668600433255512759565501477073810244004364353971240137806473443117036218307051826846609360195084668646700367038721942977413032621632215510190048205394060097452002679600741410143222882185102629905211640006665237124691516411699092154759563431425030671811601339912864448755669130471450877654557341348261946361490740901947613797616419746630225937369892901372010251345065128984157071051873209286161283758443564630088683776487399833125323672211583838095657762158270873985068287997858106864936754851542250656972171065520615251477614926584762411602157398845139238200330867285413131035629520993460473566865050490761627839236883337203809750969744076009325211812888387259711339815252086840955198740775778655437739655327532145532567113632808932242302870957226225221393355387788856988129419792139023273039703637817842817175231834977690997949479784235509857843172104319421157233888587112543814958691892449150524202767756325508477433017700467839196230047281709843665173859122115832563194186415187974161612328813543575372142536290107633994164363309187362579489912272656788617338229719797897024919632489138376304366062471575586275319706852485883838217310782799197677780443122076938459423277832317165074754658176315913284788754532524253344191008543352546314626676031226012578731376368902195155461421725528717700964869263444283924970665798214328431512394359916486356831528440205819488886623728440792859906040378311182820513573502105829171092065858940669854689937695630527411899786776739678774231724373277314146904737846703819170698999541658574823871342517659069699780516381550708668980252323303781004743596915498080641606148003392545701638828389673696601706755440657040867227470572176906138944879687000194207426939366050317151542085207181745919098277121921637518189800375843371742601087349771497595536029680250260222135078845462360698669109208803014618286249270240845330405054847713425101373870038051170971935737879580754069583657096867805708888564659993178437156532338855056219756194077391707789723294001963408575584046313267000809632357987035703725010376222931848339613967133022644644887288465310642798476345774065890214259741667227237252846830231681927473850711962238190783418667060064199945766515748241505018484158442531477753796877838528853342302380203229519655227219327759100179234105851676007189744577133533434943890862635229162560756670918483526820289211726173441064436153067390099726982203109370524942547838891368998829343326091576320077730347306337858754492088263468281379182385657286565887404303857830161932128317727674721537701556269749512175595150974177573559613485825585933679031897091613189075751541683730172853681550888592135012385852241473023454091931875924940383737243468965848865796856963068292186606229262533148900118601168022519190666015895305388736136290507265636317204672404032843050478993070720954427200785732663321104324229305177950223453661360986863919096883405769091728763997360768769558727377093397560835346302814824698432731142210972120598509927367047472005047416507558486201365804342877387368669385167048378940006524032953537831330687990302506762856637366933039585937729520851894571870504123882805372223440523554752739893819800248709754944765078360157002193002651849642336949566092598343777395860509630734084903138115587648537082873190824449870162137092441203019334114525002784922281230925143790081305870735662019132910482196713902737721747746850077484450638778268167798219623309081714158867517114670135565822595429284305009427978800402813730989150185035979573524461981569613281169233508017717618451223997908455086143546477491362688212258556914998497846779443178019447387863752383289839092026253964508373903055064571287106216753315439598779523536045163420294220070758918146695361539085572342075126801051371550283280613064994112720984610660842136362928829910946940380109396778770683083824585187594521607912966502154119395143379129963816400116284236025106804434750705514573915429422680021961575373490009642604620519721030702364518836796467745925928628695936138618992939318448229605128702177074735804921671732298560294303745407303607914607270505783443278527152025484879804771169189945489804175829084384318095546136323528858518277927875838860234219463275683966279513268713835083804743397630062923076593652179178170136071433167600427184743697771863666896552529844596962101833120741107079375134058281942845581093976665423921228909823877256975193159310845669201931840325989989682170456807132507056602484966080199881445909857865456028838811449938397278131085090298432804092974613794215984288975337742477896077047361373875982759575480099876667184320095722077020942031612906884215041493880546991132027573630417837723663651579003284140328123179676532533999475610344141043948220144231519968079102424850576841302222422730994620202276035075462556703548828840607434290167713828890961532220194478699371293660568525545306141121790151759704421005521236724837353530972717958036038750496888656876829503712373148358285831137282852434394841880312736397655700888847524863799856002501513790428715042567232249294411783102375525936346655342842906055443415439736113528662422115574178239173335426152558403001741021065906001900139333620558253700058083993809937501428397522459226657302832944990544500058500580562400065768311792237576657949170167182833681123752408460833450139632833947721200166809371139163289648185828936910902016322532786352315354837590883042402406522345683004429540448312383996448178273240802634135919575760661447598912883162852658377056061311684570050272944368654569760747328854532592489836766331388846003742547421173084054930712429500910434575742088106704550886515871436889377978475944378576691659837758272035108733000242249639297078770913487669438590775636037383032007982772795576741318372182549027166748986824416530178221339342766179979053489213493241886705472187022232928910013212836734178432410111406232853691998496748340885445351064682206512976051357975055093141658303308155206867894196634958536332117038879415010113232785098973114681930767797058655689264053678726318918490370836868112273275138240056168139616154561073116088648935556822242783365473861912453222485293193339239260493201101247111297344980140021359649650234979826530965768724365205198809629018703556400319123992353795648352711358069208711415614965370321911519322578680829085762520542986734722014905420689949804194397931220505959553696637266164165305589554850226738291220005280062452441851833348266020412941633161757844507928316225014385661982287523980490055286251285860418598308927161987352073219750525038758085428497999411795849413050739925628597502169518290479302495487719788850523677001224562432936938054837590307919681232810806373058218424107151214763900927749895333957113213182446806037997109715881034049556778273507919072699580555506750778414687259870579333783320675888809453479627510884144954359408214910404991063903362286295072148651700298283831931364797098950603238701002716524172964996137366652064716297741507107563271160804960692541461996915143152003547938979431369463192968898637670128547455169266299827705262767061336901108293220423659077096275786673212781340731967937267565151947615174562086323060590309207511620739884457517277081511716016933008153772704606250717102945467798924981389100221249483466243305633172417774139429158851634364515599502612101809913984368830165006812278660434921711039558679201516393087489706976704107531729808056805672188964103672333344798316418838776548431561231486393438715422338886185126720888667086203310327772889924946649879083254611450280181857245519020337605517033903173003590726039868208353791526532619193628287919755277929399222314419560532317155224681435361213867379190960246489117272152038354584116425437416352379137537187541988588981559048941585830859695054550300279008964176611005806695842694508807320030372457887320306186653787441546770189764513939481335513416864937218657664540723610616197021230159631298523868305637115759665801444045911331320224543520441538237619427677263512435599223443010250287533860220659298976313720154840500711428630135270262045897637894370416103803950847374690797879212061410596621192153777925010036773684651761065024797290146798561534218668149794825435178300259417948117196452869819143571884288291125088259684706533976805605943158912622343943744049502865403854658017327133399127793333675881593928611629926030696911724938498984869109591598031781155856863226518546719548710903973618075554827277935798202991321983480396829312922265953484622242398788297839405341390451198689035238195706613753665780457872686177819791020301486227304535107366270872226133211043891771277654691297493960436121009748165144937723128701396950356140916932066926355395104839010122079500969510657505907449091275727679253268356399473211130889877390182255046078100404372827387420066240802207101303337427430689795793795609614233206224015227671985655573903638739785026324184479310751195120818088517592484294060564433703085715289549950714616789052144487047348523001140498272376205064280993041419217195484217220938951714192474086892516008217659395628484991077533853496395470684965442969541651971499843416195733393848484356781221851021671782571813089857330418046903948213482702756028476521714974843755087885941755840997081907864163443084565494179411808517523667948986616339910550045851375957825854148838257922267346841845670334786687222864790759405895181427694095144778629494173442338511474735027290797213801579862805265370182623116060523052376656807258138234174167949029701285191610060879005275854461710183337010378160231945713733763633624005821466097751009456256593957611910703553240075872288257290799736707938397405441057613556210410938427319037292021306207388578189711398923678869339185811405448783165984021534651010884376915556235467533964444902873381544284571570937067118782967350632359743916566844639321473509692200110233827859671265219708122613116045888565738223569385376715246374554625509496069254376023519269443943658891263419097174663390998586005549546416221315993981343110804670090357584945037826685425550945261386967673246839643242858790399686200917369787499163802089703989696628881115993827024161389556147129303825846960573694399309879259674371919314586076059597419277602004104679327720302215215229295864838489515569119620761080330769396446676736615843774395494355772870383763716809846447120037236947357575183861205645274877095767456577550916075299549363998774001128657919233838602198090884408081044660606997682087444387369231073063756796920441036562327366055744645096560153177005543314870548815661414837154047506931371462157541203196055516520620619855182237875539294611844194977892128658951672573962495841132875083605088225530108047805858346161043783970237054134084252408060712559488244237037836190512306317846603975862380780846761349734839419695895258799375810217304555784999972478999351071706866243741113396326267129653343846117776436618964880368937060266134960145737049031946231014395511332967943498698584374246349665655330023760900176387982542250368510398829624253185949787899773207822372490174042192857517144573908081108806670360636466814836565048007295759537027708507161592498033320573360879559455396618746522839404847809550892236618170246273961424466535591129968595632302562161550395966309291515195226011479719510321471591780082882064324765841870450165016726899082803150874268164148237400334129889792247816089475433730107043143156478671880292965890748955121132218914634929671522095970799328689132398524378769537791567042201513879930117450766506477966876909151512711158607432963915299617055465046657067310637327488280959843467230220141242063336807968511203193864703215592098354354456076605467543998612195120065044546689454483006198189738343352770594186770998784122080812013515303640989120764045608744948320237467999197668485393340298918489691408876878113249826303790721362095754795181593772315128776612169621021092934305844840902325794350517410956401322506445415772129788529761618810142076092601659772889147107140850676854806055390146175210610147661163106326349170418920655120428862941485279303363637399468290085910370761284976609838153057091715985142421506934333835320548942323129513170630737136980248676677780854640084385021665018348004050545802926834068683664653662855410547119595744268273338986317882173656730832376842181187976710534395963015960381616445920352991247905816597647171917397343257912888572103667329150286994224172874738266807596693666622717122359108811009018506042830427816491630905025975606368268348171373393272660195935945215108377035668878714096511347754762966149530959757872402294363805814263502849154017204748944283030100842468445270369538051530245705818457180176969503366795468117191989576203714643591547651513100263601095328454864203859287195729137550050054857516557483208810281329456077506510964257837207849306979480297641746501875725232092783024531825863957759362623760413022140646191504879060186470572519217697003824897160288546465794231576901787651630423560713713737744665579128993566713397100475154900108600028269229402704382388790909430064157848897623196222622611755985749638881276641218987945584543422529141737139867474204657487086262052502772827926107340821446529556667685639998445721277761526815021361305529162583911204211721946028122789990333576084849800808585247769491190588547688487010355205793537063502409471560885722448532857760178484869027434924829124583999995857998541069527782604038963965485155044756595188207336196683221759995664402617490497146171823080269874616878566514444109585832114845452059716612372883765052342706106855186912407951877178505624406442467338760920241295674921284123963087635616753285871597985881834670331769459782275292921553719294875867615709448979393307150462938623142887217020915252453119154376235796710705824192600224806780230651108659348807906655203219872477002248344230476310038916551498304120469413902660555403700119100518186990806032221903430127207429877925437459615699815573034474932883948146942623651393154319099825803770745571026393022096885110179617076169552921457028854615161603806633593789042845191320795346963824713888070780471211039978660606768029422013200543383566311995751591468318970314561705151879105352352402557963729012981527158205802623891084474024604173563986634296025680818386567980751596831793260460736379158359933381531920009410389809081478581856998097712859658120178782032958534914444153991865226440161747236668693378539234343722999668466301240070203816011128926392992957321811098732124337773449763452110843879804734387530835973083304806581455975871957132222754356980346309177763353815171763313542424817982623296945053714576855723885803428052207716486593136106595585500712825926087088010438838079803609555865805996381078558358374261772563122592138529051449837346989871197358450139184524307624395097170997649427611443404353834820896800369217376065269227692298804717202733303389280804494225422272977938077031101494423087731427648981863718450778820814390171029496530381789830867874909835645677786019641116417852588301363873788906127693137140387402392238181643441802307660100715961387339768958945046902445106738722233746139994212438167091990123263234476388689688810397743961434491513838875239546902427080225078200461339691756248947265171924573522631293400277989571857737640596592986250312049685612908733878889951448663790338026725919202017228208768770780783017382153505241104180034586249311249284080535870996453926865553722202221965681344079470796630347958538893938536819133785871862449777385786960167974424676729870239701138239088248821343558103547915132407779636493319167185312326217876537971383374167480252754512494481253168061650530967406801445760842942734860938419615506242706069551980557231743371814626947187757510294513745650883025146794018240769343657993777558920004272990136231248280422248953490478978498048706073498559566193720904486276299015302074776095720567195557991047868920140175103953601634458934801149430005769700146447833465008605003766539886730961430667798935738516976102187884890048267496476360057897097519712961908616594145069114832512929274552309887229730975563690949306741165934551427114330841276214000973205315666558558497664915028686347281858845528519185378896290885170381874851823780722431557824675294279864238375729913564115453226133849373745848818063928664230334324622721736284591089581068534085945232582890517448368118621768758441536400718246457772073043662481867669327047518298823803656394808544583032161772563047078569143245623336063085783006158891136567269558993644457908025188292837824539323270841286671552527678718738269442757224752843743197842545379573519790952754191800911599699551854409161523397569002213695741481134791686744191701558846298139684822924275103547908060522459069383072399684248576989609227857374015374152773213285069301361622629036697211835704576254673796392076762665921901754990866275639513841678140506325599975968396265766788311080699619690462880302398869405328217999060230728534475429230159375566394205816920495996120567356246874558747153015361347137565547094939589617894806854513636360363539970650032813701217485818625468396883663287750592652286578731966156813412416227854650750878602378628956355015953403190371595988314940180928883453152691006449383584611926792640645548440122716813861914716691166530699941550781693270790849709741431985569066974288611772697125710703337473986531742680437932304736408057969828141447546643867355719300975501727712883981389080330615489778039421170838050531192558088519438572323914466059791003428844913348578973989795487417684349719633865756261972710022479279220453530735300591077838134465359039279085649513333116504766018564707587211057881396747441610812016242896081067601571058445484130256931515823980061913466442975118176619900830991515451863341811831912085007463595173416357070899102558724800898100150218119011798621807657459486786134151352038083081949989516203440396888063929476171566363501419637763398618899549531887832671840153313468367575063747263410566044264613509507149639480422445249612951904726523978033205544827882534587252320090951512989410274588125135960195772665644403486176496691035317281353818578380378411905937866273187861990652477252617359942778801574798458661141140685277323882443681161582985848452188440296435920909896275113260170872193910225745458248924895732205094290498436286153817294466872423365505013353143537802559259282953967545012072077016907349042427847769078685906177623347901513455287986015589706725703057321475313968377069483906359627807406077240846183005832388903463638763041192647269712397715737876528999314181709209282267617247198060132371919311328110777206705151926485380102727600723684988112470093927578378178294258621668126935847455989648393150665962987013853172581821342405086958851335390661851270779885094276668288726170296115238073688217773921995197834733523663548543882060201143828925346604844398064182200098270123857533193007668948844837562711155760612443683373522013544308873831845252977901117388306707375905017515270423288913353366133390257239734776984427237299616871277608205439080327347366538870660139910295092379892458341591580281041557208843775318086260463900259835548634182740980120254996466655886778643712737864128775566556132790674700249791347151565561932153503193259736788573916034997618421654228742057847451737136194662753435806082395648034021515440037505325784052154051039833017222000328309149666235905955921117470474173637596458669463578725732580854460129002552440185629821121954586864423254739117490109401246447154171129587740773892635564406377641098035120261292968720781134145219918108423270100736973490351422725105565969924530094586515087822742449329698060378270435062569654635093301234615838768546252856041876988241047800569797888290467021110201241864780097492965542728979987522814120052852922359247424671500948444127897763376005697521169959225250054894094701409190205189014065056062767159795585005591075340510266375865204646504939847415945417700959993247192873445106236575275840837772972090476801538646133731802746358377127722850998889232573608335804826896024217038863162567895824625329671254630593888947408006724313257841793684375548239989879741046267855132410124972072248880122406039530623323511671122553607328963005741075303904531043134962857627475981205825834215493567129638485311365100218341331130842763796952487854050236922435429153626263876379982372705794131932478576458019971626448748715791804009900428206357724097878062037042067221349153424853244565659900244660456578105934111794519390112658320498981394896123295152979562874794025427957357499579331970142290429797652518295871826821670632285614572845633081614258834024540188719527387094524555688649116920134556924520258368138453130925451417660314530220375429076883113629677145750844009766880507081782462858705651161119432702025469542473507819858172077130870645675867031798329384306331402400895122401197640502527460633077362198135002895476771521843825953810930802263342876786246055671704022818263820631412770074055692897296200141945623824603442472732163029916424412900442205041570316408205773000638617189874016203312663437202677093869929831633595123673229913849893508882908404082001225340707864262076278992550526713655430989744004419535946167488982440853297226120648826054937986736324817679403668383604285379297302463201557523075729285903088619704400254628484383982535458662182807826199275173822678045767029433934455828431604024345331825759793605547793734609976899094772021716095111106637655164474166366150430866637209366948079162634156133145280147796185455968998622914599686787408854563432119896712581911245517709859381263486564559412089221378420416355923914800029088650122129516717030884558190234308403044996854980314420689555012603180665120870153108263927909394143375785582662628589568644455829999419452207187740172580337271405185304014984617452714601794048608734509337610154230031437356806763910347291148897049381821625199497704785304842397465842080448575400327378697307530590798113388256019821413976871861405365234237953647450850350321772634582038490725756262218090700771704786793192657747741799219526161539222274144985015242777133731732854943615994202315793887897365188793022367240467100376798677685237947945360845660376607176521895134757131726433587571575629114078371109219074558235639442225057466993645246838974857254030076259280360225911648998902879168802540432225609969455259262625138869953485052834950663679822780135344854368566886320613482623224613651443624311661439999427469420310332609771624774948090612095013471368663105681265778851828376132061366204226575375660051339170081248228356719473341248699642436717225854638797884993436249737305510681277663384561961861912517262130061240127289333146631531613514965595162213946956635345971080567638247556537069671281258790439499200159909631004057562382865707238220990679518251893248946747518319655885753458080273967861790029775876757109372764442822653333429595064557680437039293817954709038658666431206692577677995108975569455293663094114989903894974510878442831456904262124286969423147069294606728167458595249295557946503610870062198927842069920614203999257137218019039998720498962994893800518229994079069831016273667394527447870594801125773742419357350818118752086701498636012327381372668773717881936437917308321435285820951031860419806573092324698449224941895932789987840673121141242958729345907866975129125936819226959855977623075737257199123228734360766722863548104860322843100667759028081803829336121130394588322111487299755851862454610598268750860357223762647939504207066771148489509806867584477795240694182210868377204534839892206536462044594751354428786035965857863441092909324032489564624966992962180943264300457512649874670289349285219770348264734369998783429773478696743546179560193197591868643344158412068399000142015682842982797821584954556923976159276360974022517041573125996872107752638789043761333245777627402505948077834101433233020728111059791490290787415298432628881828513870941610117702929641790598551473431844175990698843749715002142176819968745054757707241600745628904494027719776657632138724805754137602116459031763833332715652812785821613255147296459246298415657440133938745986560426405772653010676586832811498249193609131853672510954147785823866023306422514832326354411485524847686082941346683653293912678611551101988178752404563590888655807889536489817066884538458354028003959181891948745847925998272751299685963747723704090871854392081413569090225311556327457311250940104835564650102580890019835143878669208820696245868952052552003998628837345157498967239008369050898748477246914991068850678505404688599897684591091111491265239152266972153422083091030338376127760227828075313619728498200263874366246756455569311946432741757254900512045155233411072880020395930383676407021390389097972374905868995986515668998945696571882046275127475748705636541323579342015706263714224214013539410611861827549399614373464914580150512659516453210788412679088740542968909121259197056543990826033285809919551014816643765104853340791244401901797454254990239725640813913028526627047508965995209330909885609122650261548380290970846800378055227974500607212740897363603994608754675794800919463633759944889942479544680599366514335659390963123869817837649445616346600198646070141903097389655728595190058784434329715102011902545003518802527441700784360581714674125978658571272892245271241368442929269924022556735843037800571062184023497500069421854111208596606830139126683641147260123153300260509327978471677592736610258463662466828161456801237930219555998839044650672591555354004347967934945833263496027028179690001160258313153490061664247079737918437960415449727988929814456454855389800853900590969469120738358410680268049076179846133058936557009693617562219389753956083835181652341342198969003448230708994663266231233894069936862071743694458758752352706520174219253136484469709478199258557247027182381661012896770117611716366515985935722886252619748291324844712775110362625707744562106052353438131552908835241402274628315261413059903425636209910098243930404783216259226013885257578501528571877066698772069025566169170742441497179086620036677595818029717161865374820357405460680619582376322616137952110564151885582017159509288398403297752092263349788294469772124207995615453219996085859471164804107314853310404815035117514723756692058189415691029918801441944521552670421738517994682810862158756021677043167073782111261028826067890819863383355429810923940191102581259715802334286664895384688696556929400263716444307284568598407876208670724293667461230036854434098297385743708712959309110956200242247161552570239525420008873936973696936012468846544393668343340134374144079223147992626767727953434000949179209642361744797901134542914481651927483658969121856602814990613862951402286737974476829985480852136700832979651708608364115885981155481073363388233461393231633952137161705707374833055977358919608988423923831551284340464751110392810939432577054609097466120101973165627162801792152916081176746551970811799692626529098922697676395891867625559577626271608732189950584244401126738569896017116720807660456744617668591383852464989470158101840509139476194683246708433778556202342525965817031867898988155502255254447715543490067483591222147014999864860382131908392290468840838004630151551027745427711625967701225536683407386905061468634764974434534906196464275249138021438038635804775196429968639316167987778141510189402178867171953223732896896073313927986160786057096297949633164860596385966424145817428374619037009647375487587280739712236719967747693002266120732448507911946481864126760044781621142662313599216130398512480019084068036710603037040480952025714149343262771465869021682064664924673462991026884988035356077217480348243719916220940645318736531417358179496183221075234509839283309254249894367891906858366347024427063390744216725643048910087488049351905991423231738652049261585145095968520731458915777549232558060459174852380061319028677000082359924910618248837619154785172445732869949490515996222661697307344665773858920185969941000245439733010631166161431843968676359802375430840313483241194283676736650280547518118820194527166019483588727539400182345780790732428353309477247050331837560891817191872999007748615938522511577671039617611997699250403015565773401227790512204119049866343001726840224196203763858443284233441146850133690981790779665859279237975223556942004876404747968668347766147225320700833026790878224094144273432565750828033017448582158158605695924672439189278689992426453425485602941266797879020641228579211870352534878338281682240270160832286589267105523943055989179725208217619898039859982316459743864148504029374760429865749280968542577902596175676550204558599906897432672856795295750861329997832786581181950804645312244460521069603706569987883854833358857471859037243194594686127726763302853980441598318587844595789964740328922949308055122613107816559295579106784881247446863179834506642639730695024649859176290530461501563068361272732631117546312078585404600852395599872210175521440522851240616351472281631792326797988865270995395379419763684031276490520948486851131282132924352885115444787676939589721317179866150965146545632822950879151117898842421497116140144256921953249221834075472354574826588521384422961400917893709021459265716284966120952634920388477873047488523359918875106040532219045927534321088120514281177554992724880183051292395981312655700975907843099721923195247610473363170418430852850358666800958624202140539713302235833999752224379718430943908330089115861947107411668739984909475539245843668206123667020353062816258356352675485575324528707515643824723282816941660672830383158103923647086735595979419774449278902179580069635430751710152186138544117404624998430573821489956226392881756421237161113204935467511632529339219762864758473682094565502290048430651603297435413695004829141275456676414582521004706088470280616726433385794623342631361829459696443869865094294989788917818620401549340029234565273883399640443682198962422700426301780179931588370351813947825308039799599401643809558724342035102046905085120379531608854225889505278216642276671690523945049220113771466428387895164293924113947536437602684926919417733379962942325030855075874777703400319786707782996794779458153574381280548706175725379237359720812820113031878617706053123192398651810107080085991957146598992951557899672682869941605540557988256211878794845647171312731346578987193170385438712211520072092184306819780156365564636804149961930200418718564916728453288672429850375185158369913709652548009264017999175580732747952931426038862134108298942364883735357740033100641158520257958170592525252844807714575213293792311930256139040321712501874173557679256819337744860134433423556076180725198254483591784317272067425824899596173133781575863395968165355942505348791491493177986619374411617917452810176499119401874562311195942768046960234355090640774513610519051896353490013011542049256192420026362622208292659687735113854293346853223774918045785272550645721879335970068856412403893623608243357657952499215898841419177978961376524058440942587468217226548197893894588107559665971623363091299601449592581841394551805119472408070839812139088276700874710547171849913987896056705903121200561673736467174622757084640647383368854912037426213535734631304638916970544168388617645691994151339465965151205155826994126636319589860963375852551988344944707186020512863246376323693590718241940098914815620759939243801434277623439765361751410648731113093997402700823300988741268386573473791399553033418218968713648619373616468405285687076524744497686916831026526179873828029260433751206567010259462951866700619445201465273912367183127167512245319801136164131612854680996010728875015883010338537545308702639531947086321616383532857549080284644208120515182862995901078448602327279530903160267362417335514854989727452744011439137106574147725343046187561453058830055278330492436863235434095890155047029019825981860268800078032171440922194314029647789904967403052005623392238001056090932030999514354107899823237682593774505437739277981986675597837763935587438340206707004336914550639906728859820976500403502547989876504582447900437943186242055529111756566373745716396508570027904366069806444716059773666815908581368987962147836506316833566015866919281198052452405406808420143777306222901158111220396755831958040541414490067258370501178425309181864654001027980023427685447640370007436776823926882551066602601595125079468896895487497586194448754269790900418653072397574648949075590694312863351755480123555321693400640754308393365580267388211949591075238707497027846325868627972483504464782319094637640026430825381142090343495972184479031443823810809473275932675814649237368177860091334593323876120038891347050024823662528861514489945262010291411905648612625101748654542075186456710519399862926658180359738543928297824465612053743738496492013171098711517415650250196430742028629088126396667848360857542961247508573452658699438158762414788074686063092010943485765244257120179594471299249059316555331424771478564037822988736050854881926748454255002467721217701181875904547689671214309976266479390930454184236112785504976300971787304531149107628966550539880894302592021837637471743491885218270949054947253322466778074134595341716227601010277785367411210066424614879533729045864427935390902998661547850045924626905100120796039825506982201627042238456622278899285179325819502413683126921503840203380344851668182916814003401940067519023598798899506445184969905160047881254063669921373925893487292310159673756559573365976978458077786375799666589881781472127307787479425085132824334280240807614637480663627477839523828165326335106645690590867428886599935274876212839031992401448054260816665615501933532321369141563203681520456765701053401633614492549297951588628965821277249723916583873474378490710145251562730399704660367935087894270027953765187212059460058856429087719894209157585411688283331789800563006605036547151065283774646834995488971293534997851301851575336070816690644395359474939855426610148132359097530305567780446726380080521171948901702579150155383306172067145165571504757961697968021486206707099404520347219115166640409019884398338277137727590354320429671755516015443399454304492725428165749224541102284012049941222885987897712459076661433978052376091272005598408340820833879896261069060713248618210938589653624614536372359689959433544821786684991263074220336121239201584942885489691122827717790894014740765182124623646375502497335531346655943295397559433540023058267743874607169623266535114761376994522252883428040740775538101150064352686338719601680715119514172503282207577102826971378894206961239375679284625086963822427069909294420696286631465858925561401384703359264240412411858946861031647575933842083644424512836133585260091936705809950461716129349811002346630150639239881049165576475868123637472180077791855942824215775292337763221938628775952399108057259599655008490502320746004142354369509140045547049194915323548433617525222710153215150935984546575919723929661388001404022762963063981686459690236606384165613712629811253974234604318761334755176964220918623787010944928558840301488457357790709092970780615647113158695079066595680772703266307594456196165490994253885871748885076075142658170397553423441349248849593377458471196155456342139349943785669916020097980857730047336796974449251838508942814246288120642284586731749661643137417905550925691983307313765362163737198809646247033859397177684449457099592650434126400133073568584088342523713752926923837228437143066326604015412048369034653410107264293788720305903630571077814180028243612739487679891151761815010362029986754173970332312536996990978352608919454262417767396414560251294916332171861055950457499028261260424235918639071583216673470170668818368241905193030264470641588865173147255866046397597501920856475971674601501978675706024674948709793289374765253015651609468564818215651818262565240447101897878690386309103584787257738404829958131167082060117958600166840040717159060363657138396306133990310179572995630164788506126991999181635331110809783070445732636336713439079380543334040986258473177386208134302024892546930699453820867506522902294756898984962273749234636729540772349030805642443643722924410195977841330571325139199485860676467316239652535254708742192484733252212912152045514580035115025708123992096673789739624823504630796441804123517856527408356682959775687503185883187916995812528986452001355044575172052028380279139634717026509275310431060308788443532237365317060243404058300390437531607618597127592422764886468683393924170265460016038500485721527929132471240939124643993345101169051276228877484974451511280484222719925769004201502583957567058965011047192528892476416451298454723351870341225164936192781490605981029685638685158646887772704727348104467800368800857979974161802376685838686941187381700242700025569690398728080180821364874981349649735336723077679454919850318887280049293622515716930704858320693942359932480285872630829828174529592993051257587376696423306803831492940856038064821426416105007779451252250670530949522665292221347528024540784943768349933148545065362285847520702570214905071130227469201627800217996821851291164419877671068389897798441849620699173528427841247655043176389217094487051203636712383451931377400462314383847248491517277298678715768518684321571269454785646291889792615804288788326815725845520541550661560016011834073779203953854363357814622496570326890400714130302114663422153488444211090995527021884238289330341129726303773160332906432776771657468653400943841996758501188574570463418986519348891845717539350804561928935548282443511807897486927849442727679063129650215049257692552181181162316283796172574345741187175653676692378843667618034687420556777862007553352262336759991286130500948603706470115580982234860041207755114517956022415869990131060782111185851106604787752428751599396279721275977556160151907729362847992012409777038126444683921379106069041738794326731911274391779448197429534588034433398658125083014649500481145980243691063918994492617426151487328627647408449861548928695185381387664499248340132783094966624565037632189638463634981966295447262436008025336291723268701218552781690130736163166679227305744715325277207721633750028489346828212058121355609610255463862802515252034805820499063860995984277529359543788220346603329274724603894291429350783914656908901846732328790751534060597481742021418412896409360183927397408906590999215741773067398343780501847747449268435237490712327763078391062735801514009534745994069323935647532139570798585853842740845222414426608701986279900928947166088505310951286050658174213510958334934025038578072845616572534882058933860172640730039294287582594860745401306496580253163907701906094457360367332964773741040767080242035909733651767523131788500485434067276868551530355463242792471515672001597887464424193779180907462378292725334212717621328691125839884169594128075974942087555579963128277308000796646095028283442521974182539942458309276978499990324228927153773616811597310274855026568102704791481074150674767967942428564941995793060291977155407453949091809589854089234568180362925092526100791448731296948129307702568754756662413062426847696551652373961958284530629974044853742538732656702794896970404561209359136497729712508104434384559913067318267532355636427504911460295076516134258214172291715879148481564223947996737372696835208460246345040237604628099737884226154188221586217077698723374176680367878844842098582175802275918925880010239040277463009622828098355506306175243387060774422184101899545895537851642468791927875499324076159792163079717350958288385896933817193675559209699868951426137844215651610202128942984303345368231164899446873171433066517325224189678432141684910740834735391186095782118374727957910460388675281578897262679329905423200690171858780520722664650981242823464089587631996929237259580488830408671089981009372693205625959718918809951690205514529034856893785073903834969257313827465207972401315840768663216988075761293274586596808276452763783902811252718340944879215218485864589913572940060855944538694912892606291694523573107115677023529799320580809261784787750979786147982711566599516969725615895255492815756141210150250377764333238780273391478078929566710685840335001073898704088936243667178797477136679939503271381014643613377015837132120590155860062452363816595933538097094726852916117600330251790633476339859982054948076951310956102632615803169020263714305350694608193346961912553312504470291671559033922638959076464328789308381613934010481295935079501363567514734999023227010191448524884634356770108333741762628489016460704425769413905009874928730701637035277598852969443760135657430042084204302840024173551579334797338272352194562770487205151762560331935539393933100663524912572043083228892121099927665580333117864264254033867194642487321667210042368667840741459489779120719605643338673559355625649251670148637756827115128088417377417182747190392785871940281672476266408126457326494455730535820273896705462876498820444682323531600557675687353575123925777384411668435160223130706776909381414026593211877954449805544241012250410649024881034830624104975397756990348448025401737798591247585510069773531885006626077054915243259859830974943468827237061306188369677286679503373026281260328495084236527941866660979228475300317938244082134628135495442854460480424389039657108358423186308662839032615844393169783039764004202110728357581095803041249183417288919819758386654544018136680970706467942771125283813159865542592254063593982884079521348241924710289701682679165551173608216809479332584334544374589689092124559441316503848285874607399847537942236114612254858692893423517463215328712562388428536986165819904352854495472282564397255151144805232406715633276250941097941282572817315657829061589569989426966066729679047217164309230350246002237375720690370045481787302271503630465078480150295738501078798057705651361673974056873724896159372609980700322567924082265351124080815557870180536417776614678336763494855290135723147751293296382133523076194194049008090057352349480995560274388355954952799358063397953270119681239305935213729129484338300166019340935580998702210111965820052166230549248542367166182954979584274664309042674123833132803480558920483562847982643418239632053516338367233638605310598266406503795922209008777050163326053415960948947308183060050410290528273988697747604005162708975665642568856889281817676185010139770395162772021549067668558519360976211699590119744008262470155344452370479860847956523241949719799028159182469861813644653083353974450002256934190347212438226573136403110629530149237170859530066942921041953655106535650735947171980130502463466920648975079751287659287998464756841041556805679250886752744238711291777221235022724878982698408020268025393103362765198419435800972040252527821109122143704284915981120075833979781964802518457978381784241288199826692369913806421609181887212337777852811421551600625905381335803864775387158463958505854141136473016817793125568327408172933160534477141720818681167702987114052331312787032069962718854537476180605436342210665300722018997756061825044011837685171397368555215828497426620603352530453649767253820264592837092017871477177229625835883058924521135555101608748408942045912322106938744797649295199216490767109485326627700691012893883015662314077096652857687928941745151944056871545880185943036664137012420171730234410465915303785974335945996547240623015581112127226944326409840393253922022667001277640752778371591720030310742231122834351147789111921228531536743301495582034143398200831468465020860540806763791439807635119728682522061170146167753711800191821168464506903144228383959764727803482476691978670832356745764516836878662358638904796239521133929580837639481069271189592641657854658551518905163372207572067565233336311555515533577530241105682220359838069875086492524134185672035517609693983934878712151994053138445614445909553060154753722320835225473237802602085077236945280189122054510485980704065769482489075582367240319105402029607812069479990297171559017215515721440383399139718109056889254393629483821590122198440836068244707718285815173133182982431123084790237975085385317753537139820349443641687959399735969756899921410353118852319104958056050823483557787792633236847633788880018164641743325808183269632032825518787870406843853187986025258984433427987633465821344680825605952039219469743396784933353356517038606701238121902523881704304660429745874273398795312303603341995536408029761414927629386814314335874044122023012670388321168740557194088038479314872110522665840605340254779001185278249211823770909883235976434112820529087003876592986515678287464852383578967328517836409214611681103869244848390614334404727338781772975559415529230121683963482045082827044583393451618163714767478159239486045381892380381050346939565528708174496065678640798814726957055556052798624326496364986961022587394118218067192595544664580009794563027079812687821209825482761264089488209522280628310976621583625697012209304568247830703098114431047631837419110423739647717105848160755136894859643943130192457907463913630951150754045870229465700813926848869094111107531496903562320324861007083707342479808285685935293262354293996090498987639816133920199699363269899561960673155638450559337746069194464908609242316997123570882644513435238856913700844503778048452419883083252658808450608354379423148046343721292184698964085270810653869972252759520906090443401950131776891707793604859052672343849534787961232863117193520768296546533988270384022608613449166684538601464627244173764672590922596745547770134860039292575161113566883869772841435208150508139672532562993240359955842343306109210058686070851762827162737380799502671838591079462543304177886288784653366403610625845533410786719072889030500396390794512417921571520548174423662716667114836366613284091984894838893380570782678650213866183379276499802771361080285918953467239193698958766530640749798600166070535497218114453459190825563288590531867706256542753792142857885852564248668934008111447637506369894879585871035329925855376707565570496572078485711673089248924718152050468802553927082218488287397763574684159158984392703805873077894542073865135656972788544757967268931679721045631673255296771654627805062771812878115144917060348514373736397976638935887408994277961421758863128491648948681242677992803855424787053647659740860082711213760270015165032612263410742632260308165263623971213499108010885832934296109863276423713268868989536612846495230975320847062947634903323641063604976061492037255834152090458610916321192955479252878193207846384433200089801313964701636494735350797900345090822181813701260708178065391328932591335281269475770293957278576428322671437012563270574895215503406782086750437439282740840028807817121825152102979606076942362111521979524072579906155186752880387112421005441022059457589993202295923983921824080254835114805812226714345834344328040169032138008697851365534255023922068597507835673186541891061250766536829189409936292715556850936467228362549097140603561660743392703242950776985553733336762606817370029954534647488374007240600540070929562428261264605432080465533702539945069512369443395233551068580964620934131225936946682256685738179274423321136569837230986254626703577003179302581794705326949625421496282616774518664297545588205818483531045546560535652926666644349326219598345649874176442580801475919873310573740368614154870967114582198792699270783455077824664926809719394139125761563142690728663010980067977871592763352284480415952742810976081030545769262068418873043428376589270069787408626791074827951598726029264599816050250159026745434835196351446373523070769163157197884167112680417157130735880951448148139995986678522556894320815681236784608088403044829790346135367330595530263229240049740457347215468840263201899531346258691345377978876428755327709265332650966429952474030722357245290198583869007271865620604176306308738433809179950786526039133021880809887750838995716331841491096979637603638034305680658385866757847121019800094315421564578049693991056714792004749330630528342103015264954810035415879095963602829304205791290963591525694574676318738490741921480667308775814476446867310600547963963397291438467311298715336743568538174111522478412646674898251777356190825911966394535585756719417579322944727228598095586035277007989569422207210360646296242131916372029369363076918496226022810901096405423048701032240876705535312744992488271804850268509969362447721536915048850941548848076083574289789790249753671062579553884363813108284890615896395162407848024227640145592109934915207589829197756669147609754510866504159191827251258950604147389278900897077230001940667977143335054372045616729813679288966044839406094918630388457209961102081728021728271817821243573557229383125647220016260827014777513091461488517895568431829042711047051059844722520439557933436627032380274124869814413921976393112735161294690811033581678544739641962847247954346636564661812468272208163303109654933329129185112423263750177133590382928615630658973114864360987615896190008939417751875552107504644974242069484555260534607606790657722981601264717462705188256529507220481969080436859889466325252943619868722697947235665774499180589831533108727384300767179290322100517563129315096748032819429604180209458087708566001280648589313068677816772855311434799257236567483102237160853646584136671331703624232977531060307659253943830086087832392576996899056202688509297541817930100727659584536751468065618141010075909585247030754627552228616286750401958245806920299942251927095994503464033831454955159126775266439333681836396457023723571512323375579895167690156805196241554312541071425795079527212000142256141685454438077876561473164455327570450936382031803072556797077073782631843855153119931060025065083257190376794762910406886300717419381668324979084959363532926830454542123419445277558081134308378351897179670688630555238526214671426226054377491513221799888415311842826347951668347131938955791110733099030028921757945056543804015372621388439866251250217128570084135581186768636758712707608998320541747507292888775793118833487285012250509356093638378003033226056847042550846960749824096673314609534716059055872052127003461510572336414869019708582175142988143994089276969148219877647002473135540956032310371783106767539498667563795031510945764269539872448562488727246689343184683864548985715820683023155217194616282199579507197936359476023586882171206644507009721672742647162577208393989682322501501054072211001396275558272485164962235626721897135023381837625168920499814662360948354815103600603358897652985582715935081354049498980949671293744856632040494367758939653387629968675800261697383192416624758158014249752691300652834149468069423008269675615045694636083876292869161446929417803342332614806382104473665145181288641818560212771094203289220632420315291782055399586110605350373317626680209408899971695223805622949237277813396861861317434645197862675448260218418697358983075600651866416189157448418297888456680836684015291852215543038887740320431083801371108046281507807985966498046790573878910169982921932642585667215709080555289468769123146375452571000452553197424568232012529161095204462162369458379197388311561135433068729572628196369406304961196384444249256776984657010103364268385061033123363301214150430261817425683776607191484907153026376434266937832491381149296177563662363963882278366221074331906542584599873236479722340816172950740937243541370996770100455714163965854877952091180981137457330019158665943873214883181744179139412176055358782827103084684463656291647440427754071837726608461736982788395768167433072307543321397465665565070774669674550986081166848632447254922994577543053837727051485957314800425097805838955498391725565735876928475786100310275279616780287147428621754342758340060043036351818855293746764824221125943205491074175233819092571968764890421588458580108522795851196823512334306496332351873087229428570084457507982935448147378051282742950686582268014344220295597435063047048496707518316315159562468886739334571233312277129677484082680855867238704334907359608029978639039995816027119253638588794488011029875948143436992266411907918046815584915324757626450632583569342049874766582701672890461943342773079250270056227142055446926394178740433660427894604010960810441384605745234112001208806222512166833801386882419575122214246851643187107503070140681446215406162019242952918638010631616722523316090975388964797530074810042175272902392160533635261236635469254145465502169547717791625924187333790880794156420661468254690706010675364626711747554053649685613625752207233830762403888153954764299857131763788335775548998730871799134252702776335020630561631308500935337132521764622432993720866963383297766544681912779400971167311027790481887314491023638679101552387333956536920486906914832280026131894162537443139138865647226450004818465031825828076601116799735221180024079129829267111331603664784705724598197420361091364049490113079192377300651965320194238264139641557953556445737922469028373372685356887562536071519463294647862723211547761027803161053334958336196801240767718931092733080334896318068316827563223554807180076697089241854539760338586243300909846832539577354074393402328285360854705782805361711258294525734903305648451411293046955183970427496383491740458438598408077142004285492411000174001132886730875685058622688706054126875192527742839428054642345491189633162575360542747403436035600484348276560319196939757767654632535034240441341614168715733335930903807261758675028978576100875533454179664025569814016729573048384012790590590087031101186038051844091704927554755603992764924257118914405269545288701509976417798868137089350808134949678055272226040934094353074215456217593785236779584865332407578745145248534024516566432936254471773623818190824359538123426525285933596382813148068191763345784451817936889733823775354940695656027717530119885086272390683517030393160878632261884570812343122998115562057715496580096609223343196836018806091930287855596475615021791928460952603986817391083663900317367352023651380584889829452483950281522631513049459820099392666651888899152194278835307951206812259736467206003754449026289743728648695838401519284163403627738975663428970343760790879038764217373349973004997434089916710788762201758473059517959412227729513013950351137546597001294469148100573912079598538738746150901241381678576756250782833502331615239655976422177740798291300958758503002565491381568370113127804247012409511040093760454315560442158699422528049707676298572416391734007424972724639855276742241137447705497323690006253492432006190299692191347840165132938372772273147412323971672752557409355470119397656072623701677395460975038993587648348189655849340512639407180154265106038792418814299219344145447908143237675798884985597068586617820243599731561926973586542404502318528745842874285136908054963290769560071100010383263533839922240675504689737067349496102663019618160927153631286532377834796061127581045416578617737612922147713391170967660693398322788764940958239199848849143853393422367052375436627812561590592826572686522899271881259089319558157268177862872661918067276172630706472770646661998258399323571463934227604536694205650689759897135136078927960389215459791261305427414963718400571556381698751078554697804156965192002476126841131838561369936560273844692430271279720719745202929680775087346756690915746505636605736280194258289124651999465535951701269523788266865735439804337909794299241420376455224910053206707907013574075564183828816172673947068675064505811218958608205396955922552441185437783252376123732214927236809503514194133485529628784858541694279390013111113646945902532736973709023443656768414575458681614247456771802301880669350509758381380034790423201878416483578998865079329681944108718090149541572526129579319907662082856097235691589759194645695254738595565080934482698928849664112159714501693378326510777959347684547383030113538851411085207044102605640901496247864035272941118742720666556737914768222931609231153837441981283911104515334612944949326708297004578016885300804863180029806390655735647115148020970538960038902596556480501419631279094107572339084328357341409183280314526748534079666879712363942687332240056680436134786468767070107089343753190182296078579408929190367111670132472738613409383136268059459483177058772720286482780543020946138990289577163953125824576923321810773392741597845699398746237567348850889626913731622774352759156707660047659469837046053365486308653062920321230857949611080674978866192931942799944073343730484914772254036099278765139068829848597576850596794398077753494059688260461948590032993167306555499497465420054214986636391995149080731840350378310959010728739311517967330379642400083840378758283397142278543089565854149189114361661641164422476751654738708148596105261171641376158082622728399798010532618210247545338421391747604954007720066193167787523117073121010782419133901045547362930615321405955984362199677967342782619784984933287614172316362015226836781123776664470361769470796987412251271478625908487861345418094963241993028352209098661602710847904732048081092175187927307069034920838200418694701045611092303807927005756423668349994598274017597631672048380192713734707107178486656334120383520897536295846253510438110100613413740278190911408344633115296847445156388762512855278787895909057298517232874277594148902547365127115034180783208109886147578678125045722187373725798892833209011561598291359622826250976466437997495544022197742794839923636135713823589489404835547636527412241726721208894051241636872458845777831699903342473797059837820288406736130455378987945985967916426159107434499675981511221705799762741383264225062929222216368108301764168054956215050700114570750306891209859272440149663135270731963185748444953074674900516169945627579506554055462147065995701526964221748674216614365015692931002059547156192656541951665438529875268966675636908598636040186209964335982071277626611896362251892531229444740104709981512460814689224832077411903112920712946819165311380389244700103478738746725018512263829247467568455617366427138894489920746759028075718876253462469859529542304264935711294490682494884829790093494530571711394046708220852872729618052821410296277519487473569265215903477275594909080097581854888329016081599175014062717949217262253662672841832017524179784461521893168199114652181102605254888602662642271785717877329079386918126747865006025039074643486100128243471483757883698067469376672556344621885473001266856519066863385471964740631979651265600109013646071468976033194387590572358779409623938281651093276441097399284164731889422693321369961187132911825152181000766572877821696196466318017798009594966028233148899799527020453649108279443026228957406535157319409415160062969245319316949866605069043420156139863220705809079226278997562043531845517210190441177402236645185226334030461670330530249755690587996936100394198189220480960322898908411167808350350700289548686634297616041453301765326709093131832821933454663121135669866894344124583668908095342474271991930386285535623390770108704371200768132578457281345979812642597985328372887229930822421555808009461009423252308395663201941610582602659949156245992763415917304701442001796114901012990392164243740065959515628093892744573680773259440272423349521267433877090118706687022555274918691534347517182134149128308394932127705164087322217183134248188200256458255266551480632257708762096436813728046380611714413436174038441333796482966752840088627248996177843381238401367729126526712324870903557816396998428119155470688488972152351757873035157345986040968703513036401774604052508935155885635863405655985777264980450287074240621589635823852253559865226290489966946070088263556440888391757867309625219222918174903185635420282826798548221001940668060160177019322130818595361043293361091856958337838528423665951978580708469187338899636957174339244558043698320107314512092912164312204480274153535767568378587260846696662936152387615291387734085885201244360488655053611702741726817994886866081061754594157819409466209151282509613667932310185577485050922220300616684727958685600286323804628888346124854920007803792441668798961449726322823753630951164713648884719728649939212531969169915694713526688289467992785524106270102077373275711099926002167391743768552031784211906411068470566482759779212463148326880815025747740785797934799751048512421395169721490920398027284142917159034127429684994263950910761530818358955130488002512151305650057592848133960246509232085372774967256829128707884457357457562231512130999321949965917597980974386710456128401348355005861497864149309771886150601095164070655318060653395166054367967407248520734820223599212485800192335004423634656901412618844001720194318251469799988303129691623026725311046115967148003632517600059304114681057362040195422827170351745273772289632969436016927219464599527481336468519835709667921761585435228135005770945983312780532958923628254280712806581618709552327958040366973985675799894299330052773678705917152348266034690347010976986872729315907640813209082394750125331203526836666352156138444426560886620887605859891837207492822686852070489412292472774899528954847985631559670963995981220517952946236137578193984287531559108365499594385474654926148107313782985129373574333298158157852197642413369546726662339445931586339628045740138534453435942101458116386587638555376994387568349143897545426729960095576316699934682188906158927317292188282609840249220769555431886608243097864460634941642969149945103956845467676713947764974750496076732499539050975652281925517018643351415783449855036385011451322943713177092873330197725338639252739503600111609803019801194482315128699537627141284837719007355339036031994920431227475172166497013605945213750121412667881035270931870711647743576852742267866697652314655943690890213235133565786479665601336020314442830880464388321371924608189570754922785849856998281686815534728988104828522371421837988291722115230099841312102704489954003657836971189840298691668757371886534460994600514856990938342400873970209136707768946711334992108255420467526217809414893319227581941167776818721573966280792056686921427786499054439001335678035975227140488926521428664158525414216360755530115286100415065197242616217745158113660484830915982775445106281263162780459480061458826908831208531617609323637067928626873290741711685392830469179691984420671306931047578414845665169280974001900588355465791785483053772986131045603025733846984972280222130542580243508471094398926068493881286340574344976872426118000926212592572224241022676250524631208990372298239629527209447609564952777083534951906659940945258552810906765982298159200450570577667979135824411320135693825500042395889731605894739139009385403905342470479167582508736148329955665465389620886131411395166536875743714334323019808852199762255272550666319440180772295290973233219126660641775624742915921475955682795808668887571466424357088548964630798012575699260488800882019610871514227161646327748788657958124862209085608333358018808954601425851445248145007080841739173275824728075167017025499626714206743336374780971923543755189728054765221520584693884737125485239753786264326517894486812536274029844623815693588667460205076408596835909367118962458964926310966392176499247141809280005911344799249393131078110907704355122321073335430296703954586704498465117930824210332702974820397617863771109321453283528623381256640142766859026534121399370697007978450192301752040040450844425992989967159933486812378287939849939905274932330455155820992141682079597047277010892290121674180995657087222988607359379262592442703918437828954355021978383909754889646020107425753938980717949845519909821583083801565584222360149464623245731029962402396444272214179518790210494745671798673512183511899607146262551300682983292905036430385601497908937876746038719131360727094180611599497398702267156909389028351701550125235907396184193437748045223828605557915712051797521353357769690010965519087483558709225563426414795773509184839255998656766049104668037282841509267456152720005243897624324641179180706628187819417559951471630299049857900758064669056787895669098194449417788353409910049317475167213148881880418115908757104012608566624956367160555964889050813387508503806720928716110413512747878077444768315126053801605406838767255006656866858350602787225071594555624271641222801632443210003645635595952349401861323812699092748932551212407160324554790963302255233008092871565930462158261415194309195971584028175575166381057166021669228811054135548344773468597969603430509050573508253780888385789379669851851181204964862266186761900355591724799710594970070061575377227220745552241162817482635412631416453873598371972026004723444677243951221976342216539375604424586463180614558888483650840110723118723931949197428125539028724437988439802831131473984662526048128618239500612225933747135570151570124258222803069255584634672545810745960096408789733613405353858932715014334081833569824715255038371277063508609429742274160129886803896808641230585332559964930367454958483279939743886789419459261314537234123862261632159500689607506250804111443092968380425831863033329255398884849184617027061910718850344889409068341714137390446549463165566870359923384663478412813878428557223893660001540452898987849077451647890471596820420912049880100779540191573537022392704616401736896549929064503869469309592209089839678544359336255862869687285978640594944160510326063186581244784351552532439270771469964484946602168867556167822419768109631413801639210907909052448044944015306462761861802408426333359861559719730995779138741858539755241565104396025554485650097363822624062034849839283650784414718645168646868528033845523210265010388975674138569827581268840702129441798677624809138681324439897397267804240221321505097012147254288416277387280990075753981555906830230320638915076611355318454060365835224863402121178152388241496054281642598467345076243554601178387547647336724516350300887274450317258167408664275063147742825104790134285023075158768167062137811981740946027979742484365102396630088425178178386843376753230111279956218979841700124120748653015193803093791816903167901523601750317434722252293606113368828939608491534623144614359220546957803788684788082536572834903862347781095437961335317656148018593213413653671897350003505396134878397981266954763028270758225290365639556379519053942796459524122659592742211559929571700153468179416950674906302785055518724932275521595148658674571031849647410663794728446166391978395140924745717544623000176303873079109006331518158446237228685500439746645814023254620228338057698568756650006792299798847035034985471250931109295393926059391739729962153329180870504122995111220968240752444157071412680807892617688970587371521220422529009197060323229647312095043606422984156843810876134046445647751221786999720682368874085416540093099342647262706512801232470495676190497708941708852027029288791785676625271461258774052368762911995502796886772293279997260125664447211716275612989793881178287608634147023471312736835540213259791810077339215083858670503027080823967173827998575666609342555267320659744974709369544571701878924701869065705444810021230421279058152178283855126028518151675084661865974042080704595345451868496337648203021564980753592142637910864406353442540652030228396633091496909342773773868311460691352186722784135228908890709107855249541720770114740135045505004236420898178641061686886248878583264721020369798436664334798392461009829296923752325974646036343653389010672599467089880671914123174204447719715044652330172409240986406051345973451723400698584100780953146306760483096577439921138962377562238601455084293661190639813257499411920732536266413300936255863006688552229043077031339420248865389543062860993294771682166403485648992744202503753300397573407083087096362169666206731179168513205666263424630935214064025430551055259929184519482308092660960911105659267498909560698720824600028427169836666975486828538373473969160919311585721547862796187471600107571351887905972832911169318935804517406937120898527565547433974219869752017843550532386008267310855000318614206322586003430447034872147821814369847298440480133973339486881361307271857798579363333203167032353180652010663612358129691075366610775627469785578555779407747804928866132692340796680488956584597655703011787070917175416727958434952109440313316740414925287444740319430940907118865367507967012706358921708265386982163237167161781055894413344150958880018458459817555887503897883281318455194299115615686293296300461987481579564354644998356907378262906319708472258640114570529109409953716745337085099395884326972771566768088560739027919916837570041617339828159794727815791577547249689746924497610968455252497841751591539356615214514204946043560804973509942219136169234024738156759030661945020620568755090854263090667048412419431281218608635667192262938204692733693609029755695861130579310526571220451674596019729335422245159030440368251101188107390001520999722713233082429309488807343647239410185537795370703379454940530313745878947042959357925420191971110177026196894512361115715426066505518962099973712168390492266737705964480905050408316821375889208459901949393603892468687544584619023313941186049163243396957254145568347634723971011965221805160903808427968306771308148552701907414222972665093696085163767254852827456785625045148758766568594152369832334162819299384672528156925684380407046224498383697405911312492955102864945839819088453231602632019137099730975461822218268311923114246608748661199353440254893201384645466179104280201356550571571634503251358679814868391588013911292711918991017189402796008752939076880666041778735538213778805531925115662877838341153933572828057223180088434555938352206301858071054392635294207782059482468515577436329892163847177820963690931735140402280469107697929597000291356974789828917948547716887465310181804360722710862623802571629458790540968444532939822920310962036875425945241897578977590723886780325834370472225088491549051144504289663324571315061565356545016978287478127916070833485734830356978702538418016983242458683184536462282722156274989440547138467264081391412468097230623617749508625805746059644669142476656539970678093433652077123862173978598773373361067932149430054627290889053235938708840205648049332219742248717761014249107424505404346049428851067582758438569929989179575255409360099660647137570775727906162777348205145664278925689993835227958979275247447091919368366416586604279269900117063312621152906329677786203366831681574284399071881438724180894950704745105295452820313602346135442989959085968890065513949862677854862320542990472507221415156308175804376349024311980127568952629310636503027865932948158645172685874018534628155998838102816504185342227811939272542153217990911047274171916601292817905851728068370490540515958592779481022351140966168083984484328433576269260476009864495827978397720893949939817052263601392439713175423749306495248940018447178311307916901257997220448943782142747851112047656320721799360247928370674805463466069310657878066262114771824714671465572065658272731317847245484909163907009926379170134930186147721866301135659055577929050797672171548606354087620676103845457317624190021852414693514045298731985809018519841983918839641679469056759969862860989530837152610970995276240689628838835655793211001993029852867871471786983268550814516913730751046775036765549457541161846815488400281903424241125676550355345310010857789699487000722676233757486570897775022095507017327186230802088965161170135179783203829708427394917036315583378161413449910820090478063565798431926421923492297158408992025161253539617126074113986199907884747715263488004164669694074689397629319163070145443138723284322801110202835469704146903819075146671979086243749460401796489530370928350151117476185603236936690076645806931977227717673854959355144735480493576012314109483930145678640271760862372239529577150593430128484363907343243042288904937264067283918792149853344840627108342745335552000306865145062192535330264461997748611509757666519627799713138143150731530075851984015046385439518345924153586600093655781103397488256778537995018028939192923521472420176134127706911332783303166761969210145603093115485201566684219187206858735733513934728010492771667246498078745874719787890855485523903117695196011327186826369620744556113377629181057483149383566058531057173260018672430210355697793818694693962262557081864681342893064973798418825649038841742793346641234847359347277249198121130297840245122616639291694134792794664043318163184773639047409573893865531321871509235785445548412822322349060150388501672724015580776477751019552644109722040082768953793783293993712032318380688934590821012357088911651935643000249472907596825908187942895212911538118556423600457687858959557361367745351863015979029146798416527193780321543293748854075769482554849801375388420702039225296005882859703148942542961895777447450498759210408828113185324509758642338458366132554094044632148842679783781140247885462634606106828667598419593774906345990819951302433426846750752605325159977684491158270713658024841247007965272425908088553050767081226851188998224599518478178837329698381593118802921182220786934261545227011207288517732399262198523577538953711968544790777679672280620068253205699648030334073077644587002235372659450212401233490953113376130601814547428185064018817622745003915504847996799380510945355928272881359876225382301859872565594721655941718500136865189466927048372309135274337467563759646757150853480493290961089161412043739063917837800977770729789756771978643317056723595692536965437036097326453621748750423735546609684334316716883181903161882294368977717053427956297587081608002026457625176210455868944433983634041781502394925792630948148115087503010161095744060140271487521665788360462411271130867852165498825826660498496953900156442181474549400300686539557963321552434211229422759717415581596227614149668217695526847556990876406405406061663827069276522059652846288995073633319367922583635469285225035380807728232076582225588439594729038409043639509737183765122655665045937513550872256997254875339666388522656926168626254808841645407438585415748519460956751226812010709614020118721891626273081279013703196615526900406012745815629578186868781632482130162561802112604938803241197883133632899391722695852654730138809707284467596801457333721522048962087486721267905388995667698989611694392027417973504479929979933188589826922093185801940181045792423701277532794859399271323816115725374628565831868558609674044370772602845124427394463928134903525050709307832355347667417694265750735860419224942534791248311394776620819551692212408084920760962710637941647103596522160897660395615122796236850041527509556088187540903608769587843700496763273689702951783996068929850089320793199987527245189383141207636192689550825797942404080380422749180524217906849599107398740005108848552095819630873502604911401954602966395906499470975821310090114690727294428897790853561971522976445297644817902914916465442684602230347735388690006757019582456629380222381722601892075215569380044855050515889514281246641033641171093396588739745383771091917515033872400575630171678185779165717859336990004152695528478140273612678686055856122555710391466654538901553139066215599076105219850077067354771098180669062179327674437764642520892578594567126831912446800834290386007907854405083345300820360258308276473732798881472419204802051042692129404921341085278238119073357542949465527255740039276049417928610683490352246271362560899584436818944388728838525794839526766786187018280773490321822304026979468507506395879304885590418899339836655658772592627228812607712949941906638745426487697824530310798506037685114107171552190663462871032431755541348960375824477885927536494695921090051791719836569683910347045082687066460081185110277186620073555703613543788173823166937814708774541255305756694395873292921949189418472324842669448900917097307292026844782847823858583247564692303768481602120011166366181372106541322558825626519070413086519184390408825322308003407190456376730636896664808178106865732317084297938632598558452488280518984008345896280845303790853062969488849806704827880952908742857330282300024888707248400088982168903103666908915764666105475191891928031330920817245541253469681392122203396871779301070124982141203020096466532827249198874837471492891368256583679135768979330882351306939226038894986527325996366380512693879310429238533981858016739310626504345750569642613753056840194151245571095440689323493671696641413311544224189543241828943786322461112871535964148665487709295332292904155448248563216782165147346434826180507195330497291862290796870523210417125892625764807337245931542797622815328236281330711876995417678497589110771393195897341254765676534615361197503742586985819175755309747698332581929464564816375441218147303605360420464943557129290384194405959349459973704919560938084271765103365170798011813411613434749391478081479708773189539957342136888675991778383753636075042785893328416651904669325883427084863297225761670501617549529031675681746970953874202946579003212831660039713825359494987306164350239497916843475557928803131362036836935054307420016985270383994870451702910270703329953322830971245563530218219304813398155497624341342662294895394260620563341634376591159240467806647668650624643506089983170309578018652207642025803883425442803028517082423807566324320199633641322996660773724190511597199532537293024819325858478582635431690777337701305960651816363858679881339558326829998735151362134325830807444295377277509733882547516629744977063249761301598204384291546248185823736665393326203550701659889652361297580294619134272266873161137426613068652934880188286136050541638975579101857421589897680671278275729337961219501500312281371816702770483043568556412167334774609306853132014740362307696062879400022664653130098492304255793565107318913032199396146847262995092568083706963438461984382194334633583403515657346577631842832125798818128510500562184303558976031135437127070269651972640486738871870012836772802239028076234355245546829253729148667583081511590434444321432887736070361093705165598070842209870753264904947332971004565381592337348784658560608528244050111445505444304686928813014941614620692855731314387155327476044348664350595962297367264509402768636194792327179598475500818455599028092459241824762169857260790157968687370809075918959272894203202691662632940611150710486941824378512186960880593221393331770064282457602323058852815642786836168837479754825865081925375102031088075276540078234833237942901618360652438699359713839824133124614210835037280887199079885433705237374136662568433372024004621730774599804441312658575151461181893279399975326452546929995597813663764919488770367827282224592363909882740824046763504606170086615763891596849611212063996616608332309474493673081411699224526841376122574569965788041810400825648059671985939836300119472887049789999155387394410337562749149794760974848849992401550756585662158094409453575173074548816085753880475824042255544959184241411770338570933032366254971724677398720290400047700598353649987458889754218162156019489808284962745968766362009761285717791124941209900275977258681813066489273349996296194467454581414593516486422419816600159173145940308231356744439746617038917714813952886512519864020044965943000949202825459897006551561085100441051152440041775034391080490726429155836967388678738676401951074641242780751724677875252820664036588484932002610332149516545708113313769716109848940450238251420694213063053250534381798529501612185168425079012713835490459125672110070017028185839712190748988413980887002151484578465845185940288351837287910980423318104467413038718217561349657244082983975398796904765640906994393600424253438484513455220788813101804918607378642342698513343848482147877127045749722968795067826507401194817699661303802377589136944884753075825851485072286854943428362605248400759017856939480090957500728819425285518990139757584882845374638100515766966442870127135131270854356150063241378795308158157507891946896005992219056748467823994129590616733059723383268923851977676132999355848159066249725315928145239672485449170155708641852404166769932311855961674703447700965636676573155084520309826937931060372535808433160013628303430752365198926865139660056974434205316782193278679507258713069563132455847871893166585218881112421477953071555153871672515980402014130299115991677699231334265711704310719941027883191195481896286978143779304137869708482660937951905893793607622489244169742179468713784858512917353968546983359229297721969611574596375316497561509253193224141557957493780925390631885446021144898766146269016785714642397897512657344408213958080200637372349317896061288987194232838815213387605729895277498645878155247910614698282673578149288898246628256831600393744072773636742306952826810422658876060777596905394983430877266619649673697386297004123659498364206984244179479843319223645688576616449961407625103479916477238949200401772220859461211593116523390562027482641870156346963636625893207372334050764547244947613912581665665805301496708348338490919043193766982437687739876106896482900029099800947471277495180020157635858730932282375205013096291781205087941481270618754231064408448324489787786649771948736957803746529666770857149018047177884442223793488775735462117477329172496679282111767897247574883923412953657049475775700106875993038928781523033194228098342506257190891938848371886309537940835353110217733265514260130648165636583573072256125019067006377847369258784780556498146012630986294314883536363719270521868516284009151892345366351439515509725414856421347992116399268909370985407963765090345465685854591960867414829082358918468960878221018916154002464988726723288996252269476636811968602910842582305000603981151077200495340190995531882804174756631545105299926188284874174737009192849097170816623391300740894348587447367026207438528866091408788438332379781128021326686071215282423414616722429907863207883366975240244476185844222201994706628651291639435553750059857209957704123785200041720052909423922454393664732322518679376965625323563975778427514065907909181259562390037176560884017747919832145135349682939696128412580682914619936484393126947870698975073525776489385537965435702591338451260873746828445255445811044236204539019662086399109583194374028220786766672409975942865980507187079463114400852167387423443755883979157765283632955897274904580813702084192628619883731756621313642972360690976319680197710263074239424087451026008067714912615883622503796155591108098431608702423223057781829973516773427354854957127921254596107655675444771414089300588476831576060672089482874923212710855656513271978231476655086004996556635109423114755549518833604053721498466638800171503194056079804232153419883612428292603921481235694879821883401971115682020040807605261255284354103369607171495603076137143603829431471548684829154126705142623569342033870239628755657206579078967511323571959028316995937382079143353247726188761934661992457774848880274149628709915130777376535348876145337907381569367715169294467994554644382985669497170826833292502351974227889340560892835100700534255712070481789158536426764874329509362163122692602590445891747754649080086033701709318664693021865949822348602662902438371821122003400716377254236312114237148814206843566802130888694130363980442060950415669295161355248883898194927787167160488244641640236076282657736384647868191222210278595945410886206202554559874098002790851833043134691037117393256547178420606276877333387690464480973727950203500372802536612839549133202740721759560951372107520882966679648288029683070067497566913558718507538163300152438136965745406699686077337142379814607381321335447717919080528865194187895891888656583390384587929029367386157966143596331095648363366558470761122081536851280392482182170933295740031704812092867658230400429914393962354945946291944429221135552945684739608364831006432922342231256711871393437872999294891727451908190044899180710738628657531971282356676137756438281770161683826667125914578404898586258968009441363039192715155968547347829613286722861836784086486414146752974489440444052534298307737978985142607935644313079192284881119379946786516094906064367374554200162579061573601756282628814710050832755331001726143433188755428864627582763815245732350187309611127201628640374849726932032145768325337933800210899821510776930901701467597493745897562855580273709379897419991034163645720461158819545892761654349305586457815469925973554642658208702870873927929020495103102177030841664227538673174384251641252981265381760569914738983827175984060022973472078714215115033731969948981040346320612103213090641718393434250376096838476085239113198633062126868584862310101774092474780991456603118305935803109429689400015634774182026771332358243327515509447807710269939134485918790205618088667697108320873653273827547348691213139287515648453307095146221199132136031881132769400291585065603936572004984510844089155758632480746343959516669457233079453475742751909021789424169728221004266321323413354059743754136063082904944149168961925298201499388489457635812553203195471044664817172632472594785438982428530085823218518565583353752949516906057349611011734147570407427095377384522117090921412327497747645828520927971859277044665018663236195660331872885203716872948257980211951846151386294259576662014422183029621904338090202915784075855435525355231701131530081554101622809096210499835550087109681658700922092558672738223178825952395958453201330941465984386164146246843417853957652436459766417063794447008439468538647645239901579089028539862341413434777237936355767403621193010167669379580346416592482034452608571571347117144188849306099726587611130874267690187628783923916216124352029161970557718332186022922243671185410526472375694583567652553305722779948088377010988832962226205002092380540000490520048924571479024562304154203986172067752606616882329002872771070212467047796406853968788480685055179320360916306830889156919781916280537570698862939690653255415298356690962190726482889854522262840618068152390704121551125431625524468630810029541865878758508600593898828346246547912222841696265271586209139834258060737425743604974686563924411593009431203815885589307056439467669478542265275474347597518996261428936007253340696999793112789857284358182415767703465748486454447551885572813541649516465286782045937335333539838834702613902180503180401354684444360616754717741785709259281421047762164149586814991257414818957084787173648902767109956052750329136655032775000516093510322160649147051246047304484943136174065944838284905733453299334400967791192617418377787178820861945888686271711757114719945022245535643785632911938913425387520610846307009733153787307595342011365425896868316914763159812033362294184582995015488514111297448770307562080211190636824630955192494876613450505209968536315221430892510568897628054860097669814646149899085514904815653318443880137665096341133567518322584976753305036782644620719301094603259955012886862734282821798021731889537066701828337504527634782400583994544758705759514077585913503121441140783575198792727228555156620975924411787186736645842802131005848391443604409592332682990588516013160566816024871100203927822043543494293305143247974183206079229089746774077285672404362317999719782262736287145626937861510767469248992466048993131298055333184999014677137678157043844243611951227075114560245196883616287356513389930724635813233154900274538233213722167661406132158605203078806692900970323010410083908540929804454849924331547927827991895792926612426087262940529833378819321732708545659932236882271332910557619145591463315943409045997116989728141857452384417376648792528464898417193655362393123841983614483291532555632425792866516666438982628849403479492786293497336347145916344454580164521326742321754984160171687470472624756113022631825074958317525494738893560952288280730530829787513545115053496035554093645185811132613681575317465612894574021001821126393407373274490464164721497988578281538561320202043406075544489630177696493539784395320137198111242248666412827915044496172511011699609654825528515739823474047533853169550757876872375125160975313108382247669489566004469438252918961547870789330338737961737721116987280391701295870440011767698381171066322704497316627318427469900709947134510995107741009505327365673649176100130038348463466727438236141021063332794314840176409380245161791942375780456523267773019511767619141816615408692060009553466323691691443778933519287950213608697722548401241709040196397573137216303721799719904332776497210706950152383299416899695859570730797667242912829187228214622814283952738444199144196426928828544812398023832788387279931108836840779361909905808742675734518343087179881837169381541663255031120173651697322366134808761867688820738959485501227646397300192735037440239586046435711846615806859258109094234741783487437195433962661481511974687369255424585070443291373695337886949538056810328429118503326550804416281196966562765535967683201471951023904750075508710413933021233717267031884150461953336782619698915084762670249136608822450368094914289395715157500212614456066560519823702448271948789095990974741984279567952473545485776471576491422007269809120945183412245641877511856320350611875178896148665855689715388448545444576779813559906603849428553272448440253037785293452641852192222652097351923929937687634986814273475965166880539646306555099379720731201298495333995720072316019636412997378417817637027129118866800356905284389221296695223020161711411959752302363898621863577264496486339618569145184292774125134157537329728613807490349544859495684979602930548830001530533624473343508218892638789549831196929602126198746418271713229452830093860646492943854556531716200610466881718502593776202261502069391018378333435356383934636368656819516698334021980967815024680136585159232602379179923371257618941168560484711661751230555266226431147897868650774424793481764390126447518597895170904704019550481346000365112079724465965329764247394624809164997590499380869035641985708804614531254974017177765637251980507340773064269115481560630467365121843697303957122878248365069744619615516151275562737471920815484021178869234890853751190007857193959144408074892432983145980615841210768882701275559795071855104155871635538667847562192513528090313294612287328336242287085896865796020978766555295713947072814088689691114361469715380076111361698527618697056059129339376194502827097248874829138189669329099646179286292295772686778396315784813642287132331069790764453344840020242665242428131925683273309754921227439891837138121626585468078425464512407033623047998893230680780931345745654491089862838498774257095295659694115588219776538464183650670340794705764296527876292833415556212865636893397066921528875788445586765938842503663193880932990744522045803369359136332458488969176080114470426338695307964066842888358629801822462390617009175893715178803696367103398597256424823887003175221017269746403345765510018978636450806662998832820702316583001757356592638749255137208914221327352243063238919897334008066166200421403224503289520037133080892891355334388636017396609481570838414138561927394974612376937547164609459597261731359187792976764822658180042691104374486428121211752384379124188521148837563432049247118932880666789990321040623677740666154635311029193014348524315961285655311331689330056104138323237291119961208481981818165331643542362584680609229793556372017095378820084709593258769372572950614911704756156068231906375229315483407908543264662284864538511522840374769494826927051817657013595211630775747865834000832350737810352333584932143487458152209761978981434012321125805808445111664679814747840003653690833115901921668393689380263723263097104240557738256824364668094829734727811351426323628079054214953423730202645265077808751106819170565607619201144595384594701428813940888657924571864837204685743165846255171443312421964942090901678386587960135363768960793965410504483014396561909936059194654503013380060962677028949459351036933024545373899583836268466653115127809633694727071747889057901412919583878332899547170393374927389391842683974450765458595835959726031457072215222965048451889921952722487948003417611019947148759092507886865252853419152910686189789371289375061186508395103067586616796465954457733969163133333945615167202307153176782295896585427885058678855466195431973714750169465150932228485986395246825027830705600300486637226227661952633424018921526645443263270996238863257309953851378245230207924964825938299449660291633932670311510115534626388322009966978544844316230756758370127667858251069826086591760139745257789296840071152544318318925244916165353213675383431795409595695645175732575836871269436696792424059821100571287258932404570827578724786300892427886453951859272885156276640443498986040984513837098224127261956943682752435409045775115050587333415633567694477969886929440476210757595638146537920315885395888261672831563901702447156078285399869283669734949694748345055662943873173419182562124225481237102951187248549115012902321037328872020745932142542721166642125653613736135124869794302724826973354311718242371178869595870886039092540184081594966135701719072025053428565495425885283811180229134886890979350222059867571816682267758627464294325637237915863795085887903279808209275538379192699826488854702242049372861271596484931900836304272915217773409112583563318541853064002990770489875739743270732480199577598645172588755226612291695442964547267006127021840539888038867281148505213484471812384303918798350401668758182807268868397510578350500821398238664165626177073330042989329387212781064126712637753869207609581480347445972766240475724079264340273433205161228898918162694285302915930844854680213307772533157727364089687852965795126476188642047190841377260495338245008721238799527093670615618948045522797669280670015205984260380351952389370473056468022500819094591326626525201019932898903763947232037290394957627406589937659428870070814163907331720825388838902404554107197610624248486118884096052947665162169476383419776073027013204484095980783944696662577943384851180347553644118049898065018936136860372311258058670569582400591156278485378325288031352855214239914159324170031379147876487423911095526877908880006912623869551700448261844708263054466238213171232843627509297905402400393676145182034444283869959043291982602765628110628294367277795689369454530970105384373570967636097068820255211617822347274638566598913183898616826061744771712385980436938387609298059498358872545763937268025023322808850762016426842769130391692555669164233104830787216423034051932946477423424932954080190673503103220744430091660661914839912746603706578277068633482800409418317743314552762010155925499300288390048284401609695100651987387147227977374657856343336901636533066083790177947845899051751193384737200383633542249501163219057421924850841323941424045900392990500237484879151124786308330103106954839976048033835980297591090782162681922829321776140371941049848276719135807289468166083501543263709036366968744028786403253702881068621694242299382134500314376902593487541340938164420784823356330138292426583567749239157677584924166525965933886345374022011090348218697198645529117477767651940270060556411252580376413362550265328424027937685026244025971713017176560717645597851724442671130018884508836232288678784944408523143830530325334139099891085000558952203988463098947880505066906486545426562454871536708378212187420709803637797456193720832707131554578295710545946327272869507862735622785169754469417318088798444954513626322242595396853968845934450177604711608037223571045276814003667974691758247731072913171954957022882152690793599574309439729856714497128940179300063457050079118951549580278225880939302709560508695034284540020424936217048275309180668086561382944053702015391613885198936762496977615783335030407239327873445157243492008874223748307923614285886048558603476213233507336404663272345162339529236986961559616536166764328369772896863664837466629412341971448934972130509461094771657221475312917054620464884557929171197587657030385791080432175283988461501032245983642620853493659180330327944406216032825819400496892026088979106869977548242739019478048371336665022833720597387721404412265184345935346264162108498558705427752835289686566048902677282805800587792813687807830820967701772956253920989840919221297476054516307406471149307463409609163376945481270488489099788717171497871644749280802697891963947812056926499736186766684923803158420574119355858747056100004340736767839601635026265429161435362547066462858237356937203365821815005074952110467273682748020455913269908000368010385445538850618951340797477695434005834350082840897957491880388368677140147237028067333775768145790414288792488637145468035108701993143586796198309231245796635324002122382385872235743793094600073705302148463641155610801822357876112179793937134091033523762683328973119645922929199247374960886576336408683341845825444892719347939213136540781247464625070769033304980862546738945075175442905873788297787055875316876354589288838608000997746854546041532529988785817566840356772163849538849847846100693229374524506742774231019251961988684030234616307440539818970908695788409184860645550294363583913091328884984434320301765329745312121154861334336886890130187839345057801371214705444102636423351244164108937385822637129946764470271416051513354712764995235580025351068655201521816006273652534424941741243803882816504817154032695254615787993161589271723830285692325850840090993434139335321228190148172802458969848834638015740118992623712502803525478905292353379733844939693343052794692150032675925700884238754502037917846717116694647895190682970722692923421934214849056568234194001292261430461303695406540184539955240782222917409688327060277876593636403611215883198325880919533602378684017084781108462407541943959905953362432509376240064826824218728633880074791496857327771289619808724496135959856684045428417232492639311441403271245283002485420341231810315392903307489057542953568047580299027877181240267795712778145323213404394926573398412103777843395603800488342528615741798041838261847478844786142577186642031093136745612792329756340999450307052372530252890885328547048232468740169338160650473482477205849624205607868700639833971030506528921113583534185927272791170328208770977353242544484761909183302438378647225091241097855154308690083513106860058709684867448447320588095561936214893451240001455988664200273672408931178855822549461004328771877815499251271818986666461537017473532376386057812819870315967993176118833295100123155908951192262297469015196490925225193050456167376096665175011126815957588470734356054700138763456964355905118163606383361995065740817633876465331685534323803599644799275384231086710889645434877187575455043515040532808722472104427007544674793729376619342470761857334314110071570299609158754500024733773800079872729887372220796104593639835101930502119090074783958257359579293188516874610324977178282559359288474785599558194036530045692511697606812092876254244580749071270326688794698719384253221328375813076270614073641205652465521014656436370793596618088750127566012856995892075235454745854501073450051719395284201848929517988430391177235635085282892419426686851012331477120122049965839576446481217879426975650522697941698626170727159015548812286822058895570362445526098746493781893838144063739913716678024735658977894279700692346399037287385033141210187307033221507070292497919644882900657746547325294503543782978888406538678519921840107009448577766905246706328720820932188053180531555928911433262440942322136184347739682847470070542673001124790227143519084292361692230066058055378198869364222048453233636815531131476860609427408577880618283421695303621377604881043364924504992030045770238737395847618859106102880964807659965453034227060208308216385173962908349110737047814510378613077480758232313919782274670819013406363463942545607578999167240059683557684467301241521321653656388233473055251855157458796461517846768084518879465206769091924173866446800860745807907488957477609009472774167337546103101315983366273836074654218519064910942322929718736240532970508265425379716484833382649572699086832370558793310293556229835885428531646473066749140792092882136314539667607436771178624962547965398928514086508585812346835216725806780706006342506325065232604241287897163060385236103636841812970375402225849263800397960463104891017324511378681132737659774414857152705221436450057020397011994909456939969074568101271140560365222778168313593077608935690331188993446155984556526841877084757698628887501549388155512328267027584674513279758472631489492942567721791063269201611149114245147510359856199846944810348778150001901630124014530475982254372299216389984257645523380841502234890633028584962701323284339286644363048773046468154446827788735978489649791354701980673317026807933816084777198752621588567692376648383816652240019646882994851570935865528308328603857403193617180852402891979362974421741289113029081523401593788663056641077204041986743687931271002143775928987996786739550395182756198858685432909911804554787373195715752883481937714622059784407711503609352449767832575991819703309586103215162967633183377064142467386563385511945578890148748728537708055209610881217320226451594172435915996363989247439277719309974042456255028096321665454498706144975743637689966845164153903442252322489100175442219560958647289540373032268512071014662527669956382017252344369511206212151586726650292558124784114446941048072502755550491400399338924456769490026377501302693983643111048791252129766748094610309445073233238950207120955726337681194693657472572072278515560843681974661752506345967246180216305733850025082438909123721915147581868631169160643899221920119442339473649714181455595583788802588531958836184551667179863700071108634823595424362430648626881115286255514174819012482476650357330849189572606695493715205400605197226431976271333257181575454506758561374803111685041964321158453030015955493964193222987945160368146380840412181828506954816057397191725655023344892902227220976165924384465395656468501227896503038654580973285274101709277993284178605498319543325056125102669428418843774638280855909868314277705800179879205694960346540986185973355589740076022411553714129581238587878419127325142493934137076167247600332326150675762311194471221326599771011445844625682717499777525516259562002230417185027907825259312306026246728604641599590630978109573168864651125164459719946195879036356953220146427266055644263258036344656310396034641228247061930357536933588988757670357565210855363654774120653792252701582587961099411515528394589876261176289394128487881792454187321807500611914543916224485496372902544984703355441245703826432060514160248018721154048491043779333628905421399437584423423268639448331072559526149901431095760100644593819415581814900125403432375103565493859287932464243134170621406073354001626435969882921111951649497499510528816326205903293404846226525854280480365255626736109301577029377022757092207080041675295213720173074933044952728086316728514610214384834551505489958486084679209663168675199536883173857711513995662516551991222499104601168318328384992442754202148662400160523167192750713028485449512207556912924738219701484625543061124451787425110849077007918054498763517123494982959771418096777006456142670724676121384508190388348308376848331693361160098008195091614374289042106278216907821658637394979117691005283889974916959001898823627751674232607533672603825741154477059949340021638093163736730315029502264524263835010474599701943743496107592709770866882249299961852442898262939566376570508350335242913977323471958509576095409187300121402605012741759392847677971982661927467415287048035032511223720429171095201630072651007284930524487226060512015657889876575030161333290549407211253474146527661722644725367891979643783730889455637105399966748327962710232088792203545239040982931860214448923077618024942416212290290306567002709855359487325241798966645722502916508224846762560442538608936508679034873164904289220343757544374346109902183069219471413547629329721598296908205130616614080385139103545589516641905123007505698942365993806999128170752225605674398636835147608673816433380431069525776392917767304314154619735201723069400257417068143935879748819699688809002026304260407029766862349394845028810819156904713567372616267759483319407254523751559985907262578218635689140700744267538108704726765114507936922614950196555825403009120224899221353819854549718448737957373355391283024484317989840636828555857008238898765994801697263280389698622048601271742522794237907628607895076544985000532724876458823093834063549415317098612859778684928904356132257033549939972726460769787196275678108621596763798472850814297996303552393308273672568940652694271287175426376124224327331884703456540134782556968773024878830718044606185763866474497062722263482821646349605853950183830596642968573941842954665924951077813853129744941817193187276496303703278368597408535015923984949466340369009302028522930880501750572432650863953194158641892662742793546279593312659441727356298764162160632797424589308015223624389447500041304397164625320454544573959193253213236984279849474727297634928651692410631919872638093270324905335733683726539541732297289904294612588089489065291480294150438617620637562022473656196232445403796507846792018638386369209987530865278187025370829582212110673728430437945513084875270499058146804344205030488692574586033037601878539471587967896977958032172044738315642700468163410533936483825758274187483677516008708375350095951219650968101481987946431607798294558822939411861549056234012206895584787377495671988866615001371514705811947590854466825498757363616040867123738552056216618353705662933463146323676253236894789233150078522923887720084467933234942573036413351440163589328240782786146128858910205242347938825047191829380015609575332156123380054372828440420385175402887551307014223724836838550804549665495660695098435791308996690448939173490865441279922440225323023531346007998301776489722703785690748125097842594126602702797856515092430428511719962519578004990789074139589049965716483692386858342092776040210816140554923386037449813820809285128311937471443710177058196706802864258575237939718948661098521185573027122804115035571471055205102687600827083136590661223470957951931105589648008541752739768702004430425900966824133821382396131732298228909806211810453094360160323237384781246758429267692069766062306584274440175434327908057272601012438815748796670445342283168884375645999588415479683630425506128542597971186385104217743750572930419734682738951807664778795207357195376447779512240699552048154680594217542911269894853425896068238344930762536705512417756191662025223819074929407580509396142509563208116560145830479516824340034424905410582022987048654208745379857862024789705316585605169113077708248381037370850670524618251141548505682960074379929791738712971994550846355725451983330185851264364989153021911103239447982110780034246084180384346672477506110900237775898524811279780764578600053899474837578660052406185024461706810887317658432790646354360529395763231693662351421513014979641937307929838189657868485809910535146009217013420615188639974158259739830517671964039596496776957421364633149453506732938836016101122217203324458242607795647871741720810283075859518588315049133782772272828803402542336467041737845015302493466877484565257727676496008990129467667133984891898699662077903440227059347831229006875210310803703929248961676250245637701043750317780565290339272690837895700587866039070865191753112480476399408257550974174129399529251132227034827403147980019313792194635357377920754930852905683683121616701800430479391829484169457036674131061304934909981847029764160812721982216922693041868281600524939059672926704637119177207701858578407875249282381706353185747693357155379794402288045765868518737108402934933510672682939425825438280456409001027319560334638529302818940932280618783622965190185608106259443975398867854342057387625717979861516664071171396582097033116974415052004892151728823830116535418305019761630933558897948101212005094325112398350071448855478616263428350745076694053117019027372640252498133885642537849457373244591469158830532368039041948437318576048562185060803726665373898689805596305168066596698772320108696977665548721995082703746364946056243789531971398082060691211806726814974326449931160004833066993923153014222950986984611580551889866824985368802452187087881489391752889931980554928746490124938128230890488575761069812770267890683711285009841407862219811878246773692833310850257844375087839160429152777744995017893022547014856060058430158406105357951368152188841574872415935728588725578746632549626138610221502960163503659667204274337545240080787781266541386612916117040355891771458523113383190492680208412013762210717498574110840873009826792955155932715691334945711910158064082406632040279381298903878148756827904054924522568900320235106828699852500225474171702407169458173512377123866462117898169378056945802469177567912985335878753162402329514572113058889843823866448555710441766997352759747253188393642345995185996910036364467524513232298372047548360375070378662708535395653475682858951717006242929741889700893758735908513016552109122466877558648538539926033438215972984534185503551344132857136367019904790955173361791729772925445686608359130404727178644150439778459765727347007689237169884709350837641352354445222767753313262293164883611374148913803993071120488429416762461893969941345941203389399733550824571707988680561565079580854282044279764313533497970696358395980454757335975026105719389493910720966890960901739171368907693987363801355713846312088946886696783987823999543744830833187110119399679933795413001334063503296501232382929071167644158591158867668917185914778236001531435748167181911800946383826937475570071703344063067569702322308448133264045089416389692695212082514545903654173100271967459969667372487563963539165243084229148244581339373796009596576303633092766945414545667479406894908203488979252666130050559464027548403687877014733555724790781744465755263572648693305865962195784470488035897085549688155587907659550008516245943114113880695518087827922045992076768819717418575014871092927779768512926690050499394140502246340392603365975740599847288827418539565283344955051847878893267237654432009850403573811818285126098280847129086161127987091694599869357130129581421550493312178607376500845616099178483020019559652425934650601771527653427009822806282030082148480719098432011475107252655197241628431665631814643944422708885029510454595491918599647981628541927228584160248082770784563006283154778604420670956486242102290361422166888295341225699180995571672919456593571005551675417744434011228162500464172038927272971393643232707582104818074003258172162074825047175681585630603847242258090924133320888673048931161546561005062664841020464802878738579149054673405285922219008780140857384434754937106455382951656122046302407703538831206036450578790860465391836895649286296646439565675205820451798347681509087718099901573797985993806020052674263000947367631455844108778097580852356006090414664623297577152610711665750018252647711211794350958871000819004621339347276718172186362293409132695914463572134945088973161652563701015219964011212748959973788622326690280275387307376219385320906637416051680636751313778858677795223066704165889899675273878793110271949074839123376186003281242294641348782163669147768637849239943090483907185755166022757325256232076690494378636314193862503239408052470148727142772186743643933489050555538255065939623604969335463662122139521806647799948026593175969925221717692075614340769825270277762612877854851034420299627682751551132657782938654651422526060218349206421566538519675055622036471330427574488628968630711973311344140546773120016011836691492713243532271181537032789125578348748886413340597111161441151979483768013451827676206339554645601376281059174499517748127385136125594183412611369568384981513588095287646153036069713465418362643533824999618241227005061425751519592984308243415877315396957333281310031640533661481111662607718754526096102718139450669548935388800399393188949094552843146467234137187609727017596025895354925780758686560654899687821007024833266401099997318465484434915348194219285887591167206058859229941541987151615487701066940670100019409761206982354906089913276214807604271709160987741545724295687036842982320896547938386180688921285797759789772882904552521543362345438251810405491673906949175337640704437951574166310750287428257998705947938990624383187957476058605198487277538536177426538280493561772526892176573330380669157056148283147266587128325222681233520707460252588766249601856889308381571941480723625182374315840374009011640205846456948267551723382815199905099405577622301662520346549599419828188853339655898198225341313286867392792047007417343139769230155867812423507438921051371733567304751340238105026119601098134948392079887858031181809170469598844366529422437101515646247656254938814510934151189630419433494937066532699456668657759703597885914795549387123772551209226287504815609992872333286059414914349158803295272135763603261318799413296339930642215537327942467467065076313354414109151048578248449432590450501094078950540257058217537348783888368933542661824691056180180818907402143352229935749642140278591197628759671473859385239431775000664303560753716266363188740928582962542779940436069405269356309172885724677328107836043856129042223921900368292841956854019222598819212958793470634635557014220653064039456306328928139323084172450601538279236611745887064118512321612921879609632474602561730497769405681722847785627034625446916432672174319616486816622023743370854732008519156961834171459485830222394135164267635896362287571797487219674972506508510099583100666506306026551023100682845424821791286146009907875202743318861047708640102832263446977800516616790718622987327708420530715982097076522047747654840830488864186574373278497093852088893435937268198208948218257250241955565254249592190538712044540409149276160303204195047497289473399446593594724397545070688426347279149692305293685561596636065992723406454110372455171420767249409364805013619057054580432433878779334203977961225975507622507074982838969705601760175804375554132759543486674093063079792897938561390438157555320034470823396650229643714774548097150761220560628398322947800198096673146776763829017238220944320269391057207063451244219226297249324246988233488065623434765359527955383777763898554226974447204622519807125927640835226918388522093603069199052694469208715880492402718343246334182396175089113223449241225556432503778885484763699051413136962620193071732869801859745846001432258012695798236444464550669544655117544588909025819406801731519980536734358680617876081896417126951341619151938258074776038726880666483302968146172236124715785842005491900434953274206347342722133115918788344901788775301725450750953533810335432233427283263179517646482010674859363187907859928094247203230364374319997236175607941276688397760262654831317916792298246857714503265095579432137733898034694303256720060813724515776379149568469499895840642907166139341857571242425905490998064361321593225165511783260728729308493058587345780403070587750744203932810678201566689203814383209976758142107471395155730919817292454599603455059383159591518996101067701651569324083321755572935331019707016678291975578183034439027147778824070226436249136223892525010166752864621232534035463553063928638430396931159901477923335449132975267957388349787518731050642372995763104409453869734915189936179043899075646318522332789244284974205057606500578288427599024309359220996376213065195417742955796406055978154006749565373887204384228850504984348454556019451738083678224194231819251348663214210969872498420333300453183039683616072552092233144691418240563756085910674526818420769041758676733362541875867567970151048018022879558583008019424054357972064018884948611495009579136255443905646328892228516355193337105159369228219705412268088372241193641767304817115813510087664892575270651888221045782757867471121015296183508091002410661666723851421308606819162868740471855476621879910344734010293877611236276261542152709040749390304488640924046516139257747772993512912908717084911905585408377661032291653961938824391242683424222357990821878488298462248341110772144960167430812388595443567479714761705487291061125861734512439181536296370370905093236339837519315254901333855662286047254335073906423389896636757962535811752852736441007482220691032789930507634370410741423038370538791560117960447036410694764049100848953669721799937954216021721761685754048240750072573012787459447626172346224158362571179004916358042232060806600858659659370022962780408909889135787072959306144300042921596354933113695774243262839149965543959279452983855560161658655103875605251375915946009271157523528746939052116711933781191357951796196641630767614560310580676146480651608772192258233710642947251183772255230689548824250008718042237819916923642464034915770477115410013826925727016833573271281929278413414992621015154622918925719852198179463596516259138053712622893105133387466178066131045784498830944450722205308646246980984895452279799962648087234402351146649329300451724196186434747938542644673514173204392027527413843313773646164070380746283950609965909461579961537923082308393325310166624541436648181675332797013887506239689502159139458913692000378073742888538426894403697642544589226762674226349361730267488923576674298776643095694066657957761568048035042490942517970311996551698100882150226144924239438472137830511878440931409677100217581750069405743744953017566453068751133562372479743467387190345047451179318445513940350727998095698580726330723036947143497104141557339505510299238545123146585494913867593170967498807916227256238525648240469411272667084744923536456565977416042590176096421269153888485405425782509291145367643930967812836914776433671691119914053439971365504792561153956454089657288377688363928016931956268306037281253182033098300656846264069391033523016916575868595331537210495833388396616672432042967647856451611560216715482344919503208023622669448510825615741568551736559396638439603386940700606559507865838097955704591205910766725668012635203531379958717208735012937923870596931455011977353587797579778211552685739122250730516050823319444608061593926660052638224851450905401968387679394494206208925308646110619874268188443445572007282421069941066764939292118658846623680649240597377701356317824617432744663384834089406579148323050311429747335103645033161734242119930944656343546857683246005934468553863094836033564776624433024235745141495074582864512233099930007668840154671875870500063088893212066472155987864180360687857825599671820496828776319979937584124737071725741863608752494194053261846708538869956634502454639683953872946891156041350007100715288717844337235291440573156606895117164711626084655820506341703890679515574616295352596402892294273855945876034135724907817514356953894775881968686783309549324580668360280243804377205517694957731461956033641910062962734281578754551401089084833896026562640102189981497748539674040816478059016394450340228670937016826564279528497802975146432603884176788287865607696253508007943021068901220494576730990585145348587367514479655372608376036908871811085326730375889214909814257397118683910262315682909124470307143744485228110639215367415121132680350208724419456849153154835591863252698218830439009677369435173102699446450265127579636659501502445373136657431199008775492259108337888488613091850713413812189339583364761529164923177678409534301969680843525517942941357808300343077594896856129808770076729961991687090768509125679675274921490557690926270172168070505782779326192798099427203018582101963624100284826539872069786715356499711259995548447092044762437817149611855959654590893151362950325784393434927451854431458408281501957826527422326252559388492762695264710460373908604884677210880179841674713593706031204674283050377735270362923578773908141581068444165212208603374846775112782671290929428474929314186476294320520535890097901241116548141129153118943902139940360062501721351389106217621691520299967163549748834450272180377886891544256856545129808549991330078077793563761218727732348570742256810129460685440367628570829386888771907404279082249997718885827864762493424793064634070895334963754592595298918496487875099045761000890386021270160017250627752915477048252766929720706225406648410066818565650780530557895720861866913950153860960144199093377375081650775343818181697994645826769380606430890437938067669206609468816958139792752132166594932998074549703152475027261176859942966307551362309219393565201499515024481974879288189734564265422961503465563891131720028283066676574477897886780280377371504144684682831822507607213154331466555099453458674235063745207363057182096462606448192859375123214520765934262853419510709111386965133907016612055643086995811563914611149751237375647282917844519536170013687211798590353998353637275388435762079017281888985185455438436838433972357958237783288370146571198642069331556942097145450529847213845186869219863315063297205660529480892826541002358997365555285542957657636927194876509132575145145355652295600039183230615234933685722541933337198299344983987583745448096489689657169955388535337438970721820338035971632151986801143508705175801186122463605246094163621350694997240403185570403247874887191287079797315247600981152888344998371670185692538104969273498995062095704663730300207279561055164734225773954431076031389127106159357487196156609513913391807562187716786723055345095288097734956559961710714837210378380973835241963558537566175507282703390705407110244288752690459022463044578292744523142205751528788664564649204574970863995420407924476333009159391575733918296588272970366204601979793257754782027931393757955157026924255264463686214784977872914263454008543153118018238512221307407709238027491757546136189711050571866329058202645350151755019442434500944041830268476662948990591569564271234194364960033590529081635702872201315584928380208420012796072426341151232774725012848477672812208847806143411961898387578001889338336454656663276923238351308156592385216235602055981949953452250337328827820150228647904119629388564879406603865034157996717344337565439248255029421436192091387623457655926131657340786695183461255929693130471690175263533260338368556056505804661920382108926309360738711687723045940059991617805750362350566304203657191782218129980159481422497939542809769423339256420750007143125617184429449710187543995992306574554555489633581484641328873472800472475656038832903010683572700800735741621310822527916840409960255789742636347043930137466853418034087353068115093186472900225139152682760515640619821406667903795667327608918483976699655053708129423512298742376691188185367745745668325896747072239064711858682867736880010515566213123672477948735939830084374106896819598550546253486191666580304163255109650081593492727409431574148458320090453239990343035758372087401320884706071966038304318223543013552342225964727418452138993051380972651422317025678081712245058175912509970462091685368036455428709248564751990097970714387403886283717035619975005304297453614638870879036683004455177798994454026972821268315035088484498283825082021887057838075168179591087010122508653730814373636818189091774937047653303722415509591239175505768771562927042281407673574214065971472722526683199213970276270846644117837111521123333103302630028180823505732941970172068754393129547763846334189055109373062159962497371433826199538217630991929314136889361612695629242134145608524173477443992463477245154822320317790612879829041281931572066614996530730953440904137515821096175262717411114233810333464304074685689944898470446512079548408305766231255123250848142333818889059926715586641541887475950975759588151688484675991856443855921663047996038337949760127317141077556396453147783626009513238099780663034898186786719967302753003697307919030268633939622124149681192020041251988746492114834465679803081856134454962842200753990194833330784082590223724553084548124436806407629525024316571148362629542041390661858175684403339003583515607641422659930836639540066573706404083449581030372762487335400402151812894614816805268876233910726038247307155260194775729222736889382967162426897022139589800036532737671661347780172633493687840749881814608537233914457328832458984264229726051763121744065794458824647759555958147816371362273290703871414747912885550895395533371624270668087977826008346323600653482433610141417731009064849576892005583209939071198594291979045753624258552770899352526255499630661023356847139738510448346624753894396925567949394310550694857604754030936138991564252396090502923030028611704414232543810116250598305298859964164511834161929027420147839637823906457497704128059787623270477744978527926995595510492800309840929429384052696520829344296099243760007721274302003026103729977892735681386298395303244364344932406884453532630486433189485195133382294872623034313778685017068878957491067750266900424814926289914092638135177845671626216010500220895090918340516234265104365996870493187393090490482275704031218609911063752430274844534779181636309295414510579665627479682479380235062206085456725484310309613463184145122937166382789228901662602987092289193328287879553821757356390877395300454095461321858499401414334069683048237147936198313738424568715673741249457757464438206845945271318909177288578190142212054784889346444566031334361840237610059244336851661963856703315604110029842908687914169926503745196774033866323832078920180468881583246185850999509196620103545654016308235339748690473427149967189583867224685298560541942537104365968850257059328188736634952340813198835370280396845470211167672585377341628227070257616195752029905349721907939443103957517517711461657149168711559065347021758808310520652083719020666536781850217209467433043516749729846580903820764368227219980840259770904886859177387732651596376348613426312136156541645701322380331664067791898295256430924726285989255933189604312759522424761719673884937291946696347707480791619844361892266292364164766041890256974892831540472803005058907589038775555403794689216024310287362810710194658013887466398572306734940274713036884162256334269879063501203546612010454866350193261622986349948116382224011754010696984367852808253061444126717349133051720353864518271288456738334577143471619307219464669042157245870578256901287375692835927987950501755070078490070674361870975348606193550409518627561857263758980126950044407280229634354306439276010752003618884879051492290934236270151908952771141446810351170887654334175434943155426351475195962380146568520977246624540060379807426480914220069076314933009547711775400998329629986945800295756691340357997061375129266264033326955439570908479198072076420533847581012144568951213557236257548357810145671922527601791715796455219891037003551244645991845813981874456101826751389168368175568214351348272510238510779152100915312664878659460550836902314249453547202900016116298283856527544342748300308749484097621653867736262215602800763397025184694783948487981995630010674624732839059240776192049162288198256406258574385724781116964635547896355227813424096577529702730063369584073726405356296273743006736726100108424501910944551651607538221453629637556942373702534065570938379059924432341998524523241051277096470943644438986109056506095122265581198848814643517468913612932509241437452648201826576470856158093590481515316625513965552258892849385450398770342524590929408948956873513456035646919217852863503063020288466215526517267740593044737988694390496824485904021105732030270436853751209161233429446297746520445374352037846552089959764969124270691819915018616669991088027678608099206619877341579459516082308341167324860723910618168391106098964652983359303959644871426163936884643328609150442796858251220756653565708791794737790643865786033094353514861894521738174049351715790857894676975954630805526385038711815690497421032485570386655861233843568609668524072725626134414434850990334734551440278513845159835677859943471460379316194859985179686576587156447618729392221265662686514933037428558647446839042357446446134562555488367077289472620451963014927309335805002009080641211440941064099867587458613065264906700040395689219993890324567318955570071982494772271973879833982137165528968490769116007392310520268913926416826306141017067864023891262065491529914350709735088510616450025686725603604818457612691539486092076123729814365227218961857540465466119732902527120475647996259515492715289743447293868610702733687669098989278821972302181470323533932220723005875396805241015752416396990229863089373948152289892065099711137593135240100084700392172335272111523805239596390607262437228637728515025222690939540184613370854545937921605673700125591425597492386247355791752209009787160909525224243829445385981517293110442562492649105643770873468071450273355798371846936045933237918365226027118614081546967526412158355490187671974429566411598654074942942920528773049720016472148227633363798867978755725617121996961982147012220383663902056311753617692940758360210714925221508147608890142101885712958657081910577023003634523562983884117421198976725192025858541705002901694350881408461337918736420061788634083965971629258980232215920545401465973366677697318811465149258714363658399027448484689564814227815969135084669221140622637306998326610050624289126816364905252753389505775591444977722580744288954922467885193700538654370117875861092195756326075184539518472799079703694542874176669279235313133397242633058796085691232573879273324640237027515027553900600893026066011265589580992401697643944021687409571553966835898231672582909160337423595820931178101433534926914698479299293519218902332886071636384098663822645686715922630478498603892608743516999557764448263667159551281508691107604034660377321013404133987374244952486984377134648827887969154443547613061305895783079817977386086233723529494764302754382221618895786957749903671717436585363374411055065092744228085584924016498532807318760957819703058324726312686559538242942156868975690102055093020490383623205869599707361240887474444150038113344950184875731295223512924864202744362637559629032512164077966102769200062550120915288521403626660418475433647301984937664194908950786090209536264210995215256196617732990268074539357842549756327569510520199871004698723008834279330231368249049372310583820787593174603612519520261169510613546203060979492126261907308384986095581479896901344729824457992740532534355292194087640449809726817382306229877465142038731363728888105030813550818143593557490620779095381200133301138698434399715637186338256443733406236464919015894267831685164618977157979354936485561793162467160243997204580543808002934746804834073205831511607618586419750577653368294735890086541071923215392337286358526347663686640088562130310598724038435326923302796833142279887469038505807041153798679845687996742294891038082278916221869624305579855660967078385958692171784298928917477254217596075924073250405107919806327537590028134825421959280730258896795357495549842282891044591596972073595176039278229179884468490503859363034632978798018450794393047077311714694961405285309824510750844079603864556182350539545069551470654503102463414306730519847832611188244304902523148000870621555200071750820505350789602138018873412857228977851017101244406155401446255319741324663514864829069021016589778010532875637030161253550555386153948785927301786118904922869145967443058590629613337184469050451462761642289778645365330439433976552032353607364558054923620577599801789420022296767676615203521728218393362339698957412188693215537089639328634941510205113602700798295713202330869144023124734287931724992671755523416975516350418562167060500249271389759210985683758004199842705638265047271120634943407378638502095732668589972184306981553836173598082631987738811465850714001906021234322627121665211896947523412843486509812446294257945679123585137624651396803569825560524390575560115733545222898965580766752810773636475654847941247983006354133632398741473329321418125021167090149434005519921898572635181371444478980002254757796269547360335877985778103467252368804721092025435962457462203496364541069968917750130604054697506978597221844657116781836898538614430679091204195822418563618531547169681460455817434507153564666453064734207562161658727087041655563913012017150927280929229542913466334560443501898004373047128573450606397772862318598635346972655314272640485409189481476858755731925033235711998132223324305226295093410664422416896425308020595619158071649331757705017324629888007947218178561981762495400266804009051107610595100212130826172090927068470100190834800787632876896663490371391707441780423187952023001088099433486527647360291936728438968079253958710343848633034094084701164220704768833085991853388954465194891932966279394715833959453862643785981698069094272501242720078291889009015222431934559384350490312770888220451555839917221066979991062340228821763934291960788942728013621187328274160918722516896648238533503537193483709105430505423385836163654615361063726983981114788102522220030913802273566395703449928560161167307313663930567089171149212971828040480999911393229480379343988937962425837055554913366760282066545121860716652784135654561361452832569966764518402502884485237396226190950654779964854701577994352497658427802957399635853659549376059124669034976909533530876510289368143527954815048943385253913189076642287877994885129448783281950073753903261991160369687674584148660521928706416039406997425823465769313632645852849118508886275717940865609241037551826363531128979897930621905380411153655654258592093710826002814306570391119459152867862085897143138022575872433539473619150189153438245910784129874413442723410776752599704695531255949695410154454374801618786119116342842981859851621411176965615889798017725595580264046725526509475529626824182638145742217673390287567396102337817739193201094376698779178138481589757698248618776243241974221138390795245438258891381116465217732374187623628055531385649296351480535909447364280049829409691998172898217096656722043989338361228151674351727663994509194332710916132253728879836699700661599028365940894916993726730569144595798289541696868979108551206985026021596554801049093717354611076958261473996479249725957905430685282632692628744499413774550569796966726204451495753374307482818316193228865604371249669689542014125782759550252468130797932065988680529547016402571705794375667057522148598796037698974635429590132797571149898393862133400992363577629946412618516655047452074558333137292025856148326866432755261957885483556957171468876044814394091091854320719765443934130016193149901473436993421242827786433680914952156423713046478735257039632773982081315810719139441862521974305122514409378498090608973749655768985372779372727370855568871484653924834217320175902142452930374522409306599406056557566322005033169426351471676873387986257814413630700755743298351991556527441269136319493532470705723011153599382738604606346561573121355961755075417321293090045149886527129002068083330992638718556067846386700321528110280758281106961316782875523267772083459960595487540244105173930737460224726469971005399031102428886772188827649877952425767039826492947670975133759397840470222079675907745415413712393140656663202569039243699376266402854566751754272890135626176343356796878245037709782142039126649110379229715527754378076772349302876059150021931120166424748725254659387113370746142593725708356727074604724430785220504178412273697577182093082489398384712874321525449773537735396379070629282531406145152841244645128079219045014331196524979675830018117321074162023248918204459677285515250600650029295811165135737255805218072318100085419515617095146926608044391236169395418670686012652362880585824419333130908238165033081424319944267458828214770953412194747142104234310999354897870959858670727956466284957873437018605198734151811441906644579149500907781662543995266842594472458039520480753747559491419320460433699078780431992501568972985749379531073540115840096786338774887632557827885999830930512550409169139671481205129040321848127598978208428178005797305556426915868993671791686048907890453945955602085232665591018682622363473565643292785553794931054086312170370280217882053731795771331915841691632471517600998351250444902644163793969050500189934295965473698102944838975032429866063130393823197644986336135285776586502565725581456146323412556045119399088158004734187374373467316228475347675930108845142449389159253567469855554853930411270809045816761965386527467790100293289820971295612097071355821269799429696123474770584183873259166355377198785052628592189150132943870413916240756375972133640876221895557795743624637747998533836418406289564635075954084796075643618278191796645547469851489460138826977773762643078432752297207787637425372487485587977232436953670106783648617886671105302290036960590363114548151204125853418535329104082334576408095769586411205185450133188350386692374498325496661879180563679422268572051032296189830180025032846771987347974976086425527599934019341589744481173301123114787292606883977683903165141811617604996714902712884707890773243175109864920351892680702815435752562971754022201491881781624234172336109968651383337159307283478464983806312014110142742043281837878560918263452635541116775099832427224479987044137307040978007187717405360589665817474108097845445716526433983718916726677527777985679864029526090467929411382917752204903267787190534871784729851169993811349678323214185340385252499861446319953006701994467517105741521302490658765539238581531529699826876297640468318032992778826261889625187076460640762831889496242413143835338552361115211391497931178545229852377630797355742143503994720813290732315362105953605390738181687271611028406973525749649452795359613490631584137815369009444336964203463327671078142700104624701392997668837426608460329122707663981925386477040330671624070398269959019184081882092281222039007667842687852799567037045998759191217198098164434122209467641698209307040461012788662938815693612527306322978797539594424697633342227804653216673749651144675770803923074741078728413059767808245680379486466901050447325622790121010186724289613042425371301390628688440133595755946387303257863428452166520943511687807034331327063456929791374752202141467498608593868401791630457887200666565080552378042747103924061700485092333721647105621255421295521678803872325467576151973158261834124813079023747152324808306097405668753263008112635603525412391324785529111211871547081003813483953093930311953276632118364515254000533572045466841706703623191435988954398418555083369971830291526955998933623740187460328373901688491586119803784342100047483234919026638108095553478358054432819000930954945056251287991908561460364809821663811843633056809737815319535155588542913669530048513630410769518242096719172036676786878841546170410656631269849631026741237695197957124916485440464980074013057386582149792285851542981060988939180896313022598215707178510089595667067004999802859037751118184375270234511448781059206350525169235797579278578301152199083257620589452194322492445069253198832674300554757218027222223443317927505003491014131811333150332636238983210083993391406705571027069781251370484989816356564548476447598634582773272502902621114577433914699090240715190178671391026790100454826667471280819720020180285502594400226696913395926901398851555770451615826335189852641416183033189058518811772219311129817449315732034510479436333189176554988740168378559988764608322024545423594942220682662398986324207001649715004462289702327263765051832777920607481724504293425624823560044381204981496502322497675849070176500873965776039113202522664353137353070307513169930692167166077406658538042519821404489118564523615165668837665156928416591339870263216649572895568713633314414321499721732392685185820245940886309643862457694442483682302740089369144790039875702551625162736153930384275532874871567913765161242756094732552925043119520596163578444453759620402411545433389613588706179969505128121107850031883573271507287661968190657907401868226833843873478099506519159056800933932985937014457375165237006892937172189091816009338319823691086701135191539014411284583459525856819352194886799246899248592842737230459480903740623109900989794339588800283704136392383702891126820220905837097557984337837465701993960110222738406457078129982196234383403778625546376346917946256158432651844737830057971509217655973793348961927851744719695452245565115301061418716294547075288535301015470538209986201669944059803321145749501021442574503351546429280277402436444177267610310633713656674355135502104343056657751684004336972416134685954846619953686461921408018767517280214081545383105510387622515660534643211056068500378960644242465546347283945387568877241445172953906288455384130860010554379975151417737743415341324586610310892207070770965359367289292492687559850262498095470272311019052538354597447434212676393872239377480019515601796278079843576592757981799987157328530772611140509632427015866236237136266999081665677954364767824202790457249137328820932071949135730816070815905403437096578746145103039379868702742782769604870232344846728103177991608688888898871443523587586929413832807203589218934644811443660405299842347664270610718868642405223862123177462814761158238316492262559184562787088763226495098268662523931106969367495682786752031922139228199801131354849462437910007295134404736292199622419593164262578268325563490951777110021640995905082965850087958361320026288422300971691234556855144546549021723263946381834437634334781114559254624103370489822097122978701751910758686953621312299932036834603223611507337892817452787840269061628895069345582162899087093489207338825035871017672251568659002765603264338075708465814613632591078786141845495753356761652845964642053275002284629261734680729847990713615455965653692064775669723817714887976637090377970168002975362709765848001971273515424228100101677813437092938305859751466802400303244524107950938479938449193980909658377710393647995445783375993402764801214233253627311852876207954680932989042838097368747394709257678826317223025288956439493193397329951725842119003171069006335559010189106432376191970441201786027181400531508537429191366189653441097553200250774277034846944490005942427736459483904580179775568632782889158691792067885043420545277648155198328622452805969156975931395660395181490274386109857828124869069637342721095056741425021110916572969890090350097899524444814250162886434492550068789859458277425749033289787646844679085798331886183663965961387515399632306483116901773288620553009512480722245863760311652848498792997243558678263015847158383463739224115133322603787586499440521946179900395400028258109953617148737007102261096045390592854452056604041184495292375701247506943718670084418709167699538382322783894517494786890793274163435125057454262246632364432192780686195549333108315842499204264831155798156856330769736939335600525916846720490037718463298182679580826405563821039411158324164031842025856406511442518317501574967664497442822353667268266613829298373681785710519079484087317373475622620211357550178771657427913774975514366911107969820864645126676373450621732912321174869066017306636955531557180554917936866104720446087384946287885407244266941535793442304953220587687358487222157329609759369927988147075596977252608809552553384017963176482114351491994740020887257774372146578143816209039082146303014803046548207653464916928880530196779670190358577299416011983307843440924921236089799235222659758828347173054728527344254224318067940839791993352761279854326363709429243172374003197637167973758589021742460850904669360215737462644846537831745860884560821851946128463885103869882482377666468672724700165793895330625413704682322553864381214293698229854857672849477446530041297359565985890049239085693622204707530369885185479580122639650668618441378629450666536258074211304720862197883215456273959784742449612987424949567012852229697926504748417155079406947286972657713955260848254123452350376415843921329018444843751042777187429224360792534203707903853667508554084911651981648862544205440768342169996460177850328579950885961545914949237195867600613138552790565570415479703034749903817238765342640053712731637738488509845415463784663303726990680182528131892063711760527384065389857797681844867816963008945181782446323755406568194267751353294990739610283234802145046518534352176036086187528259911406965908902886029129063179694709737096903974734928946492263440192597237097839086069498591132981111267479624490879856546356632132109456475093174693203764262877600187020633514093477668773301564052506887458332545647161569595483255184526577557521149849201254955139946210404728401132482553041450224191815739259286831982974568810712049728850338999185612686197150710533807228163287239322748220015681618767980293409536707598149731394010549356384428555353183694709253854207165680899939073988970535325940493517971255385253372102671829731463968901817498993780902991303707698591040814315704158130504929151460029102056478560792056843314316775108735736102196794459436644142728058141991598471626922246667407754633400501095938253955899482469388720587482248523146602669165131472831311486787153855279606348327873894506314395600779983375200826363494999275184750070552145443902218234209421893468759021175005873849800263191795547406271765247281532799737647711461224671323124400357206203795343453715163795959091124407673859762147893202485931302845701880481428724139784596823410098314144963581813918490251471256399633958716169596858138138755216409881191140467896103044039863355900854453912689003561206251315050252025032001773241958116383299751382191626446359466117714665737641306752741728081179143552668288016882196263601126739514395601039134768093055590824757623668241763672918195419521193249617299982145472110200233462867723479818487931939897466738792257529830659971894306050622883178856233313388350199206078440115862971574167209997758877136967177623211671338386726802067809693649694763609985215042830147240400903378318538227827577903387354612499485776604893045414454579873821598650397999506855964989284543792761695344297302464858991200934344698296755362397934736355026740797901571100739693756156549868932753542244351533117780538821400751854191397837569697383656097676221573454381387330075421694687037960486738350131396042625186190932548645434993445243257816273511910183912498733539924725480615645899639735667860663563391625664078368637567861046843538882801634864605916928808619282341664340912907729515393259233069208142133271829557605411244277219589306829409851766485409947070294375726617668071797363453486853188941383242853791597246296903929360655763984378773787806535908697444197374010412386387938766425625879455300152474529459149552281471856276970092266398020816841782527817694324832463619846341249946870508581460975889472259085258754281562672961740725640007300557426593826220518746909345206567225522291379576951872736730929970596421826767921391288606360111617100795297702011879915375106911707751144455951862159483022384468891274676992153147523402119890557262450144479394157285603441708220215094948284190634031093760742854577606256840113246785183353824711873709382845597510005224443561124004611707848745436088454447226488652129527061791184567657549238912726363717303822094446709581555447680632546142503445247336009646537618603857204122467837477358961541564845600407707945815179906425099121330174976308178096596830319647917825056294566111470908944757386664702887406030577908501284179255318370442306216236367212119746569107869773285500311780900477866515323290486395653799499996385936402591977496097137532376975279693210658049429869240083253267183111690149100062949566932598577556785667417024821989525837507345515441531792059464072372705613473939613034916564270912096494868152150265890937968827062238252827510508199680715140155468419532442498867570180061780183237268658563763916546262484471966276947173308715338919974929509400032181890478198672511707053207537817161238960012780807660070295673613443883317506442759684855355052271205469024408554717140822784393493735705868538033965432622443693470960362516491365114351152875498249763949180576306789707817671555135294640982738305187265271683377041888932555663538624349848489115612770954019338298783146434151608057657025890519850499186848077769941619236374601359022942946082188360666381812913337504416033447552267903153235732358307691827423981825901021893523746789523679119970879461530571801766764963805930171318154834228530238599554534403784261695253075139058138714053470385344001849355409191011693169897451603027020291790779104363614485917243855620646229910355828289092974672196280652813254688093432280264714427192835336529267605126506113514077799300719430272535009105269023534032180237017584847966097097194695730489306183612968094806909462092377569469785639600721340496149237030911245900654630902783554194429449783543409873231441407238437360692804954451350971667642384398646939824647235855273549114071944224504383116904148036975295621478556269234326136907925777561093780135600023381511133692985434676367421263757956749633196459951432194604526501542908251356702348990147469778034583290155957521299469240229955692961558302236841512651361502786690683141072132360373616558423653702330590578946846873178441575643532128191814152698552479851932531848585902393081187473509374359059609566400135133396464325970048704258249806111754875903518430961143835390045889509435143146386466744045612016743761032730020959419928340083752814132917019947589948195371956725412979913504761034604321722488840484918012709492446814479165041661975010368499023451375630458687179356504108619543105972179898408872443608844331851804204988134841780873204165358875303071076075548771581193529138308781000937618994528710790155603893653377800478983769055000678520344151252748536554565777814344461873666005397513819279582347199451159475386830065969692403261752812864905813345359032918838094976626379553350746119067245990391829232030164362065646525738621276480178506827648844657240820500383497680492245496580503410498366878706705807768648870298036167181661264050080385589948460682426229671882821010537126489993773148340453433561471536830142023850081293230093369114284263898228773262148456227395205826479759407142266436894256420291534971251973830668789266772890120481429592562079257256510541644054286470321583807401891296721508740657140387077049273371608518088412946705267572248355995016174747584385725707559192376483424598328900352093751296612502965954454102012340023846379797077349454895465342895953775811276153968905735899143189580758088633162249187595809944407890813798126754509653044637872410959915839047914026396320083354782947412185046099651267644456666393659298463611738825576283680813424560328611553610684562846787780788723161418313691546761418871353519998901552243321251285055532174155083952916250159178758603757446648259089409968236418265628364223333489471306439448963303054350124127876471568020255193942283719016034506766128566434212479794535645398664993442478841796458646773085300626998915693508727894739221916300957332162865369702709039104059128561228032929185188866800654283266060838203108992422135299060335668587415870826036826626164862169058546561183421410459071462011199795470490555069340551595147207431821075487293915036302334802740112850888797940869568103810979318321598204123542062227660845573036937729938961688871102399083276651430468092699906381025241565535893338161731734289477899477556038533587807897188755884374145197783388698314949520994966583847721643120310690193678776126684069553749768974041529608099426924284671401180444539961659150564156834633359001253367022033090452770531510939830482638101044387246805517044500126142043883506772182171101338959215392052715761412273407966400585854563537598531339157538094722743181714524400803477284016417120664427519682403523498349632147776518633938052184205624406593987055410293653722744428894027686161672863267851827212112217447586607384715845969010543747393117245386486425602393771728697719392943752468086050766952612033585137039102401279012465465817805740581826854674729521414205632414140876915273935847401101997286152425176548483882672051417394632929427498561903703366997698550323355239528342908075166130856269939449003470487519988380745426727483997750453595939986996762766757990665848959159785636263051878428478242842374048908401247238074821987278948661651268256750526122442298754066068696024098224715532535955409127290641067302845331569241526445590656795728561674693003101943165344009846954214223248977249624836797806523390377204014310238193135145415571727259233634772864847277354955999533406153910733539062929466634812917903978147943698595016733210300358041738737678609322419742879512426076024242906538092126443332365906135096554820784636035439662684124149233054335639586350799008030220395217233932334255913177465314367109822573943662597232184643031492506044084712733543562277619957983882194000873209671520297647464281439133673430136754291314269081801975202018748700571997999933071581568848766583186058199882928280341532451431060793960899895324193432574876314197979616802793209832524958215603675195636444146728748180957165911042752812191189336045183272144743967528825914849193546453344553715642637502789461974536364421693007057047815871339713522239603809722507444440922436958551545118552563741156115098656435527518922124059687326438091351162109511525845650106755170742231792582656501082495385275466513386416626129640200743468920907096735722563502930106082256483858928073286254166740875041259800139286078976442259981253471416605859072586811143822652072341889488126427798053364499888641644339417943992653993920459706842371331631697981915435638079065273745559621141937100746736025900273947061798223323133327045107777180876973959389674049109181357974689771838838090855303971660060193153044251889152052444469538476873567126744562279079280719893033892107123995612505019276260293092978016939294379994430866012256998889787406269250887928593219375433807130515177426656497789239319065162157373400242670846725576174504342818825631972991529729520137401150356560844979249162092493763491852217875649843917080995503797393123276773677405421868085859357470451077661822707305568429428967112511909103575773344082630700350118191481659308138020580294240608119360652196953227165059907097572223786058891408049490246115310505705608096453860448625751341995646627274734301363787501750668464069392749733717452748479282304708044160614725040183850905774162557276801933594239963893192291863059758834956242489419701330862653039406911995330486656410812146915510444886546611679122469341575820578289172871104643215031549578398805202951410105882207468060720846133033398292192421432383967015656051060550627411405256912475839450375547533531066150867420005509535619374398093136489292345232591057633469779423778768542261540766218258139323754120453409612287189495628272535815332486489781480843112922535415377471639475621280159059153749937042522583972110037284508377575330923205762814596067982273299150098609567894106251144752938417217473068889522858935893438719983104586784018781976138314052097645452025168059580323001302203231512650288158401522918500324653017194848334838509106454645501868104848289055154642463073506349815282450879240566255280365460126288721916276253174278691833465920238555575584459654274175185756154766991988285761072459594042919468849878143578744070679949085120479120796849170087335476944134944391143019236803013126318298938967425298873667746541522685688782440718179146606663167162756592178711872445391054266872591377546245271900986243043321871627519481637492161581721539617831201926961835149878697587584275359110487520876149666268669126624286866956440880563570217919990997315639344654528502350406672785985499594043483934443733096519653415734979138960606818031860059382530281191003326204033174056130673403977165185777905559165653195853303826378498218516506320503864586215606608357128897099397265383967373897142510510710606461433977915132564504942950703164734770616105288065302328896302084819677870768279169916199865517487885456716325796586284339192207803532484747395333877630232290033187786299256754270226489544629806760434652498154316042557780797305225832221162891417697083877195328473873862793646022517198002833738799047653717306494236842679993688404202212429011854108585261741985674121938050788982461722694443869295568816097393250889839831544805717084819958057417490694142262509754284271485983609731057473115422624716890293770390142265457409344913642235323560422136782799575742935591640096680445557244459383595033425305112769376589413991839195885409297376589661472716739974552239536902706842768478543233612897850706528915479526916986749966006111174788724199588036741948166570289172622671328418127225501084878920584934092770134748514969564264654350873543215223206195044810128524762553622356359005982224879366291048777215572047263222271964474390746982538364959785703871677950375234877459179002299544452830066857109610841993213093087038129344454481073781971130197637793719608298646062498345663230110707026627739228683124564888303054954722456452789674601007454419143412113003164889537092649642651137482639524956690001902836763440504167669052995481620208330133500453530639562378082584493876978071990374072412344032525473805561542476785434139495352350028975469931488977863239211232522177605981115125070720643573846217328962471105945336057952610905847347514681480503206148608018324377189010310363871640034166714739593537796150406216673316456466716243430585786649257539436530486422256172277219131341314010096944015762624231274286836160394681324176147142840954602064783846627483562765154402708488159752045363720267289736351532762821965900692915564603352879266081491893984914478985620164956390178533934430743246643457462529809334730735263987571175332369240261553130378498044990873526879176223533079385986011134480785523149548125584349337844413696423161509536041610498185590122143184284995567068275974609579035261836482115902804859636076178030608120997967928558208282119274253976804013828617953809501843116969982169961318319615709570324399050235097612132516127612669530601480334843053953492248137779324269624556346883297739887543816040245857929932054616154845740886289039454275533746845408213606829779588826423648375094467573409748936713292929078995445636687331795501762628666442559031469362629922989342913834749395536389497844027067138125049168641460133936462422310301327943945488528722249177932284680656999002369706273369438961213172290149938562681517753058961708828284395623756795877724141317336463751983766577329468611704120382912726523677051600079241369351389111629517269627493430524807465184982254810958813070954131430397896693990097300361090880639749692653508772152555364900059386961230174884675209540531758226471805059975640813462705168610930574525043055385918615322697169126066182316788048746311664030446498791577170286916655601337978664956751437133679732717445831954434738229886760219185254944288964690118603637409808930377953467703436401302927842041905484622827976283341675222731772106077991686964601027985736679951095170167292057387317439693484682870779244699819081640848616056355747872497885808678190145468807247730156608930172659511268425152367999740689313188398892845728736729222951226767552722082481688456810256872818972293276802470233793287154037770629081670303530029830007486030862697289973416375012302635019471708280636439380502394687000989767881527451949567339203778770812629720292883383148291117529465095079633686672841240081977797571893335354794841807290574113150930823164285572105955599767018312766659326520943509019919804283010551825407569700657546564040995270340688686157891312162025540340126035325916667716222379941377952476751203935204081833652552284728740852045744973927217713487919068572710795000337057873339216634148150206104052377263730912314716619776463583519704069406336459085854136116095811797072606256010165092268218127880885602089322620250311902604189912066864634821772017003649518083076960100184233577162069897820345190940640091647568507571233141130481791976067111648321857906007907224271491817890054796572198570598678053610022416928996961543507740611628141685920335720913522300398623599251156153379140656140937004528890688060325888325734107420872201481792899854116735129980278505518882758737433607891612299133727820437593688818659333742807622786980253317310589628775619446624892787801938215481906835624165791665922095508708102246513938670326324182150323192884250404211160825618967870705933253800200214952824019599011729331339664171890140355524829195438706344876025751679304131088965196056065050279567191883989154624163948724010733619294708509095290541587781763457892159289215524058880859117828235562081785297439658159022268777076260359041475464770541441101545726223109147488846569108159615631534795044795408634379807833429598878206385061030266406066299174633578402695580213748711471881212310289158806163418928025137408902200730823430417273776971850822987237738079557855652055253410259462593002630444266297845246341393084038996651587554491961260603685306909595822465853477986148296278826196722494605548408240582274090637967962384568037528591081346861633669438281128770535571629629486127191506951938855027631741271333135005188585850320014103877622713071729210262582315309063261294062254308836297816455721599807615532540206126836445840484390596748901922518187387007988164932766029228973109511870162810532640520947551509703564426086237274448010800843796089937016918727778244641975181884190291905946476905586239799487283852699996418584300921123186309253885178202863604655892387513772292598428154918077501314835554975385311609176623978441282391276837934706162360694513799824073415442845005344539579211891182568602170887470715397190875514545856361303750684481423524390581057504935309297011787827198821510624289686810437920782207422508275787497120677747601743833823502769619427994302042960560750298463220264007087257343071213768118859491831552740411900504778740790260046674620600520896770556827646463210368174424110926670486394842835070355082757249589737295515269187077853360478669166000786283759804497030135628144212966611628034557732880435673742050513742051119442617749151782723248427507420302128768637910728300872781946038920381311351104570639147415254073342225910157521652886492656249032432558351835565778338325870687106953656480063005842137800547322968973429988157434200292413230985624018779898977611936933913016134943350085382876457132834854306014773948336472187580913509418124156954776028027198243410644908390675296409585606320423576083973347251817885227592293697419592960692963717460624671614433129706023368833429534629372106602953957649582151982662625453153797706227526654261344224125593275183475610462455986581724902628525171301852264917102279527197605011452901053081666714200231638087250859263934926529214148732256739639529908596889217925175568444677599857421773318377306928270944483729474636058148473648058642724068163425463014748641479120826319088076695421193833776727357026719219585137402400764531005898037856523528311445053709532539000637503601531609219193880957269683636707529679687616541492640137554060783603866869586127102614297593015205815791820141867495719044902810515158323451801125201983580139625296061014708558437624942267219121331325577808860732096705889195209996359757918252993157780928261344677332617899417081400649131017624645503071289702703571025563810313238853550441389514156480319596512367695632390326531240125783039968967511876175527922295956696547921613151670969289894488912959443539725737222762461877169399434291892223229442893736519533467299350774472303077815349881828816681246052165224416616778827386326448848163555796226099922432031854449253975572373875506284947773500701811265985140259648521820411073787855240088076151742856173286550243973054241730051369871479491276899689124140372823184757619137925812236876601341272728232202589117210770427627219577187268122548870126859742960366345882865072590271149850103697055372763947095614913936315699735166097913736408894451430574013452086641524134279950732265159054517690151586878909104248627158439957927507375201484234649888197493866596863465576066368882800121746584249986394354528306895300488710161461316664349250294260664289643131549031670886219709234248064661485636032576705419055694404395508228311313053296926556003402233445307096269605748024986918249228369578913423825127162268145366328078257107151830352159493096379782799680833840748250208221488474194026456260979515459162354981100742622845783599363893960799744553209496437967747226845240039538797288174749798642300439497318635320150459550963493505386018184385839623712319062838300817350802654724414316747623126292287579839123108613500186984317339053137813771496738235126792361692216367070458436314918991947243246434994931923913136187972066695225202517097901964008600880647248571139696712056861612630163540422738149465768350921280832030275943212552436052875866471978891969868506403237671527973646739304725484348755648146584507569594249518776620791744796050594385463208416687492713653131383090362053823399254845285679039338467285420335790777075608766138958445616762378105408405472254988337118813574717483826950955691033455087107659066770325070415814586383064641369661951692285099917454452026933046493563892146924056999069916904659273892522408096538209145064272322831108829770300145084541874934086331792027048077549081643649024106787532796855993930593003712952166210150207842309967940309573868434335929372361734706226347178097998946886225115688804932362186558883755336636342231822776986545425260385634534955383094539921379914425967207176105466264662080954057763210909987895328449981367984505528611250067922653453872128776025280624853305935863459305526796837754831631492031370245036341934300159516164259245640458778013314896567012351994787545142149568891764966566495646728565841778476485370161817383724596864704628178931616202372394578005451324875335562614762995669721831639642452524000492986305335534810769275982273659080848661315737221292170071659540362318587428104631717269760957802487384138070345424024082779688598213924875474192342287938795284142954324325155409698464022208886928304887051749384510241680033791320362309028385434762715385796106365759059995740717144681845533953819374465079477428078917168738286760753334512085953627610384353437791945247231229468084979660782827363014771534278259943248015537044814648076405773461579805925303033915905391267730108979317906863715349406780917832416782749862245808821553159202161541327790529668583768402104092435239414023694833341898063081127861245664389127902209864266941672963760304315775431019154042840447736887443779792853234951438677777653056052873305786247042937743967946157496219741877078062693056434574212761899845922217840065588157711090563491328541706816234462774514763771512416553526792496616916094743440622788317324115177446969815976510619751568971104342200189687739358674926056922766762234842404456943074877914245567733468981039168766389819918534542269993606475641260886705688929459341064518669059104020300517339647848344585901555248470958409947467122930812465121815424626195331999827014390264962176862836448744380936424977216369858431197176581238715194621963551152146147464768356988934599251189668357582992074474114652643301417041501703620475288995839258237028024970845330762658713702603328721083872457028732401033807594971220984158664257982251109375853899314712934047177600454250275999125417631832679332858684704471346904223025116979786497613177444777459632839152449070158503701312412072990615430649106006755283087286162320784591084834606236740479434945183932168094192093275619598726548869632245438649513909986096272070932391134254936320226921430392605528345752560219664131298417737324564630391655458799366861298492733473965726911728099344552364288543004429251510381944233558772902718042120260625042532729339846677770901102295346342758815921205212267522343693417775210845635709068490715627345259054747910855634969598839096997464258286201025373740190991346558117206492572981809127959379742504538161408417356148754697457642092966100603390376810068380294189211023322018287328025042730399371520891400966357440148620329262477964313175464229606697082406679576500880671959664718361366150689921180838148703875503734645350782565065443683230146728055964837980282513942275042166321125925304219600733477246585046785802347947090025603530711002289243872971705998946421310267338264795083343784130174106106498977668200955704045743276868602715526440992921821459835308637895362582357305846294771798730457803877184764750966063800835206547468601397759112674335618726162041664811847368415899344367648088232396329918129481572088122962156845441159173214692108263801951191964405373786784975750002541463522423595384507289870996139820710835318514787456103238768314006636779373969660405879442071232954250255087825416509128700874461921690957879038979515381761471014939198964519849542516884760768056160430096086648478725400854185261949789538989950527775364422658466451776286950388107800252469673359121125663062782384208256254196259354411193792692865110701717096968472541895424636022429681546305045293558535997517845200984074916246691757658319051746943839275747561331139182299364259926291949156419909438039745762408561296103133677585498122280716928519260170036129601302630896230244748578717033419187549443781265550602507765768152826376139524908195554757930423830407285614790998540964048991084093889469450051677088265173830058872255213638194280721290224880687901606224631690145183898601613742881287335293692860915888122168405828182802383244963039678281198874822834005179954124889345754514962357176435680393934385501960687230480794915337319060650313115372711408164168916924048036090340833602862920893256067953780138861458754426985394832061939277991001994969221805680323417327915287717202195123566280689743979438815725124960681797324675362622577046785574780554393157213536927070695767104660457751564624995172406439417739274667036796285845586513785907806126558741827430703412684535292516044529443759210219554127939619744811586974553118588535491832714910649613854764012812901265244345569556005758846317278320448256098002619324922799739575575165851574795563328094877080332899390132867947283955328298202112085062212811007290109969043395637304621704464841306430339960388515490707438508627907346750402492791171284019933272534453139058436362806125614780288275832649516538510292766791487591261900109631356728858454227909488100137005616738102502339197994561700317582261393692357743972775338054868219717230268344550231043828988122280730930090811150189994523842240260376522230519758525708133702850737214317262442650093738161670887876786816526496148223885143061285547167644467930808988238025177643358090620309556557078216311621836479122251310666398687779348408762912975969626183719269771856567328311788943030714549756947790899624581261341163239440481367754784929209303927864477247764245663748408923458656115855569245242159526749014484467800018544404425156252867404361177924991593915017025450050845627319056052688005280711122076112950019911519988500367258513953800235971691929960996925842605194560966098453885995738412571621656036530678990934001246273912423806760324624403208206558367365665800102697776776077049209210618813565539143931092850825930830823891243549757614876162898808296238741411767899209516932654523667634739903775245878785205637724934894369535976141093363373790271103505301020804263088627319481750859299882588400131221621754581068682337255785612633307942195777101115872475755288452849245230176689200129238062560613892472824685235049891650083488619456318201686504479979408818229391464478426066917852645741546976922126242720740841200130284794032888087199080173326290437533867171429013365230533919116260887511878066960319620008180652767258811934122069696656201924621582449689574406182441114662453605318072121013248647979282265702593630986820582759403963596357304293272128897785500110133008763506299695165899719969229662669166724483385068101422968012316088562553663415571548271299960550122553765461116618474108838049581885157273545324460833761010007543031252976724420304752554508639960393439596952190422079379087579520079157805249116360454413464915423225339096495754906915441573719231856324241361878201624765169832159332569908094709391301934822493856340166080142534110622747235799144245237337056729639198735322664141057613670103465974440796957201166214432283087869237356445886578624954478006617727969314578612800693642027797820960692577900929817620697112264457110300792545083580870954188271511814756325399984289137527507766002791240258643071710703435474636593227080218484083908773315474695905084812045554259266958449139628629823213620995591848643903337215214514701911028166292012396350610310055731462351001437303075781146889379238881900907175690042670312732156898199997905115101563718472105770319822677316105745339363894836046241159970141447644194927907348407124648327814429345045888137525875143052677175708894281292051410158851937034092091243209868824288280257806198069803920155764567213517248452377585310007051306072393491239538391406301860697039396169271634890617051807019925371168888202728437210188277387821955345827789464164839773637011234580105757890750373101075106922587825001425573912674575044995365084696392795541574782110639889122116751191699279896975921683008746012118251197639675727230056381440476369219230334328373984208320511215909251808108026859621961732784479039498389930449200906542759707399026694738665571173307021078478728501344794949016677071086987422424193119114565495671794386355266222043895518468705490943159268914834734932428173475329318943426653500913338147383139172972900552849590764413679352985071853517761804617046077941796177268127440756804629639002775567695366353860418527535982856010783030360330502412696384421211477238651028701215563658796398296847750311427311532964332590166796922268329853363451612108844299299955174199437452524632631117681947555915107165530967595204758537537509843573420973889588905121885507576031606155736643565294122389645065986060438222659743987195950042033863160440995318237366654518000050949248161465039568408245413278645634347203210621766488413443701700828777130784178061001869543049901515058384084297672071970052007405677329417627612766123233940508710382804464858945695373205675133756437393880107356896678920755722283019236835211979963259729311131844692292377851110058439285820671352844045394739745680190868980244766081924844509985096989623816919850722410716515632987316872985664607354680896494956964824264255702275704288496938809293994824878568158680967944786030754733275153804136937754784385649768094631028113254646986932085753628863770863931136815938888610723650757637693535831711564966125285261843770221289832548985319345337017107250235559840127065693375722229653129413510298214160688457562553037131400862631129329389535673173599004433281349921375066451322488676658727531647456339088614493695212889601926747129960484012087658305582219315582658097135966114531184679006680381174460161250442167462864189411488491946240410508399807346421890039953241229945296689849730476391340952852298253760755245193093893626071483855884357154299753248187963027495434397455124385637096398615344821947152381833359612800489500852747933858334082254892689905398985082442072790764006713211374205825875306512263493056505292183897476302065503491159308613985439293734382315108516558047569061361185738860142669899218239354281459106703247946668723375716050956785759980369267719226949066791146237911309216077237254573763389855490597390324352513809035814672259400618214602532837233900456436437247623209410399610386156535831265905019438001656748083962877034060231097749295927992773751937989819243028569063850777064070632829228700298321385533344342988882437022893402869643654087839309423004264205254499541714483257272889373278274958257754411680518352084517486746003985798922056403413855186254043367012122317977601325968817377015111910288223747541603647045271646497943322440621990530563920102773157186916186993556077968879454457164287678352642648604766465352251406924167327916047479214113957785466991546781499294647498223846998467072540156460675871671332485081183990084559717724918021418168562955085158241927787065337253100925262775184715062083992055273606416325579539950786470098745922532836304928078734842828087552229171998500188305585076727588468211070477741794093668824682028608499441233905876385470975104458176248636716532940900428306761442419245133925665570487810463120121227328685545371292734286811893815025349425197595361795491036361584306944464521268746526232850460575079466303325280319870500787994761842159368209423644730167100555986025056026536598069598498592792039399716992921133417603856411687269826152922745613741774823154357326391306880948699144049913939827251197120293975054830114785155236562081974411019066704723178052241080190447103825356611918303937183628217459491549215953601113775725502619925655997848275952225978913717806298369855349665056645276560912819025987393606031416322799999061018121798304676137187034578900151979520228918640941463382330620593147204574921600526480611776342339124415088061552480572370715371509948699224789457146810849611323259115230169805624326508118483216400911141556810264798991466663861504003088708585299154236264352623475997429316065363560502079923489099904882465792538521160110136415307800820558085493382532793995493639715382806629965496525958653410885393896803451588563447799432147603141870552729291401330647271640272846165397075524622193512914465163276736697827956251414709886980095781298914059747390841512012466083411631867767485119447319958573977493192751059561805266569781753049539699951887047653861095269758943765783538524701297756679119297550008902549757364609078299541935714580218908997243861592322629040861779800153666694235102241445502189737327867472622919212967496189055943526730742191434519192041068743183977538822836129606010116605474685068744011342639002868413609601784118387883933937790044569766836815456302217796738975506485263278169142507004695268210654250091899723734804970685114583112181292257161407752208125791766107353837092999263909564163292488157278516575211708033031784024455429329528806440194904112029192743462632698949371799767281183202414592222946255518942219487491219716355601705925210080691271928791490668512141618514627292264395092902725744621849000783584484207725611374328728728292600285628619904825859736891839689414324834030483928506621487072505469609659462069653805117870191901654101851679988901972617900996498123288239301596693325559933721092806161599519542429011687189255498420832594233136455800160114188824292331404874675632037404215369533080384594673474522840892359373810629805704917844186552666535559844087194867517895056437469094279887972923643581754537863147464561792843917489549151473504257969523690145888254014234119724677574449763863542681623705673356398810785991124353748497996515641818067754379686718152290022315069085917901965145940572389883842380003421400749934330182769718690985872981093941123318285092338111748329504495141572546125896462921934025792044544610216823346353667738158906360240237376387079836115978716569663596134018527995591237270233818512194712870486820052158649776894073090734828316143211261058274278966856344719613888926181854000280440956354856742300165959047586413222273481970269465670712501018009894287787613478700070361455000733544924111447566110898406474272903182027356963905454212611912891516831054053915367961586895002956753725023585595087463348697693753259728465206404371904356588395851548083584783796665739176204017688169225684279610385773321427838789623335845903367289252878946138782613409153070713692577724620293862553216184213817174475813419015166506261431736462450706787446043805415603206973664210187223487474524113923205403884930267376746784807958504807461980753783590249459587832479107237117233359656074311857381746373580061212583718722328329760106123292672569648983643318837913594948706782868607880336331368589229203574690216304194335589125623077626272439936320885139454282026149313331739385473480574726254248754179116615548525170324600576661323872383945462581182024441529815476990260331009652030881074295737951093452748240522340700278410673533389991258915591282272649360171540366441577007857372156763258879949600536317071087954608599901516600407253205427377034514519389994164433648726870797380543443638887086558369729867772709401234320809346422257924796489629207840750069199835290706593227374568146353999052749980688185481715594909562898333241278659445655659232366405824107255620309884198160731510927222141264641664537096028678403225146385173123745223316961633862889858494941921646715230886219763772394199931506524648907294619737701340025321140318887969943112136567594810330860272637596636978048773422315510759219556899224992236850621710575014720364573129802893607043531854469227303896830730106732973717800204352535398131190638925009244133619110590247684241105442707775316801253785492716247666420170476247883858815044807562968991948005138101275432533593373540001755069779069743819169361119063674241347467408976869337963377179491836174527289980703489107769235714232270076238719832255724798118557410654625812006208607990390636208162417183475778995512465220108482395358579855132985712886093591404561749269344313743329124572342021491673213340970093003710708570768086859549755360431595364587331514227539464324965023358920695381947613050724722332640750622036006145851954228718342460095059877294650173038791725043151770743409749134809040232799789523193149558652491302703997034984697644905976699931305641022696608591195346614526910849102945416069737511754390425189713736192285213967065840370906099478193482285594945208626647601660361661256638142161044691351692507087691989109094318990221929553793059526169697857930752180894539292872042963567884653132553810988141508856752391523775218216703600630016779775805991636788320202149417150305498589558667491041840727706059376010025428025887935798878649021144818158175614488528884004610231942285152779772595999342504003544799022472133167912179161298980171228345794953222862069062539867142383707708103324494401857802376578588223679784448607457644857894086203736494622695659320802964251021163453830319518467244716127864416041819338156531937544640790831209164624736608196189108344749347651487867926111092607020122818421325961679490962456247136469023760043039545620635021685667104424449972878477543207936401330858420997679735875839680310692967189723674861650603159145295218431995534108278119841746650526891625183748318564680560246127175147613464887596441006706908913821152449505170764385443605068699170304743036057777032810787026116080012353876611738534793025009462003755858603682450633411563998592923891014901233324595551590410132546671287507634159309750259777862274358637337166224304968515755712579056390062908298790882655025798634160812396000112825623724404330238422496154552066714571676837859546327013944286668899445581710754536882960985578204731549123027844391289357671774478948456022242672687873101986921627061049802073610146859070793115137278422729027518944033940808854403838558606936829703559069417252530122475912053106134632341450566832478895389196706329572697931250567931928897769799424634887605120091472137509172521924357378975310825809592831758470606090115978005427633947260696158886877116365537668349452776928414685999020969287984883670454895150731695862160941486085699462244643014631210698896740892237936137810716435912353038694833119267165929538474388408580250993274861667188971966878977450146066667243951937581539352480933153892094662999669471631832767941639907592268364570951185581619848930105712478584515382592679877825297350973353152256690499264447637772009400598144022442212631655092026095804102760826662384778158036011799939147806304860216395097419227219773901279472386447383959532988889807313528898968411978362688508851467457345040702065605937275927336984582850779720505664019493813893449425578571156149637898674727977374903200862262568850678937079014596373423921978787914726271898942368829668318574369959141293887325103455826585839621547336121493036851037579391156956904237083272208305877060945861536444251439390164674011577220729470574494818124928180027769527598535734602944831615912046733420413577546186182500412995103609519616543280997855216552879791952827275900848556853342419610759314032794604299524585283544958103546771820559005055647591166478926922193444864060520874650246529356243892461482695442652306002496158142947736632347840859980684818460194236223519202133264992926310962916899625409764546935953959125601342609127673409737788180591288508952824535592008179581175362804951068194945449665007968538865809558282603973896698466578422320150381411397367243328635161811861962932642473555209500063674091619580827765642818057905844687244651598690393559807015178571936584681490123863572908149445722747268120909430692696516202891437479095473571827857076810940640354147731560970363186163760243543651138541950621889507484911064975915675608398568911218631686258656736344713491688379667895856343444809418729081219999716968518147449317520748499067867739338778535411216059317944924768938948245064953569980261292852161043573331518308643946468388118175640480580998710529363098711980226753965842868008885734905270667432707820585993718139334871652702025202344973497390723496217423600403521492839284165165662390713544268256322429118951931411220032430988429264709256234694228867497578351018851621069386389165617687077918547591400614487555492761948974193113312082313278783712056441469173983091736523295038228837550494008470756071621935915894136156674053002613173621737994705499389527156584696374140922932163621276827056913912756220121018330869367076842093872235604341819314807172113532774837229770762414037282724249731766955507923838898845621501330689875759590040574787496707245781152520801844952468273923529156818514458534317543844232729212286616294628923195585643693918890161227689350323600113330312384069051562019895488457747016154100461688771761221220375151852716858575587147494340996545555297271622436748667262983433836184254744911174734620517728879789240000699783656945488045499495694926689313101829185814182214233327272148490503697116907853226509233175720727047555561718604613240249314034196018157737566178736737096160299271642212378511791647874716356990586531090932029935095906471585807908644855629939715446510123834566151212493039572178269864282608998175659643051100910806865186986667908560687305614936172369976135854039928056592929588568498633687032133274171960826318097673270735268417069977031486467133759568167354266822361797584148748233467514126244319356267901571485790621770132857560464059544223329942980427703667859783387971860984635018323967340525516148524407263953903071661866421315403412936568912757954811778803242506607987953246579751265949619429993581341626625040532307328170798706085701993073417270303127632847713890227433312544369078056439066858046965665038235426079465644543253342542975186463487272344287729413753819657971892710070142342822734317869594293885110346550870002338516854717022038474324375294949347380966792963130188212088599657231732106132944573782359844883328441717785269953363188029837141781461484091481392860659746123238475299399535575412974822615567756262135925613881765390743919916231270886609701864128542064298947756639270581837913617371509836533322932691652212976285824718063366247278350756850247982494413670476631807762513553462954755651039944195549027868561209328776840267900824229026907467620581987832461967012493616797788326868047747900809738156735579937798396582267042281284716130353007603734545406350124783043604856518360496839284173642653702991896901467647679454365368158233003769291692296397470427382548161283492328517868468250599946670205130306671366430298997415591281768979897120970197730796967972474612127786969359334946178597285032611214352664834520609440590844353852107735059755946515741682548845028202529637689948751741161513345750443958515043733690290055102062061451447824247882594046759811564305303771147492570152920396141533260042523174189904284265920323473754652694721875211479397408122113605743741215272209179584113300674523634524049926773748919677694841195287217122161774592335181216120122004214371801244061736400907206803895018290203904367133666450783627633923806329481880403861253115863786903057998547682475849600392711589413076771930820074868440640395656062151459629394221176021315903593477327889949413618555874131111636041660552547932629686351851240533290741686191062236672601718673819953130665653211598558676355681166344037622029665057135768716514149580665487298980903136945479983151124578945754541933264774364261159634470811533829921714774295505649595638981733167264074696328216927343268162598712599178379707781032811326109789912287293299901969834378259213546304835578707792109389650305897642155597056422595400292348871383240392285305503608000505214721547338533762198703163526234286759071163110940412635305569271061219911117474265962436459140538646173945030107513349964753188335214729724701358048417662410760931950389132971102812984648374427721594178532457946683855385788629102794901165069796789462069588793210761659132509466189013854068826063627467306450900511685685315072000427079169664629534335785797322071362137525629854986130096968568849766990489890625621898007718497895192538202711518437671783642124299754032188520061214298113212661847116834959523190176586593140286735892082702143225955369054417767832067593250676704955861959047885833116349808043230347091346241964357051959574045778716182348578835649547821705545766148432920504587304875609284905564576142093225838310751031799419568473473142295506276313124797911922224132916025956601319988142666778627415854835118053387488396958611436214081375188183183702494132479166830348046443105679320595507574380045907166781106821633293875553792736616909301554739792587625434787258191365748484606937682703238569391533999116975791270922473068429749943054244792327330449115095634110411402434556966377476154861594912813070860038931835357678716565637673865258020416622887801333998651589837416253016481807210994344632761690077627403247928071062589211802643923437612335890654714146991015388755177745027377685170772519115220450658916776357313557592979067045115692741958045766018082028488382667650395825605926586665308344791298239729235171423377165542052059676870997365973531703043445460458907032052901615271032483054347654797507945408432377248811346499327075656871239294440354127380250970125112406483550085834014602601857478155748966833243755169893114285693864552745402271601149703132139934289246920545672246548570829731071647510890997321416232305597362215543436372471901310537094857059812259142455597484529990960368030421230389326722980747187280237249314771896961245245466244959485462972414894079757723711810670458858935458130083742878767900085888219550384772625829124577770804351475733969197857045677913075444529360005991483752322526212591574145950221350674851291048135394899804850588019491154835443572719994074200654994899361305567335919646486046468017722698899214169204928540194805032520085617060985095204397329844919645658754661036344507542475325158271039670925540575296375407087518288767261517507859756051181723449736521113678514563663834511429326172747329721528397772484731487948482100791947180711372704240364777151488942828134984146444649602417357615389639979412259978938307057427096375303713774647352528314354775428643369384944388464297403031332518445074820075951074324207517903330948965509610783490775163723772889377415272749950638073974823451319576549860961438484548953382489913828090736767777330991489531578857139176381388028993776249484063985175474588464765465329521227957714834815481084952284769078980468652443164328352184682744402778774017250687075030054273659031099179792930521864739664012313312253485107509059558175452030310445756108355358129040879585760878173296910919009784316227095925306216503318396937230999278641191244776942689039047975581534494152285632693844503028896954823415694422150194501046845602370616769156079106314887853328361427045774111161251556076863392436874040260848653096148160076311071595278025036970404703447120361331559751383945066337412060505978425370954200402921849761817386615788324884937071808510379608174971926250097046139487730118622783807744819154760333657903124842629853039586222872656072318271445529678291644355067169151027294120553724800880606710840375348620185021495430226283224677237193711005096271119719474624083886115035696772019083610911462258570466736683365131753050946372407265986136259392533586515526163559421119305221314779687711672769669973679805079331980968847377010457949683375620743245395095525673665155208035039084011484857401009398816786534871134822347073469926844274200198701468951447615680687015381513336247186431305561024669556303057495282420307649443239642009894223366171981994238061795876774433744390212230312191749082506269533869184177012633017320723137383824210333072229076005904892382786024210833925778751025699785700239110774250252640586631990749244007048173531643821881775081220196310254499683817355752753889893589922380296766580059431155975997563669445188467862230281999710942795181178866314995426506415878070693566212239675754568299266538324619496528951196052019862629957933393386630958884640309826374589666322999666275729793690638781782126746531230935894545635133733445394552386217045150507632031937515431034997470033876844820875482177663440421495961178743416174923087637532039327467930726957824818845183705753684095054299536387737657212907107121978776121948533490321550334239468034598008785738106076438618966481798494985336022415579815970400441692318620916587007916533320669200790448853541331784229227470295483003494803758111221012772528273222580687646777754772626894524134082612189901798565637075990417860792546799984597683889237486735651796585309026323737841535053966346491276817801102735935693035379589996196474880042748953051941426868605789427334586987683217090393889214685180803729272620202274468557974134434476435572249452622980630767120372191296349189186296166205649500798495330030229314036195978446440520521517899910279338853609836354722263298170566921968052506964346965999160610633820574056116308627148883077741031302748338168172460009798507546781235300908746141632034213597735674328675058234451182959985151686468508130365598834039105255299812709086368467930073640401381350604530377023425408758280197744779346173442374937337622681275606138650034476952461750222554879061838121051457666748750622826864850795751662464248817371119501683519881905383998635334192732081031646663565082193933347186390156206447246706598212757036452348756121578267613995088059212208520900024018325182331086812259333186385164409471715020929010033482550545854562851979019851360064336587669920456388212884139799150234881877917908580437869758413183579266147072290038876324274434930480507824215720447560103946061197901398349732568531987442231534805791627288110672915527475665022480632580924615937348468207084176077311302771955765930795322616634874611798934422109762811252115567649124136019814180532191512055256398997725195825354779078838057746378686079780692084555386812670064736496211655056854899434648762960627232758709345084863158604988734749886164382102631292373704470129662001682255756263569699963640568188394467247779870094156354163157447692593109201812841600012936524119471922493503308178169728398718860276449009169750315281762502599534312133364334693051067363018680878849983663683982917292549572699570155089780905255089698770104588954207618405283429589196789626020364428779350926573484866922495445981682588871505024207099409066277611760820899975655627079425822923149391420713044053010193549831958982408358747205016920560089844625971668623256056358388343157019507352895246276758833055554175425471312999562976846837497129053447388366639595989635679711261133707467409847056143787348189937055568318480220238708622509469342765282667720332445773028874193926922292719638276755360680679934507516370306075122554211960166302980903274327285393443501061656619169012025656123358508099054409709144399323793978176128135037632177956747763883627484867750419282211552259089900841982932885656648170777826428443035432125154309726658832954205754702794076320101571528706666430323044124822645153696419837031358626832100151895670680747233298350525537936651597812610734896558190257430335684068701086441849614541743933283626224580379493110542743677028442660881687192699718586697650208842517791097141820179447046224809570659400990915004318080309342915913495685025255159928534986759914640198064072942175594499293668078247609113460371163059780905659636917241698957027264690573036909637311486362254207573593916723707790582660333017727415013774614709777154530741132115378085801065252752856201799471818352530330929285745144031088224841782630647154318948880816552250583702369886989936635234261847353404803915855232281426779657788000075987438656097807941521109004785713568835832038681757919793963040175978361785395780652753952635050751110101806390824703955336038616759559218144295706186131761169990259893062682980489620937698350506066359901427606676216176431891933186916063851512296522804056049853322005123437512861093809166073694459657099026334578824699191762138291405092918331101620244960911248033801031840779844308437816561776808418303547787174710979307043006683924407271054881684893462951147090912561753198057776889692686886709443550765271535033198717225523871691156559424462311689196750667833303010684605125044627842887197284466114421951333300938021280306440080029496528420600015954120677087216402733348107500891837189196228411086191102184924641277456407643914529984112750235270352406171537515809935196928228605183581734454784297799016884675626211713996701719616777339446401123623897286573357924438715108981763404785350665160662236793223895307639298971204779926874788725760639881497012627973028763746375145666499913879124336322877963863438585516786016360526563436888455831958095761087826193857619098818044869210278665797292906326209194936544107722435449566526852689644504407560839585912216063510906429049644037403661928206055000272422624404040174938244795737716087473219147934032839011392243226696469774375325231535162299431100407229491728423572378693063165678211850399749525318491135539873819372000847257113798472061612536517354282082626733136405737117003382361984491570960297401342058750499556734953504810030500809204774942890398516028501775279454345496679505945448470502774591635226291287905011960959900534706215183003130632915660296479896752114241636103847814341575786949130722923325288626303761806410850980153923236583000589835139965070580205560337025254542764298488095148321788498994875022696486509635418593254534011333482306285381782355692067154383777896031190207091001436674374517775457099822215104535350405196203717474407846974876532307292648022279873652739553549040261581299128633717726147309294579891058004680143417257233171098444222175900112034024004117956588254494935080179640372328969979787905201996655823463354097418964383341018654143505933103675515920936392814273912457101560990804257680449696280305087664875358202853688194552227978945585230564786468743108597517776256702490538431147198240986026459315053753674843834203297328339508820204602055065347142537098613521641037446756123656296054001761565199118282268140143038399306203923791259951200788031564145795446837368366644214276257944132955430216153743394100092037452008277511756090336092873094766275165134403297679673998378981718684047155262216949681197588963926972501884671455894499457305668056623922843179539750060872366965349600157146096840072519268555981159297583144601510624916243367879190059766782028222859292452253741897255692092573818612944940703399258554242356308753610422166739320186258896661589845102146713946489877777396323432499009570397838630112176127929619804996732688101464563815989232438233303444318826341846726776475023888158234334614949087667254729429726676824879335089005436479696039463082471115392502480776541582753484923466400989406829177648705752332670847884856678674732297361226956668755974441665414011378458718957004580715218177050764088637703260670477240453915254969265466265735240355131423917564031874490803853266398544154308736306488708570076046667490925962775697382636207386815434655789450890670647701928787811028766655929459982606390689758053141238474758935478363091916948107139428125011355147966666943967473271736011406285794222927405520452235219382296348473041927227087693207332266290514042324767718804273914052497063727527583728893829531379383916239526485710858552453914091160791305052612257987830301795893466628917160206838965877218418860488949008611865385953165330777657641938984841565663962958640595562227714377224487832056771421653518812438661440364333632743965334709889442136444510326278155865739010180431252697032566962382554966211881141089942177727653645589845744217104977798291924269851755592096916349550058956253459395244324719349195850527514536239923711961878605882969840047564547743521788256126808822467019601695806797808745765412053337130155151353722070784533322286091443629974762732272824083330866241618504679057643378020858569794276453677577754474027858151813849085245394774593988614364287227517638337990116638305377940107877726886638702636364053719483048561135554274093049387753674545571040199723293399831304410314014414726283526917530947199980650447032379339761743614528370085542376603596487644507901237746325048891088176674904919418889466791475759044768308436021130875836166775845558578996138522795916000974295773990588879679090513428248741445399839433695591360440164655233522070862276544301789753812182886661619100209037628538483185541982061565834521495410575808424530234170037802097758594322486348673667618930337367015291484562672856175268770536570105763208815049450271968533751556159796759286829657383033759087359761313890893321929630516146659053528166388833335742949256264544761621380000338122066988226010550815150666715002564355659467078166992265754383209753609499045687417440909699635625869472127220146616321400056457673176305377379182848313091499830910404810619243402619102356516891452932431367072272810180126938362810036481915507905681141307216795327709165878323508480061538250829534126777415501026790300287040694411009166080817314571023955608219462725069181560454130962060972578120358028509696164055918921915802046494546952584682195545035462677459049625149171084534185664742634215890932457183484665012457513520751237446030387156586154058833798997923455662672448656252817068500047848279536078148267563132260198969960917608604036417790643731009705086575863114412828482624484764160181877348860120422760105147250325512972154944403175344805456298283273550249257463435145754669776988109403531149883214597461527101585543598202013651218673905174713050629638545929273429369818810053138250869885382719482359929135196402680327490052480959753928575325527199519514843843304890169705330613640148514804537312621670446554455066075894095417628889162366184393097969436693075449265591643977679778874594190386127376481830925024040377564460302054123870955895598014808259744370379335392472553962056804346932674784651078363494968413916309127238241838452066160623727644550861431257200608656783641961963177338864312487113932224617505245494945097517643138378569528379900514759066617718511340804322894615779254494041111826687621183928885393843140420916114468844855474414520339297966285431246114419851756017815487345847219333949610413371345808502895669317438361336393052487003083407808492985610682831776423271560267831301130102692465302302280028458352273910885290390570464855196237572437970751235840780774363283032316024877465059682364850411473155273540489837503495991716512940785676845398867956282671929695871562085996733967268600778818234802093215904027661193564335497377012661489244027789896893256629699106903096294795317524123185334658052216147507898819679880297040518426495372895834893025371672440747622066892895076257546021273763131932502147348329944627747931318849559675836089636413315293745034273391245451853662488357359125017909195863234240494757343182494797386207952705607998181085804558558898678860482752055462614165944953815217679793945332699710541998888623626034513415659854049284185464922746053176654225149493812454503591678877028339562718292588779804131235083968397979967505662108741778327132845534595737719975091543318192868829092781910918862527327630990354475677480790560352409253810824185407701566145034637431003290041195910733786056261322009929068269072381759029567234358049091393940393208675665364207012804659456867123216226023277332597691272362878489872759658770775848484162490691155037282109324769855345120400162248606850881372180810480813658053141740624645885237859178136039982715074390223486114275400674721379351877810499259775678948362518913098443402220323036321634991338632118303611409350013276549433246972774280317376389492860935327347853304248113269506620565452345142352504838001152547470434214444632798753654694429692551392957109710977812907104760419663172958303551560100427388650287182590014236004504423565516102284595070862155438342344407848338723616085762448044820061575324618037118881825476337129592400464379580428518857276406433624904777491466924546244293138962999156251404067746733589311348984093790262753054466794753497596142935119484271196800456417291412344161121507664865978043695501062223855660860751342318546539176372332975815686539909932539728014138563482051854059631816505010739600521476442962124111664057451351216585362078696705903100974567863265336881795358861539508328937136546988218309287926822022696271089832864632865057077232248675962044856093908291453401158584319007628506957084736275235014450197344542295875353475859424790717049066548448788222915523478082818062587025057542776732794703487870889542920891261927414176590533911954813814857064816989675003284084962894014001805915712563433719723857094330007861537250204411480122350608450042835409961551836134083167831795816445086280985218808177662206064430651521028772325468328074442842905640692117030839704900541836384925420769039474948167549712175112932426271328611999543114485135970938387113769426905401856609347653730469770134910053758214388048292868141529025218738932014974272593730987310909953951402177597629017486399303935150172761784986138404886274541764124114575000756672506363777373938546430403778841646012984786185852898427423579926944703748126098132216387741124689131453426542989942419995743053918116563875365430840757500734449752108919402225552466966040812237951462486693377008467781695693863898915339275237900402170361136188589286624612215660345176589429341443530666580650182211085910073427938711796897189778504435957943296643967016895408301235977530863127181774585038337824256398400681691349155049528934688370377794560136807686399859983137532242565854109599111544633518034446736976702858344183288675549190268004305226848228604189035668573498177523445620218328665254709672054685302870893618181568271828949455469621419391579560077352372081038792740490508271314365579091423195381788298137291350029161059411499389142044524291912589913580893832609880603848468010223722313633801225863818669944172586940600002339715596758364103418290864540788256788095700809972368917873044635511476990727822804487465609462173831616514780646780374152048500997803321609994619462377033114981400974484319307665951842137518674195439364882917825745691880552590849670476449318419202775974686442849155855729427295930407672197456500161038891758938026824555948740788516824794230340534008683799844320451883079127739644275352687695909913168709327918706062438960656340109197348960307073685354174545548341315548872298842712613783682138398855391157898795244315896461244408755522361026244464015524565626262561503622953659641972245976821816153915018478938468288065525105905974544368238017405422191095297321533811360645486317599192491096716128400754580281571158336390078688551189838100608923557997514381792412087773334861085051753360341634785870024300073912744100848251993856258415059433966165422232560156885256233222110983015085276542780370537104262928173391669108967106714774640426063234417539564564859303104278636567562630967412011100312295375094112969896997089024079928497689224780739230699789868609644832513867180594450799999054725276804852433399732478006906535274408735374988111617545428774173541182978242402372240092058782012812778520199878498896086727149526620468301652490593713951724750286770097162848497067140264059232704152121086384312745323411041293310757850569488961928209226773020606001933984722933421155995842713327084642460286777020165646072583268451038931947229535719838977067313681294617413687110392310873031974776094045893061374024361729391088201432865886494487069973874939662103460927150591656745324062008996738228094840742260676327558551330129542739544830585267444897886035409606514312992470180620409863708205957080212752412103677219795670952404036660690528467525506959265942839373934217701563352289473921771311143512849257024818192431292209878337930514379255123972375320308818893066900283731791791277420563604301212338017527636546098765113479239006599174363287889251700266076329318469021017582733554308024334306430066488620374930286645965604978892866893723524259071903923370363420893106590260384159826218488571963304177091425084182369676553307116132326004498101327361698740092471053064318199769478923399213648651166468675609061594467069556786488090759992483879309218065710141160583367766061843283986599338581965671304343100995104928159214169154271788627175672669173372833572320642854686035756287310196718678183005038552046331340122810344014693741044270179928497068332159481432787681381019542636472339643755383565673622776569626876830307505987325445131357637266166487944958056517939730478129205228704542354188202830335637707889752627504522795547327729362809983274139416881853819361965590613825790138542536830267633784880168994804904493984080986233715204546154516356241392232948469125299996511928967754152389320293106669498335193787977730201504218840276218169279596139298989515240599544926349603125712171676124858061544198072623103257005582391892811392058150426246292922185860784556644999637260192013636339637707164939804789795350302527861772377020887482361354507442243863716177794539901052714802849115099170576626104264979604924168129152354404928232897539784140194139459474254237357713570724320671725867472453837305763688931965245763279966736482713854457448500559422489209143184112102192508803050411422460657859286121347330714169105469688113178390413247416835760175901259685462737552731048385663334724456864430638798778053196780107866830440740654625880928372500396593463054828864873415920096222771532426514973510334606558394655791765313127626768488239989198952355811356105638809785483730457456176412536987582322251339910138366609498022249792563953532545229944979020834239547667821364911833115948161195354160568155548910900843033514599356666148457366891577315856218066394005089645260331005387840723609186295530271365594487992030920818606236346772774631758815306190814925484522177032883450591417828920593703354305435650903300066166365523029682737505066333015956690366006985655376171741208116693886346229607684544568002862939138608917079208101844630453948457604009811123846151159267427196107224928397692165146305124375213687292630189674145405893538885854139837601756375232355644176071661022949444450181858971636077726182009502887595667691011309261118865875856642432112011337378014303335360003492933488750844644611244722717043521658275388889992876848923945872390251881694693770796133592306647362306205895771492018963878110423848440654674917353290522488911752577181906813529570399199639767300773135028745275379243127223778532931062581063375489964798378660898713339402651115311725458081407831495891180124243806528811518368693737601736755440072303110931057920792298341085152544844593982723256558859287152604160248857216998265020872331077467267287993986635123677544717118579967384826958680904905516315784027869158804596757816139490879433210097626772954334522478796506435683286049478338440825382043877299091699019848711090295363235811226026251867017325209539883989546160312793386467375704583268704977811298083391831646869092001902423777785178115784599313449640173269232938167136603739417353326924472459322129921620753894241971722521268520556997948328186395680493794307324665006675299645444718943185135072204899323786386170737378867660998881186146345378375104599837951457244169993185028736605272606806112890076465977564475781084443196769511132068051679742975929200639661951957650567945305005830965744087410102309652770029696360003390955550354180882441597150324664503580710060522337687986582572060059665867606741364348877692447134530572855717892640335389277471116112952390372794189248648094004470578917580534270547791295886160786584998548379813593188922310016999303722551158359549420962290915901963153587376898050665282674262101828502504477859503168416593273926110068857617609077581886296056770086133589132031661970171586939766422101419047256327452347224150398332038120596969360365256401931103624475891900787697783171291686807091718020719380468544033329085853422065266436291531049527355560151563713925539541339476285671974038562205133819998590202767327537545238826784769250231161746641035363359394781045454210017077276412930672649340149556957173148688843539919555438761291199289104596915873729437753082582709524727719281096182821326098252528672105860452107288665111400716112403165008014298026882597372925396756565775406597702998454488294071497815467665946256722214247124793873830134892578045312970447406480436524096670552298086267933798899597227806970937829742948502731796844342565603100141078798162681907544632737496734007732370091193296031536379448097130048427012917725072743224273283708563028316188733297673080685246274514337017134570218916274966716365466116587549400914017410312170225710467415632721721454402487046479587780148352990024534973158944166191249682523993255302861103179587317818653493544271627183204647943810450837477391002149346976091773295836037478679986772728267998756650691042385725580029551812281578457796016901370952555775362698088298544705354062983046254568818660371322944031527997143821225013816528677750579187633967260417821987613021545562409254639311762358282868925454883603647435380779451349752157093660428546354692160712436579934744353273844290249255114077314533834018603661381004644429410642349746073545715597552211445391714040514818417114683835984990323625658825609829049652012752205288232880849257865969784782271741548979545164404946284542771019711965017314610079261484727440680666995528229686428394818934017547132097456884443444461803021554758519883905628740095844938698324264192372432515904458677823813423022776283615265774924424088479244492818669775418594959362440203762219593119394551123262387643644192915946091051501651458550930143788916850332567230983491406747448758901443318900677662348021051498482192874234201680057577502408869628777419040621516070084245388370671439195028487946888854348301967108095960345972470217084448971320304841030813362416681793324277008884818974331687172350223601238212157145120499406126096669284019270692871767534467335870395727716878876136906651128344658776882589124869785987589664524531907200367462381859792316849705990320338076598973369015064082232558042109576930629135117370293423308851175262669506475337859019483958591924623409830577874766339222456884172466706440063684566445742299714187669057284378903424682069208518884056374208817639171850992766681521627027155215202971878154526803441722017694637045447072011758346847950455924941246749836216244869278150954013663300460053017254585697680493134695744672412973421258001827461518971155244518650732835411389248089550232527199324048846435702618572748809302181376389304521015468090649332938554553364935630279306793564968296684559982980259095396505987096909509896702148743382748119726798368005994922764377370927132164069038932461934817279939892608632374052882104662131969025875278498026759824022783319656730340599748132299492258287642638533354939436131019365234785903753376554648399071592121882107354220098114132762937734745926554141593555619492588751939816540078844137477354552797839899100499327416193767025599894660844757343316123891906204712946294317942496932568560434725277241271965832190792156839241707732785367317279326724294560454620907441572682184691757360675009358311556066608363612395756879641684753948883461660000543973521270530629935324965489989324231385854257910130706023667753146803482705997487056094382778827177679862552608904450390002423058862619012308094100067283460212717865585581517467293854103411020844362038591902187046351905770987979211096418664939406997924325546144876061115437838645392217302587429664848316998459867676854841099892762490069871266519260780046464072925222858900789852485858294868914107243471386977277826431505380156974447099822455734248210984770591033491920515744399795478642935469646193594086847312548578322732167059708053284297511201156563219574548531354514255378836521680819714938415096750677258134688006926238283808594880322414243783387731686380819044607143872753028077376839026004863316314367520496853341282413891676144120630378672555739480306120611221491304388772698293976251464955107879977384624722163100263484085757328824734155765224216243840030644045535386867180261993095988572905433684284196570556552229128881274328142390599196455187504488488665484557176540061653381643055286013036699968634282926708280657897701227165310120626987385060328986598709662481967558878224886204770708172468970397430971010767883217389667602959879434225365967888698503431222336980197203480450206945996296565090539522233134952409295102695032423611288348813724583715022344260230996005997549053635207728154107604769626872407191732689111239351052297822954085111855112158001322288274137136272588240797580190601381607340564766084724433724761968151647382424906228453994113996276482487733763973471595798787307286615654977613767340000327411620988583706350030866087344276205347281048061968013390697218663596329860122949262879141035155709732504378871649731036054268091777160843202422250950873530661928815205743185047178305318471278017005734652839795807711407386918721195300319650285524491740949650356060117650879063971830841325674837187544111035849284189986573627475214592333480089236391920462007780686179701947293093975465502425740677929480063237508621731852336463997449088508467544000583219710076001798026360599347412015315981384802415136276292589279594586832808369302580086966697585811085029376410134061543669574188209574460353007279987352796998184490299941752584318517976409452066987505666597736035150057279673274632515762724945256771545273024428710786536263356639378186570209939042446080885901358758693785244633447562868059274031099173064901142358127251438826042304305599706494983283026882037968889259630010612377428686138643326628426044279494808684217549938161016811079415970696799783783949511280032765924905700016283793389055513009327009449857334971562440633384582010246713316444654005897472064906932912863616572984716657273290348564451964142377145774921586322010251443216163753063841133096776262485111786304699744910677504484672362175129761586594916957029681567238873376564692515327329736949973520885319657112369630691011225334799659926633241177771005705377098762968778593248196586090606514403511997175522949343381099061406566931747166099506078603480148161640950758291440487937373943142960389478169457164175133998780809328914900527485027191317240245007839690489808951503663967497320745872085112875532499760649374000402901970323869474420591298761955176938522074164893942125100632474587990213044841709561357708710289684800689768187488636929958751668015059698388234466957635009458777835836920182203242058503601761094331331068865849894178512904609755817460548389533306582040277467195212717705173435207236974142349284933468143521513234038957704469617914731447688885354055548785915923226722449818436484450829519206137952342266104892261863635232621083261919606451119261518407224254951811751240912663980142776453285924067306782336178105600222512827319915315863611610465573330115802057540010616136976012902293630632719102061712630953885043026087247144424973723275658929555667289394159437645603962746361326243810537397971520822257817172986755057804074214548454821870630382462585545777038545423102116080588457720693029966127632346234543010569351038864897858091665769749016056680577984027648717589865007804771236436095426845757712345089141502609785600587266453764501413322786513065311504808753361326657676456622088893465493883592829335785570439839260155563130227941201364689768261006850181980435070592240080346906794986925438782605818045726029522109325143036366586208548235563858876087339654856295621715031349330947853410891607984239009544466031214877186391167517256259695035741180381867558033615470635094422763103260294777752242239763196168166628667633616402379851102067099096014031124621322253147968160231421509390267783878750940344213060340393341897449796265705679217861580706880570994999747365142505454840146830540961731681775644817197189168019524949460971912558321982693887204013949543237915649663677068414414839623797061136722432646574041072795979015838340178985947527964118856592818553226551602324772721673159005097042927690691298827584882973721190415955075976057822026763924593965892504499421383267221781455806607981386627121045094142995154663135623851729026673000970882855968308105859408575950063299084766284723950240357010306011698140763831299150591979379817919109933206043981488037927943264168560415644412925926350087000430419905917427756646583267119424832606096621027441875055947476763544251861129554602119461092871713058855155671497201181707088101794507872086967921149439715618113055578313153295584160956463779275739087364322111267882819813809469703848142416863720178168028447207711512767028253038617946501471622981295740236233706769923059749740316873549988769640902151337315726966711031044396740734782917999519201430603389171391235862907397824414198616152553549735373360447477522586758979431690938799918960900773268196384237997316959328474704315774658425554585767514306719330539435543067728048682917037619866263739213645463125142015928526315955576172896859672844079970540391748527302517490431887007382144614381112037664339188665925261484932634603161747254235849314529821636678990817481995978196963834540140358555040368676527700568282470757278711812267273460529781061519869296100167163173945822165922926279346544900186426857929926391652514500672333260067326929417749433030777862502783647671947879302749290638505646331158947644182145666857011622012168013349685227544264416598777973276540571568150848092144861483996969993113902587807999499328598084949358805120097077611524021791329795035851370652522209016426897007395653866983365760431213151838158156033944170022585781313259141190378379353569066198097783210010646679552494964963057555172019598862837671294027100770751304382353286142774634373908373628126550808648562202569425140011097808826469905131270090123854669747203242712012551239392516422695762411127298357503953234442852795323313387786852398195697754829826532814608582367293605507661521101703155427504421598407125527319989684462805471267518430798569482818413577778335929488287385713971800483894745580603760658438725836498193645618214413326053305573639126377195800177569266271156856140788690057392812301986860823683969220571097038472395164685580241470893335462845548299440052116577497642496888479001180523867541294810363040694417973336245930949106838689460344555086880495427207479169321243385153861608393287163105007875134387942309292685066378996391923337054358721782880567090865642104467100818762713888241736123550141110138173699500200003551457006489130268684217278653974458328056239729451602208919055276359115282681905307961007994147576404014108995530495338925756879546955343085809233974669030209565760235648369248166519856404347394727523302975558473803509876992397447935149937426696982540761690526600431044810763067193418252552955607411176687169958652390426274775618762708471768535417848017473341775011179103530628162905670057600427461328475261399403832179797447049159374135728424237837665774988607770658222698073797929876527394120679585385483841511496616007802338929857011221495644191470998941450757995485678043372055388226479332256080058660867106461603559475676715295033865465964984867827837365940354982324171178597420153436627643416276263868210080819392376876001948771128523634453894783247003417831066351769960578794906618354203725686019246720902592214205317295763090923345847779022754591040596119793651951871607710518648439785849559058980501447460356665726346694021209825900448045855587734666220508304182585888888638533767746658779094275314727426655148176650731487601266820493997991264895787474684970601934253943801786510875931218315182737634671512175852958924989753922342282429767066079868921062587422252823668772241387916570985426603125289586101451873646858920431994133201165108462125064270611523647354708750560356844385853556219586889615552900347863045158419827346270275908247953478374350074573234449411856613956188519971840706890094625163062898933991538536406733748549511092929728316847193933608435563266917988605181223674249646852050557844542634572817324096212325711318676554896466350074340760506815703600324453149665094070795572993535349390574040620434967317871182818985396880420488003207899872213650536353428566403098168063011827993657134451712720958600019715040279072030331269150750062759460532120162112772295683252907537256926592815443649200023627677610413220632967076791421004199043675454632407297734064570560053323846523564299063873735886275436359974917362860485092831796889192853015141814423523982472476796129618624501964103231736872118773286267195614048706745368103113302471040739182128517570993431224433488240361985063283531437144377705861383662467164363650981722625431138941775334241707114582378195278067546960777159526940087462569729691099108254687231986078563652599840376427069116381132216238771036165788878509900907455662311803655441363076678014472459754176656662688281816348336063262534316221506260307750788099981938494237920389511385260689290356121189402541966380119065366460883054302841551768878470878295191695864964980198651032189732401306123184128600702098418701443608167100902986952939663339596292875863516794593997863504344934509466623983710805941594701691096696259525228953740681482755337139367484084380615597275946623011315400991633156440726465732709060173043519217596148014892387630124886321616817871868670872993521877576159598142438124833285634721788101419963094218858228681156506085275672978650773467777959799972086319973426815450618626638279406639596858552946698846815239041341373754919563093058603446837652624765960796600818155970595491471283064794960512925118076676382744162304168284290495914221676345969281698042610636692701180294292791931751036021305732893986920972553531540289226837995076994047671320973566571607213642022206214874893888154006623040700506311876979895823796182594991814934753086414443847670056462952577270550114505621049961099456157912520752288182591933145721234574154269678939898146055574447313750858898261680361107662926537872176031113844469928741218208202537890824189688612275133865875711466196766536937630315094810725211056812768806867557230934533827798753721562308433360503011583184953544485069964955063349178628950351905142904909753886807556138535708648004700747802715059980247037141203222496333626821182345249190344044805335780444297414784743519117119323576377877649541122492674152790700508160679382269480618673766023084556169374420943723025429845764043141839116052289841030946369706923614284882371390603762809470256258259713733124261088405822001225690770573162689215544337509002350172956892137292871774195687288434166156835617669223367672398662976685021807808571911212618224986223035376648087512041620503817606252271977721439788147852955730902974832715819844045539264613892743619154942090761397784932196643822889893362400592938122765717897743755570924921313904995950970739936357569080125449396512439278424773538912538985670867841086999997426574309087106841791506184130805413956047798121335062843071207939300203897272072636925400242356911869980661589755467255702347868733078400622548664466595686327511995215802385402388256360186250419310784509011403140074090761847907764900719551579344122148981294954323032972762821934604441595035713100907290154225069864310958652850726053950328888853153935952432241740805714774204207518273673187078469596849543969344885540664196659000089234872572561039030530266219785919259613549735783676784317412616548181276097264030997286997061289049231887399953348152881577528536940632805227544594608883213457013305472775594806337740986655564524871486228785582915168765849650576632113843917042076220571704188302301989471668639863200282765668652958322492749691028875245633463659713774330535959505733705589093322379120419104064023434990942768119333086027286364886592318670722202600319211558133093196762926383561509268648528478615052900169573714329064406056705918208701466099824584048686947901307470079713039194688100326486486735035894079302390236121270168283721105606561053506163864438862947647042617834823589600127016690013082856199196276360325165072585665435115432210064903245904918381767623893610939701987407229018380262794357212418804905332151284307236173933443823555099527375931167201150376763995674398056662128047806266429879962146497206705076289157604256290049249356236044279288293754822852528500493727984304647736132398155161809007578617058922409919857707064706655318839159799925401697389087407199207432351189774897765655133623573974945709232261866890910502369816247007155037947401978088056452074284130072175637884006677342305660959033331219088046307450008065513442915968775260592039193488976495211529280895855749383747074487652750717345501453385105528974082084246925906392739542667882147135864526412402418079038216317744909035629319393144756717305616526526852372712948624128682918172022334984492105509097920183645409467665955186028029881429443937966204481018803650617182490280241609589166572656924631212805250280818712796135549252498900840532386157148549069888593581245013553648193203969035433579732140887129474517103458165508408947948787584361853672332737096891761271790151310843981239117979967063128392558381716265616994688555713806906475622008037451465087317869520648628997080128382405048427484072545267307726215501505436834366260832475430569305329482948638068980551650703273987145176051523858576362014456774467262174202897137459376272144772873582432753733464462820528037036735161565694036111338097619401063810450461168685096748780409804476663211739424508002092175387826298181530390829892951165227890880146418061801468200477197986782712142214235874985340682207118840104581627939518520898413066351443930127540397387050589998417299785387981848816343604799830212552683275033928123941722560433281273045828530159424908681383141843644693809192363960969178683222333433790733087563764180127135792156614095286167315027095572416482418123110234065664793040692681594106889510040328487498668535762482999870749363325632644464296964154131376848972508380162786122666032928568186026185899261551662359638250432109745373815125112995185410356953899617428565393411705093594267464209022519049311859331346142050124058193535614449754986562579296065950574948439824128357896070562758867053631838891600021434719983184969273863925765357019612245363890394173917504259653750218734345608946273805535110483317267457428069312921100148721564265081388327975225289868100435843012173395745772890956908760293998942319577759561409505144702652680212199032716727693088921102864587096143399936383711407673986163370987565136118342577564973278207162557184221836855858385828457337715325361693615487847051732702053417966823184517800586661702632011894389103825045101505497719794489079074430400174602972744921454918644147518251615934952433364465479242239989083428435825041534092522707735618483821380869631745643599290731992354179555460391967743355765238818118580417140138157052289823181233052597879323559949815403613087570415984380479808461879850832105932796276605716621133270189110231088425703214842463206029353361744760882635707567792157166656024085781831433793211958126810041202202045831360107612570115992013258918455240224454410216224767368264809402735287551185215209751343316760043424439545229035471363002602550409961935114152195034458401320556421555664536243754692934769426953651523552428492781462123599923330679666679932949398099506576903794039678722340961661851388191423876378760322001421434924292463094736638124163249968719085466135263119876754277035157727978178232076114556487438402079244861883804705550332644187708881009023690447108042003356942394416413917288026103511488622832366585898098056820871876542418108783667814201679584982021344488672506835835046221226012663584431146009539850077446572742549063467176447494820675534365686736681869448736780424799751895155237743345021821768631635888810647551475210380633586219142908631336444600654029464103307016175069188735784547126928758294860936086291377318770073884572265730855228888277668620640588340391669506385640384542713579875052393745870495407140195764838190024058833245207056689401224359741805900577377918867871347300012641662922543340533034201895350622429563743583142511678404413293097646208835245564159352038186582091947305089906247204211296322574403837743969978427531962554474482555980394379730680723551342127729420243135670032060304500115076909350502701384801305234704610502257435541142026835337221334362968780126565519880893485331170123259503083300747837915918227026333575594906285836988055565564386786870709293398194452527994545513237530969616170392248781222657505201277831352318990654430402757603643125129738219091439196782472227120283444296948345107369881531931888649670841979774988089625258385474561586939720242982111781826824165653416206774635399899967580450839352510866408982976170031238463137428859514923850998588641213978297228351850880784797600080172106926210967812262939811011908870075903873060018513065260388406804587563872044347212084628639551615081792058572958886930277582941631249278081720269034976827646315380652854839888170803953772936191073782533525729680851254711246943489030521971033611608743332940959528042014604414577565130394349588955273559990576593142258037117470664317963175912801565587826865001727482200059935665248016823328706462723369138290406576413010105719975196680429926835472383838614088218095938042139658071773940716739829345323956655701802332557497788026174433419561725126896226789654432849278894438916768408255883409171047831995011542909860912100910333185560141001145763493553939717928280302817734100328817535608479915782588069365688347888649213645396712908357259715233920955400705257157544634391954424598968218079688653162789442789179922237889495517615902300170347968999081055602943494058719300620207493491778226618934700089486068620981456554027746596382714001016899517256156109604773288891679728893245018552739878893965154535504378534883788043757183982646345779390125438918593804197893951035182643710192142723092671666186673609888757312935214529829600779910931719613113319247726670476809132312486397252800144829553638442588769056371683746144127534132263323829820328810401257219102525310263824843666165691375653389310652600287921169746001528878151008843926141883895826068305378947769236354603769407668127573147833664935970284876925215520973628738328234579489197841514916790820452559475346377703772583545196810009501455386567753849960638532912704113544866363800004092404746428883312312497744606486045279324956438783803953068691099141525509782158727429578862092331992024819455623372897844554677826078493028413302951027005982858006531324842739596925806316102065621168462073905382046269379213655102496968570647548034462871804185950496265596641882793960698828458423397311570166864015443145785517360676885128384965135617723207385120129927875405366867562488484564947015683232432887107857356295445873513608086661177843083347355931525688261750475557194505398619564527003541246388168677998937785821102294745919439209100988746309860697709168363396949750280596059558363479463116936788849256206813672896336771053717209465580845153720317555947991842855118316417640899663322818767363560206419359426024135329712793200286929409820518403895412002536294861162619786007849658313347799998847756296114464343659960557111498308012967639139546427372899224094744293078687528099304714058848410274360956422399799802010009465786038371630340861198314617567733841563432101564483668241872675477322656323788229970601058405359517730284467232802874891565264146533708077905688363310316603769358724780392444610898120239289258165396160226377546996414842020248356232117575105074383727165981565523862139989588945328518638262420416413410663820367694118532173944545225630936840241446037293753622409013711027340861021846473192827915496866376071589660584106147287950263696852987143513919333837785662248605265963601824478779849511976871209501760437137130180829465858057097119439506894094667785459800253601019463884035836689629270180561221611393743847321253367165679479405245025188338557604836896547655503685498284512298347920526798244607904242729687241220907503780200350667221612012171727145636616591642060623012274219359667833939396276897597827404744180137360992101173863076393831587995836371683279283147742601088131487563536127346424205598269631786283959185116782171224521416705634606893150338833303420510352875504067053560192666101274398804316837571201194584955824589093327221104616758539689422551231161837189638716376637864356140833906558392665032424974022242943733436107775333786775200507346209576118711644364665087771961684277638721980115867307124780620258166139650122400959716727887617043900761605833327796905477714747162163958225780201383910293113821903471561217647741805087290552357377878522547041240046191032541538426536471185120142341111230187243933960409149025243456000373088610158716295535047887234994599053802569096430002042556176481708066944280213895584821217346780434487776937463483420348624873107619579585913499489455045950755000576393222934091816038844389194885285653306218699375812306496814713122580199930683939359353305124017404879992664974437432561211864695218234680110805758343647187817754552009866582188535900145039606981144667471958043833535055910804866952360899885295522119951611596855969862347454190664612234916044410154626031703723024092027837339403719469363623343332979119143538656225835513964040764990722869713160490354252150157034088691621320488001295520934822777685308557717426956865848288177064527387630306828882241371816610940542686094501292535240991548131828574229845553152914297054119777926186160099887946582382541113389411384694310974259944672134869061230947639069162107453227785208535714001175331627141042934078859305907030315190843894384593855579496009564298883553013658902057715002893786315437584234417228792532037241905503964505265917928110053539272761380027322590755217502122083607066584116865191455699577648869960173448004308752574215463117457910138720152290933700485512443499700967839167204369343450673610390245665985360558785543833402654727527794249263856200334067810551775888497279411674972451343491906984380586585054839223409662252140387824685035490482337299462682611622957137731269879823213121515333484145316482869864065364788852023481543444606700206836102675023016624651753851918994495398819279673189399689365140369893095964094301990176585065200626937584819423090104909138967343837488096651835794734648711030929958927322461272424528847941517775075593708419241884753091288082642571730556516544356705067202544088619157399222635245213186672155583547809442489554287431979038713245510205109150559465683077953694241820007480915441445713730675175448132370675847776613782462627966879303601888670475377894620626752923337856494118698680753634982474816365420000048836289348422986669542751386609323373531978198193125496305585596142081534482390075770334992069303939783819431897943614512951197182457389785961647137569772954962547730351529040559325641736394495981010570628947729623606664904378452480192431598849039744641397795143084429697796095827343170830927213106011054600194480622490057078912977345525830345781661407690177961835531845977760943788906543152255070041243296145313854464586548308206630301765031486951067619850316893597116708741420410165040307167937567078948722408905852277676437925941768409675538021166806255176528597362035679849969504233648533473055245888180934214001741480990904972524935382870610164143978713396637200219230224050159098800319020641893750149023389259385135558862413163728566938998713212235637560801087290036215814274673588475933788564754942621413461256978607679368312218010991020253316701768140845048618883565942204087015615451842841394903666645857722644642950765998299521691035366034011629435955276340778476694621446480209443141535576120670045756791053414230130070083983507005365587878972016670178751525848481601314930143578416250318476972361375033760338967713686332117671373750660699573743212433178536719772437322491784347663262039868867512087766910771159025230905206759226150409510951047556935494156032263687353065962114101555492024344512120304875729648819367695682314713106286511983491953013996392578934920882541122461095786743732311477624176407756683848153648197571863219516242538033046483637733081476565670613297708796478501807505087180599518046096995384785174123534167248701840764890480002971866515152067108787367891529639190635994430517100893719911556710333131060709265215423500643717939118993810658490303324234320016700352865027849206969935224306944528398191656774372837603974933680956568201991497368018861724089350311476655755124757337026767916609204472938811301469842057785602210208298637211545457747025060240403005807773821583161057663524948069474504303019610748727089857050119368663256323345337197881012511406412975685466895090070581835509171781674457043663519369812355710423524886239071694041297770315287827948865399103736137360002522135680049269044708885656220415850795503529433378658414756965336168156774017440561916071028909916755421802107688855580074812067663552116981644682824642794497020609930355668433472645646964316619291693436696460269273636378952757879135742138251547304027463378399804015980423106459977380737324576637251466131243128283981018547416461039596806892165422261795679615795428102062305204298824495404489585509353521658658657913629646741214513929540745920412790900533398713215711851867109380523835048374698771744916024840225838262855743001537232254773138982790911989885652924766299122629431168818547246796392187721570264743359845664825076055727296806020422152174427548252882549867894024410005439738214857596762768934470588002539835793323697252682311490705927286872338433996742636519221652812088374291739576579841099414129665744591681293120216574852569423213313134215557532667264938466975541391809226075995639035801089939798325657866605990207787129050410726971842620685160229686443729788800058332098536386953454531138594098296398519774583839179998193421675471714040341866860207676510714111592902590048694685070462936905753993885119373556766986391021493250949323992176178924416926849461923985667474260698036781484842223897280904531892814609993202171514115390846475329443306957011626537125226333105365061091686897051183530988565962658063583450264296047962059016320064493913858870994780859530250568562249286764055270554690490593610527840186656535424863236091246217375863305038269917358943161945635033670862288546222869410607865243323409135241013264479093810431094891356390629429701501006863962872238257058333170141709662907546571297588456649894109500594729300803880007106597066405252011078436384473914363165822299697042949222030167962792383881072301549540335151259879057012419759569176469833059774422354114489619664829642150131973221568676185387724520331068553961321049685139358235896299055679124415225742243654596903241024234317525866253371727949514787594149524039168605635050852763576799108364518805401695330589343384143645365186632297141977643068645698826693436294548795912385534525077320610701044763220173516780471959918578236834799983912453760181288811351105864232029108391662149583665132820663552948752475594737289845680479315576224818329394371476784186576643921703239426273794366682812409217452162603151883153531262176206492994923398912505808403323135387710430008031020566755225599941389788803367795657904104364591471683173944855280085679496324566851662643548069430515295514276702795281632998969514090632664153505499421908740653285288585163792257213242310272611342018957547223619080322317453562338054728786594301764412389242817485400716478211793439801777033610460560898352958561716199057062800338155463432642488409125814055405616950752548670708948145848679169039534614121896753947522852187699263551594543479806780310126220037895195275099702171129359718152440977215955204630327490953774078105660653928448708187244793529135135839428124293219514433751401867543998792387764654167993783899811769465500467177002451041493662727344946556146080068648669885214245641509143180639872779435596692767117134382435303482196667888440933259563917409279504951953741252555895198616105764070449470584294966827240506553265451412604278419613488030039756900725037404798066739164391160650757445503717654928466801478071410767848335306253287946492101005226642738876351977698200157658523996565990392185436547034687481062271207457237616414509267383204691510597678709732555498058410677840059991124799092472773966549307350490785450007222001386077931124364689238358208697213048517332145584658672432182509053757515174792715421391172881551485994419391687728166032469846215997015137439872622498669833773220374680896916871508917245125548807845597289876955341001928901157480776928645410689382138895294706427624079633195909038505604876273616382804648082003189032381037402185477404609822090060358546732765848224078583515662257656493319734418736303269005209629595456818739326439858554550901631951760302641490914970825929424576264860309450622532256630917719399637848385847536465801398191323116963915813836899472285548700990540021927264353940082319896118999007390509762304828737559662338556226825359060443669937013582651848570937379469279505011751963050427306065599511070098264384458995439629518669898820913458366407549349959623895148374642797249459359851593584036174092353637570719925585342021717789884720160837951082026234740432993275680624909385402171036765576421575968567956008034814613245563165841831778817362120348465599879946700302685969185257818389354654647870612246262783309063912232904875723078471329857279275981595484898774619942682819939883209727610761345752064776490574742001167436457256531199120213354739747733325536469676942200112382681248569767538017693529181745799217221991591460305372885886199755115463794260336929056580437380109863702122250578174272729990312832995540814835943912740256582650679225362666337469886799319180399678332315885940903170379643711485719548823532895527207982611654892361348619832253817487275067651616142201942197087429949644096662070415114752007982193288088735229870816655931759834845870035350802112042365902323729697345254393127709370653631979248086725586526206648638244106371786110218911373289925949042599259964028624189312606325500997206589479115791249526127452784270002327563893744411179742899762626573958133923372637344928583462930898023616979459450060409694232676645541668450808105249669661690249354233488835017917542915535269435764628518683568728292319296758646185662717881509418720265729448382190191125902948875748514489420661573166234768283562989530410353414418225986101734909593540451716829837195725892372366648387160781509552083493814134309992922135145370509128406846256758157864521612646370927957023114177758337464412884135590900844269594148311561139754513858542642091151937234308410174622401167442756249899430611403768833276621159001340058282856666056181839753776302842314474840772826979568910059842359860881822357964224909242273275614836019578068296064571139229336872459682150070924314850214539757833917166374000215026889427125751005513615072631659351827230962709605577109044323035414008200089904104177728348988319570464541275157661717078304495710947732432501919745060179800876726954645539342893400962098450268419369236406611007151308616823354048605245535559652826603529123914501870158815232360565406521211192009405692913635669615791884796744860383547395804237580987258075837043467365354214159950307614226810907195613219820633156263566229190125942607310857896604533841877908297532767282464299179114949789573107984383535368747270750887836175329156057103274063466227215301938107141988066301473272229006953040129687911877780951111883614885008371353518993593149650424695149783535501952579247360480814517105805116518269637079395815532782747489997172485706177358653113426502442440051212356632996313740271644256685926264925706124473662028070907936733891247791497792411048549880930433925008525175595684393399616717528766329391528420088681063230130538449361803474360147497634006614431977558116584805987428277795821990350819965260438784532770239867301798505937791907111878187402230175020336761546021635645577750519963475995297942330050821942693729092023534984886831977484077496548363629436905856015586667622114179284685676257447482758996158693993869267726266800548916292812748177663038171602909113873023205200388711172457063120140676880443570272741134787403615903975568888588066237808432825635884457479554865057914387934798150862113446801371312531619299507744391095970645912783894986932512159433778319147171900879132925394850091238322149667327095655994447870716068485604047299581334994256898947158753020986661944702799960063843213012213998543986031854607325125831656135653836803140818463976924211167413174180335436774829097600345603442672615955964736526527032464863699436800863813731745798298641068054089602390834420811964335789145287234925767865012547686732846116565846186109457046909856420793820334943116516228482297980910615001318660171332527768962874164918463781593255078837892683291893582216908985816775639541168120450040112027998678119011635226577743817249110948646011552740445491789666703831243281633647369698803708937996390570302269669855088576033833777184285461365061462895358120885635057035864775479254447566357949731046314030795346908394643363417929181921854092771304973316719955191755794468851359080918777681886616669661742524509205878245059277375397612592886901383721149305974037600856592425884531062598007323388419110849969177147307812589399620490066457283520089733250106369006819130047066271427584449547419956465720635402977911638009884632895319351125548068486478606111742337546968951999886777323719353664996339692062501448458201021659089473907400777539461528193159526501677102074553244556519950713579915932478602678996391441135953903209858130224464702415159330241617445680289896917319868259731503713692529793312162677510501334166081356134542932625416778287549482808886833824500715700580825225773274266464791144578959881085500361146928102320482640723035257450610747267512938493833704233963602541129589682264129409150505311673807405050352559105740064830436134296451178190109701114331711673488261241542616023760623627178888469193194800829056520489977917340491004717327964466449684229186958812986417770410235196519818681596438874239329831124963324598633333646951688062819585255893276140031008180007741013305660377878733753175626221731314762672556879164437340781156605553110221790595501775453732097718239885506128995345164757909297644551549746939095231319022715526464926749971763034637750952412839854494224656962080146729228147421755895534616374441041741459644354468704412145607991142669304775502449769957063307804818085884575159136193564080268562146684234126608706455312572209758810625973818003799873955175600080101139751508123631344931550881635155558510420872498227499202581537975159055397059661733072962161681506123361547051650386825867655785082947370600488802556116525258033303806521035007150627181843895683981701520135752365062212166818201942726992350991290786587281819130871534631961144269562752050267741210534663480890255344459550964919661136708088106988872255710736029327941780713326995324717763983384328928714798186709473060147416355601951561575592156791631141293880831570401848886355590493111847051118082830128582554597967331230926414476303156555556171108466995958841062932113615604233920508754928847247830208254226760198902493614454189511191161481812265930667570500791739279460013590545981803487134468572977304680698690245912954429250881041666093667827324238385737324629044117111725427784113965230856489128627582390840603368005012833393931417976223169729348578513950236940568073908785920939974909807213683403184839148270341931019109402576254194044681053542649339562553926013076063076633821615582371879091748811444069692995293069763063907402390095656813343992269570551294992036804863614978829474891116250203831019269694406465626570499581385302042442174760045107219300214349036113826289452306211922319599114403030423467619143189957505378152262388130724401796143077794555929377674404928422385569693277821624984544626860137219089749076177778473846888640647399055890474484409654335963047301717790479802202108146506912569230133497090314445367465446659566878778562181855804497810983428084716413703794733659368223392464282847004397182487884401497431895481964864047860952481434141377595384722490187947327719861525904535127018931513560798956524891890744194028836061163624342755864932741356412474792360336822643850874738853012931551659792790410629444091717030437178044971188606286045529431197499010912435572794362449540290340814525641366980283839127147576976547206116373598304082669497186816139907046556503714056538894441291369692741167579776983399458141642773506375889022852156520495836515805787384651729404683917586539588980348466205177701675269448649632573733310083638881848864539350181590675296215232701357873769107268007014144122232882512438278371760909463612048398538955770462293324507069604456934267875214052831956340177458330004209650792903211587023492255536791803113449143798354397459588192584432458089451206984915758259772442170740893349156721903595534901403673192436632100137098246540798591399298561249272282772229321852658345795752673524626626184297819182186147016475630733922979235044385314134575731214751486398318169666249220585973248913161039739589795069412180353693517873907518755816935995025272576515390984992231957408278458699922503360805524393909654625231204962174539504422024339665744187965058797492963783746284847666238105447879421736502936351805090083606091645138224013386996095894172304309348439220296917532807239866377923568129933788380001622932957761937405128302858602940464352678948364983725445396909441628081290777206252491163608284109518106476526585864184224565555110913571615231131458199393878291029745976131731751049391221464786995960195413771019469858314062996509277808418681952785496070382967208225516094171818541932644142074636804283586821545182986541793044779367977119794460249556120681801518300655826415123484832515808209008651573973925104696369507142560585540665539204930806441597061582760311365304270578273523822971798517100991330265659967390988651510075505118424026654092972292057034353728602404676903611200420382322684207391594728492652155647514431266156764911703319944762225693747358792585217694759511787482609921475504732700873719840417015597388013927203290496491197467075112941094877556237172474240989184803500483774903765786257159635849830302297534711992556035166959837741941166137637097586659982405538773707207973453997201660694605069441654822064789705140215458882619764097266308285424445754977257803769219350319551787281034153622353541087958783059736978677345933306426895646959983083456382456969682809339006996483179003998614331906232821536744587508298023267537854824135751189820547866259779389597427076231444271880377408206087956684631210019845696562629079409136113002727966158169852143554752331183284851915077989462251506490051954832080652777333970962518861839903856015301786568503833149659297120275196838220612337387080605492478449662661487070151467403064685256846547178567836452409850850222705549524396860084186933854744519255698123041222633592325803299090680754464567216973464711023232146938450293752559296659706780692649491826721168978341985809028099578874093515419570502359638154917117041943850604463657295329643358509952816190309683650121788937584498885799613899910631318236246524280981098859087866360418868946647465520157909363872029682763505273987139325999817410358036820176133663354146434868926273524668475738251132060086908749593327358185975018876546559536959718360031023606762334551078274629863571317580344064328931879080897437178609471944936000176876784337659720842296901590779828024304184195847791266155925975912094443610249810001047806873668021119317660512531225721140633851524453779404747038323762700471127767172350868892882657812783500711031884619527371147825290118842991641085891010168208354896308243397821776503355118525418853854239008646660970504974691526631840029232067143221618443117328610860728387466615028795417658166199619622132385034774308018721378374601416482321701736347012196056946384168430373260135072612362253007749402603500226314322423514553721072534632473614404992176313144680187459628602778724155662862760909479682426900235703197099958862397206633562869061452042509873038770063395592915455978840914285360699408064937306881848190995251128386494001976703246110202185015103596028771624638901690667280588133012085005213296188933594299589680533290798406180245446199627429830827283622461191128086558873397443759691256865660716603157197193414745375344587742960600776097689380896319042294764067330190337871466392339938791725462660360443226178310771182692053814481379118533134193809805230387933650116953621943308332226871689832779699544951114528780773941732205860411106022357858110389659406439330651013029728491653676048652065396722756122577424017188520161182766501966924419397076789795850545832660065666787717253036143322832115955243945650205812646104402229004911323000727500067952227360263495536566740095931090905878614382597102069745807983326723417774699588650190860074818406417092628826480234005514973486561265955053303366515952539082619323995673746022267912350634697499076608341281197443323513290918124390273848156015759506780259394657207869469732564537916469214235241345523499674438029519930341057848347487412578016118802922359774338076681781468587754589188500069395048244165113495920524493485539108167091518446342807050872160313311253781467630363414087794197562965870093471682973325942163684736297723255926062258635479377077960224035119064328234755757623108672597352025813856564950839910243392819360934628680414354441936614665713329925023548773295138549320699700005168612484208404275250251158392871152608543307659688936473041699972916448400595725693110327333269528337204477812030932092105871543499043874602864479767040752681363398380509668793656418881279621067944438462991302923009209813667900658300657580887888203775634472028717191220270339933210857313902848550245974780932470878554824367735055185114419835438497436925192796885600890445369267937832886630721131518865033147983807825928989235139583769486966529218102963454121162537957810035191298575647973698519237020322402880136686775160968844990866311848770031708886826531537399679561579579528244022606609810791785513942337313267218809549198703367200938242891223369264401764551697072947344699029694710021614271834276286465179290819666761786657040408809137386162936732695041808643005588547536601436918751446310562470377610395123579487842897033203618831121163979518566816010834425675851009848813927663599235811503801310359990143782043009608554978296294748124023160146043957821495079258876719429627895176063973601629963654660196141938416304598611689982204088412081262428757629303927868571146530099159755867322573652687516577245110251886167309707615979660214406665618476178262180635969100254521431095290768388981842243200697795704181600450246020343395495001697743406358991480280475386527124026077953095896238806343723251599912395153362377500650427267522201068047731026145635130218310413150890113106749607496166730550227117785647813224617490363317792402632595282776489627435557673030561212598388350768413425830049763550695885847516765557562196919915978746434258692406435162501958147419736144794954581759605976735419977976511023147589071282146901769196756899992064539132369119088242808186031116472055363236789332451236642095261007393184951074404289641508148494761691745441478561449974591290353949237331589939497599935620329204272668239510558082497400519527473291951989472891730978577606818685228028179210181679633181033717720702412388587268032598934940472302495574811598230514388044707055961799645568699820440038033060184455923580062571886196924975015170202387740254361645082110068625720184295029335170695302476734950457894978240580474869687182825209911836853549062825148899691879338133058884151858881609692657567734527940303648207158670916874839923336157867453105836092263752413036796160114201856163139122047932239338437452719088947699793936166501842482585013908510483550335775599540831243132873880867247468309166997642180825641123581384180843644669361503356839767324235079982087949143814827118637326372255111695426335619367264644906653683138226322176999130844139474942211390502669363752779782164381761572068511910091839294869258763259382481253802717580769280825250673686394150244678240568618985516812164945761494094536152005283603986406511997951232076923353188346506885088902910589656356929804456954124366182440180085578045655684498428857862654172426625474383668982583986885455828252815562688399628836821419954493979851794985455143014290376029836235444916531712392917715831786244885612731669665320213298101602842793141265741889084101985007228329056829924044431135059019646350316089386879845843506916656194818649236696732114058428044835702758877915909412382464046973588400331598472607149909819956361667099834171218213681681358676736303608999851046145590654753136442049667950816116421699947197242108408296764267043610805043610667901059442297332780325071172767895674304641827067456015924687853251683710850356070859975192009983797102262348788548839162263959347374807587443635731715631610581605384133818036822549005368247835063618343455544759402723484089003855485090714328904642479859069828836351632652711820235433817532554386341284824889479976964893035704174119926825574099064758919483474772198332548814479945285333066285715117050242779040167306940734759130275379785629862817700526456140839357188232680151510526859774450687340135435260789573185108690723879227765656969598388285742032991543319957113632150589241976833895457740807752753380946970180461038951690517483694250686948041202435912720263309197894704037493816628332903812137356832023988243668086272973986320715305633418708417284677358199440538937088225575729700812272438014165169254552430398439152821391615210875548216829109021271127582780482728543494295959131796701548954494505980112309122437876558058323688423992276974022264526412145124463068212627884784250264644069747804409108832257003904831351142147983533853446799461555966779185347747659827576539626172361089096330115209329951428821447891754493364777064084903605383740318034305880290512689943502949169154486928063041764999208576351226206274273245356767687130932946146656750819125793874350953363452258951865757245866776622008268100694721247124574301666466924430017556597086525339899485774727870493170719711225251772967128760714071455886319576709302955203808271592902439123696216578286732369661283909616389781891288450397808348399579927811831932555685160126719979391582585428045520870288561036489447625654171304152492169755426751777797124702179489869825592066079397523403052264146586363857725742743335608867582597750625511885594912377465865709010660164944473514423182158315088351509169504241061015925321196483828852973240974601748007588434537633077664532647765232617751960344211749736653126652277794469912937275981986311813053597046707560582492436549979889120809236341496979121606697597577279822498347859830008439926012176469637363489433440862982495866920659233420114601002613485479465922829087893015532763223514647586991378357412295531107061221493616841919913468124514407859005108835063438042432410381351967758738106153764739195411738381441818799885128623718357506349262693808538679149731754465362998039168577080657011410887508279252828406203888435845722465820822621610821974551805183412544942101454305254471909275623064641626739853372814527344412625454458935514780174314340252282251715121990372275749032404639776473856777374076103618243567829898275251023799552034305769985348752224791474500945397545090384490647982162508239256046585896296657357737276561758627144585531085006884134995998897925035661352056785377301579799209641901727914630394969182445809833034759718698919491198157879139095524038489559606876905412399228808624578862544102108724666470861307068618635283604683081186508498701971949370532628304300610240491417101735828398024118411813984166858033666290835157022035972818013762908895326619296029640230478797565799266729710708916263718373835156571764283005411796900102941516035648162389464985504808379276782078232981033953117915799112434670401479806613420812267060461412957248884221639551188817816622990000586675753488373631975287774130884620365878129651344853717601212820854472086699856807114123509334028352376969849096119427510022164914088445469949512866663799123709383480530379500389703366787695706694035364616395274465421188368737326436953162233532285966562534746809583108994060118370103163002023177783907634882857309203780180498067192562477930516663289546222694752426709525104596986945778300602661627031392141158143150104931083055889510690530044203338473953782558438582745452120308367947191341643028060809756019259099384661001950493028205048163726564078060964042049993194875052391592670765644478376841356450368512555652351828078455274302858675027507781147438454077548829450554816478367839253776057138656191087699064923540259032307900270119917977258809670283214611697496526177300457781438082425403432451946515844257137414894906724071466646516064969718839877267417686772385323057321476130359354389260164756886857821124940738576150386029510462142754308557596570420424130610903357603649996623300188685741291442517279581819796161488576473837208873183200983852796056269328426435699203927469891019166218146825713662730169179283876246830325262016933326860644323937685588445787444547066063396861795089963655716898851399802813715085781879391140062352839158591040500879899613353425328750123549032408580803222929946455430949889329100101581207184027759938752067073494791829496782502316147141062152261488793751612900700901646782748601497388898158589850593539439434405572088388358784303239380223594470557988651784922243087405354117321046316056948898707234438686067029856191366392661222067898775269550463339677340368435610303354518420727414083354865713700524054667048808819873384520397804212059139289263063601609792226947813423971418471748235254022298358795344002524544923731009127331787003487937221660307061382372968379616847312127151028196953240047491469648831624962804144056769552817537790993281661818168747374486641793901387987036147509576999983792189146373225858010418795814938936432068640650621163432799415303350575155378069583425552883554402998039419795814160118093269924543831467824723292664556164221150078428245768076704673254310000174740139965825912876746133211502773415724422412497757332154206683619712009701333235850751542284260697068370636309974051542320807136387393302317236475391664363876426238564092627192480407997464350706445805699716994403366267073780697688630876984889496687709591306725056827025071818029703584505732394690332117185634321915587983570860955741757046958656993573841450803232197778291955896858919607588515768935206874046112216117260538637776479345240531978373546766816502519115386623320270214070512270893847452761848287801654995015836008301314896906026244020723447250616389947975560753187504799489456526722504039381963959609489558481804158142131685561416556444370463621242260588024609396786629819901544828198942755345715373860979163503507708367022404838964241872355777784104849701105265573527113370831138982236147567167753237730314631004543339576050677840040526366547815567945545051219798049473531892207470630585606343056586077192808350459451055241204731956024421259610783181892903250001581863221417070030882805745526733182286670930128156795074598793313129701399866663130967786575907513550714690373266932264533729702314108770476438646993356649043559412517996801142119840156355132446716587123596654965558727333615809163054771739442768363557868903598429496599582729381377969529861898701709842277607702700610752056748882308448464279213668608612267791652028105871112872648047134412445798104114670721855979943772217212632342305623008990781041563519921258858579380580895210309070447909854189446464435642866631271508502744938790358855137128184515493263091955401310514205268557591592671376051342485338993782133777950759347511394799298472287949747349111934383097326305512255783174956594561433509964604182044702065360359571429438480340401757797633717576041335675860306033327211690894057120856923296711198809095034091890070350581681225877245670557970867497006793704082885808194949888314574026390386841764919476121036977901991964947542976388544537826559961170060229530696426341223747700093516097417180313958882286984794154511628809218680230729301873845952000546235111777075230005029393502489823011055091474542618037174905914747406056578806124731970960054474647026947776325390292251137811427538464109339912327085458718232073304957399229454527065166745450587444600367190821908770003407591093288783064803822203525819848479986723146157468882490959875882105069497254873628640440549606111478708885062404693018345273187704760836246738979773546789132757790315366753020092756421809654011836341031763848543562383121211493807727359954804498020879187801962619632333596630274723116651084628651710445150671986682946865688068725328693164814877916071911348262586891804852316614323091329228671008501200856441022267081562654568090250931289645976964116517571567335582750910128761427847387221361650902500452696279164304716185419131482339358810866306629379144916422289699369051435860668342115138451758435429844129239537797358494136106681832297322763629631684035711270630507382045456595217721799489741353483143781556149809933201805703190818402318999067858934828947246870992411084009249233834027884736797660364694615286190417406670848457969562953567704993645499304426586043048466141757402508175845793731781877203796312690071453308543411377274740044605449087819619481648359497840907121409704411297258102119022696643387614095944618102882809901311455109070125852222456573382853796142652497875270122792184156082067457807961846845187138128143185515837551594761937021729798010895483054856671326944451283657852721266516506228236214275912232678403080786047237793302300754811679124656243296410147858682921039380391347810332763525446007931923016578177307313506651901133797622110127824215166133543935479704396852690770304854765267841307102852053464169313895526704893028979414947551197330534610013107425140167592811303662443018632765444078687693059771497737456486395762799726177923392795536696531792634016896448777589081546536864149305368356182894428498866163041530428495851995026236475569080298942588868968224253340049530479666212566381570036318306893538272506531993899784828573567196553586081844244843630646608253405482286180916058519541310401805023885743820557942338474025232005948856910126501306146312610551836979109975362343172951923260706726730534852615875362499302685729781569024782274422663193352731905081462984125990408710353002385939130911104865178367902373544246151377809304106392115958680958706344634580323393043081079687643208045680299605024000886166927569415121044001723722751129318526346721143575625075472767896261664699479190906377164378082220895554295650503033034070943442204311884017107205797958430977345519099527391152853463163228721127083597962060074087264261400122955572008600338850640041015221447973895596531233034643288478281383415465222675603918459145964142899459022078861494862968555114182460733224299672761555871164167720662491417757738949752364846314861125525167148264747928925934885787356817883892368180883030846171714128893897552616470950574524723475336113279327867962504690662412218537903689343877254794849574938827267634409280274866840764715376675574442912278530802496583421833272970372190650451798240078503511206320975825650827646025809136010849243145989289558078526683799239051608103493600325620268173652929889052729700012771823736496537872456512750786246472307737927482315324817222217037128035573397997580566989180391139405239691190876406771490046324213099119299094589511164895628989944696345342180845248262220682882427892837873844432835384114972743233832697995282826838925470434274337259180600848812020835144834760349080394819491967885005007513996682799808043250192732557548185547568934708480119432007971299967615145149806244157267610641099694547437513215304317362393455803987173236917832841724179748223017904043788125081903540778999326793173503883144054444413810364855385560567801748425333656174780002530813393915299844472233793634093014973042144621909783309630575519435384499193087386566611866918051434777989442832944911425981905718538364135229527890737114969230290281785247915615098026681884791989676970782186554058985314831324502352410827995964637216336818774811154483171214611938934526114525747997121854576501432111861308986462320142941276039884329155974397886179900330089093947202370578527023748309872485106320263559980263362954926911018740689919960634794229644647873247531380539899968494694390147498486682574164777261487442662625904586632006679272431034865163049084158190509101675231925946184239559957623220688877048049534357069905039932072549681100183410152993879107615564958441519834850067069841981199880174313651445899510536383994241208661264951301244638042487435455910588493907408586645840017322297792354461020742078359459812310379415300749996118495164462658587621544471539670194436099881469923930298795983121335299650024810951648791088895886335449956798133294809579597722480269232463402063657595707563402648442420722166837053466486101372029341836704138959359093038015882513920444859927938946183163589708816672721728327936916253318609582838615168650983333544326575068115045131526440014238725318600319574743742917476586705403550268237898238452235811019633542049622008284201351204112952660902616274077349411380802912408612170291163367001057196874725811495240187954450262775121176005829563753814365518664835828371270767609253084353115482441161686422421156087995903122237162355153670283226523808555238201952564800215167120746311733305842561311108089456270442709574899778337470481218764994125525413948909703425469108029509766093121034568532398802648949008808241691694892108353791778697524167014115812118836350951472499034768698695299761252085785700275793156546705033421784277635987129157594442380912939710578692781394477853435075248534760437590921463052463374063330352318612621595956951693255649366109989013033525804106664672393884413336899161936855464870197506631836497942711542955291922940545094673873080458152259321956030611925252285831467237311550248175356419075778732805849712134484071689521766453731467146820334428498900606774672660665899106399369759776174773992789303079256704500414242631320461119501004227959851807582396602096747083418832110442794021359921501219579074729342509987152985721684517567393988012008160574672330389299510791906062185337377191617046403524594568490918983087282048430468228978931358587792429367323695682735194890887807108228970887993800018847814608216073209509501775034152189823140819867016303120189066351234058403564056310397763906295516387439940633644622001752372163416691424657120654660383022991505356526789610717362417428725805337892199486867666232722695470502642658488099307732899068164039993158082604494860109281969761288669323285024761986524099229942966722068299139559869923612167892923067648863350799340239814492818178109813315176382437414387534087897074506532822205365093585646163526344345635328108598470917135440430246920328533029306231044507021162933331644576988810139712709270544973733304315284994908779712786872235988407931277421785104216851814414343574161063204350481510992890059394572217267170314983348883061394254661109190624824111416787314793251218467780742722730514976498153332594081385510352335744089096578409419784993629372174473967807446272675111202462894280477219125850718707169503278173686959777650497916898837439770772502093915359057125899541803646687029496052750613253748657662072440075592039561774967500645445719756247055341157030113301106006026307996015783116334253326739398566793784158571445936102714593847775574300720353615238286314078249263045125486717651569866876007812948967173383118127801673718918201347603558511994603664158120242832034802925380219235603030251184500099248991852173676674798949142135792783762125115823428458279658866926778899873189260393098744132705339621537797050037199271973291152144749781061957226382144090640108993059642444817741208764946098526060158723102589692742911690214160209622610960772290185587630683207586148302052377378064564661819270731858319694215460955164673176604912310233119812392529119991347860960569008035943715082006011206332222803953691106707017933156523356090942481196216062064289489212103893472411745722295023848551450455745497382977935781636799035754991462783868307759383627067528710864472017312939147818296215677231534132350498629270768898445328535560895830869468262737681772812496067787490478180087847635157557935583054647088130301427099093493172840363359454276661043500196487398585827532619783243170064293114085487435402167850206505896629699754789012385634059393223065389741364674235199209172029998866012542786880805325087994217378695007532194926321760083975750317761144510901123585435214008613186267589069036017612655964729790493585233978275774670835799684750731309889303642195953745912325590861579092753556435949998191574160897553298797462128667544761157704190656642571054257379365353118513796438731700299154838198129157948410300567801399920459251734999013590493365993248541075905884977592736923713044711661240848749884859043163008365234491104356758915383174290591068986004036248448385462519919788370311165650558612681922329512427756408077412175265795476430271279264570964668030397750441929731792275585418168262347029697542225525355951741493179566981503410549204746820352047036539688447708089691192978862988286399092262375076293117901481808505770753866005887772552321781910083423880488184474107273188739146155323363334520974273820529884318341308390449729237040754590232418159451136680171026147795411398875374151528089578399738433392442345019998140716518503422254588125735134175445331243467007602183413715464092522121187094988128925208917806124524244947726785164513563623365059238878116645290070400101314242379196034932035497715434170744462010791452676423822382055662215565950634024491927330432148961799754276688953738340869410003045590437484804591584909916409031723139181719450739051648822167984127110669234317941983274517772731175432808180699182879936744602234956687127685185300732856303299121686457430230309155167766268741160803795522102457755085171854293629087452423383621999465842821203326450952270923463340107845481951220854614975165372997758719365074040306600069099883952016752059559264006815630402160938045144422087250605862895261856439571561391571750415347702868593706525333358979707040341983778561041739433317940061363683480455106826988014086505186607369838641501811600075228131428811523110534695944943454485327665320060816406622262711937399411053906462937869278005991722829668665550873143049715996976179795557474004545554061223184072591193942770332797596518315093331540449209125463222212468653472789950770091023962583946567701289943406623988507752494084801292839268059976011886902740251265538688737619143045345054819094934534642875657395728407046284203220782599262768451433365453748052765176431788573075292377233038286459209344277282813189438999836115103306630098361559317778975979071006944320536082364863430257249804968546308799998531106460934553999477835201755480766534061743314517235657003783822473594034712041648971221659967586082871874996088245230238344112609869382693945652077982859936257972151512677927500261935219835664740462242748935661972636330350168704678725877696533647151668700374230249006718343357796290359669336717676013997562789584876378920888892167492978230170029249744266191898333588190830276066481450571884492065631877198016941132035221713798065493406956638252498161775161581466711234603925164788116024006338048674783225043620839157130124489824667392973937703976317332003182725344026863737867779304161985707704358334508954438904581416578449973979786268737437004057482103128152124343174551746528587451279262370334342073629571301727298051123346437131515393041400498853863503072878599095773556009510198554910095401388016485023211524505183660685513540425032116984547023669725704948871022560638872065213586250758247762780932750358846525413673544610565653086679485034073029352075422282052623381037932668294335855144997871695309928567675927586423605400708169349026834819921622785581705540660135310789940587803052740795553965916551985248442059087024141015301350842213810275161253310682024145038568114967057100386313741778458512383361241029333076375747790737573598728129316718577116032682639143835454307605105604741417608465798055329360384439294988900228391882511344074484920479028062500198494817372811654281612901432439715882375841448546660497618321959254563655830765716843849905524364935597077944068789667863609749300983206665190298841533788122570296111684265533032644972390218016401487762718927136205177795827671070994496243210472153711549855294199802688239570001521030473808404552205428268366156868680644167472046917249110961952029062148065811955626057621352621741549124438827349308457889020644588271656339975583997496959072876029159510185949888942191492182119990776305916913984650254885026411378291408849890085183949321736086889643025907065997026708263530179070742417915767667302932375082449623236056133266599787162973792102009134291218528604339826329683514619798510427260278809081548723015624939696322031879977106070346635166977515502207165434467822992280302014106858263042332377322606211299100106570761757033498339287947357505169026856320909933997292652879063404721418771586224678097098034135185643494788047221673042996347670176909778050637669970850110537692205243646487447766488785687862866858484387997996249241434566806085241137785053083857483036474905617227711248909836695349741938446031316386877781897628190019495872334590452676514314982141021553437601012416733800358555287668548318727026146170239126635265660533710789793889969689131702983011452512480822331983240816150870339597334492000000972216506753591384913289749441282788650746652790300041992340934131515183652879851471899653661344128373846078517526326588681769814833338898255125735504607518298642072918446661965360218882557437437999019410442463747460906646716004264262233299162133466132388948697545136744821891316813869142000278470185369268590146180233565043303404277569599943047169477008588916611479201250314881504761373237315596913579578738839553838105257574099186274395618703722256048652867547800935114982766123281292049307693506444128531279529422008766892802494592289953285450539027397428291451039824519436234580500918002196406635514913353856018932822583382400144984728303577564857225759383638821868692620121243319480075180530306242645018086622141262391175291898525390444901193224703933044000819157746304279196379787252764550800517366288732897634906786399454062698238350234444965318103723314155195013506463158684144176926045151857225614825769721233183663864375593131662850920981295014502693360303383380060703979212251669133521451776596613289724761929674375420449414466331965744058330483017004712375924124902070804577032587070810293785470259864771388020800224401126493353349080435525581853625884711346613118733564711089507679422584621620112680641496937058094321902048068817985853169860195954312662635910365065203264011233179481624850358292607709029741223390925712727534602821453879741087936909358910749399577289836343495377254839608620432840876796449728872831126762645105131154480803589794038103376076176555638249625239189439562279726284274167012107886410876363053555305287196736375036604273936295758153496795376036757790302263673592223534409491075371831078131780727023877727729241263570273749024221540405707621458024460176622761970282135849912093592313775119412302677185887625194596373217348876351462942062424374741181468564524493125053698795897226768957432118957609541402092358813329782754090494768926480658534867392548580285065158686691152281069516433632522217679740018498285248090825939498470789923249499632970899213396022459437649275700630017844674685218636259567895806104933485803312634293534529164230254931460618625420524882704611565365561569225343582371063142330808200145936766751203622395367078239111687658607729401920446986155966678833169338151727786507594031198132475085648391856052825538506712694523227159598974088581592513046330112999469924826867986893461751260159155860374974463590974624633994658168244816757046091686409373870765277607531610783360788492854067674193639514990544712239533762794010585435752527922675425558947787613306790400738420072407538253008715871512608292086499954365470135871127630167445637441759457121189671670216045289720273540995079356975089433520026292376119705378739369613115837864367142359109612857359034953792212194400169407473840492923599924636929860950101557636833597003165151087898520488204610979273709322861213304826813125380083600511692435602033162628023032041264701861583107074908611041862435148481755559886834546563399150071812624933800891743084326107287615216234250635283003412154310995806289786781930418174940736660946531080480946372387963602425008924903918063249426592335922919318089417034752107936494155233564383344016158108304241991457461831801065275539738212125027692617855907737507072597895162096684530766269687111125434603755941699712376465712442032633755004111954954663482037731250303645127319702308291418203138432588055357068452917761827529600946829415996821474503662692650879803590334586734097613840703837201717744677412220225900529451536523823442393490783587649845067884642731018225321359058168771507683652078850232141620692986721930155612961531611004092243772972209455011114856193198120268539381511084060424788804090544394470283350497850970469636693476400376430025646556495254274830670803551670746604470311167008455683888944004334147399769011142048095951523377185542381528786131279350650191769126383616391586006931053936314886269340101655004801201820560872099080710917571697326156986415271120996310363355863744575797217065766599235840934562851590346036650773685100839623450039930714984833389548324111519253602171752448282739131894506877644117467818521962427724513289685450463681021708280742060153169416134492144820981652452786364285952497298510309151076200647267765279155261816581308336377398525365460692241821024183981661271461818722080057586367883086817610880061708370807272745856124518638140577579162338346047177069066181277561080510371503249036764102648087812240388201277020573928552218259584919447448201974010119176092354882610889143404765364779662466798702325960669047502038886075492757073289482402420534623230897265928403880881891677488621470928586387095559927650464955975711513986041916056933644662935950514092467275955883712971178479313383294369215793946982014329987684141193015724481790790915073254699696571534569030724239193464218240157629119065043856377315976249423192049016161028320874633550537340396723288964905246872595747461779353350637300273949458501123053863054743391728133377999900361243562801939327037965271446148121915060421327747344365428687546505663367707734793177707508911432713491934903094622455657473778603581935965250778829748833553541174455679948099879598993394052513893181120691716275691577687286870368600611072167081331465157254738909697894223296412258520362689666575530438362169363231775889316267567694242872699819483201674775284546948496680211253697306666008159757322508942141084017989046246871723011342173361693153957341182716094033712327445068246446164658215060229187688394405797607180392557600174399673572552792839071408634240066710516765494168544623096998211105075163700603402654333341303250536288806807603109340916100766591214048980383694025244418183438084329885918934963637989365210403610045808369298655015961217531184080995848952568086400565510068579207722714357283925660296508746295186717356876214883929410770991721416390264050263130626380875350075869913766938293042241462958658261187328603502382518137738293669085529316880403198164089002049159290814683949938959519265024521301225248304446460326003160880903980135431968698245244266371911828215390782764340241966508623292563433195148039113046286106247657433464848955150294526477287069251028407175630620227907945168462613458000695532381955302109064425915983515463749401650784966752048715603415444495739235884730410485163986548712387197961820085817119649438924066006016264765259018220175715663055550432229240190217654998812513634762299380195481910767339779575840828118707781866100591628252077158102495230510058921313717095635389083226121487740539013460632709537402620145236282724604224540367034116319047099691831064689570951125917761763706341170342315085913579064397098608553424102542093007565946646148756832659179555200867636962603869335824439957720195765836088800004790386105766644129369983017644164640905301657546755271100408074872897733178999875165399055473361691471347851589213321581890143917468392689905992562075289422535036947327675091784031802936453051067804565394149126049458586843690882904879446327071976797418273011824697560449930915529735539133051638010551460478642728048896328490711764949453375795062087072151001112164798802983866736951214945684089759093669069738997981070376949996072829734528537970965500222030976620601569189861097427598369660329078705082816992425404349940942251267751215918745636671833840857629538098408644078847230647117083525456568482754028570757045305764568017566916609003361099260605012099535057566150291167542945311384741170135005472336891245740202567523784174658504434627267037824250291869824106095851779708464721401586560542352041461280628249094984344464307580158105231881407204237374931035623099266492786753310839906356932168030627617999585028286226879823087076306483204831834423483982760447382329341560690856287588258868999635707934715526172767419849112443630798242533187093985719775105135198561930892618302231012911722294072094401501193571777523988855984132445097571472562370230157229470730804832075318540420079963948748532717861647332796067642016355793165042851144672843703347094287179393722513731995758273407617425005807419077160567868990009006046205600030349788123857694909336190242996033708441846792144465933545256542951687243275210370587129195041360174690833541486326175464257199975747343974280373656134937379065930556415222389280198760367417968747899914402994102146380867643165762342424900603774357071997719387334181345127248147694620041729249667011064641758771556357156418806424717065772204453825053937726988159543636925644735801131791055074274741995175033744567766514692944143450731200654689238787391835924080784785703973489567856068683473712526183908902554300473256159059915979375314842749626437313425540761954800504574605788926191860597209190207259995868585128098284990588372781828614007154579261894390719974472731440547407333150897837357976995140136552291575754428289147174506303920034418264484121174528856468730138282633275425000515239324096467160338270600092934724415203876822100539176818661558497455075286382707195689048299184551539523045788156536151999845327746352541104018109758709893284626564336847897248994498689196376220599054818579343168401734443882447696550656757417581325608214433176463865421711655438549864261724878543426389609705189284681827626697884911866111312852931928649617179445913469520758007151434686203657804433356401344040269565670935247894078618480990618107511233118158687824564108177927535666770979052541264570358890150750516716697568229425525110076334937368798872890965383240206347235994214674437974491966588172366895575203716918008905218118805261571925636283420042306641885652655910585486526772469860561141637507026149486561539270623906126340382482068011242415768671531103491759109949408304402552884563060727679899697761791925208478486337309837167946859623142031283941979763016305598772468466421585411019839635847316492124605675776562824574990682099084919769844172034312061270637010799912649431756886250223127561408081962531814074249658500954122491074829358228493674616942356543525820898641815640639357746072293891520687205792770245185923039962086595130688010301895157735517237213100504350017450908475980550290093693480905506464514751318813844046931936625182485259298334488536814241312315972339151928319167209667158945707856755219876477552734789551288195605213456572026863549072056360127198377420812626166633260188739452064693145515607165407936752533088433193580949759659593825983379323023868538226556604574141468690444151823862519020568044652271453542127226940884141918819512260130640881743737602217802570579758139211032237235650236861234346295041092468223899408617925545184566029454560499967188770573131973289611859429945261571838808212712495650595543558107275623502356935375030291738402401615653471891216887576070155659914041707387107448696340976523100873829279049343514864490837069244571567032701356353616300199644085201756840814663145365304154937386179782316424615554938150349612682436132330154158557006742812172810291740446265937650504586338062871581956995058988413489030779189142065730706024234424195090886032562171706872148269528807736852236463589845480896630005907133647267660010198035910384618344081372234023186065401615925810697806935560869778233535639915115108503112066797307720095428369282226979599267055988204022605869596895575806190456285035145537844717144630766013528586501523093148239099260830340792668227936132169734334578615487614070224899429054349542056115674515346483094135995746469988623317758389557091394191935244954947603248961047546362454564117426973308142750954770217962651777662914563914659716735079041688276712716074148739444112632754050744790791020385966423086601549844756458630472944446553754596166511685918378158413153935328326866061130857402867459038006599017036218634583689053171902591571860616869758223340023900052112671969636849580085215648022997379939714023367366619621771222802836509002826629637632350230073209763878271895829960270883191431260775325172915173693034623246297167043830061031497356364819277588144737218300781385914235568287108779104559220593591968804074600480710990370843154456663295867623310261688766319605471411691404263963876934941672630284680657301547021103420244381728594999883133147580878368244241350010893599062633215827625710209626297613840998214765470696967656201519452073658986850091539328281877703038341267914062481488630387112242673059238164424279804679051292439003726812219107930336299755782100074018392994829272032217207703220817705439083039431212655171221913951646446143860453939457932711778137891453291808992465157809054750572943028190907535813475896107705167473045991356397305761968834810295862107981901914000776550058884770355676917101377976672375716139888058780224315659323545749834761728832001597969448401794367050068926333565931911812374446777999155973810508952688105973603578810377301022062561756601955094236879538319233812777503575978495902994815117642267677053858982191028038282073480679356539826927492373278241744584462108932386406589281768314730052522934940668890336204850202270875205738619700441014268065365245930288799304744719502142816033724276033572295010872486413618178586439812313735645964024362768606666779135172245679433617844469828074512771669541965974557977716690547084982693427626461040252526868403466532459257908364468318637960208365430778475534688320150921612397773723057506252004905016470852456539612146568398001727287620300882878450020425898747122147974388318739393714599557425095805578617722926942314238494332426649724184665333310984071835704988209695565860082126344586423378313742187084979408321667490084849255050090135551979720420402783553034265153058019435808104012245850465122376578215997548861950590962045813904486087024049548017850829119284274195007462786292093797058525186227902549326149907658609150841359481292584586142211655428452087659757613909748919517858756126337068235111361263303746944859954419323428590916746776124392549955121697133105850201590120437569711369314568397565124331856894437791804937280227826210702908466982383994035402345710540487722132684036585377065334465114135845963712126630026214452395833966135613583672763930888040303982994727892351214653703181028348874686221771308255534558932703895569540055974431344518235718005884259590182464901789349413924460421194753510764137974989152525954653458891128923480236607053151617494679808291141670165146709204292533987780060069342255695272164683586794820904033695279705836850185099830909131758492960378269325823360998684534852336188763926172401612864534826617527185541162158780153008748960706413224081181067878847042551739646809521749773439536911132493796118102028421777908331619100166170895697732181744868356734456339745388988489937426025774200202326419631087679742678890426671931665272408122073142683325805373353540688498710016006811136235172577272266289768447836635636102360820118814236418805763372883115602346748699337544388021582360683504307812206804641328939777561134426560722783903057389339122412036922187911034075644556177514323813434831930635685644247120769043195318327554089817593038087956756444463380351183097379722432450852729739472671032408258786689864343639625557488313094647479687937850774752556669870460901414914451995175923506546425999826849229745094464807711390082562353713147571436354567831801986710194758476105661266866056469771822736813901689983453627142659748967508421807709927738343727919427756326531974536144304411777736329113292644710325818319825280968703743719584065216794093039948347248090336405064560998366481352951040337968616083163502649456658902120102608933898347594077580170567872198043464331822708899218566365625453388870229010030657767625929738103943280668586785621019519449023052637508507250598757405445805233391933938470808174858477529662341144162678537413444072320123553980728837738583647192141834248430043283938611084232803537417842771244262220751865514183387311856777649946328618455406092040573974257142271801708451896030392063977538853966192806810691208807438415988886828318281245160494343932221977249146330222589811427638819211461363084642066973218657968386479964341012226347544453675203775517787887853578970778579223739932746931872738991173134547281918490792199302559155313588147992394076918604032473625799657299583084629789241883725075599042094458064384819877351202666729095844907545175726509620856633157139148630474767544919948231690873243736065600717070557839369269612837607527782873477721137329475244721168543622890643443626689375215168185416914271657311719340571910355150773150275369992631031529657625191911136473653693007717791490916166519096479264908919487100971006509528999930095730084049249186277599237171999050469098761038883892136922985979930774735442856691598760576521088366773568976996034070823725631935214285968846908579756977089661539397444744866603341601618983530179984865092016164008053790804534448512490707370979878135170514336284906554093605161283409544293538795933420667915320861257862246671196075256700278615841568533498204741382381900488798664567042802862892272128506829537330076759847725362585613194909438808962818802163307912793588665797150972179731021736114355233954030256548533513162878318618982890290692912798961263286176057105312371536214841665869998163721518196691233738429604305134298263111274113579992190026079607764731744658583351498079530511914338532220402648863789832117997323148341321302788723085336516003677472457648332814507869534143716310628057885145033625087249106471544522388568134376806744079272002856827564436268160148718045607923676217771636969002217155538293548625006319088215282518409343327929065443876352511750992615643429288690222619906099295504358433150870737950704877227369953523184944228184536688117857422056058145858772315345404840439776376719474571910377479033574517894791471337482618229864836316368388186811509233241961939485544833364856299624520776301035674005652165098618958573482480918678109728594159841835290004796338444487412754088193660702773954268135483126077515392788697897535124568489580960898787288218978124792995255798306693731343788773762899923659496545074109552723950638949399431302805988355731353902349654493310093033321920064321184351868870215798662836141378687112911601129438719998687717476081786910166801535713079930230474634059631276396876370683555229323994165511861001345824178442211020825629013232520503577056568134273931765734808755729463032046527588454160220853398518937039907146983561678724588797772904984076309718901642597859045692524283209461303198221948137675963198657836680617730210026000672068880324363612725598359031179758789434341536318517073195988774759190302821442542012373213220717123728715573404511687519621053848469022804223916747385784054826325391116393582963633271104879623265193714969131552971695459869273358053466939770702885953858847218320803524809413933421699672790150867873798137321489790943003028359001183578790454803398852709971355208383702672998224690622062080412899462769766235233108969594239097541921394542568004241240359262285142678374866369771304169735218368341761176896282028591226946989192680524225131563094197134840972441495986831580193453237703511730584014792822487832950582794873308121516492797265613823219368192298077521507560467220403655891723543164045268876279814895038872886044408301842914880942193257975667836543852569225009479720101499640659424352482092013674154059842794192340133907436312528293600834006843034247078330792990693411714350359663850282628145423411645093618923629961606623074033519373677609388926963764737697649949366545016980461879588014464832607069746735329081398969836241649413871629302853584506705919192895910958465348806426202944136315006983004314131428737946869543383429387663499580869189605222750538050290941082550382436197013839264570624493870493040869196305329880893667266616186174268051510183214987801031231042110587814190130567902885999291477043327291675051752791504442936926922352842368873000723182014445587394111107807952857065042502660639756135466252102384666256652925619113014775278504497348402809111094227831474956957590314273508840018796362574623714489960714121297419443431696615442014164181406170555673238255628882288523871284694613177904849637277214395066075554363971334212026655368817455793701208208583386047666381314695520264462296035569112292876721113693048886891884460912103001361145367593883700555312821495573903101038747193783560040401385988229233264155094045240547627053904399085025049815843790782631318450123346304998987059815034396549066219064114982008168163827386326887564361676729597330916213699330127463670838673136137986635443989623690974945849733030391914828149975568149763671022535403519947537798740603210769329262839441366275880839272732264695040720602514379698472234243771090659540054026445166941016129911556960925514300547896957246509485588612623713385009255373961016386771134099036878491567105280145486770851216489891670445204161306172829928977526371838281762936632955121269219421940561854150173852776122863629862155042975732115871042850610762703115939079528116658531035980575538850157001553058731582831213185299747855595090218291609103814250452323359426567962940972413769193334588318578854087903496849783496335487274081519461406367099922514642332682099683266170898253199225713212768145321627783990068869117371265701725831663787543442454249411289325356230994811472173678836772558193667675942031215750798434883841985094727111991957278366237316679045069498635023427169941737318532859089152740487396769048300220418835776744873069571939489790310251102157339834651127593717117200507208348685260157240526223746811381959416984116382949757506205284056023652767867318162692301005892875167402238876230192364779640773376906819666044047129502097486607297263639493898347483639627296632017068202586123365756890486568834327601981661696849397285606588492238266784666233839590308635320481345564083015255249291633652674889099706369373426352374210963216980854930684817448718027127377976524473184165304908497721139896454949826765567030236946591687426433357839828361932006311398397334595546657833916154872411057731753660050741397433395003053639191764537227659032678204684240726952284658377569824868552584984448096236809905773504055246528264607559527677641042545407325302171552873097562994891511895722336077126977878338512654325474026044785863096800018864164121111771207401558251697795712797760342669707106730098743879626073335774499906592921589620112485481544190633399892109842988281660885926916749665467874169971159883169808491090873196763849175749857434742792563947397029357304783913851856066634795091665153286770740857323157954107849208332190613852343193405842116999574813708684851675236248643863866618660986367646708468950596759855899743516051504113719873647725635087518194297087117484318745518755330971322148588876134076982820147664010193483389417036643910116786060846980416066287623554866649351690156771134726754226465317820659792086950632238312558869048318060552086006906304309797862114754585492479526334932963754042117648614352701922433112813908325112958671063803869369313495316609768413970373406746541175637648169854688758634300686226548295575039558093778970402836941961937048966625451603718997173744748395102125560441881681791896065445171609829175566010435965294944213387981391505201411511165566403715288059337665034576089540445853098046317649404009396676616049391749656250455559118706291227702429345212587948897639257706012135887988259049298422257917640436484572614237880129797273482187071814073910065744883108967170680082624366024169103825981914967612550702319966348471100840520521207051295171291986958041804373922576739121673281200669781479050985531727908370505620906643091025915252877980578939730741033668546643935634164613559343126181498772009522957036569195420651400723015618343120972484983758622199024343372769377390925408134254000876883802447498679967815454142023330667038423558492088024943647033622787515266910088315167498197057600812835296188228887182601390761055519254904584007299479917950513579441219745648499607010925002909589820664951321468153330924170174207143017324491906403567680603996349291097651348024497306207820256415131361535207511150413852108137517729596843052996320789605487887806521892932170816806808481864121878504467118969889732641237198004386598558127914873249035921821513111396345702670227976485249969018493449182010106331247829994043845671955841064905954064721256641828770551981017080838084032328847443585753380839779430461196069575509607583010707027748998766466161575210962904998938499790443305403335908039197313786370547235640924615922581245245808465395678791397150645775376973083083049094846041377513780604412055490036500380397231082011985717081824140058039979162957171932239530963350354075736416489668127733276273037852201323023559455990075876754593342523014466334687721795682621101119968114009656933528274876682640244897673475718021292596625938671113862450871248922037714805571820974147153490519716517613453070732999816802725617076060266758999096611290322016252296607404790661093967013343633726950593961100947999025146028148960093527826132774561352716842590425015040135658148106526707790401017445835142868894071633637945374076485343124933597100938863215951970049808260776848187207926885694853812161047045622095862601204669085610295405442536073723414988032398132308515992216423138922724964273987445010979110983691725701332689210323508509541535853503299042581161900589277829853851418542766078330230712116198582105140281510726753388131785718108137482723638868018114741746948727046977714688473012698097790528543545891152616491411108989775762766538404010714913295316991388773333834966297551616383857334303815225453708538769404420001926172429605348355461199351914807078961664200455470813993125647438987642951659217879848086208399916633736413238576421653792959668312284121778794305523241127194489727554145536339812099174263733770116086414694602865476859996858976513670083243266473061116426338048906599326190797949247260403260372676656020951502591999199463850077841099373091275993345388480319175773846417094820780827559564495962496905359974665112384627585253688146253890985335259992223096507921160806587387912823392063780081063904390685838131716081473866848204949672918464811542027599212285014994881367375922341463885755025259143029118231514379728395439332681859975571565809651444639828065870273580540864811664595137539156069589962021672806415607630288630135876982325200586470397124539248707215583942735074865648652752589473693520544166436125721810515882397824383436660118455460861634842838136591627371834913468327240866750645357343218707960857419156225764465288585185069124436562663121069066628892298850067386452048549721687898794042248302414059510073789129204056187651267074304776150329561758045313246489905477740163981787202879297117323589624975687064508003396167936882109280905555491152325544957867791093082249315614307568330852521723554128078613814361678964942957982836716434507365526213224858940132908811040832490382339653311140452366861471796870071017135354677685170102565023236757017117283090410947830761372655992027556343785026836600799456267389697111339515437790834718681927288700195058236486612523713790610648277446941324266183029349421507767886109601816576163309747617425400856046463879066282086086028486518312437436343635517575541701425247278671610875233497436569620274526513640828450501945610828407138752455648353945057129415800741690361684120328482561422979857191693025097017112118085198383223818469705831923464466050273905773260279977852570041610211407258443432801473302478210773530128626595042937066762139323016646978161686450002209501589001412982545989139321411992201095983887864074534137778768661759587756882340481477755308404637646267974321543861645805930515810816320997381520697145873833540093758649768600558337936454929584267481793200470410943539480637080246028275881421711641295981986254848214175686046530579335267017107444312150998372809815020969718916949405934720781087732452469218501214973974069754249339465161821566228154298457849656128343803497319482273471252240911054290170519579832452411563169839158462871649432957613196136854189492506728106105207320722163537763319071386339668513327053556681382184408331680163365030357128529410573237335416142970848086709135429411740184259464894093029272840267104979337413740901818895142245831842661675038045445398306465433221686690539191965705882977210320777453929249063878049941739068735094443984082850333683872898773931311470264438250325481258421974239966382342923936918094602650549798557729036578584120115142478465331990196797448856084108400241263216449975057399147648912186804714561503057749303823624193592569943967395496431945442219231462153472116492420609126978423890367530658404791497647383748877349190454568120164896534766247586993552492585333480992334791876321782954367917694104652464714744721188730521788687475329099202193503820721425861457462813853655156775010123347247802718396362902954154716738268931416932792186852674176226231837037148095951555680972039566941131765050463773165372072648565919821395444805340852449403217561963201478332994773250588813176577430536899376612093095545135997135039049970165248726684942015242100155730097638931912948901622023089401020745058476016053505492076549556549987779833805233426897940954023072838445637831800590178314944021919351552902917162844394549724788617259239025963988551090525575690417563638322337522033999764747934210666997857491054120739237248061308906011079515662854488163269330955589557297262479819126545480918416253787544866062548389551462049203837840801561262790779024004339785062227092088161462077131762792368577610446448860181617893853381040923187201952484871124347000926138577485929262452924915442607895381234524582652116496395574886258531879226890342457849748892029594284214869995667448221501104622273018479338943347341576652601728284018558179911740804547568460524954028014034632019586112522524978444898332810506944672331937931181439083184135724971208620685051274831603721688435321537390248731435873428329380721140371747109874516432779401590269076043095394639944169021060726322900386772793866639378059579969649475058448266193965775799188503279162849604397259653055142064699720350864949965923540073901451486348615255865563294363784852376981894303560658042860844257296252416424283266125383379540961221603924062588244966499205926223539551014273683904514746371813755905346731255000068903106517272842475216701817622501836288128391952897964150969225890165592155440170295815818535299624169223314196352372868990544688440123670673385633756795784335883184734985715397831612778585386203020962048771787527012235977546908813324958024925873654620732546228930061823552750863251857479909459930770613013174036311771347615202877213502585160025846939107167349903912693658757631069642331215839392532683443900288872366155421625457873414750508402536891016189072454669670593544223127501071651304111250574360083917105774513787042566128884319302787322377492338313477402187857387052744022130312844124947241782900500590559835253480413046269843925910112954507893136021964911593101342881912287744715580461482393567517519767890465184180451133604895717171807731088979721150790300197825378424411157560063705511722159194544302776556172030249981739349940062972511153869867853129007701621869112146878187725386738458455955253636457442310405324905821738043950858795113780775695003474651743175823686463346142938180921115721702800002711252956765684792746187877961147224639175206696308786897951930113626662953311759584026262904908084877515612232626069198577177851679154565083837104081798883690137724675321014359828615246986247984083646276289625616497667189475951761210026989614524076618248526385255644610714659313453199559920514693285477832354639251575041799698739598435714364206034129286369484043196170932054893120209939853217639579609874702812919196593568035055134677067336355566905786606409633452100009814320479929313877595798471485373615477580358700847783759214050724498822261209618515792651818049647105013843045966230672982938898700069527925305983394115896268562721692228011229567649285310744407260370453211210840450722854088070938470423895653480917398454398836716803020783043486525107285404902255533297882764197255892292221079692296606255447753406074430322387313327183114801139347944454724327334378776156634877742509417832045013628299188486003938778658686953734504717104415960793130814975555276027875566849555334692116564272684327238051013426747373108843046009113294099682043576981290347451625629849910912068172523890570699441240752965286949848074899921021409376145533878957880850000821421880900145316448809785740055239311721866387136486633428305658782413250473721278818147665741850629922320917346468171638994170692623643508546954941189846923227937780921015445059305619784105616804607249928218591254845107283039256554709552293371338421178805780038557513408531777152126649746240735928527064611754244275068279791025598810216625273165173061490473189826222610695145962982470727461908199974524122423148640614228643027805346012133468410862924735546879362882968656760104136120307637134372885583668943756193337430687951865381756133284842145949824904022885855054448751213862907175975078726850781567506366125488710405919209472274813428853808983324059922352776103793935156209989918556668138346553076504256881393961443080183978661161694691640824544125931259614103525679134652030871692647313554475768958314397504784809286265659529221990882528440490361526687909991464940022506348630487930195278574128530363098999097859777125748020030147167716673033470652346891694147554361231497671016761414949686774714703805792082183856527321229771368403678637911782776744175593441366959969244350472806996140855543533195555419836110044492947466029010345391116972244605914260222401546815567938615070114961736971543215078980636670121220877749763702447998714054840526081139475884985258987875569840948191808745671718499873099115603875817961134472247978622248369614415781573764627430869745090553350961461767086677869954818991633092464283163253218492396572148653476962316508243984347473777361632563862530701026820307747055971378310051985418690235503690438397779906444205341469657874632989652687094565461420417296717869421989949882428951365777875812709410748434675489409756584274236268686040747713369588453613679355575741928201840698822020197838131264342779523453911169603520724497778324978373682985219908223869886928165026703110562121156203705924645270690743078278389130674335357941870151554774463075767972849709649395422959513541515439950587830184615200172030311721625164883725224720277093558448653353320056561810843717931064078264648640831581735078404265822548806830277679568429844672442471100122345672844113006548678840633199494291415376961286112149103240448255635509569887869443272967727869059386712319322248847155941148178275924673735952140510454996436934920495676865843508421293322034567001443492226168415629187859390795938111301746635408594795485240726635495732689502998736852840493960885169623449620352685674311283263712496332281602584965311024113395339495500910719696773693549753081448636650386237112510405818125691322941293767628720637436850049616396122067728111110078584835467133202282454770359478048228334341502113971884440629714913706955165835312527687188806710941061220597270712347569907800098975996374925693209791375321899683769323304671271106284764684580384484264650675845065972514746354815621942515627271403054230915976547843366886590971354194474016984079139495074772890584310692853893715149469163505954365996410322180922985409878904079102457397035651191587363268559007295717165470403904128920374423760887183297988641655398333616766097254768015390793789715647814679229238085386344297229678351762270169341323518854164047879030197990366389903629176579260829046495540622339913220063019096072796484582788722707644115700707446935886996354748242042778666652393305665025943854123521931528765860824219261634860898244656547811681480427831223715134563399555285351381560124674952096326163382874998717665897137405770736206147052561214250775869468493285692695887519447128733566119710120927679894344291156362915912079841339441373565128759579630566476927129361670507976131005197036628906144877630652528654504075467712310327909223228175285004127702372526061104367581868758333261933161068579829223514845915886034990229252840244106748127214345678286052606693601451876726080094140059384045351740565800721014454265351140179055743711941727126758429984640958840878174137148759615524301726797329000925042777771391396379701314684462807211848101538818541780982419967974138330690649552044717968423634281154726201558835744088131462509563628920481175842624241506605224526681230121821219501180884962260985870301207996633503393301679893181735055516363445496375095123367049310357495357444829022246869752904156077344243348622946435655566912183718978914727444566752030934265571141619197093510295072659414272825688753476211289315881174138263876407575416076581221521950768490050255165671895072297606628998943074120263576240462963108400982453369788417759696122431459340137719874787913674947720047867049301477499652073433084091513685093123344009044327701858782658252344039326267832659666895972036329288121731850344827303529838740701791576999583504005245717078218662953987561262088130429162373837711170556741244872058717760068690927070318402234536362430889271318282157697720790830626241896550197412914991778957200693527419094819188529584155142154262962350386038316733936219310590596102083164164311846808229539287417352002541769555949203794144958627238775610592014781510623261867884750634927035769470112817325505217038486060211481401027676860890599278869025085250615493262067418561821302800839853273565973291590850656482509715784835296765903562701970189288987538247376045147557402064024255699492985957536618270938168347398614638263085264507050503445913037842162339384896425874760110852213359328357153000001053239092178662544092295299221214125942122552732660137738759896297023601642012691047506832386813208484826203486657404467350724390291153364280933034023242489754301292983252920270561473513408465186950490842782510750783437004547274658638203367740534968444889276501994354578218479104501572486542724495657387154762742183172787721271318714964590960126229710057622186160817462033597719119390458350735963632304519389205965699135183476306609059834327793521326177620002448988320704004737705090260525063973482419437540349569135609419712595763148855015825823986830438183111464317594060111625693611723548572540655405211221994073643263756829143349415870105981893343652995912424900379217304150575117750781692999522069701980180143543273188040970419551483042183984970094898569342882959305985052525777952471378969952838182037258703002655686728393022603742685262538958134850101392250099487497484530034244996976003671781466463456813171915431512019944306957869373660659899013591931832601375046909473422248592474337624323991467051766326959776014990504359798385440458994647952409642013061512352941067497589218080119649237919098514657191504821311583299446700875045617275393331245015713568452161781888628011866102551416429092924992366658838332188242587848593164885211957574432384614372012823548452028856094939660393564093164743621668700490718953286275492791964166181856976101859586965512486843498875146716615198445879914197254562609316969008908066323387138224231279781319168391113103527585679304655939328127165911211040454799204662215137900906409392333603682805582090123016197538816183564275096054064011523576788717254899518783387236271350408272881636086315634930501784449235317799355850203730802901028157892834308922751597053012936475547278314382613591963074980752583637616019657322250805253904623163280337964487204787717255025314089068122653684975833123763216065404881006604150116356777897503925787520812841837459752396806459123901281553770620767307857819862476387435121452538187202934031802586032355349037546468797143857013643885162088671968989928011157616538921853447957363862929549396775649062225279146644409105178534884387367815789581695015920608661341929354805930259999194122663584858070980800413595121934932159288559855559003563327508873292092141815324354143928786530067334913542983685357432769237490056057999583390342516459490539109389258535434649793545312971989270304810415896117630564791318273550488823902617637095389766203537426491087011559941022095650618088181624802334997899413094759034697392281581835500474223222375733507064763964341592635905414174844110739370705681210822570785588864760508444605093439522341982266829952089147089678287637851947414400740581567619908625154644968271049010094381344193920203719676009362690219383346342757247324834792351274714202250583633315575938829040831433760269480600386813060989882960385131909403710524827168519447492042227229254500822144454663814283478091058522892705915281433206608130706261956090712062831246990602308501445339520414949308789738099449417062260090296418464469121616150831057149578247879554183660552486432351618963605299207496078319972775418895137946845694283651751968092666008961793058472179276453862990164457983355979827094626018087298562002178274646331133861323900029991973537838922657041358417393789938498760201637234938272773614621860680044928846293860947586013348298610336037508530380160722214525085176877265660259347761223974434931342207451468571753689320488011196633620587535670044926808070639336304002338807217947880401160671951727902364792371751385166230189589351805565018803651862564878656787336486167446494920980625820871320815975505905795226478620614683842009875415363441497379105496728002296292934087803131024948554435388895138114626133916362361721815797310042407633928090122663297239304332332883273717706838203964624830417526061910955599162655331450536883460204405760513863519528488724670839068609832166559125480405638954116280619325130703891053709947067531751387816029562564725183312386427050728657835770144810804590466306939723698291072815350430689468151848746262028256070478981623767683565075869637923022624950857551950459360846508467672100979886631663480113140251043779353812775966815272109605165364581157087613135307712442801227444670589735408358964877850619533683608167712711145524393360919472928459752060014928367477043113343721598121483403430573871184704347584504093174558760971584157937907987902762780758013166138603433086304215744824054065760256502828510972532899007421179342703130451205839599581978498546566268910943554961398703025055593784790092883531694895534031599139692266605522852243172630840900139152424791275135295917212418851395762053595273410917518977724485734636494625103483250008877218086411951131294248491958669215483010993098877591847707913088905967136834323128483067742599362432210945595533466970837798779396303637630756333317593592903741005813234448926752590124640603549783213132418539103243282247217396724554599429601574682562591830061736085073575685896940398710725903437524991519752063778672673255663372892066010430121117171467578284339859890198011052910819350698744796923678375699320333843421761087113938989402383664845876098872436751481250337324982371313101283219187049635824375381863913338506762971746449611955888993752547225222539797859390192914887635354939225643236139858209409288956760316566612577732534504525910569955537394155639909571234730451891512767452688496851471909501735985100007223764698398730602454025024322441856968481976554843588414146382640240740945570232275637690552721817849453980057103566705907015409626759409713779611351532404891914775363831582206079813150719979412155265917968553839257238422363829325815480958865794666094306281997727831952366277681875107333259687576302006554894689125676609969630387813883004689077403959601046208628586027483069856114993790124356892237515088725213570556343080872049943716106584796040922945787240683106177523924122895427419909367412681604219158990817481723572777207021001589165889274162962673232273071283621854590214938907556014070488143093699022562946201837429540476712433109803683299067321791038740416483505831837916588848698166226369643697702851849372617150858954424106692992805849176395164455342808114174202436457947649482159148592855774244963251540300552249802529148251072968006159200094056174277988065306937921660446975111822682180367333460423560080000862569405238098660800912761386143774865591191939206726641482993951994388190598758764079249703667977681943534715676450010448205052754385562426490601199807889294631627271019299127910270858878538027602730173992267614467882927088927171099410075548211685192624222491723158601457125517984352276247426622097360705483054052616285546563807515635350436490144695131204600594209364462097852011568799839359236750313697955130101939782870103431592668046346401303072295769393978424950910901889096604508878271616020986286203744799608306919961355070920559834895820490666514287807727255835359645435236847083524245572196531381123481378383603162081630061417255307920764416630841390091465006639227422122554435927753823395419595705637211200172042459502455864692200303024572231566530626960148734845380885693551713094657371378450615459007643464975429646735418607846337673848407028899506989648351995143898135777450536387937514098126764664844760678461947107388512967904104677403599386136370119969166844461413534623587660998836255200104600619248271375482477981571147861668535708368082650854617831431095765989227621597621134096304864528327376442301997414412734997479967760138322306206698796247835853303250191987844438064525473509167450686869234277906645269989072981590530663461662158635763845802369315609159888320630619643360838006561976631192141283669024810633780474312999620534413644650363230811310584501215312528316896825385960690889716989715192594530369774484764733074101749290468463111368530369469497485765277321634741456933546683005622121028870640815620239497029986602269194214493682241120518755400583257881232406126142489001638127018269801992138820042796511655125622368159547313245683376452143187685422083926762107375432074190876141041027241299461411807652896018311079724061341875664713254920455826802412689740055170676582105804621339853836794303644170524727415162240927351674507770308430069208910283596452458411793125633590865991878089996087972738635760270067893957213757138914116843151967785274424361137469938045356890783226300779341845483268983077832824124614436374288627670893254525995116153986375996199936448780895985321541135952608255697072760747551213700528319778616318438924191498370422831959941812284825861456584948661947697097056960221422581211189164659426877044596235506612178254833780976328953699522776714922529823829360155830338932732189010550367264235796645521063307298086448512422925723554365185347058564232853083438500575199938662898463179646358038121150325446374437241788593599503494694441440862449395757888177446291199158340072077086260185585793514327861792126112273581612665483809507167747339358498078899598571047976887378448970862795181330321146804391631922419971748809224425939935452877902802915674100600874932179848757019534374788863218347487805919146049624020751037227666845324720604650489544923368461119295589507456199696547731280708346018730806900433738301369375010460275685841225917851255114408278760641377377039920818131281471684781082839191650847729000694830664370441511784028026793531906855849854784765525880315818851158642358133960504044036912092227640371753024451382617499385579222853710005295331210685061763086807034769236502631381812360565344405150400156790013181567902549468997088880603404995559702049865117378725693533105732551162954961820015568283647141774916364194682798681432039300840605013260568676668981451030139486111705859338343214883577056990346105122444880074002981929946794241712396529321066862334476809162965304446541090097518137938229354966205695110645266636283273961177873186066285881423059104816373814508925397839352474732467407618166127870768377004141822440589085625278489752190523016704117970062301577916532187778512987361099590988469644418732790512052729510145023519790726283915858710165731178035567481967348267386454752669058328706908100537247105937650589807743657466322979239032351881660719792902742556880099020245818083579506597418294703909838386037126921154392346329395093589793210614184182217342361548875415668364753200107246357991849861301228301890449833223662178329891522069049417448536585421113411503839916036091284548588847485180382441190537113029284807421708371810268772029512622363791895314480401028097972331475730578647251407730343495939081941498608276766659618515438417054500938990233201254056830171250817764059458817979738051781251259863211550158508987266431803067765165496546935575933726248318400969246315832948309492479686053688756813637642527357853882269933478684109138213300364185989433674163516873921325633331692824228644853850987967936235667143536867977629441049217576255694466692600838532599460501292667711610053536487685591571682753239157689505456084647616949486956432918277724454584019080323720955286478881937429119196210426343994464021584475950483307529513887661567398003600518217647123053903721878009395660584661141022725945129044918166725553872953897407361623711759232884224121387495119768696859223210991956039821737063238597572154561524446011254392635227179259632733682954280534309780368566210852370743307534628631366074059696928255272869291178123989382379967634518965482805425819910488763570482205554210780213302073396927200765668354670195223177208157085961225910787360067425723944938037138831169208713445196330407234237158359461463220090286085398872199764065277337271767621142356266758196665429176614162884542849290526331283744993635017099512397565669642059991830081416605016041396285106244351001745083250860457586046742860942015095612043565032466976655441536461477106648996358812524689633233374647468936224137375344521931325927813847359841666714307990543110167828199835719973918835435967182735780140764909517758041258680745079495565728495213713317563138813053949325758757880492433337108372650433554732764400477522941977126106950786818777681775498865283567339871268995962895796675415497180640326162090451937380111930363403043121246873797815074250846036267106014614375163900971190237864942754596903248360746600254272330884682126740304181636127567038991100167723512647860307930335779682285956655046118865760829688922906638516264765866669274274607827982785391282240320542473630947753908949368052815114560932978640559097484288107664523364990771738253002372076293597308939367407956419422795377358300467848102328570661517974732959137736307912837674264949997540184624683959305605615350672720973828642442439348086258053475568663476293195710237050467338945884465249617862502840753271822932790793314051195331354651350250062805727192450925719668375927839472748773259628365776757562691687526290018160590987397171277400306346410173580026042009890886816308335559405959254688724423012645400358137838290306429885247991571970929492372125230686791359125750543092421290117616634029577503949978663526611343400373002291322884667619492285490677586845876464770155866462419157336487474490940858966437378319911379498206537800486351120184524871585878659533451320087768684061164682841004871931404709581074537387031098587138248237221203489490784664216712996014817362141881795096133573697968113545474235469942014537122993734476453204041938826045368768484106246369346228643839006865083316118064748524273160960598533853386054047109313886388846818812775510902680271766372618625591482116683891338908056365751960743696249245093174996553205311922042760990918604498050000618053105655205531233081272017451912778937953697366474265933553022033075533521093832110074627477215586325240790887869095659351770617284501611175100677154978359387945511204319818699529226327281737867230848463881254226723536325406149918781660388775217949933579746324828000176797728794356396872136116738090833720585796440430665518273033408831426570303506375256092490608510441058330030656254817337513917217978738728631430269442922776808415437417873960353582731605714567251100655346172701005929717484258831544340523831256539408229052569820084642972101563026498966612653722225326633840042760898010923605119489128655666169581245716423648491516350711482478519530423021645928906162900240101591349939919344862844245798637525733512419989743502796569673927986535459204387024420249150322008303947838056069282581616788723080884066041337373802026096552879778771737163790369237079060375879615615368896934457287102189634153440638752376490629153752352316295940159247726811899482011243336303476329251846281252231445703610608921424192220545272291223403365354500462652625539458181366330285821194853059575567325920981755425988104282859744521805523372638844317301463009529629291381443152927757061165826970074994412427486698323834602007790548710947812265385501999220451059465979122126138938069673354362058683098865472577460022242942031188111370774435530707796275258627874875852861103392430678155035445162921290416316829770662158774979381496789088728424929167058706116684211841359710257773364096020603902638533768516781813230958372247288893979881479081989059199167573344065767297885892538006662754820360720522930058201962775525662166408924555834030354315454984401083386042565340680825651616845190991396221226500451853913368492854100744856614132689456068808643105416543162570180021807143874520602430457793532475815652086017741285013984004292304283287640000467431493067273025087051950746173997588850871337577063975377956835058410374165934138409710190737236392886795355784041244863799409467610958358853990482626044162253916914048605284569562875096670446611445464470714050355318486264806047001383677737172629276022044243651299654486664664238946938097528976729846122072191426334098010498536049886478699898387996990314376083598159144613519038372162579637324784901101787396975792158625765737380480424490638214438660340670294743338145000385364309677755633728808782955350999945121489788224700878078926876816250985199996328983084951174070085865198707170772757360161463630294170793366855145578163550157807489710299683508377354209310397321257993095692020027238281735278300419687036056515688652079672900987685367919846574892820128260119674338644044818711606000393272969845643063476773559117745912515382520571977417002449692161370373087810485792707139846795148166757588505698952033175595677731746161090597582371487270285060216592953528501929410917717204854732070264922759453774970036079052266764136578444170792025804969892974828500209136194594849141848615066617627915606226591004337701168471528053281872426664786931586910772482396452007478624527622582730324742807552075161105934921422878998558316201206628392886271259557913408821990548976883364785260425641621990274361424082221109715030706778806959935598742049365282564723467224856167722095542489586224015697440598768541569456814363991388050758588297281416716083510351806575706363789167286012865998978150019092115092003695018623522138691845738544547808531940887078499784658851375215706885610857593187405136111899190851539664997362129133879038057013823246896036648224570443257018792324044480771394910383528285598329292876073919795081313201570100243817821955948609902292917899788693226999413291556005896994815881907403013128120789749677463793980664160165154214578285658739458517950739954603437991654767479515558905014397057416960041133292392267834287821469696190021860039067053391059856945168522610987833342732905135605424259511175258778720180610183878769225927214366897774741607431299287139664869477008451574029816109511203959071911770116618008895398886942441963265108555633966809763907423684324705736889016589923539304900283585568350425315907648180355428914274945856224194426706750273052559057207124056627715297273062526239716730104577603024957952427357172562329414712388206343133523666267040755162751583589687169759864064338404852704767599081607196871951053725354344955232236861560430602984973948952344104942903025152159316825200883377001707019237112461233437579454668045816656210612156768935304411699561473142237851180397249088663746578103893945912183925249845302025031907739194086150009229975292978908279561735707496917645783553584342836467269435320163237572883321635144835516940270444994242981462928156251119660713770386513677845954643107371264769468517676264641192549843256955688560899775943399970060994205897129403828519267689199806100894383583869830708094030413353487348896197544651475756404671535946389605855797687971755629955547107865234285765224604055802045388012381972893444672556160375169437926346405858809590746005756948953847629949337813885616869183598279747456327975029815591975041515712390363996211731892190404501495983070609666442622995925184696345873127997786545175510220959120088073985898093148982255961205413060991237704883563884787206296898407481990450879323194477445034597944954544880202794272488170032283967256238468874485995824174316047108763363611895066551097493709848678423077114774012696102930310133095085627245674256255080466218981116270993891896939855718048364842310804966070880574275281123106000486349199067269304522058405962736414818464787169493113811220818996918042820249010319626806023256577713055173942912501964758167605890810770497043708350411710537294153042172476092823167431718618980053599555188795313612050577660615053694360319081420277323067153056578736218208252220328379223318615438482965721368367219728707342722545344468800265624423876976624835327059896100244829833959824287269987764211891270454466282979182642755938951108244057281358093797405651978034674878956644325270741503932474829981768116268246703781235417621111873979559455417428469966844654494235104513972759004471884862817357160004016126344940989041799212938142067780679302234832775222715170542307765601383611989110209731332879349469320907181848010040949033553370771806148347151906348186536472482116096294256357110049014463289045873402771052376282055701589602001435908627485290383877624603443203964306138262698237640825510004591934430182887457808663581323721170188418745919233879328429316740242519125089507362025964896309515921257239085621508545539021680399010016559387167666135736771993516048498779672058381053489354675924911189494363988771097255149595033909974593207667590947681852018067805337813099323652625455863455942470111704787775453224145891777106500964904703228925140570772615027351354707951241327446520391011318021243419052571330320141213158994651598347345467208659813587037084456736026548757176814142655440173053089744797524511583282467400002025992290349578983484141501336815262096496776755571493982942254403380323117930848172482186715804679401152674869661771949008598014092226676325787704050607517608767456256817157494965351656284071626347260934082738802510040948234550425296840674444611428937056343869510245500507122280541587337989554111399164111342377938059328112276337078916321408349028664397011996029239726640847444422028690108715229772462822153844289506825876629138622586531473286472448632683064676505914419931041169539000962059311883652819261389984417845390733850926019265023899199936300173749698481324157136072420985018420100644256825474495309301685088811273915901851717015032090870527882987967069100163708976409831505881769711998802019449332707181396073981932501569832683388926839004678944617250069521061467819656794680440095427274789479315893458755466625932719276208323471095883094929961313698715702278576799889418523018959919492427500809792781295583895494487020893323585870275019328804759860222626948513505002240479865465157989419952814604684073058666622961326493327882189267521536579435135118263468629922414257369742448874018226054879717590345753600813636087260513842232898138441777643710317139467803974150864851057225857821889136107223719515615655613340081016265690426325554586052478295244313933851692251865571563474097625046366028647309842132178340056290157084142954069877407520160705617880016177025699979470153075907737179224180763448618945114816362963169832218056685275942127413267149930253663834100076308983805436236532239573318154036324468812211152762832151878773279552959774729627002192736094221529879275786855100994618490492204663412470376778838018725160150570028503954094025811420712288484175260497518619178553282342862384688179496245309408242125657586651043449284330843653730262736705811556029004610781563293308386819767242477242167345271294106871653525312352655136668297455015128746510769686994115086012136833635795570990350496620877203726709604147690439273880819816918900388213814117897571262344544433737159517115921623435627989007456161235997236801641621813165665815031016344511588638991969778871310465119894230261940023074221095778032986606394051887147398473523337433279766656535847155307253694062507520260745696519518757971289798467877892814594149641954720834211210361723792186753372798056447916106490823243822553648518712259718655428697477227393787114391167780253855680421642314243115363972876908141366696723790872400914949536087407268059717418667971568635330165337675530929201831263058919729250116299000964602784677222883261503252915083173399519498761810092552824744264349171934316812059462740852726989564466884518982831510484643015751066454911383537348653083828699171420885475306258114872193577666065909738246648967485532985996849453386211181706512996733630323158406636624211664735125611869703297174794733743484692622115665655492195155545508136177971484767906113887662641128767145006261198902983292096692685033796623650459004307285737220309856566281789520888207466909562115965028949359371627654743095886581662661999800650793089804207321206933399049827980165147321679101154706187886274825934794023464102286569829424317038266133713824545560972765865102355347534836496334774509535991739672364885899379318183071624234561638347437457708818924769549329281290431226835408466530327875748455943459978264643719854877790513087647254036404043282454378413290725337875537689679680951975934301424716015506473651897451846765714019496182031843506419545884993390859309433624627310052324711860938817811819131121286616625585091142097944418633001989667934581027442199620225572797579710482917608552990978135822271842436165570949870238482442214820699396915431986087082538729645692959255358819265094636155066221846859993522728172910151145464232989474221634730293091508079367116160092755115116738062409840063871804107490912543201361205678357328402241863189488474030406059826797810633927278356231334462534197188419551223503014140495880950974582410325129852265954893453664274819216034264807128038235733100803885286033635483639622528199712900259394049636893179812576316210919382829426596239353581077757030131484662621366990055890115365630474015328914786633661839440853172280613116232937624716531356690161862557849751677817031605696336808234331783908589287137287759108688502700066103778666882413786442015901813919012438563516235286395497928608174167298493313892751888123994384515258297208950666822414196758477143699500084248625349560708512931411084162633843201810768755520199428462663956685068459270721208519447750747901470460714658807618858552704520134201177102171011263424454418549448459848260671972872372154874190312084816987070657009539489142069910577811160675737508502160264828615799422444257052140185915485231604966991740960702977150073228257178480898109280010378067461514517529834931689691259997590131939247485877382951606831912728957200761713724426569941715845575213230687978374972472339466805291203824649504497414197417395987970086788633188470178424026004294154673225775449981430110859046670778776558259904520590112496194513534961614847088587669011057477734055125444821464521410588972658531034389742553053421000791668230722081575805639031359558646383614271952959379687754999154563434567516691069145049137654284817316377123546217181898486710662252188440273758846556763119468473291491880018290178588224307118560030930887837284910852736358596975802106080454671667929948354895287370539525956288479588091271244724450061002332803421665582251319032089795186938845881092490850475442168812567230671058877393642278825507789879337706959339243850173833695853137666038657642145625474975089120590604410750952121020732198915232687750595953088126490913523835081915954271120088422651525271710501456039247624922849480321617725559857555760900807530195586224607397191527254352407597319029325564157680529558984295852139735239548088218638118403153234847022450789144103405801364789511493614413524708948195110132012387100245154691997702653592903437129058926679182563585602453570757058195524262199371303305838607705099936457441607330260487346606485331115709850174095902202482815504539241325320572710475859600856900191480277973525289027686839932654304523325421010640522926005148111321636894568379044733654218858781202866547068533681598405513303388883450759677129060957206497900295321350669848183383028185137601702208169525479961837060271352066725380029741018961160199682086190280811400895931833790619309295847697707707229285641816449683679727687097959878895380755865534453629579180036837332865068104899658730816180102554497042824618009787911554758334646279482749013733933118929141602968325825329813344295087911828382554932590407452145927254928980066845638356202297124217195535893104885680952925524860627224296442567064443290309468527074487139313118458881674658169717908660381131432575786399390257581125101884483648276304037383628534465276035238222573252920341444021103879037733629154923170985251622852435246519536125458378092656037681135014127461374968230267706767323400953383932045985420296067516606650281846880954575018324097019836969371035560080728840842071763452661427876597478684116551162763643359525696477754156159129471441956903997447712932428813158098350256019867043526448679893434968917384097830988288762167070716836791329456330319940960718334116809094127085580152285369543316478123491599352249091905364718128359907313693052437643769655423099514317328694314193379252050995586409450374121877049652320752753037335975628807595211177610430448165859142333477767376811355260283044671831458273747435616651539079302441929293714320053467092289223158421065482264963640111655269488618933818083552884351431338176041811844225181738627415150735059368487049835619707126927365688344769690839396957781246751439618967000563592544079502397528066814729212987659791666316247764059508094699509578404589639267207156848720556725243374083648883562834630486659350850637500308476967066705572105033939689992934299144918708139752399139170742986251365656782101531219510300667204046278615584506569097223893285329157242862992570758439318501366709979768537889441636457130496175091364786689632262464383267855956297748826669430182364364560699693238439580936560177627848145398105536987210886690184024425716098867849028425501570317803626680312809095336262728613274740944789556017877899599956503151832475178959806839381632686103885175653883376880081785462453358367425095660577701920202607679887166517181257220681008110607478373693936056317987585568773721370316422853156135999095851785699014177980740240372045993861834922728562516792711188453117224218659209190096664983269529982601791283190539583983412382152207659079409864645153091663110807971864507071138142828427421129537525534812951322661998704901938467333203898426221247039061909213985786565797578285915618016000908262962135416305434132527486393755503860597133932564360292353837978545830233388935180211336333656655754248343707094562305130454255232214439291107989966338317121762331206247882725414117427723246894484165145526630909212764267579365618263651481986636966827149259749617834341643364950235772401553988042959152082616804807408016285596030182634839323668680945822125863538432620775357030638854312011320685725702632293866115823593253546525785148845358552494019071224711354231252516702416223751105973093764749693080537283058089733664019359751669167859390365324680523947164346456263707545057138958897742352659209292410132810130970471180478150756828161702832392472427717741461145423959472308487553847217079317419289076011248877319990080139089140635156396259343400429644091693476450753502832293798920177535175784123080466058755182350769430680655124355600505424741811310024362015994575743750746250797347536435521781252502478344778648147495098307041763128572099343032651256111063074036341913579639869649601250634305335588609754847480757171383162172568531015554550919993644402109951351751135978958207698326520162300044453296427921642164127981357327512115636628001880412510853126416553537351623685750002218498636876109811381308745127294269373340149952529387276865463375948565067904784973544066444595947412243501577415573205577318612031579645343281341561560338363890691362886534783736098021810593335328723339884461898241136464845864336970516822453174154964488191115448571041306927037958801186453234603149279088422127659429114139182689779647527275915557300970729355873109003164504237698255307228150288019809832210411012205157495278432381362542450883525989411631118672921166833291792613442886913784576944750409353347546075118006551547873071260380640390605509814720538323573406345797074777900586768786906472483622073701567861943719911137853092320969482097386036446619983196330753261818504922112998649026920616021129764873862387462718512802397218045656933598279834473643863040097842954493229956942381025654330558035193535429272106014638970239234515218000641893912234612713114576169419922293525262878541814621018831017368528936879560910187698440694131727497375827873020035280224967879630419054147619606916469029213455198733196654265823475938929772018023201721895258357521211670431973389932607398392116261630095471764771004319398571811388926795886204579954557602797736596501400686533997449813881001054076797628461657715380018498149459578204926807640073988148591978482420767690679728243039436196851049910701065655568706781249951337876020069468132368670246358445108246763765220916517957061467391805996974920982719165792888442459055452903821098200064076385162017590157209023736850128259080693920716731968715217007023048665709805320569376869742776077875054042573966044828611324619982424693459465535278808255635961904458876218269484743492058494511202367809122004022367568352986826221045139358330386869772255661564357240650651037900769815148085854650482723660898969846417608564968079946205849280322632969098752595411489286595299771514284639372407214931612583569368508177430581278170072277003960563083587378672228401671501981050228242013406115518964780557119696088576976845956025356477497504102781938332821061180976030166569609704775769085338329708046427991262436967337943465562861031201605929377008815717015725802385359064825935662048904519919013856817758112981788354531090466938813636278438461731114194332859509563697040015010110536124152028854618463716350451081803513089262513922977583429795984411641930275484208076994539612226044089821885140031292134654199736271139011164061384068206573511099087338352918593013406020260666823088519062277004962733116053313297594422477954933869714250918967359223318762976827182178448380746072525036849916393398080634682408239161407972961589394037052957150448368618884964730999070837723549892319381880206571623514180345092190965915232511705018308517218231979791336900911365604471997028846868498641599139754858826886345240735457428032292523732267312619782453850279144087318012202581585196152977872345926858474136577339599468112986741422902905250030723642924003856096822471538682530938545822050362532328238709464628859411369705014183311344673058051621162945383975562598237643445211344294125344055939382843570192898523518421746109834599809231119686495055794773802286192593063851708059656234861615618174985873840048796173697521972714308308879663654187850253175066770319117442959282354731271422165057738660014227582014681852593977838823828076492288628833319063688851517428585995440608521902946236397747365294775950014585000566128342518819899487165449342458006543938409016795208162229492662788796257098554340620502041407545189537777858383219733451218510888884833293227401635411355920052371626904589886549436904158901776030387807799644284172038524374473213272388349400691697167026926724024065455697773944310363698496636979332471432554636527652568229662629163585654672111339152918416541316737117811378014905924934320384065036985410213654697626445987774233778224993600857521955181400979229149928332991862118852529250887281701215480076659798247329609550224384435303073517925208138369490731185626384876129155696039199541355381940281537724113479862717567897799124964896103248184850018732779817520676450735246439862131864456000492329110458441162930176594651176860103249082359780514859114360711640940892861545038036659035095764189461572841978539319059311614059068260533051347071955946711882189793883882897094063632125195548236069173175877707883711300417241000562880382018538047057978037154486830034489600326503111754036742872013957277873556202019108389722434918502125251811823303870073563484255057128572161942325977392437605346570964368193404830502643176841290374925808308907096803696438933436291826443934874546760728576370716051969555320305921458239416730632369861357437454560257427966236462694814805093354855905676984098264353349387291850750398690419329157872775491530159588344909710254568664354541907519743775072538204369061246792080145269228280952783380589128381976154837032717806749214649647295216122397819973884230471641856539736430912587325240546797624733215497485950033695274568424241033899569037385305057383542532894779927294780315549583010375714836384923291204602908874713097795454151092435950114226231012927137998789704744309948261551400572057453086512419318247350672563213901865099693913146553406229191512411603885335268262586165146792592089390393474505051989346767077150629211130130165181527759114175430025328962254885957029571178268155142813274238094377016670007758925740984027074078426321935377992131506863181002997648870141533913592590506029157328735384271243728392012440405572743679507418177041948951801561960873593983180598511587998983441238122021611951755471506742566903309381433349376132461396327387475913070814241376090059445080365202757148063568517718818398737197838386758773734516706787862915937547326840241298616191947349373849992341322131942499216243238936221323136688056822719077472238285317469994491532869355875398942823677130169712629256955851402804624050555001882843332148616098379609589225467190907127565572477773555042382890192376741145185621958310663817752444430637893651463492292117491024954628507316485762446163991813361509550904542958749751206878987281573939438385270684543044540374154592471511396190758291050501872079935136769513736537426978733369123181775614865663783472981619638856588398543404284546809618217573320962638144968533617540695130251066597735539887109790602254426074279642907844383300618211974740077565697576548753234894507318753286742445813307919856128250688034898679822444582818425596197258717595607613713957681889302100497681783376163066375517217115032690774772302342634172579026864784395343562757507388185405285695103274922868202249348371431737152257883639491036089107693729965813270339874249522241174565625169286793422267994988265280771545102749387984151911089550902913460013206404334486401833234364570525428807053803690470259941849551613327167176356893369126036145557496758762883191508295751989741560535001553435923651073603116525769519307453124234355781385347010856061046636614419855405073159669020637807156311394839863639268257786873738138226486262380790163660181965769901227371145024669322842599778681498917048469394032403772189601765435926695670863954542225515541119493265868837627903375438413343530409719041570152168972662545400461777314954084853116497445767237786328777470060890861972414216883519817870787737943101708517052563588034394035461566240661193091681359992694299317235262943547439240807158628008153521837961009780462364572546195289709158320671459529011807959147502274269166802313160759032306195168743204830356801905981672530675934362744796362882693514185815115394859770013726471071320130066472321261346001636957553342390228645208766652451294734382626585760911473442949831830023951300260122221496119564230778747570051632690333550346993277612046075961096249883387751344129315808068433428263613995214185548512137531969751241841501608058529805670113423521840846703571258031551787735825959362254420776407036369075597301770386933774073897479258997289464075821633960466292606555871614247301554853373859663590761850094049611087776001197073692360140912410403127924226310923350591890326254262920177551628313334875500888393208509496434061095102616679703673323580209190444144432564275997714449015825145418594674791193166920833973640305667003852333248160567657585451449188844067722484297826509447849742492196720586767940271230208607031393031715225927774365925161463103904891181114629244822185310655707973120314233127516516612741891861386212167656248617225412676884645945115590706165395283025586936482935160694031163035431526951453951905430850458923713158214642820123625406985381645035222605761665326442935316216077643287103634727226877092184140589006808675670726244323629859425951112641966867457700428815528959774777458911848466200879566627868073052251438044378906863696662423346347350936204163798788172553847000719564090036047729728539579671222863220235501705162633227767757829085237067269627407224041675487153721508108598090260319958150754695833593321963283528974718575904367240228393355513678371949445445482640951557118140511180069187528284606439653455223191126399342122588434875157093560083883729894460172670592138554074193477963801872813126716903156883232591394918193509775551850523088810017802396629563686704109870467947145956786230724618290642930308999340920068178637759516988687152882167860638905472961455754736772942426303425691756016756846675221128831159556747784483274372725897396120503344509377192655371277352868689320634752661212076319597863244720058014446971794693245584005475676308068392921818874845562414111735892909202459968808210007111585837894767365857863379641776084717035918967659046391447078132717310945349906422650901346961200575494683711849066991331430503933352807449749797609764253245626498124271792715737531639371105692435106624344083928151952528905187841404831368192238419394623255940576361696391089330801481235905704441438952057669716261218587782730746612343299735737385006905001899506310548630372634629624863025988925845349891639995854030581766472895553545357918896469553777704119892234269372304743860893431277060281381858095287161642111204149729561874844314138551856939536358276648162680302988309286482832821983344967970917224615558286504777613728485482485750168925168983456505416742761382936804059931736419382816439155952107193552139936133305965758880802431007942815227780221697412296665512582522341738082383687686374388036107789052597878641799611258170972919919351883409520978078340192654478926712322025016874627063093338416382504480495277297442053829770028200272530570546393719011397897936023941109143573821081629019909806198212740130673729129663109975677190381562657326815616997006207345867609146953735754127168582669704906664355321139848689341555529045348306079353792632622846903875701145544153541728906990198135619252348942915464974987978803497719299092186193665152657323907503734464480454315892526007942755229762828458618216224414998498647819909665799634896284617302545094035202777347406593188195936901712799849659954065392214879009830484076145361229358183874635064701012713751500995524156532544148589159861440057188227582673804557412898074490440822508955146871398031429448093178779879968807193821406064301613844925231138256636555949318550229400119142741590099357029297614681324357120601815187489269977359596395526057630605066470079501663827585150150519909144231281496184609482242641508300328981234952958193063319531311260688615081986160185104505537497436978161349133482973482708050284781537397633639397647875828151007829513101315448057927360561235616532343452800635760907018289961095840667007736802049839565806153624851896007161781547396738782511378512695251129840771059354464111843105553827002343769046712298966425859584187372134747606208382910498276739376670094173290869542940732026137797223066347329686877101681306167013945889740748319685165877816028027575527349117730140403218135982727740676344052346101357346382200719165255909003000495771174727622503772164108371787562994615067721567057262093807045528679535606477340322179524183373896208176962722276064745281114144907394600695885249532263221814050302864211844555207555965141614619358764184958970562802696298321421288305277191863824111701079673614888536287423932133959128206396039246352218285034568109551198590312118508756807070349191665492113780782603869033791804091469623963457525172732189313031748756142687205852770938432975772874044548683937490254785248080536649368535812834145142443307352070139364039712877264494258914765776749648786035949367363891380790179476509705985368338389962118217247004896338147085811414829612325557619196341045110608679939348739313576727520097961092143664802704041152472156821399468403059036380588080264541290921359064456576493046118766815841729905712396460253576134009857226867499041090991510572755108585161998981001639878531271217861005434456854158680568954653477178896229327428544966997754622293338588155698516428459364462399962904882645681864426762464692212281784584186108198347462744790679936083161545033163157434689957787548066980217198341357274096307361839801321114014407665766160248205056254616248238225205835844948731403905836143983296634126695361098981621621230011062731374232877089703032184697226405391197501117241974036756986277868718948435374299543779958242117759832876417607361684144719774218281825467636679082824822773838842505586810091464072150833646786935755693297648753405538879562906829624140714774174887038435288085227291501564092049284965711766598276477436776070063081259401779345828616667041230223067104943671906072869428639033445152112190345803860392498394016699258056231269488261023029336267334614313763072154970921243357224646273212364746385868508263639559238394831478467440459743781096528891938648691002838221662824670882835905194783865819686472814196197403132937123460308867159003535552848920706160277595683478809079066950345534456528467874968490008763855093829438909768887734650863429101070127101313058298941264920129297202716514230518370298308366582022392624708961501579020456177513914454448240087415259216321309160075340818925012682838804067112295033866437653516678135209658499930776770154246681479591594255094692320173506661364495504895404979239692202780727493383158975759893613395417605907260578158902366843340649467082499639937859455247824111458152825308614356904149576218251395357957377297899145180511524830741615377335072103364739887540233924759402463956274404819455810707079673508784961887804447367359726922600653726127037314764117634823459639515905443653823945237577829372943400610577961741462810129174002190187334283891892777541548617873991550137250336677885844187974141266255872392587072463954144244339197165867612669590974461165063031549207344081842511212591338890632527904041160117608095758560580951957934018921765526221662438372728864191533985990385294696669664763924337753634330040477295815461830152006583928072103423739270937363759225541838861445766652134207675329298943515965361969400671244069640641178378247534795373526409117175272246541790814326183354103949100588074808656300697258269404925546972884845061884563939181477789703510562231371828875577949477676153488809568679967971595597781020631457904617623052875932057866943021119954157667213496860899401376409763503017517837958265387581653447271510094560312004095731229582303989025801416497995133753663597531086721203344445623189559389174679165428184732522525094996013481239732259523483061099243888073832269414507035383517391736758909172337418708543453242712953569501566756113562021630372091499938586597597197060701018928104560076105463223948103606148197551558536924399666498617014431814955708748840574679690977989823329048614135848274300362489039504261157800316132912529544368713194737702436790665773646892021405566942309677293120357340789823353848067363887061965552447212297184450450756297265673442926842857892421056406978789835549264391812850665394069239998056711688461037622232820430482470290074831378006347586702316087478260056747069798494803349251554917680051794041981278893641681169393274443554988874375283051116253183880979243937152355088707419900747884336455798341447078842670672800215351287023034219848108663485060047774265338153515633290581978057052081544019193647825814835312319043003706615740157444024196121394532087986817662519442890101871085749152560397032073753906234825764612664155766733554324253362028015065753057893151302824427765985848642155807649346609448242263295173649368224600821098184253996545498874264388324098172083462348236930921496662535739289055738464311880805645401074129472126222463925900700560309300653382410162709025992189397706669497260876127680622860431714003519354621261977949709712707273587972367190059260104453966206236982437446056297315397820946268305839370895880513837738237205854555957108013225458485321469669601009066626172551120274788272404603770466236422016166010812187604919041372018076767793473139543190939107077936594403662531252095482798306807520163284602849856418717882610923612585809930979928331559833300841442323191229620511917765074237347532376707097856818321544415379492127596468099010546067309974537956951376074307269241901909762246629752439468245791495790083390056305993024787921492883626789220130809067094907311931146709917405211008715169720983762029769552628629565733937219682509060055571822581934127179065375445864103535151252039802045176799966798800105443622167135486363554478340359867952856505188551050360121014995642015652662396664014091488579737077097471629889393948530545200908220310702713527993867166186399180288572007113214666513902099068798976876057371581001583223476533149519432130220937369420265723694471926337739543500747285683294504237729465287727645968685269872497688843261238653434708926477782600760735517390036561196847847138103458046796891039132152930587351757169276424400495194527272803682463078330369326497925903149856807400254915491036394266077626553075455416507292314475984425573597870718908304439962845421408446238010793447247347063590117548923433814104369767511809223449477096175302483287547185283506512877022270661917751396138835849125336990948127169252244153159796285409645602120247282568053508782693812202411861276549167908160885815128432105627470735092816797572238396906371978263746743285004896808093518589808340562829891460816730467262149149884768462454276274812919743782968440979628368414980556185655206016195406844072671938495154697022425414597295552405825019822290266838124107735607706026547493948055276973583236639188170987220610780836406593823814183691590968603802480619324188573193226282864973997027692976169871185146471830500162020213054200855534086582635387549580191480729435880118966760494884975392633239837887672214017487288031403911569320198069180560393625103868681445641474228598029600936590310903795259827980846396211493505972469783826823979295220873800060206219340859357908254292362259340579905511673471710856228262067514151488954543852585891568498762141787485778921496502555844831601098007057306643848117799818034970676443676381483746180714705400724563074430549403971734888860491191276751716504912089838727467572866247099500544250656224551670813039204434743070727627833207989217503359019415414213293096657198543010028242497131648578671830410362885788335611151604218283820392155318758475161881185582979737924215427676655463102939989251453302733941247920091779615959735423604519788513957686162747077574966859790015551373964901891310898713807466517507401373906194565972049083377406394738458650451553056322505586256033566104120950309685574973665449633030536860457601773748696285149184341964592312140226474834456245364254040909379501484392558972117276473956911916388544504306285383703876473485020531180331088135546141941943291265657643712732820970396691734306120626286972972677547479875759963242944958292384904692121998394551199377919338274475155097714388386002243214481703161478752028984055606563504465037427871240074917729274718330140080132334289786652856147143447465625863592360575434162268223103344380575356793855902393295693785100289357487343436383329080788046699497083959615759377775139505106407054152376401031026617720403088411046940667674265739709961832442946977667886058814153685458004536573229196663236790603153640631160968928371027981002941560285950064835577324280791357441948149450207429062383183545640393850065211632753843552446888120690871308675523159616194775392597677927101168920309570383561760680289731335725556557487383740729172355647104687022034013022843198977259911610477258752164629982716533858316088721783820841358372173509677221816073025957285489640896432005558382137189782773658347786544172072593604355767386529763232316647485686709166181183287358062871296523180154150143055602028214026047810427647852694194099837566840810083574790135353633559882073718847100195302705629758877328033532394639446398838359752885588018671252647277363881224648956074496223607955910075566528323031217949710152722086431782465541354327452798833006929722161172061290125483720910033280113597564073809353593047101516752383596693384818439208372618936800294256862947400530917579673391023969667500376480027247235996223925086987733952547537285731353581230891462521956262906425386750882377136530987103175012059665062262898394944453363956474541767657805614791095691485397006888604239974421783618780762920986291766854787247610863958458087359757926915156372094798112861568729679111879714590976087200521814427333076670815763665329712678861612504450912606525787897495987874264743748081424239573933274456081063380287192224845737740785507744425670468945044190128481210156196069797533135467601320028574322761022390227647792868469974460967615461695867197145729628003573889101936664156692723905671882346029965522426478699255577466868390636543939194533133101491973727175295458668234029006721465781313930426574824772974318319927739914826828578095412547660124402735459564554025013380748750708180050920606863982455739590800004154439259357997488433776897040058000389244467986609825979625846474304693411215336252259929537491107665200679256307642060677956395654523206963125980294670655421236791917524288355394480474156827808540836340908990744965283398579651828070510781668089056059622059898733745028431238671112630478346083577728820217693938097095501954566254929924279035573553213363699628897219330008446748622982725166883672777589218007040982092508377552209933412958221360380502940469229744120430250496463535132203031463414740258914166786991637910598182056137270762932479823663962055196974640230101178579159011356766243042942453385189785160719305314811647571349264313097269296189469812265251576787510881983488289952045553826085295726220399618129563748726488107141876064887407234368455765878174724707801388217151878579510921431536190732010722311961778462780981366395465691890712310237833971546284835829911218850392709074725397546427904955253611635061180983741581991749839057378673584836327814860784669614808615164170599557792317524055067313462208556838539816308541703259647857741127834098935689928701586934016804388345272546651992067454179926278688699131160519093715385092401696571901399135934041723311861115848603931052210917233412370185572039794253055066348912442174967569243610303975457873630736281407934228422981626977649395069527882833386265087864714682807875228429317575077681225448238531094109500458450957673238681773865541595059307849832249638639623865016677482815947314254489533055190902004359624340510525500699971726130544505194640051137029771334610189394543901789294946681885724165105870337349857758235119917875597930695529021507686473774242429689739667813284719136686272241759380772377204659692221553962636956074321565915552145643892269316894715243548546883176722029544773205636536254669311708243517561493339935896605494836339307315711427060283368030719454804819040906771068126138927851795082235314461691766278004129842579892698581459519128333870610794314740572934631338848750680441503184713743426360849962745488668647483656060505508628903241057356428882102458713674324565445292853132987692339393129650659024287069342150418202874693515937991819449271355669041976278025372698017876547071395602848659979121996407467858184351221453170944033414254920904321619218441930387691165723021135572411402815337272996914681843564740784575119349558613960860821616994731596202398373832170648425177832023740435583478330498041662963500485152057847191617149563820567945217911300115143767681312407300799435859149150175525755771459839649982654310536750876689340284269680195206678753311335165663531767342949495353127941008129046303428551702659502183816412070749627668306246588719847450847881704006120216798782997298315977110230002834276066192506443799437665526708742266821924558950260209232257549181913046093066863766115928530134569235643181770437326739330577222011193718320275602978575067603206170201260839524218718451853463548463380104526202266060549251362900613097632334465187057986180207965387216241934766378752352828134391596142985023413332368685992203994824659222016844937332050790471121530260716246325087662076182146545668523873975189520689229378743006391910558018460613282385330131130499383426350840661778352892828442556028344538753892851839864559364488172454039910263476288965947938909359053873272068824278134707500467828998762093982658398654965890235995160129018598084031788506005267680204195231268541238423996075581373259847850976578984087421068464972951068270282902897575488156889072946949246295996167291403631358367157670730047145821094058420942324899772435367903902901281740478966026259031273116059712302690750074186931034765910094330444234160389883362276941242097353947939091436721959936131449702377551136195007278360193662782440736929016169711947323988606578603986244691817491743307940362901196455487336714491594123399172552099542897029541030440502003318076917266580508830801046216230135835229779553282028733497193016985751448328793731820375211192758527930066570402304605330123998779112479810858769462938221789945411762856391515390424626187306005617367453509381426536301752534813669309796729785472887993854084560527247826932058067182132405987677899335265360310019283285424213027134801085793033408752090927653918994146066953879608798152617770325695298469196955870490645167744349807235877223278948625570516276244230024760766365011508916674035384247365153880516074009148985906643101227960761781486636801270819560123410676964880149917132904239903121996544310998170767289707437348752949396620870759284152525165713909564718742140126159001587349045275977062361717909324446600295239593979261792905172922058411208209295781131773829984639098078332833836712740722348568322591639033054996788527222004998900444718518517313226804879297016508731469461983035272514056401682856427523590721455743109121076106513451263372771038115754979366196687748067741212255776459575143277033985755024107577806634017008725025752959140827878893368561544666016171234189630322065404739071950449142621277146588446699461649612439784791004289823865864219348469823277041065144444616621132113199767663047971523382656947361626459479265663943412918670747722392749988216115480439624331405391528878894765109036629936251214784032074716230136965128215149077755764872663808700557211340201434627957561617485929942392241227022909870805174597656978651812981234489746541531601292822235557949192209732733970511904243196587785947793172142936038491088467596153242767712881619698745912598272766953891060626310114347865976667322014172320526950600430403908657478061816923718697180789438065032553145003461942988115092291277955580955098217934850041602968833212166311735461056318529777904522121788706936237685069629377098966759290438564481009966246341790312476962626208474558720795264777570884726038553680100220561520096844767503472672768756092744262070277273684031889367359143993762690629405864909007826964899323275397457011614009943906904017691039530907119641342172252206975024470007552616815974693589102146790740765663934326254510636388623623597365836361374354977824324293530212158103026188146041572069313640702082924951112566829166344906476959468430369731169149096816463117244450229956034676820371592906929489612304608133752719128880845741383992386015823873286497020380362289715591059750836267155693568563640074739916150058686623938403034302394910618920627200524562367652596487981799182046681976181188144329776338008064103551036330229422266872444368641438094124403306387551484296270559833670094469712084835808040170542235134227504420460673430659725231830721299892860343541251414176566794586573315743413360221605387406468359239335245519379713849724446071940228061367982373769344744474470006389766169177701461075822647677818572190301040122882275687133577189119652159896012245966404337273100701737066634068121497006137485692636460979255318700069772448544079998907230259994583934278273502439777472067381523811115283790950396440442368757834427519730447107309700426140264688925125216212471754173694012202791247506168515231146260060374379425252925168994373415983376363939723468494314491646593916646943657398981809106260491043720275110665350218794700564828906568980641465161355760680604676641945750933717499328349300311321833154573036819360557239230661942811228511768175683495739140784969873075410047506056355360022642757892562559934231125718999443905286698580274990189806639491647633117917349248002606851501208525165974862358538734626300565594512016512073796011414055040920236192448523682384100751729303338755030747374066030669829005277618703130881795854808001114123011085063050134664960447948469980274111270529817555601838788732171464032039887022929006881590276279470514506493747015190761378780297709970109764126616229717991355313584260073378231871898443451506015984541066584591034986816390342230406549408160013827612459766555997605176025564592596845263340893408566486240418651638264588909586888372717544023029015491341962513433793569047061756989138498420199250661871289425707905565033351504371213808933798632935004273462158135406080267816052263204400710340199687542596598773699372850357537736888335093933559109653736615932032925306307280108988875458539365014150087214615192568471970569325050786159797509375079554358558619940404132726170542143344467727349263093664456221516739927777689130474400805134056159967366412812378274568589891651606945482691416619515088243008822422660097643908919847769194310894108770252923471358354218989864419224822661283493226263474923828967676408484047913026220023889540192789728656792054644141644261500540635397513064581994084526440697345705597145698536686311980786120061331979873051089854908987481651158294954102470678056468407406386150389902231170685667038871160067131479230682587679069981047157455977538851813246879942451356376848651302207943369919823133696548123261004560192709480438592927280800089609056385760492343231047368360308223438543717326600615307526020445386894965095012278846230946595400644282324083458702154289610109899702876480210346065187974046876637316172392901775991664818632054530588998096936927788854468610378917551668732442848460208011626904456107859081293528360477446324571016173516944497452263377955551204493321864830960171388630259800737334778892656473485254667639492049790136372019574689035346634699280966626732276322392557144437327774378677347389726283345475430165161521680139061715733228048018522998605594304957809077813331260002159915955527377185060105509757353669422387174200483340844599722274020572223914549425347523304623020224776875297708124404972097861389306346388448604212396080053639452074218779523535890299218537777520256824831203125566181811002212692876860325532711649946391675073360981822690364438642372265049263398085844072588102817316214176051967296275339072231674751882251932514713519527482910881700280322811295001038248600946054450499149497530773725477342879536677256395791585119333483465169203918653742839782255996297338387815694242723710831393496982467861786711758344479019081992599383381644118466530540608746017513953177880599186470383626106667245001312621234867194283399016870947488382078845511733670526596166204121781613384875412331370724728665411575430539026650249227096702945323015101513070496098034015722796358154122601779547327399485274231375687619069344526575184735995389180894298392840195490830847265775824112349257577702514166870088107275433971035178262214809819909857528473989168882832078330902473695398322325796019361057125762127395980360006751041605718321814420264169257722503596226846422639929822826865667955777749148838351174894593398995343679032732602509090235013109337022993438756208380664030266932243295308107946026319067033892183525731529264161471900991984266543440206942124644639702857071425941281712222026147527043727539312227134486306682258805904304483539927200860422704649786698595975846818187959135895475161195930443736040887353819337706826235898607623374813292362379762745685447358789843064611225719622005755777475958736889830062893543253752557352368862065706332030481085942463622750404575813364470578267206930476324242281188029121046947353116021067674659164141903987749597298723070649740239189202780076512282126671608823241001277536901964580629926491969809482596701293902119129706822532577288929561796689126490405020505311372951518260549468015383342716196856464173170779376198261888104905874675484308687126894404871474864919960864456295373474566042459382989185325071792236615946821649796108377877373088699308161653707166400537163767973058894659229051331888887727648174160299538895376830859591163972794278653927389800179298718544601759866675796190069601455455697209941726001003780408702428733078292446697772340862801663621678195504948997924794230619736678219387557379708048342310797315549427960185848586969739828781495332367841295522559117495593928195391709698396036986854046560071101689576192134338164558749729208422027714576296068950098648171938146818968596800606006166988223641503843742507862535360676988575809764151064323179633097289752179334094436656975413285471883767505959534712968445389099909604851107842178140030927791313698818446267129846896564664387263191938600441993992315228437512303150517154170605394590464331139787418299206668053934741286618614365062438311125281410229421152126393642626177869713598020679312770614179890183763534551449401516618533448889157523318771116739166295345011238282003618810122267047879809071272966743150515079073723251909025610975230466786601994218332696776277333395601210572819703919490805881034947857119954907177203274242551688915823662790131572261783105027628118803134204805201084211395191826854792502049564727846404354876768775558932531757533452913023176272264633410265006903998158330626804020391862029531349569991674611755821371063657377047802223972264029277345668908033979048182077176128982786004478686085244730691126844299736353754105466248669248242014040556472271946575710325801995524436816422116583181732601693390927084717224545639615922008718859118384998412963267184942288438084737567360245186451119955867910841909127162714238802017787598590138255717472396427960401997751104544666369161658354592119520305063358729786257050744782985883403507903036514971476852136462154314508511090764030438022353790889975972126907717859056223637502026329134121318563665618940897952236713524820793807605100525203090662707064528614898269229486863698911886803023466604080945276781068188050049276776020498070524142060121114441914347495865068210170245744693232331891365624991253935677489601364801825428492915546910247007497422812692272668148407854299560598847033543857244012994010786179106664982968633579654597701338323788197377124492518883753373496868709567369249678545650259200768229200786440310204945378082827397299342748454336535226441140848326936123280776824477449171619637055449206095409864131541672693916185885950734919123850381028917580604449399345250959120050687734165855805943515973343721698104402611665453225677567791347814640759953384362310032649196568077003609703869029145904020922766600046623881006427383182296809869515638259282746656933362681559025491205199437421614143333929375525473324644795846582770253000866652808894611578239427533813471475543620047910437162250336434046525775382608253115514526519938361330934368336298875468876704233544617397629169459544996634460789261054028126036531910592114530072857345811592795973455778008657873917327886887711686987021603335862523009046243517457699141698180480254749335219255628842865619257564233276414088029526271503285801610977567197916590981563612212484548925401905255969049821426940696076439826725391107762949979251308944096674323653009580495245719973838350395198889412350893453039742655423159751279457607776566305407756317771631421770424659164485899326903670934157119629244105127441179671418707609965083416711460311869271384517681037132678290908620386026167165365564911305742299452236525590740204164868828624984208061269611763477715558719089890772635528121909963224091400688744734218120938286408640191683026546759834978002724425319880328848233066896514129716614703444163683172802470014403933162693610084485255534383083605487904556827676140876821878559254097491077638525287961292109095534089395065110604556394944167041815720483610949764854602236471114533903380236941768921958412647163296177928724890964569418133652873694195964782558840476664123020476187888492740217030013611219739067549470179960143586298231078521821282612549519282687982155513644347222584016711520471402398680042423321932726433183952618061683664214158077601922682403162139405282518460347786092488280522600548529341638156412885783404379639947570101757679635646962991443845175958197866403758206937427855743504468667216215487779509688079007608735021703959335073724701613236628879399822703435120669831036912970887405815977825820132924076456025061452642487574820915880926692979353992552460405240289042723250125880545589639615379646580496198749947876538838213261372017789267267799687592865269655447634156925639142253528668576585584979025839571063238447696152614106287075129555605111329030968952282892015753484207812930833986575335874003060516861702741155071363585999971421244065573475410661458024669019979701241193195756708255501644266384859084999493031341442104136514865201725835156467448712599807972447378366180567642877551775205846041814437774129203652247710952528432417939285215372808346724999026632925385530768934141039459727685891340569950233664685139605671292488877861153350704339617431683736885213291880401766131358789735036752886713811081918629794623751021874382941948003411595284059534892014219493016141057402688642591029674969995193601426968356206909572186011624023435839806543269846075406992483268283775630024578000961958062738178833125890287483964322996213652761861702814904360976176974340741905782808245635527919691288844701204775675665499505603861075003850882549169540933776630295622206472707992367754341933131439971418510907598929173752864493893095950192474936039176591035482044096876391963048081730660039990110108194087467017704339405599931508732996387449663077318251169840246478047367414871001615011551687816618154446647769133413955185215020577212874421592254622282543404475234137601075560609670273706587167021766910210400083420968876943232484527098382118490214573193005722279772908933169430744828494531424837827785416166499768183718417716267490329849046969928376603008482897347000015973331798638253567795490895064487322997979379055836406426448994255374345884576699762581375109024137000988978715177445626373890091482055993488631770834312969494253002977848743927041626506343034724607973064670316638174857222984020142827543577435962855472868543193275294563692497659175158964136497051810677403951765905738677026453777704252974878383240814092026541132380077129615158227941538614485326399128042672049789344332575365945941874146626984745843963467628603044285013229633972432090058681771336878348344673382515574230696879229080446126677368217959698377485970703015132976663527523420811455215316278295359752872227225954250044681265591677863240878185728404676870359744765347832716204470125593129600829527910076492938969655118376764328032399667995250829533950562372693317847938517774824948591775989638079361402294540730211532481400833036807885456409190694065212003247495586374466204412554595522743909773223018121823824761892461932065776400299471654200982950922822193133013889506782882212776726891753988549212159759985301992330796241695293131767230812670504915383545074104453173597568146782890177049336757976727447907180906283975602576586368017375089924576989358011541634880276895150408993876583728513854022378248981797624797967298529022927135613258951289875059582756036665034894295521694332337745496205295226674649114054704067607767929403844250505354671707256947753634149383961779058574994262584731561353441044257844949153823441157581996612985556805988055695084162879825559527686016331308733226641934494350637182398310872162815414216977726467067836041963493622898463892071023484164637586490072957553197820729254253383034409354832145253784883352659860924787862848646889154399397045894285989618771074519332950655292618441527929773812762373282622644588420563952771880747956009307144187455799014511904242781846801383555872216070995620981733991016733384023451918800723308207359795916497498283306744061341625236224006527250841672263165481518808578179475525178192186168615221096805448221555082435410822206572853091027071246108802678068790102200590015905226722924417143767943009727786654876877629316339614999792867891536635397025959834287129478848369328141092211979374787322577021371623130310554952726902192890570736920478667025098342441634538818114286686442721251379989327873013181185270989934633946179549664656973109823996784357730315579622045985685153892023488246163833053075925917367074564199235527944226040306963064767099864739946379578463073545782986269795342999128509169471971065563704061907626387490121966463554772142624361955729116272090433118189573392925316043851779661702234082298974100849138163314821615363603818769991117497744616388061735848286741158276506989790246758899751434179676662097912211773908432869884723953946589399341873910709258238801627969062375106370215478062403487650458203326398345774305621820359553789952659899322395886412575282810985561008616753894818470666868161401399971135375524428684549646723640908221106929550904865365019057882771765689565502389396205445441856516384396933903952086298947327777788515092841391735844856161167172535282921319953877430309863712935773245989744992366530144769928319889433549433006287150756198790784425764804604965381471719188970846464408327005833910773818230124394151502547990500784139997243348421544938435627353838509743824907804840019726646316888052247744112519500817106191470150864566248839154672791582122657195871123444964833904069144842438626812955321379845044366837115816089139368670429658079452391817849992583830128136835367106613334045638511490995962392985653698042845357094630084889473419760169736604644149944375576140533972936522763483419765850605325243922563657393878455739909477120174380972879957064652523332358611520580614851307596319142629294413978983198944436345135839384453002413037619234412827987568041256892638406741309024903625550526585185001424333871774394600624336734347299878287837591047804360539818969392008635641170545945023876654957281894011919716812467613547617525795666268024406135676238303144111804718277704515500868989348610971085685506007296406370623430817155100830355622604012321018088983101126394084202047648686016919699834270537678439206527796110999258251252829529918271427700693936973082331456508763382943376337180244017210727087838696751882550210923005235556373989537137432913791256764775998854823986949434241512691017878518144023878129543362183310382973084550168836307390877611013530754524127029382101962427684315064840629340337876069269008061989650108364378463004567113577973207320987392627933722057014797103967807551918707355485740850429210551203735229121798413117744617165468415565356790268137483373619652144501861651803324150051365230787077808206850783103080385077897027811042991570226210134499533129822163062107765670748177209473579392613713688553294287849520384133647496654523807829559443132396734167287433867128593688078275042553287262015022283872258941141667813048381570244286747636281660920615523845870840526153030181199574179357855271545911690228889311335934826406399041543640795915248126661277423535546680066984905445821090183293748908503560495864267250645262316985954713208692438030734450256548053693198088127461570674027819255332642439389379753572413923675426647037137796903769566528724720490094653308731669613824682035217121045274307880434962024297065842930337475274322700427915401745224307884047622155670524958887636470164446425923946150115078449182572815628579554577061567665635904484528922359469321812602257327798958674021815389567940110437546731838306270055248202119655700096374282948654966419528499526990845027272040149215399804487245557091072815728092180754752269765309816920776117449127647564052140462721158556339500405857620147056621879393593775746644709154479943581607511829506264207661625474576632249240776358461260091202242483809804570211276672170247893215441075436161978647128941709927808623999150274765461409344728784596518192767992862978640195959566673060368374052940150249913395434902329283702149452608276824927168787823085675515504186199208686876937154779809634575299365808151118430841793765718857866098053354451001755509718436173365844958847425770535517349163959149309249375104070088038635811688625387599357876920739418582041459969820568711181911662834816867197058874829135525850719138037691162700342150669927484060938019149412137578117094251284020747391170383342468071626014480646019722983692157949632192153223415233644963892580496636269981608369618620778461242366677360192200129246454233246278613552789236958728846580493684442218329943734000551730870872789547778733451868358990106938262692162019723464965138344039903359556252563890363665543226152880679224674417908206136052665299937978580480852354910196988253242858588324335179527214514787169444402261874563483370164064201406797677867329579659501651162113037131220651249130657191715614363725598272667762403949123394007759121004997070651831701386745029464794408436087565574456432510729371171050919269041072945015196534774956652245234456470236841085195836254483766912787087687632840633535157348595087379436765522195501236974308188571711556893393372808448064473357381951824074657328268256350589034426588625686086213404208712370750686155476192743023442908748987223682975547589098031248792099199618856330926670521301572053066974242723431875635365457599284805678607647310791553737882820677202358027491587234321061412536499237908632548649400568385616702749247998601767631406888600571280611781332443565370137885233886097531544852107450518848612701631878584030617100514188093608040571340731164096766874629434284291147947532041844564251326039655461568057424294301905470130609516066508058969909187208718652273716583987879944982038928868294432002637108436661763424957692769095352718436819065624622042151538013833787776247107429700168420586087608421641417829693863890932366162359239399928943749282844427959330470836781351063222591568342104454727352105350013908107468832759077090356375259957250045648588968811868700582148524117464451471285003415166543570811062877272169966057693009831477055274256515120915735390356316942328657957224854163213198180696559682038050282690518764356360525479731256885466398175297104031252765793774992281181923328579214282140739035623232821689689619527187302329872834685128433945347026927486706862628229624226270468298855868144540850845393187159973410540427618374104879474141456880696682407192727944050483774623412746807156870247468201142839832223404418221837422541534861466421601509415166267780791783551223744770950242780906805901687580672866212579493923835675245366440462952172612620081117442091002498728881791139884910010704788914805278345837033074539954881603052220742013471442394800677647006191662607437684296735869227031536392101396371593832475944918429447271011955933161636803324447654628092377846747948991236350062855176263048647644043111588814051428564345047204487792300832805968527632651393287837123562426230362282295035885196320550103280109421086285591385244452540392780979870738340657270466813363037449591749569809451398777331972999353241276373982662225131371685547697804123599145126952052245587009020467631800785601472055134860302367417031930554152003955005798478292755611554606979784973664760292019074964424868020802021786866487549484217517170920223324007804892574468710925416314578348590749115624593341507734377386156838131631408042698647188287693751520178002857348628709406730540816770217415080781637528215193095040471254162385269265514693654777056521823535315099898788537379188573261343211484593652421325352373116906557875238966519782568335836441577760588528601219454677157205502897240028811470705707513619913116952255197136068607282615741862152018497986425440611331265187033639448719717152775936250269135251397930304626735190364349711486946032334452804670757760790801791637999611539150302476550531455209134378483297057360979692546949086741471257656069514026772620779672668567429999794930521593342306183330836269078120132595527182362365557080937899835985984301435626244145008744066612732766399057443318881039488091390999703911385280886303456101461167378999583566212630549660291794782931232744353246577382051915574221394743702304415692941497078326411199141601104864525570702395276444050920929710321531436116281982337936358625195111523667391682829884994462095795965443884446530837719106789219634070189380738017041113690331246837545998672087538536996627420947699593587634361635796229520003812748427889267683400850849590064080356770439513008096197740424756533363488821834059939167209568472328498998959391517868629783455217538789205411897207358127944477531743641750831301631688519718647443103070067041525976210004414554145656013184465971084537811440844812594637868805076213258137664324355982995304928292831627865718313458408806132051279017700514338546518135636117594554815278031905229684925572003137298244323760069495983971519725391213238897055135814649071463334416810825965653682013259271244321133161705154786618310847998252365605197584185629137113860515565803615631787021826530969616598330632686753502821243924090977397498378940713194356651630028112641106302988654421105704890829894720271043237463705722598895437649858620245791886425943248314939384730193484732706560813768551070189935007557725588200064608716269736356275710179360697282677425321235457967046411396653429513814235653866373374311707651024998207110724235348659304100962990239365459805259016848488094455996043659292119756119592356515188269215095316568267619667662459888968863088761491439626643980687623977923250607609223370436639168908877595379182760452184963938458694999838858208031453518579983703396230880622473024138789802777528957792163849539143366096936322963889066420557747387304978868952355586937591733694749155824962780659935828004793273685987258194056032010439204191320732774222057206587169465359468411925434396802001369485234016758032712632659566121258636696765774176117110778634032792815906717574409651906754584327740462349862253607172501169729065662394578359240820061493731629073079019661523740411368328771792191204537918583702791750087003887875104425859868431493600522119981260214212066953109142669463888133026356648730980955018948228231369214961721826690195590411266247178837661542471461477438272401593661003560273059456368507246681818181975669632942447604033443603903868699852083080829638975214194091735109695174210204787256316735521116019838252993773219176772785052438678295445476669138010469932825886869380209364809921282304422753954534837882099933582588164084294868395085979216525807205817787411690487281477892979523174599701004153165704275932157887192638367621510809748320638287830207242268946062124267761894388886397212297435563308514200241868374566697706376954931105255339488703862998741562392895553383442115238956611885584794930959474000892299083207857155490203583162213624666621080188859951800783286808917775733143995903163366660573847770680456896183723830296102650447314112800850705383520562401005224484338178497151687798831187592430603581735244145442671821212128624760557160447947571854594067194225711687471020272384888727570322128873775497528083105231462605276363359957573649720731150740194216997435773083031462965123521924228685285028793114495664594885613984559762625093119650267629413474420940498948359690438744321165127241285955515500598887229862057594899613276604980831891966387347544059291830685243726573998159334721024184929188931677970330153147067243307211010594217609611208737659438467939781684127239319883871817629289578987456497929318400043466577166800097464541693085861310612880833959144641288022485114114555124586170648076651171277711568367857446571193285588585572547602967171780476670827157568867792719584426051662304353404248098494934098987839626453523327339537556097812850166385168911107427909200404900587362098669578281428444257634168204508315579480878014438896473529725424706608917024737893905065562507301586111460382964839397889810797867877394907136073977883389475595895569182091311261184960346793117742710364567532966523221698339533511955306669646143739940710535528846398536772429315360763928724449420195219130407509738309582483248353525407488631046192544684387416129753401077931403319534127083152390456162739671418956745316837049620918013477448165423999145119213059314885819131743570367884518721720127630556638820102015209825209571972031401513470367965790301823358106261430537965706043155008763732987124123298044214866214880694607033383981457335140509850678413047572042727174420102131146378040450203870124719053544539732517175949652653778815855119958590948450227201503208064194898841030104711704460515688118889542145547556330428608725598335854484273865134131853290436185882155501974347258457768520926056008957281589343262718535232903098011453001457146912277575677237862170432672189994178476522059767178884034886065886034292828276410319615351486460035482166514090662965265333188021166166242507117755532782615529528633620913096015553956928884547304863894577715050475926780879503583450667504124562032951418142098007074163934658182916393986622765348187963872110826904784753223472628599426574127807429624747354725755302814769892276837129848955847420863471858129901495813255015285373955919196026339316810817275263234527687446856411821716750480380616301724039245500704201741339358536661147881506520819047634558683133673638753655632281454911207972648681255804000254242855498688318773135496480085780590654867110173910707762830792284302840191269128643478907196225502551534538959569550820438248804775448920966245172475641493648477138763021398288213379327079694312339523075384251225811295380037776340331788907084259401754149228519648190793687860419353347987365483104985439728653191701266211616003457782918827416643738968790964665037532473647352189658062568264164969050766949413229400330856381086271675462363291106084229229756242373484331637496971884612726498094873271651525828965182398769882005334269494977717372597721480137780393573226797145091966134377901492867839171519960118115433457973620805461665061343155855760495802284510810087207998812370871428968483462114446456659054988490930887461543146736628135605803021193440031664166185315952988539351595317425726169091224222879266754230894266776644829276514304485807594854586200699146232016597632684284433603669037465680680950087599156171597073798862908089061065051817694636459704014745822621727375605089875680940925316467108678382430841962771734578910832342091751702374504600385493739147719127615248534386505201121477188495203371110299018090512684976226776530377416766621892309314396902934849090278225639062144254040285780386859944722930917958207748460294438235962599881674024351174904520357497240857561883271160133361652134544842084039917999638578229596266636538861036447394054823631438298842024494743315937210437620874955656180630555742306385129270696803760117181869888670502030422248668041491545930056980891136351717455158431556881165087181129317602409563208151373139495955714199331715964370158891042482751402294376244900693901818420317105887879580662920527793250889846375994757181562114459316426237762022659442020790369127537304989416607536894620989466771345583484972996229009278384031441638292746881032825396910680822883602209893627330556326812275634103553520814503780661237474317216361991634840533920918348619645918447137190064582237365763996985662007557955000441872986714957874733809367389847075216289994834001895615667430161043775497179923518476351535640267400342558772883220121713475811408846716906917034117303329869170547168994689932335559734379274792917720791929031936105185125644703700181638381233934726537079198739105183842452077419801444508705576802283561329574284136872718094494143897499759013113318905291992225771789163438007639539784314934888333861267299240026193931175300748869778318845388342102249167599622118259885117996751140486820538608707710874778863463946403309234979343046462870255611851912969545022549362573183056859771579564214718772862814642471049705497537457242954373771268939139437524638199359140838191012523253524860522615213217176664019160726476740183837362522073377635054247272858164833443455527309871132998474055326301791255426816276483830065594849842639245121030698453749101351034794713341988013234811437661081857061696945212877986055356930544678562510639950083202828753722335530043934453542054662662131682562579218474600947309730556413828974688531618219427192641692198574277358206026178338425247161410009134609766886084075247719116449987608590454692990468986642947401514897440673649139672476830125022306450249990416305843180346256241975024001681999276910710034004586317628896951714757574825741922910850673362639943834967694058868930513554148963276991746611679816679597568862887534832543487582313164125649428777784647518010579886745822910245605617387194190125039773511980038702032092450743387093385813779542164723893188093778536149263336711900160607205840288137032302945899509714813686595284814329205660085293951109570929956983220779774604231985325676119561815723737389411521102899401552393742242840029013327295997320399611774868734284761740733038685313842053791281746022577048926234461163308486216093267721730690218752905812814395949308446860665257858669429899922792601773438949824060413139909274853773291170242085018993906026678315324985182937739458404789204842325208646159133411512253726981149772088996923094782594181918743778775025997282385398311462178892928170761071579826082038568349838110170696656929333547723926627865090106715373711231414789813619169532027105259636041947720532631006136494577969617485796728217806841578669263720829440882893740691781135053664765793812350986290941700862116081872691199565928093071267642278574253217153474880071696721784475515841673008395704217483509664417760458589703727817808627676055666101188270019886603618033019887127187620045023273238765759432921716430637963772528933916095038248369402025320508914651316912779972005959498110506634195551658111097709049433351281913994930750957601966867203887487949834427830644928194757920876840064805685819158328801198414168849263542777363363920976811314379776846347749169195085790944124453077766779031037111475785674191637794873487503228343239571081072486520570905127020244604823000487158217025819505844966145729126726958444327044335612432866397718532418452789370637228859389321079249145210648332686291142023444678675483990199562298483194619825776186425908996479589945674440047977430055264954930221685601598186987638876388767464097898573033765331713170111092651387283422615154892837782550814161338306260200194549431868922132514936327150718965736713937032468027188202415033809427973816297200862095573944611840156821200516738743939951972972262850585331311510533376213841872163533028613911123413508747120022232166998973636678020059568991362151344638356688146119886958208772209236307882898541107281745730831191710131462207347737255938938778234423248807347479142833340900135908007062011642969321895036660683753273259106454643693842185832594832089658153155955413957849750757547993961221943184488563334945515970437391320447877011223975537654725124586154848772820675301857341220923701806240542712013218458310866660466407940284224910529178486157710511055911373481606121504024444508466696927947828586522722500674424061880992298616144465767075095012928839453957756467379216522548674446324670605973088153772230221168720544019967226741220700145680463497531586537850823635636035072480689573354028183758639248551635343009636174976761685369152093555453181932609037977747379686139645753725739750714038480441610351272719569976085261783073238862517266945865069633559386273813348725327086920676820696016001305724555169088574401073750480413726703793806648221677372179788613979704617562904923520074877844801036170502626143092450249863642281856756715753072476869065062443330025898753722147426262069229442843892285049710969671422178978498833728944343280967928671168616357623393397675259281887033722902247469154569720300365953446599984589333730662391890662885784056650637791659348009592411090279371759965113558853940368741884460369995646263304172306175734505479085440562989371730905470758818078218371242294634605481297524368555506738321209559669532971926076786884088088949647525618480368587802205368124841873403438499102498986967987458721905206012834175526153223907407003739198698261382339686594876541774969828033117576752467240928500969102901630502707176347233089835971533842412227380148528535574995857836854112492115186796023531229113495396923366657307167176803689413190477042026189995397433271211597252338371528205052349645338621778517250943953688769967693470946067403091793475821868094963424873493802752086909696404079636902196183040757337985074558615608820140936505997658558451689458236903171576913514844544738060083801320545433715066067042288668201028503428717786925850493964843554304611072386280677539343374184662628117915112881740869720343582249457228044518087625086791361145355651618428386637128948954141623913209972652725525520751912626395002174703086618487542597287104422221597804089791181826007702275681778711490791282681540706131579760380496540751486578258616999187761842488230942564035386877994733921079012345981403031914338275131158558463928243694653394423697072257868043344356957859324415232105437080670539478960434154751294029632786155694120830080501155271384933841643777005795048269131916944721360483646579606496151946775011662883094054512541138874493142545730536117870473629524275788534610399213394409734844145352253154433522029282823630716637415221559198447538772051636933378987283826464784916569546556123878431479738308754590479414186019613210920424853079480763029260479158969569146576764555152905199214578782139101877588188252280436528142423929262575452236175366015075611014220293478518236721777857545752267330015418262629894051747191130019131698241457028986390563304474973173872431084892337942170710351133557859065525869352409296310474776445360480386838318261944763789329252573155966344554432988558045501276351228480493254212246000166166047226548962052393262259341339438361995953410486395268368452288082389002927958001640939274516293905199879101729578902260120892767350101317755191755856696023303684247392071928679337781385174100722893513317826420348863501804042787383877022907319996967062731928054301203658935534851094429251635948899064652722791242467496293783141717594148695966886592403478048000402451084894126362583413951949116149810256647119732110883418896536451627356921099802745411401841450613500489249449966245836378790104532389920793827199327436258506224291274302962711555805134779606646048825138378609080801230245441773455763308564338560703473369669190846615130070682456234692175714396948636724236596631340679393833293846524280919053500714093651481733888146228455773769429183935810912297034708811119276783134230399572434639574770419346903550603599097272137498738646288137979731017760001144646528003465214583701971074143577393024764171263224239364252670139084560065730045460703190007873254907411699383231163561354179763076046478037114981188843224750334556936276809049016298857303914328402785122030874695771089261381636615792147643976243331076507699047391338902371894631723257981518021308219618175729176117096421992626811637682647497947138571157688533790743164011688885912379171607881283718259294560179716331476975888615247981852639314311239525377031458234392157807736319841374935524598054746672911480210952682825485650366349347629763404189186726935317206233982223867262256044355099955428555450508850276875317541214378654279255074905536994952810220517939067572816829265375176306408463178030796488804143497736162534024936707232437350023449496981691115195715235891713602213126576070251713208233179500744257375609438191183069405622937093737373790151603280748351097537871257693395729504898799993864887831470842036208173284110798639341354068760806626936657471340154164829697258977576398394237853309233961370444180711445541354193185465007985184699719535187848084531533445486428342105483215514079265654919998999556187469708179414754481722661652209424095586986489128292437696426752951549661501391437525032297603107190235819379400260333602848648894690156817367485445448911601549243709869323677041979077126321408326776950951015269399212375962556943823959243321099633467123945550871143572961087839770878294993754746932852822657610134248165258193071341608752821762376811134882549670883466119992284933954353510827164153027396523098432759249560057124018646678085444579682688138933669335248556561892638427996425246848289334956996351054218405525728883542208438779583205198524292570330324415454817991604640770032253044647986113322571214844817438302688663797458385061718868491337540277330782259080879590327917376986029181001028231246698241725769368570848394437013517775622471310150402010425156322107191677265806265847526945533444148120122245182963836951212298065372046491170302164736523161044775628461748863529140971189433303281575501382748819109205321257136292083690078466509511905388233238522942504060846148901858369406835922858728354114875031246681532110560584220816694504203212742712783830200137319440734073893766334194168946516895082979004983763350028868775372524287008636925673034305846407685403939714134855520451052270456071675674769782809497456167545324324756093859672883862006651715001300638156994977248024281339892647357850358177280774828458675370967802071165367228043421145974088441723324539263022990437380649413719100000254764429187904851348714499624793226689829635837506530691007955597466900510641738306317553324775331742274620599087243652903073641531001750741867031139120395714384427916755962138780997649280128460331759714470214416422993950188642335001442543087033682173288510002100355541357976970539637313993370632551937019727416009224214195547510513331075435298545996090593006187763247435347016468637172552238280409168351043285709814347467618818549427702293179196276346974655327053651759841939549965374096709045224860224389534274973636396042490536611404039427264314217860234688810972149164323527488872437105282542494392937009381377280033643237218485266640595973634446878951673072856353825398520092119746776672660716177690290958080523475780579684049944821637861528059010833113567051934259712028906959857523164096009623022100646936175157188255844955113881569293995724029544299690535970991078171822671194694380947279740508497782819225675798632750810002137395583267493710332981605564069863285919269912810272652556269984451557788251757706110878340887124518289284375516960044539884853436587475260192843655229664409957503270220190117228643226767976569194562854354641069698533086513353620934057509725450738041138307342957820521946491913217367264963726294341041397990103553002388297620040828785156181856867417944231778152942397131652578635668869842293700725667361603041025325378554194360798301290765161163316978718162646289542198634804167817764542062570249439895790866743354381177327081717886931775111275667175398163553012316787323373550037785932388772144575223071638600681119845779568703724656895914625835943486454978049877203958839317145779445314084013882875562509409809848760291459548913289892534674617920579240177186584326818036992921046397574803029168776501825356392560061285191787092911819413591820399392822526950729461696558456991160454611659829058793134298063313136752271559502991385611993906511275885648218439918644859662879441705898327128562339768807884633308615742012311238519151268949507936475573531303797438714135684695007029317905369853496717753153857986065294474583044323770003572655250134924267607580014829014975124262394434924280899158533236507867807861629406070539500706992607274828084526449566365252272095151295730491874881134254269032279921638902006642221715645869076230778980723397263864576171348397683858280248021678545522966443150569720763872720433871057064141849400954489896255911819141495697958494938718133810351729439955305224769534469853408681619393723840262952171005748922244065552872793697535447989820127872471931812553015243948980917684214119508768746747241194598041837172095132999222875778929002204263439380767189612173059396688546053087582425293347228565692743784319491583197848616215216218957437487696046444074593497285157329534913769008038829945288179513372011800452549202236235524490812147621325763662102999027309528069397331946067322775817669589774174783367273505688461458163356117326649728552503827345979661820671082805907739876383039843943407047345822816988923744736811198472860215531110096014343079114423655690367095889589728625761714997737741373280203782462366262680767891666400729650040747425178334805081684257386079556913398947572153526427067738178328749807894667909913746637478445927218840886898927308931870140168763073789382610933570375173389724477546276336107307950093538709205892841073222440339644502814896944393797375150199653885126569903709363277019744814078659797518784686463145042377430974206265138886143357218166809500593512429340136489780694006865772749283006018151923987840254499622449948674843995389917230307213690104224128284048237087232043166906609177470748467236942373801907856458263920751273863732322741772364639237396628134494407456076713084403439689590477463668690391055175735829503147052844491814326073326418538217880297381080461191103416254440683796475660402370094998773148611417832566737019371820759401750329342358300253587436387165163879118055095448775201568233971680846867031580115372363956987209899952030078849134566124821585602258009083770446819511592279289788859722431069112295644663062034294575840790141466565995648208436066893489529806485280273564449664010072873249129227768698085343581834373934832893957493437142987010985769308977339183768753217612776988056830821766886302416146524749732609938909529112739849204197292914070697769257831363737976615805734423190138514016040603907365336007533157704472950735902418732850388572374133888211191555295439161789458875097918175326131321059829688710835049117602980781696995617613566166840429594722843565938913683270567513962737032642024740143520897363045758161717968711078369084260677329510292596344217212604324494483966074883046024472320852699375481189810912314520207541924704500151196776597037916474048474826335627626606327105283508153579552513073842151567861175089540292996770709965733158192978468915718455377220855091053009142120689354957811166797555078498076265103374948931105461421855690616521430229722089033664002701195645866852025795075701934397237283150705424094462344433767025633296353868003993146924886241644773834066321865197926326142323014662689488366937833562290823298595955746768064066543248708997234052949863693458475779893504873588624195618665984319840341047383838190394569011817107096043211346460208934374802977855304940398908113554016123542510451208412270565070599183332802019723915016417652043890779593793617310336335440031736850497214961150748258914332731981500390463139604046032556479164045556545777447754851228508526228714445874408753990693475723148530293290065431003624721790188167551591769867276506159264495558755100025438585242374841743448965955422339187702768502574280576872094571377723477896158827078883515765979752309852232728235489612939873358665922663684318709970419815895507076464352799197908258852630387950622937118144100485369920297453334342804348149264916090470973939233091326920382144501390055236714506408302104187149448866798853957728767965277866630070515809658052126517250743288758457839548048023864503822892250694201711441504269175917014812093694047650968157888177827449538786510502046675109327192102715676652198094111174750181892661191605718848634746539823808217574238064377926913370002841677124669156054072128243423816817985194748142062259778692312060178487701991666767733021445558434344515304947086416495617258770617310626311181849228435320264838875505421214278659002263641801432048679588908982165949693177302217933870614741225517771632130145919396261844501165787729345210759633188587286423360135858766602139365389283640184226279208560973268421887206144652540371471570422128050073149702337646517890235939191910625141307564955486713420839306221396052748807315139684832526752328997882012331574060360569388366168093339472934922050753994977171009474996402630115006680823249284516188462038588894195780592532692924175227969644998567832923469190248917743881282351516165292063101839210382278955612717816459546965856406492887026866442515316620003043302353040272941319426814822376377988384827318870971002575985962026523676680083089313059040783655251153779926568718040607259444448751049293987809058057577351134923756132912821305516420704360663744673929840340424140905542093109513288584658790353089030412760929407332207646530571579877937288199741048555481681964381820238663637543990385677442786604103502778291305047424908046346459682972586004216604541239898565702077214085649746209668859799841436637759384169053431710349480280484930933418419288783004757713349245710492226249315687180448207427429175462255852214707051859500492837550762225570686511266650414958625390010749459221158768743939922131830031585702834982713444637171386514886508646947009452059641913465690575729199511226033685813248332736528264540208571673515653363664819687155625291695527560242179708261534995670265560522290019878129104834311720134038053146052988183234913148608758838822629739981899838616513814007996472430296942841997375728996556958113549172592843934084221024198278868601591292732132364670164499728061770101778529769095397200385655715868778758369187819062911498729789445151555224047668254841770390646776215045961873366874906029477469803047289094191888919467520130113954037168438261200764744434701793015309836385680899979707210540180414429204478156061305786309092864894430042014806890506515308258594080112269685475476619003935018080520290296766586271520196889996343970470290961269062143704154360591728987185030207770076775313786388306517437706391050556369591643305695999424674993973029347587166022699335153157128834833087709166029260002548790666340106595978675875187781597062954416206929385333275980839253900340827645078573964686509037316037187706061342580857173910205673104302888012796207273212393103284289708388898595119713407931998275484518102916049923922649970769953802131911540366062723075126759487211684258993618348589088808128137079113023665725767307763752714802109568075994190645079123764387136585328459350743096085096041816621660883360441627871727198148089013013822417533757652477436895865198334737427874212541843218871127027835998262871759546838927093496378297789384940175484475531590022457583827352532130303246105690360213460662215756297434793378136218704425777973292662125719220711994592261114196595061830157043421832570794713200695887074683939717849928859587587306619235515277748333652324831152177693012068941401624725105873135527795855662502166301317401717671411190402502655693417904950565503507987030536494630741417417992411816340574463883047564597687870961180638474762071934094065073352709622081585973941186080811430764363524666835283731620378639373355449358897497272586458052964665604270783230617290937276175772372593085129823544495199790652347885803979340078652676559909313547781058784086156733071002418658766597017302192000479829501891385303340520410099760477177136636565834614608735852170521049717225542707681566246885729437835327734391710456834771956525251304617362766286186726990280734473249989116622656399610926330191920181309515685039542267747282811853729182244979494278536290083787099492091980773601697782908698842144461204936073394358159411572794788170496749058039358055427032608855517300214945860426205977013253509656039375291206190189824894507739552007429372973281549392955382896113496186572383741954860729555433826983309306629710032729577153990327478668545774716254965252834189389356754236645266707503681492554593678150304992138595051772150435872740199731524942428270668552783777513582404857125355471850160650408528052775089093032089596167842799736087693721571079026846378468946158577017740437958162130279165806895729752680350469385081503764342238078076439036171485577642730520786384167891782309188007690601827503489419298707848771715846864462919184191373560651247616469340511413875174143237226583040024323229982109887109366081078595028808761794219700376858534938319709689101759546042124400520107649481835336740333636405605453646077630715111621036388050905936496250745815330608413717634350404032667240528290096851472132552694409794925486745403876647059261752378132049188417204568446551718022199653953017933332980051824119305054757845257490920209338234788283928108136693200614874845271037653174578008303211134557248097811460748681724773940969132912359277851836054294903528082689954065812637650683565830034390735799433453764005999783345378857092055562489961016043781009784367244738466289566982896768848862192286564990435899851866230542855568778020609853422481194347443635197106738247306653769035848905745723900399944362752902608476836353086881232818130314468994168279469460381285822163202552169271470313303430929391901722193842569443814814497239261428452552175469670003403254594206875807792755668064859518648599120921840150205737966234565282823984002378120763198730623370003443303938608961965516173371322151040279183023473871765557814289610576771132220365921189449444668175051452651925924133100629097503111180279271492164836815730068184935063558029675466995459543818088659322293114587719313400022322639656225912890375644982158015013739997100639493132064047598013744717805954784861980765254713834828281894580785228619956560256118667237064639490767935656966467920286636478260416355816662962042274659385955268832835553008105316657450707810853349018033679799884422068703135683097645856037935232585567431409956943618429753235779110514834839097737714427674806893788164012496790556285107789442553901537668108895497197910386365400557462452595263667561943664989268159683299018024945169229115738657107817607211733369082554112210647499506037306016587034072205248274536687109245914740391030007012627401861934186614382307170601204020842544016370902463280839108951281703163125940933115180988304028449816041848928065858121508079188898143863445080019864812090458330956545105387137157280948510115177209921516134617676446679185495028216907536424160671121502369002292479317270560771438585932518182140808049438214150968553710396396794335074278458600068769357943747504929380525333862114634163659194277091443662470944876566168232976874645841436928786931783638796419768343146255183646929537979964997516761778178105305013897618140824704416161098101520842699959701741067364217434191291321416312565296102442405724847560112920043294314762191362225397563165368334420605303044854718116532305057782893318227975895198650907551645128641840130044219346227996847970532417214872064264738754425636498986188543554647368756831722748229886141830806743476288127147335144635156350018939569449417976479952064931132861912722960046236646203304383488279570851687229753208584958400447986146162411095200224717110228319111180522276681982732337746226090101163779108315175767051462358044063754092830417461430215937091605664716693855432711983181793123239945850300888543287462462292521653794476782573854769525782875745492876559692804532082901068714914503563973970332003801734484149789532407866301618111268796456963238758740760017955896032772728501840293849188573917487728582782260075375862563602038055187462319319351720691204456259892970591047927172541621905048945750012335529941753107597580667138531757735755253263986732602094344203108119854315580586059894773898012338640432207767606957902259776914982774604808626979694035557691158036204918747899699226318108666861757917111241069531141703390931055233050728212433677252533139502952747728028368348627458184608378911583524561095604020369163690229615870877334573201686466307473400780834614516235969743893436005797005954512191774866360025789869425368009593701666788115142006046695691028459805840449900964851318692470869056549846879813525507044688578369794833935872141324405246600578796046655663651421944500505761157178634348593309111688560014027599930982493278772320526044942660980822085659337425318001322292248609600448062271264661235772163874513825424912014514724191628733002401381491560258317405005781493870743977259909229362529744853065403991865236223731732040798518657488454273857839046766504643676908574727419688822282165288265148710439362799946316467703791178312211105409919819411797327521593386281839806575702169489696039711738457557109986462617854605823676705017897444550281898306472403407795473256060230954157180267098331447964305947000562465428378791882150482659424595302265959665482531669589503127623997342650663816946747176818355742173583371152287021405403324783401704757275842143028199107102906267750463890589818750075968769671730825455348769444907517168447978001080571375550828170825987605666673198444556709301287841163064148172185627350297888690842243263073533467437960673371468174430328347961563257513326801964209912534408286134911326308817317076371112544693457942309636032272416863685255389803339832773573227725798048119222511241768412553827722374003150311444484558283892016706917058990835801297502616909914008967604322273342291943700988931031995578244841973954707441463736590597461788455066229686831491019076460230708904618943837037949010064706538211947852185002853274062426828185703571716518624849390605794214521793436712748168845118259027259664957248918297918029070281761809911321250537744831963158766605076888595307633874964088520199818616903665128755514800240420089630669663227682393504998934096059615307111085161950138030098315117690604226641768750209901359728097664551477997809916838521416644891989129022241282153894765091405722749469345134322874085663314299263662726544877857562529908341710154668080545399663244853229717010587932740526362602803360000226920923034585207142962448198830243834327840804687227851851636452585187240764970412341045634758563505350963054438524280447842608114019412098494607195654966389334538719367049610171430524045836767810338226448661832559657073122993662058981748699132294321944318976958092314822615528486260679118964298292736771628988440804113486187172560770741685863065670071362220391673436884651452982526389472558237868257950764536425682313696755057122378292506902700123650427532087302628705604739013553821699875754983994835551989637201599719846758326539405714304365521349348653198519600112568125356526706329688040353341206713991760620411578044327587709711453690951682902566968167139705101402568676063415127666529678211667765610790204041363797522586143601144086435382799665193066542806207489225273019961657872864705125664608081887647096459413531823284610623507183138253972223713417586008754202613205694438067825961909947007354562199525000009327431798991345986183030126721415481142062253860309548525315982611545469928509402514918149280608283373278392643305930572206997213639779337251611713602355402001863625988573129626972430273013465124664676075257301769062210674204264670880559278109827593658096340551892314235979603600293131872402996559277693027860503088173248560122188831549627604204244957407145096987225945717631372850155259882447220672328366147405085065045976052161103795768637848423004151463904804398057974057186623963074286196764366870651375394245709854572453384610028810310848958937678514734808056647589518486013152456571201686108366316986279771249282835494280159608053606516790401744661594020372085357305534137742427977109840067537012337749732796312679863618563749196403771822416208724274471912525662563717949177472050112898251450689044182449754961585989059915817264862373138427221924596800230345487713161051358970231853973880406256787163089935680780119444576769569672442975369610127819771859930163423242141487871922371395584632703628812549048011309586216913744641804102001248564739941721930854055167355779534578948189568153902950733490540117923829905649679154032072166211508996841497487034426496934878761125370127894446058901249039084069487857259056004546871787403024926564828950083112933132503115706910469467403822224392073127643835974440964810162336107069760167056767421579560311596225532258967785778063194359764113824183581131050875446909031401201514557909233061001144392266710471423263119529196212337818324694733535267623203244202466200562847758364369881322866397529513455168535610725380591626850919722115787256368118868848920739315493074999759546406728903267260490619474322926241581056520201920343520151000881499106217195331657384915277697644131375524714240132541286060189152802677102310928505492158194409757483365363527417163544892378987294040577745042282059057465053858710407858084706991325226863752021271220703602127139583586611197466012713823690841859104565213168310483420811423497964999065672537936214946465330041725895725265952953129242801378472005511298925781304301644236246891691058802099296464240249831530805522395520459633693674717964765441448695058349941739033123205199414221863927412383500458874526052356221966299902701734684467505724028512491003365824390624237956917564075054817495087591303400884363211348968734819080111225021205311668939624746284740811805925858846991258983265839580081542358240999061456310299263063977567948096880765156230628429928156865051286851753895345494154825001651936349760790988745697001084784701578299066871809007212514480689721945057457646575522192520881197860014574730306978599966774894518188719746276138001894351747133483695155691889539731079184642466413263061957441107694838934206366557874335599305408920332587734534921962189393958610200351023880217130110843848340815510101045560476002042176853677512590018791014551243547659584845505891068000659414875133129008244574056498472999800559401644276605806769450738675452264821263423362393236168603678198057425650246581510083081541517334508435710101988364428255504205763571576933273340114593388445519584881833197948509119067690399347071184661691958024309439796941000650290465659664668078879661560416096434858206448149044173870988505808137074147624071758647622402970193987548437441455672905062403724753035864849089896529802669828342980908054757750182075572765891498488328965901811105687141920757031668641659871228285546571150491853252760112836079872229646268218695134868348716908470660425105065227650528287735129164034721870255915196347934923088278842280663307455784855720211759929627357630490252143674723134259245340303829664926141833889954621623058052551194222609101608209542200757648253171898216046796288554878682681496561223654613221184439546880486370136509713230518973729253323668650464697104489855321690373925175417335861644718532603700421841563887009444855281269345057328252559633893505964233303181955625754301270917377098003610487368559106252709259169566062518340330172581134391697219000018453667795993890316840629343534380835431425468459676136859910421871971251819714364075839659769939439974090937567426060478182837974202756145309328491557030466805880121878722496409586836995799976593509404637253751144770588277858759267193229694681479754979250610922041595865273018963530445393840235893636798918834166412082255731861796069403586993626380719304177459749600839758325464757467334298456839598070093149477424294597254789674016054329377606860831996562357937374592759815033889494740641645711215460202864414808770613465039038757954671486979231906592789881591373036435386695482591509587816320863361182940020085388880987950566852924283694267979387230622141532078343120210702987662789656666171894183355101182269632814303676993170371649437394977124646307113636456417722235820842446484622545301494589028615055011498357226365533792300933457920981817425762024479582505640721215361423611473778568924999971881684745563070410257751320155395708449002873951491090897714041273191355782028612840541349191942065179791906360582726283639645910057422432408155202690829265184047315665038113205202827895248692326409017250653791550303065465017590178853534457675227665785689470784735846962135991056914119634508087443265500875782767799127427784616418738753686510593951931811519401883787447025409824740009116391722572504582860037766705067320213453602617780793967250517546033623781913917049574493317654888031897427079510064460886166374617657771082948846022119656447997691442790604180684218293697898593647231373820550740028704102600655945777091942126126417602414041235656413238110808646358489034189552407716097558214231563171646246203900381137358668640804746777510516976941173431214056640854261105790197665628985186164158725210604413269012065370504093857235127920679352300227855213336346982796375318786969395078838515824359586937134915664969319883483873245427554256451027141464907903326178768015933793989902716325754670945217791897770163670121329959068177357120221821707460843505954487714888359436963714079160584807589613267016094804503877049200341667933311630732987989327934211606938825772245174360088667419429978748692036183090410622434493031834026719212780830921318847518424057571417689973387850319695061274921919200605802465819201406927053558071139707847947020591441646963722909819400537176357635225725656643540671973530934885404299603650794328426403139270795188330349294986267021601781647335720530182453050358181090082011594578779069019498180916141537792961991757804387101207929235081843690631541337175276461613954469544687962278924237246667165081582058188581046522249699126091600497494703095906985739521761948590386760433896817222703582098448264757361038161204598236602628762662022733899201341548851285517847248935236772288255675900162618326383373757097336845341524608994722729957866381216148113262189499537950874616421474761309500775806920890274591599221364062328196914980540973176217075641844519638665862996917281935440452358748028528595411852862411316753104031334697275527631927972668107729998335724405029601602353198865163352072100085997010560039374903146748278298321199958083321933024597628675237995091306863768212315951335048551460900357510433210279400545895480580295331124904450432919580393376076916284572460058793128918022328043150165293008908350649775321769346725295949370198435746234705557918594704173510555839567469851620707467291532290602652407614610887564923967657831917100399364235902573005540501403952528133840495238326261113077651939992644315258830755970981765879653916594099174156441743535748378313767965940967871182833592819973762230080173586312515002671416318325984029033645790281557150496674700576456436046392331598875083078767322808960411706849765641427114173975214461994759217945725665702110760749141295894754293061420978693203501528395212891414746491356278565376595433121203808363679188254655630930891102792159973600778755571277120322383881522686676573577117691230697671084004564714495286040260969034914465782652593848355021660751671305751947385508958454301860821141622321262576236642740100833262806702787096508936762803780347009150602567078868389540962733787723989052401426991281778692490452959332086557989137310937700956452781716597635691558132051913881308151430437276625197841319027843865165218888049050889833965357896978860755990525618585755933244710426826428387139836111537783710438007014468224242996528042389905684622954119402580523459128237074945215748712164864270285498225441845534992664328195230208089994042458361551148571066800742289341891692124159687591015208461045698383739448266557473346918013585979027486858977020677891750784847186096175425015978323240324308678010312307087689180155143271391377163146075624763096573257997232230676778949059259636573424615088272450184125366911023234415026494612730756888287708791142906907078968887910544593168014137604743229467936804609332566761801075260971929243321183708022285736362248560531211860345064073254053586041824853927570576516993843082651623442447085606758295091376892240896022570308186239752077031444163238018027317567055831723535366090529619225942110538541589006143580618089408932943226612967116897867572077040441297248722564765916328642759514466910752799816602511672546101294079345385984949455140630437535582707701812785265923870657369377296137302322722976442150476302197069363819998623878971273190733059374179313217486127584311923742587994593541892194536950530793960178339274067380933710288642757893926499630819598524526168913390876750950897367654262684159429155752353363805514624735403619928640313142073317615651200859613549953497569482292952213983946609695987718240161272600167790757892284518109780099985735479560379321675093458495736917662171020436372679977568913949641386624678791889268578837484942244364639417371685966322179299155295026254262075462774294358292581480331747680574020877714537601898262066692742762371710110325466364577452135841344692671233948717157204463214259932125903747056069428610448765122458529636496322632595049232142058537468849038913253967796334703590505097634260822398590266129067491451860341247207367643363634101954245546882166336648477704099706331449101267138757160383000809648029923897580067103259862572387411801017215806572768749481731675805478890501448338875172498820661208599857785352695457776672432726913829431735826350438814506387060155535360891920501266001059226789516364641915675280512707054611455018943982629957500516399163806212311553043727114581763575005305083925754460286871587285426214305903251255454356201591541381682653869052580618488042267153727090045384430433372683157433061844735033329648475042764049506917291772871125415573585107345007321287902910802418853761844032085868854458343853725502121899021445445811620180859620499386240097244798866367340430863347013200416371943325214832413912743211658727537387449846812503791774272716435521371087398262055298871632409427415353222904658670797585800306258976128010259361052090024670811606262542337538120533167891078787247700496965333250609289741272811139145839544417461929555139239781323517530072958269182461643084174515609771944648399069633577975833468238618701955869208596750718929603563652150188545896724771168043948861087126576878046781516467538139108786570529125929607614512400451861560536997533091788901262822482251437160379427248729568813873532475172359333315349328447977179234971036848639675528810007433345367645313441917518411812523954506062391231040196288458851546842924905470424895449659173321189004631778685908192942982730765069487971157635695878751932216432611184201159972464440830677838256336884643550855916676859943862259915829979709134219237093423030323255368754860124496700736322910675428196869345394741853144707461639345963055987061641476196333455933745274583884432493178730768826842821057853044245836208655360565306824872580017646813131831439582830118318221066004761141161026778463749740216997452224552328989435407741822221310343949170347572551924420341408108380362597678428019716536494851616086369193193740002182400234887723844640375904036413370953456921982184460374722901731416026268904012955746306672531232088032034795080344200623989030273089797470975285947723260078803028831688139880246978290396669325408093957854006546062625066437252649783331317474790319940135801550053144950680986507004135220406880769341967718192669863202079845644846711755419711577057479084159998631406935190912162073956629544196738873461836923190139308677618661934861949107649397589950315985615934230997019328083341572786267812290447347288006008873168128462864458936546788866163965393446533344412413866542035388326160467219630718288439305880648824190293209294651251608443801555019504354640145225655310739670328026918022670799476801033207230691372898878713094662291768342175784220046147036337034491439087820385847975118040307290074002117686720854459963945621725203074689797867082897580256225120308485854900888828012897670616778599408303238934450044292481762921989022312807796095864825623771439287266332242437506793224644871522057570691836572835663594378274979542418605535797977131939294451221370627738747093004716315138987282227307203466882766999472977453238268569051357366424814734937659938997544954943717369376347557514716249068296757997118021820253724778416675984823187571563513423059680883261942275989584324345936399769947916569520666144437004710739901279891968385408240445278410517665593184058402799265517376216475517257463127205695309557736589081019816477582892483486652821364695699306246490404364564345542109869276164574142124196557633735092841278611289145786646855533032912925125910320153985141148532969479119378223172246908585684156750602069276498861180120663344009815909915756482628654086950228864101287615969478577238438510839187618841261977146113739456557008609347625685702231069995970354487382412779242168527810098026374948743052010373148336075739074896334018886938172508214915354763502636074046349856285527268640428653827845630818281626533727874953891385989234229358377073299078964220704524942869013110732788322775377997861329575987342744684323404278695926255078430377045391376106900581670976406914066644323029443251254097993193022867582271451049823090813728037687384443791496998449636312896034804312451519671185229308573962937504342117111746252829835967839581818698323866164413262360584960982296611197819208443135188029206464887002511355775220229015428701394634480817460684004427459582209571557189685161203704505729087525601623283719269089927633099750785033515399156785624511171016876978337723796527922912370512485436507541806962102823952112388512167859371217165584554882700055543786894355466375180463313044127981777402377957012575921800816311170963949078606560214224833268965406072168221249296170955711679990252750275104172842901618981223025666965239851290683505081714562114706598272223093300821764314355508052667691075017331527708952111070875725382514903274637641140384211770445194584826383509261311322978154821652918131684336465294408261994853236442351285388161122619157440563431933918335620780165917788960333386823026942861407317718139833983376759375306396938293900327320306805027433045479710133619019421413270815875439758843266346050434818015271525137470883989083353415980776946021496947825997589123466041237929749656802610743393914527116731100815952902819976416944739110638376765961300190893654625095627777441423086284228231048046824490985853183152609909339565879535543847321461134422008328535315811009661305176260472600246186290817179922105385689567102569100005675358828844462993985139641571054394167659136769518973967935186181598887935528042691272408735475209595637026623240192588744672850205241348695192168987628724124847584461721393126884798616252402174784152710941115821839788981655566053878449079160406695344668361082098018060643155461890532044539007414050600019198173709900953097099501716040125470189278666900784785848098007611182515994983376732333172792961940391242773336350832971239194669692859979501135704773275264622910133768945875764063274711305349490020733068424387280118237624193648285387001728730868741947122266469858471552400730325399930875985659022385136918350213818095741954677540803757685655767053516767075315227609106962156605841811504827919255173830170567194882762558248747317263711849741209088139679446278969622327761967115613174788806708574968377025008311927304088519003990663277431082162546409570087546941510527217060168172050579623537626580508117034534743875960543567962847705258755827345486649986249893490018343244018673247629518996593622180261979943158908199605288990384180782932042521009279209907879419777232155624689327798194908697600254932977652905866308127525689540301568965096522603751728821593134706243300874563809449395478323151810307792017196553323491245787545574420664651953273728565340545726658312425303890565926654043733584463219192451520688257078914096787602034290701186667531236534946332796584401065617409796676125498458455190892461178536753930234807713426166623254679672570363274956272448016028813220070753298078008986904542453166198346802228362989549824888996014377364199768856044190062651144507370570960613179355527538160771359009817180380341198958616602133764151205070540210110292299600435173548688959644287210172610928300502658359161164018436443885985263534867318607234342105430223431237692763567452554305103409152028181216854586783361303815103044526632486379711914882102566531959473625386776068226288464804798737465598160944480189634299076315929462535417454526639875846562709661320784587762252024799348223233129186310600441478261797643702939130474714480979461874656901267689323174491854284239923648692788865198244834070531790232499724333713490937674395593731437410089244349693737232602152609235143771052130777478994593892482378346200855113273979325883326568753472096204537218705126235014241286559860136277820214989832788259964579902199511456964301197883217143337875372593937802242082890287330748327667515730775233832742397158888830971224076063368259345218706805272468636630043677323929315227006125728651952710694059477936381327227542208864839523322823157781549283667591678654368276826850841992004704825124807301565813890424621126837769518523583833036427042706561534088326719623510086163928561923137811444967473594414467580107131273535802952805631806293580302193346420248019046885392690337776325966588827113975293772779497922983106534126168749920893358684453730964267704563925868571755097138716621238137475431134993813648134832283968167135488836707197006977166000080625579515779799351856988363776642237768573614137548827541877555403047953695164153450848029348786782659902676754111072866700879430466251891280268702710298598809058116942578169594475475867259672401683861851702342507417773851505323294221549458426412919668493708201591615889387566209562900638407136077946282158888279528140659278370101231373308994938706833355348253459539798923513437869448297778816509650421731737219534770754736827124709317811806508017200222742091618135579725670934016750204326684199911734000868039648083405904987398137076639283062047889891071221404049063421642885909919630697709367514695309257901597970094065020614687742788653030846000551768058255884530029894062864555341438935564958891349067531363703658684036488541363312013322282181021096867855519784077826032633238284521262927994469725097758040547488674481086015281106064147667669366223168612946053007959413544003033325520849068994189675960943668058200645704709743249913732058867354635451190377808139545074219407591206462986897630367737713512134936449336057494228138625736167484129658715665856269297658745090655245461493372025333428851952806339971044777406250806941507226526952059263376334860632572473000832562717001730616882917733862049258203960385426522970890749222727716784630657822383638635669251064934096083784171834850681103440197970963418159615838117053145839452556059236735335723504547810085921934163583011559953261758899757649104421863365660259994145752485999122107806921345293848766722011376666211313177196555013116070023890398785335190035785097886157868744232821343195753569808978203419140822196981498603530000840070017871973542293362472308179427711762694330258238661278103257052119665691674919274191754199761263604603671546073643513411073750122904583622449759074246470171101453975627677755567217302487716538484390547450253453971000006372295550674655439890281817444565558391239718909189282175464393169335714596467243330211158807669901320853852365212372671162190433397981365651804184773571956921769831517149752634018162543255656714935818301565277418609267288449566714457532315756596654216352246330963159914384350804313309175147451833130201285338134181589036344269761484091241586984090773240688478027936295613965174251025026649994288438041970258790101628212803402331826943387169922093538924968633938505062417790935365520619707323050535445328928042889201866827005474229346086994122054943314807879625546314677034386634802388767432768693580068840743852642231528707662035432043016284651526645084572938489866952103298961879457200804892510333869279037054645267437015186017103498118052074670563957583122277263817992786319706817207223844032605310428596827921708567167889657307270560267215586074917832679071229556618187543949579145812711253065401552829320017339521836844964011869329404182714649870149176141425004218214246770185106664769381744689955603069762831924518748534583969520007606593893089094665659625028124863775982376791012991558361940392615976385581904458789718269353060384088709128732972674347471664299843136630554846087109682817335549408627032522700411674612168322835303184499131144423564507116687955549619233431878467937303567771005733050621542142289992302596803470400064460316635261702081786828047697606603143826791629830170340815609668165136283131113231926161103499709753781490389727254478781364626517445625588055267729941700703299998499901702796137100277103587480029338333705459790872441918473193986999388753294266724559515670855329311970506494144373885971669223954539305424256805690633282965399056267638529233303289813498212902467093971008236875670627995090298116644844388815954338809861397620614918936795085633430564308317748194102769347266512590122253749878088944802312705918808213905253289960205424446377064811569264482173794177865798360778930950158441687605404515593240840434831044440716945497804163646820080686344108181182016572865859926315112350030637240064180647512598618136500951714407164041674390057083811651771660172061799127056336497039253398638682848864095575053870037071641853653826410434771491711737672032968162712549200383711970595248325392349130457036349565646915125098723262402529171791740637806396250111279142963808110710909413211044253769345522488553389235966502911653917583293950315073571630870756537202433901564643127684633193947874465251074459123255108082047972413685670798594124960096727100107966760129998641777752393248207049586970385144152797219850994637389275021052638685848163066586267123804555446623439887268136196221371566437865922446381562742135494827187262455623000200161910598929471172658045837293158227194035175340926908292435857193148548803594957395840369716868235807138120578649398130193903509813935455111670263735401939597417206737787379646727429151253472329365178713638553089139214771922502534980642553415223939705708931680537036429785495561582102468595933280057530562716221630543675441420972731865355444535944244988336628458904130111872989976412125915857432356653418423487733595888575289053513243156637352505542223582820193890010728175338505752276587651390054318023041095619046675998113166909926074471358171560456702513391061906579526455177575439445404314397427561828858080831108419790332243241073966032331383161082261354865148316598829407824385658303419262316716414008470077109911530479805567731074348249373567370368654843088679266848034145030707525158552303290337395638480821911005595486486331326021758696050150302667158116879969928433887113999474752656715667183013459645311141824991812570637635508264533958849953472497762280364358739169740472439957374136963506228828840075697442289786079072436852896953832679041462875142681846655165272593305550544493668745672653093043079289121924461123872295209948078274307918188949988095106224949281471345576158053754298530459762715541385553038666070485528586777763293273917760484776126116850797062721856351265815569706363956482896835399899891970171274669183549028473491134121163215740678977226427870545447356213466508842633837163446270035660565194991356874368587991409451159545271585050622938148460870733107391268191784030592775043655924709076084695568841712293676069749744612185257261673876771932440526415184390663559816126273275981445508299860188095733138820384510455100554961116615932490370167707365571036635424106613435196988363080033999956174775247288885074987555053011620117719342081340053059813698300090903504860440577927387249020732104513446516119743351916025946905969385029174180848350598681229395866857228916670882392569334715524672848415540996822281249877920752493708378519001225841294144844439316516177585163147665032779379119698683316015284496452357655696979381165302922336978709309891485938355191024453321648863439547117448565459112217977085813719034196684378848911895526337256999454046445955339530999337505302950364476826998427897864249320069979870897815953185002088338716742092874588806353590407931770159463622657645063724573474858835524186440556429416770671574583049399777477822236277071875709123694967740784432592955175447732117806630039801573423330490261311128609794028033666791813100091529103275312587681073813534235360982204257688650934953659985892178935215513417092884674686117205724922970428734787830745477094296883800968806646446277952920176577067990143347350844133036210429361082675258020077292749664074191211577882631754486555167925663719561240723236557583996717141786789522525916625688795923819293723130959941607544646131665602967164594779884117121566927315875976645116979375523483446178640355526873604650765001242450539323336807642199045585624037837609194824180314279340425150446580931511889484016148343702171280468427315415403242702617064070791236047772905990487183139263255001887891229598362901519580206814094013903407596606734049805823836395745515075963424357971040843799020961263204451876184691788274798770210163328364868417100251904348669673057212976250426854470533528462596657040690499675813495292584455590632059298374061811577692048088879348981026284464261644509249312171425316812994172531974599494721059186035992555172919506484064412594044384026401214437706906300172134817166643203408209780963586251084562146573277189160566585141916339733788876561318716896997233431035116825023396573751621819403891330895913196404496402994080501830116036452365490933791975781789282411438942112936704216344464627020459386202782316449743924364475289141380678479615616507120509956830079815277492550943903668109842362369477574659573659957548832375550458973044022117770568368359154324276032934681126657060305794280212211290415190530272803575023334206730453429448722402346694899643135658880663983507585149077059939083124581668552160448141213622419739378660996792438972394844666688864831289792378862075066809151287705598074130514542914663580495215879546396326621631884495097240656613936845152977503456320143503811444928262166365689324076492084089017549003233127309737771100659374938005284861900071410134401697282367421900932481704767340519863065355062085706012679559224461817507289054843533331765708463715963687205340237641992389989984162628475505860963362429987965220339824728021654113834031844712080445589791211597616639033313484210361206282784640166986286590071528591684380829031880906891110814802342876243250245887827701621965891777393144911499174846236878263878561674559102980350368562992302644003266347118605688653313321374074981549837651611820487572009265414656459584339696258418319728365907857591247208757543291014045132600406422328652371620309273987125823322842070477883263499815669010365846256081602480267085431530388198436419792882235210328944496480858746855880059932057582846114608525867627992974298905733454948686187700633268022683354475676804307945467082749574260962985360885659191782553246056868015609266237645337473419509115243149085177656884042277338085473709045244674743747533255150686401468552134903542133020323506468623181485351480414567846875918324614023161614673022435395113811580120263870248137171572257702447590162804583863699002737812660926981095406350007911921404643373838688356367143884548095636364625353526383172623063910923348944281729170619142775654014930432571068206782426646573704600030969716190828585031700624131424211266157403612514121151969551118201538726144106339015715219503070897593123763985889408413452024099553749188988764198030061160631953716278751193159975661145949037085583100185684850448647776935978631768673046403241403106272059749742374258025728486076485466671660548651413257733555195134320316588507798538165657887089871293089716441245826623667268903690231098676922994432034384352558586698003445700471542023298087552212790375639792839323610343675069485329318274886722767391149083372017391403063595100364623289173353477302552381080098485859153888761697235170782227073383510233099563732032166080965768003411306821781166448015663438142034396524879345717109365479616015571874906475130919467590242178197581269252856565713049896513806223624152903552994288181388132255592763011059791287924782172754130755560453030160910529653018130169809192413281157296106535142711667980598752658787901623678455697377206137563328356722432011447560620526899400712288967462430033962350163244774411077676498170833601580209598309486356300780161874816749416100549472554781771787210155053393931435620237245888608329777161479265135233825649689165892019955276724131623253499689339811359518760559318709790738772993112076773008147920222597706964513400928567632261293308350129227386903266333501284596452119730184990396675718865323944316304847630781783765764220007431428068675044920636709929419828891308718886947498875278734918439102484335067864343487707374230029810085654954217537643184192390635411335265894440850490693788891287496903050772752971283877352824928072849030689734583705407187408963530659297682970504794206000465941921363289310641054986547221632618141469011805658044797434367512640390406119152362643404705172140464888448248488626928927495148291333618786810215753974118082849210274621436624064244528426052369160081202952673753837069758083150293879494818218881895032997147730888239546389324860561132063215644940600455258723945669422663929029077294613671058618143501994614633252950854996273302893977695618841493533907391589376093021242303981034999788645236394377337067267099760432334194809250103116598269886993344304075944893742142942670886030015600529237811605451694705151067616555617444345457301764114525901369193413104338239562395549854215794078718161734079306411975816113393140693501337662548735056871487409985688172963690722634349361325780832239071397720960313765919611516182843575890133514998033979450680585654690610688447500983642293068266320378960936031379166902804869611881579756799554104937178417009175302699903065717143786051954022324558741897608165869551573273191962097939577180041387370942269862954450321868801781841688672948526941678827727131932653357880215008465844069027756137669418282969858439066550500196618470741595263340304106216778682034047228201183197895119195860186509326986370548041276188753250842733608422004664996449667132529356863982683473890290325008926088525047832386195022984788958722129434987308440765581013161474611568958559515897634105540513370600212255325075126038017014853605195463008600776650639538391817664646064247828453934203345864744776217026696368696761696650900054241161133239089370179155899824115280938885908026184603193312877575089117310687391721219268802146939501842997191934973179953689056211123233976266473173103426809466951886844983120990130664703216891661666465866591524672065371331808776193030637430528742310411130090234531826590806758901572311238519791423608205167289206381941925657418575443567628998489332444968085545862693723819605632979612581538736715506073871192577463518212023795326702843538252301923332826876439325083639651786571836460156829397534918908650353897007326694437060961831340248371322159718500697293594889780159985036281333599468818163341143784902131517512300945853442122672849678367832957572609667568274695950989037832333380266118497504146841259420001787345891141371168473448196159860253405538012257811301293042892932218046284708646035918967031280523254913143694446187759739517570508276631318728153302431812129191416577698561798464505102126903125175823846447934920132039737091716831532844942420777248431619611185969038272923886220933226499162889373645413813238087512640537270173775481889204686254559671989707125650403885287906248254949637312893322314335240931586380414308225449135279403069931587770725071693809978254638890478726663819544233810525406419146140142515795678767041547346089597598913479172865534160351860719649642363513733055544196865199554703822903975487975851218629214013874776841001249253695841907685295084868494657984699210127576629168307982057025348851702028758941646765466157864868812302753264925322705003172951637203071136778316267367021741443099347013186571981838335939670709107462918074189750843495186055085057996711290220802415542632619889647856576711462958805225469240530722885151903627374008063506019086193130234314569771040677530069270460761280063163151437168045920144934070833780702298419570254009463943702306316565158313016158562453151669261279739473979267046602661610708432507535399295916934397327521644219877286237463073072855924580848593452831783264309960975542356646232901136656483373163112509719039586649348409768306034991880624724180606704547452920430706265354267957556408268784316641646460910716341983638359051187021609137775775272169286125860259480100052079741698576678130034075741428308585544511146341512982707129733304951354609467467914755731074358217551555263440943967292828328963515570339454050641123898118316999060020945601263377632413113710011429131444815649962233665138133362933622837321971736921781051103759003363332983804585722702306162236701867257090567312060029233719608442743668123469397909736867792650960975661167743619284906244682781777673211328924357587789932742810661423335152857408493444760808803494707672080686938066632925350080643961813938975740344799152205097063099546855669510837971998439078471872822405531996001687515404224343146301141111357466714503915521557893174389769728818529791352572599233690506157803423913761311601618483092595857612236660296199870992865285558179924230836422241476192381961625793723110179352381832096710965837533469602439088818359718228185081895966033824507044650967531057593833434977506133124498130519902622960942354773474630731180013035293989179517393112467022506283770464866871783613048727820371891015077903385720974282347465961006794264014064602641233649978713563842510405493462062451224697624851733925661238944927801804712094122948084945963905273010853495404609966172431594559431890233290106093775422917613427108618086935985820485732040403305882621985440057561134879660437745414749239194500053735548081158040833095514759335680215376786618514612191382870474453716461737513745446846558158606260514652337187160733659259910231932622159182929922159741725065289264148700021843685174816291304228607010594413798900788857239720294424452891653861542420153952601982790634086619026316099989884089063386345776384325283585648316320087287615759391166752829004212973631671251770187899632245331421022624517065939975203660891860348306896099159708370156041810190181074865166656217257030246186115436374807386383468264022334697934853613747067449614834613851734493841693656088650512029762070516760599481351241102642142037268790457556047722148925154803340683617169053667133226718547453948102720567107200097727078500257116362757391387233473167169309242181418888888874090204046655667759348524768266891811265140570442551408056144187656009498156300954510470210760362302759624726227034085800364847309932768499188132947416874598313982502457656454270216795670251655480564052960739090922604326843619552146842892805720312958977920538511805892251378190676655812748373324154459447355454301388093954569969835178128143691404746868867318844930102330492016405848637041998981670869809618206689669013312545528013992909796167922042180732098157279106534133198837107483041636943667300325011033442731562343637528486815691797959785499224357070848521535977701106103185704121901484393193219124297254528816459194607952855393814890453690034787957767631403809313774344944919050027562279895633149652505297482416008941152127239632569098773973581230724682463656642418336260481556591977520297781941922114378645867260333400727394381927748427756546987619719469759161612678061343213501799978634541367042219509299557737854020624787330349422083738411465839221327164619355437238885803176164858848822885472571564394947425388914718041127485821891806763423969538030675798804585514281136856597294905612137320979615171744390950392400108445074029500377926888242458748105731166300609824225540164234315520574825447514813948166821041983021522613521953111642399790051051090980768581699119999926509811157806143709161681584596739611311333406892293685575185961797020403361578587116282282067198896262290137439238709351451868629364038106374923592262086857485840557079761634503815408201286001267985122173301681101332143978705942583901765190621876711478499036310404571438988123576530964688639958475896105694243672140216996478949635687370217159622832663024726657794747943838587126004351736875826460906257353554841846576388239929632143014702565065317151256252582416858476900103060721962299259785955112617836239944351592894726728768399893726214629443178001172127005841889807697307575991567349967209827649418155802676586513067006722436644677086430240612943404362523077826279212376939616158521571030346822466440320608807898560261854289622455110416419162001846430513405572668523320992857906485790481548888183234204166404585697215715072333055231359052251693579156218800338884972455361444546577859513978003572611043842001158110271444051052515594344519753889807872048284819215784343917179486574562513322358952666572664795486575100207747362279169028741030423551509608336476024093674830912659398097307306118666158671692224945889900431418802375618682363180056336854810645487031093370460489343224701980356221044762171000931213811126943603898390020564497223723359077049975529545168466506623231768168477435886998876510953878116188047992815279117215202170162266682352087074600270005536844155754221693550185923491682762676684406740031625607393904066473163747827469951716426634991449991940829814351665009853383878950017974656741315730200704866624676707103875573625789362039178231827115664335815396414406613820765064861053948952199945163498657756548392121742245446652926606108397235915915884276071009699228806487100646036602817102823633730356509202403686541692599560512700680446362950936156927223702243751169839122785243556001278587645507715663685402513546747513372570608688488763192460048219932922888689548459232750899841009359321108376345272821599926956664233680218899107313453645930119909190445181168889314173259963946993066418890082129505184431777162054978892669320747189162298027334550806993707760258838784643443534505468176193041078351266680942732907806774471933977607054932691624238397202239983166366140934802948237887780028467528528590069501430856300335731313202036402713105430875008351016822434285486753215353350009699191902954769761903196196650703965931558717289840944219936278588796855337518665359408930846820849060275014784502625900363914472204670449752838687254378004627179134863998788609458674694043068538196282602925828619678962432583851834040207194177983062780468839431400289895882447755654498662964924344113144786019965583183549744529906201349147817744327567063023008834912867563975394686418439968964905301349618671472837214552983579527125874976665802218435232413836768182675470607539757265195845897454389051843636614686797241894845299534694777178117641387253359464912623307605842037160456701736370228455321146527157281386156649237506333854000843350041541126463218396856791942219527231584464463655682411976110354675707849776040223608519773440959624495476184003852847897540780379004399517429263422894736029718081177933457343268008396378172250149477247043782159615521454713189582487235624899544510567923123716535795660911725429894506636307448792759480113520831420351128232049782064104060438998135802328756801495504005209593559455886743306121370124858997665302807185557876196049493125339617690671372508997165769041918815288284790664155539903167446686478387023031454180020277951360065132058651189322090658654326804480200381127302171516787490688809870600308985323422986974070780488634186159637154162345478108635351170347604512022783852278872202088886121909090244849761467673568091244414741397751378897802314747556065391487648258951395378349715614352881768457829819468022743841387202113304227508082436475246908955447273454944274575360451203609838280704539960371207541672906818609037689258786157506900236926709089700601407962121206627857948456524448694832652093566985892892927632142538201463095254222349728156314344071756291216247903283589136508487401211845793675515251911729012403748760261401994062920822311348872901290372109002984387260880138252501702854716788280867938988603656906224233749413014320388755447124732796675173447977118727447945325807886181283032093448721259548589768990336830475385649588890729599215566474827906135037671440146920032690969763572561316422324245942652372938865697338374211410287519350320184132288066869301341397384866378590930571185007918037811492585299519514123173754346485968127654014437962820894006978744674322385451236386343887827881958552920181943811607471772390621477072179925662495069290079316541248357007426345905917079497759320673877301899121472731326206643873661534143946471384431167704561954363180914792721052050129059858237755510613939485257595002596343867468598075733535329850482108921208496104106578274312607824358673490298865999465714227193862967714146163621520322005709365495784489379741237626411013769057817647393936729687992537415585130228284984496270429300074558698713825113337645726815479853365887563112999503363347165356934594275208919504604365275613944575382770664710890176515210939104247302251877938396247890022233690036489721859681811757884942100845557921130457385859588964697297320982502138080341892850247606787681662941602244169922230402446618781076771351141501506447128319604101562134590560334826626677723597202900430380145886863532328276426458021929853139428796565578082470165891927309885447843634902229623573738526749472455313186587254322015405773155915096664176973403369180754653790735184223349561244836468134210368753863133927623888967433467598954722199651633880004948329197883150633741788181696029746962847543631239352587287325396007585306311972680730625552449745520878459652501586359651441331107377380216593478037120900901429767102575858420822307944487648122740188162811982416464561880522004219106054607223865151894738068414285080321566602765664887991324892898310006693465947012457000796344267732681220081594183843569842305989259609515668459224882648169279167921377139121483081081861689549272835886805603116058695094173112276203347290398018133041328679950082455257046624464968110943464796356316234489123458389885169448313547598768225128405757771460046472903461127682530351492204761619221667569219721989534374708883612930136687713065233514647008687509651248704093629159338116564050557084325354398593767500186157695461369020588577001829314228020837417471355556522323953348638264828917446610662170119987477189087785728805675343650648804095857309658785193491227770092292823067488936828041630796436932365577876997017427880898067626323187167490605165748364260171624298160260047291422361641745608776087012227350540699845567186579950159014736001584957139424570169212974802684885468792889874512569556922304547537113855216505624760787045912526484661786567493948393891367861698217307725128989339445425897086906106042619047160561675873521526862713852766391958827154385179804773512261069349518846545231487514040276431718724145260734155930247670347980131047156180817775002971872453041690817858147311091983969088428090133774234874159116358050869786363952461412811822604288365368689979570345583715676985970571550163598581752973727511353521129096717953367355072983416081736902435157858850906978194137359256935846422010163119835158507974309822345546300963312370251263686612936551676172440758232576888137740130343220215562462192577479831282205698344433150738963926985290908055795687558006639216061500827291497525424169217009525289244921871385480288680322983460478432174172343602941632073328624376728759900506420296936406804385851633779468874093253030043511258485673954803238062186512587345369538578646923727847793635206505453484891724126873967313756341267914977955686651980856817323366833717637308664866238723151902076944614174344847428988957428231001516661456178746651657936659749388957101684088613645788869723746766455002399410931001848789047124107026982844949057421223176790464363223107429901885478617045890284085154778256557559381595093773048534955960856424607763518585277424598296302468345444764619291288476672762540186616182580862388188509517648754460668833383259819274105654850583091103293662766157391850999991275194383452243971396594519336363029840387463373787470079380344157852819677066394265768742199861592836869512871810359320124328235303630926381249756696032613622090094714958527517054516137381350549784559694395105619197054120427262738701626163747466697821447871789962094301673184947475648201421231536125590951145248847638019630356086643270269503857017670168797350146294832900942320243180896891090890082276612705363914166909955934135550605585147089890514543472971642184541134097824763070640868935253689176416636300859255335371133226590419949155730517985272192972694442575624613365430633954337795589305573215739256887281089196114843266524539311439113701444919750365449623618181542616257816544228029748817520888496055899816241521498658285757713644528635637537801665267734115830171800506664744109318523294202944588155247753211736237516726061360173709956982861602280440881873455923377019141872627315506185564367727746691200593902639753968403202604099848708168793895679747341400012797761849731882628238061121734905059325187389489796281511235604774991706050462892307139131143848666381973366998979506247197517283424229222925794734174277953810410972248415394056594201850725733292464700899091256651447402457628762077489461086381140258236693317478935755211895070566478402078726691954972459625063965462313713109999287426544674381595359679416877697210228423196360276183896353081794050929022630404650792004892781155231133707260519272683611144016493452473329075583439490048847415324458977202295658869995620810074249236541213728968226747203651027473972159751915571529461796492195623050958849371964706588331850822160560697062153972288240488527374429473501152778931751160589487705908177862973633928338190499365331951922636776234819322414729837470122901984574641684818706813245003765175927305137956680748196879760580789247152464247798475634020733383415925268163544983345308119155661107276748928477496382381161384144860542581911692435755926349423980334249398811094495277863292531813329831456733441183574600956847779520936452112763268277942354145221026777632251251499126959405864107736519195087170540429942776509479995913191526715262783747150903919018880227780252748498041677134800681033254759273392920002551130629353807094529290977938684414303276064043503517114795796545343722874738394083456031710021145340855060732672536157229299898271601425877019959437804033671553092728623690566559314937629416574143274328597190812671179353429774013885531965046233029394152519984673724732662893359006550234894781088363020581764044402660966242094290573125149107333968008900282721690698739616471982479478477503861744889970469496692141320820765190899211056786907139329216069844938504909401617307993113739688791280888635600589900369601638705907211821933792284268750291399159564377910987158632991434788581800519509600039692389381640421917797791045808218713376379541134359572536713724337767307044134067541057850426414883634278589690634517536107580291286176202719114483060040288990878586003374503611763179103820659383949505468696640360934928591974867569195683841713122837469320417660552454153878059670074539326917239699445189870623433019671191145657744697344008925396862795388269275018888405380835720433117236498885991199321707266403182353465936578812355924830307521326604542189057807174884192369349211189562361847024204316716904822736488886113576028878374569336718684166776921301823825806562615499089694856626715583055100937640125586801873820774057822333112561139261176242365335002879861011538411519762807902363142690960766459606798572274188988795854651042654147717313494641770221140064033091576614156713761790473676867558854782695759288346815394341154012324785970297747038792183693155913365746463549181252756526276220772304789558123564717079932839915749289119695178065141470773898095324104325951491553381762429183551087068157009216371292375974380100474382302813479802202861707582859519196875145168582152504233849741864296363624091546990377676559912848029931049233587270524662223813419942830042674373318171650817500591770008288886117823252794199433303489551267272303515247559167879058957508898207749498855301598216138008331153990278084995799775218557470343160058014200954792410036247519633709373340000704741538324504815071798275742097068681482801995353121905988399679165936622825622347004461141162586071277956743345674161435146111190508201255084929516170858843858660250789364315118236814806265997086151843010753840720713703367254432813777174496356028041633188377005445829283375524171436025015744622996017019825559240184478512774663749900960959797249040138923643704050290347384433956055404776845468001914814022290352803092854052004942209055113240389882065568329706216847786935647294246858917838129779415725753375028485018736563980885673809816269328211576858499515327597594062945552328603208472815919061436821599476358659200930634114717443676989097713337032728094801700012370981654694084972299078404224012827033988703565729736597529877043205830890513452243019688699752044279045409885117103802180164727222555402670239448778946778735521308211916442935550950049186134934840958583703733671807544916162066974094251736186972618360129048928111309070485498876861528645753700926220949313543966962975442824854937724077056944847324959590292857851977053319830770637497885833729397750451772354874667554317453850400205621303035953502752643051071707904848091124836517779634777468874827221097820109999304057855361379317766722569927777927220952705439049647976732702289937285393630878041131194161771881248378243312754421480418050034666578010325489396197839776220823967119434175983749831462116363005178512271566239155795599227846325753802957739770394100791100383131881215264980099805903881118812187128762261930070702431395280849257451536067566027105028660126672687453615835648090866454915696080223807394149279378208858785902159801922981609599616594138731221532696937058207287461124349256454222704563716387727798493178967255496312518938259088081251473622783169306400580006593385081726535497865343918817121085297249547938346725869514858787162536679724610328213016751621180224583213406072141918653945530001042966233560165262293427662628241423978511997394596946579523836110941072274475150631135739141444950902980122828268922801333343956936555878362524540691458495040263391687520193232625573829493621803623068082951869930123377226953617312316394083912137496556407224445974795390848665222816010545463746358545212201878357126394843336339395404996878020145374855305377180622163775687259330062290544540314594577808577046028389363194547680676313430303180977178434087247737055050243404949624052614261555110916709588691030740084688080449261303596613479230025055598266014647445430305082379164604624933245816470949351023439171685647950796228178643751127843881597861726165261018355249177810768345650101663477384770017860234444501123855369707635118158878635832670184096425500154086312647106183260437553949765390068661055617509764296075649668755899750742391591371626009151079191925969270568993047157433332936544249553213734228435674284789143041041537120628546540587951347815676753459815855656952430868705123141271140714839009045068063174564690685229808984080116024014055878995860236248149889580144441337970920578568402302287303235450640733114752165596581434276624349641681260097078472733524223864082835738304114113365632283663481755574557263333592914857665892130383653136418656882024936265107590598924045126357343303486033237371358184891845025973760475583628889715399752181770465905622225318170747639907512688915565384300326012847703711406346110141107280281238834313483101493908639846135757163441224322194511802029880020313782579605791467160051555151253294689558671986452428580764564804069501104694819586411964428663271300886410789195492471282472312544426285785088628592249451451695052228187523687812439431834570056629990962989368787503190820858482004286122265172943980653754603431744384272757442501153902415600641464561240273837572546001829433562754491903427155894047838374588002508816227422280007699069948440097683333542691165815220656749803666333710019541312343076222613723590455034903282402133221953340370779137290586120567732655661356127538524961205344582317565448019306143571890583389483330309953464082734179094712085321588550939564518842931635948530443720871215905866781806644797302464080018352132225694328619396532005416080108536508438098989136934572301483078700503925455434556731869484675933560612882647246607537720085147068206789103701260243847374812584474746174314765200649720507921633831607461627463172377768548139646792216783966081315022615648617069698997594916117888153770589937330734769180665629840629643910197280781133818044404774775752093087422181635832036912717023313186848976790428236691519192058318758864546885065814333624549537326743153299484720159148550160155664984278372853270839075636693504809165810885873397263711173594668891216498174030643626335882955486404602388174779812760688175895304633674557713759492210507707409085072649853774272904379965240954481161983465937315775162243083853563093301480655936370378604586599057435054719693321491933285354550506811534802147548380093686552972683825043682113021537739874998640769715810570290884294819288357964602170676904981792217675770542599024636829008576214917360083465838743747764774091618292981833277943102803184950874671012802390970961448136944095967457174035211929760738301972133944669219373876040109286638030472767072613335609958050243218475783385404059687430257116777067400978705300624332300472076181779974185327271996874720886975682788897787033245644284779689544382187541044869639724160230774558800720264368580262241415914491730424159910775144410752822714698524972367373882390500013889008543194792059385199548370225907813599585828517528081329715653905680463377883271107097705962347192932160939900905767918838578603642558053330761366657113474949895621248243319139275598164408285051121595633757369917216198737659062548440269201688326898683515853562399101441209523688465900748665081973471033678999369641146188329275995228924675797304695568896819413746461822617679715687021820428004590806452870351304241058776265043595684399526183730570219058907217825126686459736893462141694182776624736357126867525038115857133571492191895712030308615306197154362089037928364572180973770918768249910608115045596382269758522834729535878730019394068550532402100049275521551955571096478063833994533984787288569154678413320651131754634813504796121439249437494969367690215488302579581813265535768476930061816320635798081558659558195934065132020243079770028519925907330656528976105442477098828154162142082185551347320748317229725038384662128069934925865876548957685435306611878563214811505037738621065713138144899297842700181313290223169716910488100195597024242536640438279922027260298867504665171318237174326419228520180395023903161924178039300644638127623494119456739366074513442785001771839974602076315213680317523443903465490404233236657967688313912258644354788402348308771548820285816894065109484144963214623365804150932602817249868359234069240585508103728816207835559835440508627524822156254068528608274143588250802548345337894493310470632335245460423984614000186569487484591035799887245614507769630785164551255862037741589740647622577734621477136053379341255689283213710687528944392431185196608088803435228606948430167326429751446527790124586276442239208548368269716203145875018968014172696094630523038731069124891763065741984532327572469528487836308070298547413059327302968054948209809385182191144013394340426720040251029237876840642100570679091901534920265321058569298105118053360622805204789138924916599939716226834378481613803392182841686163395751407655809080072199462148989975872482350669206007301974972858040271995265633789293191635129252519754875549137172550089248487174742004347269901823137303475182890202001038706703846273815089751265504298901242265007512801544705667003566660024035442928191389911952918147515452555634560163080113473030219581176758263423783848421870733450538295169502288248713721904261008591282603048159784912539337248665072226539069644555896751581875231239039956093097247808794900458065094709854039180583672712825402214578479083278857243891983974373232055885152049892066288234448705758529977463563565416869594371887189192832558283730743885526830659985637478452870790763668696914104981444708493844175406119814758195016453164296144772983291166028568527423725087856579603481045562406606114634765661879566746072114149527977909302937224957985181664641350650623397858007829732557187053731049963873234711485740170490763375915314686709176726005996477624492822073756338197102919957318403590103903928433959215794392810015556837317033051298525828994774520327389301273786950178270962434067057971323970684228567213695874275211668787734292620745470219704428880139270515574652128218798680469775763451234234080625229283565489846024513466715458481803117335384424248026471904488527067865028190130197629802978674601005670970634762635528316192150423426019546097304679314645217583027779058360489106873817587050752025647290798161157633211538012111783774093508930954074297027855395349841542182066147908380490706185798331213386901233853481019601701732310743564666374052037924344357992416367695230085003686026689279435378154281074392656370707910524526460410790833111192097018857603204746897181714512208694996432443882680866491400660344111456347307143969367005925321780067406271680215498744999394079062838598841352867235312962571703858296744013371000870560123390887760229609433381040034908858858036266395502180350346928321904549532343537334798258221202182147894483825981358170782198031689066506741826485807981843044004089477426469037424634006200811618164347290357998947516270521518478997573372627596569518652579341389791262159427110888650140855219521177289448203655863027187254866808017387582727646332853381478441208129328759931605858837783229038764981308039994040088837523606255877521242381276471864103963608236994584559723788261186896860738086470926037586772718801339951473145175213081994004811252368732335755123994235532460643039177896615308163194757149674295557904736269108239754742778865567144737736543003667490257873546134069706274160298666172356496356274459191138971924200760300547148639271254708749061246628796543540150108664055633023107068991006398085949210382601722011546762978720468798051085012775366977251723753999899970758088888870601840954158306137581373614951044598869372141294740770803050230177609965494883918572928870945649620336413343940337781431003872753715766052593304535329459436485576214862318975456555824859324947196508829636223004044017173922665810530051929504886132605392182927944479479404489921613301233258103642172436465915781707270309121615022304353307239923786952265276874922387661428885886557062596660224713806329097754910025513652978013815470361178803643392254971856700390357805065033898117286145605099190407926879453395994083836326534866768139191480735399841569297278205176875297477169424627740320111856090057026720593443074415071973270287275581162757927674394008578518678417038185857709626994897296603883554516268624592410784390602865172002909916043832470368011447015029516358721369202326049371607145772305164028365350658609264384633567308415647166629651425741640684901116539276794369076814684610463279346456991526232446699802897889941175755549703363345915556702045285696003143639130838826011326438997725105815033461510233416263726147723068522770238519274047865983569672481737268043087993427293370773858702241679436738565068342856046369531165310992429694236254128512616413968448332296028079752134591094922271810991175317257926323254635414886552549760828439242140939636290459119632329887486879180811713526031097662812071240540438072347384140319707327158450751720112968682970591434807920866227330845850706284695353983266900536030621086012000934578494349261910495197340112204291546321590397146985853366107051387436999071613466656445635138694571094984578745498771274683610146315797655776824020564721657414257867390248682142238981649712986606387954721788217244265593352682143929236804650788798503664779861710764480006361078279267710415507701256303491786879838648002601899849430358228449615965622174414549431805530197045954570110423615108526793857392619401922209632510603604426867821199819993881256608990917395944771045664840989611755216245251211113819522529607075829637512117780372862017885807142403471970694135195962041247630452324325791577931419579539666616460023328663487145242024664847935310316143075079443443419822745301217001303071800747540891149751979087632258988530672315854399905615820732870032200329546368014889909893035374834131194560775475903265218633514095321245028931705143507622129189357153657953039330423229032567803314251181280364061150049212602456693577648395135296078931892974411655624725444597906534439005990513643125639245468491197652161790652410986335986762414449436270222112746962145139361326644720255846897310331134193977614815626040525020172699767236097779175153185238322938314086383958624824629458627162468584548128237749799836606815332832385758331734063113435944784020164594498742153860874324426857852679012660270928266692200579035600646382935932600021495115969338873664782580940306934197794095153095695525755719514228056539606557130942088510752250438365708151471624576700031289112987878017028488208859009993886610390906049599201135397340124993936455985098831936750092754085612409519219784876108311552989849548260534491776869110783618631294107086122267654320677543267354002463103010453009964192669274255723799177734294576461797562745210569899846875109457173855531834381110356837422893260374758395938611937066437236338515789302041621750121721345113060037013382830536360143984544258170874053753812839188601145806913001078431230779101816452612385027277879332571087194982031696909701760339478901974244014953185532925690759599477008542380543683500624103110421716423392093618271433813369053068951368561145366483718477140807336758352012079573918719399964080452997074394726854450556931616485333474670009392465539096219711084948241930490001332824119786159062924777797773090119469178964858763760788641665684446462834283181568320893316389927117893555712778508501438514397407305189792614043218794579811994243059499650976684177649136804703913588540102646098882211435455391009317160634029894408348936396709555880817286152675691715019558462525124182904972299428330526763614312862985035195034502151787940042656477597005906218590118146787343813988228702253377897325772386098644348525706023094923087906931286728990167830473469068230282556102184223598043926186986221444546597701540527139357468139906106089312047536938355861248569892585688059224157747576860070472219817087137237057455896952995641964135900182581780696925112590669238671062122884238863683108568474881596348017277271446872329775269535621261977841095716689255084780286437369051014103856540629868449683739619683690993899387176564823865011140110124434820219561170957136857628442710702410168602635734388949387744534209179101758825961069994219928299851044707145809892629018046032507688662181378849654897441055009521867634345796453487844300094097911415150744701345436179320805177448321325330427688379175103696762795020943479853307993871824763891229352671258137307496204078926372853299921518302745646274133222242943181661332925927674687391890215523087925525886958328823391409670298739476926873338651871349090567846021635301288800771154611425917012224609975253039622868015461277504127907650883232560133602206241064376015478377762410128260718619889301498768343991748217924661137127555517698984284268159848120763852751176950438244934875300508492455034774955052960523720050294492048671362163177250171374228005335907383039374291485548179699971137111953593878378227382373165639250036330583555260516539826411707590249178539395361852818701249895898850942234628217083420730241950617882409968223651067778591065549344680208760160239866878981987968506205642416380933396556337073882743092593146893428540186936945620294298109659241633073400657787479441514906472812072042557967483972705550584469485293139759639570551534494300488608458048483228940530861765247958120623854880894922095954993111396688343249685622624331950170067017812870526011637903529220836148204444297555512375070610812729434936833889706150200399897420023299837116741465766941949125929783907159635870428671342735785254886387552100790402488133766938012777893280009490919121622558069210390284095330705247267715314534231436890456932050848973445567991800622420721101541305937887203947043257155966094716504568804501792993507393454891083650411628344750658412250229632272334531275529048923465945495101527855673691006847739117234980883667885225556114865614312521176760631275014499013631228113884172689844859734105349324654111594651464206095151239753380819648308502602398404537924141006860085137151754868487027193351345343052432881966142310844378025696295497547216553630948823039646007463328156240891666234471397799133806408907108907538765714140888468523244619700256658267563324841529626823524503407728777324251348881791687507220118508141284558697881165456138369043975976974510228553912245054150232301821130606731052576202994659945888908596468779198524457883435023591417234091604809587856045461104182745651544600711315493423802124236688007334020978252113636722030830337270367552210595996749182315951984527372566193569315310985473469704429497738465071153762632382032515469420895093002792211446933455856701842312393379995683328209320675914046061987799709585016240612937262741815958090534954382115721149641378821566804210744407489652356609130859615502414494739589469044800009091940240751812171908491389778485908258840012770548159513611638153034910618972767509139792794921409711433015845451106221474422723552784934781071326833914786424399889328438135040427420462855839419184701782295650126225797283855387809929552549131138405599719024903635225933993939979292703983931654136823118609722195819353102045114366594863255061621172495879445376870789332820758280806100635414646632679165436176501464203505894443171657011441535994170785098450899457703974017716380337911192153141861534728910535099790144443177960070788434991389644549797928038965668605655875736161963606308644047363705759172128014623290981656390328016772607437618016545397057384496905650157137332106023314525084047558375746324195847956083303517356917786867550994802589805971913248060243838671708161581905974956642434190876425262220604008331750055672908489714810058586506401928174473172034150730703674515277890771193051568425262105230657995258512816451033829464278031383802511178919322842778894997279027077828559532167253280330867998437335356766152458895582612963749373682977691836160622319788273682542540344073694768123096871961687612506966729126092849116749447235549802271738561862648434318098093303602653986484152770636386171413787598582150389775125950096393381665338314931608476217992347792730122959082562162835130669308187104379480931578944093933248799215377815441122888210186770978498181952924810486521134835943637162345045123335407218846784704507975640247682273796409266190136046528364506210520145362728249912053618091786875717562114300799841989850460102127099461965494759963922452022186602094164790424868898203992384500990882657098311213591244188272523856813901116377148545946744278149027257844497667638619007231496499152645970675964469657003934019053239871140030811177240643209647992704318100855803997055600676779160596172589888036948695674756460072177371076355891269794743243380961044375832048280861425931359043205867079847218608375853072023136412815018363524153019475588553084645496413066143593913142021075817835751917353646595473279818701087218911701274100558959601349905432085245383523231392733808632563206505504953810454091772198695653980081293288608848261056651649541032059103049355715194779075322527147606691758745931358639157123433837764509848945515180919929588237474715537122707504246619699707638928703612266301547020594523061460765015724799301704027821603439828281122835972232884743245476006320346819639266568134676515946551511021731403558793882446663341805757149591049421176233441863593071568299639210165001150611620090062001931129433622088565150110236616540964861523743435869249344295754347137227363616923872331374804564040687837741241994393397268134980711450061912544537568590082547717314698945472697208379460602671537111564964747267094194798727866459365483797788600769241149272358920421437409300031655999736369184301708230769881408434779180299679389602222915058182673522728687017891243550288434707779300653872363690469606424161367265356063602130767191228781965158424324804420797556616834506301352493865151837637038329395278114780304469911066603654278553317271441851539288539619165178463186612566810827849882414451200514350383528198690424414177553027741786298034635759396271305045883325651850463408499756848117036003778203433984099070751338561177337871246554561487988679655116634680389980598891002083528966038842765034499001396653492222016341102565533731778242776124445860988852175110997860174188454517232903986441635816911852445260328126360786938528503301814963190582236112522176429161484211714635984282923799645076475015711126425423016020377837532391670041152082598786026786849324866240737215409791743640019040250533936305538126464577684420392018546303720532755911714493523414503419539893799438109589885750533047856098799344055817800492235523143720844445083895252802275699385290079827821996100350506719776264379626851554168588337944007827606464995457006388244528322517073271271934882992818981349192997816496911956537382830395192671303060202313429743657696137778579927383380160246104362952012425693310940244982446547107053747255705880670285273484778968963753985941552244631919707910348935151750311789694097487774476360408373537030502510304582686826586259265691779380188159052369236694949305436979031122738277576179128149195001582872169961134342563476129934146889452522889560215511340079623068300967461800144760729019648188244073036884908484151893456419979060671096509841807902314909187243946244253966998811096630665306021389263025258987605888462407427098396256872398172846233296634558615997935388320137761116810039801482381173112884896392202939594393419228305938481158366681554116821789826329786260184613829611871360930140990441202673953166974900398500849682300386476652770298587223977356636352814831042236368465546789485653561480813672677295359423517224621230824927956463684903656704915111694961842910051629439067245614599548065451207513263445449450800141110537810562088544856735272217614673443466769792049810599421506127945941089877755125833346537868064207522798635790157733621804225730507003845958668091972749306091324670428056919632080922574546783428176984195033283587237155171353848125616015040357919425368843534734846082761022877648777012597392820259131204807963603740181418103461568970187121195630294792644397769385788763465235902367616132541102051835787665276455637122105210568766861016743256909623372998238302703879371001147765539522586512503984142533691054546084758879042338226672303714257108113026042482399395907103711229074813244263006998130124368647686814942113944097052411951116619501215297529169268843920900313016316499584223294248036328423232848429920057559512157328731783261751981861063993498188641759644513333659781352648458177616033022951414877831938253864057219031404394201989784905335618116916181329813636157959593848514186628144579504757126747020245504999188236132503653620876207343834822901374743658036554933752918904878889278575796868796577824177453602591575802192032382107183005994904755327120671266280561380881543819639493518501211026688029852378168562030613472018094299779419114725526488225924891301249029027340695014217866485485244505965510723714275943042866192237668130921435612189069002663364368273831561240910262235464500628153669841631511079878907948466821277104816190607369240904635777616244599246701888277046205889033213090326568613679021669517498088368031278412003334347926441351788563306608430346547598763880268252518723685194458791785819475747944904817844444816879900475429798867906964308918446527703181648821188632351102721653304889589955648352709721198986980681827219276545625879119408651925619366724628015235872486374028463400421344794657267017958891534603123142177153247594155203868509288604498348326100499678359539257614411493369405990131147055471115815376161087778021354586231956837294449549039358040159861972661006612975929286965140957354021600878007542731510460751124334601924699805173558730495575697913816786714987695603858023884485731446091780273359017839476896503156846301430712472474853811621667936048662265841414531136141833320454966189780607491088135392809473736435496521011296302708558671574368492531130862364387777771635797220883629847816593531165609661813795933067153282012728804262777340857075378842355235344142321763442775163985653597394538249871945796556240615209101854527562070626784241733458846120560664078572634880984331227499601559250164569334144511553437868887140895106190193236466414895005126938662801195474299426489548696602301249073818789307624854788730579187401632080107118500168901251493679112522374698785835844936052300728578013646483217361865550716263701135212010594662209039522239494965766568797488652159833990440625809012677994876955549298544200553179839176044383196596667374387268986227665044219235951043898685541342922875285082603653473004813296611235157826973153267643742710167601379043027407830456131377919054665085010777048964500246823910411277798569385464173943423984544124945330549258288977644199225431617871006037959699979470947653405846233491801837207959042258579934315387392595117292997349180728237510951860346872946461292751928307319117662463830903858670907459980348108270104093356738765859157491106228196605479680860785483407588877580839800303690043994054646567756118587387709941593155898572575414609917067108411864373316062661510420727817719679933304867045229959832122220007480579673268697504173456515487479967535243191285385806350560740736735416410828190258603135602982289036187577801552607193992187825827696664969453638271464430280617153527772441660415445830327828955574146784250438707056900183678400662661948868758504052755933878272043744066170866961846551180399907962751875530312839501051538884086662749884053803609564743198949760779406967288292175842491048902775272682158788883153528705878265999735152724516126898930728697589762609642427993331465727209043090084717115910698597631871740043831398235756042555447127135115508529549793328695327102658386425067801286700113835432204017489835277108537560468073549761396128955354116911520266668685304573495043532125067771855898265913496394470213086638943820028342155513534687913451902369158310415554213872646721169173273844325214720344184070867927484700169040845279402019928023450816696516483832583135083777198161152390259404179845694368738595119466190637593801805097211132572658194827865101241867593846893475942149895786204422620191035814339499787198156933631469498501317358067117571537306340436724221408772489149345700482075124988706918383010070346816542797765910952770566781545594369577122458382947213301434956479190021732722639416480960323030797668525294879818377070186010632214550763619336866103758895696991257621736434201384979176239180744311096980274547189576013986478920729838935032612625477340645217485149669345209786497694229623500254996436052029401765079893508603657058199628973105397181737393475403220273947678009463642438194214803755234696333693387295243123515790887771444108895803061006144775300032957591215341803922159761451135774604313172859743332341997357399676268051114739762577554699310941888076203744658253751250324893288171982910790132280966606174412147454195321409921397021237741506281339318174112953166876946089389427583381564410902364834746873451955444086344276730577765477890606818553065562666528358523577737808761669902536735064226692076921168683649990367898143984057659061836059255963151232395608085763093547076245918469256844234847543232958574926628533030227796018688396051646192093211702366723721460052009682980484721334529197038645819324766541512529155441900716363533085121005060206369877420253242990815476540916180233968148589659829963833580205658672450602699041829501222233300072710703559607786627919402719326337137723343953341519219209670412336856106962701631697224407071661635004904482329985801132635626278870381581308323545427026155842831615062678262801785557137269029771444607428261859447563773159674636232566031615872046034867173896328747839467302422629461527220233538469595802880977934390807356649591240544120995688815982759503460793851004062775935914381914953226033098050312972966236215832195020232813453467386781264464124381313116075290845724468421108755586891634460488927000335933217116012308562112763892986309838901862288259233841441657487442839391473110613218411973725045725808435065992933648577181925568772184798042336029176858424985565652255300291619044855053147410851835471135745208046894037647053975237607534892249661873798399205330040646220068871896302309487503368297863604089518463888084664025948083651068226019235093739649610013731713111497509491262059101305875342356153270434539998385622695302313648003111192852110915297988083685070229862128000486440805660751005461994039115180594481621270433755546386530986777608817882185757627952449300954117894609823415113617440404074995906389506464648204726829836070412466502606077290457547094678071883383317932935638422446978854613084485738882760683657780410695979546816461824402696448800626696630394749507155154544637257415335762201212567443585451402707260252810422467053512330332367026523723590035317878559008623231355748171776963532741463745435460224349927159521275998343099210859330893026877741228344023631807206663591609477452728828371940588077660174195886945589306960695623778586791640432904981084213951591285995132364934040121949583892364018920692163931960964536813471943769427209854874783865673451321970529077793810529224855467321609177981438945379211076760325124835270568191845264492146539176798619243859315633355630371348897603405955990790442606972280039336000799813100496450618562733607950381056637063785510761950870652826140901986459800152289868771685644001026629877310085100887528935415014418086591372911531302389025301659596088408664188506728997140468788809051713025568738319727046389158354276465206085253333581420683916095877613280304107686828020468481995225899035893459299493128888070453997196970039754009805612329635497180773187929761254510503987255098445505226549136873509378656340650128590502140880534858109480378076460746046395943984668162211658252361524879659910228751064554996034285921115942869287411899517360215855655273065920387270954614647197613383209965640774390103080504081296087688507844884556614250039927080115331219937047900106751428578556068915941710747816681245147499613796589988090979054284185736977898468194043505942139430494810609114186635731822205495955422892347296426108792290448669350375948730896004436943615840340063926994262681632892977009634760825366213275093697244469249416391584652538760781708506235243264260500995631512528947015758572703814844422307957548990756905188586463664644171017440181871427111689153591611519596834734763591469356029857055771022904798242839252658657669432972195778957581322717718903768671665213929035411780893732969214675876388302799763919561214630692430868398470009977691740905212958956433850451301714562707399879782725145323756061910663499305457063629330961502640225230129473714945467002645666332014314689980273878544531034792012185295341429322372611484409154764641612502083785928763625705612167558523220357065589035312215235707448218699927733990584557459946675483196694855205696772102266230222203501103487228874228688688545728899716881409471004536372159409334586580609483604209149198454585460241056103298086499002786079267816375583702758299507183136260253124670851688524304030069017462134681365337034364324111236237215640816808243428197256939452614010087562364859803261580680680830604824841649456026691294788234279881660357127415540269770248689315502920325214634669792199633258993912297433653981433016825297689691229746393566369601668876087402235879027202718185037266732894378289659704176322370289325620559847868203593751812338288063647679950822795342234502714293519847414478172629958584076864371417505793067584111712377973461712801724710070795634273790238233809990007427723911009718173123352567327721248998002464186237472558728547008727766161842637680092745046872689550484307793222259231889981633800629401553046627095838435186864800542507574817698565592670441990559018301825417906967077178450064447446383344398518939958654442178899116556231020772035841899902593285108219361808732684780431897880414153432568531790979638286718644764237784124727805068591554872841251244102012688148615617536485011434224643751371705125799535063092241577554400812802011117449043799577192957815617879846296161980588844839856117160315547500382664106016724084432838782693352799094579319336108160507170889453292171202961419710364269569523894264945031710432477380129921311245385408602184245568468235891468417034877153918879494082118189365607720113983049785257121931584521120208018820433298801358300929895970835557077596756033286639256485270013800300064460641365282386548522699258446887320538689352713835243342462807920483521920424926123944519205273293672258447500109926051909406215537280923907971625145958639699209167449229468067584795782139034399420100691383961126558064138995420792835301947576001393007220221289927068471741828595798062344134281818091923300334773597596216134391736312814181168633449403689735886261719408414098734859236344295453585442718154289357289993263598763333836865842385190135564731302006564473624980508837441062986738908671045149005304180243199383270010189003279206303561529832500558145163421394264991047170712841486622212285022248843112339317811567590052701311720887894172641761948929586404052654312080436126917698458041497318206818640214528619016032713662978952384195679269230798721561313165948227515734394166582750813313114130414355221066196316044125589918309188995977927548662082153538012371345084944145661822259259882982505309473004823814893705195551025711484860592102941216292786767186021453277283969697745475207351222388372663307926266285927760719688871190556882088825543975512621512116384848779493980790781645876687909078601190288737463123796218964156520270620434468405394072561720705461806455860621727965860538815048734540712931962551598849910568871829849912783986220794380452560642466547412573474580056009167760602673666274396023488912649826535360622227769363930602590084773873345993233016817934061692325792950763190176320495069515396945486062816859109531415147352743492574157885409033836686958875980084116624364032600839983063728260852881347402589486107035790629537212237589349155574864210701827318641639195821125086582682363421901574972274719314821114019624244151713929526913193866370040317890408897838732956523048342615613620206133757055174099218066632646396267539377672619471663673763528254115874456438734900646238514806530517144493105406635145793368408571789589998077961499760308489961089209018554204326980740104882512687239864939793025161087173543951093696170337520893000294920966082566312895381304597166758646201614995691176140030623467183801337185743629936549476785380866968564232214207810682379360367553442674753789791923709989899875650619750960364284052431244927010461364852140633265834533018464224520239853039014649486295409364117102252940716416252294037665813593059854750562229144054402784614463403222738831548624833083671922710679635055653369500017823713183699994605446101760730638802337816554869516689277819889027655472454028487427333242485247205466748061902824506295781746477576947605280586110165786506526140404146581376012336679569250102695240445058798393730800491729208901224744595737593091846852797257613221957879176177603419213788223376292190343528805889982408333068750710218398791023156624864097172791050193767527917173934532228846397234959578242000603050197110929204734000507432477161627840587831700107615001917210052420849174582132432083923049364358059629685907841226494047199455349456226510741399938359858845244088122872759136003324952432611820363834573088391520170815712053493288424963924872736036687243982196059170488225035168696433358698920920341113326888123117550864557897169925440717165801235222556533073316705077179869510021494899227294842764115529735002247617450041406169670582291091376869874863040008482106542087140847386025536541085408735552941278012034303556879170620253167336191833778891589583599623251687337235184975305912823575158392645288478051324768361393559519398211280365928074200208236276506848535736664622029034527448093558642445241002284052706797153352237190844458614839522816023051967237255964286643591280398133421689771629759796204399243800201326098613882340643980730467137235874626786165743924094751090071940070124850349876885889434244275505051965468449602608682081034061978435114403140855861360235738284749825549536907031040757775097059933759227967020387877647533280493964305831410321753284889692169803273118422046739661770618867715293856002988412247881363239522885726205744117037633866586703719089913188952701468108517830616185094535626765303821670049579167035498364660218605650227069200165579269590385128186293683203026718264119641510570068582111949725804373053354160750098158996225137879859498748832484583481268520391184174441327025483002501354076248418176600001675373324414840600893433537600660676695704047737528711886840402695805529609557793950823593754036520920067822232220181352580379088248723094214571161332053951693286242457580904026753094884769551441234676687702215004131904476484142722363482998752994121929810277439681851658347269709669267875549986310076530712806001857620250781252508059159537151125025780182311024988117786332171698851765939010737993980025764214979929270161313026470676715492066396822607570283669449433691117408645913397701730911454426890287576043691413681403310214927751433898646945109556874604678725994402861647703002350289750049484091479619366268986559193934863859985133033392937284181457475453659985475908858121318775442142777369044440740065694628615318846749421238885025563238181754535035265613897036574751399893454667032404273842119452900450973730366178356699083960549966445893052098736647819386921215000885126336165067262385327616633011035384345498255336035826766421895152010132660253776095181820021281870375283336287005960914022890335710336512469374963955349009944758144896889247662868811194924618344631124862354724121866994924831137586380679681471336441398200051567579329172345411431794013338644951144721637188640780713103181498496092058568299729717264629922380378128559128792599991333385382355238081297198583872100080764713664276453867501367343198480210283672833426848690642144668188057820388055224348122757378291697774340112220889528588911460673151384845766572518855993466362388246890628114144079357311969272761726325370061636229931485352425702622203524021091864803365272476002058839483339489284626884640044906149313607100568023258922153038467247257416121368181589902323041204275864816557639801916468120359004085013430790331388362721706334551715722620673346838092343714160543599867673110802199627025808542064888414391033130726787178362722283175389319618412199044516862777861296483192290208728739483251557986380394607779239963038002825591331578681508652245307670870720389386736821021213521738306235339259488600932880319402983217165412823679938495067743933880271153490791252077666064312757514711302490025057956002209896547848126855491670213845351623990887223591529715778927956523307074705773727654774523653740123578284579947536538729966960870253707131882773058395134385933167453271072990105176126866814865279138547851816350504981175258974277361791012921492731277428298635647906391464758143906122243072010961145423440364209811390321830336670368516621351631280481515121316773632394147988000847591446983641158212128641479298316554033601295003282800173058299422993174604432580100885784125744716097719442152927880022004445430417366808837323541607567504965562522891015446404244925285386813038428503699414097720115308740333593241246362336108233961694764408407159276279610716315600429604368522395369783690016305327831551570902012980057595463153381909463361649218805883496266345146994640798518100783488964469147790254526842550738415485831368101832429719892018068049687669499538544711595408103770267019628863579251590335189718082519294565386537395642419870902167003059397426870185154242038825857394817548026864796929858149060041796807559006511181846140711142239414377842299172251440700241482891720316443058509888833948428952027327701400768064438066987367239347516778829477674641915817830646028359724150820657933036261655276376339620047604645981473395219156884373198621297100381217530919216942932776547906066038061147665408124712946629326295157724830867559911469381119363454355497593858405652835817786292002915601003883994216098250131703596470936915143731454310851803800200669500993054194721411553644221791504356466595080392152358415089531600041341806106539568590423719310431092909687875376096612084233121452364345746893447637321916030519604561303828286189917069819053056486096487665139877019290096205063611585921194977713783681203160063305545731093522416276286620855701670909021502572134747726314140588453968713600494573126491929920578076834714476025226086110151509338465208066724042361506958138639959138726830049836594592975857691877745830831570234773346407087345035252194605713371454981779431180501138251246860046254121290413143232988606531871980274386039353319527027670093621539688484862209451259419232941368050080070740028936213460530335672057711918827296110248736908257722569018917879991104101646074337865712672954632858311934912645847207516485692010013886667272444355127211775207266809349124426386121251964916286053430645033581373998580514047604621727524512650620182122423950149413012887319180016619342615645315103394539150907695280508388384362439459180455285606020680087145351719432342581640691882132083797428297775634410073145235431578637161163250611238122003756358671857061605445959644835468291437033621634158210153302937843881695101907291754585328235015520922473541015050758627480693825990285553843120799677892521199736538159451815536963339589017303621977591842830420113400734419631047357920418742983554837371154827411779066493515622128229497406282448469615761347100196858558637653594096951087190236123384242829897028226575830330505134018155317929081799145440664402590351803111553270464087171478594473402085219516802872865000977718750515469162032590915749953514546032667905634097721986716295852668549953130978545955681658236516120570684152287715002401263688273002434187829674558030513243880812805720875209037024610328155388068472687890169927329880313780373412166705957820407626114739621545617355513171883978048557371903021087187009370080441256696084591782364270652634423681981101459940889934290518360561834681939582598273353682196063656718696746405938604119197151280223214296087820284308021224852511515098491131727150430248862205666036820533347286628148302150419207818602783979247771440240673458263016463418430873899710820615425353420465328789503050996198550992392945766855829772789696102776971674497331522791815701437424607968206076819070421738297043009463112646460124316063057489900814095274578300461972716438998683341488569954837011032891335982606109177688947609123013069549826677023308294490744829444861420990274701217274703364270828643473713649223449959110322927362010242015556116904140454245828616361089352566591317665974318724193910389230404625538790880331829312500723928362095184164863398876737833156435705698729226187682764553149359652586578024443289334922564413142177372923130011160056830316301933279990744963069118593805721552332554253720315698646748543298761371269975441258264264126380129181695891084973275075973245494033744964010323637969061922269867305005683908211277515175542335196917166584509632039763792143913011060374490215816609484539714640631050696146840902316985265118285325635277396194357330449053465550614461036241259908596318542464058204845023388475448206223034101359862930776931547503611452839439404124602070502014447322699753564879723718573133168887818318686983287975770710387051066109679155054316967969014798185434381932101474351046089106713154196477358827214577450934731386508455235698977217797143961685258664815965766350422341895945177337856936605170418947572502832116250134277511540907705179696296252264292444314566895245657492363379990104415582184077304446366551428457972487108813492932401980324377289033433576530858620309114894698284421741582565977937150569936756985878532445472596497483391048168619017003892426907635589253598099839809208661778951460377817963139449440574655995251295011624590384092996002387758557988561135520475378226201097352917702067508151796818165964734950853289440189842579830837192887292758063213440359737828021748951149150905159477444936857551643680353542032556307329461325997928931114374490547607686110330895131623361322208936809243401679604100759882328734523956099155007868680370604126018041815361599443796044697040211942969213990772641895375709619135447483089285008209757939959067225127764356803984848106866442471527997775914456198509873901296628018425293714888809686082586023372536600843205765791069240646719952744236460028675233936058238665288836143248947228699761927389642025137864645530235975351792347910735622484745083903650060714254911235654672396083291605997760310119287795960214929972799065059037787234532884478723060428593975205506189426293282405297628397838454495740593041712984137526666297253976749775829159875852581966374155211866996461607173372710597760005928140525952943155448369593140179279901451918520685964246261131917921568740259545890114515360605694134483474548676705192898269823732033191497529639127241405040539759458467495249920473911645457277951229513402690680214104924545183441283211701782661952773122818929932105779677892261916808479617542316553342704008821471564917227473222889788222162397546447032706428954196312451930627673288240132861674350834236738652598822509804415748205924557377407426635057346000607445172841406917803001316649031292751797769491884061180966170695969433011864426425771872515253547216261427207688475422604833383581993966460334484668122893615995303036424300574828940750074248967517403841512731937002036288862253967467936731468847883286655708277076364985814202156808339212510925030554040528472255647768134493667672972959702507429251453358702781430594630522040790461698003149970462203159540263174406521185893458255683169615130847230340823895596317222525906784896676815271973202385126603641835014632632990150908159976568280729650901859251839552256352426670532842494846240964965175293804949515518247132842697538673010852998925141793705505534059634886135300401962219414062583249892098652819912328714886573505975289921920048236585401453325162236697406078240508794358108414545411282087744505608194103605660346510595330704616067082151352100921004750959854730641003327067737243144476904987621236433825211478984287066997963381191526604169338586899380150385579665891009659209827955740393956874656962164357334757825487613577781933974088673066488153732727206431926842848337384497455265611083924471892020873095623607232899318513294208758759681162269281687179248942795215968541711930317405549372909167418611342802376057988416438455798977584248314152637914713307603456184915475262555964458121768695908447748847165897160319461304512330808112851726520863338841912391382002070621316090868863333811945276182195891243042383918656963213591855868181006350664222159196486214217197447789019983238922182665357334362303880173580170797125563017543810158679005826414549931130313376925320879037266654432770876824056775283757797261705301678005044928255417563534802257936437834155006114535374944256071731503358009779932172213305949612110163094203870585986724228734583121385093429955297768635620223262867714796956558270357114827376115957491229044961547170967364494603646896482845618600677759808607343621906420436633313063553347251380143988063486247076807366696177154964805716213739646308898029702672659702165517194607951670534239478449906482625479970417877079730462351905762121182394724776672165368560764814756892950757038915297301867585292074798063674095634915650938540593537990604595162134065463644906422792946909204940423652371980741055740867325374985248451991982410739390111237816061306586193283514961752941754236407690251988738178387406366588484120654834453687953173018984619791644886778197063911617918873004219250111890358831849498328435640468871227944676216589338975691948862157238381680268549420643795026188530089750326435040609394348248666356467132220075382223316754237126645782168812618061315959200257238220856235439118221128813127163125878085771276469723871513076967247984661613553406302073557991742348057325846479024467980476821979744358435646629310966808781739285383607069506770666149519825061590322520979043697823540390996056714865653429723616468550919894965024941372377498479110224457590198692228593170138240309227875421121438979088944089595817934527762079161854584911011575076641282630500538906036529793747378997839709259786898015010826997846503270565089694978169539742021679322263892559915743065141803110048143109820838034808112820421229636843525848003673326471001018971065929355563579492336993545205205109219818993886949481328721538603301805500391308862868248905730639189002152926688814958300746331090856280579766785545042495570434330074430402935889929840506022361518423496324367201818776354869405445492286986789536613910618808573693335486544803606820585840435649368023432136487345110608518519410151545768166383101307273274147071072366175917361461752297894334248647709994143188918810450051803448705147501985599900929115300394267260717236240114287289677622602057963416677337366666279578984582531626719998739070988170428003174445256318609315121770935071634108165709186047160244896823622293355116539024421896133331841440086172649453938427446161500583594438825392716781900764345123664655679434604751833854450945896600422209058859952636878863999936342136924634219627492450110936906353811241946915616827264250450834304901426871160984821479112559149889443218534396681259329028053458448508278888873400127554815212518397472348918863512551972673674677627342149120275629193649901749491079066915521616875752079396468580501077926716053009576372647417279964965853605275868856880352923350494708855555784525809746512021332556263901359753686563660630056555783228941075392156073192859072535349570174139299941132650563494727570122305522751319210276039319397683918816819091816764382695752497585125013873192153363795009589830577586763158223133264437456580909300694330703521856342043116589923623110366244941353070961690959206776346219873724520127341727941375770004597293094186308015457706683877520556133768158523418874105412612837089694301309681085677695251296499070804538815770269788965440693805789600837255879912339740504566609310547898463476203754970453479159328378071125306983400129511629151165148356441245746983767631172351553240428184068675550827288228138900093111362027495251990059630077959044848297029862327282004772123371670463318017557535854177264095132518095994804383706726251805184493644414775429293592045043393061403779261475978507782858732525387670962687699209972007323853991693021250046273114923943743684322249240179494018579982985083488314988297239126777166879198220777859827035231431130653343361069709808332529704293950326103267743325813263571178366832798053995770199943174070914215412575918941092641346545747032286371745530978257421153362892219353558515068911334239465448057429593907232535349300943571761928233788447607315513052636095546720197016819395162145288648993610168983904690435307877660632697499931008961714696432084311533049707683437538213108735040205354017571778751707390052987589187935927991180991638448059562288965588081563997401042090561168055660978351021917636087493586503250925066440470852017417127154665275017285149236792533238583916468691012806576758103174296298043077661206001974542831178261091757387051630059313606063353300459692650439256616994378782168350490524453707407227492155581322971232305093334013529768170439618735746779975418680469754513625696911774455876078546705920344491907065545005517889846078222852911133390178355247053418693174032148852534789279142195215356905329845243595830401296383327459261764010364148816803359543231391535591138408449449899278073830830418711208651459536694081327160409714038278165381655790425807931347510227074621941343496965610884333511709959121801280884465569266154234733016966027938687381675932644913650122031290687376560263518711870303763785845952773772018679263858334051366352235974427578300468699932613206091346070828008682104142122199303020089125600661732121804443680302888167569792829584933554532631115061253378274664503617273970094828880254655205818981920050649108015094158273125634245329330258449000431096506254151421661502733918408243379834386147716972388808813111988747166999418705105827242593254257708799165673961902346958812330740271710922907003858857529609475366439982181604379999358871315456441085859238475865033954401654639377550875307738839345393646396560173558801342173544548151729007476628874254698526117543112478389628852691476358395343942974111411372399593088964390781595535993738708693731045782536310102355325702113375027825932763052902339064759763492316252596974313089591711595055994024784096050956392515041143090000806550746341817118320194310705957168159389133730908770693756403911885595017816933638909267873941799769821325006642983770850461027256014923143923697902534925700842416093497616760856180407147573771713944242403106998241554432704282497113055085813856550820632931229389122298862264925660204623685036804469622037564619686393949863106286042407978415523864908219524074207707770151809221447120985315108465540238172417874207027555629389243552182245777915777951206520924693167329245930778646639027496373128970853960782821811756610955883866592142436681351615675996931405991955317387060949302269731467033548293513143269909464680650317041108245262041136859436070786405783199493640610387059396471122014646003369401338056304876181606353271550579281335217373282712136144549485576881003155049370861446534323331995322606734447218725816293486300183897009030562230374606538102827565118862584869563124458104482593891136214650450687087210026683386475896647628187590009059621390390938102724955355774315347111578804591979850524498872169138050183061921139897594349214458156557066901963266344255043463954148300848626359651540699511564966007032981769095701597018093116368028138836451465506688834976090549060774321735407724281908221552777879983344406614212262510032783621843395815159854330810314053832597653699304697011965384902635121097346491527343336127950500185801905924345877064231592377783632648592158935717096983386004694782412597218755864512683960748482396537570683250516949498864412202514679567680157954573451980375086099973796447497600705886819701523530552963421866109908027769495006584453010569431865195505888984553869957161620279310802485089403446620855137401478798476814130406998754801828952203351866404970401060769393085078448139698033338535066005614149760691784016392659598461329834058423544533072322834512644532253948354564255464687516671836221118424688737748196989176477639463661128932325214485659250236701383957215148193838238024441479477510295394609331584065326801390777601257387671463143792728306303488665517652361665702474042517308900135249045068828387487835715440697465695904282093813701495119238509023779598623608650450099914982915397399232926703016956991311457388239303085283868804900738054608796631798956481080033067611751541937928834494364179443203440604839004045242433985146573834446562192611798164251739275307699474890509992582217420736581156696217024605795581206549439555302784236694041290520881748594061732053226962943942038275007935780739173349494026752612820176747603202751754576141503243552734886793555468351380420416464638352060419043596154015945898888671321875184760587513827858343118151699167037885376540439089446952847944336914256436848794866148252640572990740248655107342005214893403319847207445516404716884494391028442248597310798295169668744633600599876077384595208056692318599723426259249947284131901824990062292497227912085435139853333205004361841272461063388950405444475889818142980698070667563424875003582522870014564220813571008682647347137398194712355967059191720115694510152172529477709239053588394930534219411496707992384418601523583797198665862026110280775681387270632227124738617204385559379329554337407904252194882448011307000181268951351986817866187985776950987103097969427035896041685980964537755602002662052317291622578607941182086718202642933844763289954921563322757594433340034827958163759949684533896418171268388407604625970956945096426883608474242188407803552894802939549934698833331312656007966047681421639213510869471131936955407790692098059616693785260358751440473642065456628789472731292481847887470722503582951681024762447804809983315042874925170692316200073324062549606263433072828560540279365549761368628151305949316245896012035355130634926175091458017877772672372297285165318159378869999124553892717287294153699826957939725308192073026516946527500918620593356407982488980708678022305017699530944640322105020202069664255206814287732032512663390451755990799094188300559337131818219494366143129381178954162706682808658300931190913069516325632497534468824475099395998634383524401721722291818495835204953508115911123520047465026048114601039182956497833727425374521737571135108570938153841539543705091282864239697532667115371431069203360401511348073605266557894281551607697920207719341004490313097972142644203351759296314737596969488507890179768830176229713252084446463032068898525731383084075447620564615316752331584530070921527470287599217941764166836854171210421259290938460529272896636438985883592146323279512607986903881228174210380834667062867788272935507568926879593961095238357881547193154942776983057574138452583681831749939197047087656647934572998470556881501655613165535823852184069007026623985189766027198086093158689880192558673055807174545670849111043169415233354474224464576889359327859702350202595333035717059130303103569713258486180410480856222853392475532942432066004481196514155795146218654671225649705781826294141059722797171452228186939824733549907744388481241480416978440527009808095878422538328284206047343532237188386408785205992970482981955120194413424223028159963518402803917339163405775945984352047187982508855243143288154082127299393579000995440629501164926723954053851524594228173131723674507092152392077609379460782018547611843404429057833745611816510417061166488062970238560102916215703230933181290555986811375623817730224474775690756394012808244237816425654786757146188155901572633172284037169516333765536353593508650334447582677298001038612157252212495815371202126592035068927710324268594728177511704428377198915678244328084818098512612666520144504987515624572361304228462422736077241113889065294453340753151674303736477197915930756966941244039962868525183775348888983256596990799877122515487974034516259640877585353639887216607136418965642717987249784864053887126169102476534695176557458043532843888404145734526138655524314357772475179066575576995366777595510294342003950399269561778473507287506603879926279101702915747052154856244120304023888507038465248803194819586725241734544373706584848473282333067505624148610020296838281582648861497960906365280123558643629917691414589127303928090907761864484285959859511551476292162301001672693217203734708407373625140043813191369985637634200634471007310072642065515832139112541449519900788920874369573624451019349665765767932952632263950869419203859557178214829907392641690459294360044340303927439450589433492998671212772951053537876585408514045718362606459627987767319156745505767276881240221599575294471635728206635763321016968496834684111992768872043451662845485299350731499601476372676336425599889920731398628553700434686075790368658420746418570490332390529887793917123529309291919256368964508616489255706993789429545961796702550115511860928552350130944166267190253351458330258879470568853107077394836225615327120339224537896593449284692030830649721788488815799494292141599538039168402001302586235386108106674604365363630855784130472586131198092341077726459131106634088689807635802118625112801497755748656310433578842791330020988258184586741264745722076206996185891269396062809798937645902426512670515826331299820078953062473093933742784520745166347619793914863774266040536911095477359288190766675398497241645915854987298884104559167590612087816970113070556610499042736942673582839238685894949541061208725840414095345688071414065219605517809615294656992483607210862777202684053415858729383840651843839273562569346045657922834507702940398727314733549828216062164963935795879347101223795927197179083903451525527854057667259010884127308172591550189204792214167324275798746368108177520847449804425429136123102469389859915860899791972838093923910325639069089455071920699676701491257293722232484447493882362620580144149498635872745174513051821268736156384798762435453051271208770982995405562150382161739252412169993745954093406702694528840401278252029191563460062151155968052561334959667460920587537088835143780781918501161548075440916052118459149924203881726414181881211562077259903494509847148567438277339668630282889519809031786138880511762578766371011750844849617890141651384844514196223769727229908954041754616508458813498144748786405958009566344963188129439783365565568469722940147321214564348755533694567877313103887569397352719283031704219449474197287420236141339797220742669772506255493585579296578087661267600906436603756916602586148477309219293199826585290405714949970202562330399785520262318129492348759270271688333013091105409976035076320375047740419979524864421901081714237416442729577532376836069181318027101483276131983130605041805805161388735416438295993074811504068216743708026776730271507053865620784555103217342505081796074904971744280771365147125169259146895620572297444681181069209792272900847690785651204233495923887088850249631888767641333985265663535651732799542158564965832051852284442692935767803038544712874424386213546401957056720620334758457617032079392256728003313266361663575347720932901024410946454941038175106112804220704264975876462780749749420677946741532313454614115218802304318912218318091520771182131577089032570435319697018897379722137713095813393310382722741276838689606465733119167245635009474941928283123040708959123791866195902106749901615700257777057276546192198982635699707093247368959516430095673783339299237553716193673715685643015995107631126888987494527657523238290084341473058509876184064098817446325429524890196608141914615747307826938894097043854045526105559130241686212052823526370833909124791024581061373123825628686636894888777352083846177286342813184973390761889347767344582919290228853214258816079883965600738555688064265521797204140536766969155580602760797816364683322144650825091865234136930294911064024167416824458005814381859968280926923944904667649144012773559377376197988932244129100207679152225269689438429270503795191846676296544643095686935063463404268049961474418361810788352132304334921374772402133101216631475688858342619281641630874706584231142890357126724454419158707666725183556440772077087610162841953032287241212068317019229189888328489087961033022095669603704771683237950969715119299424925635875206628735470495773218195385186376135200952048227494062098974563277909518171743397122978071914517197479555794745122039941980033721530936799536854848436945901318291203640070530674137445302036105953663649895095748343829539418273992124229211168532810268837015483196467324503182407455927981744023729357051004193601830466226998570323023266082799392791097581542812468314711924809888479677451011242339544781323692447205351611043498085129420863333691886129816487440043047190513712876583713616700442550384337024079225312486908669017314178409417923455972359837801747328339029177028432491561813368515449476021860642431015281650583459111430632460470476157070138189730698267365214115905363457013299566357084977374716930460924347630968003374639991913642006389118950104830475838365402499660368716136035057212517863373715282295580625583065163932921559540917613510564623795329963973457378915710531947447027145179905960447343017883917601983493820366019113683821588992854728578333155304477677570108994521841850352271140601322663918365197589034726438798503610562114537798550087680637597157610772856725930320425620993745352276734928816938223117425176424110133475372122764298126455137887121503034460001409828638247687150942830736841206963725418184956296045067631351484685971705011634196509763663472218555522056049307661032633262703059638705351610208236268524275364703964811953102929472267559747425166794534514946298850748173267401643431156017773222221191206991170551103848015316424588473122951846166516318494295218745321215793955795762057455168938076450732241958139116666408114657329719359009605632669811181124943747531602027970215430674833961729433822204249145803259533371534660519653676831654746735142152141026174355010823184612045205387308129105537129468626981303754285926098776661358419641198706052326803929574869982861111949259970296874525806379372039562470579068506492460389105392826213630811500227560837832799722301964734853614208392518745997021586850671580376651172513413837347753441898746352149843794544113829182725517963481904581311834891264404119619790324930793840036148270362156226778500724335990856560091855521972308684054708185231036000123010242678126127824594596222700643181129737147677233835934373198453577880245846468236300390137169747830700151806937408417020397256054010109540072661520738283728369595543707527241773956901983090039370672146204508538434169946664067216306212300281213708495323545837039526997684236521788193396639632538548358177706148912729601271112726580206215312741061002909749125530043867479285757092084684572572901338387930219143170029554921877748844272316257297970123747122785483992258118149351564969489037960730747108568119128221340830437539907912556500619470882358816212284343513662458364258600827902041263861270320171843716388065903771863631457024033316619698735315185200983896606885285852296305994851006270562481240652626781689023706993987952374729537892550125264199138937820449475580147347342536446035721923830755755534973966228403370348839023537106594915889216102373973287524994979458420437776846834402369850709178954699775221793391550920434455643922843507989425895430446448660532579284771503590762495321976546221368029508834523180222402818649886833327809045561895613223641230476879582869154659173574747545280391966591857512655257909929400517784204877611018937590505110243797805546060422035537288601686752262154970971332508071093535676479747756982621292688050769648570792238963969920989988436387333907859860081641929291118134824535124098510682014195871137291048268860229289035400853565330823104098958692151592422089337444982463510998766858017445274624749222157068062417103957704898746060607959016373469172528771634698838727542289253934311969994331350155525091064199988412545938814060554528111189723722689100136042531577540959381276785909696441524241573713447248002036542303535990118007634855609482853376492787836598195875338493036212886292172650974470558271608184378696578778581124183767475695599090150421468939493503955125659871848015186396215562529139660299403996517898321187671155339052781944952072748942014411569400979899865884077206304314618278815497177412476637207369612071682120128926703672520638131288427227119297662274412662609138762167334968075828623200021251956133202138974010081068650798401765593267540947991173585867966418496700746368175468989030347220903919403419437126070807566750774658031030137698906348276612138974593966704227458788847899245001341882339498244676198438498931624685379319168080201137074234917885926893990537868838976923197825876113007963058821839484433296524753422453230483083316324084183218814911241533060194904608069439644783068251013613649001391547416897806318657412151484799967428884986506007587257009747197422069641749822287532727120336502644172230049828303049983572918866131069093248857809039091790788580335905681281520786445459634563865511895320101958352335773786354581722381863613379676291590099422528291230653399361867556138772260452874217827944125442305512892412904442914487245057129430318950578151538023589138945073410179915480289198141387718651987983089197036615836023519587524834336687442363265585065377116323334399377348164227382712829073470146447204439279330030268928124145799524231779702628050787310299479741910010002456887005759357506134867747361982588288956457350941348711296866404587874557239648531638000857867809898712564589916439319908715328913612204296305606778820571648297326527482192709111812396557157498174015845345929567693351691309237642487275205281356940428055552695850686851337458534333129432743896204627734339619297011001153301161006034308838980216839416335467028367831144715975166183226130522353849451302108769184870881730325239131379672014788025375914702390211452817197954036529216589892653881044863820731948488316025017079857182265538443041025222946309378071364298374376540797238952814612108365191707931543959254433662279164811411532103685435282113385133485477535644049569622622373342085853364630247132705903528682771272044453181335757722520833428803155366032737026870318732253555824243372817678206248215224204813968649956950134435311547576044572899324593367521629612080138263859822154590674242816007261742907617269751680705843331583705854685203664259216680446039218850079351189980993205575511181449485126854972572217799750210352378977816612582391084642842396046268652141908650936533626697375563318876329078453105536951847095514724050982406969496014063727975756578526685183100373020470821003642534271205328957469265299920066908772934511828430408452518257577059169259892218640514281751222878935652801691647378370351279547712452688613162627308669622435683034456960339825222961826847906818941571878226666503280137414351356469582430139777922550434210497502213554646142982118077051040717616453166384386068434853654960877114756453303346726619240305297509603159761583406079500584277973843950558406522898504847876855337934758417485288469041330273098397261046339298727096779651554300282432535835043122686749477534735274659535663822013610295150890347337772535470960485317925427685666342774643296264400236688486595656015110819118109913864610154535757239822253274158212234725298782573793779936483879787601536304651539437886401000824379180753909009159979901991274861107646465724026947830977574419975888836000580295719564694732931629033700552163968737123834828137159196183127788523119431139115764407954477953507408251598740211669895007424188977838853443952181326370090074954121471606272924732703281360953095208932911641109776673614549729750978556795315388917017152321404989373079387817466721370401561008061907263919325124275592910219829555848386912356667972183641467966372237901069994325791413178545953700880200987167184841829552634556038826648634805628487535888401666607661667164689230548856121548121694290178886095167310977534564605916346877200142871446456884721837497323297735730077755409811257444822025787279223779551612895150352054409068949340516283246456937938355114682660799873043021468324539593035827680299594234956171382545377016926409034769413125611072726509669906652260103189235746312750019234709323546413638862860831200841105865731604982273955171800444277574929339058985936846535909226154172042810573150438247628713748494142713698915723489854581466189742300301102579349988951854972756520356368677027451576569118829521958027351152220453690384025349983107160054563988056234582463549893022104010656559507277473545835247393106779128051755043280905765876492125243646610671339656687056869100032616587421223262791530328055790930918419934606257991280996699895430287471950226485914053423821484640529554794588020237342357013985445066902959042029482667368097680006863309028051936091384939238133207344286422622058219896169435743230141882950358643112301490274372673155225267914258097387743374604107753673515002864179011024770246661895214204827823197618827605480710450963996073205465902817079108346187766266067423297514560915169776217146992208558395152333008970767926126305682317681597980338226429797962244773013417970990403727412041964736829548023520380853122526033293783084768835447422504618632001020367600008312651294278129915855237628346956223606492528834102433600571467279146971635879987738582200145685720022213381183515214670253325746665539703812810319956032720726651701692158600737209687388568467734195538386196455027315072260832819847220018686028431843687480061858905705645350554740379879925269729969228170156414513931817146387572957263613797110663699332037755612495082020784362372556573048457637249255824513610723272561451807702617893808431506685097668908134457045835402632109828580534386815042624185709869673689435789300018053634002680259390617251001922568038363504421780533438981040991475309501516051647462139638471868403612925496139440334443457820993364364624309912262960546856199664008100075851160411408512913797186394884263679085591410368920720968929382911686348336916580450261451159007652414037583112919275310139876295235677393880003310996249330383158824545800871659010407544159145217150771179088503095575301225164558980903344290313986800510293100971966497056869025759325902581086218719361688240186579357494595644041214654232812169080076822173292001775098340730388126106884813611710181263576455926223007018595044720923670052619959318711999527064602867318730326062419699527055423608982441956198048313472558983362641454599711741095462130247054108621428354178494009903622413401611476336676856696968209641306704665067252798087824620310952934087016137728466997079218475967652207667033755363426661525061609680218681675348523369637637493443104580367474843807181109919630028593093613073599668692941056786682266303867300978895703744145693045378069695944413661508031261041742035297435333158089858764000751378476438480426027981029442638442908415737969638280841872105421792808192069151537536714568891029809758631356867584042220589383427446129264680809927086224177603681398927047962426277687619382295764092420169382432080449479760447400694793189911365244479747975865236639769337306588110313863974211765058670452284000830622061538254982719297732559729800389067665025787618162058868844996727882328463489413241272373350169263840048290304908104231736442569530459344396006756350981184065940184081273350037940446724798251702566337684476095375486728691801807598413143848004310546516003825889250431163656054205113382682481100329687220730977316117529054490368116704910241902153804592986186377648780095639363021491723690872119273812541179403604014856585166722700416801450406894268983006089201072163413682016116235376591084826342625527512000747641888530475706562105672651963472594290667102125122904460871485769774897016629449124933344886562850107954421570445427605774306921740324189166725687715778718246249829181771055861880493761468861452868823790572207677876074125747955779306647019800679358508275383510124229186980947485299997249856442189427529887402003945685181068220259997368153970430521056163771984954060400650771274245641264665471238211900524354307975298640055799686680607997256481894699962321768236552537473592294675740388357818889105230007676878291158584475550424356267169255901668725111818243330558254484966883882504652466972415577329484828636627670482237296856587673581359501808771019592159551829733854546576072732519250442068698124862959971039175780231582715394294076336028249403522939342887638899071309532733282298493010767503473995919218748803902521401684725382701468043682161240850318680072221760945980938757879108411574286813814878376021777118198814313513520292534165975601177749798636390326039200388238022557254879281967240270619568234490290951500262580685877975225071767056448898100124845482415540909744213912613259980766954035857019424928030711334446732225053513300112865224695379932490294668604014946248215625369535569030913113455751681638157694561214622893078126931354547342168336521854929551761393094119540640585428489017948419513755950567479390290835139309369720081659686903056938991010709335487382957229030914771967025398360257047072594485628549928858027518710458425045155772586619992958755026459936651437294143012319645997597671673275656298713887587061661016786524855543244710224144001257451135729363345036543107433581470290813083733008678497311408108017882004167931323247798340687281119870600286481101166898159328626788563340445555266949945962589631452160800316791765590818084014629833292736674718087126649727975981541325600537203235282904276706251541466297149652718879257995945938288238400209221962626158741984240473481406101997662792932907527295357313146473270495312542364825309735492627093850821270502506303219702877418693162395972661381841730747922333549911295261835020599112691128035254639060120732184743748608343690336078556561688187490112736841494285105492219671295463485859471566481710284155298292525232558170432654240115977761500766207902773242332217927611527297015037938933893953696774373124945087515566534667006263201868675431118830613916080598324243826722147815685105283500106926088671450082154805180410127730536104613950708555368446116043475920075513638565539443941694666814243412315768892987596668259320260302933530759333352092014912677504058762973419162048395091582515691001416228517275982869346108462036439557684715845206681967261417237616885237109595987454285139405883853619150090049820362159261072369330461736327606007987063056543040705953748967259702086262226051870199296140471767893739778335162090707919220761810729737521700830607900025339712910031274132557047749437524406932368544108328594773659896194866063048789161893978323500260678719122929392170020053406065731264829912372101570004916042233189495146087468187542154815648025471864125750278251478519143653170188567770360429403578310435177752833549113937506807900251603328146751986026956978903164242249333152232943911831065094691455287566247019045653760302377346991982693858338907565037979390432097524828721827766772856787514746224667070391491059940174253249501494686858490492628617043880843656020753144831118011725629738042239002089948057073455250625048850492463367200429766935378440546503432193446553125035719059069271085801363442323462002833456800611861801714951689912931167711414200860963707079113030504987273740184573874453560629005063525114469365739678690234598508128544907220484589062672995310433251595087489379566685853662693523135394307788842633482059897154088257561410915952733930007870455390769099092401336363808989643998555876271950235917884456306204636948051868431984478908602978218184013105400146094988457754344192732949632157073327828848809636936302079791210522397790301875604823387248213460976984512061636580593439044539318785423269157815444803525102668510189153193447286164791836425760292849950972657193023728963700487588378020993939410666177262373263737762426235213812876718597189188410127924958962722378033292501086042527412302931691191795725960822466491322989379810013949953175943590965106809259822173525344072161160212994644769514531031456917541543399141846014643484823099153871428358120171937823649220936609798987506913707491195526726937782795211944703831467382886654716299467242058342007184483092722543195201743033378270213198434971971685374685205664648557474510134562183764874375237583459275056513960013170307001575868376872594819118733769781089103698188821442323270447410495384310022304667835594379565953933390270419260573142966288828785784395643439701444146138047046129909405521330777636005270913340169493240798738911819246938432361186843177714842786435496337848082903214459421484886194416758003905596319410497514710369414613848498348008825393251201013959755646679943266123600418915037995498102685559678079711709330859984059633637340511362618652157703970687855500319028838159695622182444927074547536320690725062171074964082215478011071393817778848574668877428583274508549586035137474086414312225516011149270994157081238809462885665083340671717833087295698962431303103289779624333877842063941912429654638663014206674711268905501238500292345801644464157782922157141667443994627591348763578591582707454118647277284203449053535538781387879674773704447203752261086684653339997425859318388738610094107963822872865111127082396642715624581410271989705274776213803588842283561230347192243884632617787150906957659563086756968455983977618533777580109184330823138789313774122928998281949834793615858443963371487523357381218053805933363565450584123497797543074406257031278501657195045429776186540385182608010417273476595315642312174037320689813998934712087730413578433315474482864797495728553450783337405032016758543663939754241861945661167044617544067771129207242426155900568722500157409986455682763409198196954273820368467556295332109073133898285911924622966852047150101654264665636679972963957159189091623426247572546388217665955833091836054353315564751932099427139005744109654078739202514260241403704007789616775353593355064142173709135392403896447634255844613163228534411069465429020088993711196553368981290629415726079273794312431894989139977472240087961295254396539200326321111664960200140047745721429298245055038825303793540814778405551088694620356851133318119739670939708089534144926402844497780890295839869793087896888360784444444641654813419429343729968838381027691637192639729369106316675699061847815140283557383905823448260346233473487164572117133778239436378695597321522900709153883984280957400348059230836964726683389331474241394139512243830295013352316443895965659086139861316465721445295829394182000743075500844327490947196696000787987201329456809712355460265951102560729041443547045714383774499795952193757067428918485019888957207221050980547844415639563014712429676018703694514448772631803634263663799301591739324662448492446062258379711415112239963872883135647721059255047795415831768669162152363008946128393366619933361297281565243029605423514424675610866620307043842204021333656564499468639634351094034051726598026706122506131868534428257555810856438654185672013358611434285053626543348869203511324461182794789072135735602643701570346077155402725333942112035268740199109552552581976875301717976487624807062288294582181069304144383215465339649209849069551380081478664692015225039309471459107577768240685879222573839959964543501363695476731734257792847754006806603568582825786482825346423127713092641860857054874803196845609089420588926087279044492890240062651192502142451913295651644813740028918519749816069367262458682612197779334137565341756172069545197360718787564305885812955847601723893394819197779839720563506698816245740966570080342345800076949867947428508502605462295633419798014693122235767813843556522056426674221911329351253705066721422723735783280104047451443400670380290016116164681703510825755893140732794356883424851610626643528178881879168579521542568350844328180497090408972734728116894985824155250506770453340687125907856562251247288536056179462388393662745410762720382710721442325932003006829987441470575566200682205369781082412076925084733031848997460674411254042515206476010534739953838450706856906605972615912779808045424752848950823089901453881061039937783413456707035500131542684619057101763010897364698602941882572556438571982333421655096409820595595053219659060991795503354437620728879579314066531613967529052055340490732923934550601231192880737752194577172651063851552081793630842551888768304899441318440540045368734926443214766163354589390922195330598768503294577155752874382548830255226490447313702210917107715635201874663312773983524320443287889272439371165251790130541973573944671698749589828709872825911366426969625982653255495248197289901741916540386571178090189476724117326212418908120931809429915398863854302627302026169022410780458239807221010429425079812723252932690065759211678090062348810760956395110038036407123109491653162092901479344315985045030320591028574063104379202240168519035762783056847763702885448147740713026114002379015545245525046836918113910922432202357431336121887856082770982807326110363220949047761973437792377561171130823415713382878450880448155025107338140711081464013204669325994085072350113538374702517536011855780158700729425417916905488331321238618951228539125302297057235675404132316580190656658874685379680604691893067032678851316330445488426918717049297462835356338118000611368423174477505046787167445256841470257428075028612297864787292469805207024676086348227833135512127558064316059494785980617312811992953743179670720369280520954139711641083859901121100430748028868841329018386919986465553801422543495153623268835661659227309933040648931623438393402123703978045252210812027730559140874246312416438236347635486898062528580986879005117478131428934040369553521297063141124690424365632342446747030902553233780981605034009924238752757056719469041083296802258745323665472267705866886375859564543426943648011285747085412161508268857266780761888090290785745303995961219990794083250177610225174945917506283044482847736359368198258123133170889284156647051883810099165233062044962228429835052551261472138451963508202614515382009451956995486490835477945824372388599124288596731347818969343301080844206081211401508254619213080687801533246030350028265265032785710039122513372345250719197433166021118126845076485519212160805007981666170650685911971171136995207146624535543248538615441762348483527854878974980222991940849431493255107171022806963603282225853091891661758349001323370953442352580327308191927022310616564601913536580934172945840870199831362474287114763536501468928708043447101303557800672770703109851102028050275531837426047798218138387077773134366577310988630075437076433430215086326304957745472563331558527269554048808467445190173554427466506883684564593916781225217068189968385258551892371855467176945241806489803454693045528963154101370019424816753855429799754225624037401275924008469371190038491907991611521798297081455082280062163955223918397761301284072015324480954233470806052308269543818232309652988627842662127210722978492889859073480117311138532352511063092616662247684971176278719623248163830305424066607641388504652615593076482735614213090974316536775694250584597042875043847233691442909023394003571484422460836579981578499412024560466619642927515167658674772948354850888839423919129617496993752913367555913453601544524893465586298470209586492803935788283143436836256994035881831493296892981854385888265850077836802929813984788183025573516378415950839202067324378162420112145528670939627203187365497754107970198233532394208476646099228578844489737798700657017538476794657042964628494478098481181107869484522889103661669993480386608447365283574643743759202641218684673133674942660088851844572198984909531927233427640455445448929447006309795845950151443652132401965548074196191588380929552187140636216635636111548714612851027674375416526704905178299619821210656132353542833028306739695008549373271087245778788212640926193317834826603309720596801813129299454743188933876659133720651839796012276679065372750588795647759414511209699093233911921545944222663722987527259617527321173298979240527938453761756337494560002328980330951141954471681916641761077175796254611710007220273632969252047899325992732913240953304401909813360918214631970836156046281888910307660316319210273109233002960836852599800933672853740259630973425046553748350772084087642243923050730764573685580123369251883047206389224134609007135683779656745464311145114605196248101462349899010994751314134114329823092669683943009657679386244447873935010072694309312470323133168580076922003604106798782491791270062242677683105003130174982500469212888698006139530774128655161085609339062421117671321161834328534319998113486928773210563304896158573095263720249965057158836863804519286968839752999156370176186042548851800579192885200395860760344938644202777872977013824518288189763442692020675838568574584803952728713424706494885563742488945426840171176535505116644640042552682072319457335289119884755336661447887048431677116547575709046686293372259788686790434086020985144334401220479703124371878738149015470452808384984975582538926041038092589565066182464769035452032573680493350116206043383574543003110171396697562443547694654719373532040333374730127828727223548547026891860465798357378008753023676111343661188757653353327761130572468101447223366973341920237673862967287397851999321978294620678265336316884784829966862551009293991247853276569564075835677378270482944903996475380116632886554192224580503998087231014963099758055894003057384552297252067973885261865524039729034783019084735747563391838826232966218515006301072150827583539710858678303654186024745156008226295230319374623423634763144995471723158084282084621014840440709695570814967990363170908783739777856284834044269470124907161333130543069599721783043043883668927387886912223274332779073169081007235930238843889975302236414623931258331536991102434017686278139596154955376201976601230303576299583858359350959185812140177874665187294516316540231067538453408103021408710846927535102244150721246761677015453317424190991479559988811952830910205306556440275184598326659383340060127935696325834159910059374127560292391217736432142221211041353484600908323217753970015774006334204696231329755579817840490766590207008780830314162389113483718730975174589223388815290495510525592965447727803503548550517859237216426381095154126650871520492566981048008839750337026233595953930688006493363989944507452243167427175736026900215840284654627422041486087943378124524909681312475006932227270823240478211880058320425638198058281866963990256196074242890855589160399953464157701764416776941264553922579437076740876814637467375081225402218438105646666855430037016231031226310692011933933611989089646725578310650271368052376594082748866091641021498286428849579520707069401179981687650872008544821885967149329608002737962861053939530004083172343013576670441032646086182199570994487304678138317778414795784069334718716141727241716431992052139633096343152160881534846297021420032234846010843790145301709778483583805904085116403619167979538609713627473653040941823803339609186936264046661935840495843590636190783336882872733012918706406490623527855078226237926618198243780425102687684143182361140354360509858491522780961305102649805567308436565371593035786680709623683817012356479428083523306197916455112842016152360016945899589359568798949506417220300118090149211671811233381144793989102454603687004258120048691693578028340403832062987754391129120507191343566992285965265970315423396591077979139842409835672480079047211992540976543146757459167294216490977229351082783663698836221340876855329763309746032362043665983572074776974414603576154702445187776722210269520626587876281491587801248522477179984880619019355303242574386502878683141665006197020277692490530244641354793342835690290641948000216726871785220245239009451948063613739349230437352943128324766916472412643581906258919870573098114945727382342579150496651141035377547368888123434995204375765771855105446796154252810119696025863366192923640413219060510023105161133812920024814145647275169603074945931197287678151824493142407088396361192569477287717063189798905881061499396598938794297220232292913238572520952712477731861328106558823230398886900329517519299696296636793037163787870181131789535850180528854964587702108514190486438819746517639263644060400011574729533588573400662583249080942836403620000079265811863498537717473534795090800758729073136351949046445133921977545753492182670051907800260001079132780005472994645165016145631731538893671386539159415618946796122471307082935054574796830940686830513518871027745332516615235215523552272263143434976873217181932347793092146147212331556157991197746587858375438816205346482052268208113920660651557971388972185530275301829986752627635731946946939378566628756681614808636574883255342783663010446141564295474645146534982452271098119134143139449938207194799452661017396437986453588281020695609107257438989085604175269359935123943245405524566290871917121182697175095814340239029112588856040291594912350959061623067755245360284612220465942688737020713975597425972452045541495324330823037733320484130237701629177221745235106991954756001694524787528282947257474255273334380537300268628642805790149336083961168285633854187862990245939646573323163147649783703684729607170573151018513422079036485417556583339318191482584986220620607964966499935809007374356546235923427387362023388511278237976715872252682661824158856276263661025018531489178533612399406818237953677089799571304139998106220574394771833024642401405459219263279640017415928012740505811138785883130607626398249504526561395758581840340095562458480517520682262699713225685538907169916775173284995924084980529466418401439943780513461792082851566935033155092810352363495537632370493443161536554239791848986773747936591732306302234371327779910776825305158559143279602025193483145714045156306481725901128101204001383025786841274746001792422799217681841084509374491701153653439049688243627620044834023251534625315647969065173834812446719944692647157251247627016049658355779115641500849081919763757254317222889708994434984434028324338962375776193985926740077136093279037665063143827955673146326949195787212084984635809776832355478708366625288218540102361491604436782389864754061885424241940019359308086091590572017551684824413427566376945237678179199880502882319121026010724665701132267956511491231678346398949154168433195446659071163369910580579510188065479336070314577118775554262360696737590059562906216186943509981004691027176351653429929542980344265142870407946663516879533769409187139609408750767304505238022001567934218978560450250497457692799498692107118437608108895161868318581379285320524472720540262436323456077198753070339774480186976096581833841669609008314127179158123322339682409358224076680736555878100066679744350238595974405288667463202090605845203802376616816407821987401011817375098855173259409452867296216612849760175081740759486755367743053942426817240315812045617490711847881834673785196825259423083788635854602545981780666401898876862604765213225897587152601970730855831057828449860447297223898159977241660024320251619214921850129093115603646049873294632239244612630302789836444004437101266061908441632816187356564826882927936755192806406891191618042592254200379531453623092756176858448762742419412663743217481116640364938967921857227745804862171683651814412153649565890340638858882712319636238177189967997979952160919155720251395951232522836016261947262311489101262936911831455443043070661994310036980593525519623456457594859152577576361166275291978204203061323432102355785118410474097842471059258766006374926983395013059435325748200822193789057058295397381036806292529493877875402353912572432186368382322872956072068588331139144578160145460029877387786841140229823552775315379075376182528132062434916866785785265739451360719520691478493234626836106149206387978741556789170715195380656469663398147510282420322605608396841995927474877733043112750715691302924359959946587620947214278138267236800923804380936198661502331587340615303955436459780761862952360162047232717166946975659983472308428959970738968733585620082943538076544287276746800395858136770584495960635722051393158045978177600375598391716353206749937814448855838768901341232306986776329460062162445703616722242115799939876160283215377235168438100163990440457234053263237942428463711345030880520114535680358115616981739457968374661620805447281970867412782088126175011226104242705939481498156158402105191619321603371763092446597303598732041471849243400834648388290252149431933090478619893222006283785069228603925182087514762696477132142107289335851590634823163906104674909029671547595510408950894063531476344091175283162449915111409040018967814110143039499599648792409945914472097286588741068645894261927020701357398157404350317359256315888342040011277494122265186404080040838540864660728636329837296420107269116501502807466516245640038978660258890407028444789199576125543613544485364172351625572997795685259482166778381317367270397494479459519534210276113365456605627608147979135913649777154445760837469250898614092794981904600948591731685809355857952799221591240798129544536079821883058606829230401257446051384818272904932030531977423562772533314984644615855134779152305693964127399384719196213310928569125416648994503795392924714214225833879548470383158586322559099409280777154465803393905119138923764564102708702277088694564764486768619013928895837402933554554228291161624158656590739091204964337260263962862725153648262034282643884666084718932923560212509733209263245161904599425423164614248209903985413270319833789551648418865325484631721709159024570906315525923200432012843429357715832434010471082384490265056817177469499152389576070384553008894328068204571009280817070943859124529065722191820521730776634460322693186657589095532936814364090360295278757063930775058075497244281338005241639317137620034119844408213786128536907736774414187811589253737000007752699789681729982951249229605262662271721169362935988734767009559179787801447792050504171850914487059880584605035005072221429380855690984918029831861120592424824940671584738458578676770786089562647786474061939521382169566855531902037293024087516154902073679512424202254320006760072429287595512534530310294110008757286995429579149015068086399429053364019485089580991098793742745237596281981048784692569585324277142232940509885521277226832449803428749132424011600224744966837341159115853726906926864566719468721797075505937327822120441708455883389395063024446126531187928761176556634206126432649807938863000262888739777412224439623457661866131268542356983054992997865521231269984435612678498993914276348450468556888393407489381228061681564218011843280982114139882350025021948292737273035803893244487552903230836003704689777071846994306629373156509005587928784758244018764651526613433974015473182284862012154686900012500014683020968278294487216603914511390744202764036206544049935924607186850228278289532246302322375625648929751798345784522303539638022876531560517379434777068401085069476049671327946843319009025646491848680357445118502784263749028781944169555565228111303365177451613361576090926497078202680935273689535788780791026326022969131280927090989134832541410073690661031423188671023507820719141047273345412540351880612959838566457470830289516496612952643296599546939985624292955729120032500978058236132457476271965199169597896585112226894825258741238676914653247998905568233309680329670148798768227502718424957172244002360744196604832134856949864490485987020195056137546709750532281284780494189383072551899405193941417380555385134952730271590046904646118147932673746504411919940187928205426564493005848318652755327721019006599852462045175394221578071987478465736390379639985933170021511714754722075663920139441254759139812740502556711125727588080510164434792397210427204861653929774354669826451411091115807010370803698978017949657058407066417300953739192517538579243664923809227211736807843395466337505005076068030179479975885701076506656316324945037523422522989890991680488789178222053052986944632538473458717106903223552615487901819320503631165786749047708327259802899403016443401898468295106120835205360502815316820090700402205685857373397511390585015517963774120643599350181869660674433395577900773808922409178305350054628667762259897826394196921676373348628740350090998746096693194583633152238418212156863269507803503144026278987287646374920658640446317574562907278901765767336972114822871982697277558979973665413912479598131620066257714195275351301231398704675476807253711629370284303340547953294409459114377140323360950354608438802127165973775657019676741475187652261056382995703500306191381417793088272257721874790411617583594038168299684885415909747938241232220560394685817704711472376829024345759796862025305813559536028971130687109346743011445154307441888512878346297323376269154134181026331127139131260818938310866330942610658901773151547683130976792675936524579905806330229999591661042584651499929481555891592437913933368478491472210452734800931730124246948692542843959473655186803559391434947622508552774440994924414990290059104007540456113583296584177886735995658577608645746387353820908297416346908560277040396072305006564832326681310998553452068376133309923383329407984559976375368234673979177477442476394732090207759702804345653548100353751688724701297363655217049532367264436068403686587857639294344816296114802480642755079923911341212949404442662405824599522440028887459109011819999391041941850586652282467831847543011880950536974944827242711406915153633016071189688612231167732809724844654140610171030891552223346919311337971119250363917962164231369789978753250946954890649278186122227525255415101180539808769038501886116515403392104656373050276540262191518927531949913181784682376000739164159762166911795007725325935887302751303028194546244320670945942187609962118617695109850721450980360786644020978616800601160405185939885504882594159270815184175340743290898679692430286999839397882296853880159906068301451314941189573546739830128388877827011331923751306586821090513015981658747531311802880354705178971311116342817004804364612025499038646301272783319997936435777353260074753864622852044865226790709601022951545177947078631152001645009139473214142290219965141385053662943738394006526436897215023652735708643836986142717727817848982162600005963852776952253137332037000714891064917707905945623888508274568139089560862492985927268954468056270470456637424634522419830980153567103151586078470957099197570845384546679498828726322229856398154813053828408940389601325986301850678844698046692065179379528825131494783488138974662754878621313378698318674978810443684111291763163540826634749342154631767582698006808799143740746749801928853510316140579113511825957208069356579775867876796181335467203321296790886432587906544651008346782342326350135803741850277742549526975995765244444862233070398513085962664606967752309884717550188791113127676705961677947630587584433205834972156015130615018377260118734084552317843826776114469187084246203956195525088381479893368507592757278509892826864020779755117299957811725220826263810204801376661167598180818325286270784685326908369028108149054079882083116791211099596608209034236847226266521177710015611145520918325279488851418946162536888913345373980558181126480861211049952698839598135291774751198293013486344227622242232227851442639698280070803390763221448606009365420478560880308178288685752351345971693475412215257924838307377805204405048511669812232284988038651316337845360676776072891808556692414411821331407463167123015306514698624714305093735692086392445073480295032047854946131286835863906091744939250606321636059858314800506114173098235825440495285590634964720907172409918468507923424977536457584541260524794300447091858101828350412358879424867095080848231700709337752050978932588496841950717812455015540581206313540444913071765985523401979101389477795015180100587560481171652836549418078649380596103151695111345832480936039837363388760492949729237376899092460363743679117392922010100639869314602067768757030578442164675535953592105998428127494494790327566581616275999263485906381218835096322773687572039341805902829347977230206570405590318860973998859718219725256873971456871693713594243224925181349238589995919098409779364528987863527790442854877144558265083319044375705067889664501141675879639626034453510415832180852979033952736558277657018772334265930887496237629468419644899153963103012298806592234083773705358816844707687438229362943038104792614689641700985914733624514243571993044743360038763249819088457979113200907016822241885780805122023682103616024143703687878802716634698036063183299062270992028866522041289716754545162323534559353564395582681111527940398281244470117427690239260736176982489574000302380468328500603794456819373833138585085065344611494547374367006318300177343631413382649542799856195000682976773656091069557812196228480052871980945344038401830829869226347563680004099963282723215929648632796197278579564613043512580095232184451727887664076814619208031056102593979640502837801671746846397550294581128888160133543830436922479277034029541317602715902859410918006508364164122071744389416835334042343659395765356464057588526112099719322936815074466091632996050397759260358346997740950715887567964557664779580659459672745642962805018731069527905652918548822992606202666933056007515179766569245582785793904800635744397663647529640864507328349066859398787617280265519349546985647727744707757698354799606834463253746576753484941801516991256503689700097205466689719740920105029006830060770388274149835309131677580603481692768105154307052230263416463486009789878883260487134886149445909168024352435517535466395100893896379048978829621611753170660010529620088516627976370664236349186560142514207672666103382920208838025343319287102972331939240754218887018194473879864083484676321339500282949187836771153321934615889338529205730030581791860544461222366576649828916671731167507034688441517971164705564138922171680673687892824022969200937773085419765147641120020499477222161705268678230557923314768874855891632778934577486474889193404314383550864711092787324256279840366746164782079084814036044938258642904912409320932162891923129669073149956942935412144295663740262889275066483561332340070149878100341113176003446837939459736316822010451619253423087267948034683805019496355758544281385820000482464434328667639009838638229041449519085184915305161387615909216391254576332900732696581581103353235969828570541097879083607118845562147029607313807817908176083343682727142769360092492527947253396595202526946256970980359859531047475023975632661626488611277423048104373829206621577243360042160045603967256025303971715846503750035937440777664045700423529215124199208996322891551414799709143349391621726751489599919697350547744229398202327668125194157038357226366170101068988228892127481051693866899654180295158678049983163192898659675532118531397066010180151225412205090146185530945352130548833425833211359588761710605901470517323940846205575332936277828877083324551472450171757998624551369716581437245460953934395395194112301993806898764735464433898090721497269303418946208891854197255859300687168305196639705729052560303398096982816537994018006270571425983031505824074878984490149311181948740842372477220808037929192202685348417113536772677643445595328308294891208642156157623578036401548830779024954865348417051144666904212262277503568475105358735475145995619014314412215677460287019062644744183469899074118693174089934922861055045585691731374153268895519040345292445622454378645596197194820286094885708509238485568927352200970986050728099156855511932298279888514009236689691691917353912827393678077027084875261703285456190654944023526267775678650452389865939335504717877855544389159734164527755327989777386232764049748668216314349947331618640542056094816066961642605189114298236544440426148252692715240231746048775055779775590948673500913766071076900046495005856625766858169284852109398395978531292185639739645213627267029624843926021322199470626125350883792969084688046503016292892813460870726662005358246212476168409769669536332276333243391076149163728478598695279851185159276926949192329196180633240581254395366506826743647465180320356378457984231490658491360140203626239643179416424156699002711006008280744527794419691552942474668335691196753940195143306126131826615731485203907912733390563028397051158515350070529171286297430691808369918353060467047343541322909760639978622172572405969484975982738093442989063532157784126429700100945331174499161932322507598376244561216561180584178735289630771510772534967500908687270221041790256953642063746787756246737094859568377081351822787180738899075199801759674086067608001136305899613708441689115673857524239327308418098224879856625739098332641116434506188003404605237589403319798214182804214983387604402405912440125707436395185533891442317960805988268411657278189089516491506154788642977644577864521433115283339879310563741548885097698174421007622681503361307278484177156016119014967102645237634265821245153218950972889637505893657927824290243878384235653401904345848685973474427821471625603170632945586060683439190696523775951799696944051281797776873177903718614752577763362707462438367333356563528560677666467439010694895542730481678550845501094956602728491388539781959040724692803026349225335207929539547555655858913054500126137810989785661633876314109093651256373194801436482775876079143303636385854651263388038664195727739057038679091274415018418343878155985144155680992709603242749443797510526283070835604496473422773964563366722963418377360129684748627383107621985092820840810564165776570649673725019504996474385146100165124507806221133200126482270197125112172874332402040189308311568559048631438972479101449880128001483828968163438522194671969625659263521910213711674354100776639212670221710212405127609907484018280843174963633449363988270855964704549870150205884004932344657319874048132269318015241416547347324878787151846059855838833509141155679394543970590575961732116458467965942912145736918294781762110342020974775757640659506282391616930342420381819325747470927462524137018765232172391911915791160780879040981315070301834087748202393260427645507585197563484428052638404469983144669669025330514724946727255160419517436431347043575268649973480029183495868997362822664669977760123583417661932923673032564520849226445984093770345978676704257877091562627504081566201679024769218027048775593289500910751264594389413547825121216631774416299257767756306350009204452470882243170565558448605758922336578948485697690180984244238283142926946909967012453838013506088004660614979422869012817363997202166208859770645849836816040813959831363069017428421052261364959742534287386080355093273072227034806904795010333405036855358862006335639742409324850383587755041095502002587002780974695149542548519831368331620514710751854298022451001148532218301613437909616227253354717856307048896298747256081677717858267333994576846819245324171043509209259828368257976795201832505882196497240106638932515377072747503147584242863641785809206551149197914076851659762065988458768420540192136305962320752157296433195135065639836285524437315946982997440906802853127847458404337349358338105018845841524634439988162779762597062406224400845792699375895070725962077880238943568237419790597923728551299953514900321416603354406245875089292956537929559812770348399100298121685795262961142266572357086286317742763316635862216780338927932098718492643890742528897387523599276055189080239753866261606527783604556704543700140621018954087133843777189966659574190863494904351676318263611024378881613981181592184818730024068712671338186488109130772424098801353684085185626507663335236035152697536788542052033840368957069874624813316937442035333783127803425338756126952937254843582621047729259835263575569974911950842799357101735434986734574790318177231683801712467268324397157541931683018294335017482605952328358034016554951291339062050028110805953492461523221472864502324550214256736915168166476866021455493032784493684216302880816138752058630009440029285609507415779050872550424866422235952116387274307846777189710480855565531335443995652694970946385530184544688156519585380080611252451782121941789426290376172119498379396365266605393710424332442416835149506666100106013887821150712372308747582011588960354055972307569030446168013130706878517491435456100788130448395333774145214253284984080925085483617931872616553947506056563199499570624412351273713250957415727107804838663621724125370604344237816314881619844481386840280404972081019432958858806977451851366580637273051168443525358966372912904019045220964294939385177571775351892533692152057763300220050270695279225283928371105758639076813148441629603952749049740219506316001252127223389776721208238614558131459242972528662788032246115760865875946849403540790338114224784507646241912227097115862563832624837648074588361577288542662741807990817912531315951373522045168566010605385586324701988165565455523148986309343292472375625389361794668958552998482004087573350528842091135762824246108808167255623605069257975918830141482714683248481460013566548247526425683279683842772673534339266973900108287976975567591073803864568163372414846497550799878933784324535466409821777777614930883370883675439171366008252070149875163897142242529178785585783729142016649392340021118378354087231811622453806963533277496614874269738891413372912632323233560133186477977440265124040429114620880429143090575431944158638728907890106478846678991171496756314464631378266481388178191934291675152376761209558202247206141702585743237096279989767866203679031957690457282463116145087109726074081900958282010782269548111984005674274564960606574673728969565384313426352793182044046724558841984189921821007065358787938875841842037989185230501944200476427803611433896564785878400628055640764852001008997053419015468746326572816136795104319333056839152761951057795244036028404456092364308922526487325813096942663547298158076230723265141383772560697898347381776160039592254078331566263985177275422272789286468982247034574804753464060557606420851287529786326400826230501652852684413597852911329632248890243735612405049604939772451806892421480619729465996461752367673367683231333376444297233986075381818828455068663291240070007413064264851150440129638078546562484609780699557947037686195532146141566311356281254006093187537355217205663705588610573116954814482060401114738397653571127305935037360014795972675869762943067473096763947460108566989430500573601618619706739613411442443698325300156071525627297250676542259054790095364848483546829337710769607744533010687811692262352705393161557220776528358395310323836589676594851941766706354855717502430649549462905580938785167215707157626793783155065638634878760859535673229028275811991237918371485187017915974589932600307638183200394020400705342031981240896165425803097798973928741410632646513233435022954985189399216098184776659459761901861764672103142667330249210324624573685685600425106759725787624414336899502462181367561846124411341183536920982517161497355033452614313474869444830610976799887039334457389577219063459294081444022071178896793156517696504717420919190295552998090490759958297192949865268598046354094767479605506395091895022836617413681125240500007948857971909835066023744054884044154078728770073924196744436325835585234383995549571848576653636702720498968195735452835024260020713141257029658011142925702147589024453038579845960536517870147218687915130153191449835769917650890196287946753200211116730462884672163790133834487341775115615346776603042388911248386839081105952420114044228306378993130472330111466282729068916793835411267870077109271552163788675145812764334413360986291619228336098942785930139546544394311000912897718654971146232616236029792808849225507339731587707048439879316627355407129259965987282082181076138434120367013366284593155788469931296622670875097080618075205768958331342840585754748702736568629466929774919380401582059528014457937252044466031358384455456720684944218063675807306119682233031583285491018179909130134137374114082684246218134093285816499633695548197591998287403285322275125417771369851165139626548972416310605073342675153534235407797271988322403835165108924295263835004295659062483127007063023757934268271776863509476159618729353723753169963025612224616300532601565333920027411293889149418129342679199315641317585144502179962136958384675966210088951577863132422070663766127240021020699058622945648589747747774083757146206271051581137483948884476268963901395489562839852729771887969472194930478742167245411250225836062985656977970094643670212975220174859475625398625361384501808806043369428777845365763303835365871786556788697863219676197067478657930452329177773676577988925722709114103676712880713730824827141221354870774783504773168869315193848519154667459394093130023558412355740034810159598728004428870983453895083538443488575815848193541301553806803482010183553286143616555252276798189884947510839702881358878643901883626370908811280479155817388573276146898105615704327864126415940661743147815714511327217650620677339031551633332593879148669045525346715948982924467976047318062128038388457859005205125217257953303500642376448409690344986754148607410466762743158964748578871684614633986956639552129132589303600671585108359151817668519298147619429244169334303412805930858511541696129996040138457331443819234095425109464792855677691046220564663955580085807686416748126920363781291732471105905838313530823590561356034158469024924094312672230004323433965216061628829273717513472673952339045260643278169323326389006572568768486093918694929587176639774177882433651920100088666859645261662548937040691952283391195464109946813034170037289494092892634650034870842557578036185532816372499159182070992386566960711817153081641775582060260287818431365267388071355078849048358788728145414288664905322376331610166934882811028563933412131264520200140069804715213093255085281476019123923007939008843070851717508520242373720896390728105351563360371206052007335251452327915355004712292006198181867145405601749495555665883684216594802325910955327024516607396717902230330553429244283096724312922258645391914821834387294458965966633960390435263581223505178552146594351774001700328186144554507992551728093719674327007792914018963120073832775918914649526733990258821692072036890658047188589081190325327356622711017636408948590624000320969123229643141829072577931469546034246981644086538818509562571323007419818828685528087221845667197700534361121724358409061956128218406866512586109952603077591732546554044402175620090910405391714526360236272142448129629983766821116941990327881257167151676907417049696421354037886744492987013315920324163578715586699525091882588863863817607630409837775648494206203171952651806186883503408073074332142054293282115463039157427461898531859693697084435807374152375360751892698963780758320350370213195267964254606883580052039508837872200081546954775190563191024022626145760330443842485916282217595815569615046053135279530817136160122277019683765064440665822542420493422724115654274389431200809408215948739233381663592989057606266433182643587345883570916636702216282804016755624849198179094705913110632963190160945107801516134377673514963768217839232554904950798429922581483427885791377967404716025054883278194194168301535177731129487367022562940438190945263142352018629355377763043195494119508802416437447931753640071596720487692680438262110654077576938798604473981290285863427049593603376665803180290253031962969828572847031864298426504017702528897206931616929153056827250312524615916381055316913495624602671266978606183033739933048666332729300303793375884308342730469538206964913618896786132399936328518856072189580297931352318741240214586656038165525743922023779849109100757862631142266212597113064573198978902695305998784715996204386029363051651033559986449979500378885459710000256378230490885239509402478754202856743775109743803575576534780529164922972705899944425071173465329293247656935495730091155173953632590260478934945721438041143320202786566300092729979861913107705502660882765918345182695712188184896641744982551276301263426732393011079626016685209655382970496587896452470584800043341834911675013465497196964393114618886787733924728155524730827626995129701549298762595683367542923777682051253471615372433537310072714760162449916931503920190062068948953351837570552631357064014784694942333711466370213078039970802090006161770499011237663698119178852779300298899565162282446763478334285966363160766774487504639524675985613061786849894202900859089922149172316156542121360879304436904715671243155209215326848157934313100324967594225850901586467159208786525224995442220671427571813505836604368366983578933203314136716075487387466231639846511057771971499473035629801680846451061116191513712660001751967953166985336463010816091064557809075403347157124613036591015210112619477214163995247726605743001918871912925973310768467671767486875097125209105844895835975908946981595341320110315251737877556621153791503944695039108590987668796212636240443084729655564848155666608297791949260026014247538366489345829842112541619058808981023277902142314603909460097101175902815001569332317268288378126434152001901890263448223093541254803241779808005262044202710401033153822191391184129154549724449363664333321240963006213065473688535967662737514197184246540563355561911510514116330646790161144380538933541073462870593407210175448943256802306680406327884844417102113052397539148197258723737240723479813941024490023899087289829864564632528120095069398774808527175565621489921810791761863647855886227153651426543517957053421321071552561779926045938383894973477007605679911393842871303227446158902471898481680540713829396212459862426387761271808917339346588159981426548366677470126321375012564644893935289012076407673674142401487120602935532373363691413655514254671103709660569689913588519241951432101119094673813766137132351961170691048737501357888567145806972051899742230380676181645450772766795798891799821785388108946442296387204705558059756901895369979864060729405716986518521897238080139541261306370499632566690832789754106199458384376429389650580933186364613444144972071365931813240743077696113873028302012596048735537086748447187844825900245744604490794302264056276848173429521067009338598897450366919521399412568787853994656825804090926704984676205397093160415602017024460085774185589785293584098927477982459526336965333253282582868417192957529430834350471162249631277101291746227821280854482836937975410468710699378335241575252966722645642477366268072120136810442836107303073981027940237753364603124900291404418550125201100773745586098575103393413931002633462573534933903938472961437883205416769728445261503293833147399582576661688618070834499895504568190953442339238088602962574017761928194378855423224089708912495149425008854310456729805165452838531371449417867624491466776782783939037894031504571795271992192016827270751153060659182554722828278759494561093496575791944825123006048887085278010950656662743470746037187005924775812694225764990096493648581476401434884913507124260615262115389558457402432252883665894898572352709888394370399543084305020212926018605973398549888968784832177889925220193457112404098573683245213044152135312423447408993991304380659459959362578815965171223925301506389228805444218157227359859565658359110489805185751796258497125621630838613184139233482052715906259973139054219941904765839024768478821780361231164383353925028816109995705457917785594647519089232745722364159867406970677661752804959053789373652334272459647143279675392287623965337385039960440996131981065576749847725953750664924608535673748580628011113442759181282919606499238862952912629742233404540412151115029455158279785320415900533731295878693643695685243438776729221767721512781385409797048929853054757630142514982293838876699792477231007106344536033704663924275580388231860319248643118756593321442179262095534893146847174938115368899456836608678199745961438987165473183579423485711185060404610668930632819473221802135559681229495517441722393725360019445513351577798356887068914076894250134450336103060928139959967381639082708706128512078731483590495064554667426292749078219655232212748772165117658053247066005755859427390836874505777090716207623607845800733966088875966410097492344011937805096405211600383885062939671795162565795890681593601496735985881921334885628679756032598293618116489372214111323544275174157436351523567849985170110587740733550259527185605322094679345647039334774401050484722501012863549903000574351081571637944307544739235639494920638330023458684950193667095919365176204087273532073996455814238156716356399350912619297675442973767067401499752300810420711216862890656132436116701594841889168078395485212330295205224263122195190900837202058880922888038634304166061584715447944123931851704237094246929764226392384348938895981062954774610650626546428772284783278110179763270707253907104832990596414138311235827419437267107222640070973171108251930335159284255332696729528342623640857863815464512683722882715340187706917993164373507402697119947664245043926256113029885251290735176962953123339560729130138241690961285911377722037349801338771473350437858965578568233981490258140985603355634953262027335854898395896625759478064034129045756288470031010109237967413696756356702337531078121280571525892605349369301101500611337141894708760665835403379362470023873690768848107855294763092925369881212342139893343053199364209838170279772393019540257318139798855131442372702692249874821931634214693299842372375733471844681864832407961453453508464984363063323770502062919178914185406462104515847673164050196312643897975348972685726245195468106964023623781617018616699759590116315508048373954754712846281282571652531890272530905436409552280546796224203073239839144951338457995180577167217338271356921825519869831364900822670590874628533144428814289452186481550370102456824219345375657501891058703894294035421461975258207043386297483730010687490816962743350193546622030823883220817049467245936563238794239652406195343432690260125779566879412717624439370453570561844082443789092093735878721138098229332952851241690539582541817419511941560697168453182072975915470746768965619268741425274355895390806785879824707833894380202817764643312551510451242836568005653724278075320969867139076221375416284404090252131585200069685776312042977777788111880234684144078790033694581206401805565348727837237005275350801655099376805593848112147543960318975611903508039794079191624068468817089398301715933420225326456571265739773706069888719906580774616256482882396280262668243195332247115166540775597833562374221087826798069003236425181623068917554999236630932249505580761597228936903639864355008493415996931639424240886600781666130724119612484445213559306342167074584176798168546249003804760407726956521102282817477790543079038923593821120935799379471172635632810557269947743533746150548752943848527178223455868726719673591397026456529339132683048244572840981150956599050822946367940438345545233071744656325474372365743219996199155725179532910702723626421527157429291196613352343870836771692813347680797705217447656306471803731501548808226965833358349561699303805772058830587812587451035410369430135810516928185005840662585883990273255156015613115123706169448942451706984828024927511566697981508824904444110668762888677464553978242089681906073177934977433453656967586322657972105837051503755252498522087172717907457262437231956383875656853958318906389172592051508881026600077384554907126535605673842215135011137806065486489242280347570050157761680158040643101994027180229591688572088187735061853093720339668596464907594434305309923265845650317596532043008957708654898797512859459845195082342219569790078607688316037916487934841635096861351900034920256524241149670883361149789622247596749721589396509857784574498103192233301476821177804931037398541785825951991530389651957766929230447480059882108921883498476341695570404992328832238566784228282971036559221523292013517093867740403415340121819885351475940036293594318633657370108321838533377736644827658104168443705433882794846617426999313510719966908778013366827981282054457243727388712464538068708980930415605561039103669692528168273932908530528052625336055607952837234568782523577595411189083137923638469917499056422300085303723287869254573291948371405407143009884389145927509247553466626185256047207316039227886172645553870282527148533753069802729327350999337918953149757912724213403958997358634197393085208604496351157084606474820037902423576299240140474014965076184784557638835830846833226710534652009144365952154293702524687281677328380757608806465131921444926050286654197465892784548618547671198713614565024357592425797746403858117509527526982576633682103718953595571494511064020103555837857393340317854525608699378794931096108420275420594774089901791677256527189118751587951706872324519803710265857278853713743387063085805647436011583479665361158812040626996321467025755850456105585509398374588747244867010773220153991010752517237425243581343312528545496608101430469651787659108516774613026120660124772211519626498062163797357318966342125624076342363860864840894973500572199776800266542819220885630958011546770822368521529442439169433838198917342239624830869588140922079770991021150770173522409288096493201222881008248415336879320221097432568541997798581633265695059980101390906271282742167429254763061016037264842908376253735245384336509626435797275434822846478793401906339161068018346628857224741941325755543809374404365190707639647161305164607225777970448202438199121714172707989234125914239556863881247711405069660255299615859378304119806748895038903109653786429474244760049336816118168245333600266085249141212803116779439109596691200619000935377651952566224744481194386746218999056407484558239354502176404978395562430763947970532628858208506641441573501210417385857822282427277345782302723895901289488163456517797637338768127854908561546975860445261590350060716098493226601730695829662901402743880374501488795504825682311271552393026052057231647508916407402122499623023270303399614829927286396307198859627024119406159434200002155449070882407729018402739855161302631483358327526054321089528328300869305263156753551894335255016736953121992974139645274213790443318187143278797779385825075537270628374025536650540799122810420660093688959725804791918758709153025165893307365246466067032873852019553498732824808313439611980693371745501108692539749785086863969689346705260418985498901122628927293387939471140886598566940891779644900804767621757751835558675662616685253338254861437207850503211630684292243219613664711961536454888843812038233241178571800675029031915222504915057430585433944267649799557820941725893279775594874597998403266174777290482190471534393475699513130679775170087502812413725360262611232962288557054761783016161689469898127466567480913945358762557782041899157172128697059462928809941123535854821446966111761924239775492062990552506837605394264890616461210514812496143433035946363443686677706760519575995224170950686962833446934772810892931079896504115058514033000699316309881836410606020493865824266016475508240639511063308453939349609049971717630664612373659979383604861832176049775813921160598873943678480142288043928895534092855985570144284410111232338398119199713713501319626092653026003363797326344690363938526598242112885227389375277383597985564251565514360950150144278903122708135549902063539078788283362682260480431489405980742636511031729291691416565630336578663852355763796655697470266972928917959412743925819441325719439054406557715080112345727922452057661384759144357912514035967058842116367009170912768740116308074486547591865674505920343560155262514118006704623010767630826334934447882259563641569406491304613546139094822219484356175172455634533616308367727019263581141990898818294434244737418925661047549422237792045753945233806907251579993035219930121700586893326467501241500079523472128358784498426626673766428691268128882961559858855212414161133922279060033404387323547282539918390406383066752297721995566795840302094580734434363697602781016227122630993596132694928445736239717294756510934381935324023007860471274363870960755642902855775678185188124491588410094118281710978759113981829887139312926852780814205260279260395411526387369779301904863685364555363067767996909791940313253827490444103485278892315029390173113197649404706071939888258936645390423015017379795278485669342182666510047481524263954907212408426673489332972330183125780904715167810868401107085500283991501153274312662008009880690779564346462834683751339246849015710609086318152174770193728233061205836615002860667807348920187211603324621257663456079487426768875690002932024451361764130610519937986578168640273840040145195181063072079204090105000892149610131915471440186128616932997355651717803948922419268503133948975896686515581474394028582475577984648896258329558936738798812601528096093803113867490939732439620652087998221741150814927768044199750631185539002142926307072010919685083983393917594933126856819027753678565617806030660683320159431447778188873472749321328330055750305944109359493670531691671708342685100580430536062015218442739026975527310174328524127004982522549593982138443454446210188434596996044769851687148472558898096230301676680158475898509475685956458012865331868428791955159816570836349197661900719982660888292832634463508149873922881549566652673337104782363410659845715507964108189340501101287201139168266573999523311283760314913635462147822455195728458936141080208723969174618886178121481466524573356059319748863034824927526981708250379566692300909449494224907170518939165582936635506109108129467705410001707082045439815107843278377070533373366666245977207208588875131453633687331344604785036244702775486434181225689967617672824247049421261844769147468401486008083722518972228623432874200498839397531950988111539612758844327868316374695730483167787096065239067958681816364782396429735029208086002785082101167927624900553025277654011970706298806176395612769673652269571453374157968784956399818361195973218423640715076510673341604178184242608115666511402670227577131871971014692097301336247763605124441560490511613325694235609350695219315669847217828900368241007932620264941453848440552049848832754793482740470822732317897220785539082845545733119387044670136936126371696861233609981967258363908726775590328012131532599347836747470469742551909862931535408303266826352009065798877273384657013617224724579641745176764977279423494380390203905102432760905785396745874614151741476265670208691948563068617566336236743961956508752367065467666082027987287999776534744446242774296269933532532497887636364396326031533476672009570489731414386053823475081282267874255300850868062677317362412692217069479330175030402876464173849469122357099360336885311914015346793475859425889464898963348902652031513048222679930556662763417994783837325500178531850027232519976269858387231132612448613360748425169657636137739767748059234661193126621782873868903718866732356583107340178293906325913824975251461772854748525988276805196174547232691445876566889183497584332190464555897651484075538891669550781486900486219996202003385501890419625151799828062648193948951854637380222779001452216915766087725645352337821561006466247171516009273095001229132280413897470037170967263349840097275930102880329230536056572284130238368660624501157207801831682379241281704523726071881495453858753591868478248883447948601328073778223864331598390151446231381570789533277196258830300920649133193960675101396327601775588371363892715067247268195832684531505523230017144718797854381749641974256475514627462296268552076585653797819330415304509792490659533397838972057489728504440845065486501798304140474452469644503036861796578389406854898147566471728253104692927857576321443665048346479860676890068438411580233759310512956009428877188171308256473795185755625118534487283656874423784247118357280059193907842811386096272093267257320317556079054384606941488130238808333209001978342388155677886269106875033830588958916884455579699641577273301058609502738682679583440693488792376014838403128643509530151402280677660950585901469554316977400750212281367236545520233759832919937917492592331194084981151030036206133569748204284823044367792044503861802192809296958533200692391257518391986046216382856281543347566542692073617226026137345832604685175312267337332344739563963130955669339845855747960682172554925932210550732361082702210895222550655649376242635153643578041133358180245221639425928859546926818303469090733476394778684156126731721090699345834092450283552134312879939486703203221454367042341816011018760840562751493070433114795861005037052806999273703925083686259520476276719545237800254028729883425689798391287307435139447946884041730394832826875883753652550720573669700845920028316722339379863943666739695527191509170390207113961355462614559347921469769864824640941358620561566391419678369357075172713603350007383071797794701343339399176430940667199892804372302903478303592395084747872777129894722548676491388713464939276842124386552673745900284636287504810300692720308293651071302641415499119374459614007228469109638451720868438563172492812530323600253889119070427191494848754371534983211258677457019359269387096681307189634663631235876623330674985185691442027087576320708199359866701226231333769719288301535371784104771575464104273188460485698594311970843835179928333560309914811015573931239448774447766975306029855663829695982667014542870197828217806655597519634429818522594824764986483109889172987378242106471176725942516995918513380419088272448605776307242017765898333342704128591455890989269586029025614106512446128518344783427814826694515728018933170214815875126038718200522919998883524611176925910561018697242873194259377412684001694444875450289053738708800912426887913211636115764289369457996869000296919857587515558240300284551031959524217224376928877290703382172158209922995847924318081792356953130384068733358504126762771962912863944557326762927374525199489851380726534211089796077925925697159099057963242784399847132324083122473653158572290845299207575095072638475456062518106827884605980414490823530138037938780924507860888116828679506920424293867815020650330433605101340481530676619995180242372061857606703560886266988136245093364301557965653327391194107006741637233574765364378784855130107713169389304935622172052537527322208468745401558221698618789841913732697691959278497268255580922899873578632322313304047848127692089246643799446612090208330047216992026137366882591313292517035878481325305887618134741207210185809158505273279282452177771751675466150002696648315210117882072637387875498136561616639059788670154378336616658359959321913085179714390177927716871048700981686593265776882026069848428535447192876066438764754057367986299417464594707308994277686749633140029993393332554693193396467540886845011335104398141207400909795927007226418341228655005110777709147894200286778907972463787273673180408824125244585476054960127746586449235768617773032714709376484535856950827144957574861767006366010923018973866339268946057030985055810342652989914268760437901691363700544332908075082739107461997746934215972806167823629315270104128519266855273479913823825981771408719543975323116189143138991249462194432470930856224041902749442220209604746770529922891679417767500067354979507595698285673106145736990999242518048936436510108415902010376811702354230082432459515275513009722458928983194530251118731799934262507695124500827270709167565521879530248312238312251541685979679994769309430736950662382504492566025548216309016514266186097406886714633276924949400203319169747778686682325486647275058238085184884593585822821080115292069101906960164748090115157259150389129169828731117753034025100101038000984544502090786254718232533041339754880493751020649781302619287243760532054742295141392815589677983300108280160009292918031299544503027960259401287265437336225135419122101172647490151107410517352181997818976399913931586451524784518967612252158031072073882357260165131998207251742284735733856697219789434502844361072629109319120616826889623297687842793016125378546790955626327845730046657393266290302058739731616873155512578090981352276884879030681332065764194259132489762745802606981723655976045776327504081612257328687357781179590773294382332446335852965590335495097057178155512923747775475377417151402240449713921041155460618243283110835995228696319794882222137130147744993817078492181798944679875853572125005554548642124822729917116641699366218556671126940507525485562172291836508845572850398452234072493297094881721498647281271870578499247270605667905761407468273489203582010660566090138301792099070849628722376498010221625009027945627173504020286114765987605323248516959349375177029998538625010640810481027530162002420962497002053570562428018987540478163262247941304329263003519101037544236319776526427892137142501779173004416297206941553254182852923838523197819738356692601151802914790542550913757872361752647931308380742022244304664693245512026722583436673393033879455417843525251944988208363669053973993100148231363139822353521839372209876168690141147298335230928875020528971462588086541040471788644327271663256044303747968795164849768450799336322544715077964675463616146042700866855871429275159920849664342318644056825839337728069308334575016827987959226139934991191634760280877435035243390986100511686645321062178556065342191176598852848862861213626997134160591521713947203985197521498774282909993828668477487307739899416865580999291688239867607596929532151131737810804137035342552325394620826509366239528595084830057434234618965520866368108503029714056397710127131776346874260763090030673449875065490321822551631479685260510990752116341901846149588900993207388167621476780931650294772223460988616266075513100106800946810194029629692154189146758081962288610754771957570904905004301062875985700909803122541865607037449643425235476886612480179203987087738004920345064011751180509367716978266754531658347476586491010018500734580098815134837229004530691211910579780568942946098089329849277438713802806557320963004222577664412080385009387112502967984050339432865734994353516424394287221056259923675937906830873753802574195259644597440754947021171048815715066601606156257923920970745178058419948854540918050132208709215065109300854621133644807385904993575619087862978239284767874217807448915840828572514693237309931879680493571998466031451712574393738657960551773877298170918307582503985062432449788462139333238025132375037020700018516008982220976280441803450214737445455282796967817405958495779450486895037661855239721834847423342642825753697588771813769941242246397754137431339840610712353016946268435036452481928465038391509320104587502272018686782192240934347942652431153653183895460150925160345294269380709955902412578768988509436620240427187236007235495578004691897644304459383933374522850427009040608398628772983500050489601374487423381034839427901102695615131049870329398203943559736897506349704550859207451571378852674238350104202231075768759907652159352380007469996659802567895428783456359881507826074279472909941846939891595491768653828540654131305683084190002353750237940199504604656313098899931183268738225123751650564001525737143005657396427709203900147736390035986043894826126836639178094026404357720581221617362144453967738228296562494153547532788876735109781827295217354508962765370279627291947669523935231934322586947174186100126256654338118854658576847028180603344296834439892266491463037649030173007391456567407843903961474306820433449986055296435590755249417254794649049919249121447989929991450366379809758567436771494424889874165194174714615250973068901881432113769555992963291741431740746994005722115045653135302039814239117309089286525102696046082488731338901611921153221824785667459051032900686542638608648518756503428290550877621716058484158607598289344149745109571247926445681751770726714457460048889766418294263010966831159835809402085801774663059752989834878034495841631626314841758845028824578176962055755202079060260434701024936474532064957196960405581442042903546104122156304756923951652177707900405618886427332010654715416386079826202754281324233604841798109597789126932765865771286169096326787901081170519559576090623353839824986680502757109466006578835676072281369320203342773963312545734119811403808890428262757977463026432635098132782726462652909681324795007190734411646532090416206452839670205995210360523787540596235699481212696133721152636537695558668153206883708421826591866238296335368950911274801242264699310778540321284681604697036298198839696889258653383597043666018435238208169761496370784328528937482256360582298823125055831252762718570850246035523077103009065136239542017811468954465072973914954964180528697394800762264161170418913253688037254677118422736015751629375537164152348629309450699045373581554379789897996777664985734224176236275737326163328940956658597540640108185041024184666270140124857418324194084164936809063192353364215844595244297041585605967333951337933152773249228735508066089859565059737623203760483345685667529146910817865387570727179421678899805959137307849251183014231738099400208747150497794752521337291717388501480429903759484743220038415007255836649631930282708783423923770317383814984652738036074420511369412515910940250915722413282822010264338824656724491697233595793812156067112121439626511914538935034596476581523981718946808498328356042899439752186899583532388772217452344827118379333865186868453382172322510060145023863140967595803538252265797888471063736850972471490397153999503470433170581657166634179525679364568555393938825510441454861355632385009323972461695474774583780713520488777202552450043771371033230507413756199453787623137946273023106747568798056389815212608009899862336219615531219525223829035293091774301629795860911087093599837168373093110136348942117280733828741961518803854165040336448662106979461839515228629375474685172999325940089241863723818901251226890333180826519900679856224041053059308095122531708475400416760075877101133511242263098765735299676255195563650557728055828227095853276339721962381787033875260953816847559268014671485705115284665277126766824599128817033093767580898371433064103604251499795471045554042794513739377331492089482293763455372995531644027569852268585435728524887315125247764969266020872098475925990881500063336457797369866078526809159429631573593429030270068274840272934212581261505325057520006744690492593183279647788783726514839921065959434556511422913559302355936431918893923995420771937332703438554387738774471934847542234681166666302304306735827799627338851639814638448168172764332077104136923397923952052699775609940931930748673850395644634367984561453254081739399152547274693399634627237006952330817166645559893115461692075809236311601336542454397308273580558266171032712650598101070274616132053321066553312255377280842063372456673795551122806037206026838279922526997726029431875134253468077874608081756517045284368275256384311948604851189668656131973534570835226135499432496257997872069234397122880170300924057180376613395919085417805205518553041405606031543764343316919534480804620023819348384115480513171758579767054134277286006716496766017261740762570178464753154028427870351532987204761888452933083813638415682215433407705173990562635311199340658747248309352262521543746993025819359890406900093338084784187997830737425924371502479061259944028840505126672634111554321562692617279307624855817981942112947960289961785226119999675862326507278141675269882795610951183341964693705973605966482902545628043444480830305240921363607541951017577056822901631021717762165529848006360058046857998798879820457766003798671509433301026480725867712511990967783471344244703407886753894712158311576703142131877100871797210113126254559363195124565519119629833640640920633180902491907426549798834833980048957313675678830289027212578955548884261321888096544821267356406527216032950718613932262646995777887407813593835759275250376615850921726411921166856035697299116814528252400047540187903037658541595192633507545656776861341477417758704596408349980272062905704416022957508435154741264514068350546184352552383552994543953936110673818347739522139130005584598056729715749857612023609857765649893311110472846645875723302649280019116162595513070482734212046074216152498159797068784824867966396505344785029025870129107025627567521071515966267215088464841441709258145444429885231265652471663253934764326516163040760189873817784903492694735120946076789652820345655252670879805920660635681618639955695212698644554399448975187006994133635735807100336661233282476318913924149716375071005458136668422620311537659546548663160132397551080129888062230745471007242210488734500507593929307251222101123748949059335016964283664543116430473019604508910453873117910069416256411829811756440600565814212824351611926843818430316017777934136264612219909415383224570426025507464717556116317062621246817834754568010858158467469759821594117681262794813744741372315800639999078419764096463386098295099165331617151080329943566867671181823073364046610730475993888895487094081931995391823758798593432534181076848468303629039737162557356784976490385777662235076908608856430963980154065067989027665207071787932319427426256730994059784298806854322199731323247154288188095344376189301348542123641620127478898523343704967573763504358001775626229081719011561141383773558458682472541689222798593903676554852826012153890868966986179040931962737640962916379189733443936613612104341106759954129740946377868066712213811227074290637411216794569924539976375311013757058956453252103406589690454639545863378171127544496668013402815858524332378099479619108101680949746717834149370260369172460468574461348340182895130974655315709286784872506518177992415011616359024934350370595221803084192738497335526246998581737010397606895977321334619975524182539324678569741127092264350324932741463895379841603257176849596400916895404711669840270650912164954388992818657397858786591955206735527279420837088606196095964378380738597897857356359752863543786348185893558021040318470658028106951789003744242428111914655790121905459705745782730774882278144821228877907119906168426302055344724366644864777903221101408097649824192390649453047822585432056418344339019390660878504700763170202788149463532361658671690437983235456469102088439178332387301247167534405175347314656530096085145028445930359123223254177140257192919246112550698128183184138524352625877915457292393927388840664654704915710676610466030262632299299984082412248095798205388933272834064157054937572925831202621622240409727155668116901754669039953492453724737747224816835336740067738560618796489494394415251798189040220809082972213997182021022575961913938168311168659524373444333899279457170405402712875300765747529389153996634594785709072522026891333638102018889910760216672475403838165369799327469421729162845272459509881391744098484148681790768531180421204895289292544049509626263046297811057523812673944649274217384752571013501316084224965275372708439530660779725522878152680097451135010928862516119810245941138972312392651861710273881295040965141297269981020361535027773955654525995304570980785825996618581119768636459879023775389811315993911439832100336361223765062911182011830410813939585168104343060624628139342961833413246964367539633121129483583723454875739127763365335007588732456862630189193916723264837520916809123093386255873627807704525165125232675740122852049358693759676780712641395162893863990018950887811172522759315262648481263990114638164326851396146220688000069329117001325491286492557568885194047795062380715187577243060290112421665263059849789322587315807373333298631373294902497895025130332705221955983951699225093066356533535415149925270432894911631456062982786213618060515718376326828416721345737587444674798029427000687697240254680813523565262566853295877113575983755144250697301702190760432360891300933981463359651163683485999369594854563335805651080742454934722709665042236937308803392813067780008999433802991552064777628399338085957152394877365886848887772511618312264998409118086202615405355153022435189302707447710382341619291268757166799505023551202256772374682343551762918201447015119581650351993080118656911064717657599862779691478389660248464759495124541916785631955129301619360042471219644921302335711860466478646899621536556177556254901162807457783767804431631210738688556597576762225743463138633387329897841831979507228222381663092265841041675293789969837256665840446529544194254165095801133721553133015198388154264414817718290465793263509122313847106964003387893774784278003549086727086750416711606293466691792965830416753871562356117359981959395697309588446811218867797159991077107776047945412475608219770906708278935631525171324847271042406417629010615989818419291518365009325529439192172407811428940394772671770410211417801532156913282147458902094722865634524907135517532403092800397286721366901688073757823554890408950153421301043491296573061882423233612327362708682442508618401389640277431016979351331558501330741312911397987680846347188501498615086638588988149800232174216717083159944016524206028830933933278060251753079411027685510411737651248055682644985671783980378460824042529426766913293077193578752380350260965563712264949342821659691499009248993268019026581871655077992001155068466867404930500256469457816636977642306453080226361749475348798312553590311389202265418493806401219470884227087332886816761229899059476699729923887523093315002101609930970891346122483257785925579476503585059140888972724063779763958913319630255890633774285131214043012431373929877626555665297147773127753974637181703947455014959425548804786952894669602794544120032355581063954908901207512688173389749259882815039748815877175564416435694911241910170991003258277052278326387521787393593487934584644927684452104456299411290128656370600857958713838419650227079353107252176492767010567548323854790294991703007395729859931163333954638112682592307644115064078970432055566509788899488743298732599518113079572680577430556931675184563181534179150606191637955575690190606128305021581545369447688073291027005487387115597394691216824328829943030611403219950451909196218657825206857453980861344930665664820153571840615048861267231700909331106954658846186979745537315560216513407059515007290696268225770703417520525786095882788528901937579225781909240125669291510283288049650421423121149929459787482258920417277412762465518762224111510838059166682078151727451881020450945372122827184137588647273904756623244648627517151687569205430850539454463068378419315483443168721639114187112048796992304594357312483574351234867654570913343687828315629517690915712848157245811538795357108242105008281040209430927295034259845086574037712883261524588645716025054481421518366463041824850004308103827938086068236558204653580570877698468443663808859704957376100180602987188249713778298981608158207845626122014588667569411147005999127859273557994630160789354183952655946133130751444143890105095250631569426736724273694460632238082320564596184765102599177150782635219416090111880945950498275594711351987983062385265501381750978236223084037792798667143664934620367223675776179222956251624867360949137467374096462432681163633274304998589612257331553129525732591299545082618638770429975613506707021623545788191044554798887581910498812408509630034271581659234729104449857631188018454846703093827229509869075082140972709012868092515013189310229513767520402847302994120791613627226068628092969651488320996741911604211365178232849282760901157589615444659519770198751541962118107942939295435438772953546078843765795868330904514579424481680047049173587286774061661987063318263437183214050285615208572651971320843467785542530757365439784884585420457862581068272575915168644609770207342779732584167927407066987917529102527954713341953675563117371753197975408477272703372444357014167930364868665151963600331664638922107596058993882894928461538065572708039755767832086952314699981096245334338821060437900843868612725233109892393231560558229627943257880802934810525323317771223799424228823668888710717171614169588774360453946025483364257706058447191466821782182365397412396004012554692249091544969593872688172879699234731809618938463009335171691299769886420472432774313752214633805759322955962196975733834222478235256987425464468162640738468467063336906645663692630985972291044490971164593667523142151273448416285038694555010899430696862006083633634515206815184547587162445061651009965527144214896864772472783642010791992123069094145244834690550244099268072047348374439113364784673507686916648884143360551033641313918650471402558738111524983630369925040473288224989023346722114505055676613725578805223955196094455601538962545218703574313941854728866653655727277987357226504614298110336577424626735400720397005071283852098448102375210513074107961004654999401228228224484166378273550599205838538367987273621598097074720275494220758173242172436721992551004457645190331981912369410612798908278821330039729023293914789131137326880809105484696019201706307908558303302264675562635868684769251393608833571942278693599302434149385163101987277814397886135057327730745455942918799995455133041539176116565982830698683951575100776754891712486000943404814685003910438331051644826961370790179017656502344391151058246003768192951597262476412973610360798235114711277324653853993909873947525237642921645384341264518921887370225991272902062072986413587148048328410449670684637837407046057476933477633570840459625433978284234742584379819934215926139984094803059301712268663134905184327898119827988068662127578638978586585504206379545015365639485201492514705294745610666564032841009613123652199372764427401268546733772778475234459925734287746689925799267175017387361667886651265793487217460384944986407445742371606917734918024766662187594755595625444863592640542220414016115727165251124942303932180648116164345995340685537500502990318144968054084868212172011089364624736752207764769233727255913704455360296480322248955066908728352820174249850196730627876553799956533269505357395989897928087344935529167187983577410838263350254734325481107185988999661512267552830426119963758614169433600155536526651649842567920221028213131364015337398963442673134678615016242752875863249310192218831993893996063690636042947172404991985519125097609862417983642538552658873564460092879970391518943378264086112268947562427170333591122619919749178870955558945629018335209052932205392448748522363506125784240353846226684396181866079845262383728773652980565547312749338463924420521895519747894550551910907494631182715256101657642433418249502034094288184067239999739943769124852960546494865123270532992734940864900002497850499476062291176865452605531322601936747750893069315212854260736129328954041722212027839987798969840612087562893781716037007366558163441708922122010111064228309667572617141504176764929471015666413066359953274231178308707203552564198313399700509665378029133000720346243458403161779116229817297046976285047435158259353856310537336692898945898420304793161208738087684580704586526249145166796280391772344460816242683750801521866947090178040793435151869244724777548992330710902216413894451449793756701352882011129853107382816545988667066546839457718065413170748005759099023827877670994270239443408447416814457535054988374106440931879982623836194377674970572705742520710402313522243880554805454673643346770924636404911884569743599039570550161206965189764948317517819397503554113203532810333476498715772779795880068100254041472363166045825234380151610734482811939424155538149513694626214514988851845532190628339917482557154541003461999548907335875457462129973371057563644047645535793248380026274817558119533829690661508984421860585961195225118098581064255194526659589428193904514476028203964104743155157693993688248766545554125129137579712853310748326598829236432023393741865305007316104041471271013061067373304513349887393371413586457794236397641400709250190420558359222099158224296557413760492523511400361341357622048472580865276309914701596585273435258190290893030672859231502062660143109621625038254846297881204491028676158141308126419351604682959915325812964819798489701777420327316694192033704577441654904585560158026305671091716178140887709653819261229198971275330162780981389139342786496205990045012021200921098154431838543076774422696141265113309834168201277334724028591461151465912810261072152384651956586570106724806307728540930307013138380734832188632759184417812488868961492011192342868027688593926827527445648031267519167615222006558136910502531282382633113371039104819301144151370428635235664988856887106219750245334401810242021209215427450056683886001620588852876893846093179911917256710824924856038756667849574743997765875768936901341121798933466172748224931128341229655397965434873311265275553773620828654691248851073568575774685037091902901048505015334366435722109869099578478946529034687809300937396385889480767359508503607466130253429449290982552338233403394740499928712517155927634485247611820044493584635697424794774896742991086136472252054691197495891910987834297242770876014730968830104309162514094034830765692910866022953248861857882027099444528277716078527682917399773467825347023477894451861696849701796342030466879560309360033841821989169904139939983555791556503663539660458503414092560330927549148553873524598508990669434313434766852412954769937179496767154684765500708295410426649620972979086990675295968395725923426394140278073180466438117586937844194285892428827401701495273926349958790096963353038020883607549391329310842405085615168291189467317287095416094068920071564661683771893235991320715435498968685376994690733631541561339938775741506788704999255903582842962106535080132717273861154843293583392937999015894710527126470508476836859343376496209510985191223159209550641742040789062304700954711453573680479903793507115232152313674699262712909236188990812351914258338376334706915686062995583745180311754582675798288263818400352038401174183626272891961490177801958808255624135414367150728315240735334492370551309312090255869459547875953312292288273805208971786096583661496566175566264565046509233647076243371823433846874514125932843649665109903400469960558236493586307558202417714908263275564373341088042701674436501085571351491879492386255125244441200462792112820427127972122435292534600770071316275680903615885345137457243367277621369036752142770641052635317480632729263815612210522711451763375446159281304940191668198348768192809072431527409299640661880430257759603497665280788280642820510470539676998503543404732395330159200811855302222794885091658571714293853343468387930070556459237356304071315406513498613521107059915402061812006477642182936071428793487532598816055575120471755229649796076260566105223254308898729702594649297572650255770890431379980743529505194757072193061108655939201089041491290846850655429211230718884267870170406463234228405346208890744843711163476016725646812250634699849269557125597611383162080615242114013208775668527758404448776520319861897967920177872696681430357586800363445399066290198954975091796003454714901640380429968432775858581359448020915887134899362512400883391349723373171833019407644538622436582040120401855900961119398228944916717025278723793720878002602863926471186293878549295050914950613622125966924822576310647652848363878436282097700084205849091325712779170205423267178769474490883701204881178983122958772464777101964293120159309146928996034880400631073913624902042300214809862463655070481408707232023929503584382718463425985669931081330472199118107353792767991537520273998524017450802477537343146689546647130407200099629150494245639401199285264452795549575451112664256653829988697147486397777705499449666330452257146333654716200643860458740403293594185280812718712158113113396477686270202027618753951840246081401705637842583803915330956586867645060823642374514345380111595782577305562770529196957133586552977283145151797730897162671458372215641982718240433360021622227950901799776620528356231446769190758792397972669405132256239611605261396473381159055538225394890675391539694831148620772644503883532506944752877960324342711455195751920340417934600002830182310450355053855414317747136122620960561285611666412472631898748329504488366227545234953708600449824969746625004644756011018640729711168127592657544949417859788650735090343968809517000570513240274942605607058185699794357231283111387981444132151605302038176884848916151341521774265357061905915135177657312056756788888737466971135123462575353240346054306325187134774339560558521139381443871823227753783592822926917028833601459746761128625046867106887058221621718562788417283485092917464947596384733961254492692384600045866010673285773462291192062093630938250767443970325943613472371679904320481654109183415472662316874314801601225083477714092084089426573173433747151789218326339206680467529295280037911408737103646263136607961897255024751152407796906532313961048386439978797466427236611842072732349739053179176106893728559602235036369366039279269825694650902732254367853542631665868728959192762350555482556119289395244072860327787160498003523545017068952493536343868898127972080123840603832522130668732096386041993294636737511106976907328820199193933889302721910253849871105472456161565273752430017330917723751696860837633852979428708734041152879675019395839737321765848360096087505648845699203672660602801906974322585724774109056445406632253289048990802713372117295754045903279298880465345122749636598506678691115459495955880209619169833027386742278463727858398745762278030135967072446952816298657768210923571673157016843065120183444116843729161953917944090063195717186920171293303378830199655100353801995374423455077409013659428723757558207762576781065525642519221654161972975454964238453611414848677031972578116700449367025311037326006334136379551111162622140169840518469836769693168496865756752578992294389478168243040542976288790547792485039532481707695158695606987840085690955963927027009902720388260704788299269856944473892682028250898991289347377302879814124454383935339985861506237958247303085998118870367152846637721605654300683094467583509858925106993426324147208919117686200615732855360423890737912962608829940254133969549361664646461792603254126134208737917157535600516134502794862610607478818865288448072584208734633103785457836837697715305120510326488448238079636808819633984903447885616099524085185465671247303423789891237042903419210988866010649158052496725549382403393737848920830425898223113365400850235785458311225022178431641929356885668083841906149697951884603202397145959825068968726948069406577008306869370195884816077969100347577535957282023657929768412247802764443062297809315288855021188549828465783846535882818725371968734216121693757466297668843395353684076072584235228797065990093381904934460571708983261161901167230554387798449493077117559241787771895198718328653907955466553521221438077252220836566288639118909785291318600186018844064258345070220882210595325300667605826865993833441946661515985723560892206559501737517409647578741413147944174874565455519267097158326641680619706228107409833304546418336476159741153450624934639737770877838950437339455507985467844073661433545624456920663028021177172647163618477804949642750396160768724907576508769074549141533898118992088506610679528615409814527961265350368498948676719214886325090040105963504018845255453084324856116143090635537750965019085609897972938813718920751568312467282052157794044890121802662301256370445486314204519564311928463705157068487254777156489383790920295147872513174057919776183497264239583818585874783347169666057784866916490731754142500302309115159455696638769660634288010052243976677828586515717090336265105175894846711648757544229850333651640563929518254563948979366115913088473418788577254486587712720989367501450779616002788313290943804456462867035751371600868295977846618111612455608311449161799856140729987994732380410283501334076929888976759187643202457135187593556627933144344781822363804316954461973043347663254531531255788361196775793577796302729505738302226866314617743774961836249850330347394491322957722756384757600525508394589767197571877810048310379410181381871527516594915645368016641966397730158101963184279567918338332555027987890774461755597240202524346678832508514617401951962928538166128182123601130245096188809516713345142319062727568191374020054696391183298036985060233270087862883771337686768094163239445664476971417754182300673306876945944039245460056685496555998527416016847335619855059480364257448580085293547997597542364214247497854447846667857199654541451213591925485779192557216795167278895916441214878729246476729996487602234689416191554279551574393892815743883972719204071927191687622389191326023852182663495537525048883943160748191419824715445692474778284282848013652512784609359859629709054845731481862255632411161314397406903193704613643742796323039015777162493007920379296861576541302643505378136092672871243211461010975133033301511351382008742591079914296510864179872124966799139863520799813391603112307839401372193667828999145831152439369241297932536286662207392306536151512907338588262831730671758675010349840657543688573856627588959512444399263605890599011111706201317087788703995804513636558650179412381068444358756095578000412861341151075534258487145923196128364242374350255884125121426612184210349164372923834872254050039588357358807477411454953709403038360434631582748610529207666554441454196020242477658891525782075920035997053657979377403498132556936594458090030095969429194780219360636737648120622823758246251012076676695106441382804902734753008859900861093263163798475320544837688753400725730307769316507638301673620073248938079185192812377489633961317964662995293016007194288618014131190862919967963643071792781173409002460014248404390105291969575586046703738666623160636001205150787914755626433538192052461961753706199332611117492572106014997395349785232430985829748658143519418253698549725168878898983490552941723880857062104225153395349427544680715725012579699747273988443817614889178853113745259781283597675052586346349309996418579744561071148537090224439916061223722247664871416691933618152999805107945794461913389044844777150108247283847142210465778556548999741815110047539711648259542202761912581892428710351024732465838452551733294706767035459687570732821092649239358874118537491354742098039838548811141262741540671343289451435129492969036507642970828027966472591637041623705759520385885496610736956140905528282460998868880281160675870612205569452004794249599354558548802183661378565753973141555030810312339820724910407809504695587985476765800546686541713674277337626183027605898324121191145199590542708455886164190357561368923576709476669458477124733157283194514090416565884834902941696134626773590317688915148733399524705481234145816959376023864982689153943311740415540764190299312640027964835236666126310290837526075195079925519261870385795041536132310456223574806864896164143899765637491665402765100155038423705625515392665965905114467612868839725326422529797155609511169433311126506098502947557876306725892510822394715277716687116230799797539523215458703860607697854329233009605524150452856777595605518775494860705693761505822633299164809323048357180676935405090167554362876276583319769602370054367737233497636039662897303982709156039123895060583823918391255475810766661899738152862462776187894182597058026815392022658602849718287511340579194106335905708578019388469091788121596320232766314771098181615839275526929511819936998304178853536461972270967756868823237895192660629780933554595245173231528396464418552982611509036262748675475611702827481059170974332653048091762547972284465173162997247052229152038920003349365561995887407217454994325649961080304498525193443971882083046256462323446873962183784871753795998926234748901817165304514439390661423858005182374394474859819410729496708628287352867148681173062623060100204407544134622942783932617055620228794844899683983733084561562957926266888424434452473876759842548009734483149093330134221239217210291497825394041508152114700351072744487748682227345853346299777642040962554465766818176936403750863251456692155586766350340897241702563366282497386639921664800534116834750951299467910584347553529101600764260102506781814110940927194828691682258764788893263680608600309022300821082140119807867634146646645677016774620366357203500012635451089129309380804838292585198549628252254692678996708982595183034850864521931841806896210682551977257388522882015158726670874646953004544794721306418742349731071879373853890239103060888377199309544873676057435500224093108480559755465986557119335756075964751413655804212236978439484698226793688227857870264927605951617911865949040849609398452390016212601870408571286893326581764828502087135190251857903216014905087424189632283953331628533350401691104080551830156701609930044512928118558637697513581926924669487701506033600698798268591516762651945268007982289205237183821801955185869267950218400734831648595293721790261955096666774339011735310777271383439094192423491534199728481734572797359138718848602177642704614286492525713653186650714081314634120221207820115515568128039915504184426368407903859412039142078743220532551643977660131527776071398592583158789393759527486904842653958140300852594288201755953191001401245798058003245124013429050096099252114167460697242718245014616882607336746783758156515573345056752617595715118945454289946085983189239648480458914573386827102924830804743003041539738466162196574152425491713424159488106899014449875943214278875007230085412224742273512097313019056715405590581050063417557458629379475287646940310914822763180006635845376242657187046015783016645770075896029175056982516545210313591791501243650121747546279940322436801888175097093512132322067482434941474834647285717205680099692380017737357339987946724647392358144756599118661202107493474876800542895922145427151986307148242280557671122968050034737558275866059792589480303491822398827824821640053046333335969847625223447665756525609023537661471145015430969711243907264799332473837870083494072130454805085960082917034137969970545493238632754975993320151790803567565143459585782064336967733035793357416869082135787181437787740829932484552242479412474035966011071335245662912781464367312400417428347629847542036767743385591849294014538887608026908184207315368484666925363400700177184859109055488961653809813589569431162483918801846729466996258899687791769572298715048430334906236218818313456468885068138684244702416886428571520674995595373217685707563824129446714800002919263533838330212710263791175890086006596922733181010448998935786110546143646765307779623821637096286055420714246480149233646730515544310877133364065242418460898907885372091925204929006146316082046961410544046361848874196666399946274331272953747130066060042226626904584209438492297821536834227018557303371636627544633626769746376684465052640407758242138842867765480166969467322951507881359867736881090355134836884585790582463010869583143875281022343586190921082774496327368797177066358378005120661385083505877642905215582245259734527118041267644148012476920483828666898556517910157143241240628143541014321136419939286475834439363016013340435246971765948851607396864013590302705953493440592802431523615218390017477436602981464309524581748628207711729937912932926874880652997149473389725982342165703046408530082730673523175066021360845622316120708187499585143841956850899373550776614732231127545059773235530543496216491345676406355984090436228405228992008892830025284545298803879564553991504387618257629606220880024374321285856694003666517416476968251749158466796983525903450431512085092017077258645169699148917905546199325344274879136112712119309683593624644876577228743342290107664446706290903526501187898146646431597101103268399859953954415998713929984127735878945576763335169693465155727830651376467035638733759999554572597438002225398967500754060467501567131113214058792243732850224398203604194438950275926490173182753554687609870350148825215210229233607035648634253041275907006965948371888785786640739358399141710796118585864638297553302046078481853669537808857885132269320009795240199955919940637582629329181018424356396247792750384636180852651440981559246734343310764256355306947344489141725999311892455798730355735356292864888984086064344459679454443514171406667478616959157637459289242420823106395061689788130834493558743499019271671638740491080845743967744971656051012360269174198148570414144430995136059119648260042094771140492366465967876399669005693444299923083868491402561442323439824923693950019744352265491274585670296018012451617446111849374273484097882161575698861933388113333777892456379765824783004189216530695802358303309832708161789632184084939316940904952933858267387902379562289130466408882782557331082566005720220729543730765543405614271388132197090467136890506435911174630468765427630360842244656094598992537144216853565513240988173267668905217499934122988126219107827095451346106488782905904558338447835285813070187189200848923167565497213082048556123794843792564135129513821335732554943545200510807695437622458921370930089439795047108185009126296343791898633771654172528052972516340339968114796171484503346666791545197480126106997947840504177304543766147273623661261946988943848118669128623125355902660609080834834614728597438527147093483435658971807455101547872418714383668362389316099051600299596844200094166458464084419990594865615382397961851255655576004607170025267173866501869306711024377364499924489679267599186955659865080771515530796823349696490730317058306831109312495934250677931415756292816071907937055259753357203014686113771838759449569321376609730668569596219623107389005267495177597928351090221361346720233336123839129721170624643556260755705345012387413298315835420850152109241248394583636238072777602150647699930670521661181889846942963865059840106272657060457905530047931085362128195014480173390925459006324589115246780709685317578611240124802410127417098642324470896866774262901430670263848884293594558361445997389933768867640757747344176533035162088835350946288094906178308988943086017414781316870768274689370551633654798441863746329854333912470178741826033962418584925926754009289426617058427984396670963374899945768279212759683911941976078962736580585551724994016502993529569459912037953855060044516142502025634129930378476958214305429079138041341633293299802215260703575548844103800822616039504191956939174139474361173960757025768748164429017569440002725751246721552704737545142124323123962226329002285559760247599172666812457763472363823613029024178226894026395578474918737643770573018597630542942273364559082747515726974148008768412042814930179031747069287228958599109950112675407275121237760997865742360495798599306869518243174376375221871687604357295065081461659494567036596376337300125744271201464742217084654153450920649771997489629877270720361829230873864787964015101570047199803195790246320458326466924318264714742476905046583777811286727676154976778855073659998250129907533050893999241673719415668550043078827425021890840732121877824592536777296851314976496097295131763072100756255346841149802408767624116092392231986080314235363606935994851477929481191559289300442078546535049825837961164326532646818811692477658950320101707025630443202215255735805579799527886608174374283680768708434859678075543398449646688682454834380752302101772539172219629450774769444173840061736913390869420306020233575167459496858152490455156158155689448791315183380941615340693710507617163891116789268964879695151779036367320734874777755892812489646917904167571555214352512053124475659024662588077122368537485965577494662204947353754801653744349503453198521426377882801991546571871767732811115872520011441365506841924280177995305726109602263291584615044372446982993177269954295954063489792274610039649851149115617263062976747136041289651038188037758060026790176114688647362948333943881085411797368011106650370230258484223927761010234822436924060049898940677272878023426488069346879969159280886350050542141948953053172613970865689184575104297027640073830403071383606156458348193979954615603998264898894061672101439388703380320079812544813340576260336868606998324581210295302973466565188204562185435280659758733262050601223566059408896838057929560198746692945705954957912463247725477913720191932406614128031622445739905054858752445737934300841026619010605344542516213188942535470669977026479978309098675850368014009289145251213204360312868607206719182291262596587634911151853287963196623770124822740218753710549697848756791056280847453548977131845403694425247445520886374639205769999420662184641136975436462292834495449946387584522554836156846217586581437967082720382151532155194852724672334977005306544268864951540156950856722275155558365607453159581775667956391864824526593303000975396170712873204819158218605568064420133832486528268185598222449539014130496759147561131153271338386661027645400808018214798205452375323326394397538454008811067878919199741371793874393534343075542056346098961449441709022182147158327803262685280051221940120889979807293280479203869181655415213378049020433121749566117420516052658057465206433029227497135629037730049699040326588059544304372030788131777908446809554967091946532114274696126709123792656720829698275659030860528359853614013835047433932686630355261563369533558506774970036725798544233321955991528279562555214698319776515953610438994219564000400550790987332454706139007591144289713548113505075804681879105533546765176784109249161835248579336425370941418156571373750636731520198205838705867388276145217693313344836237941451841730337588075855386811185586588362659508524546598271263343116133539493524815043826800335693732577682300742042285249049754067577881334252179707632428062042174385908054628151597710494556342157421644079636569803667632233563621437308373852699808243703998170520170337803461600508107581839806769256900739375486619343884087435653973216736990867235346922269974776945765277092305337895437363613347728124479661574908184205813379565953595985415514708352235313557911559483315620659935622929199413495148106040844994620897335233098416232671488648589925854495471443790555767584351783814204473289592099161057614854303525643149081890191121286263627239941211133332978574766716828472524419164296272398180388708437461138971495019336894655262497062710074361796419712388233844706677038064990469051758079763220726607118395422725218469157304613636599970324803456495992251457548996473909482888056949052183331516140560270611450109180487457583325797071610655479217764556878665082529203656021184296179589668652965903395889228664569887384615654799795077858140495416338193279985328424079020913775444905606852591336696195442000796444753507699306818465288200184897053774408582975561868570943634816196465200497485485869167209333666104762667967695830732270211000545571332968508295429727310256445158481703119861127055681734564512914236334635789518417647788009147549720138207484815380918473865666823492400868994006742374677974713969688703909126926261746593308693093382472044923150529035047370620056984913329135580738379711394447743580474597431559521764938799590888354061253370812973450546098228867474432747043303771196164543645042947284763683870168514984088551508914398532959938170188581897309520038385416605028254982713632040369710556228052627128999398827053901096017389857701932812200977558156349427375060006741623852826252365487534710808772945032344004310300511716559552871503469498103293422521626084888639142196993008685547472018505425155223701529016841973992274377985299263041532556115780787394056953904170486808400004480181937459766135605552956239940216835192817609784241630614507376841171559052696928206407147496182587372404193916500865716079953085521353544514474176658617330294329653221701814799985948483318663151673153932566858378677304286088741812796481925855553254401993184236718447039785170512360908415065170312429496372251705259847934590453634565653749134920319557074605937631527949667705728224980933181300363301690078942921317339446414629558051685896597686901640856986038733070980000830876825017000357162695551750421042394485598375416922213033615356852029391459777833444312403503016831340004494099543826204631379737107184233892985352719024926108173725216055280959441258292373501557629197088150207686055523083346240871629210990378420674041283494535161230054123176807121652698628711822200647235223722102239979715876499408150858102763767979646576136825571691820537390366181059850100589346537267954542018244189800997466111348219297811340563248004124984792949950498839816606094827184986191336354311713003103241203340930167437504437913699169825403996900999425396579337841196090148364853351064603998641595072404427007268763718018749726592134135094266861422311973160492143169948050987827455753348591903979205030967367300372879549818173019131152297075814774949577784337961274716905135244411108257890728169157136245036211767205251068407412869473452982821986423428883090320001631868279312520065507716483030096549157490389719251716127351890272858924693004566467816826478382760565719582695537573128554046247880903896173828723164023498454273415000004585012255331676043577965266972934894364261120782648998478592308852624627936751159157557946970808111837607211186041336604350649885900971038336279337421783094220568849784442727627364201333739337516056972277980701836232863503814836811140507843725168940730600245176359916270189644192376047759714462105007836430010245074098569012133340929158969685481867296085671634963437093109661354025425453344001291838352743871858680127402225424361479678933424598584541639702572635767445045165969661032578479809242221625802482938227427016932001185870010496049029162184024044146773527248391545413904147623615398862048913464034305967646104944067111926195587015761825264706533697810057207563140846624460120234367643179771731760958640151466268661946684601629321163478667604887629072093212667542919485981377412788130085198943393355388971107543450383643685408270043089640922169870750709371522436937731365719595801159136504129071681856470740052320792584473294312695321783670477123095708766070498478714849898901909883587569720793956180546189250906316061613312617130560571482021324860252731483734823378520538469402288145415850236244632975369621092942455103623752662260378894397255900190655500913969899899860007621940616942757273136128119510898196903067707891994460980128775100049260016541448054005967285315875885382081215190193504168707121374460388464378519235850451131845555412474637615965739113490452996795430471934605541983826793340728722272036741239890889798752401856362023434010670542652102752373473637061583264271713414664448852249344977234227027747140843398339938240769710486157735153870014869308661646046620010547527273177762749462687727084591416343604192831239888956314162989526710308704030982129967919930198826557213873045484867121518263663940630126507952732993396576483174166725028148725702478892231220091469475572895684575602883657149333484500586818902939368641814380854910054453752568635725930449199994872562098226935656446819473811351082267372050938905261769985697140266573007420192929635303421831633611117460706708903891186430366085689251653299345866413297149116634854190893950208025328228682309727560246422713925152693531599969355596799191950102803655616352255696236745848687253899005744549609862328761122975683971497223415872195473106084818600382864324643608198976575378409676254732267670983805581478543273370795763572604554004582543927870695723626533675482767669644633171677023486909850202906830847097203973861149894536793675073977667670349552269806801727665851601008653751183892132041456245495226785592084452286649883905494091788324289128477389443837501746609244921724265913922159191373482683108333666192607777816018170002853490227809603250870785412575400324501469129684890782416552502619957043788088615927660574831170010606807917299296227953269344027155779945061073775721781402703235532429379209988990476003747979995519869391298499144152040560920997626753748640555298508086948965678279276629793250399863157269381675175304941611561152623267342118856637028892420246384478562289746990200799493032476766752854240257677540124429235707145372168775219459225827877822710918796994316013882688149237703680240125642082970491409765853404342922793662176100448020445066080912163590463045786229792294614513417739218702458630356195489594363406495637656148290508928139043099458849559046674780179430061792737670146540986619600442288375506277682236833032236640672570577614173832814910564280144481724603778362949656871541493802150399511343073927170122140727439122426607123220833860113681093725124912769611559152799807678118284091635886543585203796599058848194607059711277383525840738231687802332997824913781926546240886006579367685148760248239377866986733818973470624574472044222714135870061876469648198772308338353877066906595679232866179011470915476041894610236149266531703577373630046420681824791238343264355380050650990198539232877415965577476446589827657958798708322911330213539960040793751304958085786226295114413592373327638755880439090123098631479231671054084528467929927046315239021382201933523749529862826261327458014935983989630756335442440901614225034923905870541382351559049990237220614512967295912889520238803702888278812444772943547315871321892406951071005900143054542289950565260319934728670552524332652634099078446134108282628820211498247037982571967484372174466326479814219298719812645588840944752332886911364072759487021700193372451887618726672883970245311020931057939436542839722846300958674745702496750431778572748611568283832272796101738168535597736447758852737220865356615366902400333331383937277671599149700395965311612484987697667045565877433806065501802094358033183638512016534974388289581438784302698262294288882484057898518478842992878423707493132020262997015160344045079941238464860425213829289623372391619470425339252141308859530223701430842238641627939211769022366503864321487580536870625019848106332441378909581133961929838028420612727377801439808874725016967678014638183824957658228595359727981545843403981336831271260369748109128201055000336421499990548814114294784690227368199566657674472102909211728960318359777314354280681713423587244978003608573284710432811136354901521620150631708123625897572809353087379721954392367801908320175504074696837406553507945686334034568802657641664748212948638280411501237149863724980983067236955770027590513255122067584655170307886190920881295837673622757195346158462041404433460106405256052312514966397144780782854493231739093599126337317901980980446571240282139851565026353373716652981362651657455146823391670979181576584029240102834725000626692596097393350562228279144830567836067673545365107007713530255464884917324271179977896996936872979127480701141051839689743753255664889146569339261598356256359951390334331900121946235648548953923765876046427010200869694834301449825140142199896367087322307557985101677072010764956746142459425281758891295582117622124380552796487109320429159942639023884910108593078204568144865618538915075178980312766557188258751396572967227779425232322101897841975058163693759237303764485758949411553172721255251837532713857558157535470135368467097567926967007079435523620657597745363924224891235587440866922555784147882121720613997079634056447805903109459370320541800294541133930700174777633811107819656692853477907668570556408979317317130845378018779559243686604746618593436890873196902831603021232489927437934351822281149640846212088766202376364178940570709879507307602694705753316979413533429433094915809794932786766158999732954390643247772937212132854239838825461003351266825384645318670808922959100264897477131034849430391770793415899543151666081094268459755549191524842896123694921325669937957153069863333428895557230034642453225417840154761144065285457743001846415048532136133053443023568839727300573427411394861779384732608674808423053976354434455870229953653742830867355413723333619814820077532150210136441234925711675818546140622765481824409674001391128803076356591409260684259702473033116228513755134287878822499351398848981407043265682551469668666730919439383103457582118571884614759745148558929922259027115224509382283071885824195497624827921380955066634682262271968392877629393588304230236975237462212177279211144356168155943325668101805482554451066415003707220496305510036224571039484250724757786274847402018156520749300213913118215913685834649349392379579969053392041772301437904302998532058678987665350165421357227077291881640943024251639824825485304346854994868504505037097848526723683989262845668167084687537450589854542037465140779412000854688839608520688318784427413186682035371593016079474747980420385276648887283826814617425903309751516165491081594743426973312593617922106805782362546594476119447913767060209183753648252502624299269927251442436116621340915794331000688623252308799741979586153780179476842364361350365310412788746906589358555044141254593515329957412714357139463747994276959604492225532697658865049030463807956637802110736536822488175365817489612360414664499055299953412825830710881554857382230172294596710951110553513475710766119022906263633143876751897735018987281857728344053265539935434899184123792018810252151151928899831458055485864360464598607868584827333447619771496488633936276469181244092182017877708041619492751429860318344518387180690816646525961440859707606059019780623613542177031026509398325027154075393661055145593942728262761521034309000005302710960836056649333068523811327923429916994852933163431662207678317764231100385996332560572708371136375239422272178741136961609886145534468663813872692849011231801126213144019847664888987200796517042672636655766502942446721147839929121003514954975353488530655294743614738657113134202959138850368486660733208516909823690983011251639235058491686414264990205907982794948139934880026180626317364289006694788854665848669223732248282797351011518390746560037100840647517503597332135586658710669796402996151654485730411649840094542374502275813115687860326407585848725561389428004450739998873735238083265784999401010944522426258191313028972113491707048287421785659049810176829518814619716156739382812782671680270890502708903265263041930218817883754405839818221574236197080314363752479589405777879745414708932426561618455697814801577268024618485144438942761568277596558535745892592902180499583101612018435618201590539620969514619091743959960586864011902579977745678427139666604587577044551780857219506944324506715425305005841007313644370381203681569709543740667390397954898335819301544992029138385863481920500802042258856918422991454886141931248018365425385258196153856313160935289847579899652663693359107779787767634789163157197335409542923456002747917290230622031087633887989703890922059337489867803240511450119380790292573742506260999695318708153446193983655559689609897060888648349897787613963185059477469049970938903553761428245058109522319727033062190661846308658148951542332334510512531093306366586843625808853032073571109967894355433438578279656649081793951865214163322833915836939859639691386938622880730984552734139557596445973251104533909774435979680644637193201844648219674596273505455272685847748456754339810548929364259095400747271121969177598722625323287942923304321162172136028405416448400278533561447697204459731770647778750736091058346702429882436287397854893431539437269155584043337395357438266563462449302351606523038805938568435556938101632531861344675469819359386762658596121470494949738525475989902734978247418293705928265706436103142666979317314127401344007060973502132500808797716129740472877620948734263396125341103045626312194529933632547576253695449926339419734271670582112602939637221234240808835775358229903627350824488507343721963879631571566596696455814670218790484691803671275917861826223569171323376305458850741458525148816142689747184520124052378310812631427229122600434174295677459691984308162121953792890795761387307516470077224085462211564889774392667433049944871398550761477023844720659538194254921696243869523692554611861539377472023944385274069607280495487771513335394145641885764573467743615516237444890741105157648928654971348963315544430531102686380450333485757880119948270311785605796589658337344628206465373105813358896628373556829384520763850026715278066148986487701179950261171457618761174777613168653273621390633419292393195412317397798308891057750379550282734211061113908007939245383333886725854145523909629774084062150392036851065139741885540760451896394174160364109699432641846309646184930841285085570480870113057801507926461917306347095306793265538833242089618935655741141428632721219722372194349402825069195990536654219363660084571149057343950124375237912842927885953591038050748080123457039524115578176343993137307325449400267940072574695603001454289638159040786192377979324567074035813777956466513001033779048179662448918708389206522817855390813514403558503061843661334108596182285640397207988350190872949636958346219979671644424483738509077422952562654634999437218013379781763694229239934967062178914431224057034507316915597719668382645988342056795242427737759494248906994031909291051364225543213258024580847392705965025394191050678055955560810963988475258904147072399266985025825208725789363019121231871395776938010731790142332078030462670631010255681531727738800542188556160620264289249174054045776750704655495810328187649195699207494176190752302560312737435925652621240540968327317239212311503914519906120024289570715935288049121860844539549277218183964138699445162864971775137592991757184543869990783266675334914722034007743571087132412390577602146033355124936623838248136389225745884192008147348111813105274334198614821072411723934453871950647460974316727292742846233185904507820442220594582794090479026834572085890384704807345171579159215937104604053998053953362774270067710861080716509107000017787384897979614236883723414119774102998649244909591409850097978615610459138246897915748785932355880170626311399727336249840266172009963886532830450046399779389523172126880839049392271645091867415702297022810823219180108197837656429144929171771867972826969654311143732812967117827688624889360969915670067133362689152652855729651705109040249832885387582547441348274578032133374016351801641189727864762111479791949388546387367641553543643780524432952602292210524841568096631057956266709673446726458280377903367514476963384067850772331173079917145915053677027049228913647016699753494506531073459938879885179567738800188853504768371595356247436241493575726462656934490660966557181625360662855323215117310382786803433837505648884513123366456748880993921789046790089594294701086620733830253825711435987448062394530101794735785213097490847987007888815043342228813226733778890435011169025946368845896940693490994656276602000612574199318982787797595893325598069871259336952238264457679315766692407642464434607170062724653814309946008846949168731727583562922746310354524432257397921050103915695716191573134947591217820632130034473593758805947983466457034705740716534248723509225756317807073142031981765225234144326925534966758468418317746171177347787520072623475539601937421079858565147598682617270051251707638831311649492615516903321491508531358180369464050429075574253641803316359467272237659033252770031965821290782184331120430229103630590104567144382280695169929637836552333955378914563992058721571681235783952815587038464123216106515017998280532687011771474383399984791772925014600322618359643638323305913480547952682573593267139595550463454071172811505318978541239988009370562902856195123488467099760149918422075270141645714127981515165056469137636727852176493911552361690184511577918369979858539111684737117487618705879677842082864961321070102412024995388932315307537511548915699237228224117774162095302039730150288953095914556267355075649690412474786697399847371414152828427267814340496682639881153109620090353903083219198545928360185741823389720832780604777582160961956525296361062050392823364414805791824558844880478559022568900138532043471469700583547904121831284397807064557317255310365118977968362324010936514913816706409590876285675047665824299685062095592675708661126799926171238589191551349489635344675904712055746982280945746589990599698587411353472980403273815510549176763565162289886974546889590662931017953386154232523460629136908987195999739897608999040180479885794257337529988441374034074016880621212756944947160625987507645723715524656343546789536513959390789881050992766276210959562142984424206622975067545408712147139192032556240443616651227513451904721577827708168526383456555375231584341806087864552118339081099893618309308104760936655791217752719029142507164912421396661541104988582000352678968879954232440836082550974522307164909190247358516725125957145813364705424829407956642543828589374138976477593352167373784853022960987588556859657382276180769949745847856117674315776653909510219361297627521969309154090022150010817819567342494768130794105843391638157732550683042175619218266558914370154686734563255719606251656022284985792290721362637823455474770856047055296859967365410995823409681001676909380939983465284595933391531630815083690714554543288505663004848253270520993385811636944224224592720900468223243008732530309413081117158301760688567586515927619434328933093776047072554423829481014229719652332169367557591078300028386040618923866573598694385897072131251647608760729079172219000460625589140309378329790549474934870265504729986586675078249263239365614537122710423912239087521262890543122550363977409158767168621422603042000346591372027289091866945115862696485269391693305284489616806753258400164414809029523494399815152928354320122597994183593595009552761537896880625689156402047625591126233079486568810056801953364465751408068822730288375015139153417010483802403877985491688013090030731348187010371492737507692373330211380515451300483990300548508009796806395691452895842807135924237023186757796102638693158094486650541497013909245814404430264410744192300713859258846090799885352288352268556844905524634731583740959718540641544085629167116558051162965046936030996613112041963240934644017535592503060869625426701299665627427774672660134168626344243505952659636265674553731996119495153206223628602033120851840136641263877081501082141826840169008805790220302859605804686472478449773850522201630853325517106177343801235895917824813833937703589353309412941988897101305902051706225474955533756498408988744841471729721462848129759948717517633951198206694596611562607800881180079536560554327134431346990351678959946525002044397163748841365146491915836512962050051243643857525122754559474742562228314098779831411952410355621964613794844038758802428418874074828486063894804313893209297602781903212475997442774219838913198276099086251909852876878083737344259423013585151541488555660191170200694215762833969414612330203453820476821603157673869825687557376918126253020762315293686236679494456789694200758784285984329190482445086644246885179927579373167340773957633927035074672729514163040244003443650145400296694479120458600739496577509170749478877268436787270112535311702997535991191601062109329335549447324021123013068746798926824586621832813197658987640041651214059905080011225026507001470689718672076162492774177536784482503746095577575630255596629548911966283084668171118982082022980470468360244762088151864898800139022895692800251947066098670495378551765697558299188061618533178431296535887785267704321441382550322861551182981905323087345990640114953633918475886471532644967185595358325889438852095139676302096785628223807056402361910923049196351098048580330494480150297234939552340070412638173879486883392366922423613810960880138217754678083557017915783294550891597767506921408187471534655947075759500123452152322504302812102049237510757891058040573286643087723109926651958728041270805405845031813729454389210965929890968692290495696682165181894165919644171911485427853088857044655077541687806483877113252403670974618472150924699161315776477105177780291618570731476794829517031570436561398671906091871898389283703322392782407233591470297459037324322868995220855176616703287424238216133579830041897903507439489474269051745365023831947162860251250088006865050170516329824002813137722208794439907612010203738710471953928364239209459580202496917999017738577342357528248425034070605852859065575657144043606833593565947939668276203836170658982337858538624222127018520055030721523504588347616552519940811554401863189416212135316058805003275439946411001683895440489445569377263492340290691370153425485667019291451387387584918922979753634318440712852674446640670547397350487903890112135039067558352075454991507553375447935037452418816692274190414464190903024327667749707486863732751755684622967141117314141699749746014176126715131535989530338236900184880472499575282301083756107592333132404498090528129662192156719137365878991471001747680737748550112607758889699299486294940563629730114531786015691772237221998368168445105837382890507957774940005707119067744758321830298549252624000152447497138648924239469506192678023580219905858941470631848347918791159615347134826913663770616504601101750267840459337138826417201339961387937666699613714501892407314048482811768741777303696802017843766029568611876205617277471725759292796267238654615185909224029953894559612892067409001769933703332495691832242757870984632261168366833789353521028836093699547037847648242465511305821750887832660896136874674124542209650531817973979923618757810763214657514582971702750919869669124625395917816570613042834384492947509826596800644384691515419280716588801565293723069723542120669674962120325334101061788764210810767306089612262447521118545111210112020166359915724353083518690129309908482845381583674392920059761046014921546913663063473504810551445754055643206142191494494073410991288499759116010464399945436188874724577482851185129424422785976003217756335053787060009767352825585968592340254023270925220290194134822949679423317518174202161017760745375105486940691667154702397184803576543005178534999175673625221983733177216262676951975335313451805530179127905627806370808047572889443916800483072197164840339186607156839005353623242899772556709577338865172278661779521593402252249148847015926606133265756145652425314311278006510539647897035598292796909970443040678479300646691663591905336958005646466140064479505603509344733880629012319136629978164162311057932874917688789056378499958105762227572808682119267148825052726941995115513898625865180654816961871897688115189875100051853850399141913615268275402155551178712670351044469774767912235660424802460018622815716456351415482809883759569287104707621192652743230376128932503575384084534214202492583555966871013593843589560108483236774438812001881056971704884583743099512201676815180198280275179657394132474158773612301681705340042212175178532528335374990320938057414606813733491561142259624046018407257411643905876710098928219588657294528917158173737370797374957539543385918152818461973892893635501243376222445184141375019951975516185564204948573814882439806917942502042578704866542755947496757390610440984348562331364057544863105606148086486019374420135277449588419127934466786285233077137828157542336558379891969415831232385866301922150174726208445283884104530349653538477089213842954165238724518756190997686499538521327272134268712617548603788571969036072622206892154658728943862713653616349680574522603859083610991814795625112542672818963408509640379167339627241642242298284653167313865227081417238995400935732968022808299305388252157000032010942466590010108102761860312924023989890477772092991992159899124520581516610707050205042040922379003815575339719464704730874367075011268226188885905168921275224557912440362594016681276453934608909588151493883341273403664293904639551026348500239534362460340311158009123385543422066566150022696932803091987113463022162839263790112669226731836550892623560302417997883823506385303449796700669399076482722333042325723091065812764487163561357542936916537899504848960251064629319941975709038472207742596684400437088479102834915305624061665925385495842138140358988492289055246863753714130524807572994830425535166971464420741945170036506873820141970740564758922709405423648088324365385167801474315602088725939979763284620981469383709154575105048050775542479533079325108452151807408373396866318021933880187605508349985817411665588173610443152002743420386615660573722790539829153682444156370599953100846945416197417944780208972139435549697751199593195261905595499045921557722060891916836544622010975554561759475877004664837612382589712019294464932727495866103391656598256285059995499141448806539486320732658851307161055765430836974394395748012310469920326623611293404367982826911105986139707315516378908702763915554845817833726064252038257564284576203627316457955825394759861724936269854994305569570853599816851407086896460228404130637331491165002083050611120090622745841346132491823612455314735586748235794745741148391972818255810506140416734187005812747604903263199636485888268640068788006284174457122405931380101716910437189338337274399481533475307666468241240172466010049604569764446169986915582461215166640880451802868970427554996729074758110385751559418602043006505608783961952975263787889078173123699776523006984458390099149799761517743366085309837182531849962788986909255048598723003183812355437912358224622072327539765263744966603008486509900747271399592914237491400315204167982293138091173862165993381499334776214597099950403870941394298315801110238489181180861610126909080242605111481663962290776274780237231071206529920578478081204410717394117333480633360134353810396940577766352119609034643040115187482524114317398585072549449655285215433248980981041510112789243112751557887208867486857539632553917218784550051761225248815916151665267535366607745246375824914370268569732317442249354453451790542388898142306588408215113998189370184333815182959619743526746646530186337127298432689442009219843870767568849032269573930696405433015883247487244369962541652500970789276271059015741964353393303853328561291091951637966889377586631065254691745946307455127533524728765965398574029203029548419965656360983485756249381132358311029101698631488826233854537966992533355103007798301315816370095349960867762390720633294731928095969184643955400509459570044457640530286378722689384270226119326892009055376853733994349385309937282140221066929523973180511824873594339833509392189018093721146197185114319626569977634010627577156883973039416027031262407981576953640279127720407518774868187831856804530695840837586432352874572289525734610500761212409160263501635396642353575861302280099181082895017347604169486582480343162214862558088896285874298778046685977710479096779441263790161921108653450601768433740340759292841093658006975069498949226888381090488415574468624233923866793471068176240719242194692705425956698490050434968551960700559860847402207011164108694151085236495501659918599033735482148988621632807345879221273901772258608652608389786669824114373902394920074844725659981450030375725816103464006528276958940798058934602412483702819589192664700861542115885463014783265272796781852449536406638979935940087816887353919673873222585211933546983746067099998319081810492257795814952529741112554456286313070924227197163205544768968618607171098862633027725771503556660030817346783408875652548397477084638879421850830930068269155146104192423421963810715987678690317501836144933123671307568591904627156726222983706104758268601804498325201366936896383310011131382863418647674367396612675592532604768808609404115266306013918549102901831379232281285870931254152567628839574266524879927001659370821810305167320864991436633563444445867553513933729012951538969164503843466684092726443634550474295077310606013178959492283899446377999726123239640481035867516425766453010966757496453524187332120856579363674902640402162853178274499345030173980122622130653246795920238617158188275919188890601751535346732712430945439490390848898051913600668061176306117568263845678677035339329028370365188560697144701646853511568455293812496180832902718779697549878806628028542057124620048608961857585264509604937352766402529058774949982826063487753565634834751852962415693755881357806017382064060641005844830791675358852786671350817959245047879234440542672563641383314413036898377563483283949739509010879238042186620424306675352144850014164383450273112738118857888483257142933742529599973704191711712954280057583945464660964156472030197224449888483694031333699036352953723142693168644046357385664481113312866961586648649442063020573955390821314519327083248589587749742865138325572313875794168537863794940861090637697485452609814200278072676130112439503011640156863371980748285208253288134726102543425975110411101521207359600312245670862394363832626643739031223958468423759965723919163448846414515085054813116039466317254581162014099574385440040815333170963022258780196009718344978607816535836356743631292235830412646698024967077677682778338407873041866803893288947702013022910597746273520002048016645830107967240334026913290105076681486543757304217504663650622518611311399806916450285788197853824278232220581942760106363780172413954789222268369033520203337340053871517569269530448208314806744602523044420331965538564937211048737188369940191749778510226342522348427562808411666102694918949032594333687996856695245607914112144077087454463874057521632798873329996424815517467388147150276287977242546930712758075376272677161712548953929720652568102813793966309680281656541099472039286989943803040852699958459242734817897884504001783486330416589796526263279001690758603338433952810596706620304278898881113119982733956350383240849975908098218813892795389738435234699401114971892251407796704047495702002112203706027500600545196738778572021684068815251132311974230278886925885425734222855504174867407855893211332490097412772250654378064822883722558418799080566808388269915790406968392901113674841787215202931023066733852652835168245955791160770529211581718685360714210477368265021848410111360184692921026069081986807987957385777254447187777094926541217222184148732488424522054588230650963629910403106346899667485473113934232616290369205431125859722572135412375633890477700259831581846052086460186922139285805019572113607313286057139160871121318942084501091789690700731504996844353930796651737238442793156311410026675803309967460399131242999267687029329012453812477809859751501795270912195415669821827177678246789654064760117421541414140340515434301487355108863333132794769401121777063523687269618857858278636338930715257752622006477170299804408309947212983227954356845558947888155665553605628239797451848324634967399000793662442731432099955074277205722216035100364892662449599507605923413957353960899880531087677891265978304252133437363093404892439280476027510874435183057219362520602155984512441381694806041174673197593068331527191816210464078068987137273282630457189215982980199896703087114550947180689488224609151210966394473619483964686143863710144556433290905295246565037072699169432290248274525528503959919119996383905178380302510966730746190682694491598792131452629995636403242101338833612662738063321321681265793137681248258555887491746218020207526037059222801245603484584312795196062279060244768465126551935936212324336051638827888170137241913978662897102831278638160620723060343290369195946926457281571095838829482211665667138587552800355993810923829080887124041992467440461289335580142911180370628448053030771377372334703278878094141506282405345264864079075812633697301155569924452693178305657373222747440191128846087283289625877634904504872233652560145138816769221987946749928138187006793192348277997071118112182864613719564680522662277623663940241214212075839848748313531542090583061973299044367802052533657097285398026788494602446435888195641131749477838731725180756317842052114941473589256523896556752614206633977482663277461822423463157848574575915795798824171015018688476415847846486399247605467454279250761620094710127924497337530838250612174434433513406627081311453022811963563560291619811291060981430298127467235897213804600424770167715393504170293371371172845031799425559888253285500199616669472828783203967410185677742753596465955457755241877681129316728275829369958194178193681935715878308275871144206357901977587224572753306429826862889305727157001484843604277298064360352084249402999308937294507410086377715179203025078255260827920642995663060329302994931569576981267706494494599651675398183047562634366799684090753967287611501311581174688349218074188964910183619417394974436749504993213122296890104209393321092737168473301571005348366155945363952731748985081273111888508289264678492058908332353392591428833833660360037732607370350716078614511197247843996727108680156946843286577372264213081080233373326768809319130590364362764303964194576582189501943157168144758925328675850932998851922744678710470156654451369716641284401395882431509157569822282764564192466255694471779238559800436687975932951799845417871191932628335275577612275818118530492709006153026594760233735725230358753752495314696219782521712807890273172992739219774860956212429142799644520729493306716299468096335687104126181399156260223250642747985282112276467946970709512344036018583489885899249196749526861227602597060212921793760360937288441459412952602616341811524433788185230254490943412759889178911827294664622352713033279638212928156294468939441556733773351299945386459578613016470779007222785682244469678865979989362990922216098751559299542868999909356769420589533870944846508287278464050967213864700218170150080132252846865463612853512640048913203030746445108110193517587755602993085653431521917166782481379333331316594000698938422461838545206620940330815381019563950273372843515302233911542629072142686622900453774521402866498890988845862898119031254876117021119659983772321183844696450093152527524885944888637223741766760255770765440368049167572867629147540717853923292135611013841157347276288296910754081522041634384695013842963909599857501245422830620802752159351064500716330913612293413389313815715089033794139527149049736396395654243821446961290183864418727728697775926864658636497222287019289666049320611598200665969897662780507960304021087770178685693640801810992434252176960177504456663660254186550201839623908699295673722292085781763583028841233827524413794501850684412102136019036059581819194894841720671768381406417209995621648561841800383826169451352346933882727173045375718550190692523470262368445692720375634627967524023119995200328173988412016568559293668795763227953162293885845716219900611377679774684305511278503152087819307547586427081141119860577998735999939292916514766908917898170170626527893565105889161649576362160217490607133341000573872049819857163601774970068473409353228169823674109351907569738608178822375665531691238389300410155825628092407918960574579911951695703904721667516305929322041314722544832526244995631937661230882156094369248825526293367864760969653654549781834503496987890488558054837985063030439692478945213661791635719466195865024975704369633429866557088175963066893267371492708884380131130084064053778087034942762149723816838262907561521361009443365801318041110745276283271548855266690828801091458311155845019992236073728625633587684823941194558596110729566828553809233415936317398491831098552395559987420425015764375624371205318432005776151889164233372774255942120575304923826752688932348119545598095191270660307263010590697345618629778343379476525744976921885040000661064841410336354519057529653089079597407225947083336330498985016504437382352070584017362588314089412899263675143603613036761448253823875690743141931428798136952241982821272897133907732959706235411017157939683457414531936990382757832796653134596780138020884873157290708628134621628456320898383550390636848358486768250469428849445675271310431568229976720077536305665142162374137491031304399744336891067708380176624377843742443979395108101008224186103154004312668683191214138832809754157406672669861112808507586288112450973987772412112976384356804306790026195644085916471210496106218839834746396536358330202095239427246887168849410634846012415068231307700331461958541377904441241792958795546768077640023573586527326191620771403171597209681402482171464287488759430776389205950844934241148800745521777658402034824583681113743378437248282931862904860944678643341783535694246907137178139060796070047833309130406308416274265593677228943806250934032200419073353373825252259452712336132132048846693301094604598458796059979558282077862001244152144691875939563526856947721666813566487281589107668469548766748099274598343012162485473943800794135789462271156693454122529068967887077919332509541110745352345298961776869387549873664543700286431381840844381612651023303437274930009309794784888542839256540426946253221660544009902597481728322687242288370874434254896366405519658382223824528269770687986326656966350688102491049184894103841558413887878636574977540748797034206377972447920874419686395775363281852965298155597980096076283636646712028918381286359422255632583295514643882649878277830706388396999078462444247453370827554813734309127591567048126539407895722973829512491215386486613364236911573630941312090926212297439820739495984014107212807309929567206522416874380980396079285381795787622671204535803316193012551063031484498547729194043305639259289682776825148311218263928846543221599556218057420164194713105481374687353193703835832684540466251320383970132687033701006948507243164189325142330009006786687665468860979259512934211655823892334416833927309987450456119543767938780334648785753245914517491982968848364014576196658144422437790522869057427081231786316180915646109683488329260410826577967124634546948827567612151355573801030704208156204683015189320272612411092606968712216784551481974061125364821749339485436220702065639109826899119387773673631502246057636373507169981212603871625942890355096830519224581724574743431129729516158183157472304959739134580548642285714125435238086752437018471709532119848700456864972303443626726105655548820719943216861491815208712715846093477935081240813075598254235556975310689970469924565668851200405425992546078566534848723537974987810794630877324357296971090966991057773459800240283617503719371725279412447357955055114852425791793805256156237008203290493628245136488901351479595879854667882506003283906725085542685908816985585713607366978377423409787263818407645695752479096969779534669407435486865918860174214708274228158999949643008506275322551255106927837556179090596901888179380240949273752484853856903851619274872194364197843672277379192342907005900475096244857048935278803372441598783711189929927159927495314431540275955580006740610917671505204668922630248152919189899729528240179583998987028719089780754763060554495566237725355012705554648497580326922225371939712891625414925405552102033594142633998104245992392145482314969830558116886389844898610337029887945546598566518352585461973707241438168187543826783599946451173573389003490154349397302286486449967086988610744100275659557205650778249559782800988008665354129576672345936628330879594640800875462508952238811050338173116595160987529058028828662696381292396187764729631494585806680711855630126011045398615116452985508662031507800338093046311578988928975442151730580976325519485561434709757910194062995619544565212297840709703694114916204764148017099989852410402075785050163133577104116768564775160822577152857023187189065822884247283011564142982932974216928120403339078833262308474495381460610381697072541787872608599386261849590623827139544753017649150349685345857809209204426204570592636532623376644827269821968329956956056139139122689644066509274363316993969488848966212987025224714260403922791068809716204722685692959613653903079877957979714650548052795738218406638096181802620881234840139803193526406080673918558205475356426472374981247776210775204097269592152865276362509174849151094315009302883430396045128554119791993057027633767579476562561635269479030693296584933336571989647937945398050203951039940621532969692961439612998825789856602017582990455247233394570732445148021592984572642518033450651451505539763433430121726071633322996983818100878463073400888625781617480510725143757644111056905493166017711788663354658390545079092790085433051402007107912660049758572134247505667430444541475672802916554220787870509838268161589014795148443040752426628662435254622104433657293264162468952068360990548019498785926025437476482361884655571385062781526280935578734621758056003812767421998197488725001618769037716342184577521307293845199650623689589787291894406780122367086122515573918528327566712029955439472552804198260543731797892890894013625457012931147149249302577459826534381056993508293776425441883543205019216199069434268903010975043953209197974504912541394293137547854269375620371398940950215942802702809240045851462185839087698465208536580412073879228669461061556959269946309195095513037998732188058527387766835874286055257941785093839220465166353049435937012086230000222638218852905212841564966635621485507680643867627406913952146079372352248588953450922937830719245302179169890939544331199281325631797378347279138422802434177896393770516142600978576656113252199773991612555037432097488799279303884198039055606506617115485203128590141479220217615211726657133066738390583774562945141753000190918049999358822431763471999558366828268493720345847537784042601368282423339602948859508168884266511539743960305532529329157820584518630991569268294576014194336629738655048260457931566600295197064328266963129186805353722772629020143624699167180289201261165352797307642489334592247927317641614831811094156355211962676454715849844921078600919015113045744736375182447997831811977891584651315838068739630012461836045210285198469471381699978681481753343905099353262206953542703341597248630297299376911767599376784190559965442428857168921608423462989877960489595099493518817647889342721436161550361156298804433607206057294849370878414641112955475171063198854624739952155282328900898847154912444782245689364388317485555839347188157080647046365690220247455647320846782842980141318115759704475128245357631075668950471365693147674469543598148645184862946379666949938087068596697451474931050008212372359463623526544138365335270223075890825567572727553809830037529537935744268140857597422672789767738681011638110554318121206710677028597101801034804042407241010249140833833141838874545400687832820072033270468021454772311581208396917812574519951824165366054806687704902856918805393200965094897399437711054635416593192593750182046852213909045719985380331013005626301166554651412237745549268886455876524469082421419984526177779155301736549862319759429148397758858772351499227894484319714631396238153607129211761291034535345476882327800599892234679028424968830674333355342860291080572940190590569073264745301316870338842105995313840196481998836906711086702729864092316221906155401392069995619984477978496035053763081703506343483715200025658632376432202992246367060506757382345912590175449404412266237554805702547667506046623571427543346427120606372911245779903405602977287894172121650713429147461987458775006361019236193694313846303448573661959660190795024958012568901907112106560984037841268032606319549814959001616318802235812475969573708615823336349370791123974439244150932697906254555012404724715509788879641262194031003757624693254146169511056530955082933107010663298542668043606671981835589395560556448625206603814376283890009270094985281060069856233359331415459111732088153767982690921706254516848468562313916835290720136120861707244672151400854383414417903682840087707049647895746139502368245634046278063502177906837039112859529973169588581808241560741082573740711950681577123982416295515470261862171421058974911835960373838953084229408565343964058403483352916420708378408301533375211541549715146301223861754353162200248140441617374095571757955628559605538225705802626333411523730437958923388834240480715778066378736654349052195350192444477526944617711796270324110095214802003171315568182326095634866479972810025310526053783166736486134650480617597688504966216176263055367696356031865507636472068470083652853213000690785116174287220928662880146925137686803923624271574657372608247671649589726238509991839133842341081421682852593981483002802089547370089584807023082022125415149167043987924675680388930861989480336606911808940537599473623335408055409541132826913189971297283100969817305237769349499507540206948982540179273156741385989055591028686968209614390865085632805840665013887204412887036803061636607641173169917227299381234428969807030087493284945291376161005426173441347341287755349893896593317304620906725848043152660759351479138103919714948192882946927981305716613613201496678280260534382099899426354608643018305545038474608513592644483786955760702289523395988084701345679569559640641801042165051705385937200464252643810379182707115269634036523213490192092805959458450894465370029245524255189319167040763197142068295758681772142911757718046991745511021284831728027837647652666897256786375054381913602955233161457212518850365984677223005672656163065558625327176933529509070747444131777914896722517271382999633776141515929458450973208491424954603410622140612332693937149405794994957073162426916782823186337190480853120007260409163729369413140586362446068638979393069244937872011974123655734787180126413198142043913662982950047608240455013305066809531524334003088093372294838331504088360959068961279382867299034226160571301417284591107026610533236568811913727052945408667110643048581208125589336776851838707268204676014751697694854449738973028927113711493454776395242039910131066090621671454518973667165726902244969618902051972435364109286845930045226131751341061055937402719791899156466597566942791265169210479479330658810497529068221757052265025070646807635686265468688692382563631814818879834846928329259460238317210336392926004014602358142738378751174102092731593838808840118718938673714023708104458855105619273258214101144717440448645684899755983376814999039450982363137204064864926974381521418171878782407700577079332705444632437773056222078028752710582857400233514493668334601263567980656248444807120515546011308667171405511868621294806373682948718442752349163951337165291663777925356383257586754824286985545769538245193718182409107497429672001228813846668454725167905748457488397978098967889741763623514385063892390969156172571192551203324303259708623898324864745553315733108098116702354991315049175187208742013606573528959492732078601707580620378660827416039448886058664824037071578939292062516993140463580995420564981967035906378120080439051190504907001303798867092090368305002140065880738258695997617479407279798171690221955041151256353872612832082936570389129327351353429443052795806345013966201817013844645925424206367249107187001777304571876643218936949305413919419212543501128973587240495299527793353969481090001571777558630116530216990239345040318188027200663303574494067090858508262896384139775663701603287116948745516541072129083694509373014056628995851695394636719043657942601917724029437771838586984810696791007248124605582457515968326439070135598757222342760684230788205676298094323906709693086118468650895664614513968221145422664076526880107738198492299501394231136182360619185674854567159075656618579311519747008133717027339687744497090147664469586838805946416018044781485661995054591607081460899417801946335970984570855619388324272049847012366576225579842739911629364592109989625094867942324288065586066148607466740297587938003389349885331499417502550912639309748639358109499298823962026546619183348529053552695038925859186426352595327185166254688149418218649248068988033364006146650098299113358566909473961135416135666304393962698582273779451700427814518977872828775708948079847441870747582258091356604645222878011410467839247457388920757713134569500912761400705435489888967333154664674870547472609944491801373294397147204634788662249535702720462446508449223227387237834647273235051518728556097891242156881775647686501311932611022808431649689333277698470740241813169474527303290196899309615965504105727583330401653174753933273591403371814803083515149791535350929147861165145316969412473148268394648197315282790937745558264545841880839263022754564330651430228572179307288947718105536757667568562011604609250015519944123682040725869332311639644107450981360293992890793632033908505662054924865661609021070247639795964843738041110760670087145180786295852010166338296085789238577854019008954963660282836445775603036392225552473869423641114956390854442410600452476198538855266563057040191104148568276733423995399358040357488673400139341741124016716219087489749032476519361655559853330523455629016626678649671975111953951622466876519572473608347529028751243880307350309710613271960939996860726513415730546068586945371312951042180805975611258980295593413208508024132249923582361479763891496143595348633741600331401938367540471341809223877172979315332740872182125449632192794395316575454327065653210270407808318722521868526973498840595966020537356433587136812961522474304700517695284220012567011178043866566186832201908220485766348600753456077086407620692548495747218111382371524868067268875221357125136447582239860033983981453658936403818598664808956861569906392329826728007900022947530658010511656319296713801510680511041603063709973344195824271935227796756916628631852625163262802606788714655838717640199952523235041284740276937286838039376214853661986950146875883452335790135720316941133708134536331411404913791169273912162532347377688018756588383862220941257394405841490986517130706216295124909372883115677716183006316675955942920698391584427174762901571758000849299067181864946888907519831874690429156357531545325217789700612048360902126258455608663979108805358640627267640767892374115782182293793648417808206835001102907338027410987075995498269102763735918304036463862303212828728033784651881017824993624272726878823063592508415561772485719725333707385327204481467849681560803213905723815958444310400570207576723290210509941954899168552282936040659468067138927163228041533572886795504294009735098041749389535285788767436734325761773308972521647731702569267709509960864132288575199866330025235114615179557614355197505494600906634021446496657367852997251166023661489277992186301648862788989136948672416597186401659203402535074195051798486248052373859759194521031044065601616642851873595210472045369636636709741463425324609380227854775136763322647970233306748977933582834860708838428665772863108245196180021766408981740664111231603308064576523343519635160735129445529968294965076719622056415545271334745363238657469964393354227505012470463913120591527280399575627249762554239477401200034812181676437414944480182468930900984800437157034615528530258536878660429255867420693045323410925027020506174204283436704069076588156999353201402705150606566098962331363865360620315625809640288440169414860429279223385326145854859086310127271152831409725720767507588736520365221311065214175766014572915391828806354728668790334245350612261351026433039903377403928559481298937385734861314201208769847428569993471023895784522928393039781379193769896179709597999369575656536402216429938269200946190927750681538998824898064311769095512730282590227316471359585440467214705346629968938420182933718072944649017912905665923633969723940900536196976788915242899354259488102717358737003046739688912851501902298489499441634404799648396827245458499601195924694486161993927112186948797500807870511193048931915769153070933389212108448129313905416365344104544673017955257713376671138338128556937761367078948114499941861841039305297188089550224516018815200045073942008898875158604769763891009885626088576455494527641845989510822914296024192543943010267232910452387209333905666267407083856074732023123568780203359729175874540888133890176566609272043146556996766695085951413705460362885039894791346399729344171747508770187118427522720507962448596871580501695616713948353122121240743803137302274797599752635049757213827073627624168380882049172865098605774015967941114621928991224155514313560648780001974792974243218236844771676494173808238989338051951294271924515190266876906899626890810460696553448336417910663959428259332037234960219934430953601958930126568357961952357031897931534137421933352197119548097998353968568338441722133618973924926452942840101339361964611281924624360134532438565428030024921216199301277006952651942294431430090694278321534998506328997798293308739864675881956021755968383460611714311108667485204800840366697676767599858963742603290866402768328290989501338513012000180742286139230320128345467747835298825962247664486426753098976424954092003865885115428319562914318637377905907855963799138585696839855324460793883270433944185622082623286510133881828129942873603287803135744717709100655061597312839256933377419572716814202027633675143498997118516270962527962330254245952598111117249697216849929380627233843736340203083940722868964733582696912033398837614823326370579439781926358956921831842512969452679304307618987823372156412529685133027905545499364028438356598241354315640301258623566330919938735060224809330456593413172934666144405118184748237638293146774842402289294630019931775507107321427876961002915314925176005699881091091291540614182969532221947698195878962052978521466230628417517424851211630600215635888269237777752125846057013206050002340872943824946269570134740820983313658792571423720262484389956470984121576078162834142248363221270150463299748238410886377773024912240608324634957184050033106447503676378830428618363681647381443369947882811390053128548788727534713747075386446809039742402873372104218429735484404018574014230365429075983017679525526688213077016993046376903722493250600777799359980100196865341385171431790302638384335313777991757504516837104308643397172455097243079189700651235261612466638877270738250404968879720442773857189605143021659595613924753031568146002372789514549973229770396965131232116476909927362338916268834518454456982900582150985452180620953668326320385468165428878940807480897268539185163254370097624371612186909500711645637330158484261797102815084947092463177461058182112354534943789511794256646115340571903490803268899579916090887380112694449622443060761390767525214725928144532686422709595016373746119136557287296961992797913508424188619734647469430530151857796334076910292818973720189176305815427162155930185126262377802324061287476663551866470821902682530455478007805758695125535602988945842717732522675964246872904237887651356110792819997369632990944112525360377101312020384629184510167822430411902542392583567005799570457371857599702843517478085415512270676114535473489115979440004285061007227147380322964393492803541023924569409938721123353425370421102524219632643783642020756668568285464490829591082906494278129368597561906277311298745458798763072191531359818149828766950182726762259493818904884478246553065164696796263302813979350198607070593227008061163049226884918810986422778836088785476104219716637498722863067456381496431803121372346834710634200376085064276452706090517923190709112353449317401341256943696417253498618967507520923280663066083593828999382027276502188057201508214714581663911962331373914759662333233130642569413000940761518643780870748820603896105674946018284364245882664510076078549821748341887833219162708448233001203447304282809230714624397708188420410967251499315796013619823404106500348424661608225654988318415319788126388621350714886114288714497789103400196948806006527629006734758953716509066984470568106279448781183447988819925140606409921734818175199956047501585636034050272744708576943046602134542086812437326951995899376970458860273619038517452073964721612001189410848790511521246707191263206843404107196098843562166380042458963864272449889934261457642046130221583247404747180578446713771849686539900062305908031011194781920828576181020248129269464353524874166063993985107743972594340844016503222775983211725928034338221543764714473422545547760397834591566196556739900858710358271557486728289580570253942374425464461993800764050289876974554237139951501461511025884394752147164511513762518250378842508307278764421210368988257279596054575509423714310409691999653115156238625450781175031162284598456574561072542578427093083325187701717814402421820529125093460675932347190331752303973113455549574289722122467268654621781826820570018285514636992226832617452842555087776176717229718485287069522011392629443959115260826577500267883883114040685005199090050202385834086740567056008444656583592576785201575011330366131698249115868978563165515266172758052980997788041448247909789876936296229298034948769747636919839673939125820323455550012364765143667424724722582725414518112674224281182461042954553220038733203289873976207186282006533036290604649360274493742360857002655089517955407472955333725312314523437444206492294466447306355445734112891729493301808689614407391396620239154835008670036397372353528813566573721534589260584524550356399563350851569304072446398561964787640541362860469749589417605999448641814555754297353114016746416600290845660205775913328113324452729588780252531444923199392678429071612253391714013342907814285080622850068728978949507296554741189770484731012521963329986674789140450614095803772784113308017686676246726270689857587227216000030437362869503496532257943244363684664769065795344137973608750669704243899275074530325594431988650379638045663751114208474200672683189745095526920645509474035709312447541686944487549744773032016620348365222717552539307738653209857754586269937964213082887332290941880019631781950422658373190709047808585324260233860597261121266451887447988305119685141608089506651572186980962170365210614438341294712995554650629067660676755111094934225676893949052175966803138762247217933071172669740015935871248926671512849008822988771860009120092784896599756086528166276906536981041165482578356307815636568985481264269926674345269914615446578738043831387694746682563761193309359140685860350684707468863550453101132916682032509843090238908591878953815081356495990266502648736936263332073343912503808080584633452851592169068140188372865462275849235257460740367219653080919074214950281869179318918182850201418369088992508073930277651088663238748857885579360991017761937171923972016855614559770123405631695704504324248781915594051414243345129279219649890660387317108668830193554887787221855245850663265940782034506757682886047225324346136802786564691292464613522958365574054405291727265843631746689099526267760989551206474855928277325531833286466193509564591933324978485147600983306081626637527864244950776426403589462369539816793172139327492679583238203993172348835366374584583151796748923066897898284661925604118268137269699995061282305724044248884207335218276472122098331124307965889777459108461842151250313240183031384801392066567108959162521531266499727076522708934140619124568941853152987016817226784255164420808594256542957036997281274266504837208074115841157964537006160197500016771800345472301264939143218505828152303813790897709819109738469834985825589708806415187459387805644930472516180212205847729023484345557057940358042063087549012590660305479448745079800059358631634962021021238598610233353865054205983326444825114299885694454786069892842485572764975570652030010453464828374861856725166612310768959057259985901112140510813411323117239150151912004167491378251407334908872975478374437994741349628171101020935688754573037823584685412983224847899911000811645681643365260970406302618443209347818806693415344694383317224172287108873104457893129200037155509703463085597410286902972841046004806326978463151371823603232661194877337691527012146117428219009887764922486821045843788968684856953858885100370420789129751229776153672773128102807477163748007617209479435788287770905494458366314997565937344078648911400155859849157264707667017409005597759799541893693429863873143883713645921197434937664738730514257825264348269734893604101483779712341295652376021901027196086463337658757375647774629233917798292824206873069317076043509672198849419470034067479453266417202079617900807717721151757516718932234339985271101792417985270176841391546848877161924375580057170293300866560083415709533825964565861082799779018321790035801008662971280073093702748759235851256930339633745445213434498945364816398122372301446908346311665382633841959631048214852714165061911863233016712296992170395626111690414163009271311220403437549126099082099325096189221970893119546130785696686444963741997340749394148734552703850533771963357486124597078106444751169442703010380265229792433353191083720605961450671008273136638060808388251070550853765201586288119021020937054823474349015437215818811731005717830634377016861378690414569590428218065530188808775642043568281225791837123322778351533143836729011534682698459590399976885176207453232697253256177498623443089682493623497883836995677023880093396516076843333573307092346198770065618693232299867551367815699445008804850353693278445076664701716614159835903543406616717079276022302157668462630646342667619409378893821714360690917589202265641960767713254123807526109392559532559795302591787463009036757804578167854493775571861654913542631584437317975039724532017839100424224918768606330092901240808439572776021167017723903302822450371008225921953795591478916667905004683771015237261455947535806107562942394030461536774688225645227441042078896408791548954605250591273125504313599138344742199153464105433032373747429997015341256663256533956713778985306347366770232316118218765514958823711881531996770964287621769529302821012692340233213894048170793904531470780101916117199076920537339500237066182268588049352981237782444428787063872211985769812664865703135902897278325473074695214808142380951414987239852183123571166890209136507542844382531453504324960878289858506537660247580979036965318636452725893644639342399021386409499529495981935473894456156461129710094518242756092731742553532792422138939532333305265253960869158002534353152228735645537223946917495917620097414583140732998999061538488019194806204425792509472044472187357540029174902183769740697469631438240061998501498295914292699768878803480303642802580734547696279995031141395889263957784505586190762348602844098103664474104748650408101931983088162066702315050229625614801397443447425245501528540311028126339583065593033783084853281732327742362862005887409430534959901267727422124333833599450114900744703134615997740801149163365059673088191149497361540771445362124076241525025487463452423494462602992816191207515011839258174005159435234102675485790771926819891215395304700368377465848394025365995446607526791662298184081395630970235216837986826937573947282218049223165999621982156320839960851533621001516233142533485825656511608962824491363267538634567174174080015199371150678041600631353037217024374614150322052812136442464617968519839573435298010162884688940576196570445320487677463792511741859737291492697012308967362870836854244771062019375451202828157246382152838101279395059090279314972156798473553004288558727575748788846773862229278523477939229713319675989194896901771063639514317068745829523385743215478080802151623975615041738657220163057661521108472712117006925392629310936719540199099708411129253796666498715689991589656913145147474209457938435775645209050502882401411152776207569721920110804703100457298667152763065737625980884945461059812011585956147554599568588893352343156717364562539073635112823574124237550050152330675234751927611108802048057716632150919293747581836224369697350912780067342486524817218405177838294378799687147580940508959244641319665699143131739945359417592783794314221597349320014142676313760174260995643259075407208796148794198947272014344209524730967819809601362130811384860156502876327439079114082967906210567906349238808058251044789318004865474513434513757083490249334233097448972278837338673734384381216858526867386455314877206482074029143843753639633720311325832317888748908545493329802532479449575986201229610074835491757180438138612525969207701637016972444333463704199884009038014964051456654714492338758649890976973707905052742989580343042412299194827378687608628028263428013683259905986913395540384123183706099721477626462860538074797082092492103129412841005483106953603327147838511570953732750377491029321588712709952808887686340319214534628088716365780997881878897117141797223089488128689113745515393190791103910248844360028088992457317113856760171086593649687526471335090996446519853066088885282556469746684215299205583640486952083604184100162330994750795490674156807588986940859969100130530660071734766438849358369745401909643808227704147388001948239004376230310087239009191641931931228186817005068760154432764162175336590704240471276144987015828702324557528770571647302690452156530185191466349040875785071743683912700107929295800844216630488590679933064908419242208371326238100389509562500088804268055163581991164309790706846058411300602878793520204643797300790189984660127788224501713218621795489552964705123536282843497116892762660511365764485330300356735173593222469924322015450031444545692505274828218963550915380860783584001977748860203499321851713021643413364182661796841736849858306929995051009334832970714693916279743099062174535446039951672512385783399971353689737304329052258462237460784932395047341374129782048202993103348321442684762748923588291766670064478583471886912688023744389633072798955241703163409177616280170834872561681340977583304297049315630070628051211350953503893664038026419760147541293810085747660295314238699966962312130478858591711512659636008259848083980037467847431427672769333105764653531281491186269505066422370372431413076736062827579694720609294648085818535349108488431574607349792235552979315457264583883561942958330145172503246392883884867115504517041254188316117522981485047227073615639273027994871402857803334125044232895666868720736263996773945000332056773397135423326882258590892715231479682525201996767501585233644982651824798297628374601998488378947436958170504410257184402129358223005563476952939804413513901950366522647922378409490939418197091079804675369208748521747543861006936719382884379126896578705774969174700664598154789517212767455012735118004467769010517267047003966222253426529680830587415384923356529171834782299071271378028548832021898467090809278265957301637947726487005103999651978799054078555395954147998642849278535565219013014609536121573398867600513328417059221122048051596470137426188047569778198212580832052706490965869239122277878237697471597911568458788637188952507434072968770454869298988023603266004711986074918442865416885655498258178097733509179665982000719699180311998077095534997131835885538220598737447215968758774589706492444358133821946013829033647856226645260294101620512761208494620457056184975174749718802847117042906194246775265903721763396096565485677314130791858875268446444726280447805669656039935820803199457645676688906788081715540126139304000722953815367193822247489127356403141788054311110268073133483002508581335760042625916036879071916664193522082477645831261991381960062462628443500759538016093415998541265268860307925795150934121586221561886789864782011130770747788137012883211984389541655782908737431405398828770692462115756296365216311955962736408155785318150196525668578976565306032047361642708688582822868556824793759437023518243515255132318757092855579174097008957599718539762829304636593814252011145697946498143618314575523408800819572699238943597770502052972925899781175447139877481399725640352480495299477707232024749836901170860925628803220250646888677530477079145372768054664951584152872575746340835311672474120628733997175026885265909223349682202507232145217514244480279073709655016203130270797982310057657504913017539633540978505295523808583024693193280290973665298540461516600933675266500943637410975979443436237228426949440435315361913026043417331521087186857644911390814668914702273044091334939019107062904518140398028348776483269031719471686465064347275242190185681736827767359387040149006702870472665032198580712788403773967189023499798209478255582632366367484187831403838558161193660428845118331861261441389475786579538764262760846916450220330477659883179661530706458050056706528963872903582307564822363901131212584178133214615248842936162513051653584992742242825828781656852910776444434521173828202918043137504134952478230573547819174903739242936740978975354091163509788573541345565422073400696256564502743550291332932379183571094971115326205004648572210523815666307596636962753559677328595026370567560455207334393874451055932352665312611166404353084492555398951109561240976088312616315495711692150157086736193815984781117707216411020661725626736227292727814363373368223972792737115243342768727443705192352926484330112531318233677612701118098601221060535207930350214937613250054285232579893633571686760178777175225948326797720466594912899366549790331534139757019118152307965021741031613920161186064649616312184295328835667065506244268111097769578768576863587551311660358103168034262723257094251249966382075870601823990687099414913666316519238748308245480357059379377362251424949950734511065450814000919124259269931578619186438498393442487781731280269157041553243959883497134087494599653374210555648506907517063446215973910357057188697596959012278015223877868013718757728393824744308931639866962775410139520930466431931418750607314188929896351956839747489857729776015910891576587474393051467554963856460448097728682719862253425342695684015959702139484977466085361353277791124793751405145939701375063224305784166690071073470558037065576975550353736425410744716982332048345905546138238797284501374976736507045305250922079331338684982479909437786224772100216479128399879199055094288627681917547998740555965169527613989486598936633561661768716247890230573714354932336551596066813001155475924752014245351586540691748249818390179487308572244733891265804515964148489343344485920263750472514113535389102206830920767922371953475914123259570700008880860988400433783981598520970727614351491621372778123230882180727522909158564277162265740801304809655524316881290793753723124693298931025859960553658084359238667977232152113744286503521008099924987981632080489354743523095141229477761032444758227093391224220987378950510203640151134139703607988903799476941313494866404413497052900633044986969725394845966614885597509309119876292719461140962182518383626296539456672146760202029348179263387730013587942668710461105688987202746263214202438846097017861001311484979937134103881492231731703813343723080504909394618578074260643614973563144553639996309747903313480862794406189324085070131804696191158120564444093085513061824910964502247018538520598460881843990566856844755213759813185417825920340388485166197403603603534086030871327894338849332771534596242849527798690175964523421321035681502385660028710702110288606343028927622747625412211065340699221321045115434833457451324061965530043260789034714205359774213754157721984737682649902285553343504995813055375409871234447852519815455520410038831575234115317055606993322112236283189712499562706440550322523324617616314407762625278630036497306362377089549238478765454694758059696988374729169407141273678754139017262392648912614603075217718161112767685572799835693887491148012455698029199501338114329662722633860130005177351538201783415710712529656420277474738581947182246813546124234607784176091022411483338549462723764708744027665040070309114675998998232098159129766646130756809144455008155853888603302810823234805457850477422029319337779089140230440611866151804997982850309921117194275873180893039747976043869520465506210109918186502278110394695548212437030314972989900218704509866810825035233331827234444870108740467140149841152962155363488063497023705126086011267824913394401192651497350163725657711385388944778965122743549520520096436013974920134268145850261297913267634507270340776774839189444492438254949674593257386877834764655225812538833390928167382260210128429101506183943642120779117531523577244073388808816203244782048567301857646392230428737385316294918255513128022301094842315705927995938710207389519947046603239956238317319719662389414212888930313786017379185525355465227289786389436928127717333221295677803024977838907222563837078990635740586527188034592086474142422088087313832280180203394606606719198118179028185327180344306237087304778662946801316553055402511759487875575413728156945089411684444240282835820564110443819340803524906257611851642274992853022875403524072447711850361458792094143103725510745679276154259034733878354141672706515509565892276161034895016003556947429227020072194855862181660246217165747473966954494506125740725037453512933177011740089495600182129261046098446101800088585232967059616673930915502644183483226388388524433932819598983420203249286861911052155103216853000301127850453758635727540093234542324323150746761354828847127538947637688288995449649093130580007807824067071189389622129987516302518757103510199048576366662902618990600496024513903510936475907632318555862178376738328405062162069284520194166670824824670931763813812044081101235734790378749877367410089732704500650685759619959915953797272276924404152580649411216364263549626420999270508767256225365441077927059131984808181272911238482958993918358438501964640148818497960217545798256148315585158972994501361551858775470526710324953813503123589120675028822462679077944759345091433640605166266517365772036773131517931746795425650396012331441547146623264831510487323783757370285059301503865351901843153676504174397570240904362690823884883207356028920870811628255731676363775992908600454867319306390046539518832339015606494244658340486149456833278806251408644725957035068969709868871847471535035767187269377399583641571443651773752791215710272783559357263836133024475696747911771853159437388076958506365432431852577555242772845235181567851867931823794095350345331708281396913266356220348409756688528942514480514500593855893226830376316001920924396691021507941689938609451922467866740147866870513268295666767893490309236826358773363440612808760546672378103037544761132732003959486828003038385414240532471819879553520595416585155337404661339094605487205293168616812429424010895835216862889658695276626241564914462593302603572630913605018017642840551678254482479980935978078272351147763498824275670093398232077817014904607277807325532245087826954291673641469103775075459810967256355181913181919282184030489704469679909640821800292555877592751216670360364835464863182111048695053461267895026581141769675441023630158205562317384818641070399770840446612318274650683475179956778925056652087828599309577256066538725170811035328673835057169039444851158054415468682748514186760258506055331595449644040071310382907068993115580239545528347978627575506555700327793493608355044497864842584786529116229015676476712173989616927793643289148711531855215372019073014132773343832743208501469410763627178752038531667310367891542059772045032698299144802931261182082114609461479902463031619841960037740195240007889488900428234294746090249992824717550537903255522847914531872443322275712813062048453923540187360851734981789954839382162172323974674374300194269365035821188199474774644739331977753469642681070950539864531261767831542744127502893761061795923765842100474995680731369728483122656667978161353951424657641879672772479432800103507207696276650010639723139337607857773607486468725905911316800936928484244160775194848808278234100834587764276179902845641144209062296287501712556842769791746270960039232958606969040464290353156844835570418541609121314110341599338923160003264684222529021901295297530447283837653682302487496159752538857747102740460497578877213221505406097765193320407069256236711330704883295030121405702536506942820369668418679915992222758553900229469699212840620023908302675968480219972549539628534868572067343338651986642916906951506193999995539463351416430371926422982729627015363068007068912707804999162822655607824720794395448593579903568864944583648482922023065736454220206539254590177531289838208676399564116059968017590983731634343367701898058094004832735145358365813548902233349261031462166842434346941227041858543153363903629832512240188910101591461345562281030939800587664266483397040481262694465824766782849632459467668209786114584055954276891357473231330876125521035863491590214302572297091854813709782160393022195414445688836384096055538591269858275209595770214165427727851098138968913144011707705854669494758583965426469545018683065763751531858735869476928224760069149533677547576582843445634898143029642008206510832458256286076938428025120555675243073049610441851029016335426831515018559235577265579404596792841600537957439599344430416236700017078526929306154601286676109538824067621167488790577097546684624651536375637269449067557720067079971908429708693200447642895521965279306290001528833636231812683800188283718631218412189599164720272710966256833812749066879701457632366687268000973635555491387135856028225624525888469127789236565200112520195986072014861724999411196521871288943101174963828156407104821051415756943410249374152277635739221533681371919672461732477518141339437030710630294193891342401215259294189577048832559792901142869142055575892785901946484412568294798149365157199825413468287706688811582972614753537954820488129271471132813758539402878814620581793866811832443776120156226806058274736685668736987684271445245193938091613464665925537356456260115102069520312327638427789965485153079525648494823770199487271366082407374625131340930986500032243931697288442562794653504280728103994783332300156925108731987022827505981892079087720220040502326118160444783488753450147275393410584894721200139331154988580273191147792157819256983727942217423480326668132219816738727013792801187380249110168752442040706430324691862503189224246672460000717596668700386387509546744991302843259732709747886828845804030007075852866376275374772077269502341552764161704624013415809392879657786626563554542171871708902074383731331596674103418149436030758160096611308539604573213267415282187814674843250599524162891498015552966510993819915451187078340157819927517819304365637012852972988053393834281353001889567622224686485546302814365056300113761762727921325947401635797918461197062304368104612926923101404761858489735156658800056175311467434847427072240159761327697750292085863771535222290716802884317352940684381150682291563038031736317732308403471063346756957219858096060261354613384132860851118820611209509541798131900098824808273769006512388272666031978301402494799575620905354504068699524459224040576566804368419392351738519607940341530726686372632164433493307025464234580749538186019672632245158192055054813529163680818154610214283622069686103528306320996327898257549188931525109955582072141602983413494591646967529291493444182148704658170599776225898281309748310107305446107103338438869298937411367722182580089532793895141587262969178137447941347389429297199169378149158532363516376289575724808616535825938272449824818661985463869819759752794753922482347736030481564057529672816785872124645089302120215011670708039799702144453106686897309246868046932174550557644661100249078790525963148088340808014491321303465600596490254059577455920509719116648864451384376286779877466939348389483553031435735588882037657186445539687415644229125312585531869494440215907082724876538237267355646143832771048822281439601773876557391233221941807638762818009439984531774124825988137531562373324634779201446271485323108239460589597765107625829987513962194257997008049987385285221813095197156404263185547275211287940083869070094444262498410190716705270793584708024231834583696182112439633795210647183281086835835289789952358514728093008741410794119746800090764373410796346727885691391655893024757428756783530252712470650767603838247640833900932203076178833631393849679352129556403473180782511983971791073079723915233726533328720002464965258939645175520349071790875392773240055546647960623543954140779573150191068025526585672023135759802008291662234699119576327570249244943115886256838777583070693477183582210307913744444670517678748044982924692616912393632868433231768195274578236092568587081838472429920833902615184161272146551280951123994966957698250800339508805128995394367283951278785041885086370705889569511279402822869016805661444246905871055855884458731116663908807495127050112263005465024024275531354740959760420794498956555232664021352563701141555614882810215572401534382576893491593712644786311931767274010505725722879993041515358629649327562379659407251506066281237989889938090795795754290231639663918074806729499175386164260789600601006292352624289202468559497279310020638572403670350246079854906463879713607214911448977651473713572977103144367896373169758722647861364914396578361242997653169162041681509508280683604267463991263874538705111747947462471362238924851949099232928462102966441961313676250370009051402966983545816635988556276332309468313761502415522983208163567274351173547710883125533983154025819146305914799831240798792757193517314510516808191086912841394425321910681081386330587114263311485775792340939921398617351765945325491380658684248780763636241343240265432628768365149071546806961675343688375396766548671825749762506467033485428287567352632855405268617882421065109021078130899945681982922384103379094454060842316566425437474491380396517446375799631711636999160132208801108709843904078912603590149185444527045031762101503021374622874587311298970775164950981058865708455286071864510695000594717725768944202996261749718278684362285413166589834469887205119946342183134587022211710812344843501935641266755937780453149594980676361879484184193981724416374031516127856746299498082344789956265075081074374840830255217145736172544155611840460726809619900455521030856199630273331133544554472447801919907851560227261609585711336470982348196617790569046549728940711579426039172646118080780005371328119466664804935637695276152369059096750094612266791665655642728498560728695549456675459402754010458653409240460770156526782120173567713239102420655373083256406620182915473269141943394642906442135715784886251863574022486835370704748322673566506764593816527591723926718935970248417002515102620754823173429335459453984443168837338250164041992531389629391495262998516745500050795423069926937441736518786664463322518616652706245426471992379063038830064747927924995085191675799253057865961793450779569747247386491823999650782738563275651577654745674269964830165289761571809537063157583225192017894879342291059152825035429917735560005066284898740144030458383833492815135577906589448120178585494114435576986363019680004679424001053702056273843025276528431881357225525535862335940444074924898737484262268356199172212886032123361889563896593905367503588513667606988406673174397259120302699275593367254362398088082165464549023894571314136930963947685514452774510930606733226765563118321064364631527008018284332355696976156813639482915403763737964611865434584792853992264990964526845424686220648131029104601973027458669074903099243944587219559440130409451054773318140066200103332101260685611471668083006366170131452035738870545987460265522204949686937386663276007748878589454513085649036519939918724127484886225592358609598679979068993133024969845356610159243718181096739071509227727281037657226309132010514721934135358344461223687356163851598091468861969208372449626312724570823896177150382183821171293652493553952444139726603310922560283389205451865001859956421458376381063253702459584793557593547157270877274939008141742140787574486785034640119716665218870596224446983671645371369694629172115511043255110607948537552021608864388169352486515266559254915743462596481970778061569878187831637845319037295545531658063824437452757823171833761023000987022363988884898486933659458864336567548755453377479281532570386009517654597897211869097248018546524520806955613189578111284314340899152195364103806774249608860330806257166022452369396813036888854846282199600833355998973842795045661440073744588466335472259902996378708962221253808043051670649135761117612021285619170949289913217405455876307048977384831004988684838536644167540938927622676865798017872186010825651327698022868711964439972246944080720083615010663603085988252581370064417669150083218511807363980787047473434376500035624118567469221499950670703383793630586967444435454630859122925769026961686245434724382524467259933097835309006477550017206948858983935765012521218454436273832565782052277090198590378019529657394116978825187964101288087772808162092225717334499169622763079653367390786499840369588522654772738901475498036170701034429337950492965217119023313760172770083449566643133318765080447104269989934881225349682061098945852030788202086900856625809111248337856639892949067013174756093595793178540143585718008465607337384257629164620652509475729501466719484460520820728356490903066482215160396666948839297848666479368239853064068141735980470655762611027163646227562330427624215689056960440426882821330732021873927391172262621554448838210339266808815630491672553884569058401449166028470374818481782336484527554579832131776721943885927062686465995422703493179306458193899626516327151716888628362092730170717243519262210829553657374505037175346162962403871061935277065866934084236648409605610117014273465717027632041247107962251317131906705239800159757703751047734570476419897329170971797352011854838220735786427544178863249004594151596616666265831398801445451853446239754542690499333173623201893777543383586055294242917228153822451045949277616168473315048111567731388297124560512981236754196176733647497497365191053521667385507627703269040729880373181761816886013045589087185146835070148547603129298102328999473137081107606247664760208798326465312598073238981005397788812003713552994981209709570475442337999408007861510310278300140291251560154397615061967547458450198505377222415253303531948943087811315891259544573050772367937106108345011391830760708252678820532260790201540986086635288511733017658080045086071137772837061989888205413181722930760978335480276013502769151599837088532616845513477698732261155135772131813427967696182843972192561585574648141828901196393872160281047398594651011211607367121799171339610241235915646382258185252339901406008002752612941955017734955071707120328935270067695752729906390829223882338309309373274127046560893018931058270851923904597895636393556239000230062757748461831450420650641808543598438381039959417916988503577104621111106473520367942170394645757328461661642336201687299621574906175994351386433345520670329098361938922312843944326027314682615920966018877631658112472525256550520673807117783378558816786064546657706415566712421684027957035329991016537665326239267603875528581744883905514347053978047851551595508905920617349582452339020143825697009317828289699243892484713366443904659224607184669612300870280961377381140146342498637020066227297451893904125209651535907029784430586198824286617535403680234829565749458081690811436688358706794370583911616843779241861729609182310589373007067859927230007623343018577041787386026492195208056252795118662760656634682385336709987747549273784966499940039942739579879977638565102762193507912511323132819619453630042378233614869716216235890507714206101527358142019474939822902011091646806835581517719614086091950114342408571084009235123212281022611257178108656767444429669330748011655992154893952022641101685727103648978456675887675785984517522618855443016682705754961881043955930078594187087987791665614352857762050570687207781665613708785844810550015852322882010660862292055875164235276071057165880303472639372438044028699165052576379299847893047891236324528787221545095549915802837291450710323639663076659710993734289138434812783925632822096749150591038843432825120656314572647286754833709857053071422439748481176053786679879159831809081573010766258601144237736408714082174183876941873622097558815558390492703291190513663466230039083071095469432758795183446835976673973367668895979122553210860913475282812049176967750287101072068466967522307348371248078792167373463641464591308882096031454391100715753514280170302053169756527205128593771968719716972523475829372811243501185960188122881004230733980404428466741285333906710498966272582585535723819433237060615190152506891976155111883833347786069762480458623668206428348862196937099476256926391641609014813764010286276865512069256209872098774401353125285553249512719219348504074158365542680435510227606197351475995735821841647342442934303792000489449778299323411818003623789692037910851415569381490288687515143691154520182023453768265847184822430255106088425192373152121991491380448225192897463687687937361922858754508504747668600899875383930267390372309534923803954260138964382954042172492599463507910655271496381695752926083784454172512992817188064703833003289579299559756673453131778410635260816873932152097634484808344253347612428956880281741920372100815973461311440462667743133322742554353610097188940451625396702662192989116011260350787581773915048374283292398245903998037430504010910712221499788832362224178557007744413556428853892596170510479396703340770672094929973781780165886821800619694712755741389175276404639794132873636496059531305638234162548739708778746526755698264651873171856418796266544732857619027469626317322012216330100756955533271243969553316722468802797868123652355471635763559856775002018774898696686694411459687939602489154921101095176285726420519585918307238826306250515229523541319036122936144732988304180250744373291290934016402228397514510091397778210387446929325410049792856358793299544490553614650620869094603661767784819459849147468142997278239093577912306274148854891804870508610682707098663629566131752919102513909119184591661030267637382711456929263203894394683689154458886731153639689123120808735899114080364758614072498819256254194185940791013808314609588958127702268256843617676586282649379706418850084553147329410619052437823832547900165384560788122512618587412256999708137336243984576503728048438045395982528667677895185869728714692754734004859978282540471565767439123414351777037973629176537764142108570684647762329565023263735592647394560513392762861084062839894619825968762935842501546450889288248787903180476993847699136531704030649224292050377485571474067937641614477530272977404793547890348949729479005730796610350224873481387863938230956452661139776268885542926559338320521253519122842658362742077032823474649941834804681085572793759951074259438364016217261312289415478488000525872295139995401866921254967336714804736265366159670305603179841239204614097045805364088503884829884939554675433942395671624808890853335559780675337076705866576861580798871644806219023879700796265955909899902687171588632111465918220577088064013690614703559386848877531558802091561574297704393193701109170654316755827620744104079675803997952895222811140894352709585831708158963241477585326514956340535977680724530640944699478467925038959315535436763009518602357277638032771497915911588519247392080673227856842318359769324570897330403876669172370652394411441619755025403143515935560289023235715735108920506229660391166547248211522853518285677554776359124550255217201276717819595101473646590262264258438640546681150399375822221390813785109966150544023209010290709715163450352617625534858195674860868109329806360308436572280038542611214159818534429878846161091870572262147602115289262680122160426661594471870562548779224545891042942353097212725314715478341077426090259043642398397077818010789064364856263711205921770180099286613237431441897086201432911231457878236400676732636568558030848906548768365563758484018776283076242680053643986156081609103581883100000217194083316277727656495086542212149597431223676946391840699394186393386502156178546647311197965773240396032487541938826719088417610246872253280942050663099199235841176052605562638151231506296330137524826262106899535009269777184566207186180001554688993652551860191440186381588166376270712813748653197535528700407169057760708410252233040085292394765686453858814293085072593054833100608473437544157264720784645662098760448698058389392303690418016084543940570337971428179653974296797425779675982473519857940661936145133352538324104998918607150209017204918047627786794925212733854114726050669467980875659095132959601332476327636968385521913464575330047748883247497609940848520182362724740014015786639103034727049276264892015147348306860850485543682196758715752889906573686494491181111284638372337586981963225477488658994400830368267993539990766165847971001044700803155340094597328762997509038836503664066829194302310780773329455278726942571710977648275091350251248658665040188090987232249472408889235196259168705006742082915320582521041930872697182425706774673186908662374283588189492655799058269285744703508245148500656277060637710945578104534419243177286283612428479166847802568640830549014669443479845408174835598446906010261052251822108951504478529862558854254057465277098029895575167035115557581562318013059161582520414099051069390569781610521694808787825574046099091486990776483485619174404949072737076772991498854044888912831514377382152362678608938829284734843841065440780373590000282034396943223223156485235342290507337720313692542431480702290937030267883142896896974072258285788959027515049357772230372718183394098486935862975124027928061217701472539892169389589755149636552523894209549051203973216886725793580628136760568245218177482026527917431044272142227240771307636538198474318915634602477347464414988433886842736664086789007695166943006713829582929327023147210783603269718218509452941985461764558735438056880583682583697399489203845126870077846501356155113658175620990946937009398699351259013908735911379864919855081434020727630185510964846479936002330273974158480089279153907731843707568624056296356190779547009833180027395566164492255929520264902677056158375499842547904831188616265811675103558345638129295762784283583185367431516149134901629701152726982523769348465272951953270141935232551797298263111781659058945479782636494501846180731143418136442881150124655693369877665057401787178184851634424241647148276044183618963677475741048803635572890994485798919045208097105275652423027919593616952847474917357209387897907894353596752884082471536253018131970015431212145726134324047094680677343397448411217983555703025308054451434129915811916588734847080808717421811594719472942917975732916412264688660877707424893791314874780890980370403815792770323671231362322187644301407441108244458589920068897568873691230422582238821090749924665977929118049000514142277326168536402549729273924599139821786432427964428062819828949035244551101502245775073247284924881159422766252582195724315035121115486640396271387944045742495335690266750546178257799422293551360288337995267686637519804442262974905026466711537721361785533558131109047086379879840941247048837559465768886635690935121452415880704662339241218598738758589726851906720126438585056561245558852696568824573057708695134780844299906612597182322989754713943609190265647487168465587860877373733173361261186453654820254215084157571739302690251049638913226372492099694864142651886560769795891565559839722702342279587817627979178827323686919818779614483223088893068132583955245262734212281946964301355158358708691891794649055209244010257018453646293272218356267888835574416670791672446316877427397212616278727397321814379695001294222643957097126740434676556956199299718038044163747675946065262739193672347781723213402075180321143854460617000215924532813122227757019697986814536879012088131392744531329436064395750890194508096578254959676057744874503646120518687606987948885344920244190050291343497522514736407800574894161707901849207079532121527932847810391554076531806284610978873492018555756708214440753108260620102624665850967045771686056787637323629394649111261609257252460827362888397770883454813241641755773403028328831124633874654001941067456114050904961005426426679662700706226998505807242431888823157682951682141535438770779001395622985815773349405611211027454672699980526524495826564857992877417083133599652650175399109044382856813808661173055340420876169990162450551363589410197370188859467943145073937911293987406687717882330128915781482106921206470389808152804446169684110034072638041608194776622604329482081046005920763493696411568951448334913768348498611855656301231858444918905550569828040186991030036561350453852709896878014169281347082859047360326681265871576945640666140705591279289040879262725006386181353240571163558671411049000888367867912223172270269825387776779385361145978027945633772127088668413061724747050907500127100698748170333175677953694928595497668079091180995903526138160493430100981948016288205197939963205612302671844789990125981457247825929136066400286019023614276630654831287260307938962553230282443305049863142780652195661672547787897939999356471086726187676920978940676065237807571012886486567099127394819790766774624598106275675576199106071091165644206312969341827209240258574329023362103258061712488953514288492079139718095848536772685953125308444174888353800845636887368322910949329309426970567213869359809220840754107511267140436781237344701357193258429385854479285311927614228533386727882122219176734578130152711729383844414166076097677048316784533480378851523152750391849073312470575971176454365592769777679489897654514123371852725669569583455339508641042886667848308147627545804845158841570726489633601904202959635263839309796337411400243955107310708390753475871059735436514841458473275213580642454247335942214638118114411013957191613426745250881853110443701586329280317517408837658466947254231032079339820114240940645319533763317619410938425532725398004060347540654259975693217635381951088021833700483032872473595304332298284276371276198603751789265156273864777269935697113437650846840549807269458953729256271270736777883751104871645591998953986201963608189866338540540264954158067177074794905468730248603627954532747027289047165674397740815633527370375934750152458224149906155458471501097027077292525678547605729426056749437325258605616561892060227756040258776738362933965887245733802281610319108986473958805799450213686296482725596777413901405895416001167124841263665917820555120906880377271900595740957658834189180809319794537911382669002271092619757588979058423780360076020840480238682906286766229590562440760691564914058456414863126424674747869376984264905769117662199567742803436086799099841500755486594406969552259321406503913386427265223742547976929415376899009907183160909569178125146075885375040393207549129068215986854911488191031992248853334831078991562272166751178031205029411303648603680895445809817036437390560666950367559763691663383482070259454820096591297368159288145642639585060661749852020557214846495622186728427106800401175686698590954294380572301880249004042919665170178095313679778186048997594075286279858550192059873060923689490120309326828712819480924514920615518961814588284398241945623872888657075048859547050461576121092111638513383544700247360276003648192777008793506489422503121751253010227936072335123969926874146590541220206665820462050136886006035407843478113587361597134072238503787792691167130288388430961705222473962524675726344874638279091677326259165718935466845480703699283192643196487352911339700062988059567503291837764349396759915322529604459722911983911174052913758489527834248071201300964026981967843724490563992828980196759292917753519288977547107133143081465787750162234301737756531950815561256459046131174163686921576064397968821458001431305990939546135632859173362015606052052549709804974730555442603519734487495849724486561606241783426396704407712760921606361710411919856681285912057558926368112968211881068279131535688356027808389841351231372675582583157137244381240391236587974236087000241273946493618776688517226230766091224734189010967244478642389077960604934753867132912143391109287487265881032634274505643719934674375648161871325246099360200999113979478837774358292884247662799336379387573278427534237615780298692477276251576822006231738923540823767358956329695235769170792994904335162319689701669268927521788979327959729617138504519544799889711320148224737963515389213344864095408588638457338462908699458609586766620213082954470585896021292399263159216137935256691697361321904451608300582047569907725436361842598839208763487545044824983464682048068641178511381939916085096664302453191421911104486806962933948653197100558185347009957315363724107916715031791968772045452837957435609368377331781979603991843188239224901225450196740947037029383845383261374982268734716107789389928373100667966682566590590361274620315613166499059434702820753018101410401228477003076899548741335761408071274156707249298377771349471186797371432827231392756418423385932788624939695433388916958040642129391625431844944605592150459459852450698432733169561060183991836906155879407512906262193922315213312287645494541438148036279314137160079752777017268681072820050384559868173822233653733599544214886661155356386273776744784397957161211506072768655257492920967049188156942082959694748840328861315578554272428150194216212311907463756434715173770471929965473419533428542815359380699328120111980052183190532804645248031154883752716988438967280920294076201403444411498048038699843428026685104755805204182793392029439567679397915130275035711078596775346281276893443696626090424699406680901806844264696496451875756685066564056438807953127321525453007020503334450478189301535090554621837797217018395271597528918711276620949109496599914413045485386434872953684097364022541980629621967377779906333280999813464821131879983365127172233289403102206951214023426705472550326881900003935638438245273234236681524014766995068787241781682652906637390777148326167880535483799440473801875049113406429130600920057068856473132313712318201296733186073602025102772097425394822655462433879233245873462358945420195292144911587568132962503315995474856354649168113952013289281101628744700913733650923821245413122670370435817918652447947949367768711088846308497197377281956054096996842205233923941251348564695665401588395012122441064594820214893237184157948137427185082426954153821869129061150021847843516686731839925098542094434454418034972290028450534739812072304845306434630694183094302602584685827270587012675464211236907711412874649128475341845860423438985674410571922517286211082741618432325706813360100875395065842771415331797680398977829688562847632680054715322558322470952916515077710310568342173527898917206123560297851496020105995305927323065989896157849972148195838438885236420276738587712856285767472753411404098607717520814670232510671862445065317058635298925832700596864734758083008147589178801921998273666225352509159278669213859042778560533795744292823498640367076442503984390481777014467747333476863968446822703505143524244277386104708967263016998938189384672742532323823746706768969613782528343556827060598645972333431427107940466538168846708220923892802472801565694984073454545069437814067542499891018655352129179087229015410478968128430359568258292728632359856448216081275529505821819010001821893020621342516467160093858640968449855103410899413827979024790121979916506704746366337780483147853530265022544164552160075904046523096187338724438642358796984352972406138516813260454409715389976797208841639465847004944161492133084445366762697528451616734186201632578304017141860827863207790442232348882598177844506630875632857872795813739672317580120284433290374704800369605822482246351890234372603560635124145156845078394041557591682555951173709106390877262392367326112647371306283426149410622420186447781287135945557797917816107533545898204695866998805966195807316406332444181914943855570559787037911399676335192360919803361488824688279662647367400550201476404722675231608108718746485874381275612381637769797572035970472086448406948227137953764757737900715249847950285043049953898173814815592689075146123554279681207056856683590719392690208760225556758820100317462927861962123982459033906345004280922323482428160049506357557007124793812367245126844147155085186952265275884027162021007822603110444209809061332721954557968877130078416578195263331772301756946357300982695903113336937680569538615753223864998549154483055138391887587364999316174685146145322883384329555108684740482267017478925772123703349376382514118751247211833447268963431326296577511943981895788335956117151209025611352539261661418862228676405037932936813419080466240833358565437434380202958659380566739211685612148468025133670599962533121039790218763753191224934061398414130274441361641981799964267121592666933163849833694530835226502726234666470889977865172574070316909561052667192044554672840217154941442348318886079185672477286194585551852757368245774910699673797672207982743919247889837585870327327139371284869360256308023569135999786842029053727284502613874637909894730490419132559484931511684378114375432173484297286572071705282585040290047509647400190495883814487737540393552061093273518373361679937314463410561696114309780553011616805038953003039382719761407212378364904414108668405188774766416882293609134979993190164029261869156428898378545498833689150240958089050566420969330335028830039148370870921437756780371597559927769173343438172706306805664279968304185376870929012244500851825873889645626528129108413975277039599690499112208944393866950212998608940623126906338472782244557181672936512708619368898008763616031915409668093477893833217411821207626620042515039364114272774689639876452649385888958885217563485263994970983304366520946943650450254186100968932264428415101046474805116713262366623050517190966936228912543107018303206085353819308532883498159791027113314257259918956811594227779842330458360085670365389017989826701663366834175905764133158480195694323472323685371147238127936431238558220115089320242659032996625434976430598496200204205172070167074459199834129125494010085010495825738578068847359709838106748828347318084817488646105775659936774006310438920256341848001933667270878923978249729263113541979235840449421107596699112843823562867335359645988780589541270541621389671497750807189123994047814785480704183812730264766796116750134782350709269747969042842991949768455587541123208917629754633704765724492674779231973661185959661943022406231937983008368214062204184254731324180414140696311203637038234487445523723112729126299446317404419054447911532619944824146977874042670328559131855663056466242452375379861598285612397456437990515683640876719559120021132013840942473179829938871290853758167064105534437023348003428677150436445715334457355345362367875876942657612338787927627864018674874722903725469047757569158478244416706026967136016578101853037175794006284024172969069172211700129002047658756229009340160035075186506261814124122350441935857487619450399851323724102053808970778982776651120376868958205375851835740362177038003918230408242089966819022117734525780296415156122128383592552054911478446985018071368459635123886282038153203917682891257306472660697332748128953523578745966540729738580662555020783919147915615442133536198588926261656267066666672760516956906657098481450313572258149196196005265703576164896510572573555347396033044160484013590017338248547026834282931701560268997648642527654982729117051308425963438854641418177231446585990887211067345162510062820354046402860398832774369306606543462367953794919979709728105221554030718914759454764738964471074943363915939575159140785823165162375000241985178049148712579675275722043325669924057949116054783939576574730340929197082108109973049718073727516538740362374473376742659724044326616119328575711893653446180011323704761360924815545292967308580602537655672722284894647262985884077575061912429903953458439407026417742310047658609191696309457671622359878991660771111148849434986632729903147111959277040939781536929541285802868460247391887851848279919901979997484749525344660575132210559036777572046784207273425354549695986892909276637808067082029401753977727939253326012931980248989862032843893557824325696793240919263924314453159052552496427322453240942283706058803639073763630336772098655638615914143730826773413995249772602066630804080334224727177315671587251800146452728142950849362421215334515556852741125856397113048890457916954181455998806582120522523377070456448590276021011164229626558717764743159289034323509842024267805849580114687768297503819118502901764541280215713910081920184379187392765833102382266098757307925447616660932393315481036404976012463171501569783385058255269076026502876328477829595949514820059635483007877801840156151789296549397670386977120045738012217404327160670018871195654199860513925699433784374221505574309445807802194114275270222065726692254278824438890714590650659449919189566436093639938555435456784652738905987037426886607609453916424579033334350501909362773761532549744593281804042202161360024227194386991017158013281649054621655048792418680527876242808726249426929104711050480871970163315648992367223429594706100096895191486149249253218795139739270467531158513414777254838261641933798901037356768610996117978946862924421648657446819072948076976067029717744091281927418346706920509026408686046844947783966454443944792251746679652897326128754974310517187786848536671619503631218714274377564778414803966606614222468294637292504386798156041366906865279804688209181828794387178822245754870996396566095733437772211467085503833950651271883371948823753868269464551869041545739518200703298744676565027540241203161980437654624345839307856354839719736100985280668054780606137212134822964807760468012023923169404804194351404720846401114750822936405231572136740984618433556078105007167323071907052686154572100136458520900116442784515392457178759069751639451669252987732983870905982347500049498552521146523543462531530451836036928935428939236702887509616385178684590206727624807347672728166128788574955400515871842106880210975329239212968800970209814143340849067945866633698064945909923689612606395755594660766218899433963578579642340055443917996946013283544737201055981126434342040480715877272804983894206498076051341273966756300864571637720444965027330751618798600122604443095037124015679081052828130455734084447243627956581579764487896311343074682002833135074542944730471308967530368676170223963368866388799974599029523198482752645266684528091603926948699209093113110738051746895107386964174907699162748099308919685358399565457982890507004751121601115702389478539478069629125003879131972815911171453098840753030946538734551526259028131856609607328305236265885726402672311564655460836432852035344597711165691016043609566110654455027683133920673129616133507692382837957265562118000036900624131124414962423929792124957728686015091349287511806709089450300006754148821117134533914703358595546830054502803045485129041836318984720903490235435349552484417899741542898020743451814276379900918126893819805324832558478133164963114413650712018223501492807297254844334700466500037733932410411845826882779310749260103153853259666950041353224902920355926004381711821565499164263017852295120686662895219048641387481281959748715441269250720489419554521620365436364627106192523020112035537533799704926770431510095780872776139315764180589348661394727668035667498105590068348587110379568455827921734564492935075469069115172086355001040413365648634500983396823980716177483767586194904749157528630191839744945656546463687535949988067916351985313888883452574344887534782761664236954385754377837359141780452352479589946543511044292894862697898350475151847927136111921531102382428491380050596402455680633904273043185365972889776770324411443781799357965653791977875047636896075988665881612941288298470647189818309397169739037401123052593291087997541586933865364934880957183082462947058320356205548217359251980021532838717386016067091045420852567976772318979791813056765081552770794794662807391471539918403671637750948953682043500371947000006288186422273096179271856743123173047185659578113333419629829649041551475410933405471082279225172661262750678031662837631223261762589098263832851973888445496745101307020387254885771530055102594159947008707774743357368684452711769818412467875813959309220725166436170463613294835251109872700004516721661498639074699939383766595322457460791564727908676841652650156406397232707207347167900913205729566891632842865017259605654171125904070825305118448606073508441346233107787316848570890076272947134245245487095674097255809141902893484062651041928212163764897677659118741386080791974205028444346950273722173958838805888675133907240716957514354436296152163404946435908910503983326018508760822333716691048286757065016345496894467266455973056648589150757873242394009059717814392039209960656078746566356344067664394563945707895217867743748070799399937760426874154674939942858942442386231051392135309920304519162220005190345054017065464094735582897927403687036239414349783832015770006548138862338948817978632218950730355599384366076040709946290853341141815448260822781978442274791134837214913867572801647699232564497804252439669464562206988199120199084204685099643023184465340626422468645737598955297467540570579439736244420191645724495698503649670167126763756748746669689038219667607685883337486715144833325243776013752727156791399671657470061452426562026025041205653034364340442932091979308831323825956285577988277426918525586510427893258820440898248937215523364616531489474106110287565239333255490124726643630416175233924881157522023481748114577588362387871063399649115471978636867593598381183708003855099025016021214075068523445653389313676947217952931260392656058132963493820735272978573976791436281554146387217973152465069380238626694407500816107787793250523775594758184631662628838590061450805875886130107742626725255035544077910237674309046975138532471119352847823945975129222983027754213774002483945606335775552091425846285450177559718821712025870632206377608578748369758729624692331940617755187647262892621223648762256316264686134074756978209769634132767202236675392319008510407156841519294685911291959435152575910948488697735327260091699017557935274213830407141534484708762786770676944543062285996894823902115141300809362764792882471966145320666303070529011107789699281940084207578566664897915603747457451973556447230990836285228664522611391964410715867420863261590451420784268581185234515086554386847791555140622827532283944227378835503375634585873244806403727443323016802307080018890623061126669596307634233042732458951434635115926263589832336313748707888145580353305663578073009707641564754377628947972798281855550479052036354720137257294981969636352487039884110313142277985721508158391202366920780469924996821857069268133749061261680097922184257490937764665457683147109676950222240260156512722232752696776969624224282765134787132235243449923875526364554175853152466384940598284938000078432773860872853446333623511426669881881963269594948048095982745173904685041527432894559233975840911765967447149527911751470584742572095916559371299823108423186157596936362365135558988355816870367537455034742176787189609261870503730441968230088691413700447682900423985596220986480380945591177539406518551492991077903194049137293938083104185588437002020484855517817554953063634636489027210174308481263818288677504123213754000853878525233407793339161326076909483210010459732960035715423696957226397187850458172990049671444329023317625617244836322399802530079237341590038829452534602571106385837465303022592897598490034627636982194879452448240923546331864776444877863190284080814989064573100794632520797448819550426362297770477853019926466437609625045046348370925436647256446520776448336143990308904109461048549041900100177223877317829208106989713741464392892925278651946423949571488382457213296192705738607624869087978941028042732464514438856325290379120331008243800631985754844972243635196947926044419519533832906425451147367115685356350788969148108272386510667930875765136925430076877668821241635455075736823770630607098866115559412278143982252760633197634799987992499866555587321667317442065088454755300939891686962442468983655744156968246924398071302053540813187697130407926686917464060822817395439375871531168475193119367458046535099974211089982654849184246823055457976519537317234053134390269104044101759819218933528459284170985473664818629566849290611833934188709303734444455239504980340056237886276366659988670426702368033107994803833834614748281959096348604330483894622163205426596505384566414159454774902349826585972774338735766662167127253597315072643407192983018278006051671371214667011127325695853946265733737940115547229807220189805946685638648730914448533682714816958843976476389095482001780479103965085068019578208672686663976856037410966155187498242937566704797233948033993826079348999759450736091295812333271585602193941559243290638546339525985240578636523362730251553653568695396438239364470490288456515020025590683659977977717986751718199193586617146045742317873178484046689242030661787475629987246756715252610588061898004608070238959133236630248094924616444651588915270527364131385762159701643926391285658756791637910894789512663135320573990453749743415865205165444453991876012542354276600702517698992045387906634877779614229273112226069438511036108033596203357943253064511739854968416561797778529375168839619581338121681787626602361938199233769974001258025096963581372763912925149341105765333938311709579432681148289934559538754220440278188927700828673843225201814146270554441461104000378871218804195136395162415814922142806895945818241879523666892231467281710087974512641637734386522077258370957277456834237205609198201783401448992366097732386049050365116570548045558327628138585446599749399038419700242807805938978134166201119778516241706682468387350356021843280374752463029967228352349696445635500520353987305606355644968843520892138406804940516006526686554439731790117423091199827227236146472881791327616689910796940633047820324956483453063762915475204138987987350883384005618637259916571640434589677936614904407334267506272028024329431481744900471725777600082489963084511552591223035171676046834432087992306659629902582789683231908827458749061036104039352118376911021089910218477919788709603524800012465747684376092773793409336502040014556385104550669447104614906701870839316050896904526913086257799888726667454001533056138305456049907355507593131811337632743233587308422804223636205996403532724298078994045185327238084788625904602644424328438131375505647507489861863095942284075085906291386919675749109531835700216862021512861633240895167670101998618995393206324693360639382832356465168625813453978818634098986808277982346596636285187439485637230840123533035777096681022873662347817659684731428931961594034712903003086562145858849588335853515591444536358223817073405987196980788982336922986536816505962148753826075010124970056601225333474452249831718467915326870091744534903630101174545780105179882066649832035888572612648160817301989100708587117765958379997920853756591659057736073662434059867591521393304183290862192808668831521074576817926341226325878850040195879736553872849987604706374636365697775917658032498916628771125174887546804035206107420027200649763035511440447542071608753138900994755845726340592918312307497949101852737518600732109634710372653475391679245139663960976861348507493622439442515522690522003690044614336593298159991789989597540762023632209078421507306024706427273314657936453687398075131405125767045850317557837726230194262515465421982835833044184331153725175346166108606478513014584979456864648244623641272563632140214136992225880600870987285009377599076063057171365037446236016762043303515854627425618699049744904979556504927026561769729867424287793484711703471780997459523084147411922129524199758214292992656027060637802196336882132717214901272672664500752874149948445629168497615188774206136679388099384981299544657840817548143234664880041046538882156021785405410741500596199416548046590349821294214188265165392352270175857489508712276224931832970472658120010675175858758751635897088710028914802412191114820975344642636756311710296228417092940633388341379006723809722725839465274891252128174765919264900636425024807312206396206776918308678388586465514453522414980587909676091141768943759610380515837348173270223210837659549500905742748895793290792017022794795944866455136035900337241566001390840850268981732601367798588581994247094393110718220488410142982322944183690042674782578853070937760083329461600840354420022988468723341851510330160713922994899606163883684855444037263115538245845210628712382060604774855615152167814322365954057026255106640085820271570924395871702305582775581600386185373823275508390252161839065802522066222352291816288106431351657395397536154331813638833441817180974771352186137803732327090522171296102660950980982062028181030767156572945052353555163546546631646052629918331684306883649742733777808599720374102189061315838095868358250426762177060758919076743431634828767393828157643072015505075170206896036446324384092337515708106341077610944409553467279892537448570187501001480417711188364505896473523617799092831694574942886610846048408126789182536600730761246199322796358474089336189884188704518143082930494759967385801340030178539718824805131770998535007740298777350581860157626115826012137728642258794142734701556450319492054295392351059833603360814302943393921533926981149500976246778850935865159870228712914872869249736950048517183170204377183174065997757372914642006363900518828938760124625833545473706220361427358123934758252290350943574924127813974255319075602190106406420308019361453623604757107908386804807179764468767192519924484250481192079883898037244185723916311259429315382506390750736004573546450243532980608133836898059911346346271766800353764272075806102112476949355615325900636195735575542468883539860424455026045603106038543564972795523135356792508182197707223618753995780408154360648153263068106607029061418958074663215340951686550084120467769249891572980225886294756805470951975274666466777601019490434793610516327083528573034224155237892360292335868339947156796822894082893541724557175790972374458455249502388201721296222414479895943171109326805120486181720506811914479346228018325091036293451135847882587052663811260920869866228652038505918594340248707882548061700747346797081351529694290963259541151897083356857476751952587900069551832547134254462241833823667652737336832470663188662787805513441004909524415365055347884063917366092298531360493602973351780146750326232678049032862907990079126148912149075648961388715273648563785912645651948410086857857953452904865457173942598632767736786297514488687734577169020785274066285511040960960035650492688942488019557642457675497850048033833367779882415584589808977925046738711271685611558846850629738742219677750588998354070450429481189590983686224957789024154190621319322309522139309290779121387685741528279368932965471642562626756430634551972481704976075263802736218104475586980920635804838541506376547023880807319708953352486083486148453580336910587568552302916706460989733666043924582680872100177169296776997401775383267401511590133113209426707409895742372037989837762736818492556546069936921837705306845170510040897511993377571456321884129022061223165799841928759542690110283818951598121818514237018844376409760008250788538038683308343307944272096727147711097279891814308180555871825263304270470058814845016934806633849524200975297047693905598843366429344626049298730444616298275503957327812157039296013720901576972182578962760167822769746225857042797536020529691655992527355831431470472984778424293354712050748762267675422329794816733637089584863676085187182747915778624955862652392385469187581888971956749651269073187050642701805841721801356261702506936283918428947691707168855079812807076017286308658432338965221767815687459356121826913748155157686255148619133773062670520451126764666255471867333542754802434694649956850853406343807320976582848002625633683541271481381160226844282216089552275031860623651322577536921375811826202506400475619113786819919365245770897631345561529617956972073281176314125655227749303014391321961606581755110956614755662877525528564424842640253361748369994557487011485960827398825878520864717214596299867624303099184444894552710224272693665451850062413974118585960642316751836480931316585426226271804524117973735065409077299739496957650068635666602153921986061829272092313189571235449431108413666002881454802533484742912776101736308239434095849241652189915098728587063015436668236292289214932486403593143291162446405780486613478731039992088422927072394702311722026582833519678596776649091742110551489267663393608072851104044244192569399011099650895906072329644096063758085016429439314441838891595581362635099559824107340615578654788729898887575685727073940845322853478896210227577256658901248570622536324056335687653955116361932461953650558975850510895864740820176911181346952711279550718840908540199955610490746138626111675872147161823209222922415440242916743097050719000165137035054861003838803156191849743512171644611322409343217456662059169005842396789948551859626416545223197700372171401049436230392367799724445906045988391478474282719329913843409810379205626158385435730639286796556081435216928057274961354978075014819559861478317191665269958728815735822415608132798357796614419619961008559582275826658832509466851446562847755320880739513473921862022248832251521075396575032603958351956509147094848710931005253401897046602150845961262975753156162716859047475094239425301137447489143693761314964850327360453903337289486576917845863446985320807128576230321564931371984768219685713454270796668676678808246131716929963426556263596171651430311714595498096550862129739375838554598124195744859634436352497223365146311868881026897538924630220717616110550731620524649787910700579517500282301583770586535567905769585040176469831051726593048260537876552893996754654546143514648686735854250135360539153471822757306338895747882126636649958747558739468683348387362288377320038695047874672960874572945691732514919648678087054386447464138065199191460109683313859493413466504419425626732419415401645536660596629069554077021548261024676845434924530907453209826258932262549876687038878778779126644712496138721308943832060454126725707258547353315666892321737683690767421906891995198459347773830088000269705906006523365278301098594605125265695860606543612696732175596847895823249163729644020475607444413731288827149136113201497007088745461270104759022436159002709693395792529385080672053442754028212236746768565125328824155724168655565119000644506026506541252140274859605678270508207938203911158152863536400206068511064384947280076341820380778789560326080908149382378763211329219993925570087864361973635225199173346344676629991917569525000685883883731041807455728654350390618425051534548078418084041598527964148100442679066643977461738438712141892296987124492547440092048130627363621062459290750846761997436049165710598883126776147510538495137538837648156014482746871559449032933098358312472458799367585789191407743090098618039171118877356986152395988096452788047587935639569126645234369594214815794051558120235390800217762499196368726782220870532535306553866325767928289905965440554718754469450149516767652250247203912087559037291496520900716885142100117896772429502444399634325068156557835003295841253554163968116840795485042141353001824968505052584426891475268049250187819884758435159605219188318263656009534154213614986221921007315031307141983353195240570031044478479895481852924414383306693942313919700757611322598411016298637462703279781516345384434224622672580561410878746673412003973234598976371603699687704022502752497893535415446024837611984894085154617655051136925107083354631965521368150720411149631582702447807322332683549534233748356741351893534815809742445984642399177097069465893752832807280831594487414197777428981749319510612596967864999732452724941059327838432409371208854356397633476956666172515346900617910205292881702524602635897829712795090637971333016100240016787699438579847311472314531780198720888176537829420856028287427075251647976111499628866496027317190398576582111826048852268456972045659374964928204564532388417491478049069024491753403478497523767030630880347270953558102837247008087490517460401416292004501011135778623233894586402271773085767171351473584855881311216474126689781475826771905096572737291231682577246248364738326947729775534307444830859212774006027367004856640571499957047121873663620719260369973840015243979356850840094484195147746968563131911849361574766815808753761412296331221613916577686151264789933054751544451431142967704858864592706121220280133140472353599691758255129464211023325311772856261883698859657764863635825378917017706995094104413572528993841938675745578861371485790904673887587173354517565310108320510345807087398277931423251291682744825295495444310737506647401828947115776202435673327873474165115203551624192350732977618859471425311486399633959193762818583810181702561939485577666411588153770170380173129766875175743968736187335616676639843072421614843377388943874814939317294986627858234173713614655632730456249787276084123701324749136213456664463809844420638113018456061332087211402077752760945456812029866265541022474068236240534306263660287465744749707641426681179327982300790527562438180514442658904489367376953728687665459028847159018865432479336501190755380335782356092223146731944024920487776305653094487272583267392970741693493683997628625737959138210164445424346817680430604730811756324566438010313883387683840748953525388162872961594779809664800222400148805059333885243901643192173465526239114587248562436613724419059764544457052712043209331249577846473932585296434199353061899645009492167408073163649707010396277300883088056971025856740267516727681436811727596766132695734508714527213416921375634311620578168664231669206097073463100036088256280260677117788725317904291362183347097689285082570188670380057481308114583562549961417271949181128989482098768190013074822067732049228235248470866126129899027543307894034389999585980385996109967276028538343218197218318605980051654135459779736640070666110693109964481125334548371625567921002230264871614016852944065688105255793906216147618969062081009735695749134257608944992925216608361520412039965742128522267008167036832007831114257081125044675475898921982188528015313015039911040180370855323927596728444792806367672956556724197423000513527423383855840493544703816493552180253211807777692817521107839763245377720937634642862061377240552754571214962808049954388979053087968302457551226104227526950592203712501456685686433396786033075184787377726637638828718167618139520838794847749450639516434477016715683842617665423557683520808997514498149978189234416532630725860745688474881768574543067863335626861498741786122836658113584986284429220250785978187595499027884682692918779821317535746468605964404193467083630881217402333192898222193768251589729937825589090380396552100561049193960518297338126184848262470460658054785489876914755541243906735257876086375504106012487165379613929390963661083453452615178907267944323380977404083127060874957874141010009883397964416385762077825733573921049425062283628828191331621658101323299474313423716576937908152697994787264305543730354195763428121629218231940928420650616432414067784905721624067290773589020000100913834206885775408934350898473057216849704774758511076437354569498824730661605411808594584080867611028277032755084221280049576112964374931379771551424655313681706794745923947704234199718545129526973262524524694527145822107211110883349190890861354534290068341303413364935344708459323631150350533051121461478780101407861814308576772867364969384268231147006306724626994580556770736982753011748137416727760091798369317339502910874383212011848444272128655308477324105600518281142567701343838063448967262718934593622542753945395590517087988575986585231462157281678952904446266765460252151843107696947767394721489407065927653496172185577160549525247439860988622452792784403225412135808942586799644928609823071189166491032937977197998388565747881001818732168244299873939714015726842341400963188222815505091898825174543414117736946203294570014885820668451774869024662787648922968036776255977740275097948569840986363984262286513856885187574541789593268108598395646151040319683528162286826566997282936516822534588489863580068678918613527884246931500478000946533685331050069399223592907289015564463816955373249975625369291003752566294752055514543880532111771502253574304734879916829050672794190973389539279034259139090120137841640386874951897003313234503640366063897893549348656237925082139104400127203359472435620499427221208279288986969382438773240984087557086225920937314892119492624411186911640030211144522706244550314682781016765068755913311282071297135869056846299778166957062619039073353907037611109154841070125903422120626936052344737009395659708416538452602966513861533580712973749138209196710989464679126951037604245706707150166230375913249263940704224884976962329888811142671434265343895146028910034541678966683024970023377698582781298851241177615163975433659904608759326683247369548150587916448173591734843104132608702725389084193231009030411482717295613748283023059510737373348176948003801740948099803965369405388075277844711495660822089746952425053484468061563962452551472183452517282753338149228084777166788383737241997278444173337628146845679362215964557962596991734973695978476354672816121843244156770135567685167679391217617250282486498031806012259882905113256325199370770865249961722117334449086202138940943734957750877253186461501016158409450944070311120561639582566317536762120296324390862022661294346510075490166001424593737952450391030227100426016788549115953122600629345324492250357341398638973376083567476818411137044290708018477395577264250608138362424320689456839401888959377365114962209435059781553039836298985282817416839706999657833487383108595464512809870119617021940386526944985670782728207559568716600472932316979457967748612256589153308912262746131618241591344104092010154306249918666124413176705934974157084525884894692454037228222715714284406864177023846614476332737504781943297889661790050826029009320060779800441757832491125013954284988354678345759498420280855987126902353677018589428476032814946215683721052298460145427747889968865175152488458954947961752120103024796249657836650406808085628110740615144604843493331433066104188215540636173427647204901589879983674903189524810586331852542539904682177864407102105164574629207524328722948160645048456656345281207790148760327479345385271318003015215518148858177601486650878001780117747151880869669850102295954366543453910488376317353496891721655405003675620123920948271382379359359827421849057206855492259858866487676676467197479024717468125723041457927567530586579609768775003805518687924907382713339238974214714224016393086007399331226792718123492299512997878107728771632078531923696191545615378960260814334560316082605161839814674158937094039947439234923991344845795460863942975886784065654333235384965421664658715620665888689029732418262225988089530444547013428070571896398059745060762487727910473244310945144511226634055184695684279047724410080357523348864986123512767142551174071199485351192150135348098175126517275814512807001418583583298233331468722490466026216514548265833259632172352499941747485138077852855435805816038198039680264335899056747204063498182121705542299834773710141736589783495580698285340607678400294541897328792692111578374529001704238258039782404805247049054273851736450516803609415721432998889578431444253151135443960929656712396741511748368402746471625560196547311403882128249328965259340831774207442971347147582021920041010636591538448334767267262273311066033021279711821501418799951688244711130356673681743206546392096495798486556043465983246144502216900756196387947216354578320005251892314474375663988545657459558604533763582395413961065230786691882349167419494963543725764732927208204703077961697066816545814850360735025239521569048404210929487981854458473549242810600543031801872257422802028668622121580085339676119754783910595284172529808639009621300731105545570009085668933530037795638718526910863532300821084057092934039922290136677007142919292390219582425055418546726761624731649912824675820843787983046698430066464730103309588273448827783610147079324425875332277625383611064576441708958770491472305894773760535640923812704379106420122297614446924934571055773443907690531094138866679907687907803579717705382106177248314160156253010965061629290786701104063295645008676769450593103255211618618783450572265379524637021646441727982844801950002858708309837418990945245521454267100909172206970786560685421747281704716869088226760732004204985463849544904223485129080749044979787101461140996645514565842120035438894579846213920203604247920651578150497213894774292565265488515549299315922510970073881881364628349705661008348591452600568864280775729312415034500330788535825007748422725868117704039759979834452432632985809139567309325057354338367693116248838338568131411226971322393972370191694480401012341345155499026824565942200123500000756773822814522278767562628413588124471291671859543122408262517051532793203966412808788368084577988053687984806755370605305926564779655067675739719497447958389271808779511230333259458332131285461852818947096966477288830660445507700685930004513829706082148458836346250020655004839113105209086681982531153883270734112267148816457891154710636096278291655264961864304281548524003050206153184588526237082224976341345984703438097110400616591836638544339342755993768449588544306328196395751531567178909441172075793140485826289608268424508919051410753847614899406131429841284561951054327205626438810776865392785176552708091110218399826170092267412731269258297353732504960937450711574488452114183104947942692798788066251029890161370893174683532042141790744329986321543067558980588458764811662824748441809630818586950165982400033773153316459092228085538055378064947657917145592813181109311723872695066313977748210403722457369899634620601644867172425262484380541211580490801292831556850057335194379592947034341741412123060874908220082148813710355049299686882928591097321509005087648624073186142649431145937365481291507388817910225076238600528141592178481420550377605214639587191347129129380013831621337484297008789769622534430772373497574533418940405488142545113279068478401289162386940760303504972532943350755276550743562668532962552002428629405409011375914775154785257740699615686306568327123476099455332316669222224612827721736183260108770245579937794891298611517340789050665065187989847152600687060675714563958851193085548843753964231142381743978486786585537803200482810104123029805981529314598920690836401382145907001441444813011848825479446444068549467089849370115129071609747103266082763698983577507264333516869252317110759792224132365821514119511554265422537611555501691046434119849829886667832656570057859349837546527674761432261215827065191498741864404129771588319352656356378141094400272559943346849834639574671519456264197510618101355212156406759236416097342812492344525857338498928586433467950597933111870890792131374406711303632853475317534958268913265541459003211773891089059780131227565911004688410189377936074230086645117974796998136555016786321245653780321881876115353590899699305073672469884289659395101339671590716095461186322739517888958543686234144223412575712639961356666852066897166204411801322459483311703820482803461125443098642311701775969315807099318070566308752929469448797050746096182114376280582181643528482914799139017842286642498787859556625091450477127055775729303449174162558284242991131948252055154490836427606650394865193955434175644870564398428318313646912125024297386182109085977514389768267786532141960804499140889190924663995999503975761100534959441357472150492363665979391790492861493024544719140526325013202532369331453198064771174912511721792936857925774869315227487091697030419512264232821849861902106320861491985145929175138234208164990716885992337524492117433421615783723098725743917150914591152360854390789611707652880544940863353442707771453068066161577491082663542953892120708469637098134110623434382371916929746866100402827079645391497201237389742324957983704874860894416253245714313124073290783251709951424022331253046618788973213151676893892751681413589780721899098352355335147568848639192347120780718618449213287373408278480767784315182420568310707544484825521877716253986227335165142996145754979042853095620817415748950981760267918317457379686407566116073272544608215181310185730809700840152789650830827546629406578512056045640292086318991209358075970395505124441362453434972363668774150298519177911543420330868980997533212747401809595960184592558767997360861001130599956295345244162822251036360348403170596750498890320970916770776451749304140427645323672335291171019631644334673072976689757998936224308884994882764984075557587815116008310869245314137325248908036059093092971877379805031125798080299091567818447924166824041069889306988690612610950113335616611052732634472988796867103242072069594272557258838910302213771083223001882170284411396462780533849612750287655290107218527581185131870929389965137321630942961180050275655315144120778799290021569248324119635756005906725869612540192023716546571289552479022053019846655055719672328808030224724589513513247577570375951574258587577646266287025211036138731637567177447611558984403249350954367246155031060081421653733895096532864944654390210890673569521274861475296307495611104616049207420525403398441073648566927644534392112325416591393201348998997851280492897902140451685210208229134600499904895428681673307989659166529961096711219894964655685611013133899538048086493426290609823483493267686773014615679378727366814021193682845062859580735192701824875388982855273012186214324109533078364797290541828251118377027833337540304564755335959818477329451312901589531925225676533106494602018131793188811172975285455922049381284683208322275021143297648148455912325864040693638490627910247962427582317367913983903779667384982633223593470339603509551111847662951232325969004049245262972665256084470705200244310669798025645147932433689185896652618790574150299829676836242529529093842408645787796828407922146278729525972957005095058661589348469078497160174464994597219896384565603956423958629997109924874811321348778771106880681383208778368698630870295024231784165051920857631679133029631113301002954256035284687166333616468925238884047750065528691533959962427518895049572387916011919445683645752676546737552419209780986772978559469941688238292043415180837912891836631788304678184309351241594712876280313832151068685710076361900592928141705605094436687848207863668509392840289481844485979860866782514365292715737880250667079137594388216838530162991411614800208204794993749143735731653739896870824109201874923418706485747451283956933925734927192601790671594981067669513700288684509933145901620025145103869309342656591267143745022217564507674745900027977558421957810758775636046559833617303882733290592562543615146724956201741875890653508831556840132198518216680842294747809041794832365260373337357858874707969960326045474640089402315488498805050071282646497699921674127108244778519492966154243226893743047301938530264581300326011412872496145390555268791584699290960558071559343370143133736661328161399871025184015361432492176388956357622546724738692935636902159775804220393381651738734692634035625002867527957027169161663681068428013789086904352792776351889949731354534698793920492291331503596345860504151633787594023506365084532788651543033520394671782446227277988908747799513510902032091776646310199982594513933684000282404819228306562915082250560338195035819644084632571790076858895085976332504746952928460769337653506603750407336256836161013612363932630279678308035634480372535578535187630381984266030473910598652590857286138021681123033952348284332243456769128542857300276865142549720647462385977416567144006815092457855318136223499420677961619715367999474079022231156387330787720225139435098504965203872461702384090323684702574450014864627807758860897818302962073086708681463160433508790571362843850612280400064388205683704307439968372285375808057587843278346476847336462375183245615969994616037401073841514019259813717567822074964197529863069179955904699471458666445677281012747482683445039400478000579900771685988886204195958695627009010260588914143654220143650279233219156126202359941137824259135911337037820949638243428168913924955653229687166993488549892224326231997415785390004794760060575416430012882001742903252157925661518501294610144576111173269428030768944451305935287634407482750219765770154241476296393566474815164424374001242474717429367698934669011281122370009436264794776182808557771708332963213967886814358812522241021908474653055474304492678736170173852376863733611003527720115403445432664925891816057818808910136562228397545747162343202740576137640539581254846368576943031002634034000435291337058203750141751714535137192806110919423164127710487539876189041924272168237817576862752259223118468171255552055261500749173930607443376697062559849852112086417130107086757255351323971065853032553479338175276536273521786975929665498498287066198101157458906176885771192099594497893901506662707721081340219139678371218110226533307819662842833241016887904970207538077706023431758377258104918792693585100171700947447474299748787612444231009988482927189831765348254715147964927422962761176349467846444658370299931937703430059369240436293788145030545517595227172335968934186011935538949289320225242048793963554442595057023241247284767518043169395081308002871405323304175029287197990973022367513006430930860971863487377543258274774568415719815195529275167078686740254611081129285571082865565191993352090032241507813335057667967842917051701339997341598541046791238599089447575812912042970314688763646873744698349030803082478047972338232767259224154966407834275941152300563834304983958385693230672917383424774939190282298302139600271435436270189834507451528295995719755661724279708876145946430291293858560110807368593103012085827155271302735548243065273517170663723626704135493998086675237393709858875374074468124121091722709006814555948080472362935396666403362744577323030681629878887466323649209372523562741694508547726826773125092919209245657652891062745241855177734925155427806483432842569758108131242391165745803999651624000318143212485743095491476957830324644055119524610654432340065633171850546736993200512505537812044719532114257650859569741347741988394771069770366720670865119126905454889544459280582317138103900149650027239568651900499111082360738891350787860676235371741054704765130544105819179712890380657071877843436940913493471743271545446361115452267548494807251938390292396492428211857387906544451907016092714477882049892928621528288198508534044774569021835919471302490906130095367487239906401858199714389041549125436229284068573745752418672547568264424300516664799891965904880867316647184140747812210939326512628536924617926167947467721218016357559458470498874618992504462359587224831589639265936918242005046394686866343153643043096038156546568947303823331806061539359648505081804829447167547059108247174095411064600310357369890758906697121891885603178745832071061649804431559478707347692815407070265561155587323430960401043717585226687498955834169736690753566563085375414952528110347242720204432133317781717192417280610370172307868055719383816279879060204351295688925251618830501140708917794149016139526444502523421218110255482887342553462080557364750046658462382136211881754801628651895062401980628762565315680051006901277796870305809342672256458846039421184976069316517944143047739544432249123170873126548559304433670775970755459105066831758003052755858841968403147329302048154006845986581774669958804126357801792314407069272997558451505943141968963064241960139080755543019511340703830185424169540836974348953880766072735769053793238337028246397053145044203457646617591479421101203605591616035595256475244232220779801314844127063128931099390866486129925300886626497486351161670571392850023576153062064929682610036111612278672414822141093764918203525381500025054500673443404483375836341724622399010381205725362063408229803935604626127556565491834458055078642726544840028948195481169228719280636316387715159326961882436228422332374054985761674397024892795128674040700269808426220772256883615424530355584158072591897773916233255187909838709487449473449586374458609809208839430377684087488005596793467913246341294123471577454788067210225908175496005764026405800148478395874804170542052666155640026093502602411979318561296191435454382266348030314785254556417094749248551665906152777554887880921825210675305842006632698861122490110702886796079180838480835059813041947734764201932952183252306260674512561504871619946475868350055786084130258582933546716611680548536052512877411282286971166155294604561641018358940903005587992816291313134355109072215537691648666400042119209228349164476183934190453395646795330654108626082467229406502934698200488558865689777741293201979823213449922859664288006744677524868839086120708038223684866266540897893511909309683853422290483415315004716324959383211679311862709669227038944826215604219202797872026459035101960876743670867838010831119614036374095712429835212402043675751508874932122231256966190772932820761331007099014491027172324558440358892136480508410124943402193367020270789864264441663765834577806437890598977910604617283532850263655836818358854129591068835290490690601833254709086840283876243396922169297938328662514130702508415685220294271949323787480659444193080916567696359883575940014582676198324640226863691162875906751880149878105601416899965856884103693551306885478235954237149010453334099262394509245807989070561706075087776273590021903147758828889396239505310852984213825693026982065743050898627629647863062237957541166511697754914334565526668369933300627436886102585636606915920519849610343602437637370784289125489193614285488903461675842257802512401510259321361733217516865031098818369396120734404136239938474079342165783403792409371842448166370601613848336513816570697082818367354661998475862320902740830465997441978598310627698508484965376293616410582319615096192097362138894972383186096340746316391094765330246463778363126317422139845784985210762094034848253014259723887013475190077563560642486404496886754954197224119341086621438539985480119530435852387815318130654745048068453055686241596305301441093936937771278533296454828016176446073576381258245626037241241940995476754598236500798468056171185673915570930292421273476397230762556364658868831632775813870591085859912354833996053195279491153061888066392682972114783884132284051939389531139662391202587389811117944668636887852068327412171954270790916382497756164556624871786541191528389878743172177132124592301429468132006313761285495205813549261755668977614511551450681371417294027104496217534533391692257642408152562226556011141439505705581531380211481322742557059443590430283073209936208266004122148118998411453763775453038960358124748248971101449456233924929526773208319669669073165248476351204075249557811534244344988185546267370293802459922844507947295702808546897178084768922263700743387065591169327626012176809805463948303305198196055157148156963866670455368878768228970398959049033193691095198661577346661862896540182797692765495317725565958744667614368126975399931906627341132511285213878611625518641610665388319453925472009288767663245361384079273955050831543017371612414566032059101711023727142087971421114924621445939288052677103459399753671090746629195345223511947156335326347929504058652731962071237961041865975989511649801783760104274014887813175148196779366627831284253805929661587277659860738212843619565164063197371074607264027327835825660161762136887149569524193920769704264460053061785624857188073857302837141354857085850322085755491229813809538190181916943904865269041248022624423959250297556481621643868813742808910106985395961190907284322744329546827315887339165273033809532942821765305982193085065748988053401845806327903735375615514230692040975214230419921527843948957735097164481591534043992919297916563522556147751602692594492937329578219363689966131461281860307457870667228550829051739948614810750101373534266562379893060284629837411876285966231020235857740807259918293301944771313785555156842913839351937443073799920220871626637796619051415010622979505230421227301240850193918687573832956203149068932960159276445956669490095533709848814736193828159265108536608473685382073778220060187644702655520542892218823621973640691971363658956086723545592569748894709874793471282711333391416080295663015938040791193520560568388960207047819039034711206952704332258590100605975838279370830620053871075786779462140403242714102292448276542000279345004101641815352191494961607477248730322608407388258686733522851218503296965397745078586329972329361241797865424717614133093191915572547258659411962963879795798932065776847600762918407730754504793116061390024370115936016431650658647919000279201999030445941874896415913904927098725408191833600777725007380188347677482588661916796692667603019007726792060520450124355854631329019104059501782335453224254772063029342401605087023162620726447128398483895099897485400515287571644605985943961313871279463720670655462050985346777629614382057057227085112988703400185254238688658836979724306498144343145008310521887870426730874226794955850217028819645835178231230678202898755064567353423061629159916251400652352032106256790140977411288835561027025711221047955613267336426651404563960429362216673950207732266586017098055391342859629630784292413199983994624304600608406369387864947417389464274172383194348321166613580895072705717816326120435637994513400742768608336877418120473979552756229546615293289067344858860040531381966874076643847076095777289971126881288495010819113684502495983622459105118813308127369296854358516437430397984537309362137369675828500405079466839552017977694737419275800882298453828089446699308259092613276889718775300979312576326471653151795945832086977749162279261344495966711122177342060446462530090519528316098032245950923847493253477278929619735495917241496923182477561447936005045500957793639572221751878911929947325784970508879195432370965282658822200350288384645528417059003562657416055881390200795205963411826075661936337581524287366058179167112798523283736605133705689894993491008984137939147231309555580415462112793248172668380089228947017115273870903319551711415808113521836822274781876258027735811060330384160890398556245197022995207517624406847986464364350329653806746686841991861391099969197487566961598210838868964345367619377209429570074377161697657922993823003094066659534562238983530627371758933546094431583505682479303330118966595069540559743081391803244665406639319411989400865558667986643678808414248913479659821457795000790579749843413664699955033345565515614332758267380313960771730317290742830227696843374517096591475528300848417546674619992851312982557058776758637528003840119876390478729103231354662158599806287583645755674819428767563862951168723831295731591944460607860651097054233269027647983820990022937815046470027510128552050883345922030001960786068503459876033956093783920837329272453802041935714185083537855805341970318760638266774723705936851246245726033616906409167154275959656925700542658772678343553567326020277320600297564270419657597391985692740873029585891637822480276784556391636915827360032857857065672169035692673168148815341134438827526612336446631162294307744266394643548922460894496884902986833296012624850224798583646501058761702075924360188788535375817382645577471690423187980650729043214338437790460535400068681444375307793218803889557159397504579604116980654611927088807636866126300509721539288858904413045104753420435128317584011435442690451508957250371360891205004953717378173048407288908859411378416763069366246360869073868401737098474735939961568149479525986144668598071653969159366612363741904560920321824169945090751413483504438483542593863750924583456247880949724271046061799825304492406584412922015292836126213178884524872486356600433901931549129325166074791679256143682477915754137903625891908350315541915391458267047445768201941789580723813939530283544217142270175984855764263923204485918218029516885888419864569293258962782018848509800745733872137876329609202209905278823064981359230838740995214626498146857632715171131813136728548827414960631994973638283953181241117534482158919598395478719260222743847273303392912413455174365501038469664600297412934413284068121564712041130424858019300159196567341530735608398615360442041957172238348310289248306167766034293738322679293804865288874647659140147523572165666828718773434834126048434603678402560844062084279116530156277397548349526861704630820158390605514554450260537521313413568741652936296136986262110843572591111754274016444558513072989456164119038352881228329192515670118623301797258732954955801227866469519953777231866755007393948252739627784169159432110220610558714544750955726250685829846040274263491543229952243784859097013597992089981802902345822481941375927936650358951186468362842266579081355146032465628207548901177059264680003771142044582958414333600430910901417425106743046150482401430711773772609435722006707502962663140449467059298434480363532209168147769253488123031010386529459941456582587198651249105380498231734683381447041289899346078718953782748308502742264756211175158226234970845555709265082360240666426741629832092466417349082814830748050709670118163305996541645325422048769520673184148245546739634135717015686821169039305394770753023709009814068262571958474685953094621920051593464747579680653321111906720411780585858960654710628327889322796069338584397601655732176868342374024798690130187838194382964271395912194532036619516514740520340783101120795514141582728879307585328057444737191466465902654017062360782113907844252560405065419152470049604539667008257259135803585323919266442118970299785177966380203589630245094024848913112178496444477428418589301197064395287388412881752903480784103597241180284493760326101984426344552370687631292376836103429350478757947819624422822219535107295266817698452691842038573967102347467208701739416179710132119514311577440866013433537646258473430565803156557962390143391503443220331846421572910979190064118223912111742380020649866123976792540453448240917391167788893528031512718045361912848048272211283555504727607819581466218972207787143858679259974238699288426917089160212194920320801848846455646446205496424952679080815688586404874163827944549230980483491432083613168254774476886628176974437362113400278589272848259776321814873015340981544535741622824514967885381259249425978479616073342604348098452911697997196568875349004592338682468974700789630333203086019901688728311299269540303069805408206141427392123609814698889156062038990421214778818506179547289660167870641390787884143923856606464870457900888836505740990253666561867784211645200607245666873177791910331068494623732484338754342711980658173422917204214285562943339092256738434688008007461224627146434668440877408737944934486193399426360052864670321596266663395440309232715136781435321959251707627482090479728401606381855119893589532167776053743232840321879474444126111175106270696497372752326835118798727543073744529662088306411217442856228766261463878390483252576384262643351805971990496091036805384033782155780328864903165493164980219699102611397320504371743180146614955253443684044808125184894825229814172344246115140814966573073774990723173973404294353743097804849830190540443169494830582882243022635040412262874042678125662206862589221553678035382965756274661768406795960239474253644833919693295222066319937096907153386354433507048632261983938630302389266149820053214370449184204646890411496505859276207110117305177899874675741383221814604166203267735907414366007884427985357408401323908054258383636472483233240893636682493556870306482608269340950994613201518316583506620300313128292752274921904640544999777274091891859874670145308548534104163441972236403806729550978997637991378309122297416168538757114247534345012125627044289053064978036174248365522632226031130816016906462633424514967833907248548022671114557511240947707502155924525272578981871892761751824419624734903840850533959391209603711534592893911655078824932984236040682608774126364486524533448431286747569093268266576917821541877509547503043929098694887365853912501240299975841523593139448111290789254903214536964201791181326245824595384994514242792304149949661164757322163219400344557568056135330687988005856761476501208229439004314121322815799639646628574996890456365345894813922353973486929805257065432081077114513857554411101440814493990676134907728362142941962895344489803703860801049680541619429234161219972399896963256085177042674912685501565036578529065143392503294532705054987938352235685383388547407619782815387053789760653649759393499869953237108859006858608043110833115423634866092642816285869300105994471321573005419452068736758509566372997559047578001278161422237285310106265718136588089408358852851705407858440999825165240342038730890928147468882068338414085205252956161839184701150790217433503658426416531686158375378279110336738501975039408330917359714178615491248198577355128855258281967787558640163381238648536206768419290044413234710319974162218653324279963753437924640070284795579275641422895965338383675138365491009177889478355213313305233719539846890035695162658558206159066563418433796704564943389261963452659095322496893439733801386064931893704605565340876404657716911762952603630914276722473300126368151271548229373167654664565106988065698310422297845623483834537484959710396769103375433315030552743172075819173047082416460838605402636690671282522374275719810767335320922029710758856426041404530275182343739907108968366932674016562389668068964062654398205707830587526370250939919053620666275058302765417759776550164353663666545069079422258618590888861780050340595542875713509719151337198531775564525585341939984787188823037338764033825174137049548876730483463971061696458067113955843864045465296005867768075499055508358810463147709645585620261958172598811873853712175092572498642476791311921830258849707318408827283817338754819273113641997163521194183220887377343837129974060643559157946685874836564029390141165199752298420888043819782696978155413870830397560975383476031376792178705658392450479913282677867025112613359387914230193495851289456374101109072237542350457224815908899286941272337639672858139086503615798295074551268534373274041979215030607191295600538470159385762504302393458665846857614285578798937926381842688874351095830081215368481453252361099103660109664581473851981369451490912769449867347795625161553440663112191093489711549986055175182412678224444319368594652940246874850091438221979938856643631536953364203282670113924385220352751484242287222331191235234652064065150405055957411522614859661825883090108561505411368218746619369645875599659904955015813996255426289702294697813773725505915744115524414440800028416500520410144591981106761449991742000742150729840489684165157657463740609319278009848983029339326359774086644039128427834927636448571809743716374041204362459415446597764671965946632003483636551930380930329068284013263197608878196185017474882172976783772325429332563279654704414488672022797779413080475983020316808113579546940500651294448930492219194265874739191241653772478507392490112328270885656992113032634183909932928407620292216316791106008497441913213617113060820919446288163598407052950731413559658027557544570282453114076097416060103067707313234578983017086433977855769722222544205239616982377807964744044471932865544171097832080530353670806394743505439492830532216457247361458717664295609016660255679110563578018065074996261534330999364239368515992375731594502048774864372943063172336654888169581600186790217736341745411189353042495095834224771923239426897687125361940666238437981593988203587200071067933388135162909022927560471482151504741082675072824540127884916537240295229378668052974229211938815442137476070046573635019596868688329768601761457715452950246900480700135788729151113059397121389994088162564560767748453830284014700477623538587748225431310827020541911753339254396630463599695993821798808700476147090020306509927474717563166672851725830737122786437493506223916825241307165376015329419146842535324789145433298657419478108578445747251346340953445967608867477967300168956698404104772832221631105140627829572458122570235208101573084362020304555675941459663653542226601658814904327910997015719510573819518190624439052857404709723033050618671357587581324209793299199678090529416378018332067571081618504389917852473865174773754347765516433787895109866004373090308376026376555328944906153223738326239746970090856545875916173033153015530724390626901289889123085179741990998375001762598025037456425999853643783795889734353069439533530593902474846087663951154737928259862280845578582021260966284362057707301647751300981563775771748426279466222165143593010162580757811748749954783002421831770231070962712883820778705354226825790564916103723560317994331965647829096157973254604510410711238425644362971708255858354887871870891919222280704690217681836051929558488792532214316845065692834642902103547630318977108227453251613604383829144538815722881467254914691821040097137129522820241858263781216632854104383242424788683896478644232961476887975008173432033579491630226703264941810027695788460027020096352884605190741006991190137782309160519875795153591244343599195617542310915949264160503355695429005079368957558593534431038920728871840820922646221899667196937246780540889316911360288397210893868037175203360594825840838197082454155033175255852133626690320752461665479123813093872052891824874140636217638414015194128933042731956349705458419959444793074157299285106833738327715942780013870299220167308305693362981084826274728197982628638095097650376037606375224200870719299208353181232598499292101070817640507855271402753720901328168429355559902081464442458941171407230761705808281874572148464397087971792274167563080083710104053716855651902434021314508246570281529707350849325681018248200267889569011729906039538221179337942031642576043497238976794264919080412771292023663130624496612330200920797106538932169539328698003371256928704554777517247461533394909695227836274015770607051361539051888440080959991617250594967336626812527069979730634371076389457535674567933819925981741885546855765451070813506890492926821875766761630264401237121778607326711991201033379044848721431742320668749686127475818803406026461086850990177763015999990446695572798217610291438047141865848882925779118739348852821433602121844627842019557734363103791275025048980509624940974616669278047788665942426682785549134912080590080145328620529474554903809053761848236457317216986975244294880510167217166790584022344412819638604383896740329941804886887206294682617245316964728457187571950538745070524711586325897984019744922961905966846166225093772080519383917398094693648333500732781905840613117549984212988456968093468280561509560497843541886505235900523889511825528234353017213201019676660274220260581694338003413215976760351509221682443034673978899827165706634665996349689737938770009962524186007518457548176594555111166244479759418239020166396695345388241323947618255982540129291753528913453251380468173988198891273604385128457362297823477793142532755377457664115643503671819040285487229232001721637691804560211615363435823649510163235278990941504852310666653512576577703888210580376502213174917615447056370705276927584917112298038923703375337654934641758444902736431373241742629159479264177991438170969645294841011350954144897624747034502437784603408369493263169834896414574810161214751659586030365562505919740021331226764139365465392580756378633935987365429490608857219404013678711429412109056412648526366203219914342242618347150580065208408020411278515608079730849089304084958270432811707982896369306615320680345286209722664982190965294477044994505710683488318927687004721264564957722918546810390564981055821489693315380071060629644946277528714943184576520452441001793833776466891936004455962949224816517165538940718813451112767707328037056134121011853717323873707214044240424491087226233146425331410192014948671994371603612469796811447673145028933425848848934703247422212083214305676966615358503496501720714754084223498904242607120504718330180516735731037168230155488316098312091683187462689586040399166487417539495749508565992753134877093085924615260259074251231444162316808427829614257493574236873651271427923563265292009881068618974746469851514853161566541112614223589978496307317478748883397197382823787243598760284431471918306699913646474408354973655746687441193902681533968457139591346281557673983528308736428609471878775433539555624817064403897327435982744021595164453985084279884157720689360022576236652412230035418424862574009774017387447269061530644235020832500226515316098532978627408544369520856623383097700363403728596973267021039024937307668794390971031518398413104731987999967333110666600561327782898798270810440544969896396061765107136364029634120240940933500528393974529123059416987612327868517374955940603757147104833770244986953353384480144800816439069362241254473436658214373692621369489651645126758550811249972402275252665096255204230803868794092706733921146219976023488394417306541130374802666408049626404600482815326746232673574495619259277058779537509545648288675647827215164242773649053961825048176860115055244261928765570442304052584590952291334131739973510199515885494494435991596555075036235846450513449753880357553279973565659729890394076582598851600541613494868671028900236406536307118925897048571624629475004693690860333922060020856471495459258154556950053050831082268726939910973535883777339745987656428040332626580518678177634998409030026870440488752178859728628500143402761546096530409738862223869876260043678823153980554395564454278703062474648418972253808245696236431609903979483557858139214991021259710609880770529219727305423718218127570099178350148789991191129320386241157686787799967874682614212839892513163250233727183916645765565108008594259904931185803183712762028618570573236042790986335818110098574935309208843887786765941908649917495735513260275154331543010934472149541006546568305682514082049684446642204664817724758414251570138332299390161350250873255390954769546670286834726579487553042450774003771379927268706845516995535639918997218131903907200738594277248724944029248464776063081913150464522461540439051777915959488776255922513171700441218394584399004658117451088846360971867161427382815519811463952060639584910975003914948666721180012173204660941855741668785646363895411810057134796578928507721452898411392699203034306382785477196120084455462369809358426824943130610139513501157432629937855397067006708389436154101508012717777058188005546297187847948831343242552503646672022233665592835616122677833039170044830569421427433357313770078871672994655192135494142608553381682367423239424128529074490033873683605383839794913569734040718820313397796802759251537689025038842428955141986212304574191618089538220357657585098356464104809266645164059276542984325092743485194108358791870106072519253696762798661407777410931103174933340780056016860892339577715815069344828719114847737901116334902606641806166177712097884243273223641541429941305687103432397168985245344478877107982397815716419435507886008844147901456593425219701635564227862917145960104988952911236410829090806463258580173506623275705196499083273222613815546717541115512634159732382354881933437210098826899817480128960832057302165777162083984395907362858889439754867273771288778594388551923460319896163268207490510088601537370750501384161564633857253364900000787776866488213028108751889978589728817101167430259000715863683905804819628700096550900973733727736407422499817936601895516862307667512719736164991423548065000419728157313534053650433675155840530697461917169245913398740515549229641467679119565026769049972175367664619646732963726850621637083242746160365530379897874209779585318914160081843611583049573674596274487905354241073700437869560873765269218819144504053627559670331043136841962380546025690326003891964945221299546998034070948767846912980223527582876576978591812083926562746291498720629187951416461375901904766031618267705306343500817491013542671755320547827163323952908351651274175187165780410457349605034290523835718827519518893873159439255474198354924207103649579073630708928807983262978907144516936311056339951600736589220167454302809765073070245104449051463309574895346541551506378723190268007781167227172633033945777949626260063447915917679191037449166378403919176938737165475061118293458333847682491076122776799733273014595944919740132064285251412797686116290834114552374820356854701856635152775637615320820817547698260006608063601080612973199348512846423253669292369465923121614921228909577070518351019406841436759907142755484532428411099684959730204659442870527559999004576655330797663267270204962282213812001209648027473225295332254454098508887793294002077160263400911383129999800184165388984977500042000164257281922334700523596758271832137387390582505341980332665611663010642480275332239453699860321487835861208929833989159581864506921190277999267888362852588668887008505737361686253346673332656025749935788852410683385576921858774586053709124301651327087797602397967093275745586600362657298885292628742627100119768809848566259391857675431886958042846641567208748604431240359929070563575349133382875263419197086068217802905465391749270996080148710729761965787757256331174675880374565418582907836680406969343090769282941550109954468909527129147811707708599918638574369268631892420635050116418944715225683453361655142061100232237123408875793378230872372522113728528276827543392714768088286699738369742115809559939334975898916970896450765921712915557836752790935939056323241201175791947443304723347207598439319608701960268660038962070321809367714833879466912085432743795176571065195000899348501975345568921800857857081295940963376793525482046482683047556940444415028002166359549079641349400607998770024751194270497765639532702868315336533583830023315631283584220107239164920298406050686944605822064606221314829201902681620241465132350486786638046102192348098192214657048751988602287136435228386973141519441470014228507339618646300380760858529663822657568550005192564130844077813888882005681939436431053913842888651910010622666696695129798472314526853652830115488845230980062121586327696547669261542815722065692609572533162371790310657888043468055604530474508431447554162981260739016233964423377056859440101765216758817455359210636558374666529457303002191028019379970703643642650937719432652108061584991552747650950203794880657420512402544242076160651157083993691418808650524087553793311220418018080833492395539869888466035438331131545616796662442496479828781978081883248524757492867867942148297611257513600952221367034887458232751501146515342051616856924220851860696620781385194504603972404486064628819537517962516571381938123691076004181066254596983213434918855453082889760077603338902736261408014204042251536719301451010701576165793128390546643946171772951641862886545706490054449202577123344656345362784697253087375560511123116395746860944572768558413454588696242313263949507498724136742382604509600381998215014489449295355660262336150935145905429320505896193992235764043515408501717019139403973860584611927154731404238306665648378999118086800520981796114591477264591223971326019810168211183144244185366564795055121559976730073944022815151017408729102386394337010954210676899233892421208503169130872779224722986963650591879307345038482071987541095247356472060569260909825708259870832047130063745282162617697939172096018676784114498427419084105443297101577005941521063874234119575630531733185961103959587223301432467442240373361610489616465543310019255395457730910073622761950957800528805652110268033461647659699939618015812296425608871453346670411569696195385047025091716819520875480458652336150650112843736190309150037118671611178249537567289625931289354253418804748692071788338285716007387269799567388466296965283403052311841351968109960602551199922513014834083822601939747869141449790566284868608074251369445110950219748121066756411533335500969544742832676828966066596430944937803807520475210701074974937025188031588146420075909771189031378927718325052604518063393425940930348680143557747354338780836317890163009779380990865782011269324479994317553982583645825437057733861203958116280582615405485766349401200938402615281149307899111575016027649841835397269163965756579856507982464981301381991290845293905661260634893538752238010109814171676134923085376549806887773529569187118705963896030212862157620895060685219443566153752687086456416782141385367253515859370858334321591574196628998267654204755106138884368256332847793023135026634298226929576933265105888582923749979579248758332562475509938410916098898442776552219236419799823511544424880527090955689505357759420226866394096967240704128337345837896054632630330823944691962110534133141298117941846541371222076940302090221478894092549240897024910742489385336812586059305825556138904535285254060143955711961904219314949010004661003978590841303487343455870339349119115558909380792520650095083299712201629293048658232416261406723464182636413430475099560475491547713983360099220474446489800451374027040399099839569919124599869383079563476935944514617132986616159497618381444320875094195796193060242688864701333364217239994607334076897205209941591361982187902347291152771162602072364648524937075699661763218298968510915885419698543345313724026153790720308310322259915700257479714659510457743887756974052336288696540758068702435352353208823450471517169439189787087241021623209368995478240953669459535544490606393502496570746118351858416574477487223356376049875169300031668931721905196138113739670133627611194956173064089954593790669261482770414317519600841716618388848020051834840536880328062463160875004627584093099547562734372998486593781840955460828876053549066741873169089463140098275347548928856319819575326963270608093105890873299191137765528031598786436821962083878685151110139727826835301124665245789800561015393024547189807168987112945466960944967531056907694760814727515781739773115816364061743486521682702645165545589506124767994701771962831938909700366917386524556737672508404649801072996064426952351332393316416537154545249682251527412461578299608990787608451384568695637931323019069008729778855112694287095049519548305213419941449323702457572000607080626871376340614843810603507435439978647211342597174902587787825230226744050023059705737038514392041678434174854219548101786338666772850602679641362842103427767392498145436074282909715129761328332341435410718987985913104344642897799740871238090195259431853655344904965993732445263371130449617721350578208770763524676225751398277529835202655016904900343025868148169053195758402058418909727676663747027394031986609354689288823248537998899151797111004576182507141029755077602838840556974717053115734459228469880402070129639155618530383643180349588384948542200289766431323089201781405480909506749850605094933947315841396430907054813033430788045415701274721594063140572872142374313145619989871927237151063283311256326106465329462872871852371296452995043067608965802441358532786434639089376962125904956077809043334754534452915538935666463217647646125769209669888266724835591485342255126978438818707279977619982060549311056411688262702900037572719873150865997850059330293806954597150715643041168950484796449026860554446245377689293595376439109696493575719546151284463728484732995559238993190362938052316862860318430464365468498593646675087839053218076797307885902764663440916853483881567072250487660143800792634362004894871678771474496659422178574319578469607464493723123292009543797756129943491565269887017211477758626227001088458263290039081952846288527377021918504643853191355280231769970613146608386052453848671806204140118116838427855248841945873251296544724766620574693677752330059796494183880618449600778010136214173568472814155925013149292619247778735088636370835789107640708412028882372129413734349300675570177157013629167707884467381796057324807424492100985575655651592492670913001747578057312696284742407864351222880654349236927485529688532964897623755159794418265291607216725442606632462247156668864773524603244947426321131628970818209189431393920825701486618489987215696369956779858789391207832433669904840247478587851686118229104831790725053808552611043164663582926663696609877737776340592951904548149634560230407775572616356465340114249229873659539257432242402202246442036126447457042200401401710347379972958988434395361666671546773434552578901116923172468831843609941815493840098910660088701700002026453728227589459460470473785601257759533037393796214034032338718753007697632736755709103780951692250758174880277306764802013831720753790860187236332686701530919582771344447248672174311681317220400399450691506924021297559935672802996804337328288426183741343207739474525134549353932773359290808879552977280136220588414471694491837044677482053836099614547530963375416570108142547063151889441966309936908236878228656638918518593554062447984189018544022939349236189035798073851621336523464572399441011474147952831356550051718259578640657363123502256026547081594656829851110293560944359567727032639050416416229227729289439726466088685038193518070148736778243269284491643794761851263227745327266073726130329427590010038316417828472162305275521753171489566146081256681095740435973672909039120000980216011167778400872807837944360339743050768031511444415352660811232433570046105306774127453590803081522395376712772199717225167909466506277005079581950898608516046219479603741474169154582825841020927207556502008144912155160672120128986404451881928457796605422635325560954058522373070767584495908748030033535410586549124888461952738431627404678186798545857836264087616824130336963628986868241172770583965374703807941733076966475987071528027368025664522571949983654513042451825748407804791176401898454448203155153162681530474693780292723741994875026801364069974968986963583897956150901221203052401251438433251456074242529460105935501350173713536805125422245113084166438476075122985504989730507389003975875902910896164058579049024177587887518843522746208335327234468934177720256076657336004453501368916949573886052547105821570726093395772139954621543399046972766211079169039640905423672650624523606670900496187504396269419870059799765181000683907148875618183476450669568868643988418668558353463026333039866854282589405983010451504423759591644550440165351586167145819530232612677384397706491926441177531095557464314029148124938638703360262762215527986597437767466582266173131462628681052226595358355914587503882719962068921182064299104006222128407295304186570232593986566243139897974415269128640944818287258775514670130161161366989060177794250160800981500742658680997982751057450812157534673636867073008558648353346920102417206616492077466165720240913729315081137293536329820589900594926048395689070224841954722616577774620260666786287998217371255389961795482576695207645802824649909688147278794360448629011510856468561434533169411538173780879018557673285184411151260727461097861800629538477106021902142452239144214956910594342369736460370054933193517380827003698435484322464130277330938584942364850582519172655224034160657234808159552160980605634333708100261673439897493188934873029341151116214072351716812647685883652047145310249633171455703298628080816618052362271274076155706239821930995406952898138728823907850027462373739568289637033629387633767407342616703959172752822752362707810415630457650636801002244285911363790089697138940503853998094723935867607060835281021735243401040472830574457790427494195975251883841331118696900390181574387963582727808780598386665767465608766710365125533249715362777957178238334591028907184583118793995877284545555868394452131003074197443585073068245501117321412404047212581604960794918715779552052785137749521204957341083697496092040035313030034092728813775834019511967322538962573811972555905036650943524345021123602799317104356980625730816180271133183727136174660411832651890312685893091683504828371785100901645326506557203036348985795186762413183309725651320520311027643326749851521991445607710032036968459646746848064602377673487813463690405179525434273788591209255193482972289941648462538879798354229616820482015152491619417260419238609692888984726037915994245161144136855765514321204074251653588260322954650239035337904224635365910020517899505447133193374226465772020821130651911247981421385944798939649327434387750923665042377349730261507343724011931513842293689504509240789391360589596077665322832540868453587880493847317461295943700679227108871474683322622375012012213316266216929990499270174773492609389735114858700894191842277449184241664814419130328657065673940423466385797104225199889766720608844483349030866500402109347859784350019316159460520779530599953085972141085844838614566446277062533120086527339514808804550525980259015738175637029405743982627201697521900776925744763338004656910700560263335655144208570723558760141772491708019721692682560264647744331084042372316678637364328768193984291659793892419873522451950627907530937298317232818339261657702158734752489316619260941784684524771181823848062197656376109649921003704162742755346094732000970845941075357458161322074368722810827702181533160127233956936058434280798787998114857767950083039693894784348414372608870735379469534155834942280487398362092363003986544340840089761754302955196747652320835631713378848352587690001765032255420463287043639023057978615775542424767928590331800874187568391893178297202517719881873893519195258090838967429226404629641478218918111721204244714297509388109949185146355343922489710352515347740473214120913955559776576924251208780751098227154551419898957662702661445827648498589605596175701409447700166889030722349038303517110668705023800490889728764713229041226458294268701992567420872079505571693658806457890067418115401825139760168885799379266004257380072460511972882296344245436838995974395701012780125958225865223189374845931286347349947552271378228159033342945629379395478642658287973365430958148793049055286650829996523165912177521760162616036613582318580199167472170225718611583792228748434623496260681608142201019472145020916736166467261429420866915193449901388880901869312720905877394918722410277896114002745612596658119736409699325688309014184367247162713703339464286937758557709263624118250169518225421011874464906662734833944762553315528679952633978437924893672007874045087761015297043329913805466594880323020221587327462879942259697983060313455109237181213802728499001832173679693835093707104979138117128425226514905876107775953337556663113732286255213426729845827750620711502061139902659542330533198051888238584350514318961789949693208013584403083034512385490959048851141462994951980655525936430038726334011811060402981099731594561228967464752249031190122445386545555452044038403230937802222275380899451358500361937096305744636251964009581364280960379210802645088146899037737505683727331535283866853741263678368299113270710521648477299845655903147919930499547988690586487397665851069882874014391501493191960979448628806776510304450962014894886893761996931094959654969294512755030547040120397352785028947060381813305135530993352334108773261823328302084123783230456002098288742359987095573869281062062208857568262764139379434618134615585140114034580996589623078158868687607387583788680042560148740476059879504014693176982939134895108646899290193819425296035482893428350235800387434203425040441671517757398001975703024806977324464849779426615458660621155609286670368449710299352689928912902085594288580514280521501783824724930469106723091640541625940656647720956271923517632644319588734778526986086371278954600483997542653274070289229966586705805148500371027112727486467048940483664147605118226468795165007851080402223433319244477222335594939500812789863079182440450052107281484340226580715111104184559162477119232569681904528303470161816708180273368884755346876731181071385131278122794475953558867961020418337991770291188231972365871160676743668328922280745008426592735306762738177682881814163570437700156448232676632939569969260428960902559769348095393108758287667785423937473406079287032823494721072339262759233216523152678198867310457096299558799114473214953945500020820677621587833347734472092460289972089378418739355360984884623317730423706833715957229541681846808388986164006975594964699433001779940804176623919578437846478020323209181887926220057179042339965401966669483375362394327853461446165039563614400505444048400278925514485148918788532638091164029636951534007746980586567447152688105789822189577189940155132390927311933673052346144437108632778353297007600449568786729614278666065503913992774034978285905950459381352021504099866574885282111434836079173804419589162181704017648987377036960194173753655880704725841652314851749717427693131690873915193154111545710295594381122919744411566970513851586567608955765191040020994823013044211033577842614249364824928260190591762710913967752590089403603216812279361087559707378024789690557799941331318293588061204020272259268103781745630562031905688997188662296579939777763543001337713692897527078090167344759760565592707351031093653569383346229050692604011690571158049157213801447548157958632180578925653340146248970354110438357531140859765842053710297031235442992097889275750244888593137055283496431798608635027082705925924954941625908388945166186589977876749157092449984975068340715689652632406557683000286409018777050756166323425213147633182363098245974396660801349160850832194074485109856221154514191587167713547582840531518882720701448556277198253781611885296732951558488371715472247736542741914747111946547889527374790755520341455365029531498740448077003572271546642399452220179654886824741455549073187953860441896803850329967698804035542217424308278557428087091155807346717432336750653647339880542250468755174538732684179896215930991665322904740473297485212645464756322784512114687943972924527285529915427588238039699111984182053242718138985132254965960069835841057965562918989840904199017042571012967545703938782677448920989194531583340182607214060486828837121837739664624902726210734310022461772820541159831216141347401342124740700397319383815963160227676978329925472128623999655454723205697352976247793300264509590978080302115498697382546039361842583334696660727939448102377881407464328578158179780816048551091346064712456415671600455170294193319026585615544977172209002051955723868048434010674447295080839816567659094409941352482771588930307690245244713915791429168964242738911390781627400973007757419572487322435414040042688365706277740664489354872419824792337177868283793721438527078304083183329983941749565383525087840784470565509933264303799135110527289022692588088875212446646817895184567637822438035105679539241257005614054189928278482589658039617108075537277934925495438150326889169386920175620891444481040672153142587002698941243067594585304417582632717220885179905816180903308055066942084232895159277892006842847545403244100110979392336085325242229308021444356049077238259525741121926375283130837223004051252695413524525122171790449289873388589465111964498944148740496764591391314041486430258322380055479005934961617119422630930182154142524424686887757264926480230304831712412818849176206842017136001096268810347952809036907184644792929946132147323734257908709166597153363863896609375352102369635262304614259742116919246521461311592835848086102223485427466987891067887759824199457533892805439934621118780623647033227000919199806556210443490142448882394637472369819249574593416693156252119704872987800941693593319303597706163317068677532295950069578023847337089020708669116692085029681977060103459301328314980017167879584090660189937857519952686411368394467140991401404757672103776998153231056312391080285086916202537045801002749449934285580464205149081833649979637175663390546673512056817965293345314225169212325418880337976204171316101949027533708654959541312466979912109044809025102241525608440998888516437049097543715434237716650020595790154565229368080992283683704025056843002565982021067139769327155614306959719735658806391995755268728452181602616429707206617809606450243981955711666883322772710829449794991235708835257387038221236147828657087702766790742718347508110423418390328124071564872941863800849273637287598576925548300765615633782621314229293748205546022444569205661428663887871554364192127102365215141966896597147065957781598832568935899420506209424420266164744533090660766024409299426931205601458370609174972938406505530146541137463009776568827228498075044441732513560056622743923355901443949593249362463376452648800840106850384350535069789886464979543363134252440925934283965496604330394935365983227935800741451279754436133209883657995432586749669568931308460729670906026357638953742237475272230270807315769585704795255435895837629595368802981205210017157807213016318692783766996724693332530869124208996145286106827727709295163101118623938048326635789535327884468904426590829414571085829470076824662031199894981607520947139206132478354828080023200588532581922261403348707736014312958081585438815841074203091887396948461180910274555670955362122733708535669785676718680345882100142923860748730951017445162068372890728926036562240654997796645714248356783106805224983630867865845852697979731401998684288574562496830103789732402926598713861478824803536911787765194556974296013966825896847392074048790912768668433463782237861757856321955686670153407612594357794627571883094563500534911472298295253898014133113045507293938343039827671058350867207773688266142605806419293051492364628722790179675793288591538228624840786316397466837758119551343892930399875416079817408641424087236922429851034620236428880078196041839310565581503364251523844756517762119326691768409697576994495638624708264937191490205492514739651768288276993511367907071938702488042034649360499265353006850110171965164454893864534220803137815251545055156344698914999106056522272299935593660855112390854437239037560281617313912025571148784489848764088644200284987869811249903203384078054464398434406928761988100139390411932564858476607726850611826660193609308548581656201277162643149441656127111675607352977418258220051949964266416059162212214828155487369017524861953980676919101747539511884958321728237281862413523838034559650034849834800592193127788775009648878588282254813840022655040763990808968521465348411751610810231694328205533592287710120910886796940837880420388018767143501490222182028262050553829720367214167878963369410456693805223348729774496959481520167273183485263709111257421779126085915121215558831733732156787563458454514626025193587814404724758439650081418923972486772739713176291968640783064579073787307714976713282048275004171466030938669168099985711243798016373412869825502487444655191758099427573885562108769556800230244914258838774671103224594231780116587599540951691080316748798931228515293294059704973367448987745332681441465899387141251401736391283543885503286439685659933532111309782426365989805541866412601779093143826463074293509361003005385077987785055120358496009647454154016753705506664770866669399470778000449374904210267780371847213914550900713127414291994352074598528825899432959338177223006709166327622280568498171404687527784576361806277876200385961383930096666051573420293849983203158073371115558971520857448035716017349708012408164978645607848154429030232541550238213943065909875932647275207469712353450275082652773624351805155106990720328405977988383296666339473951813371304664958344710049825557762089711053017311366473779905424294311008137458476742705535774466973871153547045911888078842963736215886114346300611354087883516547839629624484672465486200908301391235938410834857079423274286394910388609694068314820336979048694180956256356419776557242024872989818328104659219353907665296548853831518953999544893622683473987184558891319993393535784761358159525804541181291718958986620554365106809489866046996003265049176131779871073054101128253647532508884558215201252133638161590542372499333428798185042641101743564680226468939423881253975613094176047658176538275021067787710058151331182970271311570484317539719958049290622268314732967722157222675456482363967359232440110686632280511714926448467585739535495959277362303987758931806122077172016473023163385425493691463199424844615659299830076193634408070030347963224491736314705807958898965068088388961671703493490806490375471466814937446395135222066423851111589251570053420146597998730269809693307408640215027329279832983296470930376232107645272127951849142959334494621601655776720022769816494807456024249787725857012184706638240899898916615533924366986099546261603369020147124428806296400134248499283395851287599778801930814040117951665951874991872094869837569872684659179673426996885714485520935044335659788667219703275791922223283220942029138567633685709911620581743057524924495691132709523981113492630999727732054405763859872835442470573705601121955202570119254574876442334200008051518919680982112234109380982399348475156794807992394783720979912625311703912327274451652747627332026484902746548632058935460574060390308451673116102856712320138618202747950916017642558149552692135805058718768959279473881291587263751766331569409504109348969502401696619179598670536095385520723574849827281936856189493914564602360879107774646596785736765415437579450998907674429584817066464580696505377026558092266925033743918456647463726658000653159750101580092734112976501933675748754876197697616808943441463435886797041094987003837614635285694271931121584318840180158025970288314761621982015321147645740117825703489749753822819945213678681744962903883767496943492591602476038028145555707671331354987736643109804318772445915545978484610697190804588152018076957747623259296861173417659695649183205333295643957635409240402370043994095308889910388458439809231578694325984959574308008140663734367446343626109070238102490632941504390477178961371688044457102451653446478100336529442659556990499919862370064828647945412666138432618903239643196974826442380783637034491882979440902539259723894837190140105534698702426386047815854596890935672982017845509357962447860399767389985724167829266255978292573102238755467291188848793768623910804642248966659273622746396381790380660366405492729156023610600947280996282676551518799027402819423165227861918659453405048476560836977633028624499628490921919963513951286333730176940983867141892216615669723654998830069915801877972772401926097099483547370326573890394803857863878902327178233262251701332802101405746145348730425910979598023738647091993606504888449687841272359787911268737876785994818422638920511727678271930593415424779662774339348521656750878730233987831773529431604112219692090618834848720811565682080834282087750654901455709952507699008926323559475496581832809556590314208830547121102515824316669418433116205730849458875435146605024483073807806305318155833581203816646431902320557816997813967469859592682469690277100005926479791109459144064557771585308446535570067671363599644909259520680481037034335896144095223312713827397885327197613607665280268669432885697001241687539197329163916025379772600632093540006208871488383055850085740920260017942572261382596065807826576196217064808365626726746537267669405517297323341597373162143619317484993173124017841566999025847450758674597191380023413018363007613185601543951349106652469917670980123897418566880041102715834240457118554249695971175538403349840992391768257351204102799583879208483565776381198555585234043938360230061785942124535694036093993298047338155990212783767548685496662440288370250561291644047338053535789049306299164278443878446096107031026736793846158695825598777742267166882912325561665964875725886333201590479479261849577220625814947002136979054412841394688283726254127216296643489274914780563135086419761447827686515054299458216631277269471496487817126246473938402843821412156163867147792437912697219978790911273932927015016162507707581006355000372941885147681586140462761912664665640851323525959257492961737598853258624457727990950079961347150900826137792006540292484852507362588444129664336884716107225892181004959627674584287844375577487205855148121991765410781667395337314824677818504694368590928274608122579758643372740825246303582427867652580252706724036693731298056007551189923330755156069601123150424953731201198280207657885009495749366884512800071194762933889709338237382405915651024457330439760255013110629470865933746323027353379842996818247057743767041641952669416925212782677137811367257993891202230990721070507988325023682700703870454499865038002092758812889300382381179883197054520364897567773345231095665963575158821766613368908258351753192413928177943082769325068545811079532315842692860586765442402786244900308552973095221202314778347295711312922460373329556504584133422484506387777555813233077792815222432179585521872285970654842523168993806909315082611068867638879465139205490087798510908882872152335992312745921272407437778034107201940032477206699891565800067445308584030342476576734113863513100867732955951297366953712316031461552189208283972548941495710827687460565595799387112369257858071229514250435162347959083664542600373778862900409328935706454339285771364518405006994657416816023168378160568886055692082918816561398786330561625256234781703405076142149869369778946002027725475826775381058095593266471308415657015530793177608851900600656937698489050734537840063507637863275785454269149837240444270552581758227718138462737631601279919106166743814599273017156330468702133167128918919834099517081896075078711261709061208742512271922772820002496929639134174406158327767221414739941758883204434692603996273107840282789002633179017590984336598606299293089188149001599824497889994212131061602772241969143096303575004233451834645635655117410945840219206994460091636168244960665422685160678514031730033069625243327131402646899825477680491906567314136927282749105928086760837464237300089564503414318926737280263343053055747265902056197000091234967035296057651229232943038090554288686173123940023865792031082208009283096073759913193784644766619063656441999817641464678736718330694023431300606702219259221495932010358826547202175878627493808863069544016440800851202745267450446575034826939878563527502370691956248422250102992541327357945609132712409364911717434773733528473138360005879179206398377153340610594156313249199696689847030344879149243121658954412202728205992410493281026096613915357012622901261896802303882900314394204891491082233766552374494944352698654617019086800515637488664233415493936922159174311492977689459265584977154545941829314530308613601067475451504351933788391996756769997456650300896034070902931092306600659678969002525742381551536653217675754594139191073722935559318501992515951344229400615146407159400922225185146513541724084666121398997775635365588548214901960201212775502160072607063811949798633230374893099735395135866599481124882568054502533484525838339804370001641313417721791857222563890991356951594064688967526110162525849747810985141383330121990156483984221508739758499476115123973011861188822432935925415551125432776855515406870896833729419860402685551033015755631869954012995973810021301227165994367503588659825069529070757511395072744148120147287176858551059688549117604233202717870265401321748064492580237955661342296613982709960456603260989469215434734637468246921779260394259627391720789619257887614300049002009431327221343664966112336973830122943065407873353762814241973329332354312952913018074711191570989155304970486004252734252906288303464250603290413103187596691140221649054980248320291688320573115609368279193796946034588625473708886048149792297746447240926778452205016441750155520676393343604044276314259997122910743742135383300379418889479474760133066463573837041176940750840200327376938838804625848341572222466629839202064949615764591769739911426122624249996101620426412019796603096097067202138401960592204875588090076007286296729252566596198724059936328992927224548096206817883708680353566647938903983559810317286184059904119693550729613800320018540096540263920862022046079705296972441985344518514137211256745861879291391200950983946410060983819399630410410514608996804072869112052614187084838932294332248539954633512393275592404155231400634676401367871211202642371399216457298799618515660085882546314091880749562609261853643900774683511462535599743859079174576042720200722948525433613583417034180972657926077197383660539241966402149187107735688584732144444709749039157852330702127031913375402294135853200509090127146618769535773425267412657950616896968437264535620943140316354175566354320572445314111490787394628108615787890985897800294999741517498580461491253217751036286098670569427102988210966299257232251582607095984027408061468282630799854576281496194266721397572383191196485503341264272897468570598450576621443835334954976715907212111501542077518832897625095425969825979775926970841313111204288001107196083200000761498699195513739992124855005842580404470276050071154466539578474053078931334105380312760058976535100150528178581281468151581295041326393597817273962416637321943300897016085082771121625590927075153610932391564577331977812129133814837055332711713302836410675631948099981408390479453942284294653283341799775278891339145108980756766297124857807260684786852476654745987497110143366730502486351526865173193797790620607682960372945102836444764645487509350727101472261600845353597300798352802418725820078524788255586754121076484030912770748618245493889548325582326502574072074904606557582496107209748065551856034805006646646953172866047234157734132983369886316654436080335542410670802834713234685109099970203291394267354989311908846827003020450466487608108925422367443392666861957983600006685118952361761779307410592497779168412491833550108074497367810815367588543861367605568840677508530726758872517481253305393679403611128157957313744130306279715523955845847620353771688806014849417206773189578559999279815412913709811034889302477805398708690202477015599531911573214138457966304700736033398599552439172753580011802128594510061885446267452081655969832408852389799198097946747791628834688895191018425359023809896921692782201634698843544499984889480904257770496872394373928745559654307184149879186158741843422644524763572282446606992934472206946349344406652213239523607070830552140127617606253380844502486780248564533728643878081489235039206700991896297737131280215832145283349646267919646052659113590643136981414234252230033090292711570965230946219168168847591258739182104332815808976550608461929782029104638566176675815961451248248948827131435363017214307612467165734168938470264785375329971235969845533654294325119513175111814160839144026014087646742311846660122376224216941771995374298824641378906812353115759097004669100525911786529943615137149656077710729491913304385293502360289490235475747311406091173533884108784027396668969768683392923454156082971247577655292265908028090780279552540819415880259352868593262830560949401756056079391287763720344970178284888343462264818260993410536404049759453005086378803716755389966758521841661302356066463913811837538424455265472807270832762945489487593630340751015646180563240565074705116559251694259577462164270046939566883899888367006493587320667630296897717740362691316194593466880867417716345962519061399298629258292019661850762643946282761801806896937198386527471333801791522121981134688472108517442627232198776227601927620130224029469364075197801093880566547238645894907742918857294110929027578031342404398578143776951258249755979160227949972330328272562067262990647271463050140517931770327575875957553321825681408396686289572715177055968788798466772128081721155904431085776049736947990231623185157398581499448760210737418615166143337816020124428073275081473100976634521348493791491695860767951791796508630979214025346069187200726423215335750791412116339118472084961741286843918990204469290640371158642479968532497100921446937813460264728537376345055025404740620068196713338586838480040033685351420337451166049414436693933949204036695503325861452455481316830492197841921889953299145072825029253761416324222590144263654413716746779639021263239192240335575902755632555552567481181688431712241788785502823939369935046477603589635449831504730872168798885815569750033389712188859651971943149658243322057258853348288785522958204764074402923589628995214584880653416715846503580003291439244144241972808571199748439320587534136092096375284505187127040892461190870237589472136286038199973034134935150004503095048275697387336840265822448396934313162069662067184173696240517930143736613920246750479497174938973841009808758627245073117145592413494074154762996725730364130370321711762380126279563216556229987194687367475805559075918796317505079519152394580021632418028682314625410590378090280448188596335487893552028616465494054543115587397544771444502705355430598761674319143590544728010373678568872880056974615592471740812568736535806690619168811695593380991779598295104269769167506927786320561991368224084078913941608231808555194377307176103254290424247059076934644995782217112395706510227121794953712456704431485088765048215782909648059115979730850419998357691596822540849697123034600082982683251265837082164191236046602871955621652092618258057616472754209443839483254476203794914547535003735939722976747523752984479320178665198668761157016249364784456542238611102468213554646270965303165564716817518694976067166293185822305121451341920604571257104707483576853303976765281463062019775022556701238745688567791431378070393260615126198041295308249161221845701414508520054665958375964411837156135130140779414789565626494593495437203457985856943699246904391413875853771081871722334781215254140039773884527698401488364606836473792177178781132936467359687099306615073092545006787904917372016469451703060615058512996961030061687745917119789354996089614528362814879011793207551671956489963411319879299337935414670800977910538988564023086984539364963516291210537988839070635633261925480507714222479684136112208540088082517410082459533261825000128125369892874045258211338082025554627535078511968134726740888313897291666586538467069222955966773546344564955076758727657991200618662748352731902949286425569986133470866043464812745908092435513603505317889377725836648109975776566388479240282512434281396503539972270997016551646523740622520910093311418371567988912838672619673721051671074439429726512052678255270448696548383660874596985661219814726156207956062028472762774359487998818553137285292674923019688954412717289016993469143951833518315741112387905713928061372150282613585708168244279407880818998580235230104627246349317389196381983948583099079171446627998398581209738879581860939731884403406369608605542830968442013043115854151496338704398510284990740979998532459711400269041529193250149357170908117237283430978056904862063562873808244069011083747475049956797188922843949941985185894229207826418780356961936438519759824780954153648042901527287132623694579037925212481426080309450608971858650023415947494199495040616645980926332918399988018506919501301771227287052411242798341911810150200463950255576315235600907156215250404883365833460073695726132257491097059733096716385549836174198519618148611136079541135550930440714060913477333537906448013225110641138788664203151322015661940635259814416358654869528047535929571129219318331157281815951272433702815924930972645986481362642314198037180850095292005664665649495859499285054294849760117560122878588355895164892553312488550834124433587886665133849818938554896507537726952621277776937262447163021428969036214453206700001849050072118856757159732796244299080587209165650272311168913763922489697008315379895275584130710944131591272717768172869413401432014741830404121974546138057018066442135695306560850700246056586224487849698931813945143945653121865561012124506727925720503651437503838135847253927055885730635704371783078183589317019572693726931390801510340499323041763076050296352056427196463013441556882708335342654167707337370544520639883392575398924508966049073993168375066857495642469565277026722323763931060213699726648791557617920035551346476369418750044145152575561993589245966825704955990022572817599661177468066112632047394802245750749300430246542645155342535950173556111761342108455151631953627106231274077482022224697905583110667017645978598309948172453385671942872891197335324106485063441425410256404552833761680087781042418128413593749304930661902157154544658773416874668531628614509818827860229361901356114017406840662391133000788582845958248416059608894560172306943144552157920391617107932520778325221908959209448161701246167630604335424653312671770794888954452363044059418786896335825779062200184198120259397736784760264350561571566539764044827537204524059309637306166772458865049839891459831862713139827790105459316637830247326481129155309316739266093876867834531263870345889609676474551187091077937834905232177413447350269204879602433717894465905904219524858512054223250548550234413484444690033671410209671809481053703844218406543524461432921707700352624213942103850610656927189182675698565475884360087457495706932446991159081310988397968614406065973067771717914000820451104255406407408230777821375382719860982531171305573848837135734661407998138994511080749357331317361126897402983568546135134972063896560114934532862190363186031353528637866200259292557303075436214896625242488468388030596700525553298201087618108923022301030184701713159923216348123078530809361424937462957331099843255165550424845688076864553180186966975014663356580532720049888891107180739047185971681512505275055295604034120103806237080297568132559865569291761038181895689577559169169918424193257886296332121376453727102819893919104286325758758398517969406200583545932607840443552910138053734388837415465250877363120575663749441468059576264161686552242937173484571013403986488425893077513694876129037362764721107827851473295359975063014306796889176804655395917967918470574651641084297938782854246170973562558934901582198074934381188680012588146682665533503444639344255985316370803336041155554022176937331555690749048219041960286324744299720323370196586666055475992487296365277022642973581456463332799569969023000105306538374591795471831315137973582970946068796685368276530640133954906747705923548508893619784375368163050079056836256694012522535875767107974609516973416577226569373347438092560400754800956669035195972535032306532231576228101993672197827288520354264377128461250409713603133042208176876471633884047127989926715292126081007794174890886149898089991201181439037627279078947423895667506410487231895262477260914976862984275236348769173397089338066102424575314793588756200968869104670098951549647474488511469695842424606084366351430767033563079939138889692421791233245765759470282011951906368098946391398977858715552859206977712387167720889902503582562413559928725562454801072922538513810499327535673920388475092650302250578801920278072911238850124115772892219464167187160958054954338612375830428959964493910838241299961273177900934196649641977231969981147070023724186528288066046914359326377282331608429451136171994129182454958691996395819999277563605828771211511986751366608456795927723867101312284034685990448794591746023199078850830007266803663236943023404017807977256965716209150132786139900941449308212988135756264517859610119112171790080284502749055780355502287245788190693488683757089169483938858100257189535063206490817064387551161831891916614068739030391174338264024486721873118779233841228207137750355479267442402577066368015409898459447120502969546441298064500861238205153264323690875036849077818813447822186204695244739449631537540028786507779815987737625613298258156894880353993576140720572400138321407886879108521116881689371071145089535873641356136842796966830637826391243643863948077903489884263202852504341286963620376903194390142054816222129407875302824063192921281520481205150853636188356622985891762017023937615599563969847633636757719991755166510172284357207563522505385006398767776949260415882060595198773424754872991608836971674278966240432440185389493345984047457317638846138110162437775207709104621423261705652758375413032998664951751206850545577239633026873293164825361794940012845407534060096640986870125031249780486697723586428185146759793666491656688441571653412222668211953631612590749002028442521983997741597985046257980056484817403261849735277816404967931228630111240094742832256753131397515140047176554655287473633307557639203465294593696156130962168980656590210326909289421218215923768459665171252531636228319423670825912326657487538508583888031866162248968187772595755592440244971313321382713961583804635590762788944075661650170947191616313161972380264999753839596231213637701536642390939694262335853131621101760703232274612841366332822846615730132050789836821110406335871549245069092444244264675367040776844401182279603072148251476023495469329396882209608747119137458862686575573351288958700201958997677371342119789258734030588507379269856087658704459871369688915861709494639247313899609520006541579931743570893606316386356506798449587505114284917368415792830402869415109616401999135392494840939564265319153695287540420213053061407623209250916811269370347583755000844213857316857149614075531495143107010428648606662994034834036599995399553426371077605333523527540693681106028017750741850782583159241968277671752184632268730151693132066075687373379869030685463400721805881016086860500689622358217659779628397430748239534771001918912751481277873509471096608290259869216871708862782033643952185716127171448037269859379608352822165753628174556748549091056045930221195775767464571174866471623297412953102291549575887209111357836577797713449636298507980207106513922141969811614630614275983874291129741190184824871023635179702094676878698462810161310308437578027080697717564181177479501691065959276035136373402208665055450356278073518484691468932468429777461061451561942545097499316478753771396718272863300534706304630778703807632229447395298332697823840657134558248305946933935917595882698761967973399850985951679140948830677819431647283390403357247701811528008781192264860515583234356840985393543121988733807579609152431403099542221108157778853454443593873075634079054886705536242742288505618192136539222502027759170294018556877957263638861374319772072371560407450704069553349856930082065008374734306682272011097702633879121733024666243357902376459528737402383992047694981857367366616800718477625713771963092152367170941037463785792173379742159594108538027002197595995932109697150512675624822497353648709546472950554488530309435482117071974887264178487913655814303505622737760448689153791983925101057447111361535998700751556715113315532025568478679616196631111058910260005019718825327380514501268884112947707835018750333630621038546261523193533332509181027919824627021419002708211906643762918784153342026543424121503581703212406614008239822490726013913026091438552755577229191759375658590694878198466995646349879613527355404121439207889970115712891508686412082944241242368429785015211959312484759426481740593303120026852182992594388069803860807944006665484529248911271141579425737351936551002201909722899865909511794424802671115388050998122967019440285545676061548197735552634910580588100358813771455420238078461574979315799301110290329966611422260335176061597442781665897538003961347618005002840651409926706467783190829429967932916944282724601327483569774236850730491208221740349378102332851319494698980942589679764585516837001879124508351451873486468120801801097776274980183950030312511761330505924160738575593940876327786473987414986950055167775005292393221512648754128004015699360542094785358224609464461486095243233150128906227257381707308751944529117572916803284800292286608261553441084710226140652585350027062067560430677001633590512482972427532152015496479854287708049515723765026163748618297677043545515992293014937534895530571739711628849592076805312824782350489313395049204530514825331995144388943880788251096771349104773881592998384859460355321281864269793903875874034998232353532497613102133981082331918093111827304866111483629722998253596167944105158668727992659030406711875044219906803250368162649138325228659320963730650310897965688387018807019808743902889287833403285185417776943548771003637347378992434863174712820723934411168442532613522831797968445769249569237333888394113123504727119685180868842805844211628695443419620846131495349060695477845964834175786306435780649478980442664524859431257940053575985402856811633561242492571347561432769403908514273746259461539848126865523460921441773024370890290857807308330292813616034828148006048337303390049504326435437091115180631893072831119612998073923022316325887499101557589873778491802462390152043209991276655931353316045574107263393401976229902478575323301972798740117067203347209512621828556671299273627837456942847975960597850495578530263801270864943838156086533324813973410358143840601223676342794100218320355546513338730099416019957933664008238585595345322934028511242626064969920746129511620055290110245503139051315537614891087212925736703320932911716311727079802095091935080808896037378709030998226813384575048746912555841318890426975870379006972116199089334013607676669266540427656199665288930665601827066233380888028480103361198934077805361161099227796183799390642079111532339361868357831442586125187547043021946788514158561259829271566968694070236848617366899163184139256803149318614863135820871776848281337773173603801215989312625936153210571701042805334028286949583209460349081008428126385836690398657625936608498889649886474854678369687963015197008512326051056713577271242396592128722930032924605583358605063176808482336404039965670276582682234680755560757732925460089882875925544293634437866601980717434912174683301685864558069583899900328207901334852774570295931589333586976791526466431344836308953029172132213347078362751845217272016739736712263305749428051212905107052473972370655336340886633946790193059602451094340378398531146890290671824957682027533904576526602344544001084094228831450320423472893170645245451189898177046484402654608464377564296766195867093793572508250019493967639692500671804205046241946928227297230541251137722396446371505338766262066708941195099557017764927471219741030927557493936137689745357634316734545823424865006184695385667341347160090323077942406898695163056040255324965517304779647083329493590039686505314440438447621585430579983987127078198871656806477148058233186216101984442470274716777990941886688094554787482404103925077115816323809836969410379021046738600243857640232672079745844909537535646420958776300341059568924805570686737649334888059357427660400868918362616996061325762720682136022587204805537019557028767444575944986702089241460702402228848029422905928195219257843646500659206707447552008801208264602662409106258611305695791644180158126223081829295330969689098521079186918862212119226522834795992095712194829444125495800210868496136688781948177853476549534913611665973836930718109128749534074207401708581400573937213127051001214994550071067193657777927764004707719268294286776470980857007239968067766901787379829505363704160571058183683717627744018854189500581328334133154414989239224427104289645053530419328629256968054883929389127551131183663488792473929678111221921882520254758684945384693003004824139810017161273021880953299244491564387964063136862686581823909936072775560856271275973039552403326420127132210332900418410185131077992632498538077056011099027914404322120065711277884252856563181561124319792602060346044544123265993414309874392941539532068038020967618322247438406338205406181414354434936473604917175596437844991878547206942716452482309265821782417639873676005110935048983429481561253631898746766617863353325808188755300145791551334084678378184087644435983473301054794488969240473314941712500123026078655972707902223806847871128414592673624141865904572387654915602637835806842363106850915551117216862592582861066507581914884831795051582249269082602860174148221693835500005917104691869611888861112529706767182219055017727690314997979726843790243549897615269129966181786563582830320388153344439938773120434202956699995420988375624983209391934037040738232216460957118178834676189789236114167086786868379830035507524689525209766843045263986344117184852079951681432223764771400258243204037944593301544713033448524679998852839374133787381819222575562966385364047484463344409513370000932837382097150278164490555204974158143186930014373940968841309065080929452589133593103479051974511069441081899632202633603716843256986961861164517987721522019671613200565648941848961638073866426909555381612213224050912941764376990265843212266522871761572726933471016986343708196244548767274019570724645280121842255663207057525340111091515251900654852123634021135139281242467626431951592224538461380511846747593805866073032632231452454955511986256348581691816194804130688168112602621395961364790282893716641379296987865804043409450743130395342756321614854500661828358973821387514742785391757860030510051850339758839806549784267151190417006509508053538054365015781099202682933559852469823257246271974461386397323878565853211141152982788594702558886368130733884160084911415308513852142728707141864636466722907332755619452339024431883397891298888907695083994945903712211233495447674592636114317979855277731175700712760472593225950789562669569239387892902067230445716997624586402457082326135495271401972867087725532078006633528275841554377934110854786046540186511595811371853092882092827473293633942510305476924190690123503247347471525502295814982512107480716655632082978861931404597732495136074804160321679532918116840199150522533190479258669187703855424240800711978083212199475496704082498154761975100244939227078053670325181316585225185963868857429795268931506767447124898636630901782364066941017768042064239185367188371210648956985331960816817818376495691553847054337163053291940051556219320694086223418160126499180707966471747512897552798830496032561696983822452104823662999775516156653969010937745324893002872655133990630128640797977930811969146002691705406731163265837991151730541447121395039095188049342764947054637445933027165843092730359769382978598183057101928367429012626247804072957985531414305216783275862175643278354249275106913105866523490453664134930393798180640476306054121483964997056614355340791930070243365185213433874527597587848334928374267598557222217722183882091431389114009462310753998626736206808296048532914650656915697123366094821937684355746988311703943652912385649496059046748262236498487731171917157150565309615889153022138537966021870511790756668973982149017773363634014368464649494452460343603735923415884932694473333758473640424325571640674235909824946755313706449877187392327690816209296879116326117693002613080767228707675464844325049687367716510789879085217912493771418046273725966859888965247072858493975146618103231200587756918278723957540313085293984819730636877465464938236462390422333069482406956198960959806598077024861673424424078702051536259837079683658297152247490288574799912334496450721843892070960227995172164376435514019046488991358406785782342142744999636162453938584376904063793829405315604013338875783763583146740556100437324072319811009436462392070917989979129250800907108213135959015035985803617001201418137728994258536768891521289130278967734625658412986789889012782236700939993935516950400834050210868241732231349942433369456326719570075172792990071085272695137391820834482950563256018630513191084553221721723480962941846361866256875685203148488016903553181206540903237826499155117473794892927706815252267325884113291684616359136647467269490480042335580784612137419127295693732003100736889054338959186084205374561124889921603883999017322101100448563926527433488906428975204942181606010293585815142959132695397968976999211475292288901177184840327789851395962781373763003262479655451034053343600011140791510348803451284793976533823126900705552994807792888761436442289195803217870539028175841783915560232188696061214347112854530391311748870054856639934499472266234467046920389959183536384698644098182060014792533346588120167380289414794469403245568572863543593470825502051153885857157976741242248164291680525857011550920921877611686793047097518089954953125120898005820605820972464222035462000861875308661414475853895654478850051005878473584170434901732415026563150157315692617905131780388695081845104853449234581735714621279776764905249934346567213352885589974494014820361535342602620500437089945984312347478068903849294026191997412591790239473988671722769358194535080893422752342505943530198447323993684776816128041197275822477345042008453589324296218826393956832814953612461378801629521782581234339301158606533436193347523142607483036893386522525384259644778413705215046866990550218435156638992916918288353016905294380530187399785268340429723463570312013362060852339332517985791582645181534055826342996126240365881570377596076598683511532013332558237617962905065128434385444348138195634167978245227017129009023898777810942746166952716812087748194558224834488870671433344311396864197979972985299088854511036760018301442862426279269730895187875180273401250604626450100271003690102879617642652677769140973931205304765339299849411602982876834383144501185899402841391416938985177459013212193803100129855510670441220032058761491150733964599243711082123222586161069969571783278377738522657342600956294665439290079339110157593195111893128125464405427048013973774888964801048205317037522537877940255468987248995050058301086054729421692483657888725251288258711706665565976385231897363343663051399777702845169965620655680713529956249777887631893844725496752251970786880357742056252501979154428947151172161192302060571831028441865393234648271440468743757128747660836073160351655501641635357026641469777894349294544109925031185565050972076245167224273206573041691887440763612803713978673193835775557060758506647200970442369394010771262030465586224031482046951895290693588155326992599274413246331729266530722415570153975631381375613516263308955772195588260982070685072484689697365946693373852996153988049229496462712280523214522066123408069978782958696486215623349884760431788873320042645228728832564092252094919449164005043558529649637625162845659394096117336383936179235213939330644015853932148041096042765758326747039505529324574626788458731471083253547717051974529228462231650500257988806367345634430898999624025346929552083877629692564634956432270116776648848035689596144750234141302881654883455901202691598786161271593459574914127586760793872669306811292859874586058595561644325641662571295970935910951338080574585246889712043667941309453032625579483541962861334580627868603039067549877570585018086653326411141052427349973686725543861005997033926047713951360756741404981938413490923074903328279981002038988122413511298080079772184319388121501100030624871041284912395896363104178130174114130596149177836174691721427112121916337302886871815199666952222816463127754275923357775719639097297914898437516835321683192791876043283195782274503315099973258735422737454845986081391514134656460883068067634444512609632689247787907550133246533319134973820845948773594980729898558431813910901342098476261944391390397836763163661507340344048675265385266390992401242836208975091255919989162304179600538530277622941768466221469429344669835680931958683004124329198670725743982520566200319239052132790141545173391897663036541364030172675853533249602079446067094006166498874080337955065225872728733962681111560343656012872855617583952705481590326414958834450671335875420276643010747570022577462793444059759987301125165202182094382635714918803994525777089100338503665025179301868735294277938691023277624099890426046921533023886175509010046120089322482965632454663036555419565895984015466726193275303720396957735698024114124040410740115327981337501105631875391254033104054686470740369323117360978140649135377350310669032070707371503459777717355228954197495760337620189623048318113397554238500053092142945398648580659042359739242855788944496950508540677943284721365569417691204924289020149755776593419933858792962126336627010305224019675021467682888656128672231571012048348007883067986207771860522297788345482089573283455645231749602762820215197067635765687195134062395498456483285500474056979007400175979051015076226137093462337793670647920880614316257548625014128327559044601560300797126980125042162900946031334334958339312648188599453975535143495976686950411086148259850434943149525799938392905945822183453430476608072551276791704107444839317545291423359068248258544522160719884878442872777455479660458482329337228594843218606626905570911882128282427732347936681733184412583915232900030608413575592176549871779307326422093512383814549771216417382613296503976069437903583674637099066116771990046889376387335140602060143270057042557487021549951501949093377244380222328672735398966539669733274279522595925804369141981926912442841653802198153779007824581939055070681706279338151635297116886973444395689662449713962031029784447351042997398052034147246780549375296553121807223362635423900619220345223357455917397724256829851220659697143009350485818600701505143969948596911988054991935114205412483093841489593884301672750053455734705695271123064925761937097322624208175736114689384402106320445189579776511591904017621177283543271541290543407894731910381965847471985557803262716073677418442984125600532401308230339392940830756181248688961072295858286039504846207847026468682603224838748123195956251458879056200151678838872552331601354584326335582872512713660945351241879002935319183981417911726274777860324820423672583044082114895604308778573192198820892658530503503481024035181630395456665302017120556438303494670323163767145584309354948568610104431217915741785499238253668549628223511532603995602619060971047369589496265113965441294386018934013050211807965473657365695785198632770934743870562861284412497734532570135942042615061014491110211070979730027805482363769812955546226499244887805157575475815548874904348425444884689189459163812063014567186040751659181837020182329287792755241272654629999603644167819244243887229648939945220403886085995015589285276888015021902787042547995526000784413563085199400698968496680925934722410473414711256217965218699761559849720342323980566673910634593146384463995823519995122513991749660017168198120584881086202561358658969869933602169512523923955448305851018519545015904951367351309112899052455123411964797908154469284633602037577574100898509570775938391443804461863394162830968156080808696381579130230105050154891187520775604309226418729676243172856676434454022899391297045649462731332019331827987985393589568913979445330698399423008858461469556718866486425134555613603251559392215911010318743720307539772451622793581407354345367980681266041678421523616495369158317377329440012949209244774481922121256327679854405485204864695987056661811031385225537698317438875642163229898115122303303443155809667318992951354578757060093282007775735719441116878535021817504407855307851090823941081652062686148529182964659605220622987205054481825174467745544049217188991499873940624618345952016214632716570499451197063733830765802781705368835485732474964476001716740022162437967958749387817199683322057486066888399325554218960069656266157721161303581323494869228923720956852700421578985829622826656107920567624229150405893549525675160035839410194458740113520420093382617678061825371858524881430703411019725298105432009566060936044625276607648189461709662298376841366815640194782817146538444879598987368112129010990829416306956505497396574481222537507815361090887924496087966477558310293284215577574306346537381788748549786668903770875225868422893743078906414230414627740552115437058069185362080423139912403226144683737256476601330974715010798356301412783002612067479313423234243351869620250299304490426804284457946320277593564523283579991170948156863481992828945996005153326557557726455521971099286355510844189084059527050056210077203688604823158467231907045618722045330333127525747901302275612631515932588195496508009790384283332452723653632063028911316206991583731037661694641016212387331833873707665557384110288502389591464420127758288631307475555325324853695425207722822954758946448695925958921202085402821097637226581298857798757576593375150425960249593536497686897763232622103587698307675639443657672290548098606318502291989312906883777140320737194005427537574423145783472140560678434658768410519137568880066803463728122478440572703158744211131399786775786203577238574983999463494746199525307504588310035502122292431114313130495053365492790376478486530153077358448382233025571575876513134739915918487183701887344822745465347527212471052457509720662933604162495617984441433068396300605808617947323240404344345496633805302224504747707282968059363727220710956989190863631165051673908511646782945975572785472530781559392047146328917228534244709726496833091226737294105114510405030143144805289643757988356262050089906160445926808912191542218775171292845426120050672356482362525513337375141750090240912405627567868968075289246520637110810580257299921883334014741649950611107056972666031455450786022538664635012860188679269170001842200184040311084850601208867268377168678488062127751644146858847002996689196865929675953627499985292953477589575365930283615605506040808193387490418627616632648349011937689201271114375001709174191620364647704633348385702185698047154187031121767928609347624396362889068851144590107834213891526205108367510345665850606735148519894611488740846767565857478281850004596997108698451101772779502238814769084405380553600360160760772398283912846052735357462540466797967260788097745976651731191726066733409962693557940760763673880631698532397327239673488776199132262644178968388580477814454988063743557315003306666852985077785242997331220851263844872746444335665437188549352039479300935503344265293982035945376864203888589207224999818246094789653874927774033024559239951651649764128507151984580593385791983652351813388196556769752261721378104343536656692740360332910052515032603177141680192091109542866697740945507495350556404949155067300649848713512097499487465847123657382682652389728398443932258929164116930750426979064492123346339402717540780234373447290792388072712094299787607797524428282528791894863129050292041719852519909712542205545671902707799140966008966482243924770582184941795545213927536822978975725892240276141153692366393704927339990819734066533191472627884847777349559682156825214716983623283094732144571308642397338732018252897515328291563595230689956821037849864075274717665031922518478072661839952997146151299852703491677031126874044330730919639977404576371433090913993985304787487948894292603458673280187644920787260160614279006498886984368505910212368634907318898173534754133758912686802202378987682945157094055005771175695464758037976882760537088740028187001400627651938921771628355988352139871849187879636564659777436143503767656479790526526601326589223353470689092119203224702131474251034278218252183701120972918787288981496253897177938459660312237470293988120177522087411950579202686386188343487292429448999302399223570503882098470113287215320640507190906718788558703073615016765023642270838563892206379961587882823881746695272360320438762740718636997926960909277477571540948125700419800205002269525505665155446755062252194181096740721108336700419308787756484788799167550090594274655139433999047762522941821661103949242305702871043648131441495420049669890987501592940412388590772319894035716731732507382107890276859819359568513525456097752577501633510230570041294155417619524805641405016457685764066479982753104507583398713249658651372063821979772863251654034331174829993033843354026392072657380676324293772397996563978942118209615011897969255376798641003922532765038606017276740208918390703015546205663066011060747494317102973232667991645484648954337484133296058127148814615619747466738497200476688739102745544452688455139304245387745189887146938174455289103890226318428005134003358566686081895980202779504219151034161321209083672511515309247928465443051275977124003204322409577630667145808993247865503299856439422175416003373144418260192269241169654304098118308674455538765265583209286155560019894923104842213289893390727253265106397095637520323095520134799284290473076517394488373922014663673990906616113468043723079386162246417232638594424949495363868425671297239692860387400689160581145562366711391866663146564230563741539069965824212383312668212221820074365123289690006437125816619699663589877086367239213758092955603659385380072334725416029426023439302328874019562760398609910352085771725170642561733964049086176817787566660341210565432155402226811283771835768008012895554777509707993431372705176497443847086875909950403409418804012544352562373202939093251228445816445104954777768528381785318350739976874087493676544162221762211929164682710856745004796204116586035430978293942828447156707379204200519087217501063025865424926661497415371319411992743729585452454550085122028965037190855239396196572488289608010112461125500811762620800537102217677043617835014991634898104013566488141331505232219474758747531060783005143489363532134708248816938078522933829523907514252075374573103971873232568814899195282486537111634345117648490518720538077694531586645114774020161401215738553598131900030350624432472817765717628153693091195641160151862284895167438604448778386377919832833429805151583611865012741626909358160643312290512838891130226499992172219333125556724125451182671338483190243198992012014716063332876949777913066040373049194219724420305722308853731395002267126584788962905307487402218078668180756426933962515544419947448722453223043915501449749868095661280611377799924603636683551976010978912308930457612990330352648060400062220660589880866093621165750066634003660618595638438361026059678574872058456431483925930945031817985244666067957492199852818115607419034621668399856339386131135022949498982535043731523109840677158560791679087742752036828896575196482852765530493140711668332137936195391388414734445035064462238262567275104775952120938912539910561425001662403617793491045708877928609334209797071710514614929043501894986381417694761851088515890222259908208615489970456845402428169424913712186921353692894886607478510680865820319419149429708405001376877230061802900214423080371850689870280700351058036635110455198809982568075927186226307402013991444738495847271351319298495466270885456441867283941581449199945710830270550748766397401028184181497777786724609429720694368604636842010382883868287561246993425999743215681301384721447995870154672040704170722351149519770187365894010398661586738243507502315122692873533782829336662176901908419894667312627209381873818043401754164175726317949834342231552132700158913266162482067838616284120291450957915191666047911415369277276205783649358865805229791682643678293540099162098216237471809898571370709963748353241873585830480958052849103231587899404799409866315711376892823939256607217045924328648634679478173513149198977269036083432841335712645328139823252552787063951761216176347506221827277932521384344000375486569688224139219341807763699626478847022179724977303278590905953098104373764755716517398486285253207854702800330006463156676945277618553790893293910171087705711766749812970321017527448380541077795959667716973695040712363266562477088377290398730563532734790125236765450559220683613602384105327972929756412246562265725264580533495630150049730384161599473233403810578913976423784126569667718553006121661929869895354927347096874723401449671980586727140591650606401768555579399152141381201160986696282725671465525623591886887463217581927962705778724191856646686569428992990674089867854315834105880929700846438890911146710280021320169950172359157094827448884693777824589429707029262118589072600806013468087483852424167867403470969719069431360643740671435635042454042079410009556564194938230127171667937119382880306033321537182088782376237364379427390090173031707094789754944691140569546346920961300907377797168003679854416282658205785330957437463672363231718781828727112496972386731264091366567571830528737110053871897599597374878079640929991895234493976785250545892662329730161023439215660076112376308024394017783647788490323079869385122045618220122829005248959389762012911406971179948877840800730583565747220621504308776353260948621701630674712791651647594184962950488332461746188543555273868194851094917337822745600875713018422264575688939479146015113676784864220580203503490297590340682352545720679497104491357622117598027090401286454416711161545725882496198743536185839678706412954994613501707504982540662877270857831750518857755324228483236847390728333732257335056611249948173817102772708109238695974225223743335114974812204156137810288725161529146926151222797196715496022761927530596020742941864635192105355294010852721082245826914387979808356620738571646310533500179369176589725289985510678763521573418058800449933256708410167892773105951584887669269831910744709467504025348914273711533358149453657360494703605891358346690637224743242982405283810822975512508905661783526174406804000837509902626981215547571932007528088389563810764415894862551997635525180923254070799679512932586467147178622480483448977318569783028981026716355558793307220082311840286181531807041720535267116578409554170866446125944842489721738492075508918047431412724053658340484844597583931523778577474564724903445988254059942741555332425952809611568674968827522205730088924922005660248160880255210045979678735837847583241784755947916957790900456188927146574219757552004483244994509647227479636309653625554652908612341157986219222954898363285863544886320203916639233215970164285437623979631225490493247569938483006560350049356928213417017381059579905053653760758736891121575522126487433532988585068521515864899545841200677979944797358266331557798461736106639802806003103443961949658432846632743616890673499459418456008144234039026361514327101856982232749565639391834327134014518483808489590452031518585330843158080847955159310961464347876037788734837353435740953419706904989133837560166197019992338563322157394488737767531266733004711223820651109155831481921702180584264692712497090760416454915156605540001544242128300116858866812263042683489060845545326787101043586739443149822269382709743264794945233297626019735765349394530642271815080263890145521021838740628360894741528015538731218781828219798388303007639471784534926502349186337753562501857751350818000548023636730827362008091922507161600390890468052112906115642565465146839737739571881129880411169826861167739001625133520591686704220548293069973189333430577153791377816061173438709629524790570343694146959803994739700872702470036553420986084972233012821664662985539592523669898511450795584641872753006740688780700105907100961962126764914589815744678082390161460189341289298641096545495222734168895399310515356120353882584347241478283935523636908771045363450753043982154824050301253939793142287307301356609341703450546405629910207274454261420285676097090848901249249271742642933020710651280987198559243362543688153742058169333048209351121374828747055370269162731111630422330449068447927951541315471919747535163948328514700201724085436348964686458834826437784652904811388782567849296233300288823730680687688518792361253152551179070678302928509097875909299795140975502677418973227617615473353820934705087827374724385795609171461338159594843225054302618999454876156748287872964243206280747985249054972100046842425916179111785145651263401086989886872281368302389445286035246870129123232781896189972873264524227708092980149227489378453229134218415530195859143039000786202235548412980848726559680156080815036311298572581747878308418647558224527689543359113211150508184980553692060775064135537654114020965191000091797467351118951351279616558503605757335930742843751014284625166298891903574339792904374017054794640177924221426977124803443170331414436619639990278641858700333759816855878371825809294889138550558663189862043186991484457080802536318571839208484632518576230399330307110927222925535649065952206500385747359003843415636477105281205000498054571116782427674607471056274201492657651085066530109727669879041404192508635626457205146179072993630906507731796838815513201472609862635198750193311680538377029444318136165079775504659537133121475033152464082529117219345265559384989758909483832744948223589319066004936140296089299037639394573400761820381327604557103256032505565353308421215720193475183635238143590478806364170498443385666610186602231392335748255734479541243604671964422227948540738265015391303220298806203328056412388530080161246925830019770741054058065526043865856164090869891174226411390661325146998854388011891930555304782177553507731888206233023352719615131631099075397374682579687880545792535335194723269830420063346431976404533217002153577959018749114309881784167290224470872257931383043365949783336401409688533959516417108346979452840266449735872182103594194645182209895923020579905918799265333758862707847860641657042442520790867029589251157442037275190723632412173402011956168620881178749303178553276329195693721006179663324139411320503845740832802626704701404729573879254121681545555709202277882482176763065668967663469076967612969236346485774700005559203389514496800422627384882293860779840944935259008804642998364122370654577867644110916663949182697005466071978905368997427094905977600358508380852731860007388414549113546321240202478405456565420110412491567500405225244500649305386693680926111711624864597237686011730016558866292242058505722330507849124813929346801986754639095186773482340782446958389701130533139176988479414407443232058435560145413668569724876718050998719930066756169563126317365975947924430269026260343293249425337149436957590832966887929174010168216811479335149325459644242669078766802204067373824255569365878431439836209361643845322057588572344186505162292982556647253665460030956474037077025966736316271388117772960411076419327139914674167022807639166790164546318348069148858221633062460055985674660534174340023316052915612425396374700286739865159262328537114641543658984475106866442358368524832304921882868426416104383960488112205144950835820723383425806225186107703477120313311224764735705548042515863529002883714769572267031073141537653321519136836603999101616298454578739312008956961148871723006911006774755636337118177801150121661198472562753702748938223371303175383041360145550649614255129828064040720834933622750034827625157576151903681940060452073255220017092822232309627643753775664273496008551146100239133609402809979352011280338287191680138252671374893158882812026196832957306505909381774505637884611659230076954678176942839615069530109851983892446694815079177037196389061839835693319708807343143754768794860853011768163046852538928534782277758887082732050637667474941848791241059355682460880722849973951001457181352616801689342964473875972327239799690616458490490576956424000972849211714802921002477136444513345016081801461470246047234826596643034737358674799766670727382142186444893455550185712122941615222178035147567164354713912327911201710581087674549137508667505021612597292772082291229595742682138408530311048757978384898386443072158723222257775017519587528700378355685313408326257376897266074798825434668682662618491180675430309608517561385711032754830215561496840926820387722906812245461246177947041061281951943165742272219026603026735839505254016710739941313407341215069311908724636223214391628247065346957033669231086878819676636320884146837368674254847638703187287775469370569981469418488140769432058324587713210823589691858751530844159022631247389751798485683656869718776320824202300573970300267995256072873026756013747922906042562573535280161517660783357858089437699707450468099698046084698165081144302393434054832065928174200112404804701678102770018729669041872081470227682842901131021053643605891594075989505470817769955017464159298209145449259557122998689255426070161261339469406816722083711586773012428600879759502826079362551939122564180745596331511141997573615078662993636296974663577214803844075027676566917133763444106285473684885355471298936172095826610731243679357850257349408784271660395629898021029767275047731217506282950823957745666842582601462339841673265880444586356047580707324609514079784753328545128543398051464848705231807398963189279934714254825919657628067457205701549345059387839175923866847434697491779984671938923949660376362575920535156883031845017168570885939387880751279229678734670632028929350484178397669025906535145163439096122347439597626553679584305306940577527630539247360773290268692956647885688742569031396615797061566949363476428509082599988083218347125382229894083889924858439250074886221059066549365590621137497260865380374355638050661352324183539063672030640568325571087365638697292466128109315704216641454857146261280850583962808304358096414283014851735044963833922936932836598360402447051465919924624469043176380063801524653244588743655159554691205139704660929885121364639514684508120747394170055840229591161883362709055426365461428321569203480408375478359178136494658018406497354450864826269856351640346150637688509258992199965665206843813176563676763119052207678053682066421161515227967853759029057150622602383646885079707379741049795572849546447033698136253858011230772594764141286991448978460152774836013964594342358971494702798630496130274566349842509502750677636626621199012205256072189897700175023795044118171160164408737981081276382781507422174036709427048102078501731724672494753748820027598360022936546588095048918540836946221980934269635029971134708925378842732606733685983201093884194093472439476665298918282331346006399074800989356392015327733160296084872118534500786343887755959926513092404442722316875173050680097053683739202530959094259352125403368916561597482253784372871568231101564441224377631770342344704709019059863413015030501416296718347782221679875199756686604915176383501167327966462750452871449463900349438424754090054008343570529187680656472007137321001189165263768107707203800508259626347056168372988475565441451132248980632551729449068442002002011214149568848133962146870192013745610823047445515308477157971752585054451195922033279993037220205152441823617635085859908151053648378112796696821821331025234698428340060477277523296217757191282571559869938445447389826730916753979313970476191791439946616510326059622572752025648497222962733635019559096562087959367117897999618477205277855504925089972867620327802084412724081857458922498619538749718707781358122581995763156513299750710535158121797321419394664599446130128401209592202118408974818772730341086578159190800029017913556616823346757105452214016825548100564994606183982182044111342028023022108599356950704264289936283231137458275133710412467923306546258428958333795593573906025658495702132220052736234684709553569692766854068790458451238970976219447607635662219538074505353693922620587365539008984740672698302256993131470615305457657983097317423993003715416571499053344968634253114449825015455918649869142511995396828785348148792238892171247534589092426875863473625594765855080164309307276997426291816559086361580379569123347874096753477591576528812241874822099124379945695368536045062693771689900603604424303611925607042521933611286170037990735915620891046614243234109436149936908948228385936024971122405084633391509696169367202207553959563906021776437586965181196666263509007490731994764223346149039374876910133081940509226707424268785345539383682583398294303681119139309241446164936152288328989568876262157142771500364629260266939202551887705322798912135454433113475221511943541164935796597490946654047322156655677545298677179704685797375422445990320314848878854869440841352075954212803544917712524637064329747652383756765196758286124233151251590254834769361385452068709996797535736538546449454024364319040665433050353737391893340710859915467090414132087025831340431736825367987974603604142172594161942536776518647763726317600964850391331956539035826510479959465584728122267505874943635577422875602041262426392729790358780353417672821971161829076648963123372594597001531918988466197300995076407770790598535413363656840361679800192963175832459744031853635186175056500046357074968364727908092542038239516702221495296419281582775459373511355126897565126240965648642336636469339719178947026860713680229096365179318609725469320422776517411970847010835316365232443209338567988433230994310749723955403630119964370584803629538329532202857738807462714370883545571070600155335143350916188503916523438979595505702416702559495466760188877109694255296543701743681710650551998002723489988883398888780048710754548488112189526313149141117786410802684672985770778312754134888805649662268574278272682929748168799566501993176837670938387889740673261575654280062602617268003305902236384895501649635916172460657661860606765025482086449468469518075539679191693675163122112150702208600965274680644844412242913828126727518505823068017943944267378334720664576118996105568505431758233989147105377104135877578899137377769826729884427609325096964449939867540227441549626117574280097747607480673483284290718151833430557259353372094123545443726050508481306918483043404656278576350559277172903157626698062976277812565022127914326919571645923625656693165871955841431535721559515195383081776669424104816326559262216109079421409408193392201260622072718667019805144397049448966542043828699223297186622726709363749284362384593140003450602808839931878532520118949567560946943101374894322012675479055817292519670085663629180607116135223420619608484009708013259827199466020063655261906522856838487019382110334251101219264392437340492557624747468506092747101438746465575581243689439704765806297211374953324655810458567707106330710249086229601802148795787521624412439854584923572559702614882749998226465258970612156080578753965718746912695725109611848994868758045325151554582782732422763800296726188737389335934166891004356722629134876495475630609603361434176309489977407842331911110484810099956482852639824859464359692021253907754982214099716930553505813295753570479261539391990742712606605244167704360327677970897848522729920081711245787453359228168552568114173212818614413949559859947368760017561492402437283892721572060713881345636443711251583313620353270123529667317633552326067924695969512785212844658555354627075985687827739301453277486231603550794229920325681171796682941631987867941885602637581051449726658152520422563058664380044568523451233464326811450113295525136258665409653720258219195642053060140230314525547856503730238827519301683744748271479354126805327763300521556440171453876562591951842443153353926848146076992934940542435270470694642442138998720063398011928686544944057614447085840222196014000170316197140320622753562798187642611400914062748848999823411938099805493176363353056505725062561822212671671593339433257426709023281880542573161992732704709315392092928996592209537367640617172401869083373984469505809584877447490003478491221957082066354262957062990593958713429069253977502657949738713367562526845693219107444339201528292512935873413252480019958800740344835869775828329489655007376664681393327029850924156211628778918572276744411932675595221953387907824808326823509582833807665246191060713487490503694071844688198514363709730661344597455228145082480347845687581045994595939281564015608607524234984548699787132233356274117184901037536419652055757015305729322101747835533686360184182964016917082527345143296685977756522118164787425034046314547568479602224752648084592950303409950204802101949168025815802831673810037229271618028224837264933885446828572873068554435578810718888197078518075010052938305694508239837927446014225160509818641199874315705264091218505389924355554002385048214101572801486696384957787246721551142092803413216735094989807358195870011376115110156378898355638979577038279434527332885597588021898916230858800677720624766659096910777612724911033020445151841646715461281286900732131672545264073984806744268819716836222264113628056909252883688499657582245145059881444697351301952255348393504966941576619513564798407015386335005454491061088250666708863845789201793598767631535198605740172157526144270181679108371946636741048798935234551453806918795332590850903729953316180763634558688087477048419856973918029729134705073948247639381529354389385653353688817585420249173462227934291472801456185998279161049861552087527730478327673560949029057003737526548677565044863292103693597761464620836631337270262734793067325604137426988703733888883696650601987573567900905844171425181012256330636061685327563088731108484157178303691400391819703562480057603336600944204028317255859169988477919133870809932655721212497037188649275818601819331136805618936093618012060012582129948744584500068789959040151860299373191001375438022509734833324815946078994228524638269846885215780665578846325071889918920819164644989847147201870781975304455903650938916254185827995259398270097494962053235366621668718182291631352958026884977248419373525144797924589592200801797786919177997348792845815035704222727465025219033439109822921622348171016261817314750963637846181113269391196693881488245510471937077889682208999544265685183693016727979788247843654618455037368252787605104031781581067880899159065060864160469136919930775749243840651966956294899548746341076483305346451264855048644523116623189135565180527908607315760279341470738532867937649310149114875612988292635498777888667711044029647201442078132314811647647696141760157041581761985663944373566358685845381673478192068700466757690353168960431549398503303917030236194637506505440926035811626741004911326636269122878802372717737975006884065800061086233637159855425047493573309367838552442286791871423021757146419715366145793970830297430234681126876967396277664024465244608552363971439582914695862870601290418493673149138778474720223946416603489912003905633948465733543618380046477614128224080770198298803125129542853236020342854225741207345602147794348581858588343307521449457600201060095551594374542428682834253479572478499777881066338918964101328532947506988487585108064484464615014613122265748103578353569799561486441575859236005570830866483361560311145526652562099359879433832299561903391123095129636912003489979912530619275101278854556787221302136890602403499938202296652985697487055715314841968775025494104494773442003727417136884239595505435594260393944257757313977447414936335563049561496208300751984063821702869270748700594276633886875485284210992370202779752566610830436237741240910371350463105891906883206157817944414053298181244233730078219601638660446148405604545240370977631623382935946146710953410162091681729904686298886398785605308805489285646218903671407920439294822906603194987486386994797470298648568321176879303993417033671529614780820225619560266538819152467355509264180655515321955220409384434179027628663741587719290698629594382799984324886510813712565334492993975978912027093871557191565047064136851135975855641967137092701810764345148578811341633341440775857919637470956507067990029042388301422513762850105138619136769909613174407428804853218912358386830593956412537702402839396363822426165242951213984933577996413239950760588323400602929488681438301200356163459535996275903437120173318682063674317133319372391550056621410930619568901637127399813908655076943764543237184664783817219966350898420820370434930138493669432230452198808023365985564221826083090636418332371187535323057752418359937437890102477544861545032038691647738357693518366754353321116715352686364436680651576947447563342960245211801485703887842092482249638306890289227144803597089333926882094496482699166708668692779339954242963215351445476941344171656057503559701310266855974319199497032331492737613520162101908869744479038338020679854355593613395493015157069606836937956988846548577312643072042703759780966809395250536590274433386350530449855259959775837052820127219460885269273354381552532076551727114181198465684889153514572025476923524678471318130949885217295395131011426526472226092287482106991443024612928148078966324595810773937268507577784090506676869155677058180082016186291631616163600447226122402168552618726105723685875209484481589786161543203227662938496517201865521830890299889381032524100438203538599785597496228188550953635585777520858275716529082695229601894289605408514007596952232847314593567494704015703445267854189623098328516106545889083029781535806111108496361480392951616412334830603604062570522724594167040297973985318568346043632367576859945178031817996629784575062823644338933880403222149001641298983073350317354182885720016495496218556310780006691223270221902550223132363286448748063469580050286961750103879452689329873523280405081620877741052589428774959164820820843646293095766780440867246190255338735365759003943686707751202908632081551294849598328837877719453010301885527958955294722957797815076543027397241557244452402509881713512612506900202057136455413649927328922715339758393920281404469738376731119554470829990036208556574143789334855053198041330736909815968613801149364448535697512243155720278169146761637891335629764930010359577301529096455727826090810558556809326630874881130733982614992481046166180605629023980178310677761752786101602969629055194951352466527058164720723168644243596705162000664853688403697271934368062295758794138594880316120104283043901577837434677782163002744112751332020554015276682925732654110687422801699509982701715704498772162209348870172335234753357556014594982607434487339375561925807347845089063138916139169152466753626360442624994215169121704984474230097242915121567706360948996136558553416669875080229825876397393897653992522553938602667452134560606151378863423010740225749674089074769181186543170364424094609977367904922287186281004427229675808713263513421741020107787853508629025568694199117276604000299045152912614887436478146174905588483508085723450981085458773638739781652161047085446218814930506666732154618314012988784678076492845282367228917994691728322755154884710452991847476193677079868446870189307601679771365130407411614630189292413058814319037218265446402177667852468117450892601273492963307123186953918614318041954470873901550652631128217819703329646403349741285450648011277874543325096912851024448700699401912377959588458278480133535655308728259257300488115927833264065201223692511900222727507403959738849446150000504638279563280298097408033615457713278954219237246980654753611940235096317685570316644531623777883302085008833857624999547205494709008097312508106517360054747415147450349478528252928623155092257113572112122927525767886233678279302739939740565448310377452094770358383096717164713678488219324575551641737816091892455176146179973782113620290206132209391166572108892258612883071009348758713152845667041953199104969034305053666736837060408770150587262526037064613349621093668260225747758538409836570951791741799603350003235011557772785215105972071780382099384766622237802449076591124039402395191790437776473608346044306674378041686824401776304780260924524439882346386935449832490471573245195291510902393325099370565592501950667338223267810104760487628075762860558071282265051883410195897694642945449023382209511857092899417630763050913912546368167136069612816111387550574683837243681019173437980172345671168266642565401387014764000257286956541070737972511364716694691075175570281977151724544458523603782048318833144914516682351647803024085831196901095889451307170013013975236414944497295631743391018025312654126811914203915329849076689537642746815360180083596327678015514824464403453033523459529922440014516143227876106608597531644193310416544330016507440904387387859303094030544398613042947169366407352487352836380948954511227784120526381908630266132131593501461169731708635199487275824605352278990851281871293413761734134654941169848915490173627967821758856290283818277558562140610768786724335116877817991508273210527718352793233848771139901186594239254664254126977453882519923687786617125554229990622310594672147744269897860439582419122800223222283363606715620970343397946856447865527593326001668055701522253799472671170395088842551960901088759599821438930935299330310182831414810315759983349708950621480011056505637106963926251039993577004947856599032892378507616980201096695212411204895163552884823941871086508155934471242335463227019576793553237475226180321967950696682147302138466552890511640971092284782825437747691080078944209159150288133656359073367642664029228548860513524510965819515710511659645998388065137718554537064042172615421669721759678392946153786473417458984548902404015175255836047900744744065880970321882840155196088125649829133862827378914367521131922793937727199940192333208652163978078107251339773564583968736998737802455130491297127761012742562795346901672631869985840566505921142479683896612029123159902671120215822972867870008628433273432335091222621946080661120042600264956358244504889131307034478589117019070892748994484070475694094107173028045250875040281754125652538153830260235764547763247415046686264463247423030957919326168813287722601194399120200895704059134884749973734152227070173147803066451870595470541669818973397368521309364421699083573995378683935864716891960853683586307148249604256240365222416118799873665844385729921661911532598015208061416583385245719863249559001759475049411283431551737901980939916348724376468084220932563386642911382254846443406687902968336729071771810693979307838546030151176000720309938994000462177478943040941316166398575587347336460898945347806562429445537098266676626428177259017680668441758854849867171102299598218495205296220084714588886468916056808834926300953347722541691797829940435992748664238086261141775542389373860499798642024612378806214058363692816946401425016402336945035177084354985856532105505845205283799284802654335712659473742602988067642963364277790980720865762702244155285046695554720740185390066042014572470713974541613679512211502437648286942770691570377788861792090951813687761375566453610273251247423892220086939511002141061835009305391122321248880630758762097817795515378432961505045519875902312164559612387707704599233187920559468946572072662875459739252226446249985261717940321669770342839002473281322630383826185805704013256208894493190822675709042456665472721437408140882508232668502225568642403500379287719713345582901600331679438298657608768489673176432608957011540610964284243172593111449055465121931714113194104278654537645341155918553382590526818223988961322029414609995180281100628087670474999108560362694136426180411612563992930090886229256337593886513799383504447287681137197862908492070415994424052964953787446377357497677934849004689117942802552942504685549046407754521311965239106368977377274195170227319049285637539981258593795097077790797834637694846320406191217311710855652316246122546139895767059622077739963131239154614202181492085075730590545121454487345947465679154314730704726890017080740410041723247470218148410356422693671616099195112293354618517111321191707384325568043145576524818327342187661676123585846591813705192402467696593434654723727580211656261449622096334781806001118118967571167636512384060454900515588284207593333689956399985362928798433933877094320349909833264910194814818159254116459262869045889154527075373640081726647283485571053114152910228473326395835521549055439423208190052957248264701444660199932628225385856773518212598489789329746185812059768275247594694741699271890558251942865893383474747021413094891881675418748804889058060694058659731851788109710132021874859960279567531114320401743103298041841784673888929240485736973119666341159296298477454018608815871130299664282790628378011045177636180118224545732691574598224140645088339178202993272962079967507067185208360035452518557883547338213363809683592721330094769724700451600664959780667714209924357295445658762378146920978063276126181733599698177708298165395812548426289471590052745479708443435294309732815220784814742530168488994728271046446595892347737140614802976735390295207648587443409496223878223537595176651567817722925816828913727971357776135556066566889645603116747243259108532369532779340008505547593028144743194937102911845229780677728870374886786126439938722297474861910925110722302111971405000326208194601163646180832257318547716971167705190520639308444585454775853733208797892852324542468846558137332969763866806424713969923596885521139456795894660465903973194654768439261413223815333759147535013943462668643634140641400449403491587683871813482337599499292594434346426826086090759974893593516177401498130306673506621916498323404831125643743109901161934366268085547047482846352689366314220038544161569165730697583562081383108780974872637001840493874293921951531550177519352273422008994544767416903338138036807158880115011454414695082016769641215139176147133138634910883678791682374919305053232373347682212044260197549949248225844739808814123650604355927135721719436358702553278008146812285930846409953767328878904999142168824730136752931510922000907812948489861922126799027281326207992611113067245232445880096502577002252027294349149448183016941108083391252711783262946115801038486281149007859428001810368586998448979639430981606143535777008681320567393548027144867235483446999482455291045687609557321626964430924405679736112376531436169751827685856700360519030134787175857886334867024623268489121851115213274337883933164048398989521531388819053649914881542954340353596337249466857678164303016364598672255270616635022711221612045323724916829266083078391822753949542364266901202300773045148795454034875236768183473360444004628603488572215771285835484610979711833110138180365757001901238529206948295596981298065727025290025762536006825922363150266757813060054743900196968750018747988362892986348375707160705629020260715129443535988215967117199291492464454134965062400184584922835236009031221925380950468105066499037281977950052320732543897824784186306163297293026942534881232996967643580965122521548465057985492576451229366705254855060797472391809140829733315222020518470008352939510857054024298758270100592333531571471386771337045749014385135305401648612181555928564460289511254864201576439596768327995885971688431566268669141246280638092987487965340126183562409027540063540254935529873944632921598939725020883318985897103891483010204936645270170296028707371606606375433211672468201378802059116688792719088462302125123393196335694625740543286061318773486997386338702961134319669358620646281487696462218559323703059632701962790024393853498729673483679369922667445601293363299579293218647752374148979321051881797094192399391535706640943981572780979570867724643016871780254787255835588561311522725704373533016763974018490359871634344215564079839502769307394787840964974577599040359009674983326990410103936398431885952922979946975347714809626766934865211940921908376080333018974300215177237593542761369106467198316488185211540090781543235327493087890043400595870118677677414550560198744292423499247193366432499066852885697940882777731756337096921766255754770557928687757713923542700838593251022288456609072891210712926750375067689845673851315191089181261457770733355645067336408819377382558423480160092121779448654480435757347695972397736604475254563659538141526107007482250169464386779041608487468468943895787491640551218903675858145953412313861353853568580401021510505681113786298727457852427029161860052068485538872209904453117349372635266047217265152392772305536691867005445699146814931904880649001054129751969034467523733784184853343634081052989073263708236337358621223288599818894242653250476642817845359612824011182988279386553569937580095098241647519655596267822095027666294316724576812017609557049695022732579874808230885564993183314971535593075524430715166631136017084531308876947856898376344335789004432755477089553288235607238381954244766540782079805843082381496377630819120659124552973459444491960422901386371919657662144268145956009544430908189225412002660462660036629184858620398420745445881775335233050670333244582032260954377209575058663316128944826097466322121913799030414663185754497115112227445285347163789788854100944383020672589509992770669028580540556730073488164644398938658457353610019404366916976952873217302443840143043770677453052052687125162809433067985139229957318401406778418585827733464869825073102923150270359561348399192329595890194152507744767425784840806793736046135464095934938725690092001817314733153864436996698118197738122698517720817028994088673005247077096157553402990207295810028358012495834311333882729407910002870101077699670328687411652408440384064361610460869152316982468401911672118948522858673616005834697136243129256015296850115292721680031364591605654959170818143353484246662174696249258864771109847842382618205750196615957870910770961356581187486371194925249806950461060116918859186337709109189543316003288966737266874786202971432685266394533964699365896241532591001083757356433416551219626211944423128576131558467795868061745775097424013745072197651421379961883408991980591882056352586649762270578587157686942554310874915595817757392644826779807649299362039479171541710347323267438742939375548568244068481328004552204444783747873419037806656665908954877099330076191220731228801818938471998188920383275174615194418854231225613390080013786917797742668901243097541017663869651391819564804966092165923765590002547290815089551663792678084540739815918992701042902022076982732615515171124550354878280039728218263518386940331568512454207084398590452346857480232238233726651377795132836201512347558644688587979867478994619181409134780635208656332259026021027804051366804424682561299724671484600269880783966301402242264419865340636788884471941664140817888673331541597714119442954173118916681151742111624008361952786855614069438859924206961187361078520193169088288559846175198947665085137655154261129919027272838134261989297272060772313508709408794529121992464038008191694186210402438843663842480456026514409529786279308231615822946333089440020617902558936634097876931100331323818446819029171430697809232298364068690008459222824288392360804694443654263811060512804850836435305685327303988295307725900910854411495018944192085596436826390067099650228006557649403482163135451717563233767924344731108209934979217053903011483786148643795642750442177360753957278300356076929910246992565810933151165463383736799243464436179885274244540887476354444420824359070584131779890080621134502941722834780588591202961034054935065971470410778348090530693132293602335748855042364010119322747231099603028814321731562518293112729679397088997847165820648777673508777737507538377368231725601095374523612129728403955023171793833789556824654695505199164542550733136667160747002687856826422242950439958228694577094370620563972794707913721123410309233800450878991729521586961321976814544355417275865489375318508327246963403649879579904465765335509562586628766412899866265898798156673630648488486460099753490975367836058209835458434758886692691180490190692584502871947229648913355949506134279997031011740334317324224303081556452341000603496489240754578618411800247697947848647109284328588527391670568955960125718540560110592997944032138283937803827428208953467863549960264142924491816825515484681637645018957829412146346957671890492043472777416465905289960491018710599314402660311454007328183813172276838397291241438673560642162235181213563304021283759338118885299701320661319422938424875456153139425100339553042292601166840782724530545184335655602250687813951861098078843636959741187553993987458724171867934561878463117910678825507108475379890230582931792810541637030881107940908588904158412558948705102957345311933216078858843389183193853863516911133831453798941190178252423632320057401473202109341630607114791151229881933350450212696148585608233120682083711862777336670815867474506880304944924746587878728678943581915980129533006123303653032145361764141695992759567049962832661946153657540534030083439774704650945907570430011197483427801296633488423702574835572779575292112903123426264758480294892707340217519657158249215517477847075272590578275662931781617934755092589755656356387541853487916280891687288386299386992546841796885617078682335114822845586194441562307458663976269229684603827433985848690179182504269726053949234505199232914916600446125933570427380370937636864766756039128575894572269942464759973279297457603269278996110253528329793372949817670015666591293701990301598806944185166020877743507053925532094589850782097939932896000275877665886083843120533187471806521805870328857249849721887218785761499397586236755812089295392106693518783067157102913657555048568276714009271600461663797503564900738700981972566457121359145326108462086393567889347913308893033588474530278814551132561371084531961673107352934349033477929668577028656412098735441272948032428052139854657143883406851042353788916923028507393968486800862269390814143988450396667113572503970301447428985394694955737210879339062556349559759591561620021504764545208988165786910838653968521395900252020960413166378240902175214993829797610215154113105599140970393529010979529010366864581067683444251016369431049050095828766031379742265246743284458087902827419535206634856876338990202629226367816845162698682667288240885714564163268847176394730263353348244149739351250003920818421768526548358187655837348059475905208532941410745547160120571682064484275926129434857885010389913622183874602314629417151037421880484094849044446630959628814263811878578436825853059110283750638001988905535837807027023450538348956409453250373284080257294151460200205246360992855136360801992116137818414802073820306793651500974885373646735827778839216439859682342851896605924148970017716040027568051426210147648902649852556149689451816438212915538294321240480214502895974725495023905634969344309513132563628533915321048158778843342538567778676809237796021988634022484755167555026118478616924723247345008641048142539795981289533700771928119504644854570355311267272815043934978451963718835411530944559037337330983686440869411307206499038049395093593359405065713754468276491207400956750351694709520382369754716657494331536496895764506995374389371846317148487348676129715805673233611682818332979245746683492445313379008679667648320573360880897116947423370290572883545420258217590214405274360045736051637849696144249565037620088672537440050894584171464302039076311483560771136620080377069710034482460866809710120932903971795464746699482692715048291840315558461038848065765109186200823280841252792502643296620417844644619118642381965166380108531342532963297512095902192960666523859195572224107306723754492893441487746684250218953299377102859862728246746260303000610984271669952544660282907905521531077971067384010991410185850445071233025616133602899252258199612062679992611776219167650543635203893251484192777537998417858743555399535953096453448937351896962418144102048567587766658662035502779481815860099296324713545551187958907385382433477678287826617289903249832515845855573658779703587795676789595677569190998640703197646541326901925556781216917192218938851702948026971352132079974352248482530386427204962145219527893271643437417388358872123210807989307571745696461929121893636071787042772989614715098819923363314001039508466549285641912924897819616357829165265114517929994195811483962290138861748523747561756199567131966769796641728554180229788517181756275414641914116738923437089207884381253788596342323777274272767034707902741847488119698634236668292693533065401666145307173397379000751684560032726709252293779587743866441234356009135866890983979351437206619441498013376604993026261819981784395604889676772661200417219671191740409425405924704870605933260741843347666307988890280531622885272032656069555368718359104254499496658774083153047211050528509747289348914675102568060474416661701301723688811829481912540264476839069209758759375495208407296076861392660837174601826693075241691287879041180795460209590624881409101271086700908681651012834303631163031682168730812962607883908003959025160663514201489843572593132874821778563562696958794386707302882904910011931964721814679035438794734812753594089243927046867753654332762256463205763729968379669118555686115777523973043154373547495247737188614790717092827107320849045148196544500210182308316870794066916744455963318330658004243481300571845895623928126474027081219092555001723677584982222156697643176926760309828251535334922595939710391394742854862919030461899829366106682271371907365774712140199218854287183044512510039531427858228299048300791619381981793183013633403940678370485176613344230783146052948109574539085063080660286806794592059399573026484354008188334851484732869405634710321145861930731707351618571447216832398707070174415065592536016418977808376906845732538336353899804853900302655657883702059508938355144983195879778927098190607328773602198511498680684149729593756854048744043157512322034312699504937146830130866445639571655351592567674703683179749756823029347580333543356640713724898713687763998744057283202501090127512967666293355668292420567470390799862031939254748977320805570360640683018372148016792126744642224071153455089759120286471002363430556261550217609084281021996205880811791275999408463420084365941654479577424489662116826380108324795904718450513253869739971575587169015955317163784371189223216963831481434445455038136345055998907471860685302965723186476065217949673330745229996490343646962950701635734848134202697781986061420028377273098100107324099881850259284426085076118449267843582477624266948295202411227067626556530641181959804963226407822554852648411239385376686081008406978425575220661079372635677154996989972209584401814071333342448605757375074907778789836957165746911533138867545562173156470212686347142091774710551095048699300394486569087127078709723633918294533455937540484279448839145995602046956552796290803593608166681753823062409135956192491473832966901823753834830876501152491274044370972377146835860214747683012187589401466796329021576304184951328880140671242166538587140268637374452214567668324956322131490646387842997683456507194955758042371084901146203857208876350032317524676450804791949195800278361378627432664148975212142245613657514202972411994432740369824417885895707563204334001526709842800748656518816453635001140777940098519413791422814142402854856170441848627844916145987471376286364255827537533915767912822817335462225483056603701902741332919222765595102085561500950384542333826353340711066047482239145115493939577117301651684422225184710984379375920812184431197579497491581077765144055030298215671942713975320011413914773734496924575439922807715386784080955263651152407314186461859551102244843152949633887645474432092805033320493973892095558442278086501194856523694200824127247336196817346362967851357512047788301415489774812739258990686826594222396917475195811412324521434003808779188752408430859406123011147109095851441835669342359583043106695546200963558600260791603769670992696671384421455771690585684953641882903851825984800936229542754869679101734316989833312463444905656163819479573331075738441285938629069047273348127688836280918831845090806142107056835067998490525835118263785333830333231842985326819184170648133655101805463920554807371481205335181998104781024939867558262753304012500611088244435856514800201133438227129928690047379123967912585882167339263184921785541354824207225613314139495526492101208132859142833546993088540938474608570451061862586320797080648777816598416970826967813770483811808027457874437428865976555980179778115121192783321301284382315897501465547154763468258193441130993763698938239561605473775151752772282516424794827379399694003362522907547586754101851352450547549968293946031343394438671794615665216199945930524383029961123945852089038440833442493430265528892188019151290250898363428147756192697295553865592559526319835246634460930652666126769250540064762074125358270398775060465748824588837258946017311907679169044118157126531762273191489658949454498467596724600129444218931025046811793434961246079194518574945240261228590997068688226274975241959049744659462520243331416364852542213593197006893093666830009478068520899638915862276633317571014297153950470088955976219183430021391212880930193815282656044883693187161194268586570973195997802494893074453993566158652795994318265957954513635595189734790808077112289353841952929825871794160229592054718040447377858404688788918022754647994616011360382837912374777214928097003862656677124383323597634752529347659600646407541719483279692018720413940603185665581592651623207520757500256527455417607399019090140513480823602972395146982442052410902776638789635959799971733398262616867528011044714772129219374775873191115123725839205387076143805930747649427754268552550303480785160992337903882611226848445729253790560774498517603743578419657670471451747935677517001921529444729327542294872187324255233094372093909298276146867247426941820122270226471855885982808877204935593967112038683772426162022391783458675657790151076108619562746514126364264031979978376154980015043288948859716629128305341497513723739851673471585848705669308127114029263970449726503773154435947959295898590151862301943488073792274271014291335494620558725618649799787352845805227294806472193791562452353009959848117908799219593398610234155284274768201169485261414269837901194828457314454292887835581569450383897783635083136861852384601796763441723211315018695486637789641466104131370612946515335307599424714164337694254801937577780743444906019661542281047881051094524193384641178426130752443947669898884843050038643226969595254731864652515453196519364389738460033087085985700085457644000579663918917132652068923914855825541900173151669787698889948621747129567377255169168016599185801405980691974046252600926499744974539970338840350050790608591102573210748692212031043384726783506850586891618484637937554729126638931500227508420612384479599692013126564242583546716038656800071918037613922331346504387120933337001447724731150589437943432398789174613424311986035361064648529655903360848766360308636872880642553864762915763012286046981321770663655433483212580411118283775922106203341731930053337877920104373320010781120886953184107507955393363749425138357815777271339770939589167838385988224709826691422360685178684123157162218759200057358162347813510343364053354973224280277793073186436388408785894329538875653565650357389539346863950834311302578509904219497671393808651211609430243491913347303186029943811902981553846106410573871098857123843997427744427575394917234858149368083473882595500227332026092232823955847987826960285024196401151602368283525702704411077145028190452183829628589535468141011639693272132302857092490437117765171843487619847833991304981810930623655143176517931941468836340682678345694379124705735811290813272959247565212965915720482538465683285427551356679622064516845657272325420414799818593204896262294325444999575683827152800756677452524279916229053786093192496397263955355358578913453889605665598442931002395782058418602179002599120234838089910654454917513007010216501294282793513410050098651384977636579901100559849557379665572612728034925767592317214529485308634027322004289626607266831786348842980151113815500208344590844390625726835007505306709371835036787096463635508317707425273899638494543961829176228317809071751632004352739998130777119452813376378816527313407925611190460215562734593958344171092834629720575345007342151847517243988538011591268142553285567472077496857977031047414487112416519573860012286687842876102850888330711256012305642846758110871882207146138395338583609140238946993680713776755587970842657891717266128388704269036791680839135971756420849962412777926032679824529568161534053380447240691351463076058376895231810420408329166899812815731380266908816771763630931084265411705442188016856510708102553523167894104569999809692412765963039950228589420856559497241432677209069242406225097076716344773682240623941100138748944824724058462335991455303888346602210839860290242920414101344259950437769588437569321985584962390094648708659994558830855595523352197882386581910195969313475939802562514722593734390845620463060377264966660478597250935796732827972493137058382392773871622588756532008702538841815053704054200559660050918737042546228334434859565581557698736275406810282580811752591495669052069061351222419233261126104531946009023294560508672568266724991180367667159118642994783263007025530716914358028484799402955735248897030235815931818689413921753494567850372309971407209990270629738433578501720037449512103850185852322279173462326511156939293250940584395282464183086803984373533784113187484372429589550982393992497042526826158705422452148706672801082588436901117236236185960084624394020635720540106634475940331611146270210793687727087478661229852855431706556586324076025169141067479706459189176761764104913295037451389796430550338197227000525110324631254947093396803196993319562316033029012619370484281561083063436448899450515511686726203313229908551900754428657714039717110091541992245181810721283381549161223188194394118886409121729924196661955873782095385768080829064574559854306782778671262732350153971378973161531477874758440139560213869359621857039919365260871134988040945197707571059986863597288254832201633988981610408378309086842716543666844581138786836725087810161518348711466895094242046172904593897785693649870242356219339634256319344913609403880753262452577544013922438619041263878029184120955346157472133909369863172040626768832626441139886973852311034228992104514156209162263803422030868563136033304835489344962587301130501528210228878873698422039917560846840677888624054109761337210055762646917591661145861272759674238605981489761399800808254387870166957728072431248228307316775901018843822864427577984364895158860226847206233769206061904951311488504958661139559463070957459365277050950835243996486884944150099988108653488661843447222562436056434610475655719563487019561233011901467002643599265747805108185021695221723690371258761945379492333543726209655645762285185933673938607287221174499300914032828664286055676897892176033422202864935978861797887541208224982409047071000951371275221614967595164147576135836441938804046318302581114581060018003634669577659547443540808864986758985216883344265197593657199683588029365460029253061966867861124262009404239841625966220910067422192954793241942012413639570134454880688946391150653414200884000921769177440262450136373618128908863509725438868878045815981705111710366281668681539511983242767033875181493791928687692851983766768370638391884205804377890858480696973283603531618826844544853920514904835172522260791078276617758488140431507561874592382841896780197584038735608374647428656353691298995648799678341218779917250311317831376218323282351534988846977448385983805168656714162614382917086956870186092558322504488120057498485187109000181388324384769041967031196500228708976561736395450709271397504873940141560899957841801484090136960577722598772197330855918564698425570103509941069432634974548175571305281606515697236426380455355141148021775783310845211145326577955183792426615072600904385186267075183119390225981382354312636170776127660005696216062676541176172916655655521693497631572622152315823113074994529063831620467689877626845493909854243258307089456232985256400612489690554457379158629867689484903951261370068499902121576570403531296859760923893939931128250648125086817634350797480380867594663893945610184984077261683870048217870471591773759803491933537387010773173640099298006770268692435180969849946203752323785824035534358728840977019169473349439626948710979287113306058455994384685102759263892431883822957225280491359413797709873712570642339321861544313305966700120934115354311939779067488477911532568976086136803758687398826305787573222594407775039050853953342063474219665543833075887277320600589409798950653118698788159188202794814053738295196640563953728996184260183150296162944895988462877328145323551272533119399569547767740169909124669371926313778324507524030209175359463133020535184451016379005799798578610457046525058520801042845363007267263675508269666278469986864762193451714409143440307320525544168909508661521635467095562158525428286640518832386467748115428371375854569356698131558657618545213575700147873571131278595756646409796060897908029300266878456033920453426787121256381836124807767489475224391700071284727577581125138945962615203700043544324179521356974623148824042114538308250325739852338588087174571548415586329861617224676836087027652886168056718952416838840015603369614376531496789767969567748124984811725397341763673862069562373843369591122675004464394366818900513450774222726058976315019157677180465280607867776864430746615541957781268420673413557014926782016720122392432669080614438574078031682676947634266057085262285186460775853647108552406030597374706602359681588791706078165631056308610103867295488620153653056494713793831307942138521110121144649859335837432495274647782250734292397475760605265255535026511652730279217488079260256511704352942037352807528412023764752421574986720741322779309351145431513082908678485318595504757267068023830821841356141751629570821574474707122673211625799209348900532928343089953956884696798937133966855594088058379760684546546441061265213088513133400400074497034601703773388310840033991526792201593606785541316841572453949717710392781906186248625908651435687375876752549620487210234091598836856625664582722426896303374269259216015799934941180746189965652509604487191832558525190859925480803437568810642660136436020620569385126332647350983969013893012032930898250034886408397818031772663817446422687872728117849668147243127375411682111375544523785469126504805151502744696760053409778447068437869735271597110947186346464451224763461952900426906878845129038762665627905997035942196928470350492813485009932689059301159267260166505286792445284469880462093653823886430121660711096645088167563790233074560083564298888101548607462751791233855099591667652757433640147549159806702787478565223395688184594120186240142588061136713554680278255253787982263240771620678223470441265344603429256747128278512331437380340052649846386353220793214853345163858808693423196680715367551067613249303587028604021793194207807343094426633164223242321512209223498838047179279678539197799582859520237169641451771747655445688983166050708211957720810497476140451609189034757414074113937762074011717705877416814784272653238397167600551605964047922935494112274345397878715014371989473931115703729427902680748910426198529176555091482473503054071755373321197740649973681698307917504405121488937878648610679763700033986029642192603600427149650647765226194980643469983041780795753912317311097794233806019235002544955130184649183772692787649210205681641841557139748399217521293032793025074476892843505007236357178373966280812230982651653236963622939514366265992202018612442558526372739143827766657128607523597154906445364762922825598843922110633453069339121822136464764947166940461485060717513327127609575148041515935886802363435453145736862715531347317667602315846713590657929759419300826509532450544732826951657414926144186370605228750046024102759215475133918141279497201004105564557401284055303351173308119495227645523457945917381517353290060467824162612794437067601413029672504696447663244905376615056838547926596485193502914962824022433763929714359682128425791283168583525854419269984215522937329475343204575444002993118503934937841531250436139945036827531444529725317447972196463255328900885052119566274365943225157824648448294329010128434898058458216188129540579509958979995842071020240758504276144724166376976650334140285947012245436719689025218534645037255591658245615919786261613857271297729155104201271823489371188743270901946868270947791522371924434296642505563269871071109749718171795169708848008169537655648431794951581474405554166301804150586585451971918791037733598984742457659455499979621266652239224535428211703169384206131968482272437069712923690577003938109449803823357633027487064584626534831872947509191579313906722817775562219603649702309191334750187414350129160742201973202762517800847326412982472129207272432522698569148012220644462957814522157328044093658619050418800273734931323384174547133328960881595061477389466985882328233137551589724111913177662708562450601875623239123407139503274986275542657375268393536693419767866907363331937466799445101694119491000175814179137175659797501597763735194601467561285628582992711858096510347952415725716840754515878633136261593130279934400406323977192476032234719502038368547313411941570663156061085030070112468093134604288050455877238901774343548506172801001478243302127590035221832131676996099711730047604178435810532679681522565936766045196954909850286851488216951767563122233020680495515395164944055511812363127169124470299629169611707143024130439724629853923402020239569400223941924606422213300374540747809313159273005800354232129523385434383390340903312312740380449120931817295537660971920125009751755875792002976613779197121328901947367504636752963760302840855982983849248655831112417873516177844856831054784315291241557597100633828220244743117686107061315270794780285174844181102862335331577652104594570319597755052128305040210773895862542941081350132287516611244082247293563613313714622395308891858506295475224377981732153956787918186126593451607866427746658179158369129877106712070750282233814794588003184012470711742960705303272615949683876463351355238413744112922298587783504162963812165738100308570749271514904118635075856455266880446654929827856854541569613102832860409987130779236648229139911583026399264477092084193664162292219807272661420876776371224729840859276319088452721969790514873865183431337409160344471923820604334392753407008729776871047581684624322307679967281944675822368069620073768101139459178897510830287564742943201788603315166719159939766642089176201153374999906713453124509129379409037551154308876242230014183003513566169415064641530985766431372422064628902660544458061998408636101070437290992415873839118555145173031848607886592025711061115384141880823700504202129620241842231624716139522174991280434918383993524007956514680766316092962369010715985029482219270479305817569902497738314868941775294037489984468841994834413069499527040109688533512158564028360122183782235810421175322847236970199414762323920885401091447618147793987018822200907792587839726544219804445628988452937280902761944341840118158591611272182566437220978768592883066800464163797465330124111109130258690401379029472248966541054544612242533991729346328926548020780656546515816124367457744338938698098484174041601957017931412745069129324316739183901287625020558353282535619485838101572374330206643913758099425823432594953437750057562197107646585686318880843058938453441094988760794042324397150811188704557807120996419448348178656277478972818873058425168518291969866637090993500803297979511688371179492898464747144868745911610504002506424291407537351079531798377597745001000340615687562450984941669261258067228728693057042700211670832417937167862309198227791356675171000982320154013347870938964317087029634859330882605346692699894733026301116147794655625606101290143418439105273256124174138527005768487886338829226578373309674043610956650971007761883974239335094468823238242972192632323812310514771145021891274091880564579803987995391385757961253707070050974695295881783828421192333585026511943401048223669953129131543692993445046669347212922868273109361758673545431189716331530709524099621169341807280053845603476263505858543080765591367445441458775638375070597358278306256776073587966893754426565119329171116049842053444999673587921765462600536900010826126360866307537554354555725088266637332138357313813592803868447905328608252591238059703986779967512441880689084881625915121961626392831132563372237129675346992060070235094118273509016545323813256284419308885181353772883563706668018366193032648801007574610453240512215491699209788430441236877008942272654290734931942697180117658764365075587406049411075738696863850952492469938719487413149869754550706170410411127492101180367371886986104603404349128528239507991191721199994621493073610492560037527418288819841413472043013985038536448323617752547728064389904828326687604488258989201771090484577952405502066399117763144862228640150188720768871437321599156330172650946612640692849600793217358856142904575162504081562634882192475542107715047800989866760212493008175865302266485290026962986789409808484644196153930919070447665100867883570803897394971880846470911994682314043850478446713679528797872955286473224301400612407409354589790703604429833622460111326554187755430512399469479313072401648781284011263534896679730477536586704491706083254505043278305190726331218600371746838593802182425837042621781899857744874510174331815746197948750938096334365546689185199126655866002242445030496412041576354733211821213003518722935289546722659721474439342010874781612113848877560627935100557924206436198138903917548024481868811452985663792082583506555098977372242780521739774969781379168495963017529954318650101663594699675436115143255329648944445487299634594285334969280074665995040584043830492360306846602458810633037312781596205134452133238840905643154757454244523585192851549755536515173677681697625801775253693372165682636665132626647226944967110407044444746452161565321112611765755235241058718176052722295275329480486508620900363183036968749554827818357506444403471002008212158122561013045454791173335218049335544998393572895223411403162412834994796909749949412755546197485500977004248760569833040823110942562172956304391323140435898370802520057921187802024851295398598162374866854649286828494643478079246555209160848544674384252048719174626951565300472264034027842567022843096221370088149146984500295842239778190000098229176182319285694441664838850633773883173276686871786785440574031385151004840816087371086071327528657538631273902814069360310791229429381791034499399098795653128727179146577439295090746403784112027329128940778597369591308496013373863512988969064692233061625389308833813680243650238489674647084728830097598517645522468122565176065105009885248377403740819073139394318127017057953837940051673543848943695519731990039570376136425095424845395329769925963519265930755597568545722730244766894222213440782711239348790101994466849132553685987058255487236320348342238887592696333387059763332877202784364486873510032581256490403692343202514585371782268745395097574674168024874429421507566829983612687612886019658003354006755441009909689061118725368170387437852994771496501301784364712002850961097488523204759365999600153839545632531902157863819930444066382677962962588369947303099649354534679825152052032570615612977129289208229029049952554007510969596058512478959309530877339569177610035264467893423240772294138091968817376986727742475994653516470538579555374518944055283494298008813952794430543063253373620124953371968516342979944005072132084774628862176181690533719589296041355015305098317135238689031208774501689520503492808002308458493229789649734623604609258570204750133511009428767809842454172424037133011109368056306329715875513148283941015571490151565541214429261733716310997182497657375851067159064311262516924168008087360990750573314310195186601450120244705409505957858439670623064527860523878525417634479246698876080516511019157886327696600202195915441238145010647822214456977774131150497533529496228887475994223374975699386374577772647164160447401604141136120923869137097897515668690015536195653840392238907848388635248361807261407901750075267909053580205857455174814680974741668884451457815295876116540914100188875207179196788376054988078712632384249950652388923557125222991930940718642506589388990374639838392392718551225705382105553299142370936525025522985679572888627436251071106070477374994800470444467116456866660448350909999697839845575320348462411698720547966805152392957085296601259412412563648792911576375516877297557454912712728151874813535903375726825196285302812410789600877911785031776429067763250386204728967708856027075982169205118468784434103917584905678243678168312581990585793955371773414414725579354626600241374817042815385023585383903723422846333510587605552831105486676724529109425459909945406402093445777595952110180918551024515371809097089623210602211290965600791588732955869014165197294809866625363319354064205628500313341978349150648298449782372334145914735587072260764119150623342407391414265325922050966150964820805428414944653707528739412482185177859329405946038771536853284451394369143634988828430152110707843083220111625405882594329290580313713562519721617584097324184663295606182651436119229253612880812522734652974617363576462654062221428558592393301196771691037686489010755614418732726138727786536491566151137504683395955819961190421248609896981252679976786852487599920011780444420425360352742375115018420616028240402446488106046558584377401073634110177007412294687834537317018004911002642280410723054718420155244685494244908891297079649396124341370801239535649651652943997156648295122027804346205604424929848686597885566580605068349133571314138437541182847176094164220328242071640596279957884415225018222776056977549444878797181347848960333806264575562985724093278912119256385947531162537461772922931388124031186007343312358960226117157157649078228454390222497979022295568954519830880994429696100767344230439431735221704954406572688464762534641664622036452557856477260234712557831189388495621487206680444053578430325601559460020312382263744323132311528450726659538921597895627831792997832914716359211537424151791569502409038892585105503134928196008816598823689396708664720717128033186052278321766950544349500440203138128846696025409847661703977015161272274739050732828860995023373475362860032695124443931733298594228469152119967247868691446049845247889178859493648052343230653672662479130167008588783342193201884977609725046659297420568005393458455424691021828691392466696548542907184299945393094875066778392688553246629578110356024276475237204920976699754432753740951980525552986130990243772367299324201404188232795240481543710564250168494075428436948380679150737526307869903943554195177704395835528528414537097554175299165786593781539168947354148982244053843826773492108135687107408742697553593105553099958079656304967106264556446524333558380546266862662749801911842035039564688889246696990048840445657414556233680884521822100428314613095933446700085119511022799451861956725322690606964219697064267279531137740254018669127783897291143284496403883043001017250864547810730223266221839903605972625107464546532135038144662840994982033748563516054970866298128212972832098309768404074070221678455741231943598113300779347199932492169862663349529249505811791105571449106559582074550096755830056791515921905333247170006061135390072514457639769141698660555562970129343913214906994804559146762114100660017733402823773833244620083224160601095720988544603265031940830465460185491860602607224422083891333125388839677472547686261642056383354936478212926137624609487888014884933079382793092512030943391079246224436577398849751415896452286903267925454590251986149676153743375253797961654446927581653749764920990349822116609741017678659866467583583285874269600080851526075645324276631142651318028590398191850978261278378513158078649587927869477801573667408958774849357836868045386777081663450996252350926287129601618359661528319249444374114038542837960759920011455632029074301603928641182745485085708177357390695653077375758380567937193159165714540347562072622734870198529195901300731014567113732190022243929698446395710759270787376036785749538136286613572290568311752896696948759568932872798714499328104833076300081614390025139169982042014716045377434480846713521392746986676427845618052971239802506548726280186735467623843382334752280600165282580984016065597455999166981613958581348407717689007065041809844244675731296336391580069981377918568643910775654727565117116848493068711269758201501199924085662479133917731416784246602897183196978938480634510483321608041746949229391026534318375413851272542393053567933749022856689073767955779961825814620602717337339310902527828610779358071105249734584841525525197070232031076188289036310489029185904149591073267714454626510030432883989059732940619448460223730377853083274110253362669749342820475963191055650966745583572331090520064256250453694082572657201288128747312949856333746880251264745414036546551535080084796696157551900876423877239526246322818373105657882681642999448912041342064299895605749338016797496185318783772657548543567084285412637534896463897669589759470257275698262026085702371140684662091037669838247037123069566698865778485448643790469032948245397513514395350695243188075790509870381084820876120947286697519689578693691816967283473777393645331680583312087581368151842980606339605512348164274979625475578614082022835948109328625584338098676635240266807297842850920587896210398847272509746302117721614667460184344393689105498627263440879881406002264883242016204443760130636993640041186605746327640520978497580179556695629174671068919746311123901327009923355084390519532076170952121226123644461470850799886995876540592468767715906092232111771124747258094764156007620575338632499800002297723658195898703954741519234878682278702858929443372765049147286265001353656001459917022687199053014562960820272060872410855412815498046718329061803136441619665350504518732745403833529417060451462417077293992310326691162247861992606842719165489903199626013494037197256770602824176841449204608324294676783726741621960409313276953419112403837115876436332523968093833896922253226708736924772095633135283498050079693027205087242575122995306635883971094314591981955028831787105697948100736661187874662288003396430724632108251941599580835450945266875545005815517588312214500449409312359993955957647870695368853377938718330611445819131808719940136435915643623502014620088847769591985834174713858840697637304682415963208531377858065849091122582333316563238623264701431511068316458432708047148825404966333958829257587745724363655580679524670706096907658601039571430266563076595795030544492341496714737078107024968034798142049669139467039580626990524410030295101298912524919314940749982949212072288660402003177474264937229070199284105262032387149108551485054859302685166830755983111036485375089078204235812195027965144228255056854860927301480794834366264220695610305067499041279438416961227304462781118518201162195278961527698761792803564128716361090329176049810249795176593224811265575232999329209924379574153315875390860137972303732892598300183143020350221196259374427469802152284247597061980851469158109650491868407072639832863521792066514412632771636443865010046008870356546315238716147091518390225829688432194908603369394526145189410259356744835826282192099730811760273157463479477909800183964464404755070982816508995154475062451864106153998405576118525694586142843589782844824173844517826501759747673479511103808874390413415238581068596889583385851650437078480146188904986195365032422172067077832634893662490799731129747697300861212190808725023263043424504069160411480484034597901730862744350289645756205322757612399747227880034635858399843804334698443044696597742756545626288055625958345001493406138492085652603452767946219800136714651658088754517084313493412599314132561564636340802545160712358314163090695109365306035729058934887181388814336095116108374249177229947513059162828705056684713692387252499281344273974071834622759138662258545327233712099756190778342286315215906938637490936424462387146910328827302969545732425421648525367487910366356681088015682928266091337607741763011585789580853087535122017055219799757862858881447362001584590886972658880568609443300206706940219580384343369188037796623827589871870137234874978820370037105586732019547310004931512511074717495872160873634309045106767910760366447708915304596883645923780874366077314953845363847639414132302460688223404222090255451361733306404596231429436105752567533280441304720799068111489801109316191926253179392563920464779223713275162127541035348665909153100212685129489920593572712429159034224355799836692787338612629254996869339618544431940977971249861536731917728897535198865953352390154438975578863866999256141697522302168993176434469917619457187666466479837353026898100616627801979522053024413631741842558814600655243088388275409298569472375832693048814476234148699449736051803838192017791710817247018869537916960782673067819417338457371009725160126819280173501476809429399027370454067951636450128877271197627080577716807871726077359746214887907745480843495119872414762548321296305576575523823084035447894639640693928054635559423419023316794221312949094470417453812343125463477918766684855812023285007449330688354928446419128977217150663784940885622748206852974262214327731274945567290703850751205970207379342715660289295209410075779328528511116435409997428561880812958923442701960126456464004669895426356386436066438061646110666066038690736994506279787030289688943310461820574550390630378825348953119129424790148950901135792405568696665961736760962029768807714130644347412003556500577285203809512837662219667745877006616960760940555035578464070167046295615084250644087250831852283392968602748655962783188802113634685528365762186144023739502713952683854705340758955360398553291935183076088314668711834452767900811810133671235364039070825689643129096947651167378662423491834674984066051205402723199644128685440441042127352888031678313746755329336073788082592936445860555958043474638876719449917870034952407629069815884434956341605240230168119409478013949538097074662824297789815686199580472682405109006311935256693696323472979662455678305289948541845421206103840046258776571725135245542875695578830931538573227148838589209715702182314390755542693466116042831227704487906940374109315921198541255699964615755306853948669146808877376700350267197250298938800800497034022483937999234777995974065940779845465610682658506394643062573494233910493589933889632505997315791118404991869783515449120878232983534398836577148798870438283240137220693118956212366907257996792452519671643157576043040758409882701906580006399753115737829200785922750969087237136267591557857474789422588132878216463944154755253155551725148414650278233395567481770333647629521753011795373980667119296734515127029615063376789305783477038627859364458504090632387652823712951576965531151902283987914068690552138763951267684502582134219948621903071018273367677722189584048899085744419688292920722563151490321685232994203119418460799195914458143444011597102795189585826617013307205779540990507536712124471682106165148320906311180464329260018721304106171389630069536666287567437211477893798906793622230561826408197189305863991698361935406645350115213302962924587709779469094053507582604313550564613465908982874147991569325637625549904134466784658107473534360976461101617118129690521308665999069773359148021623233110768956393363408034956561067460458323479778935483203102567854974763662750202552052459338860865618822473613345711034649040486323924739749506530393060322695140727299737670931647044890357798593200963823618069226305056041131375217509820650856316695595502564262092545564872308448521222960247228535111685018193202221683926943004435854709475602456552577290812909504998237946114611502351465079472152103464193865857243483443304111545089961566961901221837726327165066232713829965149631497582869219538404259681796914148345782229321450818058398020689487570845638651966702336189824938511745899913680265279674239837497118998239820557409236249102726746965077299877787961962904375064063382556737874593270378145799787551130460207953063030554196480556125879671581595679003478565921687632132837446230218319131833701440549071972620068833784635114186567698203018894697075251107527946843546739712269054847277089928202660078688993220075455084172598137772773797523260309567955778886697301448254843429179903005346100026592522960884847059761845864156929960205396325914998324258973600760477380490903479602821071117050639530172335377424287055136758489520407555118547706787681838601541059553389697635336003865021687372865532014939278731685068058359213816441873394584346024614245660719011991018404896756641207042168544379566118936384613037143894080800410573169961460399021319956782383413857342064726448181041834316695313825081250540106859146563643976179251747449309938970124038801345058182542915424321562504930465150008344524470939952559889513232732452839846714124673250179743240776921288864546611622976081788194753834175915441120998848865373489966834538493160600200275511482731052513150733532459006530722793595559380308454077822854923608718774665796495233574458354763653572350762392561524866619646207489159839006410469524203835378066110650883795364565745499887788550643421416687782243139778333861227842898865181648268653610841551286647304441520371185593726597078459192966617132546706292698548085080744504857047803605547711068815579720337622233150042331395146026125659883514303594355413571985950193644010763881733702003766933135483141037859839441153339567685828973660573332314483346127711394237107644784875105114655108099661313541972656579077103320740120011628748176505050116531036441986800544419658790357031564881706791473220677587246525188667183714061735538476110786776591739296169994497098853296119255927864828686757111156668160797150370686873216740421257135941662183034535635076203659699660074683176408435929575541681173190254058282420888507599469882135682671471333173432944391561053504511344925738497517858578092327222117217076147167860440465139214173137996407123328826025955132514850098348410333503843259512640727388936748863859838769030999560242906666012555730111294807853043177985118485697501604201938407111956718102548090088183171204607649447644111567231952216691259645557793457874231442600705158699620778895218306741247899905614500024433038404950033274020949279758524329374769544139069526908788596540961310342714178809577586568837966253807975103011767657032227861609266426311705318643321583264809455972961292049377220703167183904334820126802020368364977021136098498066403820633482377202812620906202598555306339144870477144737066675985730798711281506065717110976655657491857059131572348414585305981868390000207766644429966682321409329454678976573991640639849458619381803065804469937583626378756171393636090161539053989497236182286663234429229248652552522215858609299791155363253994927710375982785454932449020865783103412933954905261904272967181000905390982934647138293010618608945175642754840578717183755856196932556970683860631432438316787891906406884965221951638315797796738456134258236697696259133341024958142171135460568910408827795788143901424294895846275856541396585770093405435638269752185297081080237821199789277916802049271818714362375085622505472597341450562194413041683685289699836983566847236079308438645220866029151774488687588485096103528846730492106202354181716653093386792061911879899745896509279557173793302542847958459540765808392545875971908876746319219099444782868273813637621738630683031498540374698941719902976954498710876523950392271457806111722662864463302759625554356504248044253959237709087665518318030651115080496715944071558650278936830708276587961078913701052510954842266907160187260990349121592616904513389975624925768901816223250513775697355287816504217352172732912956785701347413871462887382370022593053842497768642539470099934555019761699451248539876199279591392175168504952186779786628837785502058046095505890430554670743594257615323476646272983710964051061818075489042258142111933276704643171291214367748292594499871786097169472692003248441872131593684394875046274896203216366449247673311863740766089404023695668530641844088510329824035879862404046350019233702757823945129591094547475655008522549942535568279117640502383382971608088551061364505915325418008542143403544181816725885216125412783785656971462620642367776696483470381158164902101519908462597876695954524789530765408441091067302798281012095167806634481974813125331384286586091844844138101699869329485834235330624108640646243829396359297468868478045554050850510060705196116095166726153031459986647075246162113423048802302830278004343196639491182085344786791767494329986012321683330828169576190990927062123830747630840360573494573838120056123650509543963118281264379476242459069035967789353857815725724618130560833662639255644203427506987848355607320575675009219041561526347471588032368267725502742502338974885123213636202590164684123485065702525680968102927479761838571457559240878295444372759986550082476313221674178174504786283236823799169701311340719496666602421547080948662082899015044020516635090107682477995021770725081090102516949763768194470711922655817257971467142992925143455469656026882077219346239481715660687008195412873193114170508844496182031012213927137169581935618550590267810813225464401108603089030265194086940352219821600960412246970366439697747674948380909626379769557266542523181103899157831700993730728625254869142305312704565875290553908555780433380021267576090759957197613235290624276645256450208016048823263942737044307649370181136497237779483653766223800289214020559992470882530789005513881172009205876607014440372465753568260907363832727950500135166326242000263914207362704137513142036317246502224228973504545461578167508152207677238190512761053071600200529663535540522837388775649787035434143276967903687520357100103586027618517452360095504299439232704884201567029820972039077658628201398824566194678608444907638852866102757163537141551504000683328610287303271038571636307042808706270319223939010789834291959767126989861804833584046171464523345072710668491698552236852975373980567634339256143928952408484557677155828518814617123078795075567626743081887507133194356186508586377297458483580825726129744730074964581253949972766141050465744091495013670485316562675921613144476103932312970676799745228490360543478901412618534058537205868671211505753101083185484311886498191825128938087623526891335497303305469352884885914960170588943828120747990395420668285523734745326852433152724328450203809330068889374992202699498122450651558813708226792586968310108894052144902698545345796628331853334476656950445749204917933405159800403884063278127555004221117561880534263866766617558800219405614519256255614317367296657074694599560328252288911534143715506414038881676557484023784068176240587384243035364762499310344064631925878091504647261146856712862746891336064972018035198908292657114366546582353914876911530880777534447857219144310574705956577290965828948271647123516327224408535450414865176443207782956829154640364611346042005046215042208622879545567785371438593972804366779627201544779964639333396639872532563023147607325244054945869243674176385331846011807045596290536529360972297740949122391766162233221379854176865518996603212662239525079585879152841308593328006979703528702136104085945091256022549425021141518846826043822426159352581823399729000642439532612479230309220741552012358975855997111727995338794258971795022521426577134309815958259045732283083238986553583154398511595278298170806207031996742175610747724473131339101795841491874906908561424372112788747643947361076014298580817553681086113818206933705591746314366150048305019698520452702194041908530996916286697360606682863705400187112834824030103534670116256689996207690225361879107330097740233316107723167732990392805152695631169324471566703902107313871086003081794418723701106021396350701399104870433429732904830787846707432778026793558645768772037344278440210810329416788254566844051223538791661770737167666912304354352052438915012965511544602226276111976568076458379089789181049485150429275363615445126782883221632892526867839448575420645621107247851063028775738501360392054109717256289681347056786236527251906770335555335528420613833833857823585975630977295234502782650591009828323053128813379065159253437472688140637680565202980496481913801931678013771720546795025037390955003662208893986499250744225681199551427871515436639245955911411011562788583053484335789782051108719857862232127561934452102871397747873563926931122315480210070681391841903357779422100283142933281122732066540138214833126930736713341506735375521634518000055216212823791023289738538194715653475994273333288325412810269391444168348913419096037480092346202283955001592936072055327664598740395172938744640862905291649965804796013789597492432904087019026430334885404283174113506193401999976635872697088071616767520686508400617381351703198430313041832408701874528724264844342728454871886344251848110773348677276231731289019944563156868745311285025438971358834727333949174851790143199606627254300998787210788190546731725152254269379159550249147787868003597620467294880102866659172033505071678981839061501826981318236603297027079282513607997893594050671118584447248086857649351396103689336539910539108602767413365832149238005731204139952450299676579013818346292023659682432924726082089776187146882218710616417783345291642252453202647095705213376407660677206406292080925728571136765112229956964647329976449603419277276298100393667125180994212715413097907758368787502038598472126857549154306853359714305083999694829320138457856986304730516734244103188706785781564518248929024330621300018184629063178798287268147057866668391280525432628817578277518956333175370492507573082645168839518988961753497004506853964487663862508351641960716558913012129147284227868943621527797365885899933707449993936248489791108360155610688044978251965948246919023182749560330252209639002073284794132450235964489343498630686537399929404842906243545075912278154697461833230587607460737233084404652203523440441138086928483509482324615574955804488332780455343899659442511641894804294406126491697412794386872036109207690127389943826087058441533419388962960035130631871967099202102605024992421665776122572202600947109551572329532823277375142902182738823368023321772104510338837019721926163218874938896940236823861973362108316430162886980100725042509648995648189987204114053619279799229557367918896333249466496244240950526500705404593918669196577251289557843962911577228512643515277863139597282220177260328893920767079253529162983318189905922844909607636669378734236456190009410906680468974101175819902562970800160092697823408008179508058834844750612274897111696947707829200737021923468896732251346867815586356815956846466069022637786370778789646873803064680636919133593897985757632328140031048979303837230265400386439250821070817329083964125728650002131278565970246735463612512916385669730978409401600715135156995762849144958846455772534471993570760857191424766973578692296132950887153965847736696796999177358429249789679629855568448631955514975650399778372406362879391189138297125537933446443992282922405097542468098336323196651696437007751161390923454073021359250737742161744380257172202901933166332738302373886638681302520617845104346116692999182679727402461016616168582577657774146810865658957620373185325211828697879943220446031530289636427457587293077800220310686970062704677535677719010603944602807691448356051456286294421296647936031515748061999867003695314440118735821364942050897898123076680993142875864287873754000729387982718377238951409674332994574430285114725735400229161800465996433121584242834264009873133309355060537445099449085578541149288372616488474426527473286373943401380881476459468918062471815041392499238857426971516014700190023248451909357620499712234402928529193384371200519926031478159530802242614403210419841087242142051084238526214955687733435134067163501149281363336279368730554803793979554110268635912080948729005055185750920953138369573166579066192651966195548266804702196740958244541629301006936029120044570211193037073858543029487749848483324424964477083406834431171534368610027567004129034687062870260750320287887288766262822672690009697242056796270125365910652804687958081638421277488650474015335538630442243353089433002458399815798874409225475705177981523896695833128784314499282901504966707235557645737041718557772059687666545544350684143367872298756354648184263878302727633034529818949337951911873331977489768381484467767439816183375192796763815594487757563117261990015644243237119266404959076091027446908994327079457356490457242656767947231352489355007256919574259254313169702381259661916822063162326806852026923806250305401060638459770336591134823683237722931711222658364366419133026767858949030845829186277565920191711470607840246771915872325341276302262518046566801418882986554092116473631632468085540320469590229719917498215856743203505369821350374559819835945752094863121858490996137672292972154319279179429970677917401468776981333988592390686649714419387384656844087593291466064197634471392622108682464548485092868252500696846494175748114384402846156157220937457809151635683377818018711197890096990664668583375363437897489578891724093305208754711545901868614796233335152535840870474173425224982237436071276959087577849909723521503130371989979346303911338591890457025027475690601007536022716660002554703870524960601641715021893217993628996226710444822253459234377585942845965109040823272791225570605664904227168691470666223905863614345376875518573032585282796693641487103974591010424875253758928823537572526050160287595958885982698064736880911291991874984899671136954163806742631237979845067216878149450447998617174401507517206865341699962986316442115923900306269552930434704725145595837986975886210905126000059892025882560997639546267159850655223794300555404662766113143404106952435705439221158322982575001947162504820088388495822704235096838971744220307009407079684597259709248740779152119736866947117372952442988092968900108414525639581423169362597143458761238177433583961339457318452740920486934554002170416342805186038820958422647557289493818305202256139854650391781885367058979185341125411538395280604748374701350254615572002441811468743808824587208181748361811581248469689670493245877690487133876628651052878961434155451791034536614599527183242107653128864442990766807562412387605114889592439696940197307546831520696441204946231763797503567687717536636881475134776521767124133771430494172041943987426841024356859516382593029822582934593185799981167770894342642290808612348998046346765002187708659030455707432221001336504246000794875508339917803873770832438946421977531325588552993161825027888402199855910851348178741448446819430671796322837686918837119918776812792913324556246523189859831592633063307759499369436068918982126407792798870516740029267567912833666414547521704855686377318147257912516716543718502694892824474358155875266993437675447107622926487520774715212797336394624879645129984264561980055048984633099168993227590189528120959346245256738721332615206818734613269719278401507149017231767684903912209986044536497622674016042183077291732748089650024433434437175299030684972288261302880274460486531180688029737997646486506366504812100819996387759420943350541546316890833791991300299633869707174326078769323866879998790504990976746900626066941694942565024642020411044188334676993401045218708349966493227750513687142685062886783169608387017744341139996679399196071852026423889935442658635975450742839012834679094121864817652150233962959013923270687417840118760237802503974383449810531222538089883819534788683289668704239670400770266788780995351489388932482189288149204809087197791616573786005674064738999680309961126845446611558193470882793335874997492439461951650440750074240174774947199695712707713332269394770316487136499352252886672153249333019358123353830049601790858206260317404161785799227928188295973710588085720332238923329037829650976188263429266148428952783292544298572224404485062407613703323250945079533783209566563860952464472817429977459061371413775825075395106951683996398208517713948181741232920546759482898134724062486054157465583338722787332847916465504044310859146443675449774818221784647536752561655824075113812511021608333674687392909003558480393429332115466521064836015148251182812496494962620329297341338141854146465469438315579729434704705074120071693620236707383737032858030245156130730101371547786422217549267601303566941595108720186957464454255678834318940507563331399760135866505950911077618351545365523802732165731151460759630262769725003260473431109044669743579514852173193510101824205579054680573817079552140762024194271336924190138255931735926796886525453156695605940064342390800351106244319026925521677066526699921385472365249646113381461273254013267207628007911604335464857495110946201749827215086053673657883470240326176399487605992190474316175730897989877662670862875441210893682267556103950859437401704725449133738468913148205833581583230193723325885850412249067958307678578499133256207258153368298558012648865403503941348211961918712612295819055494212528285791666569541270143138804696692730580368612687410242563326828372236622094626854020408679116393854399458097452352691683403961138035971150665327719174966394257721633174806206119709097173068252769844632526557087788127619472559970912353840037535637083001884584900634442845305484936936621865226640809256505274994398100048148254428156727217607860075515190878278117893645085173284560247149664658038270959073570990173591043373388400626908358675962291518745621266735348117579038400766793217086546570957385622334547494405287185158178053268959124016694748646153125816637595099590514966054082620351364971762547069497574157251671448501993098116701383775047928832717476788908785283372805357626259985092884566339070139539380168117394492462100986053634379790592918104953399792384552912028516632476363991375065619323468333615645912457273427653603006318217005138684840618556768625955164400705215972201835099038586823569837595446877295807074188042357086944931682520412408956055371560667723951339507065294999681062247425944734991133264218900804289699744666019664308373436525854157103885709036824792844630044143248733796054425651191715573080543841656494095314805321822253964027006332572566876002486712165494889692336634224559388213708083517076495392488888333626375495450135560582177526605163883893949460563649471855266543281557186015573341526710805708513218323483264793313832007231931941857419371476983886581626509159342983405414226278742783769661572217635717850301479473386877940790008378696622787566474364410776123200827943368840258570736495299196314511205141047635241461152223123704615137962208783422961365112845795873637667325164224810521149618669084834420165477499270072483356703783385057770528549735756230587138562323221004372521027580093122258493621154596870445707704678508464505040269199438276856301482804078074288944073288163389755528029688117251392543509187167000432282814757831515262139481187484270253033537973240906425350775096527096404382249353813181759525878785898898836326040160101169155272734886278846147236097679483034073997273899098260874543044197567241602344760196425274643308610758769961404469256001882123087185122277660013733037230274523704503999761899913036395640887472767026095945144243994458257831913727848400327885945475317827313108633192089519938497646410659620643658487898511890631024840629204537485855707494376330655902913649500754122681906153988689118650349278821071965635317964989785043226745070379285312114739947184075138579714966345174900352635734388335526328697069689364327482008608014097937340171997933388595308792602309200894409337132534469935648532433543459148387644842804918552835200483445522293393185463224373555492934660030459852694253235153909885988571154170218208111923997908499622079005414128543358536895560606448978632250326278816579301026143361952183586157246239676884290132030085091291158720951127364103713403049692197250981935829358435516017369492832066279270091445117386211006736373573210023676027084782494730293114029857224053092225262733736736818132331698380831284242406446760105137377362524015600000159352812404758494869192395838290959639773501257864935833433428891799982144134865766435299137983039847306883961288114017692835140561706565981699934455693585250188604633209733117842226863717928345981085972034167863777673650152263850409011124338631338186759230513033735109139155836561074358905536092692357753627083118733297996898241767812130422718089746338750949235814452653404809158638381072322124197720242654074367266801712254740248943458246730778839364528147430016084705480099095013591746243853378898944237464593968081308937024734911888401504626216832553942521482070669395838346214930498944220160358250527549479702696642323809231891916299534783873530911475782029438322589867721045002858531675018871136468969998887252038934652845608385922492563190330553255625073375000889307871234335109446232409038999716653954675784143141405043106386708499458165739757771093517058776495488704931829644689777841574667743827204148959487656051090672015808352603283885637066498567025408161840193118426400832311703281678574973523725198939175087552147007930172642791699563550984856075843101257029605876130320006477097656485084356604188131112920520226566231405519942287043821938976272795793471168677017965592615758206487003223595014043028507662136927276559095682685764559844701314352286388055857425757920758747029508649381748866295068659712603088951774483315372657287525651915328776869602204238932763700197356402790415307564473961496492335234961272739112990146339727188535332200913082706103709940868096033010246456574118030253293034237357599617156184721350688415149190660181356894456094516026703978392308615892126628591851931892455211998638867567853592260350913017284896281772543209315519638332849534650500207043786360119602560053719065770494553133057357491166090510471328180861650990651435226942495432495298416501707533302658145160253801154297926571254195366278825726760099233070559182120081521202480864858236823261027795422489045225733016563955155765542192795476141331527458307957344308062524789054330381803034166103945759596882494387588459028221940544633086747634639336013260144864502717688586974293707210010917471969785441431381103533497971329523866422110410307295491897043018465092291658046019494290484976127737977331927221241601906111459358082886788429836721350816852727119792784849867326045354835096965508265110213959079936267143931031372765458173361971821319840917443136751452535593380879742394978467994324114074732851265658898124041243031340073749535805147909493983955949843637242221225410693214969965587190269507751507411597397197001714237699749806807903933690492566528792847995796857078487007642183924505194452909992192095969693697719876499207277117843582244035886932862868194905412325060502052833532593358218949483496600229795320066556499385627415065611370195182281306529632968798073890896693089345770641573846583057324345857101478085834416547673891706673176199334061826114449720283825753943186259738742439560390878111074181478135357178755621512693390796328164378265751340849454948172923426208387626881002870930647145757154277253389252965740076093204882501903355747660011326552541194726153359093069123631697008774629640864563559481240000307315232163036243185753655514967575926170878280405700473884115046050564463218692226692353379587089924414631086803354049727073855760582638225760869852947260928469771072936849857164308498936104258501599103978045780097847210957313079449673578345358065463418501769864587663077383801940923023776898043372632995422580217043173085209299393407601755880362573965031664421339685158263215367269731629910259496057548877589900500395774976281794492614769074706087894292100198009742966048354787051159577207449794196625282048054912974910922234056822066973443322278728856762680618087034900965757255587860101645293077355187520621762056242105255735763706784283296049227338230784888567539022932606298810321538535750411998217107996466879957825776313217004107888528529218585272981057493451084035690046405977657212752097033249031497343693356018135272022447746519926541484499607411349071638305752923667637273441066548221220058714204009109412820463491445632040027508880686675489868263984017605140365818377032534285319224944131366708431557076765371034142341608372292980551349188202883657718442559617900773767749806523796953072112357167346612541330762787991040164729092240693679760259996260388515673928762786875041562419783582694829147409346123754156306524642756324410574801837172901364584600943797856713372445159731178634309204976688331579175009411203640302027676046173790381697890160987548548866045708950356021530274941323943340027833335130347690383922477310899337391574104437336406352335770266062538531739726778210483676397302480989644245132385450969387892419018602396549356862784752793830548697720391106904711127095520176532962442726802036793492747783274549830630231718937050958893615420122299146960238012640789960075959151361618412951217135468174073638891933286103144632428005314955179856000235527639590711462333748933470405135494118722264834768769209375286750234741409311889675907102130550981152403310767470095272248019114430626062289008552743470844942314909362682301384155264850706387605626755737449953286257329144547575228358408759865702853003043770211790553831998134224402972689616544239236497821703314894721385915882256179422856787082117253935617268371968314445050730533356488849101718457121712968485927214824704862283214140906962458772811590597619480339694842351341247327978080343169291622273676985883174233232511135390346026961438134993036726201588138478786825791605369649337300054125911505290005897711722844540153499910023224961920677267393042727381827282177607887748807671292267550828467495898976692225157453574724702203913980216077004998557888788002688279381462186273078003029974804984864483601376586232315917969886908454937722944989450547022351314154661309727990525594237179242939298674388906517731024375057408865431794972545664346657260907571232324634160232926546426813686356850254215575074621772134469202146248872773352230675353495936582733839800779029962672930226653582188630946206978371706050276575336447342020439893317444982770261715462468959389323642924458753471451449471702717307035754201112339503985835593717164191408945682212842550430950134278105869641367185368709112192304315577330715903729870067387548529867155287292484431070819733754867286565063190166183428740191452297021340819168362748415387385540070506379722956883321121295423520571022984259941945440063439762250050140273151466144574282647350651265065163202434464631263975710226422011147062865577504935044923405888904381410663633662640325884499986787112307453408721846782223049808100045146663944120614835682635110422546079062425064704785597946369364631597565949853255563312150750356508493678426151487333680944026276051889235228732151027772447206937732457290012295790484622284748072534876649173298049993039573838238044844864979972511511945230523142990885450069663654736692171286495137769425080247679351928522845254422046039565602780016250003712642895624504649394420330335084844138539055624314825424675241500825291590741242319670172306371008737630686697182341835250853049467303155803052929495757574541070031772985545903895148220944640501851276299879914877555947542024983236167109387262389739761020479603180974108910581102618877633518040091993425836330707536083345977001484481267205253852255314816885459326627321928342982611006154090801952597756961648959525460727784738364445034247985266079040760021926811244463988101125171352806405972002590382725037311993206128758251218021967964683735776339846951104781515208584800212759383027613699698946538459634866747258230287732588586572371882592249908724561630363232069344073192529484311676808219803052439891076421113696301600600118003467875436386785764031551048292625564610173544815440999924642656001804982499898829419463300051355783678099648122123747305215172541000759401727025915581962150904879814218652412660038745194684035430459392516031613814741944417981483253385997058925468410202629398422274098888968254220832850399467295681305928480803167482239305132847354042218875767259939617525970685558091760811525744803129936687394070725421273476354580380964180902553894632897615233970180309642508398237253493425077447293289021231795225929009911990012359282103865029338609549919519380591240813867970175943121351364265818909779029801561840160745742791297848497524347135351480212223096853208118419034403312878861316626119873074127771451528788006238997052601450110004597666193543886462210511299658942739982610413983219752695871202426142231695954994398640083901228260392937310537883171747838641332281721903197905112960170301169175107864633938923313976343470310708029158275243214027668837633693581484811162748847760636308165063686520513883617786441423682245653206993986063777975388390925069617875599061022716409422752782678736121448829824846890149864581303508130459162877555839198673260890684646747422241223546211931743398382082733501747434677729821906790507688601471043526314923742992407738455467667176178484359928073843822280476255551750839355425209914009159136282774935827592193490646370365602281814819744822439737245993106284486861542781367188947293228351724474052497872707461759307540180145954206117169058960910590851524127316123937726980978323797128604927962892298174935775350774069646276538117176207815418165499641579283657772959174803985679472881059819736152266400990731969676624220923693579964168781138459991071904442654342159071586226042837239353641290690834384582214817878587584623792125590573779849590633385043499439690794411000808485805579637462398871282354278312613154059036267803875116322288326064289093834525480091201763954152037435107816127105065938737245764654128980078891998372419193400602138845181742774386888942401836054893347235004346401018668225542375365535103925172207448504397279940384912880289264969385045734171529046111311803062577828204666540465094204097638500802140494646135697074885526827043018027916589720017059989653515394520729450243380855249936310103525523023023754626497283860843757382728075187456713431659028174259627207016673518399461211602113196576276089921900338182822671278886105998080743165649463541922415974531483472257346457012270116962864358981423191704137988474184412676443627096713269745299578052304836886444021318997988345795169294609947824998978721447594980332579255939845569915294532489854113102650452359001544582691933111380800719000072650288965732929057997930815991229015439284810907246404505283442968201508521016795217398419638381595678063606385100547194218404963774947022050416616829642990830815332271168055172246119094474919779357870535203264172269472625917570516176556104544379118198738351720896761053078331350253472854254284579474218175480478492863834742765762797595319241327402062373858710713622997182941279484116029320399128722452602783625228905973968614940228712640538878654509122296754037020485644080671218052585438261935695022658378933463734365816334686503690433116265761493010151751763285881582006290925830816194548005041895526811094326940321935782258120046311872173094037570479605260476862222593799760499294105954870124655233823473266919183909449482145667845170044002992979984341348163998496132667082528268395153309807782785742163457956890254195596048390528937383768459458791495063594080541483961583167672263046114314542860344012912647513098820164134834091722651485924594332446065945269609480488925880317343132196352655858612152735266893645609056020992855651224035795212804215554658069806792805560901006231379564675722123352159987259401534166009463840317880439254780146636157520436668564730744152092175195712915396216874325913866763067725867258330430382934280946983100573256112841912388900008428772024543313562936755440951281888382939091850205152536311652399798343027986762930417476372506768704723105597968795128310744705102122319343727072337386405218522808025181496695562946455935723888853861334132091802505623310115548717813344026739766557666908134070861638685179357229173850428478129206038038166842017833947865943073675915945486641232831704574328921096667946094948720001163010658269283470422335569180780878454326923332384595662151385973249548117999184728647828387089305007291100493355520609039914746712899850636708639444820544037023315299611156425597908046800841140955428080846057773754538377593742541621820412027122601793101772376219675699446533177476985421726470880802272559664565502068899165750253327984241309127540203025875463842988858959991114347511729787046984880770141530943645917807551148583496341012361594002005512159293227065280215816999915814098569320325812776771790819206556124248015494921364881526114079835214068610465895327705937292898185374340753581484961535478398796787468076046965125995067253290435439557856783249896534185653785856927431670249802890884066726802152997459988577748764386415892906616272228550521477398568849750263034614408097672737523961283194280896129522733300545175885154389695049009049918817142177505936244902673888087669785250092369542779430557824602413198786023151932780389057623478532309267781617368641063182857941245320542549254893080320526119183968960096984008714451539294538833479681330427300144304367481813030691935642155774874727925233290355233647021673140569461038689090698822869265683517729934430825696068955702098481501789513711419348024590489705836607870426585322318744938946156748225538033130685572227004595134491432394359802901605386128192570757185895002292247602027399686832688357045222971228816926806693396987635122504908296942591513900383283833603790701228024222279594799999697711631377676887748532687079520740233905675381720977488411911337001192628855118630024609517963787048618394117436743223171106109451981025663353723001888438284164404967451567193806738640054397216317554485627561941261322389445189345021181934144056761236151600054733264522750245645680720561977747112055388349515789933503239982870882250539811053573690235748473624085184242767935781835941443050258443148156835125555134768008679545417863322053614266579375904066567563242935220404783761733177942129194189567740320429187201938934306573619619501174316335917775012328710834830856422414508044537055391272426494763189160430837046545547821467589703552636785099260898012063996639556964394477384420266568180156264724782241602396844521920419375857216985608301131477301408393963111732700085150397443810526310265924105892504198702201772658180583936217899899395712386723415031903492166530697073391013623788907962485082717937036642609750604134161261183355622132999060917472884775798730054643371189488909296828360923123596633592341159886463871092325476362131187381198622969106842241787571433641246100342003453412015954406226988046178247733636820645733082178403341293835501804783436051113155691739076788884938608400517439640545283700018255419870350725269207693257963761039426520141298254597651026638380538434681595330256668475066020731678580994961146204989913114015639154036921794512722499407808937375320593783946310229106964479913902407765790561862718764342620253395588426597450177748871878147352638780512109016631036253212362599008048324534211241299335747695222091021040921027587671176641796427529616488236461461700406331467633517543066042763932629438813211660158113076116755761646530962028062316841596448488426864448665077246499202681420782384695198600356193719729496903196450908259493817714137050934205821342661614657872812752534901993551474886594641082208425416794435842595161317743158628321797334601291331981984849825877409228303656889039874317433605285101632633844808454995384912437779418289851273271007059197481494420177622460402203516796407016039209348368367187327234866498846737222159313457824139970706609944890127643400027922620584615059996891456314521847957026349756350482142057725378439576619232427534998841877939315128835435355826543916310919638543583206906067462462346014381650342982458710209184768560632256153353259904779984428399970253600689182033102664546595013898910570865250355900893827699069416667710452889589574965875571059833875979196573275519725669978872846031996899454969477944496256909713507215101582026784018211408717177855967494606905785711708242610446093641175228314218975421088298329348519953079092624982637161544366459826217739018409707687315935252522791904268980836336672926739176799079921593391579663429358068737910722514894849403057738625175480382579571044884313443128046190146960606027811834389526519078525285282391142719667219303643027907718166436270271302222357308345802631562768099618527383637475594869028679738771407233380137268078916233756997185240062607386224972625810248305154143210269971690592724341013590924873150002065475340661562785070240830720932413575373526130113604777889658874520170092081114644616949969696136281267455980199348929671763280594160799065513286890382993166693512551547235534911548080461624087788870302997959675774314618336567343046361578613732157324849105880201926243524409161954391995972933614816682052719449941945182024332548677055803664171138444620237712420292530089875323459622972655301010680468012561372838710574337095550451089261925991156500249768181787000902948726033874713647853348557191298825212067868032801912679067250384682738606187390296643262720359211457459160924599799054316501046856204337659365422698459013039146763684326330117672601993729195880337623585992291039980253690747356556795680510844426269515993072761456514303924251207782590766984511570786611937217708142082712621024136647512639742971243230848914592993402993248595369282878702275892248357002657708216319104325088840195418125878457700991847679578517433842274113992282707024700394722786222306483526564974540856060818657713443828965539844865275724614936994094604303556935789864316166203478429286446024484140508812601496238631986765709098464084502965241535022881800322532795149411778145138985836870743127843975273330175915285659150995703071624935142277799979340284161624345239362653277073604952802511328618349072524118216746276365971618929980945022987403613906001519200562007450920583505815423765665131163244024091839149703389786054580436676742458609306378935218140199499378342132544540431826316759763839808199391375875409997077902572038660491942865686038649699782529591737499638776727600237988818770178968828155404434009217614484809657068379154290776462057804745616761563665184467359445284035442960875794778248871364928549394717325506674058287001806706484826324069749373381524459768510793735335924279305147425469188665385216956507263000584547977711874874780441408673257007669616494114650866503641839024278213397488531817952191870774896804502615446277410506017510780915132774975521456652254726280981023541499720979671430621259624376948979808878033664242718886375029498215530358595997964903254903588609914054345739909674051963901750436593931351075523558364643041895213615250668540066752259190754712317762903185695426373273269828828111944119282552967408436980687798353377058327559023365633960009617363927039075743541074880054750631365171827361732104228848189122396408949241383439111280204036591269997425707789099280960807301987844053631171308690945907804930980026225306475376613427948432985672119560738946975481764573766931716392405091681499808707839706602772065182809351561103126860985553851376910322349180544296348705752292886910466197082562544134045643019552469935461106229984369668608760865436621602866575569688189733178338014056620894614228818167614706030920296716771844926300743534971547900402500667626413404484107515824378084133415899747653806409255332020985941667267974624222628312266032785843474096125818872001963755873772604438617718837502865681048464695680161008528377178482688591768331563843672028021930113684730358452075870918804635712506725806280981144590545004539502999631746868864624388842314066882797499384109861845218647660367816339584706281496184545528327766536134883417352425905140503929139200175573443238929939891873138772827213837706144472661166638367351026481799144290018800015645630025122079595198315158565686164133364099494220465170379530769828814849223479941324526401446624342283112133402720371469555355024514053063680987649748537869868446709756946252964935911220069133400475286638847995590859441112637841618100909413558684368395954671096007283789801397538227724769594637795341124975388410045106299901043191419953680438118020329706348266887417567213947427122873714825280347572685443448365667164816882178621860809942223602538907776799813042202138584917734312210874838567649203568873885392227875572675730353762547512877440511242014073821297934502133674947458798792890884991403902015395964954334350347077734121977819629440780407161512133418481300494757925841952849404947399010201685098713925586183883430147349791998550149780541058722967280507994374115596978123726210752069858918941588375723796465169126937324170997038642119718266521063040868200965018790653196499702810543332387494245339615680984056226185069383272210517639226012278191105583419094240542429125253807398637031764820484350015442987735178062861125795726812917159644500523147187525444715179256947112046408210613035745118751732578342213321203536656783699797238030724754412094202073897899363258931070092218869739744697866066281042756828127249446031531322406803599474072891541673440977509530734462151714623246815850988885602697142075260686793569741970695588085225217851184292227059657320818630646356184937543286167510647890741119190314612493388165801562883303203222129147473305308155885694213277670155083553974270432096983585672512072430157254584474856660542402367868328690525291116653876117146980267721126067177260953644100160039304588857001207236235872056459517893365662129467442822842065024417069743491322051977960343661347432479609312763165764267326698136186913894525723440234212739159008736604321811197725072804225747946061799235226410000380614488069725140802143853398994546394263683205193891031181609244990143904358324155941906925006026821020555586262218338109343704214964344315311707847965422314057425301755603549495945430805258525929726665595762269916318899248184842344575629785195011935850560353188429792524824473389631413777820552378982582083259642794118655375089672656174849565539832949621887378115388128860891148097776869704245322816939623480583387930551143206214181916896507968397141998852384144288588519972100397715273278374636882437685496205401570186582835343348390173151436799363166490032192113565421276505491787406232115684655737203946789694476839640029172319934003106239881512393035029436275593739064607319379143442968186810516999488748172043662781207960188494773203020158296083169247461925302683782474922160460937295447126122580920472067571007382946669227016653899059114656181294968057005274894422796946706098254351191422312557179619620620843094616593696359288868834464731424215226675282385524623393354355814960336202901221864189863162186431314819967625309072050636410082247454959077154998625278695095933556320122292739897182854347701180495844476878574287218144612463550394700919896943185070621622012546955464488648282533616311520781627003359739373214275075946834508861352357570872317167762146186724297793683939483010850621986241942023715620836353740174581306140420256457724840499997497168816651539922301107615221883049049761812096241290243514365017028276490109877272723647608057778973446650534330782785681882061506296709286630344888072404593157056709756697425182590354836592953315559757246437353091212189005946822332607831541933579955031416875275476871378869106017482479339920156587410023734072642294322697583868737089268774344590394625169604694459017254448494310433041660850961368605709738648710699667258656090006818844065198300717838961257554602611469739671339546201884089379435142520682336511558290395958661187552766181892342513053188712111599644885848425142994481951743279859623730365163487290551476618782022581678048770437256166890402960732246042178574111982711587131518372726779968755203722406381432417236949696231433795921232057297700459960058618312829859849664031611546592607006250139170828740142383431088160411463202745355446185167019674955339849742929481225285257944257834804357934758855083737818778197743464321025661187715902483410086840889344283618631210920048004383319831177074088245213231083353874113624565804495314125717054330855798450538309487367892454638502252535705711276148192200518330802299922677666671579251095092563683390429762837354414962750757239361334419978153361134051043610183210375860209431647881109160865657186984760835170849656020178934460263523979320655532855425746507211576792611313535118479613202237016188595427704052440078410099114458583443131253299905972459467380242826221155319944763636616694516465226082397791260381096390136180723345599197821039308537768911144411499825982303148571197540267550743628310698502877701731994556187848390191362838226208851488256490537977552435864291193723437931928491044006976522546856490078401569130193843075634761756593712176029596806723189713980773352795982401895226775259406091656687136366501862559053665318258547631623964846751622035550930274951337716913490548662469655971390875278322381144770700413905611387911781865389513660616697800137743758566837234186279449933610995846807903756215276054357432375792368371272969859094001391386429643734285859564949586856645138703193973559271097417575244316020949255863982499946808811960343418896491749525407208431991685413843304239833352858154271773983434980426176106649834370403749337390387650593061635870110975606045584402190319971044118584378505364560030575633425037609933447754093753413975148393078787405720911255022258486640630883872718070585077110040084268495130278933517868441784059488126511888050538967731394520437808564984801962390803863431273338998036680053984291159666917291820587649157944362820761649650463019318748764128043663493044188924143294388530320258413872358461782252098751528854217872367566054816380384847365178116713664077392384230517155289867591279792316283223154901913548693829327875592836786584576859860371553265938446687504702665962592427704463711463699111356444097135681158682361489999204911561952572634395152102667562725307167180511223016502921048442514928928647319671417800432865460926244143073355454043973220076816032283585069790070699266497856452211338769017706383419141541143267037215308508011714700102996642654028513540225007172834694534319736482990706092817261605201431103783723538195224400613552109400798343666893424037215650527290080357942388742626537601728898923268144247892071242856941987467881474315061621459416457900241423612183254689851973380797594414652932206126246944258548904046548387818665754595594471432467200897161124220300053180583332405044184992550486803447116731473963458160938245806140999627734842797499630019706592259954317223142932815085741825974734656519911198575764987494188134918092884015458931319423435284293874253898507795431863972372052910985360192441436106728125449568167675429525582724274169633558883584288878527251805149396295175082224825235141747177215936504609241740914865192089225979800392015790178855542436413724062241403162991284197947487804502637429080189481959402095438325879073158457138918837807024393062683312974952337605874874098634977420126655847218436583790314303991334459890346437279767737601966694281424408100883348776079060266934402073508158233364554163912866286991759486140030395233341790074499301111173668427643943872122640346802722106013153755364627651501222512180490288573826046089266698824390671106613759107462136067183254288273567446087249639166236093907617751216327721255475013836236977101579707155614916808417299256650636554352664814192911321836579522387986982657171283836078848353763779986447734819441851882657450587527908603195172029183286413158903354678576396859770300119333842482358768078620200326703995872265393762814732118334971681311395568872780918977711220913560172650494860245714021581701296243024754709416270622707679738255002896548127138347462104229707210596866947434013421969687085024600878055367052631674970900228259381654067859889645652117544671763209775536389520097363616387943605828737592650702311338612744899214099375222525306068116770212272316487515237973600806106248363510620436596744197578855882948143230982880402911262508146585675745049860826220415857104077631608079624738972244272089798359003772657106126151847105996264267571043024783972247249138052757906744162232093694419764183344429300641165474690256770281429424756370011932588642332503026891253347627320484027676168986393750377908043613829769511248756815809407451876027894992809774441994089074482926076707097942895111136001931793626366084596528041702304154738231020963886283750641433689915218607305177761022258126314186456142437961483120374318390098816241287780113595355393821720063994188643473700358571327781230317578307164675927467519156601666093610336791744376019275361886494202836263551126823099231451282442968362249106548703118894173975082428135789785107844596816523219990252623883644642552621323638940272252538289309127040883847063085068704855511408499990515798192462699695405087920782310511831972135960753372263041583719056479727665808626496126006794588204331156715515768006410809453648223251773152496441085489277352055131585996544450534348303369430377504673400490484319405638610853823287285358229962568321628503741893184401616202432442896955270806789175572008609852503676798357500798716584704716188844380415318470361688986540755998900949516514957255086466905219510646022297936220151925824341332778352092490360633803764493834464164047111082827190278221769736661862193955365904430116545280617412980405344163188607800863407896943903845193661598188404962042973641360829224404627229027404309517417475235472868355905038597595247404505832122075405520343240817463455782381702712166579104001571822549789766006177786905739279846661654588742664546730786168953979583300083685601959728136689144839160120341519415955666069552726667489663701419641572689695584085585710148165018876414216472095064581648846594566770154356110724534512762309988060738691574815178230125932349064794456136023636902913227317932824374852587772950222396382316945499310647517517854612252756488039839365342600717273072753337302824035940904386283500576573245886639109860216059600400458100446529550465901869178367043779457038279755544298342813517876501480733294307038603435783996398711830101906528225045318982552000654101137510840224871679303939058672605635787140135614520985381528166956076325224777212986380378384463672977809092984605626692823268038449032383878087583756197235493782978767891997826540405376607590903457461091469382851375676700754509256966652423426286422076293011854604413357861048650981764660202419746524957109043523924626847091844744368825398676779779560603396931966308647795231808461738776196362894954621499525922284901786112325369451492463847871974545151394409394318411967370510144778431017612539699686471086383132931819031231106093408429763155342032172924078740232114509494876458229454070168975491230951498134958380237225532788497404793070722627867507907561929333566502754941714359585082260844473696695000773983491211307233784249772368211766881124203490436436996577634515655542878113241518053120480562336147562637346603832889581546650261444446505238943140513905729135282578365426816172615467454315825787877909266080999174366761692462647341740953103588594681501331477401388574987804199915429038938892717346255701307559632812311215301440208884665318729775054173746809448532535958592871278201080140467302335129288763382175751978746928453312578592655694590520581929495438586182731640616784514856318127133816424895242571958673161361750252847916992762998328749088332967301725260729073222359804778733773156068924923913970581573883646728453272909751646739000000144795848069242451694718694268441002846756680134930567773799465673494155382959457414734786738304961253402309345386049084479653563198887033437732692386915551781112949208301658388979314485851884389913073770606804073434792116223795770028439576192780301327747543639428950406729573960434210256587443195786296834600049016522800056719613038762543252998947736043804838544822574633974678317825522252557772003028027082531325543325102008997120185605967300868195708247735073166934130497831826214469729140683887960679917045395252791189302986053937823478281043957341669675812775280786307775915013499143074187202685321864174789957135394249130564843592243466123076974854370284314301722630494814709780830228846874156965983902515175230950940683737717198990605720348802487644101615904416656846754906039111905881322634400258782481311545344089893860412952064667907457558694345210848282235185950348684053417597688628813212940632486814789576203554799550423921731247908113362619742618772238296442049154900066508344051461204947179677964914922636371442404694329742996281570803209726589953506565264485671210440905827327385283348568881750041040682095953550072110054189702258572388056123738473164370408365678119652012351510613410815620519669751482099031247283311646309419565052534041423917108546080031265349625482016793470077215667997317747564315526398096739974540567247870118402034091229458641311584275879687752474757623277689455530302183966174069251264427298160670069291500631416512304322084687830626811212187295100978426264441115932410829159318360286169042192116374292699246566962107591333606606105371252211367450761696652778210440305775725348286745466453959047834338814589426368027764132993496071189946360375559293145883330975221686114568278104790217048566105954539529209135205532471758286888519788148686588164751679155114996359384473555553799148129158039884433814203444597888240972187393406401579865667332579103576045074674422703475334659423105665277186035070620805975357605184514510220079552258279245176119608792879123002970365613775290863339405723280026936735501948812815903911354141019174103136504006404467978316531506230398297599300503513852408451788856340855168505461562509307070762926379753107148661565344571819282329860322954228361660449441034228049150800647783039724003145337116262127977955640065234807980193600295317491800025292042512351981626158913094770439599370612107750677325041323496559753877494658794795949793133806294150294081074473541414958388889460496956187544981858624009274508903678485294196392860769441711629899349536317006125199363173043723252367740220215809569344244500357399726743629595532972887032806808639608779130417876050618052516821018989251577124229839812873125320228572389808384666360487765206917135904041593498172689163337032982189687171098985110942094907033737976265573351593736205043430048211208424787570546201914916797090066635004505768100626861642419546563281726844411668049929621425435899370236311848925859127491236937516475624790820650334507718695238168413661108966832425690326550375250114072055783288811609542728118889521626366362140548474343846390618106201394157031264476361757509196011574605194286221928414212826709993994213169754710823630834378425941117835017695148425009065346519474526824464798542634426861364566694345074045742172999241099858616462197916623462095246840944873481769407870882663552153969040159890970135748178546445755845446993034006067175006894553895809004927664319883321667179531601429219422570263026234191198036769444484417524339489213153469013357757427747052622469253758259981653065280180520042259548738514666448609215146887431108033010134766007031442033885424316109074190680960638694233159793279471887073995067134698686557714450835867816674714292039527785709943097154843652450091852734616744597662322434425853885740617522584635516323238196094625316800448546977149960391492670982881293051102222177344314541658896163490943579162514907585852949308486973764884187585753830440602574505550102906915380285319638536667528442398062193545030901704545507916284563379587048616902566488996830732142475519516946424341342777035453787667977952657304390734087278693966413597092268733879338869775194813451184129610663032231889027441155424635503124177496363491171247386609322331668771115212744143952950465694640320227250958437949339714939135089505256826694305590895713036205504324627033669650052922338369046203251437765122336642396105938769208781443688292795773954346493231547136073423825190964832075203203402589050516619126768464818282842677406545731984145592448685547890310417855123898633367530408625174120764142492255602181824182743263795272236037128964412565697931445415069342088324496607005210786699988426934092839880778924332328484496051416819427877542116915579846345938246761284992341640826422438624915344087801782672505478837089060025842286661352750040416296482077844108589598674215088409589808977252056609973064724919139743381022931662695341396823176140198687780290384141942050116227399968493845336074544821072918112232241010858487365984769624152579659422169105335496966428846748215713129044426956372031905422283576377027075694691703672382270777874874699546904636282570704075165341624077387505284630707322967886812127335607376326121026990469738587947358085664791277791332569646226903853358869108993250287872701210606234033394502059917645680276934217640589004321755305962205774610029096019887909660525034471325966281299829013199854310002950134163311985000959392916902370293686729814386189739984849238239716801265360407417836780633951581433215384019029315506502731009201067289454849524278979061101759780511975465010747697129429073726921017916283710831090777785611914077904244336588442557394293733005787261160514003315609099607375329332991285690397090894869555098055629624125253470101779352434685567476916805191920491926842158073240155160221336630481278316518225398996003893647924104635182673709709537718391833074134974347620259253849271975020102087695102340889810322247341325948068974975577882877655753421949225623314131525869163719116438999649565000127430011977585846215582588769992451332496983222489801882964055879523873611473560691189255801552733722628853388633467237133638957295542447197171085521440461936771334958354537736183984270954528421176110654255708433532704670385590625681093583131904707533594973016080196308724716571814844456451490668548859490694005009545041611792883357550169369157877066468288903474298279942834038986432567434601446113932332094034497923849616232429053652934211813752122282567646897089678394446482823381377276582558320510964237938776970720061867207600469307538822777673583181523055713364370913739117732496385739124396932075054697023983693014368352268547051385453680935935235643817811980451277451751126803245714032704606121523413401001653831242483475416693944143894535724441275505545528182588839622174857963215863397360606332080916824835194713224923434651739897681690415503064518239365574065941513311864340421964186794066996453348324430901131384548448489314536325157018418108163544278596043660460526582819623872269177284056111315707527906576513764806340231740079496169465163459059708024220473580004296435781689687338647774076845470785484022300464969182458235224318713975544625953642192134279257724776078053013686760292646690344710400884579304866085429984783994065187051436947057459490162356398585416685689915727347017725682583441121298471046657967407792213742448711680400260850428803232577351805133754676738422449765758470232711239482524061200635933030630573596450035756495740453110770647795352497288635984794851865023995098212082831219215103389419517133302423563577654208787420324172995738249289283419152544755786830889383677432310694788879069889084855566986436464658858538628389078652117757985922481607223122220481568479607337835883390645338897726442256940761526659338627937113103320874822700229587031289217622367139876223272771609063345919182355839491732165173768105767883666272743632702504200684468793678191337887530768650948297207256491160014261124181900276943315522126026466059825521835387924423663466840078578250286625124786157849494753023149871216677384308238057448190636215430508527219051900503862154484214920000011243857882728842498331306850255181995686578848700368501941612140399470280537352036782545738612795208882706785586359750349673532686781312082733483109680287885509238529687781621579550420875788559361472365762144680969125721192102676631451191653904464692601883375515923222043664444450531708650771047837973195564447111417236517701403971406713298591766648116649707423818324610509588236163679146013095416680303385619058046054230385085175129641143805527204874827268837889148097709597500161992048875073673677555233136051217990280684898562615463657769319850326707312555660694247392169242826533072613527742268383570053131582780076678497113941428103392078401076816206847112934224000425517565099922638454698179938935308910631883248155275234733213900921767883716371629829511606726880610564849858449964875842012845849439606052423437606411388936848911080453943775155895761357734607825066670466691831732242784117120809478128536350931004532537120894180719558900249110122234628679421760121958880007194703019589439409411073822437252911621363838346196058333524817824371011782270419246858380912991820225506546738672012210919647075141013331955065104762238537994547564086001417108319111296388110209827521050675428130052177059419521308293577415409700385029011628372728737111402514495669984642402240505169973790733257595558648481468062540792369624581398926077369094058130824716779261612653513943262247217171770843441055438038578716710539760204772656726891733807900762976778906404263221644448996433961754296832978613971166665901318880609563286584767855101927571460961813966409017543637477642275029387110351410163003844697196020229183414160245975632221698272341077925524053998396015020276651615087698487329464041031508380061444274406570920494936648254219322602078084860453968757347528715284837890475791882286384245006501723439306473103478129444472650235583727715175635613208120502504354169208368737134930013834579227954680978725110428956433943333150896961125627618438127462731170988623483423998836487809025480946041665949680133740114090901905746607256448972373932842407545577311632603543665489814470041647836182222123959514913842583186554488020485817841272242134326528459708927473172008636021269358978911431797153780372452721819462565120401819220037167398860839394330488943802316073556233005259071122864120039845851895963196188016794035127699566890892234611558536288393210290547672809375738467281237583656139767502130665858531907709240783501375440368439698832712781760719209758588811504667466568705466352075032912721601905529249759181378129787700798574927580361148225011395753059150175363682136105563564090625989582682514309102943362479728643104981116093873383551725060899508806843807118979233336021673763961390457202291299051167561889222190313533855273010365416477953703818116045531482263144178225811541918920594562265012301014365284045502819389072311887932895253576670646969755788924565706729227569693961470871486497098031918656493525773259707927296109797823237169696400579444685931082506552823402222483853442779799412073396503954607039706104361101584802168180391633879636152838027563146916212592828884370388716911959715525608423734095754993019838111639982334184659257485875254280181686987027145835197412591794203197524580888299470715776059801855731576885573588159442085041461742499691777918722312595183167752541819818807399016382632142813699842086644141633781036218660422303801444666836937303991153595508368901208374195647145861150695430310909753434551760296256727516844932857540082221812622561537340182776765749632257191515259524095101646306749470595848993109673329717085935428505650565327115390210489947999461943184000479346003264784643414851139067382717926348311052553433549236283604110310411132619451540722276434977524246469110468769294972088386160406656701744521588891429999527896159523587927163583329341333944474147913197348591819315564011340544793314522682874550354966400352413863004579835357103329543210849169735331404196546337154024761686479690098269269707694687005587638653299552867492297979520951140999884044091256982427351679520733936241156607850184454534743178784416799948090401931497925173152967392396548362790544459248128381730240837737347773165192230724146442971271502216005268922120503824817084808628957687933703808519524462441026575909332305423680423911062295794447631338203419305469251444247653277109077083095947702562051595057715282494232787626066509299487937258773566623479894809045270304922199066416679970443153967033994573623428751372721053855573548321881215180529129150673271126692540472869674761259097386377774462872355110917107815074646866674809718668025868959959287404795387780317901386492316593741806330144205058029014511767555004215024947726490168201007345116125697781649694158492952444077497916503953347332760808598492644643877547804447098827624519146752813283590372510655141275418819475470389032771440355400742652196818650330889001815780664104306932957190101628964828222993600669820618718567449333109738478708591394237606293619107889365050114305796768051158798929040349891430414797471017702604899158549655017777964680314848688042731509140506289475440738827510669156804555736856099787567048319031041860426324747310245232783440856516247091742637147596395270021271984789089288152037049896044527442689969914929333309818169733429133028109577747863293660521462399120735423983634310454782810805449505481993200100553808779530566352272828423412052852999098651882787829714055725376033849568450742866846381703975089056399251620573109136552373686806855288580832941102959877427174732630184362813281384117605811675372221619680241646969723287026917665380456018026332611604915468442136056532049989184798326986653775522894307169882732342301426645848300866361426699820556084989292970120661788741152120049464889000110764520187725979422280208638459909579546909407418089875421552380953705514154419885008163807984547274048636573993107386626146453063253835092213078584247558813754553416533073101478164531288440887317134860980178423534848317420087909777697530459329223334313889249066671395571474743310178841949985867660951865674770856155442106161167504990898000643569812748275816759443165658691617281889247018130123827324030681478174024393278148053861640496420521612357613850388693779005169328705373812024719252394588673930792443948960181730177199391000790900705704658249338459411511044240907830139323884625476737221752575464729147952428674929612218904814399222406451287474857827730788348210535024618033044474938245171872570497753074178969727996053535239101577454392381403587289732648954881385365087996425612830515321690794137541180602329119671015895573872095272481412152691804323035103232448227007695205969293956196666070785686410072705002929237083430482752343457103494290905001971884721784814135726678488958146814545614600188615108934815565341989055745156613221424566102081318399057860120438981336582911013687493206204087039027908936482608970693630098196819347250191105916999324053732680788744796250488121193088484388201356437435685524611079196182812724815488256795309841644060435965717688594515595659799535139917453909263679000279975067287986401790313763149040052564439023401101682759537752979495100321272284901798729465634505195439897091094787837645897667183535621268097944911638663202681119980630051504346593171492804724533633365914811147742569389434644690502359297423305429476987774694658108782716857521127355930931756982668072965696302769776013855562499615946415868300055379889590260390059510563782717610961201335754768711883354139228660201325591385921172725585095642324612542673629127634816705859559460366432621344264824209417530752423237300993333840272109676616508937073768751717763788135179610165140611521131225710348891731846938200847361358551961406088399095117805919778537105068343918652137957317984118953966678752199744184097968931778275152957710603177621425187840411369894661201737978001068684905838770316342814379283349177729362138353340702333349749304939038277638176062176879209477466030954874670095167741937002354935698727911921650747087655636023374054845469726642759627798809356432320933579188569582902795893032189980490100913467417219932222111223278274564794387669709765141696564156536907193453845602619685847751741479863966913455335089391789350161371062364627149879326606866990697494951142316193203832174462021963965939068989909514636620763310482275046099571207559716907853330943814001454318253978547769195867278290838804343843763088496808510521744432822500722703236112844777750948330158922029787521030308140571474738309653564377261181561113817584444827066509926331111986856833065792568052365871567517277270362230804158613634089923829823211948539089102290481906319766883415683184344455229270973025762774151251686326274819241738743090982046236481858490619912470638774530200174018131106380987182704001353470731616850740248607277219083594973687690066503576703044578982503078338596888513750349936315070856853667093469095453563200199181505096237799027311562431946779206653430437727169648447242438415657237134029767573265026903343346940585741791769660968318258574490726209245226585758552158690677328121522869818960778372335156862828348823043383347980399596374141542678331818895273113669292336305669051920409452297451687916007298733085101706473230990214677977585950925584385559710860962885248100317945799335270425137811925564775027879369274901279024366435215222502159886637360007458100530738891727958021328217197177674179714919421477647292236196505339122924690609762902070849944347512595326327648663289955845307050737870572494190908662270485211453648640128100320308700669959000003565231606296510407956470455262910034899238127815333364193730362998059136297493263192884159770482882660958404013880065820770883889208780080896303667219686016433317343225914815620940101184918822635469541769930589372260232995225880226942715773253397921850490823205597537650303671242198615074031702940236712618169660107328889461394112042733305537210973668494289329467218034004263751680490865276069121766649706830356430541844719957623448869230539086075864679670463793482898627523627971342536710151863410688503082010993325094976030337533650934577420801201184353812994513137864003429140057631378648243951962709353639608176026880962606382776669872174115325923789633970861841179505936195870015959619955814263567725238327920695405946271196453642298551044934379825335621998698098832769705328434027488814457911872428218047964593557351120443454222126587184703370932882260169129875343236301194969197153959528197029931589747062766451060020172095705666096535671637041406298045404281333983866808387199331412589969397201575460970272807622545596320581644144109246391955210682737318462600187676992322914498756603346681418330656844205438201440779170923351365090710705715709689312883855614666134082491676639903195520438182878734522139054965109503361098690690634462280252312850291560078057030953554181856730578851613666388170123247080011143380846824076296584159876698571262160117081697045716690161591057346572386381546293963469266144994763314001437123094502971936328872421442541197060819978743249806836134525558962739425217193151340903161432748165078111259789209642793692198128620129787436628240212897827632076630487999992435386586236332203825758330113210746718293836903747866137935684021205436475608694566677451207997703667425909628496257205572359357509905290952126064076378333627511135126528372114564585781764809920776812034406787357494277134512384010391309501878500539011382879966475306933263302430834396718736624316814688812031005995149879266162435053546539688225860280298564036478762594004712886320024752326404622185924141735222126127153112282166918775392619518236973028536586158226390665463172130388284487649484728284292958288638197016906955823512408387367822748187074341786234568481102740375167193057117198417678773026112370671470575777451848943323581329176077417765068896649529570893611212910031112018732781455474739081267483134601654799335604958114803019062157913373494734809319219620857274037485658229013311250004675276232679866428118545051152951812236062139299664850052803378286398113273568419923489743935837913346208538577863808978943532147987296047957381356252293595056214037166279600859924367298316786594410188509477983453738705325301193979136200593404409641243467394603478608000851362597767723958864891478419322111502263512347625700963612784024062277759820804282836704625726375197127038724330867411721391941311386113462867204317187865429790078319534515287180920520591520323269255003801133640171672308750043501577342511350806667835198886579148170137558769629112676868287934253391538607578712761726729890565777396650981394863869417212347105686771626301219500244295100297972918232117188261602519051169154198300230687392650746566587932423766051611916495675632536559002869585649147398276604997106790673038195956717947233392309337072167273361021899237148483965985809652236400776522039425323913784327568433136377602880397069640247583413207647637998814750663024653603724719502869737592260196597949204623645827220313004191616460222119669702214147114618576501393031362841162504702480497950171347804563303386731810504637600924447503624936026531222987339286839054621692004208716459086255099511070094960643123176768224855446681559761879480229836062406446699205333985473271055056492848430459463152660422980359214439017922468217941804548246492976134281144346822563676167900031861519908923164904409442205681264663803496095805093729715335382532950742817674539576645915638641031885080280866569643531904202061325292743205329390788011975329282085204566503043800225299860671882981093424883242487334853803152485762780427839005780415423182872898838272923848029485393085610708016953590667078514555016983214474163262748898984648175118460764022764144824287000582566439367078721384507695155167512228652407067246461232275023884489959011254787719098064467473026166614803260066238474165014531636210760267679240056034451036524963787471028919503377840514378954295956233333927575101893545377757428266044046763407693378402961524228421759257320250632574051683251788096233172021968040733757068904355009584663532201366454745756906635286021167461527475842488772339540353963633057149326729537565592356152182596999057055970447238018441275136133006807545557578253216439246433865594016040854261277715525804619539113466249961065986204511646765325283645423437246608965145414860965079277341605409300280552293236178390207096628662415223056161897796030918196961923998222086705408364806278668930932751421167666469480908767650194274556483526902888523432613346844597147131172323948839396818000829706111092619245299290500825369749374600897569098025000896489574740874744617026734042720797564555415156996790984302368067762920556816103987172064253532403352759726510829664075951937741580806709397521509916983543488055235578237714705242125858064287816882296456971461664198038728927602879741414415261621203589406406406145927467962250817643408382637518427245615913452650099065685195364217265699675065380935696583948772237393050703241142435879040808766219339745929582010404661760846439089497982897309360961564494396496573292513771865109097722326992113780368323106614752118175106836515619503142229120953880857166574680853581931332662623117106767892661426719173416946600969396250407624890203664828809338016415824132844896369645269731476803775470125490599909956787203069522187994091760672556143628125534331108817615999556528894689093013903897723028321723253507961150940983577140130521249963357319527680968190413680087906742091407805022830389247077226550185493890957750366072468011165109092186536243565278516759939811989737009464968808789330728621075322008483958004461739011746014091762585877265714531016742256963746274862231510711020814140076909999164191133368394175117144408774277455949114713761921462201627061779016255026364523101328955825414303697971578427610809525002642048511643011800846974740713545083593750470686604264239629479763034614659612110129384806689740612911721538295572739922614245277857398559181311498912537633161578713230556694879561164905537565208017577454546671417480489062261952444386487035304342749745652237815795962115852149044235344641891677357482774622996599693418286636397671735171495560654664604913084852352728736154679957681506539240362231896226380535803125239668500461687198763377165952256104744879849492024004364221176829644522782490019348083945281191548414936538540992097111335788904772722548539270110211126889696754185706202920207180764789036469141004046415660453603253486943334636905067462854304586018847394573949662310372474103516757921927278125072648036097507666752552352486409901630577800508430774716334662685584709327780369714014894300476014433639696528927265075819425739823450082897687288945414096032188937398606544666132766799587566082298314614789219502263486757174303044183451979402835038989280474036634755639804307016291533425750435637303252675483288982539365028385998336697836495812984062873335538092440964542247235826033485524621738312754401480034518236647603635793482833063720614411577977580173719369020013587596962560977479877093881189737589200434865188349219774507763809716009285436666557629470703465847699473278771624696286144800027848815879251596383533858996437268666251839490011346576215667653812049668352565927863502757904279090260971392284725015067413883138305548570035971428941547632094294388644607449308878802829706686564046862903901830753707934043321608405174207407239183080264674214280853329826670819114398657701666843326477486216647392462501930357969834804691735700327204627849762962227076394966462702357911525734732358103223297152303795205414538675421916439480896456272037969796264932875147479050654101628120963468738746385129478213939422236355009641214642503563059208880414700295953480322960603478515438230635631418960896687620333353656807465248271591561889920321604789776773886616904024499007807791008159419148059098297121828635868879371975016029905206890379728950974150110752458133414507126356361976013561824789872150946741282357028654020545148556128331619986873683727063187025991378206574292008562261910298540046096084577231910589549328373216978160794272634404769844703944451802642185933422061055187262496890799806631020227875696370582791880597029251462638430029756066925428143107589308730368828526482351098725423263030779844904949721598745016942000322486697115792412457799473688912354189561737177111459821851213770883874309107062326777999842722791961913001422187350655630325163958297242387395331687905750084818357876408624296162498242063545398589719419142587527864903331722396140466259105121192285966645595456554063251503471776681538655322352924406092285600868358819897752837050494745639595050537841731621093330765649580749367549561506599474448265907735946644314983371270471645106787158825331745597386160826601242381952341439715691575116390518721838905804284728713528015161680180404774156280228291493221405797256546918471078157186755828303715116723722071519542080438302140857695565430309123131217306106638141014762725232928144236738999830604575363031761086300859344217970849162795884102166947729560183494383804055782783204356088041080394429078640366525703444370743555038061210901083338247369858362105317374653655885941427990765638762177224436278690325623101661119933923796201452425735610345913054770383875034999227510160706959492455619122036764020913841500787732665216453691380429748985136550294252136606572398654923660827848792578140832667034874548493544905558767793964407004755853806279038910894696617485558911785087084486372214043474890798837567244069850086572141587298788594400864786644657014237396538621285334286880041087386042758160360270889848153067965155052845352536427694433482732818214618670261453905452906580833663494722745798025866523390267404596087746467884221689216804176183417981903319145618771876427175370207073455613272498271847145987122188586720719627939837298301710652902778445462338592404121205754444385325507490128857526864626044378670186206336672101111539467540885785022063642237330007975192427037256042934370562981526280094321123172129483997666716720433225581472259178430633100843837591917505702973906033489203862328965630638823515888057199587899185255234850106947787296125031290867849945431983565872834070432410874416173169108776713614204811196255412112433772023845558212795830839202414837283683391087137069237030477295316155143884762362537248682855803287751189638101938524896969015380816906666871990339591319712943488218560680352913034100411147922973102317752322359017919270790483080347969501837892996540106290163951122681481425985329372423616818393610554674347120404665190815347549737984116904325079603232951975273271536280318087030386517525214490718478700161373368629228580771699211704696340586426908138799092668550022249928724512080019769021483044889917453299091288693960399594641729321019757515962094179937465703487515361693803576710985806518253818157540916569364579849304806621279218952134312748609574817681534665301860069940192963669131455799125926724420853276312886660833886641831193453639672927450656065130750166392728636969792530143405527620611974729335123697118089282829526164901283615789611554323198023568258461620241389920524613502374384316156130930574482135035079975233448949850386479811534902374986608674523139066853570652968478382814161500974363376269472658253778778106790898771180037912102552500251043130118712538454051714773852366375983891137854700017598760538333007737233111831555141671516616415909698669147831806398347662953326661875573690446526925119589944131183009226677563169221910111783316803706965116605582090176797578235002380828055890287431349947386261836803316297347534712287514947380871040731375078167885539227644670884822186617712045860165182414981838418281470562870147936382707165844038341323065951184815678172202280759362379810567466691610762707858237724361467354323696096260847078837392750849587921360109766763453992830331143432034531790447000920961442902812186012791313201961041054265699222801375852126855462956896037390942969302113425715564805675706835584176432044477440515570143638940559474400457743832426080683660662195254982039709174383431749217045894766016654157755077913740376204911490062782932931242853664499597327696361234822175565388831328595648692206856768134347881951962668094949612951678287797196800224188202183538908097724125698789915164242596088247676879485716052520122034380893968419183449940479366046154798652087278066927963128388798800187678288740620248292550611695900733816111880303054979684333015079835345967488577066749835659854585608131152754260805774947191755698612530908507043774701655325854279142056940050312537342373916354899613641835737010410560056344174830396700047810525173871474544928264986715156707056952144457041218763900645085446419693459343829948351578986826468670506746253370288007688005851871517637752954396291436581946272469159238841014283592943112687206855792670372531923575188599367060087790699228823410993595913679659714803080861983387509966485448787975013093544314920117691610362125180891807673654072322424913191552292898356537766250412973123351051831257998364954320441017676851769552795059324657321201339761618366920377919967064376587821701778626980798607644027002361719395832286985718582612563874985812746233962952859441417501665013564642035786648843449163173006810363685753108426697702626432500891815823346173298343466692081262422669018206849983271033692518824591356318260241695915627062884724117900146354716052749321586246337071089178634369492200973523348057399919915840901995060303199439664761699066550007062202729912984370131838995349906067511391621515632667005986213748331835320216638185121723256476972638768839947114861591368167658525991777750684444550900076351251562584521609432443672534755425905337668758541233764592246953005704069812292539647136600458744955303889080052564756569328656602474069269894267051038670341070208818123804287746233281335619623781955616451771322119048790814661932483714241956593071921598534554168764033895260844039402455687004751793485132710789215212485271772492486111941576709472073666755320524087523413331739262978064166656430704284503250455202376252801523330834899682533817197426753987560911943686024158131794470351628789091141554087035724451917164690700937107895480899992712922180899852650336137319442644017078277769182725454329115593521587126195199754121901734406919266242767955253252168366837786546432053292909816200638433994525385927539345380187156069452376381651932111410864284098260904806929660739143777753310731392220198504884707160621404867403672099832381815131432512028803086016340870481383909259869498396068422002818711754950039261753222352972599380445938051700937254099002194533145398253595269974236386222152784807372613829412322165286334527276125346401682749465036991422884145599936217589477918359483655122355784165214462788215561861287006168726755053323333816565916810219020279340795748838934684585844045016059211346513685584039364592485259935382300395714429554862171686263745832537309692119763227877097716192433783173463649615887167788507125966127632347423961418774439341598206214877494586700832392822669226372417820202954473657920415829497112511427607294663959874499016302850867719893987152118302921039428337471931452950263630031869622448884187599517044517782186627548111442883830956044600181088274269661779086997946082812849507124209893682438155104167195468818161792000790087634801278396563802250832052905037441774641175627193740938392643762044345548527997024641007785435153050121231561736156338216615714057174534155354161146991794788605217101806609827508114692232954895571984502854778923283504315439560974085547767168081566936042543562139875366207160490711365575015646660438985938121914124717145322531913713900478952976910449063438301360049969155918552503054907541498392876944317117884271237971906905777268524061499435958540681778989220475713868782589326011201128474201722507082801155604637108100214397725519019406397366048987100459626014052688855328390786382423881883341190271032134020326737055733085731941814632355727570671486904693715332565960740293611362128765369294449007473609168450839510744438657498042700657343353432281330488266197385841402505021191740802320291752958907281581715699628290690910840817795356023035352828097579418346274496806618542703903054252918461336954430775506401406518583507306942765320117445681961900942330582767280666684339313412180420543097160240854773335451956385639037846665157287603327741295226884867665972447821267732533684355796223930386866498078950077880472022315218285072168068454845932803858858762208203543678295555478342851705613047917275021585567177878070822446692835168746810740663213692141297863954682815522609124091745840117446702008394420051209266245741663998336989778353133546547870080634249145666650077091176620006635371838080335244313545950792461982404827090420759228463620176430552888645578457459472898825081779368914334834542284547418223103337161211677444618959998677523565107013408153605437860475142495488360386814026085006135363596448546251606969511646322405370191045001927664642795703959078999886038068257765503628907058679670706558097228133241632627036662106250263111065869319314060815945140754202190407780956453783409204047082582456435416874161066215045742582084047793946489833053941445510707812113818847279763195388713871543175954392704536453212393311647452672414016573580682120613766481889090454890413071860753644472515904254150448780534913575693983764927639452197291644353937013056991341898154134664950522214979136256888325133269854780379518617596599028226263463270859237778214784259780655869356278882178263112118512666459733701086891310768463637334000679413930946187619440104776890177690611587047923158883604985893025425808198974128564153641129287085209848691356205496507492139049323932647228256666384050633522935895977952240661178924794385614163213265656538608734103903754645097579507462510685858248413697322138423163629132424410889349212575903035586225297126425645137091191402329994160114628699341567013625161797853865233414887235837747750264179032207098595601292081595432970722085604461451679276286826124614408762478469304328850880769792028709014491063821667956475070308184340976142265710379074268407114548909361161405637622454801420933107064705506409846186348377589572628575005530805504808782850806357144186493584570822946151619536700154476925314120190083594520156905047721352418660588032998529755984297342369620702954138586261550298752908846289989636593318738995923773900638512966508332903700494691088003911636226018669837759329452365311751947314433424189691170327991601201116918037009491090222556514134514417008469725638350412343867885108627582887636403570980230828864803607142898228444198376804717867868553558238449342303348237674516166037753235987328346830350836559143176558256255968863630686460485069249895171631772186737398688514371374677146969629634226276126983854294942521342494296416155252964187401645001729487256791444620912544787425925080335154127962044857665420858451459805673189554753784314825149466440726562300305295312455380299418785128311816569510530770502122177760098961832787431724603013154375152933710410689637289646053539013912982850165957679643004890699255940642810446228875037038455972479755667256836901978580205267237431903799758773209650105938354443970137199305302434552027735413193576785440805877091976172188796194299444358455820461007616869536822551590845231689657243538607701928956779438660421381105049078555567155932099633831777257332427046830658756287560869493921500999841009632796047697209945861378557397021860632878013500050830018050931130702277837627701609501465775210262154236952682499987066040738240727653284366793660173675151153932283640234305194739014730459028944600969592976666904528160609671632988328041201720643166757468802405589154829875454224903907168836220958826063051934125885245428507910900550600936581920462144170367898778074688392152831986959178493719230478900434994081589713374005121142973754882114745626272552090290780053517552805495782762534715630884678926640115984802975551616650235172304788962155169105601634415989193088251942856131360904535636405548634013954856469747535780712247072316041276566391774101878829682352472428088405719466812962120862350633653811263711039699614915770457322296502669837623602400014227602624050232610342759281218238881617519482953213359969026668420707454446660767537743350474543537875316017539441375691375814278105499474479641546446600511996360621806730757153788470179461807136402322836419163733858901617836511233895127976547871901293728126525261984499755632788754516143869992208759026768023097146578268281238533202287531289014122049879305401569154964953531221849895168545393187792084072768840643083692636638229005493756361386395417159223241271995746015160672902079664000432643571925418041339293570739928623093118248436941719434867279662960850768389299950428842624232478045670470333086338494672289214806506741785403594758109410045654566526077177514836519648374611351507420529167907657581866575788850296461315306319811215409518882457991407053961030647927687312579628494732362953934219264684126153172189423010027538369294147532400945583353625724642966845381795868747197878192730739133051214885560028007696554101886837569069636329456469373583984999640227888380389218896794614026671034971512928773867178151960314977077063308230975549168548717355868704466293089095084632530902862801488197679212390015351788899990903370207915472954742964074900775668101436298570874190114039934240326068032267788176080685428556356276595662507501206186978319786343624067918950523037694382066898641753261724138536953561336413654058435754396328033568802676443172277798313431991567626961247596426536713065094711024787287645515046368588746153595867387627558798078456770491713148170514192768074094425178909750460332137562523503109637023912919633768493394609319758305283630868946778510340777877218180032946699645129226371580772769772180500634405522414064177189440920151242476422090244957650282856986312347307347154541592514767476750455567841744410304069428913223113212768412061944203386656441062831330799915481081620355352450864292932611874420098381827395804884833448148084336014627350645267533029184448711171914186245167904895878886525357137964783643521880995660335065299119542347595085696722960943823977502754328011347167600628088448737591092329921849512761983254635758332903205391009596757613214928840332835046070527267131784651772985640379680229008803206577849857570615922927300746204532933058111505806206276461849927982408817819818722302420336019472192017878860934736024059909048554803955461125073666681355882587007147148603488472278491653866166565471610586472230495098918201720531002679452270834966012923267368343597484071273480617773805457867762676629737156453205221283567849646206367358207391538745835907139307807217905499478461765723806439359997494559697605699744819656440268485916117687507417983266418298446867034524557606701231257845553795978894955222493441456565662169922901960656447263335526779683617079027100815613156510940166048104525573405254603654092322110317616485156189565220102761665080969806791694294289406728084163454377009402610627079259223035612316901648596879646529852940862712050710021240475065723503555327438131391257123679900710348526254358632222253743337829217577457776780687855045768363474000920366770746679060629317723034664168982433021254866693108444689455754755303383545440065795676441291936185974779389664812387354364180532976906940975533616150336763186924702809495556123010660262416546803211448183792533066586865087973289560775252719543908382546584776299930744140923958817940886412708415204131027304220547206189648611643989227316142020638411244275947378462868666668989969957389295873695246422781491828669466955525878452105586948847860088502336715657662731156554416511227993830560456134554100285607106918076725142015398960172713953602714227540438224618251393484967121348259204228731880311710217145332597256562116815515542816421417182886449169265359573862598250659067677298448349043102964321103421121224513479510423118692995101101003759576593271891138760276842880729071240331080665087728940629971162959449193594395082587296026822693958350891295458284461881265353323785574912826387064504111936690733194645902704671383512258869740173976644959968208254989198030785335821219096521545358409613166975681873609692866547884038845174217334055103732645733605923411838437033251536620120050216692836818795840963870488192487891626701420000154391065576044094507050331048786482454421471121755665287821535188000491710278473884660303446820443830579831826279590405789492866491585373158122262276325898806823084130617837838172349291892245851193168502805415971485224652529347346742221191615099764006910563597713942954042343709631737521333795462426180356072148720550789265052819427839325522554705349006572495718507369525700279603915045756822431557104174643462896446232307327167250815853494336042412674780727692850182841920192684397223921942413818094112356376880401904008520201452743109024519417261577936129906518744418650495357704058420961760525512475498686884396959478852676455795955469250140776362877386023109974476976213587445567079060572938893206868077761211828376845088779151825513325233914765759053001730289969125417018950328547614764578860429659830600711276265146140794228294677170592448887069584719325786578666831369043250046646981532297285301017446200257728097464965446670589380952582172644167713420302583466996488157358284087460347039455702466142505715951581261819247007554081236434228867963202153916919337185604230907458476673760429554632755934677604699900863353513555293293076128349500904667109272903494619449356073599975630072718932937029333739443932087748725515941038457749610412059150813689327093911291313393142540158108515994433114025715168429624107031052574317647216834708311686748148127128277273854526512846823751280055058993163450379306707814684013682902612833354436798862036012498508467271319982129307055994386686253646418965166855191424225329528990918053943403964888357699767212546537166147869091788567789037440731641934182128362577004767805329568962659324407004478265894332908703538030182348748370979404436487505247155897491794839699484731879100203485294423145874042950826192867581622493792291702330536743679948898129568553119753051289994847186725124762446440176136142927733888978454889625278214815549527700242062163205383328964035110138027462652446066847050079518313072373870585147053253974105696269921580411741130508203102235826435341419746054912358223971035723638630098798527400656988106817691543244992603072356996866930642955901478290689146962269029484974197684315390413674875885411324256078378454777946233684106532008515659476442856805000064849884272323950286648277674729265302242998342273773020340160703457159544274180776460081341593707240377886149581157317269020777945028240688847930434568071464327335660752758692451516564502736269540783624928227853992017903296323118470799168542594346718261145508799008342520108230004310991174411057504341617418536364120985076481460835462482834416209438390070936779608203213088387617212835629789565252431169501539463450094975559568676717909144301145089007894806502146541033067029756722000166217652386500920675287999572665465944488122358115224437918585375142183314467328373201944384493567236050286559765148919340115005941797528229274985054888412672428389896315298474314110065798717061206622900096579719722160182501908524400011676200891067199747865794558514489096907711678208153398171348268664855418347671881121091887159369661694713583859034051698119424712534527266999730089044872474967515976469284173787870656182941314100743768340489654079881532337015953006499092077569655324610862328797521415275095722135173647879045977178659796404086525151534562227512456558878597242347008897520749063086322025915417650012355381301201349632426055936930018774465078584647579213760067440760938392063493909362357877631839743574359164119306292438319636409554288502340973959756734745295854202665591060559462845882321589057872266953810194576240569168891556949771470974418801251356956196291875356110261843113631893969353186935969768342323700538056785335333534840072149414272652268321816846770583785428612923955264947941907332181245423090912148437830936512078668868839306708450130082782440102039749674571461388183974348123226282238192249554352396822161720794059754101561161334940790324649078777752978929798541287692252528100094317261747548371772205467002508475329878661478188037802437263171845898380083377688492734039401242889584609789752806050213811411124220434239168135798944470126196411022442023191060146854367007878547355061657942090757751556618978883553175217470064528118263454858659584932274166720141187186092710655694630585956124691562754746969020588397651097635259192345604193553616240792665048458866122701423397027580634980521058475837131120851035772843305798583761208415278325939114669498033038115481910283966058789648456452984365842815368849305673457539258806023483478452249237855810156965186297883752324284464702986621463738545752711096675672701332975350885640573798217980081970653276848844463829041321977415367035477361284791596900842967611376215651523864043775817551337738646778452153799952294349122662651110579431556927980794743198505323944536294329215778522982673350209526120544684858487352284220705839507620512902792016270140622291532469170003898068851319917672936331950599684803340478790779715173178307507421870956360200344039005499864844427938926439767597554555271252299431283575108001495617466032447571964862058888435846886180980067039949201821044762626544610823978782445760143571337296342504863823213067522214609488817750163917564228243414760007121199365974689162435396473773792242710342054794314166513068160941330844620638276219572736301715097234872205943881626103819648950306063424087097130945319714431072772702019331637829721140093591034279442319088892189988482815180100492089053222797546688086148472908065564651312339978819085882307395014018012424305614988034815293930865232075636174313187101286177645989059350483189637402185991672180611843225667188829448755450456139651085252878300019439657160963615172809759249099699237937963826789476742127306866681903602706925689832272010688251356257267547328996311488452676409029912016462607265537966010574083526085842524547538209103170291379342609650014424307685202942630242155852323736005996187143096542528637691306668722672770196150481089542880196203080789435036044461350118523455981314056814218478416514299777325525239222026333779287421092393635106996965667339888399436529894117111425797128351139824216067080879486053744905997712175925776228443283990717516158393396967845186103710426682968878874280602573768461197247815153459444919082557750891834250548894821627965592885360338612364932667972833350511053805746030956337265394609326278912245862386507857528206228496129214498114059150899621005475594811661313339946090472716933140160801713943508407763060643947571385097537137866981144176857105841292871805806159326426001564828835105673569239097258682692696464867713755227562254310897115602574988549756370627949027108406213884990297592581195824782917431737844721278211133854675376338455942764232864977670706320146067170107339004617051886400458610027323042366290830321044535415973670264933776459270908928173113824920974895545534890934880022192850937921279108419087417528597283510816427303564451174772450313208881320975860960557541430328092588373897522199774131628157812554430944362001841624940152420982479362576700747530941975156830023103172754086250444865049720948415614182645944448275814706021940886810298484916087066843061602435894350210659576641328226322865295894448540611898500163077929448329027540901918834132653811266549515703722055336690195986367532611940700250788711385861094382790843743741631614450377873494572483642432089464327584735201026249796614060641635893034263213798832202470528460850777602607918026155030369304937968411617814954862256024023500967469061858353084502833346254449649760067431755634183542538269477454677810378955443668535491047929021590671186761658392915785533008752496237137352643584173227128500147477044281490115402333963468722807038261125137585178629560209820706007715601778602238293620563735430630110568409702711615838318371668852838489250683966877018291040189335336625176392494073768969832149169163738004536444110929657606909135990704908613795598544025504518300079908232645617463731658111035428318358286533443316579230330016225475802434236784862246337293391074752930865477350798007941345836756529572573025230742885597066523766821234913148621484894477237459962910802752067146160553257518726912786496577788105520720914403518476301125237551775222327453402444639878259734586392156123902097078351903126273496386996813687608675561634380680028291230675974616056948556995678791041891591426279732488964035701958828654940162259605598339005837208928189617743255797937713146762479152754020042872440680484305025513614036814245159528618355027861827475907487498943816827114824297478804255183463510053433612538109810203970792334465827981342012023491646165228618332376876226561235174769623595261815964351651663971439650198442483028841393856738937845259399811218127246892514765903915843619883438269792934083953635659564186736669553766624155965984206911895182386190305796652683053476319873238165852416519787559093707968884576123712133786010234570397053072569374536700747250045651507216231282976747692586046174512472288546793502305101522156844834417948382942421422084885592732070895605421722901265548996424014955620148484380914308839244883734466978399455101304977425169172941900249272679797783112844328913766159853087810000485125267249385903560902082523476875358415138494064637878910853718441583643883750310605343323709476290607689867876159991936909775403476876425714408853405835405173876266693026080355677104357007023881159743450405994387452211925143559634928577239112291837915982979150048185309238753287554498006528180396756009953767832799439208386072574764297361336099377212497022667670516317269502940352217049760382615239801137612915205553447080352095942810834140059971494748856000065819696403041273720625986853877353557103532012625297926859617682882083228056328445364589270274846401512012760361026000532697564705808288856286550437414795693187857178366719562125633758207318872819717436055269822997421568575102823429288068188873840874276289364520580337825753890494449941951025886298203905131530372378510487160368482113385829706755157682940604369658687686800172177306197853032568462509056081398131684400479747635471202284595550818689818520476402554427717365181706744934901362943952785468359435564088323242812393206226398812562908120654128023360073223865783615153165361589340174018095230569583300521461506383686062983313222182309356731156069531659600883872134595541452672751187713295000951871770379641727122551276986882551436811872986873599312048489915078894732128447927182840419030003256410696443007798560295813559949335123273513734667894655767379594282939111450878527561345154518972377955472460332650998535102829979311443781348760110301139886692618537175901293537851519581894549020799839004665637209750042415126181945530158995359604246529306363852412384470005339412997554438228638517205097545661123491193468295486429922562600127335717847775841144786727548352704935117333460426164298409805460207570430774829834715165963836957932866731450510601221759114630518999427910112709445464710905467041010584468012084625759072534677350673351550441244654575554277828786333659005085594187961112026269315821105439424341293342836743383709486969275990322071455301805426453055375975193935628220524315815181152226227325135243858936475063189688284060980622260809689688336190388632923999133953200430989548484510162861515425613499409619497737846084274918566658416434468632783696289454880501111648097395128770394333345254196090576374367762316005608264570571988112946406765898921123316935086847613214973794317747783128690483730354518400065009530842319971444118914113399754056426929490386869280438714974393677214474601702457149357535670483315544784658556041748869726761558850242195025502469483121548168194884186910305546126465573695643353485953972554363433375440141054071992004593921637806439057770330550066187264739067006692931432229535137313576815601933902730783619444204086272397020302796560471103850429666074158293165424873143085873552715811696860867751368449188052874201651695298513629871778362520415536221317786652977694471694363207749853303743970842242356455780560236613326477089444460318840350296185619539952821030125423127049139520628773044452954568542694637623992161193504027348283115260515902696833569472524028894874361821957875636069038606961533075816065831240753100659583636928431190507701986670279522939367491129567690299183077553421859989085213470513848128377982849440914800133372137555220437958412414060179916662489268144473970158400214633851922614490875312208748028616168776234983479916302299539440250127285399228955526917957487387668691966545218613756822447464515105544974186430502274007900771470356494545493708052724970387472369857273795228837913676665526527844632116641446004408765354548697182859301731589564289106427694920109696693252424419687133408476012232550774767881547756062252836814136101023395104740494831021330351385725100332301914667332112537682916149995696645009356315149107841638543157123849900151444841581338201193785892212201031970015559188692523068297398339404888034588563274050751579841566779862094479952661145928154681397980848530666742275949203183702176062475720676201653272267975360801985578857476079938308435864256214968382998438362304654215923247569948314816416732060935833780280831279604968070987532292265880216788613247000139636176998896666420275298784146949038975622147726680350222028507112179423069909049810038220053866059893274018618887518504182566542019580288025794986045910719695031646127842851766210685767362003446985757747196891507943490257412241920280917055049304384371855920409815164060903338553730019025232374507285471989671776424192015192872087843546996002061700202228924980722335027827174744276007677981791344175241643609825745300991929882470939098896795262124626823695519539484934761870192438602797218632748962981363364287543716176613207714137014857761811849071467775291918269314577343528154794020031769549991060933924888852094271444216636262709062074644008873104014024639334546355072488256147703074915747702120838398287158257872559404308890591765470342303241732542662421952497009463015295469096589387138727780798276375263667879014066733209272143734342732843151828405022476437523302575382540283405625109658869089469288703962377360260629083168811323413788507503416543869256582717180256731449492167228006811405737350739189690883356136820155894497210205411496802655167398105216770622829604789814118863669737833755762060179067792675526067509234189541480836111594546857351897690216032521083359423017641241888069201022449856988803802164983533001866393166980067973504638490223016977976180628952854909790712851221341371875453239759894602359521578980913074914889716335065693628733832276358549216970968748620292733004292063511908758419573072675903475571891737510714073222634144581918881436849668501374929593560187476432312685490571578357319847850669484154036087580370157911082932022415744861792743721017469294916424580413405393615543292649795915935508792968874469922844783184293196810941035342916125680244218674507460602503619817077529138861534029992374947244923094610671653787113683676635555968483530824445249094888099245484328128977549309361503931143150552791702147163589545203261049545307476453860059573702633636483805317966491146225834562716091548875588465794315597530442384422523991399838266019539934832217874013405188846692025096515603498507708399577937787056505708433265339929417724383092207105252478772616896401391411781136812599788401541748189993794131306731500574345527526449468777733599701476078678281343481934881531601418090824420831951684182671537341276579760951654502439275171576422610158746528272417743485114969722408192895608817419518040375046571292195518959444061782929750773308580120805383358847906289679296682015818055930385263893628351827665286016650453548293281083658167054503048911495470126187660767591183014932752216660114917346934983410942494859473954085285785507692311744156711977580099727062655844512097055694521111598661991060966520323722821612588573396027315371426135268400692174191770636906552183954501917119498060614428295831538626914763843169019847365064905496138428727709578992175546487844410703956950832410176527181220721734153229982149174332767357147519781449495561626501027303021254635161387735873358485697861723216390853883481805506398914089559392688405316531763351502474924732077940052582821664632508348526448855762618309244089434974041907899529885441122183437888860047063328526075293267510432168193274240599240825785635189496987396675803828412968989270724680397071715469019769154459230196743031614035405816195879736341551432071101838479806116196396342468503485212607202737785819801765245145183563439908533868227004528073123948510631937629708089348877213067876741842053066578542204761284100597244666015229273196379456043367155091146593106896617370732176893769357113901332251056738860192166276669090185263139880865051227648261414521950978782744378506120799373460835947440328231785875963670062185188667634603871719525596017497734869104919060188505232867591895923121464075981890199051174014127933465091266457769510407838008007735927225680783674430144267461818272293311629629253069960850943937287452529198161299919373577421159244528782749578540954995524550171585130277284809540727830832814595454492855581642888234185504947779213784413999828820368303938352296301721792321475826735518863414482178108279755237048139486962297834157644409112208691579691072352075638616421539345574133838068266493189988082879492141414821638907134811186969638087657140496669701146205558959036475016915365639671031196725677449902973149277306434056905365510214308245526436269180334116833959451776426998700308401717539449527463535357300933789651255184034709570412776698112084927784988296125113927840366750483009541746391589264340252509264980395478002131037439870229909183495394542469989332888454222985045172711370265785568424144167767768071712649334339369985108113464488509482367382656225969520861014391791189217387016840698345972130917398085844353299844308665260642618443247099404105913849379714603909926844862426102262145641455233219366622128229581066215505841288106621598280589044271128188700763092709427559389558504695547283731736009861915627046999692429472441293977023490844229318349829383046411704025969565259540701987851723922295325064349915034362539603128073107827275075464816432244400262993100359881492711235228283546913251698801888061626075480504791789046564305023176134210931129255628320919869393482186774867437020329869352960069988366447959896749329884113579438321889301984834468785757218654953604602245403231881311455505731952269158885704401486601329404688626274672197485488961330432867708299541864584796960744746096716504617021065422770288303871244030449584293541874571258893723444407524078604694333844966397234264981593073168545757054196047926023450684354965057358628862144984140421192018776302858230081774886950968331512081674032021920422932405475879492038309888785334666884963795358285829647826563689372235934448512534996065448584759896541933300795776328287647722602940851356353979287730507655987470328844618537640445259288744528547744357902096930026593558182604835739056779871956404157054379803292952409509275307776489223564189000681784161341014009254043892117631060971021255056636601899700539800130190983995677095155354897801418378707443421607889890543193088314792833794986485532773267400382348874800339476817044167814884683689337581926200131350657814113403505830333410131194506769967999482206979722256342160431963415727983463474188309002681284247786289785391787390503740518605746045385413162616414660824812818842140809749612093420475267287107749574309529158426894433862373119044653020031127672933403361517238255548560807014381435424671880714851948103339373824135528671495706078066065008521859296679392672396225455174994562054997247398616483022038211318952226654652485142258707735658518793011852706432809902939826696708203965338055371101925264815427622261292553879627572840700048013585374192218484613691454902960887694503108675852037033174663855286546388490260390752706174008977787935611691908091241880718440212113462700697752062409996839186521695458376670748982141385099466848358579607262396159231581476737873033844878615918806140804355188613703671608708604342644690729882640333860977272466330459479874768609242783922082635355793676463446526709653155918692888894772216758463592721802172603407637247730454170954621224602593829145228473111640713161628867657776735019364398036557406942405962391119640135399045307227854244529658828959442137345968434367035202679309517229535072948195096085086401737545651247926015102595850524481233089891022562730847492134952174589833963730628036668023935438123858043879832660702423087978317042967701508934585503222452690720640947412607159727108433027990172537247759368034490305862267907437762511744022799021074964936510193253958043888217024362079502717900682535801728793101909963809339811313700183673150433992907977659409971263324954533926465612018657161843893965887508288068183560466515787719497992408823574820504600725305015306072534722992093200434486543517092170071193584853198446922971691337288048750645245772465420344193967406515080955208344877066414213780744173715929011890402906373547316126455979966314533278003353603225288522098620004142094223663317209352418294003103684078213723052417977758505379418693492234959448488160627161752216230798642290981742268319621840901035633554795499096808349731815184797198759958889766138057001462394537355547563253763207273041381983937648158161785615843542555096638039111353440083011955694189525966587758785752333227593424304528229352244318692832860151552305361114347498269918944083093778316586404409232317264549225073121708931334169357654795987907814149910871968400705859954664846502960930637374732615458178639858462731663052770629549571705919971452369065357277373976713321366336156971187035807270769934631302592312680417786255674001587391160046494310739052362674347349634957338443996704083108385797293045712988522828235227645650557515534650677018213905177274265792389164283851637882430245245877114284364280089875238445753142510320050050682533900034835075489069346529189777690123880572946688490385790496760113553524209279248306969179716307362748821255549337681899738023429995786588786769362448498001939381292774917218968635981865106643887215388429234623394331611729357628390731279083715963922054447100058529038105744373811426991974018922379742641384329819111692198404050828956370050887552446695362859393355812431564676713383585164459296686960141740327822613885209593928988098889936570200034577361017308872309294832038904748613735403986329406539331035537753535794392043179736360868771631865844822760016114295457766295900934965189059107428232322796309916315806953903881586847674144163360263697255871610088575624343612607444369380915629576643747599351885298879694935540140780454735365486617519358137879170638053163316406463173238793976385044025258907269315256729802438963990201485706802036383931570035942335563003862367359431234838286697184016130068595406345013232173835963591649625678507857615896115012991504208868917654120211404293887061554609775730839587538542866874177486835779208573038081289754447237612459249668308624571568629940459777810792473950423134788405289938021738805523753294127327096448292452091818022747081612650536807130658402542999766641160538199687389783338551798247571134795883406481491497778666818910796901380584260827301022616942771450027776766439464809360511115733963247871055001209708180273585272771996862284661335607491825088080868904716631683739692740105725464148047529027933875936736728014317599134360043053775157626386604068554065163426126514610641363250820754583404348026497462692973049347714781983516676069067999433681638165697094708505199551459635067165106643706223430355102213013234697835431057617367076171476364806360029894194585346811402547390320145674634960579391222048767623869337247405941328428446895231843778523072717579153334668874399131623200693879826741575519388094076314225026424572913244713223069244332301264943701095835292088363622957514449945895133660952470705270719008519916909320521325653757077164993878936674142973955273002246824834559526923936555469855372167872283597823264959092730004818272352945957457391683547692216472415960019054437403547397713772156215475346986174587023620310043550554201525313927188263089548890212830674531742912922968314945622472638892626908248231545905593699024549592514362091401580079786436985252749077919329913019314221279329725887089702273740206541307761118878574105334717174569212194908080528788090993880143618155512800801121603954466538844187700548968571018408178851433432523346996087041050605737022855717659368536784054169660089408372146468922805563783246043044180609559355894406319768407367613221288173798946326040853129513279275386571474303518262199028655707568869497416825647671427017099004436477704547712385542534560536900988523869879784228961743609901583953229826114634885097394049251427588970087789534956169722488202302086746123235430735864923443564312273605148260710498064423151355706093424730090746869948855808155157072703929099492960602368565785372281799826793105660678345497284860338849119479994560732185637010029443984541787439927749602903287304115660399272017921763410118396699101325101070727891064418150050597087355698239828490512640147211613575454501268263280041983759339687970824406575865623219580556961684603781752576492127466003843943446723712140527769642265274280852268926849795124958663524981462275566479245493713599044471397675942865871402127983337565682912516948198339734962626412369421960686619669106003860653943633421962916066316607922477796480718901442503930699577640855773537252833003521454236858815796452793865718450414851023389131756655451362527234645056934882317605360575020278641983795812911062937257703099158046438519181271139496305994662264210886599117450734790964154040219442335187311953176808629186536372664795102148860917750919492767032366150123944892212330866266015156614489224729317454064547777240361136658341080509006168058653227135619785458684229928885751534989069595450776964657329836028982729243606766369404083844769333120316751121527167320091865479319553091105505307171508475593791402081552870348003058500457756200301506659948280249698511416524248426252033024867533244563081378353213171585982003409212036669033033000140843376251400370970896324679561612281951475766478937181820720343494659929116200621271528721719026077533749182735622645451406076544811022071951726310855980773750820831338439126264048310742856981567881061612548682115241128084963916957551335646499384495041792719289309914232269202498275287499866496345905201765432875205049771344524460635360306171055460757014265943513746076051091563993636589094091836203359324012096222499736036874538080012242665002456813993340281408309591378821890048030182103052297878742439876370513698275327252543075331115031471016029886264020904340364825291751064357458520635478921653189413961369583338021310366756205799611554084222030177486647988872043318722411486431101788373398742958675345574490255655387335058943331857318677904445441594267335593117370961996282573661121916915667898954916828896413346526605130167031322155501080654963809821498990199994636011696870607572482247011788192653272604031674151368941553789823716418921510176588978414988025236523985488589795402621771904352919866111982569030640229129934993118103723809079281360567378144109946551942435645459239247827354866606111945428460336439640271272444202103318131138067212807824177275412756870949531087922418524151132810811766457535339527558620493763798908627527285261417672289917613105650100959191594802125074769442743561077680569514027429127160478510848181321101783050708377672908394742803898152886596714391380339535608530829691973894029426258924436181981419064570865101481233182685271410781681202325542907684527434720460868487358040353369351139562542419131499597889135346112673361579657319046023518091961696866536395665969495320248495393206230087713818983517395725634398498141835600515580866774652546631252200408790514064553421464648357862698154452929102287130012484564620708813813608624380689221536201312165806540984491818884436554531597412409412134203456468574091768939517569942655785107698566988719146217578218547397775781929219096389324790817611900117383968082755798283871099123206423758492221181563499761983698807560773311988358326328987781996838320755923003919632239786827820689680436646220891075432804629168278109761114531911292876293308900963562751330569395787901983922089985282653090033688954963630684211088900937538764607904737766339472945584294885733391651485260294112004154027870996026765865364851539889935565004712596304514857954759991919091616611590306053765267247878866868978718186159982649084979946993225348485769619238118328181918152685098628025885103529573155770104712666513076157343980914427025941430901562139759973003805955547091871841133563579463880578345604954253278809694669079586175033221520673492919602570944766314885087555921157946866327685652532649671736433450698453271678720901901827517333560766521855868780011891989014632064484356775737211709248361449677906320097937005590455279579556032299319235991089542466083316546938101381438255767944063692571750294968085370577739446529985458287293168624360464399227563111816549625880260914496649770586686125943089644706201987484424997735570853076618091667778633135284314663204974948437640978467266562211122387206592751055535714251214766846868284087736522767545837207188303110225456252132335383350512122288735634562679298483850348344030202805258544254887324823224732182318991836453463030278379833382401118944137283532843009463524120404922855376836959985507254795939118815257702632205186479783586859730291698039229154109798704543181632421101771232179223814503488733686760112163220533639999182279106002002202145350837721640507094506889186959038207717347786861774052382214783440722515840281481924051614650774278132655756289154095070038991409435364041601972067624635082779685676265476893070685676576502371468161866029574545128001996893078099400146014206555770587494344033934966909023109815874515235287375731768083985590383606104317639569804644280507450162719787404251392036216631461545679987654381556923175431233525592183066965743502493072130263896052076721275646344346370334579166201964975201720565320952433534439870759562347257965863644557518042469963767696215187622838149825644754190121792003660753625889025259293485249573783214471999019464173411883624135255601783993773742305849469909168421572292442970461486082134974818052187966821841290799811795759025037433742402092326897776528130811081090148531303415208583763252410104031245169333191815805477549790897700497975195095797159415094008866979787120513834986548793561101159406558928392326222575521864570046075528409913243400743888602100436766250630410176945123538074649867502150954302793673587952807854895828892383780817681983863647073128603339097458190893857437475755290266550730484231406879831350620616071885179911648452223531885582420191330888268724213458806775816519059291190676254870173018405932233864715732938596141946777535878182249920683844453965987145001764562036577093903808930180855640495777484540591102437623167187162212639958954823344251388719619762099523392054852773486492956746327618672147159508258354944218967667160030767235782330902851446203694467608278943981855208079114896041626752137261860560244975939331270843449651420438705260901523839388570356067708087253957248541908774464120308353176741189572159971880085133291399149131449683545302125932848398267031600211413069904723790918664860476394720245688250800947321765134734244645617075056966777048881485179524315091706250949135589241690867582216641343411136706432168594415856431394885941199976382957493567722437012996559737473193553333220681982538532039440850840715692842749040075875669253953126664154758025590079248488342029514047267596362172016041660303466364688892949637236519364799689276832542635505966693067875802258871038496274706970990036578479497757877906755036829382491576136586261713020808252589192209527545441479035786385314954137962649775175635898629695506211881881443839706765077440926741610254398773440250110610398868960822130786679767930620508345882718665069741356976460079538177638146132618777493652233525597445365169729095382167214714976799485542329238074056438591134112743340843988402022174020791107781282365417677042920309367516105478938712107940069892583163360903946188104090506652103990664381515104374537479534781133951680859112863834861418604446268893485706379748173865113849060290109109409666748132894701581743569341578358985554820759382297877131211776957106514626097303452501473154880521600492639110856925026289224144655884475328236152285200534602412554420395419482303671767416779773318099691183317258738414851058518157834801258977684300845842771035785968344926035625314734716537609422816268211168783795005019750263522266042486491303304224755484690410107724214895155889954122953801299117724175761865755307148742623250548334894620240673280124197135817052285890634223865431512107036528516203581185497585760551914455581845147255423511686854338646525325832162563343851500910739067785476986946260756451687702898167370675896031406904295301702726398385527461814852101984226358693043526623762653562780623596980209470373385471072537600693740080322691909827101485373067865292711272207454052752699957660719604183974507370328232735113719724610569711029915911635874214731176863240670226081721295957502627493034029370096045945570200982517390166767061490881570741246997377206050692533011043688159429148619048841874612135328692991719142312378979150385959544714182472849078489046106115180018579365379404552390439191674799925357965019576498644654368377690449400431132107294432314657500604991738851890694474034043655802108337162962515965124861521141070820567478198554724136463593843707261728976465862604950388696287968484183327361233406222154849928042688479943377373099146174519992537045512986794894836241143459970583148871220110115968036409807419710138064069526683893096175459159782161435946071648074626235828856815838901171201876459193121911011840441549519857488959015732424478817789696225181875803683911535739703532697053009801244553309692412251996157080956132008566520437692878051371504196610327683550515279882894920008317835124540993799769301561109927619986103638101438660180414438685507963586639602170360132997823229872575593849946972139834608372233727934265175941703737221309600728760382552098167547556976174339875576973667177446817062520120563891969419575943626361448795035761780508568741479340002223579073992282365286667586800570555381430205255306859864036640196433895057378755739366243142915835962076770387912723093144074199630847728984854319325242887703571948900504036061092161830101609517310808534420374900891171348429618300190743000132810836104267691464959784532857143456173625381475033008082548240848606214872993261279963484484251471077027810456551516323230451805679490862658304582325449715675130763638448230157373728297907488841382265517159384543113531820678997919082085273797148887141589452453657098615255940190115386758315601678150841440990337886014061407265731529524506944479088693914040252857453290765496207684063687544408331298250360348307296807721233720149931001938570957689507624897778114706974336542268787223695645799739426494234541794120102463742992659321315978753872958846916434319321704975381835673694242275082209652948998952268330460818628889210209425866535897021022133326791980388291527345951423110963766396468890944462532158552114642004579360869326578620529658680453366841893317396297897453774982482345690160194909353168285125574500260181862077361456959459758218162234899635658694834251219643120175152780886966866698979052151698148133282176360604736014665669845011037644521689376932811441894859396277434011298562934245567905225463918255066250199423703663780899935043451032948107824752092161746073458830153283637831434414766015705243842273322052520143041252484537506784541735909494733135775980941403823017950993789656364683451307103319407602077847483287629108179267593332854753597107347732346719074406248447304781947464247161713629443943647329263864016796492891647807699799684674845335187212103143077758436931062248920820251043110338239968293723479299101593027269857960262478689709977576255742061182940763511077186844022982255492180142596400893695377962989238072986248784711164654714979230862671068386713067420083647972543952624597434151790122628892414392312367194466649158190100773630972809880820180659362907572328130877066772266650635854017332891969648615656445680910660317507674702601139397283352886658649273329674764472299440880208770357492983585273341898545292787274797015064008609655376175237776614310453004821467539542916063291701009450958195506121745806956803521392669333504381478691176250317187356265784462474926103670636775695537239497542075648521908140134987923623415111788426701754295630721880782897329794247432805153567796603684701156442751841973808589115287794409214750635843259387409278481275427694105833971358208099098141832293160487600463756225364490937198758223071892097315328642996540170200534666764709005393312288776914245752946485248586816976386925589786849536873256638918139865152151822584361972496051842397756125434208171430003437232718502891702842512352490868593886440344459905787834546837987844743795673363019483462145856855671313834085633142823521934385855396554048605589172796875129482526554969290014567158963472059072297180413387174659519081925856180882137634164762018882991585042827801146156351752327373637400779593164140971482165481238554881817420716546733535225967535144704143439005648494568530439258483316178984465524247461910963714283271289347950474482315179563515537592692089587419171005103346207816166436126525994726277205554673165459902206409457740886704508225190352515616046999825177482503973866795146239208229263410439969492286651575651279834375226051252357903077410213974211846119573656401575169980169432860284001267888284689635260125982266597495233587808369416283202105666326714773808409146385887532638440708091828891285314437767933519188941546927290553378717642457475931530853367534958790530452774803633721392480727926704013099103555223845529085709016281390251151327270262974137014259252793832750980399378150086870031428228442909368128550173015844792074695321467203170728293473367169574469888140187606488202123644267832544822281812691508396972347081558131447485332952929757202458358401340823169665858659566607099631950711524302679718964469993286022454184821903946209833076997956097093861169315781870312381968611374483684424852719516189865638121725395332367550182528357024325083693223820723587693914349644187392386684332279399647104935423534485373114404421673974719758529137236103323967876747497293484937530501009604337092923455360970880890520650897806981915368966432780882518047677537210156296502886699695175813912392866400434369181504388493233473833545454676555009632479264843899451276728459199062016974925199928699159769838779815248725765048250817267706421827909241678052867296284086528743156772315828078729300719380024685379176368678998642291495310821565477297728073247662200831659781670302561253655275292870918679759703542566102965318804067665018645718158894193369254979757822462252534240525556369611042610586067818650578760467153414948366327970626899058497897682742913362232542889007022945115588280278976046917994348755226624339411194624748076717044900086864733785019841943832164803941712609997523120243210952433642386122514128945171149327472424462327817801616224075644781724439024488372934187303686944904407402143166723169559826271584619988311379535235675545204601610940388885875107558752003210564111004923276484156045373783352314255430088562291568189129909986378880955510919244457570604914510647033963238775759922433657868189387712680037891432463298089939300861813768853472581217530751590170136554153499525459553710567401521580299384220465141590104601288394999989447615032851202343640116024611956153430687768485886612249855284469352192715641459978546699576382214318228240515694817647869636759706351379673900006161221530161913619369663061495427409363675573084666383705491771156683298720023755652583315842024929732097083508725604158694707651163106073384921614461905146829320796319853948342630259985142130771223949083930784412815179625447020937339795570799828970758842742407648397359644545332001842247947730420824390931357978877954432094747659271731074516789885549562926046184175585482561771530838703638829050997283252303348810914927483320809867542636811112355452081161960897681268343534879481628488516477734748673376769290340354886329776116154426125861494791729298992681767757444614376484135453469185060286140264521402660939512025478990222516801133995087322632108345475375727888064316094501249212075634847189115520540192561559188891240217327896470282853383001824798287936442738314545133619488293203749282905891965729613792593123640387395660268287672060954961053085245781074358116367998006156181333272942197703600383430240825918945152480165926844576496244412806413716483580750171039032884298005695726915602765072991111392478201939738248960196531699690937808170235124659108591046242757519462203670178785492057943463200178011147061383258709437749397407044311629902617825764493370294318022190431139520547477015576666887935008981583427417847996561154631389144178483037594093303919202056578880190044062016859028268352881085688198054257641816534047976995051733751467127685020514803011997962003189183875886928557636798154262931413063440815451526067684979749322672131994633918298490624952047940762319637171635480926127935043697336316721389776790455930583662602408487263289781293609608336940039707758429361458883387462790017906628719587234715722543333531541618575628553874070873107902615558598226638136467076095058887383593889724710564796664410694030340682882328482363870053821852818457415377940669084106461296185004068623056428075882908101800724188497433694821893425632093209648592426212566857030492753423179022971737478927384713139993151686014073145897302397838930262881591643400012891106528499911079616985079596312774016462926579818234016241262474266754402374859846887015042826384282908526227108038207564233128016278276962052498628888734942863627629016112703541536480608623861728753639477688583741971641231395577006061975553426805173222693018788062427727839296711717883792580189244610902463610168687671273256356817667267235801756836071137237715454306418722056441589525089753010548270293843145212006156616360936241864287730068623099996576481336261385312994876896873061441518321115494428784647236675747949694998837107915958986986903489947075232695286211755824246850012797905247600988720415319191807815454276949938739198291427538872624168823117215071895980980075203634639666444825750658484683467460521399254243467937418553102907920522652314954936004398591143735336474053054171645804159732591254665377667829781903267452253273695617491894925342652812481728937081497205052604870217104375978453291186570554087482526625810878308266048125526559283685785281903957589932255536311367445535608998601130368371168574469671503922668283555647259667198340983355079520683227693988132285878615228684802200982099568751258170585321675331326851750111667308644854839375513912174807499844528992890572635491846319456591992563117325528795031900783468551728678693313551920918939486950401621154247064681644380459908450205618784908993759060806931279391897702459406985440780577559501731724522252289584178704086243729002643797248782959016728600145338906274050433929015180743913279126371035797702682883869242330502489012273556869400263580627851401688357407765649104944161194908378639342910127766688390893968599669499737954581490752838748904160721090854896819440946615135864122556650592863812164123867364972733934527941717761649501591360116888678758887802825921657511293151568771417646679737595622262923113423140348004783753590922880126898059157215286356043197605210897348872937854742467964688863664372118163228910703506814252718082175381604949211428332124196886195056211188900681716267413192403547428397279376427160183753311850487624310863439493060412007404875817917511119691788057655098199187702607363032600420541762069555560180552249291136820779357189394225618486702720104189349400842356135163724981529748480046863532300456493974124095152163149868903828399257171766893439604917365566884579978966181227249243227865538696009280311441775058295655104779456811007523618324096993373966387945972879808297134054246042261635155818386327623217115322132921900487195690946293100721791533087655661770607519397505409470619804453250861126653417055231782496145281046341195119387386015783965760203020508499118624307203392112631103821756012423502954284695016562677005651356999009731617602965828306097249803476915676416312991393988814737947927312535976845982585711132539632780907036922143730219219488807485475927367399061804690705681401053186579540941772188017211884778516863717596585612211631794487581182208833472671494657508227175418396209432265048747392853964640016869899564551469740326505023870927855701269222489582905327223035998269763692492731237525994637363950399442268668209867521079851117186885701822250356334213233126025218486200763919114406163133189414226625517365337872276629676128421669802764916745220592137428542200480002409065102507317710477116634200574194868985891141847885341532648859759932786462991056412940147366159620187146967584638253735883109403487694174618760207813189774009222724238919942039785307433916184916762984438226736860665490062853151158525792007864312897593048594342334411482080190124063718842106739110950412012872621916688633416692370464529457048569869705108215567853228631240838268864144674074465972962560075624120710525819578185895534124525520151055923239850887702612810336518312643280884190275787951879842851475539390948493002759975542143651768318590909080465304542472024852762151780824282462499790363888245465353377216049627703973958598826413110585947041236035228503446641915481106672404818542129392281180946639713847244933754325735148736934051413727441574293345203801006699376655589428669488298514271914649911606692218211970764703475020592325254080089363461500343297471316746675246450865154823519530462256624575043404542580614814189916223701569717021409555255158535564144496633028767464177143882630282451887023932618322617501279971969568015214353111090709329952413401329413494772790070002424897583526520167450886511375912027343082634707308015107423016709768234649129504530656822432236452761347949739593497883979537463511829802022145336891621923915293740905764186192907170669585355842643350681997038029793763131121020888111297889698075295105224413117889647702970825243239184020199167726960228016543056389946167935464312495660557715977417713357605136168786833136969405804214370773586724467268352363825845290309703268464712093708926168371812755264535165069861850698259410473427778313534665215439379467316852029089903599188046083015657097929007875964034235571248239674626314359614698617491314572225365010067554563975997423123175156184300470950216934096875864024270278666565639421433442794973473668783300733659308740238580619737802315505040309493211866097770043568195092689914035113704066801385863769821767487395063660688261404571552854043952699821530591810878852728267134501975965538316411126082159555895018153671306992983869875433243299248707865886579703168605487097355300605311847067525495651372202445331883078761578215832176323941340184461417088295369700270386070618421361622180083743906418143322820525157308705104841310224862075084067379447933024494065166770418335012225490869703400904789219410796562540127522452636792239680000629740281198387773006903619999480102787692364880286842694926163233150116551489276783473722514337189006322191475922904443634225141903385303158868495292660438881949905124980989883666271387477716199254675797153120460215677116683972076397288960082962705454814634739858587961171494834832217101452966624678382499523844349116972230400317119905807301945204345530457005538679942997685531239966260724859012675281954876964047282759607672608668163639098493712377496398051994110811678725050053153452660905140267491604706286583630115910887989691597135592387062457414833130062473373817950054898801361681559643196728246075370416949710162840016474260201212033257741841273783334805344223146483580375786360486299433846442357170478565171758224213000338186534837687781972063804294562280396011331568737282952419835676953137250880693496798667585331912347866953123749051211844834952691795665842766452628187291001421776140835062965847516842211763236468789302754488218859190797819662729448135544261070341772560719983299707563870955398067259853222316419046410157694777659120839448652797161745061554087728191186746182913755394587172414455963276323947548986154242630625931013899289915646242034577423548552299389033290243580248576466979577035035046110645303046860785014100067028725591462940765861549197015772674709126624515803165421050144656879858909222167146450751526673099112539141790883582865561744097690155875971660934043558372955856909432696296063280660134992710611228441379347556083826905159336722727016637609305941328232279101626125169262940716123125806888399776266762161496848043628150030650892364839325285148131784834831482886119132218769192247878820318886853646001600778108176235338380817812214082895128381958102002568153161399947678357514110091203771160698978047665190058685499546592396615846457504219843778202852387743497624976600765456813857978057807575476555104506538565568511786571269450055343473890069108619807557740008964034048336310207351923817219010377714973823538141184762835832841434759891030017657723889733479691274882063809127599469846841530482685623961106279014855401487920624911355644040621170136884853196566506830890492577641676143824118758130522553421971005751109352674324192595612544226322099020297707826649032620055800470311579481678726075426291335499255445052660628017967076439847057663160569679173271620753322926723401530225931952625726304004193101293440614534325686104900472677079710321288174492512647003050955505984485504962242764942971943664551432990729377303480171312251601313280985509418167413683042154031212660201613608026292521353606726455150608124056400334727712604740124338288690978377320109342935131359227464167886960086014314182989120329170063984425111155988872453395815503764304766887675719224305186592421152226226052070834181404369430895686528644872186656636699039819852281990206127137515428287091363916987421995862710313615946161918095150077283312397837994642844792055861233071539347813539867325763507144167041735618262998749108832529086663196105240043245623667873152308317146012070308987541531144310826457079734178485412206127326614712230598050516367488799007006641177680068696479245891585179567689317516090531558057342639602524732782317839120687601253482619782382183528039384795576847247810448696474589972345786829070594182622436808622103813799433774349346131617674937583117920854420646570454480477277454881665393233011860190430603785059050231593810041442664182954579351074855624930188509633716943597425564929146272822438065554106853377317206431213163676431377502478984937186533835002162822773991800756516894827987094422225218085383519847316966264856915457296877919863488438785067388147185974117379976553183744470554008944674480575321168742690017900003954760648324243097250917088782850663171149077398965167375616924542692002444773949414718809848759442413951868048921107341010092104150826735265083214649567426700463023689744422231436937992897978971355987537353417162476748938021972313938890422907291915557415476892063055564596889914789578390319441312087491241568037601952876462834817833793126513735801039388864540838328074343596057352037118939277258153989437037935192133231007986140831856051936924795566713598609987731293755671730956726697504823116184471321164632608868579874268858573796242253058487979735028030274107584876571726164205902905351238570613242626263139230095565210588473076729661051411980900138577753160218833503151106253672071760177365517676669976295140835755004900739613008275420689420914696444222857355481476348179349727659266184580718517312944150865127435028477495148549137573824770803652740856392426180915738926356854237589899873439772077558077652929625141419714553037893563565073752523445921937964861051430376998985521362392041344594651320289370631014134144278923325526667104727396782315475189141822898709993037861801584809486617627343582748407383981744653434465465182065929606282171077386605482944592909784988416459322850298924557004694254609567672233203036530925456683899595366870178316043129879292174343670650382846912229269573232329909972905729279530728749372907258152359182365086205892520936461650006787491818604769823289455632698229461020552027598293245245795932004359127061880174663199430634061497842060135878930708844323782335381278497620556399522219835776985770163856378775929626344816745398316939341701050491580904029685389932939711533816780222287145953660217215565021057041412564250446668950045102495247624383779687184489898718882947826699758302957851516348222415016790734091801098791909294187223270129372230567410172304585411820010155106474401168981218278325162020815632667995806246431650919630562863955521348172901555854248118177223217445272424175203018597895267537648157994433095373616064357989910898057688100846115126720507353918514623118796462350655088108272279752023876956884666115375124872479993227858534958777608920970092569108038148063409954622032646734721208067463763560288330623646272952357109537442257272129388183049403561618133085061008037581608573858333895054729220154227160319292565813122848046986860878286717315756482826488672241634288029185989454586608243553271909881579379091837989864337451628998826737426729778065119576021940798084964631510460124091642568535123750793747650447154607673926840606886649474804173146283044489106024421507156802583439284744060902653413707449356112998948868072152075689412718216810690076321002295550012497006442260824834785352793733331060243333124045511100624894576284037202400191589805409290144900614351435820042613946166078792321046918133638680338427610693929955952792810673608186778298159851594785737187077399611151603929731516368249289310968408929076675843850814274630607886175550249150495666621214152255285646458302669217038472220232103889410086425957475889205467446971061370258939065849838012960557724981451040238235823720936343129223177601712487039746771468844920389020217191757991830210559864524107704784764945086009271243682417686564788453233552892949363318996173822117108051525375432546454219220120083272493131781848279808800076755448761246186767518849061125368736123717436735226786921630518641534458947495786089339271195292949007445600901771236242969847922991151938876228074754168335316239626359838600804469958163344206296225969168985921639975076175168735942153207808761644897520380818249340136396175065609743529473380858351017783011840930671597879298728734334378502806277660940020859761123112584918889541093146010998094424469468826124235079355738866625028535206224746861912508706398791872103890095398233351285022543425673580080174661738682529396045201944502536897204520068660788591197519515160102826458686590738755670594777768147499862281634928003923851283246127908172498493589655709806751247521198896428580571689197520759257729110832595632369014398983883996218990393181241855303018459730664570062017828744955838235086722268374541631310247782697219467570107251539820204205418931089691649615027830500609321541823821427154493065325823069579792373999154660033894840759990867804147763542574865619300410648378951095453575699559646822657629932147806472563524675704166482749121441997256303762841781088830693321311092560246272799350145801308794606844981226243861475652321750370088621577685929782178338871583541745665548036956890880662499538353244642724769459345485064126673531555017827707511256057036384144236884893670743539874667701926506550587405421069620964820796780675673692569346663132414676235647200494117769598789862808339916294479103277706323884572782070207109379766889291533512652248912576589051509460150043242627766941206433166662334738787029771285861709075014186332881923304847986312253455156095401054314077637695752760047697144752569519646265329269889173955493519028086511606934163816334247241338527629466904046742537550058763229783715288821026240778318463291138322686690762514463938786841670437247782662953352922720421438226180542066777733326527963127911534262535638744176808432599205675034919149826113898406753029692497530892435378687984837231576947988056106535433531646232162664060984722321015439501357666732996758294577196428591076912344754578324862775656817465506756554078514931985032411791411695251774983901995647874371390038790372230548551016966186264398705121066519307465980424312430744970595818062566840001880551784179734550243451618122383299455265278372012519560577044652114149553203259586214585203225081585877020986587281400732803901123230745992409888518663932058045462101065720281132230388529535120674677375022509776288296764652929099761960582621512006909843091448691676608644728294804068712964689898773188391164728874580236841701303035034069801260130850454860975246644726481885269750494630004573596025003287146335537583484409921455672562434314725288886682011179037287505514811335174134930353893488102188653088597811336741113746328434250069881454726549533913723366250984254583921676620416195954400339943958106219193688208586609468851479401749349432436087369212998139273165019168685607860098055868338983644974344978993254892493926559815543855234359010539457976337189055409380063550535588849649013881435204566025192237823839055492756469450273172487877698891891793753862607760780896227291110452913419674995496329578058372662822820351478113351657238571648608882951162239738509444007359120803800376204365236719012004924938808964060352320902855050578498397306827813959832791547399187046850131743278966591691252901278059799863826623636361489477517875565795741011363064178203359257152767617909500998120517817710308055700227720052910803370566487569840513566864095746005169678916752228329529972269565865408569388814037066770872433766486112914290230475873732344851732884475175954386181772785106360956863616868993474774756382778106293991719580457717112015076211086072614756325016892070125519098267822973756691975521603430435635456373871394036890220588544215013628364106079902976863609857021215638838308952955842022264895646792898942429239472606191802275968110757817747341255574659991612690390557803445170765627862736713338022140510154831789338934856745098225539250786827661490869409236586060953760237381127729719342887412424078520373462168752440015391582273936602514694786731864312463833364697737173542740562958850888956230616721210588389087201313512218257332967408627410918517956190348984957147024858678226101168547523691955113663055776994822435823377173734920867231524183862619660735011095269799135025678334674931622559324768739280543878087771583170662090695402220687673058375886950946396422241894429623057886697673566323535985565990903131044205958867297084713173396251507412243973518201899529909378510185646852960020894958749375366756340697171393313301334936019894597182347858938959316904910973227902038766508493836072565228689223047898370333157618034071438548004653862759861304299555364248855396135608519922340548319181456859138270348028239911011717252643848462543009202625048878982055322117452761540839087501158744576544899202656258552913780816365319233320606268294932062058121750979842505761231975725828160985701509728042997079348851511064968159447498557490256626360140687924451331253614958407535245531640121281318476626557740654985521602367166012218835091275115559943085036667418038584545173373995793964452865755587216054593750899705656489903552784536046056473211535620059727808441858967039213482140144035983485553527396107816052458128911308745279743548722307787223689325190537965732673466921134635407065022152033391823611030626777940804061506844633406616790808503474247477334276476354962744589842168524405560670048243814859275359857169218360348159367281236855543593387412808207886956306384706413465721371963291948647585159360684111813293332998270607607645566632769410246197546351380466598026875532288537556114377068860489875196180377167265820115220456352012134480292834883168564084931867961638743276459629238405647885077202384020460250753781948521465517480539481715848638315639963467764286524846855312160241774461383539400177566736694752093234838769678037954635176982906834933681595064062611076685284481024232408314930157160105611816502436725991669054665832368212278302584748813287765736856566763051184687749998029642749674653350278831967459209460280443596176159994424972239936728107763631081486437162148063382628450124346929290501841416186721038725779461828706138199981008549601341861379042576490471290190781407970279360318627800622703752547848913871287573191605772334728014864470911136153532586437987075683212929554166806347315433491290961647234295548417268170045327487637008401956199310906531830063791750137158752087303402902821827496937502050336276277473084982893943645381529252291783570357118395535258960728531727497255399562576508544708644278564547833584509183705025543086566680400276366551512113588464716737650348947703392434533183414997174119652035836159543150644350761100346274616663846927136629739928428615772775332061010011643961959850945301578028596846846766074231301799225268286025548853273581839182004799960788658722916709029157784824247419252529710912401463437758814594207095126601451611152522861609411210801483859636294956168875780416226252624553616422975614724764111122349030380391667572827301061116720489380833427097974747974681404802805855999716101362883750853426427019676965358639721456905086229679006484389070670933850457297006227047152345871428840872704344341132847446249815049464687493372498148913292465134411250612343484152048978236880301308066413119881002735929778788115898747617471548422512069773346064899529943975054427575846954830270015595417853643729037705494233678682795219531450979656863756430092111275746901396145551220313698858969175481482451048776206145306989779201960002288471093910685874349787332554232797486957727460169960276591191616844642232291283519177914939351344299147207916013761777958990570412957055069045595867391798543107136659426169705567210052241763915746431294624892679105822830776390547682906223782260290106577139451911998113490057092060719903776297284932601033547468943933464521801618906331128854905753692686912237062213138068739708461010670721065418589821563404132515110671608432240571778400212092008991817661566326537577214677923758040394634412298901824300153122635716445931892121998754619481225126635185937045427086889807696291043083851390282114134185931812369617887523173768327188723554889869270578958090729740614101503652068449897488006551155012403918324491750755467572287454369474587869803735779830660300636686582298241440764190211378592416112807849377483474166203489325792222441240719818630138650989947624137992500897116487766661895422150607927168766928980622158412156057438320841176706033006996761591679544818494868738987344048142593609108147205478884461764541896318440328364436186706487549444365596981953106938376706693169048877104455212699341840762179558082022382726408392904296997168160722579817374702803627719781027271021911926366879673115906919331858376486165180689380483520165942323671837625040000758315722299630270617251200894836511446889238127122716978553168727735590476121913316855302725997737309421939916951773653037231965914255430987947422043525744636036903516806279033397339485005693712123247850530471978279958679835490754397608195339860979743649817559022731762690397391384846041655011712344679301704702841944686209005250890546808881997621398486346461331034410908060649617327510167444558864085830234085373692460227660002902098509489974370739224133858197710283351144865994989753674024266482370892303836071169929984213557414845183891350188738124729360259535798987680850991699296346411036259465893083797785363633092223345869772802856796883721878181705747251096737988520055849775824110989095040247492345128004648108437071681557572033993290571976199401236422016664686902861692285925659345585610502051417035973362552878297752310425694913512035078871054601430182410911543633332187024243663709231855962879394607813353516082212753415230124492164507152294948795912973225268773155648306452626691296788615144475172775820059591431468445098789306920035514650275677736939535701894826692720964545487044391942557223077525167039781775059444120254114391338625447118468930697674242385898272040758879910946004638383929214535961896534902763403268176828430927996194443858749758704231262767629097704566496172662252513589644343387163608590669424914558838217564788782157243000257387587704905291302449645064105981060944963739702890635355594546434982537966790049299373216067944240038258237155331902019607836324856503159109113283546167142318814400686022130617823326215852518946101467793978743454746177569987468520478688087539433252433839373536718791248901161187637983805817181618953219605850449179840888048169069613926044449851250152357613617427689366649594182258128790930895988010182390018130049517460365778138990339868142138878232518577557330833276406134882597054986225788083838058643146377318678544066906319748397957189649373814069152342540892057776341249527957233323296827922341207173518593018707371575585758783296754984991222903117731850090291491198771415763170608362457163213652128718335297973603732835811822751211304778792086581363686568829473488441372413955247872216993672165938570338556192918936178640184064765286824317053442848355247383867524329176912482097492070040057477506847659537994882306728538430561260829969399017602618850177417026258867236453218457531981566213376036313266560689273423348122266682917781739868665622093263040785522280439878353073519616714909106889200656874431097582129405361491749454231418905841449815716848882493800397916674829946795618393325033625350989273752173255143386868984081250060136132429933080038992786683805292403591456022242444676577223404255773015091161890163027333406899025212576569565456954637730111548323570969649534060480020519385589871095176439190303630515287405688418574847422038445930932469782734497412836080966625847726931097791822647863088344355084668890776445807527678136894958623777955519151807050347054668880718520375505608737784518417598130202092680131701084412540645395087994458049290257190028028010839166686129473581009497528614795531440531888419044644660468033801225976237656611349890298160900423684311139993696780067751547477319954859545866149300584805555058788414275521707729283442052591324377708563791579229525690589113419367659507477650708091340180324003415065807777179063767166797388436974170117094636407139806338675940725041109770325852241969588618085651874475038935101871925891365880197767558123990614534013936434079916527078385349243234725480532422484919754096464447320733450249779337009693538111416359918628612790479073345617862998613504218673901966393439521308379273902101079552605894354630610532151818713845816141743064696965985182620522644891352164553603250344697296474496067963175148418158560295256777937627875831137653167536500398852632548988221543364001520731775283188188766159141366898774120410696812480944600017061834879346057223555684873088749001843037416755195426367594377908925375763756674344735290055152893427471639249576699687568776694158116026147496957251797962337585985451798656108279806443423933624757974068783088648316012284195549897583321756942858756825244126041845873513281191171227835638739291308247683453974338620728343229631987239000828939629230368778576253310658255976204052916075097689736648557874376384975830303501632879446588757244947967598892867931939478989829274769371749225603515239622600107555838705325074850009118084377079316296850718909051366588389439264668876957116486147954973619228475927032519796047376080690014726816003688613313017496743450359999159247829213603123945552345274246513281286649107625366410793309499185623645571110406552567296151352119800816910939408334941930348958610250873656351435610962024452389508540220619580183489864863633444661004885211897686344823898356066052132058742256210617283125426078360233042678972832356001008770008527378099701842677212010040768541253764504855971283137065484639246925045913166146932565109063276104584178804348593926909874003340293960266231714221504028384266099744226605648622167632657167120484129138496037162345548789165241509441017708725159561335473021774558880072750451655586325556819983283401848824156246216892522171142987676493049523278860345062300729430207694264449560171933948201728209091484370852929259524557964312881637713350689725068807522101456135986214972271197122127453711504438513893794161296833349097539532506205488699805917052500219211088203953528985513106716661967437269239085971881077517774772240422758873402539793445440361923618204393247346778615069843759082344544727143636727844417960835893613400579364261686714837125369759844032615260857294730092077028476658530063892801575492568364255783911945276294127402133288063311809779905380419143050830979943670412823697181499503677857870076759989721948026370044715825302752829431787380113367392943187986110941944621764163410646449637776596681913035937514872621629553542930761701360682286654455623222424431856163728233189565230958633085143642215264136046719084581640705288279241602329399484936710495676265200355018587848089967373497908112755605771776248248862883759718158337802525242270354490996331063290982121480516482208006275586731756875591891272612846180924368979242361765652459719523923594047599596051713273325420273325707725915339947790549990999693124441197260271858208134993795657814836877951153584742523477228908881325737420256692228263865259601543410806769307561097279042262562168984056736097018383933616246069389673456633110531093944654903447675802415357361753280973615266646195355952322217998849849755834676821547809455993844531382560647547563195479379298778769708489569759417194562266342661388499127103478325760044025887343495544631598754384609811374406407414607698121002307987451720455842778711730852056654906539997639697568156881358951718006408457782800303335510690986023803551915791466084947018492803026540336388534463664389991317821574678002960458430452311653737625566633934266970539691104643489945449772748565277089157367564460742779819254724479695463612674646765942160186033632342377320902755512397276825736352929295420706357184668565763921266433699144088996225013705800798075005916734812520691336414557966487472557118462078226195133474446490288953984554768923188997947842477114356597748585355391590559332822882724107824179159122059971485080335366485602424524349917578003138687173298459761000795893000972512199377079473567331350182422508790196892106764820100135108617331792451028536235812692244343895037916163010723528072622098715071280816915370786448816690367288909162181370483231606406838215379406858902749461052246624126652500445300353857495786799701404591554848067248151820681373424670260958742728470720017743913164079642061333044597005954117882084662459983623294586061770637822134338054586269512474241769682690138344487814918097252527558437579271127228425046517480678873005968096179895329845475744562164459063466573883364039166616104575635469688369772240164901205402539765616560392814756465710791201713678628087720736980288056684429834403943158102803957791595870964562469061175910112607871705019660561406432757971514822398857312702975615648945879389913297044505013849785975821023478587170267289425179472561479634790118120337476257267104960861703130700185081660176818544289561140686056352540953502502552388417142670391682392249379397913592433660911848409194973979658296989171943729545417710077581273558149312954778568723097032276262759704189423892643528902515585618877281904457370685329310574735609248564191212152783679324309989500741346281578813829417722226534013539179741870371201464949353491537061276475410590902037176619912161385256803197196204487086052035964610663225636147488791890610577003385570828607076440717935638339797212471041242108603350326548033168493454081753413566330324184871956836796327341087269841131982662429277969833391024624696393108600184685195417891646244703092084190076739962127500783535160843188274971948953690086639808908830784735229355784231776355267002802881111391747286608153329558171968270834605926179332262919067053220747565884582141533476676859436473714334097246861910327439572908870220290598790293067509116646245148260429184629397561767826154828715613468911435097352462359098589568740522204133598864653394688047175010759980276781115498782971945303761518709211957093330935410480305723219076590058349274810381892938898511330627172221407811377827870123780417805477933370619401793685976555056327164604677686795776741699881306772839684963274688692610763892145282927419615196290451612043344058609881399350849834764631804263788733843022599393471372829064380093638998304135571125995504297845073369008616064956060261788005562062951689518492927092080132832509504193077773061469433423746534208410101193752927917430192064557613034004064795524800337171933585771294893040234352921499152576999032825630057193937197948524827949076523641249266172893520236913779956327190937754710595246973046364535669993243865654930731628898014426709688569901275586392941689937775485549125773065294852335444801175836021515957116393186654626223008922823437667203454788717884778398867055230236757808627585819374207313815321502062161516349548825630964244619268194612145621209788933327012384238833989391362135706580921518485649792289893388214107390551517849612206580723322306887862644127885111878740874884531610550878923703514455192123708699015373382683713742918355858114503756738894687783286036029459879508520290357679020120631550155016570752209790880073444680843823429398768427844226818933158956746692385824313104531599630424118679099245403783733570337728150262007226246299582021800990391368222180696665231172941401602534303898519261947187796891377328328225213894050821771127364255965427005577456049882486431791207203132737774828029842965267871617188404996414095879855542165714364751274280480422248708216232441367369250642366087311902844609973043640164308872929762623564245362450335326279104697485720944283407883049901718181785741179932482278854573698506068787100629731251285177705426460285945150971965597203962130567937750413582505939219754702511084130658198768607260452261738719291218513999397420447782474225886785184579132296038332762318959645020383703379554249331201011824229962961654648612447703792368372017725361752436145649760851645153894721157431338279973629008363730631516157667385375190161775006242583743164809454313100269534234253824680579231131282853521084251409690183802886853499309488160179429086456601297144525297179822360118442274169102722331437008320833472766837396354228031846663790327419323767959530212554095334502923724479816922982667278714532544959364994614772931141942845079317247686930734879291113240654861195788598938771027314233223314122033268951486445921531914871954677365241656696313352819924137211705499690269559118589206001523526071824486023964907753146210306045355073565813063866817061320064559171022695863635916879378520752354699602990515141224971940763093326445726071195398526256294499446679630310122049490066991922485106221861262555716214234491172123884526844357712980243077178462811347621115171144814189903368976306711843374279765511961241331556720985057087067915918344017527464060306160829740726291239097058598923166827008939815549803192147165639313788379390126026526016674997724123266080967675460485705094745284998732110027939703003289925381013064975074457627622176500540204670293483043076067417684213863707280636328600038165236741307234659350333844202956599696799969441256534603698736144481819658421657204987295984143722703551008040846739455783792129179352095276149340647595218721004246293229390579903751789279315377650006790518670603828714082999021135030948109047788002317491196300842936246526327509043675199302237621521311711952582072857488563774069129303555734578822503916706906714413478736281171932151580238095568863532672762954493710454827607133997701161928784319516723482685991256875370892614878256073680787796629398114294002940077347822173070418899022041739079233179494029081303244838086141513235370718716646717548914238157523107993031777096572294822471309518380009847702690684898943525984012342743796756785275753246003740974122172004946937304835654043185512614713749745025312661146591114452235975474611108677222658221109586185547195277460951020458031255007309182556122098728298227073939110359198029974693256808800593037641192652498428206423640950738044125677625801597526312797696552278697183004818625716331229209342441241422211983436581022556292487234971359842568226619004364407703059506710184246737636416015827144076559784917485011846985298919099008533459478264697459245233631216931062548029187251017590309807188520712868222502338315482474789927527403864132281872564192011609715611997472868248415296781859114872237039465413844289050639198213148301361914873771646063609570539320689800936997614512622728474901743038739596965525190219238672272378439509175270891839353785332587505358077812309115389690196734826180073475627259688095517087097407115516563601387043062640368949656234841560146672367899789689368980384308718592127684198711770878556739502230029068916634491206902810743876861694772537977521679620676517095951066190246179721291487106529577698656732300228413231021091786942280459665738763808451064868071217748537909603538548608525169381978745526534239970259333618190389255468751133512785197615475887768366117788528056189026237041587054177689185074282435372901351486387041760448243025497246563128933923582124936646265167964628336442806397548345329092805822801552483611184937923834919006578762610261823654998032394530822737226038409325054443156757656894464616272306151437456345849450570139109675195119991519557868163131983142558230627131362828803250905005186530048561075434753295468777638151328908938350101165415089751481241984362104181737681375843825802019843718279993955580696090963297200144076559670005529546885703558598433568517780894133839955485806910989895835309339153023732297893932460418893985895213698915467753795229912481459438151254950011181379229895507694187122062825339188164993352789895007247294547549164009506410568893033397102703379547657260920858976976124000783874764644993857677058566869137887527120866961940736933558994638017012882987344701976740842027188923724298678847931839129710114648065274750971561237601596972695942314397401388205850961683494722435464545905738081006991629857142623388599122516160981584748098447957667573295397655641915659588025746691550600962639858056219442028610059661790149470930671932527334181206955275269672010060299492698325456823952465868012519988584372240558718395205138585021443537552848018360703092537280802673738822593312735084035324326075335619924334768361724708633258973489687458873009604385000061369150961360015151098110869097825482540669374772154883439754047464141584204041902055929936567382836168712352177514792444166598953839242971432431036110959311964141378837808294404983415422513216836553486538810415255573469584927025315981255900910343201012782377303758584939882993514029001671296847839632960756212748515075802057815053229922684389684404616672482190140432934276868012727413305443435789295124961684202765338520147955904463555676909739058760588262838000313113599992934265877790553919970462448020903391591772164135008225413306776007230351703222168043828000936398865277490997305673683976491220384074114991496403742129558739518464951544983263716068764788619542075066629774965559746230315527262776378788751974532772185038630337780919680916420423517694167131746679197719259037450781091574582224013907918992155035187621637039023007327011310175955753122862481601333516009057346130577246207362510115437138336588941102211204580789657338078650867680911536332618472500430768755263387141868219863430309081487689368961985482231595572448487382222228538683493677730171328214814028070589986428388327761059024700423986912548201161267464316915455709795880029235670272469868820108291612708757373927798962901480665217914787696112323690225334102063197832245085006437330243385378786359412213566984003680965768314264339253502584234638561075012166137289895138975639056434644950057169677185957600208760040843363044944820649466057930105120498376140553333253059143088833824798705542668676455010150114046400207404520471471457501226146054613627130174400196244327689106057539226471613283173518991747382804452751187943392574499140972903482804185736722585772937475700943173196772535504923909524148245656265892176595320726799240598360012967418558494373701645934000292252263050933618859820907871673486134546576950318605783232416195548033258490823772967260826693563539689980264878972240339320386670833951815291122147886343834582220369235514717134890473738408041256791436857890555589769335750445352415383358289474198097953686981071400869719496710387988179296361674418894710516904533960398401253626815193089099032890769583282944018156843752975241027394025957199810332627071885572370425376232675316946555269753819713963355482232592261241117124366026358090607239392515730909990195410169296840212544816838983418075469373056169245546885117278529250526984152808039513341444667817361448637038247160926218104706359338262043665238999886204141630865067265077838732677472257458106050931843765151867510620831129384545659647919584666123150234516224964847777788244950963511044004074421812236432768898123743974109518899602369682833417378573950306139710604871186881999731238137654439518492428971194127344629223499226588687504979163191577637590081357530397697397480063749589426678312123827956684623675775248533310057699518447240223725464168596569026332249305192388428389829530927899385484299053473609947706047494630452833078066967573689287167728487186083885921237557034483208177662806058390185518718386135237991149063812103176699704450955803104463439689821213555318336835957565626700919256354540838967224333510269151587053471753855763260381301202574373065608425880066125465450297602456643085878459933429277731716484761857350414904273162017656642298123940593607793782833321148584698049041673056543550133763639691931682785892528342164694377508376437548321805817694807157662584055955784200383102056913546126322517080874342592224424669856349749905699288968831174754436400145257608164997106331842106274383294016525524349363903481057217398847015380030287178096730088081068489549412185291058243410290026190953521284991558434021716770075579284794353967515319305463534359897200629024361705807777369454671269079549695291002209344436923702463815623623225988483578562364835937302901075445405924634870845185924057770044170046121968648754074454295369603412025904882727798577588866272671795901952213754880651959993195881219602254671734425548648967636867733497560511805356430211800058462111524945917069964541499965582578498296988990280341084798987708158871585123011389016264191309543585433943352850469123731921578519316197551251430287548434395838288011841570669269400302599282998383254675788081411719059937677991482218169096174837857263106264923530032153374575457921460600610044915080859389513354014447720599092722845119257066398513838484013343552424937609748666156006613960956685283645892400143990551391880814436322745150614959719413072939460727394660150917388076259187923063084060173113170547337957169725861389157512196999213444889656266369552651486974419343039225954612070047017368272939287830223243478379066085511917265853073218657726747060631484665362610221302408524657329656063948010300805250508714920421559651303990976242005211225931472742136934977943820349425047550184037960757492288245207557915734389166162372507125688947370624193276974761241492428626525471036213896809241373475843000416986364623908736410875276126509881248274412787366770672681364381816996100079726101216407953145776830536916405310532814174350558398051391149652774310279426423811791818168333558450907786654747729256898944870612726611360259813615518152548365405389987650959692556042736242566619547425018315115121636076255479433442033463036867223825706209221238888993566186068695565796355389743281948450504720376042329850357688743172762185484734869398975190550640053775801017248852320253638396971107737638359196444998850830230169512250310644634315153818407926658893415763404101750169673579175852939909616971845207702608752722624576215179908903676633643342412068052708295735531955583076241229809216572823471338674504532581366452130551540191379201012727878640296432445296159394302451110002074312963606737651144854841631031598553731845378216596299139704473775407337847326791113097147449911354896267668381449307509270050336015342502435224010923251838908986359376438866881911487507787326225442526521346495415377246173347192951688503936758403456108857042837053860572038050807209273210019145500621836147702758959724071781441649762750688615743977202362034727856867819223406840176819224527006212841922679680021060230594652302205731281802654631337997394764818522017501348169760272557962172493402222254144684143769612250302652574449785676469434114930679828419008099430964716015019850271950549691369525940844509709549589569885487285309829190269497237451011506463116450380118812740838073948024464229873102544160139557214347293110841303831144660657853074114056664263855692060346470416502667552613208757801925365293715698954935931218364140765950820047284807015598685675350601648398446824495894057681877236487287804308635154500676245727180809600606159364420400059037404379816030325217199236708172692833396802344031270210515280685046802174520530269802555604593788210026049307136530563084535156155865364467182119741529555244541831908329940607615612975101486023591705257716957746948635160600217883682354388652059868962973858434437600497488553127019899678404953857216539783229585270192013511414383622297966640437975962275948159914316528980127836666701681869531635188573756600051759758382312815926487643754362278772121942707189256923210166163852828995594341143083286167930247355915650948232698352763316655957953263226059285719611535546228408863291195079151886202181523217186446278654147301553975941017172961647291152560501476741146037373006266698726029118163100532017654832374974198120630779955657536413118856965019128787982454532886969863327376714476531076343735877775184964137392823743152909994574868666320566269534327611621279852292950949505700072396700612174941482896454274258745554907911850456981857353856216179818115346624402295202079898266590997455466447420893114812032848391712995453949773227277133218849994912150863028634050316786217162032843010921240997839005583320092571232188816023274871407817649716714559748409108807385734116133107175927419849418000316702145390546808275964116543302582544934854454396686818137706548582757464803738577401132888125185059352672605661720184006578857303544002247185633032604632107851934438894265140639878335705643462024981555551083533620470557562377521876928934379545107623622119692491216304457540789802707548827211276488026275840728855634127992173591699992349413561098846308354673872174121075189570762801770734952223296841980591417410619112216545422869502107994885896679221775024847184847675396704744995518456472637040191111920383450197892038121045653477505175304120955384656788925766667714620590567316076503428225652093461709012425595522812778378001948221144429306564318969364424678155394578575567573562263641041184970906980954360138967058265903431501368585756302680521353752535864657183430964293269568745554949765146911242853330787407860155741422483660361323861870549594393234540453088247985517300587343607331384816659321813953525142183560873724827299484305661217340385400514357705288429806350756595795963098575917367815810153942991700704487572573663224845863903812817783924070777940333884380182879941359786788866913774467003197829981683770280052760989325719952193547787346116685868983505032455182553036140965097821291727472060269038849465218773140359451491346697974252112546159377934834044659189066579677730935878408571395350331411410892744016877190330617223885642538698514182873608938706125809079820830635271836928284350117212456492668405413308273059223858734435909157199900540232468092830762439607976687968890082400236025568851529882449215872760544208759500748924789196400898314368389198356372508366793131769975563963565202787141321433708436821520838623826559792036094348694868991254881113171964326414015499793468809756121998378553878198451562355614691972176836207107179787186747018641815395425393258637637200176895145704797568339680406523311119427243792084122979955381491950921400252771235604319898199406297565136784857690058305748498754640525086343280023467098089311350202329945017807142093427670808216639383641782268722864736509558152779031880134927718436536281789965377441262679367749933192908954605576010465795742567635288507617528942634953349858085412969910924996859595056421975491371994776755144260627409707581933015706683564810107690941656596809111184983295742508009636408656692702668013781238875405159486436319590378800149390490325535878813731962574068832764140659476064421603576644225173972618848246016631155142016797744109407619094797778337935914012510212399680390986027360445885380820493510644526726655368684802188207656192174717712825608581080627783794443875052284920684938415954126521359997709130879448964575796253438929047504058294641052893900683357257340399853786172111029905905044296342330555493880535447931351635013429006583197919823813452339737141544774987686347262554808212086214944251588333315567611416738565255008603545857800340419135618084421427629882181814894200185935125763791847131474804933982792205520071466532667621342833221254143634500698865249030139801004465637621155782191395369209378828044021615800997660446737639644853038224158859902259341762475824721273709238871463707271968020824923326601371560868045511771316200868202484413767190684131103622137160056663924199267160505589343432408120083792282390576142697021095549350040908061776912730932200294079376328261914672836142520272313002280402673651123128458120485632718995600128336492652194170032972710746868488124866505072174840657176167013043109782478511394436160014734699409617118621404744575242075605795942812910216850337162683131989451797897516339217309265076700204554453619222803614810534593542969103176236361511963865932806461909864065193512725585149510059496826456420198240666620941940431084504931311802983514220177645287293646095700743317937828045834548969570323197399259064246399944645636602674435065732884057369003030823723556726028622356450218413032502453977681355371946817408291693500382707024924238488191372353359684005240820797199126797008888580666925936932689009929605568287912624331969658920646472735009679206328341179501973991470466286293202444231392124248022431571968908576832406848564805100351262800712949048146747896047614942207196587469976038919494533727184836937397407947813851132695961955707606643569096354408465849385718969972190750254864958947262508395357126618573174386269507815284822882505783981141989338217347312324605131522654311425190203177361870886970481799936007091585433600201470738956783921892524371215698363980743221057554682605222133162560040499045836655175984891240519390751522164185390996080061061880312360133043975109786318229214627165912292147677062919713083829282499503087314192051703360919046636476553822625441363729662202769631651857619990187387537054760791313502772893080491219797646029807914254331626103458300717860040873670668807580085545643853923294206414204374173512063518602842029781001345614958266468906899936059396711445738510656483241630921352951700955229074214231155962611353403663604853301123935754133399462824081167898304560985732421399055365044935849842372150663389156895550250173749888472956555782376859825309928924505206063431756630346469958995299790943229994673321215546277867026904042984385299988894695521624247119291674812123976843895513256100645061421518235469706608474148539822550996424783027366841090961691364905466545578602607573450526320480349610160867259926934396365284394052285650486927888231483865691674435142135458394654861249391616227952163262035491053406925993778548566328228800117717721389962784642730947719912662910183171357005075094197173236241138169965481662368579442044544098208747125715129453991820258191283961631045310204026320515014998535236938039742589674150678094553379504804286132205551852129327777241618274805268820149756094845049983466375734205018873979909618504317580813791117036694924068557086952779812591853637099643498095116955840154579287453461969041614538288666300951597398427502053857223676318078721742986239141912203336954752758635156437628113630994395044510805023201159794605863036537620860298338559403964034874405545032881229694495023935139153196628800645451415364449049022104411333958065631915916699662267454257498341031555243029452180155497296900214332580082805236845503446983907855243785687974620865832913921468588424880453787903997443642066537763960427799837899937611093564072239134370095248494069555585342375576032995677661666031712042854588664849804434442649587003351487692601061213350913043280668869547680850701875041638289624982718849761562821314429234586505186935938147770348294049789383742278373560412453723936117300372512604307130634627693271606993232935649691983627156459701170621194017060970883508274119574279479776708637353409130985965396962803652719601809937169734600449368348671874376301397902565775193987361665095934965146034394079687541784923574857796955838623939624200898514504761478593571556001492954190134594993876870331576364541220797554726362625918506002447868559772689670497391743541790691850823520579393053534348513014796077285150996640305260495427837218155980587752553988495070211597646108948958146606432819186053282320978535741615856289766026744866093985433899433266968315841868289243499614854014094659367784311569691587368934087590924087964981947973962211248072404749425145408350877766508494798340982150915217945978789633074149544598208456841864447573549003447962131765964970215214906504903372498859787471972951872702794054647075146707413190671551889434908398130540367508646416756404611694042222108839500918248894405768465999913419801455202468293733152594139571064735726048097634980577326562704118969635898278068778404333686931652378584847362454168420041872881903725829783891977592330512837073193347252268597030858007124022804821518955418794203012377792303589943345054851740638951442731734758900587122026114666279779463596284807921341358498528713461700224109860913142345635331433176586514482027092977703707592655419906349375429861078350119137411639815328589258825604801102908709966716417356883409142858133119309009131576942379816366134581887240255530712833846799725008352172481557596281817859801936817825540645377677825792752127745489967503295349840729627019227210605684245115064226007893504616276978669095422787147167849173858419259279405185399244972606131482972337398686511685229067292996109920354651058675927740716172476770301011150037233314123104314459592860407371624579337215615217970894963173744763931820425431235457664156299010813060493321494117075527286210056000089963511846942738531791397038511881443073783160454982120627469385815376112200014789158774567575041210917955524062202527324389506832690292472361183104978006719340277171860549295442829327165481710883830181191481351679147330712550675513060404258391610896472807347067185381484716621481050258706323265212216036322726620827453202066681317403863128853620986373468899059216785552336298035668014633477121448134761155123333922963604660738856175452229502521427352809638814919329648260237992952959976546286704490279930298263665814271797879119605848020250089476369857275155964435064000116445063875376808935958765417497919198053503571874746057529733139806127801998061219080365940360313778170577017161370065098203916441615050734957304249930228272928095402196716204397498171270219773755005581671435968731853660708737901772308762520549349026124888739912961770129763193794333448488581687119468924106005347076124910977706117049592069476958747826314149431352015839094964055147571247547609563956770178995198268054156568306185309115916575657661964464550704616231793773751599424330289449005078804113383160997913902797951962922487677531660261561886104162275808841617422211474893677246808814580779049089076438470868311244124176475103292867062989981628060282038164579772349694999006387778338426020646311505059297835831321435501897472895022114896695097990587310670330026673245402912742481139510218911641472113310838191338835287905786474558243237751108961167261712414930637716401619778945840000930040216064107316869793151590478121085515061030187833803608126866136771069397395359010992110566463408619152058266066729154679335708582287705471302841629410565804379981100154870732218762913566524052273320956249113330959258340495058701086513951999759882432060882252895065963936047684416814567844023890702536176507392506271216761916694115049957475164690695111399522043115426585018891405201289713962566696622547983497043412571967217361226851425490553975472172259822781083357662919857627386959489330232668318033961227113456828238641497211358631427207997635129677812760021276093152202875790461304539866170334151656288179326172870816529960823617276501816800159292916806071977343938463061022510319955316355415941361384885667928668137950137258573089079841452892190973294218942786088140852865932399330144296889476801175944604555094082592254670509156487365056524968203784795855350801759124573592241958962999034226142876525697264702477924504590786843037448482724820147936716625722500030039986679088456154761109090609354709694944840798428698919834550888796447678448576076619007123681552866832787299199234041736258097814821560661225285581519872825103659583642506895476277434385717748329775608601291765081819671885508873562821434942788663363336599035981871256730154742150715866907224982477949526079736601113651490221669347684425804185720161021579191520730332669143157533127582405519187018763659630119769519461294057461137440137823247825880999501181963757314420175177004824731246969727525114950077420796224937784423655845341550049549981615929801316475402484405662500009989887298837196680304000811338315911598360405292572481085004065985204921680922767401046838188782781723491472618062754852425434556117821680660679139579510312627717980329294917811167784038343252212234231907058315887291182953538306995768345353334503907159181845372387592896648417103264517722468594351341383328648388703417689119437837760798246365353761788541114643933470552943648552979920577765234369592175694622671595344429223036880421101656572183895286081508078385772696245494120452741188658233331693474486582626581089293870893886381611619973708680621755239703035317865075273695107840716942473425205503678850363723364707364794123173347075526681099679818574195458606530560940221423096107341167830649324770441528773617037004916433981250037779909011402185570953051956188745594961256582908642214399473055432300643868904792268351904491869148155808823934727336295961864159051752777124934637244016137902833744773214033758319096542629159762022272114868071185198915254321760283069141951884299831975415970767328501133087755322276148811119233318201375658399619086489943578256445745659721909171007953500340256944922490507468295336974878818948966233746292169754259213579100800073879597418622983221580418923804088965135177079602438887160196907889539260268408238229486640021506344156812423376723480645644730866261059783433772247566581966871305437350382953991870936844472038216587261628231661632958610345419445944093763984662470878961742017600969162257900419996568790130158989020867781149163146098088162387196295114359978811285015946993552715200277818852296860408276894269563101012313730550155736825211272683136776403586492100915575525290648273806153977419041906702610454787996041482777432106205776273486061726686649163442685286156873432218483251900278651867477074219350006517137041228813693062358032355666845523966058647550963922758715176999313313753457166083267247985345881406522993479793490720855602223134084250306991737119602992663952761861687159157457387437254547298829825800988818427905943034899179263254671089698894366594350794692064567563659653353086068916970963306493246105496344273205107663227450104490309246876449981449960506617823142420053562363820108304176454007329500983317922117154820270133757508084980463742160858308789812530338866921441880243319113331224093198293987273739535850961755285397070848076590061136460791703844655919462524771530666362938666052506007303531672071470840897784869635801105513925746444376535609713678533890054619022488700132423808628630723014736935445306894024436413679211431403319092332710911721603856322960258506319921311072199716517979816136956484881557832792588475574108475063805316586407528438329712520676989115077131321147873476577592990404297435921842742474228979503837186461918059936740144422643218970332418442842098483337930838056959547417124142222185675052590161644501807693292485243494945018179089893671692332486827778526737359340476733321682914994611192295455536280483156510987295198419042873962620101446200104786514922709043404180692340914400986431857661854900869917304498031520730147937535557611382061702714652509527813747787613260219405903490670442724925799964653552939405464184605042308753896499597594728648529735966597939936440145086992653516376880440049478560072409415992952018597075122891634433816805408328566308302925334006294684892776762413526048830935514502124128811397799991933378867364068830371159632014734040103044585912423313884825685119757391691438767095216919003800064195250385810209753989965766298204296111548724395583191079535398163341577294856114351108987498553183180428950332130345198747833130594047114032081803436168093981222172741019627622096596914727140898962877085960675754806527802168838587898125749453613888494668854448384039153901366601604296613222596435501561911161875907825980664373663361007666147834335455712481999233355760160251245096499616561773400420012615886276864599850360271045601419201550420646522130416565953282702297766391499036903164377071854515858768914453385132621799811950744127306899957327838062023837290955989434603792652243676822701080390178660198545024611366803071857834219172784097516067736033460925802353162885049149576803181231603466587900405367140127524188334903410101020818771442407826447497760865168405895249511729950857185768210687399252432931869745975446312344146148550898889605333603239218057881279604646781381241045337791823730572564213178231875899224922338410811739451515707044841133954517544158181332602527164761591898122417455548666453528697790712384834215702504152150879158431504727684575029503664947810006859472170737306009332735295065191777799673102685097655375127943742246545620546159474739444982781409569577066243655757625396363431209604780154735353841211615582413109388933342850964277862306688822006717726178529800965011366118362070414982771598187082404265965168002368238404886614635812607429551099166316847480913316491629522532166634208346322512453494433928447572653728143354004753288281584003833160540165881850685007459674519906373550488116236897018775926851307928594515898729257507007655516055658851240397819560016871326965987915685006307808973510203059649205332733714012674741940999807005187010402755704530988956729039564480611065660470051483275538969576829904872751157078460152780396364575365328534084997639535275048967095078018937420261909049023335595440482741000891690291525813056060821944006142971654804422316214243257871952900717146039176839294920208646976278518659005487536921350187488609847836586532462973689910401896628744686539742537221096588183590385758780084562860606495210750393466249391053997296415159496296495782506986794581595793126846797339152110694243932262759341767656549822487394784820864450082525632719351717750238813438172269509682317168730978024298856066333092276214424944011685637516096650372145434257118223233904734819548773243631552736461723976729054358485286143789428793974265969235200444542740141045060575526515281714087831049257968896651600523648066456029709140320862438247049571092073335946639976951427417185012768215532697991404008175000458161012075574450457425674175757353362360610533857101359774526319828261685055115627634590388621342165309330710946496521946347683909596232948609070402825895929244421077239034481489429516349329161703208949680079714862638456422374916667305547587062760295378822187412705706083857227521356575007922996816292309391881925533098494144800878063209423655409353179455397741153390314878497755666025529569701220623104933262196823728279655848019736748183903973624146795303004985767933684828845621978880892570258250391826744839315186152647673377002522290629763747361371899480145322689815778627617675915172656120831684221043031890859481397266313288056065356197105982280882755188245011186046373191072386508301348371613282536441095509422200241968825609142713401362095358917250566460452893612438753194958582674224106275275985909896574143504077230141109899634807347797927217350412036868917913070555746758090750854585254473879644983686684246302015733513421253866754014651001071607544993571061377904787552754176151726487864833319861588398297109786404913473691109066144580332434889006723977363847683384416258129880515048426906179710632619262881879661404560809807522724166490100340032446016283194201941370826598978487312204432450384185817418609642640069904820588220831848499053680804229314277519820263510672514423294554067330836931285169072304296826271836171259362809226606536977504598047183576028385741523297404434537943181284197296001908803031211095394241084927077231886522680094295857809764122203672144954986041936163909410397032036681260533887416984683932400339770558200307443549853369719178084383385287347447493938748355243092059765973537123113517278905813560359703627395198827792528419976697062560612457007061571531406214549721543387412434461980876230895134164102579428372102756802421781194951389496322998129720858261506772941024270187622759618162126718740547514869603908676472259928661588420497455161179037095731895593524997208195358299955102172110996546092933451943795706002328045218001892822327765313282481795014585714924940452924084588432766282385097628130933946600757801279400538212418843403806594821822671615933337356431915744988059053845270006742011201483189138025686800772484785207090321283850560376464742089842748775018818332168472431203617674798336046131126704810291587605143539224701717909582207244047378235331459706811966117687126991922303100799010462103984283207246023847952372646099799520677114471357660205651964530447546940701578896054665990026107153859061235030162511839162664294116289083063048596514124866835096370482406722115603638667381368856444219060508463396170295408497506992741126628626516830102318681473594311671660422761904282085426228264203297191168264067040369773576790220471561849108236690369523909367751948881580365494840665441200532039542152735657249372253410289180084389806096940538611261511810283220522291044200524256730845547131282137684823631906435336189901020327425289667625647219342770186422134987749305981544492695011193596691510801885040893615244651609093700305649760459782981873520823095047340104090633486900559295877117464991145284696751596597386768009542637733709632562898748669734906883529573315463896025002524221859088879865426300244287368660675715298396148694981201884515856127178194393022817863876135554638795518663931222738698556352940646225866443909880174741815135456540863009131259160501693869817469803587111800270093889114670111091541863536890965119089423966667939267622372226203316768808516519923382761115413338916965126247600673415261324191510382831433393076656596862903821143831822753881566288850404324130010743509005067918325022358679882097016425728692551272831962177444474884287121385078886441362612418615261147867433435627226537337444720656491708287221885675307921074826451421606445929787409376214699008905510938497501010048312506982408290940607698435422422757067295327267456938262894800715897797233792415516597205761558809499069096628378482882283078808185509199149412625724265773658030719908573595678050529716786384574092738336449270390774619326075485019362775183890251076034836677763692207986391136456879897137601494584873758217482026275799391929848691600548256557651560137870541950445950494974632502595458970779617220649803438437674933210891230727563734798611736892015527325081531555309234672662144018036996731910473075573940919196542542747190558292170933360925225982722118566908230099643662824439862918593676634449314912621619775168063883786946598528646316747588276157515376964182979557357897447571289765842754068882603167301550078744739220909671369747247576389572695203230164166284890498988105926124970782476303176827943871078856474860126576928781537998413425629516795112157906328995211195929355786497070799923062856089883500885168764397877296224729700072340709339046339566349106208451261210353664413854660578704399987571085702224882335910121037925881559718872100638150928395452841786102105781991278325287949631193890190537364066149864437128082461880500313980367701098196768591483244212093815407612478490112402603429186232941948846316215980256083159694842901061061584083352455227864019461945790208410874680817276411277324034515247487673778922443474914955674094027828325770268083652039022750553904232134231469031053695595520823378220819459302626994789980588492080245551572905097414815864731010998955231835128328082936675262360094966047895695129010570787215901095854641186750218059773228118356223835631723163200333397693616752856309718290658058881193937422496292847410008714886210752595908025759660779003381679757862550601028294267700543227921282643777634708321155128196608388952397796427218984673475343299926805366795913346457955282916825522422715382941082424299579304528501667088483345635983090990565396472089706531771345694187100201386608268773343850414828413744433862414346318291073626220351372260796145089653786706458877079118876357228928021676094265705329763477227585139463473246187558280184472849910353469885743653248720493303892214532226627235274077636555022779931867017784366904707825061001179155104659389805736727484980859919150559088724294858241526351706172684371674830361404381536482960691747858402940362339554773775591202888496609328140597368872985945645617386433072662174166306047551263933088663749432342045559673324423106301125352313546253906941656067720194883922375036660102571157953813169284283275395703637591771911970021100432581352266951319307102095633361521401196268216860275318311901577428546880480151184166863114737420666216302516609429053819963586148896833253572236392638398038908393680674993911856185372509902055155559262580619467284596829808996548313188685500664291669215014844496669448199407360064001180559479358018164735199186381231444335279149811910707022314026304434536470089337797247189223873443972880964165912517057973085370339362958044547167645067260366776597765961239910024974489671950067525787875850027009333408693607493298019122927828294983058510655864931374058534499485525212570320317724637070648117710515219013722871895714145268728763970757364664244796823746601893786878551122235419669958382234714323430566557182969987074843304915679564471351186791102544491792179737247098750756216025095718184723684972206308734049359690993586710554911068115320056926749689460440852478628026876793028667346911368723457014656710737836429905706875604946883569360197105438110190128033828651888420177648352204711382224762733572853027225176911728268852484046822821369525395838431686086788089180942901018585179747565053438358682843782217909946272700425043139306419128004274597060695186511832368505707248913000319240895137059957625257620745957932318148243088610041370259919640303613748293396362317004364932677692897628158410242105059449593010409931945554442251631720093500169700371409242159580013653656380123249655698942505962520581010058923803307249903710488009314530481374463407670251059252180866234391111288049515574012895488466701495448184196171347179487125163985485739121707628413772407646233152200981443637615083524574470933048151926315435356102564100507813071423597337654478494448194373499659295391005254521958678616768277326499736392612199202350234208985745183152563026010383814250788240968141579328722480976724185618437485539683317398182128998563175609884341140782085109452661464181597498176884171313950808241425572502584396865940742051673746843054347451373859900126338413542922595415442792641453429447286785670444863902637923706683379893133395980545443055906241465400471900232646972287978224596019292434447991529499151768801535038570623169254765976996137912982544082243057517360082880168320231993654804196609139008162802497620556571006753616515699214520573191394806508353501731872030945079388451504695999466928114756117342444831692668829724810913324988286001456910187029842465389890239357634572594116974607493573046414261327419085361993456118036588380715118743749247892537675373331586717845357656801982956395202654273557740414305493244983731150938515769175384359808645377022415097628983098238498961507829696762622272676178161133716379947476390273808382873107869273728963389368533115901565771177903861793893769338851734999491478814469144729357606116551862020253647886254388268051891387296445654282720756305837812211618991866728084653944221321273752023684779362524703204173023528969580421316256744686830339583004833028206258814061998614851740854603340924567030211666415955312249565720979698774903752701912165521104280672901700244179294986594805437188042919246145691680700060702967593506162663164530931216031440042621067078783514820279859288426945251156293378248024377103360494958519891309475323598415693916567930945794025589606515509365769759962334510981293499543848217318638723852019000064187161632765221300467152473077404109453350659975295695705118550569384402659603061707491046752391220168587404318575554815476926548558481891409266895608870049266125303767746497427410507700827602167381042312041934834509718603762762842494483297978506919024947373971466901783449023033540853598056867014771222961548856547789030977033451032222744782451538719134865048044412000855972539837421372059304888530412328837110719577512494140865826715949510423731356811281399175950103776320654554400909230105575239297206452798064393328470108097598337727347920987134073339209174328675204459111670883551682856509339964714638576091893907634325104512295348125022775824703241749073042604032881775832284915735148115997499317311351830091581372726746210357727443580789932449621641799568594478381571679586287727176327378748287825914157477187774525418458381712706842997099431538358948612179769356709569566876854249395836746547660326759478629894238184919275987623602782830965617573425484361119536150318479371787095018463103181232302786289548633227268926719869371288106196469143974023852361375817052444775356599731997862033567596871313733366299733329303071838808342855276868396758622501856947362748502599922834898133704622761157752058053542124750136524706651001041504703407470055373625964712915957343920814682012774842571672346608498802261019186219054508559510854302155693487107868688580128169544424946752495551830478597564316666425277299851347563970664475829552305444915184174953684772769632140771829053886445457671952175172606604856337210470989824603515259576465430494721257554959134867669592525420417224330678825145345312399912068784144870588883026568053116500405870661121672125623128721124840621648009309596812919962344218606886017082457084486968926101511294347502704608433088492459297779139336925378522530763754283563118414353435914272737003995097126579107287663564133697819527706818998111256422906846723466422237565392453419047118724796872229461057289180744067284409199500571533586160716782006345046116347311404838339271165864393807018555990529897600460382062110819777044820352890247055266508239529119778454704270308050499007651600523661329326430316758964367979996060589800782825565359187500703076914245996983460481261077516004909084496469667871011153730032636690226448290201525751619850933787856327456408979480592443945841495147177977765822886916390173388264234138724054770451711133101209355093815500232123547987768873306204794651417832283214591658937264125841164503469860891287451122347157349289173180605679696853553835467122460581683979343388112144786497696970805852453805234518296981996791419893435819567841234548045245120056690352067344700862128070715312313781691407933913755730234210720898869869678860118261701332133351162665933938322367274105951694341880153482311952679799334591086084131546909243259349977136273213434946664750498557100215915736836393748978173088470363666313221703724960104329295728455854047141104802190050489403196552160633093646237349288947955676001774382033231625518746631157903565805108786826579680923354060779612587228434884484952133740059655293768635176420372902149250737237740717810550898270015728653187106776269424481164445575082702735776105430282027793201472092330437709400321223873451283283519326402499119306688627808657531150602303500679744680563975921041502547363894882198566887287808921755150376990773842716887603033565658338915575955482807693109716312825352704073121924900436228690778559144269876159465839008142674917025170584588467741684505415718687323134082180069488901436476476972186350898720131229709964975608054311985269080946833058027699760186460703788198475631234155019488442907324382979491389211017188854287939863107858685506688187602002606121765836308871078726428344016258331660100396783858076429465819412320188699043074223250205947409018522972058479750753752627305695522970191111335303971041103621062207702700275919233629730926144162446589638429256524143203913145967331403309634874389993557659419816177902416092723731849365592541927424581581883205433882404419789982268984105107132027475623653051212047982817992756018104411085664812961459839214661786654846135199986830126211630870505009760585714948480019284220271484808952779128906710394876159895204777635607526474903099571502051293865172201964409097221130766594067378808070651689391804714876713073404039689658334110363390562844368243472799697524853753998252717293857201523950439610237721216625744027215594790964862843986113345558815977231346605205650359250693908115741121555394407534217485783655062516961711182467931462466093964952381265558431202839855574249500870819868575791611813858105366278197030062384763818121926705060926984999810143359949864114702509722359826182264660956247165155171801787759538039096980317712207966200763730063347383116525301715613844003108341969508824050804286042992916636634589135230900494885799444413181983774812591489897064858114838214809676072754313293598995575428803731586223637086319684298460920221201691990124752793036287654419799974504004753995238322937015554572490611642569729810604444134279855246712800112679108668255695440450987512090270472116986421074414643406661954844624605443180328220409648879041121710540992692929196435501317745185683829005750885851179475969899130071063572482731269501758827128793692398150407118283321170281517191958844893173753791880973120196315596933888904322858519042361701405374834100901098721001246853643581132401662224320315417676179882771040812094313012429369121105185751773837696317928618880515201062573618962432751027435402138516761181133675053439482206238257274663063214419792638353132798937897396700405593348345419246092193604889602438761236735435350164148050170990217718136453243108480446370964283589439799473369514466984466642295428060483822993885572560343713550127344906304278163494223813239328534237960297497601936442025118400492536614612727063830357094309200139613901137901768154543741818497909903710818311614380611675915089594389040353866646922317342416016710616176350625327201186397451744970311788265756017262696333935046457173038520896454738461943342639136616771312974369646986565038813053875258614218167370136026754081517759307865123235718750507853027013705638440395059332784002039931112328482789099548398181880254519704233449090862951669757443048016629675487419848142563093043434045389150839556838157684988131890312233391965243573454047603053978654166993076679136531817935828342899179400070234052992949041250323050041789105975423559626874053644431127203692883167301584530328655147761274485429687417277524033909337956353949175981343385492163818291090963815646016414368497948188655413992073236403082465592033600875176422994020475737094177799116967832207998835984362702459376793818707755909802745809600049905186009556922955213763827148024223632418523464939313750696231298939862062327766777774573082140975957025554104989469477384418032418764572259764179264222013274017762861370323329530738851469955202028566343183394047974751988395588532554862084941072365184840697932943300046257458571622438795850556847462205990184975196932899658274426695960406365006269448482076292583305292905947335688571782000689221075512265998348585757055734909696594713235961340024253391711364876154223451314034574030791397526464857586040102938810036556189028437636182896709028044691929011524533524824171546892223218587879438727284246903217391385324785942132444239619352347562946790701911802030780360157864465335545025337435459100556477507167894517300102404670654170263733431294390356830622347204113433540695158964138411257213133239848294122353067202397936218912875910723623578946996412776295458258236180771158832433779889609086375024457785364592667046751868339408384935984414991993664959373892133040074120148319810997734711679036080437424929382081196026617834002661689347892196751364088550656013005760879738479648599328048444407003074484647606182600475798639130305986299424456254073719056845089875628843070342116982614183653619938083563050749235093678462549529261879584963622860558900673971751872836682029109384615282020513297086606623165299196006348036287828203612499827391412391756461703045620142822498735214028205641389505427577601563301638520115976935203111890451956477292533725311156723607911206771346527596199238670295716117766211203256170613847059210477529408451279140349456957851205781272443979873679484162460918012356739982211388756584760128365700203915868285488665044260120868649100415802715374546624864520093696950478409378092335463404241325872273603844072318235116131984790321040068455202911013204158356536085738348815622689377903751999969049479352448494476874455405972333622450210045941949127333886747884215704907142055457991129753909476461265078544378777121587054169097415699408596024858457768633671741096392883701508292151455777546804775372960043244205287778781593047073987238083415911421123984496681675727460919687603487270201101424831591367465640570604845699545204424094961946174856589244103986128094046941620387693237311577234000705636349732776533619623346727531821218752170422500524908083798456927943448323643383850933499777301789977800611732575437121891208625149344910937804656883606214905411517985900554020349454586015746115073362420365143779323974175672348552531536824349517548810796604343388062271649695589957766660127013407321167969561558355671315215166453954914498044655427603307746761477724933016285331866238786997097485041164617180491938800383164071118249464989966148732544385385623127383240860758888820125615942565267351634164511633745584355720716665128532899479296765709464056657307785623847774993306762685175021177926088072595654046105491840383275110628105773208113369922501288077940390016562150371472828127294924332063552930004470724172962713413284445537476898742278562744897590030114539397761316597819131675778110637911028449132401298153368808996750483563065379195858672794418621189536422097269549134090911836918494329084447366815839332433154989688304587244639624849377329435915381460891636610427318646083801748182835279878842160317743951893444808487828709645633240785687171855595145845549844283655306065770380496644208380266069184467886331283373299614955887008766563956999031739972956800737712353907414293821969128008304248625090763399787346877880856559409815992048916373156897257064601303394883042281781608145733083490333981212523691011920789605312553526406496821727962825587462211482452451652892790627730656720305577511129040005412178219224148773098421120329012059865128708773674856610126638331901891957262968843325225919533656779989755430606908902830975357786229587892664075230074076712764828213409038269864414956517746440309347945475570379011091533692514001254283507765228260793128489762335823114348220697593192508465254246165386123201442479527358581898719499739687738199920771915219410165554897614066526002086084369855444615124546945668427105515725915331478783721345318010706238308695381188361987224674768477219230455075003694708433742231090875455343661967662067227532591712627923470360552325232579245970654254808314029612362272909354698202535590568321833839199627393769540625076741120374751108706215149551198627589158443167582597797480332192928439848576714484512100844382398303787820371858289347095307902923063023077240097969572472798480859705821008852486248234366406250568281230352285171565897007432354783609015497908524002439694900362956321028425104414316149817023339636602095939453303621705946381939225126930150242213893662019665834411224986044085059252498198889746878488952834121081733925054964867977169695732058820662032218223597769914892291005855886557654829508822141962479281320332561814729445838039843786746093882310018685985228693606945104808615707913712898366696247227227789244651449358970482031339456343260494822336242716886186553090111547187930605058779319517974213957203828592282997940832700532610152398341705503961913576726757887893686484944735598181613554175153942382118062900960830241777610258434706855557072861673142394724827998481997938470081257676187357782381690441076651870394035749272074219747130170632614194188064570877279713598501827142093362571023216665242876639267607871058777777040319682865546186180583239664732292479846446640669722257512172067122598581548485903502083331576883769550824352008689354563030761475106498806554424701137561180435921384900568008189610631345483136620525770885678136907294647254743099676447212387014579114825442440360484935671889919179516794045823966460848006877647786456575134066553665405751180958829010390277315108966343616094371847360671387506006638859622038061865018065041644611074717341859200931008220891188014072274790359848414203881459843232926344147036106732174120402886635980019027068990849169633503626732849378528116619537243817061880108882066044656468188206554948016616961656162832804912726760779029420117496148384812947757923148074440383779915187716280256934032264733701605874303156890160827412001041262112205120326312837340548304263300254205403435657860822869514418561326457107739851030703134803217591448832483992807812613542808168363652327929658468932876304527782913941085892903560858260478870502088356466987161782262683982072175638537675525453478110083047046768688210773258564561740716348337506986945046790764314273288865865500174588389043659220783593379035908650509219175585119512392657354536751493760806645756554618623774269898645988649657423576385192303503151495310876395092027537984868688703407422715379481063180381825540579863161173574919375487335652565313113020396624872322531607994498701060314544620779666741596627273637993285338990014511699280630047852551206508642403980399570200254274241645793717696960725557557364576295852152970660011814811786742700060720109920835338917092825027462272516288201584965433005880307668978611235367427979286245904402537891862453648835108653911969205934357937388343059999271751983304844618728435556491698252019665909819452148326752187003244465281861072901578952133453842415408367931033387832509440607587753404090666792530100675730173867559897785236535305778874836619634041340510439653406647979254311208979513961113360646442218121166494460411282013316430548446651007987364701500083925528242865480212685088755749545183479735074042100792187695880845075433174759390987654457335356912541366913840356721706627313052780898133855796968152679599097218333515598253926637872172752396056472940701873049421195865613297081477616718670909843423582399770917024927588484617593771933714831147078551044524876199420825759755496575938317266975323140303610060050405667872802789767316424580880125289425744177342832026797783205907554053786641479688617776847247402243542347219199484695576995858502440392762529815911809394653027057955964045591021550658354938713766542299203058886494852917780115466602227715690619603670226262828064018939531590330741627976388686561422529045560793352595392542277335082113862269234967433157587482466139628818614630286892626315599687142969637921618337296004115063755668895071191979010594593173855983574331150060432390057020049158240673361999201323637063118758627641755047845799859929675576917215741547076119774751973272114391077911274964832316412123032617481568017399540269330548019980019848685946966913762866570309965730795136077818071781817606900506587793225549145170765998052907770750227045027084777454523789819556827883078574089694037731707058164970498960916667605099408358748111336472674327661018526015544364291496440981769054667251864848280567503039827604268011277351826238045684980509389838721172223964592354482146917458917304013092743494883186472449470959191330363800014941034652673142171309227996545685413213480347230757433283982577387656908979003476805466874955819046323942020573972945823920641732861820908729902731043840382035657691338638643738010570652288872855029369360403660980221364063790144482126014148136011096533437359613220096776923274291114919995942530749224844775956137506795794739793036002399602678792184187439416618850863229189760892645713049687683092886224968626935564642231528835821660956271358825376370386425773966661698283780714953573880345365159910417621801954312401348938652172638114720568259971605902943618653145962586318384973035367279685912588105765985971091062219344714787717885469013657022802735567560075731030811917851743475534752041268036662785224011295372769462813944752947065095135349234286294772036910128879995782564057384049667892812196343578341618028748681703224674906431588722332877068377582074680556041644666480467001463291625903980442682146588075952707837379811692148220469196598532598677133255484859977697394852134539438528197619823766745828113999711560953669807289436871939403286063116415932419398602393926700265581298559659924853953554233934294587677818992470814893430696694068901451178666868692137440559994947363919233431370644380476757049632564381390103772945683042302619543084789141293932849638954601243831299557376519426859865460723011320648651924129481734801673402211559501297747715266162826456302960371621849427006146942092121269914820066460842384279056986821793405998912898936537588369783105896362716327087830626994619873381111711741721873699366887119578458359298384222601224671626557181850210482950466540272654553579644712433956919724947736387263917379122170195369295028409438690103416558927764898316688728615019465021715449397597986319319219954251563633979726212839686943179422122609978292375881797445382666292527100571014605306751710385329509981123662005355918415075038965152356270025737463179340930825000553801913363913312851093558577850939954832108190137187329728410544430814874469911285509029879820105446484790339730875389289014859166607010290568313252231170409062527929316110602897147452777604926371681091692216214039435842542936412781297737568365838644118953255969849814351388152289044687243771810154634318475050133627177948908657598055016862949692881154597550143059654544228805585967838994680618133766385488151170476714996469885260077430210773333651136503345879845290571297706101541945638201990810823881973629172471742259358628238709240741482909433911725009566432222469798896035263161082932939339475591060653732340571221822605065696415112168025781299369329374323239795312329326406825154954143634818191371470978998769460899636418055530771777846217797749368448909523608875934292674051061026949388300943477529010687350981574248335934554473166306520952236581498744410812502189056725281890773229957097735220929070999479005187045309178416046166074810773111535779340380388116060399880427955889534948336764837234237103574068142659683531140036919233478798402883511515287418601605446461897631423214994029356208260455994264134973656236616630603381531974277743893826499596335283991562945054538366229758237917885184247278625108241407931224559983681410934308040550990814973285006501065512370043450966157964296472244097233632611299774927127074909938816929622366874013284714156471395465657295450238056729178416535603047379261787530010108520616481596532737557620605161915785301407157749858084707031299107786291793634268965646943413776335113082177904288308339650093195731241816328607924819477388055255102847167532302413842251747048703109822342812424470855441249730090397739680898136839734462827293367714454226453855765965527497913067750443088164487927729464095757561523737103923469837733642912924613215237182827476378489978589262818497137918380429995145145720523477714513757074957152745915618083154605747874233488859889568566490417888164638475814720328678760345120285544332769766001037449919171029197835526604029123886742040564890710481864389801223536286395925320345286735101340481504219794828224047695972157672025384682247607008995385375459988362102958695838267467360478553295752358078266624690365787146936415948433011487747946225282099182556497000860762701229182346351021929818739970413103259675629576917575132186701876041495783876576109115794743972487330264720906842341369699308832454733009926822341173140414463640875069649619957813724845772629615931845660612344524701494472882986170958016542343555426743300585444032718694431488841233056918296851102736561138108527258958251905908722178227875106663743215379825440190979751831641672343941144531901671510063671645583721194667503596404041840063536349094785736392251250186120118773370509456294858469560490777778390094221665505173077166614195020164223294811965427077957891130602372156388498108442410585945894033367963803719847099731994988039722905390493738612569139994003885759195086385694590120343314057045182718247933257381837760730574503311580471010971220419375029647483973451435802407395012166632818293112603939349720989002366926442468727609610280165835136099010090420185915425558067970087034564976185685374953258836849986381592277088840139047012483527242242929441217643970631407105125183077383374505568405697472924280819988518837709019787307824922746989436760253313703994520150799233613574977767988221287075719974406443927587621539823595834706881938666041984672097300109253985202666870539859835958150615681017516195227762958732495803584074984043302573228548065023770074678370022392379250244971948348951993410041736788331484857416838476859461837751883141745316989693734941489385294649435389828263690642017460084569973440303482796905006658501192690712080588068276243145082273294372451008913682077274958736993636426722621621843393381280624502984008507031337707648210671140264141464246765209448040336556351585513977441866235402040824743792040727597576607702526470945742408466728756661725227748155941890570917209205706719053617495817894484836401795149490561365925057882137266476609339041307864534208457452923782205279011983740554103389006262165676228774533938705257021758294364312714644635816486394321853371526247779544264729284628351159638306717986751925418667510890898246105292651419251088059017414606302609238473247668600469938472670988501613678660836947269101961596531408924942555061493342264290276549857946740906454378713361910843950390549787761112862217721119454600048743960762649798295090744304357020637682017090649403716480162929797301181180895766978301469032287008822780372133893103945674664967083829438365907478125969065925119128237181500577793182283394203494387434813720645621282466868540540693608459414431287191647371989937816489197390015973505714495257898673564629891476020952697628460431893302108119220535390223740301111329115551038746189435953356206743421858071475665114360793919839630847652297680855241903254701712866323473218556622477182388205068257951068597713658902670396048398765690404976884175145497082817536570877675831740016635687242466275125624960767039018803812749448457689082780286562538626987065680190365605820210712635978801207947010160805218683344349382260874365875047348487289122448058334450489828290083626211883262926599369873800032620395959028595737543346723007636427381449522828264753178678516914370799316099238979615960400322753045121481341266271760059465578690967777250737736221505667473596012340202597779434124000887748067982440478978122886856589208726189601282689054589749255771961983670215095641225866548560574070999982684914933622787011102548293130960394697146845293671285229024401024257237915891735986672588784364230129734560873231328565573585867613005695548931290035420478296300629788949793078116821877944747763180031046081634053582250582876412735634166871533623914749925572821159867055619727878904978466282526069843041088011284675844868231390504813568158191359196165777507330300213186707383998949519206597352158946752617283019632628518072580321667830830406350390975662214820970514567195511693693878163325753169935241872886461060922810300113474836164562034769371633289807091782209363300331614373099538220091406688950554174982862249078750491653650469183133461205145012915649853254622863090165300301444388329315621701975761601608702941101003486225508149753254483172017842340188466447249968397327886468985462905705515444980321960073510956046620235862887358098838735654885038810504890465527036600490426963471048131524882674842642402159267228438458672582710071255951162536395760973974662723561406184968602290095965528964781057642679646351348114196404528141518213598420238517765465838217046038588322279087423838204449861594484482186787795620725419671079927437366527396275466506427553409258803576242187878096182742566110348508338669208591415062028559705139183411505774043419320948634650854682444155327715837246015925214936264845985854472102116489718567868165916387641183264142075944129860686088260634736894619569222552935675158024277934173565355694275149150105212945564845161924527934090772434039648395793847127234854285913291876010173388304533976431765530297873256558363238568054556710050182747751529877047821694823492417406355109508528305572719462175465402692877190780400104853862042671359786339226771977127092052280834344094811736300599236068939638854841665716383688839539839499917195398341964640880891366333130152977668784894977330969550238089019877758515841872180870983900053905871518730430741763941554162476597908614185861503918240085477327868902733942742388431180242085135950009971979918794422344190983291277480806618662555251170839256517344476938924379654496841527764789591122835330220177689535973346759380099201978677728734868192495507360984178231045135660345828004869705171031896797085526881762714984362666120283549559220942283857684259995779245832974817880969110738641278946932846818796226902740631319655019761040384363569868196260750703255590685219509768677737591773656437699554291489110702821914898944605167699376327564124643950234822599225737273475135923724382756300283559414578069109950121983080749536517476076577933626166186284821472009569015528728497902111174765191206569890930248399771531747969282540051298324939714298808400809346652611086867128865882958360811245275482816964170558631216755545199317933189696451735661605805439393216823326714286105120130435619937271882319649848204191102104122124178010122976407804181133341151418680364552480369103034552212550001178733502281463754557205129970526956808858605875572610781222222177279287468577080035200981531581829668013277010583315155719020043919379304751883474192213980202448863609375664104358377362269831761283967815064425665683785461589836792591203640550379329918047675497127662873032059959393174674602985057836120410543948541407618771885566745339175842963119192886881777621096057834890619782962237196827018875686570822784678160009170669980737956766887403152843034929317013587379916948313115533867289373546598203883404763540301701091350650278675964386471921997775272153041556516406829427751034016513511762409480780395791091153282752969188174730790932040287699202628450652274312414165952416837926554343534513728826260678380134836755344315231317467301527890210983071733390996976424873802236036705344927766165755852480994609335721741119752351812532158924774987766106962120116944393081494583686011393474046083658077018993988157748542884862134079986967330553780498652582505651777672770161179475106806146837677768980732052409108516075939053013868009655154834520143240892976253686358539177087637044498547503023213810620550343018127879122072526961669629142299653723622055565732839512522579051548213565959939508169775415437086865991358100067743216422148204840343222143998342621081597166545494314640024457885213583378201308642808704994158689683779692815237253917242036739032048577576907560259620628285124827251279336308341903244685985460484732308841450108489490483823621254611019227975247299920056666398300313194012237258921489194191668275506488806392812612035478157365852276918239814193868313258666854076252318139995164742969616586410274109406272774742622309345332685424770919525415484578270075219531151859625208329368230824809239075535773776134964911273946412959075973330357509322088498337764498506533287865274951826227528946644460128194122653222481945324173437149880800010396920666281867439215967613441039724166335317906931015225426582773289633087473730176197882510545299889623971293671078266707980392300197806537930442304292368838647386800695983870185408447861982710771402976625580734267580111667758908178943729485930292864581651127434243300573142792173867346053569480506004308305947741623472172491253793662339216997612679962917694865477728630290368517777306758799496306260290586377784421148201816516011440538729960304485961317762573637420501926799072508360947052888114908382157722235813214517738877349751974403846996316708268775470921991273429558834244313446960947703070057752660748943833829800613140529019413070602494443190615081913970018719377173981585139815814341680033425432358909174977761851050022799330924206624798674394325114005062575990177089523902934715866469052666169203324888445736000729143650854508396658541310625008928640397190471175428224744447035271512854311433686170969466422968572210269078453841924176900293067593661432508224201782370331732902624054922227634023214140027232852303898943706359486798447797753467303409519096198019041160394554671108518081526134893075526871409720540412077037044004912853984134581801298799807784790912042492302104882894331759081275835435944296453694015113916446794429257577722092697068100010954081353709792010418299248622714283330922357244039443615109198003686295765249697609701680619130071815983143795317448976387240856303912295128962348316160209362134041181565301682347086733585827976111655279703310716188128086326734574765913785506686527702261628429360271054934821939491315447708402933206922311453260364018379319202303561488776068698395498076581043578356124419666927763408928586048577953289623519235908090562128076656930450616279399540783688611983990345858370641889423990443365207594208655653489137662643896823333050054505907038630335143350247205038715427665213406981291818985606098588950658942191063414443328889117573475499309946611188427941526303466583090325123880181250105237039874712125691965637618433554988837075225742201967502937606909244355339467254005587223433958840060914340280857670172331978706414548217434189269460007670726763375859346271061536514437498029196642149940174630905640005203246702619573479426527839198954121734101557344616400509485760871724907041473000953859007983859670217971538856175698823267203139042378035857012058754343709527465059116206802301170358777767161851264675253510539941303155699434003332735236990141477543172865792552137424085900064357409585503707932763457414904127388796185687275908457694420211732858673601334213419945773004822189924749104143474287380810469472245937628155511575236430731001278219894069203280301169480783871298695027995947598238789089242240016474959555789748407841216388495000838863408507097791686184891647734512595061052022072967252432150877585520141286336529161149965019047814741694294961224202165156528534010240655706667453557107332379847847948431631387559075796193469873350195119322322516857480029106616619275690904933722041404951039009077545691638848726735003479617656260376860739053568175036867739506530540978570001457299435862773984360950751032965641659361057975121698831504503301262519598604624443154333766259813803510697964308191081092908767359277882094620433782401337575587272047723989353769283162049159995005825287555681055158919878699143648832956635775616066285901792715446284431279363481351475647235836319529480845967684296513595431736089662535266511399745834767677192274267569832175018101974387013301546970362005375776569495982783396626321476363468755395419022795880878235373062290336754184233646161579423536060448118100979606453891291334536570705870514314211610406510732106177145649659359005638200176143645993266251656592781167685721530418192465824329769851129797765597843141332276020179919039577109539022600448396636999395641650979059853838150746977791357732466642532113152965520489536939462291057757117023920595052822854390015779913498560891512564811237102109855605104037679782190734207900851796128828412836579382856961038781153440355029722981592704806785396905152755748076094272036529271853878082689581449261133143469272015968302402293737648644499078159787246298612753150673021013366168738327322441157557730047432632719668761144575040484500637104522252137045861480817323844373272545455257159205968709020082968419134896822208658728216763335849162935600948401436402024913552533187856918968488720967454263359340761853300667265964230511191225026922457337367564811479002814948402804340105519595699291527679533231604048066161505401449024625829255755459045640749423186989321038210331750246388847168310288954220232880130603752686606276120341424766773902411123947003514353682239031250069504271697640160775322177462309755888883653799063464861356512226029082479189872828774030322704212466725014418705512017148277570971121270584239292428506130501580059033501164030078866729064223009440164899814258695811398395054048817836418334669657144867550893001810400937887657501096656658847088968335704887654792142525936068059462426688809354916922854465260174941999975186252421506534504974910904312637366748824080748907493527687437383523400415377942823072412488416938299628175449016594234830728986562349325425886531705082881634545104578584152947007498883339831348299171805700390794777522096773875280431357578799256536430482963891031657616766292673657822894296637632217194410472092590463222346855915106419767879568680456965675584401178646311504009137290979053804931805615444784393146543979942005595913820238112406434069082865680304643353195162061814581060595431219977291345797283615089769433561538600463456613562617945301725684879961977360097698848982686673056421115277987689228429154672201551347384878442490402045636984618808937294585931237393390552438957119674559157224287728402034719991151475935211915303037662454952274040383126531128418650675158530776185665245402137364342806827137944238444614989905138166878909812191620419325426877864761605662295069448279917120404693126501908088509269919858021553670797701225593028669547823663012263333918707733379013736926551516991569985533127476960895008991326398480737026598906557943909468158105165455513523763388177503194863121484970271049552465243090652804966990512593683186360890271305798964030008322181755257914691881456193816537074411972943548140953372506663545948464602290201818106575450676008839688728712239232809573235291842141980060219176865458466976689315757612191438270220185805472605431351204618118548432560073559335206910610680484646751654755169539569836218143583577252747836920731569955010513455349315617380711329744710395552392996133605753798774026729780598169257999340805692447718508304333850759997388039544575844687305151387334314725090105114802894679139416547902806950344529184172867135529369549321617014657950483587635680380531036477720918545342308140738541653734533361395314790668597037741540213348202592395479839523208918792862398964492986063846510779203334542954406145847728097607842611355603491555458294741349994872193311779615469394819824543089322534660531558983446978828943924277765760723351334366113452447595128998073169326235050346528961636600762685327406173821221437794745386713341270580938536003047455292125660170317644128235856804792847352154565461614720884504235432397215254103800446139736852106749174413778004810767938452779048403814202390038904274355713823718253972934861358038765465937374497449739015179237080054598915458989233509705729311578712055538932243694002834272686958945307699880228095926622661742790223475550707075481082785218700557501105731243098626502797388540130937035060806473278707997714779016870647865890517632660390647342488372216783726282635820573588471537743482460925352991280922899502317022797108523990776802297063813721500525375102538873102483010412814929167397066268524251849788179648325540373848684103712908258029963205843469171650613968109493307828093469310734305216152126314021058123071086240397167872633284687963277450767438136529354908822692878719426321844565008356028229645520520643814050911697098682741820440341095320852274637033627546534532370001007986712580288305323969178889424662847980128644001728181130474261029272957625488459406073440560224484905844204912870814750072112893928817532363739034066558049534589991325676682984443943432682070350525246143867616813533889710308418710367612819591067904962648484426662035781875425737704542163859973651384434176983104796482027654718925417914926113150444467722762849202662134204007220001856639412402392870927342682943136719535906443198268662521556579488698898274716371882987390108886597452922164866716197408655655400047721673671600158012665641732983255346955152219906919813926208857033216859819588188261862818728033063374081615787950080944482307475280480433035922977968309847604483427086272896989329692017864990199291314068077933815494087371254678987320958582849353064083409193556867750617702892862083380317061576068926372483117064443189645985428950047424504619450819985959445264570876792286122389358042753203677636871187560534169736720021891664426930123970900892469401605890808467128923320016061225631503682657673299890746884560953730048621077427726791124866231213935672227651769758860660918204291709275782439992146987662719764221820117324412878642494667930509677238400993180675038554626986280732138502048738340281790491952587933981478198549204458292264792035655656403368874127565121206591722926424213877821609978963807096435047024075463417418943804669371390472016886087045691623678008712954643597580536671316753470579729791288827081266872394500299041100540786336831272717928242113320846394628529279136990483832843826123664771699138388987856727377428272721741654593979331826488104755115718557073257679751150575342734693933601917236859009326951040650881432877436565075330024989963597421411823980179687582595151116382106976996863178604597752003672952840403330414330676332000775263536790707131524219500371522137525226057497876456974227562348792843832055937266698535106453146076881504621090492799773910621276674313187783950875189311982189329279592631715369297737703076430715978752481143118096699285950045241674332843450708529546162811589972668397383342193835430685274824757261907462835929482298135248913952124358562909998231316920776714033838801640818405189368732981215578369933564696809511065284987959618698317775374587775362058895674625341469322443633066938576404100534383427650415327325254554505321199900286859031274570515548016754734488187565630400665770608702957423657228495725557579577789084058767348644999871123788971685832029928199156980674381943797120004905436067123107750669265832053998890431931999717742649532115514443789159503636544312059505830810759058821817376214517477994735768056722594987758627259582170766248263361624653632535106822645315371070759116756034256193301451483832992640162851557553847320063468667445757537817818066920896282914300419020225818845325145646430524498840905496107096119016985008518163426141668358991066716019185639666854125831325944298948794982272625266762151289860671737254271043425333167745820137380844006703405825000835584441961807149387858008833806355068952648256713481841444314516494600382971826372757997961721159560385030932781617117073658572636889704504210808357098581072160323623512451377487866851595076554928921587005463809059952983732029430480378440322318760567797872764426909356478355563216467228590321849276909255065440057449760266288963724474314593629582083397211350450269677256914194279208878603719620599784404156350363133694957754909642669202564324279764401961700822502940973374375396533287046160373859739372175869671493681634497738551575153394086876015481075694894740308029445645468638930752074604424294107328994239605756776602691749792571809995737612500471913651408006341585862950943433918638562494240434297630229044767374637895618898327860949187491134177698699990993230175979204042648585922316530291127193104746948622152116058542284012095818489585958590668395607033555026773335256621527141760925447777284345733495945680893519498292845410569676825446387180009772119896804349967715894421689393852770023099245289400323002813149436894487179742520306708069109168954095421692098739878203114450773954662218833085745361444424580053846694990230406784986360601648621862294493203206369470354941567177144144336106323270250522127625470462035962190256809851593541298845090948415970600199710253636171422928701894775222669864512910577926745380878262481275092304723120230012975779934445196792649401418222701255986027833677976169590366473456117927783894486466553270240179403868100882037206559984059975569911389716910098256058742552648819234136355970636444121825727812150713126637972623955366256808075033998761066710387288275889697717318340349464656554977002250251012763338167371527592297642202790732338283769638186093242931423636704166660699041643623655357934463065716214460016993933711874917487039658887633281762548844645528954937615057655050402205653282944876104723406824456211915337076018698087970536975379770535816700289792044902216688633497282850403765558053515736999890370724333456718827096872922946107965343582272839069132259869613159101909308594843669783367574326601170472826305599687656324018194881997837976800862389198155052559202572600699006775348516653790700291445897269117296881092497916869674095654594253895048639558615785099367486007628218936972268925213162668168082825529138245046596547313323898740551687620540300380408232427481132242607069761631694027233028676846158501351825521984729488591121902454479684694899811366475883064693616519077281687799377295241509710029220168390720781177980726125631235809968867784988270158661280245720221778693597341800100241436777056944471010529803225552014398583411874245662282312119229340277856871819762253655312297613669229273481419027560242721538527507553187869396730622749218933140345435545567173420583293653449100265213739841763900660113679348574179881619366055221331477595164075931655825440350868552214664795373641500144626181515340833692331553983715068103085863787607403080025324667010806161838726433242488537823425988684681927088996477498729842701847588081159141601424516753494428853878549987519137138345946626444942686034066849181658433233370181565709881658753435962301799848537500243463177561499430070852119150747414106842328359345422712605794136076953492150049354887639061131606582438801398577397944311777876145996738479748996421115871369422614213163943707896516788339332637544947902404935767009576645109586185717072755437281175730608527723358659286058585634220643167406622898017707675433628630483344704504826797144837408066599978844503262391823644759130394199803393732958210711978868749819898782544256090684574136877813248328591528626112899754672166564822417089563617339338739272705403651606726166006711090786681709067050386939041132171066446554120503971633473206777546610822981908269083082989505981459099963781372594376365519762166364710679783760312221484460653375775321673627156158922013785189062153905280808464700320115760052447700702191682877900315091990204783177920438771214730417304176363405971257865185211069868862922148082772896112875671908209246018960890920380946217898816114900277819085351902231390520266760689539250883698623580411943561058132055455936016933295387968871562440389903404381887439678914989786792462177848986715098894698446642907569429407616880473358783447570863313421189563275793833724943392271887180464825598999292741099503808539447211845169876701318378243131635171005083245404631350074378828851803719704439630803341945298947114705358087692624217789739910387569461737666698422367608024827524794603079009127646956045453303192547637248974109081678794350456179938789496910674279771557877255812662331747224110337126742503499406821144438072753168251073409903766191541129027865558045486773459103008184448252982333317785165569944998147158308864360403815286880870374973424752806350381604898653356487859557215863734733754559557984078994925922512190655698088980765588944725758371581816454622222941790258484387231977842368125279199561093939289256189555948404489868920791720178134951104745562975628404395713070634589391739369589143487953184960851337696323816237588950748894789170534759664946764777030193061864877065645775869543040198095503145951595690810597886512704692209276552921196691575569571124987724827695790293700602816254700528303984559559042168602108485851088461612277200571700413766826374771301777050293694273374848385085443189228052852825688366485169203329826459354166326383512926094033177318486404864826995141743083618012606873453377642453603668481011779969638723952078428076462502716243700376569625625804267125387930152820546796787883743981542950572286816505200050816323532893193352097981411940824458385388184276555683881081292626918028529687821640149281848215072923821590649864646432973417464787320181872941285289326950110288169587742792527361028461145042065832573059318664918950989437010029767428439312623448495126324099689560254529304706969345857728922767037898576127917858449175245632892638051589503757765209994682981395967803864325545978725677520231801611763822333313085194770466138901071650219723624933491308904928879757433551449683343712196123843857395747614319699603654369207098200026251097828956845407436928178397073385270267845641761635613823662167338389933856742255034762372147810192174246738123077921813401958757578423537715650930716031600726962790519760893986473619359045400314101801153019243038474350623906812103758500381056181207984260050683546446219352671842862204446900726907055858417597867643775840451617467695398400123626285354119939176684865620838745110014334393011865505627205349416983857672133569580187735084919138255156392928638099923773801625593794011942888002388167283666285429311093389187301549864406024772640613391503479297201733586735927406284133862236859373433001959759133809018052130197235064103632532837102396302510501966828182998749042840438304971313383848042608025660900056665533634600813752143546463947411022246865336300845443684631684244174103648767406759343283643938099990169093950071015004493632580297638329211395905269615145959600738133822159433230277104020201213488312163408793603614756040761187284279094559606802728004998043682189575820659228228197202602318861346483950236334697273127436159042470930362938312957020874355782480910002523113165426781355928960707971845869707461225038207784399963245565367039709671750818392638502227618692918818774214441323116959221448811807007930179410509667723107368141320858921075198124781139030507667685334758836513898159255808690312043591850123136879629619733060501150368372045109789697922037623692710578748291833709568807175612740449582357962497640584951532143777972213759527795567560990430113114015914904190675710411355977081437111593656588729796467472852131212610139496960977670814329384899948841263414555767925334498225796740192621647532131675671255211107341266818991653629958457851037301935937941862799879067741243539248905066402790902525158901577444617312827803583170255444512427222834270639591792654303040964299734142209997143443056361374550260267927756924157365086342525682284019593596901542754153007158488362787923843121566534739845324323461196533315211716071832376980279385039170943608040271980708366049594452273719082057576292012510823869458214602895158429388919154352999556048505571379145701309018089696107916302665206797811146265047365187962415610990997557561448889204727206053869395029257434585717839738739747218424197235205745460428627461673951607004538685146068181511895432044144483389214956021786911006088968943349748891868639272908853078275945645918378801975239668202056457097228983173149041064559659960806951608720800210554008770800353856709983420811730879876394181515778009169788509982266839641228383741248868875296243707051012440732714669223299486250525185740793699280354205439323126239033321535034014528487923404174935224685581149632812906830247645106660006786152923837962076076864825967214494492669372325027579071205890420692443905322890274371978624237039372036093718039701496226139181264906248610257867275729573955613559162872232256249502618873213541998592855796650133089073332744671113294599610906279962538018470919429360458265604130035890676113312171838808781865968050672495268689976463942734464311690074344595123217065469326915736941628619084326338506676980351092162880543909218984786669413492368918048230058674689489769772719361084081266352135065422772694757673112055076777079070902575839323324252840661064883953757097582885255242069312397270664302426140376798185383672318402739796453229361618532409972804025363933998498854700939359111066792178410113301154037791128847468091242692743207648907339286672938470031576269376417521829728441626913608975401511625203576436581224048888964301598195382816245025112200365025265081795511649484041604053958715581964390564049496574179742791700999162705805080074872837929756318329154893399117804392904052963598740974068443190484553370713193343941788633596092476616549186554983335969444615696139722470525705755705592369286934916824619608166405337677002559484099569871075503651971971897878296332012770580121770669993958383707256926001987924044020295821811956334163504599895349575859294414017020709520787332972514220561098798216898715877312848942041567287514100742135474510436394701049619563093041921788016339069236943964924772449305604568443779917486171559123188060505609637991850163718087209645018962129620230991613066918817516627752352682037026640079256923632774499706298903566518871650649169004539187202874077204089903789516674499515293538247393942896734389184539918818068902734316501487485202112515871571344636930655537901198942112169424814372372272380332008102446248946539445242484074594720011351183097514197481101255326032390053842707666371365477550252385263280172827216654240906959249231131730182497905147192914166934492674858952750557027100177288186191033022924803554202288779506954256640243651863409081959147922694747943745481117117853829156867380598767946047390651931749357348989606258741294747956246491546787777348553652646440417951992762026911097134158615397610058622779313799293383724151073133759378526214818152229976649157573462658470003392421508415297122262660716334908362622462982242983929133212002688160151219644920263725667909063236061308344092551185072475273429027273151726769512473918043535222185580092266356670519719540160380761790097551235584623162448947835025838721142039925634344211088511438676780689777014412266135279160715718062804470937790024588059921149146494831019126979957267217240426992070549998758980061591172186056865042307649384411073049634812957103579681368580570020828073649136922912172538731782047548453030897053691903341913175336086489173546086874587301317125040168102579503509626661336582200799651129912422694292940431061184755744604278592760813152382199518512524454607476764456612353919720428931931639895537805153908065220926625643730747407274486601931939671573446267736851809386318975328180607675656334303181302634757211233691698941384579053746787726645602152973983910467188183197477726843603366786355002515932593621285303204566533160339832123183313462472603950800652379352186144344497562483037539539983742563899345220971520473088178924888352510196004438597428277814916330555292873813208807274008650046407895953407448092078942548378241061167431246494379347635522737236580728115631270890955380098262007022169821995818297220926202250213572795687636191006538668653154806442184492694328364450115215150095286873514669790919250018585087159131445347801566474017979835878785029990626307715369900864478230126051217992902599733361773039135698523478875743665832013150442236236846779742751169340045664180309311231605119125044870256542023839247696462360306134886646693066685712789820730879350628627722257272744603974593601536419366568524246853307052429482449679232990949097278333074627945096074928139303022730594146524778143637934524451009280650971397619436377164736949254669501210343792532879092277464565327482233617691839125492380932343099166150044893105905830425051918963711088309069602570787433970160371354004667734744933525802078536154203574445950798647267332014602343490135646947256162550805596545535173075010201985141195343798140976146824603517095837238225501341014332337217904572703178934819322289184094742222447083503797274122592126102634042189208912721794540082223928733184942509599284586543683242991176155299042942171157274783739572771204358959913532829460051250862263984457313965045560592388858722016320035877924270431293522798746547028464685120005343497637339020840679861927688413981704799113249463491246676357379703047285702056047922152469968908520658795928197002091489335516686362842307616451679579179271398459208459659025821050356197029535531388500118457764009861653420990552498778557166784942545249276826316481027083310213894602095559198259067140014942699243631829552427510860349241657173812088763042999053844174290564558467554031586105619959734564267996776942106418157726821035030910137619833532409468142520616890490097238994882181981911496818090117291675495734464181111864218170997000424546676989485105897548935756982200439213654446178480529573930370641108239921842813255035134638713225324468346665226814143298690387850045242364101480710892396914985407991161069942827121679693848725786040103095354637826536991299172349711108270212360993531799796841405163145579750638139524252224806894641994409110152241507756436207767304863521678940046050381679624790461862186687562862290834698641854228013879758766346295767836591019459772433189091431776585675311207625874195224455672707175928313265483237425784349423507265627254696365451134489983152981201363143530255564683589091935063087313872818000211156502906621540741498152822996515441425844643792889579264981528631465982958145851881160164846077836944144237865778959235532403022378023431314023749272925862650082362494219594309789959900704347680520259680327348492341607588830091337118892902541887593948038283127682158489406423364449823375423087535965605603648896998916679495738457285430417020759429435017877788933873607696314740321309812465114071380301156155882468782020033837227289512009477190293322580090712586017860889918769542950022014911511655163847165737595452233117395810904776025731318171721483413308996661821488738539209872019985522114374522193744125283650507278109663236263209703610479926323498123608245136202979111406350934653947849324345221528919460952260995523259422935504162207181236469077336955227241966786525257168067972586026474240707978181259171245589688234775622577455820849719524574636331198865485705907831551240715625852831439380743193345091111195115225966125964270715516773603245678666496792354975198965852527983298210896013936607733305708704401667097702780636503425937538286575530106313959250497288967929043792974685541851356006658638985237270426164904632362504356086316043678906693451350660414219811469733961763356147155800750492426901247867940897184341677058184725210091271252287839910152300756333181187711953092111731055509468192116881843615848049674388938146448490676024171213270228428656787852959666257315434812156357706055689239704231308117327434232887144018491126904132114138494924631607373265971432081903598767459683551969301856009656591453944185546554382486195081150247621724122115875383301985066504998973266383891406908479355752274820446581422003394714342386258621588619611861987038457780932649469948397715192935669468002825966028831207697268861933762577156111761428921396378115149844878574108752975235710301446192189861786890075825868845089961063425747614943985342599772022486913641365305658770450689586006293308921998695680630618707186194091103518120213939421723445076023810353352399242174694149762825511356282908456895629522603088466675095995736368429342324381378043987198463274380119790992325833499877535170049743775792154787616662986146363678597320393079710288966293686645230593647423835783931640167138353658393718387615942222338423459267058588842699290963532779808030312057166400800090641872050459551292580399563787217157497542609016421691018337964890678884603183423060057725689122248141658662920495769175054484210672266025714688860251025206674461908739931476198098471084122899886401717517576337310233664140880229967586631612079752548256130362949885493168132933473663645285469646428211357718999400879071763522020813001525482124202617416383459074529939349767744277943871696469466899838045926933318564819030961114254189605610568164406767989535064785395267513459293783399921275904809569345609100737721620083899072343858985690426874231945123376873598676670795272859600432466606161218116420168821534026812238115425912887838901749964346289373397617465340515399145426781830260176802012280065626177787259625804373982701724176075059995719017072349790355748459335015439189943311061787589482179531616698729236598014277523968878693072682932384039596810085392290071411064131478903791806955789869649546043359972764473086396953876555299658179624416213217570736803432085529340884999674780234761589823690293089832240169153115403896650916059506439027785656098577792588254224012918718133904466595126941100260057455202095525200166009794919399858222759406759739468293505218672788656402853183490717327088839494841683664238997264871030899771010969053937670787098626518523632106848139855099598401096448987338007470597669668975522997772114553204979462618261836956654972808176011355146613791810015661716064606053539234697879745522420251685083473049486447561016998416307365474458051971714411622681417704686041001318774519733931570477772088826392585823101576403243055014071299728641447469052515470662417467769357069385992074602298872072496538423384827153419292873227089951553184205662875166434633831870619473542817422448615350253406723880694765102857435447962906252733633081732855051318722323853227390393149403417091042804959174797962591439076998653502224555378544204652239513824942715637309518073389895308150463856211631442876432328366343539832107208574603198619230434487370379891497018059904090076683219786785773599372646160565538914897148497030791320504562275586163531367812478763983456614041447482065965366001082016873597074888545322787018063621068365482990930425613485749738472654910210525457125774767329029332728719933231511809615108861903063374575789227294049723508609488287551086582839827363203235146350986346216254579919217736586390900380034739176748040579113834797089296339123433269226492300462945395017595541246748602368461387634203948480129787751567262618629093727094600945557080560809432139391833939456253356875901759330046887217757722340642441381374830852983479173245379234026160423787463754657489443172574859257844672046854277335470810716613357862524890336367143831968978847941993014384901668037201846808558654289877800568762792227794199367795383170682768480449569279023434013145288692570532459877096101572069485655073768363783131197288176312690802002559690307333731426351785009173538433660913615528264211352239650404938697420518103480230688524972718980786228861936163160106646830825473462692698119045567001192819810820007904806640033490305442804600428624179746270264566475702291881588918460180651443037770577216520818313864680307357561034609737325628904886003788258426681060653500014901768742302003812297111452110038081224384127905476902627904045777502895144598422781466431237968767063968854132968689984588187797066899884536492881296772708258487585654363795097906298042242628007367465503115431161662667769132853485409737234216383975038720057738514477674494385729926114693541406473673424153486181191109240724884682281059683822394859229071253365039692809631426255588744072100778295014702478132891885542718149533448705898375364556335082201823340457453517190199912162408136089772048440822135029305961948738645507327397904150546782321180191069231908043439619787640837091293968936559434818114448156558211805338372655126886595882766915971231496918149428757428340828878272965113112691023673773738671455265779151671320477024598755168840152987160799720095531566130432729722490948645859414245556993083033684256730106589888739441264999089144968547417334813695037708331818119712387131101735513797721510506998579372363620655473853679927870227410641715458933375450959245602720353387468047787598342102538528567583873474834977479321496297171130147789134266321421441157541705741565266484634409825311469414697520011930775462071241395866215347156386396859897902626741503676690340043483755430292670535322358398101390378916898048780179633652006147074710082929118653014622100176050744296666402264107370620483623960703737491804155447343096341264797449914546211438760314612108085961382325784342561297711060303485864458487049906077683458736654393872482040529006900850934069869315034483466103120562752847889209574011373389403769197439121265758070215239768654664474040622537261060716704734768492972950400244182344996648338094963524959626019550009334418219529641742869733873894724951212897239194053706509667854969733237338793348075034905861213861861362713144541130508203053481315058758292299175892441457370616470582484642143617902175818421147837824506840771100547694188778526106064855974037928346649572305733469746402157373618237769525151340174932858025583023036916720777160976838378192167336090337168027852767467586613277796008981025033860020543876706984322592638617464168818211118672390979654101331709035426316500159616609607405614221511154966744615115459854540123473628621078261945488049362475697284060097700166818918482161962053740530354637636091105205151420112835526061892129737949661507597436638150513105667589341662682286420852839447746525261382827611533753446359189105167724696650646745759915355706906718662360421906807201427257351774075453535060853034276917231593990740044711227125697870832248586943222641047610700852352042131479312717553463755744029681194021939357253598351276066532826832334430623590156495326879324433229602903155660794638423577363441282357374132574803569734907402552306081864413909599934583215303777743443374179524557849157708899121433365347802051276301341061254114997380407412250019503707777159154838722095703571681985706458030660867089289464998565720473673180380309398763342441549774353440678131765988344851951316608557356236122774444185206309310306400950481561258934859671245712131096413584118976589564192537843759893088349442411692180640257614013452761275006921234224524856300807308065681392658587303425636028838218392490893849344298985673542647634777580542800856536246871704793576007085099403455807496936842376132212159715285916583742679855097281708124781193459294549927765913505712779410284932800994913177945137096776747734228188735913756628860200129981006028353897377536076420139541334058943264145777162573901436882688613943221779890678976773885270484591586703552550097853391066314653993008771844120988210024019890943454413896997822355040449364705583811058830092671912355330550057806514451044789852648032193052891488370280970348697668655837829227743349030020994381038690031461283727096143190122575063366336746525573852159912281320750458991092945936191717641204389476192571209790915233911004353366499993649463859486060337538461952887909580682384907255602381186155629075825854962025297087268545693842792758381682168367303699254888187671277312035958518391986250984274864583267272650734227093570905772571233699211531093279047943847700718169704970863740603483374262904666597511545957981405710746169215037653549149679234208471664640253508145260129759958126010062158634752843929801304317635858924357749010677359841532249711128185054153613609354677829474344606579252482566200812593471397852053362098128177846970094360742676733687974525018620105782820272752283120528571999404264630934499635212021786570554416761751350156962378043811990870256402682811219743526929834250678592553147889287415941910805109087088866800093296339827338967070034484687658009861392198734666695949232148005042414895629098153744366589861064465492030236082398000422479938796682498098003028259373011343303150330360885515678548695356711899234680119764688182142990813505311689148359770821560101238025125706680869082920969805717527049982420410785528327864340513819526733268061917013308281627307792158772287378342037105996945114520417332608705345780570571055232713892756329884489363035414136407790922099766317824637675844267489278699737089804199129395253971224798253994783001309192643027449844951023496794473221863763516054584543696392152106538356169396004577908292811185867653490090477599320007823707100131286934683119988506170071163961426878862515386766492090022184015693958454394178461060752370985203337343706638386505196924558138463965757389964830591565939888893163193454238611162898512294411107078768883149209906214400936796076425559501055036507420160170659626832425100792422715246094728238090479684300762494220875354558017264224488682546363536472011616073540182084690844980545290470805302394228596999276253538764970030436628347728445455483274716383609689840221905750433721376356772596142969576701844184843881033151591017291990352974245233778074533666456413211267130199245188514017951532306713400628603002674728927644521941804406216295100746285070083206658200708118751723156665820617317007255992541649353328734240069961891874590422504165946801621019693379371322760866707843917716234478143614922155432517688690465933232116609873458671473414262607436828346672392177831363562674768166626131617222373556708757431760643786831088460190571021840704937524573594583945102917134183811963808659107897626190599293482479313574559729877156934367439336924325663817785730459494741734682138273551864230745406973861653397986392469054449423287164933349592812713866372851184079414066287298021435322978531427830588944237483519910880715884491584739177420704618839989141262166669926442270020494873324540390437510306463288394193443132596130094330044398116937236279891896505069491342936577196974063563265597373770524224765532028034487571911506000580609286342038574994217120646920854010344364587630004972714388105684234976736403936651866159890755276310080213240067410845293756484226344068545759400179132140223180078105871415954989798600449369487801276846670660101903432647953779982110631697777302100956721140580983512752646111779055554995603621428624929983228907600081883656434712965855307831709708183922499918990008195262114977393112225930838569027313332055265333284471026601378192974969536216207527953617155139307115783059544287703980060758630125678147801040869758334596458043876308823196746315452640131571488729655044328551120667878363618567757564599257115074381993202630063729155870194147253560132884394352291436388466194016414706052594137637494569276241297437034839953443720202944336766074483219750176392682781328173982749792285019748930484069846964932180710068753165853340976554588850096300201336349048575057826598486755617298452639371142816089362493368852813625961817764203977029684868016565267937767882027481565406939906676887821023483269612278272941577634962295379938737083455600091725118012962261811815272552267476218681983865856675263755878097721210701932211073555762570002747217249496916047728566934610951053473323660601977754337481609765922399345165539536114528930605545951865835389554319863668442197820419622432510039602479240440363176543115840761235390471612647610078967310320523543310529983139043665428563885517831055143589768091470957794535570299829150298209274672201793511964587409617412428912535636496333060320957552358530019110729871753954077813554809253141060615011361389422158529120595132986383393691286753597329229915099822798847842178412382970335734596113661988992946611313936252090628470151785126674364071262528748476451457004445024611628678904273953783969829249361005492717791879492193543550263957505521071327363155922977931059987450578973741296587588197471208174586202443408906581732300772707404242798780845638795865969932615044640381613022425132096604028162962067106019202790788156312419436251908990385968452434490626150238405065117547068345428732519657778826485462496785234741652551550578632733328383952710678523005936253734759069256245212681849246206232461437907311917477246015673157233890750636372124915468165834226548502802683552476533190045753362476233574026940244621045403676254838628725084619354244557578138284036062079198165544633584348925653138353489153464559515583418776526846902284391735676763556710108288570945089870730821953208116747391970063132434686688890920686353631691621609093126527090344204811194753412119234063203334226889689104017215870568930899732221969655503493215927688677756366558377526627549131583482843474850839841815818117066460561910770256328797392727472270850935707004693185991526030509987168223197659817420356507542254715664266121533145415409697662346953096916629376573041322805819329445596093100025638237069129197596561368095951332527073680105139410179873423270514749127416050995954240925621364911003082081262520856125600979579733512664816881767177218039554401887545851683051309413229111455433007102153508793647021977464681604494452442348613681998697698109175061929747047047361369522316328596234290247435674196634212251605657243895031906884576640931738902112829025302520776538766274414890837914747119846823260033019787694134064806286362500730821889788357506441472561021537548669602841968506011927910126009082263365914153939038082367003878855224812721297040927475846626145106536705832693649777918670269150066627602126791867406349380886885910044135416125103477392045866518921770570134272688897086799758240604335041666204959440091465861403593093505479556705761278686302205787459767091668860771599898469182786384213436534371504690124390514168790236374165878218418549216756387435843592496608377382361257421272912546150638200566066664492805629879378641655862109360957399372616238520380486967277836898102685848149924981959949738653658404649556216358855109358617261299809550905874153246615936960224208651770855287039062129593190372034957045135462853898256770490633612824912483622359595924911314458082464803727267145009865093178462998859712622670290268497258702179009450882926764936748098131767506456111203359895622925766163087590447935198874078715157554746541982444636815490586468587218279490625951015796638850060666421695886173467507643644071642324256806882173300892795823594158479503572624865948822828741704277194949573556501873611978272632016676325923566150762107772772077591200507584382191499814067530385445394577050045718758188583582553728498838572587115052729446024295562349960598411654806250448634248237960918307385338426750142012275256487537521028842271580127245385065963965116857537852703904369662864377843735156246603945702838457437423017819809038309969888996876397815473283314119431630475581474863776016609722925357506135840901136239874190252078362619304923278373499449579418601330924721626916189059672669725935986842041251198725747603952216078798276078804205621429149297510909525432068430994741647504983507383431133167892871416691145304104181476866555507990998279348839474848611893687732773418006971125511738708476135921864755822970444231329682107811455878802225320944619053274743717517659646360627851005725629950977650232268604934280072245135305870505873825332865667382510914288928062790132706317292785499593861539245734092742321879133474433323622595043056527508410648443466602427919863614569851025702960725254576462508249797703701197020585220780346404428552177929257882791334257431684788395432925667884008785175484216554827548607012722997505778228020986485776046897347496899923583498305425266103440161203376135226919174028741478651919030082335284559018094888640971319014282951915583196925613511798620906614244869467898375811338429506169030173563978318979851311169741565610984894734600354330829601819067171321724662438471451761952213611423066904625075296710675459053612510481555526214644157680436467891432057555654038450967443803151765105657717023618798946814133998029859256016491724855873666892216673287619687235145478301676863590417093934984010260506586542822479815778147255656829452370009274686194227878471310271999368950489186619689023492183383344620959932330444445314703169264145401927778030386716566608191957146919711536331441780090449862370978011007905930092778127258159852425961812576672708159368726424559947395353831256525743105436461918779012049209719272029992470718869635551449953668388778148371295567816331623094322684573187800029258451512151050406810725380926280721981890914339252409435821983569737787957364211236301294367638779427956702909254549380719202332298117613139997918042362656094191709013173907696537085938151766243542331828258353198351437834418798430585149253509982902637321119502339803385939261186095990442629711702300073372699514899285265136093891112499143522179213191007826602174545168053497585411532918392027206403906071668864974046808727983482070918107076198342288792703278775939893582002323730928061364904715354095442093186723869727200936076402123098946882050494645626121450006062514153913962228545805086302530759828992386934681742297642171014833560576786040638106790853482265419753110670430505015793256529912548713844556082605792843042561675063426331812244517196332638604474005198612456151343421447939854517874247236298234431689832333222642725334093388852319264345012059171787207307854932159311900898164330357384292209040383003661718645093800837618435996277174315685130411849119250550147252807461838188830113873494558788893047336732449816123567333131114760175827408262023639006790968439372810051663033464143711940939460405756512293792296022459266119517598529118553215461995828725304312797662027031943096559047294714567832490387558992020931333717895590512328034522196977729211221038165913938753412823207202107854133427635518063135653043278151512493176633432653369486670876497127337637538035758427869884846141980667416020165178839364000109530233707695505539643001613771432917333913984120660251774402887990072633827252447731292477619818031558910551988842287562100137626668659592272779097535718245007737254065297840269267970547771553811855837610210831856794211505505892435735882655377007315076006346140465578351988761458779778914809199460730726795386552284941623977312617897033256194453035362504295522669965699756249369419017504927518138084487085572714862161974179301738372399115178293086837205965787226325394317901705546542791201527533825445236477442255297667656674563580561066304455145487635896826302878469619969354202817341673526994422319512693180099837697197983156607035815983144870655157540629570390662258725455985709911250624552063706121209439961019323290723319753073167164648781422420413835120973925169179004440310971096711597690441280246881191887151919468092629644805043663976896361551557904541079840201110980101459598067452800239913662228038463888033357373219789606617199148569131210260042220681306043912324934970981903597035753320281332129970798572662777256034500010054115758707898731294306579100225994276960307608803977638502138589127237632589007137982511203408733026757436311741749497497750511965786588615263638395536714656707127738335286188081925590119016152277106836649327587231069181582361326663704088745158093542852027744350178651171675104516128804632544480245308716021821393283487066498675508374309723901628338462289831505197690994695546551979866118231011584313198163573476973805173654774720776964669176047459492037943311984149328544702271456560119769429911074922538827488183959176903223459376615285389198813994774303775571021478013339159022830995048647564899760878224937410439210851517548733042102577978010152516830376334885668084216518719870948077045140092504430260888629573438816910380057381568558374147150837737243993271133209567925365775265339678067602885507989793349675894264477110655629782977851362701957511546163534976569878403071571915526280523586162550589049141994200077887357405599918439321728952939440253144068618338002420629721635712041189634681964316952849908085031234281563413881649651094725631651752523664879113345134454925240043826215222637446060483520665859385214193551830724872109560429773221673729476310049074972791001553567885343076848667055198073339510462986520878630756204652000196877660246899254922726285957684937199919797133123506507052670409598259456269598845522949861712897174584185619651494605097470825491919631519214890934175738638130518721659642439020342013344617911039779027131236777766646112028517969423128658098064791407156155144171399140018766341721121542684524340852783093026919610019904837076487095189005286812314846808015223384061809456222253868216792339859054201465331897742656955763813929159029334929141519537739640913318450408047500136544630205242951862839435941285272763216669098452710842757193891925982373172840565530792921745920092509608973881740923582742469322363258099226366496821722543766675530427642505315874895743092407074533980377653703845554560359877824607162824238692822879390778848376438362318592602369393617651387859278015161288660694637715403019111782903655594899923074621573427328241992734984693801299098133172242196532317102861784384682515368480981172586091523835379423711439682490271998925057169041336884070042957390710438227640833705589171791807594723919191733523663591592670812009875433134337649291266941953636028434054372038970227181771142205907883433408469030364964488887850043447901958917054482541821288885971278946311476135540948662147439568653738042922690363796495875220320044800638139357985609482725872463974494818189099453012241848551780659362324147340474843057268711392307170543568632334196471829643438209420575947280885174548471334102484857182912408041461339804723229940902494216515765931209665649456255041647466193984025738175269609606858062186724236758397326103378926324686595506830909909410139654461552657878389826325980236171348263118507490325355591656337194545379645227164217601832386576112213094591290544834343603280764555396929651070118825856922459213996000398092830099279870275753477809470623833386231612892796223810743099374180019168183916007003473199218328835602731375528495649833443416848199431483151874805110462139742714686555951620494925341222473417132086761896191944200883607438515298471182217838472639929094555148492718793562541435505115391713310503294473623224373533707552997901599981235087601992455911751044341593559198925078490695558555042293473281632390959525521376587684758670232762447630399790822127165054662029845104798361354312802862155545658550190980267356806942402722168399995859933450998341390768753313751419344862482410000297761334743973041544164138982728820824069605843235854404105101224552673118221822463154346744635424250319665340994280667629389814397875351507450076280262399771664577628831326814189297659590301525607444857764995483142082458116042730635967743816387000345684163479526265358149613560877488316142107904550065812017523485427134996943656749622389990687274737988812466192217450635333047360359637115100216460151428726611379589351713626048305451113843076243421182054159796681670315410332257815072060356756671879663626890237227138173023162080748996582171952858342005129873276103636406079199333897232050775937374900478275560171538225615743766018834374871397274695297646953582039861286946998588505077081269521814689561275414440259958465217179172347137799979770808959926107023351222313561653501298218670263275510721734395838624320770363640583830226090408504554626318759565600238955400197214414940083663935784243193036689303797198360500215574357372314007190713146710471050953726170575289095883909763110650803933079311249603088835429525246622051486277603322298724707959428431809668126942100913011991952983933610261035807554694666731887509432680460069080016138267815487528155194575159237211165345851744865886010244200920344316346644896437716728826724192980278698172411345801613959335596563748607633153115081878723061697470624562761844104651680460769898644442096703397785187584427692053630121048844906484635058923881645316376533844303854195764613596891951668280154298209943306685715655141048915917530852271579852777609525084970769176465144996522890510351695876493426681440078495578544180389665239152445807195957239970224413137493568639224674158875146826569632122718107116074889603584248379674381985464363632554856765860978774124385377671015703179492276054456584616282868992522635145243899884645246867680067654803127340540916349180779451193136272654748730252350775318003917555612880488033361963995864080336562210466898853292565853995994674741472534146815035340296802013715620767522033553259314830450828054240773982412060676596045436269037776452300573766405174059517049444586925134622893420377303432162104752351652813942346570989502437193509513095268678288244999778578632629449155370380844899036772795224955270297605373279993040595183060373105500513121604088852224542580934347641838064464278473178364511946079332550170939956654352931527202028795492607774249636866199800289982050110330313817680240454817049694796169628824601092931007518042518728932343189926826810646314700596105840654557914033831593363474615487446685862790749792716084950851983577209277110707831889406075756681017137885567931329690741099642948278297459032936948341132551534370646090889377853771055824924349772630274796346652393305877490297808621755501426799322632361746060330061577099213157381823887977761607364274001744752124731256964048795582516401040532801983674757455781605104693662996092157641112279512158165112412044644916992915747490213469184830483709761171754507681010031170063564345444225690279632772862110366185321812812058130229220871078063602128958177506235762495712015543562294757435372538448278543134701224408333064457119294719769882092709515837363612371469320811109748319605533605309075950260999654582655464995590028121899511732099726653442765926802533847134913390688769233349342191130974969159654952037471256366389795265302688087312449071453213710184808594352483174287505705413707355334404970043388974452477317828962088116901779914011707099200398739934340508628080796540484190623093515131127771916324208321486634519084905900726484661164301937252056814638382163050659989466737585716538451972998450078597148594044481501783563710049225919870679247437442386925548695967380265747419382888406106298782893048016886337710466833811618549330903479392301637028141079757737181047442880728691997286652031519987111055394411362234718734631972896139144299539689533876865096334706396291489827687300292391283263646790737880291647076931129980526650109660903654861085052170773446570511843700053590162221015743363320210256843576760743676676055844118483052464652702684453464528300657320169691658485907320355220729017204317067401581835906397389749544621296187300959772085877662176625810793583174325897548223701356106509024738098231763907861847842091920994922747871996991676198506361802366909065403812314974662439843688698341989392926191981322603141989672819374733233697474652985662190404531315380684624296488538410177566131944977555205879714523123738569484441816892070930039887272107041609691518493207251926355049993214791685779798214757572463645769856871900490655342268851090917444715651613122397769559705583544202807337461919412170318847123073378046043344502148268673484766165932460707130395551605594911136806658517666526132738848898201713687562225919630505751491773536854851824133635408181908709788386332272386500039444314963996221877739602717194779646484266274702222940383758905089090477020081707501458371114464742899079954906456281372769534388854148004868725062160778598775164959941704744376377171310043616272207445499766129389193527271409001807219888642229233429637564189544313204265783658728904585094938029875834916630393118144957274723316577172095527758950152605786626866434635221132304600681203197193061421206465935200693576492129067514672694995275602169249250236467187165220257928132116802251490552259017642561515993691129488973495622941453206267734613774352256022699684522846668445744135420929957798702510854936835614412500591062632739899391664932246053195251631248411254561556898084461535410062164977583858118940892715664644589666865488556067171693451401378816421334935133738126029042105163705860389107923091384465187826909723679369813915428601059625106446339506160178804944823689647147561084439622014137967584240560065657880423238695990979877125927569473122140948617208179929918029759432924097294223983640988277022333951729471643209643132241369729241989295672802798158866557486697703859667712760199341976402495729385976671826667070413925765704448068504499092411003412057561393937708951424600492756341053254395124686847111839122457930286019260514897594090770815767241330189962811224466527152971337679896734559750638375978825747600949498117425173873178680791575993920783369932466838821454937014622712215860944027566852293163874325890308744796305058307053329093867627815212759734358778055108349866509812143759371787470194363580506799133717034410565500555823969629131577533620383308561167715881899932277542823969473987121379135338466430439514285421564045964965650417016345219645748647002852716185696598406056205629702652319268658315055653522227229218187887409268256040856317386771151928466565849572259666360845561723617425458563079853915834427014956034982844186277380735742311925949807371135748182862172154216749956124591818320543251232421002790243880059451969597562463754330224027851973368383127417593411861090751538573899818298654857592147032951411575368393793677181850843680096853744666837342997472638124904433128954807125000572517602128985297999743614688447008529931887020392862877460977767232619599855545911021682842399109441742340555537439522519767828099864329123841754653283641937720591132619034938707103262724083353937448036846503021475667625179479576201563155077639975086819782745385461442706074383655996703795503703357341302695386732265091454346589185867612771240506452758833899099422905965377785164554274532318371978311985571302688767877381218369314511492223267473821786244233482794710758198617358113142165817523841802337060986224830846128797574005905022762834821297398694846749102840454455743289419017254942847919950334431541486750732987370210179900269995262599014862590545848963173632848758418931578857907010882372766347491848057073778720107819238272242334867287075572428745025890606424585147086963886303168878919192463132083727238277785489226888056743942370290864821233557795460606170807327551351786581987123833045605025899752376667642989199765288298547400377824448840230988731387598969918748212681010804970900646082362426624954781434370847830133560077106096616958463353690145296823296640758362006556187363476494391272171145406285720391525604575363045342059095574713242934199753050743108096899570065830675955842049531232210370347772859239384787664489283527203374882013343655531371299378785670958801546731066803464401917394258983447306075261176113810888679204065294816182322116213066200382663641182173025969485512650806442645300778934376005683344106459100346535689833149328579602593863014836751222425477907752114456270974641541101425993663478377497017175011664460338044343271344535850991691671186712883605871018705235659967499673023558334716148672650621106470682216791333398569696412117195085675367174871369291170777301590236678654583419860155014874074194319656023057985165316282506604071029311156688612205127491181151150835353412952429783030888270978234793190372708139739224793843141290174371102406053083280410474256767919204156917664308469070156376106307983773658633763246973532346332055576615573570635774914106432144557555933456172680500386717208808256829224932091150138508144971517022114325468245963154384866791522998307913748668942690202438148242385253385773279518799242268920724240472924748837492213526584745966221923438237606823330158989670972206391900393981415704569102373126574774180710946786379306727230230196266405139796413332946942417884622193429565256500237819831300123271465784806666621288888168462976430288022788235876636743929155809368452504573907432084012435529951356957236438735530954223477044248952671560496550363284656222062201176896751811100921332957297157477515150384256916512680054909714223783010491282266063651706809338113821132019517782641341334313168852818467996494952305804747254690931473529295855933751423449606649964669300934440999605023425315810862376198097044810747748809201656406228672433184006614107424239483559102592227583690565341564712527451863499183847329388496807634754782700227492266062031578526172583588953029758572805081353689279607152201162572665219901941589239976173031219461973708474300907372155560876860571187009759478548665214059334115364208082614524578137507459995934269871138119413945140665806009532588118649615789923250881733333946000135471502945516563881799360323360924187559459948013868342727149441171962215545334799782155827739565156158493495646309147138710689095736134460616291183600578512136635167841520967838384448169962627729145927117122078987480357605478876482094363522876640039311586616100457316904164304054590271801725430995760177818977961581025820807674630480767278529854796686029951978890221856570219316656391574709015401464633938721595635040635921510060494296944447175229859063338329652372493263181476580243536020615798671755919083013530156019255877370458990424790127411890988601256889953641872253949337480789631699583454229069934676847070959393765107924624111421886221610906059613343919842801372639371364613616644739404127332254861381410114162361429159205087867808599114219919663852486483206531486825539289195152949573770249742284430799623926459526956625071598886767724574278671927617268676914078500455437868635917195947566996540672282955059535462895373069535573528243376452844038001941587859343078694877136167700542276371097817318082453914923482582080972019339858492766465647560196451721289336693440050663619478035572299081250287642310267621230640404440143249885889697335728187599596710745505005937902477809298537280658707048691125051487372621988314401625297302889925896847595374321767359397721367992310245112547774956302946032542011459712021744256608749368195821461946535737335616151183730278881268228341290195973828647687473239144328126962270724421224413849925457801766006779730276237213081939767382170427989448109198900894475247281839993209349692623348658799319248873023169276155014143654318549125390258868414149167653671822514697966171024698527868752543228950102352419231991271514801758877418673198142855892474034229463010678805612111455766834533873760328872759067069713737847936396859209884515706686890650281448667216746046549276416007970571105143105711063839881703799958873086624129340396001557064280048139733291615692297098506082044928957554169229808015117377921423631299847951826157091181982604876758426347814711845846882859181823393070132166735391588088506819106669240932062839239812995950035934135051804810283009225884530333363824975038705881276337452829252225458055119435634694249730868520764256648472969849228519998647624324878872200725858811223528257018667820264026238157552818418822525598110859388638164989951941232226410870855032701355883627418271035432858350012188028228085960423090887411876463577661117858555843116083178273739680959503694097415184757655340978386815414030600075890756768089402069213157278370239815415410228904692734393835145440639803105831128079036288753383145816850077006980090562048587989190527760240016980437999223284679685276167950673579420836806588970272689619869334596890353067401546135656355465653138692103565611058330441081738803358730603346560278456206337939569415289937659318543573872469077516400231167858966012488835742792516800576424861613482740059427263880961855085611878752263225984178082190998689826855987070460573763823356446338627504620383865540537366818554725827829467694615609548039892527868666567686771383217590199970358826220889668479286016174838462508524799241902240672865876904295546071515298590126423850617237834729353132839225468216554642375456005844058194709574597565100159715742076502784009687232997522168281047065092884957743100582352518423144311463531879375253585976021072630934294035317861587668431875524664614453074732353545774217406216510402393218959413078168731246411543296689700990995134538714743221322546252514340779380423992059031030364534880694206854619227657716127226026691659119369817223810448185738311274369917183953117200243294802935195434193018655254897180291340569115076466743055771730865875311445882957720164202363212277147440312042217109774662124196712996112559439949865236883367165125180404104597713628462155659111047133077173508393652701954004252524505166890463502018061068077618451568774477803860562986767032095084615205289186547127035687188822782971318826258695057933176129270393508701277817673162699154861654009685236824476400475575637030552592644943467730211875658843570338183640132388408112981547218127820971774867589190451538219212194912850833595404421939159233655605424614584957634355118536806828497895153122362638513837575349188088080624221133912427283914164498053137817049901681953549086090435573605067257958058202817367349578966750237224346836338535667070909331461074012351364536853929411033568424570275030243967997588969754310072593991746754549449870216272856973396042554877704228430795992904588530264672582672555355568371498159398233295310724022506286185057844878617755411267072233038096876724757339582821940524676736517048445029696464460912980597097997703829927207441169606818626050318662077611669431575581130780036510962940462041258962730607818093500379374827756708815682133320667134528563344903858203526196284002952373682055492540269705457943389241889537141967336743447150876954155550639258378988738209708506368885646661991096116029219629028741415408492461826507913010287988077908360069734305379333448671401694013654095135620522210599788068333824426335967819399366249087813625082300950692682611080890495555902058157141208823862852192521262272918038036687312918782396882075491935135021234869874261161596673560885904551757126661135276176380999212764207542523306850364329523945778549549426583052521834161632363078548765716561254922770539441144370723607341059525579015619008287376895964976430073320733101594811996657592361822524119371511896855557871893186552781569305427304852485307877135605626901900102581712792978737758964927173647247443735593195392598031109352770832598198386237648690006167667280235351067148302309427189263187529153921125154429107547792254689382491574155208805144867257197289006826308423042804043254885467244942253739609570930808993507803336233944995223627484013013182557679095502147622161207767735699492850708559836219612938454798394819444490035576555393432334850677798210335280108230877561825085700229619304106833382566608943742978540537808845748813537440682475116556206749712771078158348928345626527309518122451199682277600066598426141425550983660693886394726723397725057122135644090770049345069510595618519150496133680992632723435948993754219970460617322186687907132973894247667064609198287540738367984023295615396495819225265024717683456014832779023371630487727262557475097134831412471184750099314277866560787502958342349091276626004413122892808704652044664600372845705816503799329433476296789320873617444860759746837199612809650592278614641514482016934434002068331217910097942123486229177119843023722594500392495363786214140958228370496271788708533223864268845341714110184589721931595452214718891373153219169357894785001137987292371586692358913895195873947133343087075593918513566666129259375599087198427302890242328159844298788942293425117678682182307562225524804572482360917974603659454549420187748331306693522274028534692665313803221596825359850523163322365249263625447499254792829525060251773181655236134785796638389779888097272036073584907173372751699950062550630889808912597399061551446308633335637306613056110015970071074996337741113836017622511234327317501559988291546893570760725482498889380797213124323522290510670414773254642476381539342164430411128984483602868664382482585214998054469477113750776149273684673098450508173077592228007149392768448698772624962770623489360678397256447146037246309942340388453537323646053794342638571521407081813248126431074920383437321607506970932348190021437705722972575764111477849986939938590404469271490881722988384694387877467815304039107613446913087412408703220540128856588196785670912770997899370222389199183630736525435139285367646676445114354628689700654999526683252754338994698756295458970095388999044227543915435906124629664897497818353191602421499657530586273010968176825338390209776959897427429317601947072606274304870424517193448046308381357824604249835815591323016716110558782515051906384016079294908014351190796336348155462335780288145980260686543791930099860055655871567603000078572965748309959117205206755372259857849604334066224037002398198829405692530385272891792666348578659996445869646095596941167714592176288376442146703038421314119468025005748340171701539138574814180616625200140871794462893675073300736590184953741425660280722429246241006647739174607369518533995577788878148082810335302930274977687020065033639139625832630981555816076825019606017187706565643610693700005013005146568828461484046336260107821231968853498542387748138057304980875091292643505662825985892980911360973970246479308782422130798950230208519615882959546541025197702970872153528794964473596691280739913095286181408501174328810654903402530384082419816016594775664767769315379971574597570678031845470717786909000871326966118431129307495765460080485687241838850117945269359392194240342982908158617838765276384813556884408752416297534829230015433340427901163314058805492464666766460597769955587310884802846188225971945868238406135487583570435815572353405234450364974271392017618269725445039735542563235566930426212056623386375427402682421479203245496754817897881242155081857230922041621139616365818673678621696893665507488897969629371726620626454145586364663530350868324634247203491296581731098625891895837957594354731008154579594053013841731098209073670000650860091780105662872964738448579671226236454911058849864535129525533513211223653183885708630590181155543268555977639812204788855434067350923952328675071669086714165471974156773890536641227065314458019866930110528958692517679566414553390084993881485913832992698121508459566905064520526499296842592707146110209581788642516160974049896807696689443341442358857220310589297200521342645001365655385233478582485253183257113698798569055734320110727921573248992919293604094469773111559526658402104543648172812110577400069922447705673286887229862962942012267733238705420545338441050187241625204097439403514922758560896573798122891503501816043304074490642397551987769101924578512186587695991501687557133895391412664778296714665881883757866367817167073005018975654551792447066756428744090785959739072904451738774919936815663013687345330510356251531669865506509972517053480732104499457935652845837480748815976015100101189680774915653726422862617041278643481571856219721708064546020431315949155298020925825040874897717666002317444103141442142545841321299853009883143077090113554811382468458882601903101662815970460614711375422884984553904537771422254146549241956686220830491195729027703263413593705552223150801510157748785815568633246733191145895493532284482786113548258300032507187342768477266805867549353913195875596705618602520933986783218652481453603597386692573237712523103651270525500118260537699598719730249508302830047989818077742054512114862724514222164698406810096057078888646538174491111778482380421659593317201543266355066390158885383232693802779162547427537557433744035857287114254357092522317033181374256938302316381861656021876568143426071487590430619432842628266694146395462639178901741117543825831066881373875868260802082559318601397221498976691777247397823803654678025570870235616345513950178293892548121375337206945722770225711583653545152782048250052993044398942059741960335308442153720606569979304249978438928107441331621115507169658155962206339347891408792006547283956957496773934384071805189867833401112618401109750073939813280568984647843668285913262775849150389951897829325807206300956415119677600526282560618079313483818787197446003331469295019426929407858979941020130600942873451509506728156319557179501020331257100509949704438241622746720025154579337421833561017179917297240798834648676433912019894022688601551776631057600082059675642028243097068731172354920579063284224147090565655610701562630089506123893444376010551065832311204970047298417376151632627613555538486220842600589122830598424188819490456909767883970799779378207803821542579960881219487453177148021273573448722151440022312223725197448382733496845052007526809051503313608361102266950530682242993833312562002126404683072439625766410718581319322906220166648693968879776916032319721891954587049947532804793482735208525729126420921077949274832762048401943157576242070181088310911427466147103805123433173435578049667881015608443699473521054802999790345312878013845580712630436512318862655063577543797214117757004649242302494719801742983223121106391685189811894971916807898543443468540700144250068987635691730589317319523418465394925711883995160204275786907486773300261994741467489621148607574904230012278010268406132402178367471382096595530057773022155219553009759486028133499063650241152265291305498759807790592018346910630304401552053589903334531915243418934804434636526075496810103759574338028428715208635454486386966300251396463571969483238864533834842326193621207272640459514871953775911029758426275605291635108899856650252018987890531633694491311494551722922489673059706634996668766651057444285505224748379196758105017110231135364436430753147544540458533353403421959271974974881877627903005358266639068764892185329539450286114295817680587003731026974504601026834538055374974775350343688440207002725185415693213349915919246086733944446244000369526357639588523719917260593940075356592053730775978205917299542772871385781180790475579004360617507778119135596210632429540602003657453124953098335206344797270481755898204303933495807799574238817015021405788805517991656118113629103428594999734224843877884751789356410718516688596424759524410072729584503074108952460628893231859710316546620560838494701397791167202178997441702892726832110267436637824387085001952904622552806889297401329942889503550095764776820406877872226173779685678481284005849143352516479338194804577621976537532215107578286736358340479831560662315219062666650047224300181508539494239065994065186662465871655234712539335243160181336057768633619756521162124687703758052836397696372182247089386952190074937103032624668333871891009083319095322583090047759740169910705727096613878421257187027398134570869803680921774152291406471230245182715844701921807670090178538282061924469154063618035291727525545096029606989436146162997700137843445922190185084658817917111220683315971823685288456664236083293748286741509753474362659581354821183128284310966781459325559307102409637588538868654372550274537096783090652245829566028308058271554445094737109947722919035738139182046293072718314316992435718742961299060161878457644983517146101944858486702666820585419273521725108880232714299412610005809086156772842378001904066032096576037323509727883338013379955980197006318940886159715652514847536786810988617900462433741319084266367958485943360761663719913908133508053721379271577511814835107636871800754504090893354570176937840659378223693974506505513460894579457310819127570439637402997579850476111702918929964274675531345743205713982728456506288339536594733438730486685872227850218234726665847767559646414311922671256839859919553980308999374547416183616012049486358965710847266429492114524504177450518288193417970504413713621598390780524070775812450475993526115887629386859776466700199283692903474708954147791683443150249809729081431740189202022160819980823957578010752686360809855750227550883798542348065808507099693562461799661226118719330887505909572050991651460437686913171628583150571255264279557727306615688281103123209137126276842087779414649196515145210430067859491854243162695833962778408427847531059115909651655182490830091148396957313596997351347249934685014109686128702753165045905675577205226925341233685410573386577468732432783717801875418869009031004348376945089724401612580863747847178480622007135895101491389519847168161368790332117209305435378985266025561560117965005722121028271898346448194867568926894780530882645576751233479050527101379851993786150533627377748320288901050901793844128815206904371054129742576982039910136385991945549015316996672281012723426749913579259547391101052122306488893492546762079108004447806730928617007178382907784735757439600461365637713528054632924451817731638999638687706949391732422995736051799730674105120363527973815555385264973617756457677908471596399550847963201039914861507902469691664527552276769319985035867940582115575207565000592486245109802557495258114595287411185675620906378421679075784106550994808392350141804226386023910906717750625283415133032379271031664585006453137081166778937694927531988602873849497373460096938336136693094691320572060079917772554473898924233163299576369451206871129265032610742663001265192443360831764627111844043548756756035585233663922944312825523798689344490106128466229990429170212522472992135467871860410281237671687767921689863660812293143140390531422412055492618822889761077958438721651522485029965725988883533799844703718230933354546163236348334678350256973126522573201709519887809074374487827280815845736292913504017375621287040890087965572131409828923808752375975439798762419936160183215518207899054268333632226793691805883458397188165657154916418184078596889023596571884056568160300280619075732151933904374951465516577488687220559740583295446488186402039658630013503437029315514162500181932596124135488577790742374478465435080499827950433655449541115005195876925283275393603368333012284953005873708860842454075317639274087255349382261215648318170656900158640673923945067313643907145549647126939834827333167751868051647777435367547569318290137016775345298581170469868188239573143741099033638941810446522506805227845950293879217224991549652936700545912044956397609278677862362068943359165757728570878598616661608134033322989577669700419459852976159751439536633876747723000265851378252449403869220311780650157718525209510736690059320836756124559743394261427427242241152349537566027069505934280106800659528698266589785101000684111387771996899606361665563621202509499409653162889663606579761281783048603074371506630582796855500759424085693818571543598826495382118170634336329791168643263508981044244938977384923990836378700927298887916223424188842611921183140437575334555646672717845524363266400276376721249735283841461643709303029021285954270179991555987077373165596497633747059500913515237117238649322361105248176037394033618975810448222276929676875555243892420912808964231798917591754967921970824755358923963597547455584749793348906386503988825398703462868953898913133695057283111413344571815775085329836307396784766095325755644822232463970793327452590951140513623659106475392967280084119211759815165950315136954929239652602137364846809737802715292248923471525901633650025674178999032524664977487925205766515777287116247128077311537014154788204915638044723106219710069558528486252787670022492672990357344803769230443916163150290845921980706742750660185902388721862236071940881010937774805823530121506000194019423439017288362401241301170328936043645767960213328100936371070182171209281418445840559886164191709734084519758359642575766015797128021897874288270844155881803817096451048211499497060531661070885662807846554374462782673358074175397968086635231681755700062770210943872894616984292044740870674509848306521316274488744700086908184878072977404679224085122492896480610216191762389793848954421818890421152296875887675759169947115439201976975092186607375293092836356715757225714569963414888005155353582285794106070378456890566004672076287943243775784776489910391660343706200215837420782517573025058720999848288907927229842333028696036868326876977021065206671270323119360352069471464702868388872728547969512200819175800137592651074520364239104165102552445760120540675998319898113889978054055191785167527240835674297025045034430558553528642732180598876917180908698284938398422223331447294287150220946988848729216187997399679157419643631177551867806797362152360257652572643956143609870623326354512473361898916007476771029050696208553184585198204146954134558760325647113332984829472362560501846939938083050828344212731821732564825399007079423302225109998350177402812658854682983606286034589841020841913919236416396010328966915323643020637437973070709678418177951781605127277244433331543328983399431309740254263684773815406072616615307206292650977681260780020804735384672219868021907136223869571292889654738054643084824293097230008443926689077981101808259292182543272237269826231068331340895988588845887164438487060566668559676517837940648394117790121871780344292417263579568174540464530571890764440645073547706930504318166058495371106771543656769885049204146474929653337362679018144559796578148235588243221817775128490692163333854615283417043889750401610055479365766442064896415373439677119164246466049138431443633690254578885183610653159884877794746584171324919406221010657624977838734021816770656966631970883405429197696049133555909700087961368233324496271368158842008466858213037604475905158865189677952686653555720764389161576058081119346757373043772966709147945132966877702364005379630305021481679158471849395288376534933694309040561299234690434905228799581624006246095814794047776839403691788749372657546246701348906190973319383512836447677700521279435129370339684043194027213084536771704681579784166536556292321370389775096736770522332606369591038765475673554911357249694312758950612258944724902109446556528660562999332793311341435594671972904313750648554271726310987585119924958298348792936416574040524718024626989825525308720879534219657717119730170490953723978402275626048608721064825338133299514288911993851493936749588881998222853070216504734564073363047643472173250684332334397074023808013761385133558767325535002887416609748572304458802972401877522106268603641753964055415056914032271795444866739245682441391000644935332005399164728411370581811918229909044670713333833921294238546971257149316200191763476066181181171524126917134950552905578549298668926195168422163475499916333565200695712913202446532168415410499209208712392088198299245549425466137527846932207350337808900322124175414492234629278852873094210537827160045890816062540517772211422041100759435241030968068154365933101332146874881941570324035826167339449814521763003141925166284724633978640046113585014505799579193961890190218368346124489066527960837459017396417652329883723348970875027632755813773505618140944990848249404953041478430816666541865907313749476505060625211238337729390046311022863271224731677565194008247940578703746441439367656142798276331317153717648641901153532600534048615801072846422969186306879622946949386113670387463628559659974790054431960738355173629133985242604688681964651746847960069142583214590972498897928884487163864814127727982609022205667054775698050901539135756095750606049939478129850532823932008430591265456518703667292824730810349691875760900552348921036004003108734651347525349149531295541286178714332218156210588891237435662638905074897534777985521630232841538812451111309016024102412777959430408389919477029351486820505024267758629008134497847658690325443151212729225620882793989106779041521179450804077264736003477679449226969043488862795611028681651353861058129744312159819174793682359385199871727231435592141516130304217781251939420252599637408479435246094111414725870335433076125606400258369450590511329626988747059508556125964854407501064516968492925845769216384565309435454643649532904566231533825655978981428739809983614279805156095846597653127990163741491628157916081186484503911725232376005651881742539335854077777617500314202238348182775391205458237186453152399041738491567870967630049515888066404635305171073861310162601438873820347120488238935253163972424825770009511072953209846172102539742071390817719019570132843216149170658032390593594761249790439994150228844733755731935463822889663551706642751441562147204963013684817285964561485349397579399539493519044147205390717512096368912486253555313000800258376757350173063323921840392275502796643850467163867925009564012142849838460745059551252847828763119092642678525082389742413465458382803086492155434559452985523082741290614809762760187623419873456107791562649281943920455236864568338255844709075471239783491150341087748604007545449242274265559131297749607708606214402413840521663402346826269263327962489494368101586994788253853494557870648116811436115398319862764274871429663904150885817412431204826792006193438292955307630062578158093330426154511851234987161426610364890580075253927540065138408615155969551790156042197348532957625533419693963829807718243423155160931948003543354454147573276020492372667667111124551502909316293649137661119595012841710758816090067594081968177570468764073024664008896982627963515965958789754036761821877865276384381202592982803164630901472942509020260318459955141961060401319207486945530650973005014408857483312272953966056849837361037587737649954256575501170445248390173036659832221600461181792541359995949919475225178417579963000442235147282789525375389204072285228551912172556956845187815812618100316033431432992259312213127191968469033443937759462194817093597918441711832957530210798559483810430144705184493968467049514227763040382642983057188614255902418482777246007949812900908745538817379600896241752092142552453420497756092941743756546597015660966194723955644950407885859514481490105276279762133228703199301986641566553619728094457007899341683556651524457726540274187736530546336435754940617145280888156424054417936021616660243206313217231697287319547993760701695880543427009917275071779799202745275901459686411358885587844988629301166788617070953319832264634271960681001328679715744235939667570579211006717634417084807471695743474820207495629897620249785745831132265419437824766417556089925732103565357700079004818511260903882011976299767988200029639578581106353865650616305326984936141400427514142656483921856904925051002151734625910454407364820744982780032953147573831086904805815221168469189531923655503533007825387115213421787431497021976952277123207244458547846323530582422934383989052738277015613341899811853645600471035776760559490120487132155526320045990239528235210207706415667341226124588726587256058286698812533909762295677357323850308783932764416598046762364275437053496814313048173545610703681569636081763917884652623321691420380774259534099064719546301451723262557222972081040158415969016301190096582154248633391532028951463344545325168354395599505969920451929583448208129978185530552510444968899294277083406947968434490472532162855339323883803829016460263444770501913612036677517506989640218890926321491036020749419803720276785534984363206992652898990330221251385365029512959910045810075145671524834680831268852864166086237648313602908374623523147174823173636586252038960203994449336414793133291955005972548271412846038539744347728613855029286072669531840276993555899594733795333872966098542533286615128745100191071637839715660400678866439867998010510186675316258480956240047776906469652532033105398537565950402460010195784445347414483855083466604748484986285612479600922184724813606303806686011426486116053087260709138760107047068305285168661522248108775907894018990126007389452315155701421124943256756917610304418260046211507243037904085011280912186522405483469446675827528108438041200779724435598612730248461794379207506497573253130997607098216776020512155252031963154746144028950783525372809225369732446428627102309422970966012793134340437042149234156926458495733117989529323109229335834629187943953663104013960724649148370074991638693851644775788960143390687522532684744945441284761762793839199974912156195697322476870828661271471915050004925320985741255443582155057571890581131835422930310676090804789545913195095822727426962913920895377354359195734703970922982672015395935238071118590227422449841912409433661893252886973483791555165684630291134118640477529924301059054654816094562941346611194578540832265526480980072334621067007995763757873097984879064975205829006231844219212924190062029377427286291124620245484884486605252904216815668023830918531547804454137165528391657799261758415578650622773511742978497399763248029605597694966383980269060574317369259371884703499663618684897310968568752734705592869451367786882050871785513890425447841337391685383046516140872978238345233276597847074105650794679502142811361450802784098171696513466394072771374322507273031548687803362378064422357626359569928665452825135559715621884321459541145451270285097583916979761928857505181559160772648614233152712110033108013921647626572731825961883802883913219043097465359777917497021024915716105738702072031227598268954275136422119611631505503480551079914682394262835414720783782199283817116131848630861944615372571425527336341990068517350397470823242112175513533913482726307999145237759981984123586744134811269350112741790079386861435199016792102397906521754441728362799776241643654488725024783195623522311988828796925990690773278991353748538521430866848256353085935883798467729689499022445961363400522489323702293101586178361002236998900077885745091141074903217343386542752327951822298312707655802917060651545601297386307302192822775516591338926292444647433720695531953138843496374506764674955695549044296520723061516413552780826626253612567065867107709097093930812061444123006406490647750749157604378128212209044855074827779681898841509647554976154001734607917520623406861246077600611030868791280061678348291403691720549862206039316133557198071787365354546343492684847021566881250574330265566325805122993219761082268419480355001242647487748528212340055098276189845878364923169884985571668043566677559479211448316638244022760216373747986827078587525398830783401260905680964181086946115362403769459953371596040348899154514986085826367236292208293985271240900300261614301155812566501054667553954103401489930521873215813638498036752626424820329110363032686263250004094567626793137226853313010562382672664941614946026719996917818848319051842275799942560220210504667477332458946337924303621163242523168979122576749803258374473653273597048919149187033573800690707723246766758841009110545224388588945486686411902421870787551805999984818546934545952511966988105786498959108966414475703095325660229394660972304272133823601329364283824589904469037174283932045094087691587055111919105107365012846623604837996046288233899453182005250666780106505873364956280028861588500371016731089551969387699662206329225716449299336382501447302726258300669448754309548209158938837187267676015537740586619087926417447771790810348538238304772597099876144755445167131819971827253226700228810157652542376645476540079825164982284296261224326730129833250210224938173193499148751666620868882417094788624980939741281576711390709572107905187357481996023861776134127286717604110859117333858446462464109117458191940119521513920937778234282709786836402678415674094930863483455074186342258880301921350551950868519709204807883210103600754648473229350025246528183699171183576259723115453082508972984008804062017470377217879692746772417628069723020497200182701612689608747114201429548804464048646561657929335957833925141284619770161541644515236913139038111801741858964110453174147563762584774935144235603167438747023268378430248903140762083119047511149933524112713038115965047682734502997152845724951421732441517790267997940579589426573461981042132197919038360632529021782192807689220185495201235707755178416824565085233203891393080595994600617040601621650833606127240346333374896772726445186878653329808304379704860840452155953733182497388445052353531061982972418408765923105128157627132261725802811278044875864788517709545440263561647912436470243389776945855044149373291223726070660860410761681854313642706243803934703091841707541674314336116849351288516667453188041416055623080129305428873859808818899092923509727131331561294580546650449515259368496197172953159919650573707876178837404839301155832534307263549653302043205806651905361871953208441462591381527212236392952606580026297648322799474002538772350812022191227308021928606584430302384174578551377534119928771147103769477451607514067580439382390837985310063736641606075836409047582760499024108257865406027983409755241841240314984316941488809090668977721610733149897218508924257611229178797431296199628169267860236870919375765748783066876873929925068654830191377050137690791859909963462504739191431478055289081748962484801062794005907367065164019147177091852572238949276691612809358420080688601973020603157585090373245657282191131553609352489746909699372979467028779257238385543375897057334990596183306161722428881459080010321669945907048840715201030101620455156665319307562625767825647947493940884976982628724189848513888682940149193187118257024186571629348596310251752521837702789419036611945659242107094222545062123835395442644491495334036673117549107439087617625784955846001453675678902978557873433090775877578943347292364137106809113427890702419040985990312501019999545759784693832952682932605174286512736114512314636636532411170380615224570982624813568952579893794239056934316748732916008433249834747972479387433379125518849224056916328909022370947944269117890340147600090132164677319272382480798328170114039209742359410456270428834902911240745999141833154206004045368350455207616522085867076594560541048567309934962181752796415258678378538710187155912378165663224032933168293529822883468381112022808360218873065638858200071128060898243783864995302697935014203771369842774845030498845961378819529878115187671709565119508116891269002540818662384723289066182035086944918567708402875045260383330263052005157434217358227710766892138288320486009526405758292927403273571866204311430749381767689610925706609198590335579975020535987423380892079646623983524802817377075952909994152624156322761344044092749815288357032107282241351411845112100062017764109941293368743650962912659649451296399050576195653439482887423623499883763472711004469330577239192916059378733475447861615897117555638940757783365271727500215570152321415689904654641249549314062694101069164445883334561543172402292759682832127290823424220788212963851276594096143544783842351548822894269289184214468588927932388470565001603328752505112233198241868059350217051937365797088879528618937733537421800459077920471600335730205511110890617832882430280712665867615804275653403334360480265390224549791259297167412129298124476366241879551727426787183363625500619381811548422565760988801800143765403879822281955532796788831237038922228391069803420009600770558492831017145232629319359937309113419199365310603925903615326400176849264180087365731770899298280247497009796196736861291699877758788247516167268493873338029371412304716802925617138864731111968547597382702848503910384414498763961987212276859502910214225896559009537868850213862583958194613366331013050175989145772608054383626888036627874542322495174185602225198920652182043254198490618190768405818464580636127573210581636920431984738060580917734234888606149083417388795647750440718721276764883721897723534334549905345442346178191918201547699305858282263824369553697214720497149808496397683300863583587344718072399221316964005203156996746091792452562256879015454093386898527046906868577040287209987008487378487016269005383160508938893141144394174179808806406870853400107043841953926031914022187444018606196676216346688335893822329491014317890823275253743284609132581714706124260037755900224323843158526502763151896475938190458952611698435293570555850445258071222739292777450967817055071060621355099779960238257383259748041269673374753120664103744888727958547748050058825096418498736004570983677532723261998420558582847086692902599101124005895258491319005710686222917647527473646261765140935420135408598420539620723289031129045873115324695351227192289919005167958407879948924609382764683926521024730481438161088330187295829591078931888521343144445461512141621043809801749527592389629299305553109647221520947719783441636355008867190378080204414234015820949831694223336279039875026132076788498919289488625288460459397749099082072846684076656820745074616067958891264047986359090345299626574369673404129371150677256775596136014114032564231998326655880011473639409709484163044708343248855468785199767468808205979727066655795586244026248619004471097560033943046442431719963420533138592232435381144582037044671134412903548999845105572480071060154522188611247053603023835622473450510899302392487230077278485501109775706483980529447699719934407533725249432810631096683042766759820010204935238457911783730023549581984519466250803460229492068635305135361047057223975156969142136469744510651105529719746963446458965218085066689867178804884663665131025307666312086665406734002875546948119668450037213135528914119134404346597432089137597943037730277552076743084761401934553037029204935822495305800547192903625176001922186821304459714963107693283599634669518283642278137553827459049647923503783322429367706817305359130557653213759112658275235563543662678728954907084362587275726978098766328048695384549708648361938179170430264076676258791084440511962567658828380950072445571765305504656083969556873921552840153040359382987706213117569041110411196437624677052561846744541950198826710264031793386871383387927822093269244188149063023226894456661809198948443787773303936654350619867003456736956735421749220173988161004609339109788602509122849232321970801831863905610100179291169466560169401716077468782961441984491398305425380895321862667533086075198973094494305718666733179950743186109577982470957265343661711224754390041318103536641135723669298432032918575579506732495459479035895696269254388995723259825535639794196944783596103361678938922649089951335919945662051403121621601157102373480633347028256074391262745808026339309785294607482531174629111035259864959030420140577793154162961517167019881380441064733798573665157801320900700885786414695896648031434038133299822857261461370244244774680487709001230025431966906707880969762275232887620945625948410125950301420175401318074586756011646048024007373421622172617172825001479910640255252644080213345238150982319122955924724099433505876501440892648036041862395375585919164111529447926762708246670287474221811840748043028322607938999825069409289104430950066339637048956329471404593235038744515902896783143742884471174959185558674025218665696823318461940814194288159543277114159500971632178250985213434433298114977214525551202369124213184167792401195215682282259703812970854269371236373836596232564295662838372819922966312346950172965935314062613958660935121837437737531739693675672632815537079409213609708084830378042710071023541590018447209590305567634202914848899642573730507126851601838619882165808701773567225912164332286857466572752922072955259748879022683656531282899525673436522568729010116376638228352490128393463663669401077718458825288539657802170840821996416152150516026674991613789385264583375543937103459854809292766447714968186128569895964863231707583586144722195942450036159654308618028034808632508748889855806693179131425222968343529882284923780410152901315998490689859754669189174548613546034287747246836896062337563936846834234489751933525316686210942253592067189849768446746266363199660002236144060405996935303723549373379519893171549194309254896960032811075014610472368863089669709924167259454774525898904837025869143146724852295211673615062041418612147115608241316794637406199042609835307801462816353529733448921988234920724219782708417470484006289090630037482317101648630176294981718996378355735421731526778338114360072978911103651454658615733889114537365631215357493874960823153320465308313206148555245978506893332199769960973215904715830047219943588738646482054307941055946031887301665793606505369864336024386302986563468815293272902705140493736320630988797884555021416297938920955529605416936767961866188140218669331853928240971892746479137808211963784289882340712872335453949108854088385732959776337326693200270601201853319861213004776664999164082551627906498111162776754478760206915718070038152653361295999418091991522138765142596285411366010977393306195320780012955286127922870263596708331430420336120724578103493477681062485531218747506168608135331279368231307953544788683754630407200013757908637755780389356417446005185378399259122154371511697953384303191029130628836565307750921510865200022143288348238590963538840281636965